/* Plancia (voce del menu dell'hub, solo superadmin). Tema scuro unico, scelto di proposito (non segue il tema dell'hub).
   Tutto è sotto .plancia per non toccare il resto dell'hub; nessun font esterno (CSP: font-src 'self'): si usano i font di sistema.
   Le classi hanno il prefisso pl- dove il nome esiste già nell'hub (st, op, header, nav, h2...). */
.plancia{
  --bg:#030a11;--panel:#071521;--line:#12364f;--cyan:#5ee1ff;--ice:#d8f5ff;--mute:#6d94ab;--amber:#ffb347;--red:#ff5d6c;--green:#3ee8a8;
  --display:"Bahnschrift","Segoe UI","Arial Narrow",system-ui,sans-serif;
  --mono:ui-monospace,"Cascadia Mono",Consolas,"SF Mono",monospace;
  position:relative;margin:-16px -20px;padding:14px 20px 28px;min-height:calc(100vh - 60px);background:var(--bg);color:var(--ice);
  font-family:var(--display);font-size:15px;line-height:1.35;overflow:hidden;color-scheme:dark
}
.plancia *{box-sizing:border-box}
.plancia #pl-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.plancia .pl-app{position:relative;z-index:1;max-width:1320px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.plancia .pl-testa{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.plancia .brand{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}
.plancia .brand b{font-weight:600;font-size:21px;letter-spacing:.14em;color:var(--cyan);text-shadow:0 0 14px rgba(94,225,255,.55)}
.plancia .brand span{color:var(--mute);font-size:13px;letter-spacing:.06em}
.plancia .chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.plancia .chip{font-family:var(--mono);font-size:12px;letter-spacing:.04em;border:1px solid var(--line);border-radius:3px;padding:3px 9px;color:var(--mute);display:inline-flex;gap:7px;align-items:center;background:rgba(7,21,33,.7)}
.plancia .chip i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}
.plancia .chip.warn{color:var(--amber);border-color:#6b4a14}.plancia .chip.warn i{background:var(--amber);box-shadow:0 0 8px var(--amber)}
.plancia .chip.lock{color:var(--cyan);border-color:#1b5c78}
.plancia #pl-clock{font-family:var(--mono);font-size:15px}
.plancia .pl-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.plancia .pl-tabs::-webkit-scrollbar{display:none}
.plancia .pl-tabs button{font-family:var(--display);font-size:16px;letter-spacing:.06em;color:var(--mute);background:transparent;border:0;border-bottom:2px solid transparent;padding:8px 16px;cursor:pointer;white-space:nowrap;display:flex;gap:8px;align-items:center;min-height:40px}
.plancia .pl-tabs button:hover{color:var(--ice)}
.plancia .pl-tabs button[aria-selected="true"]{color:var(--cyan);border-bottom-color:var(--cyan);text-shadow:0 0 12px rgba(94,225,255,.5)}
.plancia .pl-tabs .n{font-family:var(--mono);font-size:11px;background:#5a1620;color:#ffb3bb;border-radius:9px;padding:0 6px}
.plancia .legend{display:flex;gap:14px;align-items:center;font-family:var(--mono);font-size:12px;color:var(--mute);flex-wrap:wrap}
.plancia .src{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;border-radius:2px;padding:1px 6px;text-transform:uppercase;white-space:nowrap}
.plancia .src.r{background:rgba(94,225,255,.16);color:var(--cyan);border:1px solid #1b5c78}
.plancia .src.e{color:var(--mute);border:1px dashed #2a4a60}
.plancia .src.w{color:var(--amber);border:1px solid #7b5516}

.plancia .grid{display:grid;gap:14px;min-width:0}
.plancia .g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.plancia .g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.plancia .hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.plancia .kpi{grid-template-columns:repeat(5,minmax(0,1fr))}
.plancia .panel{background:linear-gradient(180deg,rgba(10,29,45,.82),rgba(7,21,33,.82));border:1px solid var(--line);position:relative;padding:12px 14px 14px;min-width:0}
.plancia .panel::before,.plancia .panel::after{content:"";position:absolute;width:12px;height:12px;border:2px solid var(--cyan)}
.plancia .panel::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.plancia .panel::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.plancia .pl-h{margin:0 0 10px;font-weight:500;font-size:13px;letter-spacing:.18em;color:var(--mute);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;gap:8px}
.plancia .pl-h em{font-style:normal;font-family:var(--mono);letter-spacing:.02em;color:var(--cyan)}
.plancia .note{font-size:12.5px;color:var(--mute);margin:10px 0 0;font-family:var(--mono)}
.plancia .vuoto{border:1px dashed #2a4a60;padding:12px;color:var(--mute);font-family:var(--mono);font-size:12.5px;background:rgba(7,21,33,.5)}
.plancia .vuoto b{display:block;color:var(--amber);font-weight:400;letter-spacing:.1em;text-transform:uppercase;font-size:11.5px;margin-bottom:3px}

.plancia .k{border:1px solid var(--line);background:rgba(7,21,33,.8);padding:10px 12px;min-width:0}
.plancia .k b{display:block;font-family:var(--mono);font-weight:400;font-size:30px;line-height:1.1;color:var(--cyan)}
.plancia .k span{font-size:14px;color:var(--mute)}
.plancia .k.w b{color:var(--amber)}.plancia .k.d b{color:var(--red)}.plancia .k.o b{color:var(--green)}.plancia .k.nd b{color:#35566b}
.plancia .k small{display:block;margin-top:4px}

.plancia .core{display:flex;flex-direction:column;align-items:center;gap:10px}
.plancia #reactor{width:100%;max-width:400px;height:auto;display:block;overflow:visible}
.plancia .spin1{transform-origin:0 0;animation:pl-sp 70s linear infinite}
.plancia .spin2{transform-origin:0 0;animation:pl-sp 40s linear infinite reverse}
.plancia .spin3{transform-origin:0 0;animation:pl-sp 22s linear infinite}
@keyframes pl-sp{to{transform:rotate(360deg)}}
.plancia .cmd{width:100%;max-width:520px;display:flex;align-items:center;gap:10px;border:1px solid #1b5c78;background:rgba(7,21,33,.85);padding:6px 8px 6px 14px;border-radius:40px}
.plancia .cmd input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ice);font-family:var(--display);font-size:17px;height:34px;padding:0}
.plancia .cmd input::placeholder{color:var(--mute)}
.plancia .cmd:focus-within{border-color:var(--cyan);box-shadow:0 0 18px rgba(94,225,255,.25)}
.plancia .mic{width:42px;height:42px;border-radius:50%;border:1px solid var(--cyan);background:transparent;color:var(--cyan);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;padding:0}
.plancia .mic.on{background:var(--cyan);color:#021018;box-shadow:0 0 22px rgba(94,225,255,.7)}
.plancia .mic svg{width:20px;height:20px}
.plancia .sug{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:560px}
.plancia button.b{font-family:var(--display);font-size:14.5px;color:var(--ice);background:rgba(10,29,45,.9);border:1px solid var(--line);padding:5px 12px;min-height:34px;cursor:pointer;letter-spacing:.03em}
.plancia button.b:hover{border-color:var(--cyan);color:var(--cyan)}
.plancia button.b:disabled{opacity:.5;cursor:default}
.plancia button.b.go{border-color:var(--cyan);color:var(--cyan)}
.plancia .sug button.b{border-radius:20px}
.plancia button:focus-visible,.plancia input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.plancia #pl-ans{min-height:46px;max-width:520px;width:100%;text-align:center;color:#9be9ff;font-size:17px}

.plancia .pri{display:flex;flex-direction:column;gap:10px}
.plancia .al{border:1px solid;padding:10px 12px;display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;background:rgba(7,21,33,.85)}
.plancia .al.y{border-color:#7b5516}.plancia .al.r{border-color:#7d2a35}.plancia .al.ok{border-color:#1b6a50}.plancia .al.c{border-color:#1b5c78}
.plancia .al .tx{min-width:200px;flex:1;font-size:15px;overflow-wrap:anywhere}
.plancia .al .tag{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:2px}
.plancia .al.y .tag{color:var(--amber)}.plancia .al.r .tag{color:var(--red)}.plancia .al.ok .tag{color:var(--green)}.plancia .al.c .tag{color:var(--cyan)}
.plancia .act{display:flex;gap:8px;flex-wrap:wrap}

.plancia .svc{list-style:none;margin:0;padding:0}
.plancia .svc li{display:grid;grid-template-columns:52px 14px minmax(0,1fr) auto;gap:8px;padding:8px 0;align-items:start;position:relative;border-bottom:1px solid #0d2536}
.plancia .svc li:last-child{border-bottom:0}
.plancia .svc li.fin{opacity:.5}
.plancia .svc .t{font-family:var(--mono);color:var(--cyan);font-size:15px}
.plancia .svc .d{width:9px;height:9px;border-radius:50%;margin-top:6px;background:var(--green);box-shadow:0 0 8px var(--green)}
.plancia .svc .d.y{background:var(--amber);box-shadow:0 0 8px var(--amber)}
.plancia .svc .d.r{background:var(--red);box-shadow:0 0 10px var(--red);animation:pl-blink 1.4s infinite}
@keyframes pl-blink{50%{opacity:.35}}
.plancia .svc .w{min-width:0}
.plancia .svc .w b{font-weight:500;font-size:15px;display:block;overflow-wrap:anywhere}
.plancia .svc .w small{color:var(--mute);font-size:13px}
.plancia .svc .sg{font-family:var(--mono);font-size:11px;color:var(--mute);border:1px solid var(--line);padding:1px 6px;align-self:center}
.plancia .fil{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.plancia .fil button[aria-pressed="true"]{border-color:var(--cyan);color:var(--cyan)}

.plancia .hrs{display:grid;gap:10px}
.plancia .hr{display:grid;grid-template-columns:90px minmax(0,1fr) 62px;gap:8px;align-items:center;font-size:14.5px}
.plancia .hr .v{font-family:var(--mono);font-size:13px;text-align:right;color:var(--mute)}
.plancia .track{height:8px;background:#0c2638;position:relative}
.plancia .track i{display:block;height:100%;background:var(--cyan);box-shadow:0 0 8px rgba(94,225,255,.6)}
.plancia .track u{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--amber)}
.plancia .hr.bad .track i{background:var(--red);box-shadow:0 0 8px var(--red)}
.plancia .hr.bad .v{color:var(--red)}

.plancia .list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.plancia .list li{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid #0d2536;font-size:15px}
.plancia .list li:last-child{border-bottom:0}
.plancia .list li>span:first-child{min-width:0;overflow-wrap:anywhere}
.plancia .list small{color:var(--mute);font-size:13px;font-family:var(--mono)}
.plancia .pl-st{font-family:var(--mono);font-size:11.5px;padding:1px 7px;border:1px solid;white-space:nowrap}
.plancia .pl-st.on{color:var(--green);border-color:#1b6a50}.plancia .pl-st.off{color:var(--amber);border-color:#7b5516}.plancia .pl-st.nu{color:var(--cyan);border-color:#1b5c78}.plancia .pl-st.er{color:var(--red);border-color:#7d2a35}
.plancia .pl-link{color:var(--cyan);font-family:var(--mono);font-size:12.5px}

.plancia #radar{width:100%;max-width:520px;margin:0 auto;height:auto;display:block}
.plancia .sweep{transform-origin:0 0;animation:pl-sp 6s linear infinite}
.plancia .blip{animation:pl-pulse 2.4s ease-out infinite}
@keyframes pl-pulse{0%{opacity:1}100%{opacity:.35}}

.plancia .steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:15px}
.plancia .log{font-family:var(--mono);font-size:12.5px;color:var(--mute);display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:8px;min-height:62px}
.plancia .log b{color:var(--cyan);font-weight:400}
.plancia [hidden]{display:none!important}

@media (max-width:1020px){
  .plancia .hero,.plancia .g2,.plancia .g3{grid-template-columns:minmax(0,1fr)}
  .plancia .kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .plancia{margin:-12px -14px -40px;padding:12px 14px 40px}
}
@media (prefers-reduced-motion:reduce){.plancia .spin1,.plancia .spin2,.plancia .spin3,.plancia .sweep,.plancia .blip,.plancia .svc .d.r{animation:none}}
