:root{--bg:#f6f4ee;--surface:#ffffff;--surface2:#f0ede4;--ink:#0e1a14;--muted:#56625b;--line:rgba(14,26,20,.09);--brand:#0b5d3f;--brand2:#14946a;--accent:#b07d0a;--glass:rgba(255,255,255,.72);--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px -8px rgba(14,40,28,.14);--r:20px;--ex-bg:#fff4d6;--ex-ink:#6e5208}
[data-theme=dark]{--bg:#0a110e;--surface:#121c17;--surface2:#18251f;--ink:#eef3ef;--muted:#9fb0a6;--line:rgba(255,255,255,.08);--brand:#2fc28c;--brand2:#5fe0ae;--accent:#e9c25a;--glass:rgba(12,20,16,.7);--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px -10px rgba(0,0,0,.6);--ex-bg:#3a2f12;--ex-ink:#f3d98a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16.5px/1.6 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
h1,h2,h3,h4,.brand{font-family:"Inter Tight",Inter,sans-serif;letter-spacing:-.025em;line-height:1.1;margin:0 0 .4em}h2{font-size:1.8rem;font-weight:700}h3{font-size:1.15rem;font-weight:700}
a{color:var(--brand)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}.narrow{max-width:780px}.small{font-size:.85rem;color:var(--muted)}.meta{color:var(--muted);font-size:.82rem;margin:0 0 6px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:var(--surface);padding:8px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:var(--glass);backdrop-filter:saturate(1.8) blur(18px);-webkit-backdrop-filter:saturate(1.8) blur(18px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;gap:20px;height:66px}.brand{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:800;color:var(--ink);text-decoration:none;margin:0}
.logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#0b5d3f,#14946a 60%,#d4a72c);color:#fff;font-weight:800}
.links{display:flex;gap:4px;margin-left:12px}.links a{color:var(--muted);text-decoration:none;font-weight:500;font-size:.93rem;padding:8px 12px;border-radius:999px;transition:.2s}.links a:hover{color:var(--ink);background:var(--surface2)}.links a[aria-current]{color:var(--ink);background:var(--surface2)}
.actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.icon-btn{display:inline-flex;align-items:center;gap:6px;height:40px;min-width:40px;justify-content:center;padding:0 10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;transition:transform .15s,background .2s}.icon-btn:hover{transform:translateY(-1px)}.icon-btn:active{transform:scale(.94)}
kbd{font:600 .7rem Inter;border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--muted)}
[data-theme=dark] .sun,.moon{display:none}[data-theme=dark] .moon{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:var(--bg);font-weight:600;text-decoration:none;border:0;border-radius:999px;padding:12px 22px;cursor:pointer;font:600 .95rem Inter;transition:transform .15s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn:active{transform:scale(.97)}
.btn.small{padding:9px 18px}.btn.big{padding:16px 28px;font-size:1rem}.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn.gold{background:var(--accent);color:#1b1404}
/* pills */
.pill{display:inline-flex;align-items:center;gap:8px;font:600 .74rem Inter;letter-spacing:.02em;padding:5px 11px;border-radius:999px;background:var(--surface2);color:var(--ink)}
.pill.ex,.tag.ex{background:var(--ex-bg);color:var(--ex-ink)}.pill.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);padding:7px 14px}.pill.light{background:rgba(255,255,255,.15);color:#fff}
.live{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:pulse 2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.eyebrow{display:block;font:700 .75rem Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--brand2);margin-bottom:8px}[data-theme=light] .eyebrow,:root:not([data-theme=dark]) .eyebrow{color:var(--brand)}
.example-flag{display:flex;gap:10px;align-items:center;background:var(--ex-bg);color:var(--ex-ink);font-size:.85rem;font-weight:500;padding:10px 14px;border-radius:12px;margin:14px 0}.example-flag .dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
/* hero */
.hero{position:relative;overflow:hidden;padding:96px 0 72px;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(1200px 500px at 70% -10%,rgba(20,148,106,.22),transparent 60%),radial-gradient(800px 400px at 0% 100%,rgba(212,167,44,.16),transparent 60%)}
.blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(70px);opacity:.55;animation:float 14s ease-in-out infinite alternate}.b1{width:420px;height:420px;background:#14946a;top:-140px;right:-60px}.b2{width:320px;height:320px;background:#d4a72c;bottom:-160px;left:20%;animation-delay:-6s;opacity:.35}
@keyframes float{to{transform:translate(-60px,40px) scale(1.15)}}
.hero h1{font-size:clamp(2.6rem,7vw,5.6rem);font-weight:800;letter-spacing:-.045em;margin:22px 0 18px;line-height:.98}
.grad{background:linear-gradient(90deg,var(--brand),var(--brand2) 40%,var(--accent) 80%,var(--brand2));background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 8s linear infinite}@keyframes shine{to{background-position:200% center}}
.lede{font-size:1.18rem;color:var(--muted);max-width:56ch;margin:0 0 6px}.cta{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 40px}
.stats{display:flex;gap:40px;flex-wrap:wrap}.stats div{display:flex;flex-direction:column}.stats b{font:800 1.5rem "Inter Tight"}.stats span{color:var(--muted);font-size:.85rem}
/* sections */
.sec{padding:36px 22px}.sec-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:6px}.sec-head h2{margin:0}.link{font-weight:600;text-decoration:none}
.page-head{padding:56px 22px 16px}.page-head h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;letter-spacing:-.04em}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}
a.card{color:inherit;text-decoration:none}a.card:hover,.horse:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--brand) 35%,transparent)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding-top:12px;padding-bottom:40px}.stack{display:grid;gap:16px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:32px}
/* scroller */
.scroller{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 18px;scrollbar-width:none}.scroller::-webkit-scrollbar{display:none}
.race{flex:0 0 250px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px;transition:transform .2s}.race:hover{transform:translateY(-4px)}
.race:first-child{background:linear-gradient(150deg,#0b5d3f,#0e7a54);color:#fff;border:0}.race:first-child .race-meta,.race:first-child .race-course{color:rgba(255,255,255,.82)}
.race-time{font:800 1.9rem "Inter Tight";letter-spacing:-.03em}.race-course{font-weight:600;color:var(--brand)}.race-name{font-weight:600}.race-meta{display:flex;gap:10px;font-size:.8rem;color:var(--muted)}
.race-cta{margin-top:auto;padding-top:12px;font-size:.85rem;font-weight:600}.race[aria-disabled] .race-cta{color:var(--muted)}.scroll-btns{display:flex;gap:6px}
/* article cards / bento */
.bento{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;gap:20px;padding-top:12px}.bento .big{grid-row:span 2}
.art{padding:0;overflow:hidden;display:flex;flex-direction:column}.art-top{position:relative;height:150px;padding:16px;display:flex;gap:6px;align-items:flex-start}.big .art-top{height:300px}
.art-top.g0{background:radial-gradient(circle at 80% 20%,#2fc28c,transparent 50%),linear-gradient(135deg,#0b3d2c,#0b5d3f)}.art-top.g1{background:radial-gradient(circle at 20% 80%,#e9c25a,transparent 55%),linear-gradient(135deg,#123b2e,#1d6b4c)}.art-top.g2{background:radial-gradient(circle at 70% 70%,#5fb7e0,transparent 50%),linear-gradient(135deg,#0c2b3a,#0b5d3f)}
.art-top .pill:not(.ex){background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(6px)}.course{position:absolute;left:16px;bottom:12px;color:#fff;font:800 1.6rem "Inter Tight";letter-spacing:-.03em;opacity:.95}.big .course{font-size:2.6rem}
.art-body{padding:18px 20px 22px;display:flex;flex-direction:column;flex:1}.art-body p{margin:0 0 10px;color:var(--muted)}.art-body .meta{margin-bottom:6px}.more{margin-top:auto;font-weight:600;color:var(--brand);font-size:.9rem;transition:transform .2s}a.card:hover .more{transform:translateX(4px)}.big h3{font-size:1.6rem}
/* horse */
.horse-top{display:flex;gap:14px;align-items:center;margin-bottom:8px}.horse-top h3{margin:0 0 2px}.avatar{width:46px;height:46px;border-radius:14px;flex:none;display:grid;place-items:center;font:800 1.2rem "Inter Tight";color:#fff;background:linear-gradient(135deg,#0b5d3f,#14946a)}
.horse p{margin:0 0 12px;color:var(--muted)}.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{font:600 .74rem Inter;padding:4px 10px;border-radius:8px;background:var(--surface2)}
.follow{margin-left:auto;border:1.5px solid var(--brand);background:transparent;color:var(--brand);border-radius:999px;padding:8px 14px;font:600 .85rem Inter;cursor:pointer;transition:.2s;white-space:nowrap}.follow .f-on{display:none}
.follow[aria-pressed=true]{background:var(--brand);color:var(--bg)}.follow[aria-pressed=true] .f-on{display:inline}.follow[aria-pressed=true] .f-off{display:none}.follow.pop{animation:pop .3s}@keyframes pop{50%{transform:scale(1.12)}}
.watch-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:18px;padding:14px 18px}
/* results */
.res-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.podium{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}.podium li{display:flex;gap:12px;align-items:center;font-weight:500}
.pos{font:700 .72rem Inter;width:40px;text-align:center;padding:4px 0;border-radius:8px;background:var(--surface2)}.p1{background:var(--accent);color:#1b1404}.note{color:var(--muted);font-size:.9rem;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line)}
/* quotes */
.quote{margin:0}.quote blockquote{margin:8px 0 14px;font:600 1.15rem/1.4 "Inter Tight";letter-spacing:-.01em}.stars{color:var(--accent);letter-spacing:2px}.quote figcaption{color:var(--muted);font-size:.88rem}
/* signup */
.signup{position:relative;overflow:hidden;margin:40px 0;padding:44px;border-radius:28px;color:#fff;background:radial-gradient(600px 300px at 90% 0%,rgba(233,194,90,.35),transparent 60%),linear-gradient(135deg,#08402c,#0b5d3f 60%,#107a55);display:grid;grid-template-columns:1.2fr 1fr;gap:20px 30px;align-items:center}
.signup h2{color:#fff;font-size:2.2rem;margin:12px 0 6px}.signup p{margin:0;color:rgba(255,255,255,.85)}.signup small{grid-column:1/-1;color:rgba(255,255,255,.75)}
.signup-form{display:flex;gap:8px;background:rgba(255,255,255,.12);padding:6px;border-radius:999px;border:1px solid rgba(255,255,255,.2)}.signup-form input{flex:1;min-width:0;border:0;background:transparent;color:#fff;padding:0 16px;font:inherit}.signup-form input::placeholder{color:rgba(255,255,255,.7)}.signup-form input:focus{outline:none}.thanks{font-weight:600}
/* article */
.progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--brand2),var(--accent));z-index:60;width:0}
.art-hero{padding:48px 0 12px;background:radial-gradient(900px 300px at 80% 0%,rgba(20,148,106,.14),transparent 70%)}.art-hero h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:800;letter-spacing:-.04em;margin:16px 0 14px}.back{text-decoration:none;font-weight:600;font-size:.9rem}.chips{display:flex;gap:8px;margin-top:18px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:26px 0 8px}.facts div{background:var(--surface);padding:12px 14px}.facts span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.facts b{font-size:.92rem}
.prose{font-size:1.06rem;line-height:1.75}.prose h2{font-size:1.5rem;margin:1.6em 0 .5em}.prose blockquote{margin:20px 0;padding:14px 18px;border-radius:14px;background:var(--ex-bg);color:var(--ex-ink);font-size:.93rem}.prose blockquote p{margin:0}
.disclaimer{margin-top:30px;padding:14px 18px;border-radius:14px;background:var(--surface2);font-size:.88rem;color:var(--muted)}
.card-prose{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:28px 34px;box-shadow:var(--shadow)}.prose table{width:100%;border-collapse:collapse;font-size:.95rem}.prose th,.prose td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.prose th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.prose code{background:var(--surface2);padding:2px 6px;border-radius:6px}
/* pace map */
.pm{padding:22px;margin:16px 0}.pm-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pm-ctrl{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;font-size:.9rem}
.pm-ctrl select{margin-left:6px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);font:inherit}
.pm-grid{display:grid;grid-template-columns:86px 1fr;gap:8px}.pm-y{display:grid;grid-template-rows:repeat(4,1fr);font-size:.75rem;color:var(--muted);align-items:center}
.pm-plot{position:relative;height:240px;border-radius:14px;background:linear-gradient(180deg,rgba(20,148,106,.14),rgba(20,148,106,.04));display:grid;grid-template-rows:repeat(4,1fr)}.pm-row{border-bottom:1px dashed var(--line)}.pm-row:last-of-type{border:0}
.pm-dot{position:absolute;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;border:2px solid var(--surface);background:var(--brand);color:var(--bg);font:700 .85rem Inter;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .2s,opacity .2s,background .2s}.pm-dot:hover{transform:translate(-50%,-50%) scale(1.15)}
.pm-dot.sel{background:var(--accent);color:#1b1404;transform:translate(-50%,-50%) scale(1.2)}.pm-dot.dim{opacity:.18}
.pm-x{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin:8px 0 0 94px}
.pm-info{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--surface2);min-height:60px}.pm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}.pm-stats span{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
/* search */
.search{position:fixed;inset:0;z-index:100;background:rgba(5,12,9,.5);backdrop-filter:blur(6px);display:flex;justify-content:center;padding-top:12vh}.search[hidden]{display:none}
.search-box{width:min(620px,92vw);background:var(--surface);border-radius:20px;padding:14px;box-shadow:0 30px 80px rgba(0,0,0,.35);animation:rise .2s ease-out;align-self:flex-start}@keyframes rise{from{opacity:0;transform:translateY(10px) scale(.98)}}
.search-box input{width:100%;font:500 1.1rem Inter;padding:14px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.search-box input:focus{outline:none}
#qr{list-style:none;margin:8px 0;padding:0}#qr a{display:flex;gap:12px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none}#qr a:hover{background:var(--surface2)}.k{font:600 .7rem Inter;color:var(--muted);width:62px;text-transform:uppercase;padding-top:3px}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:999px;font-weight:600;font-size:.9rem;transition:.3s;z-index:90;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
/* chips */
.filters{display:flex;gap:8px;margin:18px 0 4px}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 16px;border-radius:999px;font:600 .88rem Inter;cursor:pointer;transition:.2s}.chip.on{background:var(--ink);color:var(--bg)}
/* footer */
.foot{margin-top:40px;padding:48px 0 30px;border-top:1px solid var(--line);background:var(--surface)}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.foot h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.foot-grid a:not(.brand){display:block;color:var(--ink);text-decoration:none;padding:3px 0;font-size:.93rem}.foot-grid p{color:var(--muted)}
.safer{display:flex;gap:14px;align-items:flex-start;margin:28px 0 14px;padding:16px 18px;border-radius:16px;background:var(--surface2);font-size:.88rem}.safer p{margin:0}.badge{flex:none;background:#c62828;color:#fff;font:800 .85rem Inter;padding:6px 9px;border-radius:10px}
/* bottom nav */
.bottom{display:none}
/* reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:860px){.links,.hide-m,kbd{display:none}.two,.bento,.signup{grid-template-columns:1fr}.bento .big{grid-row:auto}.big .art-top{height:200px}.hero{padding:56px 0 40px}.stats{gap:24px}
 .bottom{display:flex;position:fixed;bottom:10px;left:10px;right:10px;z-index:60;justify-content:space-around;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:var(--glass);backdrop-filter:saturate(1.8) blur(18px);-webkit-backdrop-filter:saturate(1.8) blur(18px);border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
 .bottom a{display:flex;flex-direction:column;align-items:center;gap:2px;font:600 .68rem Inter;color:var(--muted);text-decoration:none;padding:4px 10px;border-radius:12px}.bottom a[aria-current]{color:var(--brand)}.bottom a[aria-current] svg{stroke-width:2.4}
 body{padding-bottom:90px}.toast{bottom:100px}.facts,.pm-stats{grid-template-columns:1fr 1fr}.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}.signup{padding:28px}.card-prose{padding:22px}.pm-grid{grid-template-columns:64px 1fr}.pm-x{margin-left:72px}}
/* ---- v3: race pages, DNA, auth ---- */
.hlink{color:inherit;text-decoration:none}.hlink:hover{color:var(--brand)}.sub{font-size:.55em;color:var(--muted);font-weight:700}
.race-grid{display:grid;grid-template-columns:1fr 320px;gap:28px;padding-top:20px}.race-grid h2{margin-top:28px}.side{display:grid;gap:16px;align-content:start;position:sticky;top:84px;margin-top:28px}.side h3{font-size:1rem;margin:.6em 0 .2em}.side p{margin:0 0 6px;color:var(--muted);font-size:.92rem}
.table-card{padding:6px}.runners{background:transparent}.runners th{background:transparent;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line)}.runners td{vertical-align:middle;border-bottom:1px solid var(--line)}.runners tr:last-child td{border:0}
.stall{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface2);font-weight:700}.fitcell{display:flex;align-items:center;gap:8px}.fitcell small{color:var(--muted);font-size:.75rem;line-height:1.2;max-width:70px}
.ring{--c:var(--brand);flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--c) calc(var(--v)*1%),var(--surface2) 0);position:relative}.ring::before{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--surface)}.ring span{position:relative;font:800 .9em "Inter Tight"}
.f-hi{--c:#0f9d63}.f-good{--c:#4bb07a}.f-mid{--c:#d39a12}.f-low{--c:#c2543a}.track .f-hi{background:#0f9d63}.track .f-good{background:#4bb07a}.track .f-mid{background:#d39a12}.track .f-low{background:#c2543a}
.dna-note{margin:16px 0;padding:14px 16px;border-radius:14px;border:1px dashed var(--line);background:var(--surface2);font-size:.86rem;color:var(--muted)}
.cfa-head{display:flex;gap:14px;align-items:center}.cfa-head h3{margin:0}.cfa-head .follow{margin-left:auto}.cfa-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.cfa ul{margin:0;padding-left:18px;color:var(--muted);font-size:.92rem}.cfa h4{margin:0 0 4px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.pro{color:#0f9d63}.con{color:#c2543a}
.mini{display:flex;align-items:center;gap:10px;margin:8px 0;font-weight:600}.link-card{display:block}.link-card b{color:var(--brand)}
.h-head{display:flex;gap:18px;align-items:center;margin-top:16px}.h-head h1{margin:0}.h-head .follow{margin-left:auto}.avatar.xl{width:84px;height:84px;font-size:2.2rem;border-radius:24px}
.dna-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-top:20px;padding-bottom:24px}.dna-row{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;margin:16px 0}.dna-row>span{font-weight:600;font-size:.88rem;color:var(--muted)}
.scale{display:flex;gap:4px}.scale i{flex:1;font-style:normal;text-align:center;font-size:.72rem;padding:7px 2px;border-radius:8px;background:var(--surface2);color:var(--muted);text-transform:capitalize}.scale i.on{background:var(--brand);color:var(--bg);font-weight:700}
.trip{position:relative;height:30px;border-radius:8px;background:var(--surface2);display:flex;justify-content:space-between;align-items:flex-end;padding:0 6px}.trip small{font-size:.65rem;color:var(--muted);position:relative}.trip-range{position:absolute;top:6px;height:10px;border-radius:6px;background:linear-gradient(90deg,var(--brand),var(--brand2))}
.tag.good{background:rgba(15,157,99,.14);color:#0b7a4c}.tag.bad{background:rgba(194,84,58,.14);color:#a7412a}[data-theme=dark] .tag.good{color:#6be3a8}[data-theme=dark] .tag.bad{color:#f19a85}
.radar-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.radar{width:250px;max-width:100%}.radar .rg{fill:none;stroke:var(--line);stroke-width:1}.radar .rv{fill:rgba(20,148,106,.28);stroke:var(--brand);stroke-width:2.5;stroke-linejoin:round}.radar .rd{fill:var(--brand)}.radar text{font:600 11px Inter;fill:var(--muted)}
.radar-score{display:flex;flex-direction:column;align-items:center;gap:8px}.radar-score .ring{font-size:1.5rem}
.bars{display:grid;gap:8px;margin-top:12px}.bar{display:grid;grid-template-columns:64px 1fr 32px;gap:10px;align-items:center;font-size:.85rem}.bar span{color:var(--muted)}.track{height:8px;border-radius:6px;background:var(--surface2);overflow:hidden}.track i{display:block;height:100%;border-radius:6px;transition:width .8s}
.entry{display:flex;gap:14px;align-items:center}.entry p{margin:0}
.auth{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-top:48px;padding-bottom:30px;align-items:stretch}.auth-art{position:relative;overflow:hidden;border-radius:28px;padding:40px;color:#fff;background:radial-gradient(500px 300px at 100% 0%,rgba(233,194,90,.4),transparent 60%),linear-gradient(150deg,#08402c,#0b5d3f 55%,#14946a)}
.auth-art h2{color:#fff;font-size:2.4rem;margin:18px 0}.auth-art .small{color:rgba(255,255,255,.75)}.auth-art .pill.glass{color:#fff;background:rgba(255,255,255,.12)}.ticks{list-style:none;padding:0;display:grid;gap:12px}.ticks li::before{content:"✓";display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.18);margin-right:10px;font-weight:700}
.auth-card{padding:34px}.auth-card h1{font-size:2rem}.fstack{display:grid;gap:14px}.fstack label{display:grid;gap:6px;font-weight:600;font-size:.88rem}
.fstack input:not([type=radio]):not([type=checkbox]){font:inherit;padding:13px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface2);color:var(--ink);transition:border-color .2s}.fstack input:focus{outline:none;border-color:var(--brand)}
.plans{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.plans legend{font-weight:600;font-size:.88rem;margin-bottom:6px}.plan{position:relative;cursor:pointer}.plan input{position:absolute;opacity:0}.plan span{display:grid;gap:2px;padding:14px;border-radius:14px;border:1.5px solid var(--line);transition:.2s}.plan small{color:var(--muted);font-weight:400}.plan input:checked+span{border-color:var(--brand);background:rgba(20,148,106,.08)}.plan input:focus-visible+span{outline:3px solid var(--accent)}
.check{display:flex!important;grid-template-columns:none;gap:10px!important;align-items:flex-start;font-weight:400!important}.auth-msg{color:var(--brand);font-weight:600;min-height:1em;margin:6px 0 0}.auth-msg.bad{color:#c2543a}
.mock-mail{padding:14px;border-radius:12px;background:var(--ex-bg);color:var(--ex-ink);margin:10px 0 14px;font-size:.9rem}.mock-mail code{font-size:1.1rem;font-weight:800;letter-spacing:.15em}.demo{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.pref{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line);cursor:pointer}.pref span{display:grid}.pref small{color:var(--muted)}
.switch{appearance:none;flex:none;width:48px;height:28px;border-radius:999px;background:var(--line);position:relative;cursor:pointer;transition:.2s;border:1px solid var(--line)}.switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:.2s}.switch:checked{background:var(--brand)}.switch:checked::after{left:23px}
@media(max-width:860px){.race-grid,.dna-grid,.auth{grid-template-columns:1fr}.side{position:static}.cfa-cols{grid-template-columns:1fr}.dna-row{grid-template-columns:70px 1fr}.dna-row>b{grid-column:2}.h-head{flex-wrap:wrap}.auth-art{padding:28px}.plans{grid-template-columns:1fr}}
.radar{width:250px!important;height:250px!important;max-width:100%}
@media(max-width:600px){.runners>thead>tr>th:nth-child(3),.runners>tbody>tr>td:nth-child(3),.runners>thead>tr>th:nth-child(4),.runners>tbody>tr>td:nth-child(4),.runners>thead>tr>th:nth-child(5),.runners>tbody>tr>td:nth-child(5){display:none}.fitcell small{display:none}.runners .follow{padding:6px 10px}}
.sel-panel{border:1.5px solid color-mix(in srgb,var(--accent) 55%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface))}.sel-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.sel-top .eyebrow{margin:0}.pill.auto{background:#e8eefc;color:#2a4a9a}[data-theme=dark] .pill.auto{background:#1d2a4a;color:#b8c9f5}
.sel-horse{display:flex;gap:12px;align-items:center;margin:14px 0 8px}.sel-horse b{font-size:1.15rem}.sel-horse .meta{margin:0}.sel-reason{font-size:.93rem;margin:0 0 12px}.sel-panel .follow{margin:0 0 10px}
.sel-safer{display:flex;gap:8px;align-items:flex-start;font-size:.78rem;color:var(--muted);margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line)}.sel-safer .badge,.sel-foot .badge{font-size:.7rem;padding:3px 6px}
.sel-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:10px}.sel-mini{display:flex;gap:12px;align-items:center;padding:14px}.sel-mini .meta{margin:0}.sel-foot{display:flex;gap:8px;align-items:center;margin-top:12px}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:12px;padding-bottom:12px}.stat-grid.two-up{grid-template-columns:1fr 1fr}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 14px}.stat-row b{display:block;font:800 1.8rem "Inter Tight"}.stat-row span{font-size:.75rem;color:var(--muted)}.c-win{color:#0f9d63}.c-pl{color:#d39a12}.stat-card .bar{grid-template-columns:92px 1fr 40px}
.out{font:700 .75rem Inter;padding:4px 10px;border-radius:999px;background:var(--surface2)}.o-win{background:rgba(15,157,99,.16);color:#0b7a4c}.o-placed{background:rgba(211,154,18,.18);color:#8a6408}[data-theme=dark] .o-win{color:#6be3a8}[data-theme=dark] .o-placed{color:#f3d98a}
@media(max-width:860px){.stat-grid,.stat-grid.two-up{grid-template-columns:1fr}}
.sel-notes{font-size:.86rem;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--surface2)}.sel-notes summary{font-weight:700;cursor:pointer}.sel-notes p{margin:6px 0 0;color:var(--muted)}
.runners{width:100%}
/* runner accordion + profile */
.acc-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;border:0;background:var(--surface2);color:var(--ink);font:600 .76rem Inter;padding:5px 10px;border-radius:999px;cursor:pointer;transition:background .2s}.acc-btn:hover{background:color-mix(in srgb,var(--brand) 15%,var(--surface2))}
.acc-btn svg{width:14px;height:14px;transition:transform .25s}.acc-btn[aria-expanded=true]{background:var(--brand);color:var(--bg)}.acc-btn[aria-expanded=true] svg{transform:rotate(180deg)}
.runners tr.detail>td{padding:0 6px 14px;background:transparent}.detail.opening .acc-body{animation:accIn .3s ease-out}@keyframes accIn{from{opacity:0;transform:translateY(-6px)}}
.acc-body{background:var(--surface2);border-radius:16px;padding:18px}
.prof h5{font:700 .74rem Inter;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 8px}.prof-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge-cd,.badge-hg{font:800 .72rem Inter;padding:3px 8px;border-radius:6px;background:var(--brand);color:var(--bg)}.badge-hg{background:#5b4bb7;color:#fff}
.prof-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:12px}.basics{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0}.basics dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.basics dd{margin:0;font-weight:600;font-size:.9rem;text-transform:none}
.career h5{margin-top:0}.career .stat-row{margin:4px 0 6px}.career .stat-row b{font-size:1.4rem}.conn{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:8px 0;border-top:1px solid var(--line)}.conn span{font-size:.85rem;color:var(--muted)}.conn small{grid-column:1/-1;color:var(--muted);font-size:.75rem}
.mini-t{width:100%;border-collapse:collapse;background:transparent;font-size:.82rem}.mini-t th{background:transparent;color:var(--muted);font-size:.68rem;text-transform:uppercase;padding:6px;border-bottom:1px solid var(--line)}.mini-t td{padding:6px;border-bottom:1px solid var(--line);font-size:.82rem;vertical-align:top}
.runs-t{min-width:720px}.runs-t .cmt{color:var(--muted);min-width:180px}
.splits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.split h5{margin-top:14px}
.dna-sum{margin-top:14px;padding:14px;border-radius:14px;background:var(--surface);display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.dna-sum-l{display:flex;gap:12px;align-items:center;max-width:280px}.dna-sum-l p{margin:2px 0 0}.dna-sum .bars{margin:0}.dna-sum>.small{grid-column:1/-1;margin:0}
.card .prof .acc-body,.card>.prof{background:transparent}
@media(max-width:860px){.prof-grid,.dna-sum{grid-template-columns:1fr}.splits{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.runners tr.detail>td{display:table-cell!important;padding:0 0 12px}.acc-body{padding:14px;border-radius:12px}.basics{grid-template-columns:1fr 1fr}.splits{grid-template-columns:1fr}}
@media(max-width:600px){.acc-body{width:calc(100vw - 58px);overflow:hidden}.acc-body .scroll{overflow-x:auto}}
/* follow modal + explainer */
.follow-wrap{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.horse-top .follow-wrap .follow,.cfa-head .follow-wrap .follow,.h-head .follow-wrap .follow{margin-left:0}
.info-tip{position:relative;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);color:var(--muted);font:700 .72rem Georgia,serif;font-style:italic;text-decoration:none;flex:none}.info-tip:hover,.info-tip:focus-visible{color:var(--brand);border-color:var(--brand)}
.info-tip .tip{position:absolute;bottom:calc(100% + 8px);right:-8px;width:230px;padding:10px 12px;border-radius:12px;background:var(--ink);color:var(--bg);font:500 .78rem/1.4 Inter;font-style:normal;opacity:0;pointer-events:none;transform:translateY(4px);transition:.18s;z-index:20;box-shadow:var(--shadow)}.info-tip:hover .tip,.info-tip:focus-visible .tip{opacity:1;transform:none}
.explainer{margin:8px 0 24px}.explainer h2{margin-bottom:12px}.fx{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.fx li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:var(--surface2)}.fx b{display:block;font-size:.92rem}.fx small{color:var(--muted);font-size:.83rem}.fx-i{font-size:1.25rem;line-height:1}
.explainer.flat{padding:0;margin:14px 0}.explainer.flat .fx{grid-template-columns:1fr;gap:8px}.explainer.flat .fx li{padding:10px 12px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.modal{position:fixed;inset:0;z-index:120;background:rgba(5,12,9,.55);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px;animation:fade .2s}.modal[hidden]{display:none}@keyframes fade{from{opacity:0}}
.modal-box{position:relative;width:min(480px,100%);max-height:92vh;overflow:auto;background:var(--surface);border-radius:24px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.35);animation:rise .25s ease-out}.modal-box h2{margin:10px 0 4px;font-size:1.6rem}.modal-box .lede{font-size:1rem}
.modal-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:0;background:var(--surface2);color:var(--ink);font-size:1.3rem;cursor:pointer}.modal-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#0b5d3f,#14946a 60%,#d4a72c);color:#fff;font-size:1.5rem}
.modal-cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 8px}.modal-cta .btn{padding:14px}
@media(max-width:600px){.modal{place-items:end center;padding:0}.modal-box{border-radius:24px 24px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom))}.info-tip .tip{width:200px}}
/* racing day + race nav + changes + results */
.day-tabs{display:flex;gap:8px;margin:18px 0 6px;overflow-x:auto;scrollbar-width:none}.day-tabs a{flex:0 0 auto;display:grid;padding:10px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);min-width:110px;transition:.2s}.day-tabs a small{color:var(--muted)}.day-tabs a[aria-current]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.day-tabs a[aria-current] small{color:var(--bg);opacity:.75}
.meeting{margin:18px 0}.m-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.m-head h2{margin:0 0 4px}
.chips-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:14px}.rchip{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);text-decoration:none;transition:transform .15s,border-color .2s}.rchip:hover{transform:translateY(-2px);border-color:var(--brand)}
.rc-time{font:800 1.4rem "Inter Tight"}.rc-name{font-weight:600;font-size:.88rem}.rc-meta{font-size:.78rem;color:var(--muted)}.rchip .st{align-self:flex-start;margin-top:6px}.rc-win{font-size:.82rem;font-weight:700;margin-top:4px}.rchip.done{opacity:.92}
.st{font:700 .7rem Inter;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.st-up{background:rgba(20,148,106,.14);color:#0b6e49}.st-off{background:#fde8c4;color:#7a4d00}.st-ended{background:var(--ink);color:var(--bg)}[data-theme=dark] .st-up{color:#6be3a8}
.changes .ch-head{display:flex;justify-content:space-between;align-items:center}.changes h3{margin:0}.ch-list{list-style:none;padding:0;margin:10px 0}.ch-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line);font-size:.88rem}.ch-list time{color:var(--muted);font-size:.78rem}
.ch-k{font:700 .66rem Inter;text-transform:uppercase;padding:3px 7px;border-radius:6px;background:var(--surface2)}.k-non-runner{background:#fbe1dc;color:#9b2c16}.k-going{background:#e1ecfb;color:#1f4f9a}.k-jockey{background:#efe3fb;color:#5b2a9a}[data-theme=dark] .ch-k{filter:brightness(.9)}
.day-ch{margin-top:10px}
.meet-nav{margin-bottom:6px}.mn-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.mn-switch select{font:600 .88rem Inter;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.time-strip{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding:12px 2px 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.ts{flex:0 0 auto;scroll-snap-align:center;display:grid;justify-items:center;min-width:78px;padding:8px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;transition:.2s}.ts b{font:800 1.05rem "Inter Tight"}.ts small{font-size:.68rem;color:var(--muted)}.ts:hover{border-color:var(--brand)}
.ts.on{background:var(--brand);border-color:var(--brand);color:var(--bg)}.ts.on small{color:var(--bg);opacity:.85}.ts.done:not(.on){background:var(--surface2)}.ts.done:not(.on) b{text-decoration:line-through;text-decoration-color:var(--muted);color:var(--muted)}
.result-strip{margin:12px 0 0;border:1.5px solid var(--ink)}.rs-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rs-head h2{margin:0}.rs-list{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rs-list li{display:grid;gap:2px;padding:12px;border-radius:14px;background:var(--surface2)}.rs-list li.p1{background:color-mix(in srgb,var(--accent) 22%,var(--surface))}.rs-pos{font:800 1.3rem "Inter Tight"}.rs-sp,.rs-btn{font-size:.8rem;color:var(--muted)}
.runners tr.nr td{opacity:.6}.runners tr.nr .hname{text-decoration:line-through}.nr-badge{display:inline-block;font:800 .68rem Inter;background:#c2543a;color:#fff;padding:2px 6px;border-radius:5px;vertical-align:middle}.nr-badge.big{font-size:.95rem;padding:12px 10px;border-radius:12px}.nr-note{color:#a7412a}
.jc{color:var(--brand)}.jc-badge{font:700 .62rem Inter;background:#efe3fb;color:#5b2a9a;padding:1px 5px;border-radius:4px}
.out-badge{margin-left:auto;font:800 .78rem Inter;padding:6px 12px;border-radius:999px;align-self:center}.ob-win{background:#0f9d63;color:#fff}.ob-placed{background:#d39a12;color:#1b1404}.ob-unplaced{background:var(--surface2);color:var(--ink)}.ob-nonrunner{background:#c2543a;color:#fff}.sel-mini .out-badge{margin:0 0 0 6px;padding:2px 8px;font-size:.68rem}
.sel-horse.is-nr b{text-decoration:line-through}
@media(max-width:860px){.rs-list{grid-template-columns:1fr 1fr}.chips-row{grid-template-columns:1fr 1fr}.ch-list li{grid-template-columns:auto 1fr}.ch-list time{grid-column:2}}
@media(max-width:420px){.chips-row{grid-template-columns:1fr}}
.brand,.btn.small{white-space:nowrap}@media(max-width:420px){.brand{font-size:1.02rem;gap:8px}.logo{width:30px;height:30px}.nav-in{gap:10px}.actions{gap:6px}.btn.small{padding:8px 14px}}
/* stats */
.plink{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.plink:hover{color:var(--brand);text-decoration-color:var(--brand)}
.tabs{display:flex;gap:6px;padding:5px;border-radius:14px;background:var(--surface2);width:max-content;margin:6px 0 18px}.tabs button{border:0;background:transparent;color:var(--muted);font:700 .95rem Inter;padding:10px 20px;border-radius:10px;cursor:pointer}.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.hot-wrap h2{font-size:1.3rem}.hot-wrap h2 small{font-weight:500}.hot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px}.hot{display:flex;align-items:center;gap:12px;padding:14px 16px}.hot p{margin:0}.hot-flame{font-size:1.4rem}.hot-sr{margin-left:auto;font:800 1.4rem "Inter Tight";color:#0f9d63}
.filters-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.filters-bar input{flex:1;min-width:180px;font:inherit;padding:10px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface2);color:var(--ink)}.course-f select{font:600 .9rem Inter;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.seg{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}.seg button{border:0;background:var(--surface);color:var(--muted);font:600 .85rem Inter;padding:10px 14px;cursor:pointer}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.sort{border:0;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;padding:0}.stats-t td{vertical-align:middle}.srbar{position:relative;width:120px;height:22px;border-radius:6px;background:var(--surface2);overflow:hidden}.srbar i{position:absolute;inset:0 auto 0 0;background:rgba(15,157,99,.35)}.srbar span{position:relative;font-weight:700;font-size:.82rem;padding-left:8px;line-height:22px}
.period-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.period-cards .stat-row b{font-size:1.5rem}
.stat-splits{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.stat-splits h3{margin:0 0 6px;font-size:1rem}
@media(max-width:860px){.period-cards,.stat-splits{grid-template-columns:1fr}.tabs{width:100%}.tabs button{flex:1}.srbar{width:80px}}
@media(max-width:600px){.stats-t>thead>tr>th:nth-child(4),.stats-t>tbody>tr>td:nth-child(4),.stats-t>thead>tr>th:nth-child(7),.stats-t>tbody>tr>td:nth-child(7){display:none}}
@media(max-width:600px){.stats-t>thead>tr>th:nth-child(3),.stats-t>tbody>tr>td:nth-child(3),.stats-t>thead>tr>th:nth-child(5),.stats-t>tbody>tr>td:nth-child(5){display:table-cell!important}}
.hot-grid[hidden]{display:none}
/* PaddockSense brand */
.logo{background:none;padding:0;overflow:hidden}.logo-svg{width:100%;height:100%;display:block}
.wm{font-weight:800;letter-spacing:-.03em}.wm b{font-weight:800;color:var(--brand)}
[data-theme=dark] .wm b{color:#d4a72c}

.wm-svg{height:1.1em;width:auto;display:block;color:#10201a}.wm-s{fill:#0b4a33}[data-theme=dark] .wm-svg{color:#f5efe1}[data-theme=dark] .wm-s{fill:#5fc895}.logo{border-radius:50%}
/* v10 odds */
.od{display:none}html.odds-dec .od{display:inline}html.odds-dec .of{display:none}
.odds-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.odds-bar h2{margin-bottom:0}
.fmt-toggle{display:inline-flex;border:1px solid var(--line,#ddd);border-radius:999px;padding:3px;gap:2px}.fmt-toggle button{border:0;background:none;padding:5px 12px;border-radius:999px;font:600 .82rem inherit;font-family:inherit;color:inherit;cursor:pointer}.fmt-toggle button.on{background:#0b4a33;color:#f5efe1}
.odds-asof{margin:.4rem 0 .8rem}
.oddscell{min-width:96px}.odds-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:6px 10px;border-radius:10px}.odds-btn svg{display:none}
.price{font-size:1.05rem;font-variant-numeric:tabular-nums;color:#0b4a33}[data-theme=dark] .price{color:#5fc895}
.odds-btn small{font-size:.72rem;opacity:.75;white-space:nowrap}
.mv{display:inline-flex;gap:3px;align-items:center;font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:6px;white-space:nowrap}.mv.steam{background:#e3f4ea;color:#0b6a3f}.mv.drift{background:#fbe9e4;color:#a8432a}[data-theme=dark] .mv.steam{background:#123b2a;color:#7fdcae}[data-theme=dark] .mv.drift{background:#3d211a;color:#f0a58f}
.odds-cmp{padding:6px 2px}.oc-head{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.oc-move{display:flex;align-items:center;gap:10px}.oc-move small{max-width:260px;opacity:.75}
.spark polyline{fill:none;stroke:#d4a72c;stroke-width:2;stroke-linejoin:round}.spark circle{fill:#0b4a33}[data-theme=dark] .spark circle{fill:#5fc895}
.oc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.oc-list li{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line,#e5e5e5);border-radius:10px;font-variant-numeric:tabular-nums}.oc-bk{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-ew{font-size:.68rem;opacity:.6;white-space:nowrap}.oc-list li.best{border-color:#d4a72c;background:rgba(212,167,44,.12)}.oc-list em{font-style:normal;font-size:.66rem;font-weight:800;background:#d4a72c;color:#10201a;border-radius:5px;padding:1px 5px}
.odds-note{font-size:.78rem;opacity:.8;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.sel-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:10px 0;padding:10px 12px;border-radius:12px;background:rgba(212,167,44,.12)}.sel-price>span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7}.sel-price small{opacity:.75}
@media(max-width:600px){.oc-list{grid-template-columns:1fr}.oc-move small{max-width:none}}
.race-grid>div{min-width:0}@media(max-width:700px){.odds-cmp{position:sticky;left:0;max-width:calc(100vw - 56px)}}
.odds-btn[aria-expanded=true] .price,.odds-btn[aria-expanded=true] small{color:#f5efe1;opacity:1}
.oc-move .spark{width:120px!important;height:32px!important;flex:none;display:block}
/* v11 odds neutral styling */
.odds-attr,.sel-attr{font-size:.74rem;opacity:.75;margin:.3rem 0 .6rem}.sel-attr{flex-basis:100%;margin:0}
.odds-btn{background:none!important;border:1px solid var(--line,#ddd)!important;color:inherit!important;box-shadow:none!important}
.odds-btn[aria-expanded=true]{border-color:currentColor!important}
.odds-btn[aria-expanded=true] .price,.odds-btn[aria-expanded=true] small{color:inherit}
.price{color:inherit!important}
.oc-list li.best{border-color:var(--line,#ccc);background:rgba(127,127,127,.08)}.oc-list em{background:none;border:1px solid currentColor;color:inherit;opacity:.7}
.sel-price{background:rgba(127,127,127,.08)}
.oc-bk{white-space:normal;overflow:visible;line-height:1.2}.oc-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}@media(max-width:600px){.oc-list{grid-template-columns:1fr}}
.oc-bk{min-width:0}.oc-bk .oc-ew{display:block;margin-top:1px}
/* v12 legal */
.cookie-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:80;background:var(--surface,#fff);color:inherit;border:1px solid var(--line,#ddd);border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.18);padding:16px 18px;max-width:980px;margin:0 auto}.cookie-banner[hidden]{display:none}
.ck-in{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}.ck-in p{margin:.3rem 0 0;font-size:.9rem}.ck-in>div:first-child{flex:1 1 420px}
.ck-btns{display:flex;gap:10px;flex-wrap:wrap}.btn.ck{background:#10201a;color:#f5efe1;border:1px solid #10201a;min-width:160px;justify-content:center}[data-theme=dark] .btn.ck{background:#f5efe1;color:#10201a;border-color:#f5efe1}
@media(max-width:600px){.cookie-banner{bottom:84px}.ck-btns{width:100%}.btn.ck{flex:1;min-width:0}}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;display:block;text-decoration:underline;opacity:.85}
.foot-grid .linkbtn{margin:.35rem 0}
.consent{border:0;padding:0;margin:0;display:grid;gap:10px}.consent .check{display:flex;gap:10px;align-items:flex-start;line-height:1.4}.consent .check input{margin-top:3px;flex:none}.consent .opt small{display:block;opacity:.7}
.card-prose table{width:100%;border-collapse:collapse;font-size:.92rem;display:block;overflow-x:auto}.card-prose th,.card-prose td{border-bottom:1px solid var(--line,#e5e5e5);padding:8px;text-align:left;vertical-align:top}
.card-prose blockquote{margin:0 0 1.2rem;padding:12px 16px;border-left:4px solid #d4a72c;background:rgba(212,167,44,.12);border-radius:8px}
/* v13 passport + ideal races */
.passport{position:relative;margin:24px 0;padding:24px;border-radius:22px;background:linear-gradient(135deg,#0d5a3e,#08301f);color:#f5efe1;border:1px solid rgba(212,167,44,.55);box-shadow:0 18px 50px rgba(8,48,31,.25)}
.passport a{color:#f5efe1}.pp-head{display:flex;gap:14px;align-items:center;margin-bottom:16px}.pp-head h2{margin:0;color:#f5efe1;font-size:1.6rem}.pp-head p{margin:2px 0 0;opacity:.8;font-size:.92rem}
.pp-eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#d4a72c}
.pp-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pp-grid li{position:relative;background:rgba(245,239,225,.08);border-radius:14px;padding:12px 14px;min-width:0}
.pp-l{display:block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#d4a72c}.pp-v{display:block;font-size:1.15rem;margin:3px 0;overflow-wrap:anywhere}.pp-s{display:block;font-size:.78rem;opacity:.8}
.pp-none{opacity:.5}.pp-conf{position:absolute;top:12px;right:12px;display:inline-flex;gap:3px}.pp-key .pp-conf{position:static;vertical-align:middle;margin-right:4px}.pp-conf i{width:7px;height:7px;border-radius:50%;background:rgba(245,239,225,.25)}
.pp-conf.c-low i:nth-child(1),.pp-conf.c-med i:nth-child(-n+2),.pp-conf.c-high i{background:#d4a72c}
.pp-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.pp-key{font-size:.78rem;opacity:.85;margin:0}.pp-btns{display:flex;gap:8px;flex-wrap:wrap}
.passport .btn.small{background:#d4a72c;color:#10201a;border:0}.passport .btn.small.ghost{background:transparent;color:#f5efe1;border:1px solid rgba(245,239,225,.5)}
.pp-note{opacity:.75;margin:12px 0 0;color:#f5efe1}
.passport.mini{padding:14px;margin:14px 0;border-radius:16px;box-shadow:none}.passport.mini .pp-head{justify-content:space-between;margin-bottom:10px}.pp-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.pp-grid.compact li{padding:8px 10px}.pp-grid.compact .pp-v{font-size:.95rem}.pp-grid.compact .pp-s{font-size:.7rem}.pp-grid.compact .pp-conf{top:9px;right:9px}
@media(max-width:820px){.pp-grid,.pp-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ir-note{padding:12px 16px;border-radius:12px;background:rgba(212,167,44,.12);border-left:4px solid #d4a72c;max-width:820px}
.ir-record{margin-bottom:14px}.ir-record h2{font-size:1.15rem;margin:0 0 6px}
.ir-filters{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-bottom:14px}.ir-filters label{display:grid;gap:4px;font-size:.82rem;font-weight:600;min-width:160px;flex:1}.ir-filters select,.ir-filters input{font:inherit}.ir-filters select{padding:8px 10px;border-radius:10px;border:1px solid var(--line,#ddd);background:var(--surface,#fff);color:inherit}
.ir-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.ir-item{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:var(--surface,#fff);border:1px solid var(--line,#e8e8e8)}.ir-item[hidden]{display:none}
.ir-main{min-width:0;flex:1}.ir-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ir-race{display:block;font-size:.85rem;opacity:.8;margin:2px 0 6px}.ir-why{margin:0;padding-left:18px;font-size:.88rem}
.perfect{font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#d4a72c;color:#10201a;border-radius:6px;padding:2px 7px}
.links a{white-space:nowrap}@media(min-width:900px){.links{gap:2px}.links a{padding-left:10px;padding-right:10px}}
/* QA fixes (v14): contrast + small-screen overflow */
.c-win,.pro,h4.pro{color:#0b7a4b!important}.c-pl{color:#8a5f00!important}.ob-win{background:#0b7a4b!important}
[data-theme=dark] .c-win,[data-theme=dark] .pro{color:#5fd39a!important}[data-theme=dark] .c-pl{color:#f0c35a!important}
.odds-attr a{color:#0b5d3f}[data-theme=dark] .odds-attr a{color:#7fdcae}
.scroll{max-width:100%;overflow-x:auto}.prof,.prof-grid>*,.dna-grid>*,.race-grid>*,.acc-body{min-width:0}
@media(max-width:400px){.nav-in{gap:6px}.actions{gap:4px}.actions kbd{display:none}.icon-btn{width:38px;height:38px}.btn.small{padding:8px 11px}.brand{font-size:.95rem}.logo{width:28px;height:28px}}
.btn.ck{width:180px;min-width:0}@media(max-width:600px){.btn.ck{width:auto;flex:1 1 0}}
tr.nr td{opacity:1;color:var(--muted)}tr.nr .follow,tr.nr .acc-btn{opacity:1}.nr-badge{background:#a8432a!important;color:#fff!important}.nr-note{color:#9a3d26!important}[data-theme=dark] .nr-note{color:#f0a58f!important}
.odds-attr{opacity:1;color:var(--muted)}.pp-note{opacity:1;color:rgba(245,239,225,.85)}.pp-note .pill.ex{background:#f5efe1;color:#4a3a0a}
.con,h4.con{color:#a8432a}[data-theme=dark] .con{color:#f29a85!important}
[data-theme=dark] .cookie-banner a{color:#7fdcae}
.runners tr.nr td{opacity:1}.runners tr.nr{background:rgba(127,127,127,.06)}
.code-badge{display:inline-block;vertical-align:middle;margin-left:.4em;padding:.1em .55em;border-radius:999px;font-size:.62em;font-weight:700;letter-spacing:.02em;line-height:1.5;white-space:nowrap;border:1px solid currentColor}
.race-course .code-badge,.mn-code .code-badge{font-size:.75em}
.cb-flat{color:#0b5d3f;background:#e6f2ec}.cb-jumps{color:#7a3e12;background:#fbeee2}.cb-mixed{color:#4b3d8f;background:#eeebfa}
[data-theme=dark] .cb-flat{color:#8fe0b8;background:#12362a}[data-theme=dark] .cb-jumps{color:#f3c39b;background:#3e2614}[data-theme=dark] .cb-mixed{color:#c9c0f5;background:#2a2550}
.mn-code{margin:.4rem 0 .2rem}
/* home preview */
.pv-hero{padding:56px 0 28px;text-align:center}.pv-hero h1{font-size:clamp(1.7rem,4.5vw,2.6rem);margin:0 0 18px}
.pv-search{display:flex;align-items:center;gap:10px;width:100%;max-width:560px;margin:0 auto;padding:14px 18px;border-radius:999px;border:1px solid var(--line,#ddd);background:var(--card,#fff);color:inherit;font:inherit;cursor:pointer;text-align:left}
.pv-search svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.pv-search span{flex:1;opacity:.7}
.pv-meets{display:grid;gap:12px}.pv-meet{padding:14px 16px}.pv-mh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.pv-mh h3{margin:0 0 8px;font-size:1.1rem}
.pv-more{display:flex;flex-wrap:wrap;gap:10px}.pv-more a{padding:8px 14px;border-radius:999px;border:1px solid var(--line,#ddd);text-decoration:none;color:inherit;font-weight:600}
.pv-res{list-style:none;margin:0;padding:6px 16px}.pv-res li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line,#eee)}.pv-res li:first-child{border-top:0}.pv-res a{text-decoration:none;color:inherit}
.course-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.course-list li{padding:10px 14px;border:1px solid var(--line,#e5e5e5);border-radius:12px}.course-list a{font-weight:600;text-decoration:none;color:inherit}
/* meeting name + code badge */
.cname{display:inline-flex;align-items:center;gap:.5em;flex-wrap:nowrap;max-width:100%;vertical-align:middle;min-width:0}
.cname-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.code-badge{margin-left:0!important;flex:none;font-size:.7rem!important;line-height:1.35;padding:.12em .55em;vertical-align:middle;position:relative;top:0}
h2 .code-badge,h3 .code-badge{font-size:.72rem!important}
/* home: no overflow at 375 */
.pv-meets{grid-template-columns:minmax(0,1fr)}.pv-meet{min-width:0;overflow:hidden}.pv-meet .time-strip{overflow-x:auto;max-width:100%}
.pv-mh h3{min-width:0;max-width:100%}
.pv-places{list-style:none;margin:8px 0 0;padding:0;font-size:.85rem}.pv-places li{display:flex;gap:10px;align-items:baseline;padding:4px 0;border-top:1px solid var(--line,#eee);flex-wrap:wrap}.pv-places a{text-decoration:none;color:inherit}
.places{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.82rem}.places:empty{display:none}.pl b{font-weight:700;margin-right:2px}.pl1 b{color:#7a5a06}[data-theme=dark] .pl1 b{color:#f0c75e}
.rchip .places{margin-top:4px}
.pv-places li[hidden]{display:none}.pv-places:not(:has(li:not([hidden]))){display:none}
/* v15 polish: course page results + Flat/Jumps card */
.pv-res li{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,32%);align-items:start;gap:4px 16px}
.pv-res li>a,.pv-res li>span:first-child{display:grid;gap:2px;min-width:0}.pv-res li .meta{color:var(--muted,#6b6b6b)}
.pv-res .pv-win{text-align:right;font-weight:600}
@media(max-width:560px){.pv-res li{grid-template-columns:1fr}.pv-res .pv-win{text-align:left;font-weight:500}}
.pv-code .stat-row{margin-bottom:10px}.pv-code p{margin:6px 0}
.course-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.course-list li .pill{white-space:nowrap;flex:0 0 auto}
table.runners.no-odds>thead>tr>th:nth-child(7),table.runners.no-odds>tbody>tr>td:nth-child(7){display:none}
.sec.sec-tight{padding-top:4px;padding-bottom:4px}
.seg.code-tabs{display:inline-flex;width:auto;max-width:100%}
.sec.sec-tight{padding:0 22px}
/* info pop-ups: tap to open, clamped to the screen (JS sets position when open) */
.info-tip-wrap{position:relative;display:inline-flex;vertical-align:middle}
button.info-tip{font:inherit;cursor:pointer}
.info-tip-wrap>.tip{position:absolute;bottom:calc(100% + 8px);right:-8px;width:230px;max-width:calc(100vw - 16px);padding:10px 12px;border-radius:12px;background:var(--ink);color:var(--bg);font:500 .78rem/1.4 Inter;font-style:normal;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(4px);transition:.18s;z-index:60;box-shadow:var(--shadow)}
.info-tip-wrap>.tip a{color:inherit;text-decoration:underline}
@media(hover:hover){.info-tip-wrap:hover>.tip{opacity:1;visibility:visible;transform:none;pointer-events:auto}}
.info-tip-wrap>.tip.open{position:fixed;opacity:1;visibility:visible;transform:none;pointer-events:auto;right:auto;bottom:auto}
/* very small phones (≤360px): keep header and meeting switcher inside the screen */
@media(max-width:360px){.nav-in{gap:6px}.brand{min-width:0;flex:0 1 auto}.brand .wm-svg{max-width:118px;height:auto}.actions{gap:4px;flex:0 0 auto}.actions .btn.small{padding-left:10px;padding-right:10px}.actions .icon-btn,.actions button{min-width:36px}
 .mn-switch,.mn-switch select{max-width:100%;min-width:0}.mn-switch select{width:100%;text-overflow:ellipsis}}
button.info-tip{touch-action:manipulation}
@media(min-width:421px) and (max-width:480px){.brand{font-size:1.02rem;gap:8px}.actions{gap:6px}}
@media(max-width:360px){.cfa{min-width:0;overflow:hidden}.cfa-head{flex-wrap:wrap;gap:10px}.cfa-head h3{min-width:0;overflow-wrap:anywhere}.cfa-cols{grid-template-columns:minmax(0,1fr)}}
.prof h5 small{text-transform:none;letter-spacing:0;font-weight:500;margin-left:6px}
.hsearch input{width:100%;max-width:520px;font:500 1rem Inter;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.horse-list li{flex-wrap:wrap;gap:2px 8px}.horse-list li .small{color:var(--muted)}
.course-list li[hidden]{display:none}
.m-head>div{min-width:0}.m-first{flex:none;white-space:nowrap}@media(max-width:480px){.m-head{flex-wrap:wrap;gap:4px 12px}}
/* Analysis index: day tabs > meetings > compact race rows */
.an-wrap{padding-top:4px;padding-bottom:8px}
.an-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 6px}
.an-days{display:inline-flex;width:auto}
.an-days button{min-width:96px}
.an-clear{display:inline-flex;align-items:center;gap:8px;font:600 .88rem Inter;color:var(--ink);cursor:pointer;min-height:40px}
.an-clear input{width:18px;height:18px;accent-color:var(--brand);margin:0}
.an-jump{position:sticky;top:var(--navh,64px);z-index:20;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:10px 0;margin:0 0 4px;background:var(--bg);border-bottom:1px solid var(--line)}
.an-jump::-webkit-scrollbar{display:none}
.an-jump .chip{flex:none;padding:6px 14px;font-size:.84rem;text-decoration:none;white-space:nowrap}
.an-meet{scroll-margin-top:calc(var(--navh,64px) + 64px);margin-top:18px}
.an-meet[hidden],.an-list li[hidden]{display:none}
.an-mh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
.an-mh h3{margin:0;font-size:1.15rem;min-width:0}
.an-mh .small{flex:none}
.an-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.an-list li+li{border-top:1px solid var(--line)}
.an-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto 16px;align-items:center;gap:12px;padding:12px 14px;color:var(--ink);text-decoration:none;min-height:56px}
.an-row:hover{background:var(--surface2)}
.an-time{font:700 .95rem Inter;font-variant-numeric:tabular-nums}
.an-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.an-name{font-weight:600;font-size:.92rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-sel{font-size:.84rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-sel b{color:var(--ink);font-weight:600}
.an-rate{font:700 .72rem Inter;padding:.25em .65em;border-radius:999px;white-space:nowrap;border:1px solid currentColor}
.ar-clear{color:var(--brand2);background:color-mix(in srgb,var(--brand2) 12%,transparent)}
.ar-edge{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.ar-marginal{color:var(--muted);background:var(--surface2)}
.an-go{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2}
.an-none{margin-top:16px}
.an-rest{margin-top:24px}
@media(max-width:480px){.an-row{grid-template-columns:44px minmax(0,1fr) 14px;row-gap:6px;padding:12px}.an-rate{grid-column:2;grid-row:2;justify-self:start}.an-go{grid-column:3;grid-row:1/3}.an-days button{min-width:84px}}
.an-jump .chip[hidden]{display:none}
.an-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.an-h{font-size:1.35rem;margin:8px 0 12px}
.an-record{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 8px}
.an-record>div:first-child{min-width:0;flex:1 1 240px}
.an-record .small{margin:4px 0 0}
.an-record .stat-row{flex:0 1 auto}
.ao-won{color:var(--brand2);background:color-mix(in srgb,var(--brand2) 12%,transparent)}
.ao-placed{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.ao-lost,.ao-nr{color:var(--muted);background:var(--surface2)}
#anReviews{margin-top:28px}
.art-links{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0 0}
.an-record .stat-row{min-width:min(100%,320px);margin:0}
.an-record .stat-row>div{min-width:0}
@media(max-width:480px){.an-record .stat-row{flex:1 1 100%;min-width:0}.an-record .stat-row b{font-size:1.45rem}}
#anReviews .an-sel{white-space:normal}
/* search autocomplete: horses under the search box */
.qwrap{position:relative}
#qac{position:absolute;left:0;right:0;top:100%;z-index:5;list-style:none;margin:4px 0 0;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);max-height:min(60vh,420px);overflow-y:auto}
#qac[hidden]{display:none}
#qac a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none;min-width:0}
#qac a b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#qac a small{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#qac [aria-selected=true] a,#qac a:hover{background:var(--surface2)}
.an-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.an-tags .out-badge{margin:0}
@media(max-width:480px){.an-tags{grid-column:2;grid-row:2;justify-self:start;justify-content:flex-start}}
tr.nr-live td{opacity:.55}
.chips .share-btn{cursor:pointer;font:inherit;font-size:inherit;border:0}.home-rec{display:grid;gap:12px}
.chips{flex-wrap:wrap}
body:not(.rc-expert) .rc-exp,body.rc-expert .rc-beg{display:none}
.grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
.hero+.sec-tight,.hero+.sec{padding-top:24px}.sec-tight+.sec-tight{padding-top:12px}.sec-tight .card.hot{margin:0}
@media(max-width:480px){.hero .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hero .stats b{font-size:1.15rem}.hero .stats span{font-size:.78rem}}
.rc-mstall{display:none}
@media(max-width:640px){.rc-table thead{display:none}.rc-table,.rc-table tbody{display:block;width:100%}
.rc-table tr:not(.detail){display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"no name fit" "no name fol";column-gap:12px;row-gap:8px;padding:14px 0;border-bottom:1px solid var(--line);align-items:start}
.rc-table tr:not(.detail)>td{display:block;border:0;padding:0}
.rc-table td.rc-no{grid-area:no}.rc-table tr:not(.detail)>td:nth-child(2){grid-area:name}.rc-table td.rc-fit{grid-area:fit;justify-self:end}.rc-table td.rc-fol{grid-area:fol;justify-self:end;align-self:end}
.rc-table td.oddscell{grid-column:2/4}.rc-table.no-odds td.oddscell{display:none}
.rc-table .rc-dstall,.rc-table .rc-nofit{display:none}.rc-table .rc-mstall{display:inline}.rc-table .hname{font-size:1.02rem}
.rc-table .fitcell{flex-direction:column;gap:2px;text-align:center}.rc-table .fitcell small{font-size:.68rem;max-width:84px;line-height:1.2}
.rc-table tr.detail:not([hidden]){display:block}.rc-table tr.detail[hidden]{display:none}.rc-table tr.detail>td{display:block!important;border:0}}
@media(max-width:640px){.rc-table tr:not(.detail)>td:nth-child(3),.rc-table tr:not(.detail)>td:nth-child(4),.rc-table tr:not(.detail)>td:nth-child(5){display:none}}
.grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}.h-head{flex-wrap:wrap}
.signup>*{min-width:0}.signup-form .btn{flex:0 0 auto}
@media(max-width:700px){.signup{grid-template-columns:minmax(0,1fr);padding:24px 20px}.signup h2{font-size:1.7rem}}
.art-hero h1 .sub{display:block;font:500 1rem/1.45 Inter,sans-serif;color:var(--muted);letter-spacing:0;margin-top:8px}
.tj-l{color:var(--muted);font-weight:500;font-size:.88em}
@media(max-width:640px){.rc-table tr:not(.detail){grid-template-areas:"no name fit" "no fol fol"}.rc-table td.rc-fol{justify-self:end;align-self:center;margin-top:-34px}}
.fstack textarea,.fstack select{font:inherit;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface2);color:var(--ink);width:100%;box-sizing:border-box;resize:vertical}.fstack textarea:focus,.fstack select:focus{outline:none;border-color:var(--brand)}
.fstack[hidden],[data-nb-btns][hidden]{display:none}
.tj-row{display:flex;align-items:center;gap:8px;min-height:36px;line-height:1.3}.tj-row .tj-l{min-width:52px}.tj-row a{display:inline-flex;align-items:center;min-height:36px}
.rc-mstall{display:none}@media(max-width:640px){.rc-table .rc-mstall{display:block;color:var(--muted);margin-top:2px}}
.info-tip-wrap{align-items:center}
.info-tip,button.info-tip{position:relative;display:inline-grid;place-items:center;width:26px;height:26px;padding:0;border-radius:50%;border:1.5px solid var(--brand);background:transparent;color:var(--brand);font:800 .8rem/1 Inter,sans-serif;font-style:normal;cursor:pointer;flex:none;transition:background .2s,color .2s}
.info-tip::before{content:"";position:absolute;inset:-9px;border-radius:50%}
.info-tip:hover,.info-tip:focus-visible,.info-tip[aria-expanded=true]{background:var(--brand);color:#fff;border-color:var(--brand)}
@media(max-width:640px){.rc-table .rc-mstall{display:none}.rc-table .rc-dstall{display:block;font-size:.7rem;color:var(--muted);text-align:center;margin-top:4px;white-space:nowrap}.rc-table td.rc-no br{display:none}}
/* Mobile runner rows v3: number + name (+stall pill) + Follow/i on one line; trainer/jockey lines; Form & profile last */
.rc-stall,.rc-fitb{display:none}
@media(max-width:640px){
.rc-table tr:not(.detail){grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:none;row-gap:0;column-gap:10px;padding:10px 0;align-items:center}
.rc-table tr:not(.detail)>td.rc-main{display:contents}
.rc-table td.rc-no{grid-column:1;grid-row:1;align-self:center}.rc-table .rc-dstall{display:none!important}
.rc-table .rc-nm{grid-column:2;grid-row:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.rc-table .rc-stall{display:inline-block;padding:2px 7px;font-size:.68rem;color:var(--muted)}
.rc-table td.rc-fol{grid-column:3;grid-row:1;align-self:center;margin:0}
.rc-table .tj-row{grid-column:2;min-height:32px;font-size:.84rem}.rc-table .tj-row a{min-height:32px}
.rc-table .tj-l{font-size:.7rem;opacity:.75;min-width:46px}
.rc-table td.rc-fit{grid-column:3;grid-row:2/4;align-self:center;justify-self:end}
.rc-table td.rc-fit .fitcell{display:none}.rc-table .rc-fitb{display:inline-grid;place-items:center;min-width:32px;height:24px;padding:0 6px;border-radius:999px;color:#fff;font:700 .78rem Inter}
.rc-table td.rc-main>br,.rc-table .rc-mstall{display:none}
.rc-table .acc-btn{grid-column:2/4;justify-self:start;margin-top:4px}
.rc-table .rc-exp{grid-column:2/4}.rc-table td.oddscell{grid-column:2/4}}
@media(max-width:640px){.rc-table td.rc-fit:not(:has(.rc-fitb)){display:none}.rc-table tr:not(:has(.rc-fitb)) .tj-row{grid-column:2/4}.rc-table .tj-row,.rc-table .tj-row a{min-height:36px}}
@media(max-width:640px){.rc-table .tj-row{min-height:24px;line-height:1.25}.rc-table .tj-row a{min-height:0;padding:9px 0;margin:-9px 0}.rc-table tr:not(.detail){padding:8px 0}.rc-table .acc-btn{margin-top:6px}}
@media(max-width:640px){.rc-table .tj-row a{padding:10px 0;margin:-10px 0}}
@media(max-width:640px){.rc-table .tj-row,.rc-table tr:not(:has(.rc-fitb)) .tj-row{grid-column:2/4}.rc-table td.rc-fit{grid-column:3;grid-row:auto/span 1;align-self:center}.rc-table .acc-btn{grid-column:2/3}}
@media(max-width:640px){.rc-table .acc-btn{grid-row:4}.rc-table td.rc-fit{grid-row:4}.rc-table .tj-row:first-of-type{grid-row:2}}
@media(max-width:640px){.rc-table .tj-row a{flex:0 1 auto;min-width:0;max-width:none}.rc-table .tj-row{flex-wrap:nowrap}}
@media(max-width:640px){.rc-table .acc-btn{white-space:nowrap}}
.scroller[hidden]{display:none}.nr-done{margin:8px 0 4px}
.sec[hidden]{display:none}
.race{position:relative}.race .day-chip{position:absolute;top:12px;right:12px}
.ed-card{margin:0 0 18px}.ed-card h3{margin:2px 0 10px}.ed-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}.ed-list li[hidden]{display:none}.ed-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ed-why{margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ed-all{margin-top:12px;background:none;border:0;padding:8px 0;cursor:pointer;font:inherit;font-weight:600}.ed-tag{white-space:nowrap}
.ed-card{min-width:0;max-width:100%;overflow:hidden;box-sizing:border-box}.ed-list li,.ed-list p{min-width:0;max-width:100%}
.ed-list{grid-template-columns:minmax(0,1fr)}
.sec-head .eyebrow{display:block;height:1.4em;line-height:1.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s}
.ed-line{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:400px){.an-sel{white-space:normal}}
.ed-list li.open .ed-why,.ed-list li.open .ed-line{display:block;-webkit-line-clamp:unset;overflow:visible}
.ed-tog{background:none;border:0;padding:6px 0;margin:0;font:inherit;font-size:.8rem;font-weight:600;color:var(--brand);cursor:pointer;min-height:32px}
.ed-all{color:var(--brand);font-size:.9rem}
.ed-list li:has(.ed-tog:not([hidden])) .ed-why{cursor:pointer}
.otw-home{align-items:flex-start}.otw-home .eyebrow{display:block;margin-bottom:4px}.otw-line{margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.otw-line[hidden],.otw-home[hidden],[data-otw-day][hidden]{display:none}
.ir-day[hidden]{display:none}.ir-day h2{margin:18px 0 10px}
.otw-home>div{min-width:0;flex:1}
@media(max-width:360px){.otw-line .meta{display:none}}
/* Alignment pass (Oct 2026): header cells line up with row cells; numbers centred in both */
.mini-t th{text-align:left}
.mini-t th.num,.mini-t td.num{text-align:center;white-space:nowrap}
@media(min-width:641px){
 .rc-table th{text-align:left;vertical-align:bottom}
 .rc-table tr:not(.detail)>td{vertical-align:top;padding-top:14px;padding-bottom:14px}
 .rc-table td.rc-no{padding-top:12px}
 .rc-table td.rc-no .stall{margin-top:0}
 .rc-table td:not(.rc-main):not(.rc-no){padding-top:12px}
 .rc-table .acc-btn{margin:10px 0 2px}
 .rc-table .fitcell{align-items:center}
}
.tj-row .tj-l{display:inline-block;min-width:52px}
@media(min-width:641px){.rc-table td.rc-main br{display:none}.rc-table td.rc-main .acc-btn{display:flex;width:max-content;margin:8px 0 2px}}
.rs-col{display:none!important}html.show-rs .rs-col{display:revert!important}
.pp-grid.n6,.pp-grid.compact.n6{grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-grid.n7 li:last-child{grid-column:span 2}
.pp-grid li.pp-none .pp-s{opacity:.75}
@media(max-width:820px){.pp-grid.n6,.pp-grid.compact.n6{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-grid.n7 li:last-child{grid-column:span 2}}
.clamp{max-height:var(--clamp,6em);overflow:hidden;position:relative}
.clamp.is-clamped:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.2em;background:linear-gradient(transparent,var(--card-bg,var(--bg,#fff)));pointer-events:none}
.clamp.open{max-height:none}
.clamp-tog{display:block}
.skip-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.skip-row .chip{text-decoration:none;padding:6px 14px;font-size:.84rem;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}
.skip-l{color:var(--muted);margin-right:2px;white-space:nowrap;flex:none}
.card.meeting{scroll-margin-top:84px}
@media(max-width:640px){.skip-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-20px;padding-right:20px}.skip-row::-webkit-scrollbar{display:none}}
/* sidebar breathing room; i button centred with Follow everywhere */
.sel-panel .sel-horse{margin:16px 0 12px}.sel-panel .sel-price{margin:0 0 14px}.sel-panel .sel-reason{margin:0 0 16px;line-height:1.5}.sel-panel .follow-wrap,.sel-panel>.follow{margin:4px 0 16px}.sel-links{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 12px}
.follow-wrap{align-items:center}.follow-wrap>.info-tip-wrap,.follow-wrap>.info-tip{align-self:center;margin:0}.follow-wrap .follow{margin-top:0;margin-bottom:0}
/* 'Trainers & jockeys' tab: two lines when space is tight so the header actions stay on screen */
nav.links a[href="/stats/"]{white-space:normal;max-width:6.6em;line-height:1.1;text-align:center}
nav.bottom a[href="/stats/"]{white-space:normal;line-height:1.1;text-align:center}
@media(max-width:1360px){.links{margin-left:6px;gap:0}.links a{padding:7px 8px;font-size:.88rem}}
@media(max-width:1180px){.links a{padding:6px 6px;font-size:.8rem}nav.links a[href="/stats/"]{max-width:6em}}
@media(max-width:1100px){.links a[href="/academy/"]{display:none}}
@media(max-width:1000px){.links a[href="/ideal-races/"],.links a[href="/results/"]{display:none}}
table.sortable button.sort{all:unset;cursor:pointer;font:inherit;display:inline-flex;gap:3px;align-items:center}table.sortable th[aria-sort=descending] span::after{content:"▼";font-size:.6em}table.sortable th[aria-sort=ascending] span::after{content:"▲";font-size:.6em}table.sortable button.sort:focus-visible{outline:2px solid var(--brand);border-radius:4px}
/* one vertical spacing token between stacked cards/sections (16px mobile, 24px desktop) */
:root{--stack:16px}@media(min-width:768px){:root{--stack:24px}}
.race-grid>div>.card+.card,.race-grid>div>.card+div:not([hidden]),.race-grid>div>div+.card,.side>*+*,.wrap>.card+.card,.wrap>.card+section,.wrap>section+.card,.prose>.card+.card,.wrap>.table-card+.card,.wrap>.card+.table-card{margin-top:var(--stack)}
/* mobile polish (390px): nothing hidden behind the floating nav; single-line nav labels; hero CTAs */
@media(max-width:860px){body{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
 /* five equal-width slots; icon centred in each, labels top-aligned so all icons share one line; 'Trainers & jockeys' may wrap to two centred lines */
 .bottom{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;justify-content:stretch;padding-left:4px;padding-right:4px}
 nav.bottom a,nav.bottom a[href="/stats/"]{min-width:0;padding:4px 2px;justify-content:flex-start;align-items:center;text-align:center;line-height:1.15;white-space:normal}
 nav.bottom a svg{flex:none;display:block;margin:0 auto}nav.bottom a span{display:block;width:100%;text-align:center;overflow-wrap:normal}}
@media(max-width:480px){.hero .cta{gap:10px;margin:26px 0 30px}
 .hero .stats{padding-top:4px}.hero{padding-bottom:28px}}
/* desktop nav: every label on one line, header height fixed; lower-priority links drop out as width shrinks */
nav.links a,nav.links a[href="/stats/"]{white-space:nowrap;max-width:none;line-height:1.2}
@media(max-width:1400px){.links a[href="/academy/"]{display:none}}
@media(max-width:1300px){.links a[href="/ideal-races/"]{display:none}}
@media(max-width:1180px){.links a[href="/results/"]{display:none}}
/* header aligned to the content container at every desktop width: the inner row is the same 1180px .wrap, so only
   the links that fit in it show (container is fixed above 1180px, so the set is the same at 1280–1512+) */
.links a[href="/academy/"],.links a[href="/ideal-races/"]{display:none}
.nav-in>.links{min-width:0;flex:1 1 auto;justify-content:space-evenly;margin-left:8px}
#searchBtn{width:40px;padding:0}
@media(max-width:400px){#searchBtn{width:38px;min-width:38px}}
.go-s{display:none}
/* race-page runner panel (Form & profile) mirrors the horse page card; fit badge readable */
.rc-table .rc-fitb.f-hi,.rc-table .rc-fitb.f-good,.rc-table .rc-fitb.f-mid,.rc-table .rc-fitb.f-low{background:var(--c)}
.l5-more{display:inline-block;margin-top:8px}
/* phones: race record fits 375–430px with no sideways cut-off – Date, Course, Type, Dist, Going (short), Pos */
@media(max-width:640px){.runs-t{min-width:0;width:100%;table-layout:auto}
 .runs-t th:nth-child(6),.runs-t td:nth-child(6),.runs-t th:nth-child(n+8),.runs-t td:nth-child(n+8),.rc-table .runs-t th:nth-child(6),.rc-table .runs-t td:nth-child(6),.rc-table .runs-t th:nth-child(n+8),.rc-table .runs-t td:nth-child(n+8){display:none}
 .rc-table .runs-t thead{display:table-header-group}.rc-table .runs-t tbody{display:table-row-group}.rc-table .runs-t tr{display:table-row;grid-template-columns:none;padding:0;border:0}.rc-table .runs-t th,.rc-table .runs-t td{display:table-cell;grid-area:auto}
 .runs-t th,.runs-t td{padding:6px 2px;font-size:.76rem;letter-spacing:0}.runs-t th{font-size:.66rem}.runs-t td:nth-child(1){white-space:nowrap}.runs-t td:nth-child(2){white-space:normal;word-break:normal;overflow-wrap:normal;min-width:54px}.runs-t td:nth-child(7){white-space:nowrap}
 .runs-t .go-l{display:none}.runs-t .go-s{display:inline}
 .prof .basics{grid-template-columns:1fr 1fr;gap:10px 14px}.prof .basics dd{overflow-wrap:anywhere}
 .career .stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.career .stat-row b{font-size:1.25rem}.career .stat-row span{display:block;font-size:.68rem;line-height:1.2}}
/* the race-record table inside a runner's Form & profile panel is a normal table (not a runner grid row) */
.rc-table .runs-t tr:not(.detail){display:table-row;grid-template-columns:none;grid-template-areas:none;padding:0;border-bottom:0}
.rc-table .runs-t tr:not(.detail)>td,.rc-table .runs-t tr:not(.detail)>th{display:table-cell;grid-area:auto;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.rc-table .runs-t tr:not(.detail)>td:nth-child(2),.rc-table .runs-t tr:not(.detail)>td:nth-child(4),.rc-table .runs-t tr:not(.detail)>td:nth-child(5){display:table-cell}
@media(max-width:640px){.rc-table .runs-t tr:not(.detail)>td,.rc-table .runs-t tr:not(.detail)>th{padding:6px 2px}
 .rc-table .runs-t tr:not(.detail)>:nth-child(6),.rc-table .runs-t tr:not(.detail)>:nth-child(n+8){display:none}}
@media(max-width:400px){.runs-t th,.runs-t td,.rc-table .runs-t tr:not(.detail)>td{font-size:.72rem;padding-left:1px;padding-right:1px}}
/* Runner rows (phones): small "DNA score" label left of the fit badge */
.rc-fitl{display:none}
.rc-table td.rc-fit:has(.rc-fitb){display:flex;align-items:center;gap:6px}
.rc-table td.rc-fit .rc-fitl{display:inline;font:600 .68rem/1 Inter,sans-serif;color:var(--muted,#6b7280);white-space:nowrap}
@media(min-width:641px){.rc-table td.rc-fit .rc-fitl{display:none}}
/* Runner rows (phones): long trainer/jockey names wrap with a clear gap below/beside the Follow + i buttons */
@media(max-width:640px){.rc-table .tj-row{padding-right:16px;box-sizing:border-box}.rc-table .tj-row a{max-width:calc(100% - 72px);overflow-wrap:anywhere}.rc-table .tj-row:first-of-type{margin-top:6px}}
/* Bottom nav nudge (phones): content 3px left and 2px down inside the pill. The iPhone home-bar inset now lifts the
   whole pill (bottom offset) instead of padding its inside, so the space above and below the items stays even. */
@media(max-width:860px){.bottom{bottom:max(10px,env(safe-area-inset-bottom));padding:10px 7px 6px 1px}}

/* pick level tags */
.lv-tag{display:inline-block;vertical-align:middle;font-size:.68rem;padding:.2em .6em;margin-left:2px}
.pick-tag{background:var(--brand);color:#fff}
.pick-chip{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;flex-wrap:wrap}
.rec-note{margin:8px 0 0}
.sel-mini .lv-tag{margin:2px 0 0}
