:root{--bg:#f3f5f8;--card:#fff;--text:#262b38;--muted:#6b7385;--line:#e1e5ec;--accent:#1fa9de;--navy:#1d2230;--ko:#c8423b;--warn:#d48a00;--ok:#1f9d6b}
@media (prefers-color-scheme:dark){:root{--bg:#15171b;--card:#1f2124;--text:#e6e8ec;--muted:#9aa1b0;--line:#2c2f33;--navy:#1f8fc4}}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--bg);color:var(--text);font-family:Mulish,system-ui,sans-serif;font-size:14px;padding:16px}
.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:32px 28px;box-shadow:0 8px 30px rgba(0,0,0,.08);text-align:center}
.login-logo{width:64px;height:64px;border-radius:14px}
h1{font-family:'Frank Ruhl Libre',Georgia,serif;font-size:26px;margin:14px 0 2px}
.login-sub{color:var(--muted);margin:0 0 22px}
.msg{padding:10px 12px;border-radius:8px;margin-bottom:14px;text-align:left;font-size:13px;background:#e8f6ef;color:#13704b}
.msg.errore{background:#fbe6e4;color:#a8322b}.msg.avviso{background:#fff4dc;color:#8a5a00}
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 14px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.ms-logo{display:grid;grid-template-columns:repeat(2,8px);gap:2px}.ms-logo i{width:8px;height:8px;display:block}
.servizio{margin-top:22px;text-align:left}.servizio summary{cursor:pointer;color:var(--muted);font-size:12px;text-align:center}
form{margin-top:14px;display:grid;gap:12px;text-align:left}
label{display:grid;gap:5px;font-size:12px;color:var(--muted);font-weight:600}
input{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}

.disp{margin:0 0 14px}.disp-sub{margin-top:6px;font-size:12px;color:var(--muted);text-align:center}
