/* Honesto · stile comune delle pagine (spec 009, T009, T007; FR-009-10, FR-009-12, FR-009-27).
   Colori, caratteri e componenti del prototipo (docs/prototype/): «sala di controllo» in luce chiara, tema
   scuro a scelta. Nessuno stile in linea nelle pagine (Content-Security-Policy con style-src 'self'). */

:root{
  /* colori dei modelli del committente (Dashboard.dc.html, Admin.dc.html; T040) */
  --bg:#F2F5F8; --panel:#FFFFFF; --panel-2:#F7F9FB; --ink:#10233A; --muted:#4D6074; --line:#DCE4EB;
  --active:#E3EAF0; --rule:#EBF0F4; --control:#C5D1DC; --primary:#10233A; --primary-hover:#1E3A5A; --primary-ink:#FFFFFF;
  --accent:#0B6F8C; --accent-soft:rgba(11,111,140,.10); --accent-testo:#0B6F8C;
  --hist:#2366A8; --hist-soft:rgba(35,102,168,.16);
  --fc:#D9640F; --fc-ink:#A94B08; --band:rgba(217,100,15,.22); --band2:rgba(217,100,15,.09);
  --band-1:rgba(217,100,15,.10); --band-2:rgba(217,100,15,.24); --glow:rgba(217,100,15,.38);
  --good:#1D7348; --ok:#1D7348; --bad:#B02A2A; --warn:#80570A;
  --ok-bg:#DDF5E7; --warn-bg:#FFF4D6; --err-bg:#FDEBEA; --off-bg:#E9EEF2; --off:#5B6B7B; --sel:#FDF1E7;
  --shadow:0 1px 2px rgba(16,35,58,.06),0 6px 20px rgba(16,35,58,.06);
  --c-energia:#D08F00; --c-materie:#B8662A; --c-macro:#2F6FD0; --c-vendite:#6A4FD0; --c-logistica:#5C7F14;
  --c-meteo:#139AB3; --c-calendario:#178A7C; --c-notizie:#B0479A; --c-utente:#2E8B3E;
  --f-display:'Chakra Petch','Segoe UI',system-ui,sans-serif;
  --f-body:'Instrument Sans','Segoe UI',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'Cascadia Mono',monospace;
  --btn-pri-ink:#fff;
}
:root[data-theme="dark"]{
  --bg:#06121C; --panel:#0B1C2A; --panel-2:#10263A; --ink:#E3EEF6; --muted:#8AA3B8; --line:#1C3A50;
  --accent:#3CC8E3; --accent-soft:rgba(60,200,227,.12); --accent-testo:#3CC8E3;
  --hist:#6DB8E3; --hist-soft:rgba(109,184,227,.2);
  --fc:#FFA25A; --band:rgba(255,162,90,.22); --band2:rgba(255,162,90,.09);
  --band-1:rgba(255,162,90,.11); --band-2:rgba(255,162,90,.25); --glow:rgba(255,162,90,.42);
  --good:#4CC38A; --ok:#4CC38A; --bad:#FF7B72; --warn:#E6B23A;
  --active:#163049; --rule:#15324A; --control:#2E5068; --primary:#3CC8E3; --primary-hover:#6AD6EB; --primary-ink:#06121C;
  --fc-ink:#FFA25A; --ok-bg:#0F3A2A; --warn-bg:#3A2E0C; --err-bg:#3D1715; --off-bg:#1A2F40; --off:#9DB2C4; --sel:#2A1D10;
  --shadow:0 0 0 1px rgba(60,200,227,.04),0 8px 28px rgba(0,0,0,.35);
  --c-energia:#FFC94A; --c-materie:#F0A060; --c-macro:#6EA8FF; --c-vendite:#A99BFF; --c-logistica:#B5E05A;
  --c-meteo:#4FD3E8; --c-calendario:#46C2B0; --c-notizie:#E07BD0; --c-utente:#5FD07A;
  --btn-pri-ink:#1a0f05;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15.5px;line-height:1.55;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 32px;
  background-image:radial-gradient(ellipse 70% 420px at 70% 0,var(--accent-soft),transparent);background-repeat:no-repeat}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent-testo)}  /* testo su fondo chiaro: contrasto almeno 4,5:1 (WCAG 2.2 AA) */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto}
