/* Circuito Studio · scheda «Aggiorna la TV» (consegna.js): stessa grafica dei caricamenti (caricamento.css,
   classi cc-*), con l'anello più grande e l'elenco delle TV. Verde = in onda, giallo = box spento o senza box. */
.cc.tvc{z-index:1001}
.tvc-card{width:400px}
.tvc-main{display:flex;align-items:center;gap:16px;padding:6px 18px 14px}
.tvc-main .cc-ring{width:88px;height:88px}
.tvc-main .cc-ring circle{stroke-width:4}
.tvc-main .cc-pct{font-size:15px}
.tvc-t{display:grid;gap:4px;min-width:0;flex:1}
.tvc-fase{font:700 16.5px/1.25 Sora,"DM Sans",system-ui,sans-serif;letter-spacing:-.01em;color:var(--cc-fg)}
.tvc-fase.ok{color:var(--cc-ok)}
.tvc-fase.warn{color:var(--cc-warn)}
.tvc-s{font-size:13px;color:var(--cc-fg2);font-variant-numeric:tabular-nums}
.tvc-s:empty{display:none}
.tvc .cc-ring.ok .cc-bg{stroke:var(--cc-ok-soft);fill:var(--cc-ok-soft)}
.tvc .cc-ring.warn .cc-bg{stroke:var(--cc-warn-soft);fill:var(--cc-warn-soft)}
.tvc .cc-ring.warn:not(.mini) .cc-fg{stroke:var(--cc-warn-ring)}
.tvc-esc{stroke:var(--cc-warn) !important;stroke-width:4.5}
.tvc .cc-ring.mini.warn .cc-fg{stroke-dashoffset:0}
.tvc .cc-ring.mini.ko .cc-fg{stroke-dashoffset:0}
/* fase 1: il server salva, l'anello gira */
.cc-ring.tvc-gira{animation:tvc-gira 1s linear infinite}
@keyframes tvc-gira{from{transform:rotate(-90deg)}to{transform:rotate(270deg)}}
@media (prefers-reduced-motion:reduce){.cc-ring.tvc-gira{animation-duration:3s}}
.tvc ul{border-top:1px solid var(--cc-line);padding-top:4px;max-height:220px}
.tvc-r{align-items:center;padding:7px 10px}
.tvc-r .cc-t{padding-top:0}
.tvc-nota{font-size:12.5px;color:var(--cc-mu);padding-top:0}
.tvc-pill.ok{color:var(--cc-ok)}
.tvc-pill.warn{color:var(--cc-warn)}
/* sulla scheda dello schermo nell'hub: l'avanzamento resta visibile anche a scheda chiusa */
/* colori dell'anello (regola del Founder): verde tenue mentre va avanti, verde pieno con la spunta a fine,
   giallo se aspetta (box spento, senza box), rosso solo per un errore vero. Mai arancio o rosso per l'avanzamento */
.tvc{--tvc-run:var(--cc-run,#34c27a);--tvc-run-soft:var(--cc-run-soft,#e3f5ea)}
.tvc .cc-ring:not(.ok):not(.warn):not(.ko) .cc-fg{stroke:var(--tvc-run)}
.tvc .cc-ring:not(.ok):not(.warn):not(.ko) .cc-bg{stroke:var(--tvc-run-soft)}
.tvc-hub{--tvc-run:#34c27a;--tvc-run-soft:#e3f5ea;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--fg2,#57534e);font-variant-numeric:tabular-nums;margin:2px 0}
.tvc-hub:empty{display:none}
.tvc-hub.ok{color:#15803d}
.tvc-hub .cc-ring{width:18px;height:18px;transform:rotate(-90deg);flex:none}
.tvc-hub .cc-ring circle{fill:none;stroke-width:7}
.tvc-hub .cc-bg{stroke:var(--tvc-run-soft)}
.tvc-hub .cc-fg{stroke:var(--tvc-run);stroke-linecap:round;transition:stroke-dashoffset .35s ease}
.tvc-hub.ok .cc-fg{stroke:currentColor}
.tvc-hub .cc-v{fill:none;stroke:currentColor;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;transform:rotate(90deg);transform-origin:26px 26px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tvc-hub.ok{color:#4ade80}:root:not([data-theme="light"]) .tvc-hub{--tvc-run:#3ccf85;--tvc-run-soft:#16301f}}
:root[data-theme="dark"] .tvc-hub.ok{color:#4ade80}:root[data-theme="dark"] .tvc-hub{--tvc-run:#3ccf85;--tvc-run-soft:#16301f}
@media (max-width:600px){
  .tvc-card{width:auto}
  .tvc-main .cc-ring{width:72px;height:72px}
  .tvc-fase{font-size:15.5px}
}
