/* APEX GP 26 · independent web app */
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#070a12;--panel:#121824;--panel2:#192232;--stroke:#263343;--muted:#8999b0;--white:#f6f8ff;--accent:#f75d51;--green:#58deb5;--blue:#74b8ff;--gold:#efce86;--warning:#f2ad63;color:var(--white);color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--white);overscroll-behavior-y:none}
body{min-height:100dvh}
button,input,select{font:inherit}
button{cursor:pointer;touch-action:manipulation}
button:disabled{opacity:.4;pointer-events:none}
a{color:var(--blue)}
#app{min-height:100dvh;max-width:860px;margin:0 auto;background:radial-gradient(ellipse at 85% -11%,#29334c 0,transparent 33%),var(--bg);position:relative}
.boot{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center}.bootmark{font-weight:1000;font-size:77px;letter-spacing:-.13em;font-style:italic}.bootmark span{color:var(--accent);font-weight:900}.boot p{font-size:10px;letter-spacing:.2em;color:var(--muted)}
.topbar{height:calc(env(safe-area-inset-top,0px) + 66px);padding:calc(env(safe-area-inset-top,0px) + 9px) 18px 9px;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;background:#090e19f6;border-bottom:1px solid #253144;backdrop-filter:blur(20px)}
.brand{display:flex;align-items:center;gap:10px;user-select:none}.brandmark{width:34px;height:34px;border:1px solid #f75d5170;display:grid;place-items:center;transform:skewX(-7deg);background:linear-gradient(135deg,#4a1d28,#141a29);border-radius:8px;font-weight:1000;font-style:italic;font-size:19px;letter-spacing:-.11em}.brandmark span{color:var(--accent)}.brandtype{font-size:15px;letter-spacing:.02em;line-height:1;font-weight:1000;font-style:italic}.brandtype small{display:block;font-size:8px;letter-spacing:.19em;font-weight:800;color:#9caac1;font-style:normal;margin-top:6px}.topright{display:flex;align-items:center;gap:7px}.headtag{font-size:10px;color:#d9e6f4;border:1px solid #39445a;background:#192132;padding:7px 9px;border-radius:9px}.tinybtn{background:#1b2636;border:1px solid #394961;border-radius:9px;color:#e0ebf6;font-size:14px;height:35px;min-width:35px}
.main{padding:17px 15px calc(env(safe-area-inset-bottom,0px) + 88px);min-height:calc(100dvh - 140px)}
.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,860px);z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 4px calc(env(safe-area-inset-bottom,0px) + 5px);background:#0d1321f7;border-top:1px solid #27354a;backdrop-filter:blur(20px);box-shadow:0 -8px 30px #0007}
.nav button{border:0;background:transparent;border-radius:10px;padding:8px 2px;color:#8393ab;display:flex;align-items:center;flex-direction:column;gap:3px;font-weight:800;letter-spacing:.01em;font-size:9px;min-width:0}
.nav button b{font-size:19px;line-height:1.2;font-weight:900}.nav button.active{color:#ffaba4;background:#391f2a}
.page-title{font-size:clamp(25px,7vw,34px);font-weight:1000;letter-spacing:-.055em;margin:6px 0 5px;line-height:1.08}.eyebrow{font-size:10px;font-weight:1000;letter-spacing:.22em;color:var(--accent);margin-bottom:6px;text-transform:uppercase}
.subtitle{color:#93a6ba;font-size:12px;line-height:1.55;margin:0 0 17px}.text-muted{color:var(--muted)}.text-good{color:var(--green)}.text-bad{color:#ff7588}.text-gold{color:var(--gold)}.mini{font-size:10px}.small{font-size:12px}.strong{font-weight:900}
.card{background:linear-gradient(155deg,#171f2f,#111825);border:1px solid #2c3a4d;border-radius:16px;padding:15px;margin-bottom:12px;box-shadow:0 6px 18px #0002}
.card.flat{background:#111826}.card.tint{background:linear-gradient(140deg,#212338,#141d2d 80%);border-color:#495071}
.card.green{border-color:#376b67;background:linear-gradient(135deg,#112c30,#13202e)}
.card.red{border-color:#713b43;background:linear-gradient(135deg,#2f1a26,#1b1a29)}
.card-title{font-size:14px;letter-spacing:-.02em;font-weight:900;margin:0 0 11px;display:flex;align-items:center;justify-content:space-between;gap:9px}
.card-title span:last-child{font-size:10px;font-weight:750;color:var(--muted);letter-spacing:0}.sectiontitle{font-size:12px;letter-spacing:.13em;font-weight:950;color:#9cadc3;margin:22px 2px 10px;display:flex;justify-content:space-between;align-items:center}
.sectiontitle .right{font-size:10px;letter-spacing:normal;color:#e5bfa9}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row.start{justify-content:flex-start}.row.wrap{flex-wrap:wrap}
.vstack{display:flex;flex-direction:column;gap:9px}.stack{display:grid;gap:9px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.kpi{padding:12px;border:1px solid #2c3c52;background:#131d2d;border-radius:13px;min-width:0}.kpi small{display:block;color:#879bb4;letter-spacing:.1em;font-size:9px;font-weight:850}.kpi b{display:block;margin-top:5px;font-variant-numeric:tabular-nums;font-size:clamp(17px,4.5vw,23px);letter-spacing:-.04em}.kpi em{font-style:normal;font-size:10px;color:#98aabf}
.btn{border:1px solid #40506a;border-radius:11px;background:linear-gradient(135deg,#26334a,#192436);color:#f2f7ff;padding:11px 14px;font-size:12px;font-weight:900;letter-spacing:.02em;min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-align:center}
.btn.primary{border-color:#ff988e;background:linear-gradient(110deg,#ff7869,#e94c45);color:#1d1518;box-shadow:0 4px 19px #fe5e4d22}
.btn.secondary{background:#152c33;color:#9cf4e8;border-color:#2a6b68}
.btn.gold{background:#473821;color:#ffe1a1;border-color:#725b32}.btn.danger{background:#39202b;color:#ff9bac;border-color:#6b3645}
.btn.full{width:100%}.btn:active{filter:brightness(.88);transform:scale(.991)}
.btnsm{min-height:31px;font-size:10px;padding:6px 10px;border-radius:8px}
.badge{border:1px solid #3d5065;border-radius:7px;padding:4px 7px;background:#1c2837;font-size:9px;font-weight:900;color:#c9d5e6;letter-spacing:.025em;white-space:nowrap}
.badge.good{border-color:#286856;color:#92fce0;background:#15312e}.badge.red{border-color:#86434d;color:#ff9eab;background:#381b2a}.badge.gold{color:#f6d797;border-color:#786141;background:#312a22}.badge.blue{color:#97c5ff;border-color:#435c81;background:#1c2942}
.divider{height:1px;background:#2b3848;margin:12px 0}.info{border:1px solid #34485d;background:#142131;border-radius:12px;padding:11px;font-size:11px;line-height:1.5;color:#afc3d7;margin:10px 0}
input,select{color:#f2f7ff;background:#131c2d;border:1px solid #34455d;border-radius:11px;padding:11px;font-size:14px;min-width:0;width:100%;outline:none}
input:focus,select:focus{border-color:var(--accent)}
label{font-size:10px;color:#adbdcf;font-weight:850;display:block;margin:0 0 6px;letter-spacing:.04em}
.controlgroup{margin:0 0 13px}.range{width:100%;accent-color:var(--accent);margin:10px 0 3px;height:18px}
button.choice{background:#151f31;color:#dce7f5;border:1px solid #334259;padding:11px 10px;border-radius:11px;font-size:12px;font-weight:850;min-height:42px;flex:1}
button.choice.selected{background:#383039;color:#ffc4bc;border-color:#ef726b}
.progress{width:100%;height:8px;background:#233044;border-radius:12px;overflow:hidden;position:relative}
.progress span{height:100%;background:linear-gradient(90deg,var(--accent),#ffbd8f);display:block;border-radius:12px;transition:width .2s}
.progress.green span{background:linear-gradient(90deg,#3fbba7,#90eed1)}
.progress.blue span{background:linear-gradient(90deg,#4e9ce9,#98d1ff)}
.progress.gold span{background:linear-gradient(90deg,#d18e52,#f3d894)}
.attr{margin:0 0 13px}.attr .row{margin-bottom:6px}.attr small{font-size:10px;color:#aabbd0}.attr b{font-size:11px;font-variant-numeric:tabular-nums}
.team{display:flex;align-items:center;gap:11px;padding:11px 12px;background:#111b2a;border:1px solid #2c3b50;border-radius:13px;margin-bottom:8px;cursor:pointer}
.team.selected{border-color:var(--accent);background:#231e2d}
.teamcolor{width:6px;height:42px;border-radius:6px;background:var(--color,#fff);box-shadow:0 0 13px var(--color,#fff);flex:0 0 auto}
.teamname{font-size:13px;font-weight:900;letter-spacing:-.01em}
.teamtext{font-size:10px;color:#95a8bb;margin-top:4px}
.teamrating{margin-left:auto;font-size:15px;font-weight:1000;color:#e5edf8}
.huge-team{margin:2px 0 18px;border-radius:16px;padding:19px;min-height:122px;position:relative;overflow:hidden;background:linear-gradient(120deg,color-mix(in srgb,var(--team) 35%,#0b1422),#121926 70%);border:1px solid color-mix(in srgb,var(--team) 55%,#344055)}
.huge-team:before{content:'';position:absolute;width:200px;height:200px;border:23px solid color-mix(in srgb,var(--team) 22%,transparent);border-radius:50%;top:-83px;right:-40px}.huge-team h2{font-size:26px;font-weight:1000;letter-spacing:-.05em;margin:9px 0 4px;position:relative}.huge-team p{position:relative;color:#c6d1e3;font-size:11px;margin:0}.huge-team .round{color:#ffdbc7;font-size:10px;font-weight:850;letter-spacing:.16em}
.sessionbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:15px 0}.sessionbar div{border:1px solid #354258;border-radius:9px;text-align:center;background:#171f2e;padding:9px 3px;color:#8494ad;font-size:10px;font-weight:900}.sessionbar div.done{background:#18332e;color:#82ecbf;border-color:#346f58}.sessionbar div.active{background:#512a30;color:#ffe0dc;border-color:#ee706a}
.roster{display:flex;align-items:center;gap:11px;background:#141e2d;border-radius:11px;padding:11px;margin-bottom:8px;border:1px solid #283a50}.number{min-width:39px;font-size:22px;line-height:1;color:#fff;font-style:italic;font-weight:1000}.roster .name{font-size:12px;font-weight:850}.roster .detail{font-size:10px;color:var(--muted);margin-top:4px}
.table-wrap{overflow:auto hidden;border:1px solid #2b384b;border-radius:12px}.table{border-collapse:collapse;width:100%;font-size:11px;min-width:320px}.table tr{border-bottom:1px solid #253247}.table tr:last-child{border-bottom:0}.table th{padding:9px 8px;background:#1a2537;color:#879bb0;text-align:left;font-size:9px;white-space:nowrap;letter-spacing:.09em}.table td{padding:9px 8px;font-variant-numeric:tabular-nums;white-space:nowrap}.table tr.you{background:#263048}.table tr.teamrow{background:#152a33}.table .pos{font-size:11px;font-weight:900;color:#cddbef}.table .pilot{font-weight:850}.table .tinycolor{display:inline-block;width:4px;height:14px;margin-right:8px;border-radius:4px;vertical-align:middle;background:var(--color,#fff)}.table .gap{color:#9bacbb}.table .position-gain{color:#66de9c}.table .position-loss{color:#fa8f9d}
.log{display:flex;flex-direction:column;gap:6px;max-height:250px;overflow:auto}.logline{font-size:10px;line-height:1.45;border-left:2px solid #495977;background:#151e2b;border-radius:2px 7px 7px 2px;padding:6px 9px;color:#b2c3d8}.logline.important{border-color:#f6af72;color:#ffcfab}.logline.positive{border-color:#6ddfbd;color:#a3f7de}
.live-stage{background:radial-gradient(circle at 50% 50%,#172a41 0,#111827 60%,#101925 100%);border:1px solid #33445a;border-radius:18px;position:relative;min-height:155px;overflow:hidden;margin:12px 0 14px}
#raceCanvas{width:100%;height:205px;display:block}
.track-caption{position:absolute;bottom:10px;left:10px;background:#0b1529d7;border:1px solid #38516c;border-radius:7px;padding:5px 8px;color:#a5c9d9;font-weight:850;font-size:9px;letter-spacing:.12em}
.race-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.race-actions .btn{padding:8px 5px;min-width:0;font-size:10px}
.tyres{display:flex;gap:6px;align-items:center}
.tyre{width:26px;height:26px;border:3px solid var(--tyre);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:1000;font-size:11px;color:var(--tyre);background:#080d16;box-shadow:inset 0 0 0 2px #141b2a;flex-shrink:0}.tyre.s{--tyre:#fa6467}.tyre.m{--tyre:#f1d684}.tyre.h{--tyre:#e4ebf6}.tyre.i{--tyre:#64d796}.tyre.w{--tyre:#80b6fd}
.weather{font-size:11px;color:#e4ecf6}.rowgap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pill{border:1px solid #394a5f;background:#1c2a3a;border-radius:100px;padding:6px 8px;color:#c9dbef;font-size:10px;font-weight:800}.pill.current{border-color:#ff988e;color:#ffd2ca;background:#3a2833}
.wide{grid-column:1/-1}.empty{border:1px dashed #38465c;border-radius:14px;padding:20px 12px;text-align:center;color:#92a3b6;font-size:11px}
.notice{padding:13px;background:#1f2635;border:1px solid #45516b;border-radius:12px;color:#adbfda;font-size:12px;margin-bottom:12px;line-height:1.5}
.sticky-footer{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + 80px);background:#0d1621f0;border:1px solid #33465b;border-radius:14px;padding:9px;margin-top:15px;z-index:2;backdrop-filter:blur(11px)}
#toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 76px);transform:translate(-50%,-22px);opacity:0;pointer-events:none;z-index:200;min-width:205px;max-width:90%;text-align:center;background:#23334a;border:1px solid #5c7898;box-shadow:0 14px 30px #000a;color:#f5fbff;border-radius:11px;padding:12px 15px;font-weight:900;font-size:12px;transition:opacity .2s,transform .2s}
#toast.show{opacity:1;transform:translate(-50%,0)}
.modal-bg{position:fixed;inset:0;background:#020711d9;z-index:70;display:flex;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(8px)}
.modal{background:#161e2d;border:1px solid #4b5771;border-radius:17px;padding:20px;width:100%;max-width:430px;box-shadow:0 22px 60px #000a}
.modal h2{font-size:20px;margin:0 0 8px}.modal p{color:#a6b6c9;font-size:12px;line-height:1.5}
.mini-segments{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mini-segments button{border:1px solid #334b63;border-radius:9px;padding:8px 2px;font-size:10px;font-weight:800;color:#9db0c4;background:#152437}.mini-segments button.on{border-color:#ff9288;color:#ffb8ac;background:#38242d}
@media(min-width:620px){.main{padding-inline:22px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dashboard-grid>.card{margin:0}.dashboard-grid>.wide{grid-column:1/-1}}
@media(max-width:375px){.main{padding-inline:10px}.card{padding:12px}.page-title{font-size:26px}.btn{padding:9px 10px}.kpi{padding:8px}.rowgap{gap:5px}}

/* APEX GP 2.3: enlarged clean circuit and live clock controls. */
#raceCanvas{height:255px;touch-action:pan-y}
.live-stage{border-color:#3a5165;box-shadow:inset 0 0 20px #152c3922,0 12px 24px #0003;background:#0c1928}
.race-actions{display:grid;grid-template-columns:1.4fr repeat(4,minmax(0,1fr));gap:6px;margin:12px 0 0}
.race-actions .btn{min-height:50px;font-size:11px;padding:9px 3px;border-radius:11px;white-space:nowrap;letter-spacing:0}
@media(max-width:370px){.race-actions{gap:4px}.race-actions .btn{font-size:10px}}


/* APEX GP 2.4 — broadcast-inspired timing tower (original visual identity) */
.timing-tower{width:100%;max-width:530px;margin:0 0 20px;background:#080d16;border:1px solid #344159;border-radius:12px;overflow:hidden;box-shadow:0 10px 26px #0005;font-variant-numeric:tabular-nums}
.timing-heading{height:49px;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px;background:linear-gradient(102deg,#1d2838,#172234 62%,#233047);border-bottom:2px solid #f46462}
.timing-brand{display:flex;align-items:center;gap:10px;min-width:0}
.timing-apex{font-size:23px;font-style:italic;font-weight:1000;letter-spacing:-3px;white-space:nowrap;color:#fafbff}
.timing-apex span{color:#fa7471;font-weight:1000}
.timing-live{display:flex;align-items:center;gap:6px;font-size:9px;font-weight:1000;letter-spacing:.12em;color:#f1f7ff;white-space:nowrap}
.timing-on,.timing-dot{width:6px;height:6px;border-radius:50%;background:#61eab5;display:inline-block;box-shadow:0 0 10px #61eab555}
.timing-lap{font-size:9px;font-weight:800;color:#abc0d5;white-space:nowrap}
.timing-lap strong{display:block;color:#fff;font-size:16px;letter-spacing:.02em;text-align:right;margin-top:3px}
.timing-columns,.timing-row{display:grid;grid-template-columns:25px 39px minmax(68px,1fr) 72px 23px;align-items:center;gap:7px;padding-left:9px;padding-right:10px}
.timing-columns{height:26px;background:#1a2636;border-bottom:1px solid #3a4960;color:#9baec1;font-size:8px;font-weight:900;letter-spacing:.04em}
.timing-columns span:nth-child(4){text-align:right}.timing-columns span:last-child{text-align:center}
.timing-row{position:relative;width:100%;height:32px;min-height:32px;color:#f3f6fd;background:#0b121e;border:0;border-bottom:1px solid #27344a;text-align:left;border-radius:0;font-family:inherit;cursor:pointer;transition:background .12s}
.timing-row:nth-child(even){background:#101a28}
.timing-row:last-child{border-bottom:0}
.timing-row:active,.timing-row.chosen{background:#29364d}
.timing-row.mine{background:#302b3e;box-shadow:inset 3px 0 0 #ff8582}
.timing-row.mine:nth-child(even){background:#342d42}
.timing-row.mine.chosen{background:#43354b}
.timing-row.team:not(.mine){background:#13292f}
.timing-row.out{color:#7b899c;background:#101725}
.timing-row:focus-visible{outline:2px solid #fc8180;outline-offset:-2px;z-index:1}
.timing-pos{font-size:13px;font-weight:1000;color:#f4f7ff;text-align:center}
.timing-teammark{min-width:0;height:22px;border-left:3px solid var(--timing-team);border-radius:3px;background:color-mix(in srgb,var(--timing-team) 18%,#141f2c);display:flex;align-items:center;justify-content:center;color:#eef7fe;font-size:9px;font-weight:1000;letter-spacing:-.04em}
.timing-driver{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;white-space:nowrap}
.timing-driver b{font-size:13px;font-weight:1000;letter-spacing:.03em;min-width:0}
.timing-delta{font-size:8px;font-weight:1000;white-space:nowrap;line-height:1}
.timing-delta.up{color:#67e3a3}.timing-delta.down{color:#ff8d8e}
.timing-me{color:#ffb9ae;font-size:7px;font-weight:1000;letter-spacing:.03em}
.timing-gap{text-align:right;color:#d0dce9;font-size:12px;font-weight:800;letter-spacing:-.03em;white-space:nowrap}
.timing-gap.lead{font-size:10px;font-weight:1000;color:#fafcfe}
.timing-gap.retired{font-size:11px;color:#a5afc2}
.timing-tyre{width:20px;height:20px;justify-self:center;border-radius:50%;border:2px solid currentColor;display:grid;place-items:center;font-size:9px;font-weight:1000;color:#f0d881;background:#111722}
.timing-tyre.timing-s{color:#ff7876}.timing-tyre.timing-m{color:#eacd71}.timing-tyre.timing-h{color:#eff4ff}.timing-tyre.timing-i{color:#5de0a6}.timing-tyre.timing-w{color:#74b0ff}
.timing-tyre.empty{border:0;color:#617184;background:transparent}
.timing-pit{display:inline-block;background:#ecd67a;color:#151c2a;font-size:9px;padding:3px 5px;font-weight:1000;border-radius:2px;line-height:1}
.timing-best{position:absolute;right:1px;top:0;color:#bb86fd;font-size:8px;line-height:1}
.timing-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#152033;color:#99acbf;font-size:8px;font-weight:850;letter-spacing:.025em;border-top:1px solid #394b60}
.timing-footer>span:first-child{display:flex;align-items:center;gap:5px}
.timing-detail-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.timing-detail-head strong{font-size:12px}.timing-detail-head>span:last-child{font-size:10px;color:#a8b9cc}
.timing-color{width:7px;height:19px;border-radius:3px;display:inline-block}
.timing-details{background:#1b283a;border-top:1px solid #50617a;padding:12px}
.timing-detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.timing-detail-stats>div{min-width:0}
.timing-detail-stats small{display:block;font-size:7px;letter-spacing:.025em;font-weight:900;color:#94aac0;margin-bottom:5px}
.timing-detail-stats b{font-size:11px;color:#f0f7fe;white-space:nowrap}
@media (min-width:600px){.timing-tower{margin-left:0}}
@media (max-width:365px){
 .timing-columns,.timing-row{grid-template-columns:23px 33px minmax(57px,1fr) 63px 21px;gap:5px;padding-left:7px;padding-right:7px}
 .timing-driver b{font-size:12px}.timing-gap{font-size:11px}
 .timing-teammark{font-size:8px}
 .timing-delta{font-size:7px}
}

/* v2.5 strategy intelligence: visible trade-offs and per-lap accountability */
.decision-pace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0 12px}
.decision-pace{padding:10px 5px;border:1px solid #314359;border-radius:10px;background:#111c2c;text-align:center;min-width:0}
.decision-pace.chosen{background:#332833;border-color:#f77b70}
.decision-pace small{display:block;color:#a6b9cc;font-size:8px;font-weight:900;letter-spacing:.03em;white-space:nowrap}
.decision-pace b{display:block;color:#f4f7fc;margin:7px 0 4px;font-size:clamp(12px,3.4vw,16px);font-variant-numeric:tabular-nums}
.decision-pace span{font-size:9px;color:#9eb2c6;white-space:nowrap}
.decision-forecast{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.decision-forecast>div{border:1px solid #29394e;background:#131c2b;padding:9px;border-radius:9px;min-width:0}
.decision-forecast small{display:block;color:#9aafc4;font-weight:900;letter-spacing:.035em;font-size:8px;margin-bottom:6px}
.decision-forecast b{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.decision-effects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.decision-effects span{font-size:9px;display:flex;align-items:center;justify-content:space-between;gap:4px;border:1px solid #293747;padding:7px;border-radius:7px;color:#a5b8cd}
.decision-effects b{font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.decision-reasons{font-size:11px;color:#c6d7e8;line-height:1.65;border-left:3px solid #f67a73;background:#172437;padding:9px;margin-top:11px;border-radius:0 7px 7px 0}
@media(max-width:355px){.decision-pace small{font-size:7px}.decision-pace span{font-size:8px}.decision-pace b{font-size:12px}}

/* APEX GP 2.6: separation of driver and team-owner careers */
.relation-meter{margin:12px 0}
.relation-meter small{font-size:11px;color:#b7c8d8;font-weight:750}
.relation-meter b{font-size:11px;font-variant-numeric:tabular-nums}
.relation-meter .progress{margin-top:7px;height:6px}
.driver-choices{display:grid;grid-template-columns:1fr;gap:8px;margin-top:13px}
.driver-choices .btn{font-size:12px;padding:12px 9px}
.driver-offer{background:#111e2c;border:1px solid #32495e;border-radius:12px;padding:13px;margin-bottom:12px}
.driver-offer .grid2{margin-top:11px}
.driver-offer .kpi b{font-size:13px}
@media(min-width:560px){.driver-choices{grid-template-columns:repeat(3,1fr)}}

/* v2.7 — strategy signals from opponents' own pitwall calculations */
.ai-brief-list{display:flex;flex-direction:column;gap:5px;margin:8px 0}
.ai-brief-row{display:grid;grid-template-columns:4px minmax(72px,1.5fr) minmax(48px,.65fr) 70px;align-items:center;gap:8px;min-height:32px;background:#142132;border:1px solid #2a3e52;border-radius:8px;padding:5px 8px}
.ai-brief-team{height:22px;border-radius:2px}
.ai-brief-row strong{font-size:11px;color:#f5f8fd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-brief-row span:nth-of-type(2){font-size:9px;color:#a4b8ca;white-space:nowrap}
.ai-brief-row b{font-size:10px;color:#91d8dd;text-align:right;white-space:nowrap}
.ai-brief-events{display:flex;flex-direction:column;gap:5px}
.ai-brief-event{display:flex;gap:10px;padding:6px 8px;font-size:10px;color:#c4d3e3;background:#101b2c;border-radius:7px}
.ai-brief-event small{color:#73d6ba;font-weight:800;white-space:nowrap;min-width:78px}
.ai-brief-event span{flex:1;line-height:1.5}
@media(max-width:360px){.ai-brief-row{grid-template-columns:3px minmax(60px,1.2fr) 46px 64px;gap:4px}.ai-brief-row strong{font-size:10px}.ai-brief-row b{font-size:9px}}

/* APEX GP 2.8 — wheel-to-wheel battles, driver defense, rival proximity telemetry */
.duel-context{font-size:10px;color:#98aec1;margin:0 0 11px;line-height:1.6}
.duel-context b{font-weight:900;color:#f5c779}.duel-context span{color:#8da6b9}
.duel-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.duel-rival{background:#111e30;border:1px solid #35465f;border-radius:10px;padding:11px;min-width:0;display:flex;flex-direction:column;gap:4px}
.duel-rival small{font-size:9px;font-weight:900;color:#a4b8c9;letter-spacing:.07em}
.duel-rival strong{font-size:16px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.duel-rival>span{font-size:14px;color:#dae6f1;font-variant-numeric:tabular-nums}
.duel-chance{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:8px;color:#93aabd;line-height:1.25;font-weight:800;padding-top:8px;margin-top:3px;border-top:1px solid #2d4051}
.duel-chance b{font-size:14px;color:#77dbcf;white-space:nowrap}
.duel-stats{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:10px;padding:10px 8px;border-radius:8px;background:#0d1b2b;border:1px solid #25384d}
.duel-stats span{font-size:9px;font-weight:850;color:#8fa9bd}
.duel-stats b{font-size:13px;color:#f2f8ff;margin-left:3px}
.duel-history{display:flex;flex-direction:column;gap:4px}
.duel-event{display:grid;grid-template-columns:50px 63px 1fr;gap:7px;align-items:center;min-height:25px;padding:6px 8px;border-radius:6px;background:#111f30}
.duel-event span{font-size:10px;color:#acbfd1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel-event b{font-size:9px;color:#e7f1fa;letter-spacing:.03em}
@media(max-width:362px){.duel-rival strong{font-size:13px}.duel-rival{padding:8px}.duel-chance{font-size:7px}.duel-event{grid-template-columns:46px 56px 1fr;gap:4px}}

/* APEX GP 2.9 — persistent weekend preparation and engineering reports */
.endurance-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.endurance-plan{text-align:left;display:flex;flex-direction:column;gap:7px;min-height:112px;border:1px solid #38495e;border-radius:10px;background:#131e2c;color:#e6edf7;padding:12px;cursor:pointer;font-family:inherit}
.endurance-plan.selected{border-color:#fb827b;background:linear-gradient(138deg,#352730,#182235)}
.endurance-plan:disabled{cursor:default;opacity:.77}
.endurance-plan b{font-size:11px;letter-spacing:.02em;line-height:1.4}
.endurance-plan span{font-size:10px;line-height:1.48;color:#a5b8cd}
.endurance-foot{margin-top:8px;font-size:10px;line-height:1.6;color:#9ab3c7}
.endurance-part{border:1px solid #29394e;border-radius:9px;padding:10px;background:#121d2c;margin-top:8px}
.endurance-part .row{align-items:center;gap:10px}
.endurance-part .row span{font-size:11px;font-weight:850;color:#c9d8e7}
.endurance-part .row b{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.endurance-part .row small{font-size:8px;margin-left:3px;color:#82ddb2}
.endurance-part.warning .row small{color:#efca82}
.endurance-part.critical .row small{color:#fb8585}
.endurance-gauge{height:6px;overflow:hidden;border-radius:5px;background:#28394a;margin-top:9px}
.endurance-gauge i{display:block;height:100%;background:#67d2a8;border-radius:5px}
.endurance-part.warning .endurance-gauge i{background:#d5ad65}
.endurance-part.critical .endurance-gauge i{background:#f07477}
.endurance-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.endurance-service{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 0;border-bottom:1px solid #263447}
.endurance-service span{font-size:11px;font-weight:750}
.endurance-service button{font-size:10px;min-height:36px;padding:8px 11px}
.endurance-analysis{border-left:3px solid #ec8276;padding:9px 12px;background:#172638;border-radius:0 8px 8px 0;margin-top:14px}
.endurance-analysis p{font-size:11px;line-height:1.6;margin:5px 0;color:#cadae7}
@media(max-width:370px){.endurance-plans{gap:6px}.endurance-plan{padding:9px;min-height:119px}.endurance-plan b{font-size:10px}.endurance-plan span{font-size:9px}}

/* GRIDLINE GP 2.9.0 — restrained ice / teal motorsport identity. */
:root{--accent:#4de6d7;--bg:#07111d;--blue:#79bafa;}
.brandmark{border-color:#38d9d78c;background:linear-gradient(145deg,#174b5a,#09182a);box-shadow:inset 0 0 12px #53e4d117;color:#efffff}
.brandmark span,.timing-apex span{color:#64efe1}
.brandtype{font-size:clamp(12px,3.2vw,15px);letter-spacing:-.015em}
.brandtype small{font-size:7px;letter-spacing:.105em;white-space:nowrap}
.timing-heading{border-bottom-color:#50dfd2}
.timing-tower{border-color:#365166}
.timing-apex{letter-spacing:-2px;color:#f3fdff}
.bootmark{color:#fcfdff}
.bootmark span{color:#56e6d7}
@media(max-width:355px){.brandmark{width:31px;height:31px;min-width:31px}.brand{gap:6px}.brandtype{font-size:11px}.topright{gap:4px}.headtag{padding:6px}}
