:root{font-family:Inter,system-ui,Arial,sans-serif;background:#071321;color:#f0f6ff;--line:#263d56;--panel:#0e2033;--muted:#99b0c8;--blue:#169fff}
*{box-sizing:border-box}body{margin:0;min-width:310px}button,input,select{font:inherit}button{cursor:pointer}
.checkered{height:9px;background:conic-gradient(#fff 25%,#04101b 0 50%,#fff 0 75%,#04101b 0) 0 0/20px 20px;opacity:.85}
.nav{background:#081625;border-bottom:1px solid var(--line);padding:14px clamp(18px,4vw,68px);display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:12px}.flag{font-size:35px;line-height:1;color:#47b6ff;transform:skew(-12deg)}.logo strong{display:block;font:900 27px 'Barlow Condensed',sans-serif;letter-spacing:.5px}.logo strong span{color:#2aa8ff}.logo small{display:block;letter-spacing:2px;font-size:9px;color:#a0bed6;font-weight:800}
.navlinks{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.navlinks a{font-size:12px;color:#b3c8dc;text-decoration:none;padding:10px;border-radius:4px;border:1px solid transparent;font-weight:700}.navlinks a.selected{color:#72caff;border-color:#2e597f;background:#10293f}.navlinks em{font-style:normal;color:#fff}
main{max-width:1500px;margin:0 auto;padding:34px clamp(18px,4vw,64px)}.heading{display:flex;justify-content:space-between;gap:18px;margin-bottom:24px}.kicker{font-size:11px;font-weight:800;letter-spacing:2.7px;color:#45b8ff}.heading h1{font:900 clamp(36px,4.5vw,63px)/1 'Barlow Condensed',sans-serif;text-transform:uppercase;margin:9px 0}.heading h1 span{color:#2daaff}.heading p{max-width:790px;color:#a4b9cd;font-size:14px;line-height:1.65;margin:0}.layout{display:grid;grid-template-columns:370px minmax(0,1fr);gap:18px}.stack{display:flex;flex-direction:column;gap:18px;min-width:0}.panel{border:1px solid var(--line);border-radius:9px;background:var(--panel);overflow:hidden}.panel-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 18px;gap:8px}.panel-title h2{font:800 23px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;margin:0;color:#299eff}.panel-title h2 span{color:#fff}.caps{font-size:10px;color:#87a6c0;letter-spacing:1.4px;font-weight:800;white-space:nowrap}.panel-content{padding:18px}.field-title{display:block;font-size:12px;font-weight:800;margin:15px 0 8px}.file-input{display:flex;gap:13px;align-items:center;background:#102b42;border:1px dashed #4477a1;border-radius:7px;padding:13px;cursor:pointer}.file-input:hover{background:#153b5a;border-color:#46b3ff}.upload{font:900 31px 'Barlow Condensed',sans-serif;color:#50bfff}.file-input b,.file-input small{display:block}.file-input b{font-size:13px}.file-input small{color:#8baeca;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
input:not([type=file]),select{width:100%;border:1px solid #385a76;padding:11px 12px;background:#091a2b;border-radius:5px;color:#eff6ff;font-size:13px;outline:none}input:focus,select:focus{border-color:#39b1ff}input::placeholder{color:#6b89a5}.help,.secondary{font-size:12px;line-height:1.6;color:#9eb2c7}.help{margin:13px 0}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tool{border:1px solid #365672;border-radius:5px;background:#142b40;color:#e1edf8;padding:12px 7px;font-size:11px;font-weight:800;text-align:left;line-height:1.3}.tool span{font-size:15px;margin-right:5px;color:#d7b357}.tool.start span{color:#26dc8c}.tool.finish span{color:#ff5d75}.tool.active{border-color:#24a9ff;background:#144269;box-shadow:inset 0 0 0 1px #24a9ff}.tool:disabled{opacity:.5;cursor:not-allowed}
.tool-footer{display:flex;align-items:start;flex-wrap:wrap;justify-content:space-between;margin:12px 0 18px;gap:5px}.text-btn{background:none;border:0;padding:0;color:#74c7ff;font-size:11px;text-decoration:underline}.tool-footer span{color:#a8bdd1;font-size:11px}.box-heading{display:flex;align-items:center;justify-content:space-between;font:800 17px 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--line);padding:14px 0 8px}.box-heading span{background:#1e4361;border-radius:5px;padding:3px 8px;font:700 12px Inter}.items{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.placeholder{color:#819cb5;font-size:12px;line-height:1.55}.item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#112b40;border:1px solid #264c6c;border-radius:5px;padding:8px 10px;font-size:12px}.item small{color:#98afc8}.item button{border:0;background:none;color:#ff929e;font-size:12px}.item input{max-width:160px;border:1px solid #456380;padding:5px;background:#0b1d2e;color:white}.btn{border:1px solid transparent;border-radius:5px;padding:13px 15px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}.btn.primary{background:#128de4;color:#fff}.btn.primary:hover{background:#31b4ff}.btn.outline{background:#193650;color:#cfebff;border-color:#365778}.btn.outline:hover{background:#225072}.btn:disabled{opacity:.5;cursor:not-allowed}.full{width:100%}.action-row{display:flex;gap:7px}.action-row .btn{flex:1;padding:12px 8px}.mini-upload{display:block;margin-top:15px;text-decoration:underline;color:#6bc6ff;cursor:pointer;font-size:12px}
#map{height:530px;background:#1c3648}.leaflet-container{background:#123047}.leaflet-tooltip{background:#10293f;border:1px solid #28618a;color:white;box-shadow:none;font-size:11px}.map-footer{display:flex;flex-wrap:wrap;gap:13px;font-size:11px;color:#b3cadc;padding:13px 17px;border-bottom:1px solid var(--line)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;background:#f0c04b}.dot.blue{background:#25a5ff}.dot.green{background:#19d282}.dot.red{background:#f35567}.dot.orange{background:#ff8b4a}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.stats>div{background:#10263c;padding:17px}.stats small{font-size:10px;color:#90abc4;text-transform:uppercase;letter-spacing:.7px;font-weight:700}.stats strong{display:block;font:800 24px 'Barlow Condensed',sans-serif;margin-top:5px}.status{padding:14px 17px;border:1px solid #304f6c;border-radius:6px;background:#0b2639;margin:18px 0;font-size:12px;color:#8bd1ff;line-height:1.5}.status.error{color:#ffa3a3;border-color:#86414a}.status.success{color:#84e6bc;border-color:#35785c}.results{margin-top:16px}.attempt{background:#0c2538;border:1px solid #2a4b65;border-radius:7px;margin-bottom:11px;overflow:hidden}.attempt-head{display:flex;align-items:center;justify-content:space-between;padding:13px;gap:9px}.attempt strong{font:800 29px 'Barlow Condensed',sans-serif}.badge{display:inline-block;font-size:10px;font-weight:800;padding:6px 9px;border-radius:4px;background:#4d4030;color:#ffce84}.badge.ok{background:#114a38;color:#7df0be}.issue{color:#ffc28c;font-size:11px;padding:0 13px 10px;line-height:1.5}.splits{padding:0 13px 12px}.split{display:flex;justify-content:space-between;border-top:1px solid #294357;padding:9px 0;font-size:12px}.split b{font-size:13px}.attempt a{color:#77c8ff}footer{border-top:1px solid var(--line);margin-top:30px;padding-top:19px;font-size:11px;color:#7495ae;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}footer span{color:#8ca3b5}
@media(max-width:1080px){.layout{grid-template-columns:1fr}.wide{order:-1}#map{height:480px}}@media(max-width:700px){main{padding:23px 13px}.nav{padding:12px}.logo strong{font-size:22px}.logo small{font-size:8px}.flag{font-size:26px}.navlinks{gap:0}.navlinks a{font-size:10px;padding:7px}.panel-title h2{font-size:20px}#map{height:350px}.stats strong{font-size:20px}.stats>div{padding:12px}.heading h1{font-size:36px}}
.save-feedback{margin:10px 0 12px;padding:12px 13px;border:1px solid #3f6280;border-radius:6px;background:#0c2b42;color:#b7d6ec;font-size:12px;line-height:1.55}
.save-feedback.success{border-color:#277655;background:#102f2c;color:#a2f0c8}
.save-feedback.error{border-color:#ab5562;background:#3d202d;color:#ffd0d4}

.cloud-summary{font-size:12px;font-weight:800;color:#79ccff;cursor:pointer;padding:11px 0;border-top:1px solid var(--line)}
.cloud-summary:focus-visible{outline:2px solid #79ccff;outline-offset:3px}
.cloud-spaced{display:block;margin-top:10px}
#cloudSyncPanel{padding-top:6px}
#cloudAuthPanel{padding-top:4px}
#cloudStatus{margin:0 0 12px}
[hidden]{display:none!important}

.cloud-activities{border-top:1px solid var(--line);margin-top:17px;padding-top:6px}
.cloud-activities .action-row .btn{font-size:10px}
#cloudActivitySelect{font-size:12px}

/* v0.5 — sector deltas and longitudinal time comparison */
.comparison-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:10px}
.comparison-pickers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.comparison-pickers select{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.comparison-head{background:#102f49;border:1px solid #295778;padding:12px 15px;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.comparison-delta{font:800 26px 'Barlow Condensed',sans-serif;white-space:nowrap}
.comparison-delta.faster,.comparison-table .sector-faster .sector-delta{color:#55f0aa}
.comparison-delta.slower,.comparison-table .sector-slower .sector-delta{color:#ff8997}
.comparison-delta.unknown,.comparison-table .sector-unknown .sector-delta{color:#c4d0de}
.comparison-info{font-size:11px;color:#a6bed2;line-height:1.6}
.comparison-warning{background:#402d22;color:#ffd4ac;padding:10px 12px;border:1px solid #79573a;border-radius:4px;font-size:11px;line-height:1.5}
.comparison-table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:11px}
.comparison-table th{text-align:left;color:#9bbbd4;font-weight:700;background:#102b41;padding:10px 7px}
.comparison-table td{padding:11px 7px;border-bottom:1px solid #28465b}
.comparison-table tbody tr{cursor:pointer}
.comparison-table tbody tr:hover,.comparison-table tbody tr:focus-visible{outline:1px solid #52a7d8;background:#1a3d59}
.comparison-table td:first-child{max-width:145px;overflow-wrap:anywhere}
@media(max-width:720px){.comparison-pickers{grid-template-columns:1fr}.comparison-table{font-size:10px}.comparison-table th,.comparison-table td{padding:9px 4px}}

/* v0.6 — monthly competition standings and review */
.standings-wrap{overflow-x:auto;padding:0 0 6px}
.standings{border-collapse:collapse;width:100%;min-width:460px;font-variant-numeric:tabular-nums;font-size:12px}
.standings th{text-align:left;color:#9bbbd4;font-weight:700;background:#102b41;padding:10px 9px;white-space:nowrap}
.standings td{padding:10px 9px;border-bottom:1px solid #28465b;white-space:nowrap}
.standings tbody tr{cursor:pointer}
.standings tbody tr:hover,.standings tbody tr:focus-visible{outline:1px solid #52a7d8;background:#1a3d59}
.standings tbody tr.selected{background:#163a57}
.standings .pos{font:800 21px 'Barlow Condensed',sans-serif;color:#cfe6f8;width:44px}
.standings tbody tr:first-child .pos{color:#ffd166}
.standings .time{font:800 19px 'Barlow Condensed',sans-serif}
.standings .lead{color:#7df0be;font-weight:800}
.standings .gap{color:#ff97a3}
.standings .best{color:#d7a2ff;font-weight:800}
.board-empty{padding:20px 18px;margin:0;color:#9eb2c7;font-size:13px;line-height:1.6}
.entry-actions{display:flex;flex-wrap:wrap;gap:7px;padding:0 13px 13px}
.entry-actions input{flex-basis:100%}
.entry-actions .btn{flex:1;padding:10px 8px}
.badge.bad{background:#4a1f2a;color:#ffb3bd}
#myEntries .item{align-items:flex-start;line-height:1.5}
#myEntries .badge{white-space:nowrap}

/* v0.7 — informational notes and circuit state */
.note{color:#a9bfd2;font-size:11px;padding:0 13px 10px;line-height:1.5}
.circuit-state{margin:10px 0 8px}
.item .publish-btn{color:#cfebff;background:#193650;border:1px solid #365778;border-radius:4px;padding:6px 10px;font-size:10px;font-weight:800;text-transform:uppercase}
.editor-link{display:block;text-align:center;text-decoration:none;margin-top:6px}

/* v0.8 — shell with tabs, account dialog, pages and training charts */
a.logo{text-decoration:none;color:inherit}
.nav{flex-wrap:wrap}
.account{display:flex;align-items:center;gap:12px;margin-left:auto}
.account .who{font-size:12px;font-weight:800;color:#cfe6f8}
.account .btn{padding:9px 14px}
.pin{height:28px;width:28px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 2px 10px #000b;color:#081a2a;font-weight:900;font-size:13px}
dialog.auth{border:1px solid var(--line);border-radius:10px;background:var(--panel);color:#f0f6ff;padding:0;width:min(420px,92vw)}
dialog.auth::backdrop{background:#030a12cc}
.auth-form{padding:22px;display:flex;flex-direction:column;gap:2px}
.auth-form .field{display:block}
.tab-row{display:flex;gap:6px;margin-bottom:6px}
.tab-btn{flex:1;border:1px solid #365778;background:#112b40;color:#b3c8dc;border-radius:5px;padding:10px;font-weight:800;font-size:12px}
.tab-btn.selected{background:#144269;color:#fff;border-color:#24a9ff}
.invite.off{display:none}
.auth-form .btn.full{margin-top:12px}
.auth-form .text-btn{align-self:center;margin-top:10px}
.notice{margin-bottom:18px}
.notice .panel-content{color:#cfe6f8;font-size:14px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.notice p{margin:0}
.tool-grid.three{grid-template-columns:repeat(3,1fr)}
.btn.small{padding:7px 10px;font-size:10px}
.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.item b{font-size:13px}
.item.selected{border-color:#24a9ff}
.text-btn.danger{color:#ff929e}
.badge.muted{background:#1e3346;color:#9eb2c7}
.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.table-wrap{overflow-x:auto}
.reason{display:block;color:#ffc28c;font-size:11px;margin-top:4px;white-space:normal;max-width:280px}
input[type=date],input[type=number]{color-scheme:dark}
.compare-controls{display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line)}
.compare-controls .help{margin:0}
.run-list{display:flex;flex-direction:column;gap:6px;max-height:210px;overflow-y:auto}
.run-option{display:flex;align-items:center;gap:8px;font-size:12px;padding:7px 9px;border:1px solid #264c6c;border-radius:5px;background:#112b40;cursor:pointer}
.run-option.on{border-color:#3d7fb0;background:#143450}
.run-option small{color:#8faac4;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}
.chip{display:inline-block;width:12px;height:12px;border-radius:3px;background:#2b4258;flex:none;vertical-align:middle}
.chart{position:relative;width:100%}
.chart-svg{display:block;width:100%;height:auto}
.chart-grid{stroke:#20364b;stroke-width:1}
.chart-zero{stroke:#5d7c99;stroke-width:1}
.chart-tick{fill:#8faac4;font-size:10px;font-family:Inter,system-ui,sans-serif}
.chart-cross{stroke:#8faac4;stroke-width:1;stroke-dasharray:3 3}
.chart-selection{stroke:#ffe066;stroke-width:2;stroke-dasharray:5 3}
.chart-hit{cursor:crosshair}
.chart-hit:focus-visible{outline:2px solid #ffe066;outline-offset:-2px}
.segment-button{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;padding:8px 4px;min-height:40px;min-width:44px;text-decoration:underline;text-underline-offset:3px;border-radius:3px}
.segment-button:focus-visible{outline:2px solid #ffe066}
#segments .segment-selected{background:#50451c;color:#ffe066}
.chart-tip{position:absolute;pointer-events:none;background:#0b1d2e;border:1px solid #365778;border-radius:6px;padding:8px 10px;font-size:11px;color:#e6f1fb;min-width:150px;box-shadow:0 6px 18px #0008}
.chart-tip b{display:block;margin-bottom:4px;color:#cfe6f8}
.chart-tip div{display:flex;align-items:center;gap:6px;white-space:nowrap}
.chart-tip i{width:10px;height:10px;border-radius:2px;display:inline-block}
.chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px;font-size:12px;color:#cfe6f8}
.legend-item{display:flex;align-items:center;gap:6px}
@media(max-width:700px){.account{margin-left:0}.tool-grid.three{grid-template-columns:1fr 1fr 1fr}.two-cols{grid-template-columns:1fr}}
.run-option input{width:auto;flex:none;margin:0}
.run-option span{flex:1;min-width:0}
