:root{--bg:#F2F5F8;--surface:#fff;--ink:#252A27;--line:#D6DEE6;--accent:#1F2E5C;--err:#9A3A2B}
@media (prefers-color-scheme:dark){:root{--bg:#12161A;--surface:#1B2126;--ink:#E7ECEF;--line:#343D45;--accent:#B5C7EE;--err:#F2A596}}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--ink);font:16px/1.6 "Noto Sans Thai","Leelawadee UI","Segoe UI",Tahoma,sans-serif;padding:16px}
#login,#welcome{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px}
h1{margin:0 0 16px;font-size:22px;color:var(--accent)}
label{display:block;margin-bottom:12px;font-size:14px}
input{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit;font:inherit}
button{width:100%;padding:10px;border:0;border-radius:6px;background:var(--accent);color:var(--surface);font:inherit;font-weight:600;cursor:pointer}
button:disabled{opacity:.6}
.hint{margin:0 0 14px;font-size:14px}
#msg,.msg{margin:10px 0 0;min-height:24px;font-size:14px;color:var(--err)}
