/* Generated by .tools/generate-public.mjs. Scoped to live racing data; existing chrome stays untouched. */
@scope ([data-live-page]) {
/* styles.css */




/* LiveLaps brand palette, aligned with sites.livelaps.com. */
:scope{--navy:#10213a;--navy-deep:#0c1729;--navy-raised:#192e4b;--navy-border:#3b506d;--navy-rgb:16 33 58;--brand-soft:#edf2f6;--brand-border:#c4d0de;--canvas:#f6f8fb;--surface-soft:#edf2f8;--text-secondary:#34455e;--muted:#536179;--text-subtle:#627188;--on-dark:#d7e2f2;--on-dark-muted:#b2c2d9;--line:#dce4ed;--border-strong:#bccbdd;--white:#fff;--header-height:84px;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{margin:0;background:var(--navy);color:var(--white);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}svg{width:22px;height:22px;flex:none}img{display:block;max-width:100%}button{cursor:pointer}button[hidden],[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}h2{font-size:clamp(38px,4.3vw,64px);line-height:1.06;letter-spacing:-.055em}::selection{background:var(--brand);color:var(--white)}:focus-visible{outline:3px solid var(--brand);outline-offset:6px}.button-orange:focus-visible,.closing :focus-visible{outline-color:#fff}.wrap{width:calc(100% - 112px);max-width:1328px;margin-inline:auto}.skip-link{position:fixed;top:8px;left:12px;z-index:100;background:var(--brand);color:var(--white);padding:12px 20px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:30;height:var(--header-height);background:var(--navy);border-bottom:1px solid #ffffff17;container-type:inline-size}.header-inner{height:100%;display:flex;align-items:center;gap:36px}.brand{flex-shrink:0}.brand img{width:198px;height:auto}.desktop-nav{display:flex;gap:28px;align-items:center;margin-left:auto}.desktop-nav a,.sign-in{font-size:14px;font-weight:500;white-space:nowrap;transition:color .2s}.desktop-nav a:hover,.sign-in:hover{color:var(--brand)}.header-actions{display:flex;align-items:center;gap:26px;margin-left:22px}.sign-in{display:flex;gap:10px;align-items:center}.sign-in svg{width:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:54px;padding:17px 23px;font-size:15px;font-weight:600;border:1px solid transparent;border-radius:3px;transition:background .2s,color .2s,border-color .2s,transform .2s}.button svg{width:20px;height:20px;transition:transform .2s}.button:hover svg{transform:translateX(3px)}.button-orange{background:var(--brand);color:var(--white)}.button-orange:hover{background:var(--brand-hover)}.button-small{min-height:43px;padding:11px 16px;font-size:14px;gap:19px}.button-small svg{width:17px;height:17px}.button-ghost{border-color:#ffffff50;background:rgb(var(--navy-rgb) / 0.271);color:white}.button-ghost:hover{background:#ffffff13;border-color:var(--line)}.button-dark{background:var(--navy);color:white}.button-dark:hover{background:var(--navy-raised)}.mobile-menu{display:none}
.hero{position:relative;isolation:isolate;min-height:710px;height:calc(100svh - var(--header-height));max-height:900px;overflow:hidden;background:var(--navy-deep)}.hero-art,.hero-shade{position:absolute;inset:0;z-index:-2;overflow:hidden}.hero-image{height:100%;width:100%;object-fit:cover;object-position:70% 50%;transform:scale(1.015);transform-origin:70% 55%}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(12,23,41,.92) 0%,rgba(12,23,41,.75) 27%,rgba(12,23,41,.12) 65%,rgba(12,23,41,0) 100%),linear-gradient(0deg,rgb(var(--navy-rgb) / 0.851),transparent 25%)}.hero-content{padding-top:108px;position:relative}.eyebrow{font-size:12px;letter-spacing:.15em;font-weight:600;line-height:1.6;display:flex;align-items:center;gap:12px;color:var(--text-secondary)}.eyebrow.light{color:var(--on-dark)}.accent-rule{display:inline-block;width:26px;height:2px;background:var(--brand);flex:none}.hero h1{font-size:clamp(68px,7.4vw,112px);letter-spacing:-.065em;line-height:1.01;margin:29px 0 28px;max-width:780px}.hero h1 span{color:var(--brand)}.hero-description{font-size:17px;line-height:1.7;color:var(--on-dark);letter-spacing:-.015em}.hero-actions{display:flex;gap:12px;margin-top:33px}.hero-bottom{position:absolute;bottom:34px;left:0;right:0;display:flex;align-items:center;justify-content:space-between}.explore-down{display:flex;align-items:center;gap:13px;font-size:12px;font-weight:600;letter-spacing:.15em;color:var(--on-dark)}.down-circle{display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff38;border-radius:50%;font-size:16px;font-weight:400}.explore-down:hover{color:white}
.quick-links{background:var(--navy-raised);border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff16}.quick-links-inner{display:grid;grid-template-columns:repeat(3,1fr)}.quick-links a{padding:30px 30px 30px 0;display:flex;align-items:center;gap:23px;min-width:0}.quick-links a+a{padding-left:35px;border-left:1px solid #ffffff16}.quick-number{font-size:13px;color:var(--muted);align-self:flex-start;line-height:19px;font-variant-numeric:tabular-nums}.quick-links small{display:block;font-size:12px;letter-spacing:.13em;color:var(--on-dark-muted);font-weight:500;margin:0 0 10px}.quick-links strong{font-size:20px;font-weight:500;letter-spacing:-.03em}.quick-links svg{margin-left:auto;width:24px;color:var(--brand);transition:transform .2s}.quick-links a:hover svg{transform:translate(3px,-3px)}.quick-links a:hover strong{color:var(--brand)}
.section-light{background:var(--canvas);color:var(--navy);color-scheme:light}.platform{padding:112px 0 104px}.section-heading{display:grid;grid-template-columns:1.25fr 1fr;align-items:end;gap:90px;margin-bottom:64px}.section-heading h2{margin-top:26px}.section-intro{font-size:17px;line-height:1.75;color:var(--muted);max-width:410px;padding-bottom:5px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.feature{padding:34px 48px 38px 0;border-bottom:1px solid var(--line);display:block;transition:background .2s}.feature:nth-child(even){padding-left:48px;padding-right:0;border-left:1px solid var(--line)}.feature:nth-child(n+3){padding-top:38px}.feature-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:36px}.feature-number{font-size:12px;font-weight:500;letter-spacing:.13em;color:var(--muted)}.feature-top svg{width:21px;height:21px;transition:transform .2s}.feature h3{font-size:31px;line-height:1.15;letter-spacing:-.045em;margin-bottom:18px}.feature p{font-size:15px;line-height:1.8;color:var(--muted);max-width:405px;min-height:76px}.text-link{display:inline-flex;align-items:center;gap:28px;font-size:14px;font-weight:600}.text-link svg{width:20px;height:20px;transition:transform .2s}.feature .text-link{margin-top:22px}.feature:hover .feature-top svg{transform:translate(3px,-3px);color:var(--brand-strong)}.feature:hover .text-link svg,.text-link:hover svg{transform:translateX(4px)}
.scoring-section{display:grid;grid-template-columns:1fr 1fr;min-height:635px;background:var(--navy-raised)}.scoring-image{position:relative;overflow:hidden;min-height:570px}.scoring-image>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;filter:saturate(.75);object-position:51% 50%}.scoring-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgb(var(--navy-rgb) / 0.733),transparent 50%)}.photo-caption{position:absolute;bottom:32px;left:40px;right:30px;z-index:1;display:flex;align-items:center;gap:12px;font-size:12px;font-weight:500;letter-spacing:.12em;line-height:1.6}.caption-rule{height:1px;width:25px;background:var(--white)}.scoring-copy{padding:80px clamp(35px,5.5vw,88px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.scoring-copy h2{margin:26px 0 25px;font-size:clamp(38px,4vw,59px)}.scoring-copy>p:not(.eyebrow){font-size:16px;line-height:1.85;color:var(--on-dark-muted);max-width:460px}.scoring-points{padding:0;margin:28px 0 33px;list-style:none;display:grid;gap:15px}.scoring-points li{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.6;color:var(--on-dark)}.scoring-points svg{color:var(--brand);height:16px;width:16px;margin-top:1px}.light-link{color:white}.light-link svg{color:var(--brand)}
.community{padding:112px 0 118px}.community-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:100px}.community-heading h2{margin:26px 0}.community-heading>p:last-child{font-size:16px;line-height:1.9;color:var(--muted)}.audience{min-width:0}.audience-tabs{display:flex;border-bottom:1px solid var(--line);gap:28px;margin-bottom:35px}.audience-tabs button{color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:14px;white-space:nowrap;padding:0 0 17px}.audience-tabs button[aria-selected=true]{color:var(--navy);border-color:var(--brand);font-weight:600}.audience-tabs button:hover{color:var(--navy)}.audience-panel{min-height:360px}.panel-label{font-size:12px;letter-spacing:.13em;color:var(--muted);font-weight:500}.audience-panel h3{font-size:38px;letter-spacing:-.045em;line-height:1.1;margin:20px 0}.audience-panel>p:not(.panel-label){font-size:15px;line-height:1.85;color:var(--muted);max-width:470px;min-height:104px}.audience-panel .button{margin-top:22px;font-size:14px}.audience-secondary{display:flex;align-items:center;gap:20px;font-size:13px;margin-top:24px;width:fit-content}.audience-secondary svg{height:15px;width:15px}.audience-secondary:hover{text-decoration:underline;text-underline-offset:5px}
.company{padding:90px 0 100px;position:relative;overflow:hidden;background:var(--navy);border-top:1px solid #ffffff15}.company:before{content:'';position:absolute;width:390px;height:700px;border:1px solid #ffffff08;transform:rotate(38deg);left:-80px;top:10px;pointer-events:none}.company-inner{display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:start}.company .eyebrow{padding-top:8px}.company h2{font-size:clamp(37px,4.2vw,62px)}.company p:not(.eyebrow){max-width:660px;font-size:16px;line-height:1.85;color:var(--on-dark-muted);margin:28px 0}.company .text-link{margin-top:5px}.closing{background:var(--brand);color:var(--navy);padding:65px 0 70px}.closing-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}.closing .eyebrow{color:var(--navy);font-size:12px;margin-bottom:18px}.closing h2{font-size:clamp(36px,4.3vw,62px);letter-spacing:-.06em}.closing-actions{display:flex;flex-direction:column;align-items:center;gap:20px}.closing-actions .button{min-width:245px;justify-content:space-between}.contact-link{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500}.contact-link svg{width:17px;height:17px}.contact-link:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer{padding:69px 0 25px}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:50px;padding-bottom:63px}.footer-brand img{width:218px;height:auto}.footer-brand p{font-size:14px;color:var(--text-subtle);margin-top:20px}.footer-top nav{display:flex;flex-direction:column;gap:14px;align-items:flex-start}.footer-top h2{font-size:12px;letter-spacing:.14em;color:var(--muted);font-weight:500;margin:0 0 10px}.footer-top nav a{font-size:13px;color:var(--on-dark);display:flex;align-items:center;gap:22px}.footer-top nav a svg{width:14px;height:14px}.footer-top a:hover{color:var(--brand)}.footer-bottom{border-top:1px solid #ffffff1a;padding-top:25px;display:flex;justify-content:space-between;align-items:center;gap:25px;color:var(--text-subtle);font-size:12px}.footer-bottom>div{display:flex;gap:26px}.footer-bottom a{display:flex;align-items:center;gap:8px}.footer-bottom svg{width:12px;height:12px}.footer-bottom a:hover{color:#fff}
@media(min-width:1600px){.hero-content{padding-top:130px}.hero h1{margin-top:36px}.hero-description{font-size:19px}.hero-actions{margin-top:40px}}
/* The header's rules are @container queries on .site-header (its container-type is set with its other rules), so they follow the width the header really has: a classic scrollbar takes 15px of the window and @media cannot see it. Without a scrollbar the header is as wide as the window, so every breakpoint keeps its old pixel value. The rules that must not reach the phone menu sit in @media(min-width:761px). */
@container (max-width:1180px){.header-inner{gap:24px}.brand img{width:170px}.desktop-nav{gap:20px}.header-actions{margin-left:0;gap:20px}.desktop-nav a,.sign-in{font-size:14px}}
@container (max-width:980px){.desktop-nav{gap:22px}.desktop-nav a[href='#platform']{display:none}.header-inner{gap:25px}.header-actions{gap:20px}.header-actions .sign-in svg{display:none}.brand img{width:155px}.button-small{gap:14px}}
@media(max-width:1180px){.wrap{width:calc(100% - 72px)}.hero{min-height:660px}.hero-content{padding-top:106px}.hero h1{font-size:88px}.section-heading{gap:55px}.community-grid{gap:65px}.scoring-copy{padding:65px 42px}.scoring-points li{font-size:12px}.footer-top{gap:35px}.company-inner{grid-template-columns:.8fr 2fr}}
@media(max-width:980px){:scope{--header-height:76px}.hero h1{font-size:78px}.hero-image{object-position:61% 50%}.hero-shade{background:linear-gradient(90deg,rgb(var(--navy-rgb) / 0.949),rgb(var(--navy-rgb) / 0.749) 32%,rgb(var(--navy-rgb) / 0.063) 100%),linear-gradient(0deg,rgb(var(--navy-rgb) / 0.788),transparent 25%)}.feature h3{font-size:27px}.feature:nth-child(even){padding-left:32px}.feature{padding-right:32px}.quick-links a{gap:15px;padding-right:20px}.quick-links a+a{padding-left:24px}.quick-links strong{font-size:18px}.quick-links small{font-size:12px}.quick-links svg{width:20px}.community-grid{gap:45px;grid-template-columns:1fr 1.15fr}.audience-tabs{gap:23px}.community-heading .eyebrow{font-size:12px}.scoring-section{grid-template-columns:.9fr 1fr}.scoring-copy{padding:60px 32px}.scoring-copy .eyebrow{font-size:12px}.scoring-copy>p:not(.eyebrow){font-size:14px}.scoring-points li{font-size:12px}.photo-caption{left:25px;bottom:25px;font-size:12px}.scoring-image{min-height:600px}}
@media(max-width:760px){:scope{--header-height:72px}.wrap{width:calc(100% - 40px)}.header-inner{gap:16px}.brand img{width:155px}.desktop-nav,.header-actions .sign-in{display:none}.header-actions{margin-left:auto}.button-small{min-height:38px;padding:10px 13px;font-size:12px;gap:12px}.button-small svg{width:14px;height:14px}.mobile-menu{display:block}.mobile-menu summary{list-style:none;display:flex;flex-direction:column;justify-content:center;gap:6px;width:28px;height:38px;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.menu-line{width:23px;height:1px;background:var(--white);transition:transform .2s}.mobile-menu[open] .menu-line:first-child{transform:translateY(3.5px) rotate(45deg)}.mobile-menu[open] .menu-line:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu nav{position:absolute;left:0;right:0;top:71px;background:var(--navy-raised);border-bottom:1px solid #ffffff25;padding:12px 26px 24px;box-shadow:0 25px 40px #0005}.mobile-menu nav a{padding:17px 0;display:flex;justify-content:space-between;border-bottom:1px solid #ffffff15;font-size:16px}.mobile-menu nav a:last-child{color:var(--brand)}.mobile-menu nav svg{width:20px;height:20px}.hero{height:740px;min-height:0;max-height:none}.hero-content{padding-top:67px}.hero h1{font-size:clamp(56px,10.5vw,79px);letter-spacing:-.065em;margin:25px 0 23px}.hero-description{font-size:15px;line-height:1.75}.hero-art{inset:180px -200px 0 -155px}.hero-image{object-fit:cover;object-position:68% 50%}.hero-shade{background:linear-gradient(180deg,var(--navy-deep) 3%,rgb(var(--navy-rgb) / 0.89) 23%,rgb(var(--navy-rgb) / 0.478) 53%,rgb(var(--navy-rgb) / 0) 75%,rgb(var(--navy-rgb) / 0.702)),linear-gradient(90deg,rgb(var(--navy-rgb) / 0.314),transparent 70%)}.hero-content .eyebrow{font-size:12px;letter-spacing:.12em}.hero-actions{gap:10px;margin-top:25px}.hero-actions .button{min-height:47px;padding:14px 17px;font-size:13px;gap:22px}.hero-actions svg{width:17px;height:17px}.hero-bottom{bottom:22px}.explore-down{font-size:12px;gap:8px;letter-spacing:.1em}.down-circle{width:25px;height:25px;font-size:15px}.quick-links-inner{grid-template-columns:1fr}.quick-links a{padding:22px 0;gap:20px}.quick-links a+a{padding:22px 0;border-left:0;border-top:1px solid #ffffff16}.quick-links small{font-size:12px;margin-bottom:5px}.quick-links strong{font-size:19px}.quick-number{align-self:center;font-size:12px}.quick-links svg{width:22px}.platform{padding:72px 0 65px}.section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:37px}.section-heading h2{margin-top:22px}.section-intro{font-size:15px;max-width:460px;line-height:1.8}.eyebrow{font-size:12px;letter-spacing:.12em}h2{font-size:42px;letter-spacing:-.055em}.feature-grid{grid-template-columns:1fr}.feature,.feature:nth-child(even),.feature:nth-child(n+3){border-left:0;padding:28px 0 30px}.feature-top{margin-bottom:25px}.feature-number{font-size:12px}.feature h3{font-size:29px;margin-bottom:16px}.feature p{font-size:14px;min-height:0;max-width:440px}.feature .text-link{margin-top:22px}.scoring-section{grid-template-columns:1fr}.scoring-image{min-height:385px}.scoring-copy{padding:55px 24px 65px}.scoring-copy h2{font-size:45px}.scoring-copy>p:not(.eyebrow){font-size:15px;max-width:500px}.scoring-points li{font-size:13px}.photo-caption{font-size:12px;left:22px}.community{padding:70px 0}.community-grid{grid-template-columns:1fr;gap:40px}.community-heading h2{margin-top:20px;margin-bottom:22px}.community-heading>p:last-child{font-size:15px}.community-heading>p:last-child br{display:none}.community-heading>p:last-child{max-width:330px}.audience-tabs{gap:30px;margin-bottom:28px}.audience-tabs button{font-size:14px}.audience-panel{min-height:360px}.audience-panel h3{font-size:36px}.audience-panel>p:not(.panel-label){min-height:0;font-size:14px}.audience-panel .button{margin-top:23px;min-height:49px}.company{padding:66px 0 72px}.company-inner{grid-template-columns:1fr;gap:26px}.company h2{font-size:40px}.company p:not(.eyebrow){font-size:15px;margin:24px 0}.closing{padding:46px 0 49px}.closing-inner{flex-direction:column;align-items:flex-start;gap:30px}.closing h2{font-size:42px}.closing .eyebrow{font-size:12px;max-width:300px;line-height:1.8}.closing-actions{align-items:flex-start;gap:18px}.closing-actions .button{min-width:230px}.site-footer{padding:49px 0 25px}.footer-top{grid-template-columns:1fr 1fr;gap:40px 30px;padding-bottom:42px}.footer-brand{grid-column:1/-1}.footer-brand img{width:190px}.footer-brand p{font-size:13px}.footer-top h2{font-size:12px}.footer-top nav a{font-size:14px}.footer-bottom{flex-wrap:wrap;gap:22px;line-height:1.6}.footer-note{display:none}.footer-bottom>div{gap:20px}.footer-bottom{font-size:12px}}
@media(max-width:380px){.wrap{width:calc(100% - 32px)}.brand img{width:135px}.header-inner{gap:11px}.button-small{font-size:12px;padding:10px;gap:8px}.hero h1{font-size:54px}.hero-actions .button{padding:14px 13px;gap:15px}.hero-description{font-size:14px}.audience-tabs{gap:24px}.audience-tabs button{font-size:13px}.explore-down{font-size:12px}.quick-links strong{font-size:18px}h2{font-size:37px}.closing h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Lifetime track record: static layout, animated numerals only. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.track-record{padding:91px 0 36px;background:var(--navy)}
.track-record-heading{display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:70px}
.track-record-heading h2{margin-top:25px;font-size:clamp(36px,4.3vw,62px)}
.track-record-intro{max-width:410px;font-size:16px;line-height:1.85;color:var(--on-dark-muted);padding-bottom:3px}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:64px 0 0;padding:0 0 46px;border-bottom:1px solid #ffffff20}
.metric{display:flex;flex-direction:column;min-width:0;padding-right:30px}
.metric+.metric{padding-left:40px;border-left:1px solid #ffffff20}
.metric:last-child{padding-right:0}
.metric dt{margin-top:19px;font-size:14px;line-height:1.5;color:var(--on-dark);font-weight:500}
.metric dd{order:-1;margin:0;color:var(--brand)}
.metric-number{display:block;font-size:clamp(32px,4.6vw,70px);line-height:1.07;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.065em;white-space:nowrap}
.metric-plus{font-size:.55em;vertical-align:.15em;margin-left:.12em;letter-spacing:0}
.track-record-footnote{display:flex;justify-content:space-between;gap:20px;margin-top:23px;font-size:12px;line-height:1.8;letter-spacing:.015em;color:var(--on-dark-muted)}
.track-record-footnote p:first-child{color:var(--on-dark)}
.track-record-footnote span{color:var(--muted);margin:0 10px}
@media(max-width:980px){.track-record{padding-top:75px}.track-record-heading{gap:40px}.track-record-intro{font-size:14px}.metric+.metric{padding-left:24px}.metric{padding-right:18px}.metric dt{font-size:13px}}
@media(max-width:760px){.track-record{padding:64px 0 29px}.track-record-heading{grid-template-columns:1fr;gap:22px}.track-record-heading h2{font-size:40px;margin-top:20px}.track-record-intro{font-size:15px;max-width:470px}.metrics{grid-template-columns:1fr;margin-top:35px;padding-bottom:0}.metric,.metric+.metric,.metric:last-child{padding:26px 0 28px;border-left:0;border-top:1px solid #ffffff20}.metric-number{font-size:clamp(42px,13.6vw,68px)}.metric dt{font-size:14px;margin-top:12px}.track-record-footnote{flex-direction:column;gap:5px;margin-top:21px}.track-record-footnote p:first-child{font-size:12px}}
@media(max-width:380px){.track-record-heading h2{font-size:36px}}

/* Brand treatment: navy framing, clear white surfaces, restrained orange actions. */
.site-header{background:#16233b}
.desktop-nav a:hover,.sign-in:hover,.footer-top a:hover{color:#fff;text-decoration:underline;text-underline-offset:7px}
.button{border-radius:10px}
.button-small{white-space:nowrap}
.button-orange,.button-orange:hover{color:#fff}
.mobile-menu nav a:last-child{color:var(--on-dark)}
.hero h1 span{color:var(--on-dark)}
.hero-description{color:var(--on-dark)}
.hero .eyebrow.light,.scoring-section .eyebrow.light,.company .eyebrow.light{color:var(--on-dark)}
.hero-image{filter:saturate(.7)}
.quick-links{background:var(--navy-raised)}
.quick-links svg,.quick-links a:hover strong,.scoring-points svg,.light-link svg{color:var(--on-dark)}
.quick-number,.quick-links small{color:var(--on-dark-muted)}
.platform,.community{background:var(--white)}
.track-record{background:var(--canvas);color:var(--navy)}
.track-record .eyebrow{color:var(--muted)}
.track-record-intro,.metric dt,.track-record-footnote,.track-record-footnote p:first-child{color:var(--muted)}
.metric dd{color:var(--navy)}
.metrics,.metric+.metric{border-color:var(--line)}
.track-record-footnote span{color:var(--text-subtle)}
.closing{background:var(--surface-soft);color:var(--navy);border-top:1px solid var(--line)}
.closing .eyebrow{color:var(--muted)}
.closing .button-dark{background:var(--brand);color:var(--white)}
.closing .button-dark:hover{background:var(--brand-hover)}
.closing :focus-visible{outline-color:var(--brand)}
.site-footer{background:#16233b}
.footer-brand p,.footer-top h2,.footer-bottom{color:var(--on-dark-muted)}
@media(max-width:760px){.metric,.metric+.metric,.metric:last-child{border-color:var(--line)}}
@media(max-width:380px){.brand img{width:128px}}

/* Company navigation and shared readability pass. */
.platform-menu{position:relative}.platform-menu>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:14px;font-weight:500;white-space:nowrap}.platform-menu>summary::-webkit-details-marker{display:none}.platform-menu>summary>span{font-size:17px;color:var(--on-dark-muted)}.platform-menu[open]>summary>span{transform:rotate(180deg)}.platform-menu-panel{position:absolute;top:35px;right:-24px;width:290px;padding:22px;background:#162b46;border:1px solid #40506a;border-radius:6px;box-shadow:0 20px 45px #0005}.platform-menu-panel>span{display:block;color:var(--on-dark-muted);font-size:12px;letter-spacing:.12em;margin:0 0 14px}.platform-menu-panel>a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-top:1px solid #ffffff15;font-size:14px}.platform-menu-panel svg{width:16px;height:16px;color:#b2c2d9}.desktop-nav .platform-menu-panel>a:hover{color:white}.desktop-nav .platform-menu-panel>a:hover svg{color:#60c9de}.footer-top nav a{font-size:14px;line-height:1.6}.footer-top h2{font-size:12px;color:var(--on-dark-muted)}.footer-brand p,.footer-bottom{color:var(--on-dark-muted)}.footer-bottom{font-size:12px}.footer-legal{flex-wrap:wrap}.mobile-menu nav{max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain}
@media(min-width:761px){@container (max-width:980px){.header-inner{gap:17px}.desktop-nav{gap:16px}.desktop-nav a,.platform-menu>summary{font-size:13px}.header-actions{gap:14px}.header-actions .sign-in{font-size:13px}.header-actions .button-small{font-size:13px;padding:10px 12px;gap:10px}.brand img{width:142px}}}
@media(max-width:760px){.mobile-menu nav a{padding:13px 0;font-size:15px}.footer-bottom{gap:18px}.footer-bottom>div{gap:18px}.footer-legal{width:100%}}
/* Homepage "Next up" rail, restored from sites.livelaps.com. */
.next-up{background:var(--white);color:var(--navy);padding:72px 0 76px;color-scheme:light}.next-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.next-heading h2{font-size:clamp(30px,3.2vw,44px);letter-spacing:-.04em}.next-heading p{margin-top:10px;font-size:16px;line-height:1.6;color:var(--muted)}.next-heading .text-link{gap:12px;flex:none}.next-heading .text-link svg{width:18px}.next-empty{font-size:16px;color:var(--muted)}
.next-featured{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:26px 30px;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:12px;background:var(--canvas)}.next-featured-copy{min-width:0}.next-badge{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--white);border:1px solid var(--line);color:var(--text-secondary)}.next-featured h3{margin-top:12px;font-size:clamp(22px,2.2vw,30px);line-height:1.15;letter-spacing:-.03em}.next-featured h3 a:hover{color:var(--brand)}.next-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px;font-size:15px;color:var(--muted)}.next-meta span,.next-card-body>span{display:inline-flex;align-items:center;gap:7px}.next-meta svg{width:17px;height:17px}
.next-featured-actions{display:flex;align-items:center;gap:22px;flex:none}.next-countdown{padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:var(--white)}.next-countdown small{display:block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.next-countdown div{display:flex;gap:14px;margin-top:4px;font-size:14px;color:var(--muted)}.next-countdown strong{font-size:24px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;margin-right:1px}.next-buttons{display:flex;gap:10px}.button-light{background:var(--white);color:var(--navy);border-color:var(--line)}.button-light:hover{border-color:var(--navy)}
.next-rail{position:relative;margin-top:22px}.next-track{list-style:none;margin:0;padding:2px 2px 8px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px)/3);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.next-track::-webkit-scrollbar{display:none}.next-track li{scroll-snap-align:start}
.next-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:300px;border-radius:14px;overflow:hidden;color:var(--white);background:linear-gradient(140deg,var(--navy-raised),var(--navy-deep))}.next-card-media{position:absolute;inset:0}.next-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.next-card:hover .next-card-media img{transform:scale(1.04)}.next-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgb(var(--navy-rgb) / .92))}.next-card-body{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px}.next-card-body strong{font-size:19px;line-height:1.2;letter-spacing:-.02em}.next-card-body>span{font-size:14px;color:var(--on-dark)}.next-card-body svg{width:15px;height:15px}.next-card-foot{justify-content:space-between;width:100%;margin-top:4px}.next-card-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--white)}.next-card-link svg{width:16px;transition:transform .2s}.next-card:hover .next-card-link svg{transform:translateX(3px)}
.next-scroll{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:40px;height:40px;margin-top:-24px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--navy);box-shadow:0 6px 18px #10213a22}.next-scroll.prev{left:-20px}.next-scroll.next{right:-20px}.next-scroll svg{width:18px}.next-scroll:hover{border-color:var(--navy)}
@media(max-width:980px){.next-featured{flex-direction:column;align-items:flex-start}.next-track{grid-auto-columns:calc((100% - 20px)/2)}}
@media(max-width:760px){.next-up{padding:52px 0 56px}.next-heading{flex-direction:column;align-items:flex-start}.next-featured{padding:22px 20px}.next-featured-actions{flex-direction:column;align-items:stretch;width:100%}.next-countdown div{justify-content:space-between}.next-buttons .button{flex:1}.next-track{grid-auto-columns:82%}.next-card{height:260px}.next-scroll{display:none}}
/* Header tools: support chat and colour theme. */
.header-tools{display:flex;align-items:center;gap:4px}.header-icon{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:8px;background:none;color:var(--white)}.header-icon:hover{background:#ffffff14}.header-icon:disabled{opacity:.45;cursor:default}.header-icon svg{width:19px;height:19px}
.tool-menu{position:relative}.tool-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:168px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--navy);box-shadow:0 18px 40px #0c172933}.tool-menu-panel button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:7px;background:none;font-size:14px;font-weight:500;color:inherit;text-align:left}.tool-menu-panel button:hover,.tool-menu-panel button:focus-visible{background:var(--canvas);outline:none}.tool-menu-panel button[aria-checked=true]{background:var(--surface-soft);font-weight:600}.tool-menu-panel svg{width:17px;height:17px;color:var(--muted)}
@media(max-width:760px){.header-actions{gap:8px}.header-actions .button-orange{display:none}.header-icon{width:36px;height:36px}}

/* Dark theme. Dark sections already use the navy palette; only the light containers flip. */
.dark :scope{color-scheme:dark}.dark :scope body{background:#0a1220}
.dark :scope :is(.section-light,.track-record,.closing,.tool-menu-panel,.livelaps-page.events-page .events-hero){color-scheme:dark}
.dark :scope :is(.section-light,.track-record,.closing) .button-orange{color:#fff}.dark :scope :is(.section-light,.track-record,.closing) .button-dark{background:#e8eef7;color:#0c1729}
.dark :scope .community,.dark :scope .next-up{background:var(--white)}
.dark :scope :is(.section-light,.track-record,.closing) :is(.page-button,.race-card,.filter-trigger,.catalog-image,.detail-panel,.search-panel,.event-row,.event-tabs a[aria-current],.calendar-link,.filter-popover,.lb-scroll,.leaderboard thead th,.race-head-card,.company-card,.rider-compare,.race-view-utilities a,.race-view-utilities button,.next-badge,.next-countdown,.button-light,.calendar-step,.calendar-today,.catalog-card,.month-calendar,.calendar-day,.race-table-scroll,.timing-number,.sticky-rider,.race-data-table tbody th,.race-data-table td,.report-overview,.report-pace-bars,.report-breakdown,.analytics-sort a){background-color:var(--white)}
.dark :scope .lb-change.up{color:#4ade80}.dark :scope .lb-change.down{color:#f87171}.dark :scope .lb-fastest{color:#c4b5fd}.dark :scope .lb-entry:hover .lb-row td{background:#18263c}
.dark :scope :is(.section-light) .cell-personal-best{background-color:#123a3a}.dark :scope .calendar-event.live{background-color:#16322a}

/* Tints and accent text are mixed against the theme: unchanged in light, deep tints and lighter accents in dark. */
:scope{--tint-keep:100%;--ink-keep:100%;--ink-bg:#10213a}.dark :scope :is(.section-light,.track-record,.closing,.tool-menu-panel,.livelaps-page.events-page .events-hero){--tint-keep:18%;--ink-keep:42%}
.dark :scope .race-page{--best:#5fd3dc;--best-soft:#123540}.dark :scope .compare-race-number{opacity:.35}
.header-language{width:auto;gap:6px;padding:0 9px;display:inline-flex;align-items:center}.header-language span{font-size:13px;font-weight:600;letter-spacing:.02em}
.tool-menu-panel a{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:7px;font-size:14px;font-weight:500;color:inherit}.tool-menu-panel a:hover,.tool-menu-panel a:focus-visible{background:var(--canvas);outline:none}.tool-menu-panel [aria-checked=true]{background:var(--surface-soft);font-weight:600}
@media(max-width:380px){.header-language span{display:none}}
.not-found{min-height:60vh;padding:96px 0 110px}.not-found .wrap{max-width:720px}.not-found-code{font-size:15px;font-weight:700;letter-spacing:.1em;color:var(--brand)}.not-found h1{margin-top:10px;font-size:clamp(34px,4vw,52px);line-height:1.08;letter-spacing:-.04em;color:var(--navy)}.not-found h1+p{margin-top:16px;font-size:17px;line-height:1.6;color:var(--muted)}.not-found-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.next-links{display:flex;gap:18px;margin-top:10px}.next-links a{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-secondary)}.next-links a:hover{color:var(--brand)}.next-links svg{width:14px;height:14px}
@media(max-width:760px){.audience-tabs{flex-wrap:wrap;column-gap:20px;row-gap:4px}}
/* Loading skeletons for the events, series, memberships, calendar and race pages. */
.page-loading{min-height:70vh;padding:0 0 64px}.sk-page{animation:sk-fade .3s ease-out}.sk{display:block;width:var(--w,100%);max-width:100%;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--surface-soft) 0%,var(--canvas) 40%,var(--surface-soft) 80%) 0 0/300% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}
.sk-head{padding:22px 0 26px;display:grid;gap:12px}.sk-title{height:38px;border-radius:9px}.sk-line-sm{height:12px}.sk-line{height:15px}.sk-line-lg{height:20px}
.sk-panel,.sk-card{border:1px solid var(--line);border-radius:12px;background:var(--white)}.sk-panel{padding:14px;display:grid;gap:14px}.sk-input{height:44px;border-radius:9px}.sk-solo{margin-top:14px}.sk-row{display:flex;gap:10px;flex-wrap:wrap}.sk-chip{height:36px;border-radius:9px}.sk-tabs{margin:18px 0 14px}.sk-button{height:40px;border-radius:9px}
.sk-event{display:flex;align-items:center;gap:18px;padding:18px 20px;margin-top:12px}.sk-date{height:52px}.sk-poster{height:64px;border-radius:9px}.sk-stack{flex:1;display:grid;gap:9px;min-width:0}.sk-end{margin-left:auto}
.sk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.sk-tile{padding:20px;display:grid;gap:12px}.sk-icon{width:44px;height:44px;border-radius:10px}
.sk-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;background:var(--line)}.sk-cell{height:96px;border-radius:0}
.sk-detail{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px;margin-top:10px}.sk-race{display:grid;gap:10px;padding:18px;margin-top:6px}.sk-side{padding:20px;display:grid;gap:12px;align-self:start}
.sk-racehead{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;margin-top:34px}
.sk-table{margin-top:4px;padding:6px 0}.sk-trow{display:flex;align-items:center;gap:22px;padding:14px 18px;border-bottom:1px solid var(--line)}.sk-trow:last-child{border-bottom:0}.sk-trow .sk-stack{max-width:220px}
.loading-fallback{padding-top:10px}.page-loading.load-failed .sk-page{display:none}.page-loading.load-failed #loading-message{position:static;width:auto;height:auto;clip:auto;clip-path:none;margin:48px 0 16px;font-size:18px;color:var(--navy);white-space:normal}
@keyframes sk-shimmer{from{background-position:100% 0}to{background-position:0 0}}@keyframes sk-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.sk,.sk-page{animation:none}}
@media(max-width:980px){.sk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sk-detail{grid-template-columns:1fr}.sk-side{display:none}}
@media(max-width:760px){.sk-grid{grid-template-columns:1fr}.sk-tile:nth-child(n+3){display:none}.sk-poster,.sk-end,.sk-opt{display:none}.sk-cell{height:56px}.sk-racehead{flex-direction:column;align-items:stretch}.sk-trow{gap:14px}}

/* The Explore menu's arrow: a drawn chevron instead of the "⌄" character. */
.site-header .platform-menu>summary{display:inline-flex;align-items:center;gap:8px}.site-header .platform-menu>summary>span{display:inline-block;width:7px;height:7px;margin-top:-4px;font-size:0;line-height:0;color:transparent;border-right:1.6px solid var(--on-dark-muted);border-bottom:1.6px solid var(--on-dark-muted);transform:rotate(45deg);transition:transform .2s,margin .2s}
.site-header .platform-menu[open]>summary>span{transform:rotate(225deg);margin-top:4px}.site-header .platform-menu>summary:hover>span{border-color:var(--brand)}
.dark :scope .button-dark{background:#e8eef7;color:#0c1729}.dark :scope .button-dark:hover{background:#fff}
/* Button icons (js/icons.js): one size, beside the label. */
.ui-icon{width:16px;height:16px;flex:none}
.page-button,.print-button,.race-tools a,.race-tools button,.filter-multi>summary,.platform-menu>summary{display:inline-flex;align-items:center;gap:6px}
.platform-menu>summary .ui-icon{width:14px;height:14px}
/* "← Series", "← event name", "← Back": the way back at the top of a page, instead of breadcrumbs. */
.back-link{display:inline-flex;align-items:center;gap:8px;max-width:100%;font-size:14px;font-weight:600;color:var(--muted)}
.back-link>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.back-link .ui-icon{width:17px;height:17px}
.back-link:hover{color:var(--brand)}
.events-hero .wrap>.back-link{margin-bottom:28px}
/* A list page has no way back: its title keeps the space the breadcrumb took. */.events-hero:not(:has(.wrap>.back-link)) .wrap{padding-top:44px}@media(max-width:760px){.events-hero:not(:has(.wrap>.back-link)) .wrap{padding-top:28px}}
/* Small tablets (761–840px): the full header fits once its gaps tighten and the button drops its arrow. */@media(min-width:761px){@container (max-width:840px){.header-inner{gap:12px}.desktop-nav{gap:12px}.header-actions{gap:10px}.header-actions .button-orange svg{display:none}}}
/* "Classic LiveLaps" (site.js): on desktop a dropdown after Explore in the main navigation, built with Explore's markup and styles (platform-menu); at the end of the mobile menu, a heading and the same two links. */
.classic-menu .platform-menu-panel{width:340px}.classic-menu .classic-key{display:none;width:19px;height:19px;flex:none}.classic-menu .classic-short{display:none}
/* The trigger shrinks with the room (measured with the support chat that production shows): "Classic LiveLaps", then "Classic" up to 1100px, then only a key up to 850px. */
@media(min-width:761px){@container (max-width:1100px){.classic-menu .classic-long{display:none}.classic-menu .classic-short{display:inline}}}
@media(min-width:761px){@container (max-width:850px){.classic-menu .classic-short{display:none}.classic-menu .classic-key{display:block}}}
@media(min-width:761px){@container (max-width:840px){.header-tools{gap:0}}}
/* French and Spanish words are wider: the key up to 1220px, "Classic" up to 1285px, and the button and Sign in drop their arrows (as they do up to 840px and 980px) up to 1100px. */
@container (min-width:841px) and (max-width:1220px){.classic-menu:not([data-lang=en]) .classic-long,.classic-menu:not([data-lang=en]) .classic-short{display:none}.classic-menu:not([data-lang=en]) .classic-key{display:block}}
@container (min-width:841px) and (max-width:1100px){.site-header:has(.classic-menu:not([data-lang=en])) .header-actions :is(.button-orange,.sign-in) svg{display:none}}
@container (min-width:1221px) and (max-width:1285px){.classic-menu:not([data-lang=en]) .classic-long{display:none}.classic-menu:not([data-lang=en]) .classic-short{display:inline}}
/* Just above 1180px the header's wider spacing leaves "Classic LiveLaps" two pixels short of room. */
@container (min-width:1181px) and (max-width:1220px){.header-actions{margin-left:0}}
/* French and Spanish tablets: Événements, Connexion, Iniciar sesión and the rest are wider still, so the tablet spacing above lasts up to 870px, the language button shows only its globe (its code stays for screen readers) up to 830px, and up to 805px the logo, gaps, icons and button padding shrink a little. */
@container (min-width:841px) and (max-width:870px){.site-header:has(.classic-menu:not([data-lang=en])) .header-inner{gap:12px}.site-header:has(.classic-menu:not([data-lang=en])) .desktop-nav{gap:12px}.site-header:has(.classic-menu:not([data-lang=en])) .header-actions{gap:10px}.site-header:has(.classic-menu:not([data-lang=en])) .header-tools{gap:0}}
@media(min-width:761px){@container (max-width:830px){.site-header:has(.classic-menu:not([data-lang=en])) .header-language{width:38px;padding:0;justify-content:center}.site-header:has(.classic-menu:not([data-lang=en])) .header-language span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}}
@media(min-width:761px){@container (max-width:805px){.site-header:has(.classic-menu:not([data-lang=en])) .header-inner{gap:10px}.site-header:has(.classic-menu:not([data-lang=en])) .desktop-nav{gap:10px}.site-header:has(.classic-menu:not([data-lang=en])) .header-actions{gap:8px}.site-header:has(.classic-menu:not([data-lang=en])) .brand img{width:130px}.site-header:has(.classic-menu:not([data-lang=en])) .header-actions .button-small{padding:10px}.site-header:has(.classic-menu:not([data-lang=en])) .header-icon,.site-header:has(.classic-menu:not([data-lang=en])) .header-language{width:34px}}}
/* The phone menu takes over at a 760px window, but a classic scrollbar leaves the header 746-760px of it: the French and Spanish logo gives up another 10px. */
@media(min-width:761px){@container (max-width:760px){.site-header:has(.classic-menu:not([data-lang=en])) .brand img{width:120px}}}
/* The home page's audience tabs wrap, as they do on phones, when French or Spanish words leave them too little room (and, with a classic scrollbar taking 15px, for another 20px beyond that). */
@media(min-width:761px) and (max-width:840px){.audience-tabs{flex-wrap:wrap;column-gap:20px;row-gap:4px}}
@media(min-width:841px) and (max-width:860px){.audience-tabs{flex-wrap:wrap;row-gap:4px}}
.mobile-menu nav>a:last-of-type{color:var(--on-dark)}.mobile-menu nav .mobile-classic a{color:inherit}.mobile-classic{margin-top:6px}.mobile-classic-heading{display:block;padding:18px 0 4px;color:var(--on-dark-muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}

/* events.css */
.events-page .desktop-nav a[aria-current=page],.events-page .mobile-menu a[aria-current=page]{color:#fff;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}
.events-hero{position:relative;overflow:hidden;isolation:isolate;background:var(--navy-deep);padding:29px 0 66px}
.events-hero-art{position:absolute;inset:0 0 0 37%;z-index:-1}
.events-hero-art img{width:100%;height:100%;object-fit:cover;object-position:80% 47%;opacity:.58}
.events-hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy-deep),transparent 65%),linear-gradient(0deg,rgb(var(--navy-rgb) / 0.439),transparent 50%)}
.events-breadcrumb{display:flex;gap:13px;align-items:center;width:fit-content;font-size:12px;color:var(--on-dark-muted);margin-bottom:33px}
.events-breadcrumb>span:last-child{color:var(--on-dark)}.events-breadcrumb>span:first-child{color:var(--text-secondary)}
.events-hero .eyebrow{font-size:12px}
.events-hero h1{font-size:clamp(50px,5.8vw,84px);line-height:1.02;letter-spacing:-.065em;margin:22px 0 19px}
.events-hero h1>span{color:var(--on-dark)}
.events-hero .wrap>p:last-child{font-size:15px;line-height:1.8;color:var(--on-dark)}
.event-directory{padding:0 0 78px;min-height:650px}
.event-search-form{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) 100px auto;align-items:center;gap:23px;position:relative;margin-top:-24px;padding:27px 28px;background:var(--white);border:1px solid var(--line);box-shadow:0 8px 32px rgb(var(--navy-rgb) / 0.039);border-radius:4px;z-index:1}
.event-search-form label{display:block;font-size:12px;letter-spacing:.15em;font-weight:600;color:var(--muted);margin-bottom:10px}
.event-search-form input,.event-search-form select{font:inherit;font-size:14px;line-height:1.5;color:var(--navy);background:transparent;border:0;width:100%;min-width:0;border-radius:0;min-height:26px;padding:0}
.event-search-form input::placeholder{color:var(--muted);opacity:1}.event-search-form input:focus-visible,.event-search-form select:focus-visible{outline:2px solid var(--brand);outline-offset:5px}
.event-search-field>div{display:flex;align-items:center;gap:11px}
.event-search-field svg{width:20px;height:20px;color:var(--muted)}
.event-filter-field{border-left:1px solid var(--line);padding-left:24px;min-width:0}
.event-search-form select{padding-right:15px;text-overflow:ellipsis}
.event-search-button{min-height:48px;font-size:14px;padding:14px 20px;gap:22px}
.event-search-button:focus-visible{outline-color:var(--brand-strong)}
.event-tools{display:flex;align-items:center;justify-content:space-between;gap:26px;margin-top:34px;border-bottom:1px solid var(--line)}
.event-tabs{display:flex;gap:30px;align-items:stretch;min-width:0}
.event-tabs a{display:flex;align-items:center;gap:8px;padding:0 0 21px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-weight:500}
.event-tabs a[aria-current=page]{color:var(--navy);border-bottom-color:var(--brand);font-weight:600}
.event-tabs a:hover{color:var(--brand-strong)}
.status-dot{width:5px;height:5px;border-radius:50%;background:#2c7958}
.calendar-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;padding-bottom:21px;white-space:nowrap}
.calendar-link svg{width:15px;height:15px}.calendar-link svg:last-child{width:13px;margin-left:7px}
.calendar-link:hover{color:var(--brand-strong)}
.events-list-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:26px;margin:43px 0 25px}
.events-list-heading .eyebrow{font-size:12px;letter-spacing:.12em}
.events-list-heading h2{font-size:34px;letter-spacing:-.045em;margin:14px 0 10px;line-height:1.15}
.events-list-heading h2:focus{outline:none}
.events-list-heading>div>p:last-child{color:var(--muted);font-size:13px;line-height:1.6}
.results-count{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-size:12px;color:var(--muted);line-height:1.6}
.results-count>a{color:var(--brand-strong);text-decoration:underline;text-underline-offset:4px}
.results-count>a span{font-size:16px;margin-left:5px}
.events-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.event-row{display:grid;grid-template-columns:70px minmax(0,1fr) 159px;align-items:center;gap:26px;background:var(--white);border:1px solid var(--line);border-radius:4px;padding:24px 28px;transition:border-color .18s,box-shadow .18s}
.event-row:hover{border-color:var(--border-strong);box-shadow:0 4px 16px rgb(var(--navy-rgb) / 0.024)}
.event-date{display:flex;flex-direction:column;text-align:center;align-self:stretch;justify-content:center;border-right:1px solid var(--line);padding-right:22px;min-height:100px}
.event-date>span{font-size:12px;letter-spacing:.13em;font-weight:600;text-transform:uppercase;color:var(--brand-strong)}
.event-date>strong{font-weight:500;font-size:34px;line-height:1.1;letter-spacing:-.06em;margin:6px 0 5px;font-variant-numeric:tabular-nums}
.event-date>small{font-size:12px;color:var(--muted)}
.event-main{display:flex;align-items:center;gap:23px;min-width:0}
.event-poster{position:relative;display:block;width:90px;height:100px;flex-shrink:0;background:var(--surface-soft);border:1px solid var(--line);border-radius:2px;overflow:hidden}
.poster-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--on-dark-muted);background:linear-gradient(135deg,var(--surface-soft),var(--canvas))}
.poster-fallback svg{width:43px;height:43px}
.event-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--white)}
.event-info{display:block;min-width:0}
.event-promoter{display:block;font-size:12px;line-height:1.5;letter-spacing:.045em;color:var(--muted);margin-bottom:7px}
.event-info h3{font-size:19px;line-height:1.3;letter-spacing:-.035em;font-weight:600;overflow-wrap:anywhere;color:var(--navy)}
.event-main:hover h3{color:var(--brand-strong)}
.event-meta{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:13px;color:var(--muted);font-size:12px;line-height:1.6}
.event-meta>span{display:flex;align-items:flex-start;gap:6px;min-width:0}
.event-meta svg{width:13px;height:13px;flex-shrink:0;margin-top:1px}
.event-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px}
.event-status{font-size:12px;line-height:1;letter-spacing:.025em;padding:7px 9px;border:1px solid var(--line);background:var(--canvas);border-radius:3px;color:var(--text-secondary);font-weight:500}
.event-status.live{border-color:var(--line);background:var(--canvas);color:color-mix(in srgb,#24633e var(--ink-keep),#fff)}
.event-status.upcoming{border-color:var(--brand-border);background:var(--brand-soft);color:var(--brand-strong)}
.registration-open,.registration-note{font-size:12px;line-height:1.4;display:inline-flex;align-items:center;gap:5px}
.registration-open{color:color-mix(in srgb,#2a6948 var(--ink-keep),#fff)}.registration-open>span{width:4px;height:4px;border-radius:50%;background:currentColor}
.registration-note{color:var(--muted)}
.event-details{display:inline-flex;align-items:center;gap:21px;color:var(--navy);font-size:13px;font-weight:600;margin-top:5px}
.event-details svg{width:18px;height:18px;color:var(--brand)}
.event-details:hover{color:var(--brand-strong)}
.event-pagination{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:28px}
.event-pagination>span{font-size:12px;color:var(--muted)}
.event-pagination>div{display:flex;gap:8px}
.page-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:42px;border:1px solid var(--line);border-radius:3px;background:var(--white);padding:12px 16px;font-size:12px;font-weight:600}
.page-button svg{width:16px;height:16px}.page-button:first-child svg{transform:rotate(180deg)}
.page-button:hover{border-color:var(--brand-strong);color:var(--brand-strong)}
.page-button.disabled{color:var(--text-subtle);background:transparent;border-color:var(--line);font-weight:400}
.events-source-note{font-size:12px;line-height:1.8;color:var(--muted);text-align:center;border-top:1px solid var(--line);padding-top:25px;margin-top:35px}
.events-organizer{padding:60px 0;background:var(--navy-raised)}
.events-organizer>.wrap{display:flex;align-items:center;justify-content:space-between;gap:36px}
.events-organizer .eyebrow{font-size:12px}
.events-organizer h2{font-size:35px;line-height:1.15;letter-spacing:-.045em;margin:18px 0 14px}
.events-organizer p:last-child{font-size:14px;line-height:1.8;color:var(--on-dark-muted)}
.events-organizer .button{flex-shrink:0;font-size:14px}
.events-empty{padding:66px 24px 58px;border:1px solid var(--line);border-radius:4px;background:var(--white);text-align:center}
.empty-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 22px;border-radius:50%;background:var(--surface-soft);color:var(--brand)}
.empty-icon svg{width:32px;height:32px}
.events-empty h3{font-size:28px;letter-spacing:-.04em;line-height:1.2}
.events-empty p{color:var(--muted);font-size:14px;line-height:1.8;max-width:410px;margin:17px auto 25px}
.events-empty .button{font-size:14px;min-height:47px}
.empty-secondary{display:flex;justify-content:center;align-items:center;gap:15px;font-size:13px;margin-top:20px}.empty-secondary svg{width:15px}
#events-browser{transition:opacity .15s}#events-browser[aria-busy=true]{opacity:.55;cursor:progress}
#events-feedback{position:relative;top:16px;margin-bottom:35px;padding:15px 20px;background:var(--brand-soft);border:1px solid var(--brand-border);color:var(--brand-strong);font-size:14px;line-height:1.6}
#events-feedback a{text-decoration:underline;text-underline-offset:3px;margin-left:12px}
.promoter-unavailable{font-size:13px;line-height:1.6;margin-top:15px;color:var(--brand-strong)}
@media(max-width:1180px){.event-search-form{gap:18px;padding:23px;grid-template-columns:minmax(190px,1.5fr) minmax(160px,1fr) 85px auto}.event-filter-field{padding-left:18px}.event-row{gap:20px;padding:22px;grid-template-columns:64px minmax(0,1fr) 147px}.event-poster{width:72px;height:90px}.event-main{gap:18px}.event-info h3{font-size:17px}.event-meta{flex-direction:column;gap:5px}.event-date{padding-right:20px}.event-search-button{gap:14px;padding:14px 17px}}
@media(max-width:980px){.event-search-form{grid-template-columns:minmax(180px,1.5fr) minmax(170px,1fr) 90px}.event-search-button{grid-column:1/-1;width:100%;min-height:40px;padding:11px}.event-row{grid-template-columns:56px minmax(0,1fr) 139px;gap:17px;padding:22px 18px}.event-poster{width:60px;height:80px}.event-date{padding-right:15px}.event-date>strong{font-size:30px}.event-tabs{gap:23px}.event-tabs a{font-size:13px}.calendar-link{font-size:12px}.event-info h3{font-size:16px}.event-main{gap:16px}.events-hero{padding-bottom:63px}.events-hero h1{font-size:68px}.events-organizer h2{font-size:30px}}
@media(max-width:760px){.events-hero{padding:22px 0 62px}.events-breadcrumb{margin-bottom:30px;font-size:12px}.events-hero-art{left:18%;opacity:.5}.events-hero-art img{object-position:73% 50%}.events-hero-art:after{background:linear-gradient(90deg,var(--navy-deep),transparent 100%),linear-gradient(0deg,rgb(var(--navy-rgb) / 0.439),transparent)}.events-hero .eyebrow{font-size:12px}.events-hero h1{font-size:clamp(48px,10.8vw,67px);margin-top:21px}.events-hero .wrap>p:last-child{font-size:14px}.event-search-form{grid-template-columns:minmax(0,1fr) 96px;gap:19px 14px;padding:21px 18px;margin-top:-25px}.event-search-field{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:17px}.promoter-field{border-left:0;padding-left:0}.year-field{padding-left:15px}.event-search-form label{font-size:12px}.event-search-form input,.event-search-form select{font-size:14px}.event-search-button{font-size:14px;min-height:43px}.event-tools{flex-wrap:wrap;gap:18px;margin-top:28px;padding-bottom:16px}.event-tabs{gap:0;justify-content:space-between;flex-basis:100%;border-bottom:1px solid var(--line)}.event-tabs a{font-size:12px;gap:5px;padding-bottom:16px}.status-dot{width:4px;height:4px}.calendar-link{padding-bottom:0;font-size:12px}.events-list-heading{margin:30px 0 21px;align-items:flex-start;gap:15px}.events-list-heading h2{font-size:28px;margin-top:12px}.events-list-heading .eyebrow{font-size:12px;letter-spacing:.08em;gap:8px}.events-list-heading .accent-rule{width:20px}.results-count{font-size:12px;max-width:100px;padding-top:27px;flex-shrink:0}.events-list-heading>div>p:last-child{font-size:12px;max-width:210px}.event-row{position:relative;grid-template-columns:47px minmax(0,1fr);gap:16px;padding:22px 16px 17px}.event-date{grid-column:1;grid-row:1;padding:0;border:0;min-height:90px;justify-content:flex-start}.event-date>strong{font-size:31px}.event-date>span{font-size:12px}.event-date>small{font-size:12px}.event-main{grid-column:2;grid-row:1;align-items:flex-start;gap:0}.event-poster{display:none}.event-promoter{font-size:12px;letter-spacing:.03em}.event-info h3{font-size:17px;line-height:1.35}.event-meta{font-size:12px;gap:7px;margin-top:12px}.event-meta>span{gap:6px}.event-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:10px 12px;justify-content:flex-start;align-items:center;border-top:1px solid var(--surface-soft);padding-top:16px;margin-top:1px}.event-status{font-size:12px;padding:6px 8px}.registration-open,.registration-note{font-size:12px}.event-details{margin-left:auto;margin-top:0;gap:10px;font-size:12px;min-height:28px}.event-details svg{width:16px;height:16px}.event-pagination{flex-direction:column-reverse;align-items:stretch;gap:18px;margin-top:24px}.event-pagination>div{justify-content:space-between}.event-pagination>span{text-align:center;font-size:12px}.page-button{font-size:12px;padding:12px 14px;min-height:44px}.events-source-note{font-size:12px;margin-top:26px;padding-top:23px}.event-directory{padding-bottom:48px}.events-organizer{padding:44px 0}.events-organizer>.wrap{flex-direction:column;align-items:flex-start;gap:24px}.events-organizer h2{font-size:30px;max-width:320px}.events-organizer p:last-child{font-size:14px}.events-organizer .eyebrow{font-size:12px;letter-spacing:.1em}.events-empty{padding:42px 20px}.events-empty h3{font-size:26px}.events-empty p{font-size:14px}.promoter-unavailable{font-size:12px}}
@media(max-width:380px){.event-row{padding-inline:13px;gap:12px;grid-template-columns:40px minmax(0,1fr)}.event-tabs a{font-size:12px}.event-info h3{font-size:16px}.event-details{gap:6px}.results-count{max-width:80px;font-size:12px}.events-list-heading h2{font-size:25px}.events-hero h1{font-size:47px}.registration-note,.registration-open{font-size:12px}.event-status{font-size:12px;padding:6px}.event-actions{gap:9px}.event-filter-field.year-field{padding-left:12px}}

.event-row,.events-empty{border-radius:12px;box-shadow:0 2px 8px rgb(var(--navy-rgb) / .025)}
.event-row:hover{border-color:var(--border-strong);box-shadow:0 6px 20px rgb(var(--navy-rgb) / .06)}
.event-poster{border-radius:7px}
.page-button,.event-status{border-radius:7px}
.events-breadcrumb{color:var(--on-dark-muted)}
.events-breadcrumb>span:first-child{color:var(--on-dark-muted)}
.events-organizer{background:var(--navy-raised)}
/* Compact light page headers, closer to sites.livelaps.com than the dark photo banners. */
.livelaps-page.events-page .events-hero{background:var(--canvas);color:var(--navy);padding:18px 0 22px;color-scheme:light}.livelaps-page.events-page .events-hero-art{display:none}
.livelaps-page.events-page .events-hero .eyebrow{display:none}.livelaps-page.events-page .events-hero h1{margin:10px 0 6px;font-size:clamp(32px,3.4vw,44px);line-height:1.1;letter-spacing:-.035em;color:var(--navy)}.livelaps-page.events-page .events-hero h1>span{color:inherit}
.livelaps-page.events-page .events-hero .wrap>p:last-child,.livelaps-page.events-page .events-hero .catalog-subtitle{font-size:16px;line-height:1.6;color:var(--muted)}
.livelaps-page.events-page .events-hero :is(.events-breadcrumb,.catalog-breadcrumb){color:var(--muted)}.livelaps-page.events-page .events-hero :is(.events-breadcrumb,.catalog-breadcrumb) a:hover{color:var(--navy)}
.livelaps-page.events-page .event-directory{padding-top:4px}.livelaps-page.events-page .event-search-form.search-panel{margin-top:0}
.livelaps-page.events-page .detail-hero{padding-bottom:6px}.livelaps-page.events-page .detail-hero .wrap{position:relative}.livelaps-page.events-page .detail-hero h1{font-size:clamp(28px,3vw,38px)}
.livelaps-page.events-page .detail-hero .hero-badges .catalog-badge{background:var(--white);border-color:var(--line);color:var(--text-secondary)}
.livelaps-page.events-page .events-hero :is(.events-breadcrumb,.catalog-breadcrumb) span{color:var(--muted)}
.livelaps-page.events-page .search-panel-heading{display:none}.livelaps-page.events-page .search-panel-top{padding:14px 14px 12px}
.events-list:is(.status-upcoming,.status-past) .event-status{display:none}
.livelaps-page.events-page .events-hero .meta-separator{color:var(--muted)}
/* Events map view, restored from sites.livelaps.com. */
.view-links{display:flex;gap:8px;flex-wrap:wrap}
/* The old map.css on the site's tokens (card --white, foreground --navy, muted --muted, border --line); Carbon categorical colours per theme. */
.events-map-surface{--map-color-1:#6929c4;--map-color-2:#1192e8;--map-color-3:#005d5d;--map-color-4:#9f1853;--map-color-5:#fa4d56;--map-color-6:#570408;--map-color-7:#198038;--map-color-8:#002d9c;--map-color-9:#ee538b;--map-color-10:#b28600;--map-color-11:#009d9a;--map-color-12:#012749;--map-color-13:#8a3800;--map-color-14:#a56eff;position:relative;margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--white);box-shadow:0 1px 2px rgb(0 0 0 / .05);overflow:hidden;color:var(--navy)}
.dark :scope .events-map-surface{--map-color-1:#8a3ffc;--map-color-2:#33b1ff;--map-color-3:#007d79;--map-color-4:#ff7eb6;--map-color-5:#fa4d56;--map-color-6:#fff1f1;--map-color-7:#6fdc8c;--map-color-8:#4589ff;--map-color-9:#d12771;--map-color-10:#d2a106;--map-color-11:#08bdba;--map-color-12:#bae6ff;--map-color-13:#ba4e00;--map-color-14:#d4bbff}
.events-map-toolbar{position:relative;z-index:35;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--line);background:color-mix(in oklab,var(--white) 80%,transparent);backdrop-filter:blur(8px)}
.events-map-combobox{position:relative;flex:1 1 14rem;min-width:0;max-width:28rem}
.events-map-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:32px;padding:3px 8px;border:1px solid var(--line);border-radius:6px;background:transparent;cursor:text}
.events-map-chips:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgb(var(--brand-rgb) / .2)}
.events-map-chip-list{display:contents}
.events-map-chip{display:inline-flex;align-items:center;gap:4px;height:22px;max-width:100%;min-width:0;padding:0 2px 0 6px;border-radius:4px;background:var(--surface-soft);font-size:12px;font-weight:500;white-space:nowrap}
.events-map-chip button{display:grid;place-items:center;width:16px;height:16px;border:0;border-radius:3px;background:transparent;color:var(--muted);font-size:13px;line-height:1;cursor:pointer;padding:0}.events-map-chip button:hover{color:var(--navy);background:var(--line)}
.events-map-chip>span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.events-map-chip button{flex-shrink:0}
.events-map-chip-more{font-size:12px;color:var(--muted)}
.events-map-dot{display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--marker-color)}
.events-map-chips input{flex:1;min-width:64px;height:24px;border:0;background:transparent;font:inherit;font-size:14px;color:var(--navy);outline:0;padding:0 2px}.events-map-chips input::placeholder{color:var(--muted);opacity:1}
.events-map-promoter-list{position:absolute;top:calc(100% + 4px);left:0;z-index:50;width:max(100%,16rem);max-height:18rem;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:6px;background:var(--white);box-shadow:0 8px 24px -8px rgb(0 0 0 / .25)}
.events-map-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;font-size:14px;cursor:pointer}
.events-map-option>span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.events-map-option .events-map-dot{width:10px;height:10px}
.events-map-option:hover,.events-map-option.is-active{background:var(--surface-soft)}
.events-map-check{width:16px;height:16px;flex-shrink:0;visibility:hidden}.events-map-option[aria-selected=true] .events-map-check{visibility:visible}
.events-map-option-empty{padding:16px 8px;text-align:center;font-size:14px;color:var(--muted)}
.events-map-actions{display:inline-flex}
.events-map-actions button,.events-map-button{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border:1px solid var(--line);background:var(--white);color:var(--navy);font:inherit;font-size:14px;font-weight:500;cursor:pointer;box-shadow:0 1px 2px rgb(0 0 0 / .05);border-radius:6px}
.events-map-actions button:first-child{border-radius:6px 0 0 6px}.events-map-actions button:last-child{border-radius:0 6px 6px 0;border-left:0}
.events-map-actions button:hover:not(:disabled),.events-map-button:hover{background:var(--surface-soft)}
.events-map-actions button:disabled{opacity:.5;cursor:default}
.events-map-actions button:focus-visible,.events-map-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.events-map-body{position:relative;height:500px}
.events-map,.events-map.maplibregl-map{position:relative;height:100%;font:inherit}
.events-map-fallback{display:grid;place-items:center;height:100%;color:var(--muted);font-size:15px}
.events-map-note{margin-top:10px;font-size:14px;color:var(--muted)}
.events-map-loading{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--surface-soft) 30%,var(--white))}
.events-map-loading>span{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid var(--line);border-radius:50%;background:color-mix(in oklab,var(--white) 80%,transparent);color:var(--muted);box-shadow:0 1px 2px rgb(0 0 0 / .05)}
.events-map-loading svg{width:24px;height:24px;animation:events-map-pulse 2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes events-map-pulse{50%{opacity:.5}}
.events-map-empty{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;background:var(--white)}
.events-map-empty[hidden]{display:none}
.events-map-empty-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:8px;border-radius:8px;background:var(--surface-soft);color:var(--navy)}.events-map-empty-icon svg{width:24px;height:24px}
.events-map-empty h3{font-size:18px;font-weight:500;letter-spacing:-.01em}
.events-map-empty p{max-width:24rem;font-size:14px;line-height:1.6;color:var(--muted)}
.events-map-empty .events-map-button{margin-top:8px}
@media(min-width:640px){.events-map-toolbar{gap:12px;padding:16px}.events-map-body{height:600px}}
@media(min-width:768px){.events-map-body{height:700px}}
.events-map-style{position:absolute;top:12px;left:12px;z-index:10;padding:4px;border-radius:6px;background:color-mix(in oklab,var(--white) 90%,transparent);box-shadow:0 1px 2px rgb(0 0 0 / .05);backdrop-filter:blur(8px)}
.events-map-style>div{display:flex}
.events-map-style button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:80px;height:32px;padding:0 10px;border:1px solid var(--line);background:transparent;color:var(--navy);font:inherit;font-size:14px;font-weight:500;cursor:pointer}
.events-map-style button:first-child{border-radius:6px 0 0 6px}.events-map-style button:last-child{border-radius:0 6px 6px 0;border-left:0}
.events-map-style button[aria-pressed=true]{background:var(--surface-soft)}.events-map-style button:hover{background:var(--surface-soft)}
.events-map-style button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.events-map-style svg{width:16px;height:16px}
.events-map-surface .maplibregl-popup-content{box-sizing:border-box;width:min(17.5rem,calc(100vw - 2rem));height:11rem;background-color:var(--white);color:var(--navy);border-radius:.5rem;box-shadow:0 8px 24px -8px rgb(0 0 0 / .25);padding:.75rem .875rem;font-family:inherit}
.events-map-surface .maplibregl-popup{z-index:40!important}
.events-map-surface .maplibregl-popup-close-button{color:var(--muted);font-size:1rem;line-height:1;padding:.125rem .375rem;right:.25rem;top:.25rem;border-radius:.25rem}
.events-map-surface .maplibregl-popup-close-button:hover{background-color:var(--surface-soft);color:var(--navy)}
.events-map-surface :is(.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right) .maplibregl-popup-tip{border-top-color:var(--white)}
.events-map-surface :is(.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right) .maplibregl-popup-tip{border-bottom-color:var(--white)}
.events-map-surface .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--white)}
.events-map-surface .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--white)}
.events-map-surface .maplibregl-ctrl-group{background-color:var(--white);box-shadow:0 0 0 1px var(--line),0 1px 2px rgb(0 0 0 / .08);border-radius:.5rem;overflow:hidden}
.events-map-surface .maplibregl-ctrl-group button{background-color:transparent;width:2rem;height:2rem}
.events-map-surface .maplibregl-ctrl-group button+button{border-top-color:var(--line)}
.events-map-surface .maplibregl-ctrl-group button:hover{background-color:var(--surface-soft)}
.events-map-surface .maplibregl-ctrl-group button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
/* MapLibre's control icons are dark sprites; invert them in dark mode. */
.dark :scope .events-map-surface .maplibregl-ctrl-icon{filter:invert(1) hue-rotate(180deg)}
.events-map-attribution{position:absolute;right:0;bottom:0;z-index:1;max-width:65%;margin:0;padding:0 .25rem;background-color:color-mix(in oklab,var(--white) 78%,transparent);color:var(--muted);font-size:10px;line-height:16px;text-align:right;pointer-events:none}
.events-map-popup-body{display:flex;flex-direction:column;gap:6px;height:100%;font-size:12px;line-height:16px}
.events-map-popup-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-right:14px}
.events-map-popup-title h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:16px;font-size:14px;line-height:1.25;font-weight:600;letter-spacing:0;color:var(--navy)}
.events-map-live{display:inline-flex;align-items:center;flex-shrink:0;height:20px;padding:0 6px;border:1px solid rgb(239 68 68 / .2);border-radius:6px;background:rgb(239 68 68 / .1);color:#dc2626;font-size:10px;font-weight:500;box-shadow:0 1px 2px rgb(0 0 0 / .05)}
.dark :scope .events-map-live{color:#f87171}
.events-map-popup-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.events-map-popup-loading{display:flex;align-items:center;gap:6px}
.events-map-spinner{width:12px;height:12px;flex-shrink:0;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:events-map-spin 1s linear infinite}
@keyframes events-map-spin{to{transform:rotate(360deg)}}
.events-map-popup-start>span{color:var(--muted)}.events-map-popup-start>strong{font-weight:500;font-variant-numeric:tabular-nums}
.events-map-popup-link{display:inline-block;width:fit-content;margin-top:auto;font-weight:500;color:var(--brand-strong)}.events-map-popup-link:hover,.events-map-popup-link:focus-visible{text-decoration:underline;outline:0}
.events-map-popup-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:2px}
.events-map-popup-navigation p{color:var(--muted)}.events-map-popup-navigation>div{display:flex;gap:4px}
.events-map-popup-navigation button{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:4px;background:transparent;color:var(--navy);cursor:pointer;padding:0}
.events-map-popup-navigation button:hover{background:var(--surface-soft)}.events-map-popup-navigation button:focus-visible{outline:2px solid var(--brand)}
.events-map-popup-navigation svg{width:14px;height:14px}
.events-map-marker{position:relative;display:inline-flex}
.events-map-marker-trigger{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;background:transparent;cursor:pointer;appearance:none;padding:0}
.events-map-marker-visual{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:2rem;height:2rem;border-radius:9999px;border:2px solid var(--white);background-color:var(--marker-color);color:#fff;box-shadow:0 4px 10px -2px rgb(0 0 0 / .35);transform-origin:center bottom;transform:scale(var(--marker-scale,.72));transition:transform 150ms ease}
.events-map-marker-visual svg{width:50%;height:50%}
.events-map-marker-trigger:hover .events-map-marker-visual,.events-map-marker[data-active] .events-map-marker-visual{transform:scale(calc(var(--marker-scale,.72) * 1.08))}
.events-map-marker[data-muted] :is(.events-map-marker-visual,.events-map-marker-past-ring){opacity:.32}
.events-map-marker-past-ring{position:absolute;inset:0;box-sizing:border-box;width:2rem;height:2rem;border:2px dashed color-mix(in oklab,var(--navy) 65%,transparent);border-radius:9999px;pointer-events:none;transform-origin:center bottom;transform:scale(var(--marker-scale,.72));transition:transform 150ms ease}
.events-map-marker:not([data-past]) .events-map-marker-past-ring{display:none}
.events-map-marker-trigger:hover .events-map-marker-past-ring,.events-map-marker[data-active] .events-map-marker-past-ring{transform:scale(calc(var(--marker-scale,.72) * 1.08))}
.events-map-marker-label{position:absolute;bottom:calc(100% + .25rem);left:50%;display:grid;width:max-content;max-width:min(16rem,calc(100vw - 2rem));transform:translateX(-50%) translateY(.25rem);border:1px solid var(--line);border-radius:.375rem;background-color:color-mix(in oklab,var(--white) 94%,transparent);box-shadow:0 4px 10px -2px rgb(0 0 0 / .25);color:var(--navy);font-size:.75rem;line-height:1rem;opacity:0;padding:.375rem .5rem;pointer-events:none;transition:opacity 150ms ease,transform 150ms ease;visibility:hidden;text-align:left}
.events-map-marker-label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.events-map-marker-label>span+span{color:var(--muted)}
.events-map-marker-label>.events-map-marker-label-status{color:var(--marker-color);font-weight:600}
.events-map-marker-label-position{font-variant-numeric:tabular-nums}
.events-map-marker-trigger:is(:hover,:focus-visible)+.events-map-marker-label{transform:translateX(-50%) translateY(0);opacity:1;visibility:visible}
.events-map[data-has-selection] .events-map-marker-label{display:none}
/* MapLibre gives each marker its own stacking context: raise the marker itself so a neighbour cannot cover its label. */
.events-map-surface .maplibregl-marker:has(.events-map-marker-trigger:is(:hover,:focus-visible)){z-index:10!important}
.events-map-surface .maplibregl-marker:has(.events-map-marker[data-route-endpoint]){z-index:20!important}
.events-map-surface .maplibregl-marker:has(.events-map-marker[data-active]){z-index:30!important}
.events-map-marker-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.events-map-status-key{position:absolute;bottom:.75rem;left:.75rem;z-index:1;display:flex;gap:.75rem;padding:.375rem .5rem;border:1px solid var(--line);border-radius:.375rem;background-color:color-mix(in oklab,var(--white) 92%,transparent);box-shadow:0 2px 8px -3px rgb(0 0 0 / .25);color:var(--muted);font-size:.75rem;line-height:1rem;pointer-events:none}
.events-map-status-key>span{display:inline-flex;align-items:center;gap:.25rem}
.events-map-status-key-marker{display:inline-block;box-sizing:border-box;width:.875rem;height:.875rem;border:2px solid var(--muted);border-radius:9999px}
.events-map-status-key-marker[data-past]{border-style:dashed}
@media(prefers-reduced-motion:reduce){.events-map-marker-visual,.events-map-marker-past-ring,.events-map-marker-label{transition:none}.events-map-marker-trigger:hover :is(.events-map-marker-visual,.events-map-marker-past-ring),.events-map-marker[data-active] :is(.events-map-marker-visual,.events-map-marker-past-ring){transform:scale(var(--marker-scale,.72))}.events-map-loading svg,.events-map-spinner{animation:none}}
.event-row{position:relative}.event-row .event-main{position:static}.event-row .event-main::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.event-row .event-actions a{position:relative;z-index:2}
/* The old events list's image: 240px at 4:3, filling its slot; the LiveLaps mark when an event has none; past events greyed */
.event-row .event-poster{width:240px;height:auto;aspect-ratio:4/3;border:0;border-radius:8px;background:var(--surface-soft)}
.event-row .event-poster img{object-fit:cover;background:none;transition:transform .5s}.event-row:hover .event-poster img{transform:scale(1.03)}
.event-row .event-poster.is-logo img{object-fit:contain;padding:32px;opacity:.35}.event-row .event-poster.is-past img{opacity:.6;filter:grayscale(1)}
@media(max-width:1180px){.event-row .event-poster{width:200px}}
@media(max-width:1023px){.event-row .event-poster{display:none}}
/* The footer every paged table and list shares (table-pager.js): rows on the page, the page, "Rows per page" and Previous / Next. */
.race-page-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;min-width:0}
.race-page-info{font-size:12px;color:var(--muted)}
.race-rows{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.race-rows select{min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:14px;font-weight:500}
.race-rows select:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(max-width:760px){.race-pagination>.race-page-meta{justify-content:center;text-align:center}}
.table-pager{flex-wrap:wrap;row-gap:14px}
.table-pager .page-button{color:var(--navy);line-height:1.4;border-radius:3px;font-family:inherit}
.table-pager button.page-button{cursor:pointer}
.table-pager .page-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* search.css */
.event-search-form.search-panel{display:block;padding:0;margin-top:-30px;background:var(--white);border:1px solid var(--line);border-radius:13px;box-shadow:0 12px 35px rgb(var(--navy-rgb) / 0.039);z-index:2}
.search-panel [hidden]{display:none!important}
.search-panel-top{padding:26px 28px 23px}
.search-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.search-eyebrow{font-size:12px;font-weight:600;letter-spacing:.13em;color:var(--text-secondary)}
.search-live-hint{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.search-live-hint>span{width:5px;height:5px;background:#5e865a;border-radius:50%}
.search-input-wrap{display:flex;align-items:center;position:relative;min-height:61px;border:1px solid var(--line);background:var(--canvas);border-radius:8px;transition:border-color .15s,box-shadow .15s}
.search-input-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgb(var(--brand-rgb) / 0.063);background:var(--white)}
.search-input-wrap>svg{width:22px;height:22px;color:var(--muted);flex-shrink:0;margin:0 16px 0 19px}
.search-panel .search-input-wrap input{font-size:16px;min-height:59px;line-height:1.5;padding:16px 62px 16px 0;width:100%;outline:none;border:0;border-radius:8px;background:transparent;letter-spacing:-.015em}
.search-panel .search-input-wrap input::placeholder{color:var(--text-subtle)}
.search-panel .search-input-wrap input::-webkit-search-cancel-button{display:none}
.search-panel .search-clear{display:grid;place-items:center;position:absolute;right:17px;width:29px;height:29px;padding:4px;background:var(--surface-soft);color:var(--muted);border:0;border-radius:50%;cursor:pointer}
.search-clear svg{width:19px;height:19px}.search-clear:hover{background:var(--line)}
.search-progress{position:absolute;right:19px;width:17px;height:17px;border:2px solid var(--brand-border);border-top-color:var(--brand);border-radius:50%;animation:search-spin .7s linear infinite}
@keyframes search-spin{to{transform:rotate(360deg)}}
.search-panel-bottom{display:flex;align-items:center;gap:18px;padding:19px 28px;background:var(--white);border-top:1px solid var(--surface-soft);border-radius:0 0 13px 13px}
.filter-caption{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--muted)}
.filter-caption svg{width:18px;height:18px}
.filter-controls{display:flex;align-items:center;flex-wrap:wrap;gap:11px;flex:1;min-width:0}
.polished-filter{position:relative;min-width:125px;max-width:290px;flex:0 1 230px}
.polished-filter[data-filter-name=year]{flex-basis:150px;min-width:120px}
.polished-filter[data-filter-name=type],.polished-filter[data-filter-name=period]{flex-basis:200px}
.search-panel .polished-filter>label{font-size:12px;letter-spacing:.02em;margin:0 0 7px}
.search-panel .polished-filter>select{border:1px solid var(--line);border-radius:7px;background:var(--white);min-height:43px;font-size:14px;padding:10px 11px 10px 35px}
.filter-native-icon{position:absolute;bottom:12px;left:11px;width:17px;height:17px;color:var(--muted)}
.filter-native-icon svg{width:100%;height:100%}
.search-panel .filter-enhanced>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.filter-enhanced>.filter-native-icon{display:none}
.filter-trigger{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:12px 13px;background:var(--white);border:1px solid var(--line);border-radius:7px;font:inherit;font-size:14px;text-align:left;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,background .15s}
.filter-trigger:hover{border-color:var(--border-strong);background:var(--white)}
.filter-trigger:focus-visible,.search-clear:focus-visible,.search-filter-chip:focus-visible,.search-reset:focus-visible{outline:2px solid var(--brand-strong);outline-offset:3px}
.filter-trigger-icon{width:17px;height:17px;flex-shrink:0;color:var(--muted)}
.filter-trigger-icon svg{width:100%;height:100%}
.filter-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.filter-caret{width:15px;height:15px;flex-shrink:0;color:var(--muted);transition:transform .15s}
.filter-caret svg{width:100%;height:100%}
.filter-open{z-index:10}.filter-open .filter-caret{transform:rotate(180deg)}
.has-selection .filter-trigger{background:var(--brand-soft);border-color:var(--brand-border);color:var(--brand-strong)}
.filter-open .filter-trigger{border-color:var(--brand);box-shadow:0 0 0 3px rgb(var(--brand-rgb) / 0.063)}
.filter-popover{position:absolute;top:calc(100% + 9px);left:0;width:350px;max-width:calc(100vw - 64px);padding:8px;background:var(--white);border:1px solid var(--line);border-radius:11px;box-shadow:0 14px 45px rgb(var(--navy-rgb) / 0.149),0 2px 6px rgb(var(--navy-rgb) / 0.039);z-index:30}
.polished-filter:last-child .filter-popover{left:auto;right:0}
.polished-filter[data-filter-name=year] .filter-popover{width:230px}
.filter-open-up .filter-popover{top:auto;bottom:calc(100% + 9px)}
.filter-popover-heading{padding:10px 11px 9px;font-size:12px;font-weight:600;color:var(--muted)}
.filter-option-search{display:flex;align-items:center;gap:9px;padding:0 10px;margin:3px 3px 8px;border:1px solid var(--line);border-radius:7px;background:var(--canvas)}
.filter-option-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 2px rgb(var(--brand-rgb) / 0.063)}
.filter-option-search>svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}
.search-panel .filter-option-search input{min-height:39px;padding:9px 0;font-size:14px;outline:none;letter-spacing:0}
.filter-options{max-height:min(290px,45vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.filter-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 11px;background:transparent;border:0;border-radius:6px;font:inherit;font-size:14px;line-height:1.55;text-align:left;color:var(--text-secondary);cursor:pointer}
.filter-option>span:first-child{overflow-wrap:anywhere}
.filter-option:hover,.filter-option.is-active{background:var(--canvas)}
.filter-option:focus-visible{outline:2px solid var(--brand-strong);outline-offset:-2px}
.filter-option[aria-selected=true]{color:var(--brand-strong);background:var(--brand-soft)}
.filter-option-tick{display:block;width:17px;height:17px;flex-shrink:0;visibility:hidden}
.filter-option-tick svg{width:100%;height:100%}
.filter-option[aria-selected=true] .filter-option-tick{visibility:visible}
.filter-options-empty{padding:18px 11px 24px;font-size:14px;line-height:1.7;color:var(--muted)}
.search-reset{font:inherit;font-size:13px;color:var(--brand-strong);text-decoration:underline;text-underline-offset:4px;border:0;background:transparent;padding:10px 0;cursor:pointer;white-space:nowrap}
.search-enhanced .search-fallback-submit{display:none}
.search-applied-filters{display:flex;gap:8px;flex-wrap:wrap;padding:0 28px 19px;background:var(--white);border-radius:0 0 13px 13px}
.search-filter-chip{display:flex;align-items:center;gap:8px;max-width:100%;border:1px solid var(--brand-border);background:var(--brand-soft);color:var(--brand-strong);border-radius:20px;padding:6px 10px;font:inherit;font-size:12px;line-height:1.5;cursor:pointer}
.search-filter-chip>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-filter-chip>svg{width:15px;height:15px;flex-shrink:0}
.search-filter-chip:hover{border-color:var(--brand);background:var(--brand-soft)}
#events-browser[aria-busy=true]{opacity:1;cursor:auto}
#directory-content{transition:opacity .15s}
#events-browser[aria-busy=true] #directory-content{opacity:.5;cursor:progress}
#events-browser[aria-busy=true] .search-clear{right:47px}
#events-browser[aria-busy=true] .search-live-hint>span{background:var(--brand)}
.event-tools{border:0;margin-top:26px}
.event-tabs{display:inline-flex;gap:3px;padding:5px;background:var(--surface-soft);border:1px solid var(--line);border-radius:9px}
.event-tabs a{margin:0;padding:11px 18px;border:0;border-radius:6px;font-size:13px;line-height:1.35;color:var(--muted)}
.event-tabs a[aria-current=page]{background:var(--white);color:var(--navy);box-shadow:0 2px 5px rgb(var(--navy-rgb) / 0.047)}
.event-tabs a[aria-current=page]:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--brand)}
.event-tabs a[aria-current=page] .status-dot{display:none}
.event-tabs a:hover{background:var(--canvas)}
.calendar-link{padding:11px 14px;border:1px solid var(--line);border-radius:7px;background:var(--canvas);min-height:42px}
.events-list-heading{margin-top:32px}
.search-panel .search-input-wrap input{text-overflow:ellipsis}
@media(max-width:1100px){.filter-caption{display:none}.polished-filter{flex-basis:190px;max-width:250px}.polished-filter[data-filter-name=year]{flex-basis:150px}.polished-filter[data-filter-name=type],.polished-filter[data-filter-name=period]{flex-basis:170px}}
@media(max-width:760px){.event-search-form.search-panel{margin-top:-26px;border-radius:11px}.search-panel-top{padding:21px 19px 19px}.search-panel-heading{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:17px}.search-eyebrow{font-size:12px}.search-live-hint{font-size:12px}.search-input-wrap{min-height:55px}.search-input-wrap>svg{width:19px;height:19px;margin:0 11px 0 13px}.search-panel .search-input-wrap input{font-size:16px;min-height:53px;padding:14px 45px 14px 0}.search-panel-bottom{padding:16px 19px;flex-wrap:wrap;gap:10px}.filter-controls{flex-basis:100%;gap:9px}.polished-filter{flex:1 1 120px;min-width:0;max-width:none}.polished-filter[data-filter-name=year]{flex:0 0 124px;min-width:0}.polished-filter[data-filter-name=type],.polished-filter[data-filter-name=period]{flex:1 1 140px}.filter-trigger{font-size:13px;padding:12px 10px;gap:7px}.filter-popover{width:100%;min-width:235px;max-width:calc(100vw - 50px)}.polished-filter[data-filter-name=year] .filter-popover{width:100%;min-width:190px}.filter-option{min-height:44px}.search-panel .filter-option-search input{font-size:16px}.search-applied-filters{padding:0 19px 16px}.search-reset{font-size:12px;padding:5px 0}.event-tools{margin-top:23px;padding-bottom:0;gap:14px}.event-tabs{width:100%;gap:2px;padding:4px;justify-content:space-between}.event-tabs a{font-size:12px;padding:10px 9px;gap:5px;justify-content:center;flex:1}.calendar-link{font-size:12px;padding:10px 12px}.events-list-heading{margin-top:29px}}
@media(max-width:380px){.filter-controls .polished-filter{flex-basis:100%}.filter-controls .filter-popover{left:0;right:auto;width:100%;min-width:0}.search-panel .search-input-wrap input{font-size:16px}.event-tabs a{font-size:12px;padding-inline:7px}}
@media(prefers-reduced-motion:reduce){.search-progress{animation:none}.search-input-wrap,.filter-trigger,.filter-caret,#directory-content{transition:none}}

/* Compact directory intros; the homepage and individual detail heroes are separate. */
.events-page .events-hero.directory-hero{padding:18px 0 47px}
.events-page .directory-hero .events-breadcrumb,.events-page .directory-hero .catalog-breadcrumb{margin-bottom:14px;font-size:12px;line-height:1.5}
.events-page .directory-hero .eyebrow{display:none}
.events-page .events-hero.directory-hero h1{font-size:clamp(30px,3.1vw,44px);line-height:1.12;letter-spacing:-.045em;margin:0 0 10px;max-width:1000px}
.events-page .events-hero.directory-hero .wrap>p:last-child{font-size:14px;line-height:1.65;max-width:760px}
.events-page .directory-hero .events-hero-art{left:51%}
.events-page .directory-hero .events-hero-art img{object-position:77% 44%;opacity:.4}
.event-directory .search-panel-top{padding:18px 24px 16px}
.event-directory .search-panel-heading{margin-bottom:12px}
.event-directory .search-input-wrap{min-height:53px}
.event-directory .search-panel .search-input-wrap input{min-height:51px;padding-top:12px;padding-bottom:12px}
.event-directory .search-panel-bottom{padding:15px 24px}
.event-directory .search-applied-filters{padding:0 24px 15px}
.event-directory .event-tools{margin-top:20px}
.event-directory .events-list-heading{margin:22px 0 18px}
.event-directory .events-list-heading .eyebrow{display:none}
.event-directory .events-list-heading h2{font-size:27px;line-height:1.15;margin:0 0 7px}
.event-directory .events-list-heading>div>h2:last-child{margin-bottom:0}
.event-directory .calendar-toolbar{margin:24px 0 17px}
.event-directory .calendar-toolbar .eyebrow{display:none}
.event-directory .calendar-toolbar h2{font-size:30px;margin:0 0 8px}
@media(max-width:760px){
  .events-page .events-hero.directory-hero{padding:15px 0 40px}
  .events-page .directory-hero .events-breadcrumb,.events-page .directory-hero .catalog-breadcrumb{font-size:12px;margin-bottom:12px}
  .events-page .events-hero.directory-hero h1{font-size:30px;line-height:1.1;margin-bottom:9px;max-width:520px;text-wrap:balance}
  .events-page .events-hero.directory-hero .wrap>p:last-child{font-size:13px;line-height:1.65;max-width:440px}
  .events-page .directory-hero .events-hero-art{left:35%}
  .event-directory .search-panel-top{padding:16px 18px 14px}
  .event-directory .search-panel-heading{gap:8px;margin-bottom:13px}
  .event-directory .search-panel-bottom{padding:13px 18px}
  .event-directory .search-applied-filters{padding:0 18px 13px}
  .event-directory .event-tools{margin-top:18px;gap:12px}
  .event-directory .events-list-heading{margin:22px 0 17px;align-items:center}
  .event-directory .events-list-heading h2{font-size:25px}
  .event-directory .results-count{padding-top:0}
  .event-directory .calendar-toolbar{margin:23px 0 17px;gap:15px}
  .event-directory .calendar-toolbar h2{font-size:28px}
}
@media(max-width:380px){
  .events-page .events-hero.directory-hero h1{font-size:27px}
  .event-directory .events-list-heading h2{font-size:23px}
}

.event-tabs a[aria-current=page]{background:var(--ink-bg);color:var(--ink-text);box-shadow:0 2px 5px rgb(var(--navy-rgb) / .1)}
.event-tabs a[aria-current=page]:before{background:var(--white)}
.event-tabs a[aria-current=page]:hover{background:var(--navy-raised)}
.search-live-hint,.filter-options-empty{color:var(--muted)}
.search-panel .search-input-wrap input::placeholder{color:var(--text-subtle)}
.filter-option:hover,.filter-option.is-active{background:var(--surface-soft)}
.catalog-card,.detail-panel,.race-card,.detail-notice,.standings-filters{border-radius:12px}
.catalog-card{box-shadow:0 2px 8px rgb(var(--navy-rgb) / .025)}
.catalog-image,.catalog-badge{border-radius:7px}
.catalog-breadcrumb,.catalog-breadcrumb>span,.meta-separator{color:var(--on-dark-muted)}
@media(max-width:760px){.event-tabs{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none}.event-tabs::-webkit-scrollbar{display:none}.event-tabs a{flex:none;padding:10px 13px}}
/* In-page updates: a progress bar along the top of the results while they load. */
#events-browser #directory-content{position:relative;transition:opacity .2s}#events-browser[aria-busy=true] #directory-content{opacity:.6;pointer-events:none}
#events-browser[aria-busy=true] #directory-content:before{content:"";position:absolute;z-index:5;top:-8px;left:0;width:100%;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--brand),transparent) 0 0/40% 100% no-repeat;animation:busy-bar 1.1s ease-in-out infinite}
@keyframes busy-bar{from{background-position:-40% 0}to{background-position:140% 0}}
@media(prefers-reduced-motion:reduce){#events-browser[aria-busy=true] #directory-content:before{animation:none;background:var(--brand);opacity:.5}}
.search-panel-top[hidden]{display:none}

/* catalog.css */
.catalog-breadcrumb{display:flex;align-items:center;gap:13px;font-size:12px;color:var(--on-dark-muted);margin-bottom:33px}
.catalog-breadcrumb>span{color:var(--text-subtle)}.catalog-breadcrumb a:hover{color:#fff}
.catalog-hero h1{font-size:clamp(48px,5.5vw,80px)}.catalog-subtitle{font-size:15px;line-height:1.8;color:var(--on-dark);max-width:820px}
.catalog-search{grid-template-columns:minmax(190px,1.4fr) minmax(180px,1.2fr) minmax(150px,.9fr) auto}
.catalog-search.series-search{grid-template-columns:minmax(200px,1.3fr) minmax(170px,1.2fr) 80px minmax(140px,1fr) auto}
.catalog-field{min-width:0}.catalog-field label{display:block;color:var(--muted);font-size:12px;letter-spacing:.12em;font-weight:600;margin-bottom:11px}
.catalog-field input,.catalog-field select{font:inherit;font-size:14px;min-width:0;max-width:100%;width:100%;color:var(--navy)}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.catalog-card{display:flex;flex-direction:column;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:4px;padding:26px;transition:border-color .18s}
.catalog-card:hover{border-color:var(--border-strong);box-shadow:0 6px 20px rgb(var(--navy-rgb) / .06)}.catalog-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px}
.catalog-image{position:relative;display:grid;place-items:center;overflow:hidden;background:var(--surface-soft);color:var(--text-subtle);border-radius:3px;min-height:100px}
.catalog-image>span{display:grid;place-items:center}.catalog-image svg{width:48px;height:48px}
.catalog-image img{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:var(--white)}.catalog-image img[hidden]{display:none}
.catalog-image.catalog-logo{width:54px;height:54px;min-height:54px;flex-shrink:0;border:1px solid var(--surface-soft);background:var(--canvas)}
.catalog-logo svg{width:29px;height:29px;color:var(--brand-strong)}
.catalog-badge{display:inline-flex;align-items:center;width:fit-content;font-size:12px;font-weight:500;line-height:1.4;background:var(--surface-soft);border:1px solid var(--line);border-radius:3px;padding:6px 9px;color:var(--text-secondary)}
.card-owner{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:7px;display:block}
.catalog-card h3{font-size:21px;letter-spacing:-.035em;line-height:1.3;overflow-wrap:anywhere}
.catalog-card h3 a:hover{color:var(--brand-strong)}.card-meta{color:var(--muted);font-size:13px;line-height:1.7;margin:15px 0 26px}
.catalog-card-bottom{margin-top:auto;border-top:1px solid var(--surface-soft);padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.catalog-card-bottom>span{font-size:12px;color:var(--muted)}.catalog-card-bottom>strong{font-size:17px;letter-spacing:-.025em}
.catalog-card-bottom>a{display:inline-flex;align-items:center;gap:12px;font-size:13px;white-space:nowrap;font-weight:600}
.catalog-card-bottom svg{width:17px;height:17px;color:var(--brand)}.catalog-card-bottom>a:hover{color:var(--brand-strong)}
.detail-hero{padding-bottom:52px}.detail-hero .events-hero-art{inset:0 0 0 48%;opacity:.6}
.detail-hero h1{max-width:950px;font-size:clamp(38px,4.5vw,64px);line-height:1.08;letter-spacing:-.05em;overflow-wrap:anywhere;margin:23px 0 22px}
.detail-hero .eyebrow{max-width:900px;line-height:1.8}.meta-separator{padding:0 15px;color:var(--muted)}.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.hero-badges .catalog-badge{background:var(--navy-raised);color:var(--on-dark);border-color:var(--navy-border)}
.hero-register{margin-top:25px;font-size:14px;padding:14px 22px;gap:22px}
.detail-content{padding-bottom:70px}.detail-nav{display:flex;align-items:center;gap:34px;border-bottom:1px solid var(--line);padding:23px 0;margin-bottom:10px;flex-wrap:wrap}
.detail-nav a{font-size:14px;font-weight:500;color:var(--muted)}.detail-nav a:hover{color:var(--brand-strong)}
.detail-nav .back-to-list{margin-left:auto;display:inline-flex;align-items:center;gap:12px}.back-to-list svg{width:16px;height:16px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:65px;align-items:start}
.detail-main{min-width:0}.detail-section{padding:39px 0 42px;border-bottom:1px solid var(--line);scroll-margin-top:110px}
.detail-section:last-child{border-bottom:0}.detail-section .eyebrow{font-size:12px;letter-spacing:.13em}
.detail-section h2{font-size:32px;line-height:1.2;letter-spacing:-.045em;margin:15px 0 27px}.detail-section h3{font-size:19px;line-height:1.4;letter-spacing:-.025em}
.detail-sidebar{display:flex;flex-direction:column;gap:22px;padding-top:39px;min-width:0}
.detail-panel{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:26px}
.detail-panel h2{font-size:23px;line-height:1.25;letter-spacing:-.04em;margin:14px 0 22px}
.detail-panel .eyebrow{font-size:12px;letter-spacing:.12em}.detail-panel .button{width:100%;font-size:14px;line-height:1.5;padding:15px 17px;gap:15px}
.registration-panel{border-top:3px solid var(--brand)}.action-note{font-size:12px;line-height:1.8;color:var(--muted);margin:13px 0 0}
.detail-facts{margin:0 0 24px}.detail-facts>div{border-bottom:1px solid var(--surface-soft);padding:13px 0}
.detail-facts dt{font-size:12px;color:var(--muted);margin-bottom:7px}.detail-facts dd{font-size:14px;line-height:1.7;color:var(--navy)}
.event-overview-facts{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px;margin:0 0 34px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.event-overview-facts>div{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-items:start;align-content:start}.event-overview-facts .fact-icon{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--surface-soft);color:var(--muted)}.event-overview-facts .fact-icon svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.event-overview-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 4px}.event-overview-facts dd{margin:0;font-size:15px;line-height:1.5;color:var(--navy);overflow-wrap:anywhere}.event-overview-facts .fact-line,.event-overview-facts .fact-sub{display:block}.event-overview-facts .fact-sub{font-size:13px;color:var(--muted)}
.event-overview-facts .fact-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;font-weight:600;color:var(--brand)}.event-overview-facts .fact-link svg{width:14px;height:14px}
.event-overview-facts dd a{text-decoration:underline;text-underline-offset:4px}
.rich-description{font-size:15px;line-height:1.85;color:var(--navy);overflow-wrap:anywhere}
.rich-description p,.rich-description div,.rich-description ul,.rich-description ol,.rich-description blockquote{margin:0 0 18px}
.rich-description ul,.rich-description ol{padding-left:23px}.rich-description li{margin-bottom:7px}
.rich-description h2,.rich-description h3,.rich-description h4{font-size:20px;line-height:1.4;margin:26px 0 12px}
.rich-description a{color:var(--brand-strong);text-decoration:underline;text-underline-offset:3px}
.rich-description blockquote{border-left:2px solid var(--brand);padding-left:20px}
.rich-description table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.rich-description td,.rich-description th{padding:8px;border:1px solid var(--line)}
.muted{font-size:14px;line-height:1.85;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:11px;font-size:14px;line-height:1.7;font-weight:600;color:var(--brand-strong);margin-top:17px}
.text-link svg{width:17px;height:17px;flex-shrink:0}.text-link:hover{text-decoration:underline;text-underline-offset:4px}
.flyer-panel{padding:20px}.flyer-panel h2{font-size:16px;margin:0 0 18px}.flyer-panel .catalog-image{min-height:0;background:var(--white)}
.flyer-panel .catalog-image>span{display:none}.flyer-panel .catalog-image img{position:relative;height:auto;max-height:480px;object-fit:contain}
.subtle-panel{background:var(--surface-soft);border-color:var(--line)}.subtle-panel p:not(.eyebrow){font-size:14px;line-height:1.8;color:var(--muted)}
.subtle-panel .text-link{display:flex;justify-content:space-between;gap:10px}
.race-list{display:flex;flex-direction:column;gap:12px}.race-card{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:23px;background:var(--white);border:1px solid var(--line);border-radius:3px}
.race-card>div{min-width:0}.race-card h3{font-size:17px}.race-card p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:7px}
.race-card>.text-link{margin:2px 0 0;white-space:nowrap}.race-card .catalog-badge{flex-shrink:0;font-size:12px}
.race-classes{font-size:13px;margin-top:15px;color:var(--muted)}.race-classes summary{cursor:pointer;width:fit-content}.race-classes ul{padding-left:16px;margin-top:12px;line-height:1.9}
.detail-notice{background:var(--surface-soft);border:1px solid var(--line);padding:27px;border-radius:4px}
.detail-notice h3{font-size:18px;margin:0 0 10px;line-height:1.4}.detail-notice p{font-size:14px;line-height:1.8;color:var(--muted)}
.live-results-link{margin-top:23px}.schedule-block{margin-top:28px}.schedule-list{padding:0;list-style:none;margin:17px 0 0;border-top:1px solid var(--line)}
.schedule-list li{display:grid;grid-template-columns:190px 1fr;gap:26px;padding:21px 14px;border-bottom:1px solid var(--line)}
.schedule-list time{font-size:13px;line-height:1.7;color:var(--muted)}.schedule-list time small{display:block;margin-top:6px;font-size:12px}.schedule-list strong{font-size:15px}
.schedule-highlight{background:var(--surface-soft);border-left:2px solid var(--brand)}.schedule-list .rich-description{font-size:14px;margin-top:8px}
.detail-link-list{border-top:1px solid var(--line)}.detail-link-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.detail-link-row strong{font-size:16px;line-height:1.4}.detail-link-row small{display:block;font-size:13px;line-height:1.7;color:var(--muted);margin-top:6px}.detail-link-row svg{width:20px;height:20px;flex-shrink:0;color:var(--brand-strong)}
.detail-link-row:hover strong{color:var(--brand-strong)}
.organization-heading{display:flex;align-items:center;gap:21px;margin:0 0 30px}.organization-logo{width:74px;height:74px;min-height:74px;flex-shrink:0;border:1px solid var(--line)}
.organization-heading .card-owner{font-size:12px;letter-spacing:.12em}.organization-heading h3{font-size:23px}
.membership-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:30px}
.membership-price-panel{border-top:3px solid var(--brand);scroll-margin-top:110px}.membership-price{font-size:32px;line-height:1.2;letter-spacing:-.045em;margin:23px 0 14px;font-weight:600}
.membership-price-panel>.muted{font-size:13px;margin:0 0 25px}
.standings-heading{display:flex;justify-content:space-between;align-items:center;gap:32px}.standings-source{font-size:13px;line-height:1.7;color:var(--muted);text-align:right;max-width:250px}
.standings-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:20px;padding:24px;background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;margin-bottom:24px}
.standings-filters .catalog-field{flex:1;min-width:180px}.standings-filters select{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:11px;min-height:44px}
.standings-filters .button{font-size:14px;min-height:44px;padding:12px 22px}.standings-filters .catalog-field label{font-size:12px}
.standings-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);background:var(--white);border-radius:4px}
.standings-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px;line-height:1.6;white-space:nowrap}
.standings-table thead{background:var(--ink-bg);color:var(--surface-soft)}.standings-table thead th{font-size:12px;letter-spacing:.075em;text-transform:uppercase;font-weight:500;padding:17px 22px}
.standings-table td,.standings-table tbody th{padding:19px 22px;border-top:1px solid var(--surface-soft);font-weight:400}.standings-table tbody th{font-size:14px;font-weight:600}
.standings-table tbody tr:hover{background:var(--canvas)}.standings-table small{font-size:12px;color:var(--muted);display:block;margin-top:3px}
.standings-table .standing-position{font-size:17px;font-variant-numeric:tabular-nums;color:var(--brand-strong)}.standings-table .numeric{text-align:right;font-variant-numeric:tabular-nums}
.standings-updated{font-size:12px;color:var(--muted);margin-top:23px}
.detail-error{padding:60px 0 90px}.detail-error .detail-notice{margin-bottom:25px}.detail-error>.button{margin:0 12px 12px 0}
@media(max-width:1180px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-search.series-search{grid-template-columns:minmax(180px,1.3fr) minmax(150px,1fr) 80px 140px}.catalog-search .event-search-button{grid-column:1/-1}.detail-layout{gap:35px;grid-template-columns:minmax(0,1fr) 300px}.detail-panel{padding:22px}.detail-hero h1{max-width:850px}}
@media(max-width:980px){.catalog-search,.catalog-search.series-search{grid-template-columns:1fr 1fr}.catalog-search .event-search-button{grid-column:1/-1}.detail-layout{grid-template-columns:minmax(0,1fr) 280px;gap:25px}.race-card{flex-direction:column;gap:15px}.schedule-list li{grid-template-columns:1fr;gap:12px}.event-overview-facts{grid-template-columns:1fr;gap:20px}}
@media(max-width:760px){.catalog-hero h1{font-size:47px}.catalog-breadcrumb{margin-bottom:28px}.catalog-grid{grid-template-columns:1fr}.catalog-card{padding:24px}.catalog-card h3{font-size:22px}.catalog-search,.catalog-search.series-search{gap:22px;padding:22px}.catalog-search>.catalog-field:first-child{grid-column:1/-1}.catalog-search .event-search-button{margin:0}.catalog-card-bottom>strong{font-size:19px}.catalog-hero{padding-bottom:58px}.detail-hero{padding-bottom:35px}.detail-hero h1{font-size:38px;line-height:1.12}.detail-hero .events-hero-art{inset:0 0 0 18%;opacity:.3}.detail-hero .catalog-subtitle{font-size:14px}.meta-separator{padding:0 9px}.detail-layout{display:flex;flex-direction:column;gap:0}.detail-main,.detail-sidebar{width:100%}.detail-sidebar{padding-top:15px}.detail-section{padding:30px 0}.detail-section h2{font-size:28px;margin-bottom:23px}.detail-nav{gap:17px;padding:20px 0}.detail-nav a{font-size:12px}.detail-nav .back-to-list{margin-left:0}.event-overview-facts{grid-template-columns:1fr 1fr;gap:22px}.rich-description{font-size:14px}.detail-panel{padding:25px}.flyer-panel .catalog-image img{max-height:450px}.standings-heading{display:block}.standings-source{display:block;text-align:left;margin:-8px 0 23px;max-width:none}.standings-filters{padding:20px;gap:17px}.standings-filters .catalog-field{min-width:100%;flex-basis:100%}.standings-filters .button{width:100%}.standings-table td,.standings-table tbody th,.standings-table thead th{padding:15px}.membership-facts{grid-template-columns:1fr}.organization-heading h3{font-size:20px}.detail-content{padding-bottom:45px}}
@media(max-width:380px){.catalog-hero h1{font-size:39px}.catalog-search,.catalog-search.series-search{grid-template-columns:1fr;padding:19px}.catalog-search>.catalog-field:first-child{grid-column:auto}.catalog-card{padding:21px}.catalog-card-bottom{flex-wrap:wrap}.detail-hero h1{font-size:33px}.event-overview-facts{grid-template-columns:1fr}.catalog-badge{font-size:12px}.catalog-card-top{gap:10px}.detail-nav{gap:15px}.organization-heading{gap:15px}}
/* Detail pages: plain section headings, no eyebrow labels above them. */
.livelaps-page.events-page .detail-content :is(.detail-section,.detail-panel) .eyebrow{display:none}.livelaps-page.events-page .detail-section h2{font-size:clamp(22px,2vw,28px);letter-spacing:-.025em}.livelaps-page.events-page .detail-panel h2{font-size:20px}

