:root{--bg-canvas:#f4f6f8;--bg-surface:#fff;--bg-subtle:#f8fafc;--bg-muted:#eef2f6;--bg-hover:#f1f5f9;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--border-focus:#0f5132;--brand-primary:#0f5132;--brand-primary-hover:#0a3822;--brand-tint:#ecfdf3;--brand-border:#a7f3d0;--ink-primary:#0f172a;--ink-secondary:#475569;--ink-muted:#64748b;--accent-vermilion:#dc2626;--accent-vermilion-tint:#fef2f2;--accent-vermilion-border:#fecaca;--accent-navy:#1d4ed8;--accent-navy-tint:#eff6ff;--accent-navy-border:#bfdbfe;--accent-amber:#b45309;--accent-amber-tint:#fffbeb;--accent-amber-border:#fde68a;--accent-emerald:#047857;--accent-emerald-tint:#ecfdf5;--accent-emerald-border:#a7f3d0;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a24;--font-sans:"Inter", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic UI", sans-serif;--font-mono:"JetBrains Mono", "Inter", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--bg-canvas);color:var(--ink-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;line-height:1.5;overflow-x:hidden}button,input,select,textarea{font-family:inherit}.num,.data-table td,.data-table th,.shutuba-table td,.shutuba-table th,.race-cell-time,.race-cell-no,.ticket-metrics,.ticket-stake,.kpi-val{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.app-shell{flex-direction:column;min-height:100vh;display:flex}.main-container{flex-direction:column;flex:1;gap:1rem;width:100%;max-width:1380px;margin:0 auto;padding:1rem 1.25rem 2.5rem;display:flex}.site-header{background-color:var(--bg-surface);border-top:3px solid var(--brand-primary);border-bottom:1px solid var(--border-subtle);z-index:100;position:sticky;top:0}.site-header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:1380px;height:58px;margin:0 auto;padding:0 1.25rem;display:flex}.brand-block{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.65rem;padding:0;display:flex}.brand-emblem{border-radius:var(--radius-md);background-color:var(--brand-primary);color:#fff;width:32px;height:32px;font-family:var(--font-mono);letter-spacing:-.03em;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.brand-titles{flex-direction:column;line-height:1.15;display:flex}.brand-name{color:var(--ink-primary);letter-spacing:-.01em;font-size:1.08rem;font-weight:700}.brand-sub{color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:600}.desktop-nav{align-items:center;gap:.25rem;height:100%;display:flex}.nav-tab-btn{height:55px;color:var(--ink-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;padding:0 .9rem;font-size:.86rem;font-weight:600;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.nav-tab-btn:hover{color:var(--ink-primary);background-color:var(--bg-subtle)}.nav-tab-btn.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary);font-weight:700}.header-actions{align-items:center;gap:.5rem;display:flex}.header-util-btn{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background-color:var(--bg-subtle);height:32px;color:var(--ink-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;padding:0 .7rem;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.header-util-btn:hover{border-color:var(--border-strong);color:var(--ink-primary);background-color:var(--bg-hover)}.header-util-btn.admin-btn{background-color:var(--brand-tint);border-color:var(--brand-border);color:var(--brand-primary)}.header-util-btn.admin-btn:hover{background-color:#d1fae5}.surface-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.section-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.15rem;display:flex}.section-title{color:var(--ink-primary);align-items:center;gap:.45rem;margin:0;font-size:.95rem;font-weight:700;display:inline-flex}.tag-badge{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.72rem;font-weight:600;line-height:1.35;display:inline-flex}.tag-turf{background-color:var(--brand-tint);color:var(--brand-primary);border-color:var(--brand-border)}.tag-emerald{background-color:var(--accent-emerald-tint);color:var(--accent-emerald);border-color:var(--accent-emerald-border)}.tag-amber{background-color:var(--accent-amber-tint);color:var(--accent-amber);border-color:var(--accent-amber-border)}.tag-vermilion{background-color:var(--accent-vermilion-tint);color:var(--accent-vermilion);border-color:var(--accent-vermilion-border)}.tag-navy{background-color:var(--accent-navy-tint);color:var(--accent-navy);border-color:var(--accent-navy-border)}.tag-neutral{background-color:var(--bg-muted);color:var(--ink-secondary);border-color:var(--border-subtle)}.form-field{flex-direction:column;gap:.3rem;display:flex}.form-label{color:var(--ink-secondary);font-size:.74rem;font-weight:600}.input-control,.select-control{border-radius:var(--radius-md);border:1px solid var(--border-strong);background-color:var(--bg-surface);height:36px;color:var(--ink-primary);padding:0 .7rem;font-size:.85rem;font-weight:500;transition:border-color .15s,box-shadow .15s}.input-control:focus,.select-control:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 2px #0f51321f}.btn-solid{border-radius:var(--radius-md);border:1px solid var(--brand-primary);background-color:var(--brand-primary);color:#fff;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;height:36px;padding:0 1rem;font-size:.84rem;font-weight:600;transition:background-color .15s;display:inline-flex}.btn-solid:hover:not(:disabled){background-color:var(--brand-primary-hover)}.btn-solid:disabled{opacity:.55;cursor:not-allowed}.btn-outline{border-radius:var(--radius-md);border:1px solid var(--border-strong);background-color:var(--bg-surface);height:34px;color:var(--ink-primary);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:.35rem;padding:0 .8rem;font-size:.8rem;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-outline:hover:not(:disabled){background-color:var(--bg-subtle);border-color:var(--ink-muted)}.race-nav-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.race-nav-top{border-bottom:1px solid var(--border-subtle);background-color:var(--bg-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.date-venue-group{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.date-stepper{background-color:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);align-items:center;display:inline-flex;overflow:hidden}.date-step-btn{width:30px;height:34px;color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.date-step-btn:hover{background-color:var(--bg-hover);color:var(--ink-primary)}.date-input-clean{border:none;border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);height:34px;color:var(--ink-primary);font-variant-numeric:tabular-nums;background:0 0;padding:0 .55rem;font-size:.84rem;font-weight:600}.date-input-clean:focus{background-color:var(--brand-tint);outline:none}.date-today-btn{border:none;border-left:1px solid var(--border-subtle);height:34px;color:var(--ink-secondary);cursor:pointer;background:0 0;padding:0 .65rem;font-size:.76rem;font-weight:600}.date-today-btn:hover{background-color:var(--bg-hover);color:var(--brand-primary)}.venue-pills{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.venue-pill{border-radius:var(--radius-md);border:1px solid var(--border-strong);background-color:var(--bg-surface);height:34px;color:var(--ink-primary);cursor:pointer;align-items:center;gap:.4rem;padding:0 .85rem;font-size:.84rem;font-weight:600;transition:all .15s;display:inline-flex}.venue-pill:hover{border-color:var(--brand-primary);background-color:var(--bg-hover)}.venue-pill.active{background-color:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.venue-v2-count{background-color:var(--accent-amber-tint);color:var(--accent-amber);border:1px solid var(--accent-amber-border);border-radius:3px;padding:.05rem .38rem;font-size:.68rem;font-weight:700}.venue-pill.active .venue-v2-count{color:#92400e;background-color:#fef3c7;border-color:#fde68a}.v2-quick-bar{background-color:#fffdf7;border-bottom:1px solid #f3e8c8;flex-wrap:wrap;align-items:center;gap:.45rem;padding:.5rem 1rem;font-size:.76rem;display:flex}.v2-quick-label{color:var(--accent-amber);align-items:center;gap:.3rem;margin-right:.2rem;font-weight:700;display:inline-flex}.v2-quick-chip{border-radius:var(--radius-sm);border:1px solid var(--accent-amber-border);color:var(--ink-primary);cursor:pointer;background-color:#fff;align-items:center;gap:.3rem;padding:.18rem .55rem;font-size:.74rem;font-weight:600;transition:all .15s;display:inline-flex}.v2-quick-chip:hover{border-color:var(--accent-amber);background-color:var(--accent-amber-tint)}.v2-quick-chip.current{background-color:var(--accent-amber);border-color:var(--accent-amber);color:#fff}.race-strip-wrapper{scrollbar-width:thin;overflow-x:auto}.race-strip{grid-template-columns:repeat(12,minmax(76px,1fr));min-width:912px;display:grid}.race-cell-btn{background-color:var(--bg-surface);border:none;border-right:1px solid var(--border-subtle);color:var(--ink-primary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.55rem .35rem .5rem;transition:background-color .12s;display:flex;position:relative}.race-cell-btn:last-child{border-right:none}.race-cell-btn:hover:not(:disabled){background-color:var(--bg-subtle)}.race-cell-btn:disabled{opacity:.4;cursor:default}.race-cell-btn.v2-target:before{content:"";background-color:#d97706;height:3px;position:absolute;top:0;left:0;right:0}.race-cell-btn.active{background-color:var(--brand-primary);color:#fff}.race-cell-btn.active:hover{background-color:var(--brand-primary)}.race-cell-top{align-items:center;gap:.25rem;display:flex}.race-cell-no{font-size:.88rem;font-weight:700;line-height:1.1}.race-cell-v2-tag{background-color:var(--accent-amber-tint);color:var(--accent-amber);border:1px solid var(--accent-amber-border);border-radius:3px;padding:.05rem .28rem;font-size:.62rem;font-weight:700;line-height:1.1}.race-cell-btn.active .race-cell-v2-tag{color:#92400e;background-color:#fef3c7;border-color:#fde68a}.race-cell-meta{color:var(--ink-muted);align-items:center;gap:.25rem;font-size:.68rem;line-height:1.15;display:flex}.race-cell-btn.active .race-cell-meta{color:#ffffffd9}.race-cell-settled{color:var(--accent-emerald);font-weight:600}.race-cell-btn.active .race-cell-settled{color:#a7f3d0}.market-strip-row{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.75rem;display:grid}.compact-panel{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:.65rem .95rem}.compact-panel-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.compact-panel-title{color:var(--ink-primary);align-items:center;gap:.4rem;margin:0;font-size:.8rem;font-weight:700;display:inline-flex}.odds-drop-scroll{scrollbar-width:thin;gap:.5rem;padding-top:.55rem;padding-bottom:.15rem;display:flex;overflow-x:auto}.odds-drop-chip{border-radius:var(--radius-md);border:1px solid var(--accent-vermilion-border);cursor:pointer;background-color:snow;flex:none;min-width:185px;padding:.45rem .65rem;transition:border-color .15s,background-color .15s}.odds-drop-chip:hover{border-color:var(--accent-vermilion);background-color:var(--accent-vermilion-tint)}.hot-inline-groups{flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.5rem;font-size:.78rem;display:flex}.hot-inline-item{color:var(--ink-primary);align-items:center;gap:.35rem;display:inline-flex}.race-workspace{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.race-header-bar{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.85rem;padding:1rem 1.25rem;display:flex}.race-title-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.race-no-pill{background-color:var(--brand-primary);color:#fff;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;padding:.2rem .6rem;font-size:.9rem;font-weight:700}.race-main-title{color:var(--ink-primary);letter-spacing:-.01em;margin:0;font-size:1.3rem;font-weight:700}.race-meta-list{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:.4rem .9rem;margin-top:.45rem;font-size:.82rem;display:flex}.race-meta-item{align-items:center;gap:.3rem;display:inline-flex}.race-meta-sep{color:var(--border-strong)}.prediction-section{background-color:var(--bg-subtle);border-bottom:1px solid var(--border-subtle);padding:1rem 1.25rem}.prediction-grid{grid-template-columns:1fr 1.2fr;align-items:stretch;gap:1rem;display:grid}.slip-pane{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;justify-content:space-between;gap:.75rem;padding:.95rem 1.1rem;display:flex}.slip-pane.v2-active-slip{border-color:#b45309 #e5c97b #e5c97b;border-top-style:solid;border-top-width:3px}.slip-pane-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.6rem;display:flex}.slip-pane-title{color:var(--ink-primary);align-items:center;gap:.4rem;margin:0;font-size:.86rem;font-weight:700;display:inline-flex}.marks-summary-stack{flex-direction:column;gap:.55rem;display:flex}.mark-summary-box{border-radius:var(--radius-md);background-color:var(--bg-subtle);border:1px solid var(--border-subtle);padding:.6rem .8rem}.mark-summary-box.honmei-box{border-color:var(--accent-vermilion-border);background-color:snow}.mark-summary-label{color:var(--ink-secondary);align-items:center;gap:.35rem;margin-bottom:.2rem;font-size:.72rem;font-weight:700;display:flex}.mark-summary-val{color:var(--ink-primary);font-size:.95rem;font-weight:700}.slip-footnote{color:var(--ink-muted);font-size:.7rem;line-height:1.45}.ticket-list{flex-direction:column;gap:.45rem;display:flex}.ticket-row{border-radius:var(--radius-sm);background-color:var(--bg-subtle);border:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.ticket-left{align-items:center;gap:.55rem;display:flex}.bet-type-tag{text-align:center;border-radius:3px;min-width:42px;padding:.12rem .48rem;font-size:.72rem;font-weight:700}.bet-type-win{background-color:var(--accent-vermilion-tint);color:var(--accent-vermilion);border:1px solid var(--accent-vermilion-border)}.bet-type-quinella{background-color:var(--accent-navy-tint);color:var(--accent-navy);border:1px solid var(--accent-navy-border)}.bet-type-exacta{background-color:var(--accent-amber-tint);color:var(--accent-amber);border:1px solid var(--accent-amber-border)}.ticket-combo{font-family:var(--font-mono);color:var(--ink-primary);font-size:.94rem;font-weight:700}.ticket-metrics{color:var(--ink-secondary);flex-wrap:wrap;align-items:center;gap:.7rem;font-size:.76rem;display:flex}.ticket-stake{font-family:var(--font-mono);color:var(--ink-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:#fff;padding:.12rem .55rem;font-size:.84rem;font-weight:700}.settlement-bar{border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .8rem;font-size:.82rem;font-weight:600;display:flex}.settlement-bar.won{background-color:var(--accent-emerald-tint);border:1px solid var(--accent-emerald-border);color:var(--accent-emerald)}.settlement-bar.lost{background-color:var(--bg-muted);border:1px solid var(--border-subtle);color:var(--ink-secondary)}.skip-notice-box{border-radius:var(--radius-md);background-color:var(--bg-subtle);border:1px dashed var(--border-strong);flex-direction:column;gap:.35rem;padding:.85rem 1rem;display:flex}.mark-glyph{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;width:24px;height:24px;font-size:.9rem;font-weight:800;line-height:1;display:inline-flex}.mark-honmei{background-color:var(--accent-vermilion-tint);color:var(--accent-vermilion);border-color:#fca5a5}.mark-taikou{background-color:var(--accent-navy-tint);color:var(--accent-navy);border-color:#93c5fd}.mark-tanana{background-color:var(--accent-amber-tint);color:var(--accent-amber);border-color:#fcd34d}.mark-tokuchu{color:#0f766e;background-color:#f0fdfa;border-color:#99f6e4}.mark-renka{background-color:var(--bg-subtle);color:var(--ink-secondary);border-color:var(--border-strong)}.bracket-num-badge{border-radius:var(--radius-sm);min-width:24px;height:24px;font-family:var(--font-mono);justify-content:center;align-items:center;padding:0 4px;font-size:.8rem;font-weight:700;line-height:1;display:inline-flex}.subtab-bar{border-bottom:1px solid var(--border-subtle);background-color:var(--bg-surface);align-items:center;gap:.25rem;padding:0 1.25rem;display:flex;overflow-x:auto}.subtab-btn{color:var(--ink-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;padding:.75rem 1rem;font-size:.86rem;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.subtab-btn:hover{color:var(--ink-primary)}.subtab-btn.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary);font-weight:700}.table-scroll{width:100%;overflow-x:auto}.shutuba-table,.data-table{border-collapse:collapse;background-color:var(--bg-surface);width:100%;font-size:.83rem}.shutuba-table th,.data-table th{background-color:var(--bg-subtle);color:var(--ink-secondary);border-bottom:1px solid var(--border-strong);white-space:nowrap;text-align:left;z-index:2;padding:.6rem .65rem;font-size:.74rem;font-weight:700;position:sticky;top:0}.shutuba-table td,.data-table td{border-bottom:1px solid var(--border-subtle);color:var(--ink-primary);vertical-align:middle;padding:.58rem .65rem}.shutuba-table tbody tr.horse-main-row:hover,.data-table tbody tr:hover{background-color:var(--bg-subtle)}.shutuba-table tbody tr.row-honmei{background-color:#fffdfd}.shutuba-table tbody tr.row-winner{background-color:#fafffc}.horse-link-btn{color:var(--ink-primary);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.88rem;font-weight:700;transition:color .12s}.horse-link-btn:hover{color:var(--accent-navy);text-decoration:underline}.expand-row-btn{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background-color:var(--bg-subtle);width:22px;height:22px;color:var(--ink-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.expand-row-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.rank-mini-tag{border-radius:3px;justify-content:center;align-items:center;margin-right:.3rem;padding:.05rem .3rem;font-size:.65rem;font-weight:700;display:inline-flex}.rank-mini-1{color:#92400e;background-color:#fef3c7;border:1px solid #fcd34d}.rank-mini-2{color:#334155;background-color:#f1f5f9;border:1px solid #cbd5e1}.rank-mini-3{color:#9a3412;background-color:#ffedd5;border:1px solid #fdba74}.past-runs-cell{background-color:var(--bg-subtle)!important;padding:.75rem 1rem!important}.past-runs-box{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-left:3px solid var(--brand-primary);border-radius:var(--radius-md);padding:.65rem .85rem}.past-runs-table{border-collapse:collapse;width:100%;font-size:.76rem}.past-runs-table th{color:var(--ink-muted);border-bottom:1px solid var(--border-subtle);background:0 0;padding:.3rem .5rem;font-size:.68rem;font-weight:700;position:static}.past-runs-table td{border-bottom:1px solid var(--bg-muted);padding:.38rem .5rem}.past-runs-table tr:last-child td{border-bottom:none}.panel-body{padding:1.15rem 1.25rem}.analytics-grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.sub-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1rem 1.1rem}.sub-card-title{color:var(--ink-primary);align-items:center;gap:.4rem;margin:0 0 .35rem;font-size:.9rem;font-weight:700;display:flex}.sub-card-desc{color:var(--ink-secondary);margin:0 0 .85rem;font-size:.76rem}.segmented-control{background-color:var(--bg-muted);border-radius:var(--radius-md);border:1px solid var(--border-subtle);gap:2px;padding:3px;display:inline-flex}.segment-btn{border-radius:var(--radius-sm);color:var(--ink-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.segment-btn:hover{color:var(--ink-primary)}.segment-btn.active{background-color:var(--bg-surface);color:var(--brand-primary);box-shadow:var(--shadow-xs);font-weight:700}.track-2d-scroll{padding-bottom:.25rem;overflow-x:auto}.track-2d-board{border-radius:var(--radius-md);background-color:#f8f6f2;border:1px solid #d6d1c7;flex-direction:row-reverse;min-width:720px;height:192px;display:flex;position:relative;overflow:hidden}.track-lane-divider{pointer-events:none;border-top:1px dashed #d6d1c7;position:absolute;left:0;right:0}.track-rail-label{color:#8c8577;letter-spacing:.04em;pointer-events:none;font-size:.64rem;font-weight:700;position:absolute;left:.6rem}.track-goal-line{background-color:var(--accent-vermilion);z-index:4;width:2px;position:absolute;top:0;bottom:0;left:2.2rem}.track-goal-tag{background-color:var(--accent-vermilion);color:#fff;z-index:5;border-radius:3px;padding:1px 5px;font-size:.62rem;font-weight:700;position:absolute;top:6px;left:2.5rem}.track-start-line{z-index:4;background-color:#94a3b8;width:1px;position:absolute;top:0;bottom:0;right:1.8rem}.track-start-tag{color:var(--ink-secondary);z-index:5;background-color:#e2e8f0;border-radius:3px;padding:1px 5px;font-size:.62rem;font-weight:700;position:absolute;top:6px;right:2.1rem}.track-zone-col{border-right:1px solid #94a3b838;flex-direction:column;flex:1;justify-content:space-around;padding:18px 6px 24px;display:flex;position:relative}.track-zone-col.zone-advantaged{background-color:#10b98112}.track-zone-footer{color:var(--ink-secondary);white-space:nowrap;align-items:center;gap:4px;font-size:.7rem;font-weight:700;display:inline-flex;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.track-horse-chip{border-radius:var(--radius-sm);background-color:var(--bg-surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-xs);color:var(--ink-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;padding:2px 7px;font-size:.72rem;font-weight:600;transition:transform .12s,border-color .12s;display:inline-flex}.track-horse-chip:hover{border-color:var(--brand-primary);transform:translateY(-1px)}.track-horse-chip.is-honmei{border-color:var(--accent-vermilion);background-color:snow}.kv-table{border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.kv-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:44% 56%;font-size:.8rem;display:grid}.kv-row:last-child{border-bottom:none}.kv-key{background-color:var(--bg-subtle);color:var(--ink-secondary);border-right:1px solid var(--border-subtle);align-items:center;padding:.5rem .75rem;display:flex}.kv-val{background-color:var(--bg-surface);color:var(--ink-primary);flex-wrap:wrap;align-items:center;gap:.3rem;padding:.5rem .75rem;font-weight:600;display:flex}.filter-toolbar{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-wrap:wrap;align-items:flex-end;gap:.85rem;padding:.85rem 1.1rem;display:flex}.modal-backdrop{z-index:1100;background-color:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-dialog{background-color:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:960px;max-height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.modal-dialog.modal-narrow{max-width:660px}.modal-header{border-bottom:1px solid var(--border-subtle);background-color:var(--bg-subtle);justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1.25rem;display:flex}.modal-body{flex:1;padding:1.25rem;overflow-y:auto}.admin-leaderboard-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:.9rem;display:grid}.model-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:.75rem;padding:1rem 1.1rem;display:flex;position:relative}.model-card.active-model{border-color:var(--brand-primary);border-top:3px solid var(--brand-primary)}.log-drawer{background-color:var(--bg-surface);border-left:1px solid var(--border-strong);width:460px;max-width:100%;box-shadow:var(--shadow-lg);z-index:1080;flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.log-drawer.open{transform:translate(0)}.log-terminal{color:#e2e8f0;border-radius:var(--radius-md);font-family:var(--font-mono);white-space:pre-wrap;background-color:#0f172a;flex:1;padding:.75rem;font-size:.72rem;line-height:1.45;overflow-y:auto}.loading-bar{color:var(--ink-secondary);justify-content:center;align-items:center;gap:.5rem;padding:.65rem;font-size:.82rem;display:flex}.spinner-ring{border:2px solid var(--border-strong);border-top-color:var(--brand-primary);border-radius:50%;width:18px;height:18px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.site-footer{background-color:var(--bg-surface);border-top:1px solid var(--border-subtle);margin-top:auto;padding:1.35rem 1.25rem}.site-footer-inner{max-width:1380px;color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:0 auto;font-size:.78rem;display:flex}.footer-links{align-items:center;gap:1.25rem;display:flex}.footer-link{color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.78rem;text-decoration:none}.footer-link:hover{color:var(--brand-primary);text-decoration:underline}.mobile-horse-list,.mobile-bottom-nav{display:none}@media (width<=960px){.prediction-grid{grid-template-columns:1fr}}@media (width<=768px){.desktop-nav{display:none}.main-container{gap:.75rem;padding:.75rem .75rem 5rem}.site-header-inner{height:52px;padding:0 .85rem}.race-header-bar,.prediction-section,.panel-body{padding:.85rem}.race-main-title{font-size:1.1rem}.desktop-shutuba{display:none}.mobile-horse-list{background-color:var(--bg-subtle);flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.mobile-horse-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:.75rem .85rem}.mobile-bottom-nav{background-color:var(--bg-surface);border-top:1px solid var(--border-strong);z-index:1000;height:58px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0f172a0f}.mobile-nav-btn{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:4px 0;font-size:.66rem;font-weight:600;display:flex}.mobile-nav-btn.active{color:var(--brand-primary);font-weight:700}.admin-leaderboard-grid{grid-template-columns:1fr}}