.salta{position:absolute;left:-9999px;top:8px;background:var(--panel);color:var(--ink);padding:8px 12px;border:1px solid var(--line);border-radius:8px;z-index:10}
.salta:focus{left:16px}
.vis-nascosto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Barra delle pagine pubbliche */
.nav{display:flex;align-items:center;gap:14px 22px;flex-wrap:wrap;padding-block:16px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:700;font-size:1.25rem;margin-right:auto;text-decoration:none;color:var(--ink);letter-spacing:.02em}
.brand svg{width:30px;height:30px;flex:none}
.brand small{display:block;font-family:var(--f-mono);font-weight:400;font-size:10.5px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.links{display:flex;gap:18px;font-size:14px}
.links a{color:var(--muted);text-decoration:none}.links a:hover{color:var(--ink)}
@media (max-width:760px){.links{display:none}}
.theme{display:inline-grid;grid-auto-flow:column;border:1px solid var(--line);background:var(--panel);padding:3px;gap:3px;border-radius:8px}
.theme button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:4px 9px;border-radius:6px;font-size:12.5px;color:var(--muted);cursor:pointer}
.theme button svg{width:14px;height:14px}
.theme button[aria-pressed="true"]{background:var(--accent);color:var(--panel)}

/* Pulsanti */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:10px 18px;font-weight:600;font-size:14.5px;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:transform .15s,background .2s}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn.pri{background:#B4520F;color:#fff}
:root[data-theme="dark"] .btn.pri{background:var(--fc);color:var(--btn-pri-ink)}
.btn.sec{background:var(--panel);border-color:var(--line);color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.danger{background:var(--bad);color:#fff}
:root[data-theme="dark"] .btn.danger{color:#1a0505}
.tl{font-size:12.5px;text-decoration:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:5px 10px;border-radius:7px;cursor:pointer}
.tl:hover{border-color:var(--accent)}

/* Moduli */
form{display:flex;flex-direction:column;gap:10px}
label.f{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500}
label.f input,label.f select,label.f textarea{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:9px 11px;font-size:14.5px;color:var(--ink)}
label.f input:focus-visible,label.f select:focus-visible{outline:2px solid var(--accent);outline-offset:0}
label.f .opz{font-weight:400;color:var(--muted)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:420px){.row2{grid-template-columns:1fr}}
fieldset{border:1px solid var(--line);border-radius:8px;padding:8px 12px 10px;margin:0}
legend{font-size:13px;font-weight:600;padding:0 4px}
.scelte{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}
.scelte label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink)}
.chk input{margin-top:3px;flex:none}
.err{font-size:12.5px;color:var(--bad);min-height:0;margin:0}
.err:empty{display:none}
.hint{font-size:12px;color:var(--muted);margin:0}
.ok{color:var(--ok)}
.avviso{border:1px solid var(--line);border-left:4px solid var(--warn);background:var(--panel-2);padding:10px 12px;border-radius:8px;font-size:13.5px;margin:0}
.esito{font-size:14px;margin:0}
.esito:empty{display:none}

/* Schede con i testi */
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}
.card h2,.card h3{font-family:var(--f-display);margin:0 0 6px}
.card h2{font-size:1.2rem}.card h3{font-size:1.1rem}

/* Finestra */
dialog{border:1px solid var(--line);border-radius:14px;padding:0;background:var(--panel);color:var(--ink);width:min(480px,calc(100vw - 32px));box-shadow:0 30px 80px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(6,18,28,.45)}
.dlg{padding:20px;max-height:calc(100vh - 48px);overflow-y:auto}
.dlg-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.dlg-h h2{font-family:var(--f-display);font-size:1.2rem;margin:0}
.x{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px}

/* Piè di pagina con i testi legali (T020, AC23) */
.piede{max-width:1180px;margin:32px auto 0;padding-top:14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
.piede nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.piede a{color:var(--muted)}
.piede a:hover{color:var(--ink)}

/* Movimento ridotto (FR-009-10, AC4): nessuna animazione né transizione; le tele disegnano un fotogramma fisso */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Marchio: sole sull'orizzonte (stessi colori del prototipo, senza attributi con le variabili) */
.brand .sole{fill:var(--fc)}
.brand .righe{stroke:var(--hist);fill:none}
