:root{--wine:#972B42;--deep:#6f0028;--sidebar:#4a0924;--paper:#faf9f7;--ink:#251b20;--line:#e8e1e2;--muted:#81777b;--soft:#fcf2f6;font-family:Inter,"Noto Sans Thai",Tahoma,Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:14px;line-height:1.6}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:linear-gradient(160deg,var(--sidebar) 0 34%,var(--paper) 34%)}[hidden]{display:none!important}
.auth-shell{max-width:440px;margin:0 auto;padding:44px 18px 28px}
.auth-brand{display:flex;gap:12px;align-items:center;color:#fff9fc;font-weight:750;letter-spacing:1.4px;font-size:15px;margin-bottom:24px}.auth-brand small{display:block;font-size:10px;letter-spacing:2px;opacity:.75;font-weight:600}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--wine);color:#fff;font-weight:800}.brand-mark span{font-size:11px;margin-left:1px}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 24px;box-shadow:0 18px 40px rgba(74,9,36,.12)}
.eyebrow{margin:0 0 4px;font-size:11px;letter-spacing:2px;color:var(--wine);font-weight:700}h1{margin:0 0 6px;font-size:24px;line-height:1.35}h1 span{color:var(--wine)}.lead{color:var(--muted);margin:0 0 18px}
form{display:grid;gap:6px}label{font-weight:600;font-size:13px;margin-top:8px}label small{color:var(--muted);font-weight:500}
input{font:inherit;border:1px solid #d9ccd1;border-radius:8px;padding:11px 13px;background:#fff;color:var(--ink)}input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #e3a0b9;outline-offset:2px}
button{font:inherit;cursor:pointer;border-radius:8px}button.primary{margin-top:14px;border:0;background:var(--wine);color:#fff;font-weight:700;padding:12px}button.primary:hover:not(:disabled){background:var(--deep)}button:disabled{opacity:.6;cursor:not-allowed}
button.link{margin-top:14px;border:0;background:none;color:var(--wine);text-decoration:underline;padding:4px 0}
.form-status{min-height:1.4em;margin:6px 0 0;font-size:13px}.form-status.error{color:#b00020}.form-status.ok{color:#1c7c46}
.divider{display:flex;align-items:center;gap:10px;color:var(--muted);margin:18px 0;font-size:12px}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--line)}
.telegram{display:block;text-align:center;border:1px solid #d9ccd1;border-radius:8px;padding:11px;color:var(--wine);font-weight:700;text-decoration:none}.telegram:hover{background:var(--soft)}
.auth-foot{color:var(--muted);font-size:11px;text-align:center;margin-top:18px}
