:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#edf5ff;background:#080f1d;font-synthesis:none;--bg:#0c1526;--panel:#13213a;--card:#172842;--edge:#314360;--gold:#f7c36b;--blue:#75dbe9;--muted:#9caec3}
*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden}button,select,input{font:inherit}button{cursor:pointer;border:0;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}a{color:#80dfec}.load{height:100dvh;display:grid;place-content:center;text-align:center;font-weight:900;letter-spacing:.15em}.load span{color:var(--gold);font-size:11px;margin-top:12px}
.pixel,.kicker,.metric b,.tag{font-family:ui-monospace,Consolas,monospace;letter-spacing:.09em}.kicker{font-size:10px;font-weight:900;color:var(--gold)}.logo{font-size:12px;letter-spacing:.2em;font-weight:1000;color:#ffd17d;text-shadow:2px 2px #5a3547}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100dvh}.side{background:linear-gradient(#101e36,#0a1324);border-right:1px solid #263a56;padding:24px 15px;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:18px}.side nav{display:grid;gap:5px;overflow:auto}.side button,.mobnav button{width:100%;display:flex;align-items:center;gap:10px;background:transparent;color:#a2b5cf;padding:12px 14px;text-align:left;font-size:13px;font-weight:800;border-radius:9px}.side button:hover,.side button.active,.mobnav button.active{background:#253b5c;color:#fff}.side .mini{margin-top:auto;font-size:11px;color:#7790aa;line-height:1.65}.main{min-width:0;padding:23px clamp(14px,3.5vw,45px) 84px;max-width:1540px;width:100%;margin:auto}.topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:21px;flex-wrap:wrap}.topline .head{font-size:12px;color:#8ba4c2;font-weight:900}.date-pill{background:#1b304c;border:1px solid #365173;color:#f1cb82;padding:8px 13px;border-radius:999px;font-size:12px;font-weight:800}.pane{background:linear-gradient(145deg,#162740,#10203a);border:1px solid #2b3f5d;border-radius:13px;padding:20px;box-shadow:0 12px 32px #02081444;margin-bottom:18px}.pane h2,.sectiontitle{font-size:20px;letter-spacing:.03em;margin:4px 0 14px}.muted{font-size:12px;color:var(--muted);line-height:1.65}.sm{font-size:11px}.gold{color:var(--gold)}.cyan{color:var(--blue)}.danger{color:#ff909b}.green{color:#7fdeb7}.hero{position:relative;border-radius:14px;overflow:hidden;border:2px solid #4b728b;min-height:320px;isolation:isolate;background:#192b40;margin-bottom:18px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:25px clamp(19px,5vw,60px)}.scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;z-index:-1}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0d203cd9 0%,#0d203c88 53%,#0d203c09 100%);z-index:-1}.hero h1{font-size:clamp(30px,5vw,60px);max-width:640px;line-height:1.12;color:#fff;margin:13px 0;text-shadow:3px 4px #0b1635;letter-spacing:.03em}.hero p{font-size:12px;color:#d4e9ee;font-weight:800;letter-spacing:.16em}.actions{display:flex;flex-wrap:wrap;gap:10px}.btn{background:#324763;color:#fff;font-size:13px;font-weight:900;padding:11px 16px;border:1px solid #4e6481;border-radius:9px;box-shadow:0 3px #0c1525;min-height:42px}.btn:hover{filter:brightness(1.14)}.btn:active{transform:translateY(2px);box-shadow:none}.btn.primary{background:linear-gradient(#f9cf7b,#df9445);border-color:#fbe1a3;color:#182239;box-shadow:0 3px #8b522c}.btn.aqua{background:#317d8c;border-color:#6cd4e3}.btn.red{background:#613546;border-color:#aa5365}.btn.light{background:#e0eef8;color:#20324a}.btn.small{font-size:11px;padding:7px 10px;min-height:31px}.btn.wide{width:100%}.btn:disabled:hover{filter:none}.dashgrid,.metricgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{border-radius:10px;border:1px solid #344968;background:#101f34;padding:15px}.metric .label{font-size:11px;color:#adc3d6;font-weight:800}.metric b{font-size:25px;display:block;margin:6px 0;color:#f9cf7b}.twocol{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.twocol.equal{grid-template-columns:1fr 1fr}.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.stack{display:grid;gap:10px}.tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin}.tabs button{border:1px solid #314863;background:#182a45;color:#a7b9c8;padding:8px 13px;border-radius:20px;font-size:12px;font-weight:800;white-space:nowrap}.tabs button.on{color:#18253d;background:#f6c56f;border-color:#ffdc9d}.scroll{overflow:auto;max-width:100%}.table{width:100%;border-collapse:collapse;font-size:12px;min-width:490px}.table th{text-align:left;color:#9fb7c9;font-size:11px;background:#101d33;padding:11px 10px;border-bottom:1px solid #3b5470}.table td{padding:10px;border-bottom:1px solid #2a3a55}.table tr:hover td{background:#233651}.table tr.highlight td{background:#294a52}.badge1,.badge2,.badge3{font-weight:900;font-size:12px;padding:4px 7px;border-radius:5px}.badge1{background:#6c5121;color:#ffe5a2}.badge2{background:#536074;color:#e9eefb}.badge3{background:#6f4938;color:#ffd7aa}.rosterlayout{display:grid;grid-template-columns:minmax(205px,.95fr) minmax(0,1.5fr);gap:14px}.rosterlist{max-height:650px;overflow:auto}.rosteritem{display:flex;justify-content:space-between;align-items:center;background:#192a44;color:#e5f0f7;border:1px solid #304764;border-radius:9px;padding:10px;margin-bottom:6px;width:100%;text-align:left}.rosteritem.on{border-color:var(--gold);background:#304253}.rosteritem strong{font-size:13px}.rosteritem small{display:block;color:#9db3c6;font-size:10px;margin-top:4px}.avatar{flex:none;width:66px;height:73px;border-radius:9px;border:2px solid #7187a2;position:relative;overflow:hidden;image-rendering:pixelated;background:linear-gradient(#b8dcdf 55%,#719dad 55%)}.avatar.huge{width:100px;height:114px;border-radius:13px}.avatar .hair{position:absolute;top:15%;left:21%;width:58%;height:30%;background:var(--hair,#25314a);clip-path:polygon(2% 15%,20% 3%,42% 12%,70% 0,100% 23%,94% 65%,75% 42%,11% 59%)}.avatar .face{position:absolute;top:31%;left:29%;width:44%;height:32%;background:#e6ad85;box-shadow:inset 0 -4px #c88970}.avatar .face:after{content:':';display:block;text-align:center;color:#29374a;font-size:27px;line-height:19px;letter-spacing:3px}.avatar .shirt{position:absolute;bottom:-6%;left:12%;width:78%;height:42%;background:var(--shirt,#4ea5bc);clip-path:polygon(22% 0%,74% 0%,100% 41%,100% 100%,0% 100%,0% 40%)}.avatar .shirt:after{content:'I';color:#fff;text-shadow:2px 1px #143044;position:absolute;top:5px;left:44%;font-weight:900}.ability{margin:10px 0}.ability .txt{font-size:11px;color:#c9deec;display:flex;justify-content:space-between;margin-bottom:5px}.bar{height:11px;background:#091526;border:1px solid #38516d;border-radius:3px;overflow:hidden}.bar span{display:block;height:100%;background:var(--bar,#32bbd7);border-radius:2px;box-shadow:inset 0 2px #ffffff24}.charbox{display:flex;align-items:center;gap:16px;margin-bottom:14px}.charbox h2{margin:0 0 4px}.skillgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.formrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.field{border:1px solid #49607f;background:#0c1930;color:#e8f3fd;border-radius:8px;min-height:38px;padding:8px 9px;max-width:100%;font-size:12px}.field:focus{outline:2px solid #fbd282}.miniitem{display:flex;justify-content:space-between;align-items:center;background:#192b44;border:1px solid #314763;border-radius:9px;padding:11px;gap:8px}.scoutgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:11px}.scoutcard{border-radius:11px;background:linear-gradient(145deg,#def9f4,#aac8ee);color:#152d41;padding:11px;border:2px solid #c0e1ef;box-shadow:3px 4px #0a1b30}.scoutcard.chosen{border-color:#ef9c32;background:linear-gradient(145deg,#fff2c8,#d4eefa)}.scoutcard .muted{color:#446475}.scoutcard .bar{background:#7fa1b0;border-color:#7696ab}.scoutcard .ability .txt{color:#233e52}.scoutcard .charbox{gap:9px;margin-bottom:5px}.scoutcard .avatar{width:55px;height:60px}.scoutcard h3{font-size:14px;margin:0}.scoutcard .btn{margin-top:8px}.tag{border:1px solid #4b6684;padding:3px 7px;border-radius:5px;color:#ddedf1;font-size:10px}.event{border-left:4px solid #e9be6a;background:#1a2f49;padding:13px;margin:8px 0;border-radius:5px}.event b{color:#f7d38a}.raceview{background:linear-gradient(#1c314e,#10243c);border:2px solid #41728d;padding:15px;border-radius:13px}.track{background:#1c3848;border:2px solid #5c8495;border-radius:10px;padding:11px;min-height:230px;overflow:hidden}.lane{height:23px;position:relative;border-bottom:1px dashed #65869a55;display:flex;align-items:center;gap:10px}.lane span{font-size:10px;width:90px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane .line{height:7px;background:#325966;position:relative;flex:1;border-radius:5px}.runnerdot{position:absolute;top:-7px;width:16px;height:18px;background:var(--shirt);border:2px solid #e5f7ff;box-shadow:1px 2px #0a1e29;transition:left .55s}.runnerdot:after{content:'';position:absolute;left:4px;top:-8px;width:7px;height:7px;background:#fac9a4;box-shadow:0 -2px #273448}.goal{font-size:13px}.podium{display:flex;gap:9px;align-items:end}.podium>div{text-align:center;flex:1;padding:20px 4px 10px;background:#233b54;border-top:5px solid #9faec2;font-size:12px}.podium>div:first-child{border-color:#f2c36f;background:#54412a;padding-top:40px}.podium>div:nth-child(3){border-color:#b78667}.slot{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#182840;border:1px solid #344c69;border-radius:9px;padding:14px;margin:8px 0}.slot strong{display:block;font-size:14px}.slot small{color:#9db6c9}.homebars{max-width:440px;display:grid;gap:10px}.notice{background:#192c43;border-left:4px solid #7bc8db;padding:13px;font-size:12px;color:#c1d8e3;line-height:1.65}.dialogback{position:fixed;inset:0;z-index:100;background:#061020c9;display:grid;place-content:center;padding:12px;overflow-y:auto}.dialog{max-width:600px;width:min(92vw,600px);max-height:88dvh;overflow:auto;background:#1c2c48;color:#f2f6ff;border:2px solid #728fac;border-radius:13px;padding:22px;box-shadow:0 20px 80px #000a}.dialog h2{margin:0 0 11px}.dialog p{line-height:1.6;font-size:13px}.schoolgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px}.school{display:flex;align-items:center;gap:8px;background:#1a2a44;color:#eaf2fd;text-align:left;padding:12px 9px;border:2px solid #3e5775;border-radius:10px;font-size:13px;font-weight:850;min-height:72px}.school.on{border-color:#f8cc79;background:#2f4158}.school b{width:19px;height:35px;flex:none;border:2px solid #ffffff88;display:inline-block;transform:rotate(-7deg);background:linear-gradient(90deg,var(--school),var(--school) 45%,#efefef 45%,#efefef 55%,var(--school) 55%)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.help{font-size:12px;color:#a9bed2;line-height:1.8}.mobnav{display:none}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:120;pointer-events:none;padding:0;color:#fff;font-size:12px;font-weight:850;text-align:center}#toast.visible{background:#294b5c;border:1px solid #6eb0c3;border-radius:8px;padding:12px 18px;box-shadow:0 8px 40px #0008}.stepper{display:flex;justify-content:space-between;align-items:center;gap:7px;flex-wrap:wrap}.presskey{font:900 12px ui-monospace,Consolas,monospace;background:#20354d;border:1px solid #405875;border-radius:4px;padding:5px 8px}.sectiontitle{border-left:4px solid #f2be65;padding-left:12px}.table td button{font-size:10px}.news{border-bottom:1px solid #2a4262;padding:10px 0}.news small{color:#f4c671;display:block;margin-bottom:3px}.news strong{font-size:13px;line-height:1.7}.footer-note{font-size:11px;color:#758da4;margin:25px 0;line-height:1.7}.notch{display:inline-block;width:9px;height:9px;border-radius:3px;background:var(--notch);border:1px solid #ffffff85;margin-right:5px}
@media(max-width:980px){.shell{grid-template-columns:190px 1fr}.side{padding:18px 9px}.dashgrid,.metricgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.twocol{grid-template-columns:1fr}.main{padding:18px 17px 86px}}
@media(max-width:700px){.shell{display:block}.side{display:none}.main{padding:13px 12px 100px}.mobnav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#0c1930f5;z-index:70;border-top:1px solid #3e5676;padding:4px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;gap:3px}.mobnav button{font-size:10px;display:grid;justify-items:center;text-align:center;padding:7px 1px;min-height:42px;width:auto;flex:1;gap:1px}.mobnav button span{font-size:17px}.hero{min-height:285px}.hero h1{font-size:33px}.rosterlayout{grid-template-columns:1fr}.rosterlist{max-height:230px}.skillgrid{grid-template-columns:1fr}.pane{padding:13px}.schoolgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.school{font-size:11px;padding:8px}.metric b{font-size:21px}.date-pill{font-size:11px}.topline .head{font-size:10px}.twocol.equal{grid-template-columns:1fr}.lane span{width:65px;font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:after{transition:none!important;animation:none!important}}
/* Track markers should keep their pixel size, not inherit the lane label width */
.lane .runnerdot{width:16px;height:18px;overflow:visible}
