/* Shared look for the redesigned pages (sign-in, setup). Colours and type from design/README.md. */
:root{--green:#293d2d;--green-dark:#1b2a1e;--ink:#1f2a21;--muted:#5f6458;--soft:#8a8e82;--gold:#cfaa63;--cream:#fbfaf6;--sage:#e9ecdf;--line:#dedfd4;--edge:#e6e4da;--warn-bg:#f3e6c9;--warn-ink:#5c4416}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);font-family:'DM Sans',system-ui,sans-serif;color:var(--ink)}
a{color:var(--green)}a:hover{color:var(--green-dark)}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.dots{background-color:var(--cream);background-image:radial-gradient(#e4e2d8 1px,transparent 1px);background-size:22px 22px}
.serif{font-family:'Lora',serif;font-weight:400}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--green);font-family:'Lora',serif;font-size:28px;font-weight:500}
.btn{height:56px;padding:0 28px;border:0;border-radius:12px;background:var(--green);color:var(--cream);font-size:17px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.btn:hover{background:var(--green-dark);color:var(--cream)}
.btn:disabled{opacity:.6;cursor:wait}
.btn-ghost{height:60px;padding:0 20px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font-size:17px;font-weight:500;cursor:pointer}
.link-btn{min-height:44px;padding:0;background:none;border:0;color:var(--green);font-size:15px;font-weight:600;text-decoration:underline;cursor:pointer}
.link-btn.plain{color:var(--muted);font-weight:400;text-decoration:none}
.label{font-size:15px;font-weight:500}
.input{height:56px;padding:0 18px;font-size:17px;border:1px solid var(--line);border-radius:12px;background:#fff;width:100%;min-width:0}
.alert{margin:0;padding:10px 14px;background:var(--warn-bg);border-radius:10px;font-size:15px;color:var(--warn-ink)}
.spinner{width:48px;height:48px;border-radius:999px;border:4px solid var(--sage);border-top-color:var(--green);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
