@import url(https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap);*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f0f0;font-family:Space Grotesk,Segoe UI,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.dashboard{margin:0 auto;max-width:1600px;padding:20px}.dashboard-title{margin-bottom:25px;text-align:center}.dashboard-title h2{color:#2c3e50;font-size:1.8rem;font-weight:600;margin:0}.race-type-indicator{background:linear-gradient(135deg,#4caf50,#45a049);border-radius:20px;box-shadow:0 2px 4px #0003;color:#fff;display:inline-block;font-size:.9rem;font-weight:600;margin-top:10px;padding:6px 18px}.dashboard-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.date-filter,.search-controls,.tabs{display:flex;gap:10px}.search-controls{align-items:center;flex-wrap:wrap}.date-picker-wrapper{align-items:center;background:#ffffffe6;border-radius:8px;box-shadow:0 2px 6px #00000014;display:flex;gap:8px;padding:6px 10px}.date-picker-input{background:#0000;border:none;color:#333;font-size:1rem;min-width:150px;outline:none;padding:6px 8px}.date-clear{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:6px 10px;transition:background .2s ease}.date-clear:hover{background:#5a6268}.search-bar{align-items:center;background:#ffffffe6;border-radius:8px;box-shadow:0 2px 6px #00000014;display:flex;gap:8px;padding:6px 10px}.search-input{background:#0000;border:none;color:#333;font-size:1rem;min-width:220px;outline:none;padding:6px 8px}.search-input::placeholder{color:#888}.search-clear{background:#d9534f;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:6px 10px;transition:background .2s ease}.search-clear:hover{background:#c9302c}.date-filter button,.tabs button{background:#ffffffe6;border:none;border-radius:8px;color:#333;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.date-filter button:hover,.tabs button:hover{background:#fff;box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.date-filter button.active,.tabs button.active{background:#4caf50;color:#fff}.loading,.no-data{background:#fffffff2;border-radius:12px;color:#666;font-size:1.2rem;margin:20px;padding:80px 20px;text-align:center}.no-data .info-note{background:#4caf501a;border-radius:8px;color:#4caf50;display:inline-block;font-size:.95rem;font-weight:500;margin:15px 0;padding:10px}.no-data code{background:#f5f5f5;border-radius:6px;display:block;font-size:1rem;margin-top:20px;padding:15px}.meetings-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.meeting-card{background:#fffffff2;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:20px;transition:transform .3s ease}.meeting-card:hover{box-shadow:0 8px 16px #0003;transform:translateY(-5px)}.meeting-header{border-bottom:2px solid #e0e0e0;margin-bottom:15px;padding-bottom:12px}.meeting-header h3{color:#333;font-size:1.4rem;font-weight:700;margin-bottom:8px}.meeting-info{align-items:center;display:flex;flex-wrap:wrap;font-size:.9rem;gap:8px;justify-content:space-between}.venue-code{color:#888;font-size:.85rem}.race-distance{font-size:.75rem;margin-top:2px}.track-condition{background:#2196f3;padding:4px 12px}.meeting-date{color:#666;font-weight:500}.races-list{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.race-link{align-items:center;border:2px solid #dee2e6;border-radius:8px;display:flex;flex-direction:column;justify-content:center;min-height:80px;padding:12px 8px}.race-link:hover{box-shadow:0 4px 8px #00000026;transform:scale(1.05)}.race-number{font-size:1rem;font-weight:700;margin-bottom:5px}.race-class{font-size:.85rem;line-height:1.3;text-align:center}.race-maiden{background:#90caf9;border-color:#42a5f5;color:#0d47a1}.race-maiden:hover{background:#64b5f6}.race-class1{background:#a5d6a7;border-color:#66bb6a;color:#1b5e20}.race-class2{background:#fff59d;border-color:#ffee58;color:#f57f17}.race-class3{background:#ffcc80;border-color:#ffa726;color:#e65100}.race-class4{background:#ffab91;border-color:#ff7043;color:#bf360c}.race-class5{background:#ce93d8;border-color:#ab47bc;color:#4a148c}.race-handicap{background:#80deea;border-color:#26c6da;color:#006064}@media (max-width:768px){.dashboard-header{align-items:stretch;flex-direction:column}.date-filter,.tabs{flex-wrap:wrap}.date-picker-input,.date-picker-wrapper,.search-bar,.search-controls,.search-input{width:100%}.meetings-grid{grid-template-columns:1fr}.races-list{grid-template-columns:repeat(2,1fr)}}.racing-grid{background:#fffffff2;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow-x:hidden;width:100%}.racing-table{border-collapse:collapse;table-layout:fixed;width:100%}.racing-table td,.racing-table th{border:1px solid #ddd;padding:8px;text-align:center;vertical-align:middle}.racing-table th{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-size:1rem;font-weight:700;padding:12px 8px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.track-header{background:linear-gradient(135deg,#2196f3,#1976d2)!important;text-align:left!important;width:130px}.race-header{min-width:0;width:auto}.meeting-row:nth-child(2n){background:#f8f9facc}.meeting-row:hover{background:#2196f31a}.track-name{font-weight:600;min-width:0;padding:12px!important;text-align:left!important;width:130px}.track-info{display:flex;flex-direction:column;gap:4px}.meeting-name{color:#333;font-size:.95rem;font-weight:700}.venue-code{color:#666;font-size:.75rem;font-weight:500}.track-condition{align-self:flex-start;background:#4caf50;border-radius:4px;color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px}.race-cell{min-width:0;padding:4px!important;width:auto}.race-link{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#333;display:block;height:100%;min-height:52px;padding:6px 4px;text-decoration:none;transition:all .2s ease}.race-link:hover{box-shadow:0 2px 4px #00000026;transform:scale(1.02)}.race-class-text{font-size:.76rem;font-weight:600;line-height:1.2;margin-bottom:4px;text-align:center;white-space:normal;word-break:break-word}.race-distance{color:#666;font-size:.66rem;font-weight:500}.empty-race{background:#f5f5f5;height:60px}@media (max-width:1400px){.track-header,.track-name{width:120px}.race-class-text{font-size:.72rem}}@media (max-width:768px){.racing-table{font-size:.86rem}.track-header,.track-name{width:100px}.race-class-text{font-size:.66rem}.race-distance{font-size:.62rem}}.pagination{align-items:center;background:#fffffff2;border-radius:0 0 12px 12px;border-top:1px solid #ddd;display:flex;justify-content:space-between;margin-top:0;padding:20px}.pagination-info{color:#666;font-size:.9rem;font-weight:500}.pagination-controls{align-items:center;display:flex;gap:8px}.pagination-btn{background:#fff;border:1px solid #ddd;border-radius:6px;color:#333;cursor:pointer;font-weight:500;min-width:40px;padding:8px 12px;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#f5f5f5;border-color:#4caf50;color:#4caf50}.pagination-btn.active{background:#4caf50;border-color:#4caf50;color:#fff}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.pagination{flex-direction:column;gap:15px}.pagination-controls{flex-wrap:wrap;justify-content:center}}.race-detail{margin:0 auto;max-width:1800px;padding:20px}.race-detail-header{background:#fffffff2;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-bottom:20px;padding:20px}.back-button{background:#667eea;border-radius:6px;display:inline-block;font-weight:600;margin-bottom:15px;text-decoration:none;transition:background .3s ease}.back-button:hover{background:#5568d3}.race-detail-header h1{color:#333;font-size:2rem;margin:10px 0}.next-race{color:#666;font-size:1rem;margin-top:10px}.race-info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr 1fr;margin-bottom:30px}.bets-section,.info-section,.tip-section{background:#fffffff2;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:20px}.bets-section h3,.info-section h3,.tip-section h3{border-bottom:2px solid #667eea;color:#333;font-size:1.3rem;margin-bottom:15px;padding-bottom:8px}.info-row{border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:8px 0}.info-row:last-child{border-bottom:none}.info-row .label{color:#666;font-weight:600}.info-row .value{color:#333;font-weight:500}.bets-table{border-collapse:collapse;width:100%}.bets-table th{background:#f5f5f5;border-bottom:2px solid #ddd;color:#333;font-weight:600;padding:10px;text-align:left}.bets-table td{border-bottom:1px solid #eee;padding:10px}.tip-section{display:flex;flex-direction:column}.tip-value{align-items:center;color:#667eea;display:flex;flex:1 1;font-size:1.2rem;font-weight:600;justify-content:center}.runners-section{background:#fffffff2;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:20px}.runners-section h2{border-bottom:3px solid #667eea;color:#333;font-size:1.8rem;margin-bottom:20px;padding-bottom:10px}.no-runners-message{background:#f5f7ff;border:1px solid #dfe5ff;border-radius:8px;color:#3e4a7a;font-weight:500;margin:6px 0 0;padding:14px 16px}.table-scroll{overflow-x:auto}.runners-table{border-collapse:collapse;min-width:1200px;width:100%}.runners-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.runners-table th{font-size:.95rem;font-weight:700;padding:15px 10px;text-align:left;white-space:nowrap}.runners-table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s ease}.runners-table tbody tr:hover{background-color:#f8f9fa}.runners-table tbody tr.scratched{background-color:#ffebee;opacity:.7}.runners-table tbody tr.scratched:hover{background-color:#ffcdd2}.runners-table td{font-size:.95rem;padding:12px 10px}.horse-name{color:#1976d2;min-width:150px}.horse-link{color:#1976d2;text-decoration:none;transition:color .2s ease}.horse-link:hover{color:#0d47a1;text-decoration:underline}.horse-link strong{cursor:pointer}.number{background:#e3f2fd;color:#0d47a1;font-weight:700;text-align:center}.odds{color:#2e7d32;font-family:Courier New,monospace;font-weight:600;text-align:right}.status-scratched{background:#d32f2f}.status-active,.status-scratched{border-radius:4px;color:#fff;display:inline-block;font-size:.85rem;font-weight:700;padding:5px 12px}.status-active{background:#4caf50}@media (max-width:1200px){.race-info-grid{grid-template-columns:1fr}}@media (max-width:768px){.race-detail{padding:10px}.race-detail-header h1{font-size:1.5rem}.runners-section h2{font-size:1.4rem}.runners-table{font-size:.85rem}.runners-table td,.runners-table th{padding:8px 6px}}.horse-detail{background:#f5f5f5;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.back-button{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-bottom:20px;padding:10px 20px;transition:background .3s}.back-button:hover{background:#45a049}.horse-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:15px;margin-bottom:25px;padding:20px}.horse-name{color:#333;font-size:32px;font-weight:700;margin:0}.tab-badge{background:#063;border-radius:4px;color:#fff;font-size:14px;font-weight:700;padding:6px 12px}.horse-summary{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:25px}.summary-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.summary-item{display:flex;flex-direction:column;gap:5px}.summary-item label{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.summary-item .value{color:#333;font-size:16px;font-weight:600}.form-string{color:#063;font-family:Courier New,monospace;font-weight:700}.race-history{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:25px}.race-history h2{border-bottom:2px solid #4caf50;color:#333;font-size:24px;margin-bottom:20px;padding-bottom:10px}.no-history{color:#666;font-size:16px;padding:40px;text-align:center}.history-table-wrapper{overflow-x:auto}.history-table{border-collapse:collapse;font-size:14px;width:100%}.history-table thead{background:#f0f0f0}.history-table th{border-bottom:2px solid #ddd;color:#333;font-weight:600;padding:12px 8px;text-align:left;white-space:nowrap}.history-table tbody tr{border-bottom:1px solid #eee;transition:background-color .2s}.history-table tbody tr:hover{background-color:#f9f9f9}.history-table tbody tr.winner{background-color:#fff9e6}.history-table tbody tr.winner:hover{background-color:#fff5cc}.history-table td{color:#333;padding:12px 8px}.history-table td.position{font-weight:700}.position-badge{border-radius:4px;display:inline-block;font-size:13px;font-weight:700;height:24px;line-height:24px;min-width:24px;text-align:center}.position-badge.position-1{background:#4caf50;color:#fff}.position-badge.position-2{background:#2196f3;color:#fff}.position-badge.position-3{background:#ff9800;color:#fff}.position-badge.position-4,.position-badge.position-5,.position-badge.position-6,.position-badge.position-7,.position-badge.position-8,.position-badge.position-9{background:#e0e0e0;color:#666}.history-table td.venue{color:#063;font-weight:500}.history-table td.race-class{color:#666;font-size:12px}.tab-note{background:#e8f5e9;border-left:4px solid #4caf50;border-radius:6px;margin-top:20px;padding:15px}.tab-note p{color:#2e7d32;font-size:14px;margin:0}.error-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:100px auto;max-width:600px;padding:40px;text-align:center}.error-container h2{color:#d32f2f;margin-bottom:15px}.error-container p{color:#666;font-size:16px;margin-bottom:25px}.loading{align-items:center;color:#666;display:flex;font-size:18px;justify-content:center;min-height:100vh}@media (max-width:768px){.horse-detail{padding:10px}.horse-header{align-items:flex-start;flex-direction:column;padding:15px}.horse-name{font-size:24px}.summary-grid{grid-template-columns:1fr}.history-table{font-size:12px}.history-table td,.history-table th{padding:8px 4px}}.login-shell{display:grid;min-height:calc(100vh - 140px);overflow:hidden;padding:40px 16px 80px;place-items:center;position:relative}.login-card{background:#ffffffeb;border:1px solid #4caf5040;border-radius:18px;box-shadow:0 20px 50px #1418212e;padding:36px 32px 32px;position:relative;width:min(420px,100%);z-index:2}.login-header h2{color:#1b1f2a;font-family:Fraunces,serif;font-size:2rem;margin:10px 0 6px}.login-header p{color:#54606f;margin-bottom:24px}.login-badge{align-items:center;background:#4caf501f;border-radius:999px;color:#2e7d32;display:inline-flex;font-size:.85rem;font-weight:600;gap:8px;letter-spacing:.08em;padding:6px 14px;text-transform:uppercase}.login-form{grid-gap:16px;display:grid;gap:16px}.login-field{grid-gap:8px;color:#1f2a37;display:grid;font-weight:600;gap:8px}.login-field input{background:#f8fafc;border:1px solid #1f293726;border-radius:12px;font-size:1rem;padding:12px 14px;transition:border .2s ease,box-shadow .2s ease}.login-field input:focus{border-color:#4caf50a6;box-shadow:0 0 0 3px #4caf5033;outline:none}.login-error{background:#d9534f1f;border-radius:10px;color:#b42318;font-size:.95rem;font-weight:600;padding:10px 12px}.login-submit{background:linear-gradient(120deg,#1b5e20,#4caf50);border:none;border-radius:12px;box-shadow:0 10px 20px #1b5e2040;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:12px 18px;transition:transform .2s ease,box-shadow .2s ease}.login-submit:hover{box-shadow:0 14px 24px #1b5e204d;transform:translateY(-1px)}.login-glow{background:radial-gradient(circle,#4caf5033,#4caf5000);filter:blur(10px);height:420px;position:absolute;right:12%;top:15%;width:420px;z-index:1}@media (max-width:768px){.login-shell{min-height:calc(100vh - 120px)}.login-card{padding:30px 24px 28px}}.App{background:linear-gradient(135deg,#f1f1f3,#f6f7f7);min-height:100vh}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d;border-bottom:3px solid #fff3;box-shadow:0 4px 6px #0000001a;padding:20px;position:relative;text-align:center}.header-content h1{color:#fff;font-size:2.5rem;font-weight:800;letter-spacing:2px;margin:0;text-shadow:2px 2px 4px #0000004d}.tagline{color:#a0f0a0;font-size:1.2rem;font-weight:600;margin-top:5px;text-shadow:1px 1px 2px #0000004d}.racing-type-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffffff4d;border-radius:20px;display:inline-block;font-size:.9rem;margin-top:10px;padding:6px 16px}.logout-button,.racing-type-badge{background:#fff3;color:#fff;font-weight:600}.logout-button{border:1px solid #ffffff59;border-radius:999px;cursor:pointer;padding:8px 16px;position:absolute;right:20px;top:20px;transition:background .2s ease,transform .2s ease}.logout-button:hover{background:#ffffff59;transform:translateY(-1px)}@media (max-width:768px){.header-content h1{font-size:1.8rem}.tagline{font-size:1rem}.logout-button{margin-top:12px;position:static}}
/*# sourceMappingURL=main.8f2191ed.css.map*/