/* TRATTO V10 — stile condiviso (palette del simulatore DAPL08: carta/minio/savoia) */
:root{
  --carta:#F4F1EA; --minio:#C34A2E; --ink:#15203A; --savoia:#2E4374; --rame:#5E7E6E;
  --riga:#e3ded1; --neg:#a8322a; --pos:#3d6b52; --fondo-cella:#fffdf8;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{background:var(--carta); color:var(--ink); font-family:Georgia,'Times New Roman',serif; font-size:15px; line-height:1.45;}
header.app{padding:20px 32px 10px; border-bottom:3px solid var(--minio); display:flex; flex-wrap:wrap; gap:10px 18px; align-items:baseline; position:relative;}
/* riquadro utente / tasto login: in alto a destra, all'altezza del titolo */
header.app a.logout-btn, header.app .user-box{position:absolute; top:22px; right:32px; font-family:'Courier New',monospace;
  font-size:12px; letter-spacing:.06em; color:var(--savoia); text-decoration:none;
  border:1px solid var(--riga); background:var(--fondo-cella); padding:5px 12px; border-radius:3px;
  display:flex; align-items:center; gap:10px;}
header.app a.logout-btn{text-transform:uppercase;}
header.app a.logout-btn:hover{border-color:var(--minio); color:var(--minio);}
header.app .user-box b{color:var(--ink); font-weight:700;}
header.app .user-box a.cambia{font-size:11px; text-transform:uppercase; color:var(--minio); text-decoration:none;
  border-left:1px solid var(--riga); padding-left:10px;}
header.app .user-box a.cambia:hover{text-decoration:underline;}
header.app .eyebrow{font-family:'Courier New',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--minio); display:block;}
header.app h1{font-size:22px; font-weight:700;}
/* menu principale: occupa tutta la larghezza sotto il titolo, una riga per livello (Tratto · ABADIR/R.ar.a) */
header.app nav{flex-basis:100%; display:flex; flex-direction:column; gap:2px; margin-top:6px;}
header.app nav .nav-riga{display:flex; flex-wrap:wrap; gap:8px 14px; align-items:baseline; padding:5px 0; border-top:1px dashed var(--riga);}
header.app nav .nav-etichetta{font-family:'Courier New',monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--minio); min-width:110px;}
header.app nav a{font-family:'Courier New',monospace; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--savoia); text-decoration:none; border-bottom:2px solid transparent; padding-bottom:2px;}
header.app nav a.attiva{border-bottom-color:var(--minio); color:var(--ink);}
/* voce in evidenza (es. Budget R.ar.a): in Minio, distinta dalle derivazioni/analisi del bilancio */
header.app nav a.evidenza{color:var(--minio); font-weight:700;}
header.app nav a.evidenza.attiva{color:var(--minio); border-bottom-color:var(--ink);}
/* voce riepilogativa (es. Consolidato R.ar.a): in neretto ma nel colore normale, non è previsionale */
header.app nav a.riepilogo{font-weight:700;}
/* voce Verifiche: triangolo giallo di errore davanti al nome */
header.app nav a.attenzione::before{content:"⚠ "; color:#e0a800;}
select,input[type=number],input[type=text],button{font-family:'Courier New',monospace; font-size:13px; border:1px solid var(--riga); background:var(--fondo-cella); color:var(--ink); padding:4px 8px; border-radius:2px;}
select:focus,input:focus{outline:2px solid var(--savoia);}
button.primario{background:none; border:1px solid var(--ink); cursor:pointer; text-transform:uppercase; letter-spacing:.08em; font-size:12px; padding:7px 14px;}
button.primario:hover{background:var(--ink); color:var(--carta);}
main{padding:20px 32px 60px;}
h3.sez{font-size:17px; margin:24px 0 8px; border-left:4px solid var(--minio); padding-left:10px;}
/* banner punto di vista */
.pdv-banner{display:none; background:var(--savoia); color:var(--carta); padding:8px 32px; font-family:'Courier New',monospace; font-size:13px; letter-spacing:.04em;}
.pdv-banner.attivo{display:block;}
/* KPI */
.kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; margin:16px 0 6px;}
.kpi{border:1px solid var(--riga); background:var(--fondo-cella); padding:12px 14px;}
.kpi .lbl{font-family:'Courier New',monospace; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--rame);}
.kpi .val{font-family:'Courier New',monospace; font-size:20px; font-weight:700; margin-top:4px;}
.kpi .sub{font-size:11.5px; color:var(--savoia); margin-top:2px;}
.neg{color:var(--neg);} .pos{color:var(--pos);}
/* badge quadratura */
.badge{display:inline-block; font-family:'Courier New',monospace; font-size:11px; letter-spacing:.06em; padding:3px 10px; border:1px solid var(--riga); background:var(--fondo-cella); margin-right:8px;}
.badge.ok{border-color:var(--pos); color:var(--pos);}
.badge.warn{border-color:var(--neg); color:var(--neg); font-weight:700;}
/* tabelle */
.tblwrap{overflow-x:auto; border:1px solid var(--riga); margin-top:6px;}
table{width:100%; border-collapse:collapse; font-family:'Courier New',monospace; font-size:12px; background:var(--fondo-cella);}
th,td{padding:5px 7px; text-align:right; border-bottom:1px solid var(--riga); white-space:nowrap;}
th:first-child,td:first-child{text-align:left; font-family:Georgia,serif; font-size:12.5px;}
thead th{background:var(--ink); color:var(--carta); font-size:11px; letter-spacing:.04em; position:sticky; top:0;}
tr.tot td{font-weight:700; background:#efece2;}
tr.sep td{border-top:2px solid var(--ink);}
td.n{color:var(--neg);} td.p{color:var(--pos);}
td.clic{cursor:pointer; text-decoration:underline dotted;}
td.clic:hover{background:#efece2;}
.nota{font-size:12.5px; color:var(--savoia); margin-top:8px; max-width:90ch;}
/* etichetta classe del dato: effettivo vs stimato (linguaggio unico del sistema) */
.stimato{font-style:italic; color:var(--savoia);}
canvas.grafico{width:100%; height:230px; border:1px solid var(--riga); background:var(--fondo-cella); display:block;}

/* badge profilo sola lettura nella barra di navigazione */
.ruolo-badge{display:inline-block;background:#8a6d0f;color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:10px;margin-right:10px;vertical-align:middle;}

/* ---- "il Professore": helper contestuale in basso a destra ---- */
.thelper{position:fixed; right:18px; bottom:14px; z-index:60; display:flex; flex-direction:column; align-items:flex-end; gap:6px;}
.thelper .havatar{width:64px; height:64px; border-radius:50%; border:2px solid var(--ink); background:var(--fondo-cella);
  color:var(--ink); padding:7px; cursor:pointer; box-shadow:0 3px 10px rgba(21,32,58,.18); transition:transform .15s;}
.thelper .havatar:hover{transform:scale(1.06);}
.thelper .havatar svg{width:100%; height:100%;}
.thelper .hnascondi{font-family:'Courier New',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid var(--riga); background:var(--fondo-cella); color:var(--savoia); padding:2px 8px; border-radius:8px; cursor:pointer;}
.thelper .hnascondi:hover{color:var(--minio); border-color:var(--minio);}
.thelper .hb{display:none; max-width:340px; background:var(--fondo-cella); border:1px solid var(--ink); border-radius:10px 10px 2px 10px;
  padding:10px 13px; box-shadow:0 4px 14px rgba(21,32,58,.2); font-size:13px; line-height:1.45;}
.thelper .hb.on{display:block; animation:hbin .18s ease-out;}
@keyframes hbin{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}
.thelper .hb-testo{margin-bottom:8px;}
.thelper .hb-mini{font-size:11px; color:#888;}
.thelper .hb-form{display:flex; gap:6px;}
.thelper .hb-form input{flex:1; font-size:12px; padding:4px 8px;}
.thelper .hb-form button{cursor:pointer;}
.thelper.linguetta .hling{font-family:'Courier New',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  border:1px solid var(--ink); border-bottom:none; background:var(--fondo-cella); color:var(--ink);
  padding:5px 14px 7px; border-radius:8px 8px 0 0; cursor:pointer; box-shadow:0 -2px 8px rgba(21,32,58,.12);}
.thelper.linguetta{bottom:0;}
.thelper.linguetta .hling:hover{color:var(--minio); border-color:var(--minio);}
@media print{.thelper{display:none;}}
