:root{--forest:#214f42;--muted:#536860;--line:#ced9cc;--paper:#fffef8;--ink:#1d2a25;--bad:#9b2c1f}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font:17px/1.5 Georgia,serif;display:flex;justify-content:center;align-items:flex-start;padding:48px 16px}
.card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 24px}
h1{margin:0 0 8px;color:var(--forest);font-size:2rem}
h2{margin:28px 0 6px;color:var(--forest);font-size:1.2rem}
.lead{color:var(--muted);margin:0 0 20px}
label{display:block;font-weight:bold;margin:0 0 6px}
input{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:8px;margin:0 0 12px}
input:focus,button:focus-visible,a:focus-visible{outline:3px solid #e0b05e;outline-offset:2px}
button{display:block;width:100%;min-height:48px;font:inherit;font-weight:bold;border:0;border-radius:8px;background:var(--forest);color:#fff;padding:10px 14px;margin:0 0 10px;cursor:pointer}
button.quiet{background:transparent;color:var(--forest);border:1px solid var(--line)}
button[disabled]{opacity:.6;cursor:wait}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);margin:14px 0}
.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}
ul{padding-left:20px;margin:0 0 12px}
li{margin:0 0 6px}
li button{display:inline;width:auto;min-height:0;padding:2px 8px;margin-left:8px;font-size:.9rem}
#message{min-height:1.5em;margin:12px 0 0}
#message.bad{color:var(--bad)}
a{color:var(--forest)}
[hidden]{display:none!important}
