/* VaultDefender v002 - style_v002.css - tema scuro moderno, responsive */
:root{
  --vd-versione:"v002";
  --sfondo:#0b1020; --sfondo2:#111831; --pannello:#151d3a; --pannello2:#1b2547; --bordo:#26315c;
  --testo:#e6eaf7; --testo2:#9aa6cc; --primario:#4f8cff; --primario2:#3b6fe0;
  --ok:#2fd18b; --avviso:#f5b83d; --errore:#ff5d6c; --info:#53c7f0; --viola:#a77bff;
  --raggio:12px; --ombra:0 8px 28px rgba(0,0,0,.35);
  --menu-l:230px; --topbar-h:60px;
  font-size:15px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--sfondo);color:var(--testo);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.45}
body{min-height:100vh;padding-bottom:36px;background:radial-gradient(1200px 600px at 80% -10%,#1a2a5e55,transparent),var(--sfondo)}
a{color:var(--primario)}
h1{font-size:1.45rem;margin:.2rem 0 1rem} h2{font-size:1.15rem;margin:.2rem 0 .8rem} h3{font-size:1rem;margin:.2rem 0 .6rem;color:var(--testo2);font-weight:600}
.piccolo{font-size:.82rem;color:var(--testo2)}
.errore{color:var(--errore);min-height:1.2em}
.noscript{padding:2rem;text-align:center}
[hidden]{display:none!important}

/* Brand */
.brand{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;letter-spacing:.3px;white-space:nowrap}
.brand b{color:var(--primario)} .brand-grande{font-size:1.7rem;justify-content:center}
.logo{filter:drop-shadow(0 0 6px #4f8cff88)}

/* Login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.login-card{width:100%;max-width:430px;background:var(--pannello);border:1px solid var(--bordo);border-radius:18px;padding:1.6rem;box-shadow:var(--ombra)}
.login-sotto{text-align:center;color:var(--testo2);margin:.3rem 0 1rem}
.login-rapido{margin-top:1rem}
.modello{margin-top:1rem;text-align:center}

/* Form */
label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--testo2);margin-bottom:.7rem}
input,select,textarea{background:var(--sfondo2);color:var(--testo);border:1px solid var(--bordo);border-radius:9px;padding:.55rem .65rem;font:inherit;font-size:.95rem;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primario);outline-offset:0;border-color:transparent}
input[readonly]{opacity:.85;background:#0e1530;font-family:ui-monospace,Consolas,monospace;letter-spacing:.5px}
.griglia-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 1rem}
fieldset{border:1px solid var(--bordo);border-radius:var(--raggio);padding:.8rem 1rem .2rem;margin:0 0 1rem}
legend{color:var(--primario);padding:0 .4rem;font-weight:600}

/* Bottoni */
.btn{border:1px solid transparent;border-radius:9px;padding:.5rem .9rem;font:inherit;font-size:.9rem;cursor:pointer;color:var(--testo);background:var(--pannello2);transition:.15s;white-space:nowrap}
.btn:hover{filter:brightness(1.15)} .btn:disabled{opacity:.45;cursor:not-allowed}
.btn-primario{background:var(--primario);color:#fff} .btn-secondario{background:transparent;border-color:var(--bordo)}
.btn-ok{background:#1f7a55} .btn-avviso{background:#8a6512} .btn-pericolo{background:#8b2a35}
.btn-piccolo{padding:.3rem .6rem;font-size:.8rem} .btn-largo{width:100%;padding:.7rem}
.btn-icona{background:transparent;border:0;color:var(--testo);font-size:1.3rem;cursor:pointer;padding:.2rem .5rem}
.azioni{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.chip-lista{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{background:var(--pannello2);border:1px solid var(--bordo);border-radius:999px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer;color:var(--testo)}
.chip:hover{border-color:var(--primario)}

/* Layout app */
.app{display:grid;grid-template-columns:var(--menu-l) 1fr;grid-template-rows:var(--topbar-h) 1fr;min-height:100vh}
.topbar{grid-column:1/-1;display:flex;align-items:center;gap:1rem;padding:0 1rem;background:#0d1430e6;border-bottom:1px solid var(--bordo);position:sticky;top:0;z-index:20;backdrop-filter:blur(8px)}
.topbar-centro{flex:1;display:flex;align-items:center;gap:.8rem;min-width:0}
.topbar-destra{display:flex;align-items:center;gap:.6rem}
.sel-tenant{flex-direction:row;align-items:center;margin:0;gap:.5rem}
.sel-tenant select{width:auto;max-width:260px;padding:.35rem .5rem}
.utente{font-size:.85rem;color:var(--testo2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.menu{background:var(--sfondo2);border-right:1px solid var(--bordo);padding:1rem .6rem;display:flex;flex-direction:column;gap:.15rem;position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow:auto}
.menu a{color:var(--testo2);text-decoration:none;padding:.55rem .7rem;border-radius:9px;font-size:.92rem}
.menu a:hover{background:var(--pannello);color:var(--testo)}
.menu a.attivo{background:linear-gradient(90deg,#4f8cff33,transparent);color:#fff;border-left:3px solid var(--primario)}
.menu-piede{margin-top:auto;padding:.6rem;word-break:break-all}
.contenuto{padding:1.2rem 1.4rem 3rem;min-width:0;outline:none}
.solo-mobile{display:none}

/* Badge */
.badge{display:inline-block;font-size:.72rem;padding:.15rem .5rem;border-radius:999px;background:var(--pannello2);border:1px solid var(--bordo);white-space:nowrap;font-weight:600}
.badge-versione{color:var(--testo2)} .badge-demo{background:#f5b83d22;border-color:#f5b83d88;color:var(--avviso)}
.b-ok{background:#2fd18b1f;border-color:#2fd18b77;color:var(--ok)}
.b-avviso{background:#f5b83d1f;border-color:#f5b83d77;color:var(--avviso)}
.b-errore{background:#ff5d6c1f;border-color:#ff5d6c77;color:var(--errore)}
.b-info{background:#53c7f01f;border-color:#53c7f077;color:var(--info)}
.b-neutro{color:var(--testo2)} .b-viola{background:#a77bff1f;border-color:#a77bff77;color:var(--viola)}

/* Avvisi */
.avviso{border-radius:var(--raggio);padding:.7rem .9rem;margin:0 0 1rem;border:1px solid;font-size:.9rem}
.avviso-info{background:#53c7f012;border-color:#53c7f055}
.avviso-avviso{background:#f5b83d12;border-color:#f5b83d66}
.avviso-errore{background:#ff5d6c12;border-color:#ff5d6c66}
.avviso-ok{background:#2fd18b12;border-color:#2fd18b55}

/* Card e griglie */
.griglia{display:grid;gap:1rem}
.g-kpi{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.g-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.g-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:var(--pannello);border:1px solid var(--bordo);border-radius:var(--raggio);padding:1rem;box-shadow:var(--ombra);min-width:0}
.kpi .valore{font-size:1.9rem;font-weight:700;line-height:1.1}
.kpi .etichetta{color:var(--testo2);font-size:.82rem}
.kpi .dettaglio{font-size:.8rem;color:var(--testo2);margin-top:.3rem}
.kpi.ok .valore{color:var(--ok)} .kpi.avviso .valore{color:var(--avviso)} .kpi.errore .valore{color:var(--errore)} .kpi.info .valore{color:var(--info)}
.sezione{margin-top:1.2rem}
.intestazione{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.8rem}
.intestazione h1,.intestazione h2{margin:0}
.filtri{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.8rem}
.filtri input,.filtri select{width:auto;min-width:150px;flex:1 1 150px;max-width:260px}

/* Grafici */
.grafico{width:100%;height:240px;display:block}
.legenda{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.8rem;color:var(--testo2);margin-top:.4rem}
.legenda i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.3rem;vertical-align:middle}
.ciambella{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.ciambella svg{width:160px;height:160px;flex:0 0 auto}
.barra{height:8px;background:var(--sfondo2);border-radius:99px;overflow:hidden}
.barra>span{display:block;height:100%;background:var(--primario);border-radius:99px}

/* Tabelle */
.tabella-box{overflow-x:auto;border:1px solid var(--bordo);border-radius:var(--raggio);background:var(--pannello)}
table{width:100%;border-collapse:collapse;font-size:.87rem}
th,td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid var(--bordo);vertical-align:middle}
th{color:var(--testo2);font-weight:600;background:var(--sfondo2);position:sticky;top:0;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#ffffff06}
tr.cliccabile{cursor:pointer}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:.8rem;word-break:break-all}
.vuoto{padding:1.5rem;text-align:center;color:var(--testo2)}
dl.dettagli{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:.35rem .9rem;margin:0;font-size:.88rem}
dl.dettagli dt{color:var(--testo2)} dl.dettagli dd{margin:0;word-break:break-word}
details{background:var(--sfondo2);border:1px solid var(--bordo);border-radius:9px;padding:.5rem .8rem;margin-bottom:.5rem}
summary{cursor:pointer}
pre{white-space:pre-wrap;word-break:break-all;font-size:.75rem;max-height:340px;overflow:auto;background:#0a0f22;padding:.6rem;border-radius:8px}

/* Finestra */
.finestra{border:1px solid var(--bordo);border-radius:16px;background:var(--pannello);color:var(--testo);padding:0;width:min(820px,96vw);max-height:90vh;box-shadow:var(--ombra)}
.finestra::backdrop{background:#000a;backdrop-filter:blur(2px)}
.finestra-testa{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--bordo);position:sticky;top:0;background:var(--pannello)}
.finestra-testa h2{margin:0}
.finestra-corpo{padding:1rem;overflow:auto}

/* Notifiche */
.notifiche{position:fixed;right:1rem;bottom:2.6rem;display:flex;flex-direction:column;gap:.5rem;z-index:60;max-width:min(380px,92vw)}
.notifica{background:var(--pannello2);border:1px solid var(--bordo);border-left:4px solid var(--primario);padding:.6rem .8rem;border-radius:10px;box-shadow:var(--ombra);font-size:.88rem;animation:entra .2s ease-out}
.notifica.ok{border-left-color:var(--ok)} .notifica.errore{border-left-color:var(--errore)} .notifica.avviso{border-left-color:var(--avviso)}
@keyframes entra{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}

/* Footer CT74 (comandamento 16) */
.footer-ct74{position:fixed;left:0;right:0;bottom:0;text-align:center;padding:.45rem;font-size:.8rem;letter-spacing:1px;color:#ffffff;opacity:.38;background:linear-gradient(transparent,#0b102099);pointer-events:none;z-index:50}

/* Responsive */
@media (max-width:900px){
  :root{--menu-l:0px}
  .app{grid-template-columns:1fr}
  .solo-mobile{display:inline-block}
  .menu{position:fixed;left:0;top:var(--topbar-h);width:260px;z-index:30;transform:translateX(-105%);transition:transform .2s;box-shadow:var(--ombra)}
  .menu.aperto{transform:none}
  .contenuto{padding:1rem .8rem 3rem}
  .badge-demo,.utente{display:none}
  .topbar{gap:.5rem;padding:0 .5rem}
  .g-2{grid-template-columns:1fr}
  .sel-tenant select{max-width:150px}
  .filtri input,.filtri select{max-width:none}
}
@media (max-width:520px){
  .brand span:nth-child(2){display:none}
  .kpi .valore{font-size:1.5rem}
  .g-kpi{grid-template-columns:repeat(2,1fr)}
  dl.dettagli{grid-template-columns:1fr}
  dl.dettagli dt{margin-top:.4rem}
}

/* v002: badge stato collegamento server (sostituisce il badge "DATI DI ESEMPIO") e stato vuoto con invito all'azione */
.badge-server{background:#53c7f022;border-color:#53c7f088;color:var(--info)}
.badge-server.collegato{background:#2fd18b22;border-color:#2fd18b88;color:var(--ok)}
.vuoto .btn{margin-top:.6rem}
@media (max-width:900px){.badge-server{display:none}}
