:root{--ink:#071a36;--muted:#607086;--cream:#f4f7fb;--paper:#fff;--line:#dce4ed;--green:#08254c;--lime:#65bed2;--orange:#e88743;--red:#b83b4c;--cyan:#65bed2;--blue:#1d448b;--shadow:0 14px 42px rgba(4,24,55,.09)}
.topbar{background:linear-gradient(105deg,#020b18,#08254c);border-bottom:1px solid rgba(101,190,210,.35)}
.brand{gap:12px;font-size:13px;letter-spacing:.08em}.brand img{width:48px;height:48px;border-radius:50%;object-fit:cover}.brand span{display:grid;line-height:1.2}.brand b{font-size:14px;letter-spacing:.08em}.brand small{color:var(--cyan);font-size:8px;letter-spacing:.16em;margin-top:4px}
.nav-item{color:#aebdce}.nav-item:hover,.nav-item.active{border-color:var(--cyan)}
.session-tools{display:flex;align-items:center;gap:8px}.session-tools span{color:#9fb2c7;font-size:10px;max-width:150px}.session-tools .ghost{white-space:nowrap}
.eyebrow{color:#397c9a}.metric:nth-child(2){background:#123b70}.metric:nth-child(3){background:#e9f4f7}.recommendation{background:linear-gradient(135deg,#061a37,#103f70)}.recommendation .eyebrow{color:var(--cyan)}.recommendation p{color:#cad9e8}
input:focus,select:focus{outline-color:var(--cyan)}.prediction{background:linear-gradient(135deg,#68c4d5,#a3dce6)}.prediction span{color:#153c55}.formula code{background:#edf5f8;color:#173c59}.break-bar i{background:var(--blue)}
.import-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.import-primary{background:linear-gradient(145deg,#061a37,#103e72);color:#fff}.import-primary .eyebrow{color:var(--cyan)}.import-primary label{color:#c8d6e5}.step-number{float:right;font:700 52px/1 Georgia,serif;color:rgba(102,190,210,.35)}.primary{margin-top:16px;border:0;border-radius:7px;padding:11px 17px;background:var(--cyan);color:#062343;font-weight:800;cursor:pointer}.import-status{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.15);font-size:12px;color:#bfcddd}.muted{color:var(--muted)}.file-drop{border:1px dashed #94a9bb;border-radius:8px;padding:22px;text-align:center;margin:16px 0}.file-drop input{margin-top:10px}.import-preview{margin-top:18px}.status-pill{border-radius:20px;background:#e7edf2;color:#53687c;padding:6px 11px;font-size:11px;font-weight:800}.status-pill.ready{background:#d9f0f3;color:#10556a}.empty-state{display:grid;place-items:center;padding:48px;color:var(--muted);background:#f6f9fb;border-radius:8px}.empty-state span{font-size:12px;margin-top:5px}.import-table{width:100%;margin-top:10px}.pipeline{display:flex;align-items:center;justify-content:center;margin:35px auto;max-width:780px}.pipeline div{display:grid;place-items:center;gap:5px;color:var(--muted);font-size:11px}.pipeline b{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:var(--green);color:#fff}.pipeline i{height:1px;background:#b8c7d4;flex:1;margin:0 10px 18px}
footer{background:#030e20;color:#9aadc2}
.login-dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:14px;padding:0;box-shadow:0 30px 90px rgba(0,15,40,.3)}.login-dialog::backdrop{background:rgba(2,12,28,.72);backdrop-filter:blur(4px)}.login-dialog form{padding:32px;position:relative}.login-dialog h2{font:700 30px Georgia,serif;margin:0 0 8px}.login-dialog label{margin-top:14px}.dialog-logo{width:58px;height:58px;border-radius:50%;object-fit:cover;margin-bottom:14px}.dialog-close{position:absolute;right:17px;top:13px;border:0;background:none;font-size:28px;color:var(--muted);cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dialog-actions .primary{margin:0}.form-error{color:var(--red);font-size:12px;margin-top:12px}.working{opacity:.65;pointer-events:none}.source-list{margin:15px 0;padding-left:20px}.source-list li{margin:6px 0}
.athlete-search{position:relative;margin-top:13px}.search-results{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);z-index:5;max-height:230px;overflow:auto}.search-results:empty{display:none}.search-results button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;padding:10px;cursor:pointer;color:var(--ink)}.search-results button:hover{background:#edf6f8}.search-results small{display:block;color:var(--muted)}.scatter-panel{margin-top:18px}.scatter-panel canvas{width:100%;max-width:100%;background:linear-gradient(135deg,#f8fbfd,#edf5f8);border-radius:8px}.chart-legend{font-size:12px;color:var(--muted)}.chart-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--blue);margin-right:5px}
.html-import{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.html-import .file-drop{padding:14px}
.browser-import-button{margin-left:.65rem}
.athlete-summary{margin-top:14px}.athlete-summary:empty{display:none}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.summary-grid span{background:#eef5f8;border-radius:7px;padding:10px}.summary-grid small,.summary-grid b{display:block}.summary-grid small{color:var(--muted);font-size:10px;text-transform:uppercase}.summary-grid b{font-size:18px;color:var(--navy);margin-top:3px}
.wizard-shell{display:grid;grid-template-columns:250px 1fr;gap:20px;align-items:start}.wizard-rail{display:grid;background:#071a36;border-radius:12px;padding:12px;position:sticky;top:92px}.wizard-marker{display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid rgba(255,255,255,.09);background:transparent;color:#9eb0c4;text-align:left;padding:15px 10px;cursor:pointer}.wizard-marker:last-child{border-bottom:0}.wizard-marker b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#15375e;color:#fff}.wizard-marker span,.wizard-marker small{display:block}.wizard-marker span{font-weight:750}.wizard-marker small{font-weight:400;color:#8196ac;margin-top:2px}.wizard-marker.active{color:#fff}.wizard-marker.active b,.wizard-marker.done b{background:var(--cyan);color:#062343}.wizard-marker.done{color:#c9d7e4}.wizard-panel{min-height:530px}.wizard-message{padding:12px 14px;background:#edf5f8;color:#315b73;border-radius:7px;margin-bottom:24px;font-size:13px}.wizard-message.error{background:#faecee;color:#963b4a}.wizard-message.success{background:#e6f5f1;color:#176153}.wizard-step{display:none}.wizard-step.active{display:block}.wizard-step h2{font-size:32px;margin-bottom:5px}.wizard-actions{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.wizard-actions .primary{margin-top:0}.wizard-add{margin-top:18px}.wizard-records{display:grid;gap:8px;margin-top:16px}.wizard-record{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#f3f7fa;border-radius:7px}.wizard-record small{color:var(--muted)}.scorecard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.calculation-preview{margin-top:14px}.calculation-preview:not(:empty){background:#e9f4f7;padding:13px;border-radius:7px}.coverage-card{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.coverage-card span{padding:15px;background:#eef5f8;border-radius:8px}.coverage-card small,.coverage-card b{display:block}.coverage-card b{font-size:24px;color:var(--green)}.wizard-ranking{margin-top:20px}.wizard-ranking table{white-space:normal}.wizard-ranking td,.wizard-ranking th{padding:10px}.wizard-ranking .rank-first{background:#e8f5f7}
@media(max-width:900px){.wizard-shell{grid-template-columns:1fr}.wizard-rail{position:static;grid-template-columns:repeat(5,1fr);overflow:auto}.wizard-marker{display:grid;justify-items:center;text-align:center}.wizard-marker small{display:none}.scorecard-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.import-grid{grid-template-columns:1fr}.brand span{display:none}}@media(max-width:520px){.pipeline span{display:none}.pipeline i{margin-bottom:0}}
.competition-catalog{margin-bottom:20px}.catalog-head{display:flex;justify-content:space-between;gap:24px;align-items:end}.catalog-head h2{font-size:30px;margin:0 0 5px}.catalog-tools{display:flex;gap:10px;align-items:end}.catalog-tools label{min-width:220px}.catalog-tools .primary{margin:0;white-space:nowrap}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.catalog-card{border:1px solid var(--line);border-radius:10px;padding:16px;background:#f9fbfd;display:grid;gap:12px}.catalog-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.catalog-card h3{font-size:19px;margin:0}.catalog-card time,.catalog-meta{font-size:12px;color:var(--muted)}.catalog-state{border-radius:20px;padding:5px 8px;background:#e7eef4;color:#496177;font-size:10px;font-weight:800;text-transform:uppercase}.catalog-state.provisional{background:#dff1f3;color:#176078}.catalog-progress{height:6px;border-radius:6px;background:#e3eaf0;overflow:hidden}.catalog-progress i{display:block;height:100%;background:var(--cyan)}.catalog-actions{display:flex;gap:7px;flex-wrap:wrap}.catalog-actions button{padding:8px 10px}.catalog-empty{grid-column:1/-1;padding:28px;text-align:center;background:#f4f7fa;border-radius:8px;color:var(--muted)}
@media(max-width:900px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-head{align-items:stretch}.catalog-tools{align-items:stretch;flex-direction:column}.catalog-tools label{min-width:0}}@media(max-width:600px){.catalog-grid{grid-template-columns:1fr}.catalog-head{display:grid}}
.wizard-record>span:first-child{display:grid;gap:2px}.record-actions,.record-form-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.record-actions button{padding:6px 9px;font-size:11px}.danger{border:1px solid #d9a9b0;border-radius:7px;padding:10px 14px;background:#fff3f4;color:#a22f42;font-weight:800;cursor:pointer}.danger:hover{background:#f9e3e6}.record-form-actions [hidden]{display:none}.wizard-record small{display:block}
.matrix-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px}.matrix-head div{display:grid}.matrix-head small{color:var(--muted);margin-top:3px}.scorecard-matrix-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px;margin-top:10px;max-height:420px}.scorecard-matrix{display:grid;min-width:max-content}.matrix-cell{min-width:86px;min-height:54px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:7px;display:grid;place-items:center;font-size:11px;color:var(--muted)}.matrix-cell.header{position:sticky;top:0;z-index:3;background:#eaf2f6;color:var(--ink);font-weight:800}.matrix-cell.athlete{position:sticky;left:0;z-index:2;min-width:190px;justify-items:start;background:#f7fafc;color:var(--ink);text-align:left}.matrix-cell.corner{left:0;z-index:4}.matrix-cell.score{cursor:pointer}.matrix-cell.score:hover,.matrix-cell.score.selected{box-shadow:inset 0 0 0 2px var(--cyan)}.matrix-cell.score.complete{background:#e4f4ee;color:#176153}.matrix-cell.score.exception{background:#fff0e6;color:#9a4f18}.matrix-cell.score.pending{background:#fff;color:#8393a3}.matrix-cell.score b,.matrix-cell.score small{display:block}.matrix-legend{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0 20px;color:var(--muted);font-size:11px}.matrix-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.matrix-dot.complete{background:#5eb598}.matrix-dot.pending{background:#cbd5de}.matrix-dot.exception{background:#e88743}.scorecard-editor-title{display:flex;justify-content:space-between;gap:12px;padding:12px 0 8px;border-top:1px solid var(--line)}.scorecard-editor-title span{font-size:10px;letter-spacing:.12em;color:#397c9a;font-weight:800}
@media(max-width:600px){.matrix-head,.scorecard-editor-title{align-items:stretch;flex-direction:column}.matrix-head button{width:100%}}
.live-control{margin-bottom:20px}.live-start{display:flex;align-items:end;gap:10px;margin:18px 0}.live-start label{min-width:320px}.live-start button{margin:0}.live-dashboard{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;background:#f4f8fb;border-radius:10px;padding:16px}.live-dashboard.empty-state{display:grid}.pairing-card{grid-row:span 2;background:linear-gradient(145deg,#061a37,#103e72);color:#fff;border-radius:10px;padding:22px}.pairing-card small{color:var(--cyan);font-weight:800;letter-spacing:.12em}.pairing-card strong{display:block;font:700 58px/1 Georgia,serif;letter-spacing:.12em;margin:12px 0}.pairing-card p{color:#c8d6e5;font-size:12px}.live-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.live-metrics span{background:#fff;border:1px solid var(--line);border-radius:8px;padding:13px}.live-metrics small,.live-metrics b{display:block}.live-metrics small{font-size:10px;color:var(--muted);text-transform:uppercase}.live-metrics b{font-size:22px;margin-top:4px}.live-devices{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.live-devices h3{margin:0 0 10px}.live-devices>div{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding:9px 0;font-size:12px}.live-devices span{color:var(--muted)}.live-devices small{display:block;margin-top:2px}.device-actions{display:flex;gap:6px}.device-actions button{margin:0;padding:6px 9px;font-size:11px}.incident-form{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:9px;padding:16px}.incident-form h3{margin:0}.incident-form .secondary{margin-top:14px}
@media(max-width:700px){.live-start{align-items:stretch;flex-direction:column}.live-start label,.live-start button{min-width:0;width:100%}.live-dashboard{grid-template-columns:1fr}.pairing-card{grid-row:auto}.pairing-card strong{font-size:42px}.live-metrics{grid-template-columns:1fr}.live-devices>div{display:grid;gap:3px}}
.invitation-form{display:grid;grid-template-columns:1.2fr 1fr .8fr auto;gap:10px;align-items:end;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.invitation-form h3{margin:2px 0}.invitation-form button{margin:0}.invitation-form output{grid-column:1/-1;padding:10px;background:#eef5f8;border-radius:7px;color:#174f68;font-weight:700}.invitation-form output:empty{display:none}@media(max-width:900px){.session-tools span{display:none}.invitation-form{grid-template-columns:1fr 1fr}.invitation-form>div,.invitation-form output{grid-column:1/-1}}@media(max-width:600px){.invitation-form{grid-template-columns:1fr}.invitation-form>*{grid-column:1!important}}
