:root{--ink:#111827;--muted:#667085;--line:#e4e7ec;--surface:#fff;--canvas:#f4f6f8;--primary:#c1121f;--accent:#d4af37;--primary-rgb:193,18,31;--accent-rgb:212,175,55;--success:#147d64;--shadow:0 18px 50px rgba(15,23,42,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(145deg,#f9fafb,#eef1f5);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}.topbar{height:74px;padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:900;letter-spacing:-1px}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:11px;margin-top:1px}.top-actions{display:flex;gap:10px;align-items:center}.pill,.status-dot{border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700;background:#fff}.layout{width:min(1460px,100%);margin:0 auto;padding:28px clamp(16px,3vw,38px) 70px;display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px}.card{background:rgba(255,255,255,.95);border:1px solid rgba(228,231,236,.95);border-radius:22px;box-shadow:var(--shadow)}.sidebar{padding:22px;align-self:start;position:sticky;top:96px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:800;color:var(--primary);margin:0 0 6px}.sidebar h2,.panel h2,.hero h1{margin:0}.sidebar-note{font-size:12px;line-height:1.5;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.organization-list{display:grid;gap:8px;margin-top:18px}.organization-empty{padding:18px;border:1px dashed #cbd5e1;border-radius:14px;color:var(--muted);font-size:13px;text-align:center}.organization-item{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;cursor:pointer}.organization-item:hover{border-color:var(--primary)}.organization-item strong,.organization-item small{display:block}.organization-item small{color:var(--muted);margin-top:3px}.content{min-width:0}.hero{padding:clamp(22px,4vw,38px);display:flex;justify-content:space-between;align-items:center;gap:25px;background:linear-gradient(135deg,#fff 55%,#f7efe3)}.hero h1{font-size:clamp(28px,4vw,46px);letter-spacing:-.045em}.hero p:not(.eyebrow){color:var(--muted);line-height:1.65;max-width:700px}.trial-preview{min-width:190px;border:1px solid rgba(212,175,55,.4);background:rgba(255,255,255,.7);border-radius:18px;padding:18px}.trial-preview span,.trial-preview strong,.trial-preview small{display:block}.trial-preview span,.trial-preview small{font-size:12px;color:var(--muted)}.trial-preview strong{font-size:26px;margin:4px 0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.step{border:0;background:transparent;border-bottom:3px solid #d9dee6;color:var(--muted);padding:12px 8px;cursor:pointer;font-weight:700}.step span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e8ebef;margin-right:6px}.step.active{border-color:var(--primary);color:var(--ink)}.step.active span{background:var(--primary);color:#fff}.panel{display:none;padding:clamp(20px,4vw,36px)}.panel.active{display:block}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:26px}.status-dot{color:#344054}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#94a3b8;margin-right:7px}.status-dot.ready{color:var(--success);background:#ecfdf5;border-color:#a7f3d0}.status-dot.ready:before{background:var(--success)}.form-grid{display:grid;gap:18px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .wide{grid-column:1/-1}.form-grid.compact{margin-bottom:22px}label{font-size:13px;font-weight:750;color:#344054}label small{display:block;font-weight:500;color:var(--muted);margin-top:6px}input,select,textarea{display:block;width:100%;border:1px solid #d0d5dd;border-radius:12px;background:#fff;color:var(--ink);padding:12px 13px;margin-top:7px;outline:none;transition:.18s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(193,18,31,.1)}textarea{resize:vertical}.button{border:1px solid transparent;border-radius:11px;padding:10px 15px;font-weight:800;cursor:pointer;transition:.18s}.button.primary{background:var(--primary);color:#fff}.button.primary:hover{filter:brightness(.92);transform:translateY(-1px)}.button.ghost{background:#fff;border-color:var(--line);color:var(--ink)}.panel-actions{display:flex;align-items:center;justify-content:space-between;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 24px}.toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fafafa}.toggle input{display:none}.toggle span{width:37px;height:21px;border-radius:99px;background:#d0d5dd;position:relative;flex:0 0 auto}.toggle span:after{content:"";width:15px;height:15px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}.toggle input:checked+span{background:var(--success)}.toggle input:checked+span:after{left:19px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}table{width:100%;border-collapse:collapse;min-width:700px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f8fafc}td input,td select{margin:0;padding:9px}.icon-button{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:9px;color:#b42318;font-size:20px;cursor:pointer}.inline-message{min-height:22px;margin-top:12px;color:var(--muted);font-size:13px}.inline-message.error{color:#b42318}.inline-message.success{color:var(--success)}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-card{border:1px solid var(--line);border-radius:16px;padding:17px;background:#fafafa}.summary-card span,.summary-card strong,.summary-card small{display:block}.summary-card span{font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.summary-card strong{font-size:19px;margin:6px 0}.summary-card small{color:var(--muted)}.modules{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}.modules article{border-radius:15px;background:#111827;color:#fff;padding:17px}.modules span,.modules strong,.modules small{display:block}.modules span{color:var(--accent);font-size:11px}.modules strong{margin:8px 0 4px}.modules small{color:#cbd5e1;line-height:1.4}.wrap-actions>div{display:flex;gap:8px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static;order:2}.content{order:1}.hero{align-items:flex-start}.summary-grid{grid-template-columns:1fr 1fr}.modules{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.topbar{height:auto;padding:12px 15px}.pill{display:none}.layout{padding:16px 12px 50px}.hero{display:block}.trial-preview{margin-top:18px}.steps{grid-template-columns:repeat(4,1fr)}.step{font-size:0}.step span{font-size:12px;margin:0}.form-grid.two,.form-grid.three,.toggle-grid,.summary-grid,.modules{grid-template-columns:1fr}.section-heading{align-items:flex-start}.wrap-actions{align-items:stretch;gap:10px}.wrap-actions,.wrap-actions>div{flex-direction:column}.wrap-actions .button{width:100%}}
.upload-preview{min-height:84px;border:1px dashed #cbd5e1;border-radius:14px;background:#fafafa;display:flex;align-items:center;justify-content:center;color:var(--muted);overflow:hidden}.upload-preview img{max-width:220px;max-height:78px;object-fit:contain}.add-row{display:grid;grid-template-columns:1fr auto;gap:8px}.add-row input,.add-row .button{margin-top:7px}.category-list{display:grid;gap:8px;margin-top:12px}.category-item{display:grid;grid-template-columns:28px minmax(0,1fr) 34px 34px 34px;gap:7px;align-items:center;border:1px solid var(--line);background:#fafafa;border-radius:13px;padding:8px}.category-item input{margin:0;padding:9px}.drag-handle{text-align:center;color:var(--muted);font-weight:900}.category-item .icon-button{font-size:16px;color:var(--ink)}.category-item .remove-category{color:#b42318;font-size:20px}.file-list{display:grid;gap:7px;border:1px dashed #cbd5e1;border-radius:14px;padding:12px;color:var(--muted)}.file-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px}.file-item strong,.file-item small{display:block}.file-item small{font-size:11px;color:var(--muted);margin-top:2px}.hidden{display:none!important}.dashboard{min-height:calc(100vh - 74px);display:grid;grid-template-columns:250px minmax(0,1fr);background:#f4f6f8}.dashboard-nav{background:#111827;color:#fff;padding:25px 18px;display:flex;flex-direction:column;gap:28px}.dashboard-brand{display:flex;align-items:center;gap:11px}.dashboard-brand strong,.dashboard-brand small{display:block}.dashboard-brand small{color:#9ca3af;margin-top:3px}.dashboard-nav nav{display:grid;gap:6px}.dash-link{border:0;background:transparent;color:#cbd5e1;text-align:left;border-radius:10px;padding:11px 12px;font-weight:750;cursor:pointer}.dash-link:hover,.dash-link.active{background:#263244;color:#fff}.dashboard-nav>.button{margin-top:auto}.dashboard-main{padding:clamp(20px,4vw,44px);min-width:0}.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.dashboard-header h1{margin:0;font-size:clamp(27px,4vw,42px);letter-spacing:-.035em}.trial-chip{border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800}.dash-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dash-stat,.dash-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px}.dash-stat span,.dash-stat strong,.dash-stat small{display:block}.dash-stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.dash-stat strong{font-size:28px;margin:7px 0}.dash-stat small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:15px;margin-top:15px}.dash-card h2,.dash-card h3{margin-top:0}.checklist{display:grid;gap:11px}.check-item{display:flex;gap:10px;align-items:flex-start;padding:11px;border-radius:12px;background:#f8fafc}.check-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:#166534;font-weight:900;flex:0 0 auto}.check-icon.todo{background:#fef3c7;color:#92400e}.quick-actions{display:grid;gap:9px}.quick-action{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px;cursor:pointer}.quick-action strong,.quick-action small{display:block}.quick-action small{color:var(--muted);margin-top:3px}.module-placeholder{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px}.module-placeholder h2{margin-top:0}.module-placeholder p{color:var(--muted);line-height:1.6}.module-list{display:grid;gap:8px;margin-top:18px}.module-row{display:flex;justify-content:space-between;gap:15px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fafafa}
@media(max-width:900px){.dashboard{grid-template-columns:1fr}.dashboard-nav{position:static}.dashboard-nav nav{grid-template-columns:repeat(4,1fr)}.dash-link{text-align:center;font-size:12px}.dash-stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:640px){.dash-stats{grid-template-columns:1fr}.category-item{grid-template-columns:22px minmax(0,1fr) 30px 30px 30px}.category-item .icon-button{width:30px}.dashboard-nav nav{grid-template-columns:1fr 1fr}.dashboard-header{align-items:flex-start;flex-direction:column}}
.module-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.module-heading h2{font-size:30px;margin:0 0 7px}.module-heading p:not(.eyebrow),.muted{color:var(--muted);line-height:1.55;margin:0}.count-chip{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800}.operational-grid{margin:0 0 16px}.operational-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.operational-form .button{align-self:end}.judge-form{grid-template-columns:2fr 1fr 1fr auto;align-items:end}.operational-table{background:#fff}.operational-table td strong,.operational-table td small{display:block}.operational-table td small{color:var(--muted);margin-top:3px}.operational-table table{min-width:850px}.empty-cell{text-align:center;color:var(--muted);padding:28px}.row-actions{display:flex;gap:5px;align-items:center}.button.mini{padding:7px 9px;font-size:11px;background:#fff;border-color:var(--line)}.button.success{background:#147d64;color:#fff}.button.danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}.button.download-example{display:inline-block;text-decoration:none;margin-top:15px}.state-badge{display:inline-flex;border-radius:999px;padding:5px 9px;background:#eef2f6;color:#475467;font-size:11px;font-weight:800}.state-badge.completed{background:#dcfce7;color:#166534}.state-badge.dns{background:#fee2e2;color:#991b1b}.state-badge.competing{background:#dbeafe;color:#1d4ed8}.file-drop{display:block;margin-top:18px;border:1px dashed #94a3b8;border-radius:13px;padding:20px;text-align:center;cursor:pointer}.file-drop input{margin:10px 0 0}.control-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.queue{padding:12px;align-self:start;max-height:720px;overflow:auto}.queue h3{padding:5px 7px}.queue-item{width:100%;display:grid;grid-template-columns:28px 1fr 22px;gap:8px;align-items:center;text-align:left;border:0;background:transparent;border-radius:11px;padding:10px 8px;cursor:pointer}.queue-item:hover,.queue-item.active{background:#eef2f6}.queue-item>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#e2e8f0;font-weight:800;font-size:11px}.queue-item strong,.queue-item small{display:block}.queue-item small{color:var(--muted);margin-top:2px}.queue-item em{font-style:normal;color:var(--success);font-weight:900}.control-stage{display:grid;gap:15px}.current-athlete{background:linear-gradient(135deg,#111827,#263244);color:#fff;border-radius:19px;padding:clamp(22px,4vw,34px)}.current-athlete p{margin:0;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800}.current-athlete h2{font-size:clamp(30px,5vw,48px);margin:8px 0}.current-athlete>span{color:#cbd5e1}.control-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.score-form{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.score-form .wide{grid-column:1/-1}.submitted-scores{display:grid;gap:7px;margin-top:18px}.submitted-scores div{display:flex;justify-content:space-between;border-radius:10px;background:#f8fafc;padding:9px 12px}.warning-box{border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:12px;padding:13px}.results-list{display:grid;gap:14px}.results-card h3{font-size:22px;margin:0}.results-card .table-wrap{border-radius:12px}.results-card table{min-width:650px}code{font-weight:800;color:#7c2d12;background:#ffedd5;border-radius:6px;padding:4px 7px}
@media(max-width:1000px){.control-layout{grid-template-columns:1fr}.queue{max-height:280px}.judge-form{grid-template-columns:1fr 1fr}.score-form{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.module-heading{display:block}.count-chip{display:inline-block;margin-top:12px}.operational-form,.judge-form,.score-form{grid-template-columns:1fr}.score-form .wide{grid-column:auto}.control-actions .button{flex:1 1 45%}.dashboard-main{padding:18px 12px}.current-athlete{border-radius:15px}}
.count-chip.limit-error{border-color:#fda29b;background:#fef3f2;color:#b42318}.button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}

/* ScoreFlow v1.4 — postazioni operative */
.dashboard{background:radial-gradient(circle at 90% 0,#e9edf5 0,transparent 32%),#f4f6f9}.dashboard-nav{background:linear-gradient(180deg,#0b1220,#111827 60%,#182234);box-shadow:12px 0 35px rgba(15,23,42,.08)}.dashboard-brand .brand-mark{background:linear-gradient(135deg,var(--primary),#7f1d1d);box-shadow:0 8px 22px rgba(193,18,31,.3)}.dash-link{position:relative;transition:.2s}.dash-link:hover,.dash-link.active{background:linear-gradient(90deg,rgba(255,255,255,.13),rgba(255,255,255,.05));transform:translateX(2px)}.dash-link.active:before{content:"";position:absolute;left:-18px;top:8px;bottom:8px;width:3px;border-radius:4px;background:var(--accent)}.dash-card,.dash-stat,.module-placeholder{box-shadow:0 10px 35px rgba(15,23,42,.045)}
.live-chip{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:850}.live-chip i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.13)}
.station-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:15px}.station-card{grid-column:span 2;position:relative;overflow:hidden;min-height:285px;text-align:left;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:23px;background:linear-gradient(145deg,#111827,#202c40);color:#fff;cursor:pointer;box-shadow:0 20px 48px rgba(15,23,42,.13);transition:.22s}.station-card:nth-child(4),.station-card:nth-child(5){grid-column:span 3}.station-card:before{content:"";position:absolute;width:170px;height:170px;right:-80px;top:-85px;border-radius:50%;background:rgba(255,255,255,.08)}.station-card:hover{transform:translateY(-4px);box-shadow:0 25px 58px rgba(15,23,42,.2)}.station-number{position:absolute;right:20px;top:18px;font-size:12px;color:#94a3b8;font-weight:850}.station-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#ef4444);font-size:22px;box-shadow:0 10px 25px rgba(193,18,31,.28)}.station-presenter .station-icon{background:linear-gradient(135deg,#7c3aed,#a855f7)}.station-control .station-icon{background:linear-gradient(135deg,#0284c7,#22d3ee)}.station-staff .station-icon{background:linear-gradient(135deg,#047857,#34d399)}.station-public .station-icon{background:linear-gradient(135deg,#db2777,#fb7185)}.station-card h3{font-size:22px;margin:22px 0 8px}.station-card p{color:#cbd5e1;line-height:1.55;min-height:66px;margin:0}.station-card small{display:block;color:#94a3b8;margin:12px 0 20px}.station-card>strong{font-size:13px;color:#fff}
.role-shell{max-width:1100px;margin:0 auto}.role-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.role-top>div{display:flex;gap:8px}.role-login{max-width:520px;margin:7vh auto 0;text-align:center;background:#fff;border:1px solid var(--line);border-radius:26px;padding:38px;box-shadow:0 25px 70px rgba(15,23,42,.12)}.role-symbol{width:68px;height:68px;border-radius:22px;display:grid;place-items:center;margin:0 auto 18px;background:linear-gradient(135deg,var(--primary),#ef4444);color:#fff;font-size:28px}.role-login h2{font-size:31px;margin:0}.role-login>p:not(.eyebrow){color:var(--muted);line-height:1.55}.role-login form{display:grid;gap:14px;margin-top:25px;text-align:left}.role-login input{text-align:center;font-size:25px;letter-spacing:.25em;font-weight:900}.judge-identity{text-align:right}.judge-identity span,.judge-identity strong{display:block}.judge-identity span{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.1em}.role-athlete{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#0b1220,#28364e);color:#fff;border-radius:23px;padding:26px 30px;margin-bottom:15px}.role-athlete h2{font-size:clamp(29px,5vw,48px);margin:5px 0}.role-athlete>div>span{color:#cbd5e1}.judge-score-card{border-radius:22px;padding:25px}.judge-criteria-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.score-criterion{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fafbfc}.score-criterion span,.score-criterion small{display:block}.score-criterion small{font-size:10px;color:var(--muted);font-weight:500;margin-top:4px}.score-criterion input{font-size:23px;font-weight:850;text-align:center}.penalty-panel{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin:15px 0;padding:15px;border-radius:15px;background:#fff7ed;border:1px solid #fed7aa}.score-submit{width:100%;padding:15px;font-size:16px}.waiting-panel{text-align:center;border:1px dashed #cbd5e1;border-radius:18px;padding:36px;background:#f8fafc}.waiting-panel span{font-size:34px}.waiting-panel strong,.waiting-panel p{display:block}.waiting-panel strong{font-size:19px;margin-top:10px}.waiting-panel p{color:var(--muted)}
.presenter-shell{max-width:1200px}.presenter-stage{min-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;border-radius:30px;padding:45px;background:radial-gradient(circle at 50% 20%,#344463,#101827 60%);color:#fff;box-shadow:0 30px 80px rgba(15,23,42,.22)}.presenter-stage:after{content:"";position:absolute;inset:auto -10% -65% -10%;height:80%;border-radius:50%;background:linear-gradient(90deg,rgba(193,18,31,.6),rgba(212,175,55,.35));filter:blur(60px)}.presenter-stage>*{position:relative;z-index:1}.presenter-stage>p{position:absolute;top:24px;color:#94a3b8;font-weight:800}.presenter-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-size:12px;font-weight:850}.presenter-stage h2{font-size:clamp(48px,9vw,100px);letter-spacing:-.06em;margin:18px 0 5px;line-height:.95}.presenter-stage h3{font-size:22px;color:#cbd5e1;margin:7px 0 27px}.presenter-meta{display:flex;gap:10px}.presenter-meta span{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);border-radius:999px;padding:9px 14px}.next-athlete{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-top:14px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:17px 20px}.next-athlete>span{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:800}.next-athlete strong{font-size:20px}.next-athlete small{color:var(--muted)}.role-actions{text-align:right;margin-top:14px}
.staff-list{display:grid;gap:10px}.staff-row{display:grid;grid-template-columns:42px minmax(180px,1fr) auto auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.04)}.staff-row.current{border-color:#93c5fd;box-shadow:0 0 0 3px #dbeafe}.staff-order{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#eef2f6;font-weight:850}.staff-row strong,.staff-row small{display:block}.staff-row small{color:var(--muted);margin-top:3px}.staff-actions{display:flex;gap:5px}
.public-shell{max-width:800px}.public-brand{font-weight:900;letter-spacing:-.02em}.public-hero{text-align:center;border-radius:28px;padding:55px 25px;background:linear-gradient(145deg,#18112b,#3b174d);color:#fff;box-shadow:0 25px 65px rgba(59,23,77,.2)}.public-hero h2{font-size:clamp(42px,8vw,75px);margin:10px 0}.public-hero>span{color:#ddd6fe}.public-vote-card{text-align:center;margin-top:15px;border:1px solid var(--line);border-radius:22px;padding:27px;background:#fff}.public-vote-card h3{font-size:24px;margin:0}.public-vote-card p{color:var(--muted)}.rating-buttons{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin:24px 0 17px}.rating-buttons button{aspect-ratio:1;border:1px solid var(--line);border-radius:11px;background:#f8fafc;font-weight:900;cursor:pointer}.rating-buttons button:hover,.rating-buttons button.selected{background:linear-gradient(135deg,#db2777,#fb7185);border-color:transparent;color:#fff;transform:translateY(-2px)}.vote-thanks{display:grid;justify-items:center;gap:4px;padding:20px}.vote-thanks span{font-size:36px;color:#db2777}.vote-thanks strong{font-size:22px}.vote-thanks small{color:var(--muted)}.athlete-cell strong,.athlete-cell small{display:block}.athlete-cell small{color:var(--muted);margin-top:3px}
.state-badge.ready{background:#dcfce7;color:#166534}.state-badge.delayed{background:#fef3c7;color:#92400e}.state-badge.registered{background:#eef2f6;color:#475467}
@media(max-width:1050px){.station-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.station-card,.station-card:nth-child(4),.station-card:nth-child(5){grid-column:span 1}.judge-criteria-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-row{grid-template-columns:42px 1fr auto}.staff-actions{grid-column:2/-1}.rating-buttons{grid-template-columns:repeat(5,1fr)}}
@media(max-width:640px){.station-grid{grid-template-columns:1fr}.station-card{min-height:240px}.role-top,.role-athlete{align-items:flex-start}.role-top{flex-direction:column}.role-top>div{width:100%}.role-top .button{flex:1}.judge-identity{text-align:left}.role-athlete{flex-direction:column}.judge-criteria-grid,.penalty-panel{grid-template-columns:1fr}.presenter-stage{min-height:400px;padding:30px 18px}.next-athlete{grid-template-columns:1fr}.staff-row{grid-template-columns:36px 1fr}.staff-row>.state-badge{grid-column:2}.staff-actions{grid-column:1/-1}.staff-actions .button{flex:1}.rating-buttons{grid-template-columns:repeat(5,1fr)}.role-login{padding:26px 20px;margin-top:2vh}}

/* ScoreFlow v1.4.1 — branding esteso */
body{background:radial-gradient(circle at 8% 0,rgba(var(--primary-rgb),.08),transparent 28%),radial-gradient(circle at 92% 4%,rgba(var(--accent-rgb),.1),transparent 25%),#f4f6f9}.topbar{border-top:4px solid var(--accent)}.topbar .brand-mark,.dashboard-brand .brand-mark{background:linear-gradient(145deg,var(--primary),color-mix(in srgb,var(--primary) 72%,#111827));box-shadow:0 9px 24px rgba(var(--primary-rgb),.26)}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 45%,rgba(var(--primary-rgb),.07) 72%,rgba(var(--accent-rgb),.13))}.hero:after{content:"";position:absolute;right:-55px;bottom:-80px;width:230px;height:230px;border-radius:50%;border:38px solid rgba(var(--accent-rgb),.1)}.hero>*{position:relative;z-index:1}.trial-preview{border-color:rgba(var(--accent-rgb),.45);background:rgba(255,255,255,.82);box-shadow:0 15px 35px rgba(var(--accent-rgb),.1)}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 4px rgba(var(--primary-rgb),.12)}input[type="color"]{height:54px;padding:5px;cursor:pointer;border-width:2px}.button.primary{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 76%,#111827));box-shadow:0 9px 20px rgba(var(--primary-rgb),.2)}.button.primary:hover{box-shadow:0 12px 26px rgba(var(--primary-rgb),.3)}.step.active{border-image:linear-gradient(90deg,var(--primary),var(--accent)) 1}.toggle input:checked+span{background:var(--primary)}
.brand-preview{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:14px;border:1px solid rgba(var(--primary-rgb),.16);border-left:5px solid var(--primary);border-radius:17px;padding:15px 17px;background:linear-gradient(100deg,rgba(var(--primary-rgb),.08),rgba(var(--accent-rgb),.1));box-shadow:0 12px 28px rgba(var(--primary-rgb),.06)}.brand-preview-mark{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--primary),var(--accent));font-size:18px;font-weight:950}.brand-preview span,.brand-preview strong,.brand-preview small{display:block}.brand-preview span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-weight:900}.brand-preview strong{font-size:18px;margin:3px 0}.brand-preview small{color:var(--muted)}.brand-preview-swatches{display:flex;gap:7px}.brand-preview-swatches i{width:27px;height:27px;border-radius:50%;background:var(--primary);border:3px solid #fff;box-shadow:0 3px 10px rgba(15,23,42,.15)}.brand-preview-swatches i+ i{background:var(--accent)}
.dashboard{background:radial-gradient(circle at 92% 0,rgba(var(--accent-rgb),.12),transparent 29%),radial-gradient(circle at 32% 100%,rgba(var(--primary-rgb),.07),transparent 34%),#f3f5f8}.dashboard-nav{background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 30%,#0b1220),#0b1220 42%,color-mix(in srgb,var(--accent) 12%,#111827));border-right:1px solid rgba(var(--accent-rgb),.18)}.dash-link.active:before{background:var(--accent);box-shadow:0 0 16px rgba(var(--accent-rgb),.55)}.dash-link:hover,.dash-link.active{background:linear-gradient(90deg,rgba(var(--primary-rgb),.34),rgba(var(--accent-rgb),.12))}.dashboard-main{position:relative}.dashboard-header{position:relative;border:1px solid rgba(var(--primary-rgb),.12);border-radius:20px;padding:20px 22px;background:linear-gradient(105deg,#fff,rgba(var(--primary-rgb),.06),rgba(var(--accent-rgb),.1));box-shadow:0 12px 34px rgba(15,23,42,.055);overflow:hidden}.dashboard-header:after{content:"";position:absolute;right:-32px;top:-54px;width:150px;height:150px;border-radius:50%;border:25px solid rgba(var(--accent-rgb),.12)}.dashboard-header>*{position:relative;z-index:1}.trial-chip{border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.13);color:color-mix(in srgb,var(--accent) 55%,#4a2d00)}.dash-stat{position:relative;overflow:hidden;border-top:3px solid var(--primary)}.dash-stat:nth-child(even){border-top-color:var(--accent)}.dash-stat:after{content:"";position:absolute;right:-25px;top:-30px;width:80px;height:80px;border-radius:50%;background:rgba(var(--primary-rgb),.06)}.dash-stat:nth-child(even):after{background:rgba(var(--accent-rgb),.1)}.dash-stat strong{color:color-mix(in srgb,var(--primary) 82%,#111827)}.dash-stat:nth-child(even) strong{color:color-mix(in srgb,var(--accent) 68%,#111827)}.dash-card{border-color:rgba(var(--primary-rgb),.11)}.quick-action{position:relative;overflow:hidden;transition:.18s}.quick-action:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}.quick-action:nth-child(even):before{background:var(--accent)}.quick-action:hover{border-color:rgba(var(--primary-rgb),.3);transform:translateX(3px);box-shadow:0 8px 20px rgba(var(--primary-rgb),.08)}.quick-action.demo-action{background:linear-gradient(100deg,rgba(var(--primary-rgb),.09),rgba(var(--accent-rgb),.13));border-color:rgba(var(--accent-rgb),.35)}.demo-message{display:flex;align-items:center;gap:10px;margin-bottom:15px;border:1px solid rgba(var(--accent-rgb),.4);border-radius:14px;padding:13px 15px;background:linear-gradient(90deg,rgba(var(--primary-rgb),.08),rgba(var(--accent-rgb),.13));font-weight:800}.demo-message span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff}.check-icon{background:rgba(var(--primary-rgb),.12);color:var(--primary)}.check-icon.todo{background:rgba(var(--accent-rgb),.18);color:color-mix(in srgb,var(--accent) 70%,#523400)}
.station-card{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 26%,#111827),#172033 68%,color-mix(in srgb,var(--accent) 13%,#111827));border-color:rgba(var(--accent-rgb),.18)}.station-card:before{background:linear-gradient(135deg,rgba(var(--primary-rgb),.18),rgba(var(--accent-rgb),.2))}.station-icon,.station-presenter .station-icon,.station-control .station-icon,.station-staff .station-icon,.station-public .station-icon{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 10px 25px rgba(var(--primary-rgb),.3)}.station-card>strong,.current-athlete p,.presenter-kicker{color:var(--accent)}.role-symbol{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 12px 30px rgba(var(--primary-rgb),.25)}.role-athlete,.current-athlete{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 30%,#111827),#172033 65%,color-mix(in srgb,var(--accent) 16%,#111827))}.presenter-stage{background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--primary) 42%,#26334b),#101827 58%)}.presenter-stage:after{background:linear-gradient(90deg,rgba(var(--primary-rgb),.62),rgba(var(--accent-rgb),.42))}.public-hero{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 55%,#16112a),color-mix(in srgb,var(--accent) 32%,#16112a));box-shadow:0 25px 65px rgba(var(--primary-rgb),.2)}.rating-buttons button:hover,.rating-buttons button.selected{background:linear-gradient(135deg,var(--primary),var(--accent))}.vote-thanks span{color:var(--primary)}.count-chip{border-color:rgba(var(--primary-rgb),.16);background:linear-gradient(90deg,#fff,rgba(var(--accent-rgb),.1))}.results-card{border-top:3px solid var(--accent)}
@media(max-width:640px){.brand-preview{grid-template-columns:48px 1fr}.brand-preview-mark{width:48px;height:48px}.brand-preview-swatches{grid-column:1/-1}.dashboard-header{padding:17px}.demo-message{align-items:flex-start}}

/* ScoreFlow v1.5 — regia, documenti ed eliminatorie */
.athlete-list-identity{display:flex;align-items:center;gap:10px}.athlete-list-identity>img,.athlete-list-identity>span{width:38px;height:38px;border-radius:12px;object-fit:cover;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:900}.athlete-list-identity strong,.athlete-list-identity small{display:block}.athlete-list-identity small{color:var(--muted);margin-top:2px}.athlete-profile-grid{display:grid;grid-template-columns:260px minmax(0,1.3fr) minmax(240px,.8fr);gap:15px}.athlete-profile,.athlete-files,.athlete-competition{padding:22px}.athlete-profile{text-align:center}.athlete-photo{width:160px;height:160px;margin:0 auto 17px;border-radius:28px;overflow:hidden;background:linear-gradient(145deg,rgba(var(--primary-rgb),.16),rgba(var(--accent-rgb),.24));display:grid;place-items:center}.athlete-photo img{width:100%;height:100%;object-fit:cover}.athlete-photo span{font-size:60px;font-weight:950;color:var(--primary)}.photo-upload{display:block;position:relative;overflow:hidden;margin-bottom:8px}.photo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.athlete-profile .button{width:100%;margin-top:7px}.athlete-profile>small{display:block;color:var(--muted);margin-top:12px;line-height:1.45}.athlete-files{display:grid;gap:10px}.athlete-files h3,.athlete-competition h3{margin:0 0 8px}.athlete-upload{position:relative;border:1px solid var(--line);border-radius:15px;padding:15px;background:#fafbfc;cursor:pointer}.athlete-upload span,.athlete-upload small,.athlete-upload em{display:block}.athlete-upload small{color:var(--muted);margin:5px 0 9px}.athlete-upload em{color:var(--primary);font-style:normal;font-weight:850;font-size:12px}.athlete-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.detail-list{display:grid;gap:8px}.detail-list>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:11px 0}.detail-list span{color:var(--muted);font-size:12px}.detail-list strong{text-align:right}.event-operations{display:grid;grid-template-columns:1fr 1.2fr;gap:15px}.event-operations>.dash-card{padding:22px}.schedule-list{display:grid;gap:8px}.schedule-category{display:grid;grid-template-columns:36px 1fr;gap:11px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fafbfc}.schedule-category>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(var(--primary-rgb),.12);color:var(--primary);font-weight:900}.schedule-category strong,.schedule-category small{display:block}.schedule-category small{color:var(--muted);margin-top:3px}.rules-editor{display:grid;gap:13px}.rules-editor textarea{line-height:1.55}.file-chip{display:flex;justify-content:space-between;border-radius:12px;padding:11px 13px;background:rgba(var(--accent-rgb),.13)}.file-chip small{color:var(--muted)}.control-settings{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;margin-bottom:15px}.control-settings strong,.control-settings small{display:block}.control-settings small{color:var(--muted);margin-top:4px}.segmented{display:flex;border:1px solid var(--line);border-radius:12px;padding:3px;background:#f4f6f8}.segmented button{border:0;border-radius:9px;padding:9px 13px;background:transparent;font-weight:850;cursor:pointer}.segmented button.active{background:var(--primary);color:#fff;box-shadow:0 5px 15px rgba(var(--primary-rgb),.2)}.button.warning{background:#f59e0b;color:#fff}.vote-monitor{padding:20px}.judge-alerts{display:grid;gap:8px}.judge-alert{display:flex;align-items:center;gap:11px;border:1px solid #fde68a;border-radius:13px;padding:11px;background:#fffbeb}.judge-alert>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#fef3c7;color:#92400e;font-weight:950}.judge-alert strong,.judge-alert small{display:block}.judge-alert small{color:#92400e;margin-top:3px}.judge-alert.delayed{border-color:#fca5a5;background:#fef2f2}.judge-alert.delayed>span{background:#fee2e2;color:#b91c1c}.judge-alert.delayed small{color:#b91c1c}.vote-complete{border:1px solid #86efac;background:#f0fdf4;color:#166534;border-radius:13px;padding:14px;font-weight:850}.rules-tip{margin-top:13px;border-top:1px solid var(--line);padding-top:12px}.rules-tip summary{cursor:pointer;font-weight:850;color:var(--primary)}.rules-tip p{white-space:pre-line;line-height:1.55;color:var(--muted)}.repeat-queue{display:grid;gap:5px;margin:12px 5px 4px;padding:11px;border-radius:12px;background:rgba(var(--accent-rgb),.14);border:1px solid rgba(var(--accent-rgb),.3)}.repeat-queue strong{font-size:11px;text-transform:uppercase;letter-spacing:.07em}.repeat-queue small{color:#6b4d00}.rounds-config{display:flex;align-items:end;gap:13px;padding:18px;margin-bottom:15px}.rounds-config .toggle{margin:0;flex:1}.rounds-config label:not(.toggle){max-width:190px}.elimination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.elimination-card{padding:20px}.elimination-card h3{margin:0 0 13px}.elimination-card>div{display:grid;grid-template-columns:30px 1fr auto auto;align-items:center;gap:9px;border-top:1px solid var(--line);padding:10px 0}.elimination-card>div>span{font-weight:900}.elimination-card>div>em{font-style:normal;font-weight:900;color:var(--primary)}.elimination-card>div>small{border-radius:99px;padding:5px 8px;background:#f1f5f9;color:var(--muted)}
@media(max-width:1050px){.athlete-profile-grid{grid-template-columns:240px 1fr}.athlete-competition{grid-column:1/-1}.event-operations{grid-template-columns:1fr}.rounds-config{align-items:stretch;flex-wrap:wrap}}
@media(max-width:700px){.athlete-profile-grid,.elimination-grid{grid-template-columns:1fr}.athlete-competition{grid-column:auto}.control-settings,.rounds-config{align-items:stretch;flex-direction:column}.segmented{width:100%}.segmented button{flex:1}.rounds-config label:not(.toggle){max-width:none;width:100%}.elimination-card>div{grid-template-columns:26px 1fr auto}.elimination-card>div>small{grid-column:2/-1;justify-self:start}}
.athlete-upload-wrap{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}.athlete-upload-wrap>.button{align-self:center}.file-chip>div strong,.file-chip>div small{display:block}.file-chip>div small{margin-top:3px}
@media(max-width:640px){.athlete-upload-wrap{grid-template-columns:1fr}.athlete-upload-wrap>.button{width:100%}}
