:root { --forest:#123b2a; --green:#1f6a47; --gold:#e4b83f; --cream:#f7f3e8; --ink:#17221c; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:linear-gradient(145deg,var(--cream),#fff 55%); color:var(--ink); font-family:Inter,system-ui,sans-serif; }
header { padding:1.2rem clamp(1rem,5vw,4rem); border-bottom:1px solid #d9dfd8; background:#fff; }
.brand { display:inline-flex; align-items:center; gap:.8rem; color:var(--forest); text-decoration:none; font-family:Domine,serif; font-weight:700; }
.brand img { width:58px; height:66px; object-fit:contain; }
.brand small { display:block; margin-top:.15rem; color:var(--green); font:600 .72rem Inter,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
main { display:grid; place-items:center; padding:clamp(2rem,8vw,6rem) 1rem; }
.auth-card { width:min(100%,520px); padding:clamp(1.5rem,5vw,3rem); border:1px solid #d9dfd8; border-top:5px solid var(--gold); border-radius:18px; background:#fff; box-shadow:0 18px 50px #123b2a18; }
.eyebrow { color:var(--green); font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
h1 { margin:.55rem 0 .8rem; color:var(--forest); font:700 clamp(1.8rem,6vw,2.7rem)/1.08 Domine,serif; }
p { line-height:1.55; }
label { display:grid; gap:.45rem; margin:1.4rem 0 .9rem; font-weight:700; }
input { width:100%; padding:.85rem 1rem; border:1px solid #aab7ae; border-radius:9px; font:inherit; }
input:focus { outline:3px solid #e4b83f55; border-color:var(--green); }
button { width:100%; padding:.9rem 1.2rem; border:0; border-radius:9px; background:var(--forest); color:#fff; font:700 1rem Inter,sans-serif; cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
.provider-stack { display:grid; gap:.75rem; margin-top:1.2rem; }
.google-button { background:#fff; color:var(--forest); border:1px solid #aab7ae; }
.google-button:hover { background:#f6faf7; }
.apple-button { background:#111827; border-color:#111827; color:#fff; }
.apple-button:hover { background:#1f2937; }
.login-divider { display:flex; align-items:center; gap:.75rem; margin:1.1rem 0; color:#5a655f; font-size:.85rem; }
.login-divider::before,.login-divider::after { content:""; height:1px; flex:1; background:#d9dfd8; }
.status { margin-top:1rem; padding:.85rem 1rem; border-radius:9px; background:#edf2ee; }
.status:empty { display:none; }
.status.success { background:#e3f3e9; color:#165334; }
.status.warning { background:#fff1d2; color:#654300; }
.fine-print { margin-top:1.25rem; color:#5a655f; font-size:.84rem; }
