/* Ordine dei livelli: le utilità di Tailwind (app.css) vincono sul resto. Tutto il CSS qui sotto sta nei livelli base e components. */
@layer theme, base, components, utilities;

/* Caratteri serviti dal nostro server (licenza OFL): niente richieste a Google. */
@font-face{font-family:"Literata";src:url(/fonts/literata-var.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans-var.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --paper:#ECEEF0; --panel:#FBFBFC; --panel-2:#F3F4F6;
  --ink:#1C2531; --ink-2:#566170; --ink-3:#8A94A1;
  --line:#D5D9DE; --line-soft:#E4E7EA;
  --honey:#D99A0B; --honey-soft:#F6E6B8;
  --ok:#2E7566; --ok-soft:#DDEDE8;
  --gone:#A8432E; --gone-soft:#F4DFD8;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Literata",Georgia,"Times New Roman",serif;
}

@layer base {
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font:15px/1.5 var(--sans);color:var(--ink);background:var(--paper);min-height:100vh}
a{color:var(--ink);text-underline-offset:3px}
a:hover{color:#000}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
button{font:inherit;cursor:pointer}
}

@layer components {
/* Pulsanti e campi */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:7px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:600}
.btn:hover{background:#000}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--panel-2)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{font-weight:500}
.field .hint{color:var(--ink-3);font-size:13px}
.field input[type=text],.field input[type=email],.field input[type=password]{
  font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
.field input:focus{outline:2px solid var(--honey);outline-offset:0;border-color:var(--ink)}
.field .err,.validation-summary-errors{color:var(--gone);font-size:13.5px}
.check{display:flex;align-items:center;gap:8px;margin-bottom:20px;color:var(--ink-2)}
.notice{padding:11px 14px;border-radius:7px;margin-bottom:18px;font-size:14px}
.notice.error{background:var(--gone-soft);color:#6f2b1b}
.notice.ok{background:var(--ok-soft);color:#1d4d42}

/* Accesso: due pannelli */
.auth{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:100vh}
.auth-side{background:var(--ink);color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px}
.brand svg{width:24px;height:24px}
.auth-side h2{font:500 30px/1.25 var(--serif);letter-spacing:-.01em;max-width:16em}
.auth-side p{color:#aeb7c2;max-width:30em;margin-top:14px}
.tl{display:flex;align-items:flex-end;gap:3px;height:64px;border-bottom:1px solid #ffffff44;margin-top:36px}
.tl i{flex:1;background:#ffffff33;border-radius:2px 2px 0 0;position:relative;min-width:3px}
.tl i.s::after{content:"";position:absolute;left:50%;bottom:-9px;width:7px;height:7px;background:var(--honey);transform:translateX(-50%) rotate(45deg)}
.tl i.g::before{content:"";position:absolute;left:0;right:0;top:-5px;height:3px;background:#e2836c;border-radius:2px}
.tl i.now{background:#fff}
.tl-cap{display:flex;gap:18px;margin-top:20px;color:#aeb7c2;font-size:13px;flex-wrap:wrap}
.tl-cap span{display:flex;align-items:center;gap:7px}
.tl-cap b{display:inline-block;width:9px;height:9px;border-radius:2px}
.auth-main{background:var(--panel);display:flex;align-items:center;justify-content:center;padding:48px 32px}
.auth-card{width:100%;max-width:400px}
.auth-card h1{font:500 28px/1.25 var(--serif);letter-spacing:-.01em;margin-bottom:8px}
.auth-card .lead{color:var(--ink-2);margin-bottom:28px}
.auth-card .alt{margin-top:22px;color:var(--ink-2)}
.auth-card .btn{width:100%}

/* Applicazione */
.top{display:flex;align-items:center;gap:20px;padding:0 24px;height:54px;background:var(--ink);color:#fff}
.top .tenant{padding:5px 11px;border:1px solid #ffffff33;border-radius:6px;color:#dfe4ea}
.top .spacer{flex:1}
.top .who{color:#aeb7c2}
.top form{margin:0}
.top .linkbtn{background:none;border:0;color:#dfe4ea;padding:4px 8px;border-radius:6px;text-decoration:underline;text-underline-offset:3px}
.top .linkbtn:hover{background:#ffffff1a}
.page{max-width:960px;margin:0 auto;padding:36px 24px 64px}
.page h1{font:500 28px/1.25 var(--serif);letter-spacing:-.01em;margin-bottom:6px}
.page .lead{color:var(--ink-2);margin-bottom:28px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:22px 24px;margin-bottom:20px}
.panel h2{font-size:15px;font-weight:600;margin-bottom:12px}
.usage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.meter{height:8px;border-radius:99px;background:var(--line-soft);overflow:hidden;margin:8px 0 6px}
.meter>div{height:100%;background:var(--ink);border-radius:99px}
.meter.w>div{background:var(--honey)}
.meter.f>div{background:var(--gone)}
.usage .num{font:500 24px/1.2 var(--serif);font-variant-numeric:lining-nums tabular-nums}
.usage .of{margin-top:6px}
.usage .none{color:var(--ink-2);font-size:15px;line-height:1.5}
.usage .of{color:var(--ink-2);font-size:13.5px}
.empty{padding:28px;text-align:center;color:var(--ink-2)}

@media (max-width:860px){
  .auth{grid-template-columns:1fr}
  .auth-side{padding:28px 24px;gap:20px}
  .auth-side h2{font-size:24px}
  .tl,.tl-cap{display:none}
  .auth-main{padding:32px 20px}
  .usage{grid-template-columns:1fr}
}
}
