@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap);body{background:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:JetBrains Mono,Fira Code,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:focus{outline:none}[tabindex]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #1a5d1a;outline-offset:2px}html{scroll-behavior:smooth}button{background:none;border:none;cursor:pointer;font-family:inherit}a{color:inherit;text-decoration:none}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:root{--primary-900:#0d3b2f;--primary-700:#1a5538;--primary-500:#2d7a4a;--primary-300:#6bb889;--primary-100:#e8f5ec;--primary-50:#f4faf6;--neutral-900:#0f1419;--neutral-800:#1c2127;--neutral-700:#2d3338;--neutral-600:#4a5056;--neutral-500:#6b7280;--neutral-400:#9ca3af;--neutral-300:#d1d5db;--neutral-200:#e5e7eb;--neutral-100:#f3f4f6;--neutral-50:#f9fafb;--bg-primary:var(--neutral-50);--bg-secondary:#fff;--bg-tertiary:var(--neutral-100);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-600);--text-tertiary:var(--neutral-500);--border-primary:var(--neutral-200);--border-secondary:var(--neutral-300);--success-500:#10b981;--warning-500:#f59e0b;--error-500:#ef4444;--info-500:#3b82f6;--odds-favorite:#dc2626;--odds-longshot:#7c3aed;--track-turf:#16a34a;--track-dirt:#a16207;--font-ui:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"JetBrains Mono","SF Mono",Monaco,monospace;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--radius-sm:0.125rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9fafb;background:var(--bg-primary);color:#0f1419;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-ui);font-weight:400;line-height:1.5;transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);transition:background-color var(--transition-base),color var(--transition-base)}.app-container{background:#fff;background:var(--bg-secondary);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;margin:0 auto;max-width:1440px;min-height:100vh;transition:background-color .2s cubic-bezier(.4,0,.2,1);transition:background-color var(--transition-base)}.header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);padding:1rem 1.5rem;padding:var(--space-4) var(--space-6);position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-content{gap:1.5rem;gap:var(--space-6);justify-content:space-between}.header-content,.logo{align-items:center;display:flex}.logo{gap:.75rem;gap:var(--space-3)}.logo-text{color:#1a5538;color:var(--primary-700);font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.logo-subtitle{color:#6b7280;color:var(--neutral-500);font-size:.875rem;font-weight:500}.header-meta{font-size:.875rem;gap:1rem;gap:var(--space-4)}.date-info,.header-meta{align-items:center;display:flex}.date-info{color:#2d3338;color:var(--neutral-700);font-weight:500;gap:.5rem;gap:var(--space-2)}.status-indicator{align-items:center;color:#6b7280;color:var(--neutral-500);display:flex;gap:.5rem;gap:var(--space-2)}.status-dot{background:#10b981;background:var(--success-500);border-radius:50%;height:8px;width:8px}.main-layout{background:#f9fafb;background:var(--neutral-50);display:grid;flex:1 1;grid-template-columns:1fr}@media (min-width:768px){.main-layout{grid-template-columns:280px 1fr}}@media (min-width:1024px){.main-layout{grid-template-columns:320px 1fr 280px}}.race-list-sidebar{background:linear-gradient(180deg,#fff,#f9fafb);background:linear-gradient(180deg,#fff 0,var(--neutral-50) 100%);border-right:1px solid #e5e7eb;border-right:1px solid var(--neutral-200);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);height:calc(100vh - 81px);overflow-y:auto}.sidebar-header{background:linear-gradient(135deg,#f4faf6,#e8f5ec);background:linear-gradient(135deg,var(--primary-50) 0,var(--primary-100) 100%);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);padding:1.5rem;padding:var(--space-6)}.sidebar-title{color:#0d3b2f;color:var(--primary-900);font-size:1.125rem;font-weight:600;margin-bottom:.25rem;margin-bottom:var(--space-1)}.race-count{color:#4a5056;color:var(--neutral-600);font-size:.875rem}.race-item,.race-list{padding:1rem;padding:var(--space-4)}.race-item{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);color:inherit;cursor:pointer;display:block;margin-bottom:.75rem;margin-bottom:var(--space-3);text-decoration:none;transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.race-item:hover{border-color:#6bb889;border-color:var(--primary-300)}.race-item.active,.race-item:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.race-item.active{background:linear-gradient(135deg,#f4faf6,#e8f5ec);background:linear-gradient(135deg,var(--primary-50) 0,var(--primary-100) 100%);border-color:#2d7a4a;border-color:var(--primary-500)}.race-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem;margin-bottom:var(--space-3)}.race-number{background:linear-gradient(135deg,#2d7a4a 0,var(--primary-600) 100%);background:linear-gradient(135deg,var(--primary-500) 0,var(--primary-600) 100%);border-radius:.125rem;border-radius:var(--radius-sm);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);color:#fff;font-size:.75rem;font-weight:600;min-width:32px;padding:.25rem .5rem;padding:var(--space-1) var(--space-2);text-align:center}.race-time{color:#2d3338;color:var(--neutral-700);font-family:JetBrains Mono,SF Mono,Monaco,monospace;font-family:var(--font-mono)}.race-time,.race-title{font-size:.875rem;font-weight:500}.race-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#0f1419;color:var(--neutral-900);display:-webkit-box;line-height:1.4;margin-bottom:.5rem;margin-bottom:var(--space-2);overflow:hidden}.race-meta{align-items:center;display:flex;gap:.5rem;gap:var(--space-2);justify-content:space-between}.race-distance{color:#4a5056;color:var(--neutral-600);font-size:.75rem;font-weight:500}.race-prize{color:#1a5538;color:var(--primary-700);font-size:.75rem;font-weight:600}.surface-badge{background:#f3f4f6;background:var(--neutral-100);border-radius:.125rem;border-radius:var(--radius-sm);color:#2d3338;color:var(--neutral-700);font-size:.625rem;font-weight:500;letter-spacing:.025em;padding:.25rem .5rem;padding:var(--space-1) var(--space-2);text-transform:uppercase}.surface-badge.turf{background:#16a34a1a;color:#16a34a;color:var(--track-turf)}.race-details{background:#fff;overflow-y:auto;padding:1.5rem;padding:var(--space-6)}.race-details-header{margin-bottom:2rem;margin-bottom:var(--space-8)}.race-title-main{color:#0f1419;color:var(--neutral-900);font-size:1.875rem;font-weight:700;line-height:1.2;margin-bottom:1rem;margin-bottom:var(--space-4)}.race-info-grid{grid-gap:1rem;grid-gap:var(--space-4);display:grid;gap:1rem;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:1.5rem;margin-bottom:var(--space-6)}.info-card{background:#f9fafb;background:var(--neutral-50);border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);padding:1rem;padding:var(--space-4);text-align:center}.info-label{color:#6b7280;color:var(--neutral-500);font-size:.75rem;font-weight:500;letter-spacing:.025em;margin-bottom:.25rem;margin-bottom:var(--space-1);text-transform:uppercase}.info-value{color:#0f1419;color:var(--neutral-900);font-size:1.125rem;font-weight:600}.horses-section{margin-top:2rem;margin-top:var(--space-8)}.section-title{color:var(--neutral-900);font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;margin-bottom:var(--space-6)}.horses-table{border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);overflow:hidden}.table-header{background:#f3f4f6;background:var(--neutral-100)}.table-header th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;padding:var(--space-3) var(--space-4)}.horse-row,.table-header th{border-bottom:1px solid var(--neutral-200)}.horse-row{transition:.15s cubic-bezier(.4,0,.2,1);transition:var(--transition-fast)}.horse-row:hover{background:#f4faf6;background:var(--primary-50)}.horse-row:last-child{border-bottom:none}.horse-row.favorite{background:#dc262605;border-left:3px solid #dc2626;border-left:3px solid var(--odds-favorite)}.horse-row td{vertical-align:middle}.horse-number{align-items:center;background:#2d3338;background:var(--neutral-700);border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.horse-name{color:var(--neutral-900);font-weight:600;margin-bottom:.25rem;margin-bottom:var(--space-1)}.horse-owner{color:#6b7280;color:var(--neutral-500);font-size:.75rem}.jockey-name{color:#2d3338;color:var(--neutral-700)}.odds-display{background:#f3f4f6;background:var(--neutral-100);border-radius:.375rem;border-radius:var(--radius-md);color:#0f1419;color:var(--neutral-900);font-family:JetBrains Mono,SF Mono,Monaco,monospace;font-family:var(--font-mono);font-size:.875rem;font-weight:600;min-width:48px;padding:.5rem .75rem;padding:var(--space-2) var(--space-3);text-align:center}.odds-display.favorite{background:#dc26261a;color:#dc2626;color:var(--odds-favorite)}.form-string{color:#4a5056;color:var(--neutral-600);font-family:JetBrains Mono,SF Mono,Monaco,monospace;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em}.section-header{border-bottom:2px solid var(--neutral-200);justify-content:space-between;margin-bottom:1.5rem;margin-bottom:var(--space-6);padding-bottom:1rem;padding-bottom:var(--space-4)}.section-header,.section-stats{align-items:center;display:flex}.section-stats{gap:1rem;gap:var(--space-4)}.horse-count{font-weight:600}.horse-count,.total-earnings{border-radius:.375rem;border-radius:var(--radius-md);font-size:.875rem;padding:.5rem .75rem;padding:var(--space-2) var(--space-3)}.total-earnings{background:var(--neutral-100);color:#2d3338;color:var(--neutral-700);font-weight:500}.horses-table-container{border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);overflow-x:auto;scroll-behavior:smooth}.horses-table-container::-webkit-scrollbar{height:8px}.horses-table-container::-webkit-scrollbar-track{background:#f3f4f6;background:var(--neutral-100);border-radius:.375rem;border-radius:var(--radius-md)}.horses-table-container::-webkit-scrollbar-thumb{background:#9ca3af;background:var(--neutral-400);border-radius:.375rem;border-radius:var(--radius-md)}.horses-table-container::-webkit-scrollbar-thumb:hover{background:#6b7280;background:var(--neutral-500)}.horses-table{border-collapse:collapse;min-width:800px;width:100%}.table-header th{background:#f9fafb;background:var(--neutral-50);border-bottom:2px solid var(--neutral-200);color:#2d3338;color:var(--neutral-700);font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:1rem;padding:var(--space-4);text-align:left;text-transform:uppercase;white-space:nowrap}.col-number{width:60px}.col-horse{width:200px}.col-stats{width:120px}.col-earnings{width:140px}.col-odds{width:100px}.col-assessment{min-width:250px}.horse-row td{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);padding:1rem;padding:var(--space-4);vertical-align:top}.horse-info{display:flex;flex-direction:column;gap:.25rem;gap:var(--space-1)}.horse-details{color:#6b7280;color:var(--neutral-500);font-size:.75rem;font-weight:500}.race-stats{display:flex;flex-direction:column;gap:.25rem;gap:var(--space-1)}.wins-races{color:var(--neutral-900);font-size:.875rem;font-weight:600}.win-rate{color:#6b7280;color:var(--neutral-500);font-size:.75rem}.earnings-amount{color:var(--green-700);font-family:JetBrains Mono,SF Mono,Monaco,monospace;font-family:var(--font-mono);font-size:.875rem;font-weight:600}.trainer-assessment{max-width:300px}.empty-state{background:#f9fafb;background:var(--neutral-50);border:2px dashed #d1d5db;border:2px dashed var(--neutral-300);border-radius:.5rem;border-radius:var(--radius-lg);padding:3rem;padding:var(--space-12)}.empty-state-icon{margin-bottom:1rem;margin-bottom:var(--space-4);opacity:.6}.empty-state-title{font-size:1.25rem;margin-bottom:.5rem;margin-bottom:var(--space-2)}@media (max-width:768px){.section-header{gap:.75rem;gap:var(--space-3)}.section-header,.section-stats{align-items:flex-start;flex-direction:column}.section-stats{gap:.5rem;gap:var(--space-2)}.horses-table{font-size:.75rem;min-width:600px}.horse-row td,.table-header th{padding:.5rem;padding:var(--space-2)}.col-assessment{min-width:200px}}.race-description{color:#4a5056;color:var(--neutral-600);font-size:.875rem;font-style:italic;margin-bottom:1.5rem;margin-bottom:var(--space-6);margin-left:auto;margin-right:auto;max-width:600px;text-align:center}.prize-card{background:var(--green-50);border:1px solid var(--green-200);border-radius:.5rem;border-radius:var(--radius-lg);padding:1rem;padding:var(--space-4);text-align:center}.info-card-label{color:#6b7280;color:var(--neutral-500);font-size:.75rem;font-weight:600;letter-spacing:.025em;margin-bottom:.5rem;margin-bottom:var(--space-2);text-transform:uppercase}.prize-main{color:var(--green-700);font-size:1.25rem;font-weight:700;margin-bottom:.25rem;margin-bottom:var(--space-1)}.prize-breakdown,.prize-main{font-family:JetBrains Mono,SF Mono,Monaco,monospace;font-family:var(--font-mono)}.prize-breakdown{color:var(--green-600);font-size:.75rem;opacity:.8}.tab-btn{color:var(--text-secondary);transition:all .2s cubic-bezier(.4,0,.2,1);transition:all var(--transition-base)}.tab-btn.active{color:#2d7a4a;color:var(--primary-500)}.tab-btn.active,.tab-btn:hover{background:#f3f4f6;background:var(--bg-tertiary)}.tab-btn:hover{color:#0f1419;color:var(--text-primary)}.horses-table{background:#fff;background:var(--bg-secondary);border:1px solid #e5e7eb;border:1px solid var(--border-primary)}.table-header th{background:#f3f4f6;background:var(--bg-tertiary);border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border-primary);color:#4a5056;color:var(--text-secondary)}.horse-row{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-primary)}.horse-row:hover{background:#f3f4f6;background:var(--bg-tertiary)}.horse-name{color:#0f1419;color:var(--text-primary)}.horse-details,.win-rate{color:#4a5056;color:var(--text-secondary)}.wins-races{color:#0f1419;color:var(--text-primary)}.earnings-amount{color:#10b981;color:var(--success-500)}.trainer-assessment{color:var(--text-secondary)}.prize-card{background:#f4faf6;background:var(--primary-50);border:1px solid #6bb889;border:1px solid var(--primary-300)}.section-header{border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border-primary)}.section-title{color:#0f1419;color:var(--text-primary)}.horse-count{background:#e8f5ec;background:var(--primary-100);color:#1a5538;color:var(--primary-700)}.total-earnings{background:#f3f4f6;background:var(--bg-tertiary);color:#4a5056;color:var(--text-secondary)}.stats-panel{background:#fff;border-left:1px solid #e5e7eb;border-left:1px solid var(--neutral-200);height:calc(100vh - 81px);overflow-y:auto;padding:1.5rem;padding:var(--space-6)}.stats-section{margin-bottom:2rem;margin-bottom:var(--space-8)}.stats-section:last-child{margin-bottom:0}.stats-title{color:#0f1419;color:var(--neutral-900);font-size:1rem;font-weight:600;margin-bottom:1rem;margin-bottom:var(--space-4)}.jockey-list{flex-direction:column}.jockey-item,.jockey-list{display:flex;gap:.75rem;gap:var(--space-3)}.jockey-item{align-items:center;background:#f9fafb;background:var(--neutral-50);border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.375rem;border-radius:var(--radius-md);padding:.75rem;padding:var(--space-3)}.jockey-rank{align-items:center;background:#2d7a4a;background:var(--primary-500);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:600;height:24px;justify-content:center;width:24px}.jockey-info{flex:1 1;min-width:0}.jockey-name{color:#0f1419;color:var(--neutral-900);font-size:.875rem;font-weight:500;margin-bottom:.25rem;margin-bottom:var(--space-1)}.jockey-stats{color:#4a5056;color:var(--neutral-600);font-size:.75rem}.loading-state{align-items:center;display:flex;flex-direction:column;gap:1rem;gap:var(--space-4);height:50vh;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #e5e7eb;border-top-color:#2d7a4a;border:2px solid var(--neutral-200);border-radius:50%;border-top-color:var(--primary-500);height:32px;width:32px}.loading-text{color:#4a5056;color:var(--neutral-600);font-size:.875rem}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{align-items:center;display:flex;flex-direction:column;gap:1rem;gap:var(--space-4);height:50vh;justify-content:center;padding:2rem;padding:var(--space-8);text-align:center}.empty-state-icon{color:#d1d5db;color:var(--neutral-300);font-size:3rem}.empty-state-title{color:#2d3338;color:var(--neutral-700);font-size:1.125rem;font-weight:600}.empty-state-description{color:#6b7280;color:var(--neutral-500);font-size:.875rem;max-width:320px}@media (max-width:767px){.header{padding:.75rem 1rem;padding:var(--space-3) var(--space-4)}.logo-text{font-size:1.25rem}.header-meta{align-items:flex-end;flex-direction:column;gap:.5rem;gap:var(--space-2)}.race-details{padding:1rem;padding:var(--space-4)}.race-title-main{font-size:1.5rem}.info-card{padding:.75rem;padding:var(--space-3)}.horses-table{font-size:.875rem}.horse-row td,.table-header th{padding:.5rem .75rem;padding:var(--space-2) var(--space-3)}.col-owner,.col-trainer{display:none}}.race-item:focus,a:focus,button:focus{outline:2px solid #2d7a4a;outline:2px solid var(--primary-500);outline-offset:2px}.stats-overview{grid-gap:1rem;grid-gap:var(--space-4);background:linear-gradient(135deg,#f4faf6,#f9fafb);background:linear-gradient(135deg,var(--primary-50) 0,var(--neutral-50) 100%);border:1px solid var(--primary-200);border-radius:.75rem;border-radius:var(--radius-xl);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem;margin-bottom:var(--space-6);padding:1rem;padding:var(--space-4)}.stat-card,.stats-overview{gap:1rem;gap:var(--space-4)}.stat-card{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);display:flex;padding:1.25rem;padding:var(--space-5);transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.stat-card:hover{border-color:#6bb889;border-color:var(--primary-300);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{align-items:center;background:#e8f5ec;background:var(--primary-100);border:2px solid var(--primary-200);border-radius:.75rem;border-radius:var(--radius-xl);display:flex;font-size:2rem;height:60px;justify-content:center;width:60px}.stat-info{flex:1 1}.stat-value{color:#0f1419;color:var(--neutral-900);font-size:1.75rem;font-weight:700;line-height:1;margin-bottom:.25rem;margin-bottom:var(--space-1)}.stat-label{color:#4a5056;color:var(--neutral-600);font-size:.875rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.header{background:linear-gradient(135deg,#fff,#f4faf6);background:linear-gradient(135deg,#fff 0,var(--primary-50) 100%);border-bottom:1px solid var(--primary-200);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}.logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#1a5538,#2d7a4a);background:linear-gradient(135deg,var(--primary-700) 0,var(--primary-500) 100%);-webkit-background-clip:text;background-clip:text;font-weight:800;letter-spacing:-.02em}.docs-btn{background:linear-gradient(135deg,#2d7a4a 0,var(--primary-600) 100%);background:linear-gradient(135deg,var(--primary-500) 0,var(--primary-600) 100%);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);font-weight:600;letter-spacing:.025em}.docs-btn:hover{background:linear-gradient(135deg,var(--primary-600) 0,#1a5538 100%);background:linear-gradient(135deg,var(--primary-600) 0,var(--primary-700) 100%);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.tab-navigation{background:linear-gradient(135deg,#fff,#f9fafb);background:linear-gradient(135deg,#fff 0,var(--neutral-50) 100%);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);padding:0 1.5rem;padding:0 var(--space-6)}.tab-nav-container{margin:0 auto;max-width:1440px}.tab-btn,.tab-nav-container{display:flex;gap:.5rem;gap:var(--space-2)}.tab-btn{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:#4a5056;color:var(--neutral-600);cursor:pointer;font-size:.875rem;font-weight:500;padding:1rem 1.25rem;padding:var(--space-4) var(--space-5);transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.tab-btn:hover{background:#f4faf6;background:var(--primary-50)}.tab-btn.active,.tab-btn:hover{color:#1a5538;color:var(--primary-700)}.tab-btn.active{background:linear-gradient(180deg,#f4faf6,#0000);background:linear-gradient(180deg,var(--primary-50) 0,#0000 100%);border-bottom-color:#2d7a4a;border-bottom-color:var(--primary-500);font-weight:600}.tab-icon{font-size:1rem}.tab-content{background:#f9fafb;background:var(--neutral-50);flex:1 1;overflow-y:auto}.tab-content-container{margin:0 auto;max-width:1440px;min-height:calc(100vh - 160px);padding:1.5rem;padding:var(--space-6)}.races-layout{grid-gap:1.5rem;grid-gap:var(--space-6);display:grid;gap:1.5rem;gap:var(--space-6);grid-template-columns:1fr;height:calc(100vh - 200px)}@media (min-width:768px){.races-layout{grid-template-columns:280px 1fr}}@media (min-width:1024px){.races-layout{grid-template-columns:320px 1fr 280px}}.empty-data-state{align-items:center;display:flex;flex-direction:column;gap:1rem;gap:var(--space-4);height:60vh;justify-content:center;text-align:center}.empty-data-icon{font-size:4rem;margin-bottom:1rem;margin-bottom:var(--space-4)}.empty-data-title{color:#1c2127;color:var(--neutral-800);font-size:1.5rem;font-weight:600;margin-bottom:.5rem;margin-bottom:var(--space-2)}.empty-data-description{color:#4a5056;color:var(--neutral-600);font-size:1rem;line-height:1.5;margin-bottom:1rem;margin-bottom:var(--space-4);max-width:500px}.data-upload-hint{background:#f3f4f6;background:var(--neutral-100);border-left:3px solid #2d7a4a;border-left:3px solid var(--primary-500);border-radius:.375rem;border-radius:var(--radius-md);color:#6b7280;color:var(--neutral-500);font-size:.875rem;padding:.75rem 1rem;padding:var(--space-3) var(--space-4)}.analytics-layout{display:flex;flex-direction:column;gap:1.5rem;gap:var(--space-6)}.analytics-header{margin-bottom:2rem;margin-bottom:var(--space-8);text-align:center}.analytics-title{color:#0f1419;color:var(--neutral-900);font-size:2rem;font-weight:700;margin-bottom:.5rem;margin-bottom:var(--space-2)}.analytics-description{color:#4a5056;color:var(--neutral-600);font-size:1.125rem}.analytics-grid{grid-gap:1.5rem;grid-gap:var(--space-6);display:grid;gap:1.5rem;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.analytics-card{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);overflow:hidden}.analytics-card-header{align-items:center;background:#f9fafb;background:var(--neutral-50);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);display:flex;justify-content:space-between;padding:1.25rem;padding:var(--space-5)}.analytics-card-title{color:#1c2127;color:var(--neutral-800);font-size:1.125rem;font-weight:600}.analytics-card-icon{font-size:1.5rem}.analytics-card-content{padding:1.25rem;padding:var(--space-5)}.metric-placeholder{color:#6b7280;color:var(--neutral-500);font-style:italic;line-height:1.6}.settings-layout{margin:0 auto;max-width:800px}.settings-header{margin-bottom:2rem;margin-bottom:var(--space-8);text-align:center}.settings-title{color:#0f1419;color:var(--neutral-900);font-size:2rem;font-weight:700;margin-bottom:.5rem;margin-bottom:var(--space-2)}.settings-description{color:#4a5056;color:var(--neutral-600);font-size:1.125rem}.settings-sections{display:flex;flex-direction:column;gap:2rem;gap:var(--space-8)}.settings-section{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);overflow:hidden}.settings-section-title{background:#f9fafb;background:var(--neutral-50);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);color:#1c2127;color:var(--neutral-800);font-size:1.25rem;font-weight:600;margin:0;padding:1.25rem;padding:var(--space-5)}.settings-group{display:flex;flex-direction:column;gap:1.25rem;gap:var(--space-5);padding:1.25rem;padding:var(--space-5)}.setting-item{align-items:center;display:flex;gap:1rem;gap:var(--space-4);justify-content:space-between}.setting-info{flex:1 1}.setting-label{color:#1c2127;color:var(--neutral-800);display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem;margin-bottom:var(--space-1)}.setting-description{color:#6b7280;color:var(--neutral-500);font-size:.75rem}.toggle-switch{display:inline-block;height:24px;position:relative;width:48px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#d1d5db;background-color:var(--neutral-300);border-radius:24px;bottom:0;cursor:pointer;left:0;right:0;top:0}.toggle-slider,.toggle-slider:before{position:absolute;transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;width:18px}input:checked+.toggle-slider{background-color:#2d7a4a;background-color:var(--primary-500)}input:checked+.toggle-slider:before{transform:translateX(24px)}.setting-select{background:#fff;border:1px solid #d1d5db;border:1px solid var(--neutral-300);border-radius:.375rem;border-radius:var(--radius-md);color:#2d3338;color:var(--neutral-700);padding:.5rem .75rem;padding:var(--space-2) var(--space-3)}.setting-button,.setting-select{cursor:pointer;font-size:.875rem}.setting-button{background:#2d7a4a;background:var(--primary-500);border:1px solid #2d7a4a;border:1px solid var(--primary-500);border-radius:.375rem;border-radius:var(--radius-md);color:#fff;font-weight:500;padding:.5rem 1rem;padding:var(--space-2) var(--space-4);transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.setting-button:hover{background:#1a5538;background:var(--primary-700);border-color:#1a5538;border-color:var(--primary-700)}.setting-button.danger{background:#ef4444;background:var(--error-500);border-color:#ef4444;border-color:var(--error-500)}.setting-button.danger:hover{background:#dc2626;border-color:#dc2626}.docs-btn{align-items:center;background:#2d7a4a;background:var(--primary-500);border:none;border-radius:.375rem;border-radius:var(--radius-md);color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.25rem;gap:var(--space-1);padding:.5rem .75rem;padding:var(--space-2) var(--space-3);transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.docs-btn:hover{background:#1a5538;background:var(--primary-700)}.docs-page{background:#f9fafb;background:var(--neutral-50);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-ui);min-height:100vh}.docs-header{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--neutral-200);padding:1.5rem;padding:var(--space-6);text-align:center}.docs-back-btn{background:#f3f4f6;background:var(--neutral-100);border:1px solid #d1d5db;border:1px solid var(--neutral-300);border-radius:.375rem;border-radius:var(--radius-md);color:#2d3338;color:var(--neutral-700);cursor:pointer;font-size:.875rem;margin-bottom:1rem;margin-bottom:var(--space-4);padding:.5rem 1rem;padding:var(--space-2) var(--space-4);transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base)}.docs-back-btn:hover{background:#e5e7eb;background:var(--neutral-200)}.docs-main-title{color:#0f1419;color:var(--neutral-900);font-size:2.5rem;font-weight:700;margin-bottom:.5rem;margin-bottom:var(--space-2)}.docs-subtitle{color:#4a5056;color:var(--neutral-600);font-size:1.125rem}.docs-layout{display:grid;grid-template-columns:1fr;margin:0 auto;max-width:1200px;min-height:calc(100vh - 200px)}@media (min-width:768px){.docs-layout{grid-template-columns:250px 1fr}}.docs-sidebar{background:#fff;border-right:1px solid #e5e7eb;border-right:1px solid var(--neutral-200);padding:1.5rem;padding:var(--space-6)}.docs-nav{display:flex;flex-direction:column;gap:.5rem;gap:var(--space-2);list-style:none}.docs-nav-item{align-items:center;background:#0000;border:none;border-radius:.375rem;border-radius:var(--radius-md);color:#4a5056;color:var(--neutral-600);cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;gap:var(--space-3);padding:.75rem 1rem;padding:var(--space-3) var(--space-4);text-align:left;transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base);width:100%}.docs-nav-item:hover{background:#f4faf6;background:var(--primary-50);color:#1a5538;color:var(--primary-700)}.docs-nav-item.active{background:#e8f5ec;background:var(--primary-100);color:#1a5538;color:var(--primary-700);font-weight:500}.docs-nav-icon{font-size:1.125rem}.docs-main{background:#fff;overflow-y:auto;padding:2rem;padding:var(--space-8)}.docs-content h1{border-bottom:2px solid #2d7a4a;border-bottom:2px solid var(--primary-500);color:#0f1419;color:var(--neutral-900);font-size:2rem;font-weight:700;margin-bottom:1rem;margin-bottom:var(--space-4);padding-bottom:.5rem;padding-bottom:var(--space-2)}.docs-content h2{font-size:1.5rem;margin:1.5rem 0 .75rem;margin:var(--space-6) 0 var(--space-3) 0}.docs-content h2,.docs-content h3{color:#1c2127;color:var(--neutral-800);font-weight:600}.docs-content h3{font-size:1.25rem;margin:1rem 0 .5rem;margin:var(--space-4) 0 var(--space-2) 0}.docs-content ol,.docs-content p,.docs-content ul{color:#2d3338;color:var(--neutral-700);line-height:1.6;margin-bottom:1rem;margin-bottom:var(--space-4)}.docs-content ol,.docs-content ul{padding-left:1.25rem;padding-left:var(--space-5)}.docs-content li{margin-bottom:.5rem;margin-bottom:var(--space-2)}.code-block{background:#0f1419;background:var(--neutral-900);border-radius:.375rem;border-radius:var(--radius-md);color:#e5e7eb;font-family:JetBrains Mono,SF Mono,Monaco,monospace;font-family:var(--font-mono);font-size:.875rem;line-height:1.5;overflow-x:auto;padding:1rem;padding:var(--space-4)}.code-block,.field-docs{margin:1rem 0;margin:var(--space-4) 0}.field-docs{display:flex;flex-direction:column;gap:.75rem;gap:var(--space-3)}.field-item{background:#f9fafb;background:var(--neutral-50);border-left:3px solid #2d7a4a;border-left:3px solid var(--primary-500);border-radius:.375rem;border-radius:var(--radius-md);padding:.75rem;padding:var(--space-3)}.api-section{background:#f9fafb;background:var(--neutral-50);padding:1rem;padding:var(--space-4)}.api-section,.troubleshoot-item{border:1px solid #e5e7eb;border:1px solid var(--neutral-200);border-radius:.5rem;border-radius:var(--radius-lg);margin:1.5rem 0;margin:var(--space-6) 0}.troubleshoot-item{background:#fff;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);padding:1.25rem;padding:var(--space-5)}.troubleshoot-item h3{color:#ef4444;color:var(--error-500);margin-top:0}.refresh-btn{background:#2d7a4a;background:var(--primary-500);border:none;border-radius:.375rem;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;margin-bottom:.75rem;margin-bottom:var(--space-3);padding:.75rem 1rem;padding:var(--space-3) var(--space-4);transition:.2s cubic-bezier(.4,0,.2,1);transition:var(--transition-base);width:100%}.refresh-btn:hover{background:#1a5538;background:var(--primary-700)}.refresh-note{color:#6b7280;color:var(--neutral-500);font-size:.75rem;text-align:center}.info-list{display:flex;flex-direction:column;gap:.5rem;gap:var(--space-2)}.info-row{align-items:center;color:#2d3338;color:var(--neutral-700);display:flex;font-size:.875rem;justify-content:space-between}.info-row a{color:#2d7a4a;color:var(--primary-500);text-decoration:none}.info-row a:hover{text-decoration:underline}.trainer-assessment{color:#4a5056;color:var(--neutral-600);font-size:.75rem;font-style:italic;line-height:1.4;max-width:200px}.empty-stats{padding:1rem;padding:var(--space-4);text-align:center}.empty-stats-text{color:#6b7280;color:var(--neutral-500);font-size:.75rem;font-style:italic}.error-badge{background:#f59e0b;background:var(--warning-500);border-radius:.125rem;border-radius:var(--radius-sm);color:#fff;font-size:.625rem;font-weight:600;letter-spacing:.025em;padding:.25rem .5rem;padding:var(--space-1) var(--space-2);text-transform:uppercase}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast:high){:root{--neutral-200:#000;--neutral-300:#333;--border-color:#000}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.e2f10d15.css.map*/