:root{--bg:#0f0f0f;--panel:#161616;--border:#333;--tori:#0077be;--accent:#f39c12;--text:#e0e0e0;--text2:#999}
*{box-sizing:border-box;margin:0;padding:0;font-family:system-ui,'Segoe UI',sans-serif}
body{background:radial-gradient(circle at 50% 30%,#1a1a1a 0%,#0a0a0a 80%);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center}
.auth-wrap{width:100%;max-width:380px;padding:20px}
.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:32px 28px;text-align:center}
.auth-logo{font-size:3rem;color:var(--tori);margin-bottom:8px}
.auth-card h1{font-size:1.3rem;color:#fff;margin-bottom:4px}
.auth-sub{font-size:.8rem;color:var(--text2);margin-bottom:20px}
.auth-error{background:#2a1515;border:1px solid var(--uke,#c0392b);color:#e88;padding:8px 12px;border-radius:4px;font-size:.78rem;margin-bottom:14px}
.auth-success{background:#152a15;border:1px solid #4caf50;color:#8e8;padding:8px 12px;border-radius:4px;font-size:.78rem;margin-bottom:14px}
.pw-hint{font-size:.7rem;color:var(--text3);text-align:left;margin-top:-4px}
.auth-card form{display:flex;flex-direction:column;gap:10px}
.auth-card input{padding:10px 12px;background:#222;border:1px solid #444;color:#fff;border-radius:4px;outline:none;font-size:.85rem}
.auth-card input:focus{border-color:var(--tori)}
.auth-card button{padding:10px;background:var(--tori);color:#fff;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;font-weight:600;margin-top:4px}
.auth-card button:hover{background:#0099ee}
.auth-link{font-size:.78rem;color:var(--text2);margin-top:14px}
.auth-link a{color:var(--tori);text-decoration:none}
.auth-link a:hover{text-decoration:underline}