/* Series standings: the race leaderboard table and class tabs. */
.race-class-tabs{display:flex;gap:4px;margin-top:22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.race-class-tabs::-webkit-scrollbar{display:none}.race-class-tabs a{flex:none;padding:12px 22px;font-size:16px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.race-class-tabs a:hover{color:var(--navy)}.race-class-tabs a[aria-current]{color:var(--navy);border-bottom-color:var(--brand)}.lb-scroll{border:1px solid var(--line);border-radius:12px;background:var(--white);overflow-x:auto}.leaderboard{width:100%;border-collapse:collapse;font-size:15px;color:var(--navy);font-variant-numeric:tabular-nums}.leaderboard thead th{position:sticky;top:0;padding:12px 14px;text-align:left;font-size:13px;font-weight:600;color:var(--muted);background:var(--white);border-bottom:1px solid var(--line);white-space:nowrap}.leaderboard td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.lb-entry:last-child .lb-row td{border-bottom:0}.lb-entry:hover .lb-row td{background:var(--canvas)}.lb-entry.is-open .lb-row td{background:var(--canvas);border-bottom-color:transparent}.lb-entry.comparison-selected .lb-row td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.lb-pos{width:96px}.lb-pos strong{font-size:18px;font-weight:700}.lb-pos sup{font-size:11px;font-weight:600;margin-left:1px;vertical-align:baseline}.lb-pos small{font-size:13px;font-weight:700;color:var(--brand-strong)}.lb-change{display:inline-flex;align-items:center;gap:2px;margin-left:10px;font-size:12px;font-weight:600}.lb-change span{font-size:9px}.lb-change.up{color:color-mix(in srgb,#15803d var(--ink-keep),#fff)}.lb-change.down{color:color-mix(in srgb,#b91c1c var(--ink-keep),#fff)}.lb-gap{color:var(--text-secondary)}.lb-rider{white-space:normal!important;min-width:180px}.lb-rider-meta{display:block;font-size:13px;color:var(--muted)}.lb-rider-name{font-weight:600;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}.lb-rider-name:hover{color:var(--brand);text-decoration-color:currentColor}.lb-mobile-gap{display:none}.lb-brand{color:var(--text-secondary)}.lb-time{text-align:left}.lb-fastest{color:color-mix(in srgb,#7c3aed var(--ink-keep),#fff);font-weight:700}.lb-actions{width:1%;text-align:right}.lb-actions>*{vertical-align:middle}.lb-actions .rider-compare{display:inline-flex;align-items:center;padding:5px 10px;font-size:13px;font-weight:500;color:var(--text-secondary);border:1px solid var(--line);border-radius:7px;background:var(--white);white-space:nowrap}.lb-actions .rider-compare:hover{border-color:var(--navy);color:var(--navy)}.lb-actions .rider-compare.is-selected{border-color:var(--brand);color:var(--brand-strong)}.lb-toggle{display:inline-grid;place-items:center;width:32px;height:32px;margin-left:6px;border:0;border-radius:7px;background:none;color:var(--muted)}.lb-toggle:hover{background:var(--surface-soft);color:var(--navy)}.lb-toggle svg{width:20px;transition:transform .2s}.lb-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.lb-detail>td{padding:4px 14px 18px!important;background:var(--canvas);white-space:normal!important}.lb-detail .rider-detail{border:0;margin:0;padding:0;background:none}@media(max-width:760px){.race-class-tabs a{padding:11px 16px;font-size:15px}.leaderboard{font-size:14px}.leaderboard .lb-optional,.leaderboard .lb-gap{display:none}.leaderboard td,.leaderboard thead th{padding:10px 8px}.lb-pos{width:62px}.lb-change{display:flex;margin:2px 0 0}.lb-rider{min-width:0}.lb-mobile-gap{display:block;font-size:13px;color:var(--muted)}.lb-actions .rider-compare{padding:4px 8px}.lb-toggle{margin-left:2px}}.leaderboard .lb-actions .rider-compare{min-width:0;min-height:0;width:auto;height:32px;padding:0 10px;font-size:13px}@media(max-width:1180px){.leaderboard .lb-state{display:none}}@media(max-width:760px){.leaderboard .lb-actions .rider-compare{width:32px;padding:0;font-size:0}}@media(max-width:760px){.lb-detail>td{padding:4px 8px 14px!important}.lb-detail .rider-detail{width:calc(100vw - 50px);max-width:100%}.lb-detail .timing-scroll{overflow-x:auto}.lb-detail .rider-timing-summary{flex-wrap:wrap;gap:12px 20px}}.lb-brand-logo{display:block;width:34px;height:22px;object-fit:contain}.lb-brand-logo:not([hidden])+.lb-brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.standings-class-tabs{margin-top:8px}.standings-views{display:inline-flex;gap:2px;padding:4px;margin-top:6px;border-radius:10px;background:var(--surface-soft)}.standings-views a{padding:8px 14px;border-radius:7px;font-size:14px;font-weight:500;color:var(--muted)}.standings-views a[aria-current]{background:var(--white);color:var(--navy);font-weight:600;box-shadow:0 1px 3px #10213a1f}
.series-standings .lb-scroll{margin-top:14px}.standings-table.leaderboard th,.standings-table.leaderboard td{background:none}.standings-table .numeric{text-align:right}.standings-table .round-cell{min-width:52px;color:var(--text-secondary)}.standings-table .round-cell small{display:block;font-size:12px;color:var(--muted)}.standings-table .standing-points strong{font-size:16px;color:var(--navy)}.standings-table .standing-position strong{color:var(--navy)}.standings-table th[scope=row]{font-weight:400;text-align:left}
@media(max-width:760px){.standings-table .round-cell{min-width:44px}}
.series-standings .standings-table.leaderboard thead,.series-standings .standings-table.leaderboard thead th{background:var(--white);color:var(--muted)}.series-standings .standings-table.leaderboard tbody th,.series-standings .standings-table.leaderboard tbody td{background:transparent;box-shadow:none}
/* Event registrations and the promoter's apps, restored from sites.livelaps.com. */
.registrant-search{display:flex;gap:10px;margin:14px 0 4px;max-width:520px}.registrant-search input{flex:1;min-width:0;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--navy);font:inherit;font-size:15px}.registrant-search input:focus{outline:2px solid var(--brand);outline-offset:1px}
.registrants-table .numeric{text-align:right;width:70px}.registrants-table th[scope=row]{font-weight:400;text-align:left}.waiting-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:color-mix(in srgb,#f59e0b var(--tint-keep),var(--white));color:color-mix(in srgb,#92400e var(--ink-keep),#fff)}
#registrations .lb-scroll{margin-top:12px}#registrations .event-pagination{margin-top:12px}
.app-panel .app-name{margin-top:6px;font-size:15px;font-weight:600;color:var(--navy)}.store-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.store-badges img{display:block;height:40px;width:auto}
.registrants-table .lb-rider-name{text-decoration:none}
.membership-tabs{margin:0 0 14px}.membership-table th[scope=row]{font-weight:400;text-align:left}.membership-table .lb-rider-name{text-decoration:none}.numbers-left{display:block;font-size:12px;color:var(--muted)}
.race-plate{display:inline-grid;place-items:center;min-width:44px;height:30px;padding:0 8px;margin-right:10px;border-radius:6px;background:var(--plate,var(--surface-soft));color:var(--plate-text,var(--navy));font-weight:800;font-size:14px;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px #10213a22;vertical-align:middle}.membership-table th[scope=row] .race-plate{float:left}
.race-plate.empty{background:none;box-shadow:none;color:var(--muted);font-weight:500}
.choose-organization{padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.choose-organization h3{font-size:20px;color:var(--navy)}.choose-organization p{margin-top:6px;color:var(--muted)}.choose-organization ul{list-style:none;margin:16px 0 0;padding:0;columns:3 260px;column-gap:24px}.choose-organization li{break-inside:avoid}.choose-organization a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-weight:500;color:var(--navy)}.choose-organization a:hover{color:var(--brand)}.choose-organization svg{width:16px;flex:none}
.membership-table tbody th,.registrants-table tbody th{background:transparent}
/* Event and series sections as tabs. */
.livelaps-page.events-page .detail-nav[role=tablist]{gap:4px;padding:0;overflow-x:auto;scrollbar-width:none}.livelaps-page.events-page .detail-nav[role=tablist]::-webkit-scrollbar{display:none}
.livelaps-page.events-page .detail-nav [role=tab]{flex:none;padding:14px 16px;font-size:16px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.livelaps-page.events-page .detail-nav [role=tab]:hover{color:var(--navy)}.livelaps-page.events-page .detail-nav [role=tab][aria-selected=true]{color:var(--navy);border-bottom-color:var(--brand)}
.livelaps-page.events-page .detail-nav .back-to-list{margin-left:auto;flex:none}
@media(max-width:760px){.livelaps-page.events-page .detail-nav [role=tab]{padding:12px 12px;font-size:15px}}
.lb-brand-logo{width:72px;height:38px;object-fit:contain;object-position:left center}.leaderboard .lb-brand{min-width:84px}
@media(max-width:760px){.lb-brand-logo{width:52px;height:30px}}
/* Whole cards are clickable: the card's main link covers it, other controls sit above. */
.catalog-card{position:relative}.catalog-card h3 a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.catalog-card-bottom a{position:relative;z-index:2}
.race-card{position:relative}.race-card>a.text-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.race-card details,.race-card summary{position:relative;z-index:2}
.race-card:has(>a.text-link):hover{border-color:var(--border-strong);box-shadow:0 6px 20px rgb(var(--navy-rgb) / .06)}
.catalog-card:has(a:focus-visible),.race-card:has(a:focus-visible),.event-row:has(.event-main:focus-visible){outline:3px solid var(--brand);outline-offset:3px}.catalog-card a:focus-visible,.race-card a:focus-visible,.event-main:focus-visible{outline:none}

/* Brand logos: large, no backing; a faint outline keeps dark logos visible in dark mode. */
.leaderboard .lb-brand-logo{width:96px;height:44px}.leaderboard .lb-brand{min-width:108px}
.dark :scope .lb-brand-logo{filter:drop-shadow(0 0 1px rgba(255,255,255,.75)) drop-shadow(0 0 3px rgba(255,255,255,.18))}
@media(max-width:760px){.leaderboard .lb-brand-logo{width:60px;height:32px}}
/* Row headers (the name column) get the same lines and spacing as the other cells. */
.leaderboard tbody th{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left;font-weight:400}.leaderboard tbody.lb-entry:last-child .lb-row th,.leaderboard tbody tr:last-child th{border-bottom:0}
@media(max-width:760px){.leaderboard tbody th{padding:10px 8px}}
/* Registration countdown, as on sites.livelaps.com. */
.reg-countdown{display:flex;flex-direction:column;gap:6px;margin:4px 0 18px;padding:14px 16px;border-radius:10px;border:1px solid color-mix(in srgb,var(--brand) var(--tint-keep),var(--line));background:color-mix(in srgb,#fdf1ec var(--tint-keep),var(--white));color:var(--navy);transition:border-color .2s}.reg-countdown:hover{border-color:var(--brand)}
.reg-countdown.opens{border-color:var(--line);background:var(--canvas)}.reg-countdown-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-strong)}.reg-countdown.opens .reg-countdown-label{color:var(--text-secondary)}
.reg-countdown-time{display:flex;gap:12px;font-size:14px;color:var(--muted);min-height:32px}.reg-countdown-time strong{font-size:26px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;margin-right:1px}.reg-countdown-date{font-size:13px;color:var(--muted)}
.detail-facts dd{margin:0}
.standings-table .round-cell strong{display:block;font-weight:700;color:var(--navy)}.standings-table .round-cell small{display:block;font-size:12px;color:var(--muted)}
.standings-table .round-bonus{display:block;font-size:12px;font-weight:600;color:var(--brand-strong)}.standings-table .round-dropped strong{text-decoration:line-through;color:var(--muted)}
.policy-page{padding:28px 0 72px}.policy-page .race-back{display:inline-flex;margin-bottom:18px}
.policy-title{margin:0 0 8px;font-size:clamp(28px,4vw,40px);color:var(--navy)}.policy-meta{margin:4px 0 22px;font-size:14px}.policy-fallback{margin-bottom:18px}
.policy-document{padding:28px;line-height:1.75}.policy-document h2,.policy-document h3{margin:22px 0 10px}.policy-document p{margin:0 0 14px}.policy-document ul,.policy-document ol{margin:0 0 14px;padding-left:22px}
/* Event and series titles that switch, like the race title (race.css .race-picker). */
.title-picker{position:relative;z-index:5;margin:10px 0 6px}.title-picker summary{border-bottom-color:var(--line)}.title-picker summary h1{margin:0}
.title-picker summary svg{width:26px;height:26px;flex:none}
.title-picker .race-switcher{color:var(--navy);width:min(440px,calc(100vw - 32px))}
.race-switcher .switcher-check{display:inline-flex;flex:none;width:16px;height:16px;margin-top:3px;color:var(--brand)}.race-switcher .switcher-check svg{width:16px;height:16px}
.race-switcher-more{margin:4px 6px 2px;padding:9px 10px;border:0;border-top:1px solid var(--line);background:none;font:inherit;font-size:14px;font-weight:600;color:var(--brand-strong);cursor:pointer;text-align:center}
.race-switcher-more:disabled{opacity:.6;cursor:wait}
.dark :scope .title-picker summary{border-bottom-color:#ffffff30}
/* A title switcher opens over the content below, so the header lets it out and crops only its art. */
.events-hero.detail-hero:has(.title-picker){overflow:visible;z-index:6}.events-hero.detail-hero:has(.title-picker) .events-hero-art{overflow:hidden}
.events-hero .title-picker summary>svg{width:24px;height:24px;overflow:visible;color:var(--muted)}
.race-switcher a small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.race-switcher a>span{min-width:0}
/* Event registration states, as on the old site. */
.button-disabled{background:var(--surface-soft);color:var(--muted);border-color:var(--line);cursor:not-allowed}
.registration-alert{margin:10px 0 0;padding:10px 12px;font-size:14px;line-height:1.6;color:color-mix(in srgb,#b91c1c var(--ink-keep),#fff);background:color-mix(in srgb,#b91c1c 10%,transparent);border-radius:8px}
.registration-note{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.catalog-badge.badge-cancelled{border-color:#f87171;color:#fecaca;background:#7f1d1d66}
.event-cancelled{margin:0 0 24px;border-left:3px solid #dc2626}
.spectator-panel h2{margin:0 0 8px}.spectator-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 16px;font-size:14px;color:var(--text-secondary)}
.series-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:18px}
.series-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.series-card h3{margin:0 0 8px;font-size:16px}.series-card h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}.series-card p{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--muted)}
.series-card:hover{border-color:var(--navy)}
.card-search{width:min(360px,100%);margin-top:14px;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--navy);font:inherit;font-size:15px}
/* Event race cards, laid out as the old site's: start time, track image, type, name and score state. */
.race-list .race-card{display:grid;grid-template-columns:auto 168px minmax(0,1fr);align-items:stretch;gap:0;padding:0;overflow:hidden;border-radius:12px}
.race-list .race-card:not(:has(.race-card-time)){grid-template-columns:168px minmax(0,1fr)}
.race-card-time{display:flex;flex-direction:column;align-items:center;justify-content:center;width:112px;padding:12px;border-right:1px solid var(--line);text-align:center}
.race-card-time span{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.race-card-time strong{margin-top:4px;font-size:22px;font-weight:800;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.race-card-time small{margin-top:8px;font-size:11px;color:var(--muted)}
.race-card-image{position:relative;min-height:126px;background:var(--surface-soft)}
.race-card-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* No race picture: the white LiveLaps wordmark on the header navy, in both themes. */
.race-card-image.is-logo{background:#16233b}.race-card-image.is-logo img{object-fit:contain;padding:28px 32px;opacity:.9}
.race-list .race-card .race-card-body{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:16px 22px}
.race-card-type{margin:0!important;font-size:11px!important;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.race-card-type span{margin:0 6px;opacity:.5}.race-card-type b{color:var(--brand-strong)}
.race-list .race-card h3{margin:0;font-size:18px;line-height:1.3}.race-list .race-card h3 a{color:var(--navy)}
.race-list .race-card h3 a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.race-card-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0!important;font-size:14px!important}
.race-action{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:13px;font-weight:600;color:var(--text-secondary)}.race-action svg{width:14px;height:14px}
.race-card:hover .race-action:not(.race-pending):not(.race-unscored){color:var(--brand-strong)}
.race-pending{align-self:flex-start;padding:3px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.race-unscored{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.race-card.is-pending{border-style:dashed}.race-card.is-pending .race-card-image img{opacity:.6;filter:grayscale(1)}.race-card.is-pending h3 a{color:var(--muted)}
.race-list .race-card:has(h3 a):hover{border-color:var(--border-strong)}
.race-list .race-card[hidden]{display:none}
@media(max-width:700px){.race-list .race-card,.race-list .race-card:not(:has(.race-card-time)){grid-template-columns:96px minmax(0,1fr)}.race-card-time{width:auto;grid-row:1}.race-card-image{display:none}.race-list .race-card .race-card-body{padding:14px 16px}}
.card-search+.race-list,.card-search+.series-cards{margin-top:14px}
.standings-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.print-button{display:inline-flex;align-items:center;min-height:38px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.print-button:hover{border-color:var(--navy)}.print-button:disabled{opacity:.6;cursor:wait}
@media print{.print-button{display:none}}
/* Series standings filters and table controls, after the old site's. */
.standings-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 4px}
.filter-bar-label{font-size:13px;font-weight:600;color:var(--muted);margin-right:4px}
.filter-count{display:inline-flex;padding:1px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-strong);font-size:12px;font-weight:600}
.filter-multi{position:relative}.filter-multi summary{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);font-size:14px;font-weight:500;color:var(--navy);cursor:pointer;list-style:none}
.filter-multi summary::-webkit-details-marker{display:none}.filter-multi summary::after{content:"⌄";margin-left:2px;color:var(--muted)}
.filter-multi[open] summary{border-color:var(--navy)}
.filter-multi-panel{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:min(320px,calc(100vw - 32px));padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--white);box-shadow:0 16px 40px #10213a24}
.filter-multi-search{width:100%;min-height:36px;margin-bottom:6px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:14px}
.filter-multi-panel ul{max-height:260px;overflow:auto;margin:0;padding:0;list-style:none}
.filter-multi-panel label{display:flex;align-items:flex-start;gap:9px;padding:6px 6px;border-radius:6px;font-size:14px;color:var(--navy);cursor:pointer}.filter-multi-panel label:hover{background:var(--canvas)}
.filter-multi-panel input{margin-top:3px;accent-color:var(--brand)}.filter-multi-panel small{display:block;font-size:12px;color:var(--muted)}
.standings-table .sort-head{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}
.standings-table .sort-head span[aria-hidden]{font-size:11px;color:var(--muted)}.standings-table th[aria-sort] .sort-head{color:var(--navy)}.standings-table th[aria-sort] .sort-head span[aria-hidden]{color:var(--brand)}
.standings-table .round-cell .sort-head{flex-direction:column;align-items:center;gap:0;line-height:1.25}.round-line{display:block;max-width:96px;overflow:hidden;text-overflow:ellipsis}
/* The footer inside a table's own card or panel sits closer to the table than a page's list footer does. */
[data-page-item][hidden]{display:none!important}.pager-error{margin:12px 0 0;font-size:13px}
.paged-box>.table-pager,[data-paged-footer]>.table-pager,.season-card .table-pager,.registrations .table-pager{margin-top:14px}.race-order-race .table-pager{margin:12px 18px 16px}
/* Event schedule, after the old site's: list by day with live status, and a calendar view. */
.schedule-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.schedule-block{margin-top:20px}.schedule-block h3{margin:0 0 10px;font-size:17px}
.schedule-table{width:100%}.schedule-table td{vertical-align:top}.schedule-table td small{display:block;margin-top:3px;font-size:13px;color:var(--muted);white-space:normal}
.schedule-day td{padding:10px 14px!important;background:var(--surface-soft)!important;font-weight:600;color:var(--navy)}
.schedule-time{white-space:nowrap;font-variant-numeric:tabular-nums}
.schedule-mark{display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:1.5px solid var(--muted);border-radius:50%}
[data-schedule-status=past] .schedule-mark{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 2px var(--white)}
[data-schedule-status=current] :is(.schedule-time,strong){font-weight:800}
.schedule-done{display:none}[data-schedule-status=past] .schedule-done{display:inline}
.schedule-item.is-highlighted td{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.schedule-progress{display:block;height:3px;margin-top:8px;border-radius:2px;background:color-mix(in srgb,var(--brand) 20%,transparent);overflow:hidden}.schedule-progress span{display:block;height:100%;background:var(--brand)}
.schedule-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.schedule-day-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.schedule-day-card h4{margin:0;font-size:16px}.schedule-day-card .muted{margin:4px 0 14px;font-size:13px}
.schedule-timeline{position:relative}
.schedule-tick{position:absolute;left:0;right:0;display:flex;align-items:center;gap:12px;transform:translateY(-50%)}.schedule-tick span{width:48px;flex:none;font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.schedule-tick::after{content:"";flex:1;border-top:1px solid var(--line)}
.schedule-event{position:absolute;left:64px;right:0;display:flex;flex-direction:column;gap:3px;padding:8px;overflow:hidden;border-left:4px solid;border-radius:6px;font-size:14px}
.schedule-event strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.schedule-event .schedule-time{font-size:12px;color:var(--muted)}.schedule-event small{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.schedule-event.accent-0{border-color:var(--brand);background:#c7431f1a}.schedule-event.accent-1{border-color:#2563eb;background:#2563eb1a}.schedule-event.accent-2{border-color:#15803d;background:#15803d1a}.schedule-event.accent-3{border-color:#7c3aed;background:#7c3aed1a}.schedule-event.accent-4{border-color:#b45309;background:#b453091a}
.schedule-event.is-highlighted{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent)}
/* Race order (start grids), after the old site's. */
.race-order-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin:12px 0 16px}
.race-order-select{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}.race-order-select select{min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:15px}
.race-order-race{margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden}
.race-order-race summary{display:flex;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;list-style:none}.race-order-race summary::-webkit-details-marker{display:none}
.race-order-race summary span{flex:none;font-size:13px;color:var(--muted)}.race-order-race[open] summary{border-bottom:1px solid var(--line)}
.race-order-race .lb-scroll{border:0;border-radius:0}.race-order-race .detail-notice{margin:14px}
.race-order-more{margin:10px 18px 14px}.race-order>.race-order-more{margin:8px 0 0}
/* Event report, after the old site's: figures, breakdowns, race timeline and position changes. */
.event-report{display:grid;gap:18px;margin-top:14px}.event-report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.report-kpi{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.report-kpi span{font-size:13px;color:var(--muted)}.report-kpi strong{font-size:28px;line-height:1.1;color:var(--navy)}.report-kpi small{font-size:13px;color:var(--text-secondary)}.report-kpi-footer{margin-top:6px;font-weight:600}
.report-countries{display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none}.report-countries li{display:flex;justify-content:space-between;gap:12px;font-size:14px}.report-countries span{color:var(--muted)}
.timeline-day{margin-top:16px}.timeline-day h4{margin:0 0 8px;font-size:15px}
.timeline-row{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.timeline-label strong{display:block;font-size:14px}.timeline-label small{display:block;font-size:12px;color:var(--muted)}
.timeline-track{position:relative;height:12px;border-radius:6px;background:var(--surface-soft)}.timeline-bar{position:absolute;top:0;bottom:0;border-radius:6px;background:var(--brand)}.timeline-marker{position:absolute;top:-3px;width:4px;height:18px;border-radius:2px;background:var(--brand)}
.report-passing-table .numeric{text-align:right}.net-1{color:color-mix(in srgb,#15803d var(--ink-keep),#fff)}.net--1{color:color-mix(in srgb,#b91c1c var(--ink-keep),#fff)}
@media(max-width:640px){.timeline-row{grid-template-columns:1fr}}
.event-report .chart-legend-list li span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.event-report .chart-legend-list li[hidden]{display:none}.legend-toggle{margin-top:10px;font-size:14px}
.event-report .donut-wrap{display:grid!important;grid-template-columns:1fr!important;justify-items:center;gap:16px}
.event-report .donut-wrap .donut{width:180px;max-width:100%}
.event-report .donut-wrap .chart-legend-list{width:100%}
.event-report .chart-legend-list li span{overflow-wrap:normal;word-break:normal}
.legend-toggle{display:block;margin:12px auto 0;padding:0;border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--brand-strong);cursor:pointer}
/* Registrations tab (as on sites.livelaps.com) */
.registrations-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}
.registrations-summary{display:flex;flex-wrap:wrap;gap:22px;margin:0;font-size:15px;font-weight:500;color:var(--muted)}.registrations-summary>span:first-child{color:var(--navy)}.registrations-summary strong{font-size:18px;font-weight:700}
.registrations-view{margin:0 0 12px}.registrations-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px}
.open-rows{margin:0 0 14px;font-size:13px}.open-rows summary{cursor:pointer;color:var(--muted)}.open-rows>div{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.open-rows>div>span{display:inline-flex;align-items:center;height:28px;padding:0 7px;border-radius:4px;background:var(--canvas);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.open-rows small{align-self:center;padding:0 4px}
.registrants-table .center{text-align:center}.registrants-table .mono,.filter-multi-panel .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.registrant-check{color:var(--brand);font-weight:700}.registrant-cross{color:#dc2626}
.registrants-table .waiting-badge{margin-left:0}
.registrations-filter .filter-multi-panel label>span{display:flex;flex:1;justify-content:space-between;gap:10px}.registrations-filter .filter-multi-panel small{display:inline;font-variant-numeric:tabular-nums}
/* Race results index and promoters directory (as on sites.livelaps.com) */
.results-index-table td,.results-index-table th{text-align:left}.results-index-table td:first-child{white-space:nowrap;color:var(--muted)}.results-index-table td:last-child{white-space:nowrap;text-align:right}
.promoter-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.promoter-card{display:flex;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;color:var(--navy)}.promoter-card>svg{margin-left:auto;flex:none;width:18px;color:var(--muted)}
.promoter-avatar{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--canvas);font-weight:700;font-size:20px;color:var(--muted)}.promoter-avatar img{width:100%;height:100%;object-fit:contain}
.promoter-card-text{display:flex;flex-direction:column;gap:3px;min-width:0}.promoter-card-text strong{overflow-wrap:anywhere}.promoter-card-text small{color:var(--muted);font-size:13px}
/* Season report (as on sites.livelaps.com/season-report) */
.season-period{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 0;color:#ffffffcc;font-size:14px}.season-back{margin:0 0 14px;color:#fff}
.season-promoters{margin:18px 0 4px;max-width:860px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--navy)}.season-promoters summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:14px 16px;cursor:pointer;list-style:none}.season-promoters summary::-webkit-details-marker{display:none}.season-promoters summary .eyebrow{margin:0}.season-promoters summary strong{font-size:18px}.season-selected{margin-left:auto;font-size:14px}
.season-promoters-panel{padding:0 16px 16px}.season-promoters-panel p{margin:0 0 10px;color:var(--muted);font-size:14px}.season-promoters-panel input{width:100%;min-height:40px;margin-bottom:10px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit}
.season-promoters-panel ul{display:grid;gap:6px;margin:0 0 10px;padding:0;list-style:none}.season-promoters-panel li a{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;color:var(--navy);text-decoration:none}.season-promoters-panel li a:hover,.season-promoters-panel li a[aria-current]{background:var(--surface-soft)}.season-promoters-panel li a>span:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.season-promoters-panel small{color:var(--muted)}.season-promoters-panel .text-link{color:var(--brand-strong);font-size:13px}.season-promoters-panel .promoter-avatar{width:40px;height:40px;border-radius:8px;background:#fff;border:1px solid var(--line)}
.season-report{display:flex;flex-direction:column;gap:20px;max-width:1040px;margin:0 auto}.season-report .season-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.season-card{padding:20px 22px;border:1px solid var(--line);border-radius:14px;background:var(--white)}.season-card header{margin:0 0 16px}.season-card h2{margin:0;font-size:20px;color:var(--navy)}.season-card h2 a{color:inherit}.season-card header p{margin:6px 0 0;color:var(--muted);font-size:14px}.season-loading{padding:28px 0;text-align:center;color:var(--muted)}
.season-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.season-tile{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}.season-tile span,.season-tile dt{display:block;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--muted)}.season-tile strong,.season-tile dd{display:block;margin:4px 0 0;font-size:20px;font-weight:700;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.season-tile small{font-size:12px;color:var(--muted)}
.season-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 12px;padding:0;list-style:none;font-size:12px;color:var(--muted)}.season-legend i{display:inline-block;width:12px;height:12px;margin-right:6px;border-radius:3px;vertical-align:-2px}
.season-repeat{display:grid;gap:10px}.season-repeat-row{display:grid;grid-template-columns:13rem 1fr 5rem;align-items:center;gap:10px}.season-repeat-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.season-repeat-row small{font-size:12px;color:var(--muted)}
.season-repeat-bar{display:flex;height:32px;overflow:hidden;border-radius:6px;background:var(--canvas)}.season-repeat-bar span{display:flex;align-items:center;justify-content:center;min-width:3px;color:#fff;font-size:12px;font-weight:600}.season-repeat-total{text-align:right;font-size:14px;color:var(--muted)}.season-repeat-total strong{display:inline;color:var(--navy)}
.season-chips{display:flex;flex-wrap:wrap;gap:6px}.season-chips>span{padding:3px 8px;border-radius:6px;background:var(--canvas);color:var(--navy);font-size:12px}.season-chips small{color:var(--muted)}
.season-donut{display:block}.season-age-class{display:block;margin:-6px 0 14px}.season-age-class select{min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit}.season-age-figures{grid-template-columns:repeat(3,minmax(0,1fr))}
.season-age-chart{display:flex;align-items:flex-end;gap:8px;height:220px;padding-top:20px}.season-age-chart>div{display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;min-width:0}.season-age-chart span{width:100%;max-width:56px;min-height:2px;border-radius:4px 4px 0 0;background:var(--brand)}.season-age-chart strong{font-size:12px;color:var(--navy)}.season-age-chart small{font-size:11px;color:var(--muted);text-align:center}
.season-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.season-list-title{margin:0 0 10px;font-size:14px}.season-riders{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:10px}.season-riders li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--line)}.season-riders li:first-child{border-top:0}
.season-rank{width:20px;text-align:right;font-size:12px;color:var(--muted)}.season-rider{display:flex;flex-direction:column;flex:1;min-width:0}.season-rider small{font-size:12px;color:var(--muted)}.season-value{text-align:right}.season-value strong{display:block}.season-value small{font-size:12px;color:var(--muted)}
.net-1{color:#059669}.net--1{color:#dc2626}.season-share{display:block;height:8px;overflow:hidden;border-radius:999px;background:var(--canvas)}.season-share span{display:block;height:100%;border-radius:999px}.season-podiums th[scope=row]{display:flex;align-items:center;gap:8px;font-weight:500}
.season-events,.season-races{display:grid;gap:8px}.season-races{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.season-event{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;color:var(--navy);text-decoration:none}.season-event:hover{border-color:var(--brand)}.season-event>span:first-child{display:flex;flex-direction:column;min-width:0}.season-event small{margin-top:3px;font-size:13px;color:var(--muted)}.season-event.no-results{opacity:.7}.season-event .catalog-badge{margin-left:auto}
.season-compare-row{padding:14px 0;border-top:1px solid var(--line)}.season-compare-row:first-child{border-top:0}.season-compare-head{display:grid;grid-template-columns:1fr auto minmax(220px,300px);align-items:start;gap:14px}.season-compare-head>div:first-child{display:flex;flex-direction:column}.season-compare-head small{font-size:13px;color:var(--muted)}.season-compare-head p{margin:0;color:var(--muted)}.season-compare-head p strong{font-size:20px;color:var(--navy)}
.season-compare-pick{position:relative;display:flex;flex-wrap:wrap;gap:6px}.season-compare-pick input{flex:1;min-width:0;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:14px}.season-compare-results{position:absolute;z-index:10;top:40px;left:0;right:0;display:grid;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--white);box-shadow:0 16px 40px #10213a24}.season-compare-results button{display:flex;flex-direction:column;align-items:flex-start;padding:8px;border:0;border-radius:6px;background:none;color:var(--navy);font:inherit;text-align:left;cursor:pointer}.season-compare-results button:hover{background:var(--canvas)}
.season-compare-item{display:grid;grid-template-columns:1fr auto;gap:6px 14px;margin-top:10px;padding:12px;border-radius:10px;background:var(--canvas)}.season-compare-item>div:first-child{display:flex;flex-direction:column}.season-compare-delta{text-align:right}.season-compare-delta strong{font-size:18px}.season-compare-delta small{display:block;color:var(--muted)}
.season-compare-bars{grid-column:1/-1;display:grid;gap:6px}.season-compare-bars>div{display:flex;align-items:center;gap:10px}.season-compare-bars span{height:12px;border-radius:3px;background:color-mix(in srgb,var(--muted) 50%,transparent)}.season-compare-bars span.current{background:var(--brand)}.season-compare-bars small{font-size:12px}
@media(max-width:760px){.season-report .season-kpis,.season-tiles{grid-template-columns:1fr 1fr}.season-columns,.season-compare-head{grid-template-columns:1fr}.season-repeat-row{grid-template-columns:1fr auto}.season-repeat-bar{grid-column:1/-1}}
.season-locations{display:grid;grid-template-columns:minmax(200px,260px) 1fr;align-items:start;gap:18px}.season-locations .donut{width:100%;max-width:240px}.season-locations .legend-toggle{grid-column:2}.season-location-legend .season-country{padding-top:8px;font-weight:600;color:var(--navy)}.season-location-legend .season-country:first-child{padding-top:0}.season-location-legend .season-country span{grid-column:1/3}
@media(max-width:760px){.season-locations{grid-template-columns:1fr}.season-locations .legend-toggle{grid-column:1}}
/* Event image in the hero, opening full screen (as on the old event page) */
.detail-hero .wrap{position:relative}.hero-image{position:absolute;top:56px;right:0;width:320px;padding:0;border:0;border-radius:14px;overflow:hidden;background:var(--surface-soft);cursor:zoom-in}.hero-image{height:240px}.hero-image img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;transition:transform .3s}.hero-image:hover img{transform:scale(1.02)}
.hero-image-zoom{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#10213acc;color:#fff;opacity:0;transition:opacity .2s}.hero-image:hover .hero-image-zoom,.hero-image:focus-visible .hero-image-zoom{opacity:1}.hero-image-zoom svg{width:16px;height:16px}
.detail-hero .wrap>h1,.detail-hero .wrap>details,.detail-hero .catalog-subtitle,.detail-hero .hero-badges{max-width:calc(100% - 360px)}
@media(max-width:900px){.hero-image{position:static;display:block;width:100%;max-width:420px;margin:20px 0 0}.detail-hero .wrap>h1,.detail-hero .wrap>details,.detail-hero .catalog-subtitle,.detail-hero .hero-badges{max-width:none}}
.image-lightbox{width:96vw;max-width:96vw;height:96vh;max-height:96vh;padding:0;border:0;background:transparent;overflow:visible}.image-lightbox::backdrop{background:#05080fe6}
.lightbox-stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:auto;cursor:zoom-out}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;cursor:default}.image-lightbox.is-zoomed .lightbox-stage{align-items:flex-start;justify-content:flex-start}.image-lightbox.is-zoomed .lightbox-stage img{max-width:none;max-height:none}
.lightbox-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:#10213acc;color:#fff;cursor:pointer}.lightbox-close svg,.lightbox-controls svg{width:18px;height:18px}
.lightbox-controls{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:#10213ae6;color:#fff}.lightbox-controls button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer}.lightbox-controls button:hover{background:#ffffff1f}.lightbox-controls span{min-width:48px;text-align:center;font-size:12px;font-weight:600}
.detail-hero .wrap:has(>.hero-image){min-height:320px}@media(max-width:900px){.detail-hero .wrap:has(>.hero-image){min-height:0}}
/* The event image shows whole, never cropped */
.hero-image{width:auto;max-width:320px;height:auto;background:none}.hero-image img{width:auto;max-width:100%;height:auto;max-height:240px;object-fit:contain}
@media(max-width:900px){.hero-image{max-width:100%}.hero-image img{max-height:320px}}
.hero-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap}.hero-title-row .title-picker,.hero-title-row h1{min-width:0}.hero-title-row .print-button{flex:none}
.series-standings{padding-top:8px}
/* Dropdown chevrons: the icon set's chevron, not a text character. */
.filter-multi summary::after{content:"";width:14px;height:14px;margin-left:2px;background:currentColor;color:var(--muted);-webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>') center/contain no-repeat;mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>') center/contain no-repeat}
.filter-multi summary::after{background:var(--muted)}
.lb-rider-meta{white-space:nowrap}
.result-filters-clear .ui-icon{width:15px;height:15px}
.hero-badges{align-items:center}.hero-live{display:inline-flex;align-items:center;gap:7px}.hero-live .ui-icon{width:17px;height:17px}
.registration-panel .detail-facts:last-child{margin-bottom:0}.registration-panel .detail-facts:last-child>div:last-child{border-bottom:0;padding-bottom:0}

/* calendar.css */
.calendar-page .events-hero{padding-bottom:65px}.calendar-page .events-hero h1{font-size:clamp(48px,5.2vw,72px)}.calendar-page .events-breadcrumb{margin-bottom:25px}.calendar-page .events-hero .wrap>p:last-child{font-size:14px}
.calendar-page .polished-filter[data-filter-name=month]{flex-basis:180px}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:35px 0 21px}
.calendar-toolbar .eyebrow{font-size:12px;letter-spacing:.13em}
.calendar-toolbar h2{font-size:35px;letter-spacing:-.045em;margin:13px 0 9px;line-height:1.1;scroll-margin-top:110px}
.calendar-toolbar h2:focus{outline:none}.calendar-summary{font-size:13px;color:var(--muted)}
.calendar-month-nav{display:flex;gap:7px;align-items:center}.calendar-step,.calendar-today{display:flex;align-items:center;justify-content:center;min-height:42px;background:var(--white);border:1px solid var(--line);border-radius:7px;font-size:13px;font-weight:500;color:var(--text-secondary)}
.calendar-step{width:43px}.calendar-step svg{width:18px;height:18px}.calendar-step:first-child svg{transform:rotate(180deg)}.calendar-today{padding:11px 18px}.calendar-month-nav a:hover{border-color:var(--brand);color:var(--brand-strong)}.calendar-month-nav a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.calendar-step.disabled{color:var(--on-dark-muted);background:transparent}
.calendar-key{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:18px;font-size:12px;color:var(--muted)}.calendar-key>span{display:flex;align-items:center;gap:6px}.calendar-key i{display:block;width:6px;height:6px;border-radius:50%;background:var(--brand)}.calendar-key i.live{background:#4e8b62}.calendar-key i.past{background:var(--text-subtle)}.calendar-key p{margin-left:auto;color:var(--muted)}
.month-calendar{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--white);box-shadow:0 5px 25px rgb(var(--navy-rgb) / 0.012)}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{background:var(--surface-soft);border-bottom:1px solid var(--line)}.calendar-weekdays>span{font-size:12px;letter-spacing:.04em;font-weight:600;color:var(--muted);padding:15px 13px;text-align:left}
.calendar-day{min-width:0;min-height:165px;padding:12px 9px 14px;border-right:1px solid var(--surface-soft);border-bottom:1px solid var(--surface-soft);background:var(--white)}
.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}
.calendar-day.outside-month{background:var(--canvas);color:var(--text-subtle)}
.calendar-day.is-today{background:var(--white);box-shadow:inset 0 3px var(--brand)}
.calendar-day-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:10px;min-height:25px}
.calendar-day-heading>span{font-size:12px;color:var(--text-subtle)}.day-number{font-size:13px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px}
.is-today .day-number{background:var(--brand);color:#fff;border-radius:50%}
.calendar-day-events{display:flex;flex-direction:column;gap:5px}
.calendar-event{display:block;min-width:0;padding:9px 9px 9px 10px;background:var(--brand-soft);border:1px solid var(--brand-border);border-left:2px solid var(--brand);border-radius:5px;color:var(--brand-strong);transition:background .15s,border-color .15s}
.calendar-event.live{background:var(--canvas);border-color:var(--line);border-left-color:#5d9565;color:color-mix(in srgb,#34573b var(--ink-keep),#fff)}
.calendar-event.past{background:var(--canvas);border-color:var(--surface-soft);border-left-color:var(--on-dark-muted);color:var(--muted)}
.calendar-event:hover{border-color:var(--brand);background:var(--brand-border)}.calendar-event:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}
.calendar-event-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.calendar-event-promoter{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.5;margin-top:4px;opacity:.8}
.calendar-event-duration{display:block;font-size:12px;line-height:1.5;margin-top:5px;opacity:.8}
.calendar-more summary{font-size:12px;color:var(--brand-strong);cursor:pointer;padding:7px 3px;list-style:none;line-height:1.5}.calendar-more summary:hover{text-decoration:underline}.calendar-more[open] summary{margin-bottom:3px}.calendar-more .calendar-event{margin-bottom:5px}
.calendar-empty{padding:28px;background:var(--white);border:1px solid var(--line);border-radius:9px;margin-bottom:20px}.calendar-empty h3{font-size:20px;letter-spacing:-.025em}.calendar-empty p{font-size:14px;color:var(--muted);margin:12px 0}.calendar-empty a{display:inline-flex;gap:12px;align-items:center;font-size:13px;color:var(--brand-strong)}.calendar-empty a svg{width:16px;height:16px}
.calendar-agenda{display:none}
@media(max-width:1000px){.calendar-day{padding:9px 5px}.calendar-event{padding:8px 6px}.calendar-day-heading>span{font-size:12px}.calendar-event-name{font-size:12px}.calendar-event-promoter,.calendar-event-duration{font-size:12px}}
@media(max-width:760px){.calendar-page .events-hero h1{font-size:clamp(46px,10.8vw,67px)}.calendar-page .events-hero .wrap>p:last-child{max-width:310px;line-height:1.8}.calendar-page .filter-controls .polished-filter[data-filter-name=promoter]{flex-basis:100%}.calendar-page .polished-filter[data-filter-name=month]{flex:1 1 120px}.calendar-toolbar{flex-wrap:wrap;align-items:flex-start;gap:19px;margin-top:28px}.calendar-toolbar h2{font-size:31px}.calendar-month-nav{width:100%}.calendar-today{flex:1}.calendar-key{gap:14px;font-size:12px;line-height:1.6}.calendar-key p{width:100%;margin-left:0}.month-calendar{display:none}.calendar-agenda{display:flex;flex-direction:column;gap:17px}.agenda-day{display:grid;grid-template-columns:39px minmax(0,1fr);gap:13px}.agenda-day>h3{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:13px}.agenda-day time{display:flex;flex-direction:column;align-items:center;gap:5px}.agenda-day time>span{text-transform:uppercase;font-size:12px;letter-spacing:.05em;color:var(--muted)}.agenda-day time>strong{font-size:26px;line-height:1;font-weight:500;letter-spacing:-.05em}.agenda-day.is-today time>strong{color:var(--brand)}.agenda-today{font-size:12px;color:var(--brand-strong)}.agenda-day>div{display:flex;flex-direction:column;gap:8px}.agenda-event{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--white)}.agenda-event .calendar-event{padding:14px;border:0;border-left:3px solid var(--brand);border-radius:0;background:var(--brand-soft)}.agenda-event .calendar-event.past{background:var(--canvas);border-left-color:var(--on-dark-muted)}.agenda-event .calendar-event.live{background:var(--canvas);border-left-color:#5d9565}.agenda-event .calendar-event-name{font-size:14px;-webkit-line-clamp:unset;display:block;line-height:1.55}.agenda-event .calendar-event-promoter{font-size:12px;white-space:normal;line-height:1.6;margin-top:7px}.agenda-event .calendar-event-duration{font-size:12px}.agenda-event>p{font-size:12px;color:var(--muted);padding:9px 14px;line-height:1.7;border-top:1px solid var(--surface-soft)}.calendar-empty{padding:23px 19px}.calendar-empty h3{font-size:19px}}
@media(max-width:380px){.calendar-page .filter-controls .polished-filter[data-filter-name=month]{flex-basis:100%}.agenda-day{grid-template-columns:32px minmax(0,1fr);gap:10px}.agenda-event .calendar-event{padding:12px}.agenda-event .calendar-event-name{font-size:14px}.calendar-toolbar h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.calendar-event{transition:none}}
.calendar-event-promoter,.calendar-event-duration{color:var(--muted);opacity:1}
/* Month grid: one line per event, details in a card on hover or focus */
.calendar-day{min-height:120px}.calendar-day-events{display:flex;flex-direction:column;gap:4px}
.calendar-grid .calendar-event{position:relative;padding:4px 8px;border-radius:4px}
.calendar-grid .calendar-event-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-line-clamp:unset;font-size:12px;line-height:1.4}
.calendar-event-card{position:absolute;z-index:20;top:calc(100% + 6px);left:0;display:none;flex-direction:column;gap:4px;width:max(100%,240px);padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);box-shadow:0 14px 34px #10213a33;color:var(--navy);text-align:left;pointer-events:none}
.calendar-event-card strong{font-size:13px;line-height:1.35;white-space:normal}.calendar-event-card .calendar-event-promoter,.calendar-event-card .calendar-event-duration{margin:0;font-size:12px;white-space:normal;overflow:visible}
.calendar-grid .calendar-event:hover .calendar-event-card,.calendar-grid .calendar-event:focus-visible .calendar-event-card{display:flex}
.calendar-grid .calendar-day:nth-child(7n) .calendar-event-card,.calendar-grid .calendar-day:nth-child(7n-1) .calendar-event-card{left:auto;right:0}
.agenda-event .calendar-event-card{position:static;display:flex;width:auto;padding:4px 0 0;border:0;background:none;box-shadow:none;color:inherit}.agenda-event .calendar-event-card strong{display:none}
.calendar-more .calendar-event{margin-bottom:4px}
/* The last week opens its event cards upward, so the calendar's rounded box does not cut them off. */
.calendar-grid .calendar-day:nth-last-child(-n+7) .calendar-event-card{top:auto;bottom:calc(100% + 6px)}

/* race.css */
/* The timing paddock: static photography, precise typography and clear racing data. */
.race-page{--best:#086d78;--best-soft:#e9f4f5}
.race-page h4{margin:0;font-weight:600}
.race-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-deep)}
.race-hero-image{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0c1729 10%,#0c1729ed 42%,#0c17299c 100%),url('https://staging-enduroladore.livelaps.com/images/hero-enduro.jpg') 80% 46%/cover}
.race-breadcrumb{display:flex;align-items:center;gap:12px;padding-top:23px;font-size:12px;color:var(--on-dark-muted);line-height:1.6}
.race-breadcrumb a:hover{color:white;text-decoration:underline;text-underline-offset:4px}
.race-breadcrumb a:nth-of-type(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}
.race-hero-main{display:flex;justify-content:space-between;gap:40px;align-items:center;padding:27px 0 31px}
.race-hero-main>div:first-child{min-width:0}
.race-type{border-left:1px solid #ffffff40;padding-left:12px;letter-spacing:.04em;font-weight:400}
.race-hero h1{font-size:clamp(36px,4.2vw,62px);line-height:1.06;letter-spacing:-.055em;margin:15px 0 15px;overflow-wrap:anywhere}
.race-hero h1 span{color:var(--on-dark-muted);margin-left:.25em}
.race-hero-meta{font-size:13px;color:var(--on-dark);line-height:1.7}
.race-hero-meta span{margin:0 9px;color:#ffffff50}
.race-edition{display:grid;grid-template-columns:33px auto;gap:14px 17px;flex-shrink:0}
.race-edition strong{font-size:16px;line-height:1.25;font-style:italic;letter-spacing:-.03em}
.race-edition>span:last-child{grid-column:1/-1;font-size:12px;letter-spacing:.17em;color:var(--on-dark-muted)}
.checkered{height:33px;width:33px;background:conic-gradient(#ffffffbf 25%,transparent 0 50%,#ffffffbf 0 75%,transparent 0) 0 0/11px 11px;transform:skew(-10deg)}
.race-switcher{display:flex;gap:7px;border-top:1px solid #ffffff20;padding:14px 0 31px;overflow:auto}
.race-switcher a{display:inline-flex;align-items:center;gap:25px;padding:10px 15px;font-size:13px;font-weight:500;color:var(--on-dark);white-space:nowrap;border:1px solid #ffffff20;border-radius:7px;background:#ffffff06}
.race-switcher a[aria-current]{border-color:#ffffff60;background:#ffffff18;color:white}
.race-switcher a:hover{background:#ffffff25}
.race-switcher svg{width:15px;height:15px}
.race-content{padding:0 0 70px;min-height:480px}
.race-page .search-panel{margin-top:-16px}
.race-page .search-panel-top{padding-top:20px;padding-bottom:18px}
.race-page .search-panel-bottom{padding-top:12px;padding-bottom:12px}
.race-page .filter-controls{flex:1}
.race-page .polished-filter{min-width:250px}
.race-page .search-applied-filters{margin-top:0}
@media(min-width:761px){
  .race-breadcrumb{padding-top:18px}
  .race-hero-main{padding:14px 0 18px}
  .race-hero h1{font-size:clamp(36px,3.5vw,48px);margin:10px 0}
  .race-switcher{padding:8px 0 24px}
  .race-page .search-panel{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:0}
  .race-page .search-panel-top{padding:19px 23px}
  .race-page .search-panel-heading{margin-bottom:11px}
  .race-page .search-panel-bottom{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;border-top:0;border-left:1px solid var(--line);padding:19px 23px;border-radius:0 13px 13px 0}
  .race-page .filter-caption{font-size:12px;letter-spacing:.08em;text-transform:uppercase}
  .race-page .filter-caption>svg{display:none}
  .race-page .filter-controls{flex:0}
  .race-page .polished-filter{min-width:0;max-width:none;flex:1}
  .race-page .filter-trigger{min-height:51px}
  .race-page .search-input-wrap{min-height:51px}
  .race-page .search-input-wrap input{min-height:49px;padding-block:12px;font-size:15px}
  .race-page .search-applied-filters{grid-column:1/-1;padding-bottom:13px}
  .race-page .search-reset{position:absolute;top:13px;right:23px;font-size:12px;padding:4px}
  .race-page .search-live-hint{font-size:12px}
}
.race-snapshot{display:grid;grid-template-columns:1fr 1.2fr 1.2fr .95fr;background:var(--white);border:1px solid var(--line);border-radius:12px;margin-top:23px;overflow:hidden}
.race-snapshot>div,.snapshot-compare{padding:22px 25px;min-width:0}
.race-snapshot>*+*{border-left:1px solid var(--line)}
.race-snapshot strong{display:block;font-size:17px;letter-spacing:-.035em;line-height:1.35;overflow-wrap:anywhere}
.race-snapshot small{display:block;font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}
.snapshot-heading .eyebrow{font-size:12px;gap:7px;margin-bottom:10px;color:var(--muted);letter-spacing:.12em}
.snapshot-heading .eyebrow svg{width:15px;height:15px}
.snapshot-stat>span{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:12px}
.snapshot-stat>span svg{width:14px;height:14px}
.timing,.result-value strong,.lap-breakdown td,.comparison-metrics td{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:-.025em}
.snapshot-stat .timing{color:var(--best);font-size:23px;line-height:1}
.snapshot-compare{position:relative;background:var(--surface-soft);display:flex;flex-direction:column;justify-content:center}
.snapshot-compare>svg{position:absolute;right:21px;top:21px;color:var(--brand);width:20px}
.snapshot-compare strong{font-size:18px;margin-top:12px}
.snapshot-compare small{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.snapshot-compare small svg{width:16px;height:16px}
.snapshot-compare:hover{background:var(--surface-soft)}
.race-view-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;border-bottom:1px solid var(--line)}
.race-view-bar nav,.race-view-bar>div{display:flex;align-items:center;gap:25px}
.race-view-bar nav a{position:relative;display:flex;align-items:center;gap:8px;padding:17px 1px;font-size:14px;color:var(--muted);font-weight:500}
.race-view-bar nav a[aria-current]{color:var(--navy)}
.race-view-bar nav a[aria-current]:after{content:"";height:3px;background:var(--brand);position:absolute;bottom:-1px;left:0;right:0;border-radius:4px 4px 0 0}
.race-view-bar nav svg{width:17px;height:17px}
.race-view-bar nav a span{font-size:12px;background:var(--surface-soft);padding:4px 6px;border-radius:4px}
.race-view-bar>div{gap:20px}
.race-view-bar>div a,.race-view-bar button{color:var(--muted);font-size:12px;background:none;border:0;padding:12px 0}
.race-view-bar>div a:hover,.race-view-bar button:hover{color:var(--brand)}
.race-results-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin:30px 0 20px}
.race-results-heading .eyebrow{font-size:12px;letter-spacing:.14em;color:var(--muted)}
.race-results-heading h2{font-size:31px;letter-spacing:-.045em;margin-top:9px;line-height:1.15;scroll-margin-top:110px}
.race-results-heading>p{font-size:12px;color:var(--muted);text-align:right;line-height:1.6}
.results-board{border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden}
.results-columns,.result-row{display:grid;grid-template-columns:44px minmax(175px,1fr) 50px 112px 112px 112px 110px;align-items:center;gap:15px}
.results-columns{padding:16px 24px;background:var(--surface-soft);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.results-columns>span:not(:nth-child(2)){text-align:center}
.results-riders{list-style:none;margin:0;padding:0}
.result-entry+.result-entry{border-top:1px solid var(--line)}
.result-entry{position:relative}
.result-entry.comparison-selected{background:var(--canvas)}
.result-row{padding:22px 24px 14px}
.result-position{font-size:21px;font-weight:600;font-style:italic;font-variant-numeric:tabular-nums;text-align:center;letter-spacing:-.04em;color:var(--muted)}
.result-position.front-runner{color:var(--navy)}
.result-entry:first-child .front-runner{color:var(--brand)}
.result-position small{font-size:13px;font-style:normal}
.rider-identity{display:flex;align-items:center;gap:13px;min-width:0}
.rider-number{min-width:40px;max-width:70px;overflow-wrap:anywhere;padding:7px 5px;border-radius:5px;background:var(--surface-soft);color:var(--text-secondary);font-size:13px;font-weight:600;font-style:italic;text-align:center}
.rider-identity h3{font-size:15px;letter-spacing:-.025em;line-height:1.4;overflow-wrap:anywhere}
.rider-identity p{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.5}
.result-value{text-align:center;min-width:0}
.result-value>span{display:none}
.result-value strong{font-size:14px;font-weight:500;white-space:nowrap}
.result-best strong{color:var(--best)}
.result-gap strong{font-size:13px;color:var(--muted)}
.rider-compare{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--white);font-size:12px;font-weight:500;white-space:nowrap;width:100%}
.rider-compare svg{width:15px;height:15px}
.rider-compare:hover{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand-border)}
.rider-compare.is-selected{color:var(--brand-strong);background:var(--brand-soft);border-color:var(--brand-border)}
.rider-compare.at-limit{color:var(--text-subtle);background:var(--surface-soft);border-color:transparent;cursor:default}
.rider-detail summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 24px 0 83px;padding:0 0 13px;color:var(--muted);font-size:12px;cursor:pointer}
.rider-detail summary::-webkit-details-marker{display:none}
.rider-detail summary>span{display:flex;align-items:center;gap:6px}
.rider-detail summary svg{width:13px;height:13px}
.rider-detail summary b{font-size:17px;font-weight:400;margin-left:4px}
.rider-detail[open] summary b{transform:rotate(45deg)}
.rider-detail summary:hover{color:var(--brand-strong)}
.rider-detail-content{margin:0 24px 22px 83px;border-top:1px solid var(--line);padding-top:17px}
.rider-timing-summary{display:flex;gap:35px;margin-bottom:17px;flex-wrap:wrap}
.rider-timing-summary span{font-size:12px;color:var(--muted);display:block;margin-bottom:6px}
.rider-timing-summary strong{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
.timing-scroll,.comparison-metrics-scroll{overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:9px;background:var(--white)}
.lap-breakdown,.comparison-metrics{width:100%;border-collapse:collapse;text-align:left}
.lap-breakdown{font-size:13px}
.lap-breakdown th,.lap-breakdown td{padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:400}
.lap-breakdown thead th{font-size:12px;font-weight:500;background:var(--surface-soft);color:var(--muted)}
.lap-breakdown tr:last-child>*{border-bottom:0}
.lap-breakdown .personal-best{background:var(--best-soft);color:var(--best)}
.best-tag{font-size:12px;font-weight:600;letter-spacing:.03em;margin-left:10px;padding:3px 5px;border-radius:3px;background:color-mix(in srgb,#cce8e9 var(--tint-keep),var(--white))}
.checkpoint-splits{display:flex;flex-wrap:wrap;gap:15px;font-size:12px;color:var(--muted)}
.checkpoint-splits strong{margin-left:4px;font-weight:500;color:var(--navy)}
.comparison-tray{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px;padding:13px 16px;margin-bottom:16px;background:var(--white);border:1px solid var(--border-strong);border-radius:10px}
.tray-riders{display:flex;flex-wrap:wrap;gap:7px}
.tray-rider{display:flex;align-items:center;gap:7px;padding:5px 8px 5px 11px;border-radius:6px;background:var(--surface-soft);font-size:12px}
.tray-rider a{font-size:19px;line-height:1;padding:4px;margin-left:3px}
.comparison-tray>div:last-child{display:flex;align-items:center;gap:15px;font-size:12px;color:var(--muted)}
.clear-comparison{text-decoration:underline;text-underline-offset:3px}
.rider-color-0{--rider-color:var(--rider-0,#b44c09);--rider-chart:var(--rider-0,#ffad32)}
.rider-color-1{--rider-color:var(--rider-1,#087c83);--rider-chart:var(--rider-1,#4ed5ce)}
.rider-color-2{--rider-color:var(--rider-2,#2864ab);--rider-chart:var(--rider-2,#71b7ff)}
.tray-rider i,.compare-card i,.comparison-metrics i,.chart-legend i{display:inline-block;width:7px;height:7px;border-radius:2px;background:var(--rider-color);flex:none}
.race-empty,.compare-welcome{padding:60px 25px;border:1px solid var(--line);border-radius:12px;background:var(--white);text-align:center}
.race-empty>svg{width:35px;height:35px;color:var(--brand);margin-bottom:20px}
.race-empty h3,.compare-welcome h3{font-size:32px;letter-spacing:-.045em;line-height:1.15}
.race-empty p,.compare-welcome>p:not(.eyebrow){font-size:14px;line-height:1.7;max-width:500px;margin:17px auto 23px;color:var(--muted)}
.race-note,.race-source-note{font-size:12px;line-height:1.8;color:var(--muted)}
.race-source-note{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.rider-card-link{display:inline-block;margin-top:7px;font-size:12px;color:color-mix(in srgb,#38647f var(--ink-keep),#fff);text-decoration:underline;text-underline-offset:3px}
.comparison-mark{display:grid;place-items:center;width:60px;height:60px;background:var(--brand-soft);border-radius:14px;margin:0 auto 25px;color:var(--brand)}
.comparison-mark svg{width:28px;height:28px}
.compare-welcome .eyebrow{justify-content:center;margin-bottom:14px;font-size:12px}
.compare-empty-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;max-width:700px;margin:37px auto 0}
.compare-empty-slots span{font-size:13px;color:var(--muted);padding:21px 10px;border:1px dashed var(--border-strong);border-radius:8px}
.compare-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:29px 0 24px}
.compare-heading .eyebrow{font-size:12px;color:var(--muted);margin-bottom:8px}
.compare-heading h2{font-size:36px;line-height:1.2;letter-spacing:-.05em}
.compare-heading p:last-child{font-size:14px;line-height:1.6;margin-top:10px;color:var(--muted)}
.race-page .page-button{color:var(--navy);line-height:1.4}
.race-page .page-button svg{transform:none}
.race-pagination .page-button:first-child svg{transform:rotate(180deg)}
.compare-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.compare-card{position:relative;isolation:isolate;overflow:hidden;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--rider-color);border-radius:12px;padding:19px 23px 20px}
.compare-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.compare-card-top>span{display:flex;gap:8px;align-items:center;font-size:12px;letter-spacing:.1em;color:var(--muted)}
.compare-card-top a{font-size:21px;line-height:1;color:var(--muted);padding:1px 5px}
.compare-race-number{position:absolute;right:12px;bottom:27px;font-size:92px;line-height:1;letter-spacing:-.08em;font-style:italic;font-weight:700;color:var(--surface-soft);z-index:-1;max-width:100%;overflow:hidden}
.compare-card h4{font-size:23px;letter-spacing:-.04em;line-height:1.2;overflow-wrap:anywhere}
.compare-card p{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.6}
.compare-position{display:flex;align-items:baseline;gap:10px;margin-top:25px}
.compare-position strong{font-size:33px;font-style:italic;letter-spacing:-.045em;color:var(--rider-color)}
.compare-position span{font-size:12px;color:var(--muted)}
.compare-add-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:218px;padding:20px;border:1px dashed var(--border-strong);border-radius:12px;font-size:14px;font-weight:500}
.compare-add-slot>span{font-size:25px;font-weight:400;display:grid;place-items:center;width:38px;height:38px;background:var(--surface-soft);border-radius:50%}
.compare-add-slot small{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:10px}
.compare-add-slot svg{width:15px;height:15px}
.compare-add-slot:hover{border-color:var(--brand);background:var(--brand-soft)}
.comparison-context{display:flex;justify-content:space-between;gap:25px;align-items:center;margin:18px 0;font-size:12px;line-height:1.7;color:var(--muted)}
.opening-toggle{white-space:nowrap;text-decoration:underline;text-underline-offset:4px;font-weight:500;color:var(--navy)}
.comparison-metrics{table-layout:fixed;font-size:14px;min-width:570px}
.comparison-metrics th,.comparison-metrics td{padding:16px 23px;border-bottom:1px solid var(--line)}
.comparison-metrics thead th{background:var(--surface-soft);font-size:13px;line-height:1.5;font-weight:600}
.comparison-metrics thead th:first-child{font-size:12px;color:var(--muted)}
.comparison-metrics i{margin-right:7px;vertical-align:1px}
.comparison-metrics tbody th{font-size:13px;font-weight:400;color:var(--muted);line-height:1.5}
.comparison-metrics td{font-weight:500}
.comparison-metrics tr:last-child>*{border-bottom:0}
.telemetry-panel{background:var(--navy-deep);color:#fff;padding:29px 32px 22px;margin-top:26px;border-radius:12px;overflow:hidden}
.telemetry-heading{display:flex;justify-content:space-between;align-items:end;gap:25px}
.telemetry-heading .eyebrow{color:var(--on-dark-muted);font-size:12px;margin-bottom:7px}
.telemetry-heading h4{font-size:26px;letter-spacing:-.04em}
.telemetry-heading>span{font-size:12px;color:var(--on-dark-muted);line-height:1.7;text-align:right}
.chart-legend{display:flex;gap:25px;flex-wrap:wrap;margin-top:24px;font-size:12px;color:var(--on-dark)}
.chart-legend>span{display:flex;align-items:center;gap:8px}
.chart-legend i{background:var(--rider-chart)}
.comparison-chart{display:block;width:100%;height:auto;max-height:350px;margin-top:15px;overflow:visible}
.chart-grid line{stroke:#ffffff15;stroke-dasharray:3 5}
.chart-grid text{fill:var(--on-dark-muted);font-family:Inter,Arial,sans-serif;font-size:12px}
.comparison-chart polyline{fill:none;stroke:currentColor;stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}
.comparison-chart circle{fill:currentColor;stroke:var(--navy-deep);stroke-width:1.5}
.chart-rider-0{color:var(--rider-0,#ffad32)}.chart-rider-1{color:var(--rider-1,#4ed5ce)}.chart-rider-2{color:var(--rider-2,#71b7ff)}
.chart-note,.chart-unavailable{font-size:12px;color:var(--on-dark-muted);line-height:1.7;margin-top:15px}
.chart-unavailable{padding:40px 0;text-align:center}
.split-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:33px 0 18px}
.split-heading .eyebrow{font-size:12px;color:var(--muted);margin-bottom:8px}
.split-heading h4{font-size:25px;letter-spacing:-.035em}
.split-heading>span{font-size:12px;color:var(--muted);line-height:1.7;max-width:310px;text-align:right}
.split-comparison th small{color:var(--text-subtle);margin-right:14px;font-size:12px;font-variant-numeric:tabular-nums}
.split-comparison td small{display:block;font-size:12px;color:var(--text-subtle);margin-top:6px;letter-spacing:0;font-weight:400}
.split-comparison td.split-best{background:var(--canvas);color:color-mix(in srgb,#176449 var(--ink-keep),#fff)}
.split-comparison td.split-best small{color:color-mix(in srgb,#176449 var(--ink-keep),#fff);font-size:12px;letter-spacing:.08em;font-weight:600}
.comparison-warning{font-size:14px;line-height:1.7;background:var(--brand-soft);color:var(--brand-strong);padding:15px;border:1px solid var(--brand-border);border-radius:8px;margin:15px 0;overflow-wrap:anywhere}
.compare-heading h2{font-size:36px;line-height:1.2;letter-spacing:-.05em}
.head-to-head{scroll-margin-top:104px}
.compare-welcome{margin-top:25px}
@media(min-width:761px){.race-snapshot{margin-top:18px}.race-snapshot>div,.snapshot-compare{padding:17px 20px}.snapshot-stat>span{margin-bottom:9px}.snapshot-heading .eyebrow{margin-bottom:8px}.race-view-bar{margin-top:15px}.race-results-heading{margin:23px 0 17px}}
@media(min-width:1450px){.results-columns,.result-row{grid-template-columns:50px minmax(200px,1fr) 60px 125px 125px 125px 115px}}
@media(max-width:1180px){.race-hero h1{font-size:46px}.race-snapshot>div,.snapshot-compare{padding:19px}.race-snapshot strong{font-size:16px}.snapshot-stat .timing{font-size:22px}.results-columns,.result-row{grid-template-columns:30px minmax(140px,1fr) 35px 92px 92px 94px 90px;gap:11px}.results-columns{padding-inline:17px;font-size:12px}.result-row{padding-inline:17px}.rider-identity{gap:9px}.rider-identity h3{font-size:14px}.rider-number{min-width:31px;font-size:12px}.result-value strong{font-size:13px}.result-gap strong{font-size:12px}.rider-compare{font-size:12px;padding-inline:6px}.rider-compare svg{width:12px}.rider-detail summary,.rider-detail-content{margin-left:58px;margin-right:17px}.compare-card{padding:17px}.compare-card h4{font-size:21px}.comparison-metrics th,.comparison-metrics td{padding:15px 17px}}
@media(max-width:980px){.race-edition{display:none}.race-hero h1{font-size:43px}.race-snapshot{grid-template-columns:1fr 1fr}.race-snapshot>*:nth-child(3){border-left:0;border-top:1px solid var(--line)}.race-snapshot>*:nth-child(4){border-top:1px solid var(--line)}.race-snapshot>div,.snapshot-compare{padding:18px 22px}.snapshot-compare strong{margin-top:0}.snapshot-compare>svg{top:17px}.results-columns{display:none}.result-row{grid-template-columns:35px minmax(0,1fr) 95px;gap:15px 17px;padding:19px 20px}.rider-identity{grid-column:2}.rider-identity h3{font-size:16px}.rider-identity p{font-size:12px}.result-position{grid-row:1}.result-select{grid-column:3;grid-row:1}.rider-compare{font-size:12px;min-height:39px}.rider-compare svg{width:14px}.result-value{grid-row:2;text-align:left;padding-top:3px}.result-value>span{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}.result-value strong{font-size:14px}.result-laps{grid-column:2}.result-value:not(.result-laps):not(.result-best):not(.result-gap){grid-column:2;justify-self:end}.result-best{grid-column:3}.result-gap{display:none}.rider-detail summary,.rider-detail-content{margin-left:72px;margin-right:20px}.compare-cards{gap:12px}.compare-card{padding:16px}.compare-card h4{font-size:19px}.compare-race-number{font-size:75px}.comparison-context{align-items:start}.compare-heading .page-button{max-width:180px}.race-results-heading h2{font-size:29px}.comparison-tray>div:last-child{margin-left:auto}}
@media(max-width:760px){.race-breadcrumb{padding-top:18px;font-size:12px;gap:7px}.race-breadcrumb a:nth-of-type(2){max-width:68%}.race-hero-main{padding:24px 0 26px;gap:0}.race-hero .eyebrow{font-size:12px;flex-wrap:wrap;gap:8px;line-height:1.8}.race-type{font-size:12px;padding-left:9px}.race-hero h1{font-size:37px;line-height:1.08;margin-top:14px;margin-bottom:14px}.race-hero h1 span{display:block;font-size:.75em;letter-spacing:-.035em;margin:6px 0 0}.race-hero-meta{font-size:12px;line-height:1.7}.race-hero-meta span{margin:0 4px}.race-switcher{padding:12px 0 30px}.race-switcher a{padding:9px 12px;font-size:12px;gap:20px}.race-page .search-panel{margin-top:-15px}.race-page .search-panel-heading{gap:10px}.race-page .search-eyebrow{font-size:12px;letter-spacing:.07em}.race-page .search-panel-top{padding:17px 16px}.race-page .search-panel-bottom{padding:11px 16px}.race-page .search-live-hint{font-size:12px}.race-page .filter-controls{width:100%;min-width:0}.race-page .polished-filter{min-width:0;width:100%}.race-snapshot{margin-top:17px}.race-snapshot>div,.snapshot-compare{padding:16px}.race-snapshot strong{font-size:15px;line-height:1.35}.race-snapshot small{font-size:12px;line-height:1.6}.snapshot-stat>span{font-size:12px;margin-bottom:10px}.snapshot-stat .timing{font-size:22px}.snapshot-heading .eyebrow{font-size:12px;letter-spacing:.05em;gap:5px}.snapshot-heading .eyebrow svg{width:13px;height:13px}.snapshot-compare>svg{right:14px;top:14px;width:16px;height:16px}.snapshot-compare strong{margin-top:13px;font-size:16px}.snapshot-compare small{font-size:12px}.race-view-bar{margin-top:15px;gap:10px;flex-wrap:wrap}.race-view-bar nav{gap:21px;flex:1}.race-view-bar nav a{font-size:13px;padding:15px 0;gap:6px}.race-view-bar nav svg{width:15px}.race-view-bar nav a span{font-size:12px;padding:3px 5px}.race-view-bar>div{gap:12px}.race-view-bar>div a{font-size:12px}.race-view-bar button{display:none}.race-results-heading{margin:24px 0 17px;gap:20px}.race-results-heading .eyebrow{font-size:12px;letter-spacing:.07em}.race-results-heading h2{font-size:27px;margin-top:8px}.race-results-heading>p{font-size:12px;max-width:100px}.result-row{grid-template-columns:27px minmax(0,1fr) 82px;padding:18px 14px 15px;gap:16px 10px}.result-position{font-size:21px}.rider-identity{gap:8px;align-items:flex-start}.rider-number{font-size:12px;min-width:28px;padding:6px 4px;max-width:45px}.rider-identity h3{font-size:14px;line-height:1.4}.rider-identity p{font-size:12px;line-height:1.5;margin-top:4px}.rider-identity p>span{display:none}.rider-compare{font-size:12px;padding:7px 6px;gap:4px;min-height:36px}.rider-compare svg{display:none}.result-value>span{font-size:12px;margin-bottom:6px}.result-value strong{font-size:13px}.result-laps{grid-column:1;justify-self:center}.result-value:not(.result-laps):not(.result-best):not(.result-gap){justify-self:start;grid-column:2}.result-best{grid-column:3}.rider-detail summary{margin:0 14px 0 51px;padding-bottom:13px;font-size:12px}.rider-detail-content{margin:0 14px 18px;padding-top:15px}.rider-timing-summary{gap:20px}.rider-timing-summary span{font-size:12px}.rider-timing-summary strong{font-size:13px}.lap-breakdown th,.lap-breakdown td{padding:10px;font-size:12px}.lap-breakdown thead th{font-size:12px}.lap-breakdown{min-width:380px}.comparison-tray{padding:12px;gap:12px}.tray-rider{font-size:12px;padding:4px 6px 4px 8px}.tray-riders{gap:5px}.comparison-tray>div:last-child{width:100%;justify-content:space-between;gap:10px;font-size:12px}.comparison-tray .button{min-height:39px;font-size:12px;padding:10px 12px;gap:10px}.compare-heading{align-items:start;gap:15px;margin:20px 0}.compare-heading .eyebrow{font-size:12px;letter-spacing:.07em}.compare-heading h2{font-size:29px}.compare-heading p:last-child{font-size:12px;margin-top:8px}.compare-heading .page-button{max-width:97px;flex-shrink:0;font-size:12px;padding:10px;gap:0;min-height:44px}.compare-heading .page-button svg{display:none}.compare-cards{gap:8px}.compare-card{padding:12px 10px 14px;border-radius:8px;border-top-width:3px}.compare-card-top{margin-bottom:14px}.compare-card-top>span{font-size:12px;gap:5px;letter-spacing:.04em}.compare-card-top i{width:5px;height:5px}.compare-card-top a{font-size:18px;padding:0 2px}.compare-race-number{font-size:42px;bottom:40px;right:4px}.compare-card h4{font-size:14px;line-height:1.3;letter-spacing:-.025em}.compare-card p{font-size:12px;margin-top:6px;line-height:1.6}.compare-position{flex-direction:column;gap:3px;margin-top:20px}.compare-position strong{font-size:25px}.compare-position span{font-size:12px}.compare-add-slot{min-height:195px;font-size:12px;gap:12px;text-align:center;padding:10px 7px;border-radius:8px}.compare-add-slot>span{height:30px;width:30px;font-size:20px}.compare-add-slot small{font-size:12px;line-height:1.6;display:block}.compare-add-slot small svg{display:none}.comparison-context{flex-direction:column;gap:10px;margin:15px 0;font-size:12px}.opening-toggle{font-size:12px}.comparison-metrics{font-size:13px;min-width:550px}.comparison-metrics th,.comparison-metrics td{padding:13px 14px}.comparison-metrics thead th{font-size:12px}.comparison-metrics tbody th{font-size:12px}.telemetry-panel{padding:21px 17px 17px;margin-top:20px;border-radius:10px}.telemetry-heading{gap:15px;align-items:start}.telemetry-heading h4{font-size:22px}.telemetry-heading .eyebrow{font-size:12px;margin-bottom:7px}.telemetry-heading>span{font-size:12px;max-width:120px}.chart-legend{gap:10px 15px;margin-top:20px;font-size:12px}.chart-legend span{gap:5px}.chart-legend i{height:5px;width:5px}.comparison-chart{min-height:175px;margin-top:10px}.chart-note{font-size:12px;margin-top:7px}.split-heading{margin-top:27px;gap:17px}.split-heading h4{font-size:23px}.split-heading .eyebrow{font-size:12px;margin-bottom:7px}.split-heading>span{font-size:12px;max-width:130px}.race-source-note{font-size:12px;margin-top:25px;padding-top:20px}.race-content{padding-bottom:45px}.race-empty,.compare-welcome{padding:38px 19px}.race-empty h3,.compare-welcome h3{font-size:29px}.race-empty p,.compare-welcome>p:not(.eyebrow){font-size:14px}.compare-empty-slots{gap:8px;margin-top:28px}.compare-empty-slots span{font-size:12px;line-height:1.5;padding:16px 8px}.compare-welcome .eyebrow{font-size:12px}}
@media(max-width:380px){.race-view-bar{gap:0}.race-view-bar nav{gap:13px}.race-view-bar nav a{font-size:12px;gap:4px}.race-view-bar nav svg{width:14px}.race-view-bar>div a{font-size:12px}.race-snapshot>div,.snapshot-compare{padding:13px}.race-snapshot strong{font-size:14px}.snapshot-stat .timing{font-size:20px}.result-row{grid-template-columns:23px minmax(0,1fr) 74px;padding-inline:11px;gap:15px 8px}.rider-identity{gap:6px}.rider-identity h3{font-size:14px}.rider-number{min-width:25px;font-size:12px}.result-value strong{font-size:12px}.rider-compare{font-size:12px}.rider-detail summary{margin-left:42px}.compare-cards{gap:6px}.compare-card{padding-inline:8px}.compare-card h4{font-size:14px}.compare-card p{font-size:12px}.compare-card-top>span{font-size:12px}.compare-add-slot{font-size:12px}.race-results-heading h2{font-size:25px}}
@media(max-width:760px){
  .race-hero-main{padding:18px 0}
  .race-hero h1{font-size:33px}
  .race-switcher{padding:9px 0 23px;scrollbar-width:thin}
  .race-page .search-panel-top{padding:13px 16px}
  .race-page .search-live-hint{display:none}
  .race-page .search-panel .search-input-wrap{min-height:49px}
  .race-page .search-panel .search-input-wrap input{min-height:47px;padding-block:11px;font-size:15px}
  .race-page .race-results-heading{margin:18px 0 13px}
  .race-snapshot>.snapshot-stat:nth-child(2),.race-snapshot>.snapshot-compare{display:none}
  .race-snapshot>.snapshot-stat:nth-child(3){border-top:0;border-left:1px solid var(--line)}
  .comparison-metrics{min-width:0;font-size:12px}
  .comparison-metrics th,.comparison-metrics td{padding:12px 8px;overflow-wrap:anywhere}
  .comparison-metrics thead th,.comparison-metrics tbody th{font-size:12px}
  .comparison-metrics i{width:5px;height:5px;margin-right:4px}
  .split-comparison th small{display:block;margin:0 0 4px}
  .split-comparison td small{font-size:12px}
}
@media(max-width:380px){.comparison-metrics{font-size:12px}.comparison-metrics th,.comparison-metrics td{padding:11px 6px}.comparison-metrics thead th,.comparison-metrics tbody th{font-size:12px}.split-comparison td small{font-size:12px}}
.compare-card{display:flex;flex-direction:column}
.compare-card .compare-position{margin-top:auto;padding-top:22px}
/* Race control: hard edges, dark instrumentation, orange/cyan/blue signals. */
.race-page{}
.race-hero:after{content:"";position:absolute;right:12%;top:0;bottom:0;width:170px;border-inline:1px solid #ffffff0c;transform:skew(-23deg);pointer-events:none;z-index:-1}
.race-hero h1{font-style:italic;font-weight:700;letter-spacing:-.055em}
.race-hero h1 span{font-weight:400;color:#c0cede}
.race-edition{border-left:3px solid #ffad32;padding-left:22px}
.race-switcher a,.race-page .page-button,.race-page .search-panel,.race-page .search-panel-bottom,.race-page .filter-trigger,.race-page .search-input-wrap,.race-page .search-submit,.race-page .filter-popover{border-radius:3px}
.race-switcher a[aria-current]{border-color:#ffad32;color:#ffbf5e;background:#0c172999}
.race-page .search-panel{box-shadow:0 8px 24px #10213a0b;border-top:3px solid var(--brand)}
.race-page .polished-filter.has-selection .filter-trigger{background:var(--ink-bg);border-color:var(--ink-bg);color:#fff}
.race-page .polished-filter.has-selection .filter-trigger-icon,.race-page .polished-filter.has-selection .filter-caret{color:#b3c6de}
.race-page .filter-option[aria-selected=true]{background:var(--ink-bg);color:var(--ink-text)}
.race-view-bar{display:block;margin-top:20px!important;border:1px solid var(--navy);background:var(--navy);border-radius:3px;overflow:hidden}
.race-view-bar nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0}
.race-view-bar nav a{color:#bac9dc;justify-content:center;gap:8px;min-height:62px;padding:15px 8px!important;border-right:1px solid #ffffff14;font-size:13px;white-space:nowrap}
.race-view-bar nav a:last-child{border-right:0}
.race-view-bar nav a small{font-size:12px;font-weight:400;color:#8b9cb4;font-variant-numeric:tabular-nums}
.race-view-bar nav a:hover{background:#ffffff09;color:white}
.race-view-bar nav a[aria-current]{color:white;background:#20344f}
.race-view-bar nav a[aria-current]:after{height:3px;bottom:0;border-radius:0;background:#ffad32}
.race-view-bar nav a[aria-current] small{color:#ffad32}
.race-view-bar nav a span{background:#ffffff12;color:#c5d4e6;font-size:12px;border-radius:2px;padding:3px 4px}
.race-view-utilities{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0 12px;color:var(--muted);font-size:12px;letter-spacing:.07em}
.race-view-utilities>div{display:flex;gap:18px;flex:none}
.race-view-utilities button,.race-view-utilities a{background:none;border:0;color:var(--muted);font-size:12px;padding:5px 0;letter-spacing:0}
.race-view-utilities button:hover,.race-view-utilities a:hover{color:var(--brand)}
.race-snapshot{margin-top:0!important;border-radius:3px;background:var(--navy-deep);border-color:#283b54;color:white}
.race-snapshot>*+*{border-color:#2a3b54!important}
.race-snapshot .snapshot-heading .eyebrow,.race-snapshot small,.race-snapshot .snapshot-stat>span{color:#b0c1d7}
.race-snapshot .snapshot-stat .timing{color:#55d5d6}
.snapshot-compare{background:#172a43}
.snapshot-compare>svg{color:#ffad32}
.snapshot-compare:hover{background:#233c59}
.race-results-heading h2,.race-view-heading h2,.compare-heading h2{font-size:30px;font-weight:700;letter-spacing:-.045em;font-style:italic}
.race-results-heading .eyebrow,.race-view-heading .eyebrow,.compare-heading .eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted)}
.results-board,.timing-scroll,.comparison-metrics-scroll,.comparison-tray,.compare-card,.compare-add-slot,.telemetry-panel,.race-empty,.compare-welcome{border-radius:3px}
.results-columns{background:var(--ink-bg);color:#cfdbeb}
.rider-number{border-radius:2px;background:var(--surface-soft);border:1px solid var(--line);transform:skew(-5deg)}
.rider-compare{border-radius:3px}
.rider-compare.is-selected{background:var(--ink-bg);border-color:var(--ink-bg);color:#fff}
.result-entry.comparison-selected{background:var(--canvas)}
.result-entry:hover{background:var(--canvas)}
.result-entry.comparison-selected:hover{background:var(--canvas)}
.result-best strong{font-weight:600}
.compare-card{border-top-width:4px}
.comparison-metrics thead th,.lap-breakdown thead th{background:var(--ink-bg);color:#d5e0ef}
.comparison-metrics thead th:first-child{color:#b6c7de}
.comparison-metrics td.split-best{background:var(--best-soft);color:var(--best)}
.comparison-metrics td.split-best small{color:var(--best)}
.race-view-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:26px 0 19px}
.race-view-heading h2{margin:7px 0 8px;line-height:1.15;scroll-margin-top:110px}
.race-view-heading p:last-child{font-size:13px;line-height:1.7;color:var(--muted);max-width:720px}
.heading-period{color:var(--brand)}
.race-page .opening-toggle{font-size:12px}
.race-page #directory-content{scroll-margin-top:102px}
.race-view-utilities{margin:6px 0 9px}
.race-view-utilities button,.race-view-utilities a{padding:2px 0}
@media(min-width:761px){.race-view-bar nav a{min-height:52px;padding-block:12px!important}.race-snapshot>div,.snapshot-compare{padding-block:12px!important}.race-snapshot small{margin-top:5px}.race-view-heading{margin-top:20px}.race-snapshot .snapshot-stat>span{margin-bottom:7px}}
.export-button{flex:none;font-size:12px;min-height:38px;padding:9px 13px}
.export-button svg{height:14px;width:14px}
.race-table-scroll{width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:3px;background:var(--white);scrollbar-width:thin;scrollbar-color:#93a8bf #e8eef5}
.race-data-table{width:100%;border-collapse:separate;border-spacing:0;text-align:left;font-size:13px;font-variant-numeric:tabular-nums}
.race-data-table th,.race-data-table td{padding:17px 18px;white-space:nowrap;vertical-align:middle;border-bottom:1px solid var(--line);font-weight:400}
.race-data-table thead th{background:var(--ink-bg);color:#d2deed;font-size:12px;font-weight:500;letter-spacing:.035em;padding-block:15px}
.race-data-table tbody th{background:var(--white)}
.race-data-table tbody tr:last-child>*{border-bottom:0}
.race-data-table tbody tr:hover>*{background:var(--canvas)}
.race-data-table td small{display:block;font-size:12px;color:var(--muted);margin-top:5px;letter-spacing:0}
.race-data-table .sticky-rider{position:sticky;left:0;z-index:1;min-width:230px;max-width:270px;box-shadow:1px 0 0 var(--line)}
.race-data-table thead .sticky-rider{z-index:2}
.timing-rider{display:flex;gap:11px;align-items:center;white-space:normal}
.timing-rider>span:last-child{min-width:0}
.timing-rider strong{display:block;font-size:14px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.timing-rider small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}
.timing-number{display:inline-block;min-width:33px;max-width:65px;overflow-wrap:anywhere;padding:7px 5px;font-size:12px;font-weight:600;text-align:center;font-style:italic;background:var(--surface-soft);border-left:2px solid #a7bacd}
.race-data-table .timing-position{font-size:16px;font-weight:600;font-style:italic;color:var(--navy)}
.race-data-table .timing-total{font-weight:600}
.race-data-table .cell-personal-best{position:relative;background:var(--best-soft);color:var(--best);font-weight:600}
.cell-personal-best .split-best-mark{position:absolute;top:8px;right:7px;font-size:12px}
.race-data-table .best-time-value{color:var(--best);font-weight:600}
.lap-times-table td{min-width:112px}
.lap-times-table .sticky-rider{min-width:240px}
.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 17px}
.timing-key{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.key-best{height:7px;width:7px;background:var(--best);transform:rotate(45deg)}
.timing-scroll-hint{margin-left:14px;color:var(--text-subtle)}
.fastest-banner{position:relative;isolation:isolate;overflow:hidden;display:flex;gap:40px;align-items:center;justify-content:space-between;padding:28px 34px;background:var(--navy-deep);color:#fff;border-left:4px solid #55d5d6;border-radius:3px;margin-bottom:20px}
.fastest-banner .eyebrow{color:#93afc9;font-size:12px}
.fastest-banner>div:first-child>strong{display:block;font-size:48px;line-height:1.15;color:#55d5d6;letter-spacing:-.05em;font-style:italic;font-variant-numeric:tabular-nums;margin:8px 0 10px}
.fastest-banner>div:first-child>span:last-child{font-size:14px}
.fastest-banner b{font-size:12px;font-weight:400;color:#9eb4cd;margin-left:9px}
.fastest-banner-detail{display:flex;flex-direction:column;align-items:end;gap:12px;font-size:12px;z-index:1}
.fastest-banner-detail strong{font-size:25px;font-style:italic;letter-spacing:-.04em}
.fastest-banner-detail small{color:#b4c6dd;font-size:12px}
.speed-stripes{position:absolute;inset:0 20% 0 55%;transform:skew(-24deg);background:repeating-linear-gradient(90deg,#ffffff05 0 26px,transparent 26px 51px);z-index:-1}
.analysis-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}
.analysis-charts .telemetry-panel{margin:0;padding:24px 23px 20px}
.telemetry-heading h3{font-size:25px;font-weight:600;font-style:italic;letter-spacing:-.04em}
.analysis-charts .chart-legend{gap:14px;font-size:12px;margin-top:20px}
.analysis-charts .comparison-chart{min-height:0;max-height:none}
.analysis-charts .chart-note{font-size:12px}
.data-meter{width:100%;height:4px;display:block}
.meter-track{fill:var(--surface-soft)}.meter-fill{fill:var(--best)}
.meter-tone-0 .meter-fill{fill:color-mix(in srgb,#097d88 var(--ink-keep),#fff)}.meter-tone-1 .meter-fill{fill:color-mix(in srgb,#2864ab var(--ink-keep),#fff)}.meter-tone-2 .meter-fill{fill:color-mix(in srgb,#c4510a var(--ink-keep),#fff)}
.consistency-cell{min-width:120px}
.consistency-cell strong{font-size:14px;font-weight:600;display:block;margin-bottom:8px}
.pace-sparkline{width:110px;height:32px;display:block}
.pace-sparkline polyline{fill:none;stroke:color-mix(in srgb,#087e8a var(--ink-keep),#fff);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.report-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--ink-bg);color:white;border-radius:3px;margin-bottom:28px}
.report-overview>div{padding:24px 28px;border-top:3px solid #304a6a}
.report-overview>div+div{border-left:1px solid #ffffff17}
.report-overview>div:last-child{border-top-color:#55d5d6}
.report-overview span{font-size:12px;color:#b6c9df;display:block}
.report-overview strong{display:block;font-size:42px;font-style:italic;letter-spacing:-.055em;font-variant-numeric:tabular-nums;margin:12px 0}
.report-overview .report-time{color:#55d5d6}
.report-overview small{display:block;font-size:12px;color:#b6c9df;line-height:1.6}
.report-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:23px 0 17px}
.report-section-heading .eyebrow,.report-card-heading .eyebrow{font-size:12px;color:var(--muted);margin-bottom:8px}
.report-section-heading h3,.report-card-heading h3{font-size:24px;font-style:italic;letter-spacing:-.04em}
.report-section-heading>span{font-size:12px;color:var(--muted)}
.report-pace-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;background:var(--white);border:1px solid var(--line);padding:22px 25px;margin-bottom:15px;border-radius:3px}
.report-pace-bars>div{display:grid;grid-template-columns:1fr auto;gap:15px 10px}
.report-pace-bars span{font-size:12px;color:var(--muted)}
.report-pace-bars strong{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.report-pace-bars .data-meter{grid-column:1/-1}
.report-breakdowns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0 30px}
.report-breakdown{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:25px 28px}
.report-card-heading{padding-bottom:19px;border-bottom:1px solid var(--line)}
.breakdown-list{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:18px}
.breakdown-list li>div{display:flex;justify-content:space-between;gap:20px;font-size:13px;margin-bottom:10px}
.breakdown-list strong{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.breakdown-list small{display:inline-block;min-width:52px;text-align:right;font-size:12px;font-weight:400;color:var(--muted)}
.report-passing>.race-note{margin:-5px 0 17px}
.net-passes{color:var(--best);font-size:15px;font-weight:600!important}
.report-empty{padding:25px;border:1px solid var(--line);background:var(--white);color:var(--muted);font-size:14px}
@media(max-width:1100px){.race-view-bar nav a{font-size:12px;gap:5px}.race-view-bar nav a small{display:none}.analysis-charts{grid-template-columns:1fr}.analysis-charts .comparison-chart{max-height:300px}.report-overview strong{font-size:34px}.report-pace-bars{gap:18px;padding:18px}}
@media(max-width:760px){
  .race-view-bar{margin-top:17px!important}.race-view-bar nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important}.race-view-bar nav a{font-size:12px;min-height:49px;padding:12px 3px!important;gap:4px;border-bottom:1px solid #ffffff14}.race-view-bar nav a:nth-child(3){border-right:0}.race-view-bar nav a span{font-size:12px;padding:2px 3px}
  .race-view-utilities{font-size:12px;gap:8px;letter-spacing:.02em}.race-view-utilities>div{gap:13px}.race-view-utilities button{display:none}
  .race-snapshot>div{padding:14px}.race-snapshot strong{font-size:14px}.race-snapshot .snapshot-stat .timing{font-size:23px}
  .race-view-heading{gap:14px;margin:22px 0 17px;align-items:start}.race-view-heading h2{font-size:27px}.race-view-heading .eyebrow{font-size:12px;letter-spacing:.07em}.race-view-heading p:last-child{font-size:12px}
  .export-button{padding:8px!important;font-size:12px!important;min-height:37px!important;gap:7px!important}.export-button svg{display:none}
  .race-data-table th,.race-data-table td{padding:14px 12px;font-size:12px}.race-data-table thead th{font-size:12px}.race-data-table .sticky-rider{min-width:172px;max-width:172px}.timing-rider{gap:7px}.timing-rider strong{font-size:12px}.timing-rider small{font-size:12px}.timing-number{min-width:25px;max-width:40px;padding:5px 3px;font-size:12px}
  .view-toolbar{gap:13px}.timing-key{font-size:12px;gap:7px;flex-wrap:wrap}.timing-scroll-hint{font-size:12px;margin-left:4px}.opening-toggle{font-size:12px}
  .fastest-banner{padding:23px 20px;gap:15px}.fastest-banner>div:first-child>strong{font-size:37px}.fastest-banner>div:first-child>span:last-child{font-size:13px}.fastest-banner-detail{font-size:12px;text-align:right;gap:10px}.fastest-banner-detail strong{font-size:19px}.fastest-banner-detail small{font-size:12px;max-width:110px}
  .analysis-charts{gap:13px}.analysis-charts .telemetry-panel{padding:20px 15px 17px}.telemetry-heading h3{font-size:23px}.analysis-charts .chart-note{font-size:12px}
  .report-overview{gap:0;margin-bottom:22px}.report-overview>div{padding:17px 12px}.report-overview span{font-size:12px;line-height:1.5;min-height:24px}.report-overview strong{font-size:29px;margin:11px 0}.report-overview .report-time{font-size:19px;margin-top:18px;margin-bottom:15px}.report-overview small{font-size:12px}
  .report-section-heading{align-items:start;gap:16px}.report-section-heading h3,.report-card-heading h3{font-size:23px}.report-section-heading>span{font-size:12px;max-width:125px;line-height:1.6;text-align:right}.report-section-heading .eyebrow,.report-card-heading .eyebrow{font-size:12px}
  .report-pace-bars{grid-template-columns:1fr;gap:18px;padding:20px}.report-pace-bars>div{gap:8px}.report-breakdowns{grid-template-columns:1fr;gap:14px;margin-block:18px}.report-breakdown{padding:22px}.breakdown-list{gap:16px}.report-card-heading{padding-bottom:15px}
}
@media(max-width:380px){.race-view-bar nav a{font-size:12px}.race-view-bar nav a span{font-size:12px}.race-data-table .sticky-rider{min-width:145px;max-width:145px}.race-data-table th,.race-data-table td{padding:13px 10px}.timing-rider{gap:5px}.timing-rider strong{font-size:12px}.timing-rider small{font-size:12px}.report-overview>div{padding-inline:9px}.report-overview .report-time{font-size:16px}.race-view-heading h2{font-size:24px}.fastest-banner-detail small{display:none}}
@media print{.race-view-utilities,.export-button{display:none!important}.race-table-scroll{overflow:visible}.race-data-table{font-size:12px}.race-data-table th,.race-data-table td{padding:7px}.race-snapshot,.report-overview,.fastest-banner{-webkit-print-color-adjust:exact;print-color-adjust:exact}.analysis-charts{grid-template-columns:1fr}.race-data-table .sticky-rider{position:static;min-width:0}}
@media(min-width:761px){.race-page .search-panel-top,.race-page .search-panel-bottom{padding-block:15px}.race-snapshot{margin-top:16px}.race-snapshot>div,.snapshot-compare{padding-block:15px}.race-view-bar{margin-top:10px}.race-view-bar nav a{padding-block:14px}.race-results-heading{margin-top:18px}.race-results-heading h2{font-size:28px}}
@media(min-width:1181px){.result-row{padding-top:16px;padding-bottom:10px}.rider-detail summary{padding-bottom:11px}}
@media print{.site-header,.site-footer,.skip-link,.search-panel,.race-switcher,.race-view-bar,.snapshot-compare,.comparison-tray,.rider-compare,.compare-card-top a,.compare-heading button,.compare-add-slot,.opening-toggle,.race-pagination{display:none!important}.race-hero,.race-content{background:var(--white)!important;color:color-mix(in srgb,#10213a var(--ink-keep),#fff)}.race-hero-image,.race-edition{display:none}.wrap{width:100%;max-width:none}.race-snapshot{grid-template-columns:repeat(3,1fr)}.result-entry,.compare-card,.telemetry-panel{break-inside:avoid}.race-content{padding:0}.comparison-metrics-scroll{overflow:visible}.telemetry-panel{-webkit-print-color-adjust:exact;print-color-adjust:exact}.race-results-heading{margin-top:20px}.race-page .race-hero h1 span,.race-page .race-hero-meta,.race-page .race-hero .eyebrow,.race-page .race-breadcrumb{color:color-mix(in srgb,#536179 var(--ink-keep),#fff)}}
/* Compact race results, close to the sites.livelaps.com leaderboard. */
.livelaps-page.race-page .race-head{padding:0 0 4px;background:var(--canvas)}.livelaps-page.race-page .race-head .race-breadcrumb{color:var(--muted);padding-top:20px}.livelaps-page.race-page .race-head .race-breadcrumb a:hover{color:var(--navy)}
.race-head-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:14px;padding:18px 22px;background:var(--white);border:1px solid var(--line);border-radius:14px}.race-head-title{min-width:0}.race-back{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-secondary)}.race-back svg{width:17px;height:17px}.race-back:hover{color:var(--brand)}
.race-head h1{font-size:clamp(26px,2.6vw,34px);line-height:1.15;letter-spacing:-.03em;color:var(--navy)}.race-head-title>h1{margin-top:6px}.race-head-meta{margin-top:6px;font-size:14px;color:var(--muted)}
.race-picker{position:relative;margin-top:6px}.race-picker summary{display:inline-flex;align-items:center;gap:10px;list-style:none;cursor:pointer;border-bottom:1px solid var(--line);padding-bottom:4px}.race-picker summary::-webkit-details-marker{display:none}.race-picker summary svg{width:22px;color:var(--muted);transition:transform .2s}.race-picker[open] summary svg{transform:rotate(180deg)}
.race-picker .race-switcher{position:absolute;z-index:20;top:calc(100% + 8px);left:0;display:flex;flex-direction:column;gap:2px;min-width:240px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--white);box-shadow:0 16px 40px #10213a24}.race-picker .race-switcher a{display:block;padding:10px 12px;border:0;border-radius:7px;background:none;color:var(--navy);font-size:15px;font-weight:500}.race-picker .race-switcher a:hover{background:var(--canvas)}.race-picker .race-switcher a[aria-current]{background:var(--surface-soft);font-weight:600}
.race-head-actions{display:flex;gap:10px;flex:none}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--white);box-shadow:0 0 0 3px #ffffff40}
.livelaps-page.race-page .race-content{padding-top:8px}
.livelaps-page.race-page .search-panel{margin-top:14px;border-radius:12px;box-shadow:none}.livelaps-page.race-page .search-panel-heading,.livelaps-page.race-page .search-panel-bottom{display:none}.livelaps-page.race-page .search-panel-top{padding:12px}
.race-class-tabs{display:flex;gap:4px;margin-top:22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.race-class-tabs::-webkit-scrollbar{display:none}.race-class-tabs a{flex:none;padding:12px 22px;font-size:16px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.race-class-tabs a:hover{color:var(--navy)}.race-class-tabs a[aria-current]{color:var(--navy);border-bottom-color:var(--brand)}
.livelaps-page.race-page .race-view-bar{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding:0;border:0;background:none}.livelaps-page.race-page .race-view-bar nav{display:flex;flex:none;gap:2px;padding:4px;border-radius:10px;background:var(--surface-soft);overflow-x:auto;scrollbar-width:none;max-width:100%}.livelaps-page.race-page .race-view-bar nav::-webkit-scrollbar{display:none}
.livelaps-page.race-page .race-view-bar nav a{flex:none;display:flex;align-items:center;gap:6px;padding:8px 14px;border:0;border-radius:7px;font-size:14px;font-weight:500;color:var(--muted);background:none;white-space:nowrap}.livelaps-page.race-page .race-view-bar nav a:after{display:none}.livelaps-page.race-page .race-view-bar nav a:hover{color:var(--navy)}.livelaps-page.race-page .race-view-bar nav a[aria-current]{background:var(--white);color:var(--navy);font-weight:600;box-shadow:0 1px 3px #10213a1f}.livelaps-page.race-page .race-view-bar nav a span{font-size:12px;padding:2px 5px;border-radius:4px;background:var(--canvas)}
.livelaps-page.race-page .race-view-utilities{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px;font-size:14px;color:var(--muted);text-transform:none;letter-spacing:0}.livelaps-page.race-page .race-view-utilities div{display:flex;gap:8px}.livelaps-page.race-page .race-view-utilities a,.livelaps-page.race-page .race-view-utilities button{display:inline-flex;align-items:center;padding:7px 12px;font-size:14px;font-weight:500;color:var(--navy);background:var(--white);border:1px solid var(--line);border-radius:8px}.livelaps-page.race-page .race-view-utilities a:hover,.livelaps-page.race-page .race-view-utilities button:hover{border-color:var(--navy)}
.lb-scroll{border:1px solid var(--line);border-radius:12px;background:var(--white);overflow-x:auto}.leaderboard{width:100%;border-collapse:collapse;font-size:15px;color:var(--navy);font-variant-numeric:tabular-nums}.leaderboard thead th{position:sticky;top:0;padding:12px 14px;text-align:left;font-size:13px;font-weight:600;color:var(--muted);background:var(--white);border-bottom:1px solid var(--line);white-space:nowrap}
.leaderboard td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.lb-entry:last-child .lb-row td{border-bottom:0}.lb-entry:hover .lb-row td{background:var(--canvas)}.lb-entry.is-open .lb-row td{background:var(--canvas);border-bottom-color:transparent}.lb-entry.comparison-selected .lb-row td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
.lb-pos{width:96px}.lb-pos strong{font-size:18px;font-weight:700}.lb-pos sup{font-size:11px;font-weight:600;margin-left:1px;vertical-align:baseline}.lb-pos small{font-size:13px;font-weight:700;color:var(--brand-strong)}.lb-change{display:inline-flex;align-items:center;gap:2px;margin-left:10px;font-size:12px;font-weight:600}.lb-change span{font-size:9px}.lb-change.up{color:color-mix(in srgb,#15803d var(--ink-keep),#fff)}.lb-change.down{color:color-mix(in srgb,#b91c1c var(--ink-keep),#fff)}
.lb-gap{color:var(--text-secondary)}.lb-rider{white-space:normal!important;min-width:180px}.lb-rider-meta{display:block;font-size:13px;color:var(--muted)}.lb-rider-name{font-weight:600;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}.lb-rider-name:hover{color:var(--brand);text-decoration-color:currentColor}.lb-mobile-gap{display:none}.lb-brand{color:var(--text-secondary)}.lb-time{text-align:left}.lb-fastest{color:color-mix(in srgb,#7c3aed var(--ink-keep),#fff);font-weight:700}
.lb-actions{width:1%;text-align:right}.lb-actions>*{vertical-align:middle}.lb-actions .rider-compare{display:inline-flex;align-items:center;padding:5px 10px;font-size:13px;font-weight:500;color:var(--text-secondary);border:1px solid var(--line);border-radius:7px;background:var(--white);white-space:nowrap}.lb-actions .rider-compare:hover{border-color:var(--navy);color:var(--navy)}.lb-actions .rider-compare.is-selected{border-color:var(--brand);color:var(--brand-strong)}
.lb-toggle{display:inline-grid;place-items:center;width:32px;height:32px;margin-left:6px;border:0;border-radius:7px;background:none;color:var(--muted)}.lb-toggle:hover{background:var(--surface-soft);color:var(--navy)}.lb-toggle svg{width:20px;transition:transform .2s}.lb-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.lb-detail>td{padding:4px 14px 18px!important;background:var(--canvas);white-space:normal!important}.lb-detail .rider-detail{border:0;margin:0;padding:0;background:none}.rider-detail-title{display:flex;align-items:center;gap:8px;margin:6px 0 12px;font-size:14px;font-weight:600;color:var(--navy)}.rider-detail-title svg{width:17px}.rider-detail-title span{font-weight:500;color:var(--muted)}
.livelaps-page.race-page .race-pagination{margin-top:14px}.livelaps-page.race-page .race-source-note{margin-top:18px;font-size:13px;color:var(--muted)}
@media(max-width:760px){.race-head-card{flex-direction:column;align-items:stretch;padding:16px}.race-head-actions .button{width:100%}.race-class-tabs a{padding:11px 16px;font-size:15px}.livelaps-page.race-page .race-view-bar nav{width:100%}.livelaps-page.race-page .race-view-utilities>span{display:none}.livelaps-page.race-page .race-view-utilities{justify-content:flex-end}
.leaderboard{font-size:14px}.leaderboard .lb-optional,.leaderboard .lb-gap{display:none}.leaderboard td,.leaderboard thead th{padding:10px 8px}.lb-pos{width:62px}.lb-change{display:flex;margin:2px 0 0}.lb-rider{min-width:0}.lb-mobile-gap{display:block;font-size:13px;color:var(--muted)}.lb-actions .rider-compare{padding:4px 8px}.lb-toggle{margin-left:2px}}
.leaderboard .lb-actions .rider-compare{min-width:0;min-height:0;width:auto;height:32px;padding:0 10px;font-size:13px}
@media(max-width:1180px){.leaderboard .lb-state{display:none}}
@media(max-width:760px){.leaderboard .lb-actions .rider-compare{width:32px;padding:0;font-size:0}}
@media(max-width:760px){.lb-detail>td{padding:4px 8px 14px!important}.lb-detail .rider-detail{width:calc(100vw - 50px);max-width:100%}.lb-detail .timing-scroll{overflow-x:auto}.lb-detail .rider-timing-summary{flex-wrap:wrap;gap:12px 20px}}
/* Calmer secondary views to match the leaderboard. */
.livelaps-page.race-page .race-view-heading{margin:8px 0 14px}.livelaps-page.race-page .race-view-heading .eyebrow,.livelaps-page.race-page .compare-heading .eyebrow,.livelaps-page.race-page .heading-period{display:none}.livelaps-page.race-page .race-view-heading h2,.livelaps-page.race-page .compare-heading h2{margin:0 0 4px;font-size:22px;font-style:normal;font-weight:700;letter-spacing:-.02em}.livelaps-page.race-page .race-view-heading p:last-child{font-size:15px;line-height:1.5}
.livelaps-page.race-page .race-data-table thead th{background:var(--white);color:var(--muted);font-size:13px;font-weight:600;letter-spacing:0;border-bottom:1px solid var(--line)}.livelaps-page.race-page .race-data-table th,.livelaps-page.race-page .race-data-table td{padding:11px 14px}
.livelaps-page.race-page .race-view-bar nav a span{color:var(--muted)}
.lb-brand-logo{display:block;width:34px;height:22px;object-fit:contain}.lb-brand-logo:not([hidden])+.lb-brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
/* Race report charts, restored from sites.livelaps.com. */
.report-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 18px}.report-kpi{display:flex;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.report-kpi span{display:block;font-size:14px;color:var(--muted)}.report-kpi strong{display:block;margin-top:4px;font-size:26px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}.report-kpi small{display:block;margin-top:2px;font-size:13px;color:var(--muted)}.report-kpi svg{width:22px;height:22px;flex:none;stroke:var(--muted);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.report-kpi .kpi-badge{display:inline-block;margin:0 0 0 6px;padding:2px 8px;font-size:13px;font-weight:600;border-radius:999px;background:var(--surface-soft);vertical-align:middle}
.report-charts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.report-chart{padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--white);min-width:0}.report-chart h3{font-size:17px;font-weight:600;color:var(--navy);margin-bottom:14px}
.donut-wrap{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:24px}.donut{width:180px;height:180px}.donut circle{fill:none;stroke-width:20}.donut circle:hover{stroke-width:24}.donut-total{font-size:22px;font-weight:700;fill:var(--navy)}.donut-caption{font-size:10px;fill:var(--muted)}
.chart-legend-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.chart-legend-list li{display:grid;grid-template-columns:10px auto 1fr auto 56px;align-items:center;gap:8px;font-size:14px;color:var(--navy)}.chart-legend-list li:not(:has(img)){grid-template-columns:10px 1fr auto 56px}.chart-legend-list i{width:10px;height:10px;border-radius:50%}.chart-legend-list img{width:22px;height:22px;object-fit:contain}.chart-legend-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-legend-list strong{font-weight:600;text-align:right}.chart-legend-list small{text-align:right;color:var(--muted);font-size:13px}
.bar-chart,.movers-chart{list-style:none;margin:0;padding:0;display:grid;gap:9px}.bar-chart li,.movers-chart li{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:12px;font-size:14px;color:var(--text-secondary)}.bar-chart li>span{text-align:right}.bar-chart div,.movers-chart div{display:flex;align-items:center;gap:8px;min-width:0}.bar-chart b,.movers-chart b{display:block;height:20px;min-width:3px;border-radius:4px}.bar-chart strong,.movers-chart strong{font-size:13px;font-weight:600;color:var(--navy);white-space:nowrap}
.movers-chart li{grid-template-columns:minmax(150px,240px) 1fr}.movers-chart li>span{display:flex;flex-direction:column;color:var(--navy);font-weight:600}.movers-chart small{font-size:12px;font-weight:500;color:var(--muted)}.movers-chart .up b{background:#16a34a}.movers-chart .up strong{color:#15803d}.movers-chart .down b{background:#dc2626}.movers-chart .down strong{color:#b91c1c}.livelaps-page.race-page .report-chart+.report-timing,.report-charts+.report-chart{margin-bottom:12px}
.dark :scope .movers-chart .up strong{color:#4ade80}.dark :scope .movers-chart .down strong{color:#f87171}
/* Analytics: every rider's progression. */
.bump-panel{margin-bottom:18px}.bump-panel .telemetry-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.bump-panel h3{font-size:18px;font-style:normal}.chart-mode{display:flex;gap:2px;padding:3px;border-radius:9px;background:var(--surface-soft)}.chart-mode button{padding:7px 12px;border:0;border-radius:7px;background:none;font-size:14px;font-weight:500;color:var(--muted)}.chart-mode button[aria-pressed=true]{background:var(--white);color:var(--navy);font-weight:600;box-shadow:0 1px 3px #10213a1f}
.bump-panel .race-table-scroll{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:8px}.bump-chart{display:block;width:100%;min-width:720px;height:auto}.bump-chart .chart-grid line{stroke:var(--line)}.bump-chart .chart-grid text{fill:var(--muted);font-size:12px}
.bump-line path{fill:none;stroke:var(--series);stroke-width:1.8;transition:opacity .15s,stroke-width .15s}.bump-line circle{fill:var(--white);stroke:var(--series);stroke-width:1.4}.bump-line text{font-size:11px;font-weight:600;fill:var(--series)}.bump-line.is-chosen path{stroke-width:3.6}.bump-chart:has(.bump-line:hover) .bump-line{opacity:.18}.bump-chart:has(.bump-line:hover) .bump-line:hover{opacity:1}.bump-chart .bump-line:hover path:not(.bump-hit){stroke-width:3.6}.bump-chart .bump-line:hover path:not(.bump-hit){stroke-width:3.4}
@media(max-width:980px){.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.report-charts{grid-template-columns:1fr}}
@media(max-width:560px){.donut-wrap{grid-template-columns:1fr;justify-items:center}.report-kpi strong{font-size:22px}.bar-chart li{grid-template-columns:80px 1fr}.movers-chart li{grid-template-columns:1fr}}
.livelaps-page.race-page .bump-panel{padding:0;border:0;background:none;color:var(--navy);box-shadow:none}.livelaps-page.race-page .bump-panel:before,.livelaps-page.race-page .bump-panel:after{display:none}.livelaps-page.race-page .bump-panel .chart-note{color:var(--muted);font-size:13px;margin-top:8px}
.livelaps-page.race-page .report-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:22px 0 10px}.livelaps-page.race-page .report-section-heading h3{font-size:18px;font-style:normal;font-weight:600;letter-spacing:-.01em;color:var(--navy)}.livelaps-page.race-page .report-section-heading>span{font-size:13px;color:var(--muted)}
/* Brand logos large enough to recognise. */
.lb-brand-logo{width:72px;height:38px;object-fit:contain;object-position:left center}.leaderboard .lb-brand{min-width:84px}.chart-legend-list img{width:32px;height:32px}
@media(max-width:760px){.lb-brand-logo{width:52px;height:30px}}

.bump-line .bump-hit{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke}.bump-line path:not(.bump-hit){pointer-events:none}.bump-line circle,.bump-line text{pointer-events:none}

/* Brand logos: large, no backing; a faint outline keeps dark logos visible in dark mode. */
.leaderboard .lb-brand-logo{width:96px;height:44px}.leaderboard .lb-brand{min-width:108px}
.dark :scope .lb-brand-logo{filter:drop-shadow(0 0 1px rgba(255,255,255,.75)) drop-shadow(0 0 3px rgba(255,255,255,.18))}
@media(max-width:760px){.leaderboard .lb-brand-logo{width:60px;height:32px}}
/* Row headers (the name column) get the same lines and spacing as the other cells. */
.leaderboard tbody th{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle;text-align:left;font-weight:400}.leaderboard tbody.lb-entry:last-child .lb-row th,.leaderboard tbody tr:last-child th{border-bottom:0}
@media(max-width:760px){.leaderboard tbody th{padding:10px 8px}}
/* Print dialog, after the old site's "Print leaderboard" dialog. */
.print-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--navy);box-shadow:0 24px 60px #0b162740}
.print-dialog::backdrop{background:#0b1627a6}
.print-dialog-form{display:grid;gap:18px;padding:24px}
.print-dialog h2{margin:0;font-size:20px;letter-spacing:-.02em}
.print-dialog-description{margin:-10px 0 0;font-size:14px;color:var(--muted)}
.print-field{display:grid;gap:8px}
.print-field>label,.print-label{font-size:14px;font-weight:600}
.print-field select{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:15px}
.print-choices{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.print-select-all{display:block;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:var(--canvas);text-align:left;font:inherit;font-size:14px;font-weight:600;color:var(--brand-strong);cursor:pointer}
.print-choices ul{max-height:220px;overflow:auto;margin:0;padding:6px 0;list-style:none}
.print-choices label,.print-check{display:flex;align-items:center;gap:10px;padding:6px 12px;font-size:14px;cursor:pointer}
.print-check{padding:0}
.print-choices input,.print-check input{width:16px;height:16px;accent-color:var(--brand)}
.print-error{margin:0;font-size:13px;color:color-mix(in srgb,#b91c1c var(--ink-keep),#fff)}
.print-actions{display:flex;justify-content:flex-end;gap:10px}
.print-actions .page-button{min-height:43px}
.race-picker .race-switcher{max-height:min(70vh,520px);overflow-y:auto}
.race-switcher-label{margin:8px 10px 4px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.race-switcher-label:first-child{margin-top:4px}.race-switcher-label:not(:first-child){padding-top:8px;border-top:1px solid var(--line)}
.race-picker .race-switcher a.race-switcher-series{display:flex;align-items:flex-start;gap:10px}
.race-switcher-series svg{flex:none;width:16px;height:16px;margin-top:3px;color:var(--brand)}
.race-switcher-series small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.sort-head{display:inline-flex;align-items:center;gap:6px;color:inherit;white-space:nowrap}.sort-head span{font-size:11px;color:var(--muted)}.sort-head:hover{color:var(--navy)}
th[aria-sort] .sort-head{color:var(--navy)}th[aria-sort] .sort-head span{color:var(--brand)}
@media print{.sort-head span{display:none}}
/* One table style on every race view, the leaderboard's: white header with muted labels, roomy
   rows divided by a line, a hover tint and a rounded frame. Riders and places use race-rider.js. */
.livelaps-page.race-page :is(.race-table-scroll,.comparison-metrics-scroll){border:1px solid var(--line);border-radius:12px;background:var(--white);padding:0;box-shadow:none}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics){width:100%;border-collapse:collapse;border-spacing:0;font-size:15px;color:var(--navy);font-variant-numeric:tabular-nums;background:none}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics) thead th{position:sticky;top:0;padding:12px 14px;text-align:left;font-size:13px;font-weight:600;font-style:normal;letter-spacing:0;text-transform:none;color:var(--muted);background:var(--white);border-bottom:1px solid var(--line)}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics) :is(tbody th,tbody td){padding:10px 14px;font-size:15px;font-weight:400;vertical-align:middle;white-space:nowrap;color:var(--navy);background:var(--white);border-bottom:1px solid var(--line)}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics) tbody tr:last-child>*{border-bottom:0}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics) tbody tr:hover>*{background:var(--canvas)}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics) td small{font-size:13px;color:var(--muted);margin-top:2px}
.livelaps-page.race-page .race-data-table .sticky-rider{min-width:200px;max-width:260px;white-space:normal;box-shadow:none}
.livelaps-page.race-page .race-data-table .timing-position{font-size:15px;font-style:normal;font-weight:400}
.livelaps-page.race-page :is(.race-data-table,.heatmap-table) .timing-position strong,.livelaps-page.race-page .race-data-table .timing-position{color:var(--navy)}
.livelaps-page.race-page .race-data-table .timing-position strong{font-size:18px;font-weight:700}
.livelaps-page.race-page .race-data-table .timing-position sup{font-size:11px;font-weight:600;margin-left:1px;vertical-align:baseline}
.livelaps-page.race-page .comparison-metrics tbody th{color:var(--text-secondary);font-size:14px}
.livelaps-page.race-page .comparison-metrics thead th i{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--rider-color,currentColor)}
.livelaps-page.race-page .lb-rider-meta{white-space:normal}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics,.heatmap-table) .lb-rider-meta{font-size:13px;color:var(--muted)}
.livelaps-page.race-page :is(.race-data-table,.comparison-metrics,.heatmap-table) .lb-rider-name{font-size:15px;font-weight:600;color:var(--navy)}
.livelaps-page.race-page .comparison-metrics td strong{font-size:18px;font-weight:700}.livelaps-page.race-page .comparison-metrics sup{font-size:11px;font-weight:600;vertical-align:baseline}
/* Compare buttons as on the leaderboard. */
.livelaps-page.race-page .race-data-table .rider-compare{display:inline-flex;align-items:center;gap:6px;width:auto;min-width:0;min-height:0;height:32px;padding:0 10px;font-size:13px;font-weight:500;color:var(--text-secondary);border:1px solid var(--line);border-radius:7px;background:var(--white);white-space:nowrap}
.livelaps-page.race-page .race-data-table .rider-compare:hover{border-color:var(--navy);color:var(--navy)}
.livelaps-page.race-page .race-data-table .rider-compare.is-selected{border-color:var(--brand);color:var(--brand-strong)}
.livelaps-page.race-page .race-data-table .rider-compare svg{width:14px;height:14px}

/* Race filter panel, column menu and expanded rows (as on sites.livelaps.com) */
html[data-race-hide~="gap"] .leaderboard [data-col="gap"],html[data-race-hide~="state"] .leaderboard [data-col="state"],html[data-race-hide~="brand"] .leaderboard [data-col="brand"],html[data-race-hide~="group"] .leaderboard [data-col="group"],html[data-race-hide~="total"] .leaderboard [data-col="total"],html[data-race-hide~="lastLap"] .leaderboard [data-col="lastLap"],html[data-race-hide~="best"] .leaderboard [data-col="best"],html[data-race-hide~="average"] .leaderboard [data-col="average"],html[data-race-hide~="laps"] .leaderboard [data-col="laps"],html[data-race-hide~="speed"] .leaderboard [data-col="speed"],html[data-race-hide~="penalty"] .leaderboard [data-col="penalty"],html[data-race-hide~="checks"] .leaderboard [data-col="checks"]{display:none!important}
.race-page .search-panel-bottom{display:none}.race-filter-bar{margin:0 0 14px}.leaderboard-tools{display:flex;justify-content:flex-end;margin:0 0 10px}.column-menu .filter-multi-panel{left:auto;right:0;width:220px}
.best-chip{margin-left:8px;padding:2px 8px;border-radius:4px;background:color-mix(in srgb,var(--brand) 14%,var(--white));color:var(--navy);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600}
.lap-breakdown .lap-diff{color:var(--muted);font-variant-numeric:tabular-nums}.lap-breakdown .lb-change{display:inline-flex;margin-left:6px}.checkpoint-splits small{color:var(--muted)}
/* Race timeline: one track per day, as on the old event report */
.timeline-axis{position:relative;height:56px;margin:8px 0 6px}.timeline-axis::before{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:var(--line)}
.timeline-tick{position:absolute;top:0;transform:translateX(-50%);font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.timeline-tick::after{content:"";display:block;width:1px;height:10px;margin:4px auto 0;background:var(--line)}.timeline-tick.first{transform:none}.timeline-tick.first::after{margin-left:0}.timeline-tick.last{transform:translateX(-100%)}.timeline-tick.last::after{margin-right:0}
.timeline-axis .timeline-bar{position:absolute;top:30px;height:10px;min-width:28px;border-radius:999px}.timeline-axis .timeline-marker{position:absolute;top:29px;width:12px;height:12px;border-radius:50%;transform:translateX(-50%);box-shadow:0 0 0 2px var(--white)}
.timeline-list{display:grid;gap:6px}.timeline-list-head,.timeline-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:8px;font-size:14px}.timeline-list-head span:last-child{font-size:12px;font-weight:600;color:var(--muted)}.timeline-list-row i{width:10px;height:10px;border-radius:50%}.timeline-list-row strong{font-weight:600}.timeline-list-row small{margin-left:8px;font-size:12px;color:var(--muted)}.timeline-list-row>span:last-child{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.lb-entry.comparison-selected .lb-row td{background:color-mix(in srgb,var(--brand) 8%,var(--white))}.lb-entry.comparison-selected .lb-row td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
@keyframes live-pulse{50%{opacity:.4}}
/* Live results page and presentation board (as on sites.livelaps.com) */
.live-head .race-back{margin:0 0 16px}.live-card{margin-bottom:20px}.live-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 10px}
.live-inline{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#dc2626;white-space:nowrap}.live-inline>span{width:8px;height:8px;border-radius:50%;background:#ef4444;animation:live-pulse 2s ease-in-out infinite}
.live-watching{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--muted);white-space:nowrap}.live-watching svg{width:16px;height:16px}.live-updated{font-size:14px;color:var(--muted)}
.live-context{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:4px 0 0;color:var(--muted)}.live-context strong{color:var(--navy)}
.live-presentation .site-header,.live-presentation .site-footer,.live-presentation .skip-link{display:none}
:scope{--categorical-color-1:#6929c4;--categorical-color-2:#1192e8;--categorical-color-3:#005d5d;--categorical-color-4:#9f1853;--categorical-color-5:#fa4d56;--categorical-color-6:#570408;--categorical-color-7:#198038;--categorical-color-8:#002d9c;--categorical-color-9:#ee538b;--categorical-color-10:#b28600;--categorical-color-11:#009d9a;--categorical-color-12:#012749;--categorical-color-13:#8a3800;--categorical-color-14:#a56eff}
.dark :scope{--categorical-color-1:#8a3ffc;--categorical-color-2:#33b1ff;--categorical-color-3:#007d79;--categorical-color-4:#ff7eb6;--categorical-color-5:#fa4d56;--categorical-color-6:#fff1f1;--categorical-color-7:#6fdc8c;--categorical-color-8:#4589ff;--categorical-color-9:#d12771;--categorical-color-10:#d2a106;--categorical-color-11:#08bdba;--categorical-color-12:#bae6ff;--categorical-color-13:#ba4e00;--categorical-color-14:#d4bbff}
.live-board{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--white)}
.live-board-head{flex:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px 24px;border-bottom:1px solid var(--line)}
.live-board-line{display:flex;align-items:center;gap:12px;min-width:0}.live-board-line h1{min-width:0;margin:0;font-size:20px;line-height:1.2}.live-board-line h1 a{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--navy);text-decoration:none}.live-board-line h1 a:hover{color:var(--brand)}.live-board-line h1 svg{width:16px;height:16px;flex:none}.live-board-line h1 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-board .live-context{margin-top:2px;font-size:14px}.live-board-cycle{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;margin:4px 0 0;font-size:14px;color:var(--muted)}.live-board-cycle strong,.live-board-cycle .board-timer{color:var(--navy);font-variant-numeric:tabular-nums}
.live-board-banner{display:flex;justify-content:center}.live-board-banner img{width:100%;max-width:576px;height:auto;border-radius:8px}.live-board-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-self:end}.live-board-actions .page-button{min-height:32px;padding:6px 12px}
@media(max-width:1023px){.live-board-head{grid-template-columns:1fr}.live-board-actions{justify-self:start}.live-board-banner{order:3}}
.live-board-body{flex:1;min-height:0;overflow:auto;padding:32px}.board-scopes{display:flex;align-items:flex-start;justify-content:center;gap:24px;width:max-content;min-width:100%;margin:0 auto}
.board-scope{display:flex;flex-direction:column;gap:8px}.board-scope.divided{padding-left:24px;border-left:1px solid var(--line)}.board-scope h2{margin:0;padding:0 4px;font-size:14px;font-weight:600;color:var(--muted)}.board-tables{display:grid;gap:16px;width:max-content}
.board-table table{width:max-content;min-width:100%;border-collapse:collapse;font-size:calc(.875rem*var(--presentation-font-scale,1));color:var(--navy)}
.board-table thead th{position:sticky;top:-32px;z-index:1;height:2.5rem;padding:0 12px;text-align:left;font-weight:500;white-space:nowrap;background:var(--white);border-bottom:1px solid var(--line)}
.board-gap-head{display:flex;flex-direction:column;line-height:1.2}.board-gap-head small{font-size:calc(.625rem*var(--presentation-font-scale,1));font-weight:400;color:var(--muted)}
.board-table td{padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.board-table tr:last-child td{border-bottom:0}
.board-position,.board-number{font-size:calc(1.125rem*var(--presentation-font-scale,1));font-variant-numeric:tabular-nums}.board-position{font-weight:700}.board-ordinal small{font-size:.65em}
.board-position-change{display:inline-grid;grid-template-columns:minmax(3.5ch,max-content) 3.75rem;align-items:baseline;gap:6px}
.board-change{display:inline-flex;align-items:center;gap:2px;font-size:.65em;line-height:1;font-weight:600;font-variant-numeric:tabular-nums}.board-change.up{color:#059669}.board-change.down{color:#dc2626}.board-change.none{color:var(--muted)}
.board-change i{width:0;height:0;border-left:.28rem solid transparent;border-right:.28rem solid transparent}.board-change.up i{border-bottom:.42rem solid currentColor}.board-change.down i{border-top:.42rem solid currentColor}
.board-name{min-width:10rem}.board-name>span{display:flex;align-items:center;gap:8px}.board-name i{flex:none;width:calc(.625rem*var(--presentation-font-scale,1));height:calc(.625rem*var(--presentation-font-scale,1));border-radius:50%}.board-name>span>span{display:flex;flex-direction:column;line-height:1.2}
.board-time{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.board-laps{font-variant-numeric:tabular-nums}.board-brand img{height:1.5em;width:auto;max-width:6em;object-fit:contain;vertical-align:middle}
.board-settings{width:min(672px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}.board-reset{position:absolute;top:20px;right:20px;min-height:32px;padding:6px 12px}
.board-toggle{display:flex;flex-wrap:wrap;gap:6px}.board-toggle button{padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:14px;cursor:pointer}.board-toggle button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand);color:#fff}
.board-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;font-size:14px;font-weight:600;color:var(--navy)}.board-switch select{min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit}
.board-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:14px 0 6px;border-bottom:1px solid var(--line)}.board-tabs button{padding:8px 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}.board-tabs button[aria-selected="true"]{border-bottom-color:var(--brand);color:var(--navy);font-weight:600}
.board-columns{margin:12px 0 0;padding:0;border:0}.board-columns legend{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--navy)}.board-add .filter-multi-panel button{width:100%;padding:6px;border:0;border-radius:6px;background:none;color:var(--navy);font:inherit;text-align:left;cursor:pointer}.board-add .filter-multi-panel button:hover{background:var(--canvas)}.board-add summary[aria-disabled="true"]{opacity:.5;pointer-events:none}
.board-column-list{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;list-style:none}.board-column-list li{display:flex;align-items:center;gap:4px}
.board-column{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--canvas);color:var(--navy);font:inherit;font-size:13px;cursor:grab}.board-column span:first-child{color:var(--muted)}.board-column span:nth-child(2){font-size:11px;color:var(--muted)}
.board-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--navy);font:inherit;cursor:pointer}.board-icon.active{background:var(--canvas);border-color:var(--navy)}
/* Race views: every tab visible (wrapping on narrow screens), each outlined, the current one filled */
.livelaps-page.race-page .race-view-bar nav{flex:1 1 100%;flex-wrap:wrap;gap:6px;padding:0;background:none;border-radius:0;overflow:visible}
.livelaps-page.race-page .race-view-bar nav a{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--muted)}
.livelaps-page.race-page .race-view-bar nav a:hover{border-color:var(--navy);color:var(--navy)}
.livelaps-page.race-page .race-view-bar nav a[aria-current]{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:none}
.livelaps-page.race-page .race-view-bar nav a[aria-current] span{background:#ffffff33;color:#fff}
@media(max-width:760px){.livelaps-page.race-page .race-view-bar nav{display:flex!important;gap:6px!important}.livelaps-page.race-page .race-view-bar nav a{min-height:0;padding:8px 12px!important;font-size:13px;border-bottom:1px solid var(--line)}.livelaps-page.race-page .race-view-bar nav a[aria-current]{border-color:var(--brand)}}
/* The rider detail's lap chart: a collapsible line chart, as on the old site */
.rider-chart{margin:10px 0 8px}.rider-chart summary{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;background:var(--canvas);font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;list-style:none}.rider-chart summary::-webkit-details-marker{display:none}.rider-chart summary svg{width:14px;height:14px}.rider-chart summary::after{content:"⌄";margin-left:auto}.rider-chart[open] summary::after{transform:rotate(180deg)}
.rider-lap-chart{display:block;width:100%;height:auto;max-height:240px;margin-top:8px}.rider-lap-chart .chart-grid line{stroke:var(--line);stroke-dasharray:3 3}.rider-lap-chart text{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.rider-lap-chart .lap-line{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.rider-lap-chart circle{fill:var(--white);stroke:var(--brand);stroke-width:2}.rider-lap-chart circle.is-best{fill:var(--brand)}
.rider-lap-chart .best-line{stroke:#1f7a8c;stroke-width:1.5;stroke-dasharray:5 3}.rider-lap-chart .best-label{fill:#1f7a8c;font-size:11px}
/* Analytics lap progression: one chart at a time, in a window you drag to explore */
.bump-chart[hidden]{display:none}
.bump-panel .bump-viewport{max-height:420px;overflow:auto;cursor:grab;overscroll-behavior:auto;overscroll-behavior-x:contain}.bump-panel .bump-viewport.is-dragging{cursor:grabbing;user-select:none}
/* Presentation settings: switches beside their labels; each tab's settings in a panel joined to its tab */
.board-settings .print-dialog-form{gap:14px}.board-settings .print-field{margin:0}
.board-switch{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;margin:0;font-size:14px;font-weight:600;color:var(--navy);cursor:pointer}
.board-switch input{appearance:none;flex:none;position:relative;width:36px;height:20px;margin:0;border-radius:999px;background:var(--line);cursor:pointer;transition:background .15s}.board-switch input::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}
.board-switch input:checked{background:var(--brand)}.board-switch input:checked::after{transform:translateX(16px)}.board-switch input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.board-select{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--navy)}.board-select select{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-weight:500}
.board-scope-settings{display:flex;flex-direction:column}.board-settings .board-tabs{display:flex;gap:4px;margin:0;border:0;padding:0 0 0 8px}
.board-settings .board-tabs button{position:relative;margin-bottom:-1px;padding:8px 16px;border:1px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;background:none;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}
.board-settings .board-tabs button[aria-selected="true"]{border-color:var(--line);background:var(--canvas);color:var(--navy);font-weight:600}
.board-tab-panel{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}.board-inline{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.board-tab-panel .board-columns{margin:0}.board-tab-panel .board-column{background:var(--white)}
/* Race filters: a "Filters" button opening a panel with the classes, groups and riders */
.livelaps-page.race-page .race-view-utilities>div{display:flex;align-items:center;gap:10px}
/* The race views as the old site's tab list: one muted bar, the current view raised on it. */
.livelaps-page.race-page .race-view-bar nav{flex:0 1 auto!important;width:auto;max-width:100%;flex-wrap:nowrap;gap:2px!important;padding:3px;border-radius:10px;background:var(--surface-soft);overflow-x:auto;scrollbar-width:none}
.livelaps-page.race-page .race-view-bar nav a{flex:none;min-height:30px;padding:5px 12px!important;border:1px solid transparent;border-radius:7px;background:none;color:var(--muted);font-size:14px;font-weight:500;box-shadow:none}
.livelaps-page.race-page .race-view-bar nav a:hover{border-color:transparent;color:var(--navy)}
.livelaps-page.race-page .race-view-bar nav a[aria-current]{border-color:var(--line);background:var(--white);color:var(--navy);font-weight:600;box-shadow:0 1px 2px #10213a14}
.livelaps-page.race-page .race-view-bar nav a span,.livelaps-page.race-page .race-view-bar nav a[aria-current] span{background:var(--canvas);color:var(--muted)}
@media(max-width:760px){.livelaps-page.race-page .race-view-bar nav{width:100%}.livelaps-page.race-page .race-view-bar nav a{padding:5px 10px!important;font-size:13px}}
/* Result filters (result-filters.js), as on the old site: a Filters button and a clear button on
   the left, the column menu on the right, and the pickers in a panel beneath. */
.result-filters{margin:4px 0 12px}
.result-filters-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.result-filters-row .column-menu{margin-left:auto}
.result-filters-group{display:inline-flex;align-items:stretch}
.result-filters-toggle,.result-filters-clear{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font:inherit;font-size:13px;font-weight:500;cursor:pointer}
.result-filters-toggle svg{width:15px;height:15px}
.result-filters-toggle:hover,.result-filters-clear:hover{background:var(--surface-soft)}
.result-filters-toggle.is-active{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:color-mix(in srgb,var(--brand) 8%,var(--white))}
.result-filters-group:has(.result-filters-clear) .result-filters-toggle{border-top-right-radius:0;border-bottom-right-radius:0}
.result-filters-clear{justify-content:center;width:32px;padding:0;margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;font-size:17px;line-height:1;color:var(--muted)}
.result-filters-count{min-width:20px;padding:1px 6px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;text-align:center}
.result-filters-panel{display:flex;flex-wrap:wrap;gap:8px;max-width:768px;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--white)}
.result-filters-panel[hidden]{display:none}
.result-filters-panel.is-active{border-color:color-mix(in srgb,var(--brand) 30%,var(--line));background:color-mix(in srgb,var(--brand) 4%,var(--white))}
.result-picker{position:relative;flex:1 1 180px;max-width:240px}
.result-picker>summary{display:flex;align-items:center;gap:6px;height:32px;padding:0 8px 0 6px;border:1px solid var(--line);border-radius:7px;background:var(--white);color:var(--navy);font-size:13px;cursor:pointer;list-style:none}
.result-picker>summary::-webkit-details-marker{display:none}
.result-picker>summary:hover,.result-picker[open]>summary{border-color:var(--navy)}
.result-picker>summary svg{flex:none;width:15px;height:15px;margin-left:auto;color:var(--muted)}
.result-picker-value{display:flex;align-items:center;gap:5px;min-width:0}
.result-chip{overflow:hidden;max-width:130px;padding:2px 7px;border-radius:5px;background:var(--surface-soft);font-weight:500;white-space:nowrap;text-overflow:ellipsis}
.result-more{flex:none;color:var(--muted);font-size:12px}
.result-placeholder{padding-left:4px;color:var(--muted)}
.result-picker-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:max(100%,260px);padding:6px;border:1px solid var(--line);border-radius:9px;background:var(--white);box-shadow:0 10px 30px #10213a26}
.result-picker-search{width:100%;height:32px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--navy);font:inherit;font-size:13px}
.result-picker-search:focus{outline:2px solid var(--brand);outline-offset:0}
.result-picker ul{list-style:none;max-height:280px;margin:6px 0 0;padding:0;overflow-y:auto}
.result-picker li[hidden]{display:none}
.result-picker li label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;font-size:13px;color:var(--navy);cursor:pointer}
.result-picker li label:hover{background:var(--surface-soft)}
.result-picker li input{position:absolute;opacity:0;pointer-events:none}
.result-picker li input:focus-visible+.result-option{outline:2px solid var(--brand);outline-offset:2px}
.result-option{display:flex;flex-direction:column;min-width:0}
.result-option small{color:var(--muted);font-size:11px}
.result-picker li label svg{flex:none;width:15px;height:15px;margin-left:auto;color:var(--brand);visibility:hidden}
.result-picker li input:checked~svg{visibility:visible}
.result-picker li:has(input:checked) label{font-weight:600}
.result-picker-empty{margin:8px 4px 4px;color:var(--muted);font-size:13px}
@media(max-width:760px){.result-picker{max-width:none;flex-basis:100%}}
.series-standings>.result-filters{margin-top:16px}
.result-filters-row .race-tools{margin:0 0 0 auto}.result-filters-row .race-tools>div{align-items:center;gap:8px}
.result-filters-row{flex-wrap:wrap}
@media(max-width:760px){.result-filters-row .race-tools{position:static;width:100%;margin:0}.result-filters-row .race-tools>div{flex-wrap:wrap;justify-content:flex-start;gap:6px}}
.result-filters-row .race-tools .column-menu{margin:0}
.rider-dot{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;vertical-align:-1px;flex:none}
.result-picker li label .rider-dot{margin-right:0}
.compare-picker{display:flex;justify-content:center;margin:4px 0 0}.compare-picker .result-picker{flex:none;width:min(320px,100%);max-width:none;text-align:left}.compare-picker .result-picker>summary{height:44px;padding:0 12px;font-size:15px}.compare-picker .result-picker-menu{width:100%}
.head-to-head .compare-picker{justify-content:flex-start;margin:4px 0 16px}
.live-board-line h1{flex:0 1 auto;overflow:hidden}.live-board-line h1 a{display:flex;max-width:100%}.live-board-line>.live-inline,.live-board-line>.live-watching{flex:none}
.race-content.live-head{padding-top:32px}@media(max-width:760px){.race-content.live-head{padding-top:20px}}
/* The race's banner on the header's top line, beside the breadcrumb or "Back to event". */
.race-top-row{display:flex;align-items:center;justify-content:space-between;gap:12px 24px}
.race-top-row>:first-child{min-width:0}
.race-top-row .race-banner{flex:0 1 auto;min-width:0;margin-left:auto}
.race-top-row .race-banner img{display:block;width:auto;max-width:100%;height:auto;max-height:72px;border-radius:6px}
.race-head .race-top-row{padding-top:16px}.race-head .race-top-row .race-breadcrumb{padding-top:0}
.live-head .race-top-row{margin:0 0 16px}.live-head .race-top-row .race-back{margin:0}
@media(max-width:760px){.race-top-row{flex-wrap:wrap}.race-top-row .race-banner{flex-basis:100%;margin-left:0}.race-top-row .race-banner img{max-height:none;width:100%}}
@media(max-width:760px){.result-filters-row .race-tools{justify-content:flex-start;margin:6px 0 0}.result-filters-row .race-tools>div{flex:1 1 auto;min-width:0}}
/* The same space around the banner row on the race and live pages. */
.race-content.live-head{padding-top:24px}.race-head .race-top-row{padding-top:24px;margin-bottom:16px}.race-head .race-top-row+.race-head-card{margin-top:0}
.live-head .race-top-row{margin-bottom:16px}
@media(max-width:760px){.race-content.live-head,.race-head .race-top-row{padding-top:20px}.race-top-row{row-gap:12px}}
body .race-head .race-top-row>.race-breadcrumb{padding-top:0}
.rider-chart summary::after{content:"";width:14px;height:14px;margin-left:auto;background:var(--muted);-webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>') center/contain no-repeat;mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>') center/contain no-repeat}
.rider-compare .ui-icon{width:15px;height:15px}
.career-pager button .ui-icon,.calendar-step .ui-icon{width:16px;height:16px}
.livelaps-page.race-page .lb-rider-meta,.lb-rider-meta{white-space:nowrap}
/* Team races: a team's expanded row lists its riders, and each team lap names who rode it. */
.team-members{margin:0 0 16px}.team-riders td small{color:var(--muted)}.lap-breakdown .lap-rider{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.team-group .team-member{display:none}.team-group.is-open .team-member{display:table-row}
.team-group .team-member>*{background:var(--canvas);font-size:14px}.team-group .team-member .sticky-rider{padding-left:28px}
.team-group .team-row .lb-toggle{margin-left:0}.team-group .lb-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.race-data-table .lap-rider{display:block;font-size:12px;color:var(--muted)}
.lb-row,.team-row{cursor:pointer}
/* Scrolling tables hold their own positioned bits (screen-reader labels), so nothing they contain
   can widen the page. */
.race-table-scroll,.lb-scroll,.timing-scroll,.comparison-metrics-scroll,.heatmap-shell,.race-class-tabs,.race-view-bar nav{position:relative}
/* A rider's name turns orange under the pointer in every table, as on the leaderboard. */
a.lb-rider-name:hover,.race-data-table a.lb-rider-name:hover,.comparison-metrics a.lb-rider-name:hover,.heatmap-table a.lb-rider-name:hover,.team-riders a.lb-rider-name:hover{color:var(--brand);text-decoration-color:currentColor}
/* The filter panel is as wide as its pickers (no room kept for a filter that is not offered); on phones they fill the width. */.result-filters-panel{width:fit-content;max-width:100%}@media(max-width:760px){.result-filters-panel{width:auto}}
@media(min-width:761px){.result-filters-panel .result-picker{flex:0 1 240px;width:240px}}
.result-picker-value{flex:1 1 auto;overflow:hidden}.result-chip{max-width:100%;min-width:0;flex:0 1 auto}
/* The footer of the paged tables: rows on show and page on the left with "Rows per page" beside them, Previous and Next on the right. */
/* An expanded rider stays in view while the results table scrolls sideways: it keeps to the visible width of the scroll box. */
.race-table-scroll{container-type:inline-size}
.lb-detail .rider-detail,.lb-detail .team-members{position:sticky;left:14px;box-sizing:border-box;width:calc(100cqw - 28px);max-width:none}
@media(max-width:760px){.lb-detail .rider-detail,.lb-detail .team-members{left:8px;width:calc(100cqw - 16px)}}

/* race-insights.css */
/* Race Lab: navy instrumentation, clear timing signals, static graphics. */
.race-lab-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--white);border:1px solid var(--line);border-top:0;border-radius:0 0 3px 3px}
.race-lab-nav a{display:flex;align-items:center;justify-content:center;gap:10px;position:relative;padding:17px 12px;color:color-mix(in srgb,#273d55 var(--ink-keep),#fff);font-weight:600;font-size:14px;border-right:1px solid var(--line)}
.race-lab-nav a:last-child{border-right:0}
.race-lab-nav a svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;flex:none}
.race-lab-nav a span{font-size:12px;font-weight:500;letter-spacing:.09em;color:color-mix(in srgb,#60748a var(--ink-keep),#fff)}
.race-lab-nav a:hover{background:var(--canvas)}
.race-lab-nav a[aria-current]{background:var(--canvas);color:color-mix(in srgb,#075566 var(--ink-keep),#fff)}
.race-lab-nav a[aria-current]:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:#087c8e}
.insight-heading{margin:30px 0 24px;align-items:center}
.insight-heading h2{font-size:38px}
.insight-heading p:last-child{max-width:670px;font-size:14px;line-height:1.75}
.insight-badge{flex:none;font-size:12px;letter-spacing:.16em;border-left:3px solid var(--brand);padding:9px 0 9px 12px;color:color-mix(in srgb,#60748a var(--ink-keep),#fff)}
.rival-lineup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.rival-slot{border:1px solid var(--line);border-top:3px solid #344f6a;background:var(--white);padding:20px 22px;min-width:0;border-radius:3px;display:flex;flex-direction:column;align-items:start}
.rival-slot-1{border-top-color:#087d8c}.rival-slot-2{border-top-color:#3275b9}
.rival-slot>span{font-size:12px;font-weight:600;letter-spacing:.13em;color:color-mix(in srgb,#546b82 var(--ink-keep),#fff)}
.rival-slot>strong{font-size:23px;font-style:italic;letter-spacing:-.04em;margin:15px 0 8px;overflow-wrap:anywhere}
.rival-slot>small{font-size:12px;color:color-mix(in srgb,#586c82 var(--ink-keep),#fff)}
.rival-slot>div{display:flex;justify-content:space-between;gap:10px;align-items:center;width:100%;margin-top:auto;padding-top:20px;font-size:12px;color:color-mix(in srgb,#536b80 var(--ink-keep),#fff);line-height:1.6}
.rival-slot>div a{text-decoration:underline;text-underline-offset:4px;min-height:28px;display:flex;align-items:center}
.rival-slot-empty{align-items:center;justify-content:center;border:1px dashed #9db1c4;background:var(--canvas);padding:17px;min-height:160px;text-align:center}
.rival-slot-empty b{font-size:28px;line-height:1;color:color-mix(in srgb,#607a92 var(--ink-keep),#fff);font-weight:400}
.rival-slot-empty>strong{font-size:16px;margin:10px 0;font-style:normal;letter-spacing:0}
.rival-slot-empty:hover{background:var(--surface-soft);border-color:#247388}
.insight-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(120deg,#142a44,#091827);color:#fff;padding:44px 28px;border-radius:3px}
.empty-track{font-size:46px;font-style:italic;font-weight:700;letter-spacing:-8px;color:#55d8e3;padding-right:8px}
.insight-empty h3{font-size:28px;letter-spacing:-.04em;font-style:italic;margin:16px 0}
.insight-empty p{color:#bdccdc;max-width:570px;font-size:14px;line-height:1.8}
.gap-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:20px 0}
.gap-metric{padding:20px 25px;background:var(--white);border:1px solid var(--line);border-radius:3px;position:relative;overflow:hidden}
.gap-metric:after{content:"";position:absolute;right:-45px;top:-30px;width:110px;height:180px;transform:rotate(24deg);background:var(--canvas)}
.gap-metric>*{position:relative;z-index:1}
.gap-metric>span{font-size:12px;letter-spacing:.1em;color:color-mix(in srgb,#526b82 var(--ink-keep),#fff);font-weight:600}
.gap-metric>strong{font-size:44px;display:block;letter-spacing:-.055em;margin:12px 0 8px;font-style:italic;color:color-mix(in srgb,#096b7b var(--ink-keep),#fff);font-variant-numeric:tabular-nums}
.gap-metric.gap-series-1>strong{color:color-mix(in srgb,#3265a0 var(--ink-keep),#fff)}
.gap-metric p{font-size:13px;color:color-mix(in srgb,#29445f var(--ink-keep),#fff)}
.gap-metric>small{font-size:12px;color:color-mix(in srgb,#64788d var(--ink-keep),#fff);display:block;margin-top:12px;line-height:1.6}
.gap-panel{background:linear-gradient(115deg,#132b46,#091725);color:#f4f8fc;border:1px solid #2b435c;border-radius:3px;padding:30px 32px 22px;overflow:hidden}
.gap-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.gap-panel-heading .eyebrow{font-size:12px;letter-spacing:.16em;color:#9cb3cb;margin-bottom:10px}
.gap-panel-heading h3{font-size:30px;letter-spacing:-.04em;font-style:italic}
.gap-panel .opening-toggle{font-size:12px;color:#c0d5e7}
.gap-legend{display:flex;gap:24px;flex-wrap:wrap;margin:25px 0 8px;font-size:12px;color:#c2d3e4}
.gap-legend>span{display:flex;align-items:center;gap:7px}
.gap-legend i{width:18px;height:3px;background:currentColor;display:inline-block}
.gap-series-0{color:#4fd9e6}.gap-series-1{color:#80baff}
.gap-reference{color:#d5dfe9}
.gap-chart{display:block;width:100%;height:auto;min-width:540px;overflow:visible}
.gap-chart-scroll{overflow-x:auto;overscroll-behavior-inline:contain}
.gap-series polyline{fill:none;stroke:currentColor;stroke-width:2.8;stroke-linejoin:round;stroke-linecap:round}
.gap-series .gap-glow{stroke-width:10;opacity:.07}
.gap-series circle{fill:currentColor;stroke:color-mix(in srgb,#10263e var(--ink-keep),#fff);stroke-width:2}
.gap-grid line{stroke:color-mix(in srgb,#45607b var(--ink-keep),#fff);stroke-opacity:.35;stroke-dasharray:3 5}
.gap-grid .gap-zero{stroke:color-mix(in srgb,#c1d3e7 var(--tint-keep),var(--line));stroke-opacity:.65;stroke-dasharray:6 5}
.gap-grid text{fill:#b5c7d9;font-size:13px;font-family:Inter,Arial,sans-serif;font-variant-numeric:tabular-nums}
.gap-hit{cursor:crosshair;outline:none}
.gap-hit line{stroke:color-mix(in srgb,#c0e1f0 var(--tint-keep),var(--line));stroke-opacity:0;stroke-dasharray:3 4}
.gap-hit:hover line,.gap-hit:focus line,.gap-hit.is-active line{stroke-opacity:.65}
.gap-hit:focus rect{stroke:#a3c8e7;stroke-width:1;stroke-dasharray:2 3}
.gap-readout{padding:13px 17px;border:1px solid #334c65;background:#0b1c2e;font-size:13px;line-height:1.6;font-variant-numeric:tabular-nums;color:#d6e9f4;min-height:45px;border-radius:2px}
.gap-guide{display:flex;justify-content:space-between;gap:10px;margin-top:17px;color:#9eb5cb;font-size:12px}
.gap-panel+.race-note{margin:15px 0 20px}
.gap-data{border:1px solid var(--line);border-radius:3px;background:var(--white);margin-top:18px}
.gap-data>summary{padding:18px 22px;font-size:13px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;list-style:none}
.gap-data[open]>summary{border-bottom:1px solid var(--line)}
.insight-picker{margin-top:30px;min-width:0}
.picker-heading{display:flex;gap:20px;justify-content:space-between;align-items:end;margin-bottom:16px}
.picker-heading .eyebrow{font-size:12px;color:color-mix(in srgb,#62778c var(--ink-keep),#fff);letter-spacing:.12em;margin-bottom:8px}
.picker-heading h3{font-size:23px;font-style:italic;letter-spacing:-.03em}
.picker-heading>p{max-width:260px;font-size:12px;color:color-mix(in srgb,#5b7187 var(--ink-keep),#fff);line-height:1.7}
.picker-list{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--white)}
.picker-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}
.picker-row:last-child{border-bottom:0}.picker-row:hover{background:var(--canvas)}
.picker-number{font-size:13px;font-weight:700;min-width:43px;max-width:75px;overflow-wrap:anywhere;color:color-mix(in srgb,#4b6880 var(--ink-keep),#fff)}
.picker-row>div{flex:1;min-width:0}
.picker-row strong{font-size:14px;display:block;overflow-wrap:anywhere}
.picker-row small{font-size:12px;color:color-mix(in srgb,#61758a var(--ink-keep),#fff);display:block;margin-top:5px}
.picker-row .rider-compare{flex:none;width:auto;font-size:12px;padding:9px 12px}
.heatmap-intro{display:flex;gap:30px;align-items:center;background:#10263f;color:white;padding:24px 28px;border-radius:3px}
.heatmap-intro>div{min-width:210px}
.heatmap-intro .eyebrow{font-size:12px;letter-spacing:.1em;color:#afc7db}
.heatmap-intro strong{font-size:38px;font-style:italic;letter-spacing:-.05em;display:block;margin-top:11px}
.heatmap-intro strong small{font-size:14px;font-weight:400;font-style:normal;letter-spacing:0;color:#c0d3e4}
.heatmap-intro p{font-size:13px;line-height:1.8;color:#b3cadf;max-width:540px}
.heatmap-intro .opening-toggle{color:#d3e5f2;font-size:12px;margin-left:auto}
.heat-legend{display:flex;align-items:center;flex-wrap:wrap;gap:15px;padding:22px 0;font-size:12px;color:color-mix(in srgb,#3b526a var(--ink-keep),#fff)}
.heat-legend>span{display:flex;align-items:center;gap:7px}
.heat-legend i{display:inline-block;width:15px;height:15px;border-radius:2px;border:1px solid #132b4612}
.heatmap-shell{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--white)}
.heatmap-topline{display:flex;justify-content:space-between;gap:15px;background:var(--surface-soft);padding:13px 20px;font-size:12px;color:color-mix(in srgb,#426078 var(--ink-keep),#fff);letter-spacing:.07em}
.heatmap-table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums}
.heatmap-scroll{max-height:650px}
.heatmap-table thead th{position:sticky;top:0;z-index:3}
.heatmap-table thead .sticky-rider{z-index:4}
.heatmap-table th,.heatmap-table td{border-bottom:1px solid var(--line)}
.heatmap-table thead th{background:#10263f;color:#bbd0e3;padding:12px 10px;text-align:center;font-size:12px;letter-spacing:.1em}
.heatmap-table thead th b{display:block;font-size:21px;color:white;font-style:italic;letter-spacing:-.04em;margin-top:4px}
.heatmap-table thead th small{display:block;font-size:12px;max-width:120px;letter-spacing:0;white-space:normal;margin-top:5px}
.heatmap-table .sticky-rider{position:sticky;left:0;z-index:2;min-width:220px;max-width:220px;text-align:left;box-shadow:3px 0 0 #10263f0a}
.heatmap-table tbody .sticky-rider{background:var(--white);padding:14px 18px;font-weight:400}
.heatmap-table .sticky-rider strong{display:block;font-size:14px;color:color-mix(in srgb,#162f48 var(--ink-keep),#fff);font-weight:600;margin:4px 0;overflow-wrap:anywhere}
.heatmap-table .sticky-rider small{display:block;font-size:12px;color:color-mix(in srgb,#64798e var(--ink-keep),#fff)}
.heat-rider-number{color:color-mix(in srgb,#39718b var(--ink-keep),#fff);font-size:12px;font-weight:700}
.heatmap-table .sticky-rider a{display:inline-block;font-size:12px;margin-top:7px;color:color-mix(in srgb,#27677d var(--ink-keep),#fff);text-decoration:underline;text-underline-offset:3px}
.heatmap-table td{padding:5px;min-width:106px;background:var(--white)}
.heat-cell{padding:14px 10px;min-height:65px;text-align:center;border-radius:2px;white-space:nowrap;border:1px solid transparent}
.heat-cell strong{display:block;font-size:14px;font-weight:600;letter-spacing:-.03em}
.heat-cell small{display:block;font-size:12px;margin-top:7px;letter-spacing:.03em}
.heat-best{background:#155771;color:#fff}.heat-close{background:#78cdd3;color:#063f4b}.heat-steady{background:var(--surface-soft);color:color-mix(in srgb,#244f5c var(--ink-keep),#fff)}.heat-off{background:color-mix(in srgb,#f9dfad var(--tint-keep),var(--white));color:color-mix(in srgb,#684718 var(--ink-keep),#fff)}.heat-slow{background:#e6a44a;color:#4e310c}.heat-missing{background:repeating-linear-gradient(135deg,var(--canvas),var(--canvas) 4px,var(--surface-soft) 4px,var(--surface-soft) 5px);color:color-mix(in srgb,#5c6f82 var(--ink-keep),#fff)}.heat-neutral{background:var(--surface-soft);color:color-mix(in srgb,#24445f var(--ink-keep),#fff)}
.heat-cell:focus{outline:2px solid #092a48;outline-offset:1px;box-shadow:0 0 0 4px white}
.heat-cell:hover{border-color:#315d78;box-shadow:0 2px 8px #10263f24}
@media(min-width:1500px){.gap-panel{padding:35px 42px 25px}}
@media(max-width:1100px){.race-lab-nav a span{display:none}.race-card-layout{gap:22px}.rival-slot{padding:17px}.rival-slot>strong{font-size:20px}.insight-badge{display:none}.heatmap-intro{gap:20px}.race-card-studio{padding:18px}}
@media(max-width:760px){
  .race-lab-nav a{font-size:12px;padding:14px 4px;gap:5px}.race-lab-nav a svg{width:14px;height:14px}.race-lab-nav a[aria-current]:after{left:10%;right:10%}
  .insight-heading{margin:24px 0 18px}.insight-heading h2{font-size:30px}.insight-heading p:last-child{font-size:13px}
  .rival-lineup{gap:7px}.rival-slot{padding:12px 9px}.rival-slot>span{font-size:12px;letter-spacing:.04em}.rival-slot>strong{font-size:16px;margin:11px 0 7px;line-height:1.2}.rival-slot>small{font-size:12px;line-height:1.5}.rival-slot>div{flex-wrap:wrap;gap:3px;font-size:12px;padding-top:12px}.rival-slot>div>span{display:none}.rival-slot-empty{min-height:140px}.rival-slot-empty>strong{font-size:14px;line-height:1.4}.rival-slot-empty>small{font-size:12px}
  .gap-metrics{gap:9px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:15px 0}.gap-metric{padding:16px 13px}.gap-metric>span{font-size:12px;line-height:1.7;display:block}.gap-metric>strong{font-size:32px}.gap-metric p{font-size:12px;line-height:1.5}.gap-metric>small{font-size:12px}
  .gap-panel{padding:21px 14px 17px}.gap-panel-heading{gap:12px;align-items:start;flex-wrap:wrap}.gap-panel-heading h3{font-size:25px}.gap-panel-heading .eyebrow{font-size:12px}.gap-panel .opening-toggle{font-size:12px}.gap-legend{gap:12px;font-size:12px;margin-top:20px}.gap-readout{font-size:12px;padding:11px}.gap-guide{font-size:12px}.gap-data>summary{font-size:12px;padding:16px}
  .insight-empty{padding:30px 18px}.insight-empty h3{font-size:25px}.insight-empty p{font-size:13px}.picker-heading{display:block}.picker-heading>p{max-width:none;margin-top:12px}.picker-row{padding:13px 12px;gap:8px}.picker-number{min-width:32px;font-size:12px}.picker-row strong{font-size:13px}.picker-row .rider-compare{font-size:12px;padding:8px}
  .heatmap-intro{padding:20px;flex-wrap:wrap;gap:15px}.heatmap-intro>div{min-width:0;width:100%}.heatmap-intro p{font-size:12px}.heatmap-intro .opening-toggle{margin-left:0}.heat-legend{gap:11px;font-size:12px;padding:17px 0}.heat-legend i{width:12px;height:12px}.heatmap-topline{padding:13px 11px;font-size:12px}.heatmap-table .sticky-rider{min-width:145px;max-width:145px}.heatmap-table tbody .sticky-rider{padding:12px}.heatmap-table .sticky-rider strong{font-size:12px}.heatmap-table .sticky-rider small{font-size:12px}.heatmap-table td{min-width:96px;padding:4px}.heat-cell{padding:12px 7px}.heat-cell strong{font-size:13px}
  .race-card-layout{grid-template-columns:1fr;gap:28px}.race-card-studio{padding:18px}.race-card-preview{max-width:450px}.card-download-actions{margin-top:22px}.race-card-layout .picker-heading h3{font-size:24px}.race-card-layout .picker-list{max-height:450px}.heatmap-scroll{max-height:520px}
}
@media(max-width:380px){.race-lab-nav a{font-size:12px;gap:4px}.race-lab-nav a svg{width:12px;height:12px}.rival-slot{padding:11px 7px}.rival-slot>strong{font-size:15px}.rival-slot-empty>strong{font-size:12px}.gap-metrics{grid-template-columns:1fr}.heatmap-table .sticky-rider{min-width:125px;max-width:125px}.heatmap-table tbody .sticky-rider{padding:10px}.race-card-studio{padding:14px}.gap-panel-heading h3{font-size:22px}}
@media print{.race-lab-nav,.insight-badge,.insight-picker,.card-download-actions,.gap-readout,.rival-slot>div a{display:none!important}.race-card-layout{display:block}.race-card-studio{background:none;border:0;padding:0}.race-card-preview{max-width:480px;transform:none;box-shadow:none}.race-card-studio>.race-note{display:none}.gap-panel,.heat-cell{-webkit-print-color-adjust:exact;print-color-adjust:exact}.gap-chart{min-width:0}.heatmap-table .sticky-rider{position:static}.heatmap-scroll{overflow:auto}.gap-panel{break-inside:avoid}}
/* The heatmap in the shared race table style (see race.css): leaderboard header and rider cells. */
.livelaps-page.race-page .heatmap-table{border-collapse:collapse;font-size:15px;color:var(--navy)}
.livelaps-page.race-page .heatmap-table thead th{padding:12px 10px;background:var(--white);color:var(--muted);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;text-align:center;border-bottom:1px solid var(--line)}
.livelaps-page.race-page .heatmap-table thead th b{display:inline;font-size:13px;font-style:normal;font-weight:600;letter-spacing:0;color:inherit;margin:0}
.livelaps-page.race-page .heatmap-table thead .sticky-rider{text-align:left}
.livelaps-page.race-page .heatmap-table tbody .sticky-rider{padding:10px 14px;background:var(--white);box-shadow:none;white-space:normal}
.livelaps-page.race-page .heatmap-table td{padding:6px 5px;background:var(--white)}
.livelaps-page.race-page .heatmap-table tbody tr:last-child>*{border-bottom:0}
.livelaps-page.race-page .heatmap-table tbody tr:hover>*{background:var(--canvas)}
.livelaps-page.race-page .heatmap-shell{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--white)}
.livelaps-page.race-page .heatmap-shell .race-table-scroll{border:0;border-radius:0}
.livelaps-page.race-page .picker-row .lb-rider{flex:1;min-width:0}

/* career.css */
/* Rider career page (/rider?id=…), after the sites.livelaps.com career page. */
.career-hero{padding:18px 0 8px}
.career-hero-card{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;margin-top:14px;padding:26px;background:var(--white);border:1px solid var(--line);border-radius:14px}
.career-identity{display:flex;gap:24px;align-items:flex-start;min-width:0}
.career-avatar{flex:none;width:120px;height:120px;border-radius:50%;object-fit:cover;background:var(--surface-soft);border:1px solid var(--line)}
.career-initials{display:grid;place-items:center;font-size:40px;font-weight:700;color:var(--navy)}
.career-identity .eyebrow{margin:6px 0 4px}
.career-identity h1{margin:0;font-size:clamp(28px,4vw,40px);line-height:1.15;color:var(--navy)}
.career-facts{display:flex;flex-wrap:wrap;gap:14px 28px;margin:18px 0 0}
.career-facts dt{font-size:13px;color:var(--muted)}.career-facts dd{margin:2px 0 0;font-size:16px;font-weight:600;color:var(--navy)}
.career-socials{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}
.career-socials a{display:inline-flex;padding:6px 12px;font-size:14px;font-weight:500;color:var(--text-secondary);border:1px solid var(--line);border-radius:999px}
.career-socials a:hover{border-color:var(--navy);color:var(--navy)}
.career-side{display:grid;gap:18px;align-content:start}
.career-standing{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}
.career-standing.empty p{margin:6px 0 0;font-size:22px;font-weight:700;color:var(--muted)}
.career-standing-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.career-standing .eyebrow{margin:0}
.career-pager{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.career-pager button{width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:var(--white);color:var(--navy);font-size:17px;line-height:1}
.career-pager button:hover{border-color:var(--navy)}
.career-standing-promoter{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:14px;color:var(--text-secondary)}
.career-standing-promoter img,.career-group-title img{width:28px;height:28px;object-fit:contain;border-radius:6px}
.career-standing-name{display:block;margin-top:6px;font-size:17px;font-weight:700;color:var(--navy)}
.career-standing-name:hover{color:var(--brand)}
.career-standing-class{margin:4px 0 0;font-size:14px;color:var(--muted)}
.career-standing-big{display:flex;align-items:baseline;gap:10px;margin:12px 0 0}
.career-standing-big strong{font-size:34px;line-height:1;color:var(--navy)}
.career-standing-big span{font-size:16px;font-weight:600;color:var(--text-secondary)}
.career-standing-big small{margin-left:auto;font-size:13px;color:var(--muted)}
.career-chips h2{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--muted)}
.career-chips ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.career-chips li{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:500;color:var(--navy);border:1px solid var(--line);border-radius:999px}
.career-chips img{width:40px;height:20px;object-fit:contain}
.career-chips small{color:var(--muted)}
.career-content{padding-top:8px}
.career-section{margin-top:34px}
.career-section h2{margin:0;font-size:24px;color:var(--navy)}
.career-section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.career-section-head p{margin:6px 0 0}
.career-scope{padding-top:18px}
.career-badge{display:inline-flex;padding:3px 8px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--surface-soft);border-radius:999px}
.career-badge.tier-elite{color:color-mix(in srgb,#15803d var(--ink-keep),#fff);background:color-mix(in srgb,#15803d 12%,transparent)}
.career-badge.tier-strong{color:var(--brand-strong);background:var(--brand-soft)}
.career-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0}
.career-stat{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.career-stat dt{font-size:13px;color:var(--muted)}
.career-stat dd{display:flex;align-items:center;gap:10px;margin:6px 0 0}
.career-stat dd strong{font-size:30px;line-height:1.1;color:var(--navy)}
.career-stat .career-stat-note{margin-top:4px;font-size:13px;color:var(--text-secondary)}
.career-stat .career-badge{cursor:help}
.career-trend-panel{margin-top:16px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.career-trend-panel h3{margin:0;font-size:16px;color:var(--navy)}
.career-legend{display:flex;gap:16px;margin:12px 0 4px;font-size:13px;color:var(--text-secondary)}
.career-legend span{display:inline-flex;align-items:center;gap:6px}.career-legend i{width:10px;height:10px;border-radius:50%;background:currentColor}
.career-trend{width:100%;height:auto;display:block}
.career-trend .chart-grid line{stroke:var(--line)}.career-trend .chart-grid text{font-size:11px;fill:var(--muted)}
.career-trend polyline{fill:none;stroke:currentColor;stroke-width:2.5}.career-trend circle{fill:currentColor}
.trend-0{color:color-mix(in srgb,#2563eb var(--ink-keep),#fff)}.trend-1{color:var(--brand)}.trend-2{color:color-mix(in srgb,#15803d var(--ink-keep),#fff)}
.career-legend .trend-0 i,.career-legend .trend-1 i,.career-legend .trend-2 i{background:currentColor}
.career-group{margin-top:20px}
.career-group-title{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:17px;color:var(--navy)}
.career-table th[scope=row]{font-weight:500;text-align:left;white-space:normal;min-width:200px;padding:10px 14px;border-bottom:1px solid var(--line)}
.career-table th[scope=row] a{font-weight:600;color:var(--navy)}.career-table th[scope=row] a:hover{color:var(--brand)}
.career-sub{display:block;font-size:13px;color:var(--muted)}
.career-table .numeric{text-align:right}
.career-years{margin-top:14px}
@media(max-width:900px){.career-hero-card{grid-template-columns:1fr}.career-hero-card{padding:20px}}
@media(max-width:560px){.career-identity{flex-direction:column}.career-avatar{width:88px;height:88px}.career-initials{font-size:30px}}
.dark :scope .career-chips img,.dark :scope .career-standing-promoter img,.dark :scope .career-group-title img{filter:drop-shadow(0 0 1px rgba(255,255,255,.75)) drop-shadow(0 0 3px rgba(255,255,255,.18))}

/* Site theme */
:scope{color-scheme:inherit;--ink-text:var(--background);--brand-rgb:216 0 2;--navy-rgb:26 18 16;--ink-bg:var(--foreground);--navy:var(--foreground);--navy-deep:var(--foreground);--navy-raised:var(--card);--navy-border:var(--border);--brand:var(--primary);--brand-hover:var(--primary);--brand-strong:var(--primary);--brand-soft:color-mix(in srgb,var(--primary) 12%,var(--card));--brand-border:var(--border);--canvas:var(--background);--surface-soft:var(--card);--text-secondary:color-mix(in srgb,var(--foreground) 82%,var(--background));--text-subtle:color-mix(in srgb,var(--foreground) 62%,var(--background));--muted:color-mix(in srgb,var(--foreground) 64%,var(--background));--on-dark:var(--background);--on-dark-muted:color-mix(in srgb,var(--background) 78%,var(--foreground));--line:var(--border);--border-strong:var(--border);--white:var(--background);--orange:var(--primary);--ink:var(--foreground);--paper:var(--background);--mrc-line:var(--border);--mrc-muted:var(--muted);color:var(--foreground);font-family:var(--font-sans);}

.telemetry-panel{--categorical-color-1:#8a3ffc;--categorical-color-2:#33b1ff;--categorical-color-3:#007d79;--categorical-color-4:#ff7eb6;--categorical-color-5:#fa4d56;--categorical-color-6:#fff1f1;--categorical-color-7:#6fdc8c;--categorical-color-8:#4589ff;--categorical-color-9:#d12771;--categorical-color-10:#d2a106;--categorical-color-11:#08bdba;--categorical-color-12:#bae6ff;--categorical-color-13:#ba4e00;--categorical-color-14:#d4bbff}
}
.dark [data-live-page]{--brand-rgb:255 77 79;--navy-rgb:243 237 224;--brand-strong:color-mix(in srgb,var(--primary) 60%,var(--foreground));--brand-soft:color-mix(in srgb,var(--primary) 18%,var(--card));--surface-soft:color-mix(in srgb,var(--foreground) 9%,var(--card));--on-dark:var(--foreground);--on-dark-muted:var(--muted-foreground);--white:var(--card);--ink-bg:color-mix(in srgb,var(--foreground) 16%,var(--background));--ink-text:var(--foreground);--navy-deep:var(--card);--tint-keep:18%;--ink-keep:42%;--muted:var(--muted-foreground);--text-subtle:var(--muted-foreground);--text-secondary:color-mix(in srgb,var(--foreground) 80%,var(--background));}
/* ELD shell around the shared LiveLaps pages: the shell owns the page title, header and footer. */
[data-live-page] { min-height: 16rem; padding-block: 0 3rem; }
[data-live-page] .wrap { width: min(100% - 2rem, 80rem); margin-inline: auto; }
[data-live-page] .livelaps-page { background: var(--background); color: var(--foreground); }
[data-live-page] h2,[data-live-page] h3,[data-live-page] p { overflow-wrap: anywhere; }
[data-live-page] :focus-visible { outline: 3px solid var(--ring); outline-offset: 3px; }
[data-live-page] > [role=alert] { border-left: 4px solid var(--destructive); padding: 1rem; }
@media print { [data-cms-shared] { display: none !important; } }
@media (prefers-reduced-motion: reduce) { [data-live-page] *,[data-live-page] *::before,[data-live-page] *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
/* Loading skeletons: their shimmer is drawn from ELD's text colour so it shows on the light and the dark theme. */
[data-live-page] .page-loading { --surface-soft: color-mix(in srgb, var(--foreground) 9%, var(--background)); --canvas: color-mix(in srgb, var(--foreground) 3%, var(--background)); --white: var(--background); --line: var(--border); min-height: 60vh; }
/* The big rider number on compare cards is italic: room on the right so its last glyph is not clipped. */
[data-live-page] .compare-race-number { right: 22px; padding-right: .1em; }
.dark [data-live-page] .compare-race-number { color: color-mix(in srgb, var(--foreground) 14%, transparent); opacity: 1; }
/* ELD's base reset zeroes every margin; modal dialogs (print, presentation settings, images) are centred again. */
[data-live-page] dialog:modal { margin: auto; }
/* The map's own controls stack inside the map, below the filter dropdowns that open over it. */
[data-live-page] :is(.events-map, .events-map-wrap) { isolation: isolate; }
/* Filter dropdowns open over everything below the search panel (calendar cards, tables), under the sticky header. */
[data-live-page] .search-panel { z-index: 40; }
