/* Shared colors follow the existing Central light/dark theme. */
body{--personal-paper:#fff;--personal-ink:#19224d;--personal-muted:#626980;--personal-line:#e0e4ed;--personal-soft:#f3f5fb;--personal-accent:#293174;--central-page-width:960px;--central-page-gutter:16px}
body.dark{--personal-paper:#22232e;--personal-ink:#f0f0ff;--personal-muted:#b8bfd4;--personal-line:#3c4053;--personal-soft:#2c3041;--personal-accent:#adb8ff}
.ui-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}
.saved-container button{font-family:inherit;cursor:pointer}
.loading-state{background:var(--personal-paper);border:1px solid var(--personal-line);border-radius:8px;padding:36px 20px;text-align:center;color:var(--personal-muted);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:13px}
.loading-spinner{width:24px;height:24px;border:3px solid var(--personal-line);border-top-color:var(--personal-accent);border-radius:50%;animation:loadingSpin .8s linear infinite}
@keyframes loadingSpin{to{transform:rotate(360deg)}}
/* Page headers, search and results share the same content edges. */
:is(.race-header-gradient>.container,.race-list-container,.race-horse-filter-wrap,.summary-content,.saved-container,.race-detail-container,.results-tabs){box-sizing:border-box;width:100%;max-width:var(--central-page-width);margin-inline:auto;padding-inline:var(--central-page-gutter)}
.central-header-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.central-header-navigation{display:flex;align-items:flex-end;gap:12px;margin-top:12px;flex-wrap:wrap}
.saved-scope-label{display:flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:rgba(255,255,255,.8)}
.view-toggle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:360px;max-width:100%;border:1px solid rgba(255,255,255,.3);border-radius:6px;overflow:hidden;background:rgba(255,255,255,.1)}
.view-toggle .view-toggle-btn{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:6px 8px;border:0;border-radius:0;appearance:none;background:transparent;color:rgba(255,255,255,.7);font-family:inherit;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;cursor:pointer}
.view-toggle .view-toggle-btn+.view-toggle-btn{border-left:1px solid rgba(255,255,255,.3)}
.view-toggle .view-toggle-btn.active{background:rgba(255,255,255,.9);color:#151c42}
.view-toggle .view-toggle-btn:focus-visible{outline:3px solid #778bdf;outline-offset:-3px}
body.dark .view-toggle{border-color:rgba(255,255,255,.25)}
body.dark .view-toggle .view-toggle-btn{color:rgba(255,255,255,.75)}
body.dark .view-toggle .view-toggle-btn.active{background:rgba(255,255,255,.15);color:#f0f0ff}
@media(max-width:768px){
  body{--central-page-gutter:12px}
  .view-toggle{width:100%}
  .race-table-wrap{margin-inline:calc(-1 * var(--central-page-gutter))}
}
.detail-race-summary{--personal-ink:#fff;--personal-muted:rgba(255,255,255,.8);--personal-line:rgba(255,255,255,.2);--personal-soft:rgba(255,255,255,.15);--personal-accent:#fff;position:relative;margin:0 0 8px;border:1px solid transparent;border-radius:10px;background:linear-gradient(135deg,#293174 0%,#5B1341 100%)}
body.dark .detail-race-summary{background:linear-gradient(135deg,#1e2050 0%,#3d1840 100%)}
#detailHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;align-items:start;margin:0;padding:12px 14px;background:transparent;color:var(--personal-ink)}
.detail-race-heading{display:contents}
.detail-race-identity{grid-column:1 / -1;grid-row:1}
.detail-race-heading h2{grid-column:1;grid-row:2;min-width:0}
.detail-race-meta{grid-column:1;grid-row:3;min-width:0}
.detail-race-identity{display:flex;align-items:center;align-content:center;flex-wrap:wrap;gap:6px 12px;min-height:32px;padding-right:44px;font-size:12px;line-height:1.5;color:var(--personal-muted)}
.detail-race-identity strong{color:var(--personal-ink);font-size:14px}
.detail-race-identity b{font-size:16px;margin-left:3px}
.detail-race-heading h2{font-size:18px;font-weight:700;line-height:1.4;margin:5px 0 4px;overflow-wrap:anywhere}
.detail-race-meta{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;font-size:12px;line-height:1.5;color:var(--personal-muted)}
.detail-race-meta .detail-provisional{color:#ffc107}
.detail-race-badges:empty{display:none}
.detail-race-badges:not(:empty){display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}
.detail-upset-ring{position:relative;grid-column:2;grid-row:2 / span 3;align-self:center;width:52px;height:52px}
.detail-upset-ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}
.detail-upset-value{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-shadow:0 1px 2px #0006}
.detail-upset-value strong{font-size:20px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.detail-upset-value span{font-size:9px;font-weight:700;line-height:1.3}
.detail-upset-note{grid-column:1 / -1;font-size:11px;line-height:1.6;margin:8px 0 0;color:#ffc107}
#detailFavoriteBtn{position:absolute;right:8px;top:6px;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--personal-muted);font-size:27px;line-height:1}
#detailFavoriteBtn[aria-pressed=true]{background:var(--personal-soft);color:var(--personal-accent)}
#detailFavoriteBtn:focus-visible{outline:3px solid #778bdf;outline-offset:1px}
.detail-race-status,.detail-race-badges{grid-column:1;grid-row:4}
.detail-race-status{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px}
.detail-race-status:has(.live-odds-status:empty),.detail-race-status:has(.live-odds-status[hidden]){margin-top:0}
.detail-race-status .live-odds-status:empty{display:none}
.detail-race-status :is(.live-odds-status,.reliability-badge){box-sizing:border-box;min-height:22px;font-size:10px;line-height:18px;padding:1px 6px;margin:0}
.detail-upset-rings{grid-column:2;grid-row:2 / span 3;align-self:center;display:flex;gap:6px}
.favorite-button{min-height:44px;padding:8px 12px;border:1px solid var(--personal-line);border-radius:9px;background:var(--personal-paper);color:var(--personal-ink);font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}
.favorite-button[aria-pressed=true]{background:var(--personal-soft);border-color:var(--personal-accent);color:var(--personal-accent)}
.personal-mark{display:flex;align-items:center;justify-content:center;flex:0 0 44px;min-width:44px;min-height:44px;padding:3px;border:1px dashed var(--personal-line);border-radius:8px;background:var(--personal-paper);color:var(--personal-muted);font-size:20px;line-height:1.2;cursor:pointer}
.personal-mark.has-mark{border-style:solid;border-color:var(--personal-accent);background:var(--personal-soft);color:var(--personal-accent);font-weight:700}
.personal-status{display:inline-block;font-size:11px;font-weight:500;line-height:1.5;color:var(--personal-muted)}
.saved-title{font-size:20px;margin:0;font-weight:700}
.saved-nav-count{display:inline-block;margin-left:4px;font-size:10px;font-variant-numeric:tabular-nums}
.saved-nav-count:empty{display:none}
.saved-container{padding-block:16px 36px;color:var(--personal-ink)}
.saved-filters{display:flex;gap:6px}
.saved-filters button{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-height:44px;padding:7px 8px;border:1px solid var(--personal-line);border-radius:9px;background:var(--personal-paper);color:var(--personal-muted);font-size:12px;font-weight:700;white-space:nowrap}
.saved-filters button[aria-pressed=true]{border-color:var(--personal-accent);background:var(--personal-soft);color:var(--personal-accent)}
.saved-filters button span{font-size:11px;min-width:15px}
.saved-note{font-size:11px;line-height:1.7;color:var(--personal-muted);margin:12px 0 18px}
#savedContent{display:grid;gap:9px}
.saved-race-card{min-width:0;border:1px solid var(--personal-line);border-radius:8px;background:var(--personal-paper);overflow:hidden}
.saved-race-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--personal-paper)}
.saved-race-link{flex:1;min-width:0;min-height:48px;border:0;padding:0;text-align:left;background:transparent;color:var(--personal-ink)}
.saved-race-link>span{display:block;font-size:11px;color:var(--personal-muted);line-height:1.6}
.saved-race-link>strong{display:block;font-size:13px;font-weight:500;line-height:1.5;margin:4px 0;overflow-wrap:anywhere}
.saved-race-link .saved-race-meta{font-size:13px;color:var(--personal-ink)}
.saved-race-meta b{margin-left:6px;font-size:16px}
.saved-star{flex:0 0 44px;width:44px;padding:4px;font-size:22px}
.saved-marks{border-top:1px solid var(--personal-line)}
.saved-marks>summary{display:grid;grid-template-columns:auto minmax(0,1fr) 8px;align-items:center;gap:8px;min-height:52px;padding:8px 13px;list-style:none;cursor:pointer;color:var(--personal-ink)}
.saved-marks>summary::-webkit-details-marker{display:none}
.saved-marks>summary:after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-bottom:3px}
.saved-marks[open]>summary:after{transform:rotate(225deg);margin-top:5px}
.saved-mark-count{font-size:11px;white-space:nowrap;color:var(--personal-muted)}
.saved-mark-count b{font-weight:700;color:var(--personal-ink);font-variant-numeric:tabular-nums}
.saved-mark-preview{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap}
.saved-mark-chip{display:inline-flex;align-items:center;gap:3px;padding:3px 5px;border-radius:5px;background:var(--personal-soft);font-size:11px;font-variant-numeric:tabular-nums}
.saved-mark-chip b{font-size:14px;line-height:1.4;color:var(--personal-accent)}
.saved-mark-more{font-size:10px;color:var(--personal-muted)}
.saved-marked-horses{padding:0 13px}
.saved-marked-horse{display:flex;align-items:center;gap:9px;padding:6px 0}
.saved-marked-horse+.saved-marked-horse{border-top:1px solid var(--personal-line)}
.saved-marked-horse .personal-mark{flex-basis:44px;min-width:44px}
.saved-horse-link{flex:1;min-width:0;min-height:44px;border:0;padding:0;text-align:left;background:transparent;color:var(--personal-ink);line-height:1.6;overflow-wrap:anywhere}
.saved-horse-link span{font-size:11px;color:var(--personal-muted)}
.saved-horse-link strong{font-size:13px}
.saved-marked-horse .personal-status{flex:0 0 auto;max-width:65px}
.saved-no-marks{margin:0;padding:10px 13px;font-size:12px;color:var(--personal-muted)}
.saved-empty{text-align:center;padding:35px 14px;background:var(--personal-paper);border:1px solid var(--personal-line);border-radius:12px}
.saved-empty-star{font-size:38px;color:var(--personal-accent)}
.saved-empty h2{font-size:17px;margin:12px 0}
.saved-empty p{font-size:13px;line-height:1.9;color:var(--personal-muted)}
.personal-primary{min-height:44px;padding:10px 20px;margin-top:8px;border:0;border-radius:8px;background:#293174;color:#fff;font-size:13px;font-weight:700}
.personal-notice{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:12px 16px;border-radius:10px;background:#172144;color:#fff;font-size:12px;line-height:1.6;box-shadow:0 4px 18px #0003;z-index:2100;opacity:0;pointer-events:none;transition:opacity .15s}
.personal-notice.visible{opacity:1}
.table-mark-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.table-mark-button:focus-visible,.mp-btn:focus-visible{outline:3px solid #778bdf;outline-offset:-2px}
.saved-container button:focus-visible,.saved-marks>summary:focus-visible,.personal-saved-tab:focus-visible{outline:3px solid #778bdf;outline-offset:-2px}
@media(max-width:640px){
  .kc-navbar .nav-links a.nav-auth-link{width:40px;padding:0}
  .kc-navbar .nav-links a.nav-auth-link span{display:none}
  .favorite-button{padding:8px 9px;font-size:12px}
  .saved-container{padding-block:12px 30px}
  .saved-race-card{border-radius:10px}
  .saved-race-header{padding:12px 14px}
  .saved-filters button{font-size:11px;padding:6px 4px;gap:3px}
  .saved-star{font-size:22px}
}
@media(prefers-reduced-motion:reduce){.personal-notice{transition:none}}
