:root{--app-bg:#f4f5f7;--surface:#fff;--surface-2:#f1f3f6;--sidebar-bg:#0f172a;--sidebar-text:#cbd5e1;--sidebar-text-active:#fff;--sidebar-hover:#ffffff0f;--sidebar-active:#e11d481f;--sidebar-accent:#f43f5e;--text:#0f172a;--text-secondary:#334155;--muted:#6b7280;--accent:#e11d48;--accent-dark:#be123c;--accent-soft:#fff0f3;--accent-soft-2:#e11d480f;--green:#16a34a;--green-soft:#dcfce7;--blue:#2563eb;--blue-soft:#dbeafe;--yellow:#f59e0b;--yellow-soft:#fef3c7;--red:#dc2626;--red-soft:#fee2e2;--score-excellent:#16a34a;--score-good:#2563eb;--score-fair:#f59e0b;--score-poor:#dc2626;--border:#e5e7eb;--border-subtle:#94a3b81f;--shadow:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 12px #0f172a14, 0 1px 3px #0f172a0a;--shadow-lg:0 12px 40px #0f172a1a, 0 4px 12px #0f172a0f;--radius-xl:24px;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--radius-xs:6px;--font-display:"Space Grotesk", sans-serif;--font-body:"Manrope", sans-serif;--sidebar-width:260px;--sidebar-collapsed:72px;--topbar-height:64px;--focus-ring:0 0 0 2px #e11d4833}[data-theme=dark]{--app-bg:#0b0f1a;--surface:#101724;--surface-2:#151d2e;--sidebar-bg:#070b14;--text:#e2e8f0;--text-secondary:#94a3b8;--muted:#64748b;--accent:#f43f5e;--accent-dark:#e11d48;--accent-soft:#f43f5e1a;--accent-soft-2:#f43f5e0d;--green:#22c55e;--green-soft:#22c55e1a;--blue:#60a5fa;--blue-soft:#60a5fa1a;--yellow:#fbbf24;--yellow-soft:#fbbf241a;--red:#f87171;--red-soft:#f871711a;--score-excellent:#22c55e;--score-good:#60a5fa;--score-fair:#fbbf24;--score-poor:#f87171;--border:#1e293b;--border-subtle:#94a3b814;--shadow:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #0000004d, 0 1px 3px #0003;--shadow-lg:0 12px 40px #0006, 0 4px 12px #0000004d;--focus-ring:0 0 0 2px #f43f5e4d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--text);background:var(--app-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text);font-weight:700;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:17px}h4{font-size:15px}p{color:var(--text-secondary)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:var(--font-body);background:0 0;border:none}table{border-collapse:collapse;width:100%}img{max-width:100%;display:block}input,select,textarea{font-family:var(--font-body);font-size:14px}:focus-visible{box-shadow:var(--focus-ring);outline:none}::selection{background:var(--accent-soft);color:var(--accent-dark)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);z-index:50;flex-direction:column;transition:width .2s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar__brand{border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;min-height:64px;padding:20px 20px 16px;display:flex}.sidebar__logo{background:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;transform:rotate(12deg)}.sidebar__logo svg{color:#fff;transform:rotate(-12deg)}.sidebar__brand-text{font-family:var(--font-display);color:#fff;white-space:nowrap;font-size:18px;font-weight:700;overflow:hidden}.sidebar__brand-text span{color:var(--sidebar-accent)}.sidebar.collapsed .sidebar__brand-text{display:none}.sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar__section-label{text-transform:uppercase;letter-spacing:.08em;color:#ffffff4d;white-space:nowrap;padding:16px 12px 6px;font-size:10px;font-weight:600}.sidebar.collapsed .sidebar__section-label{text-align:center;padding:16px 0 6px;font-size:0}.sidebar__link{border-radius:var(--radius-sm);color:var(--sidebar-text);white-space:nowrap;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar__link:hover{background:var(--sidebar-hover);color:var(--sidebar-text-active);text-decoration:none}.sidebar__link.active{background:var(--sidebar-active);color:var(--sidebar-accent)}.sidebar__link svg{flex-shrink:0;width:20px;height:20px}.sidebar.collapsed .sidebar__link{justify-content:center;padding:10px}.sidebar.collapsed .sidebar__link span{display:none}.sidebar__footer{border-top:1px solid #ffffff0f;flex-direction:column;gap:4px;padding:12px;display:flex}.sidebar__footer .sidebar__link{justify-content:center;font-size:13px;font-weight:500}.sidebar__toggle{border-radius:var(--radius-sm);color:var(--sidebar-text);cursor:pointer;justify-content:center;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:13px;font-weight:500;transition:background .15s;display:flex}.sidebar__toggle:hover{background:var(--sidebar-hover)}.main-wrapper{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;transition:margin-left .2s;display:flex}.sidebar.collapsed~.main-wrapper{margin-left:var(--sidebar-collapsed)}.topbar{height:var(--topbar-height);background:var(--surface);border-bottom:1px solid var(--border);z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:sticky;top:0}.topbar__left{align-items:center;gap:16px;display:flex}.topbar__breadcrumbs{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.topbar__breadcrumbs a{color:var(--muted)}.topbar__breadcrumbs a:hover{color:var(--text)}.topbar__breadcrumbs .separator{font-size:11px}.topbar__breadcrumbs .current{color:var(--text);font-weight:600}.topbar__right{align-items:center;gap:12px;display:flex}.topbar__search{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted);align-items:center;gap:8px;min-width:200px;padding:8px 14px;font-size:13px;display:flex}.topbar__search input{color:var(--text);background:0 0;border:none;outline:none;flex:1}.topbar__search input::placeholder{color:var(--muted)}.page-content{flex:1;max-width:1400px;padding:32px}.page-header{margin-bottom:28px}.page-header h1{margin-bottom:4px}.page-header p{color:var(--muted);font-size:14px}.grid-4{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.grid-2-1{grid-template-columns:2fr 1fr;gap:20px;display:grid}.topbar__hamburger{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:none}.topbar__hamburger:hover{background:var(--surface-2)}.sidebar.mobile-open{left:0!important}.sidebar-backdrop{display:none}@media (width<=1200px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.sidebar{width:var(--sidebar-collapsed)}.sidebar .sidebar__brand-text,.sidebar .sidebar__link span,.sidebar .sidebar__section-label{display:none}.sidebar .sidebar__link{justify-content:center;padding:10px}.main-wrapper{margin-left:var(--sidebar-collapsed)}.page-content{padding:20px}.topbar{padding:0 20px}}@media (width<=768px){.topbar__hamburger{display:flex}.sidebar{width:var(--sidebar-width);left:calc(-1 * var(--sidebar-width));z-index:100;transition:left .25s}.sidebar .sidebar__brand-text,.sidebar .sidebar__link span,.sidebar .sidebar__section-label,.sidebar .sidebar__toggle span{display:unset}.sidebar .sidebar__link{justify-content:flex-start;padding:10px 12px}.sidebar-backdrop{z-index:90;background:#00000073;display:block;position:fixed;inset:0}.sidebar__collapse-btn{display:none}.main-wrapper{margin-left:0}.topbar__search{flex:1;min-width:0}}@media (width<=640px){.grid-4,.grid-3,.grid-2,.grid-2-1{grid-template-columns:1fr;gap:12px}.page-content{padding:16px}.page-header h1{font-size:20px}.topbar{padding:0 12px}.topbar__search{min-width:0}.topbar__breadcrumbs .separator,.topbar__breadcrumbs a{display:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px;transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.card__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card__title{color:var(--text);font-size:15px;font-weight:600}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);align-items:flex-start;gap:16px;padding:20px 24px;display:flex}.kpi-card__icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.kpi-card__icon--accent{background:var(--accent-soft);color:var(--accent)}.kpi-card__icon--green{background:var(--green-soft);color:var(--green)}.kpi-card__icon--blue{background:var(--blue-soft);color:var(--blue)}.kpi-card__icon--yellow{background:var(--yellow-soft);color:var(--yellow)}.kpi-card__body{flex:1;min-width:0}.kpi-card__label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600}.kpi-card__value{font-family:var(--font-display);color:var(--text);font-size:28px;font-weight:700;line-height:1}.kpi-card__trend{align-items:center;gap:4px;margin-top:6px;font-size:12px;font-weight:600;display:flex}.kpi-card__trend--up{color:var(--green)}.kpi-card__trend--down{color:var(--red)}.score-badge{min-width:40px;font-size:13px;font-weight:700;font-family:var(--font-display);border-radius:20px;justify-content:center;align-items:center;padding:3px 10px;display:inline-flex}.score-badge--excellent{background:var(--green-soft);color:var(--green)}.score-badge--good{background:var(--blue-soft);color:var(--blue)}.score-badge--fair{background:var(--yellow-soft);color:var(--yellow)}.score-badge--poor{background:var(--red-soft);color:var(--red)}.tier-badge{text-transform:capitalize;border-radius:20px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.tier-badge--low{background:var(--green-soft);color:var(--green)}.tier-badge--medium{background:var(--blue-soft);color:var(--blue)}.tier-badge--high{background:var(--yellow-soft);color:var(--yellow)}.tier-badge--critical{background:var(--red-soft);color:var(--red)}.tier-badge__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.status-dot{align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.status-dot__indicator{border-radius:50%;width:8px;height:8px}.status-dot--online .status-dot__indicator{background:var(--green)}.status-dot--offline .status-dot__indicator{background:var(--muted)}.status-dot--stale .status-dot__indicator{background:var(--yellow)}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 16px;font-size:11px;font-weight:600}.data-table th:hover{color:var(--text)}.data-table th .sort-icon{opacity:.4;margin-left:4px}.data-table th.sorted .sort-icon{opacity:1;color:var(--accent)}.data-table td{border-bottom:1px solid var(--border-subtle);color:var(--text);white-space:nowrap;padding:14px 16px;font-size:14px}.data-table tr:hover td{background:var(--accent-soft-2)}.data-table tr.clickable{cursor:pointer}.data-table__avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.data-table__name-cell{align-items:center;gap:12px;display:flex}.data-table__name-text{flex-direction:column;display:flex}.data-table__name-text span:first-child{font-weight:600}.data-table__name-text span:last-child{color:var(--muted);font-size:12px}.pagination{color:var(--muted);justify-content:space-between;align-items:center;padding:16px 0 0;font-size:13px;display:flex}.pagination__buttons{gap:4px;display:flex}.pagination__btn{border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;padding:6px 12px;font-size:13px;font-weight:500;transition:background .15s}.pagination__btn:hover:not(:disabled){background:var(--surface-2)}.pagination__btn:disabled{opacity:.4;cursor:not-allowed}.pagination__btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.score-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.score-ring__value{font-family:var(--font-display);color:var(--text);font-weight:700;position:absolute}.score-ring--lg .score-ring__value{font-size:36px}.score-ring--md .score-ring__value{font-size:22px}.score-ring--sm .score-ring__value{font-size:14px}.theme-toggle{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.theme-toggle:hover{background:var(--surface-2);color:var(--text)}.empty-state{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state svg{opacity:.3;width:48px;height:48px;margin-bottom:16px}.empty-state p{font-size:15px}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.filter-bar__input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex:1;align-items:center;gap:8px;min-width:200px;max-width:360px;padding:8px 14px;display:flex}.filter-bar__input input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.filter-bar__input input::placeholder{color:var(--muted)}.filter-bar__select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;padding:8px 14px;font-size:14px}.event-badge{text-transform:capitalize;background:var(--surface-2);color:var(--text-secondary);border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.event-badge--harsh_braking{background:var(--red-soft);color:var(--red)}.event-badge--harsh_acceleration,.event-badge--harsh_cornering{background:var(--yellow-soft);color:var(--yellow)}.event-badge--speeding,.event-badge--crash{background:var(--red-soft);color:var(--red)}.event-badge--idling{background:var(--blue-soft);color:var(--blue)}.btn{border-radius:var(--radius-md);align-items:center;gap:8px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-dark)}.btn--ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn--ghost:hover{background:var(--surface-2)}.detail-grid{grid-template-columns:320px 1fr;align-items:start;gap:24px;display:grid}.detail-sidebar,.detail-main{flex-direction:column;gap:20px;display:flex}@media (width<=1000px){.detail-grid{grid-template-columns:1fr}}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:inline-flex}.back-link:hover{color:var(--text);text-decoration:none}.stat-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.stat-row:last-child{border-bottom:none}.stat-row__label{color:var(--muted);font-size:13px}.stat-row__value{color:var(--text);font-size:14px;font-weight:600}.map-container{border-radius:var(--radius-lg);border:1px solid var(--border);width:100%;height:400px;overflow:hidden}.context-bar{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.context-chip{border:1px solid var(--border);background:var(--surface);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.context-chip--default{color:var(--text-secondary)}.context-chip--success{color:var(--green);background:var(--green-soft);border-color:#0000}.context-chip--warning{color:var(--yellow);background:var(--yellow-soft);border-color:#0000}.context-chip--danger{color:var(--red);background:var(--red-soft);border-color:#0000}.baseline-delta{font-size:13px;font-weight:700;font-family:var(--font-display);align-items:center;gap:4px;display:inline-flex}.baseline-delta--good{color:var(--green)}.baseline-delta--bad{color:var(--red)}.baseline-delta--neutral{color:var(--muted)}.baseline-delta__label{color:var(--muted);font-size:11px;font-weight:500;font-family:var(--font-body)}.segment-timeline__bar{gap:3px;margin-bottom:20px;display:flex}.segment-timeline__block{background:var(--surface-2);border-radius:var(--radius-sm);cursor:default;border-bottom:3px solid;flex:1;min-width:80px;padding:10px 12px;transition:box-shadow .15s}.segment-timeline__block:hover{box-shadow:var(--shadow-md)}.segment-timeline__block-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.segment-timeline__road-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:10px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.segment-timeline__road-badge--highway{background:var(--blue-soft);color:var(--blue)}.segment-timeline__road-badge--arterial{background:var(--accent-soft);color:var(--accent)}.segment-timeline__road-badge--residential{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.segment-timeline__road-badge--school_zone{background:var(--yellow-soft);color:var(--yellow)}.segment-timeline__road-badge--rural{background:var(--green-soft);color:var(--green)}.segment-timeline__event-count{color:var(--red);align-items:center;gap:3px;font-size:11px;font-weight:700;display:inline-flex}.segment-timeline__block-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:11px;font-weight:600;overflow:hidden}.segment-timeline__block-stats{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.segment-timeline__block-stats span:last-child{font-weight:700;font-family:var(--font-display)}.segment-timeline__details{flex-direction:column;gap:8px;display:flex}.segment-timeline__detail-row{background:var(--surface-2);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.segment-timeline__detail-left{flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.segment-timeline__detail-name{color:var(--text);font-size:13px;font-weight:600;display:block}.segment-timeline__detail-meta{color:var(--muted);font-size:11px;display:block}.segment-timeline__detail-right{flex-shrink:0;align-items:center;gap:16px;display:flex}.segment-timeline__speed-compare{align-items:center;gap:6px;font-size:12px;display:flex}.segment-timeline__speed-label{color:var(--muted);text-transform:uppercase;font-size:10px}.segment-timeline__speed-value{font-family:var(--font-display);color:var(--text);font-size:14px}.segment-timeline__speed-separator{color:var(--muted);font-size:11px}.segment-timeline__speed-delta{font-size:12px;font-weight:700;font-family:var(--font-display);border-radius:8px;padding:2px 6px}.segment-timeline__speed-delta.good{color:var(--green);background:var(--green-soft)}.segment-timeline__speed-delta.bad{color:var(--red);background:var(--red-soft)}.segment-timeline__speed-delta.neutral{color:var(--muted);background:var(--surface)}.segment-timeline__score-pill{font-family:var(--font-display);text-align:center;border-radius:12px;min-width:36px;padding:4px 10px;font-size:13px;font-weight:700}.enriched-events{flex-direction:column;gap:12px;display:flex}.enriched-event{background:var(--surface-2);border-radius:var(--radius-md);border-left:3px solid var(--border);padding:16px}.enriched-event:has(.enriched-event__severity--high){border-left-color:var(--red)}.enriched-event:has(.enriched-event__severity--medium){border-left-color:var(--yellow)}.enriched-event:has(.enriched-event__severity--low){border-left-color:var(--blue)}.enriched-event__header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.enriched-event__severity{text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.enriched-event__severity--high{color:var(--red)}.enriched-event__severity--medium{color:var(--yellow)}.enriched-event__severity--low{color:var(--blue)}.enriched-event__time{color:var(--muted);font-size:12px}.enriched-event__metrics{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px;display:grid}.enriched-event__metric{flex-direction:column;gap:4px;display:flex}.enriched-event__metric-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10px;font-weight:600}.enriched-event__metric-value{color:var(--text);font-size:14px}.enriched-event__over-limit{color:var(--red);margin-left:4px;font-size:12px;font-weight:700}.enriched-event__insight{color:var(--text-secondary);background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:10px 14px;font-size:13px;line-height:1.5}@media (width<=900px){.enriched-event__metrics{grid-template-columns:repeat(2,1fr)}}.trip-peer-rank{color:var(--muted);margin-top:8px;font-size:13px}.trip-peer-rank strong{color:var(--text);font-weight:700}.intelligence-grid{flex-direction:column;gap:16px;display:flex}.intelligence-item{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:6px;padding-bottom:16px;display:flex}.intelligence-item:last-child{border-bottom:none;padding-bottom:0}.intelligence-item__label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:600}.intelligence-item__value{color:var(--text-secondary);font-size:14px;line-height:1.5}.intelligence-item__value strong{color:var(--text)}.intelligence-item__value-small{color:var(--muted);font-size:12px}.intelligence-item__bar-wrap{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.intelligence-item__bar{border-radius:3px;height:100%;transition:width .4s}.tab-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);gap:4px;width:fit-content;padding:4px;display:flex}.tab-btn{border-radius:var(--radius-sm);color:var(--muted);padding:8px 18px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{background:var(--accent);color:#fff}.mismatch-cards{flex-direction:column;gap:10px;max-height:400px;display:flex;overflow-y:auto}.mismatch-card{border-radius:var(--radius-sm);background:var(--surface-2);border-left:3px solid var(--border);padding:14px 16px}.mismatch-card--undercharged{border-left-color:var(--red)}.mismatch-card--overcharged{border-left-color:var(--green)}.mismatch-card__header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.mismatch-card__detail{color:var(--muted);margin-bottom:6px;font-size:12px}.mismatch-card__bands{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.mismatch-card__bands strong{text-transform:capitalize}.mismatch-card__delta{font-size:14px;font-weight:700;font-family:var(--font-display)}.factor-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (width<=900px){.factor-grid{grid-template-columns:1fr}}.factor-card{background:var(--surface-2);border-radius:var(--radius-sm);padding:16px}.factor-card__header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.factor-card__name{color:var(--text);font-size:14px;font-weight:700}.factor-card__gap{font-size:12px;font-weight:700;font-family:var(--font-display);border-radius:10px;padding:2px 8px}.factor-card__gap.positive{color:var(--green);background:var(--green-soft)}.factor-card__gap.negative{color:var(--red);background:var(--red-soft)}.factor-card__bars{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.factor-card__bar-row{align-items:center;gap:8px;display:flex}.factor-card__bar-label{text-transform:uppercase;color:var(--muted);flex-shrink:0;width:72px;font-size:10px}.factor-card__bar-track{background:var(--surface);border-radius:3px;flex:1;height:6px;overflow:hidden}.factor-card__bar-fill{border-radius:3px;height:100%}.factor-card__bar-fill--trad{background:var(--muted);opacity:.4}.factor-card__bar-fill--behav{background:var(--accent)}.factor-card__bar-value{font-size:12px;font-weight:700;font-family:var(--font-display);color:var(--text);text-align:right;width:32px}.factor-card__desc{color:var(--muted);font-size:12px;line-height:1.5}.calc-layout{grid-template-columns:420px 1fr;align-items:start;gap:24px;display:grid}@media (width<=1100px){.calc-layout{grid-template-columns:1fr}}.calc-form{top:calc(var(--topbar-height) + 24px);position:sticky}.calc-field-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.calc-field{flex-direction:column;gap:4px;display:flex}.calc-field label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:600}.calc-field input,.calc-field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);padding:8px 12px;font-size:14px}.calc-field input:focus,.calc-field select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.calc-results{flex-direction:column;gap:20px;display:flex}.calc-result-card{position:relative}.calc-result-card--disabled{opacity:.5}.calc-result-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.calc-premium{align-items:baseline;gap:2px;margin-bottom:8px;display:flex}.calc-premium__currency{color:var(--muted);font-size:18px;font-weight:600}.calc-premium__value{font-family:var(--font-display);color:var(--text);font-size:40px;font-weight:700;line-height:1}.calc-premium__period{color:var(--muted);margin-left:4px;font-size:14px}.calc-factors{flex-direction:column;gap:8px;margin-top:16px;display:flex}.calc-factor-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:100px 60px 1fr;align-items:start;gap:8px;padding:8px 0;display:grid}.calc-factor-row:last-child{border-bottom:none}.calc-factor-name{color:var(--text);font-size:13px;font-weight:600}.calc-factor-impact{font-size:13px;font-weight:700;font-family:var(--font-display);text-align:right}.calc-factor-impact.good{color:var(--green)}.calc-factor-impact.bad{color:var(--red)}.calc-factor-detail{color:var(--muted);font-size:12px;line-height:1.4}.calc-empty-score{text-align:center;color:var(--muted);padding:24px;font-size:14px}.calc-delta-card{align-items:flex-start;gap:16px;display:flex}.calc-delta-card--up{border-left:4px solid var(--red)}.calc-delta-card--down{border-left:4px solid var(--green)}.calc-delta-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.calc-delta-card--up .calc-delta-icon{background:var(--red-soft);color:var(--red)}.calc-delta-card--down .calc-delta-icon{background:var(--green-soft);color:var(--green)}.calc-delta-body{flex:1}.calc-delta-value{font-family:var(--font-display);margin-bottom:4px;font-size:24px;font-weight:700}.calc-delta-card--up .calc-delta-value{color:var(--red)}.calc-delta-card--down .calc-delta-value{color:var(--green)}.calc-delta-label{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:1.5}.calc-delta-annual{color:var(--muted);font-size:13px}.calc-delta-annual strong{color:var(--text)}.api-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:20px 24px;display:flex}.api-card__header{flex-direction:column;gap:6px;display:flex}.api-card__title-row{align-items:flex-start;gap:12px;display:flex}.api-card__icon{border-radius:var(--radius-md);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.api-card__title{color:var(--text);margin-bottom:3px;font-size:14px;font-weight:600}.api-card__desc{color:var(--muted);font-size:13px;line-height:1.5}.api-params{background:var(--bg);border-radius:var(--radius-md);border:1px solid var(--border-subtle);flex-wrap:wrap;gap:10px;padding:14px;display:flex}.api-param{flex-direction:column;flex:1;gap:4px;min-width:140px;display:flex}.api-param__label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.api-param__required{color:var(--red);font-size:13px}.api-param__in{letter-spacing:.05em;text-transform:uppercase;background:var(--border);color:var(--muted);border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.api-param__input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);height:30px;color:var(--text);font-size:13px;font-family:var(--font-mono,monospace);outline:none;padding:0 8px}.api-param__input:focus{border-color:var(--accent)}.api-param__desc{color:var(--muted);font-size:11px}.api-request-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.api-url-bar{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);min-width:200px;font-family:var(--font-mono,monospace);flex:1;align-items:center;gap:0;font-size:12px;display:flex;overflow:hidden}.api-url-bar__method{background:var(--accent);color:#fff;letter-spacing:.05em;flex-shrink:0;padding:7px 10px;font-size:11px;font-weight:700}.api-url-bar__url{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;padding:7px 10px;overflow:hidden}.api-url-bar__copy{color:var(--muted);cursor:pointer;border:none;border-left:1px solid var(--border);background:0 0;flex-shrink:0;align-items:center;padding:7px 10px;display:flex}.api-url-bar__copy:hover{color:var(--accent)}.api-send-btn{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;flex-shrink:0;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .15s;display:flex}.api-send-btn:hover{opacity:.9}.api-send-btn:disabled{opacity:.6;cursor:not-allowed}.api-sample-note{color:var(--muted);font-size:12px;font-style:italic}.api-error{color:var(--red);background:color-mix(in srgb, var(--red) 8%, transparent);border:1px solid color-mix(in srgb, var(--red) 20%, transparent);border-radius:var(--radius-md);padding:10px 14px;font-size:13px}.api-response{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.api-response__bar{background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 12px;display:flex}.api-response__toggle{color:var(--text);cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:5px;font-size:13px;font-weight:600;display:flex}.api-response__status{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:700}.api-response__status.ok{background:color-mix(in srgb, var(--green) 15%, transparent);color:var(--green)}.api-response__status.err{background:color-mix(in srgb, var(--red) 15%, transparent);color:var(--red)}.api-response__latency{color:var(--muted);font-size:11px}.api-response__body{background:var(--bg);font-family:var(--font-mono,monospace);max-height:480px;margin:0;padding:14px 16px;font-size:12px;line-height:1.6;overflow:auto}.api-json__key{color:var(--accent)}.api-json__str{color:var(--green)}.api-json__num{color:var(--yellow)}.api-json__bool{color:var(--blue)}.api-json__null{color:var(--muted);font-style:italic}.api-json__punct{color:var(--text);opacity:.5}.api-json__comment{color:var(--muted);font-style:italic}.api-code-block{font-family:var(--font-mono,monospace);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--accent);padding:8px 12px;font-size:13px;display:block}.api-overview{padding:20px 24px}.api-offline-banner{background:color-mix(in srgb, var(--yellow) 10%, transparent);border:1px solid color-mix(in srgb, var(--yellow) 25%, transparent);border-radius:var(--radius-md);color:var(--text);align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13px;line-height:1.5;display:flex}.api-offline-banner svg{color:var(--yellow);flex-shrink:0}@media (width<=640px){.card{padding:16px}.kpi-card{padding:14px 16px}.card__header{margin-bottom:12px}.data-table-wrap{-webkit-overflow-scrolling:touch}.filter-bar__input{flex:1;min-width:0;max-width:none}.enriched-event__metrics{grid-template-columns:1fr}.tab-btn{padding:8px 12px;font-size:12px}.map-wrap,.trip-map-container{height:280px}.score-ring{width:100px;height:100px}.api-params{flex-direction:column}.api-param{min-width:0}.api-request-row{flex-direction:column}.api-url-bar{min-width:0}.api-url-bar__url{font-size:11px}.api-send-btn{justify-content:center;width:100%}.api-overview{padding:16px}.api-overview>div{gap:16px!important}.calc-layout{gap:16px}.factor-grid{gap:12px}.detail-grid{gap:16px}}
