@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=DM+Sans:wght@400;500;600;700&display=swap";.analytics-dashboard{--color-bg: var(--theme-bg-page);--color-surface: var(--theme-bg-card);--color-elevated: var(--theme-bg-elevated);--color-border: var(--theme-border);--color-border-light: var(--theme-border-light);--color-text-primary: var(--theme-text-primary);--color-text-secondary: var(--theme-text-secondary);--color-text-tertiary: var(--theme-text-muted);--color-primary: var(--theme-primary);--color-primary-light: var(--theme-primary-light);--color-primary-hover: var(--theme-primary-hover);--color-success: var(--theme-success);--color-success-light: var(--theme-success-light);--color-warning: var(--theme-warning);--color-warning-light: var(--theme-warning-light);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;max-width:1200px;margin:0 auto;padding:24px}.collection-notice{display:flex;align-items:flex-start;gap:16px;background:linear-gradient(135deg,var(--color-primary-light) 0%,#fef3c7 100%);border:1px solid rgba(194,65,12,.2);border-radius:12px;padding:20px 24px;margin-bottom:32px}.notice-icon{font-size:28px;flex-shrink:0}.notice-content{flex:1}.notice-content strong{display:block;font-size:15px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.notice-content p{font-size:14px;color:var(--color-text-secondary);margin:0;line-height:1.5}.milestone-progress{display:flex;gap:8px;margin-top:12px}.milestone-dot{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#c2410c1a;color:var(--color-text-tertiary);font-size:11px;font-weight:600;cursor:default}.milestone-dot.done{background:var(--color-success-light);color:var(--color-success)}.analytics-dashboard h2{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.insights-section{margin-bottom:32px}.insights-section.historical-insights{background:var(--color-success-light);border:1px solid rgba(101,163,13,.2);border-radius:12px;padding:24px}.insights-section.historical-insights h2{color:var(--color-success)}.insights-section.historical-insights .insight-card{background:var(--color-surface);border-color:#65a30d4d}.insights-section.historical-insights .insight-card:hover{border-color:var(--color-success);box-shadow:0 4px 12px #65a30d26}.insights-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:900px){.insights-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.insights-grid{grid-template-columns:1fr}}.insight-card{display:flex;align-items:flex-start;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;position:relative;transition:all .2s ease}.insight-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #c2410c1a}.insight-icon{font-size:24px;flex-shrink:0}.insight-content{display:flex;flex-direction:column;gap:2px}.insight-title{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px}.insight-value{font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:600;color:var(--color-text-primary)}.insight-description{font-size:12px;color:var(--color-text-secondary)}.insight-trend{position:absolute;top:12px;right:12px;font-size:14px;font-weight:600}.insight-trend.up{color:var(--color-warning)}.insight-trend.down{color:var(--color-success)}.insight-trend.neutral{color:var(--color-text-tertiary)}.chart-section{margin-bottom:32px}.charts-row{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}@media(max-width:900px){.charts-row{grid-template-columns:1fr}}.chart-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:24px}.chart-container h3{font-family:Fraunces,Georgia,serif;font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px;display:flex;align-items:center;gap:10px}.chart-badge{font-family:DM Sans,sans-serif;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;background:var(--color-primary-light);color:var(--color-primary);border-radius:12px}.chart-badge.live{background:var(--color-success-light);color:var(--color-success)}.chart-subtitle{font-size:13px;color:var(--color-text-tertiary);margin:0 0 16px}.tips-section{margin-bottom:32px}.tips-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:900px){.tips-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.tips-grid{grid-template-columns:1fr}}.tip-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px;transition:all .2s ease}.tip-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #c2410c14;transform:translateY(-2px)}.tip-icon{font-size:28px;display:block;margin-bottom:12px}.tip-card h4{font-family:DM Sans,sans-serif;font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.tip-card p{font-size:13px;color:var(--color-text-secondary);margin:0;line-height:1.5}.recharts-cartesian-axis-tick-value{font-family:DM Sans,sans-serif}.recharts-legend-item-text{font-family:DM Sans,sans-serif!important;font-size:12px!important;color:var(--color-text-secondary)!important}.recharts-tooltip-label{font-weight:600!important}.prediction-confidence{display:inline-flex;align-items:center;gap:6px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:500;padding:4px 10px;border-radius:16px}.prediction-confidence.high{background:var(--color-success-light);color:var(--color-success)}.prediction-confidence.medium{background:var(--color-primary-light);color:var(--color-primary)}.prediction-confidence.low{background:var(--color-warning-light);color:var(--color-warning)}.prediction-confidence.fallback{background:var(--color-elevated);color:var(--color-text-tertiary)}.prediction-confidence-icon{font-size:12px}.prediction-source-info{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-secondary);margin-top:8px}.prediction-source-info.convex{color:var(--color-success)}.prediction-source-info.blended{color:var(--color-primary)}.historical-trend-chart{min-height:380px}.chart-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:280px;background:linear-gradient(135deg,var(--color-elevated) 0%,var(--color-bg) 100%);border:2px dashed var(--color-border);border-radius:8px;text-align:center;padding:32px}.placeholder-icon{font-size:48px;margin-bottom:16px;opacity:.6}.chart-placeholder p{font-size:14px;color:var(--color-text-tertiary);margin:0;max-width:280px;line-height:1.5}.hours-summary{display:flex;justify-content:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border-light)}.hours-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:6px 12px;border-radius:16px}.hours-badge.extended{background:var(--theme-warning-light);color:var(--theme-warning)}.chart-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.chart-header-row h3{margin:0}.park-selector{font-family:DM Sans,sans-serif;font-size:12px;padding:6px 28px 6px 10px;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:border-color .2s ease}.park-selector:hover{border-color:var(--color-primary)}.park-selector:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #c2410c1a}.busyness-section{margin-bottom:32px}.busyness-header{display:flex;align-items:center;gap:12px;margin-bottom:4px}.busyness-header h2{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0}.busyness-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary);font-size:14px}.busyness-table-wrapper{margin-top:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.busyness-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.busyness-table thead{position:sticky;top:0;z-index:1}.busyness-table th{font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary);background:var(--color-elevated);padding:12px 16px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border);user-select:none}.busyness-table th.sortable{cursor:pointer;transition:background-color .15s ease,color .15s ease}.busyness-table th.sortable:hover{background:var(--color-border-light);color:var(--color-text-primary)}.busyness-table th:first-child{border-radius:8px 0 0}.busyness-table th:last-child{border-radius:0 8px 0 0}.sort-indicator{margin-left:4px;font-size:10px}.sort-indicator.inactive{opacity:.3}.sort-indicator.active{color:var(--color-primary);opacity:1}.busyness-table .th-park{width:35%;min-width:160px}.busyness-table .th-operator{width:15%;min-width:90px}.busyness-table .th-wait{width:15%;min-width:80px;text-align:right}.busyness-table .th-rides{width:15%;min-width:90px;text-align:center}.busyness-table .th-status{width:20%;min-width:110px}.busyness-table td{padding:14px 16px;border-bottom:1px solid var(--color-border-light);vertical-align:middle;transition:background-color .15s ease}.busyness-table tbody tr:hover td{background-color:var(--color-primary-light)}.busyness-table tbody tr.park-closed td{opacity:.6}.busyness-table tbody tr.park-closed:hover td{background-color:var(--color-elevated)}.park-name{font-weight:500;color:var(--color-text-primary);line-height:1.3}.operator-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:4px 8px;border-radius:6px}.operator-badge.disney{background:var(--theme-info-light);color:var(--theme-info)}.operator-badge.universal{background:var(--theme-success-light);color:var(--theme-success)}.td-wait{text-align:right}.wait-value{font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:600;color:var(--color-text-primary)}.wait-unit{font-family:DM Sans,sans-serif;font-size:11px;font-weight:500;color:var(--color-text-tertiary);margin-left:2px}.wait-closed{font-size:14px;color:var(--color-text-tertiary)}.td-rides{text-align:center}.rides-fraction{display:inline-flex;align-items:baseline;gap:2px}.rides-open{font-family:Fraunces,Georgia,serif;font-size:16px;font-weight:600;color:var(--color-success)}.rides-divider{font-size:12px;color:var(--color-text-tertiary);margin:0 1px}.rides-total{font-size:12px;color:var(--color-text-tertiary)}.rides-closed{font-size:14px;color:var(--color-text-tertiary)}.status-indicator{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;background:color-mix(in srgb,var(--status-color) 12%,transparent)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--status-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-color) 25%,transparent);animation:pulse-status 2s ease-in-out infinite}@keyframes pulse-status{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.status-indicator.closed .status-dot{animation:none}.status-label{font-size:12px;font-weight:600;color:var(--status-color)}.status-indicator.low{--status-color: #65a30d}.status-indicator.moderate{--status-color: #d97706}.status-indicator.busy{--status-color: #ea580c}.status-indicator.very-busy{--status-color: #dc2626}.status-indicator.closed{--status-color: #94a3b8;background:var(--color-elevated)}@media(max-width:768px){.busyness-table th,.busyness-table td{padding:10px 12px}.busyness-table .th-operator,.busyness-table .td-operator{display:none}.park-name{font-size:13px}.wait-value{font-size:16px}.rides-open{font-size:14px}.status-indicator{padding:4px 8px}.status-label{font-size:11px}}@media(max-width:500px){.busyness-table .th-rides,.busyness-table .td-rides{display:none}.status-indicator{padding:4px 6px;gap:4px}}
