:root{
  --bg:#ECE7DF; --card:#FFFFFF; --ink:#26241F; --muted:#6C6659; --ottone:#A97F2E; --verde:#5E6B3A;
  --btn:#2B2A26; --btnText:#FFFFFF; --border:#DBD4C8; --field:#FBF8F2; --error:#B23A2E; --errorBg:#F7E4E0;
  --logoLight:block; --logoDark:none;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#16130E; --card:#211D16; --ink:#F0E7D6; --muted:#AB9F8A; --ottone:#D6AC50; --verde:#A6C24A;
    --btn:#A6C24A; --btnText:#16200A; --border:#342C20; --field:#1B1710; --error:#E0715F; --errorBg:#3A241F;
    --logoLight:none; --logoDark:block;
  }
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:'Karla',Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:460px;margin:0 auto;padding:46px 22px;}
.logo{text-align:center;margin:0 0 22px;}
.logo img{height:92px;width:auto;}
.logo .l-dark{display:var(--logoDark)}
.logo .l-light{display:var(--logoLight)}
.card{background:var(--card);border-radius:20px;padding:32px 26px;text-align:center;box-shadow:0 12px 34px rgba(0,0,0,.07);}
.icon{width:64px;height:64px;margin:0 auto 6px;display:block;}
.icon-ok{color:var(--verde)}
.icon-err{color:var(--error)}
.title{font-family:'Playfair Display SC',Georgia,'Times New Roman',serif;font-weight:700;font-size:24px;margin:12px 0 10px;color:var(--ink);}
.msg{font-size:15.5px;line-height:1.55;color:var(--muted);margin:0;}
form{margin-top:6px}
label{display:block;text-align:left;font-size:12px;font-weight:700;letter-spacing:1px;color:var(--muted);margin:16px 0 6px;}
input[type=password]{width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:13px;font-size:16px;background:var(--field);color:var(--ink);font-family:'Karla';outline:none;}
input[type=password]:focus{border-color:var(--ottone);}
.hint{text-align:left;font-size:12.5px;color:var(--muted);margin:8px 0 0;}
.errorbox{background:var(--errorBg);color:var(--error);border-radius:12px;padding:12px 14px;font-size:14px;margin:0 0 4px;text-align:left;}
.btn{display:inline-block;margin-top:22px;padding:15px 30px;background:var(--btn);color:var(--btnText);text-decoration:none;border:none;border-radius:28px;font-family:'Karla';font-weight:700;font-size:16px;cursor:pointer;width:100%;}
.btn:active{opacity:.9}
.footer{text-align:center;color:var(--muted);font-size:12px;margin-top:22px;letter-spacing:.3px;}
