:root{
  --paper:#eaeff4; --sheet:#ffffff; --ink:#18212d; --ink-soft:#566375; --rule:#c8d1dc;
  --brand:#166fae; --on-brand:#ffffff; --logo:#3aa3e3; --danger:#b3261e;
  --font-th:"Sarabun","Leelawadee UI","Thonburi","Noto Sans Thai","Noto Serif SC",sans-serif;
  --font-zh:"Noto Serif SC","Songti SC","SimSun",serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0f151d; --sheet:#171f2a; --ink:#e6ebf2; --ink-soft:#9ba8b9; --rule:#2f3b4b;
    --brand:#5cb6f0; --on-brand:#0b1722; --logo:#5cb6f0; --danger:#ff8f85; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0f151d; --sheet:#171f2a; --ink:#e6ebf2; --ink-soft:#9ba8b9; --rule:#2f3b4b;
  --brand:#5cb6f0; --on-brand:#0b1722; --logo:#5cb6f0; --danger:#ff8f85; color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--paper);color:var(--ink);font-family:var(--font-th);font-size:16px;line-height:1.5}
.card{width:100%;max-width:420px;background:var(--sheet);border:1px solid var(--rule);border-radius:10px;padding:28px 24px;display:flex;flex-direction:column;gap:22px}
.zh{font-family:var(--font-zh);color:var(--ink-soft);font-size:.82em;font-weight:400}
.org{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.org-mark{font-weight:700;font-style:italic;font-size:1.4rem;letter-spacing:.04em;color:var(--logo);line-height:1}
.org-name{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
h1{margin:10px 0 2px;font-size:1.3rem;line-height:1.3;text-wrap:balance}
form{display:flex;flex-direction:column;gap:8px}
label{font-weight:600}
input{font:inherit;color:inherit;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:10px 12px;width:100%}
input:focus-visible,button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
button{font:inherit;font-weight:700;margin-top:6px;border:0;border-radius:6px;padding:11px 16px;background:var(--brand);color:var(--on-brand);cursor:pointer}
button .zh{color:inherit;opacity:.85}
button:disabled{opacity:.6;cursor:progress}
.err{margin:0;min-height:1.5em;color:var(--danger);font-size:.9rem;font-weight:600}
.hint{margin:0;font-size:.85rem;color:var(--ink-soft)}
