:root{
  --navy:#1F3864; --orange:#ED6B10; --ink:#16233a; --muted:#5b6b83;
  --line:rgba(31,56,100,.14);
  --panel:rgba(255,255,255,.86);
  --panel-solid:rgba(255,255,255,.94);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:'Montserrat',Arial,Helvetica,sans-serif;color:var(--ink);
  background:#0f1a2b linear-gradient(135deg,#12233c,#2e4e72) center/cover no-repeat fixed;
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,30,50,.30) 0%,rgba(20,32,52,.42) 55%,rgba(16,28,46,.55) 100%);
}
#root{position:relative;min-height:100%}
a{color:inherit}

/* ------------------------------ accesso ---------------------------- */
body.gate:before{background:radial-gradient(130% 95% at 50% 45%,rgba(14,24,40,.14) 0%,rgba(14,24,40,.52) 78%)}
.gate-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.gate-box{
  width:390px;background:var(--panel-solid);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.9);border-radius:14px;padding:34px 30px;
  box-shadow:0 26px 60px rgba(16,32,60,.28);
}
.gate-box .mark{font-size:17px;font-weight:700;letter-spacing:1.6px;color:var(--navy)}
.gate-box .sub{font-size:10.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--orange);margin:4px 0 26px}
.gate-box .note{font-size:11.5px;color:var(--muted);margin-bottom:14px;line-height:1.5}
.f{margin-bottom:14px}
.f label{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.f input,.f select{
  width:100%;padding:10px 12px;border-radius:7px;border:1px solid #c6d0e0;
  background:#fff;color:var(--ink);font-size:13px;font-family:inherit;
}
.f input:focus,.f select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(237,107,16,.15)}
.gate-box button{
  width:100%;margin-top:8px;padding:12px;border:0;border-radius:7px;cursor:pointer;
  background:var(--orange);color:#fff;font-family:inherit;font-weight:700;font-size:12px;letter-spacing:1.2px;
}
.gate-box button:hover{background:#d15d09}
.gate-box .foot{margin-top:20px;font-size:9.5px;color:#8494ab;text-align:center;letter-spacing:.4px}
.err{background:#fdf1f0;border:1px solid #e8bdb8;color:#b3261e;
  padding:9px 11px;border-radius:7px;font-size:11.5px;margin-bottom:14px}

/* ------------------------------ guscio ----------------------------- */
.top{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;padding:0 26px;height:58px;
  background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);
  box-shadow:0 2px 14px rgba(16,32,60,.08);
}
.top .brand{font-weight:700;letter-spacing:.6px;font-size:13.5px;color:var(--navy)}
.top .brand span{color:var(--orange)}
.top nav{display:flex;gap:4px;margin-left:12px}
.top nav button{
  background:transparent;border:0;color:var(--muted);font-family:inherit;font-size:12px;padding:8px 14px;
  border-radius:7px;cursor:pointer;letter-spacing:.3px}
.top nav button:hover{color:var(--navy);background:rgba(31,56,100,.07)}
.top nav button.on{color:var(--navy);background:rgba(237,107,16,.14);box-shadow:inset 0 -2px 0 var(--orange);font-weight:600}
.top nav .navmod{
  display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:8px 14px;border-radius:7px;
  text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.3px;color:#fff;
  background:var(--orange);box-shadow:0 2px 10px rgba(237,107,16,.35)}
.top nav .navmod:hover{background:#d15d09}
.top nav .navmod i{font-style:normal;font-size:10px;opacity:.85}
.top .sp{flex:1}
.top .who{text-align:right;line-height:1.25}
.top .who b{display:block;font-size:12px;font-weight:600;color:var(--navy)}
.top .who span{font-size:10px;color:var(--muted);letter-spacing:.5px}
.top .lo{background:rgba(31,56,100,.08);border:0;color:var(--navy);font-family:inherit;font-size:11px;
  padding:7px 12px;border-radius:6px;cursor:pointer}
.top .lo:hover{background:rgba(31,56,100,.16)}

.wrap{max-width:1240px;margin:0 auto;padding:30px 26px 70px}
.head{margin-bottom:24px}
.head h1{margin:0 0 6px;font-size:24px;letter-spacing:.3px;color:#fff;
  text-shadow:0 2px 16px rgba(8,16,30,.75)}
.head p{margin:0;color:#dfe7f2;font-size:12.5px;line-height:1.6;max-width:840px;
  text-shadow:0 1px 10px rgba(8,16,30,.8)}
.head b{color:#fff}
.head .lnk{color:#ffb26b;text-decoration:none;margin-left:8px;font-weight:600}

/* ------------------------------- schede ---------------------------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.card{
  display:block;text-decoration:none;background:var(--panel);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.85);border-radius:12px;padding:20px;transition:.16s;
  box-shadow:0 8px 26px rgba(16,32,60,.13);
}
.card:hover{transform:translateY(-2px);border-color:rgba(237,107,16,.6);box-shadow:0 14px 34px rgba(16,32,60,.2)}
.card h3{margin:6px 0 8px;font-size:16px;color:var(--navy)}
.card p{margin:0;font-size:12px;color:#4d5d75;line-height:1.55;min-height:52px}
.card .st{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:#1d7a4b;display:flex;align-items:center;gap:7px}
.card .st i{width:7px;height:7px;border-radius:50%;background:#22a463;box-shadow:0 0 7px rgba(34,164,99,.7)}
.card.down .st{color:#b3261e}
.card.down .st i{background:#d9534f;box-shadow:none}
.card .kpis{display:flex;gap:18px;margin:14px 0 4px;flex-wrap:wrap}
.card .kpis span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.card .kpis b{font-size:15px;font-weight:600;color:var(--navy)}
.card .areas{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}
.card .areas span{font-size:9px;letter-spacing:.8px;padding:3px 9px;border-radius:20px;
  background:rgba(31,56,100,.09);color:var(--navy)}

.area-sec{margin-bottom:26px}
.area-h{margin:0 0 12px;font-size:10.5px;text-transform:uppercase;letter-spacing:1.8px;color:#fff;
  text-shadow:0 1px 10px rgba(8,16,30,.8);display:flex;align-items:center;gap:12px}
.area-h:after{content:"";flex:1;height:1px;background:rgba(255,255,255,.28)}
.card.planned{opacity:.72;cursor:default}
.card.planned .st{color:#8a6d1f}
.card.planned .st i{background:#e0b53c;box-shadow:none}
.card.planned:hover{transform:none;border-color:rgba(255,255,255,.85);box-shadow:0 8px 26px rgba(16,32,60,.13)}
.kpis.empty-k{font-size:10.5px;color:var(--muted);font-style:italic;margin-top:14px}
/* struttura a tutta pagina */
main.full{padding:0;margin:0;max-width:none}
.orgfull{height:calc(100vh - 58px);background:#fff}
.orgfull iframe{width:100%;height:100%;border:0;display:block}

/* ---------------------------- cruscotto ---------------------------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.tile{background:var(--panel);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);
  border-radius:12px;padding:16px 18px 12px;box-shadow:0 8px 26px rgba(16,32,60,.14);
  display:flex;flex-direction:column;min-height:196px}
.tile header{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.tile header h3{margin:0;font-size:13px;color:var(--navy);flex:1;line-height:1.3}
.tile header em{font-style:normal;font-size:8.5px;letter-spacing:.9px;text-transform:uppercase;
  color:var(--muted);background:rgba(31,56,100,.08);border-radius:20px;padding:3px 8px}
.tile .dot{width:8px;height:8px;border-radius:50%;background:#22a463;box-shadow:0 0 7px rgba(34,164,99,.6);flex:0 0 auto}
.tile.down .dot{background:#d9534f;box-shadow:none}
.tile.soon{opacity:.75}
.tile.soon .dot{background:#e0b53c;box-shadow:none}
.tile-body{flex:1;display:flex;align-items:flex-end;gap:14px}
.tile .big{flex:0 0 auto}
.tile .big b{display:block;font-size:34px;font-weight:700;color:var(--navy);line-height:1}
.tile .big span{display:block;font-size:9px;letter-spacing:.9px;text-transform:uppercase;color:var(--muted);margin-top:4px}
.tile-soon{flex:1;display:flex;align-items:center;justify-content:center;font-size:11px;
  color:var(--muted);font-style:italic}
.tile footer{margin-top:12px;padding-top:8px;border-top:1px solid rgba(31,56,100,.09);
  font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;justify-content:space-between;gap:8px}
.tile footer u{text-decoration:none;color:var(--orange);font-weight:700;letter-spacing:.6px;opacity:0;transition:.16s}
a.tile{text-decoration:none;color:inherit}
a.tile.live{cursor:pointer}
a.tile.live:hover{transform:translateY(-2px);border-color:rgba(237,107,16,.6);
  box-shadow:0 14px 34px rgba(16,32,60,.22)}
a.tile.live:hover footer u{opacity:1}
a.tile.live:hover header h3{color:var(--orange)}
.tile{transition:.16s}
.bars{flex:1;display:flex;align-items:flex-end;gap:7px;height:66px}
.bars .bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.bars .bar i{width:100%;background:linear-gradient(180deg,#ED6B10,#f0913f);border-radius:3px 3px 0 0;display:block}
.bars .bar u{font-size:10px;font-weight:700;color:var(--navy);text-decoration:none;margin-top:3px}
.bars .bar span{font-size:7.5px;letter-spacing:.3px;color:var(--muted);text-align:center;line-height:1.2;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gauge{text-align:center}
.gauge svg{width:64px;height:64px;display:block}
.gauge .g-bg{fill:none;stroke:rgba(31,56,100,.12);stroke-width:7}
.gauge .g-fg{fill:none;stroke:var(--orange);stroke-width:7;stroke-linecap:round}
.gauge text{font-size:15px;font-weight:700;fill:var(--navy);font-family:inherit}
.gauge span{display:block;font-size:8px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-top:2px}

/* ------------------------------- team ------------------------------ */
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.tcard{background:var(--panel);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);
  border-radius:12px;padding:20px;cursor:pointer;transition:.16s;box-shadow:0 8px 26px rgba(16,32,60,.13);
  position:relative}
.tcard:hover{transform:translateY(-2px);border-color:rgba(237,107,16,.6);box-shadow:0 14px 34px rgba(16,32,60,.2)}
.tcard h3{margin:0 0 12px;font-size:16px;color:var(--navy)}
.tcard .tmeta{display:flex;gap:16px;margin-bottom:12px}
.tcard .tmeta span{font-size:8.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.tcard .tmeta b{display:block;font-size:18px;color:var(--navy);font-weight:700;letter-spacing:0}
.tcard p{margin:0;font-size:11px;color:#4d5d75;line-height:1.5;min-height:34px}
.tcard .tgo{margin-top:12px;font-size:10.5px;font-weight:700;color:var(--orange);letter-spacing:.5px}
.tcard.locked{cursor:default;opacity:.6}
.tcard.locked:hover{transform:none;border-color:rgba(255,255,255,.85);box-shadow:0 8px 26px rgba(16,32,60,.13)}
.tcard.locked .tgo{color:var(--muted)}
.card .st.soon{color:#8a6d1f}
.card .st.soon i{background:#e0b53c;box-shadow:none}
.back{background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.9);color:var(--navy);
  font-family:inherit;font-size:11px;padding:6px 12px;border-radius:6px;cursor:pointer;margin-bottom:12px}
.back:hover{background:#fff}

/* ------------------------------ pannelli --------------------------- */
.cols{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.panel{background:var(--panel);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);
  border-radius:12px;padding:20px 22px;margin-bottom:16px;box-shadow:0 8px 26px rgba(16,32,60,.12)}
.panel h2{margin:0 0 14px;font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:var(--orange);
  display:flex;align-items:center;gap:10px}
.panel h2 .cnt{background:rgba(31,56,100,.1);color:var(--navy);border-radius:20px;padding:2px 9px;font-size:10px;letter-spacing:0}
.panel h4{margin:16px 0 6px;font-size:11.5px;color:var(--navy);letter-spacing:.3px}
.tbl{width:100%;border-collapse:collapse;font-size:12px}
.tbl th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);
  padding:0 10px 8px;font-weight:700;border-bottom:1px solid var(--line)}
.tbl td{padding:10px;border-bottom:1px solid rgba(31,56,100,.07);vertical-align:middle}
.tbl b{color:var(--navy)}
.tbl a{color:#1a5fb4;text-decoration:none}
.sub2{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}
.mini{font-size:10.5px;color:var(--muted)}
.mini-btn{background:transparent;border:1px solid #c6d0e0;color:var(--muted);border-radius:5px;
  font-family:inherit;font-size:10px;padding:4px 9px;cursor:pointer}
.mini-btn:hover{color:#b3261e;border-color:#e8bdb8}
.units{margin:0;padding-left:18px;color:#4d5d75;font-size:12px;line-height:1.9}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips span{font-size:10px;padding:4px 10px;border-radius:20px;background:rgba(237,107,16,.14);color:#a8500c}
.note2{margin-top:12px;font-size:11px;color:#1d7a4b;font-weight:600}
.empty{color:var(--muted);font-size:12px;font-style:italic;padding:10px 0}
.unit{border-left:2px solid rgba(31,56,100,.12);padding-left:12px;margin-bottom:10px}
.pr{font-size:11.5px;padding:4px 0;line-height:1.5}
.pr b{display:inline-block;min-width:150px;color:var(--navy)}
.pr span{color:var(--muted)}
.pr a{color:#1a5fb4;text-decoration:none;margin-left:8px}
.pr.vacant{color:#8494ab;font-style:italic}
.struct{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.grid4{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
@media(max-width:800px){.grid4{grid-template-columns:1fr 1fr}}
.btn{background:var(--orange);border:0;color:#fff;font-family:inherit;font-weight:600;font-size:11.5px;
  letter-spacing:.8px;padding:10px 18px;border-radius:6px;cursor:pointer}
.btn:hover{background:#d15d09}

/* interruttore accesso completo */
.sw{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}
.sw input{opacity:0;width:0;height:0}
.sw span{position:absolute;inset:0;background:#c6d0e0;border-radius:20px;transition:.18s}
.sw span:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;
  border-radius:50%;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.sw input:checked+span{background:var(--orange)}
.sw input:checked+span:before{transform:translateX(18px)}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--navy);
  color:#fff;padding:11px 20px;border-radius:8px;font-size:12px;
  opacity:0;pointer-events:none;transition:.25s;z-index:90;box-shadow:0 8px 26px rgba(0,0,0,.3)}
.toast.show{opacity:1}
.toast.err{background:#b3261e}

/* ==================== cruscotto ==================================== */
.chipsrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.kchip{background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.9);border-left:4px solid #c6d0e0;
  border-radius:10px;padding:12px 14px;box-shadow:0 6px 20px rgba(16,32,60,.12)}
.kchip b{display:block;font-size:20px;color:var(--navy);line-height:1.15}
.kchip span{font-size:8.5px;letter-spacing:.9px;text-transform:uppercase;color:var(--muted)}
.kchip.good{border-left-color:#22a463}
.kchip.warn{border-left-color:#e0a13c}
.kchip.bad{border-left-color:#d9534f}
.kchip.bad b{color:#b3261e}

.panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px;
  align-items:stretch}
@media(max-width:820px){.panels{grid-template-columns:1fr}}
.panelw{background:var(--panel);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);
  border-radius:12px;padding:15px 18px 11px;box-shadow:0 8px 26px rgba(16,32,60,.14);
  display:flex;flex-direction:column;min-height:232px;text-decoration:none;color:inherit;transition:.16s}
.panelw.wide{grid-column:span 2}
@media(max-width:820px){.panelw.wide{grid-column:span 1}}
.panelw.live{cursor:pointer}
.panelw.live:hover{transform:translateY(-2px);border-color:rgba(237,107,16,.6);box-shadow:0 14px 34px rgba(16,32,60,.22)}
.panelw.live:hover footer u{opacity:1}
.panelw header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.panelw h3{margin:0;font-size:14px;color:var(--navy);line-height:1.25}
.panelw em{font-style:normal;font-size:9.5px;letter-spacing:.5px;color:var(--muted);display:block;margin-top:2px}
.panelw .tag{font-size:8px;letter-spacing:1px;text-transform:uppercase;padding:3px 8px;border-radius:20px;
  color:#fff;background:#8494ab}
.tag.a-OPS{background:#2E7D5B}.tag.a-RD{background:#1E5A8A}.tag.a-CSALES{background:#ED6B10}
.tag.a-FADMIN{background:#6B4E9B}.tag.a-ALL{background:#5b6b83}
.panelw .dot{width:8px;height:8px;border-radius:50%;background:#22a463;flex:0 0 auto}
.panelw .dot.down{background:#d9534f}.panelw .dot.soon{background:#e0b53c}
.panelw .w-body{flex:1;display:flex;align-items:center;margin-top:12px}
.panelw footer{margin-top:10px;padding-top:8px;border-top:1px solid rgba(31,56,100,.09);
  font-size:8.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center;gap:8px}
.panelw footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panelw footer u{text-decoration:none;color:var(--orange);font-weight:700;opacity:0;transition:.16s;flex:0 0 auto}
.w-none{font-size:11px;color:var(--muted);font-style:italic;margin:auto}

/* barra compatta dei moduli senza cruscotto proprio */
.mbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.85);border-radius:12px;padding:12px 14px;
  box-shadow:0 6px 20px rgba(16,32,60,.1)}
.mbar-t{font-size:8.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-right:6px}
.mchip{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:#fff;
  border:1px solid #dfe5ee;border-radius:8px;padding:7px 12px;transition:.14s}
.mchip:hover{border-color:var(--orange);transform:translateY(-1px)}
.mchip i{width:8px;height:8px;border-radius:2px;background:#8494ab}
.mchip i.a-OPS{background:#2E7D5B}.mchip i.a-RD{background:#1E5A8A}
.mchip i.a-CSALES{background:#ED6B10}.mchip i.a-FADMIN{background:#6B4E9B}
.mchip b{font-size:11.5px;color:var(--navy);font-weight:600}
.mchip span{font-size:9px;color:var(--muted);letter-spacing:.4px}
.mchip.off{opacity:.55}
.mchip.off:hover{border-color:#dfe5ee;transform:none}
.hidden-note{margin:14px 0 0;font-size:11px;color:#dfe7f2;text-shadow:0 1px 10px rgba(8,16,30,.8)}

/* ---------------------------- micrografici ------------------------- */
.w-ring svg{width:76px;height:76px}
.r-bg{fill:none;stroke:rgba(31,56,100,.12);stroke-width:8}
.r-fg{fill:none;stroke:var(--orange);stroke-width:8;stroke-linecap:round}
.w-ring text{font-size:16px;font-weight:700;fill:var(--navy);font-family:inherit}
.w-status{display:flex;align-items:center;gap:16px;width:100%}
.w-legend{list-style:none;margin:0;padding:0;font-size:11px;color:#4d5d75}
.w-legend li{display:flex;align-items:center;gap:7px;padding:2px 0}
.w-legend i{width:8px;height:8px;border-radius:50%}
.w-legend .ok{background:#22a463}.w-legend .warn{background:#e0b53c}.w-legend .ko{background:#d9534f}
.w-legend b{color:var(--navy)}
.w-fig span{display:block;font-size:8.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.w-fig b{font-size:25px;color:var(--navy);line-height:1.1}
.w-fig b.neg{color:#b3261e}
.w-cash{width:100%}
.w-flow{display:flex;align-items:flex-end;gap:6px;height:54px;margin-top:10px}
.w-flow .fl{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.w-flow i{width:100%;border-radius:2px}
.w-flow .in{background:#22a463}.w-flow .out{background:#e08a5c}
.w-flow span{font-size:7.5px;color:var(--muted);margin-top:3px}
.w-gantt{width:100%;display:flex;flex-direction:column;gap:8px}
.g-row{display:flex;align-items:center;gap:10px;font-size:10.5px}
.g-row>span{width:96px;color:var(--navy);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-track{flex:1;height:11px;background:rgba(31,56,100,.08);border-radius:6px;position:relative}
.g-track i{position:absolute;top:0;height:11px;border-radius:6px;background:linear-gradient(90deg,#1F3864,#3a5f9e)}
.g-track i.late{background:linear-gradient(90deg,#b3261e,#d9534f)}
.g-row u{text-decoration:none;font-size:10px;color:var(--muted);width:34px;text-align:right}
.w-pipe{width:100%}
.w-stack{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:12px 0 8px;background:rgba(31,56,100,.08)}
.w-stack i{display:block;height:100%}
.s-b{background:#c6d0e0}.s-i{background:#3a5f9e}.s-w{background:#22a463}.s-l{background:#d9534f}
.w-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#4d5d75}
.w-tags li{display:flex;align-items:center;gap:5px}
.w-tags i{width:8px;height:8px;border-radius:2px}
.w-tags b{color:var(--navy)}
.w-gtm{width:100%;display:flex;flex-direction:column;gap:10px}
.w-gtm .bars{flex:none;height:64px}
.w-gtm .bars .bar i{max-height:calc(100% - 26px)}
.w-train{width:100%}
.w-spark{margin:8px 0 4px}
.w-spark svg{width:100%;height:30px}
.w-spark polyline{fill:none;stroke:var(--orange);stroke-width:2;vector-effect:non-scaling-stroke}
.w-sub{font-size:10px;color:var(--muted)}
.w-rd{display:flex;align-items:center;gap:14px;width:100%;flex-wrap:wrap}
.w-sub2{display:flex;gap:14px}
.w-sub2 b{display:block;font-size:17px;color:var(--navy)}
.w-sub2 span{font-size:8.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}

/* ============================ avvisi =============================== */
.bell{position:relative;background:var(--orange);border:0;color:#fff;font-size:14px;
  width:34px;height:34px;border-radius:8px;cursor:pointer;line-height:1}
.bell:hover{background:#d15d09}
.bell em{position:absolute;top:-6px;right:-6px;background:#b3261e;color:#fff;font-style:normal;
  font-size:9px;font-weight:700;border-radius:10px;padding:2px 6px;border:2px solid #fff}
.nbanner{background:rgba(237,107,16,.94);color:#fff;border-radius:10px;padding:13px 18px;margin-bottom:20px;
  cursor:pointer;display:flex;align-items:center;gap:12px;font-size:12.5px;box-shadow:0 8px 24px rgba(237,107,16,.35)}
.nbanner b{font-size:17px}
.nbanner span{margin-left:auto;font-size:11px;opacity:.9}
.notices{display:flex;flex-direction:column;gap:12px}
.notice{background:var(--panel);border:1px solid rgba(255,255,255,.85);border-left:4px solid var(--orange);
  border-radius:10px;padding:16px 18px;box-shadow:0 6px 20px rgba(16,32,60,.12)}
.notice.proposta{border-left-color:#b3261e}
.notice.sistema{border-left-color:#3a5f9e}
.notice header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.notice header em{font-style:normal;font-size:8.5px;letter-spacing:1px;text-transform:uppercase;
  color:#fff;background:var(--navy);border-radius:20px;padding:3px 9px}
.notice header span{font-size:10.5px;color:var(--muted)}
.notice header time{margin-left:auto;font-size:10px;color:var(--muted)}
.notice h3{margin:0 0 4px;font-size:14px;color:var(--navy)}
.notice p{margin:0 0 12px;font-size:12px;color:#4d5d75;line-height:1.55}
.nfoot{display:flex;align-items:center;gap:12px;font-size:10.5px;color:var(--muted)}
.nbtns{margin-left:auto;display:flex;gap:8px}
.btn.small{padding:6px 13px;font-size:10.5px}
.btn.ghost{background:transparent;color:var(--navy);border:1px solid #c6d0e0}
.btn.ghost:hover{background:rgba(31,56,100,.06)}
.nfoot>.btn{margin-left:auto}

/* =========================== registro ============================== */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:16px}
.stat{background:var(--panel);border:1px solid rgba(255,255,255,.85);border-radius:10px;padding:14px 16px;
  box-shadow:0 6px 20px rgba(16,32,60,.12)}
.stat b{display:block;font-size:24px;color:var(--navy)}
.stat span{font-size:9px;letter-spacing:.9px;text-transform:uppercase;color:var(--muted)}
.mrow{display:flex;align-items:center;gap:10px;font-size:11px;margin-bottom:7px}
.mrow>span{width:120px;color:var(--navy)}
.mrow i{height:9px;border-radius:5px;background:linear-gradient(90deg,#ED6B10,#f0a765);display:block}
.mrow u{text-decoration:none;color:var(--muted);font-size:10px}
/* Access directory and profile editor. */
.access-page{background:#f7f9fa;min-height:calc(100vh - 58px);padding:28px max(16px,calc((100% - 1240px)/2))}
.access-page .head h1{color:var(--ink);text-shadow:none}
.access-page .f label,.person-editor .f label{letter-spacing:0}
.access-section{padding:20px 0;border-top:1px solid #dce2e6}
.access-section h2{font-size:18px;margin:0 0 16px;letter-spacing:0}
.access-table{overflow-x:auto}
.access-table .tbl{min-width:900px}
.access-actions{display:flex;gap:8px;white-space:nowrap}
.person-editor{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid #c6cdd2;border-radius:8px;color:#17212b;background:#fff;box-sizing:border-box}
.person-editor::backdrop{background:rgba(0,0,0,.45)}
.person-editor h2{font-size:21px;margin:0 0 20px;letter-spacing:0}
.profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.profile-fields .f{min-width:0;margin:0}
.profile-fields input,.profile-fields select{width:100%;min-width:0;box-sizing:border-box}
.profile-flags{display:flex;flex-wrap:wrap;gap:20px;margin:20px 0}
.profile-flags label{display:flex;align-items:center;gap:6px;font-size:14px}
.profile-flags input{width:16px;height:16px}
.profile-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}
#person-error{color:#a51b29;font-size:14px}
@media(max-width:560px){.person-editor{padding:18px}.profile-fields{grid-template-columns:1fr}.profile-footer .btn{padding:10px 14px}}

@media(max-width:760px){.top{height:auto;flex-wrap:wrap;padding:12px;gap:10px}.top nav{overflow:auto;order:3;width:100%;margin:0}.top .who{margin-left:auto}.wrap{padding:20px 14px}.panels{grid-template-columns:1fr}.panelw.wide{grid-column:auto}.grid4{grid-template-columns:1fr 1fr}}
