/* Sampsoid 13-Week Schedule v2.5 — schedule cells use a vertical gradient matching the reference panel. */
.sds-schedule{--sds-accent:#f79838;--sds-bg:#122334;--sds-border:#526d86;--sds-label:#bacbdc;--sds-date:#fff;--sds-track:#fff;--sds-heading:#fff;--sds-height:96px;--sds-gap:11px;--sds-max:1250px;--sds-date-size:34px;--sds-track-size:25px;--sds-heading-size:38px;--sds-race-size:16px;--sds-radius:12px;width:100%;max-width:var(--sds-max);margin:0 auto;box-sizing:border-box;color:var(--sds-track);font-family:'Barlow Condensed',Arial,sans-serif}
.sds-schedule *, .sds-schedule *::before,.sds-schedule *::after{box-sizing:border-box}
.sds-schedule .sds-heading{margin:0 0 19px;padding:0 0 3px;background:none;border:0}
.sds-schedule .sds-heading-main{display:flex;align-items:center;gap:12px;min-width:0;margin:0}
.sds-schedule .sds-title{color:var(--sds-heading)!important;line-height:1.05;margin:0!important;padding:0!important;border:0!important;white-space:normal;font:italic 400 var(--sds-heading-size)/1.05 'Racing Sans One',Impact,sans-serif;text-transform:uppercase;letter-spacing:.015em}
.sds-schedule .sds-slashes{color:var(--sds-accent);font:italic 400 28px/1 'Racing Sans One',Impact,sans-serif;letter-spacing:-.1em;white-space:nowrap}
.sds-schedule .sds-rule{height:2px;min-width:20px;flex:1;background:linear-gradient(90deg,var(--sds-accent),rgba(116,147,176,.55) 25%,rgba(116,147,176,.15));align-self:center}
.sds-schedule .sds-subtitle{margin:8px 0 0!important;padding:0!important;color:var(--sds-label)!important;font:600 13px/1.25 'Barlow Condensed',Arial,sans-serif;letter-spacing:.20em;text-transform:uppercase}
/* Every race occupies an entire row, regardless of viewport width. */
.sds-schedule .sds-weeks{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sds-gap);padding:0;margin:0;width:100%}
.sds-schedule .sds-week{position:relative;isolation:isolate;display:grid;grid-template-columns:130px 90px 2px minmax(0,1fr) 42px;column-gap:16px;align-items:center;min-width:0;width:100%;min-height:var(--sds-height);overflow:hidden;border:1px solid var(--sds-border);border-radius:var(--sds-radius);background:linear-gradient(180deg,rgb(19 38 57) 0%,rgb(16 32 49) 44%,rgb(12 26 39) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 0 1px rgba(6,19,34,.18),0 8px 22px rgba(0,0,0,.24);padding:0 22px;transition:border-color .18s ease,transform .18s ease}
.sds-schedule .sds-week::before{content:"";position:absolute;width:125px;height:4px;background:var(--sds-accent);bottom:0;left:0;box-shadow:0 0 14px color-mix(in srgb,var(--sds-accent) 40%,transparent);clip-path:polygon(0 0,91% 0,100% 100%,0 100%)}
.sds-schedule .sds-week::after{content:"";position:absolute;inset:0 auto auto 0;width:5px;height:35px;background:var(--sds-accent);opacity:.95;transform:skew(-14deg);transform-origin:top left}
.sds-schedule .sds-week-top{display:flex;align-items:center;height:64%;border-right:2px solid rgba(168,193,217,.48);min-width:0;position:relative;z-index:1;padding-right:16px}
.sds-schedule .sds-week-tag{font:700 var(--sds-race-size,16px)/1.2 'Barlow Condensed',Arial,sans-serif;letter-spacing:.16em;color:var(--sds-accent);white-space:normal;overflow-wrap:normal}
.sds-schedule .sds-date{text-align:center;font:italic 400 var(--sds-date-size)/1.02 'Racing Sans One',Impact,sans-serif;color:var(--sds-date);position:relative;z-index:1;white-space:nowrap;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}
.sds-schedule .sds-date--placeholder{font-size:min(var(--sds-date-size),25px)}
.sds-schedule .sds-date-rule{grid-column:3;width:2px;height:72%;min-height:40px;justify-self:center;align-self:center;background:linear-gradient(180deg,rgba(203,224,244,.06),rgba(175,201,226,.82) 15%,rgba(185,211,236,.82) 85%,rgba(203,224,244,.06));box-shadow:0 0 0 1px rgba(201,221,240,.08),0 0 12px rgba(185,211,236,.12);border-radius:2px;position:relative;z-index:1}
.sds-schedule .sds-track{grid-column:4;font:600 var(--sds-track-size)/1.16 'Barlow Condensed',Arial,sans-serif;color:var(--sds-track);position:relative;z-index:1;min-width:0;overflow-wrap:anywhere;margin:0;letter-spacing:.012em}
.sds-schedule .sds-flag{width:36px;height:31px;opacity:.33;flex:0 0 auto;background:#7891aa;mask-position:center;mask-size:contain;mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22black%22%3E%3Cpath%20d%3D%22M10%207V58H14V7Z%22%2F%3E%3Cpath%20d%3D%22M16%2010C27%204%2039%2015%2056%209V44C39%2050%2028%2038%2016%2044V10ZM18%2015v10h10V13Zm20%200v10h10V14Zm-10%2010v10h10V25Zm-10%2010v7c4-1%207-1%2010%200v-7Zm20%200v9c3%200%206-1%2010-2v-7Z%22%2F%3E%3C%2Fsvg%3E');-webkit-mask-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22black%22%3E%3Cpath%20d%3D%22M10%207V58H14V7Z%22%2F%3E%3Cpath%20d%3D%22M16%2010C27%204%2039%2015%2056%209V44C39%2050%2028%2038%2016%2044V10ZM18%2015v10h10V13Zm20%200v10h10V14Zm-10%2010v10h10V25Zm-10%2010v7c4-1%207-1%2010%200v-7Zm20%200v9c3%200%206-1%2010-2v-7Z%22%2F%3E%3C%2Fsvg%3E')}
.sds-schedule .sds-flag{grid-column:5;position:relative;z-index:1;justify-self:end}
@media(max-width:800px){.sds-schedule .sds-week{grid-template-columns:105px 82px 2px minmax(0,1fr) 33px;column-gap:14px;padding:0 16px}.sds-schedule .sds-week-tag{font-size:var(--sds-race-size,16px)}.sds-schedule .sds-date{font-size:min(var(--sds-date-size),30px)}.sds-schedule .sds-track{font-size:min(var(--sds-track-size),22px)}.sds-schedule .sds-flag{width:31px;height:27px}}
@media(max-width:560px){.sds-schedule .sds-title{font-size:min(var(--sds-heading-size),32px)}.sds-schedule .sds-week{grid-template-columns:100px minmax(0,1fr) 28px;grid-template-rows:auto 2px auto;column-gap:12px;row-gap:8px;min-height:var(--sds-height);padding:15px 13px}.sds-schedule .sds-week-top{grid-column:1;grid-row:1/4;align-self:stretch;height:auto;border-right:2px solid rgba(168,193,217,.48);padding-right:12px}.sds-schedule .sds-date{grid-column:2;grid-row:1;justify-self:start;text-align:left;font-size:min(var(--sds-date-size),29px)}.sds-schedule .sds-date--placeholder{font-size:min(var(--sds-date-size),25px)}
.sds-schedule .sds-date-rule{grid-column:2;grid-row:2;width:100%;height:2px;min-height:0;justify-self:stretch;align-self:center;background:linear-gradient(90deg,rgba(203,224,244,.06),rgba(175,201,226,.82) 15%,rgba(185,211,236,.82) 85%,rgba(203,224,244,.06));box-shadow:0 0 0 1px rgba(201,221,240,.08),0 0 12px rgba(185,211,236,.12)}.sds-schedule .sds-track{grid-column:2;grid-row:3;font-size:min(var(--sds-track-size),21px)}.sds-schedule .sds-flag{grid-column:3;grid-row:1/4;align-self:center;width:28px;height:26px}.sds-schedule .sds-week-tag{font-size:var(--sds-race-size,16px);letter-spacing:.09em}}
@media(prefers-reduced-motion:reduce){.sds-schedule .sds-week{transition:none}}

/* v2.2 Venue map: the official circuit silhouette replaces the checkered flag once loaded. */
.sds-schedule{--sds-map-size:68px;--sds-map-opacity:.34}
.sds-schedule .sds-week{grid-template-columns:130px 90px 2px minmax(0,1fr) minmax(46px,var(--sds-map-size))}
.sds-schedule .sds-flag.sds-map-ready{width:var(--sds-map-size);max-width:100%;height:min(64px,var(--sds-height));opacity:1;background:none!important;-webkit-mask-image:none!important;mask-image:none!important}
.sds-schedule .sds-map-image{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:var(--sds-map-opacity);pointer-events:none}
@media(max-width:800px){.sds-schedule .sds-week{grid-template-columns:105px 82px 2px minmax(0,1fr) minmax(33px,min(var(--sds-map-size),56px))}.sds-schedule .sds-flag.sds-map-ready{width:min(var(--sds-map-size),56px);height:52px}}
@media(max-width:560px){.sds-schedule .sds-week{grid-template-columns:100px minmax(0,1fr) 44px;grid-template-rows:auto 2px auto;column-gap:12px;row-gap:8px;min-height:var(--sds-height);padding:15px 13px}.sds-schedule .sds-week-top{grid-column:1;grid-row:1/4;align-self:stretch;height:auto;border-right:2px solid rgba(168,193,217,.48);padding-right:12px}.sds-schedule .sds-date{grid-column:2;grid-row:1;justify-self:start;text-align:left;font-size:min(var(--sds-date-size),29px);min-height:0;padding:0;height:auto;align-self:center;background:none;border:0;box-shadow:none}.sds-schedule .sds-date-rule{grid-column:2;grid-row:2;width:100%;height:2px;min-height:0;justify-self:stretch;background:linear-gradient(90deg,rgba(203,224,244,.06),rgba(175,201,226,.82) 15%,rgba(185,211,236,.82) 85%,rgba(203,224,244,.06))}.sds-schedule .sds-track{grid-column:2;grid-row:3;font-size:min(var(--sds-track-size),21px)}.sds-schedule .sds-flag{grid-column:3;grid-row:1/4;align-self:center}.sds-schedule .sds-flag.sds-map-ready{width:44px;height:46px}}

/* v2.2: show actual map only after SVG succeeds; do not apply flag's mask to its image */
.sds-schedule .sds-flag.sds-map-ready{
 background:none!important;-webkit-mask:none!important;mask:none!important;
 opacity:1!important;overflow:visible;
 width:min(var(--sds-map-size,68px),100%);height:min(64px,var(--sds-height,96px));
}
.sds-schedule .sds-flag.sds-map-ready .sds-map-image{
 display:block;width:100%;height:100%;object-fit:contain;
 opacity:var(--sds-map-opacity,.34);filter:brightness(0) invert(1);
}

/* v2.2 — All-Star entries retain the original date, track, and track map. */
.sds-schedule .sds-track-block{grid-column:4;min-width:0;position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.sds-schedule .sds-track-block .sds-track{grid-column:auto;grid-row:auto;margin:0;width:100%}
.sds-schedule .sds-week--allstar{border-color:color-mix(in srgb,var(--sds-accent) 72%,var(--sds-border));background:linear-gradient(180deg,color-mix(in srgb,var(--sds-bg) 72%,var(--sds-accent)) 0%,color-mix(in srgb,var(--sds-bg) 84%,#12283d) 46%,rgb(12 26 39) 100%);}
.sds-schedule .sds-week--allstar::after{height:46px;box-shadow:0 0 14px color-mix(in srgb,var(--sds-accent) 48%,transparent)}
.sds-schedule .sds-week--allstar .sds-week-top{flex-direction:column;align-items:flex-start;justify-content:center;gap:7px}
.sds-schedule .sds-allstar-pill{display:inline-flex;max-width:100%;align-items:center;gap:4px;padding:4px 7px;border:1px solid color-mix(in srgb,var(--sds-accent) 72%,transparent);border-radius:4px;background:color-mix(in srgb,var(--sds-accent) 14%,#08131f);font:800 11px/1.2 'Barlow Condensed',Arial,sans-serif;letter-spacing:.12em;color:var(--sds-accent);white-space:nowrap}
.sds-schedule .sds-car{display:flex;align-items:baseline;gap:6px;max-width:100%;color:color-mix(in srgb,var(--sds-accent) 72%,white);font:600 16px/1.2 'Barlow Condensed',Arial,sans-serif;letter-spacing:.018em;overflow-wrap:anywhere}
.sds-schedule .sds-car-label{font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--sds-accent);white-space:nowrap;font-size:12px}
@media(max-width:800px){.sds-schedule .sds-car{font-size:14px}.sds-schedule .sds-allstar-pill{font-size:10px;padding:3px 5px}}
@media(max-width:560px){.sds-schedule .sds-track-block{grid-column:2;grid-row:3;gap:4px}.sds-schedule .sds-car{flex-wrap:wrap;gap:3px 6px}.sds-schedule .sds-week--allstar .sds-week-top{gap:5px}}


/* v2.6 — Click a race to view its complete SimRacerHub results. */
.sds-schedule .sds-week--clickable{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.sds-schedule .sds-week--clickable:hover{border-color:var(--sds-accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 10px 24px rgba(0,0,0,.35)}
.sds-schedule .sds-week--clickable:focus-visible{outline:2px solid var(--sds-accent);outline-offset:3px}
.sds-schedule .sds-view-results{display:flex;gap:7px;align-items:center;color:var(--sds-accent);font:700 12px/1.1 'Barlow Condensed',Arial,sans-serif;letter-spacing:.12em;margin-top:5px}
.sds-schedule .sds-view-results span{font-size:16px;line-height:1}
.sds-schedule .sds-results-dialog{width:min(94vw,980px);max-height:88dvh;overflow:auto;box-sizing:border-box;margin:auto;padding:0;border:1px solid #6c859d;border-radius:16px;background:linear-gradient(180deg,#132639 0%,#0c1a27 100%);color:#eff6ff;box-shadow:0 24px 75px rgba(0,0,0,.65);font-family:'Barlow Condensed',Arial,sans-serif}
.sds-schedule .sds-results-dialog:not([open]){display:none}
.sds-schedule .sds-results-dialog::backdrop{background:rgba(0,6,13,.80);backdrop-filter:blur(5px)}
.sds-schedule .sds-results-dialog__header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 28px 20px;border-bottom:1px solid #4b6278;background:linear-gradient(180deg,#172f45,#102032)}
.sds-schedule .sds-results-dialog__eyebrow{color:var(--sds-accent);font-size:12px;font-weight:800;letter-spacing:.18em}
.sds-schedule .sds-results-dialog__title{margin:4px 0!important;padding:0!important;color:#fff!important;font:italic 400 clamp(26px,4vw,42px)/1.1 'Racing Sans One',Impact,sans-serif!important;text-transform:uppercase}
.sds-schedule .sds-results-dialog__subtitle{margin:4px 0 0!important;color:#c3d3e3;font-size:16px}
.sds-schedule .sds-results-dialog__close{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;padding:0;border:1px solid #faaf66;border-radius:8px;background:#f79838;color:#0b1723;font:700 29px/1 Arial,sans-serif;cursor:pointer}
.sds-schedule .sds-results-dialog__close:hover{background:#ffc17d}
.sds-schedule .sds-results-dialog__close:focus-visible{outline:3px solid white;outline-offset:2px}
.sds-schedule .sds-results-dialog__body{padding:22px 26px 28px;min-height:120px;color:#cedceb}
.sds-schedule .sds-results-status{padding:24px 12px;text-align:center;font-size:20px}
.sds-schedule .sds-results-winner{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;margin-bottom:16px;border:1px solid rgba(247,152,56,.45);border-radius:9px;background:rgba(247,152,56,.08);color:#fff;font-size:22px}
.sds-schedule .sds-results-winner-label{color:#f79838;letter-spacing:.12em;font-size:14px;font-weight:800}
.sds-schedule .sds-results-table-scroll{overflow-x:auto;border:1px solid #4c677f;border-radius:10px}
.sds-schedule .sds-results-table{width:100%;min-width:530px;border-collapse:collapse;color:#ebf4fd;font-family:'Barlow Condensed',Arial,sans-serif;font-size:18px}
.sds-schedule .sds-results-table thead th{position:sticky;top:0;background:#233d55;color:#e4effa;text-align:left;font-size:13px;letter-spacing:.12em;padding:12px;font-weight:800}
.sds-schedule .sds-results-table th:first-child,.sds-schedule .sds-results-table td:first-child{text-align:center;width:62px}
.sds-schedule .sds-results-table td{padding:11px 12px;border-top:1px solid rgba(115,146,176,.27)}
.sds-schedule .sds-results-table tbody tr:nth-child(odd){background:rgba(255,255,255,.028)}
.sds-schedule .sds-results-table tbody tr:first-child{background:rgba(247,152,56,.10)}
.sds-schedule .sds-results-table tbody tr:first-child td:first-child{color:#f79838;font-weight:800}
.sds-schedule .sds-results-table tbody td:nth-child(n+3){font-variant-numeric:tabular-nums}
.sds-schedule .sds-results-meta{font-size:13px;color:#93aec6;margin-top:11px}
@media(max-width:560px){.sds-schedule .sds-results-dialog{width:calc(100vw - 16px);max-height:94dvh}.sds-schedule .sds-results-dialog__header{padding:17px}.sds-schedule .sds-results-dialog__body{padding:14px}.sds-schedule .sds-view-results{font-size:11px}}

/* v2.8 — Historical season results archive styled to match the current schedule. */
.sds-schedule .sds-archive{margin-top:44px;min-width:0}
.sds-schedule .sds-archive-heading{margin-bottom:16px}
.sds-schedule .sds-archive-status{margin:12px 0 20px;color:var(--sds-label);font:500 19px/1.4 'Barlow Condensed',Arial,sans-serif}
.sds-schedule .sds-archive-season{margin:0 0 12px;border:1px solid var(--sds-border);border-radius:var(--sds-radius);background:linear-gradient(180deg,#132639 0%,#101f30 60%,#0c1a27 100%);overflow:hidden}
.sds-schedule .sds-archive-season-heading{display:flex;align-items:center;gap:16px;min-height:76px;padding:16px 22px;cursor:pointer;list-style:none;transition:background .2s ease;border-left:4px solid var(--sds-accent)}
.sds-schedule .sds-archive-season-heading::-webkit-details-marker{display:none}
.sds-schedule .sds-archive-season-heading:hover{background:rgba(255,255,255,.035)}
.sds-schedule .sds-archive-season-heading:focus-visible{outline:2px solid var(--sds-accent);outline-offset:-4px}
.sds-schedule .sds-archive-season-number{color:var(--sds-accent);font:italic 400 30px/1 'Racing Sans One',Impact,sans-serif;white-space:nowrap}
.sds-schedule .sds-archive-season-meta{color:var(--sds-label);display:flex;flex-wrap:wrap;gap:8px 18px;margin-left:auto;font:600 16px/1.25 'Barlow Condensed',Arial,sans-serif;letter-spacing:.08em}
.sds-schedule .sds-archive-caret{color:var(--sds-accent);font-size:30px;line-height:1;transform:rotate(0);transition:transform .2s ease}
.sds-schedule .sds-archive-season[open] .sds-archive-caret{transform:rotate(180deg)}
.sds-schedule .sds-archive-races{padding:14px!important;border-top:1px solid rgba(124,153,179,.34)}
.sds-schedule .sds-archive-race .sds-track{color:var(--sds-track)}
.sds-schedule .sds-archive-race .sds-archive-winner-label{font:700 12px/1 'Barlow Condensed',Arial,sans-serif;letter-spacing:.16em;color:var(--sds-accent)}
.sds-schedule .sds-archive-trophy{grid-column:5;position:relative;z-index:1;justify-self:center;color:var(--sds-accent);font-size:32px;opacity:.50;filter:grayscale(1)}
.sds-schedule .sds-archive-retry{display:inline-flex;padding:8px 15px;margin-bottom:16px;border:1px solid var(--sds-accent);background:#0c1a27;color:var(--sds-accent);border-radius:8px;cursor:pointer;font:700 15px 'Barlow Condensed',Arial,sans-serif}
@media(max-width:800px){.sds-schedule .sds-archive-trophy{grid-column:5;font-size:26px}.sds-schedule .sds-archive-season-number{font-size:26px}}
@media(max-width:560px){.sds-schedule .sds-archive-season-heading{min-height:65px;padding:12px;gap:8px}.sds-schedule .sds-archive-season-number{font-size:23px}.sds-schedule .sds-archive-season-meta{font-size:12px;gap:2px 8px}.sds-schedule .sds-archive-races{padding:8px!important}.sds-schedule .sds-archive-trophy{grid-column:3;grid-row:1/4;font-size:24px}.sds-schedule .sds-archive{margin-top:30px}}
@media(prefers-reduced-motion:reduce){.sds-schedule .sds-archive-caret{transition:none}}
