@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}button:focus-visible{outline:2px solid #0a3161;outline-offset:2px}:root{--primary: #0a3161;--primary-light: #0d3d73;--primary-dark: #072548;--primary-50: #e8eef5;--primary-100: #c5d4e8;--primary-200: #9eb8d9;--accent-red: #b31942;--accent-red-light: #c91f4d;--accent-red-dark: #8f1435;--white: #ffffff;--green-50: #e8eef5;--green-100: #c5d4e8;--green-200: #9eb8d9;--green-300: #6b96c4;--green-400: #3d73a8;--green-500: #0a3161;--green-600: #082a52;--green-700: #072548;--green-800: #051c36;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--red-500: #b31942;--red-600: #8f1435;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1)}.dashboard-wrap{min-height:100vh;padding:14px;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(165deg,#e8eef5,#d6e0ed 35%,#f0f4f8);color:var(--gray-800)}.container{max-width:1920px;margin:0 auto}.dashboard-header{background:var(--white);border-radius:var(--radius-lg);padding:16px 16px 18px;margin-bottom:18px;box-shadow:0 4px 20px #0a31611f;border-left:5px solid var(--primary);display:flex;flex-direction:column;gap:14px}.header-left h1{font-size:clamp(1.35rem,3.5vw,1.9rem);font-weight:800;color:var(--primary);letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}.header-logo{height:2.5rem;width:auto;display:block;object-fit:contain}.header-icon{width:1.6rem;height:1.6rem;color:var(--primary)}.company-tagline{font-size:clamp(.8rem,1.5vw,.95rem);color:var(--gray-500);font-weight:500;margin-top:2px}.header-right{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.header-mobile{display:flex;flex-direction:column;gap:12px}.header-mobile-row{display:flex;flex-direction:column;gap:8px}.header-mobile-row1{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.header-mobile-logo h1{margin:0}.header-mobile-actions{display:flex;align-items:center;gap:8px}.header-mobile-active-range{padding-inline:14px;border-radius:9999px}.header-mobile-download-btn{width:36px;height:36px;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;padding:0}.header-mobile-download-btn .btn-icon+span{display:none}.header-mobile-row2 .header-date-filter{width:100%;justify-content:space-between}.header-mobile-row3{overflow-x:auto}.header-mobile-presets{display:flex;gap:8px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.header-mobile-presets::-webkit-scrollbar{display:none}.header-mobile-preset{padding-inline:14px;border-radius:9999px;white-space:nowrap}.header-desktop{display:none;width:100%;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.header-date-filter{display:flex;align-items:center;gap:8px}.header-date-label{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:600;color:var(--gray-700);white-space:nowrap}.header-date-icon{color:var(--primary);flex-shrink:0}.select--header-date{min-width:150px;max-width:180px}.date-range-inputs{display:flex;flex-direction:row;align-items:center;gap:8px}.date-input-group{display:flex;flex-direction:row;align-items:center;gap:6px}.date-input-label{font-size:.875rem;font-weight:600;color:var(--gray-700);white-space:nowrap}.filter-group{display:flex;gap:8px;align-items:center}.filter-btn,.report-btn{padding:10px 18px;border-radius:var(--radius-md);border:2px solid var(--primary);background:var(--white);color:var(--primary-dark);font-size:clamp(.8rem,1.5vw,.9rem);font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s ease,background .2s,color .2s,box-shadow .2s}.btn-icon{width:1.1rem;height:1.1rem;margin-right:.35rem}.filter-btn:hover,.report-btn:hover{background:var(--primary-50);border-color:var(--primary);color:var(--primary)}.report-btn.active{background:var(--primary);color:var(--white);border-color:var(--primary);box-shadow:0 2px 8px #0a316133}.report-btn--download,.report-btn--city-report{background:var(--accent-red, #dc2626)!important;color:var(--white, #ffffff)!important;border:2px solid var(--accent-red, #dc2626)!important;box-shadow:0 2px 8px #dc26264d!important}.report-btn--download:hover,.report-btn--city-report:hover{background:var(--accent-red-dark, #b91c1c)!important;border-color:var(--accent-red-dark, #b91c1c)!important;color:var(--white, #ffffff)!important;box-shadow:0 4px 14px #dc262673!important}.filter-btn.active{background:var(--primary);color:var(--white)}.report-buttons{display:flex;gap:10px;flex-wrap:wrap}.report-buttons--center{justify-content:center;margin-top:24px}.tabs{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:clamp(20px,3vw,30px);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(to right,black calc(100% - 32px),transparent 100%);mask-image:linear-gradient(to right,black calc(100% - 32px),transparent 100%)}.tabs::-webkit-scrollbar{display:none}.tabs.no-overflow{-webkit-mask-image:none;mask-image:none}.tab{background:var(--primary-50);border:2px solid var(--primary-200);padding:12px clamp(16px,3vw,22px);border-radius:var(--radius-md);font-size:clamp(.85rem,1.5vw,.95rem);font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;color:var(--primary-dark);flex-shrink:0;white-space:nowrap}.tab-icon{width:1.1rem;height:1.1rem;margin-right:.4rem}.tab:hover{background:var(--primary-100);border-color:var(--primary);color:var(--primary);box-shadow:0 2px 8px #0a316126}.tab.active{background:var(--primary);color:var(--white);border-color:var(--primary);box-shadow:0 4px 12px #0a31614d}.page{display:none;background:var(--white);border-radius:var(--radius-lg);padding:14px;box-shadow:0 4px 24px #00000014,0 1px #fffc inset;animation:pageIn .4s ease}.page.active{display:block}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(200px,22vw,320px),1fr));gap:20px;margin-bottom:40px}.stat-card{background:linear-gradient(145deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:var(--radius-lg);padding:clamp(20px,3vw,28px);color:var(--white);box-shadow:0 6px 20px #0a316140;border:none;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #0a31614d}.stats-grid .stat-card:nth-child(5),.stats-grid .stat-card:nth-child(6){background:linear-gradient(145deg,var(--accent-red) 0%,var(--accent-red-dark) 100%);box-shadow:0 6px 20px #b319424d}.stats-grid .stat-card:nth-child(5):hover,.stats-grid .stat-card:nth-child(6):hover{box-shadow:0 10px 28px #b3194259}.stat-card h3{font-size:.75rem;margin-bottom:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;opacity:.95}.stat-value{font-size:clamp(1.6rem,3.5vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin-bottom:4px}.stat-change{font-size:.8rem;opacity:.9}.chart-container{background:var(--white);border-radius:var(--radius-lg);padding:clamp(20px,3vw,28px);margin-bottom:24px;box-shadow:0 4px 16px #00000014;border:1px solid var(--gray-200)}.chart-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.chart-container>h2{color:var(--gray-800);font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:700;margin-bottom:clamp(8px,1.2vw,14px)}.chart-container:has(.intersection-list){border-left:5px solid var(--primary)}.chart-inner{width:100%;min-width:1px;min-height:1px}.chart-inner--tall{min-height:260px;overflow:visible}.recharts-cartesian-axis-tick text,.recharts-text.recharts-cartesian-axis-tick-value{fill:#475569!important;font-size:12px;font-family:inherit;opacity:1!important;visibility:visible!important}.recharts-xAxis .recharts-cartesian-axis-tick text{fill:#334155!important;font-weight:500}.recharts-yAxis .recharts-cartesian-axis-tick text{fill:#475569!important}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line{stroke:#cbd5e1!important}.risk-badge{display:inline-block;padding:3px 10px;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;flex-shrink:0}.speed-map-wrapper{width:100%;height:260px;min-height:260px;border-radius:var(--radius-md);overflow:hidden}.speed-map-container{width:100%;height:100%;min-height:320px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.map-center-pin{position:relative;width:40px;height:40px}.map-center-pin__marker{position:absolute;left:50%;top:2px;width:22px;height:28px;transform:translate(-50%) rotate(-45deg);transform-origin:50% 100%;background:#f43f5e;border-radius:50% 50% 50% 0;box-shadow:0 3px 6px #00000040}.map-center-pin__marker:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:#fff}.map-center-pin__shadow{position:absolute;bottom:0;left:50%;width:26px;height:10px;transform:translate(-50%);background:#22c55e;border-radius:50%;opacity:.95}.select--day{min-width:140px}.map-loading{padding:8px 0;font-size:.9rem;color:var(--gray-600)}.heatmap-grid{display:grid;grid-template-columns:repeat(24,1fr);gap:6px;margin-top:16px;padding:20px;background:var(--gray-100);border-radius:var(--radius-md)}.heatmap-cell{aspect-ratio:1;border-radius:6px;border:2px solid var(--white);transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}.heatmap-cell:hover{transform:scale(1.12);z-index:10;box-shadow:var(--shadow-lg)}.heatmap-cell--btn{cursor:pointer;border:2px solid var(--white);padding:0;font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center}.heatmap-cell-value{font-size:clamp(10px,2vw,14px);font-weight:700;color:#00000073;text-shadow:0 0 1px var(--white);pointer-events:none;line-height:1}.heatmap-outer{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.heatmap-inner-24{min-width:480px}.heatmap-inner-multiday{min-width:520px}.heatmap-legend{display:flex;justify-content:space-between;margin-top:12px;font-size:.8rem;color:var(--gray-500);font-weight:600}.risk-heatmap-multiday-scroll{max-height:380px;overflow-y:auto;overflow-x:hidden;margin-top:16px;padding-right:4px;border-radius:var(--radius-md);background:var(--gray-50)}.risk-heatmap-weekly{display:flex;flex-direction:column;gap:6px;padding:2px 0}.risk-heatmap-day-row{display:flex;align-items:center;gap:10px}.risk-heatmap-day-label{min-width:72px;font-size:.8rem;font-weight:600;color:var(--gray-700)}.risk-heatmap-container .heatmap-grid--day{display:grid;grid-template-columns:repeat(24,1fr);gap:4px;flex:1;padding:8px 12px;background:var(--gray-100);border-radius:var(--radius-md)}.risk-heatmap-container .heatmap-grid--day .heatmap-cell{min-height:20px;aspect-ratio:1}.risk-heatmap-header{display:flex;flex-direction:column;gap:12px}.risk-heatmap-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;row-gap:6px}.risk-heatmap-custom-range{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem}.risk-heatmap-range-label{color:var(--gray-600);font-weight:600}.risk-heatmap-range-sep{color:var(--gray-400)}.risk-heatmap-container .select--heatmap-date{min-width:100px}.risk-heatmap-apply-btn{margin-left:4px}.heatmap-label{display:grid;grid-template-columns:repeat(24,1fr);gap:6px;margin-top:8px;font-size:.65rem;color:var(--gray-500);text-align:center}.speed-heatmap-layout{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.speed-heatmap-row-labels{display:flex;flex-direction:column;gap:4px;padding-top:.5rem;min-width:52px}.speed-heatmap-row-label{font-size:.8rem;font-weight:600;color:var(--gray-700);min-height:calc((100% - 12px)/4);display:flex;align-items:center}.speed-heatmap-grid{display:grid;grid-template-columns:repeat(24,1fr);grid-template-rows:repeat(4,1fr);gap:4px;padding:16px;background:var(--gray-100);border-radius:var(--radius-md);min-height:clamp(160px,28vw,220px)}.speed-heatmap-cell{border-radius:4px;border:1px solid var(--white);display:flex;align-items:center;justify-content:center;font-size:clamp(.5rem,1.2vw,.65rem);font-weight:700;color:var(--white);text-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}.speed-heatmap-cell:hover{transform:scale(1.1);z-index:10;box-shadow:var(--shadow-md)}.speed-heatmap-cell--btn{cursor:pointer;padding:0;border:1px solid var(--white);font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.intersection-list{display:grid;gap:12px}.intersection-item{background:linear-gradient(135deg,var(--primary-50) 0%,var(--white) 100%);border-radius:var(--radius-md);padding:18px 20px;display:flex;align-items:center;gap:16px;border-left:5px solid var(--primary);transition:transform .15s ease,box-shadow .15s ease}.intersection-item:hover{transform:translate(4px);box-shadow:0 4px 12px #0a31611f}.intersection-item--btn{width:100%;text-align:left;cursor:pointer;border:none;font:inherit;color:inherit;background:linear-gradient(135deg,var(--primary-50) 0%,var(--white) 100%)}.intersection-rank{font-size:1.35rem;font-weight:800;color:var(--primary);min-width:36px;text-align:center}.intersection-name{font-size:1.05rem;font-weight:600;margin-bottom:4px;color:var(--gray-800)}.intersection-stats{font-size:.85rem;color:var(--gray-500)}.risk-badge{margin-left:auto;padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase}.risk-badge--low{background:#dcfce7;color:#15803d}.risk-badge--medium{background:#fef3c7;color:#b45309}.risk-badge--high{background:#fee2e2;color:#b91c1c}.fleet-grid{display:flex;gap:20px;flex-wrap:wrap;margin-top:8px}.fleet-card{flex:1 1 140px;background:var(--gray-50);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;align-items:center;gap:4px;border-top:4px solid transparent}.fleet-card__dot{width:24px;height:24px;border-radius:50%;margin-bottom:4px}.fleet-card__name{font-size:.85rem;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em}.fleet-card__count{font-size:1.6rem;font-weight:800;color:var(--primary);line-height:1.1}.fleet-card__pct{font-size:.8rem;color:var(--gray-500)}.intersection-sensor-note{font-size:.8rem;color:var(--gray-500);margin:4px 0 0;font-style:italic}.safety-summary{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap;margin-top:8px}.safety-summary__score-wrap{display:flex;flex-direction:column;align-items:center;min-width:80px}.safety-summary__score{font-size:3rem;font-weight:900;line-height:1}.safety-summary__score-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;text-align:center}.safety-summary__details{flex:1;display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--gray-700)}.safety-summary__recommendation{margin-top:4px;padding:10px 14px;background:var(--gray-50);border-left:3px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic;color:var(--gray-600)}.violations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:16px;margin-top:16px}.violation-card{background:var(--gray-50);border-radius:var(--radius-md);padding:20px;border-left:4px solid;transition:transform .15s ease,box-shadow .15s ease}.violation-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.violation-card.wrong-way{border-left-color:var(--red-600)}.violation-card.no-yield{border-left-color:#d97706}.violation-card.illegal-turn{border-left-color:#8b5cf6}.violation-card.red-light{border-left-color:var(--red-500)}.violation-card.speeding{border-left-color:var(--accent-red)}.violation-card--btn{cursor:pointer;border:none;text-align:left;font:inherit;color:inherit;background:var(--gray-50);padding:20px}.violation-card h4{font-size:.75rem;color:var(--gray-500);margin-bottom:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.violation-card .value{font-size:1.75rem;font-weight:800;color:var(--gray-800);margin-bottom:4px}.violation-card .change{font-size:.8rem;color:var(--gray-500)}.chart-container--freq{border-left:4px solid var(--primary)}.freq-chart-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:clamp(10px,1.5vw,18px)}.freq-chart-header .chart-subtitle{width:100%;margin:0 0 6px;font-size:.875rem;color:var(--gray-600);font-weight:400}.freq-chart-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--gray-500)}.freq-legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px}.freq-legend-dot--peak{background:#0a3161}.freq-legend-dot--normal{background:#0a31616b}.freq-legend-label{margin-right:8px}.chart-inner--freq{width:100%;height:clamp(480px,55vw,680px)}.freq-tooltip{background:var(--gray-900);border-radius:8px;padding:10px 14px;box-shadow:0 4px 16px #0000002e;min-width:140px}.freq-tooltip-hour{font-size:11px;font-weight:600;color:#ffffff8c;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.freq-tooltip-value{font-size:20px;font-weight:800;color:#fff;line-height:1}.freq-tooltip-unit{font-size:12px;font-weight:400;color:#fff9}.freq-tooltip-peak{margin-top:6px;font-size:11px;font-weight:600;color:#9eb8d9}.pie-container .chart-inner{margin-bottom:0}.pie-chart-wrap{width:100%;max-width:520px;margin:0 auto;min-height:280px;overflow:visible}.color-legend-text{text-align:center;font-size:.8rem;color:var(--gray-500);margin-top:12px;line-height:1.5}.table-container{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--gray-200);overflow-x:auto}.table-container table{width:100%;min-width:640px;border-collapse:collapse}.table-container th{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--white);padding:14px 16px;text-align:left;font-weight:600;font-size:clamp(.75rem,1.2vw,.85rem)}.table-container td{padding:14px 16px;border-bottom:1px solid var(--gray-200);font-size:clamp(.8rem,1.2vw,.9rem)}.table-container tbody tr{transition:background .15s ease}.table-container tbody tr:hover{background:var(--gray-50)}.clickable-row{cursor:pointer}.table-empty{text-align:center;color:var(--gray-500);padding:2rem!important;font-style:italic}.chart-empty{text-align:center;color:var(--gray-500);padding:1.5rem;font-style:italic}.badge{display:inline-block;padding:4px 12px;border-radius:9999px;font-size:.8rem;font-weight:600}.badge-wrong-way{background:#fee2e2;color:var(--red-600)}.badge-red-light{background:#fef3c7;color:#d97706}.badge-fail-yield{background:#d1fae5;color:#059669}.badge-speeding{background:#fee2e2;color:#991b1b}.badge-crash{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.badge-nearmiss{background:#ffedd5;color:#c2410c;border:1px solid #fed7aa}.badge-pedyield{background:#ede9fe;color:#6d28d9;border:1px solid #ddd6fe}.event-preview{width:80px;height:56px;border-radius:var(--radius-sm);object-fit:cover;transition:transform .15s ease}.event-preview:hover{transform:scale(1.08)}.clips-section{background:linear-gradient(135deg,var(--gray-50) 0%,var(--gray-100) 100%);border-radius:var(--radius-lg);padding:28px;margin-bottom:28px;border:2px solid var(--primary-100)}.clips-description{margin:0 0 16px;color:var(--gray-600);font-size:.95rem}.clips-section h2{margin-bottom:20px;color:var(--gray-800);font-size:clamp(1.1rem,2vw,1.25rem);display:flex;align-items:center;gap:.5rem}.section-title-icon{width:1.25rem;height:1.25rem;color:var(--primary-dark)}.nav-btn-icon{width:1rem;height:1rem;vertical-align:middle}.table-play-icon{width:.9rem;height:.9rem;vertical-align:middle;margin-right:.25rem;color:var(--primary-dark)}.video-player{width:100%;max-width:1100px;height:min(55vw,520px);min-height:240px;background:var(--gray-900);border-radius:var(--radius-md);margin:0 auto;position:relative;overflow:hidden}.video-player video{width:100%;height:100%;object-fit:cover}.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);padding:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.video-info{color:var(--white);font-weight:600;font-size:clamp(.85rem,1.5vw,.95rem)}.video-info div:last-child{font-size:.85rem;opacity:.9;margin-top:4px}.nav-btn{padding:10px 18px;background:var(--primary);color:var(--white);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-family:inherit;font-size:.9rem;transition:background .15s ease,transform .15s ease}.nav-btn:hover{background:var(--primary-dark);transform:scale(1.02)}.select,.input-date{padding:10px 18px;border-radius:var(--radius-md);border:2px solid var(--green-500);font-size:.95rem;font-family:inherit;color:var(--gray-800);background:var(--white);cursor:pointer}.filters-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}@media(min-width:480px){.dashboard-wrap,.page{padding:20px}.dashboard-header{padding:18px 20px;margin-bottom:22px}.chart-container{padding:20px}.speed-map-wrapper{height:320px;min-height:320px}}@media(min-width:640px){.header-mobile{display:none}.header-desktop{display:flex}.dashboard-header{flex-direction:row;align-items:center}.page{padding:24px}.dashboard-wrap{padding:22px}}@media(min-width:768px){.header-logo{height:48px}.page{padding:28px}.dashboard-header{padding:22px 28px}.chart-container{padding:24px}.speed-map-wrapper{height:380px;min-height:380px}}@media(min-width:900px){.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:1024px){.speed-map-wrapper{height:420px;min-height:420px}}@media(min-width:1280px){.page{padding:36px 40px}.dashboard-wrap{padding:36px}.dashboard-header{padding:26px 40px;margin-bottom:28px}.chart-container{padding:32px}.header-logo{height:56px}.speed-map-wrapper{height:460px;min-height:460px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}[data-sonner-toast][data-type=success]{--success-bg: var(--primary);--success-border: var(--primary-dark)}[data-sonner-toast]{border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}:root{--bp-sm: 480px;--bp-md: 640px;--bp-lg: 900px;--bp-xl: 1280px;--bp-4k: 2560px}.container{max-width:min(1920px,95vw);margin:0 auto}.chart-inner--tall{height:clamp(280px,30vh,600px)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:40px}@media(min-width:900px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stats-grid .stat-card:nth-child(5),.stats-grid .stat-card:nth-child(6){grid-column:span 2}.stats-grid .stat-card{padding:clamp(14px,1.6vw,20px)}.stats-grid .stat-card h3{font-size:.68rem;letter-spacing:.04em}.stats-grid .stat-value{font-size:clamp(1.35rem,2.2vw,1.85rem)}.stats-grid .stat-change{font-size:.72rem;line-height:1.25}}@media(min-width:2560px){.dashboard-wrap{padding:clamp(24px,2vw,48px)}.container{max-width:min(2400px,92vw)}.dashboard-header{padding:32px 56px}.stat-card{padding:36px}.stat-value{font-size:2.8rem}.chart-container{padding:36px}.chart-container h2{font-size:1.7rem}.tab{padding:16px 28px;font-size:1.05rem}}
