.race-selector-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:10px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.selector-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.selector-divider{width:1px;height:24px;background:var(--color-border);flex-shrink:0}.date-pill{padding:4px 12px;border-radius:14px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s}.date-pill:hover{background:#ffffff0f;color:var(--color-text)}.date-pill.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.venue-pill{padding:4px 12px;border-radius:14px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s}.venue-pill:hover{background:#ffffff0f;color:var(--color-text)}.venue-pill.active{background:#e9456026;color:var(--color-primary);border-color:var(--color-primary)}.race-number-pills{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.race-num-pill{width:30px;height:30px;border-radius:50%;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;transition:all .15s;padding:0}.race-num-pill:hover{background:#ffffff0f;color:var(--color-text)}.race-num-pill.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.race-num-pill.has-grade{border-color:#e9456066}.selector-loading{font-size:12px;color:var(--color-text-muted);padding:4px 0}.spa-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-muted);text-align:center}.spa-empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.spa-empty-text{font-size:16px;font-weight:600}.spa-empty-subtext{font-size:13px;margin-top:8px}.spa-race-info{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.spa-race-badge{background:var(--color-primary);color:#fff;padding:4px 10px;border-radius:4px;font-size:13px;font-weight:700;white-space:nowrap}.spa-race-name{font-size:18px;font-weight:700;color:var(--color-text)}.spa-race-conditions{display:flex;gap:6px;flex-wrap:wrap}.spa-race-conditions .condition-tag{font-size:11px;padding:2px 8px;border-radius:10px;background:#ffffff0f;color:var(--color-text-muted)}.spa-jra-link{margin-left:auto}.spa-dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:15px;color:var(--color-text-muted)}.dashboard-race-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px 20px;margin-bottom:16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.dashboard-race-number{background:var(--color-primary);color:#fff;padding:6px 14px;border-radius:6px;font-size:15px;font-weight:700;white-space:nowrap}.dashboard-race-name{font-size:20px;font-weight:700;color:var(--color-text)}.dashboard-race-conditions{display:flex;gap:8px;flex-wrap:wrap}.dashboard-race-conditions .condition-tag{font-size:12px}.dashboard-jra-link{margin-left:auto}.dashboard-body{display:flex;gap:16px;align-items:flex-start}.dashboard-table-area{flex:1;min-width:0;overflow-x:auto}.dashboard-betting-panel{width:340px;flex-shrink:0;position:sticky;top:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px;max-height:calc(100vh - 120px);overflow-y:auto}.betting-panel-title{font-size:16px;font-weight:700;color:var(--color-text);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.panel-selector-row{display:flex;gap:8px;margin-bottom:12px}.panel-selector{flex:1;display:flex;align-items:center;justify-content:space-between;gap:4px;background:#ffffff0d;border:1px solid var(--color-border);padding:8px 12px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;color:var(--color-text);font-family:inherit}.panel-selector:hover{background:#ffffff14}.panel-selector.disabled{opacity:.4;cursor:not-allowed}.panel-selector .arrow{color:var(--color-text-muted);font-size:10px}.panel-amount-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.panel-amount-label{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.panel-amount-input-wrapper{display:flex;align-items:center;flex:1;background:#ffffff0d;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.panel-amount-input-wrapper:focus-within{border-color:var(--color-primary)}.panel-stepper-btn{width:32px;height:36px;border:none;background:#ffffff0f;font-size:16px;font-weight:600;color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.panel-stepper-btn:hover{background:#ffffff1a}.panel-amount-center{flex:1;display:flex;align-items:center;justify-content:center;gap:2px;padding:0 4px}.panel-currency{font-size:13px;font-weight:600;color:var(--color-text-muted)}.panel-amount-input{width:60px;border:none;background:none;padding:8px 2px;font-size:15px;font-weight:600;outline:none;text-align:center;color:var(--color-text)}.panel-amount-presets{display:flex;gap:6px;margin-bottom:12px}.panel-preset-btn{flex:1;padding:6px;border:1px solid var(--color-border);background:#ffffff0a;border-radius:4px;font-size:11px;cursor:pointer;color:var(--color-text-muted);font-family:inherit}.panel-preset-btn:hover{background:#ffffff14;color:var(--color-text)}.panel-selection-display{background:#ffffff0a;border:1px solid var(--color-border);border-radius:6px;padding:10px;margin-bottom:12px;font-size:13px;color:var(--color-text-muted);min-height:36px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-selection-display.has-selection{border-color:var(--color-primary);color:var(--color-text)}.panel-selection-numbers{font-weight:600;color:var(--color-primary);flex:1}.panel-bet-count{font-size:11px;font-weight:600;color:var(--color-primary);background:#e9456026;padding:2px 8px;border-radius:10px;white-space:nowrap}.panel-bet-summary{display:flex;justify-content:space-between;padding:10px;background:#e9456014;border-radius:6px;margin-bottom:12px;font-weight:600;font-size:14px;color:var(--color-primary)}.panel-clear-btn{background:none;border:1px solid rgba(239,68,68,.5);color:#ef4444;padding:4px 8px;border-radius:4px;font-size:11px;cursor:pointer;font-family:inherit}.panel-clear-btn:hover{background:#ef44441a}.panel-add-btn{width:100%;padding:12px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;margin-bottom:8px;font-family:inherit;transition:background .15s}.panel-add-btn:hover{background:var(--color-primary-hover)}.panel-add-btn:disabled{background:#444;color:#888;cursor:not-allowed}.panel-cart-divider{border:none;border-top:1px solid var(--color-border);margin:16px 0}.panel-cart-title{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:8px}.panel-cart-empty{font-size:13px;color:var(--color-text-muted);text-align:center;padding:16px 0}.panel-cart-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}.panel-cart-item-info{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.panel-cart-bet-type{font-size:11px;font-weight:600;background:var(--color-primary);color:#fff;padding:2px 6px;border-radius:3px;white-space:nowrap}.panel-cart-bet-display{font-size:12px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-cart-item-amount{font-weight:600;color:var(--color-text);white-space:nowrap;margin-left:8px}.panel-cart-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:2px 4px;font-size:14px;margin-left:4px}.panel-cart-remove:hover{color:#ef4444}.panel-cart-total{display:flex;justify-content:space-between;align-items:center;padding:12px 0 8px;font-size:15px;font-weight:700;color:var(--color-text)}.panel-confirm-btn{width:100%;padding:12px;background:var(--color-success);color:#0a0a0f;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}.panel-confirm-btn:hover{opacity:.9}.dashboard-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.dashboard-table thead{position:sticky;top:0;z-index:2}.dashboard-table th{background:#12121f;color:var(--color-text-muted);font-weight:600;font-size:11px;padding:8px 6px;text-align:center;white-space:nowrap;border-bottom:2px solid var(--color-border);border-right:1px solid rgba(255,255,255,.05)}.dashboard-table th:last-child{border-right:none}.dashboard-table th.col-group-ai{background:#e945601f;color:var(--color-primary);border-bottom:2px solid rgba(233,69,96,.3)}.dashboard-table th.col-group-ai:first-of-type{border-left:2px solid rgba(233,69,96,.2)}.dashboard-table th.col-group-speed{background:#6366f11f;color:#818cf8;border-bottom:2px solid rgba(99,102,241,.3)}.dashboard-table th.col-group-speed:first-of-type{border-left:2px solid rgba(99,102,241,.2)}.dashboard-table td{padding:8px 6px;text-align:center;border-bottom:1px solid rgba(255,255,255,.05);border-right:1px solid rgba(255,255,255,.03);vertical-align:middle}.dashboard-table td:last-child{border-right:none}.dashboard-table tbody tr{transition:background .15s}.dashboard-table tbody tr:nth-child(2n){background:#ffffff04}.dashboard-table tbody tr:hover{background:#ffffff0d}.dashboard-table tbody tr.row-selected{background:#e945601a}.dashboard-table tbody tr.row-selected:hover{background:#e9456024}.td-checkbox{width:32px}.td-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.td-horse-number{width:36px}.horse-num-circle{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;border:1px solid rgba(255,255,255,.15)}.td-horse-name{text-align:left;padding-left:10px!important;min-width:100px}.horse-name-text{font-weight:600;font-size:13px;color:var(--color-text);white-space:nowrap}.horse-jockey-text{font-size:11px;color:var(--color-text-muted)}.td-weight{white-space:nowrap;min-width:44px;font-size:12px}.weight-value{font-size:13px;color:var(--color-text)}.weight-diff{font-size:11px;margin-left:2px}.weight-diff.plus{color:var(--color-warning)}.weight-diff.minus{color:#60a5fa}.weight-diff.zero{color:var(--color-text-muted)}.td-ai-score,.td-speed-index{min-width:48px;font-weight:600;font-size:13px;position:relative}.score-value{position:relative;z-index:1}.score-rank{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.score-rank.rank-1{background:#e94560;color:#fff}.score-rank.rank-2{background:#f59e0bb3;color:#fff}.score-rank.rank-3{background:#4ade8080;color:#fff}.td-odds{min-width:50px;font-weight:700;font-size:14px;color:var(--color-text)}.td-odds.odds-top1{color:#e94560;font-size:15px}.td-odds.odds-top2{color:#f59e0b}.td-odds.odds-top3{color:#4ade80}.td-popularity{min-width:36px;color:var(--color-text-muted)}.popularity-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:11px;font-size:11px;font-weight:700;padding:0 4px}.popularity-badge.pop-1{background:#e9456033;color:var(--color-primary)}.popularity-badge.pop-2{background:#f59e0b33;color:var(--color-warning)}.popularity-badge.pop-3{background:#4ade8033;color:var(--color-success)}.col-group-first-ai{border-left:2px solid rgba(233,69,96,.2)}.col-group-first-speed{border-left:2px solid rgba(99,102,241,.2)}.no-data{color:var(--color-text-muted);font-size:12px}.dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:16px;color:var(--color-text-muted)}.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;min-height:300px}.dashboard-error-icon{width:56px;height:56px;border-radius:50%;background:#e9456026;color:var(--color-primary);font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.dashboard-error-title{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 8px}.dashboard-error-message{font-size:14px;color:var(--color-text-muted);margin:0 0 24px;line-height:1.6}.dashboard-error-btn{display:inline-flex;align-items:center;gap:6px;padding:12px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}.dashboard-error-btn:hover{background:var(--color-primary-hover)}.dashboard-back-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--color-primary);font-size:14px;padding:0;margin-bottom:16px;cursor:pointer;font-family:inherit}.dashboard-back-btn:hover{opacity:.8}.td-finish-position{min-width:36px;font-weight:700;font-size:14px}.finish-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:12px;font-size:12px;font-weight:700;padding:0 4px;color:var(--color-text-muted)}.finish-badge.finish-1{background:#e9456033;color:var(--color-primary)}.finish-badge.finish-2{background:#f59e0b33;color:var(--color-warning)}.finish-badge.finish-3{background:#4ade8033;color:var(--color-success)}.confirm-modal{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:20px}.confirm-modal-backdrop{position:absolute;inset:0;background:#00000080;animation:fadeIn .2s ease}.confirm-modal-content{position:relative;background:#fff;width:100%;max-width:400px;border-radius:16px;padding:24px;animation:scaleIn .2s ease}.confirm-modal-title{font-size:18px;font-weight:700;margin:0 0 16px;color:#333}.confirm-modal-body{margin-bottom:24px;color:#666;line-height:1.6}.confirm-modal-actions{display:flex;gap:12px}.confirm-modal-btn{flex:1;padding:14px 20px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s ease}.confirm-modal-btn:active{opacity:.7}.confirm-modal-btn.cancel{background:#f5f5f5;color:#666}.confirm-modal-btn.confirm.primary{background:#1a5f2a;color:#fff}.confirm-modal-btn.confirm.danger{background:#d32f2f;color:#fff}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}:root{--color-bg: #0a0a0f;--color-surface: #1a1a2e;--color-surface-hover: #252542;--color-primary: #e94560;--color-primary-hover: #d13550;--color-text: #eee;--color-text-muted: #888;--color-success: #4ade80;--color-warning: #f59e0b;--color-border: #2a2a4a;--color-calm-green: #e94560;--color-calm-green-light: rgba(233, 69, 96, .15);--color-alert-amber: #f59e0b;--color-alert-amber-bg: rgba(245, 158, 11, .1);--color-alert-red: #ef4444;--color-alert-red-bg: rgba(239, 68, 68, .1);--color-alert-red-hover: rgba(239, 68, 68, .2);--color-neutral-50: #1a1a2e;--color-neutral-100: #222240;--color-neutral-200: #2a2a4a;--color-neutral-300: #3a3a5a;--color-neutral-400: #888;--color-neutral-500: #aaa;--color-neutral-600: #ccc;--color-neutral-700: #ddd;--color-neutral-800: #eee;--color-data-highlight: #e94560;--color-ai-primary: #6366f1;--color-ai-background: rgba(99, 102, 241, .1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--app-max-width: 100%;--bottom-nav-height: 0px;--z-index-header: 100;--z-index-cookie-banner: 500;--z-index-toast: 1000}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Meiryo,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.5;font-size:14px}.app-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:var(--app-max-width);margin:0 auto}.alert-banner{background:linear-gradient(90deg,#e94560,#ef4444);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-text);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;z-index:var(--z-index-header)}.app-title{font-size:20px;font-weight:700}.header-actions{display:flex;align-items:center;gap:6px}.header-pill{display:flex;align-items:center;gap:6px;background:#ffffff14;border:1px solid var(--color-border);border-radius:20px;padding:6px 12px;color:var(--color-text);font-size:12.5px;font-weight:500;cursor:pointer;font-family:inherit;white-space:nowrap}.cart-btn{position:relative;padding:6px 10px}.cart-icon{font-size:16px;line-height:1}.cart-badge{position:absolute;top:-3px;right:-3px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 1px 3px #0000004d}.header-pill-user{gap:8px;cursor:default}.header-pill-name{background:none;border:none;color:#fff;font-size:12px;font-weight:600;cursor:pointer;padding:0;font-family:inherit}.header-pill-divider{width:1px;height:14px;background:#ffffff40}.header-pill-logout{background:none;border:none;color:#ffffffbf;font-size:11px;cursor:pointer;padding:0;font-family:inherit}main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 24px}.bottom-nav{display:none}.section-title{font-size:13px;color:var(--color-text-muted);margin-bottom:12px;padding-left:4px}.race-date-selector{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}.date-btn{background:var(--color-surface);border:1px solid var(--color-border);padding:10px 16px;border-radius:8px;font-size:13px;white-space:nowrap;cursor:pointer;color:var(--color-text)}.date-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.venue-tabs{display:flex;gap:8px;margin-bottom:16px}.venue-tab{flex:1;background:var(--color-surface);border:1px solid var(--color-border);padding:12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:var(--color-text-muted)}.venue-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.race-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:transform .2s,background .2s}.race-card:active{transform:scale(.98)}.race-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.race-number{background:var(--color-primary);color:#fff;padding:4px 10px;border-radius:4px;font-size:13px;font-weight:700;flex-shrink:0}.race-time{color:var(--color-text-muted);font-size:13px}.race-header .race-name{font-size:17px;font-weight:700;color:var(--color-text);flex:1}.race-name{font-size:16px;font-weight:700;margin-bottom:8px}.race-info{display:flex;gap:12px;color:var(--color-text-muted);font-size:12px}.race-card-v2{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:transform .2s,background .2s;display:flex;align-items:center;gap:16px}.race-card-v2:active{transform:scale(.98)}.race-card-v2:hover{background:var(--color-surface-hover)}.race-card-left{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:50px}.race-number-badge{background:var(--color-primary);color:#fff;padding:6px 10px;border-radius:6px;font-size:14px;font-weight:700;min-width:40px;text-align:center}.race-start-time{font-size:12px;color:var(--color-text-muted);font-weight:500}.race-card-center{flex:1;min-width:0}.race-name-main{font-size:15px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.race-name-sub{font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.race-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:70px}.track-badge{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.track-badge.turf{background:#e945601a;color:#2e7d32}.track-badge.dirt{background:#f59e0b1a;color:var(--color-data-highlight)}.distance-text{font-size:13px;font-weight:600;color:var(--color-text)}.horse-count-text{font-size:12px;color:var(--color-text-muted)}.race-conditions-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.grade-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:700;line-height:1.2}.grade-badge.g1{background:linear-gradient(135deg,#1a5fb4,#3584e4);color:#fff}.grade-badge.g2{background:linear-gradient(135deg,#c0392b,#e74c3c);color:#fff}.grade-badge.g3{background:linear-gradient(135deg,#26a269,#33d17a);color:#fff}.grade-badge.listed{background:#9b59b6;color:#fff}.grade-badge.open{background:#34495e;color:#fff}.grade-badge.obstacle{background:#795548;color:#fff}.condition-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:3px;font-size:10px;background:var(--color-neutral-200);color:#666}.condition-chip.female{background:#e945601a;color:#c2185b}.condition-chip.handicap{background:#f59e0b1a;color:var(--color-data-highlight)}.back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--color-primary);font-size:14px;padding:0;margin-bottom:16px;cursor:pointer}.race-detail-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;margin-bottom:16px}.race-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.race-detail-header .race-number{display:inline-block}.jra-link-btn{display:inline-flex;align-items:center;gap:4px;background:var(--color-primary);color:#fff;padding:4px 10px;border:none;border-radius:4px;font-size:11px;font-weight:600;text-decoration:none}.jra-link-btn svg{flex-shrink:0}.race-detail-header .race-name{font-size:20px;margin-bottom:12px}.race-conditions{display:flex;flex-wrap:wrap;gap:8px}.condition-tag{background:#ffffff0f;border:1px solid var(--color-border);padding:6px 12px;border-radius:16px;font-size:12px;color:var(--color-text-muted)}.horse-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden;margin-bottom:16px}.horse-list-header{display:grid;grid-template-columns:36px 40px 1fr 60px;padding:12px 16px;background:#ffffff0a;font-size:12px;color:var(--color-text-muted);font-weight:600}.horse-item{display:grid;grid-template-columns:36px 40px 1fr 60px;padding:14px 16px;border-bottom:1px solid var(--color-border);align-items:center;cursor:pointer;transition:background .2s}.horse-item:hover{background:var(--color-surface-hover)}.horse-item.selected{background:#e945601a}.horse-checkbox{display:flex;align-items:center;justify-content:center}.horse-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}.horse-number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;border:1px solid #ccc;box-sizing:border-box}.horse-info{min-width:0}.horse-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.horse-jockey{font-size:12px;color:var(--color-text-muted)}.horse-odds{text-align:right;font-size:14px;font-weight:600;color:var(--color-primary)}.bet-section{background:var(--color-surface);border-radius:12px;padding:16px;margin-bottom:16px}.bet-section h3{font-size:16px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.bet-type-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.bet-type-btn{background:var(--color-surface);border:2px solid transparent;padding:12px 8px;border-radius:8px;font-size:13px;cursor:pointer;text-align:center;transition:all .2s}.bet-type-btn.active{background:#e945601a;border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.bet-input-group{margin-bottom:16px}.bet-input-group label{display:block;font-size:13px;color:#666;margin-bottom:8px}.amount-input-wrapper{position:relative}.amount-input{width:100%;padding:14px 14px 14px 24px;border:1px solid #ddd;border-radius:8px;font-size:18px;font-weight:600}.amount-input:focus{outline:none;border-color:var(--color-primary)}.currency-symbol{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#666;font-size:16px}.amount-presets{display:flex;gap:8px;margin-top:8px}.preset-btn{flex:1;background:var(--color-surface);border:none;padding:10px;border-radius:6px;font-size:13px;cursor:pointer}.preset-btn:active{background:#e0e0e0}.selected-horses-display{display:flex;align-items:center;justify-content:space-between;padding:14px;border:2px solid #ddd;border-radius:8px;background:var(--color-surface);min-height:50px}.selected-horses-display.has-selection{border-color:var(--color-primary);background:#e945601a}.selected-numbers{font-size:20px;font-weight:700;color:var(--color-primary)}.no-selection{color:#999;font-size:14px}.clear-selection-btn{background:var(--color-surface);border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;color:#666}.selection-error{color:#c62828;font-size:12px;margin-top:8px;padding-left:4px}.ai-consult-btn{width:100%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;border:none;padding:18px;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .2s}.ai-consult-btn:active{transform:scale(.98)}.ai-consult-btn:disabled{background:#ccc}.ai-chat-container{background:var(--color-surface);border-radius:12px;overflow:hidden;margin-bottom:16px}.ai-chat-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;padding:16px;display:flex;align-items:center;gap:12px}.ai-avatar{width:40px;height:40px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px}.ai-chat-header-text h3{font-size:16px;font-weight:600}.ai-chat-header-text p{font-size:12px;opacity:.9}.character-selector{display:flex;gap:6px;padding:8px 12px;background:var(--color-surface);overflow-x:auto;-webkit-overflow-scrolling:touch}.character-chip{display:flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid #d0d7d2;border-radius:16px;background:var(--color-surface);font-size:12px;white-space:nowrap;cursor:pointer;transition:all .15s}.character-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.character-chip-icon{font-size:14px}.character-chip-name{font-weight:500}.chat-messages{padding:16px;max-height:400px;overflow-y:auto}.chat-message{margin-bottom:16px}.chat-message.ai{padding-right:40px}.chat-message.user{padding-left:40px}.message-bubble{padding:14px 16px;border-radius:16px;font-size:14px;line-height:1.6}.chat-message.ai .message-bubble{background:var(--color-neutral-200);border-bottom-left-radius:4px}.chat-message.user .message-bubble{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px;margin-left:auto}.markdown-content{word-break:break-word}.markdown-content p{margin:0 0 12px}.markdown-content p:last-child{margin-bottom:0}.markdown-content strong{font-weight:700;color:var(--color-primary)}.markdown-content ul,.markdown-content ol{margin:8px 0;padding-left:20px}.markdown-content li{margin:4px 0}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin:16px 0 8px;font-weight:700;color:var(--color-primary)}.markdown-content h1{font-size:18px}.markdown-content h2{font-size:16px}.markdown-content h3{font-size:15px}.markdown-content code{background:#0000000f;padding:2px 6px;border-radius:4px;font-size:13px}.chat-message.ai .markdown-content table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}.chat-message.ai .markdown-content th,.chat-message.ai .markdown-content td{border:1px solid #d0d0d0;padding:6px 8px;text-align:left}.chat-message.ai .markdown-content th{background:var(--color-neutral-200);font-weight:700}.chat-message.ai .markdown-content tr:nth-child(2n){background:var(--color-surface)}.loading-bubble{min-width:80px}.loading-dots{display:inline-flex;align-items:center}.loading-dots .dot{animation:blink 1.4s infinite both}.loading-dots .dot:nth-child(4){animation-delay:0s}.loading-dots .dot:nth-child(5){animation-delay:.2s}.loading-dots .dot:nth-child(6){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:0}40%{opacity:1}}.quick-replies{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 16px}.quick-reply-btn{background:var(--color-surface);border:2px solid var(--color-primary);color:var(--color-primary);padding:12px 20px;border-radius:24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.quick-reply-btn:active{background:var(--color-primary);color:#fff}.data-feedback{background:var(--color-surface);border-radius:12px;padding:16px;margin:16px}.feedback-title{font-size:13px;color:#666;margin-bottom:12px;display:flex;align-items:center;gap:6px}.feedback-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee;font-size:14px}.feedback-item:last-child{border-bottom:none}.feedback-label{color:#666}.feedback-value{font-weight:600}.feedback-value.positive{color:#2e7d32}.feedback-value.negative{color:#c62828}.feedback-value.warning{color:#f57c00}.action-buttons{display:flex;gap:12px;padding:16px;border-top:1px solid #eee}.btn-primary{flex:1;background:var(--color-primary);color:#fff;border:none;padding:16px;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer}.btn-primary:disabled{background:#ccc}.btn-secondary{flex:1;background:var(--color-surface);color:var(--color-text);border:none;padding:16px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer}.cart-container{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-4)}.cart-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}.cart-header h3{font-size:var(--font-size-lg);display:flex;align-items:center;gap:var(--space-2)}.cart-clear-btn{background:none;border:none;color:var(--color-alert-red);font-size:var(--font-size-sm);cursor:pointer}.cart-empty{padding:40px var(--space-5);text-align:center;color:var(--color-neutral-400)}.cart-empty-icon{font-size:48px;margin-bottom:var(--space-3)}.cart-item{padding:var(--space-4);border-bottom:1px solid var(--color-neutral-100)}.cart-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.cart-item-race{font-size:var(--font-size-xs);color:var(--color-neutral-500)}.cart-item-bet{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:var(--space-2)}.cart-item-bet-type{font-weight:600;font-size:var(--font-size-xs);background:var(--color-calm-green);color:#fff;padding:2px var(--space-2);border-radius:var(--radius-sm);flex-shrink:0}.cart-item-bet-display{font-weight:600;font-size:var(--font-size-sm);color:var(--color-neutral-800);word-break:break-all}.cart-item-bet-count{font-size:11px;font-weight:600;color:var(--color-calm-green);background:var(--color-calm-green-light);padding:2px var(--space-2);border-radius:10px;flex-shrink:0}.cart-item-footer{display:flex;align-items:center;margin-top:var(--space-1)}.cart-item-odds{font-size:var(--font-size-sm);color:var(--color-data-highlight);font-weight:600}.cart-item-delete{background:none;border:none;color:var(--color-neutral-400);font-size:var(--font-size-lg);cursor:pointer;padding:0;line-height:1;transition:color .15s}.cart-item-delete:hover{color:var(--color-alert-red)}.cart-amount-stepper{display:flex;align-items:center;gap:var(--space-1);margin-left:auto}.cart-stepper-btn{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-neutral-300);background:var(--color-surface);font-size:var(--font-size-lg);font-weight:500;color:var(--color-neutral-600);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;padding:0}.cart-stepper-btn:hover:not(:disabled){border-color:var(--color-calm-green);color:var(--color-calm-green);background:var(--color-calm-green-light)}.cart-stepper-btn:active:not(:disabled){transform:scale(.92)}.cart-stepper-btn:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.cart-stepper-btn:disabled{opacity:.3;cursor:not-allowed}.cart-stepper-value{min-width:76px;text-align:center;font-size:var(--font-size-base);font-weight:700;color:var(--color-neutral-800);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background .15s}.cart-stepper-value:hover{background:var(--color-neutral-100)}.cart-stepper-value:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.cart-stepper-input{width:76px;text-align:center;border:1.5px solid var(--color-calm-green);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--font-size-base);font-weight:700;color:var(--color-neutral-800);outline:none}.cart-stepper-input:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.cart-stepper-input::-webkit-outer-spin-button,.cart-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cart-stepper-input[type=number]{-moz-appearance:textfield}.cart-summary{background:var(--color-neutral-50);padding:var(--space-4);border-top:1px solid var(--color-neutral-200)}.cart-summary-row{display:flex;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--font-size-base)}.cart-summary-row.total{font-size:var(--font-size-xl);font-weight:700;padding-top:var(--space-2);border-top:1px solid var(--color-neutral-200)}.add-more-btn{width:100%;background:var(--color-surface);border:2px dashed #ddd;padding:14px;border-radius:10px;font-size:14px;color:#666;cursor:pointer;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:8px}.add-more-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:12px 24px;border-radius:24px;font-size:14px;z-index:1000;animation:fadeIn .3s ease}.toast-error{background:#dc2626}.dashboard-summary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-radius:16px;padding:24px;color:#fff;margin-bottom:16px}.summary-label{font-size:13px;opacity:.9;margin-bottom:4px}.summary-value{font-size:36px;font-weight:700;margin-bottom:16px}.login-prompt{text-align:center;padding:60px 20px}.login-prompt-icon{font-size:60px;margin-bottom:20px}.login-prompt h2{margin-bottom:12px}.login-prompt p{color:#666;margin-bottom:24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}.btn-stop{background:var(--color-calm-green);color:#fff;padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);font-size:var(--font-size-lg);font-weight:600;width:100%;border:none;cursor:pointer;transition:opacity .2s}.btn-stop:hover{opacity:.9}.btn-stop:active{transform:scale(.98)}.btn-stop:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.btn-stop:disabled{background:var(--color-neutral-300);cursor:not-allowed}.btn-purchase-subtle{background:transparent;color:var(--color-neutral-600);padding:var(--space-3);font-size:var(--font-size-sm);text-decoration:none;border:none;cursor:pointer;width:100%;margin-top:var(--space-2)}.btn-purchase-subtle:hover,.btn-purchase-subtle:focus{color:var(--color-neutral-700);text-decoration:underline}.btn-purchase-subtle:focus-visible{outline:2px solid var(--color-neutral-500);outline-offset:2px}.btn-purchase-subtle:disabled{color:var(--color-neutral-300);cursor:not-allowed}.spending-status{background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.spending-status-title{font-size:var(--font-size-sm);color:var(--color-neutral-600);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.spending-status-row{display:flex;justify-content:space-between;font-size:var(--font-size-base);margin-bottom:var(--space-1)}.spending-status-row.highlight{font-weight:600;color:var(--color-calm-green);padding-top:var(--space-2);border-top:1px solid var(--color-neutral-200);margin-top:var(--space-2)}.ai-guide-text{font-size:var(--font-size-xs);color:var(--color-neutral-500);text-align:center;margin-top:var(--space-3);padding:0 var(--space-4)}.btn-add-cart-subtle{background:var(--color-surface);color:var(--color-calm-green);border:2px solid var(--color-calm-green);padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:600;width:100%;cursor:pointer;transition:all .2s}.btn-add-cart-subtle:hover{background:var(--color-calm-green-light)}.btn-add-cart-subtle:disabled{background:var(--color-neutral-100);color:var(--color-neutral-400);border-color:var(--color-neutral-300);cursor:not-allowed}.btn-add-cart-subtle:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.btn-ai-confirm{background:var(--color-calm-green);color:#fff;border:none;padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:600;width:100%;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-2);transition:opacity .2s}.btn-ai-confirm:hover{opacity:.9}.btn-ai-confirm:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.btn-ai-confirm:disabled{background:var(--color-neutral-300);cursor:not-allowed}.action-buttons.vertical{flex-direction:column;gap:var(--space-2)}.btn-ai-confirm.mt-3{margin-top:var(--space-3)}.next-races-panel{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);color:#fff}.next-races-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.next-races-panel-title{font-size:var(--font-size-sm);font-weight:600;opacity:.9;display:flex;align-items:center;gap:var(--space-2)}.next-races-panel-title-icon{font-size:var(--font-size-lg)}.next-races-list{display:flex;flex-direction:column;gap:var(--space-3)}.next-race-card{background:#ffffff26;border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;transition:background .2s,transform .2s}.next-race-card:active{transform:scale(.98)}.next-race-card:hover{background:#fff3}.next-race-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2)}.next-race-venue-info{display:flex;align-items:center;gap:var(--space-2)}.next-race-venue-badge{background:#ffffff40;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.next-race-number{font-size:var(--font-size-sm);font-weight:700}.next-race-countdown{display:flex;flex-direction:column;align-items:flex-end}.next-race-countdown-label{font-size:10px;opacity:.8}.next-race-countdown-time{font-size:var(--font-size-xl);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.next-race-countdown-time.urgent{color:#ffcdd2;animation:pulse-urgent 1s infinite}@keyframes pulse-urgent{0%,to{opacity:1}50%{opacity:.7}}.next-race-name{font-size:var(--font-size-base);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--space-1)}.next-race-details{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-xs);opacity:.9}.next-race-detail-item{display:flex;align-items:center;gap:2px}.next-race-grade-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:700;background:#ffffffe6;color:var(--color-primary)}.next-race-grade-badge.g1{background:#1a5fb4;color:#fff}.next-race-grade-badge.g2{background:#c0392b;color:#fff}.next-race-grade-badge.g3{background:#26a269;color:#fff}.next-race-time-info{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid rgba(255,255,255,.2);font-size:var(--font-size-xs)}.next-race-time-item{display:flex;align-items:center;gap:4px}.next-race-time-label{opacity:.8}.next-race-time-value{font-weight:600}.chat-input-container{display:flex;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--color-neutral-200)}.chat-input{flex:1;padding:var(--space-3) var(--space-4);border:2px solid var(--color-neutral-200);border-radius:24px;font-size:var(--font-size-base);outline:none;transition:border-color .2s}.chat-input:focus{border-color:var(--color-calm-green)}.chat-input:disabled{background:var(--color-neutral-100);color:var(--color-neutral-400)}.chat-send-btn{padding:var(--space-3) var(--space-5);background:var(--color-calm-green);color:#fff;border:none;border-radius:24px;font-weight:600;font-size:var(--font-size-base);cursor:pointer;transition:opacity .2s}.chat-send-btn:hover{opacity:.9}.chat-send-btn:disabled{background:var(--color-neutral-300);cursor:not-allowed}.suggested-questions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);padding-right:40px}.suggested-question-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--color-calm-green);border-radius:18px;background:var(--color-surface);color:var(--color-calm-green);font-size:var(--font-size-sm);cursor:pointer;transition:background .2s,color .2s;text-align:left;line-height:1.4}.suggested-question-btn:hover{background:var(--color-calm-green);color:#fff}.suggested-question-btn:focus-visible{outline:2px solid var(--color-calm-green);outline-offset:2px}.bet-action-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);padding-right:40px}.bet-action-btn{padding:var(--space-2) var(--space-3);border:1px solid #3b82f6;border-radius:18px;background:#eff6ff;color:#1d4ed8;font-size:var(--font-sm);cursor:pointer;transition:background .2s,color .2s;text-align:left;line-height:1.4}.bet-action-btn:hover{background:#3b82f6;color:#fff}.bet-action-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.bet-list{padding:16px;background:var(--color-neutral-50)}.bet-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.bet-list-title{font-size:13px;color:var(--color-neutral-500)}.bet-list-race{font-size:14px;font-weight:700;color:var(--color-calm-green)}.bet-table{background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);overflow:hidden}.bet-row{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--color-neutral-200)}.bet-row:last-child{border-bottom:none}.bet-card-type{background:var(--color-calm-green);color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;min-width:56px;text-align:center}.bet-numbers-wrap{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.bet-numbers{font-weight:700;font-size:16px}.bet-price-c{display:flex;flex-direction:column;align-items:flex-end;min-width:70px}.bet-amount{font-size:var(--font-size-lg);font-weight:600;color:var(--color-calm-green)}.bet-actions{display:flex;gap:var(--space-2)}.btn-edit{padding:6px 10px;background:var(--color-neutral-100);border:none;border-radius:6px;font-size:11px;color:var(--color-neutral-600);cursor:pointer}.btn-edit:hover{background:var(--color-neutral-200)}.btn-delete{padding:6px 10px;background:var(--color-alert-red-bg);border:none;border-radius:6px;font-size:11px;color:var(--color-alert-red);cursor:pointer}.btn-delete:hover{background:var(--color-alert-red-hover)}.bet-style{background:#ff9800;color:#fff;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap}.bet-detail{font-size:11px;color:var(--color-neutral-500)}.amount-preview{text-align:center;padding:8px;background:var(--color-calm-green-light);border-radius:6px;font-size:14px;color:var(--color-calm-green);margin-bottom:12px}@media(min-width:641px){body{background-color:var(--color-bg)}main{background-color:var(--color-bg)}.app-header{box-shadow:0 2px 8px #0000004d}}.cookie-consent-banner{position:fixed;bottom:calc(var(--bottom-nav-height) + 30px);left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:calc(var(--app-max-width) - 32px);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 4px 20px #00000026;z-index:var(--z-index-cookie-banner);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.cookie-consent-content{padding:var(--space-4)}.cookie-consent-text{font-size:var(--font-size-sm);color:var(--color-neutral-700);margin-bottom:var(--space-3);line-height:1.6}.cookie-consent-link{color:var(--color-calm-green);text-decoration:underline}.cookie-consent-buttons{display:flex;flex-direction:column;gap:var(--space-2)}.cookie-btn{padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;border:none;width:100%;text-align:center}.cookie-btn-accept{background:var(--color-calm-green);color:#fff}.cookie-btn-accept:hover{opacity:.9}.cookie-btn-reject{background:var(--color-neutral-100);color:var(--color-neutral-700)}.cookie-btn-reject:hover{background:var(--color-neutral-200)}.cookie-btn-details{background:none;color:var(--color-neutral-500);text-decoration:underline;font-weight:400}.cookie-btn-save{background:var(--color-calm-green);color:#fff;margin-top:var(--space-2)}.cookie-btn-save:hover{opacity:.9}.cookie-details-panel{background:var(--color-neutral-50);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3)}.cookie-toggle-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--color-neutral-200)}.cookie-toggle-row:last-of-type{border-bottom:none}.cookie-toggle-label{font-size:var(--font-size-sm);color:var(--color-neutral-700)}.cookie-toggle{display:block;position:relative;width:44px;height:24px;flex-shrink:0;cursor:pointer}.cookie-toggle input{opacity:0;width:0;height:0;position:absolute}.cookie-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-neutral-300);border-radius:12px;transition:background-color .3s}.cookie-toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background-color:var(--color-surface);border-radius:50%;transition:transform .3s}.cookie-toggle input:focus-visible+.cookie-toggle-slider{outline:2px solid var(--color-ai-primary);outline-offset:2px}.cookie-toggle input:checked+.cookie-toggle-slider{background-color:var(--color-calm-green)}.cookie-toggle input:checked+.cookie-toggle-slider:before{transform:translate(20px)}.cookie-toggle.disabled{opacity:.6}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;background-color:var(--color-calm-green)}.cookie-toggle.disabled .cookie-toggle-slider:before{transform:translate(20px)}.race-summary-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-3)}.race-summary-header h3{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);margin:0 0 var(--space-2) 0}.race-summary-metrics{display:flex;gap:var(--space-4);margin-bottom:var(--space-2)}.metric{display:flex;flex-direction:column;gap:2px}.metric-label{font-size:11px;color:var(--text-tertiary)}.metric-value{font-size:var(--font-size-sm);font-weight:600}.concentration-high{color:#dc2626}.concentration-medium{color:#d97706}.concentration-low{color:#2563eb}.race-summary-favorites{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-color)}.favorites-label{font-size:11px;color:var(--text-tertiary);display:block;margin-bottom:4px}.favorites-list{display:flex;flex-wrap:wrap;gap:4px}.favorite-chip{font-size:12px;padding:2px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;white-space:nowrap}.bet-list-section{margin-bottom:var(--space-3)}.bet-list-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.bet-list-toggle:hover{background:var(--bg-hover)}.toggle-amount{color:var(--color-primary);font-weight:600}.toggle-icon{transition:transform .2s ease;font-size:12px;color:var(--text-tertiary)}.toggle-icon.expanded{transform:rotate(180deg)}.bet-list-content{margin-top:var(--space-2);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.range-slider-thumb{-webkit-appearance:none;appearance:none;background:transparent;pointer-events:none;outline:none}.range-slider-thumb::-webkit-slider-runnable-track{height:4px;background:transparent}.range-slider-thumb::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:all;width:22px;height:22px;border-radius:50%;background:#1a73e8;border:2px solid white;box-shadow:0 1px 4px #00000040;cursor:pointer;margin-top:-9px}.range-slider-thumb::-moz-range-track{height:4px;background:transparent;border:none}.range-slider-thumb::-moz-range-thumb{pointer-events:all;width:18px;height:18px;border-radius:50%;background:#1a73e8;border:2px solid white;box-shadow:0 1px 4px #00000040;cursor:pointer}
