:root{--nav:#07111f;--nav2:#0e1d31;--bg:#f3f6fa;--card:#fff;--text:#182231;--muted:#718096;--blue:#1689f5;--green:#12b878;--red:#e65366;--amber:#f3aa2c;--line:#e3e9f1;--r:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 12%,#15477a,transparent 34%),var(--nav)}.login-card{width:min(470px,100%);background:white;border-radius:26px;padding:34px;box-shadow:0 30px 100px #0008}.brand-login,.side-brand{display:flex;align-items:center;gap:14px}.brand-login img,.side-brand img{width:56px;height:56px;object-fit:contain;border-radius:12px;background:white}.brand-login strong{font-size:24px;display:block}.brand-login small,.side-brand small{display:block;color:#8293aa;margin-top:3px}.tabs{display:flex;background:#eef3f8;padding:5px;border-radius:12px;margin:24px 0 16px}.tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:9px}.tabs .active{background:white;box-shadow:0 2px 10px #2342}.field{display:grid;gap:6px;margin:12px 0}.field label{font-size:11px;font-weight:850;letter-spacing:.05em;color:#66758b;text-transform:uppercase}.field input,.field select,.field textarea,table input,table select{border:1px solid #d9e2ec;border-radius:10px;padding:11px;background:white;min-width:0}.btn{border:0;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:11px 15px;background:#e8eef5;color:#182231;font-weight:800}.btn.primary{background:var(--blue);color:white}.btn.good{background:var(--green);color:white}.btn.bad{background:var(--red);color:white}.btn.warn{background:var(--amber);color:#251900}.btn.ghost{background:white;border:1px solid #dbe3ec}.btn.tiny{padding:6px 9px;font-size:11px}.full{width:100%}.success,.error{padding:10px 12px;border-radius:10px;margin-top:12px}.success{background:#dff8ed;color:#116846}.error{background:#ffe6ea;color:#9b2639}.toast{position:fixed;right:22px;bottom:22px;z-index:100;padding:13px 16px;border-radius:12px;box-shadow:0 10px 40px #0003;font-weight:800}.toast-ok{background:#133b2d;color:#cffff0}.toast-bad{background:#5a1722;color:#ffe6eb}.shell{min-height:100vh;display:grid;grid-template-columns:272px minmax(0,1fr)}.sidebar{background:linear-gradient(180deg,var(--nav),#0a1728);color:white;padding:22px 16px;position:sticky;top:0;height:100vh}.side-brand{padding:4px 8px 24px}.side-brand strong{display:block;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-brand>span{margin-left:auto;font-size:10px;color:#7e94af;border:1px solid #29405e;border-radius:7px;padding:4px 6px}.sidebar nav button{width:100%;border:0;background:transparent;color:#a5b7cb;text-align:left;padding:12px 13px;border-radius:11px;margin:3px 0;font-weight:750}.sidebar nav button i{font-style:normal;display:inline-block;width:30px;font-size:18px}.sidebar nav button:hover,.sidebar nav button.active{background:#142740;color:white}.userbox{position:absolute;bottom:20px;left:16px;right:16px;border-top:1px solid #1c314b;padding:16px 10px 0}.userbox b,.userbox small{display:block}.userbox small{color:#8da1ba;margin-top:4px}.content{padding:30px 34px 50px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin:0 auto 24px;max-width:1600px}.topbar h1{margin:0;font-size:30px}.topbar p{margin:4px 0 0;color:var(--muted)}.mobile-menu{display:none}.content>#view{max-width:1600px;margin:auto}.hero{background:linear-gradient(125deg,#0c1d32,#173b61);color:white;border-radius:22px;padding:32px 36px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.hero span{color:#80bfff;font-weight:850;font-size:12px;text-transform:uppercase}.hero h2{font-size:32px;margin:7px 0}.hero p{margin:0;color:#b8c8db}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.kpis article,.card{background:white;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 5px 22px #16324d0a}.kpis article{padding:20px}.kpis small{color:#7b899b;font-weight:850;font-size:11px}.kpis strong{display:block;font-size:35px;margin-top:5px}.card{padding:22px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.section-head h2,.section-head h3,.card h2,.card h3{margin:0}.muted{color:var(--muted)}.empty{padding:40px;text-align:center;color:#8291a4}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{padding:12px 10px;border-bottom:1px solid #edf1f5;text-align:left;font-size:13px}th{color:#728197;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf2f7;font-size:10px;font-weight:900;text-transform:uppercase}.pill.live{background:#dff8ed;color:#0d724a}.count-setup{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.setup-card{padding:28px}.setup-card>h2{font-size:27px;margin:0 0 5px}.step{width:34px;height:34px;border-radius:50%;background:#e7f2fe;color:#0f76d4;display:grid;place-items:center;font-weight:900;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.check{display:flex;gap:9px;align-items:center;margin:16px 0;font-weight:700}.preflight,.launch{display:grid;grid-template-columns:46px 1fr;gap:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.preflight .step,.launch .step{margin:0}.preflight h3,.launch h3{margin:3px 0 8px}.camera-status{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:12px;margin:10px 0}.camera-status.ok{background:#e5f8f0;color:#146a4b}.camera-status.bad{background:#ffe8eb;color:#8f2a3a}.camera-status span{font-size:12px}.camera-preview{height:260px;border-radius:16px;background:#050a10;overflow:hidden;position:relative;margin:12px 0}.camera-preview video{width:100%;height:100%;object-fit:cover}.camera-preview>div{position:absolute;left:12px;top:12px;background:#000b;color:white;padding:7px 9px;border-radius:8px;font-size:11px}.action-row{display:flex;gap:10px;flex-wrap:wrap}.side-card{position:sticky;top:24px}.side-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}.live-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.camera-panel,.counter-panel{background:white;border:1px solid var(--line);border-radius:20px;box-shadow:0 5px 22px #16324d0a}.camera-panel{padding:18px}.counter-panel{padding:20px;position:sticky;top:20px}.live-head{display:flex;justify-content:space-between;gap:15px;align-items:start;margin-bottom:14px}.live-head h2{font-size:20px;margin:7px 0 2px}.live-head p{margin:0;color:var(--muted)}.camera-wrap{position:relative;background:#03070c;border-radius:16px;overflow:hidden;aspect-ratio:16/9}.camera-wrap video,.camera-wrap canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.camera-wrap canvas{z-index:2}.camera-line{position:absolute;left:0;right:0;top:55%;height:3px;background:#ffd33d;box-shadow:0 0 10px #ffd33d;z-index:4}.camera-hint{position:absolute;left:12px;top:12px;z-index:5;background:#000c;color:#fff;padding:7px 10px;border-radius:8px;font-size:11px}.camera-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.camera-toolbar label{margin-left:auto;font-size:12px;color:var(--muted)}.counter-panel>h3{margin:0 0 14px}.big-counter{border-radius:16px;padding:18px;margin:10px 0}.big-counter.in{background:#e7f9f1}.big-counter.out{background:#ffebee}.big-counter small{font-weight:900;font-size:11px}.big-counter strong{display:block;font-size:52px;line-height:1;margin-top:5px}.big-counter.in strong{color:#0d8b5a}.big-counter.out strong{color:#c83e51}.balance{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 2px;margin:15px 0}.balance strong{font-size:26px}.manual-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.manual-buttons .btn{min-height:58px}.privacy-note{font-size:12px;color:var(--muted);margin-top:16px}.export-grid{display:grid;gap:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-card{text-align:center}.avatar{width:72px;height:72px;border-radius:50%;background:#e7f2fe;color:#1978ce;display:grid;place-items:center;margin:0 auto 12px;font-size:30px;font-weight:900}.logo-preview{height:150px;border:1px dashed #ccd7e4;border-radius:14px;display:grid;place-items:center;margin:14px 0;background:#f8fafc}.logo-preview img{max-width:80%;max-height:110px;object-fit:contain}@media(min-width:1450px){.shell{grid-template-columns:290px minmax(0,1fr)}.content{padding:34px 48px 60px}.live-layout{grid-template-columns:minmax(0,1fr) 370px}.camera-panel{padding:22px}.counter-panel{padding:24px}.big-counter strong{font-size:62px}}@media(max-width:1000px){.shell{display:block}.sidebar{position:fixed;z-index:50;left:-290px;width:272px;transition:.2s}.sidebar.open{left:0}.content{padding:18px}.mobile-menu{display:inline-block;border:0;background:transparent;font-size:24px;margin-right:9px}.topbar>div{display:flex;align-items:center;flex-wrap:wrap}.topbar p{width:100%;padding-left:42px}.count-setup,.live-layout,.two-col{grid-template-columns:1fr}.side-card,.counter-panel{position:static}.kpis{grid-template-columns:1fr 1fr}.live-layout{display:flex;flex-direction:column}.camera-panel,.counter-panel{width:100%}.counter-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px}.counter-panel>h3,.balance,.manual-buttons,.privacy-note{grid-column:1/-1}.big-counter{margin:0}}@media(max-width:600px){.content{padding:12px}.topbar{margin-bottom:14px}.topbar h1{font-size:23px}.topbar .btn.ghost{padding:8px 10px}.hero{padding:22px;display:block}.hero h2{font-size:25px}.hero .btn{margin-top:18px}.kpis{gap:10px}.kpis article{padding:14px}.kpis strong{font-size:28px}.card{padding:15px;border-radius:14px}.form-grid{grid-template-columns:1fr}.count-setup{display:block}.side-card{margin-top:12px}.preflight,.launch{grid-template-columns:1fr}.preflight>.step,.launch>.step{margin-bottom:0}.camera-preview{height:220px}.live-head{display:block}.live-head .btn{margin-top:12px;width:100%}.counter-panel{grid-template-columns:1fr 1fr}.big-counter strong{font-size:42px}.camera-toolbar label{width:100%;margin:0}.manual-buttons{grid-template-columns:1fr 1fr}.manual-buttons .btn{font-size:12px;padding:10px}.action-row .btn{flex:1}.login-card{padding:24px}}
.top-actions{display:flex;gap:8px;align-items:center}.pwa-install{position:fixed;right:18px;bottom:18px;z-index:120;border:0;border-radius:999px;padding:13px 18px;background:#1689f5;color:#fff;font-weight:900;box-shadow:0 12px 40px #0004}.camera-status a{color:inherit;font-weight:900}.camera-status a:hover{text-decoration:none}@media(max-width:600px){.top-actions{gap:5px}.top-actions .btn{padding:8px 9px;font-size:12px}}
.form-grid .span-2{grid-column:1/-1}.field textarea{resize:vertical;min-height:84px}@media(max-width:600px){.form-grid .span-2{grid-column:auto}}


/* V13 - session wizard obbligatorio e sempre modificabile */
.session-wizard{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.wizard-card{padding:28px}.wizard-title{display:flex;gap:16px;align-items:flex-start;margin-bottom:22px}.step.big{width:44px;height:44px;min-width:44px;font-size:20px}.session-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.session-data-grid .field.emphasis{padding:14px;border:1px solid #cfe0f5;border-radius:14px;background:#f7fbff}.session-data-grid .field.emphasis label{font-weight:800;color:#0e3561}.session-summary{margin:18px 0;padding:14px 16px;border-radius:12px;background:#eef6ff;border:1px solid #cfe3fa}.side-card{position:sticky;top:22px}@media(max-width:980px){.session-wizard{grid-template-columns:1fr}.side-card{position:static}.session-data-grid{grid-template-columns:1fr}}

.active-session-alert{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff3cd;border:1px solid #f2d58c;border-radius:16px;padding:16px 18px;margin-bottom:18px}.active-session-alert b,.active-session-alert span{display:block}.active-session-alert span{margin-top:4px;color:#6b5a2b}.draft-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 12px;color:#718096;font-size:12px}.session-data-grid input,.session-data-grid textarea,.session-data-grid select{font-size:16px;min-height:46px;pointer-events:auto!important;opacity:1!important}.session-data-grid .span-2{grid-column:1/-1}@media(max-width:700px){.active-session-alert{align-items:stretch;flex-direction:column}.active-session-alert .action-row{width:100%}.active-session-alert .btn{flex:1}.draft-actions{align-items:flex-start;flex-direction:column}.session-data-grid .span-2{grid-column:auto}}

/* V13 — attività condivise multi-operatore */
.event-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.event-card-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.event-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:#fff}.event-card-head{display:flex;justify-content:space-between;gap:18px;align-items:start}.event-card-head h3{font-size:20px;margin:9px 0 4px}.event-card-head p{margin:0;color:var(--muted);font-size:12px}.event-cap{text-align:right;min-width:110px}.event-cap b{display:block;font-size:30px}.event-cap small{color:var(--muted)}.event-meter{height:8px;border-radius:999px;background:#e7edf4;overflow:hidden;margin:16px 0}.event-meter span{display:block;height:100%;background:linear-gradient(90deg,#18a66a,#1689f5);border-radius:999px}.event-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.event-stats div{background:#f6f8fb;border-radius:11px;padding:10px}.event-stats small{display:block;color:var(--muted);font-size:9px;font-weight:900}.event-stats b{display:block;font-size:20px;margin-top:2px}.event-create{margin-bottom:18px}.event-detail-hero{background:linear-gradient(125deg,#071827,#153f65);color:#fff;border-radius:22px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center}.event-detail-hero h2{font-size:30px;margin:9px 0 5px}.event-detail-hero p{color:#b9cbde;margin:0}.event-total{text-align:right}.event-total small{display:block;color:#8ecbff;font-weight:900;font-size:10px}.event-total strong{font-size:52px;line-height:1}.event-total span{color:#b9cbde}.event-live-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}.event-live-kpis article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px}.event-live-kpis small{display:block;color:var(--muted);font-size:10px;font-weight:900}.event-live-kpis strong{display:block;font-size:30px;margin-top:4px}.event-detail-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,.7fr);gap:16px;margin-bottom:16px}.station-list{display:grid;gap:10px}.station-list article{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #e5ebf2;border-radius:14px;padding:14px}.station-list h4{margin:0 0 5px}.station-list p{margin:0;color:var(--muted);font-size:12px}.station-numbers{display:grid;grid-template-columns:repeat(3,76px);gap:6px}.station-numbers span{background:#f5f8fb;border-radius:10px;padding:8px;text-align:center}.station-numbers small{display:block;color:var(--muted);font-size:8px;font-weight:900}.station-numbers b{font-size:20px}.my-station,.assignment-mini{border:1px solid #dfe7f0;border-radius:13px;padding:13px;margin:10px 0;background:#f9fbfd}.my-station b,.my-station span,.assignment-mini b,.assignment-mini span,.assignment-mini small{display:block}.my-station span,.assignment-mini span,.assignment-mini small{color:var(--muted);font-size:12px;margin:3px 0 9px}.assignment-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-bottom:14px}.assignment-list{display:grid;gap:8px}.assignment-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#f7f9fc;border-radius:11px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px}.mode-switch label{border:1px solid #dce5ee;border-radius:14px;padding:15px;cursor:pointer;background:#fbfcfe}.mode-switch b,.mode-switch small{display:block;margin-left:24px}.mode-switch small{color:var(--muted);margin-top:3px}.shared-start-box{border:1px solid #bcdcf8;background:#f2f8fe;border-radius:16px;padding:16px;margin-bottom:18px}.shared-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.shared-summary>div{background:#fff;border-radius:10px;padding:10px}.shared-summary small{display:block;color:var(--muted);font-size:8px;font-weight:900}.shared-summary b{display:block;margin-top:3px}.secondary-fields{margin-top:14px}.shared-live-banner{background:linear-gradient(120deg,#0b2c43,#1264a3);color:white;border-radius:18px;padding:17px 20px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:18px}.shared-live-banner h2{margin:7px 0 3px}.shared-live-banner p{margin:0;color:#c1d9eb}.shared-global{display:grid;grid-template-columns:repeat(3,110px);gap:8px}.shared-global>div{background:#ffffff17;border:1px solid #ffffff24;border-radius:12px;padding:10px}.shared-global small{display:block;font-size:8px;color:#b9d5eb;font-weight:900}.shared-global b{font-size:25px}.shared-global span{font-size:11px;color:#bfd4e5}@media(max-width:1000px){.event-card-grid,.event-card-grid.compact{grid-template-columns:1fr}.event-detail-grid{grid-template-columns:1fr}.event-live-kpis{grid-template-columns:1fr 1fr}.assignment-form{grid-template-columns:1fr}.shared-live-banner{align-items:stretch;flex-direction:column}.shared-global{grid-template-columns:repeat(3,1fr);width:100%}}@media(max-width:600px){.event-detail-hero{align-items:flex-start;flex-direction:column;padding:20px}.event-total{text-align:left}.event-live-kpis{grid-template-columns:1fr 1fr}.station-list article{align-items:stretch;flex-direction:column}.station-numbers{grid-template-columns:repeat(3,1fr)}.event-stats{grid-template-columns:1fr 1fr}.mode-switch{grid-template-columns:1fr}.shared-summary{grid-template-columns:1fr 1fr}.shared-global{grid-template-columns:1fr 1fr 1fr}.shared-global b{font-size:21px}}

/* V15 — diagnostica esplicita e controlli sempre azionabili */
.launch-main{width:100%}.launch-diagnostics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.diag-row{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line,#dbe3ee);border-radius:10px;background:#fff}.diag-row span{font-weight:900}.diag-row.ok span{color:#079455}.diag-row.bad span{color:#d92d20}.diag-note{grid-column:1/-1;padding:9px 12px;border-radius:9px;background:#fff7ed;font-size:.9rem}.bad-text{color:#b42318;background:#fef3f2}.launch .action-row .btn{min-height:46px;cursor:pointer;pointer-events:auto;opacity:1}@media(max-width:700px){.launch-diagnostics{grid-template-columns:1fr}}
.ai-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.ai-stats span{background:#f4f7fb;border:1px solid #e2e9f1;border-radius:10px;padding:9px 10px;font-size:11px;color:#66758b}.ai-stats b{display:block;color:#172231;font-size:15px;margin-top:2px}.direction-help{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff7df;color:#6f5010;font-size:11px;line-height:1.45}.direction-toggle{display:flex;align-items:center;gap:6px!important;margin-left:0!important}.direction-toggle input{accent-color:var(--blue)}
@media(max-width:700px){.ai-stats{grid-template-columns:repeat(2,1fr)}.ai-stats span:last-child{grid-column:1/-1}.direction-toggle{width:100%}}

/* V16 bootstrap/fatal screen: never leave a white page on frontend errors */
.boot-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f3f7fb;color:#0c1b2c;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.boot-card{width:min(560px,100%);background:#fff;border:1px solid #dfe8f1;border-radius:22px;padding:32px;box-shadow:0 18px 60px rgba(15,35,55,.12)}.boot-card h1{margin:0 0 10px}.boot-card p{line-height:1.5;overflow-wrap:anywhere}.boot-card small{display:block;margin-top:18px;opacity:.6}.boot-error{border-color:#efc7c7}.boot-error button{border:0;border-radius:10px;padding:11px 18px;background:#1687ee;color:#fff;font-weight:700;cursor:pointer}

/* V26 — Live AI workstation */
.live-layout{background:#07111f;border-radius:22px;padding:14px;gap:14px}.camera-panel,.counter-panel{background:#0b1726;border-color:#1f354c;color:#e9f1fb;box-shadow:0 14px 42px #0004}.camera-panel{border-radius:16px}.counter-panel{border-radius:16px}.live-head p,.camera-toolbar label,.privacy-note,.direction-help{color:#91a6bb}.camera-wrap{border:1px solid #2c4864;background:#02060b}.camera-line{height:2px;background:#f3d11e;box-shadow:0 0 12px #f3d11e99}.camera-hint{background:#07111ee8;border:1px solid #27455f}.ai-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.ai-stats span{background:#07111f;border:1px solid #223b52;border-radius:10px;padding:10px;color:#9eb1c4;font-size:11px}.ai-stats b{display:block;color:#ebf4ff;font-size:17px;margin-top:3px}.big-counter.in{background:#082619;border:1px solid #105e3b}.big-counter.out{background:#321218;border:1px solid #71303b}.big-counter.in strong{color:#46dc7d}.big-counter.out strong{color:#ff6475}.balance{border-color:#22384c}.manual-buttons .btn{box-shadow:none}.privacy-note{background:#07111f;border:1px solid #27445e;padding:13px;border-radius:12px;line-height:1.55}.privacy-note b{color:#51e583}.direction-help{margin-top:10px;border:1px solid #233e56;background:#07111f;border-radius:10px;padding:10px;font-size:11px}.camera-toolbar .btn{border:1px solid #29455f}.camera-toolbar .btn.primary{background:#1678d2}.live-head .pill.live{background:#0f5638;color:#6ff0a4}.shared-live-banner{background:#0b1726!important;color:#eaf3ff;border:1px solid #213a50!important}.shared-live-banner small,.shared-live-banner p{color:#98aec4!important}
@media(min-width:1200px){.live-layout{grid-template-columns:minmax(0,1fr) 360px}.camera-wrap{min-height:520px}.counter-panel{top:18px}.big-counter strong{font-size:64px}}
@media(max-width:900px){.live-layout{padding:8px}.camera-wrap{min-height:0}.ai-stats{grid-template-columns:repeat(2,1fr)}.ai-stats span:last-child{grid-column:1/-1}}

/* V26 — privacy totale + zona prospettica disegnabile sul pavimento */
.camera-wrap canvas{touch-action:none}
.zone-edit-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:6;background:#06111ee8;border:1px solid #2f6da8;color:#fff;padding:9px 13px;border-radius:10px;font-size:12px;pointer-events:none;white-space:nowrap}
.camera-toolbar select{background:#07111f;color:#eaf3ff;border:1px solid #29455f;border-radius:9px;padding:8px 10px}
.camera-toolbar #editZone,.camera-toolbar #saveZone,.camera-toolbar #resetZone{min-height:38px}
.privacy-note b{color:#55f08b;text-transform:uppercase}
@media(max-width:700px){.zone-edit-hint{white-space:normal;width:calc(100% - 24px);text-align:center}.camera-toolbar #editZone,.camera-toolbar #saveZone,.camera-toolbar #resetZone{flex:1}.camera-toolbar select{width:100%}}

/* V26 — avvio AI in un solo click */
.auto-camera{align-items:start}
.auto-camera-hint{margin-top:10px;padding:12px 14px;border:1px solid #29455f;border-radius:10px;background:#07111f;color:#a9bdd0;font-size:12px}
#startAi:disabled{opacity:.72;cursor:wait}

/* V26 — landscape mobile + true multi-person tracking */
.camera-wrap{aspect-ratio:16/9;min-height:0!important}.camera-wrap video,.camera-wrap canvas{width:100%;height:100%;object-fit:cover}
#landscapeMode{white-space:nowrap}
@media (max-width:1000px) and (orientation:landscape){
  body.landscape-live .sidebar{display:none}
  body.landscape-live .shell{grid-template-columns:1fr}
  body.landscape-live .content{padding:8px}
  body.landscape-live .topbar{display:none}
  body.landscape-live .live-layout{grid-template-columns:minmax(0,1fr) 270px;gap:8px;padding:8px}
  body.landscape-live .camera-wrap{height:min(72vh,calc(100vw * .5625));aspect-ratio:16/9}
  body.landscape-live .counter-panel{position:static}
  body.landscape-live .camera-toolbar{gap:6px}
  body.landscape-live .camera-toolbar .btn{padding:8px 10px;font-size:12px}
  body.landscape-live .direction-help{display:none}
}


/* V26 — configurazione postazione, GPS, orientamento e zone editor */
.session-wizard{max-width:1420px;margin:auto}
.wizard-card{padding:26px;background:linear-gradient(180deg,#fff,#fbfdff)}
.wizard-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.wizard-title h2{margin:2px 0 5px;font-size:26px}
.session-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;padding:18px;border:1px solid #dfe8f2;border-radius:16px;background:#f8fbfe}
.session-data-grid .field{margin:6px 0}
.session-data-grid .emphasis input{border-color:#b9d7f3;background:#fff}
.station-extra-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:14px}
.station-extra-card{border:1px solid #dfe8f2;border-radius:16px;background:white;padding:17px}
.station-extra-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.station-extra-head h3{margin:0 0 3px;font-size:16px}
.station-extra-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.station-icon{width:38px;height:38px;border-radius:11px;background:#e8f3ff;color:#1478d1;display:grid;place-items:center;font-size:21px;font-weight:900;flex:0 0 auto}
.gps-live{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.gps-live>div{background:#f4f7fb;border:1px solid #e2eaf3;border-radius:11px;padding:10px;min-width:0}
.gps-live small{display:block;color:#78879a;font-weight:900;font-size:8px;letter-spacing:.05em}
.gps-live b{display:block;margin-top:4px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gps-ok{color:#0c8959}.gps-warn{color:#b37b08}.gps-bad{color:#b42f44}
.session-summary{border-radius:12px;padding:12px 14px;margin:14px 0;background:#eef6ff;color:#285579}
.preflight.auto-camera,.launch{border:1px solid #dfe8f2;border-radius:15px;padding:16px;margin-top:14px;background:#fff}

/* Camera orientation is visual and does not depend on Screen Orientation API support */
.camera-wrap.camera-landscape{aspect-ratio:16/9;width:100%}
.camera-wrap.camera-portrait{aspect-ratio:9/16;width:min(100%,520px);max-height:78vh;margin-left:auto;margin-right:auto}
.camera-toolbar-v23{display:grid;grid-template-columns:auto auto 1fr auto;gap:9px;align-items:center}
.toolbar-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.toolbar-label{font-size:10px;color:#90a6ba;font-weight:900;text-transform:uppercase}
.camera-toolbar .active-view{background:#155b96!important;color:#fff;border-color:#2f8bd3!important}

/* Zone editor overlays the live feed: no separate black screen */
.zone-editor{position:absolute;inset:0;z-index:8;touch-action:none}
.zone-editor[hidden]{display:none!important}
.zone-editor svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.zone-editor polygon{fill:rgba(25,121,255,.18);stroke:#2c93ff;stroke-width:5;vector-effect:non-scaling-stroke}
.zone-handle{position:absolute;z-index:10;width:30px;height:30px;border-radius:50%;border:4px solid #fff;background:#1689f5;box-shadow:0 3px 14px #0008;transform:translate(-50%,-50%);touch-action:none;padding:0;cursor:grab}
.zone-handle:active{cursor:grabbing;background:#ffd33d}
.zone-editor-bar{position:absolute;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;gap:12px;align-items:center;background:#06101be8;color:white;border:1px solid #31516b;padding:9px 12px;border-radius:10px;pointer-events:none}
.zone-editor-bar b{font-size:12px}.zone-editor-bar span{font-size:10px;color:#aec0d2}
.camera-wrap canvas{pointer-events:none}
.zone-edit-hint{position:absolute;top:12px;right:12px;z-index:9;background:#0b67bde8;color:white;padding:8px 11px;border-radius:8px;font-size:11px;max-width:50%}

@media(max-width:1000px){
  .station-extra-grid{grid-template-columns:1fr}
  .camera-toolbar-v23{grid-template-columns:1fr 1fr}
  .gps-live{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .session-data-grid{grid-template-columns:1fr;padding:13px}
  .station-extra-grid{grid-template-columns:1fr}
  .gps-live{grid-template-columns:1fr 1fr}
  .camera-toolbar-v23{grid-template-columns:1fr}
  .toolbar-group{width:100%}
  .toolbar-group .btn{flex:1}
  .zone-handle{width:34px;height:34px}
  .zone-editor-bar{align-items:flex-start;flex-direction:column}
  .zone-edit-hint{left:12px;right:12px;max-width:none;text-align:center}
}

/* V26 — editor zona preciso, supervisione live e alert capienza */
.zone-editor{background:transparent!important;overflow:hidden}
.zone-editor svg{pointer-events:none;overflow:visible}
.zone-editor polygon{fill:rgba(22,137,245,.10);stroke:#22a2ff;stroke-width:3;vector-effect:non-scaling-stroke}
.zone-handle{width:36px;height:36px;border:5px solid #fff;background:#1689f5;box-shadow:0 0 0 2px #1689f5,0 5px 18px #0009;z-index:12}
.zone-inline-status{color:#8fcaff;font-size:11px;font-weight:800;padding:7px 9px;border:1px solid #28577f;border-radius:8px;background:#07111f}
.zone-editor-bar,.zone-edit-hint{display:none!important}
.camera-wrap .camera-hint{transition:opacity .12s ease}
.supervisor-board{overflow:hidden}.live-refresh{font-size:11px;color:#0b9461;font-weight:800}.supervisor-events{display:grid;gap:14px}.supervisor-event{border:1px solid #dde6ef;border-radius:16px;background:#fff;overflow:hidden}.supervisor-event>header{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 16px}.supervisor-event>header>div:first-child{display:grid;gap:3px}.supervisor-event header small{color:var(--muted)}.capacity-live{display:flex;gap:7px;align-items:baseline}.capacity-live strong{font-size:28px}.capacity-live em{font-style:normal;font-weight:900;color:#1677ff}.capacity-bar{height:7px;background:#edf2f7}.capacity-bar i{display:block;height:100%;background:#24b47e;transition:width .3s}.capacity-warning{border-color:#f0b429}.capacity-warning .capacity-bar i{background:#f0b429}.capacity-critical{border-color:#e5484d}.capacity-critical .capacity-bar i{background:#e5484d}.supervisor-stations{display:grid;gap:1px;background:#e6edf4;border-top:1px solid #e6edf4;border-bottom:1px solid #e6edf4}.supervisor-station{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:14px;align-items:center;padding:12px 16px;background:#fff}.supervisor-station>div:first-child{display:grid;gap:7px}.supervisor-numbers{display:flex;gap:18px;align-items:center}.supervisor-numbers span{display:grid;min-width:66px}.supervisor-numbers small{font-size:8px;color:#8190a2;font-weight:900}.supervisor-numbers b{font-size:17px}.supervisor-numbers em{font-style:normal;font-size:8px;color:#8190a2}.operator-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #dce5ee;background:#f7f9fb;border-radius:999px;padding:4px 8px;margin:2px 3px 2px 0;font-size:9px;color:#526274;white-space:nowrap}.operator-chip i{width:7px;height:7px;border-radius:50%;background:#98a2b3}.operator-chip.online{background:#ecfdf3;border-color:#a6e6c5;color:#067647}.operator-chip.online i{background:#16b364;box-shadow:0 0 0 3px #16b36422}.supervisor-event>footer{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#f8fafc;font-size:11px}.flow-in{color:#067647}.flow-out{color:#b42318;margin-left:9px}.station-list-v26 article{grid-template-columns:minmax(260px,1fr) auto}.station-operators{margin-top:6px}.station-numbers .flow{min-width:100px}.alert-config input{min-width:280px;max-width:420px}.event-live-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:900px){.supervisor-station{grid-template-columns:1fr}.supervisor-numbers{justify-content:space-between;gap:8px}.operator-chip{white-space:normal}.event-live-kpis{grid-template-columns:repeat(2,1fr)}.station-list-v26 article{grid-template-columns:1fr}.supervisor-event>header{align-items:flex-start}.capacity-live{flex-wrap:wrap;justify-content:flex-end}}


/* V26 — editor zona sempre nel viewport e privacy tracking persistente */
.camera-wrap.zone-editing{
  scroll-margin-block:10px;
  max-height:calc(100dvh - 96px)!important;
  background:#02060b;
}
.camera-wrap.zone-editing.camera-landscape{
  width:min(100%,calc((100dvh - 96px) * 16 / 9));
  margin-inline:auto;
  aspect-ratio:16/9;
}
.camera-wrap.zone-editing.camera-portrait{
  width:min(100%,calc((100dvh - 96px) * 9 / 16));
  margin-inline:auto;
  aspect-ratio:9/16;
}
.camera-wrap.zone-editing video,.camera-wrap.zone-editing canvas{object-fit:contain!important}
.camera-wrap.zone-editing .zone-editor{inset:0;background:transparent!important;overflow:hidden;pointer-events:auto}
.camera-wrap.zone-editing .zone-handle{width:42px;height:42px;border-width:5px;touch-action:none;user-select:none;-webkit-user-select:none}
.camera-wrap.zone-editing .camera-hint{pointer-events:none}
@media(max-width:700px){
  .camera-wrap.zone-editing{max-height:calc(100dvh - 72px)!important}
  .camera-wrap.zone-editing.camera-landscape{width:min(100%,calc((100dvh - 72px) * 16 / 9))}
  .camera-wrap.zone-editing.camera-portrait{width:min(100%,calc((100dvh - 72px) * 9 / 16))}
  .camera-wrap.zone-editing .zone-handle{width:46px;height:46px}
}
