/* boycott-core/src/main/resources/static/css/login.css
   Shared by both modules. Generic only — it USES --accent and --accent-ink
   but never defines them. Each module supplies its own values in its own
   static/css/site-theme.css, so the other site's brand never ships in this
   artifact. No inline styles anywhere — CSP-safe.

   No fallback on --accent, deliberately: a module that forgets site-theme.css
   renders visibly wrong rather than quietly generic. */

:root{
    --paper:#faf7f0;
    --ink:#2b2b2b;
    --muted:#9a8a6a;
    --rule:#e7ddc9;
    --field-bg:#ffffff;
    --accent-ink:#faf7f0;
    --alert:#8c2f2f;
}

*{ box-sizing:border-box; }

html,body{ height:100%; }

body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Georgia,'Times New Roman',serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1.5rem;
}

.gate{
    width:100%;
    max-width:23rem;
}

.wordmark{
    font-family:'Source Sans Pro',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    font-size:0.95rem;
    letter-spacing:0.15em;
    text-transform:uppercase;
    color:var(--accent);
    text-align:center;
    margin:0 0 2.25rem;
}

.field{ margin:0 0 1rem; }

.field label{
    display:block;
    font-family:'Source Sans Pro',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    font-size:0.7rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--muted);
    margin:0 0 0.35rem;
}

.field input{
    width:100%;
    font-family:inherit;
    font-size:1rem;                /* 16px — prevents iOS zoom-on-focus */
    color:var(--ink);
    background:var(--field-bg);
    border:1px solid var(--rule);
    border-radius:2px;
    padding:0.7rem 0.75rem;
    -webkit-appearance:none;
    appearance:none;
}

.field input:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 2px rgba(0,0,0,0.05);
}

.submit{
    width:100%;
    font-family:'Source Sans Pro',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    font-size:0.8rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent-ink);
    background:var(--accent);
    border:none;
    border-radius:2px;
    padding:0.85rem 1rem;
    margin-top:0.75rem;
    cursor:pointer;
    min-height:44px;               /* touch target */
}

.submit:hover{ opacity:0.92; }
.submit:active{ opacity:0.85; }

.notice{
    font-family:'Source Sans Pro',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    font-size:0.8rem;
    text-align:center;
    margin:0 0 1.25rem;
    padding:0.6rem 0.75rem;
    border-radius:2px;
}

.notice.error{ color:var(--alert); border:1px solid rgba(140,47,47,0.3); }
.notice.plain{ color:var(--muted); border:1px solid var(--rule); }

@media (prefers-reduced-motion:reduce){
    *{ transition:none !important; }
}