/* FindAllShop Basketball V2 — dedicated basketball design system */
:root{color-scheme:dark;--bg:#0c1016;--bg2:#141922;--card:#1a212b;--card2:#222a36;--line:#343f4d;--txt:#f5f6f7;--muted:#b2c0cb;--orange:#ff944d;--orange2:#ffbd78;--blue:#72baff;--good:#9fe3b0;--bad:#ff9f9b;--radius:15px;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(160deg,#101821 0,#0d1017 46%,#121723);color:var(--txt);line-height:1.52}a{color:var(--orange2);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}p{margin:0 0 13px}h1,h2,h3{line-height:1.13;letter-spacing:-.033em;margin:0}h1{font-size:clamp(28px,4.1vw,48px)}h2{font-size:clamp(23px,3vw,30px)}h3{font-size:19px}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{font-size:11px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--orange2)}.wrap{max-width:1190px;margin:auto;padding:0 22px}
.ribbon{border-bottom:1px solid #59402f;background:linear-gradient(90deg,#27201c,#161b23);color:#ffceb1}.ribbon .wrap{min-height:35px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;font-weight:700;letter-spacing:.06em}.ribbon b{color:#fff}.ribbon a{font-size:11px;color:#ffca9c}
.header{background:#121820ee;border-bottom:1px solid #37404c;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.header-inner{display:flex;align-items:center;gap:23px;min-height:76px}.brand{font-size:21px;color:#fff;font-weight:900;letter-spacing:-1px;display:flex;align-items:center;gap:9px;flex-shrink:0}.brand .logo{font-size:26px}.brand .brand-icon{display:block;width:36px;height:36px;border-radius:9px;object-fit:contain}.brand em{font-style:normal;color:var(--orange)}.brand small{display:block;color:#d3b69f;font-size:8px;letter-spacing:.17em;font-weight:800}.nav{display:flex;gap:3px 13px;align-items:center;flex-wrap:wrap;margin-left:auto}.nav a{color:#cdd3da;font-size:12px;font-weight:710;padding:9px 4px;white-space:nowrap;border-bottom:2px solid transparent}.nav a.active,.nav a:hover{color:#ffc18c;border-bottom-color:var(--orange);text-decoration:none}.nav .switch{border:1px solid #63513b;border-radius:9px;padding:8px 10px;background:#26251f;color:#ffe0bb}
.mobile-line{display:none}.page{padding-top:30px;padding-bottom:50px}.crumb{font-size:12px;color:#9ca8b5;margin:0 0 17px}.crumb a{color:#e4b486}
.intro{display:grid;grid-template-columns:1.55fr .9fr;gap:20px;margin-bottom:20px}.hero{position:relative;overflow:hidden;border:1px solid #654736;border-radius:var(--radius);padding:30px 31px;background:radial-gradient(ellipse at 95% 0%,#6c3922a6,transparent 50%),linear-gradient(135deg,#29262b,#18212a 75%)}.hero:after{content:"";position:absolute;right:-100px;bottom:-235px;border:2px solid #ffad6255;border-radius:50%;width:440px;height:440px;pointer-events:none}.hero h1{max-width:650px;margin:12px 0}.hero p{max-width:650px;color:#d5d7db;font-size:14px}.hero .eyebrow{color:#ffc18a}.hero-side{border-radius:var(--radius);border:1px solid var(--line);padding:25px;background:linear-gradient(145deg,#222b35,#1b2027);display:flex;flex-direction:column;justify-content:center}.hero-side .big{font-size:43px;line-height:1.1;font-weight:950;letter-spacing:-.07em;color:var(--orange)}.hero-side .small{margin-top:7px}.hero-side .label{font-weight:770;margin-bottom:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #75634f;padding:10px 15px;border-radius:10px;font-size:13px;font-weight:800;background:#252a2d;color:#faf5f0;min-height:40px}.btn.primary{background:var(--orange);border-color:var(--orange);color:#18130d}.btn:hover{filter:brightness(1.08);text-decoration:none}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:17px}
.notice{border:1px solid #625037;border-left:4px solid #faac69;background:#29231d;color:#f4dcc4;padding:13px 16px;font-size:12px;border-radius:10px;margin:17px 0 24px}
.shortcuts{display:flex;gap:9px;overflow:auto;padding:4px 0 13px;margin-bottom:6px}.shortcuts a{white-space:nowrap;color:#d5d9e0;background:#222934;border:1px solid #394551;border-radius:10px;font-size:12px;font-weight:730;padding:9px 13px}.shortcuts a:hover{border-color:var(--orange)}
.section{margin:28px 0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:15px}.section-head h2{margin:6px 0 0}.section-head a{font-size:13px}.tag{display:inline-flex;background:#3b2b21;border:1px solid #9f6240;border-radius:30px;color:#ffc698;padding:5px 11px;font-weight:800;font-size:11px}.tag.blue{background:#1c3146;border-color:#39678d;color:#a2d5ff}.tag.green{background:#1f342d;border-color:#36725a;color:#9ddeb4}.tag.red{background:#3a2228;border-color:#854a58;color:#ffa9ac}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:19px}.feature{background:linear-gradient(145deg,#29303b,#1b212a);border-color:#645042}.feature h3{font-size:23px;margin:10px 0 18px}.card-top{display:flex;justify-content:space-between;gap:11px;align-items:center;flex-wrap:wrap;font-size:12px;color:#d7dee2}.vsep{color:#8c9ba7;font-weight:550;font-size:12px}.match-name{font-size:17px;font-weight:850;margin:13px 0 14px;line-height:1.3}.match-name a{color:#f0f2f4}.match-name a:hover{color:var(--orange2)}.prob-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.prob{padding:11px 13px;background:#151e29;border:1px solid #3a4352;border-radius:10px;min-width:0}.prob span{display:block;color:#bcc6d1;font-size:11px;white-space:normal}.prob strong{font-size:23px;letter-spacing:-.03em}.prob.favored{background:#34271f;border-color:#a36841}.prob.favored strong{color:#ffc28e}.meter{display:flex;overflow:hidden;border-radius:20px;height:6px;margin:12px 0;background:#4d6572}.meter b{display:block;background:var(--orange);max-width:100%}.meter i{flex:1;background:#507496}.game-meta{border-top:1px solid #35414d;padding-top:10px;margin-top:12px;font-size:11px;color:#b8c5d0;display:flex;flex-wrap:wrap;gap:6px 15px}.game-meta a{color:#c9d6e0}.game-meta b{color:#ffc18c}.schedule-coverage{padding:11px 14px;background:#1d2933;border:1px solid #526476;border-left:3px solid #ff944d;border-radius:10px;color:#d6e1e9;font-size:12px;margin:15px 0 21px}.schedule-coverage strong{color:#ffc18c}.forecast-warning{color:#ffd39e;font-size:11px;font-weight:750}.game-day-heading{font-size:15px;letter-spacing:0;color:#ffd4ab;padding:12px 15px;margin:23px 0 12px;border-radius:10px;border-left:3px solid #ff944d;background:linear-gradient(90deg,#322821,#1a212b)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:22px;background:var(--card);border:1px solid var(--line);border-radius:13px}.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:28px;letter-spacing:-.045em;margin:5px 0}.stat.orange strong{color:var(--orange)}.stat.blue strong{color:var(--blue)}
.ticket{border:1px solid #765037;border-radius:var(--radius);padding:20px;background:linear-gradient(140deg,#2c2929,#1b242c)}.ticket-head{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:14px}.ticket-title{font-size:22px;font-weight:870}.ticket-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.ticket-pick{background:#181f29;border:1px solid #424951;padding:16px;border-radius:12px}.ticket-pick h3{font-size:15px;margin:9px 0}.ticket-pick .selection{font-weight:800;color:#ffd09c}.ticket-pick .percent{font-size:25px;font-weight:900;color:#fff}.ticket-pick .status{margin-top:9px}.ticket-pick a{font-size:12px}
.score-row{display:flex;gap:15px;align-items:center;justify-content:space-between;border-bottom:1px solid #37434e;padding:13px 0}.score-row:last-child{border-bottom:0}.score-teams{display:grid;gap:4px;min-width:0;flex:1}.score-teams b{font-size:13px}.score-num{text-align:right;font-weight:900;font-variant-numeric:tabular-nums;font-size:19px;min-width:70px}.score-date{font-size:11px;color:var(--muted)}.panel h3{margin-bottom:8px}.list-panel{padding:10px 19px}
.team-card{display:flex;gap:9px;align-items:center;justify-content:space-between}.team-mark{background:#344052;color:#ffd0a6;border-radius:10px;width:37px;height:37px;display:grid;place-items:center;font-weight:900;flex-shrink:0}.team-card a{color:#f4f4f4;font-size:13px;font-weight:800}.team-card small{color:var(--muted)}
.empty{border:1px dashed #5b6876;background:#202630;padding:20px;border-radius:12px;color:#d1d7df;font-size:14px}.content{max-width:890px}.content p{color:#d2d9df;margin:10px 0 16px}.content h2{margin:24px 0 8px}.compact-table{width:100%;border-collapse:collapse;font-size:13px}.compact-table th{text-align:left;color:#b3c1cb;font-size:12px}.compact-table th,.compact-table td{border-bottom:1px solid #3b4652;padding:13px 11px}.compact-table tr:last-child td{border:0}.compact-table td.right{text-align:right;font-variant-numeric:tabular-nums}.outcome-win{color:var(--good);font-weight:850}.outcome-loss{color:var(--bad);font-weight:850}.outcome-wait{color:#ffca8e;font-weight:720}
.footer{background:#111923;border-top:1px solid #354151;padding:29px 0 45px;margin-top:35px;color:#b2bbc6;font-size:12px}.footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer a{margin-right:16px;color:#d9b99e}.footer strong{color:#f3f3f3}
@media(max-width:1100px){.header-inner{align-items:flex-start;flex-direction:column;gap:2px;padding-top:11px;padding-bottom:10px}.nav{margin-left:0}.nav a{font-size:12px;padding:8px 3px}.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.intro{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-items{grid-template-columns:1fr}.hero{padding:24px}}

/* NBA bookmaker quotations — visibly separated from model probabilities */
.market-block{border-top:1px solid #45515c;margin-top:13px;padding-top:12px}
.market-title{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:#d6dce2;margin-bottom:9px}
.market-title b{color:#ffbe83;font-size:12px}.market-title span{color:#99a9b8}
.market-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.market-quote{min-width:0;padding:10px;background:#151e29;border:1px solid #4a5360;border-radius:10px;display:flex;flex-direction:column}
.market-quote span{color:#c5ced7;font-size:11px;white-space:normal}
.market-quote strong{font-size:23px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:#ffd19c}
.market-quote small{color:#adc2cf;font-size:11px;overflow-wrap:anywhere}
.market-updated{font-size:10px;color:#aab6c0;margin-top:8px}
.market-empty{font-size:12px;color:#aab8c6;background:#1c242e;padding:10px 12px;border-radius:8px}
.ticket-odds{margin-top:11px;padding:10px 12px;border:1px solid #7b603f;background:#2b2929;border-radius:10px;display:flex;flex-direction:column;min-width:0}
.ticket-odds span{font-size:11px;color:#f6cb9a}.ticket-odds strong{font-size:24px;line-height:1.15;font-weight:900;color:#fff;font-variant-numeric:tabular-nums}
.ticket-odds small{font-size:10px;color:#bfc9d2;overflow-wrap:anywhere}.ticket-percent-label{font-size:10px;font-weight:500;color:#bfc9d2;display:block;letter-spacing:0}
/* NBA game intelligence — snapshot-safe team form & rest */
.nba-detail .insight-timestamp{margin:-4px 0 16px;color:#c8d3db;font-size:13px;border-left:3px solid #ff944d;padding:9px 13px;background:#1b2631;border-radius:6px}
.insight-team h3{margin-bottom:17px;color:#ffe0bf}
.insight-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.insight-stat{background:#141f2b;border:1px solid #3d4a56;border-radius:11px;padding:14px;min-width:0}
.insight-stat span{display:block;font-size:11px;color:#b9c9d7}
.insight-stat strong{display:block;font-size:18px;line-height:1.28;margin:6px 0;color:#fff;overflow-wrap:anywhere}
.insight-stat small{display:block;font-size:10px;color:#96a9b9}
.insight-metric{font-size:12px;color:#bfced9;margin:15px 0 10px}
.insight-metric b{color:#ffbd82}
.insight-form{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 16px}
.insight-form span{display:grid;place-items:center;border-radius:8px;width:32px;height:32px;font-size:13px;font-weight:900}
.insight-form span.win{background:#1d4437;color:#adf1c7;border:1px solid #386b55}
.insight-form span.loss{background:#4b292f;color:#ffbbb6;border:1px solid #805058}
.insight-match-list{border-top:1px solid #384653;padding-top:5px}
.insight-match-list div{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #313f49;padding:9px 0;font-size:12px}
.insight-match-list div:last-child{border-bottom:0}
.insight-match-list small{font-size:11px;color:#b7c4cf}
.insight-match-list strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.insight-h2h{margin-top:14px}
.insight-h2h h3{margin-bottom:16px}
.insight-versus{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 13px}
.insight-versus>span{padding:13px 15px;border-radius:10px;background:#151f2b;border:1px solid #384c5c;color:#d3dee8;font-size:12px}
.insight-versus strong{display:block;font-size:21px;color:#ffbe89;margin-top:4px}
.insight-disclaimer{font-size:12px;color:#c7d3dd;background:#231f1c;border:1px solid #61483a;padding:14px 17px;border-radius:10px;margin-top:14px}
@media(max-width:570px){.insight-stats{grid-template-columns:1fr}.insight-stat strong{font-size:17px}}

/* NBA team directory and franchise season dashboards */
.team-directory{row-gap:14px}
.team-profile-card{display:flex;flex-direction:column;justify-content:space-between;min-height:155px;color:#f5f6f7;transition:border-color .14s,transform .14s}
.team-profile-card:hover{color:#fff;border-color:#da8957;transform:translateY(-2px);text-decoration:none}
.team-profile-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.team-icon{font-size:20px}
.team-profile-next{font-size:10px;color:#aebac6}
.team-profile-card>strong{font-size:16px;line-height:1.25;letter-spacing:-.02em;margin:12px 0 4px}
.team-profile-record{display:flex;gap:12px;color:#ffc194;align-items:baseline;margin:7px 0}
.team-profile-record span{font-size:21px;font-weight:900;font-variant-numeric:tabular-nums}
.team-profile-record small{font-size:10px;font-weight:600;color:#bac8d2}
.team-profile-card>small{font-size:11px;color:#afbecb}
.team-hero{padding:32px}
.team-hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}
.team-hero-meta span{font-size:12px;color:#ffe2c5;background:#312a28;border:1px solid #775745;border-radius:20px;padding:7px 11px}
.team-metric-row{margin-top:13px}
.team-form-heading{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;color:#d7e1e9;font-size:13px}
.team-form-heading strong{color:#ffc18c}
.team-form-chips{margin:13px 0}
.team-result-line{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid #384452;padding:15px 0}
.team-result-line:last-child{border-bottom:0}
.team-result-line a{color:#e5ecf2;font-weight:800;font-size:14px}
.team-result-score{text-align:right;display:flex;align-items:flex-end;gap:8px;flex-direction:column}
.team-result-score strong{font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
.team-result-score span{font-size:12px}
@media(max-width:570px){.team-hero{padding:23px}.team-result-line a{font-size:12px}.team-result-score strong{font-size:16px}}
/* NBA V3 — matched-bookmaker model / market comparison */
.nba-market-compare .panel{background:linear-gradient(150deg,#232b34,#191f29)}
.market-comparison-team{background:#141e29;border:1px solid #405062;border-radius:13px;padding:18px;min-width:0}
.market-comparison-team h3{font-size:16px;min-height:23px;color:#f5f7f9;margin-bottom:15px}
.market-comparison-figures{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.market-comparison-figures div{min-width:0;display:flex;flex-direction:column;gap:5px}
.market-comparison-figures small{color:#b1c3d3;font-size:11px}
.market-comparison-figures strong{font-size:clamp(17px,2.2vw,23px);color:#ffbe8c;font-variant-numeric:tabular-nums}
.market-comparison-figures div+div strong{color:#bdd4e7}
.market-delta{border-top:1px solid #3d4953;padding-top:12px;margin-top:13px;font-size:13px;color:#e0e7ed}
.market-delta strong{font-variant-numeric:tabular-nums}
.market-footnote{font-size:11px;color:#b7c3cd;margin-top:14px;line-height:1.6}
.ticket-quote-live{border-top:1px solid #695139;margin-top:10px;padding-top:10px;font-size:11px;line-height:1.5;color:#d5c7b6}
.ticket-quote-live b{color:#ffe2bd}
/* V3.1: verified outcomes / archived prices */
.ticket-history-title{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:25px 0 12px}
.ticket-history-title h3{font-size:20px;margin:0 4px 0 0}
.ticket-history-title .tag{font-size:10px}
.ticket-history-title .small{margin-left:auto}
@media(max-width:570px){.ticket-history-title .small{margin-left:0}}
/* NBA V3.2 — immutable prospective engine comparison */
.engine-hero{background:linear-gradient(140deg,#25201e,#1b2530)}
.engine-rows{display:flex;flex-direction:column;gap:10px}
.engine-row{display:grid;grid-template-columns:minmax(190px,2fr) minmax(108px,1fr) minmax(108px,1fr) minmax(92px,.85fr);
align-items:center;gap:14px;background:#1c2631;border:1px solid #394756;border-radius:12px;padding:15px}
.engine-match{min-width:0}
.engine-match a{color:#f2f4f6;font-size:13px;font-weight:800;line-height:1.4}
.engine-match small{display:block;color:#b9c8d6;margin-top:6px;font-size:10px}
.engine-pick,.engine-delta{min-width:0}
.engine-pick strong,.engine-delta strong{display:block;font-size:19px;font-weight:900;color:#ffc18a;line-height:1.3;font-variant-numeric:tabular-nums}
.engine-pick small,.engine-delta small{font-size:10px;color:#aebdca;display:block;margin-top:7px}
.engine-caption{display:block;font-size:10px;color:#bacbdb;margin-bottom:6px;font-weight:700}
.engine-delta strong{color:#cad9e5}
.engine-score-card{min-width:0}
.engine-score-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.engine-score-metrics>div{background:#151f29;padding:13px;border-radius:9px;min-width:0}
.engine-score-metrics span{font-size:10px;color:#bfccd7;display:block;min-height:27px}
.engine-score-metrics strong{font-size:clamp(12px,1.9vw,20px);font-variant-numeric:tabular-nums;color:#ffcb9e;display:block;overflow-wrap:anywhere}
.engine-review-note{padding:13px 16px;border-left:3px solid #ec9e60;color:#f3d1b3;background:#2c2827;border-radius:8px;font-size:12px;margin-top:16px}
@media(max-width:790px){
 .engine-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
 .engine-match{grid-column:1/-1;border-bottom:1px solid #394756;padding-bottom:10px}
 .engine-pick strong,.engine-delta strong{font-size:16px}
}
@media(max-width:440px){
 .engine-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .engine-match{grid-column:1/-1}
 .engine-delta{grid-column:1/-1;border-top:1px solid #394756;padding-top:7px}
 .engine-score-metrics{grid-template-columns:1fr}
 .engine-score-metrics span{min-height:auto}
}
/* Ticket odds: show latest known pregame quote prominently, freeze publication separately. */
.ticket-odds.ticket-odds-priority{margin-top:14px;padding:14px;border:1px solid #65513e;border-radius:11px;background:linear-gradient(120deg,#252b32,#1c262e)}
.ticket-odds-priority .ticket-quote-head{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;color:#efddc9;font-size:12px;font-weight:780;line-height:1.5}
.ticket-odds-priority .ticket-quote-price{font-size:clamp(24px,2.5vw,30px);line-height:1.05;font-variant-numeric:tabular-nums;font-weight:950;color:#ffca94;white-space:nowrap}
.ticket-odds-priority>small{display:block;color:#bbc9d4;font-size:10px;line-height:1.65;margin-top:6px}
.ticket-odds-priority .ticket-quote-archive{border-top:1px solid #4c5156;margin-top:12px;padding-top:10px;display:block;color:#cdd6df;font-size:11px}
.ticket-odds-priority .ticket-quote-archive span{display:block;font-weight:660;line-height:1.5}
.ticket-odds-priority .ticket-quote-archive strong{font-size:13px;color:#f1e0c4;font-variant-numeric:tabular-nums}
.ticket-odds-priority .ticket-quote-archive small{display:block;color:#acbbc8;font-size:10px;line-height:1.6}
/* NBA V3.8: small-sample-aware rolling diagnostics and calibration */
.engine-window{border:1px solid #425261;background:#16212d;border-radius:10px;padding:15px;min-width:0}
.engine-window>strong{font-size:14px;color:#ffd1a1;display:block;margin-bottom:6px}
.engine-window>small{color:#afc3d1;font-size:11px;display:block;margin-bottom:12px}
.engine-window>div{display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid #3b4a58;padding:9px 0;font-size:12px}
.engine-window>div b{color:#fff;font-variant-numeric:tabular-nums}
.engine-calibration-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:14px}
.engine-calibration-panel{padding:14px;background:#192532;border:1px solid #465462;border-radius:10px;min-width:0}
.engine-calibration-panel>strong{color:#ffd3ab;display:block;margin-bottom:8px}
.engine-calibration-row{display:grid;grid-template-columns:75px 55px minmax(0,1fr);align-items:center;gap:8px;border-bottom:1px solid #3f4b58;padding:10px 0;font-size:11px}
.engine-calibration-row:last-child{border-bottom:0}
.engine-calibration-row small{color:#b1bfca}
.engine-calibration-row b{font-size:11px;text-align:right;overflow-wrap:anywhere}
@media(max-width:590px){.engine-calibration-grid{grid-template-columns:1fr}.engine-calibration-row{grid-template-columns:70px 50px 1fr}.engine-calibration-row b{font-size:10px}}
/* V4.0: clearly distinguish previous-day archive from upcoming ticket */
.last-ticket-label{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  background:#182a3a;border:1px solid #3e5b73;border-radius:12px;
  padding:12px 14px;margin:17px 0 12px}
.last-ticket-label strong{font-size:14px;color:#fff;font-variant-numeric:tabular-nums}
.last-ticket-label small{font-size:11px;color:#b7c9d7;line-height:1.5}
/* NBA V4.1: side-by-side pregame model diagnostics */
.nba-diagnostics-overflow{overflow-x:auto;margin-top:16px;border:1px solid #3a4a59;border-radius:12px;background:#1b2732}
.nba-diagnostics-table{width:100%;border-collapse:collapse;min-width:645px;text-align:left;font-variant-numeric:tabular-nums}
.nba-diagnostics-table th,.nba-diagnostics-table td{padding:12px 13px;border-bottom:1px solid #394655;font-size:11px;white-space:nowrap;color:#d8e2e9}
.nba-diagnostics-table thead th{font-size:10px;color:#f6ca9c;font-weight:800;background:#253341;letter-spacing:.02em}
.nba-diagnostics-table tbody th{font-size:11px;font-weight:720;color:#f5f7f8;white-space:normal;min-width:190px}
.nba-diagnostics-table tbody tr:last-child th,.nba-diagnostics-table tbody tr:last-child td{border-bottom:0}
.nba-diagnostics-table tbody tr:hover{background:#293849}
@media(max-width:570px){.wrap{padding:0 14px}.ribbon .wrap{flex-wrap:wrap;padding-top:7px;padding-bottom:7px}.nav{max-width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.cards,.cards.two,.cards.four{grid-template-columns:1fr}.hero{padding:22px}.hero-side{padding:18px}.section{margin:24px 0}.ticket{padding:15px}.match-name{font-size:16px}.feature h3{font-size:21px}.compact-table{font-size:11px}.compact-table th,.compact-table td{padding:10px 6px}.page{padding-top:21px}}
