:root {
  --bg: #07101a;
  --panel: #0b1724;
  --panel-2: #0e1c2b;
  --panel-3: #122235;
  --stroke: rgba(177, 211, 224, 0.12);
  --stroke-strong: rgba(177, 211, 224, 0.2);
  --text: #eef7f8;
  --muted: #8297a7;
  --muted-2: #5e7485;
  --mint: #62e6c6;
  --mint-dark: #153e3a;
  --cyan: #44b7e8;
  --amber: #ffbf69;
  --coral: #ff6676;
  --violet: #9c8cff;
  --green: #68db8d;
  --sct-green: #00c853;
  --sct-yellow: #ffd600;
  --sct-red: #f5222d;
  --sct-black: #050505;
  --sct-nodata: #758390;
  --radius: 16px;
  --shadow: 0 20px 60px rgba(0, 0, 0, 0.32);
}

/* Identity and user management */
.users-header{align-items:center}.users-header-actions{display:flex;gap:10px;align-items:center}.identity-status{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid rgba(98,230,198,.18);border-radius:10px;background:rgba(98,230,198,.045)}.identity-status>i{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px rgba(98,230,198,.6)}.identity-status small,.identity-status strong{display:block}.identity-status small{color:#607786;font-size:7px}.identity-status strong{margin-top:2px;color:#bed1d5;font-size:9px}.identity-status.warning{border-color:rgba(255,191,105,.2);background:rgba(255,191,105,.045)}.identity-status.warning>i{background:var(--amber);box-shadow:none}
.identity-gate{max-width:980px;margin:42px auto;padding:26px;border:1px solid var(--stroke);border-radius:16px;background:linear-gradient(145deg,rgba(98,230,198,.055),var(--panel) 52%);display:grid;grid-template-columns:68px minmax(220px,.8fr) minmax(360px,1.2fr);gap:20px;align-items:center}.identity-gate[hidden],#identity-workspace[hidden]{display:none}.identity-gate-symbol{width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(98,230,198,.3);border-radius:16px;color:var(--mint);background:rgba(98,230,198,.07);font:700 18px "Manrope",sans-serif}.identity-gate-symbol.lock{letter-spacing:3px}.identity-gate h3{margin:5px 0 7px;font-size:20px}.identity-gate p:not(.eyebrow){margin:0;color:#8096a2;font-size:10.5px;line-height:1.5}.identity-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.identity-form.compact{grid-template-columns:1fr 1fr auto}.identity-form label{min-width:0}.identity-form label:first-child{grid-column:1/-1}.identity-form.compact label:first-child{grid-column:auto}.identity-form label span,.identity-dialog label span{display:block;margin-bottom:5px;color:#708793;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.35px}.identity-form input,.identity-dialog input,.identity-dialog select{width:100%;height:39px;padding:0 11px;border:1px solid var(--stroke);border-radius:8px;outline:0;color:#d4e1e4;background:#0b1926;font:10px "DM Sans",sans-serif}.identity-form input:focus,.identity-dialog input:focus,.identity-dialog select:focus{border-color:rgba(98,230,198,.5)}.identity-form .primary-action{align-self:end;height:39px}.identity-password-rule{grid-column:3;align-self:start;color:#5f7784;font-size:8px}.identity-feedback{grid-column:2/-1;min-height:15px;color:var(--coral);font-size:9px}.identity-feedback.success{color:var(--mint)}
.identity-kpis{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:13px;border:1px solid var(--stroke);border-radius:12px;background:rgba(8,20,31,.58)}.identity-kpis article{padding:13px 16px;border-right:1px solid var(--stroke)}.identity-kpis article:last-child{border-right:0}.identity-kpis small,.identity-kpis strong,.identity-kpis span{display:block}.identity-kpis small{color:#78909d;font-size:8.5px}.identity-kpis strong{margin-top:4px;font:600 21px "Manrope",sans-serif}.identity-kpis span{margin-top:2px;color:#536b78;font-size:8px}.identity-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:13px}.users-table-panel,.role-matrix-panel,.identity-audit-panel{min-width:0;padding:17px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.identity-audit-panel{grid-column:1/-1}.identity-table{margin-top:11px}.identity-user-row{display:grid;grid-template-columns:minmax(190px,1.25fr) .45fr .35fr .35fr minmax(190px,.8fr);gap:9px;align-items:center;min-height:57px;padding:8px 0;border-bottom:1px solid var(--stroke);color:#8fa4ae;font-size:9px}.identity-user-row.header{min-height:29px;color:#57707d;text-transform:uppercase;font-size:7.5px}.identity-user-row strong,.identity-user-row small{display:block}.identity-user-row strong{color:#d2dfe2;font-size:9.5px}.identity-user-row small{margin-top:3px;color:#617986;font-size:8px}.identity-role,.identity-state{justify-self:start;padding:4px 6px;border-radius:5px;font-size:7.5px;font-style:normal;font-weight:700;text-transform:uppercase}.identity-role{color:var(--violet);background:rgba(156,140,255,.08)}.identity-state{color:var(--mint);background:rgba(98,230,198,.07)}.identity-state.inactive{color:#8799a2;background:rgba(135,153,162,.07)}.identity-user-actions{display:flex;justify-content:flex-end;gap:5px}.identity-user-actions select,.identity-user-actions button{height:29px;border:1px solid var(--stroke);border-radius:6px;color:#98adb6;background:#0b1926;font-size:8px}.identity-user-actions select{padding:0 5px}.identity-user-actions button{padding:0 7px;cursor:pointer}.identity-user-actions button:hover{border-color:rgba(98,230,198,.35);color:var(--mint)}.role-row{display:grid;grid-template-columns:90px 1fr;gap:7px;padding:10px 0;border-bottom:1px solid var(--stroke)}.role-row b{color:#cad8dc;font-size:9px}.role-row span{color:#738995;font-size:8.5px}.role-row em{grid-column:1/-1;justify-self:start;padding:3px 5px;border-radius:4px;color:#728996;background:#0b1926;font-size:7px;font-style:normal}.identity-security-note{display:grid;grid-template-columns:32px 1fr;gap:9px;align-items:center;margin-top:14px;padding:10px;border-radius:9px;background:rgba(98,230,198,.045)}.identity-security-note>span{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;color:var(--mint);background:rgba(98,230,198,.1)}.identity-security-note strong,.identity-security-note small{display:block}.identity-security-note strong{font-size:9px}.identity-security-note small{margin-top:3px;color:#67808c;font-size:8px;line-height:1.45}.identity-audit-list{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:11px}.identity-audit-row{display:grid;grid-template-columns:56px 8px 1fr;gap:8px;align-items:center;padding:9px;border-radius:8px;background:#0b1926}.identity-audit-row time{color:#68808d;font-size:8px}.identity-audit-row>i{width:6px;height:6px;border-radius:50%;background:var(--mint)}.identity-audit-row strong,.identity-audit-row small{display:block}.identity-audit-row strong{color:#c9d7da;font-size:8.8px}.identity-audit-row small{margin-top:2px;color:#617986;font-size:7.8px}
.identity-dialog{width:min(520px,calc(100% - 30px));padding:0;border:1px solid rgba(98,230,198,.18);border-radius:14px;color:#d2dfe2;background:#0b1825;box-shadow:0 25px 80px rgba(0,0,0,.5)}.identity-dialog::backdrop{background:rgba(2,8,14,.72);backdrop-filter:blur(4px)}.identity-dialog form{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:20px}.identity-dialog-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:start}.identity-dialog-head h3{margin:5px 0 0;font-size:18px}.identity-dialog-head button{border:0;color:#718995;background:transparent;font-size:20px;cursor:pointer}.identity-dialog form>small,.identity-dialog .identity-feedback,.identity-dialog-actions{grid-column:1/-1}.identity-dialog form>small{color:#607987;font-size:8px;line-height:1.5}.identity-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}
@media(max-width:1000px){.identity-gate{grid-template-columns:58px 1fr}.identity-form{grid-column:1/-1}.identity-password-rule{grid-column:1/-1}.identity-grid{grid-template-columns:1fr}.identity-audit-panel{grid-column:auto}.identity-audit-list{grid-template-columns:1fr}.identity-user-row{grid-template-columns:1fr .45fr .35fr}.identity-user-row>span:nth-child(4),.identity-user-row>.identity-user-actions{grid-column:auto}.identity-user-actions{grid-column:1/-1;justify-content:flex-start}.identity-kpis{grid-template-columns:repeat(2,1fr)}.identity-kpis article:nth-child(2){border-right:0}.identity-kpis article:nth-child(-n+2){border-bottom:1px solid var(--stroke)}}

/* Unified, semantic navigation icon system */
.nav-section-label{margin:13px 12px 3px;color:#47606f;font:700 7px/1 "DM Sans",sans-serif;letter-spacing:1.05px}.nav-section-label:first-child{margin-top:2px}.nav-icon svg{width:20px;height:20px;display:block;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.nav-item[data-view="directe"] .nav-icon,.nav-item[data-view="busvao"] .nav-icon,.nav-item[data-view="qualitat"] .nav-icon,.nav-item[data-view="lliuraments"] .nav-icon{color:#62e6c6}.nav-item[data-view="corredors"] .nav-icon,.nav-item[data-view="historic"] .nav-icon,.nav-item[data-view="reversibles"] .nav-icon,.nav-item[data-view="usuaris"] .nav-icon,.nav-item[data-view="descarregues"] .nav-icon{color:#62bfe6}.nav-item[data-view="intensitat"] .nav-icon,.nav-item[data-view="alertes"] .nav-icon,.nav-item[data-view="pesants"] .nav-icon{color:#f3bb68}.nav-item[data-view="prediccio"] .nav-icon,.nav-item[data-view="od"] .nav-icon,.nav-item[data-view="nusos"] .nav-icon{color:#a89cfb}.nav-item[data-view="incidencies"] .nav-icon{color:#ff7180}.nav-item.active .nav-icon{filter:drop-shadow(0 0 6px currentColor)}
@media(max-width:1180px) and (min-width:881px){.nav-section-label{display:none}.nav-item::after{content:attr(aria-label);position:absolute;z-index:70;left:60px;top:50%;width:max-content;max-width:210px;padding:7px 9px;border:1px solid rgba(98,230,198,.18);border-radius:7px;color:#dce8ea;background:rgba(7,18,29,.97);box-shadow:0 10px 28px rgba(0,0,0,.34);font-size:9px;line-height:1.2;opacity:0;pointer-events:none;transform:translate(5px,-50%);transition:.14s ease}.nav-item:hover::after,.nav-item:focus-visible::after{opacity:1;transform:translate(0,-50%)}}
@media(max-width:880px){.sidebar{height:78px;padding:5px 7px}.main-nav{display:flex!important;grid-template-columns:none!important;gap:3px;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity;scroll-padding:7px}.nav-section-label{display:none}.nav-item{flex:0 0 76px!important;min-width:76px!important;min-height:66px!important;height:66px;padding:5px 3px!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:25px 18px;gap:2px!important;place-items:center!important;scroll-snap-align:start;border-radius:10px}.nav-item>span:last-of-type{display:block!important;max-width:72px;overflow:hidden;text-overflow:ellipsis;color:#718795;font-size:7.3px;line-height:1.15;text-align:center;white-space:nowrap}.nav-item.active>span:last-of-type{color:#e8f2f4}.nav-icon,.nav-icon svg{width:21px;height:21px}.nav-item.active::before{left:18px!important;right:18px!important;top:-5px!important;height:2px!important}.nav-badge{right:8px!important;top:4px!important}.main-stage{padding-bottom:78px}.sidebar::after{content:"";position:absolute;right:0;top:0;bottom:0;width:18px;pointer-events:none;background:linear-gradient(90deg,transparent,#08131e)}}

/* Keep the operational KPIs clear of the vertical zoom control. */
.operational-strip { left: 74px !important; }
@media (max-width: 880px) { .operational-strip { left: 12px !important; } }

/* WebGL cartography. */
.maplibregl-map { background:#081722; font-family:"DM Sans",sans-serif; }
.maplibregl-canvas { outline:none; }
.maplibregl-ctrl-bottom-left { bottom:48px; left:8px; }
.maplibregl-ctrl-attrib { border:1px solid rgba(177,211,224,.12); border-radius:6px; background:rgba(6,15,24,.78) !important; color:#8297a7; font-size:7px; }
.maplibregl-ctrl-attrib a { color:#8dcfc3; }
.maplibregl-popup-content { padding:11px 13px; border:1px solid rgba(177,211,224,.18); border-radius:9px; background:#0b1724; color:#eef7f8; box-shadow:0 16px 40px rgba(0,0,0,.42); font:9px/1.45 "DM Sans",sans-serif; }
.maplibregl-popup-tip { border-top-color:#0b1724 !important; border-bottom-color:#0b1724 !important; }
.maplibregl-popup-content strong { color:var(--mint); }
#traffic-map { z-index: 0; }
.map-toolbar,.map-zoom { z-index: 650 !important; }.operational-strip,.map-legend,.timeline { z-index: 620 !important; }.segment-card { z-index: 700 !important; }
#incident-map { display: block; width: 100%; height: 230px; background: #0a1825; }
.incident-detail #incident-map { min-height: 230px; }
.map-unavailable { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: 10px; background: #0a1722; }
.forecast-icon { border: 1.5px solid currentColor; border-radius: 50%; }
.forecast-icon::before { content: ""; position: absolute; left: 3px; right: 3px; bottom: 6px; height: 6px; border-left: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: skewY(-28deg); }
.forecast-icon i { position: absolute; width: 4px; height: 4px; right: 2px; top: 3px; border-radius: 50%; background: currentColor; box-shadow: 0 0 7px currentColor; }
.prediction-header { align-items: center !important; }
.prediction-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 16px; }
.prediction-kpis article { min-height: 82px; padding: 15px 17px; border: 1px solid var(--stroke); border-radius: 14px; background: linear-gradient(145deg,rgba(98,230,198,.045),var(--panel) 55%); }
.prediction-kpis small,.prediction-kpis strong,.prediction-kpis span { display: block; }
.prediction-kpis small { color: var(--muted); font-size: 8px; }
.prediction-kpis strong { margin: 6px 0 3px; font: 600 22px/1 "Manrope",sans-serif; letter-spacing: -.5px; }
.prediction-kpis span { color: #677e8e; font-size: 7px; }
.prediction-layout { display: grid; grid-template-columns: minmax(0,1.75fr) minmax(270px,.75fr); gap: 16px; }
.prediction-map-panel,.risk-ranking,.forecast-chart-panel,.model-card { border: 1px solid var(--stroke); border-radius: var(--radius); background: var(--panel); padding: 18px; min-width: 0; }
.prediction-map-panel { padding-bottom: 12px; }
.model-live { color: var(--mint); font-size: 7px; letter-spacing: .7px; display: flex; align-items: center; gap: 6px; }
.model-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 8px var(--mint); }
.prediction-map-wrap { height: 250px; margin-top: 12px; position: relative; overflow: hidden; border-radius: 12px; background: radial-gradient(circle at 55% 45%,#132536,#091620 70%); }
#prediction-map { width: 100%; height: 100%; display: block; z-index: 0; }
.prediction-map-legend { position: absolute; left: 11px; bottom: 10px; z-index: 500; display: flex; gap: 11px; padding: 7px 9px; border: 1px solid var(--stroke); border-radius: 8px; background: rgba(6,16,26,.78); font-size: 7px; color: #8095a3; }
.prediction-map-legend span { display: flex; align-items: center; gap: 5px; }
.prediction-map-legend i { display: inline-block; width: 14px; height: 3px; border-radius: 3px; }
.now-line { background: var(--cyan); }.future-line { background: var(--coral); }.risk-area { background: rgba(255,102,118,.32); border: 1px solid var(--coral); height: 7px !important; }
.risk-ranking { display: flex; flex-direction: column; }
.risk-row { display: grid; grid-template-columns: 25px 1fr auto; gap: 9px; align-items: start; padding: 15px 0; border-bottom: 1px solid var(--stroke); }
.risk-row>span { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 7px; color: var(--muted); background: #152635; font-size: 7px; }
.risk-row.critical>span { color: var(--coral); background: rgba(255,102,118,.1); }.risk-row.warning>span { color: var(--amber); background: rgba(255,191,105,.1); }
.risk-row strong,.risk-row small { display: block; }.risk-row strong { font-size: 8px; }.risk-row small { margin-top: 4px; color: var(--muted); font-size: 7px; }
.risk-row div>i { display: block; height: 3px; margin-top: 8px; border-radius: 3px; background: #1b2c3a; overflow: hidden; }.risk-row div>i b { display: block; height: 100%; border-radius: 3px; background: var(--mint); }.risk-row.critical div>i b { background: var(--coral); }.risk-row.warning div>i b { background: var(--amber); }
.risk-row em { color: var(--muted); font: 600 9px "Manrope",sans-serif; font-style: normal; }.risk-row.critical em { color: var(--coral); }.risk-row.warning em { color: var(--amber); }
.prediction-action { margin-top: auto; width: 100%; }
.forecast-chart-panel { min-height: 290px; }
.forecast-legend { display: flex; gap: 10px; font-size: 7px; color: var(--muted); }.forecast-legend span { display: flex; align-items: center; gap: 4px; }.forecast-legend i { width: 13px; height: 2px; display: inline-block; }.observed-key { background: var(--cyan); }.forecast-key { background: var(--mint); }.band-key { height: 6px !important; background: rgba(98,230,198,.15); border: 1px solid rgba(98,230,198,.35); }
#prediction-chart { width: 100%; height: 230px; margin-top: 10px; }
.model-card { background: linear-gradient(150deg,rgba(98,230,198,.055),var(--panel) 48%); }
.model-score { padding: 21px 0 16px; border-bottom: 1px solid var(--stroke); }.model-score strong,.model-score span { display: block; }.model-score strong { color: var(--mint); font: 600 29px/1 "Manrope",sans-serif; }.model-score span { margin-top: 7px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.model-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 5px; }.model-metrics div { padding: 11px 8px 9px 0; border-bottom: 1px solid var(--stroke); }.model-metrics small,.model-metrics strong { display: block; }.model-metrics small { color: var(--muted); font-size: 7px; }.model-metrics strong { margin-top: 5px; font-size: 9px; }
.model-note { display: grid; grid-template-columns: 18px 1fr; gap: 7px; margin: 14px 0 0; color: #738997; font-size: 7px; line-height: 1.5; }.model-note i { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: var(--cyan); background: rgba(68,183,232,.09); font-style: normal; }
.model-features { display:flex; flex-wrap:wrap; gap:5px; margin-top:12px; }.model-features span { padding:5px 7px; border:1px solid var(--stroke); border-radius:6px; color:#8195a2; background:rgba(255,255,255,.018); font-size:6.5px; }
@media (max-width:1180px) { .prediction-layout { grid-template-columns: 1fr; }.prediction-kpis { grid-template-columns: repeat(2,1fr); }.risk-ranking { min-height: 310px; }.incident-detail #incident-map { height: 100%; min-height: 270px; } }
@media (max-width:880px) { .main-nav { grid-template-columns: repeat(8,1fr) !important; }.prediction-kpis { grid-template-columns: repeat(2,1fr); }.prediction-layout { grid-template-columns: 1fr; } }
@media (max-width:560px) { .prediction-kpis { grid-template-columns: 1fr; }.forecast-legend { display: none; }.prediction-map-wrap { height: 220px; } }

/* Data download workspace. */
.download-icon::before { content:""; position:absolute; left:9px; top:1px; height:11px; border-left:1.8px solid currentColor; }
.download-icon::after { content:""; position:absolute; left:5px; top:7px; width:7px; height:7px; border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor; transform:rotate(45deg); }
.download-icon i { position:absolute; left:3px; right:3px; bottom:1px; height:5px; border:1.6px solid currentColor; border-top:0; border-radius:0 0 3px 3px; }
.download-header { align-items:center !important; }.download-header-actions { display:flex; gap:8px; }.download-primary { min-height:36px; padding:0 15px; border:0; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; gap:8px; color:#052019; background:var(--mint); font-size:8px; font-weight:700; cursor:pointer; }.download-primary:hover{filter:brightness(1.05)}.download-primary.full{width:100%;height:42px;margin-top:14px}
.button-download-icon,.mini-download-icon { position:relative; width:15px; height:15px; display:inline-block; }.button-download-icon::before,.mini-download-icon::before { content:""; position:absolute; left:7px; top:0; height:9px; border-left:1.6px solid currentColor; }.button-download-icon::after,.mini-download-icon::after { content:""; position:absolute; left:4px; top:5px; width:6px; height:6px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg); }.mini-download-icon{width:12px;height:12px}.mini-download-icon::before{left:6px;height:7px}.mini-download-icon::after{left:3px;top:3px}
.download-product-strip,.export-builder,.export-preview,.download-activity-panel { border:1px solid var(--stroke); border-radius:var(--radius); background:var(--panel); }
.download-product-strip { padding:17px; }.product-strip-title { display:flex; align-items:end; justify-content:space-between; margin-bottom:12px; }.product-strip-title h3 { margin:5px 0 0; font-size:13px; }.product-strip-title>span { color:var(--muted); font-size:7px; }.product-grid { display:grid; grid-template-columns:repeat(7,minmax(118px,1fr)); gap:7px; }
.dataset-card { min-height:72px; padding:10px; display:grid; grid-template-columns:31px 1fr; grid-template-rows:1fr auto; gap:7px 8px; align-items:center; border:1px solid transparent; border-radius:11px; background:#0d1b29; text-align:left; cursor:pointer; transition:.18s ease; }.dataset-card:hover { border-color:var(--stroke-strong); transform:translateY(-1px); }.dataset-card.active { border-color:rgba(98,230,198,.38); background:linear-gradient(145deg,rgba(98,230,198,.115),#0d1b29 58%); box-shadow:inset 0 0 0 1px rgba(98,230,198,.05); }.dataset-symbol { width:31px; height:31px; border-radius:9px; display:grid; place-items:center; font:700 8px "Manrope",sans-serif; grid-row:1/-1; }.violet-bg{background:rgba(156,140,255,.1);color:var(--violet)}.coral-bg{background:rgba(255,102,118,.1);color:var(--coral)}.neutral-bg{background:#182a39;color:#8197a6}.dataset-card span strong,.dataset-card span small{display:block}.dataset-card span strong{font-size:7.5px}.dataset-card span small{margin-top:3px;color:var(--muted);font-size:6.5px;line-height:1.25}.dataset-card em{justify-self:end;padding:3px 5px;border-radius:4px;color:#6d8290;background:#142432;font-size:5.5px;font-style:normal}
.download-workbench { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(270px,.6fr); gap:14px; margin-top:14px; }.export-builder { padding:20px; }.export-builder-head { display:flex; justify-content:space-between; align-items:start; padding-bottom:16px; border-bottom:1px solid var(--stroke); }.export-builder-head h3{margin:5px 0 0;font:600 16px "Manrope",sans-serif}.contract-badge{padding:6px 8px;border:1px solid rgba(68,183,232,.2);border-radius:6px;color:var(--cyan);background:rgba(68,183,232,.07);font-size:6.5px;letter-spacing:.7px}.export-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;padding:18px 0}.export-form-grid label>span{display:block;margin:0 0 6px;color:#869aa8;font-size:7px}.export-form-grid select{width:100%;height:38px;padding:0 27px 0 10px;border:1px solid var(--stroke);border-radius:9px;outline:none;color:#c4d3d7;background:#0e1d2b;font-size:8px}.export-form-grid select:focus{border-color:rgba(98,230,198,.5)}
.format-block{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 0;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.format-block>div:first-child strong,.format-block>div:first-child small{display:block}.format-block strong{font-size:9px}.format-block small{margin-top:4px;color:var(--muted);font-size:7px}.format-options{display:flex;gap:5px;flex-wrap:wrap;justify-content:end}.format-options button{height:29px;padding:0 10px;border:1px solid var(--stroke);border-radius:8px;color:var(--muted);background:transparent;font-size:7px;cursor:pointer}.format-options button.active{border-color:rgba(98,230,198,.35);color:var(--mint);background:rgba(98,230,198,.08)}.export-options{display:flex;flex-wrap:wrap;gap:17px;padding:15px 0 0}.export-options label{display:flex;align-items:center;gap:6px;color:#8499a7;font-size:7px}.export-options input{accent-color:var(--mint)}
.export-preview{padding:20px;background:linear-gradient(150deg,rgba(98,230,198,.055),var(--panel) 44%)}.export-preview h3{margin:5px 0 0;font-size:14px}.preview-dataset{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;margin:18px 0;padding:12px;border:1px solid rgba(98,230,198,.14);border-radius:11px;background:rgba(98,230,198,.04)}.preview-dataset .dataset-symbol{grid-row:auto}.preview-dataset small,.preview-dataset strong{display:block}.preview-dataset small{color:var(--muted);font-size:6px}.preview-dataset strong{margin-top:4px;font-size:8px}.export-preview dl{margin:0}.export-preview dl div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--stroke);font-size:7.5px}.export-preview dt{color:var(--muted)}.export-preview dd{margin:0;color:#cedbdd}.export-size{padding:14px 0}.export-size small,.export-size strong,.export-size span{display:block}.export-size small{color:var(--muted);font-size:6.5px;letter-spacing:.8px}.export-size strong{margin-top:5px;font-size:11px}.export-size span{margin-top:3px;color:#607786;font-size:7px}.export-safety{display:grid;grid-template-columns:20px 1fr;gap:8px;color:#7f95a2;font-size:7px;line-height:1.45}.export-safety i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--mint);background:rgba(98,230,198,.09);font-style:normal}.save-query{width:100%;margin-top:7px;border:0;background:transparent;color:var(--muted);font-size:7px;cursor:pointer}.export-feedback{min-height:0;max-height:0;overflow:hidden;margin-top:0;padding:0 10px;border:0 solid rgba(98,230,198,.15);border-radius:8px;color:var(--mint);background:rgba(98,230,198,.055);font-size:7px;transition:.2s}.export-feedback.visible{min-height:34px;max-height:68px;margin-top:9px;padding:9px 10px;border-width:1px}
.download-activity-panel{margin-top:14px;padding:0;overflow:hidden}.download-activity-panel>.panel-title{padding:16px 18px}.download-activity-panel>.panel-title .eyebrow{margin-bottom:4px}.download-table{border-top:1px solid var(--stroke)}.download-row{min-height:51px;padding:0 18px;display:grid;grid-template-columns:1.45fr 1.15fr .55fr .55fr .7fr .8fr;align-items:center;border-bottom:1px solid var(--stroke);color:#9eb0ba;font-size:8px}.download-row:last-child{border-bottom:0}.download-row.header{min-height:33px;color:#607686;background:rgba(255,255,255,.015);font-size:7px;text-transform:uppercase;letter-spacing:.6px}.download-row>span:first-child{display:flex;align-items:center;gap:9px}.download-row b{color:#d1dfe1;font-weight:600}.status-processing{padding:5px 7px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.08);font-size:7px;font-style:normal}.table-download{border:0;display:inline-flex;align-items:center;gap:5px;color:var(--mint);background:transparent;font-size:7px;cursor:pointer}.table-download.disabled{color:#526877;cursor:default}
@media (max-width:1180px){.product-grid{grid-template-columns:repeat(4,1fr)}.download-workbench{grid-template-columns:1fr}.export-form-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:880px){.product-grid{grid-template-columns:repeat(2,1fr)}.export-form-grid{grid-template-columns:repeat(2,1fr)}.download-table{overflow-x:auto}.download-row{min-width:760px}}
@media (max-width:560px){.product-grid,.export-form-grid{grid-template-columns:1fr}.format-block{align-items:flex-start;flex-direction:column}.format-options{justify-content:start}.download-header-actions{margin-top:14px}}

* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: "DM Sans", sans-serif; overflow: hidden; }
button, input { font: inherit; }
button { color: inherit; }
.app-shell { display: grid; grid-template-columns: 238px minmax(0, 1fr); height: 100vh; }
.sidebar { background: #08131f; border-right: 1px solid var(--stroke); padding: 24px 18px 18px; display: flex; flex-direction: column; position: relative; z-index: 10; }
.brand { color: var(--text); text-decoration: none; display: flex; align-items: center; gap: 11px; min-height: 44px; padding: 0 9px 26px; }
.brand-mark { display: block; flex: 0 0 42px; width: 42px; height: 42px; object-fit: contain; filter: drop-shadow(0 7px 13px rgba(7, 120, 97, .24)); }
.brand-copy { display: flex; align-items: baseline; gap: 7px; }
.brand-copy strong { font: 700 21px/1 "Manrope", sans-serif; letter-spacing: -.6px; }
.brand-copy small { color: var(--mint); font: 700 9px/1 "Manrope", sans-serif; letter-spacing: 2.2px; }
.main-nav { display: grid; gap: 6px; }
.nav-item { position: relative; background: transparent; border: 0; border-radius: 12px; min-height: 48px; padding: 0 12px; color: #7f93a2; display: grid; grid-template-columns: 25px 1fr auto; gap: 10px; align-items: center; text-align: left; cursor: pointer; transition: .2s ease; font-weight: 500; }
.nav-item:hover { background: rgba(255,255,255,.035); color: #dce9ec; }
.nav-item.active { color: var(--text); background: linear-gradient(90deg, rgba(98,230,198,.13), rgba(98,230,198,.035)); }
.nav-item.active::before { content: ""; position: absolute; left: -18px; width: 3px; height: 24px; background: var(--mint); border-radius: 0 6px 6px 0; box-shadow: 0 0 12px rgba(98,230,198,.5); }
.nav-badge { min-width: 22px; height: 22px; border-radius: 8px; background: rgba(255,102,118,.16); color: var(--coral); display: grid; place-items: center; font-size: 11px; }
.nav-icon { width: 20px; height: 20px; display: inline-grid; place-items: center; position: relative; }
.live-icon { border: 1.5px solid currentColor; border-radius: 50%; }
.live-icon i { width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.route-icon i { position: absolute; width: 5px; height: 5px; border: 1.5px solid currentColor; border-radius: 50%; }
.route-icon i:first-child { left: 2px; top: 3px; }
.route-icon i:last-child { right: 2px; bottom: 3px; }
.route-icon::after { content: ""; width: 13px; height: 1.5px; background: currentColor; transform: rotate(36deg); }
.chart-icon { align-items: end; grid-auto-flow: column; gap: 2px; }
.chart-icon i { width: 3px; border-radius: 2px; background: currentColor; }
.chart-icon i:nth-child(1) { height: 7px; }.chart-icon i:nth-child(2) { height: 15px; }.chart-icon i:nth-child(3) { height: 11px; }
.alert-icon { border: 1.5px solid currentColor; border-radius: 6px 6px 8px 8px; font-weight: 700; font-size: 11px; }
.quality-icon { border: 1.5px solid currentColor; border-radius: 50%; }
.quality-icon i { width: 7px; height: 4px; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg) translateY(-1px); }
.delivery-icon { border: 1.5px solid currentColor; border-radius: 4px; }
.delivery-icon::before, .delivery-icon::after { content: ""; position: absolute; height: 1.5px; width: 8px; background: currentColor; left: 5px; }
.delivery-icon::before { top: 6px; }.delivery-icon::after { top: 11px; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 12px; }
.system-mini { border: 1px solid var(--stroke); border-radius: 12px; padding: 12px; display: flex; align-items: center; gap: 10px; }
.status-dot { width: 8px; height: 8px; background: var(--mint); border-radius: 50%; box-shadow: 0 0 0 4px rgba(98,230,198,.09), 0 0 12px rgba(98,230,198,.5); }
.system-mini strong, .system-mini small, .profile strong, .profile small { display: block; }
.system-mini strong { font-size: 11px; }.system-mini small { font-size: 9px; color: var(--muted); margin-top: 2px; }
.profile { border: 0; background: transparent; border-radius: 12px; padding: 9px; display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; text-align: left; cursor: pointer; }
.profile:hover { background: rgba(255,255,255,.035); }
.profile > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(135deg,#34495c,#172536); font-weight: 700; font-size: 11px; }
.profile strong { font-size: 11px; }.profile small { color: var(--muted); font-size: 9px; margin-top: 2px; }.profile b { color: var(--muted); }
.language-toggle{width:100%;padding:8px 9px;border:1px solid transparent;border-radius:11px;color:#8ba0aa;background:transparent;display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer}.language-toggle:hover{border-color:rgba(98,230,198,.14);background:rgba(98,230,198,.035)}.language-toggle>span{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:var(--mint);background:rgba(98,230,198,.08);font:700 11px "Manrope",sans-serif}.language-toggle strong,.language-toggle small{display:block}.language-toggle strong{color:#c9d7da;font-size:9px}.language-toggle small{margin-top:1px;color:#617987;font-size:8px}.language-toggle>b{color:#58717e;font-size:10px}
body[data-user-role="viewer"] [data-download-action],body[data-user-role="viewer"] .table-download:not(.disabled),body[data-user-role="viewer"] #create-export,body[data-user-role="viewer"] #start-new-export,body[data-user-role="viewer"] #save-export-query,body[data-user-role="viewer"] #schedule-export,body[data-user-role="viewer"] #alert-export-evidence{opacity:.42;pointer-events:none;filter:grayscale(.4)}
.users-icon{position:relative}.users-icon i{position:absolute;border:1.5px solid currentColor;border-radius:50%}.users-icon i:first-child{width:7px;height:7px;left:4px;top:3px}.users-icon i:last-child{width:10px;height:6px;left:2px;bottom:3px;border-radius:7px 7px 3px 3px}.users-icon::after{content:"";position:absolute;width:5px;height:5px;right:2px;top:5px;border:1.5px solid currentColor;border-radius:50%;opacity:.65}
.main-stage { min-width: 0; height: 100vh; display: grid; grid-template-rows: 76px minmax(0,1fr); background: #08121d; }
.topbar { background: rgba(8,18,29,.96); border-bottom: 1px solid var(--stroke); display: flex; align-items: center; padding: 0 26px; justify-content: space-between; gap: 22px; position: relative; z-index: 9; }
.page-heading { min-width: 190px; }.page-heading h1 { font: 600 20px/1.1 "Manrope",sans-serif; margin: 5px 0 0; letter-spacing: -.35px; }.eyebrow { margin: 0; color: var(--mint); letter-spacing: 1.6px; font-size: 8px; font-weight: 700; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.road-pk-search{position:relative;width:min(590px,47vw);height:48px;margin-left:auto;border:1px solid var(--stroke);border-radius:12px;display:grid;grid-template-columns:minmax(100px,1.25fr) 1px minmax(74px,.75fr) 15px minmax(74px,.75fr) 82px;align-items:center;padding:0 5px 0 13px;background:rgba(255,255,255,.025);transition:.18s}.road-pk-search:focus-within{border-color:rgba(98,230,198,.52);box-shadow:0 0 0 3px rgba(98,230,198,.06)}.road-pk-search label{display:grid;gap:3px;min-width:0}.road-pk-search label>span{font-size:6px;letter-spacing:1px;color:#5f7788;font-weight:700}.road-pk-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#dce8ea;font:600 10px "DM Sans"}.road-pk-search input::placeholder{color:#718797;font-weight:500}.search-divider{height:26px;background:var(--stroke)}.pk-arrow{color:#547080;font-size:10px;text-align:center}.road-pk-search>button{height:36px;border:0;border-radius:9px;background:var(--mint);color:#052019;display:flex;align-items:center;justify-content:center;gap:7px;font-size:8px;font-weight:700;cursor:pointer}.road-pk-search>button .search-glyph{border-color:#052019;width:11px;height:11px}.road-pk-search>button .search-glyph::after{background:#052019}.search-feedback{position:absolute;top:53px;left:0;min-width:290px;max-width:100%;display:none;padding:8px 11px;border:1px solid var(--stroke);border-radius:9px;background:#0b1b29;color:#9eb2bd;font-size:8px;box-shadow:var(--shadow)}.search-feedback.visible{display:block}.search-feedback.error{color:var(--coral);border-color:rgba(245,34,45,.28)}
@media(max-width:1350px){.road-pk-search{width:min(500px,45vw);grid-template-columns:minmax(90px,1fr) 1px 70px 12px 70px 66px}.road-pk-search>button b{display:none}.road-pk-search>button{width:36px;justify-self:end}}
@media(max-width:1000px){.road-pk-search{width:min(430px,58vw)}.time-button{display:none}}
@media(max-width:880px){.road-pk-search{width:min(500px,72vw);height:44px;grid-template-columns:minmax(80px,1fr) 1px 68px 10px 68px 36px}.road-pk-search label>span{display:none}.search-feedback{top:48px}.top-actions{display:none}}
@media(max-width:560px){.road-pk-search{width:78vw;padding-left:8px;grid-template-columns:minmax(60px,1fr) 1px 55px 8px 55px 32px}.road-pk-search input{font-size:9px}.road-pk-search>button{width:30px;height:32px}}
.global-search { width: min(320px, 24vw); height: 40px; border: 1px solid var(--stroke); border-radius: 11px; display: flex; align-items: center; padding: 0 10px; gap: 9px; background: rgba(255,255,255,.02); }
.global-search:focus-within { border-color: rgba(98,230,198,.5); box-shadow: 0 0 0 3px rgba(98,230,198,.06); }
.global-search input { width: 100%; min-width: 0; background: transparent; color: var(--text); border: 0; outline: 0; font-size: 11px; }
.global-search input::placeholder { color: #657989; }.global-search kbd { color: #657989; font-size: 9px; padding: 3px 5px; border: 1px solid var(--stroke); border-radius: 5px; }
.search-glyph { width: 13px; height: 13px; border: 1.5px solid #718797; border-radius: 50%; position: relative; flex: 0 0 auto; }.search-glyph::after { content: ""; width: 5px; height: 1.5px; background: #718797; position: absolute; right: -4px; bottom: -2px; transform: rotate(45deg); }
.icon-button, .time-button { height: 40px; border: 1px solid var(--stroke); border-radius: 11px; background: rgba(255,255,255,.02); cursor: pointer; }
.icon-button { width: 40px; position: relative; display: grid; place-items: center; }.icon-button i { position: absolute; width: 5px; height: 5px; background: var(--coral); border-radius: 50%; top: 8px; right: 8px; box-shadow: 0 0 0 2px #08121d; }
.bell-glyph { width: 12px; height: 14px; border: 1.5px solid #8ca0ae; border-radius: 7px 7px 4px 4px; }.bell-glyph::after { content:""; width: 5px; height: 1.5px; background:#8ca0ae; position:absolute; left:50%; transform:translateX(-50%); bottom:-4px; border-radius:2px; }
.time-button { display: flex; align-items: center; gap: 9px; padding: 0 12px; }.time-button span strong, .time-button span small { display: block; text-align: left; }.time-button small { color: var(--muted); font-size: 8px; }.time-button strong { font-size: 11px; margin-top: 1px; }.calendar-glyph { width: 14px; height: 14px; border: 1.5px solid #8ca0ae; border-radius: 3px; position: relative; }.calendar-glyph::before { content:""; position:absolute; left:2px; right:2px; top:4px; border-top:1px solid #8ca0ae; }
.mobile-brand { display: none; align-items: center; gap: 8px; }
.mobile-brand > img { display: block; width: 31px; height: 31px; object-fit: contain; filter: drop-shadow(0 5px 10px rgba(7,120,97,.2)); }
.view { display: none; min-height: 0; }.view.active { display: block; }
.map-workspace { position: relative; height: 100%; overflow: hidden; background: radial-gradient(circle at 55% 44%, #132436 0, #091724 45%, #07111b 80%); }
#traffic-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.map-workspace::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(7,16,26,.3),transparent 25%,transparent 75%,rgba(7,16,26,.18)); }
.map-glow { position:absolute; width:380px; height:380px; border-radius:50%; filter:blur(80px); opacity:.06; pointer-events:none; }.glow-a { background:var(--mint); left:32%; top:25%; }.glow-b { background:var(--cyan); right:12%; bottom:5%; }
.glass-panel { background: rgba(8,20,32,.84); border: 1px solid rgba(177,211,224,.15); box-shadow: var(--shadow); backdrop-filter: blur(18px); }
.map-toolbar { position: absolute; top: 18px; left: 20px; display: flex; align-items: center; padding: 5px; border-radius: 12px; z-index: 3; }
.map-tool, .filter-button { height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: #8196a5; font-size: 10px; cursor: pointer; display: flex; align-items: center; gap: 6px; }.map-tool:hover, .filter-button:hover { color:var(--text); }.map-tool.active { background:rgba(98,230,198,.11); color:var(--mint); }
.layer-glyph { width:13px; height:9px; border:1px solid currentColor; transform:skewY(-14deg); }.incident-glyph { width:14px; height:14px; border:1px solid currentColor; border-radius:50%; text-align:center; font-size:9px; font-weight:700; }.volume-glyph { width:13px; height:13px; background:repeating-linear-gradient(to right,currentColor 0 2px,transparent 2px 4px); opacity:.8; }.toolbar-divider { height:18px; border-left:1px solid var(--stroke-strong); margin:0 4px; }.filter-button span { width:12px; height:8px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; position:relative; }.filter-button span::after { content:""; position:absolute; left:3px; right:3px; top:3px; border-top:1px solid currentColor; }.filter-button b { display:grid; place-items:center; width:17px; height:17px; background:rgba(98,230,198,.13); color:var(--mint); border-radius:5px; font-size:8px; }
.map-zoom { position:absolute; left:20px; top:73px; display:grid; border-radius:11px; overflow:hidden; z-index:3; }.map-zoom button { width:34px; height:32px; background:transparent; border:0; border-bottom:1px solid var(--stroke); cursor:pointer; color:#9cb0bd; }.map-zoom button:last-child { border-bottom:0; }.map-zoom button:hover { color:var(--mint); background:rgba(255,255,255,.03); }
.operational-strip { position:absolute; left:20px; right:382px; top:66px; max-width:760px; border-radius:14px; padding:12px 8px; display:grid; grid-template-columns:repeat(4,1fr); z-index:2; }.operational-strip article { min-width:0; padding:0 14px; border-right:1px solid var(--stroke); position:relative; }.operational-strip article:last-child { border-right:0; }.metric-label { color:var(--muted); font-size:8px; display:flex; align-items:center; gap:5px; white-space:nowrap; }.dot { width:6px; height:6px; border-radius:50%; display:inline-block; }.dot.mint{background:var(--mint);box-shadow:0 0 8px var(--mint)}.dot.cyan{background:var(--cyan)}.dot.amber{background:var(--amber)}.dot.coral{background:var(--coral)}
.operational-strip article div { display:flex; align-items:baseline; gap:5px; margin-top:5px; }.operational-strip article div strong { font:600 23px/1 "Manrope",sans-serif; letter-spacing:-.8px; }.operational-strip article div small { font-size:8px; color:var(--muted); }.mini-trend { position:absolute; right:12px; bottom:1px; font-size:7px; }.mini-trend.positive{color:var(--mint)}.mini-trend.negative,.mini-trend.critical{color:var(--coral)}.mini-trend.neutral{color:var(--amber)}
.segment-card { position:absolute; top:18px; right:18px; width:346px; bottom:18px; z-index:4; border-radius:17px; padding:17px; overflow:auto; }.segment-card::-webkit-scrollbar { width:4px; }.segment-card::-webkit-scrollbar-thumb{background:#244054;border-radius:4px}.segment-card-head{display:flex;justify-content:space-between;align-items:center}.segment-card-head>div{display:flex;gap:7px}.segment-card-head>button{background:transparent;border:0;color:#607585;font-size:20px;cursor:pointer}.route-pill,.direction-pill,.quality-chip,.critical-chip{display:inline-flex;align-items:center;border-radius:7px;height:24px;padding:0 8px;font-size:9px;font-weight:700}.route-pill{background:var(--mint);color:#061813;letter-spacing:.4px}.direction-pill{background:#17293a;color:#94aabd}.segment-subtitle{margin:10px 0 6px;font-size:13px;font-weight:600}.pk-row{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:8px}.pk-row i{height:1px;background:#2a3d4b;flex:1;position:relative}.pk-row i::before,.pk-row i::after{content:"";width:4px;height:4px;background:#587084;border-radius:50%;position:absolute;top:-1.5px}.pk-row i::after{right:0}
.speed-hero{display:flex;align-items:center;gap:18px;margin:19px 0 16px}.speed-ring{width:94px;height:94px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--coral) 0 47%,#1a2c3b 47% 100%);position:relative}.speed-ring::before{content:"";position:absolute;inset:8px;background:#0b1927;border-radius:50%}.speed-ring strong,.speed-ring small{position:relative}.speed-ring strong{font:600 34px/1 "Manrope",sans-serif;letter-spacing:-2px}.speed-ring small{font-size:8px;color:var(--muted);margin-top:3px}.speed-context span,.speed-context strong,.speed-context small{display:block}.speed-context span{font-size:9px;color:var(--muted)}.speed-context strong{font:600 22px/1.3 "Manrope",sans-serif;color:var(--coral)}.speed-context small{font-size:8px;color:#647a8a}
.comparison-bars{display:grid;gap:8px}.comparison-bars>div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font-size:9px}.comparison-bars span{display:flex;align-items:center;color:#8da1af;gap:6px}.comparison-bars span i{display:block;height:4px;border-radius:4px}.bar-current{width:36%;background:var(--coral)}.bar-typical{width:75%;background:var(--cyan)}.bar-free{width:100%;background:#4a6476}.comparison-bars b{font-size:9px;font-weight:600}
#segment-sparkline{width:100%;height:73px;margin-top:14px;border-bottom:1px solid var(--stroke)}.spark-labels{display:flex;justify-content:space-between;color:#536a7a;font-size:7px;margin-top:5px}.quality-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;margin:14px 0;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke);padding:11px 0}.quality-row>div{border-right:1px solid var(--stroke);padding-left:10px}.quality-row>div:first-child{padding-left:0}.quality-row>div:last-child{border-right:0}.quality-row small,.quality-row strong{display:block}.quality-row small{font-size:7px;color:#607686;letter-spacing:1px}.quality-row strong{font-size:10px;margin-top:5px}.incident-callout{background:rgba(255,102,118,.08);border:1px solid rgba(255,102,118,.16);border-radius:11px;padding:10px;display:grid;grid-template-columns:25px 1fr auto;gap:9px;align-items:center}.warning-symbol{width:25px;height:25px;border-radius:8px;background:rgba(255,102,118,.14);color:var(--coral);display:grid;place-items:center;font-weight:700}.incident-callout strong,.incident-callout small{display:block}.incident-callout strong{font-size:9px}.incident-callout small{font-size:7px;color:#8a9daa;margin-top:3px}.incident-callout button{background:transparent;border:0;font-size:20px;color:#718695}.primary-action{width:100%;height:38px;margin-top:11px;border:0;border-radius:10px;background:var(--mint);color:#052019;font-size:9px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}.primary-action:hover{filter:brightness(1.06);transform:translateY(-1px)}
.map-legend{position:absolute;left:20px;bottom:20px;border-radius:11px;padding:9px 11px;display:flex;gap:12px;z-index:2}.map-legend span{font-size:7px;color:#7f94a3;display:flex;align-items:center;gap:5px}.legend-line{width:14px;height:3px;border-radius:3px}.legend-line.free{background:var(--sct-green)}.legend-line.dense{background:var(--sct-yellow)}.legend-line.slow{background:var(--sct-red)}.legend-line.stopped{background:var(--sct-black);box-shadow:0 0 0 1px rgba(255,255,255,.65)}.legend-line.nodata{background:var(--sct-nodata)}
.timeline{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:min(510px,42vw);height:39px;border-radius:12px;z-index:3;display:grid;grid-template-columns:35px 35px 1fr 35px 87px;align-items:center;padding:0 7px;gap:7px}.timeline>button:first-child{width:27px;height:27px;border:0;border-radius:8px;background:rgba(98,230,198,.12);color:var(--mint);cursor:pointer;font-size:8px}.timeline-time{font-size:8px;color:#647989}.timeline-time.active{color:#d6e6e8}.timeline input{appearance:none;width:100%;height:3px;background:linear-gradient(90deg,var(--mint) 0 100%);border-radius:3px;outline:0}.timeline input::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 4px rgba(98,230,198,.15)}.live-toggle{height:25px!important;width:auto!important;background:rgba(98,230,198,.1)!important;color:var(--mint)!important;font-size:7px!important;font-weight:700;letter-spacing:.7px}.live-toggle i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:4px;box-shadow:0 0 7px var(--mint)}
.content-view{height:100%;overflow:auto;padding:28px;background:radial-gradient(circle at 76% 0,rgba(49,112,128,.08),transparent 28%),#09131e}.content-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.content-header h2{font:600 26px/1.1 "Manrope",sans-serif;margin:6px 0 7px;letter-spacing:-.8px}.content-header p:last-child{margin:0;color:var(--muted);font-size:11px}.secondary-action{height:36px;padding:0 14px;border:1px solid rgba(98,230,198,.28);border-radius:10px;background:rgba(98,230,198,.08);color:var(--mint);font-size:9px;font-weight:700;cursor:pointer}.corridor-layout{display:grid;grid-template-columns:330px 1fr;gap:20px}.corridor-list{display:grid;gap:10px;align-content:start}.corridor-card{min-height:80px;border:1px solid var(--stroke);border-radius:14px;background:var(--panel);padding:13px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:6px 12px;cursor:pointer;transition:.2s}.corridor-card:hover{border-color:var(--stroke-strong);transform:translateY(-1px)}.corridor-card.selected{border-color:rgba(98,230,198,.4);background:linear-gradient(135deg,rgba(98,230,198,.08),var(--panel))}.corridor-card>div{display:flex;align-items:center;gap:9px}.corridor-card small{font-size:9px;color:#9aadb8}.corridor-card>strong{font:600 18px/1 "Manrope",sans-serif}.corridor-card>span{font-size:8px;align-self:end}.corridor-card>b{font-size:9px;color:var(--muted);text-align:right;align-self:end}.route-pill.blue{background:var(--cyan)}.route-pill.violet{background:var(--violet)}.route-pill.amber-bg{background:var(--amber)}.delay.severe{color:var(--coral)}.delay.medium{color:var(--amber)}.delay.mild{color:var(--mint)}
.analysis-panel,.wide-panel,.side-summary,.heatmap-panel,.incident-detail,.quality-hero,.quality-metric,.distribution-panel,.issues-panel,.delivery-table-panel{background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius);padding:20px}.analysis-head{display:flex;justify-content:space-between;align-items:start}.analysis-head>div{display:flex;align-items:center;gap:10px}.analysis-head h3{font-size:14px;margin:0}.quality-chip{background:rgba(98,230,198,.08);border:1px solid rgba(98,230,198,.15);color:var(--mint);gap:5px}.quality-chip i{width:5px;height:5px;background:var(--mint);border-radius:50%;box-shadow:0 0 6px var(--mint)}.quality-chip.large{height:34px;padding:0 12px}.journey-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.journey-kpis>div{border-left:1px solid var(--stroke);padding-left:13px}.journey-kpis small,.journey-kpis strong{display:block}.journey-kpis small{font-size:8px;color:var(--muted)}.journey-kpis strong{font:600 20px/1.4 "Manrope",sans-serif}.coral-text{color:var(--coral)}#corridor-chart{width:100%;height:245px;background:linear-gradient(180deg,rgba(68,183,232,.025),transparent);border-radius:10px}.bottleneck{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:12px;border-radius:11px;background:rgba(255,102,118,.06);border:1px solid rgba(255,102,118,.12);margin-top:12px}.bottleneck>span{font-size:8px;color:var(--coral);border:1px solid rgba(255,102,118,.2);border-radius:6px;padding:4px}.bottleneck strong,.bottleneck small{display:block}.bottleneck strong{font-size:9px}.bottleneck small{font-size:8px;color:var(--muted);margin-top:3px}.bottleneck button,.issues-panel .panel-title button{background:transparent;border:0;color:var(--mint);font-size:8px;cursor:pointer}
.date-filter{height:36px;border:1px solid var(--stroke);border-radius:10px;display:flex;align-items:center;gap:12px;padding:0 13px;font-size:9px;color:#a8bac3}.date-filter i{color:var(--muted)}.historical-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(240px,.8fr);gap:18px}.wide-panel{min-height:330px}.panel-title{display:flex;justify-content:space-between;align-items:start}.panel-title h3{margin:0;font-size:12px}.panel-title small{display:block;color:var(--muted);font-size:8px;margin-top:4px}.legend-inline{display:flex;gap:12px;font-size:8px;color:var(--muted)}.legend-inline span{display:flex;align-items:center;gap:5px}.cyan-line,.ghost-line{display:inline-block;width:14px;height:2px;background:var(--cyan)}.ghost-line{background:#546b7a;border-top:1px dashed #8497a4}#history-chart{width:100%;height:245px;margin-top:14px}.side-summary{background:linear-gradient(150deg,rgba(98,230,198,.07),var(--panel) 45%)}.side-summary h3{font:600 20px/1.25 "Manrope",sans-serif;margin:12px 0}.side-summary>p:not(.eyebrow){font-size:10px;line-height:1.6;color:var(--muted)}.insight{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:13px 0;border-top:1px solid var(--stroke)}.insight>span{font:600 10px "Manrope";color:var(--mint)}.insight strong,.insight small{display:block}.insight strong{font-size:9px}.insight small{font-size:8px;color:var(--muted);margin-top:3px}.heatmap-panel{grid-column:1/-1}.traffic-heatmap{display:grid;grid-template-columns:45px repeat(18,1fr);gap:3px;margin-top:18px}.heat-label{font-size:7px;color:var(--muted);display:flex;align-items:center}.heat-cell{height:19px;border-radius:3px;background:#132636}.heat-cell.l1{background:#174238}.heat-cell.l2{background:#286a51}.heat-cell.l3{background:#92733f}.heat-cell.l4{background:#9e4c4d}.heat-cell.l5{background:#c84e5e}
.segmented{display:flex;border:1px solid var(--stroke);border-radius:10px;padding:4px;background:rgba(255,255,255,.01)}.segmented button{border:0;background:transparent;color:var(--muted);padding:7px 11px;border-radius:7px;font-size:8px;cursor:pointer}.segmented button.active{background:rgba(98,230,198,.11);color:var(--mint)}.segmented.small button{padding:5px 9px}.incidents-layout{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(460px,1.15fr);gap:18px}.incident-list{display:grid;gap:9px;align-content:start}.incident-item{background:var(--panel);border:1px solid var(--stroke);border-radius:13px;padding:13px;display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:start;cursor:pointer}.incident-item:hover,.incident-item.selected{border-color:rgba(98,230,198,.3)}.incident-item.critical{border-left:3px solid var(--coral)}.incident-item.warning{border-left:3px solid var(--amber)}.incident-type{width:32px;height:32px;border-radius:10px;background:#182938;display:grid;place-items:center;color:var(--muted);font-weight:700}.incident-item.critical .incident-type{background:rgba(255,102,118,.1);color:var(--coral)}.incident-item.warning .incident-type{background:rgba(255,191,105,.1);color:var(--amber)}.incident-item>div>div{display:flex;justify-content:space-between}.incident-item strong{font-size:9px}.incident-item small{font-size:7px;color:var(--muted)}.incident-item h3{margin:6px 0 3px;font-size:11px}.incident-item p{margin:0;font-size:8px;color:var(--muted)}.incident-item>b{font-size:7px;color:var(--muted);padding:4px 6px;border:1px solid var(--stroke);border-radius:5px}.incident-item.critical>b{color:var(--coral);border-color:rgba(255,102,118,.2)}.incident-detail{padding:0;overflow:hidden}.incident-detail canvas{display:block;width:100%;height:230px;background:#0a1825}.incident-detail-copy{padding:19px}.critical-chip{margin-left:7px;background:rgba(255,102,118,.1);color:var(--coral)}.incident-detail h3{font:600 18px "Manrope";margin:13px 0 7px}.incident-detail p{font-size:9px;line-height:1.55;color:var(--muted)}.incident-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke);margin:15px 0}.incident-kpis span{padding:11px;border-right:1px solid var(--stroke)}.incident-kpis span:last-child{border-right:0}.incident-kpis small,.incident-kpis strong{display:block}.incident-kpis small{font-size:7px;color:var(--muted)}.incident-kpis strong{font-size:11px;margin-top:5px}.incident-detail .primary-action{width:auto;padding:0 18px}
.quality-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:16px}.quality-hero{grid-column:span 1;display:flex;align-items:center;gap:18px;min-height:160px}.donut{width:104px;height:104px;flex:0 0 auto;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--mint) 0 98.7%,#203342 98.7%);position:relative}.donut::before{content:"";position:absolute;inset:9px;background:var(--panel);border-radius:50%}.donut strong,.donut small{position:relative}.donut strong{font:600 20px "Manrope"}.donut small{font-size:8px;color:var(--muted)}.quality-hero h3{font-size:13px;margin:9px 0 6px}.quality-hero p:not(.eyebrow){font-size:8px;line-height:1.55;color:var(--muted);margin:0}.positive-pill{display:inline-flex;margin-top:10px;background:rgba(98,230,198,.08);color:var(--mint);font-size:7px;padding:5px 7px;border-radius:6px}.quality-metric{min-height:160px;display:flex;flex-direction:column;justify-content:center}.metric-symbol{width:35px;height:35px;border-radius:11px;display:grid;place-items:center;margin-bottom:17px;font-weight:700}.mint-bg{background:rgba(98,230,198,.1);color:var(--mint)}.cyan-bg{background:rgba(68,183,232,.1);color:var(--cyan)}.amber-bg2{background:rgba(255,191,105,.1);color:var(--amber)}.quality-metric small{font-size:8px;color:var(--muted)}.quality-metric strong{font:600 25px "Manrope";margin:5px 0}.quality-metric p{font-size:7px;color:var(--muted);margin:0}.distribution-panel,.issues-panel{grid-column:span 2;min-height:230px}.stacked-bar{height:14px;border-radius:8px;overflow:hidden;display:flex;margin:28px 0 20px}.stacked-bar>*{display:block;height:100%}.stacked-bar i{background:var(--mint)}.stacked-bar b{background:var(--cyan)}.stacked-bar em{background:var(--amber)}.stacked-bar span{background:#405667}.distribution-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.distribution-legend>div{display:flex;gap:8px;align-items:start}.distribution-legend i{width:7px;height:7px;border-radius:50%;margin-top:2px}.score30{background:var(--mint)}.score20{background:var(--cyan)}.score10{background:var(--amber)}.score0{background:#405667}.distribution-legend span,.distribution-legend strong{display:block;font-size:8px}.distribution-legend span{color:var(--muted)}.distribution-legend strong{color:var(--text);margin-top:4px}.issue-row{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:center;padding:15px 0;border-bottom:1px solid var(--stroke)}.issue-row:last-child{border-bottom:0}.issue-dot{width:7px;height:7px;border-radius:50%}.issue-dot.high{background:var(--coral)}.issue-dot.medium{background:var(--amber)}.issue-dot.low{background:var(--cyan)}.issue-row strong,.issue-row small{display:block}.issue-row strong{font-size:9px}.issue-row small{font-size:8px;color:var(--muted);margin-top:4px}.issue-row>b{font-size:7px;color:var(--muted);font-weight:500}
.quality-header{align-items:center}.quality-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.backend-source-badge{display:inline-flex;align-items:center;min-height:27px;padding:0 8px;border:1px solid rgba(68,183,232,.22);border-radius:7px;background:rgba(68,183,232,.07);color:var(--cyan);font-size:6.5px;font-weight:700;letter-spacing:.6px}.backend-source-badge.offline{border-color:rgba(255,191,105,.22);background:rgba(255,191,105,.07);color:var(--amber)}.quality-chip.degraded{background:rgba(255,191,105,.09);color:var(--amber)}.quality-chip.degraded i{background:var(--amber);box-shadow:0 0 7px var(--amber)}.quality-chip.offline{background:rgba(255,102,118,.09);color:var(--coral)}.quality-chip.offline i{background:var(--coral);box-shadow:0 0 7px var(--coral)}.quality-engine-strip{display:grid;grid-template-columns:36px 1fr auto;gap:11px;align-items:center;margin:-8px 0 16px;padding:11px 14px;border:1px solid rgba(68,183,232,.17);border-radius:12px;background:linear-gradient(90deg,rgba(68,183,232,.06),rgba(68,183,232,.015))}.quality-engine-strip>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(68,183,232,.11);color:var(--cyan);font:700 12px "Manrope",sans-serif}.quality-engine-strip strong,.quality-engine-strip small{display:block}.quality-engine-strip strong{font-size:9px}.quality-engine-strip small{margin-top:4px;color:var(--muted);font-size:7px;line-height:1.4}.quality-engine-strip>b{padding:6px 8px;border-radius:6px;background:rgba(98,230,198,.07);color:var(--mint);font-size:6px;letter-spacing:.5px}.quality-empty-state{display:grid;place-items:center;min-height:150px;color:var(--muted);font-size:9px}.issues-panel .issue-row{width:100%;border-width:0 0 1px;border-color:var(--stroke);border-style:solid;background:transparent;color:inherit;text-align:left;cursor:pointer}.issues-panel .issue-row:hover{background:rgba(255,255,255,.018)}.issue-dot.critical{background:var(--coral);box-shadow:0 0 7px rgba(255,102,118,.5)}.issue-row>b.critical,.issue-row>b.high{color:var(--coral)}.issue-row>b.medium{color:var(--amber)}.quality-metric,.quality-hero,.distribution-panel,.issues-panel{background:var(--panel);border:1px solid var(--stroke);border-radius:14px;padding:17px}.quality-hero .positive-pill.warning{background:rgba(255,191,105,.08);color:var(--amber)}
@media(max-width:880px){.quality-header-actions{justify-content:flex-start}.quality-engine-strip{grid-template-columns:36px 1fr}.quality-engine-strip>b{grid-column:1/-1}.quality-grid{grid-template-columns:1fr}.quality-hero,.distribution-panel,.issues-panel{grid-column:span 1}.distribution-legend{grid-template-columns:repeat(2,1fr)}}
.delivery-status-row{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.delivery-status-row article{background:var(--panel);border:1px solid var(--stroke);border-radius:14px;padding:15px;display:grid;grid-template-columns:36px 1fr auto;gap:11px;align-items:center}.status-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.status-icon.ok{background:rgba(98,230,198,.1);color:var(--mint)}.delivery-status-row small,.delivery-status-row strong{display:block}.delivery-status-row small{font-size:8px;color:var(--muted)}.delivery-status-row strong{font-size:10px;margin-top:4px}.delivery-status-row article>b{font-size:7px;color:var(--mint);background:rgba(98,230,198,.07);padding:5px 7px;border-radius:5px}.delivery-table-panel{padding:0;overflow:hidden}.delivery-table-panel>.panel-title{padding:18px}.delivery-table{border-top:1px solid var(--stroke)}.delivery-row{display:grid;grid-template-columns:2fr .7fr .7fr .7fr 1fr .7fr;align-items:center;min-height:52px;padding:0 18px;border-bottom:1px solid var(--stroke);font-size:8px;color:#a1b2bc}.delivery-row:last-child{border-bottom:0}.delivery-row.header{min-height:34px;color:#607686;font-size:7px;text-transform:uppercase;letter-spacing:.7px;background:rgba(255,255,255,.015)}.delivery-row>span:first-child{display:flex;align-items:center;gap:9px}.delivery-row b{font-weight:600;color:#cfdddf}.file-icon{width:28px;height:28px;border-radius:7px;background:rgba(68,183,232,.08);color:var(--cyan);display:grid;place-items:center;font-size:6px;font-style:normal}.warning-file{background:rgba(255,191,105,.08);color:var(--amber)}.status-success,.status-warning{font-style:normal;font-size:7px;border-radius:6px;padding:5px 7px}.status-success{background:rgba(98,230,198,.08);color:var(--mint)}.status-warning{background:rgba(255,191,105,.08);color:var(--amber)}
@media (max-width: 1180px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.sidebar{padding:22px 12px}.brand{justify-content:center;padding-left:0;padding-right:0}.brand-mark{width:40px;height:40px;flex-basis:40px}.brand-copy,.nav-item>span:last-of-type,.sidebar-bottom .system-mini,.profile div,.profile b,.language-toggle div,.language-toggle b{display:none}.nav-item{grid-template-columns:1fr;padding:0;place-items:center}.nav-item.active::before{left:-12px}.nav-badge{position:absolute;right:4px;top:5px;width:16px;min-width:16px;height:16px;font-size:7px}.profile,.language-toggle{grid-template-columns:1fr}.profile>span,.language-toggle>span{margin:auto}.operational-strip{right:378px}.timeline{left:39%;}.quality-grid{grid-template-columns:repeat(2,1fr)}.quality-hero{grid-column:span 2}.incidents-layout{grid-template-columns:1fr}.incident-detail{display:grid;grid-template-columns:1fr 1fr}.incident-detail canvas{height:100%}}
@media (max-width: 880px){body{overflow:auto}.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;height:64px;z-index:30;display:block;padding:6px 8px;border-right:0;border-top:1px solid var(--stroke)}.brand,.sidebar-bottom{display:none}.main-nav{display:grid;grid-template-columns:repeat(6,1fr);gap:2px}.nav-item{min-height:51px;display:flex;justify-content:center}.nav-item.active::before{left:25%;right:25%;top:-6px;width:auto;height:2px}.nav-badge{right:18%;top:3px}.main-stage{height:auto;min-height:100vh;display:block;padding-bottom:64px}.topbar{height:66px;padding:0 14px;position:sticky;top:0}.page-heading{display:none}.mobile-brand{display:inline-flex;font:700 17px "Manrope"}.mobile-brand b{font-size:8px;color:var(--mint);letter-spacing:1.5px}.global-search{width:210px}.time-button{display:none}.view.active{min-height:calc(100vh - 130px)}.map-workspace{min-height:760px}.operational-strip{left:12px;right:12px;top:62px;max-width:none;grid-template-columns:repeat(2,1fr);gap:10px}.operational-strip article:nth-child(2){border-right:0}.segment-card{top:190px;left:12px;right:12px;width:auto;bottom:80px}.map-toolbar{left:12px;top:12px}.map-zoom,.map-legend{display:none}.timeline{left:12px;right:12px;width:auto;transform:none;bottom:18px}.content-view{padding:20px 14px}.content-header{align-items:start}.corridor-layout,.historical-grid,.quality-grid,.delivery-status-row{grid-template-columns:1fr}.quality-hero,.distribution-panel,.issues-panel,.heatmap-panel{grid-column:1}.corridor-list{grid-template-columns:repeat(2,1fr)}.side-summary{grid-row:auto}.incidents-layout{grid-template-columns:1fr}.incident-detail{display:block}.delivery-table{overflow-x:auto}.delivery-row{min-width:760px}.traffic-heatmap{overflow:auto}.top-actions{margin-left:auto}}
@media (max-width: 560px){.global-search{width:150px}.global-search kbd{display:none}.icon-button{display:none}.corridor-list{grid-template-columns:1fr}.journey-kpis,.incident-kpis,.distribution-legend{grid-template-columns:repeat(2,1fr)}.quality-hero{display:block}.donut{margin-bottom:18px}.content-header{display:block}.content-header>*:last-child{margin-top:14px}.incident-detail .primary-action{width:100%}}

/* Historical comparator. */
.history-controls{display:flex;align-items:flex-end;gap:9px}.day-type-control>span{display:block;margin-bottom:5px;color:var(--muted);font-size:7px}.day-type-control select{height:36px;min-width:195px;padding:0 30px 0 11px;border:1px solid rgba(98,230,198,.25);border-radius:10px;outline:none;color:#d8e5e7;background:#0e1d2b;font-size:8px}.day-type-control select:focus{border-color:rgba(98,230,198,.55)}

/* Detailed segment analysis. */
.back-link{display:block;margin:0 0 10px;padding:0;border:0;background:transparent;color:var(--mint);font-size:8px;cursor:pointer}.segment-analysis-header{align-items:center}.analysis-status{min-width:190px;padding:11px 13px;border:1px solid var(--stroke);border-radius:11px;display:flex;align-items:center;gap:10px;background:var(--panel)}.analysis-status small,.analysis-status strong{display:block}.analysis-status small{color:var(--muted);font-size:7px}.analysis-status strong{margin-top:3px;font-size:9px}.tram-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.tram-kpis article{padding:15px 17px;border:1px solid var(--stroke);border-radius:14px;background:var(--panel)}.tram-kpis small,.tram-kpis strong,.tram-kpis span{display:block}.tram-kpis small{color:var(--muted);font-size:8px}.tram-kpis strong{margin:6px 0 3px;font:600 20px/1.1 "Manrope",sans-serif}.tram-kpis span{color:#6b8190;font-size:7px}.sct-red-text{color:var(--sct-red)!important}.tram-analysis-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:16px}.tram-map-panel,.tram-now-panel,.tram-chart-panel,.tram-events-panel{min-width:0;padding:18px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.tram-map-panel{padding-bottom:12px}.tram-map-panel #tram-map{height:255px;margin-top:12px;border-radius:12px;overflow:hidden}.sct-state{padding:5px 7px;border-radius:6px;font-size:6.5px;font-weight:700;letter-spacing:.8px}.sct-state.red{color:#fff;background:var(--sct-red)}.diagnostic-hero{display:flex;align-items:center;gap:12px;padding:20px 0 16px;border-bottom:1px solid var(--stroke)}.diagnostic-hero>span{font:600 32px/1 "Manrope",sans-serif;color:var(--sct-red)}.diagnostic-hero strong,.diagnostic-hero small{display:block}.diagnostic-hero strong{font-size:9px}.diagnostic-hero small{margin-top:4px;color:var(--muted);font-size:7px}.diagnostic-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--stroke);font-size:8px}.diagnostic-row span{color:var(--muted)}.tram-chart-panel{min-height:285px}.tram-chart-panel #tram-chart{width:100%;height:220px;margin-top:12px}.daytype-key{background:#6e8290}.tram-events-panel .event-row{display:grid;grid-template-columns:8px 34px 1fr;gap:8px;align-items:start;padding:12px 0;border-bottom:1px solid var(--stroke)}.event-row>i{width:7px;height:7px;margin-top:2px;border-radius:50%}.event-row>.sct-red{background:var(--sct-red)}.event-row>.sct-yellow{background:var(--sct-yellow)}.event-row>.sct-green{background:var(--sct-green)}.event-row>span{color:var(--muted);font-size:7px}.event-row strong,.event-row small{display:block}.event-row strong{font-size:8px}.event-row small{margin-top:4px;color:var(--muted);font-size:7px;line-height:1.35}

@media (max-width:1180px){.tram-analysis-grid{grid-template-columns:1fr}.tram-kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:880px){.history-controls{align-items:stretch;flex-direction:column}.day-type-control select{width:100%}.tram-kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.tram-kpis{grid-template-columns:1fr}.tram-analysis-grid{grid-template-columns:1fr}.analysis-status{min-width:0}}

/* Network filters and INRIX incident semantics. */
.services-icon i{position:absolute;width:5px;height:5px;border:1.4px solid currentColor;border-radius:2px}.services-icon i:nth-child(1){left:1px;top:2px}.services-icon i:nth-child(2){right:1px;top:2px}.services-icon i:nth-child(3){left:7px;bottom:1px}.services-icon::before,.services-icon::after{content:"";position:absolute;background:currentColor;opacity:.75}.services-icon::before{left:4px;right:4px;top:8px;height:1px}.services-icon::after{left:9px;top:7px;bottom:5px;width:1px}
.map-filter-panel{position:absolute;top:68px;left:20px;width:290px;padding:15px;border-radius:14px;z-index:690!important;background:rgba(8,20,31,.96)!important;box-shadow:0 22px 55px rgba(0,0,0,.45)}.map-filter-panel[hidden]{display:none}.map-filter-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:11px;border-bottom:1px solid var(--stroke)}.map-filter-head small,.map-filter-head strong{display:block}.map-filter-head small{color:var(--mint);font-size:6px;letter-spacing:.9px}.map-filter-head strong{margin-top:3px;font-size:11px}.map-filter-head>button{width:28px;height:28px;border:0;border-radius:8px;background:#142534;color:var(--muted);cursor:pointer}.map-filter-panel fieldset{margin:12px 0 0;padding:0 0 11px;border:0;border-bottom:1px solid var(--stroke);display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-filter-panel legend{grid-column:1/-1;margin-bottom:9px;color:#bfd0d5;font-size:8px;font-weight:600}.map-filter-panel label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:7.5px}.map-filter-panel input{accent-color:var(--mint)}.map-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.map-filter-actions .primary-action{width:100%;height:33px}.map-filter-clear{height:33px;border:1px solid var(--stroke);border-radius:9px;background:transparent;color:var(--muted);font-size:8px;cursor:pointer}.map-filter-panel output{display:block;min-height:0;margin-top:8px;color:var(--mint);font-size:7px;line-height:1.4}
.incident-header{margin-bottom:14px}.incident-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:9px;margin-bottom:16px;padding:12px;border:1px solid var(--stroke);border-radius:13px;background:var(--panel)}.incident-filters label>span,.service-filterbar label>span{display:block;margin:0 0 5px;color:var(--muted);font-size:7px}.incident-filters select,.service-filterbar select{width:100%;height:34px;padding:0 27px 0 9px;border:1px solid var(--stroke);border-radius:8px;outline:none;color:#c8d8db;background:#0e1d2b;font-size:8px}.incident-filters select:focus,.service-filterbar select:focus{border-color:rgba(98,230,198,.45)}.incident-item.resolved{opacity:.7}.incident-item.resolved>b{color:var(--mint);border-color:rgba(98,230,198,.2)}.incident-empty{margin:0;padding:24px;border:1px dashed var(--stroke);border-radius:12px;color:var(--muted);text-align:center;font-size:9px}.incident-detail-tags{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.incident-detail-tags .critical-chip{margin-left:0}.critical-chip,.status-chip{padding:5px 7px;border-radius:6px;font-size:6.5px;font-weight:700;letter-spacing:.4px}.status-chip.active{color:var(--mint);background:rgba(98,230,198,.08)}.incident-metadata{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 14px;border:1px solid var(--stroke);border-radius:10px;overflow:hidden}.incident-metadata div{padding:9px;border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.incident-metadata div:nth-child(3n){border-right:0}.incident-metadata div:nth-last-child(-n+3){border-bottom:0}.incident-metadata dt,.incident-metadata dd{display:block;margin:0}.incident-metadata dt{color:var(--muted);font-size:6.5px}.incident-metadata dd{margin-top:4px;font-size:8px}.incident-source-note{display:grid;grid-template-columns:19px 1fr;gap:7px;margin-bottom:14px;padding:10px;border:1px solid rgba(68,183,232,.14);border-radius:9px;color:#849aa6;background:rgba(68,183,232,.045);font-size:7px;line-height:1.45}.incident-source-note i{width:17px;height:17px;display:grid;place-items:center;border-radius:50%;color:var(--cyan);background:rgba(68,183,232,.1);font-style:normal}
.services-header{align-items:center}.services-score{min-width:105px;padding:12px 14px;border:1px solid rgba(98,230,198,.25);border-radius:13px;background:rgba(98,230,198,.07);text-align:center}.services-score strong,.services-score small{display:block}.services-score strong{color:var(--mint);font:600 23px/1 "Manrope",sans-serif}.services-score small{margin-top:4px;color:var(--muted);font-size:7px}.services-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px}.services-summary article{min-height:65px;padding:11px;border:1px solid var(--stroke);border-radius:12px;background:var(--panel);display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center}.services-summary article>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;color:var(--mint);background:rgba(98,230,198,.08);font-size:7px}.services-summary strong,.services-summary small{display:block}.services-summary strong{font-size:8.5px}.services-summary small{margin-top:3px;color:var(--muted);font-size:6.5px;line-height:1.25}.services-summary article>b{color:var(--mint);font-size:8px}.service-filterbar{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;margin-bottom:14px;padding:12px;border:1px solid var(--stroke);border-radius:13px;background:rgba(255,255,255,.012)}.service-filterbar .quality-chip{height:34px;padding:0 10px;align-self:end}.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.service-card{min-width:0;padding:18px;border:1px solid var(--stroke);border-radius:var(--radius);background:linear-gradient(145deg,rgba(98,230,198,.035),var(--panel) 48%)}.service-card-head{display:grid;grid-template-columns:39px 1fr auto;gap:11px;align-items:center}.service-symbol{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--mint);background:rgba(98,230,198,.1);font:700 8px "Manrope",sans-serif}.service-card-head h3{margin:3px 0 0;font-size:13px}.service-card-head>b{padding:5px 7px;border-radius:6px;color:var(--mint);background:rgba(98,230,198,.08);font-size:6px;letter-spacing:.5px}.service-card>p{min-height:38px;margin:14px 0;color:var(--muted);font-size:8px;line-height:1.55}.service-card>p em{color:#bdd0d5;font-style:normal}.service-card dl{display:grid;grid-template-columns:repeat(3,1fr);margin:13px 0}.service-card dl div{min-width:0;padding:9px;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.service-card dt,.service-card dd{margin:0}.service-card dt{color:var(--muted);font-size:6.5px}.service-card dd{margin-top:4px;color:#c5d5d9;font-size:7px;line-height:1.35}.service-card>.secondary-action,.service-card>.primary-action{width:100%}.lane-comparison{display:grid;gap:8px}.lane-comparison>div{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.lane-comparison span{font-size:7.5px}.lane-comparison strong{font-size:9px}.lane-comparison i{grid-column:1/-1;height:5px;border-radius:4px;background:#1a2b39;overflow:hidden}.lane-comparison i b{display:block;height:100%;border-radius:4px;background:#71838f}.lane-comparison .special{color:var(--mint)}.lane-comparison .special i b{background:var(--mint)}.reversible-status{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(98,230,198,.15);border-radius:10px;background:rgba(98,230,198,.04)}.reversible-status>span{display:flex;align-items:center;gap:5px;color:var(--mint);font-size:7px}.reversible-status>span i{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint)}.reversible-status small,.reversible-status strong{display:block}.reversible-status small{color:var(--muted);font-size:6px}.reversible-status strong{margin-top:3px;font-size:8px}.reversible-status time{color:var(--muted);font-size:7px}.heavy-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.heavy-metrics div{padding:10px;border:1px solid var(--stroke);border-radius:9px;background:rgba(255,255,255,.015)}.heavy-metrics small,.heavy-metrics strong{display:block}.heavy-metrics small{color:var(--muted);font-size:6.5px}.heavy-metrics strong{margin-top:5px;font-size:11px}.weight-bands{display:grid;gap:6px;margin:12px 0}.weight-bands span{position:relative;display:block;padding:6px 8px;border-radius:6px;overflow:hidden;background:#132432;color:#a9bbc3;font-size:7px}.weight-bands i{position:absolute;inset:0 auto 0 0;background:rgba(68,183,232,.12);z-index:0}.prediction-service-hero{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:12px;border-radius:10px;background:rgba(255,102,118,.05);border:1px solid rgba(255,102,118,.12)}.prediction-service-hero>strong{color:var(--coral);font:600 22px "Manrope",sans-serif}.prediction-service-hero>span{font-size:8px}.prediction-service-hero small{color:var(--muted)}.prediction-service-hero>i{color:var(--muted);font-style:normal}.prediction-service-hero>b{color:var(--coral);font-size:12px}.services-proof{display:grid;grid-template-columns:32px 1fr auto;gap:11px;align-items:center;margin-top:14px;padding:13px 15px;border:1px solid rgba(98,230,198,.18);border-radius:13px;background:rgba(98,230,198,.045)}.services-proof>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:var(--mint);background:rgba(98,230,198,.09)}.services-proof strong,.services-proof small{display:block}.services-proof strong{font-size:9px}.services-proof small{margin-top:4px;color:var(--muted);font-size:7px}.services-proof>b{color:var(--mint);font-size:6.5px;letter-spacing:.6px}
@media (max-width:1180px){.incident-filters{grid-template-columns:repeat(2,1fr)}.services-summary{grid-template-columns:repeat(2,1fr)}.services-grid{grid-template-columns:1fr}.service-filterbar{grid-template-columns:repeat(3,1fr)}.service-filterbar .quality-chip{grid-column:1/-1;justify-self:start}.incident-detail{grid-template-columns:1fr 1.25fr}.incident-detail #incident-map{height:100%}}
@media (max-width:880px){.main-nav{grid-template-columns:repeat(9,1fr)!important}.map-filter-panel{left:12px;top:58px}.incident-filters{grid-template-columns:repeat(2,1fr)}.services-summary{grid-template-columns:1fr 1fr}.service-filterbar{grid-template-columns:1fr 1fr}.service-filterbar .quality-chip{grid-column:1/-1}}
@media (max-width:560px){.incident-filters,.services-summary,.service-filterbar{grid-template-columns:1fr}.incident-metadata{grid-template-columns:1fr 1fr}.incident-metadata div:nth-child(n){border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.incident-metadata div:nth-child(2n){border-right:0}.incident-metadata div:nth-last-child(-n+2){border-bottom:0}.service-card dl{grid-template-columns:1fr}.services-proof{grid-template-columns:32px 1fr}.services-proof>b{grid-column:1/-1}.map-filter-panel{right:12px;width:auto}.services-header .services-score{margin-top:14px}.services-summary article{grid-template-columns:30px 1fr auto}}

/* IMD-driven data products. */
.product-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.delivery-tier-header{align-items:center}.delivery-header-actions{display:flex;align-items:center;gap:9px}.official-source-chip{min-height:42px;padding:8px 11px;border:1px solid var(--stroke);border-radius:11px;background:var(--panel);display:flex;align-items:center;gap:8px}.official-source-chip>i{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 8px rgba(255,191,105,.55)}.official-source-chip small,.official-source-chip strong{display:block}.official-source-chip small{color:var(--muted);font-size:5.8px;letter-spacing:.7px}.official-source-chip strong{margin-top:3px;font-size:7.5px}.imd-rule-banner{display:grid;grid-template-columns:35px 1fr auto;gap:11px;align-items:center;margin-bottom:13px;padding:12px 14px;border:1px solid rgba(68,183,232,.16);border-radius:13px;background:linear-gradient(90deg,rgba(68,183,232,.055),rgba(68,183,232,.015))}.rule-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:var(--cyan);background:rgba(68,183,232,.1);font:600 15px "Manrope",sans-serif}.imd-rule-banner strong,.imd-rule-banner small{display:block}.imd-rule-banner strong{font-size:9px}.imd-rule-banner small{margin-top:4px;color:var(--muted);font-size:7.5px}.imd-rule-banner>b{padding:6px 8px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.08);font-size:6px;letter-spacing:.55px}.tier-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.tier-card{position:relative;min-height:126px;padding:15px;border:1px solid var(--stroke);border-radius:14px;background:var(--panel);color:var(--text);display:grid;grid-template-columns:34px 1fr auto;grid-template-rows:1fr auto;gap:8px 11px;text-align:left;cursor:pointer;transition:.2s ease;overflow:hidden}.tier-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#415665;opacity:.8}.tier-card:hover{transform:translateY(-1px);border-color:var(--stroke-strong)}.tier-card.active{background:linear-gradient(145deg,rgba(255,255,255,.025),var(--panel));box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}.tier-card.tier-one.active{border-color:rgba(255,102,118,.38)}.tier-card.tier-two.active{border-color:rgba(255,191,105,.38)}.tier-card.tier-three.active{border-color:rgba(68,183,232,.38)}.tier-card.tier-one::after{background:var(--coral)}.tier-card.tier-two::after{background:var(--amber)}.tier-card.tier-three::after{background:var(--cyan)}.tier-number{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:#152635;color:var(--muted);font:600 9px "Manrope",sans-serif}.tier-one .tier-number{color:var(--coral);background:rgba(255,102,118,.09)}.tier-two .tier-number{color:var(--amber);background:rgba(255,191,105,.09)}.tier-three .tier-number{color:var(--cyan);background:rgba(68,183,232,.09)}.tier-card small{color:var(--muted);font-size:6.5px;letter-spacing:.4px}.tier-card h3{margin:5px 0 4px;font-size:11px}.tier-card p{margin:0;color:#708695;font-size:7px}.tier-card em{align-self:start;padding:4px 6px;border-radius:5px;background:#152635;color:var(--muted);font-size:5.5px;font-style:normal;letter-spacing:.4px}.tier-card>b{grid-column:2/-1;color:var(--muted);font-size:7px;font-weight:600}.tier-card.active>b{color:#c7d7da}.tier-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:14px}.tier-detail-panel,.imd-map-panel{min-width:0;padding:18px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.tier-detail-head{display:flex;align-items:start;justify-content:space-between;gap:15px}.tier-detail-head h3{margin:5px 0 4px;font:600 17px "Manrope",sans-serif}.tier-detail-head small{color:var(--muted);font-size:8px}.tier-threshold{padding:6px 8px;border-radius:7px;color:var(--coral);background:rgba(255,102,118,.08);font-size:7px;font-weight:700;white-space:nowrap}.tier-kpis{display:grid;grid-template-columns:repeat(4,1fr);margin:17px 0;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.tier-kpis>div{padding:11px;border-right:1px solid var(--stroke)}.tier-kpis>div:last-child{border-right:0}.tier-kpis small,.tier-kpis strong{display:block}.tier-kpis small{color:var(--muted);font-size:6.5px}.tier-kpis strong{margin-top:5px;font-size:10px}.requirement-list{display:grid;gap:7px}.requirement-row{min-height:56px;padding:9px;border:1px solid var(--stroke);border-radius:10px;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:start;background:rgba(255,255,255,.01)}.requirement-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;color:var(--muted);background:#162736;font:700 7px "Manrope",sans-serif}.requirement-icon.volume{color:var(--coral);background:rgba(255,102,118,.08)}.requirement-icon.od{color:var(--violet);background:rgba(156,140,255,.08)}.requirement-icon.junction{color:var(--amber);background:rgba(255,191,105,.08)}.requirement-icon.speed{color:var(--cyan);background:rgba(68,183,232,.08)}.requirement-row strong,.requirement-row small{display:block}.requirement-row strong{font-size:8.5px}.requirement-row small{margin-top:3px;color:var(--muted);font-size:7px;line-height:1.35}.requirement-row>b{padding:4px 6px;border-radius:5px;color:var(--mint);background:rgba(98,230,198,.06);font-size:5.5px;letter-spacing:.35px}.requirement-row.exempt{opacity:.72;border-style:dashed}.requirement-row.exempt>b{color:var(--muted);background:#152532}.field-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.field-chips i{padding:3px 5px;border:1px solid var(--stroke);border-radius:4px;color:#6f8593;font-size:5.5px;font-style:normal}.imd-map-panel{padding-bottom:12px}.imd-map-wrap{position:relative;height:304px;margin-top:12px;border-radius:12px;overflow:hidden;background:#091620}.imd-map-wrap #delivery-imd-map{width:100%;height:100%;z-index:0}.imd-map-pending{position:absolute;left:50%;top:50%;z-index:500;transform:translate(-50%,-50%);width:max-content;max-width:80%;padding:10px 12px;border:1px solid rgba(255,191,105,.2);border-radius:10px;background:rgba(7,16,26,.88);display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:center}.imd-map-pending>i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--amber);background:rgba(255,191,105,.1);font-style:normal;font-size:8px}.imd-map-pending strong,.imd-map-pending small{display:block}.imd-map-pending strong{font-size:7.5px}.imd-map-pending small{margin-top:3px;color:var(--muted);font-size:6.5px}.imd-tier-legend{position:absolute;left:10px;right:10px;bottom:9px;z-index:500;padding:7px 8px;border:1px solid var(--stroke);border-radius:8px;background:rgba(7,16,26,.86);display:flex;gap:10px;justify-content:center;flex-wrap:wrap;color:var(--muted);font-size:6.5px}.imd-tier-legend span{display:flex;align-items:center;gap:4px}.imd-tier-legend i{display:inline-block;width:13px;height:3px;border-radius:3px}.tier1-line{background:var(--coral)}.tier2-line{background:var(--amber)}.tier3-line{background:var(--cyan)}.unknown-line{background:var(--sct-nodata)}.imd-map-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:10px}.imd-map-stats>div{padding:8px;border-right:1px solid var(--stroke)}.imd-map-stats>div:last-child{border-right:0}.imd-map-stats small,.imd-map-stats strong,.imd-map-stats span{display:block}.imd-map-stats small{color:var(--muted);font-size:6px}.imd-map-stats strong{margin-top:4px;font-size:10px}.imd-map-stats span{margin-top:2px;color:#607785;font-size:6px}.tier-controls-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.tier-controls-grid article{min-height:98px;padding:13px;border:1px solid var(--stroke);border-radius:13px;background:var(--panel);display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:start}.control-symbol{width:33px;height:33px;display:grid;place-items:center;border-radius:9px;color:var(--cyan);background:rgba(68,183,232,.08);font-weight:700}.tier-controls-grid h3{margin:3px 0 5px;font-size:9px}.tier-controls-grid p:not(.eyebrow){margin:0;color:var(--muted);font-size:7px;line-height:1.4}.tier-controls-grid article>b{padding:4px 6px;border-radius:5px;color:var(--cyan);background:rgba(68,183,232,.07);font-size:5.5px;white-space:nowrap}.tier-delivery-table{margin-top:0}.imd-delivery-row{grid-template-columns:2fr .55fr .8fr .8fr 1fr .55fr}.tier-table-pill,.status-demo{display:inline-flex;padding:4px 6px;border-radius:5px;font-size:6.5px;font-style:normal}.tier-table-pill.tier1{color:var(--coral);background:rgba(255,102,118,.08)}.tier-table-pill.tier2{color:var(--amber);background:rgba(255,191,105,.08)}.tier-table-pill.tier3{color:var(--cyan);background:rgba(68,183,232,.08)}.status-demo{color:var(--muted);background:#172937}.imd-validation-feedback{display:block;max-height:0;overflow:hidden;margin-top:0;padding:0 12px;border:0 solid rgba(255,191,105,.15);border-radius:9px;color:var(--amber);background:rgba(255,191,105,.04);font-size:7px;transition:.2s}.imd-validation-feedback.visible{max-height:60px;margin-top:10px;padding:10px 12px;border-width:1px}
@media (max-width:1180px){.product-grid{grid-template-columns:repeat(4,1fr)}.tier-workspace{grid-template-columns:1fr}.tier-controls-grid{grid-template-columns:1fr 1fr}.delivery-header-actions{align-items:flex-end;flex-direction:column}.imd-map-wrap{height:270px}}
@media (max-width:880px){.tier-overview{grid-template-columns:1fr}.tier-controls-grid{grid-template-columns:1fr}.delivery-tier-header{display:block}.delivery-header-actions{margin-top:14px;align-items:stretch}.official-source-chip{justify-content:center}.imd-rule-banner{grid-template-columns:35px 1fr}.imd-rule-banner>b{grid-column:1/-1}.tier-delivery-table .delivery-table{overflow-x:auto}.imd-delivery-row{min-width:800px}.tier-kpis{grid-template-columns:repeat(2,1fr)}.tier-kpis>div:nth-child(2){border-right:0}.tier-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--stroke)}}
@media (max-width:560px){.product-grid{grid-template-columns:1fr}.tier-detail-head{display:block}.tier-threshold{display:inline-flex;margin-top:10px}.tier-kpis{grid-template-columns:1fr}.tier-kpis>div{border-right:0!important;border-bottom:1px solid var(--stroke)}.tier-kpis>div:last-child{border-bottom:0}.requirement-row{grid-template-columns:32px 1fr}.requirement-row>b{grid-column:2}.tier-controls-grid article{grid-template-columns:34px 1fr}.tier-controls-grid article>b{grid-column:2;justify-self:start}.imd-map-stats{grid-template-columns:1fr}.imd-map-stats>div{border-right:0;border-bottom:1px solid var(--stroke)}.imd-map-stats>div:last-child{border-bottom:0}}

/* Independent operational modules and functional Tier-to-road filtering. */
.main-nav{min-height:0;overflow-y:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.busvao-icon{border:1.4px solid currentColor;border-radius:5px}.busvao-icon::before,.busvao-icon::after{content:"";position:absolute;left:3px;right:3px;height:1.4px;background:currentColor}.busvao-icon::before{top:6px}.busvao-icon::after{bottom:6px}.busvao-icon i{width:4px;height:4px;border-radius:50%;background:currentColor}.reversible-icon::before,.reversible-icon::after{position:absolute;color:currentColor;font-size:13px;line-height:1}.reversible-icon::before{content:"↑";left:1px;top:0}.reversible-icon::after{content:"↓";right:1px;bottom:0}.heavy-icon{border:1.4px solid currentColor;border-radius:6px;font:700 8px "Manrope",sans-serif}.road-pk-search{width:min(700px,56vw);grid-template-columns:94px 1px minmax(92px,1fr) 1px 65px 12px 65px 72px}.road-pk-search select{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#dce8ea;font:600 9px "DM Sans";appearance:none}.road-pk-search select option{color:#dce8ea;background:#0e1d2b}.tier-field{position:relative;padding-right:12px}.tier-field::after{content:"⌄";position:absolute;right:0;bottom:2px;color:var(--mint);font-size:9px}.module-header{align-items:center}.module-state{height:31px;padding:0 10px;border:1px solid var(--stroke);border-radius:8px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:6.5px;font-weight:700;letter-spacing:.45px;white-space:nowrap}.module-state i{width:6px;height:6px;border-radius:50%;background:currentColor}.module-state.demo{color:var(--amber);border-color:rgba(255,191,105,.18);background:rgba(255,191,105,.06)}.module-state.open{color:var(--mint);border-color:rgba(98,230,198,.18);background:rgba(98,230,198,.06)}.module-filterbar{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:9px;margin-bottom:13px;padding:12px;border:1px solid var(--stroke);border-radius:13px;background:var(--panel)}.module-filterbar.heavy-filterbar{grid-template-columns:repeat(5,minmax(105px,1fr))}.module-filterbar label>span{display:block;margin-bottom:5px;color:var(--muted);font-size:7px}.module-filterbar select{width:100%;height:34px;padding:0 26px 0 9px;border:1px solid var(--stroke);border-radius:8px;outline:0;color:#cadadd;background:#0e1d2b;font-size:8px}.module-filterbar select:focus{border-color:rgba(98,230,198,.45)}.module-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:13px}.module-kpis article{min-height:75px;padding:13px 15px;border:1px solid var(--stroke);border-radius:12px;background:linear-gradient(145deg,rgba(255,255,255,.022),var(--panel))}.module-kpis small,.module-kpis strong,.module-kpis span{display:block}.module-kpis small{color:var(--muted);font-size:7px}.module-kpis strong{margin:6px 0 3px;font:600 18px/1 "Manrope",sans-serif}.module-kpis span{color:#657b8a;font-size:6.5px}.mint-text{color:var(--mint)!important}.amber-text{color:var(--amber)!important}.module-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:13px}.module-map-panel,.lane-panel,.module-chart-panel,.subsegment-panel,.state-list-panel,.schedule-panel,.weight-panel,.heavy-analysis-panel{min-width:0;padding:17px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.module-map-panel{padding-bottom:12px}.module-map-wrap{position:relative;height:285px;margin-top:11px;border-radius:11px;overflow:hidden;background:#091620}.module-map-wrap.tall{height:365px}.module-map-wrap>div[id$="-map"]{width:100%;height:100%;z-index:0}.module-map-note{position:absolute;left:9px;bottom:9px;z-index:500;max-width:78%;padding:7px 9px;border:1px solid rgba(68,183,232,.14);border-radius:7px;background:rgba(7,16,26,.86);display:flex;align-items:center;gap:7px;color:#7f95a2;font-size:6.5px}.module-map-note>i{width:16px;height:16px;display:grid;place-items:center;border-radius:50%;color:var(--cyan);background:rgba(68,183,232,.1);font-style:normal}.module-map-note.warning{border-color:rgba(255,191,105,.16)}.module-map-note.warning>i{color:var(--amber);background:rgba(255,191,105,.1)}.lane-panel{background:linear-gradient(145deg,rgba(98,230,198,.035),var(--panel) 55%)}.lane-schema{display:grid;gap:9px;margin:18px 0}.lane-schema>div{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:end;padding:11px;border:1px solid var(--stroke);border-radius:10px;background:#0d1b28}.lane-schema span{font-size:7px;letter-spacing:.5px}.lane-schema strong{font:600 22px/1 "Manrope",sans-serif}.lane-schema small{color:var(--muted);font-size:7px}.lane-schema i{grid-column:1/-1;height:5px;border-radius:5px;background:#1b2d3b;overflow:hidden}.lane-schema i b{display:block;height:100%;background:#70838f}.lane-schema .lane-busvao{border-color:rgba(98,230,198,.22)}.lane-schema .lane-busvao span,.lane-schema .lane-busvao strong{color:var(--mint)}.lane-schema .lane-busvao i b{background:var(--mint)}.operational-comparison>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--stroke);font-size:7.5px}.operational-comparison span{color:var(--muted)}.module-chart-panel{min-height:275px}.module-chart-panel canvas{width:100%;height:220px;margin-top:11px}.compact-table{margin-top:12px}.compact-row{min-height:39px;padding:0 7px;display:grid;grid-template-columns:1.6fr .6fr .6fr .7fr;gap:7px;align-items:center;border-bottom:1px solid var(--stroke);color:#93a6b0;font-size:7px}.compact-row.header{min-height:27px;color:#5f7685;text-transform:uppercase;font-size:6px}.compact-row strong,.compact-row b{color:var(--text)}.compact-row b{color:var(--mint)}.reversible-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:13px}.schedule-panel{grid-column:1/-1}.special-state-row{display:grid;grid-template-columns:83px 1fr auto;gap:9px;align-items:center;padding:12px 0;border-bottom:1px solid var(--stroke)}.special-state-row>span{display:flex;align-items:center;gap:5px;font-size:6.5px}.special-state-row>span i{width:6px;height:6px;border-radius:50%;background:currentColor}.special-state-row.open>span{color:var(--mint)}.special-state-row.transition>span{color:var(--amber)}.special-state-row.closed>span{color:var(--muted)}.special-state-row strong,.special-state-row small{display:block}.special-state-row strong{font-size:8px}.special-state-row small{margin-top:3px;color:var(--muted);font-size:6.5px}.special-state-row time{color:var(--muted);font-size:6.5px}.state-integrity{display:grid;grid-template-columns:27px 1fr;gap:8px;align-items:center;margin-top:12px;padding:10px;border-radius:9px;background:rgba(98,230,198,.045)}.state-integrity>span{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;color:var(--mint);background:rgba(98,230,198,.09)}.state-integrity strong,.state-integrity small{display:block}.state-integrity strong{font-size:7.5px}.state-integrity small{margin-top:3px;color:var(--muted);font-size:6.5px}.schedule-axis{display:grid;grid-template-columns:repeat(5,1fr);margin:18px 0 7px;padding-left:72px;color:var(--muted);font-size:6px}.schedule-lane{position:relative;height:34px;margin-bottom:7px;padding-left:72px}.schedule-lane>strong{position:absolute;left:0;top:10px;font-size:7px}.schedule-lane>i{position:absolute;top:5px;bottom:5px;left:72px;right:0;border-radius:5px}.closed-block{background:#172835}.open-block{right:auto!important;background:rgba(98,230,198,.45);z-index:1}.transition-block{right:auto!important;background:repeating-linear-gradient(45deg,rgba(255,191,105,.65),rgba(255,191,105,.65) 3px,rgba(255,191,105,.22) 3px,rgba(255,191,105,.22) 6px);z-index:2}.heavy-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.5fr);gap:13px}.weight-panel{text-align:left}.weight-donut{width:132px;height:132px;margin:17px auto;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--cyan) 0 34%,var(--violet) 34% 63%,var(--amber) 63% 100%);position:relative}.weight-donut::before{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--panel)}.weight-donut>div{position:relative;text-align:center}.weight-donut strong,.weight-donut small{display:block}.weight-donut strong{font:600 20px "Manrope",sans-serif}.weight-donut small{color:var(--muted);font-size:7px}.weight-legend{display:grid;gap:7px}.weight-legend span{display:grid;grid-template-columns:8px 1fr auto;gap:7px;color:var(--muted);font-size:7px}.weight-legend i{width:7px;height:7px;border-radius:50%}.weight-a{background:var(--cyan)}.weight-b{background:var(--violet)}.weight-c{background:var(--amber)}.weight-legend b{color:var(--text)}.privacy-note{display:grid;grid-template-columns:20px 1fr;gap:7px;margin-top:13px;padding:9px;border-radius:8px;background:rgba(98,230,198,.04);color:var(--muted);font-size:6.5px;line-height:1.4}.privacy-note i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--mint);background:rgba(98,230,198,.08);font-style:normal}.heavy-analysis-panel{display:flex;flex-direction:column}.heavy-analysis-panel>button{display:grid;grid-template-columns:31px 1fr auto;gap:9px;align-items:center;padding:11px 0;border:0;border-bottom:1px solid var(--stroke);background:transparent;text-align:left;cursor:pointer}.heavy-analysis-panel>button>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:var(--cyan);background:rgba(68,183,232,.08);font-size:6.5px;font-weight:700}.heavy-analysis-panel strong,.heavy-analysis-panel small{display:block}.heavy-analysis-panel strong{font-size:8px}.heavy-analysis-panel small{margin-top:3px;color:var(--muted);font-size:6.5px}.heavy-analysis-panel>button>b{color:var(--mint)}.tier-one-threshold{color:var(--coral)!important;background:rgba(255,102,118,.08)!important}.tier-two-threshold{color:var(--amber)!important;background:rgba(255,191,105,.08)!important}.tier-three-threshold{color:var(--cyan)!important;background:rgba(68,183,232,.08)!important}
@media(max-width:1350px){.road-pk-search{width:min(580px,53vw);grid-template-columns:82px 1px minmax(78px,1fr) 1px 58px 10px 58px 58px}.module-filterbar.heavy-filterbar{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1180px){.module-layout,.reversible-layout,.heavy-layout{grid-template-columns:1fr}.module-kpis{grid-template-columns:repeat(2,1fr)}.schedule-panel{grid-column:auto}.module-filterbar{grid-template-columns:repeat(2,1fr)}.road-pk-search{width:min(550px,64vw)}}
@media(max-width:880px){.main-nav{display:flex!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.nav-item{min-width:61px;flex:0 0 61px}.road-pk-search{width:min(610px,84vw);grid-template-columns:75px 1px minmax(70px,1fr) 1px 56px 9px 56px 34px}.module-map-wrap,.module-map-wrap.tall{height:260px}.module-filterbar.heavy-filterbar{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tier-field,.tier-divider{display:none}.road-pk-search{width:78vw;grid-template-columns:minmax(60px,1fr) 1px 55px 8px 55px 32px}.module-filterbar,.module-filterbar.heavy-filterbar,.module-kpis{grid-template-columns:1fr}.module-header{display:block}.module-header .module-state{margin-top:12px}.special-state-row{grid-template-columns:75px 1fr}.special-state-row time{grid-column:2}.compact-row{grid-template-columns:1.3fr repeat(3,.6fr)}}

/* Reversible lane: active direction and both mainline directions. */
.od-nav-icon i{position:absolute;width:5px;height:5px;border:1.5px solid currentColor;border-radius:50%}.od-nav-icon i:nth-child(1){left:1px;top:8px}.od-nav-icon i:nth-child(2){right:1px;top:1px}.od-nav-icon i:nth-child(3){right:1px;bottom:1px}.od-nav-icon::before,.od-nav-icon::after{content:"";position:absolute;left:6px;width:10px;border-top:1.4px solid currentColor;transform-origin:left}.od-nav-icon::before{top:9px;transform:rotate(-34deg)}.od-nav-icon::after{top:11px;transform:rotate(31deg)}
.reversible-direction-banner{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;margin-bottom:14px;padding:14px 17px;border:1px solid rgba(98,230,198,.28);border-radius:14px;background:linear-gradient(100deg,rgba(98,230,198,.12),rgba(98,230,198,.025) 60%,var(--panel))}.direction-arrow{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;color:#061a16;background:var(--mint);font-size:24px;box-shadow:0 0 22px rgba(98,230,198,.22)}.reversible-direction-banner small,.reversible-direction-banner strong,.reversible-direction-banner em{display:block}.reversible-direction-banner small{color:var(--mint);font-size:9px;font-weight:700;letter-spacing:.9px}.reversible-direction-banner strong{margin-top:4px;font:600 18px "Manrope",sans-serif}.reversible-direction-banner em{margin-top:4px;color:var(--muted);font-size:10px;font-style:normal}.reversible-direction-banner>b{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:8px;color:var(--mint);background:rgba(98,230,198,.08);font-size:10px;letter-spacing:.7px}.reversible-direction-banner>b i{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint)}
.sct-green-text{color:var(--sct-green)!important}.reversible-map-legend{position:absolute;top:12px;left:12px;z-index:500;display:grid;gap:7px;padding:10px 12px;border:1px solid var(--stroke);border-radius:9px;background:rgba(6,16,26,.88);color:#a6b8c0;font-size:10px}.reversible-map-legend span{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center}.reversible-map-legend i{height:4px;border-radius:4px}.reversible-map-legend b{color:var(--text)}.rev-inc-line{background:var(--sct-green)}.rev-active-line{background:repeating-linear-gradient(90deg,var(--mint) 0 7px,transparent 7px 10px)}.rev-dec-line{background:var(--sct-yellow)}

/* Tier 1 O-D, select-link and network movements. */
.od-filterbar{grid-template-columns:repeat(5,1fr)}.od-filterbar input{width:100%;height:35px;padding:0 9px;border:1px solid var(--stroke);border-radius:8px;outline:none;color:#d5e2e5;background:#0e1d2b;color-scheme:dark}.od-primary-grid{display:grid;grid-template-columns:minmax(420px,1.1fr) minmax(420px,1.35fr) minmax(265px,.65fr);gap:14px}.od-matrix-panel,.od-map-panel,.od-detail-panel,.od-chart-panel,.select-link-panel,.movements-panel{min-width:0;padding:18px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.od-matrix{display:grid;grid-template-columns:44px repeat(6,minmax(48px,1fr));gap:5px;margin-top:16px}.od-axis{min-height:26px;display:grid;place-items:center;color:#8399a7;font-size:9px;font-weight:700}.od-axis.row{justify-content:start}.od-axis.corner{color:#596f7f}.od-cell{min-height:42px;padding:3px;border:1px solid rgba(156,140,255,.12);border-radius:7px;color:#eef7f8;background:rgba(156,140,255,var(--od-alpha));font-size:10px;font-weight:600;cursor:pointer;transition:.15s}.od-cell:hover{border-color:rgba(98,230,198,.7);transform:translateY(-1px)}.od-cell.selected{border:2px solid var(--mint);box-shadow:0 0 0 3px rgba(98,230,198,.1)}.od-cell.diagonal{color:#536a79;background:#0d1a27;cursor:default}.od-scale{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--muted);font-size:9px}.od-scale i{width:115px;height:6px;border-radius:5px;background:linear-gradient(90deg,rgba(156,140,255,.12),rgba(156,140,255,.9))}.od-map-panel{grid-column:span 2}.od-map-wrap{height:330px;margin-top:13px;position:relative;overflow:hidden;border-radius:12px;background:#091722}#od-map{width:100%;height:100%}.od-detail-panel{background:linear-gradient(145deg,rgba(98,230,198,.065),var(--panel) 48%)}.od-pair-title{display:flex;align-items:center;gap:9px;color:var(--mint);font:700 11px "Manrope",sans-serif}.od-pair-title span{padding:6px 8px;border-radius:7px;background:rgba(98,230,198,.09)}.od-detail-panel h3{margin:13px 0 16px;font:600 17px/1.35 "Manrope",sans-serif}.od-detail-kpis{display:grid;grid-template-columns:1fr 1fr;gap:0}.od-detail-kpis div{padding:11px 7px 11px 0;border-bottom:1px solid var(--stroke)}.od-detail-kpis small,.od-detail-kpis strong{display:block}.od-detail-kpis small{color:var(--muted);font-size:9px}.od-detail-kpis strong{margin-top:5px;font-size:13px}.od-detail-panel>p{display:grid;grid-template-columns:19px 1fr;gap:8px;margin:16px 0 0;color:#83a097;font-size:9.5px;line-height:1.45}.od-detail-panel>p i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--mint);background:rgba(98,230,198,.1);font-style:normal}.od-chart-panel{grid-column:span 2}.od-chart-panel canvas{width:100%;height:210px;margin-top:12px}.od-estimated-key{background:var(--violet)}.flow-analysis-grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(560px,1.25fr);gap:14px;margin-top:14px}.select-link-hero{padding:20px 0 12px}.select-link-hero strong,.select-link-hero span{display:block}.select-link-hero strong{color:var(--mint);font:600 31px/1 "Manrope",sans-serif}.select-link-hero span{margin-top:5px;color:var(--muted);font-size:10px}.flow-bar{display:grid;grid-template-columns:150px 1fr 54px;gap:10px;align-items:center;padding:10px 0;color:#9eb0ba;font-size:9.5px}.flow-bar i{height:5px;border-radius:5px;background:#192a38;overflow:hidden}.flow-bar i b{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--violet),var(--mint))}.flow-bar>strong{text-align:right;color:var(--text)}.select-link-panel>.secondary-action{margin-top:12px;width:100%}.movement-row{display:grid;grid-template-columns:1.5fr .65fr .65fr .55fr .5fr;gap:10px;align-items:center;min-height:54px;padding:7px 0;border-bottom:1px solid var(--stroke);color:#98acb6;font-size:9.5px}.movement-row.header{min-height:32px;color:#5f7685;font-size:8.5px;text-transform:uppercase}.movement-row strong,.movement-row small{display:block}.movement-row strong{color:var(--text)}.movement-row small{margin-top:3px;color:var(--muted)}.movement-row b{color:var(--text)}.movement-row em{justify-self:start;padding:4px 6px;border-radius:6px;color:var(--mint);background:rgba(98,230,198,.07);font-size:8.5px;font-style:normal}

/* Prediction contract and a global legibility pass. */
.prediction-map-panel,.risk-ranking,.forecast-chart-panel,.model-card,.inrix-contract-card{border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel);padding:18px;min-width:0}.inrix-contract-card{background:linear-gradient(150deg,rgba(98,230,198,.055),var(--panel) 48%)}.closed-line{background:var(--sct-black);border:1px solid #81909a}.reference-key{background:rgba(238,247,248,.58)}.inrix-request{margin-top:15px;padding:12px;border:1px solid rgba(68,183,232,.16);border-radius:10px;background:rgba(68,183,232,.045)}.inrix-request span,.inrix-request strong{display:block}.inrix-request span{color:var(--cyan);font-size:9px;font-weight:700}.inrix-request strong{margin-top:5px;font-size:10px;line-height:1.45}.route-prediction-note{margin-top:12px;padding-top:12px;border-top:1px solid var(--stroke)}.route-prediction-note strong,.route-prediction-note span{display:block}.route-prediction-note strong{font-size:10px}.route-prediction-note span{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}
.content-header p:last-child{font-size:13px;line-height:1.45}.content-view .eyebrow{font-size:9px}.content-view .panel-title h3{font-size:14px}.content-view .panel-title small{font-size:10px;line-height:1.4}.module-filterbar label>span,.incident-filters label>span{font-size:9.5px}.module-filterbar select,.module-filterbar input,.incident-filters select{font-size:11px}.module-kpis small,.prediction-kpis small,.tram-kpis small{font-size:10px}.module-kpis strong,.prediction-kpis strong{font-size:23px}.module-kpis span,.prediction-kpis span,.tram-kpis span{font-size:9px}.risk-row strong{font-size:10px}.risk-row small{font-size:9px;line-height:1.4}.risk-row em{font-size:9px}.forecast-legend,.prediction-map-legend{font-size:9px}.model-metrics small{font-size:9px}.model-metrics strong{font-size:10px}.model-features span{font-size:8px}.model-note{font-size:9px}.special-state-row>span,.special-state-row strong,.special-state-row small,.special-state-row time{font-size:9px}.state-integrity strong{font-size:9.5px}.state-integrity small{font-size:9px}.schedule-axis{font-size:8.5px}.schedule-lane>strong{font-size:9px}.compact-row,.compact-row.header{font-size:9px}.heavy-analysis-panel strong{font-size:10px}.heavy-analysis-panel small{font-size:9px}.dataset-card span strong{font-size:9px}.dataset-card span small{font-size:8.5px}.export-form-grid label>span,.export-form-grid select,.export-preview dl div,.download-row{font-size:9px}.road-pk-search label>span{font-size:8.5px}.road-pk-search select,.road-pk-search input{font-size:10.5px}.maplibregl-popup-content{font-size:10px}
.sidebar{overflow:hidden}.main-nav{min-height:0;overflow-y:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}

@media(max-width:1350px){.od-primary-grid{grid-template-columns:minmax(360px,1fr) minmax(380px,1.2fr)}.od-map-panel{grid-column:auto}.od-detail-panel{grid-column:1}.od-chart-panel{grid-column:2}.flow-analysis-grid{grid-template-columns:1fr}}
@media(max-width:1180px){.od-filterbar{grid-template-columns:repeat(3,1fr)}.od-primary-grid{grid-template-columns:1fr 1fr}.od-map-panel{grid-column:1/-1}.od-detail-panel,.od-chart-panel{grid-column:auto}}
@media(max-width:880px){.od-filterbar,.od-primary-grid,.flow-analysis-grid{grid-template-columns:1fr}.od-map-panel,.od-detail-panel,.od-chart-panel{grid-column:1}.od-map-wrap{height:280px}.movement-row{min-width:660px}.movements-panel{overflow-x:auto}.reversible-direction-banner{grid-template-columns:45px 1fr}.reversible-direction-banner>b{grid-column:2;justify-self:start}.direction-arrow{width:42px;height:42px}.reversible-map-legend{right:12px}.od-matrix{overflow-x:auto}}

/* Functional corridor builder and explicit INRIX quality. */
.quality-chip.inrix{white-space:nowrap;font-size:9.5px}.inrix-quality-mini{justify-self:end;padding:4px 6px;border:1px solid rgba(98,230,198,.16);border-radius:6px;color:var(--mint)!important;background:rgba(98,230,198,.07);font-size:8.5px!important;letter-spacing:.2px}.inrix-quality-mini.estimated{color:var(--amber)!important;border-color:rgba(255,191,105,.18);background:rgba(255,191,105,.06)}
.route-builder-dialog{width:min(690px,calc(100vw - 32px));padding:0;border:1px solid rgba(177,211,224,.2);border-radius:18px;outline:0;color:var(--text);background:#0b1724;box-shadow:0 28px 90px rgba(0,0,0,.65)}.route-builder-dialog::backdrop{background:rgba(2,8,14,.78);backdrop-filter:blur(4px)}.route-builder-dialog form{padding:22px}.route-builder-head{display:flex;justify-content:space-between;gap:18px;padding-bottom:17px;border-bottom:1px solid var(--stroke)}.route-builder-head h3{margin:6px 0 5px;font:600 20px "Manrope",sans-serif}.route-builder-head small{display:block;max-width:530px;color:var(--muted);font-size:10px;line-height:1.45}.route-builder-head>button{width:33px;height:33px;flex:0 0 auto;border:1px solid var(--stroke);border-radius:9px;color:var(--muted);background:#112131;font-size:20px;cursor:pointer}.route-builder-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:18px}.route-builder-grid label>span{display:block;margin-bottom:6px;color:#91a5b0;font-size:9.5px}.route-builder-grid input,.route-builder-grid select{width:100%;height:39px;padding:0 11px;border:1px solid var(--stroke);border-radius:9px;outline:0;color:#dce7e9;background:#0e1d2b;font-size:11px}.route-builder-grid input:focus,.route-builder-grid select:focus{border-color:rgba(98,230,198,.5)}.route-quality-explainer{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center;margin-top:16px;padding:11px;border:1px solid rgba(68,183,232,.14);border-radius:10px;background:rgba(68,183,232,.045)}.route-quality-explainer>span{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;color:var(--cyan);background:rgba(68,183,232,.1);font-weight:700}.route-quality-explainer strong,.route-quality-explainer small{display:block}.route-quality-explainer strong{font-size:10px}.route-quality-explainer small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}.route-builder-feedback{display:block;min-height:18px;margin-top:9px;color:var(--mint);font-size:9.5px}.route-builder-feedback.error{color:var(--coral)}.route-builder-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:6px}.route-builder-actions .save-query{width:auto;margin:0;padding:0 15px}.route-builder-actions .primary-action{width:auto;padding:0 17px}

/* One reversible lane, with its two surrounding traffic directions. */
.reversible-comparison-panel{min-width:0;padding:17px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.reversible-corridor-card{margin-top:14px;padding:12px;border:1px solid var(--stroke);border-radius:13px;background:#0b1926}.reversible-corridor-card.selected{border-color:rgba(98,230,198,.25);box-shadow:inset 0 0 0 1px rgba(98,230,198,.035)}.reversible-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.reversible-card-head>div{display:flex;align-items:center;gap:8px}.reversible-card-head strong{font-size:10px}.reversible-card-head>b{display:flex;align-items:center;gap:5px;color:var(--mint);font-size:8px;letter-spacing:.5px}.reversible-card-head>b i{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 7px var(--mint)}.traffic-context-band,.reversible-lane-band{display:grid;grid-template-columns:35px 1fr auto;gap:10px;align-items:center;min-height:68px;padding:10px 11px}.traffic-context-band{border:1px solid var(--stroke);background:rgba(255,255,255,.018)}.traffic-context-band.inc{border-radius:10px 10px 3px 3px}.traffic-context-band.dec{border-radius:3px 3px 10px 10px}.reversible-lane-band{margin:5px 0;border:1px solid rgba(98,230,198,.32);border-radius:7px;background:linear-gradient(90deg,rgba(98,230,198,.14),rgba(98,230,198,.035))}.context-direction,.lane-direction{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;font-size:19px}.context-direction{color:#93a7b1;background:#172938}.reversible-lane-band .lane-direction{color:#071b17;background:var(--mint);box-shadow:0 0 16px rgba(98,230,198,.18)}.traffic-context-band small,.traffic-context-band strong,.traffic-context-band em,.reversible-lane-band small,.reversible-lane-band strong,.reversible-lane-band em{display:block}.traffic-context-band small,.reversible-lane-band small{color:var(--muted);font-size:8px;letter-spacing:.45px}.traffic-context-band strong,.reversible-lane-band strong{margin-top:3px;font:600 18px/1 "Manrope",sans-serif}.traffic-context-band em,.reversible-lane-band em{margin-top:4px;color:#718896;font-size:8.5px;font-style:normal}.reversible-lane-band strong,.reversible-lane-band small{color:var(--mint)}.inrix-quality-badge{min-width:77px;padding:7px 8px;border:1px solid rgba(68,183,232,.16);border-radius:8px;background:rgba(68,183,232,.045);text-align:right}.inrix-quality-badge b,.inrix-quality-badge i{display:block}.inrix-quality-badge b{color:var(--cyan);font-size:9px}.inrix-quality-badge i{margin-top:3px;color:var(--muted);font-size:8px;font-style:normal}.inrix-quality-note{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;margin-top:13px;padding:10px;border-radius:9px;background:rgba(98,230,198,.045);color:#8299a5}.inrix-quality-note>span{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;color:var(--mint);background:rgba(98,230,198,.1);font-size:9px}.inrix-quality-note p{margin:0;font-size:9px;line-height:1.5}.inrix-quality-note strong{color:#cbdadc}.maplibregl-popup-content b{color:var(--cyan);font-weight:600}

@media(max-width:880px){.route-builder-grid{grid-template-columns:1fr}.analysis-head{gap:12px;align-items:flex-start;flex-direction:column}.traffic-context-band,.reversible-lane-band{grid-template-columns:34px 1fr}.inrix-quality-badge{grid-column:2;justify-self:start;text-align:left}.reversible-card-head{align-items:flex-start;flex-direction:column}}

/* Hourly traffic intensity. */
.intensity-icon i{position:absolute;bottom:2px;width:3px;border-radius:3px 3px 0 0;background:currentColor}.intensity-icon i:nth-child(1){left:2px;height:7px}.intensity-icon i:nth-child(2){left:8px;height:13px}.intensity-icon i:nth-child(3){right:2px;height:18px}.intensity-icon::after{content:"";position:absolute;left:1px;right:1px;bottom:1px;border-bottom:1px solid currentColor}.intensity-source-banner{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;margin-bottom:13px;padding:12px 15px;border:1px solid rgba(255,191,105,.17);border-radius:13px;background:linear-gradient(90deg,rgba(255,191,105,.075),var(--panel) 55%)}.intensity-source-banner>span{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:var(--amber);background:rgba(255,191,105,.1);font-weight:700}.intensity-source-banner strong,.intensity-source-banner small{display:block}.intensity-source-banner strong{font-size:10.5px}.intensity-source-banner small{margin-top:4px;color:var(--muted);font-size:9.5px;line-height:1.45}.intensity-source-banner>b{padding:6px 8px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.07);font-size:8px;letter-spacing:.5px}.intensity-filterbar{grid-template-columns:repeat(5,1fr)}.intensity-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:14px}.intensity-map-panel,.intensity-quality-panel,.intensity-chart-panel,.intensity-ranking-panel{min-width:0;padding:18px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.intensity-map-wrap{position:relative;height:330px;margin-top:12px;overflow:hidden;border-radius:12px;background:#091722}#intensity-map{width:100%;height:100%}.intensity-map-legend{position:absolute;left:11px;top:11px;z-index:500;display:flex;gap:10px;padding:8px 10px;border:1px solid var(--stroke);border-radius:8px;background:rgba(6,16,26,.84);color:#8da1ac;font-size:9px}.intensity-map-legend span{display:flex;align-items:center;gap:5px}.intensity-map-legend i{display:inline-block;border-radius:4px}.volume-low{width:15px;height:3px;background:var(--cyan)}.volume-medium{width:17px;height:5px;background:var(--amber)}.volume-high{width:20px;height:7px;background:var(--coral)}.intensity-quality-panel{background:linear-gradient(145deg,rgba(98,230,198,.045),var(--panel) 52%)}.intensity-quality-panel dl{margin:15px 0 0}.intensity-quality-panel dl div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--stroke);font-size:9.5px}.intensity-quality-panel dt{color:var(--muted)}.intensity-quality-panel dd{margin:0;color:#d5e2e4;text-align:right}.calibration-status{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center;margin-top:13px;padding:10px;border-radius:9px;background:rgba(98,230,198,.055)}.calibration-status>span{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:var(--mint);background:rgba(98,230,198,.1)}.calibration-status strong,.calibration-status small{display:block}.calibration-status strong{font-size:9.5px}.calibration-status small{margin-top:3px;color:var(--muted);font-size:8.5px}.intensity-chart-panel{min-height:300px}.intensity-chart-panel canvas{width:100%;height:235px;margin-top:12px}.volume-estimated-key{background:var(--coral)}.volume-row{display:grid;grid-template-columns:1.4fr .5fr .6fr .5fr .5fr;gap:8px;align-items:center;min-height:52px;padding:7px 0;border-bottom:1px solid var(--stroke);color:#98adb7;font-size:9.5px}.volume-row.header{min-height:31px;color:#5e7483;text-transform:uppercase;font-size:8px}.volume-row strong,.volume-row small{display:block}.volume-row strong{color:var(--text)}.volume-row small{margin-top:3px;color:var(--muted)}.volume-row b{color:var(--text)}.volume-row em{justify-self:start;padding:4px 6px;border-radius:6px;color:var(--mint);background:rgba(98,230,198,.07);font-style:normal}.tier3-exemption{display:grid;grid-template-columns:29px 1fr;gap:9px;align-items:center;margin-top:12px;padding:10px;border:1px solid rgba(68,183,232,.12);border-radius:9px;background:rgba(68,183,232,.035)}.tier3-exemption>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--cyan);background:rgba(68,183,232,.09)}.tier3-exemption strong,.tier3-exemption small{display:block}.tier3-exemption strong{font-size:9.5px}.tier3-exemption small{margin-top:3px;color:var(--muted);font-size:8.5px}

/* Explicit INRIX Trips contract and complete incident fields. */
.trips-product-contract{display:grid;grid-template-columns:40px 1fr 1fr auto;gap:13px;align-items:center;margin-bottom:13px;padding:13px 15px;border:1px solid rgba(156,140,255,.2);border-radius:13px;background:linear-gradient(95deg,rgba(156,140,255,.09),var(--panel) 62%)}.trips-product-symbol{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:var(--violet);background:rgba(156,140,255,.1);font-weight:700}.trips-product-contract>div{min-width:0}.trips-product-contract>div+div{padding-left:13px;border-left:1px solid var(--stroke)}.trips-product-contract small,.trips-product-contract strong,.trips-product-contract p{display:block}.trips-product-contract small{color:var(--violet);font-size:8px;font-weight:700;letter-spacing:.6px}.trips-product-contract strong{margin-top:4px;font-size:10.5px}.trips-product-contract p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.trips-product-contract code,.incident-preservation-note code{padding:1px 3px;border-radius:3px;color:#b8c7cf;background:#152636;font:8px "DM Sans",sans-serif}.trips-product-contract>b{padding:6px 8px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.07);font-size:8px;white-space:nowrap}.select-link-source{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;margin-top:13px;padding:9px;border-radius:8px;background:rgba(255,191,105,.045)}.select-link-source>i{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;color:var(--amber);background:rgba(255,191,105,.1);font-style:normal}.select-link-source strong,.select-link-source small{display:block}.select-link-source strong{font-size:9px}.select-link-source small{margin-top:2px;color:var(--muted);font-size:8px}.incident-attributes-panel{grid-column:1/-1;min-width:0;padding:18px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}.incident-native-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.incident-native-grid>section{padding:13px;border:1px solid var(--stroke);border-radius:11px;background:#0d1a27}.native-group-head{display:grid;grid-template-columns:25px 1fr;gap:8px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--stroke)}.native-group-head>span{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;color:var(--cyan);background:rgba(68,183,232,.08);font-size:8px}.native-group-head strong,.native-group-head small{display:block}.native-group-head strong{font-size:10px}.native-group-head small{margin-top:2px;color:var(--muted);font-size:8px}.incident-native-grid dl{margin:7px 0 0}.incident-native-grid dl div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(177,211,224,.07);font-size:8.5px}.incident-native-grid dt{color:#718896;font-family:ui-monospace,Consolas,monospace}.incident-native-grid dd{margin:0;color:#c5d4d8;text-align:right}.message-code-row{display:grid;grid-template-columns:45px 27px 1fr;gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(177,211,224,.07)}.message-code-row>span{color:var(--muted);font-size:8px}.message-code-row>b{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;color:var(--violet);background:rgba(156,140,255,.08);font-size:8px}.message-code-row strong,.message-code-row small{display:block}.message-code-row strong{font-size:8.5px}.message-code-row small{margin-top:2px;color:var(--muted);font-size:7.5px}.incident-preservation-note{display:grid;grid-template-columns:43px 1fr;gap:10px;align-items:center;margin-top:11px;padding:11px;border-radius:9px;background:rgba(98,230,198,.045)}.incident-preservation-note>span{width:42px;height:28px;display:grid;place-items:center;border-radius:7px;color:var(--mint);background:rgba(98,230,198,.09);font-size:8px;font-weight:700}.incident-preservation-note strong,.incident-preservation-note small{display:block}.incident-preservation-note strong{font-size:9.5px}.incident-preservation-note small{margin-top:3px;color:var(--muted);font-size:8.5px;line-height:1.4}

@media(max-width:1180px){.intensity-filterbar{grid-template-columns:repeat(3,1fr)}.intensity-grid{grid-template-columns:1fr}.incident-native-grid{grid-template-columns:repeat(2,1fr)}.trips-product-contract{grid-template-columns:40px 1fr 1fr}.trips-product-contract>b{grid-column:2/-1;justify-self:start}}
@media(max-width:880px){.intensity-filterbar,.incident-native-grid{grid-template-columns:1fr}.intensity-source-banner{grid-template-columns:38px 1fr}.intensity-source-banner>b{grid-column:2;justify-self:start}.trips-product-contract{grid-template-columns:36px 1fr}.trips-product-contract>div+div{grid-column:2;padding:11px 0 0;border-left:0;border-top:1px solid var(--stroke)}.trips-product-contract>b{grid-column:2}.intensity-map-legend{right:11px;flex-wrap:wrap}.volume-row{min-width:620px}.intensity-ranking-panel{overflow-x:auto}}

/* Legibility for the data-product panels. */
.intensity-source-banner strong,.trips-product-contract strong{font-size:12px}.intensity-source-banner small,.trips-product-contract p{font-size:10.5px}.intensity-source-banner>b,.trips-product-contract small,.trips-product-contract>b{font-size:9.5px}.intensity-quality-panel dl div,.volume-row{font-size:10.5px}.calibration-status strong,.tier3-exemption strong{font-size:10.5px}.calibration-status small,.tier3-exemption small{font-size:9.5px}.native-group-head strong{font-size:11px}.native-group-head small{font-size:9.5px}.incident-native-grid dl div{font-size:10px}.message-code-row>span,.message-code-row>b{font-size:9.5px}.message-code-row strong{font-size:10px}.message-code-row small{font-size:9px}.incident-preservation-note strong{font-size:10.5px}.incident-preservation-note small{font-size:9.5px}.trips-product-contract code,.incident-preservation-note code{font-size:9px}

/* Historical query from 01/01/2025: shared time axis for speed and traffic intensity. */
.history-header{align-items:center;margin-bottom:17px}.history-availability{min-width:240px;height:52px;display:grid;grid-template-columns:9px 1fr auto;gap:10px;align-items:center;padding:0 13px;border:1px solid rgba(98,230,198,.18);border-radius:13px;background:linear-gradient(100deg,rgba(98,230,198,.07),rgba(11,26,39,.88))}.history-availability>i,.history-freshness>i{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px rgba(98,230,198,.8)}.history-availability small,.history-availability strong{display:block}.history-availability small{color:var(--muted);font-size:8.5px;letter-spacing:.7px}.history-availability strong{margin-top:3px;font-size:11px}.history-availability>b{padding:6px 7px;border-radius:6px;color:var(--mint);background:rgba(98,230,198,.09);font-size:8.5px;white-space:nowrap}
.history-query-panel{margin-bottom:12px;padding:15px;border:1px solid var(--stroke);border-radius:15px;background:linear-gradient(145deg,rgba(68,183,232,.035),var(--panel) 48%)}.history-query-main{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(90px,.55fr) minmax(90px,.55fr) minmax(130px,.85fr) minmax(205px,1.35fr);gap:10px}.history-query-panel label{min-width:0}.history-query-panel label>span{display:block;margin-bottom:6px;color:#8399a5;font-size:9.5px;font-weight:600}.history-query-panel input,.history-query-panel select{width:100%;height:39px;padding:0 10px;border:1px solid var(--stroke);border-radius:9px;outline:0;color:#dce7e9;background:#0d1c2a;font:500 11px "DM Sans",sans-serif;color-scheme:dark}.history-query-panel input:focus,.history-query-panel select:focus{border-color:rgba(98,230,198,.5);box-shadow:0 0 0 3px rgba(98,230,198,.05)}.history-query-panel input:invalid{border-color:rgba(255,102,118,.45)}
.history-time-range{display:grid;grid-template-columns:minmax(265px,1fr) 22px minmax(265px,1fr) auto 146px;gap:10px;align-items:end;margin-top:11px;padding-top:11px;border-top:1px solid var(--stroke)}.history-time-group{display:grid;grid-template-columns:45px minmax(135px,1fr) 105px;gap:8px;align-items:end}.history-time-group>strong{align-self:center;color:#cbd9dd;font-size:10px}.history-time-group label>span{font-size:8.5px}.history-time-group input{height:37px}.history-range-arrow{align-self:center;color:#557080;text-align:center}.history-presets{display:flex;gap:4px;align-items:center}.history-presets button{height:31px;padding:0 8px;border:1px solid var(--stroke);border-radius:8px;color:#8197a3;background:#0d1b29;font-size:9px;cursor:pointer;white-space:nowrap}.history-presets button:hover,.history-presets button.active{border-color:rgba(98,230,198,.3);color:var(--mint);background:rgba(98,230,198,.07)}.history-submit{height:39px;border:0;border-radius:9px;color:#061d18;background:var(--mint);font-size:10px;font-weight:700;cursor:pointer}.history-submit:hover{filter:brightness(1.05);transform:translateY(-1px)}.history-submit>span{display:inline-block;width:11px;height:11px;margin-right:7px;border:1.5px solid currentColor;border-radius:50%;vertical-align:-2px;position:relative}.history-submit>span::after{content:"";position:absolute;width:5px;border-top:1.5px solid currentColor;right:-4px;bottom:-2px;transform:rotate(45deg)}.history-query-feedback{display:block;min-height:0;color:var(--mint);font-size:9.5px}.history-query-feedback:not(:empty){min-height:18px;padding-top:9px}.history-query-feedback.error{color:var(--coral)}
.history-contract-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:15px;border:1px solid var(--stroke);border-radius:12px;background:rgba(8,20,31,.55)}.history-contract-strip>span{display:grid;grid-template-columns:8px 1fr;gap:3px 8px;align-items:center;padding:11px 13px;border-right:1px solid var(--stroke)}.history-contract-strip>span:last-child{border-right:0}.history-contract-strip b{font-size:9.5px}.history-contract-strip small{grid-column:2;color:var(--muted);font-size:8.5px}.violet-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:0 0 8px rgba(156,140,255,.55)}
.historical-comparison-grid{grid-template-columns:minmax(0,2.4fr) minmax(270px,.7fr);align-items:start}.history-chart-stack{display:grid;gap:15px}.history-metric-panel{min-height:0;padding:18px 20px}.history-metric-panel .panel-title h3{margin-top:5px;font-size:14px}.history-metric-panel .panel-title small{font-size:10px}.history-metric-panel .legend-inline{font-size:9.5px;flex-wrap:wrap;justify-content:flex-end}.volume-observed-line,.volume-typical-line{display:inline-block;width:14px;height:2px;background:var(--amber)}.volume-typical-line{background:#546b7a;border-top:1px dashed #8497a4}.history-metric-panel #history-chart,.history-metric-panel #history-volume-chart{width:100%;height:220px;margin-top:10px;background:linear-gradient(180deg,rgba(68,183,232,.018),transparent);border-radius:9px}.history-metric-footer{display:grid;grid-template-columns:repeat(3,1fr);margin-top:8px;padding-top:12px;border-top:1px solid var(--stroke)}.history-metric-footer>span{padding:0 12px;border-right:1px solid var(--stroke)}.history-metric-footer>span:first-child{padding-left:0}.history-metric-footer>span:last-child{border-right:0}.history-metric-footer small,.history-metric-footer strong{display:block}.history-metric-footer small{color:var(--muted);font-size:9px}.history-metric-footer strong{margin-top:4px;font-size:11px}.history-summary{position:sticky;top:0;min-height:535px;padding:20px}.history-summary h3{font-size:21px}.history-summary>p:not(.eyebrow){font-size:11px}.history-selected-period{margin:16px 0;padding:13px;border:1px solid rgba(68,183,232,.13);border-radius:10px;background:rgba(68,183,232,.04)}.history-selected-period small,.history-selected-period strong,.history-selected-period span{display:block}.history-selected-period small{color:var(--cyan);font-size:8px;letter-spacing:.8px}.history-selected-period strong{margin-top:5px;font-size:10.5px;line-height:1.4}.history-selected-period span{margin-top:5px;color:var(--muted);font-size:9px}.history-summary .insight strong{font-size:10px}.history-summary .insight small{font-size:9px;line-height:1.4}.history-freshness{display:grid;grid-template-columns:8px 1fr;gap:9px;align-items:center;margin-top:14px;padding:11px;border-radius:9px;background:rgba(98,230,198,.05)}.history-freshness small,.history-freshness strong{display:block}.history-freshness small{color:var(--muted);font-size:8px}.history-freshness strong{margin-top:3px;font-size:9.5px}.history-timezone{padding:5px 7px;border-radius:6px;color:var(--cyan);background:rgba(68,183,232,.06);font-size:8.5px;letter-spacing:.5px}

@media(max-width:1320px){.history-time-range{grid-template-columns:1fr 20px 1fr}.history-presets{grid-column:1/3}.history-submit{grid-column:3}.history-query-main{grid-template-columns:repeat(4,1fr)}.history-query-main .day-type-control{grid-column:span 2}.history-contract-strip{grid-template-columns:repeat(2,1fr)}.history-contract-strip>span:nth-child(2){border-right:0}.history-contract-strip>span:nth-child(-n+2){border-bottom:1px solid var(--stroke)}}
@media(max-width:1050px){.historical-comparison-grid{grid-template-columns:1fr}.history-summary{position:static;min-height:0}.history-query-main{grid-template-columns:repeat(3,1fr)}.history-query-main .day-type-control{grid-column:span 2}}
@media(max-width:880px){.history-header{align-items:flex-start}.history-availability{width:100%}.history-query-main{grid-template-columns:repeat(2,1fr)}.history-time-range{grid-template-columns:1fr}.history-range-arrow{display:none}.history-time-group{grid-template-columns:45px 1fr 100px}.history-presets,.history-submit{grid-column:auto}.history-contract-strip{grid-template-columns:1fr}.history-contract-strip>span{border-right:0;border-bottom:1px solid var(--stroke)}.history-contract-strip>span:last-child{border-bottom:0}.history-metric-panel .panel-title{gap:10px;flex-direction:column}.history-metric-panel .legend-inline{justify-content:flex-start}.history-metric-footer{grid-template-columns:1fr;gap:9px}.history-metric-footer>span{padding:0 0 9px;border-right:0;border-bottom:1px solid var(--stroke)}.history-metric-footer>span:last-child{padding-bottom:0;border-bottom:0}}

/* Closable live-segment panel driven by the active map/search selection. */
.segment-card[hidden],.segment-panel-reopen[hidden]{display:none!important}.segment-card{transition:opacity .18s ease,transform .18s ease}.segment-card-head>button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--stroke)!important;border-radius:8px;color:#8197a3!important;background:#112231!important;font-size:18px!important;line-height:1}.segment-card-head>button:hover{border-color:rgba(98,230,198,.3)!important;color:var(--mint)!important;background:rgba(98,230,198,.07)!important}.segment-panel-reopen{position:absolute;top:18px;right:18px;z-index:5;height:40px;padding:0 12px;border-radius:11px;color:var(--mint);display:flex;align-items:center;gap:8px;cursor:pointer}.segment-panel-reopen>span{width:21px;height:21px;display:grid;place-items:center;border-radius:7px;color:#061c17;background:var(--mint);font-size:17px}.segment-panel-reopen>b{font-size:9.5px}.selected-segment-data{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:0 0 12px;padding:10px 0;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.selected-segment-data>div{min-width:0;padding:7px 10px;border-right:1px solid var(--stroke)}.selected-segment-data>div:nth-child(2n){border-right:0}.selected-segment-data dt,.selected-segment-data dd{display:block;margin:0}.selected-segment-data dt{color:#607686;font-size:8px;letter-spacing:.35px}.selected-segment-data dd{margin-top:4px;color:#d5e1e4;font-size:9.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.incident-callout.clear{border-color:rgba(98,230,198,.13);background:rgba(98,230,198,.05)}.incident-callout.clear .warning-symbol{color:var(--mint);background:rgba(98,230,198,.11)}.incident-callout.dense{border-color:rgba(255,191,105,.16);background:rgba(255,191,105,.06)}.incident-callout.dense .warning-symbol{color:var(--amber);background:rgba(255,191,105,.12)}

@media(max-width:560px){.segment-card{left:12px;right:12px;top:12px;width:auto;bottom:66px}.segment-panel-reopen{right:12px;top:12px}.selected-segment-data{grid-template-columns:1fr 1fr}}

/* Predictive and advanced mobility analytics workspace. */
.analytics-module-nav{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;margin:0 0 14px;padding:6px;border:1px solid var(--stroke);border-radius:15px;background:rgba(6,16,26,.68);overflow-x:auto}.analytics-module-nav>button{min-width:0;min-height:62px;padding:10px 12px;border:1px solid transparent;border-radius:11px;color:#738997;background:transparent;display:grid;grid-template-columns:27px 1fr;gap:9px;align-items:center;text-align:left;cursor:pointer;transition:.18s ease}.analytics-module-nav>button:hover{color:#cbdadd;background:rgba(255,255,255,.025)}.analytics-module-nav>button.active{border-color:rgba(98,230,198,.22);color:var(--text);background:linear-gradient(110deg,rgba(98,230,198,.11),rgba(68,183,232,.025));box-shadow:inset 0 1px rgba(255,255,255,.025)}.analytics-module-nav>button>span{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:#69808e;background:#112332;font:700 9px "Manrope",sans-serif}.analytics-module-nav>button.active>span{color:#061b17;background:var(--mint)}.analytics-module-nav strong,.analytics-module-nav small{display:block}.analytics-module-nav strong{font-size:10.5px;white-space:nowrap}.analytics-module-nav small{margin-top:3px;color:#617785;font-size:9px;white-space:nowrap}.analytics-module-panel[hidden]{display:none!important}.analytics-module-panel.active{display:block}.analytics-module-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 12px;padding:15px 17px;border:1px solid var(--stroke);border-radius:14px;background:linear-gradient(100deg,rgba(98,230,198,.045),rgba(10,24,36,.78) 65%)}.analytics-module-intro>div{min-width:0}.analytics-module-intro h3{margin:4px 0 0;font:600 16px/1.25 "Manrope",sans-serif}.analytics-module-intro>div>p:last-child{max-width:850px;margin:7px 0 0;color:#8195a1;font-size:10.5px;line-height:1.55}.analytics-run-state{flex:0 0 auto;padding:7px 9px;border-radius:7px;color:var(--mint);background:rgba(98,230,198,.07);font-size:9px;font-weight:700;letter-spacing:.35px}.analytics-run-state i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}.analytics-run-state.violet{color:var(--violet);background:rgba(156,140,255,.07)}.analytics-run-state.amber{color:var(--amber);background:rgba(255,191,105,.07)}.analytics-run-state.cyan{color:var(--cyan);background:rgba(68,183,232,.07)}
.analytics-filterbar{grid-template-columns:repeat(4,minmax(130px,1fr)) auto;margin-bottom:12px}.analytics-filterbar label>span{font-size:9px}.analytics-filterbar select{font-size:10.5px}.analytics-run-button{align-self:end;height:39px;padding:0 13px;border:1px solid rgba(98,230,198,.24);border-radius:9px;color:var(--mint);background:rgba(98,230,198,.075);font-size:9.5px;font-weight:700;white-space:nowrap;cursor:pointer}.analytics-run-button:hover{border-color:rgba(98,230,198,.48);background:rgba(98,230,198,.12)}.analytics-run-button>span{margin-right:6px;font-size:13px}.analytics-run-button.running{color:#061b17;background:var(--mint)}.analytics-kpis{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:12px;border:1px solid var(--stroke);border-radius:12px;background:rgba(8,20,31,.58)}.analytics-kpis>article{min-width:0;padding:12px 15px;border-right:1px solid var(--stroke)}.analytics-kpis>article:last-child{border-right:0}.analytics-kpis small,.analytics-kpis strong,.analytics-kpis span{display:block}.analytics-kpis small{color:#8297a3;font-size:9px}.analytics-kpis strong{margin-top:4px;font:600 20px/1.15 "Manrope",sans-serif}.analytics-kpis span{margin-top:3px;color:#58707f;font-size:8.5px}.analytics-chart-card,.bias-adjustment-card,.bias-matrix-card,.analytics-method-card,.pattern-space-card,.pattern-list-card,.pattern-detail-card,.change-chart-card,.change-event-card,.change-diagnosis-card,.seasonality-card,.demand-map-card,.demand-profile-card,.dominant-route-card,.demand-segmentation-card{min-width:0;padding:17px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}
.bias-analytics-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,.72fr);gap:13px}.bias-chart-card{min-height:310px}.bias-chart-card canvas{width:100%;height:245px;margin-top:10px}.observed-key,.forecast-key,.reference-key,.daytype-key{display:inline-block;width:15px;height:2px;border-radius:2px;background:var(--cyan)}.forecast-key{background:var(--mint)}.reference-key{background:var(--amber)}.daytype-key{background:#718795}.bias-adjustment-card{background:linear-gradient(145deg,rgba(98,230,198,.035),var(--panel) 48%)}.bias-adjustment-list{margin-top:12px}.bias-adjustment-row{display:grid;grid-template-columns:minmax(110px,1.3fr) .68fr .68fr auto;gap:8px;align-items:center;min-height:53px;border-bottom:1px solid var(--stroke);font-size:9.5px}.bias-adjustment-row>span{color:#c9d7db;font-weight:600}.bias-adjustment-row small,.bias-adjustment-row strong{display:block}.bias-adjustment-row small{color:var(--muted);font-size:8px}.bias-adjustment-row strong{margin-top:2px}.bias-adjustment-row>b,.bias-adjustment-row>button{padding:5px 7px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.07);font-size:8px;font-weight:700}.bias-adjustment-row>button{border:1px solid rgba(98,230,198,.24);color:var(--mint);background:rgba(98,230,198,.07);cursor:pointer}.bias-adjustment-row>b.active,.bias-adjustment-row>button.active{color:var(--mint);background:rgba(98,230,198,.08)}.bias-guardrail{display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;margin-top:12px;padding:10px;border-radius:9px;background:rgba(255,191,105,.045)}.bias-guardrail>span{width:45px;height:30px;display:grid;place-items:center;border-radius:7px;color:var(--amber);background:rgba(255,191,105,.1);font-size:9px;font-weight:700}.bias-guardrail strong,.bias-guardrail small{display:block}.bias-guardrail strong{font-size:9.5px}.bias-guardrail small{margin-top:3px;color:var(--muted);font-size:8.5px;line-height:1.35}.bias-matrix-card{grid-column:1/2}.analytics-scale{color:#6d8391;font-size:8px}.analytics-scale i,.analytics-scale b,.analytics-scale em{display:inline-block;width:14px;height:6px;margin:0 3px;border-radius:3px;background:var(--cyan)}.analytics-scale b{background:#183241}.analytics-scale em{background:var(--coral)}.bias-matrix{display:grid;grid-template-columns:90px repeat(6,1fr);gap:5px;margin-top:13px}.bias-matrix>span,.bias-matrix>i{min-height:29px;display:grid;place-items:center;border-radius:6px;font-size:8.5px;font-style:normal}.bias-matrix>span{color:#6d8391}.bias-matrix>span.row{place-items:center start;color:#a9bbc3;font-weight:600}.bias-matrix>i{color:#dbe7e8;border:1px solid rgba(255,255,255,.025)}.analytics-method-card{grid-column:2/3;grid-row:2/3;background:linear-gradient(145deg,rgba(156,140,255,.04),var(--panel) 52%)}.analytics-method-card h3{margin:5px 0 14px;font-size:14px}.analytics-method-card>div{display:grid;grid-template-columns:27px 1fr;gap:9px;align-items:start;margin-top:10px}.analytics-method-card>div>span{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;color:var(--violet);background:rgba(156,140,255,.09);font-size:8px;font-weight:700}.analytics-method-card p{margin:0}.analytics-method-card strong,.analytics-method-card small{display:block}.analytics-method-card strong{font-size:9.5px}.analytics-method-card small{margin-top:3px;color:var(--muted);font-size:8.7px;line-height:1.38}
.pattern-analytics-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:13px}.pattern-space-card{min-height:338px}.pattern-space-card canvas{width:100%;height:255px;margin-top:9px;border-radius:9px;background:radial-gradient(circle at 55% 45%,rgba(156,140,255,.06),transparent 45%)}.pattern-axis{display:flex;justify-content:space-between;color:#58707e;font-size:8px}.pattern-cluster-list{display:grid;gap:7px;margin-top:12px}.pattern-cluster-list>button{width:100%;min-height:55px;padding:8px;border:1px solid transparent;border-radius:10px;color:#8196a2;background:#0d1b29;display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer}.pattern-cluster-list>button:hover,.pattern-cluster-list>button.active{border-color:rgba(156,140,255,.2);background:rgba(156,140,255,.055)}.pattern-cluster-list i{width:7px;height:28px;border-radius:5px}.violet-bg{background:var(--violet)}.mint-bg{background:var(--mint)}.cyan-bg{background:var(--cyan)}.amber-bg2{background:var(--amber)}.pattern-cluster-list strong,.pattern-cluster-list small{display:block}.pattern-cluster-list strong{color:#d3dfe1;font-size:9.5px}.pattern-cluster-list small{margin-top:3px;color:var(--muted);font-size:8.5px}.pattern-cluster-list b{color:#b6c7ce;font-size:10px}.pattern-detail-card{background:linear-gradient(140deg,rgba(156,140,255,.055),var(--panel) 45%)}.novelty-badge,.stability-badge{padding:6px 8px;border-radius:7px;color:var(--violet);background:rgba(156,140,255,.08);font-size:8px;white-space:nowrap}.pattern-detail-kpis{display:grid;grid-template-columns:repeat(4,1fr);margin:14px 0;border:1px solid var(--stroke);border-radius:10px}.pattern-detail-kpis>span{padding:10px;border-right:1px solid var(--stroke)}.pattern-detail-kpis>span:last-child{border-right:0}.pattern-detail-kpis small,.pattern-detail-kpis strong{display:block}.pattern-detail-kpis small{color:var(--muted);font-size:8px}.pattern-detail-kpis strong{margin-top:4px;font-size:11px}.pattern-explanation>strong{display:block;margin-bottom:9px;font-size:9.5px}.pattern-explanation>div,.demand-feature,.seasonality-row{display:grid;grid-template-columns:minmax(105px,1fr) 1.2fr 35px;gap:9px;align-items:center;min-height:28px;font-size:8.8px}.pattern-explanation i,.demand-feature i,.seasonality-row i{height:5px;border-radius:5px;background:#172b3a;overflow:hidden}.pattern-explanation i>b,.demand-feature i>b,.seasonality-row i>b{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--violet),var(--cyan))}.pattern-explanation em{color:#8ca1ac;font-style:normal;text-align:right}.pattern-detail-card>p:last-child{margin:13px 0 0;padding:11px;border-radius:9px;color:#95a9b3;background:rgba(156,140,255,.045);font-size:9.3px;line-height:1.5}.pattern-method{grid-column:auto;grid-row:auto}
.change-analytics-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:13px}.change-chart-card{position:relative;min-height:340px}.change-chart-card canvas{width:100%;height:255px;margin-top:11px}.change-chart-events{position:absolute;left:45px;right:22px;bottom:31px;height:205px;pointer-events:none}.change-chart-events>span{position:absolute;bottom:0;height:100%;border-left:1px dashed rgba(255,191,105,.55);color:var(--amber);font-size:7.5px;letter-spacing:.35px}.change-chart-events>span i{display:block;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--amber)}.change-chart-events>span.structural{border-color:rgba(255,102,118,.62);color:var(--coral)}.change-chart-events>span.structural i{background:var(--coral)}.change-event-list{display:grid;gap:7px;margin-top:12px}.change-event-list>button{min-height:53px;padding:8px 9px;border:1px solid transparent;border-radius:9px;color:#8095a1;background:#0d1b29;display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;text-align:left}.change-event-list>button>i{width:7px;height:27px;border-radius:5px;background:var(--amber)}.change-event-list>button.critical{border-color:rgba(255,102,118,.16);background:rgba(255,102,118,.045)}.change-event-list>button.critical>i{background:var(--coral)}.change-event-list strong,.change-event-list small{display:block}.change-event-list strong{color:#d2dfe1;font-size:9.5px}.change-event-list small{margin-top:3px;color:var(--muted);font-size:8.5px}.change-event-list b{padding:4px 6px;border-radius:5px;color:var(--amber);background:rgba(255,191,105,.07);font-size:7.5px}.change-event-list .critical b{color:var(--coral);background:rgba(255,102,118,.07)}.change-diagnosis-card{background:linear-gradient(145deg,rgba(255,102,118,.035),var(--panel) 52%)}.change-diagnosis-card h3{margin:5px 0 7px;font-size:14px}.change-diagnosis-card>p:not(.eyebrow){margin:0;color:#8ea2ac;font-size:9.5px;line-height:1.5}.change-diagnosis-card dl,.demand-profile-card dl{margin:13px 0 0}.change-diagnosis-card dl div,.demand-profile-card dl div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--stroke);font-size:9px}.change-diagnosis-card dt,.demand-profile-card dt{color:var(--muted)}.change-diagnosis-card dd,.demand-profile-card dd{margin:0;color:#c9d7da}.seasonality-card{background:linear-gradient(145deg,rgba(255,191,105,.03),var(--panel) 55%)}.seasonality-row{margin-top:8px}.seasonality-row i>b{background:linear-gradient(90deg,var(--amber),var(--coral))}.seasonality-row strong{text-align:right}.change-rule-note,.endpoint-quality-note{display:grid;grid-template-columns:39px 1fr;gap:9px;align-items:center;margin-top:14px;padding:10px;border-radius:9px;background:rgba(255,191,105,.045)}.change-rule-note>span,.endpoint-quality-note>span{width:38px;height:29px;display:grid;place-items:center;border-radius:7px;color:var(--amber);background:rgba(255,191,105,.1);font-size:9px;font-weight:700}.change-rule-note p,.endpoint-quality-note p{margin:0}.change-rule-note strong,.change-rule-note small,.endpoint-quality-note strong,.endpoint-quality-note small{display:block}.change-rule-note strong,.endpoint-quality-note strong{font-size:9px}.change-rule-note small,.endpoint-quality-note small{margin-top:3px;color:var(--muted);font-size:8.5px;line-height:1.35}
.demand-analytics-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.6fr);gap:13px}.demand-map-card{padding-bottom:13px}.demand-map-legend{display:flex;gap:10px;color:#778d9a;font-size:8px}.demand-map-legend span{display:flex;align-items:center;gap:5px}.demand-map-legend i{display:inline-block;width:15px;height:3px;border-radius:3px;background:var(--mint)}.demand-map-legend span:nth-child(2) i{background:var(--cyan)}.demand-map-legend span:nth-child(3) i{height:5px;background:var(--violet)}#analytics-route-map{width:100%;height:350px;margin-top:12px;border-radius:12px;overflow:hidden;background:#091722}.demand-profile-card{background:linear-gradient(145deg,rgba(68,183,232,.04),var(--panel) 55%)}.stability-badge{color:var(--mint);background:rgba(98,230,198,.07)}.demand-profile-ring{display:grid;grid-template-columns:86px 1fr;gap:15px;align-items:center;margin:17px 0}.demand-profile-ring>div{width:84px;height:84px;display:grid;place-content:center;text-align:center;border:8px solid rgba(98,230,198,.14);border-top-color:var(--mint);border-radius:50%}.demand-profile-ring strong,.demand-profile-ring small{display:block}.demand-profile-ring strong{font:600 25px/1 "Manrope",sans-serif}.demand-profile-ring small{margin-top:4px;color:var(--muted);font-size:8px}.demand-profile-ring>span{height:6px;border-radius:6px;background:#172b3a;overflow:hidden}.demand-profile-ring>span>b{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--mint),var(--cyan))}.endpoint-quality-note{background:rgba(98,230,198,.045)}.endpoint-quality-note>span{color:var(--mint);background:rgba(98,230,198,.1)}.dominant-route-table{margin-top:12px}.dominant-route-row{display:grid;grid-template-columns:minmax(190px,1.35fr) .5fr .35fr .45fr .35fr;gap:8px;align-items:center;min-height:52px;padding:7px 0;border-bottom:1px solid var(--stroke);color:#95a9b3;font-size:9px}.dominant-route-row.header{min-height:29px;color:#5d7483;text-transform:uppercase;font-size:8px}.dominant-route-row strong,.dominant-route-row small{display:block}.dominant-route-row strong{color:#d1dde0;font-size:9.5px}.dominant-route-row small{margin-top:3px;color:var(--muted);font-size:8.3px}.dominant-route-row em{justify-self:start;padding:4px 6px;border-radius:5px;color:var(--violet);background:rgba(156,140,255,.08);font-size:7.5px;font-style:normal}.dominant-route-row b{color:var(--mint)}.dominant-route-row i{color:#c5d5d9;font-style:normal}.demand-segmentation-card{background:linear-gradient(145deg,rgba(156,140,255,.035),var(--panel) 55%)}.demand-feature{margin-top:8px}.demand-feature i>b{background:linear-gradient(90deg,var(--mint),var(--violet))}.demand-feature strong{text-align:right}.segmentation-method-note{margin-top:14px;padding:10px;border-radius:9px;background:rgba(156,140,255,.045)}.segmentation-method-note strong,.segmentation-method-note small{display:block}.segmentation-method-note strong{font-size:9.5px}.segmentation-method-note small{margin-top:4px;color:var(--muted);font-size:8.5px;line-height:1.4}

@media(max-width:1180px){.analytics-module-nav{grid-template-columns:repeat(5,minmax(165px,1fr))}.analytics-filterbar{grid-template-columns:repeat(3,1fr)}.analytics-run-button{grid-column:span 1}.bias-analytics-grid,.pattern-analytics-grid,.change-analytics-grid,.demand-analytics-grid{grid-template-columns:1fr}.bias-matrix-card,.analytics-method-card{grid-column:auto;grid-row:auto}.analytics-method-card{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.analytics-method-card>p,.analytics-method-card>h3{grid-column:1/-1}.pattern-analytics-grid .pattern-detail-card,.pattern-analytics-grid .pattern-method{grid-column:auto}.demand-map-card{min-height:420px}}
@media(max-width:880px){.analytics-module-intro{align-items:flex-start;flex-direction:column}.analytics-filterbar{grid-template-columns:repeat(2,1fr)}.analytics-kpis{grid-template-columns:repeat(2,1fr)}.analytics-kpis>article:nth-child(2){border-right:0}.analytics-kpis>article:nth-child(-n+2){border-bottom:1px solid var(--stroke)}.bias-adjustment-row{grid-template-columns:1fr repeat(2,.6fr) auto}.pattern-detail-kpis{grid-template-columns:repeat(2,1fr)}.pattern-detail-kpis>span:nth-child(2){border-right:0}.pattern-detail-kpis>span:nth-child(-n+2){border-bottom:1px solid var(--stroke)}.analytics-method-card{grid-template-columns:1fr}.dominant-route-card{overflow-x:auto}.dominant-route-table{min-width:650px}}
@media(max-width:560px){.analytics-filterbar,.analytics-kpis{grid-template-columns:1fr}.analytics-kpis>article{border-right:0;border-bottom:1px solid var(--stroke)}.analytics-kpis>article:last-child{border-bottom:0}.analytics-run-button{grid-column:auto}.bias-adjustment-row{grid-template-columns:1fr 1fr}.bias-adjustment-row>span{grid-column:1/-1}.bias-matrix{grid-template-columns:70px repeat(6,minmax(34px,1fr));overflow-x:auto}.pattern-detail-kpis{grid-template-columns:1fr}.pattern-detail-kpis>span{border-right:0;border-bottom:1px solid var(--stroke)}.pattern-detail-kpis>span:last-child{border-bottom:0}.demand-map-legend{flex-wrap:wrap}#analytics-route-map{height:290px}.analytics-module-intro h3{font-size:14px}}

/* -------------------------------------------------------------------------
   Interaction, readability and shared chart behaviour
   ------------------------------------------------------------------------- */
:root {
  --radius-control: 10px;
  --radius-card: 14px;
  --control-height: 40px;
  --layer-controls: 20;
  --layer-popover: 40;
  --layer-tooltip: 80;
  --layer-dialog: 120;
}

:where(button, input, select, textarea, [role="button"]):focus-visible {
  outline: 2px solid var(--mint);
  outline-offset: 2px;
}

button:disabled,
[aria-disabled="true"] {
  opacity: .48;
  cursor: not-allowed !important;
  transform: none !important;
  filter: none !important;
}

.interactive-chart-host {
  position: relative;
  min-width: 0;
}

.interactive-chart-host canvas {
  display: block;
  cursor: crosshair;
  touch-action: pan-y;
}

.interactive-chart-host canvas:focus-visible {
  outline: 2px solid var(--mint);
  outline-offset: 3px;
  border-radius: 6px;
}

.chart-tooltip {
  position: absolute;
  z-index: var(--layer-tooltip);
  width: max-content;
  min-width: 220px;
  max-width: 290px;
  padding: 12px 13px;
  border: 1px solid rgba(151,187,202,.24);
  border-radius: 11px;
  color: #e7f1f3;
  background: rgba(6,16,26,.97);
  box-shadow: 0 14px 34px rgba(0,0,0,.42);
  font-size: 11px;
  line-height: 1.45;
  pointer-events: none;
}

.chart-tooltip[hidden] { display: none; }
.chart-tooltip-title { display: block; margin-bottom: 8px; color: #f2f8f9; font-size: 11.5px; font-weight: 700; }
.chart-tooltip-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 4px 0; }
.chart-tooltip-row > span { display: inline-flex; align-items: center; gap: 7px; color: #a9bcc4; }
.chart-tooltip-row i { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; box-shadow: 0 0 7px currentColor; }
.chart-tooltip-row b { color: #f0f6f7; font-variant-numeric: tabular-nums; white-space: nowrap; }
.chart-tooltip-delta { margin-top: 7px; padding-top: 7px; border-top: 1px solid var(--stroke); color: var(--mint); font-weight: 700; }
.chart-tooltip-delta.negative { color: var(--coral); }
.chart-tooltip-meta { display: grid; gap: 2px; margin-top: 7px; padding-top: 7px; border-top: 1px solid var(--stroke); color: #8fa4ae; }
.chart-tooltip-meta span { display: block; }

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

:where(
  .panel-title small,
  .module-filterbar label > span,
  .history-query-panel label > span,
  .forecast-legend,
  .dataset-card span small,
  .tier-card small,
  .requirement-row small,
  .model-note,
  .history-metric-footer small,
  .incident-item small,
  .incident-item p,
  .download-row,
  .export-preview,
  .map-legend,
  .timeline-time
) {
  font-size: 10px !important;
  line-height: 1.4;
}

:where(
  .secondary-action,
  .primary-action,
  .analytics-run-button,
  .history-submit,
  .download-primary,
  .table-download,
  .save-query,
  .format-options button
) {
  min-height: 38px;
  font-size: 11px !important;
}

.app-toast-region {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: var(--layer-dialog);
  width: min(370px, calc(100vw - 32px));
  display: grid;
  gap: 9px;
  pointer-events: none;
}

.app-toast {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 10px;
  align-items: start;
  padding: 13px 14px;
  border: 1px solid rgba(98,230,198,.25);
  border-radius: 12px;
  color: #e8f2f3;
  background: rgba(8,21,33,.98);
  box-shadow: 0 18px 45px rgba(0,0,0,.38);
  pointer-events: auto;
  animation: toast-in .18s ease-out;
}

.app-toast.warning { border-color: rgba(255,191,105,.3); }
.app-toast.error { border-color: rgba(255,102,118,.32); }
.app-toast > i { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 7px; color: #061b17; background: var(--mint); font-style: normal; font-weight: 800; }
.app-toast.warning > i { color: #2a1900; background: var(--amber); }
.app-toast.error > i { color: white; background: var(--coral); }
.app-toast strong,.app-toast small { display: block; }
.app-toast strong { font-size: 12px; }
.app-toast small { margin-top: 3px; color: #96aab3; font-size: 10.5px; line-height: 1.4; }
.app-toast button { width: 26px; height: 26px; border: 0; color: #8fa4ae; background: transparent; cursor: pointer; }

.app-dialog {
  width: min(620px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--stroke-strong);
  border-radius: 16px;
  color: var(--text);
  background: var(--panel);
  box-shadow: var(--shadow);
}
.app-dialog::backdrop { background: rgba(2,8,13,.68); backdrop-filter: blur(4px); }
.app-dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 20px; border-bottom: 1px solid var(--stroke); }
.app-dialog-head h2 { margin: 4px 0 0; font: 600 18px "Manrope",sans-serif; }
.app-dialog-head button { width: 36px; height: 36px; border: 1px solid var(--stroke); border-radius: 9px; color: var(--muted); background: #102130; cursor: pointer; }
.app-dialog-body { padding: 20px; color: #a9bbc3; font-size: 12px; line-height: 1.55; }
.app-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 0 20px 20px; }

.corridor-card[role="button"],.incident-item[role="button"] { outline: none; }
.corridor-card[role="button"]:focus-visible,.incident-item[role="button"]:focus-visible { box-shadow: 0 0 0 2px var(--mint); }

/* User-created corridors: clear ownership, persistent management and safe deletion. */
.corridor-card>div{flex-wrap:wrap}.corridor-card .custom-corridor-badge{padding:3px 5px;border:1px solid rgba(156,140,255,.22);border-radius:5px;color:var(--violet);background:rgba(156,140,255,.07);font-size:7px;font-style:normal;font-weight:700;letter-spacing:.45px}.corridor-card .custom-corridor-badge+small{flex-basis:100%;padding-left:1px}.corridor-analysis-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.delete-corridor-action{height:30px;padding:0 9px;border:1px solid rgba(255,102,118,.24);border-radius:8px;color:var(--coral);background:rgba(255,102,118,.06);display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:700;cursor:pointer}.delete-corridor-action[hidden]{display:none}.delete-corridor-action svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.delete-corridor-action:hover{border-color:rgba(255,102,118,.5);background:rgba(255,102,118,.12)}.app-dialog.danger-confirm .primary-action{background:var(--coral);color:#22070b}.app-dialog.danger-confirm .app-dialog-head{border-top:2px solid rgba(255,102,118,.65)}

/* Weekly congestion pattern: metric, thresholds and an operational reading. */
.weekly-pattern-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,.75fr);gap:18px;margin-top:16px}.weekly-pattern-map{min-width:0;overflow-x:auto;padding-bottom:4px}.weekly-pattern-map .traffic-heatmap{min-width:720px;margin-top:0}.weekly-pattern-legend{min-width:520px;margin:12px 0 0 48px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:8.5px}.weekly-pattern-legend span{display:flex;align-items:center;gap:5px}.weekly-pattern-legend i{width:16px;height:7px;border-radius:3px}.weekly-pattern-legend .l1{background:#174238}.weekly-pattern-legend .l2{background:#286a51}.weekly-pattern-legend .l3{background:#92733f}.weekly-pattern-legend .l4{background:#9e4c4d}.weekly-pattern-legend .l5{background:#c84e5e}.heat-cell{border:1px solid transparent;cursor:pointer;outline:none;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.heat-cell:hover,.heat-cell:focus-visible{transform:scale(1.12);border-color:rgba(255,255,255,.65);z-index:1}.heat-cell.selected{border-color:#fff;box-shadow:0 0 0 2px rgba(68,183,232,.32),0 0 14px rgba(68,183,232,.22)}.weekly-pattern-explainer{padding:15px;border:1px solid rgba(68,183,232,.13);border-radius:12px;background:linear-gradient(145deg,rgba(68,183,232,.055),rgba(9,19,30,.3))}.weekly-pattern-explainer h4{margin:8px 0 5px;font:600 15px/1.25 "Manrope",sans-serif}.weekly-pattern-explainer>p:not(.eyebrow){margin:0;color:var(--muted);font-size:9.5px;line-height:1.55}.weekly-pattern-explainer dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}.weekly-pattern-explainer dl>div{padding:9px;border:1px solid var(--stroke);border-radius:8px;background:rgba(255,255,255,.015)}.weekly-pattern-explainer dt{color:var(--muted);font-size:7.5px}.weekly-pattern-explainer dd{margin:4px 0 0;color:#dbe7e9;font-size:10.5px;font-weight:700}.weekly-pattern-formula{display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:start;padding-top:11px;border-top:1px solid var(--stroke)}.weekly-pattern-formula>span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:var(--cyan);background:rgba(68,183,232,.09);font-weight:700}.weekly-pattern-formula p{margin:0}.weekly-pattern-formula strong,.weekly-pattern-formula small{display:block}.weekly-pattern-formula strong{font-size:8.5px}.weekly-pattern-formula small{margin-top:4px;color:var(--muted);font-size:7.8px;line-height:1.45}
@media(max-width:1100px){.weekly-pattern-layout{grid-template-columns:1fr}.weekly-pattern-explainer{max-width:none}}
@media(max-width:600px){.analysis-head{gap:10px;flex-direction:column}.corridor-analysis-actions{width:100%;justify-content:space-between}.weekly-pattern-explainer dl{grid-template-columns:1fr}.delete-corridor-action span{display:none}}

/* Explicit provenance for the historical query path. */
.history-source-badge{min-width:86px;justify-content:center;text-align:center;transition:color .16s ease,background .16s ease,border-color .16s ease}.history-source-badge.connected{color:#061c17!important;background:var(--mint)!important;border-color:var(--mint)!important;box-shadow:0 0 18px rgba(98,230,198,.18)}.history-source-badge.fallback{color:var(--amber)!important;background:rgba(255,191,105,.08)!important;border:1px solid rgba(255,191,105,.2)}
.quality-row{grid-template-columns:1.45fr .72fr .85fr 1.15fr}.quality-row>div{min-width:0;padding-left:9px}.quality-row small{letter-spacing:.8px}.quality-row strong{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-state-source{min-width:76px;padding:5px 7px;border:1px solid rgba(98,230,198,.2);border-radius:6px;color:var(--mint);background:rgba(98,230,198,.07);font-size:7.5px;font-weight:700;letter-spacing:.35px;text-align:center;white-space:nowrap}.live-state-source.fallback{border-color:rgba(255,191,105,.2);color:var(--amber);background:rgba(255,191,105,.07)}#selected-current-source.backend{color:var(--mint)}#selected-current-source.delayed{color:var(--amber)}#selected-current-source.stale{color:#98a8b0}
.history-baseline-proof{margin:0 0 14px;padding:12px;border:1px solid rgba(156,140,255,.18);border-radius:10px;background:linear-gradient(135deg,rgba(156,140,255,.07),rgba(68,183,232,.025))}.history-baseline-proof>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center}.history-baseline-proof small{color:var(--violet);font-size:7.5px;letter-spacing:.55px}.history-baseline-proof b{padding:4px 6px;border-radius:5px;color:var(--amber);background:rgba(255,191,105,.08);font-size:7.5px}.history-baseline-proof.ready b{color:var(--mint);background:rgba(98,230,198,.08)}.history-baseline-proof>strong,.history-baseline-proof>span{display:block}.history-baseline-proof>strong{margin-top:8px;font-size:10px}.history-baseline-proof>span{margin-top:4px;color:var(--muted);font-size:8.5px;line-height:1.4}.history-baseline-proof dl{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:10px 0 0;border-top:1px solid var(--stroke)}.history-baseline-proof dl div{min-width:0;padding:8px 6px 0;border-right:1px solid var(--stroke)}.history-baseline-proof dl div:first-child{padding-left:0}.history-baseline-proof dl div:last-child{padding-right:0;border-right:0}.history-baseline-proof dt,.history-baseline-proof dd{margin:0}.history-baseline-proof dt{color:#607686;font-size:7.5px}.history-baseline-proof dd{margin-top:3px;color:#cddadd;font-size:8.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@keyframes toast-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 760px) {
  .app-dialog-form.two-columns { grid-template-columns: 1fr; }
  .chart-tooltip { min-width: 190px; max-width: 240px; }
  .app-toast-region { right: 16px; bottom: 76px; }
}

/* -------------------------------------------------------------------------
   Final UX polish: consistent controls, feedback, responsive density
   ------------------------------------------------------------------------- */
:root {
  --control-height: 42px;
  --control-bg: #0d1c2a;
  --control-border: rgba(177,211,224,.17);
  --control-border-hover: rgba(177,211,224,.3);
  --text-soft: #a7bac2;
  --text-dim: #8da2ad;
  --layer-tooltip: 900;
  --layer-dialog: 1100;
  --layer-toast: 1200;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.content-view { font-size: 13px; }

:where(
  .panel-title small,
  .module-filterbar label > span,
  .history-query-panel label > span,
  .export-form-grid label > span,
  .route-builder-grid label > span,
  .forecast-legend,
  .legend-inline,
  .dataset-card span small,
  .tier-card small,
  .requirement-row small,
  .model-note,
  .history-metric-footer small,
  .incident-item small,
  .incident-item p,
  .download-row,
  .delivery-row,
  .compact-row,
  .map-legend,
  .timeline-time
) {
  color: var(--text-dim);
  font-size: 10.5px !important;
  line-height: 1.45;
}

:where(
  .panel-title h3,
  .module-header h2,
  .analytics-chart-card h3,
  .analytics-method-card h3,
  .pattern-detail-card h3,
  .change-diagnosis-card h3,
  .demand-profile-card h3
) {
  text-wrap: balance;
}

/* One control language across filters, builders and historical queries. */
:where(
  .module-filterbar,
  .history-query-panel,
  .export-form-grid,
  .route-builder-grid,
  .incident-filters,
  .analytics-filterbar
) :where(input, select) {
  min-height: var(--control-height);
  border-color: var(--control-border);
  border-radius: var(--radius-control);
  color: #dce7e9;
  background-color: var(--control-bg);
  font-size: 12px !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

:where(
  .module-filterbar,
  .history-query-panel,
  .export-form-grid,
  .route-builder-grid,
  .incident-filters,
  .analytics-filterbar
) label > span {
  margin-bottom: 6px;
  color: var(--text-dim);
  font-size: 11px !important;
  font-weight: 600;
  letter-spacing: .01em;
}

@media (hover: hover) {
  :where(
    .module-filterbar,
    .history-query-panel,
    .export-form-grid,
    .route-builder-grid,
    .incident-filters,
    .analytics-filterbar
  ) :where(input, select):not(:disabled):hover {
    border-color: var(--control-border-hover);
    background-color: #102131;
  }
}

:where(
  .module-filterbar,
  .history-query-panel,
  .export-form-grid,
  .route-builder-grid,
  .incident-filters,
  .analytics-filterbar
) :where(input, select)[aria-invalid="true"] {
  border-color: rgba(255,102,118,.72);
  box-shadow: 0 0 0 3px rgba(255,102,118,.09);
}

:where(
  .primary-action,
  .secondary-action,
  .history-submit,
  .analytics-run-button,
  .download-primary,
  .save-query,
  .table-download,
  .format-options button,
  .map-filter-clear
) {
  min-height: 40px;
  border-radius: var(--radius-control);
  font-size: 12px !important;
  font-weight: 700;
  transition: transform .16s ease, filter .16s ease, border-color .16s ease, background-color .16s ease;
}

@media (hover: hover) {
  :where(
    .primary-action,
    .secondary-action,
    .history-submit,
    .analytics-run-button,
    .download-primary,
    .save-query,
    .table-download,
    .format-options button,
    .map-filter-clear
  ):not(:disabled):hover {
    transform: translateY(-1px);
  }
}

:where(
  .primary-action,
  .secondary-action,
  .history-submit,
  .analytics-run-button,
  .download-primary,
  .save-query,
  .table-download,
  .format-options button,
  .map-filter-clear
):not(:disabled):active {
  transform: translateY(0);
}

/* Reusable action feedback and asynchronous states. */
.action-feedback,
.app-action-feedback {
  display: grid;
  grid-template-columns: 22px minmax(0,1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 42px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(68,183,232,.2);
  border-radius: 10px;
  color: var(--text-soft);
  background: rgba(68,183,232,.055);
  font-size: 11px;
  line-height: 1.45;
}

.action-feedback[hidden],.app-action-feedback[hidden] { display: none !important; }
.action-feedback::before,.app-action-feedback::before {
  content: "i";
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  color: var(--cyan);
  background: rgba(68,183,232,.12);
  font-style: normal;
  font-weight: 800;
}
.action-feedback.success,.app-action-feedback.success { border-color: rgba(98,230,198,.22); color: #b9d9d1; background: rgba(98,230,198,.055); }
.action-feedback.success::before,.app-action-feedback.success::before { content: "✓"; color: var(--mint); background: rgba(98,230,198,.12); }
.action-feedback.warning,.app-action-feedback.warning { border-color: rgba(255,191,105,.24); color: #d8c6a7; background: rgba(255,191,105,.055); }
.action-feedback.warning::before,.app-action-feedback.warning::before { content: "!"; color: var(--amber); background: rgba(255,191,105,.12); }
.action-feedback.error,.app-action-feedback.error { border-color: rgba(255,102,118,.26); color: #e3b5bb; background: rgba(255,102,118,.06); }
.action-feedback.error::before,.app-action-feedback.error::before { content: "!"; color: var(--coral); background: rgba(255,102,118,.13); }
.action-feedback button,.app-action-feedback button { min-width: 32px; min-height: 32px; border: 0; border-radius: 8px; color: inherit; background: transparent; cursor: pointer; }

:where(button, [role="button"])[aria-busy="true"],
:where(button, [role="button"]).is-loading {
  position: relative;
  cursor: progress !important;
  pointer-events: none;
}

:where(button, [role="button"])[aria-busy="true"]::after,
:where(button, [role="button"]).is-loading::after {
  content: "";
  width: 14px;
  height: 14px;
  margin-left: 8px;
  display: inline-block;
  vertical-align: -2px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ui-spin .72s linear infinite;
}

.loading-state,
.empty-state {
  min-height: 150px;
  padding: 24px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 8px;
  border: 1px dashed var(--stroke-strong);
  border-radius: var(--radius-card);
  color: var(--text-dim);
  background: rgba(255,255,255,.012);
  text-align: center;
  font-size: 12px;
}
.loading-state::before {
  content: "";
  width: 22px;
  height: 22px;
  border: 2px solid rgba(98,230,198,.24);
  border-top-color: var(--mint);
  border-radius: 50%;
  animation: ui-spin .8s linear infinite;
}
.empty-state strong { color: #d6e3e5; font-size: 13px; }
.empty-state small { max-width: 440px; color: var(--text-dim); font-size: 11px; line-height: 1.5; }

/* Interactive cards have the same affordance and keyboard focus. */
:where(
  .corridor-card,
  .incident-item,
  .dataset-card,
  .tier-card,
  .pattern-cluster-list > button,
  .change-event-list > button,
  .analytics-module-nav > button,
  .heavy-analysis-panel > button
) {
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

@media (hover: hover) {
  :where(
    .corridor-card,
    .incident-item,
    .dataset-card,
    .tier-card,
    .pattern-cluster-list > button,
    .change-event-list > button,
    .analytics-module-nav > button,
    .heavy-analysis-panel > button
  ):not(:disabled):hover {
    border-color: rgba(98,230,198,.28);
    box-shadow: 0 10px 28px rgba(0,0,0,.16);
    transform: translateY(-1px);
  }
}

:where(
  .corridor-card,
  .incident-item,
  .dataset-card,
  .tier-card,
  .pattern-cluster-list > button,
  .change-event-list > button,
  .analytics-module-nav > button,
  .heavy-analysis-panel > button
):focus-visible {
  outline: 2px solid var(--mint);
  outline-offset: 2px;
  border-color: rgba(98,230,198,.45);
  box-shadow: 0 0 0 4px rgba(98,230,198,.08);
}

/* Tier 3 data rule. */
.tier3-exemption,
.tier3-banner {
  grid-template-columns: 38px minmax(0,1fr) auto;
  gap: 11px;
  min-height: 62px;
  padding: 12px 13px;
  border-color: rgba(68,183,232,.26);
  background: linear-gradient(105deg,rgba(68,183,232,.1),rgba(68,183,232,.025) 72%);
  box-shadow: inset 3px 0 0 rgba(68,183,232,.7);
}
.tier3-exemption > span,
.tier3-banner > span:first-child {
  width: 36px;
  height: 36px;
  color: #071923;
  background: var(--cyan);
  font-size: 15px;
  font-weight: 800;
}
.tier3-exemption strong,
.tier3-banner strong { color: #dce9ec; font-size: 12px !important; }
.tier3-exemption small,
.tier3-banner small { color: #94aab4; font-size: 10.5px !important; line-height: 1.45; }
.tier3-exemption > b,
.tier3-banner > b {
  align-self: center;
  padding: 6px 8px;
  border-radius: 7px;
  color: var(--cyan);
  background: rgba(68,183,232,.1);
  font-size: 9px;
  letter-spacing: .04em;
  white-space: nowrap;
}
#view-intensitat.tier3-exempt .intensity-grid { display: none; }
#view-intensitat.tier3-exempt .intensity-source-banner { opacity: .62; }
.intensity-tier3-banner .secondary-action { width: auto; margin: 0; white-space: nowrap; }

.tier-card h3 { font-size: 13px; }
.tier-card p { color: var(--text-dim); font-size: 10.5px; line-height: 1.45; }
.tier-card em,.tier-card > b { font-size: 9.5px; line-height: 1.35; }
.tier-number { font-size: 11px; }
.tier-kpis small { font-size: 10px; }
.tier-kpis strong { font-size: 12px; }
.requirement-row strong { font-size: 11px; }
.requirement-row small { font-size: 10px !important; }
.requirement-row > b { font-size: 9px; }
.field-chips i { font-size: 9px; }
.tier-controls-grid h3 { font-size: 11px; }
.tier-controls-grid p:not(.eyebrow) { font-size: 10px; line-height: 1.45; }
.tier-controls-grid article > b { font-size: 9px; }
.official-source-chip small { font-size: 9px; }
.official-source-chip strong { font-size: 10.5px; }
.imd-rule-banner strong { font-size: 11px; }
.imd-rule-banner small { font-size: 10px; line-height: 1.4; }
.imd-rule-banner > b { font-size: 9px; }

/* Map annotations only gain legibility; no map container or layer geometry changes. */
.map-legend span { font-size: 10px; }
.prediction-map-legend,.intensity-map-legend,.module-map-note,.imd-tier-legend { font-size: 9.5px; line-height: 1.35; }
.maplibregl-ctrl-attrib { font-size: 9px; }

/* Tooltip details and keyboard-visible chart state. */
.interactive-chart-host:focus-within { border-radius: 9px; }
.chart-tooltip {
  font-variant-numeric: tabular-nums;
  will-change: transform, left, top;
}
.chart-tooltip.is-flipped { transform: translateX(-100%); }
.chart-crosshair {
  position: absolute;
  top: 12px;
  bottom: 24px;
  z-index: calc(var(--layer-tooltip) - 1);
  width: 1px;
  background: linear-gradient(to bottom,transparent,rgba(238,247,248,.5) 12%,rgba(238,247,248,.5) 88%,transparent);
  pointer-events: none;
}
.chart-crosshair[hidden] { display: none; }
.chart-tooltip-row + .chart-tooltip-row { border-top: 1px solid rgba(177,211,224,.08); }

/* Toasts and dialogs remain above map controls without touching map layers. */
.app-toast-region { z-index: var(--layer-toast); }
.app-toast { border-color: rgba(68,183,232,.24); }
.app-toast.success { border-color: rgba(98,230,198,.28); }
.app-toast.info > i { color: #071923; background: var(--cyan); }
.app-toast.success > i { color: #061b17; background: var(--mint); }
.app-toast.is-leaving { opacity: 0; transform: translateY(5px); transition: opacity .16s ease, transform .16s ease; }
.app-toast button {
  width: 32px;
  height: 32px;
  margin: -4px -5px 0 0;
  border-radius: 8px;
}
@media (hover: hover) { .app-toast button:hover { color: #eef7f8; background: rgba(255,255,255,.055); } }

.app-dialog {
  max-height: min(760px,calc(100dvh - 40px));
  overflow: hidden;
}
.app-dialog[open] { display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.app-dialog-body { overflow: auto; overscroll-behavior: contain; }
.app-dialog-actions { align-items: center; border-top: 1px solid rgba(177,211,224,.08); padding-top: 16px; background: var(--panel); }
.app-dialog-actions :where(button,.primary-action,.secondary-action) { width: auto; min-width: 110px; margin-top: 0; }
.app-dialog-copy { margin: 0 0 16px; color: #a9bbc3; font-size: 12.5px; line-height: 1.6; }
.app-dialog-list { display: grid; gap: 8px; }
.app-dialog-list > div { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 12px; padding: 11px 12px; border: 1px solid rgba(177,211,224,.1); border-radius: 10px; background: rgba(9,24,35,.7); }
.app-dialog-list > div > i { display: grid; place-items: center; min-height: 30px; padding: 0 5px; border-radius: 7px; color: var(--mint); background: rgba(98,230,198,.09); font-style: normal; font-size: 9.5px; font-weight: 800; letter-spacing: .04em; }
.app-dialog-list > div > span { display: grid; gap: 2px; min-width: 0; }
.app-dialog-list strong { color: #eef7f8; font-size: 12.5px; line-height: 1.25; }
.app-dialog-list small { color: #8298a4; font-size: 10.5px; line-height: 1.4; }
.app-dialog-form { display: grid; gap: 12px; }
.app-dialog-form.two-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
.app-dialog-form label { display: grid; gap: 7px; color: #8ea3ad; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.app-dialog-form :where(input,select) { width: 100%; min-height: 42px; border: 1px solid rgba(177,211,224,.16); border-radius: 9px; padding: 0 11px; color: #eaf5f6; background: #0b1b28; font: 600 12px "DM Sans",sans-serif; color-scheme: dark; }

/* Grid children must be allowed to shrink at the compact desktop breakpoint. */
.topbar,.view,.map-workspace { min-width: 0; width: 100%; max-width: 100%; }
@media (max-width: 1180px) and (min-width: 881px) {
  .topbar { gap: 12px; padding-inline: 18px; }
  .page-heading { min-width: 165px; }
  .road-pk-search { flex: 1 1 430px; width: auto; max-width: 560px; }
  .time-button { display: none; }
}
@media (max-width: 880px) {
  .sidebar { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .sidebar::-webkit-scrollbar { display: none; }
  .main-nav {
    display: flex !important;
    width: max-content;
    min-width: 100%;
    height: 52px;
    gap: 2px;
    overflow: visible;
  }
  .nav-item { flex: 0 0 54px; min-width: 54px; padding: 0; }
}
@media (max-width: 560px) {
  .road-pk-search .tier-field,.road-pk-search .tier-divider { display: none !important; }
  .road-pk-search { grid-template-columns: minmax(70px,1fr) 1px 46px 8px 46px 32px; }
}

/* Div-based data tables get predictable scrolling, headers and numerals. */
:where(
  .download-table,
  .delivery-table,
  .intensity-ranking-panel,
  .movements-panel,
  .dominant-route-card,
  .compact-table,
  .od-matrix-panel
) {
  scrollbar-width: thin;
  scrollbar-color: #2d4a5d transparent;
}
:where(
  .download-table,
  .delivery-table,
  .intensity-ranking-panel,
  .movements-panel,
  .dominant-route-card,
  .od-matrix-panel
)::-webkit-scrollbar { height: 8px; width: 8px; }
:where(
  .download-table,
  .delivery-table,
  .intensity-ranking-panel,
  .movements-panel,
  .dominant-route-card,
  .od-matrix-panel
)::-webkit-scrollbar-thumb { border-radius: 8px; background: #2d4a5d; }

:where(
  .download-row,
  .delivery-row,
  .volume-row,
  .movement-row,
  .dominant-route-row,
  .compact-row
) { font-variant-numeric: tabular-nums; }

:where(
  .download-row.header,
  .delivery-row.header,
  .volume-row.header,
  .movement-row.header,
  .dominant-route-row.header,
  .compact-row.header
) {
  position: sticky;
  top: 0;
  z-index: 2;
  color: #8ea3ad;
  background: #0c1a28;
}

@media (hover: hover) {
  :where(
    .download-row:not(.header),
    .delivery-row:not(.header),
    .volume-row:not(.header),
    .movement-row:not(.header),
    .dominant-route-row:not(.header),
    .compact-row:not(.header)
  ):hover { background: rgba(255,255,255,.018); }
}

.table-scroll-hint {
  display: none;
  margin-top: 7px;
  color: var(--text-dim);
  font-size: 10px;
  text-align: right;
}

/* Intermediate desktop: reduce density before the compact rail breakpoint. */
@media (max-width: 1280px) {
  .content-view { padding: 22px; }
  .content-header { gap: 14px; margin-bottom: 19px; }
  .content-header h2 { font-size: 24px; }
  .download-workbench,.tier-workspace { grid-template-columns: 1fr; }
  .export-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .history-query-main { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .history-query-main .day-type-control { grid-column: span 2; }
  .history-time-range { grid-template-columns: 1fr 20px 1fr; }
  .history-presets { grid-column: 1/3; }
  .history-submit { grid-column: 3; }
  .analytics-filterbar { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 1024px) {
  .content-view { padding: 18px; }
  .content-header { align-items: flex-start; flex-wrap: wrap; }
  .content-header > :last-child { margin-left: 0; }
  .history-query-main,
  .module-filterbar,
  .module-filterbar.heavy-filterbar,
  .incident-filters,
  .analytics-filterbar,
  .export-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .history-query-main .day-type-control { grid-column: span 2; }
  .historical-comparison-grid,
  .intensity-grid,
  .prediction-layout,
  .incidents-layout,
  .bias-analytics-grid,
  .pattern-analytics-grid,
  .change-analytics-grid,
  .demand-analytics-grid,
  .flow-analysis-grid,
  .od-primary-grid { grid-template-columns: 1fr; }
  .history-summary { position: static; min-height: 0; }
  .analytics-kpis,.module-kpis,.prediction-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .table-scroll-hint { display: block; }
  .download-table,.delivery-table,.movements-panel,.intensity-ranking-panel,.dominant-route-card,.od-matrix-panel {
    overflow-x: auto;
    overscroll-behavior-x: contain;
  }
}

@media (max-width: 760px) {
  :root { --control-height: 44px; }
  .content-view { padding: 16px 12px 84px; }
  .content-header { display: block; margin-bottom: 16px; }
  .content-header h2 { font-size: 22px; letter-spacing: -.45px; }
  .content-header > :last-child { margin-top: 12px; }
  :where(
    .analysis-panel,
    .wide-panel,
    .side-summary,
    .heatmap-panel,
    .quality-hero,
    .quality-metric,
    .distribution-panel,
    .issues-panel,
    .delivery-table-panel,
    .module-map-panel,
    .module-chart-panel,
    .analytics-chart-card,
    .analytics-method-card,
    .pattern-space-card,
    .pattern-detail-card,
    .change-chart-card,
    .change-diagnosis-card,
    .demand-map-card,
    .demand-profile-card
  ) { padding: 14px; border-radius: 13px; }
  .history-query-main,
  .history-time-range,
  .history-time-group,
  .module-filterbar,
  .module-filterbar.heavy-filterbar,
  .incident-filters,
  .analytics-filterbar,
  .export-form-grid,
  .route-builder-grid { grid-template-columns: 1fr; }
  .history-query-main .day-type-control,
  .history-presets,
  .history-submit { grid-column: auto; }
  .history-range-arrow { display: none; }
  .history-presets { display: grid; grid-template-columns: repeat(2,1fr); }
  .history-presets button { min-height: 40px; font-size: 11px; }
  .analytics-kpis,.module-kpis,.prediction-kpis,.tier-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .analytics-kpis > article:nth-child(2n),.module-kpis > article:nth-child(2n) { border-right: 0; }
  .primary-action,.secondary-action,.history-submit,.analytics-run-button,.download-primary { min-height: 44px; }
  .app-dialog {
    width: 100%;
    max-width: none;
    max-height: calc(100dvh - 20px);
    margin: auto 0 0;
    border-radius: 18px 18px 0 0;
  }
  .app-dialog-head,.app-dialog-body { padding: 16px; }
  .app-dialog-actions { display: grid; grid-template-columns: 1fr; padding: 14px 16px 18px; }
  .app-dialog-actions :where(button,.primary-action,.secondary-action) { width: 100%; }
  .app-toast-region { left: 12px; right: 12px; bottom: 78px; width: auto; }
  .app-toast { padding: 12px; }
  .chart-tooltip { min-width: 180px; max-width: min(250px,calc(100vw - 32px)); font-size: 10.5px; }
  .tier3-exemption,.tier3-banner { grid-template-columns: 36px 1fr; }
  .tier3-exemption > b,.tier3-banner > b { grid-column: 2; justify-self: start; }
}

@media (max-width: 480px) {
  .analytics-kpis,.module-kpis,.prediction-kpis,.tier-kpis { grid-template-columns: 1fr; }
  .analytics-kpis > article,.module-kpis > article,.prediction-kpis > article,.tier-kpis > div {
    border-right: 0 !important;
    border-bottom: 1px solid var(--stroke);
  }
  .analytics-kpis > article:last-child,.module-kpis > article:last-child,.prediction-kpis > article:last-child,.tier-kpis > div:last-child { border-bottom: 0; }
  .app-toast { grid-template-columns: 22px 1fr auto; }
}

@keyframes ui-spin { to { transform: rotate(360deg); } }

/* Episode report: auditable closure and replay evidence. */
.segment-analysis-actions { display:flex; align-items:stretch; gap:10px; }
.episode-report-trigger { min-width:220px; padding:10px 12px; border:1px solid rgba(98,230,198,.24); border-radius:11px; color:var(--text); background:linear-gradient(145deg,rgba(98,230,198,.08),var(--panel)); display:grid; grid-template-columns:32px 1fr; gap:10px; align-items:center; text-align:left; cursor:pointer; }
.episode-report-trigger > span { width:31px; height:31px; display:grid; place-items:center; border-radius:9px; color:var(--mint); background:rgba(98,230,198,.1); font:700 9px "Manrope",sans-serif; }
.episode-report-trigger small,.episode-report-trigger strong { display:block; }
.episode-report-trigger small { color:var(--mint); font-size:8px; letter-spacing:.06em; }
.episode-report-trigger strong { margin-top:3px; font-size:11px; }
.episode-report-trigger:hover { border-color:rgba(98,230,198,.48); transform:translateY(-1px); }

.episode-report-panel { margin-top:16px; padding:18px; border:1px solid rgba(98,230,198,.18); border-radius:var(--radius); background:linear-gradient(145deg,rgba(98,230,198,.055),var(--panel) 52%); }
.episode-report-panel-head { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:13px; align-items:center; }
.episode-report-panel-head > span { width:41px; height:41px; display:grid; place-items:center; border-radius:11px; color:var(--mint); background:rgba(98,230,198,.1); font:700 11px "Manrope",sans-serif; }
.episode-report-panel-head h3 { margin:4px 0 3px; font:600 16px "Manrope",sans-serif; }
.episode-report-panel-head small { color:var(--muted); font-size:10px; }
.episode-report-panel-head > b { padding:6px 8px; border-radius:7px; color:var(--cyan); background:rgba(68,183,232,.08); font-size:8px; letter-spacing:.05em; }
.episode-report-coverage { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin:16px 0; }
.episode-report-coverage span { min-height:48px; padding:9px; border:1px solid var(--stroke); border-radius:9px; color:#a9bbc3; background:rgba(255,255,255,.012); display:flex; align-items:center; gap:8px; font-size:9.5px; line-height:1.25; }
.episode-report-coverage i { flex:0 0 auto; color:var(--mint); font-style:normal; font-weight:700; }
.episode-report-panel-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:13px; border-top:1px solid var(--stroke); }
.episode-report-panel-actions p { margin:0; }
.episode-report-panel-actions strong,.episode-report-panel-actions small { display:block; }
.episode-report-panel-actions strong { font-size:10.5px; }
.episode-report-panel-actions small { margin-top:3px; color:var(--muted); font-size:9px; }

.app-dialog.episode-report-dialog { width:min(940px,calc(100vw - 32px)); max-height:min(90vh,900px); }
.episode-report-preview { display:grid; gap:14px; }
.episode-report-notice { display:grid; grid-template-columns:24px 1fr; gap:10px; padding:11px 12px; border:1px solid rgba(255,191,105,.18); border-radius:10px; color:#b6c6cb; background:rgba(255,191,105,.045); font-size:10px; line-height:1.45; }
.episode-report-notice > i { width:22px; height:22px; display:grid; place-items:center; border-radius:7px; color:var(--amber); background:rgba(255,191,105,.1); font-style:normal; font-weight:700; }
.episode-report-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--stroke); border-radius:11px; overflow:hidden; }
.episode-report-summary > div { min-width:0; padding:12px; border-right:1px solid var(--stroke); }
.episode-report-summary > div:last-child { border-right:0; }
.episode-report-summary small,.episode-report-summary strong { display:block; }
.episode-report-summary small { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.04em; }
.episode-report-summary strong { margin-top:5px; font-size:11px; overflow-wrap:anywhere; }
.episode-report-preview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.episode-report-section { min-width:0; padding:14px; border:1px solid var(--stroke); border-radius:11px; background:rgba(8,22,33,.62); }
.episode-report-section.wide { grid-column:1/-1; }
.episode-report-section h3 { margin:0 0 10px; font:600 12px "Manrope",sans-serif; }
.episode-report-section dl { margin:0; }
.episode-report-section dl > div { display:grid; grid-template-columns:minmax(105px,.65fr) minmax(0,1.35fr); gap:10px; padding:7px 0; border-bottom:1px solid var(--stroke); }
.episode-report-section dl > div:last-child { border-bottom:0; }
.episode-report-section dt { color:var(--muted); font-size:9px; }
.episode-report-section dd { margin:0; color:#d1dfe2; font-size:9px; overflow-wrap:anywhere; }
.episode-report-version-list { display:grid; gap:7px; }
.episode-report-version-list span { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--stroke); font-size:9px; }
.episode-report-version-list span:last-child { border-bottom:0; }
.episode-report-version-list b { color:#d5e2e5; font-weight:600; }
.episode-report-version-list em { color:var(--mint); font-style:normal; text-align:right; }
.episode-report-mini-table { width:100%; border-collapse:collapse; font-size:9px; }
.episode-report-mini-table th,.episode-report-mini-table td { padding:8px 7px; border-bottom:1px solid var(--stroke); text-align:left; }
.episode-report-mini-table th { color:var(--muted); font-size:8px; font-weight:600; text-transform:uppercase; }
.episode-report-mini-table td { color:#cbd9dc; }
.episode-report-mini-table td:last-child { color:var(--mint); }
.episode-report-timeline { display:grid; gap:7px; }
.episode-report-timeline > div { display:grid; grid-template-columns:38px 8px minmax(0,1fr); gap:8px; align-items:start; }
.episode-report-timeline time { color:var(--muted); font-size:9px; }
.episode-report-timeline i { width:7px; height:7px; margin-top:3px; border-radius:50%; background:var(--amber); }
.episode-report-timeline div:first-child i { background:var(--sct-red); }
.episode-report-timeline div:last-child i { background:var(--sct-green); }
.episode-report-timeline strong,.episode-report-timeline small { display:block; }
.episode-report-timeline strong { font-size:9.5px; }
.episode-report-timeline small { margin-top:2px; color:var(--muted); font-size:8.5px; }
.episode-report-preview-actions { display:flex; justify-content:flex-end; }

@media (max-width:1180px) {
  .segment-analysis-actions { align-items:stretch; flex-direction:column; }
  .episode-report-coverage { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .app-dialog.episode-report-dialog { width:100%; max-height:calc(100dvh - 20px); }
  .episode-report-panel-head { grid-template-columns:42px 1fr; }
  .episode-report-panel-head > b { grid-column:2; justify-self:start; }
  .episode-report-coverage,.episode-report-summary,.episode-report-preview-grid { grid-template-columns:1fr 1fr; }
  .episode-report-summary > div:nth-child(2) { border-right:0; }
  .episode-report-summary > div:nth-child(-n+2) { border-bottom:1px solid var(--stroke); }
  .episode-report-panel-actions { align-items:stretch; flex-direction:column; }
}
@media (max-width:480px) {
  .episode-report-coverage,.episode-report-summary,.episode-report-preview-grid { grid-template-columns:1fr; }
  .episode-report-summary > div { border-right:0; border-bottom:1px solid var(--stroke); }
  .episode-report-summary > div:last-child { border-bottom:0; }
}

/* Event-time operational alert engine. */
.event-alert-icon { position:relative; }
.event-alert-icon i:first-child { width:15px; height:8px; border-left:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:skewY(-38deg); }
.event-alert-icon i:last-child { position:absolute; right:4px; top:4px; width:5px; height:5px; border:1.5px solid currentColor; border-radius:50%; box-shadow:0 0 0 3px rgba(255,102,118,.09); }
.event-alert-header { align-items:center; }
.event-alert-header > div:first-child { max-width:760px; }
.event-alert-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; flex-wrap:wrap; }
.engine-state { min-height:42px; padding:7px 11px; border:1px solid rgba(98,230,198,.18); border-radius:10px; background:rgba(98,230,198,.045); display:flex; align-items:center; gap:9px; }
.engine-state > i { width:8px; height:8px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 5px rgba(98,230,198,.09); animation:event-pulse 1.8s ease-in-out infinite; }
.engine-state small,.engine-state strong { display:block; }
.engine-state small { color:var(--mint); font-size:7px; font-weight:700; letter-spacing:.08em; }
.engine-state strong { margin-top:2px; color:#d4e2e5; font-size:9px; }

.event-time-contract { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:13px; align-items:center; margin-bottom:14px; padding:11px 14px; border:1px solid rgba(68,183,232,.18); border-radius:12px; background:linear-gradient(90deg,rgba(68,183,232,.065),rgba(68,183,232,.018)); }
.event-time-contract > span { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; color:var(--cyan); background:rgba(68,183,232,.1); font:700 10px "Manrope",sans-serif; }
.event-time-contract strong,.event-time-contract small { display:block; }
.event-time-contract strong { font-size:10.5px; }
.event-time-contract small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.35; }
.event-time-contract > b { padding:6px 8px; border-radius:7px; color:var(--amber); background:rgba(255,191,105,.08); font-size:8px; letter-spacing:.05em; }

.alert-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin-bottom:14px; border:1px solid var(--stroke); border-radius:13px; overflow:hidden; background:var(--panel); }
.alert-kpis article { min-width:0; padding:13px 15px; border-right:1px solid var(--stroke); }
.alert-kpis article:last-child { border-right:0; }
.alert-kpis small,.alert-kpis strong,.alert-kpis span { display:block; }
.alert-kpis small { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.04em; }
.alert-kpis strong { margin:5px 0 3px; color:#e3edef; font:600 21px "Manrope",sans-serif; }
.alert-kpis article:first-child strong { color:var(--coral); }
.alert-kpis article:nth-child(2) strong { color:var(--amber); }
.alert-kpis article:nth-child(3) strong { color:var(--mint); }
.alert-kpis article:nth-child(4) strong { color:var(--cyan); }
.alert-kpis span { color:#778e99; font-size:8.5px; }

.alert-filterbar { display:grid; grid-template-columns:auto repeat(4,minmax(112px,.55fr)) auto; gap:9px; align-items:end; margin-bottom:14px; padding:10px; border:1px solid var(--stroke); border-radius:12px; background:rgba(9,24,36,.8); }
.alert-filterbar label { min-width:0; }
.alert-filterbar label > span { display:block; margin:0 0 5px 2px; color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.04em; }
.alert-filterbar select { width:100%; min-height:36px; padding:0 28px 0 10px; border:1px solid var(--stroke); border-radius:8px; color:var(--text); background:#0c1b29; font-size:9.5px; }
.alert-filterbar .segmented { align-self:center; }
.alert-advance { min-height:36px; white-space:nowrap; }

.alert-state-machine-card { margin-bottom:14px; padding:15px 17px; border:1px solid rgba(68,183,232,.2); border-radius:13px; background:linear-gradient(145deg,rgba(68,183,232,.055),rgba(8,22,33,.96) 48%); }
.state-machine-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.state-machine-heading h3 { margin:4px 0 3px; font:600 14px "Manrope",sans-serif; }
.state-machine-heading small { color:var(--muted); font-size:8.5px; }
.hysteresis-badge { min-width:240px; padding:8px 11px; border:1px solid rgba(255,191,105,.17); border-radius:9px; background:rgba(255,191,105,.045); display:flex; align-items:center; gap:9px; }
.hysteresis-badge > i { width:10px; height:10px; border:2px solid var(--amber); border-radius:50%; box-shadow:0 0 0 4px rgba(255,191,105,.07); }
.hysteresis-badge small,.hysteresis-badge strong { display:block; }
.hysteresis-badge small { color:var(--amber); font-size:7px; letter-spacing:.05em; }
.hysteresis-badge strong { margin-top:3px; font-size:8.5px; }
.alert-state-track { display:grid; grid-template-columns:minmax(105px,1fr) 18px minmax(105px,1fr) 18px minmax(105px,1fr) 18px minmax(105px,1fr) 18px minmax(105px,1fr); gap:7px; align-items:center; margin:15px 0 12px; }
.alert-state-track > span { position:relative; min-width:0; padding:11px 9px 10px 38px; border:1px solid var(--stroke); border-radius:10px; background:rgba(255,255,255,.012); opacity:.58; transition:border-color .2s,background .2s,opacity .2s,transform .2s; }
.alert-state-track > span i { position:absolute; left:9px; top:50%; width:22px; height:22px; display:grid; place-items:center; border-radius:7px; color:var(--muted); background:rgba(129,150,165,.08); font-size:7px; font-style:normal; transform:translateY(-50%); }
.alert-state-track > span b,.alert-state-track > span small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.alert-state-track > span b { font-size:9px; }
.alert-state-track > span small { margin-top:3px; color:var(--muted); font-size:7px; }
.alert-state-track > span.completed { opacity:.86; border-color:rgba(98,230,198,.18); background:rgba(98,230,198,.025); }
.alert-state-track > span.completed i { color:var(--mint); background:rgba(98,230,198,.09); }
.alert-state-track > span.active { opacity:1; border-color:rgba(68,183,232,.55); background:rgba(68,183,232,.085); box-shadow:0 0 0 1px rgba(68,183,232,.09),0 10px 26px rgba(0,0,0,.12); transform:translateY(-2px); }
.alert-state-track > span.active i { color:#06131d; background:var(--cyan); }
.alert-state-track > span[data-machine-state="candidate"].active { border-color:rgba(255,191,105,.55); background:rgba(255,191,105,.07); }
.alert-state-track > span[data-machine-state="candidate"].active i,.alert-state-track > span[data-machine-state="provisional"].active i { background:var(--amber); }
.alert-state-track > span[data-machine-state="confirmed"].active { border-color:rgba(98,230,198,.52); background:rgba(98,230,198,.065); }
.alert-state-track > span[data-machine-state="confirmed"].active i { background:var(--mint); }
.alert-state-track > span[data-machine-state="resolved"].active { border-color:rgba(129,150,165,.4); background:rgba(129,150,165,.055); }
.alert-state-track > span[data-machine-state="resolved"].active i { color:#dbe7e9; background:#526673; }
.alert-state-track > em { color:#526b79; font-style:normal; font-size:14px; text-align:center; }
.state-machine-foot { display:flex; align-items:center; gap:16px; padding-top:10px; border-top:1px solid var(--stroke); color:#8da2ab; font-size:8px; }
.state-machine-foot span { display:flex; align-items:center; gap:6px; }
.state-machine-foot i { width:17px; height:4px; border-radius:2px; }
.activation-zone { background:var(--coral); }
.hold-zone { background:var(--amber); }
.recovery-zone { background:var(--mint); }
.state-machine-foot > b { margin-left:auto; padding:5px 7px; border-radius:6px; color:var(--cyan); background:rgba(68,183,232,.08); font-size:7.5px; }

.event-alert-workspace { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; align-items:stretch; }
.event-alert-workspace > article,.alert-bottom-grid > article { min-width:0; border:1px solid var(--stroke); border-radius:13px; background:linear-gradient(145deg,rgba(14,32,46,.95),rgba(8,22,33,.95)); box-shadow:0 14px 38px rgba(0,0,0,.08); }
.alert-stream-card { grid-column:1/8; padding:16px; }
.alert-stream-card canvas { width:100%; height:218px; margin-top:6px; }
.alert-queue-card { grid-column:8/13; grid-row:span 3; padding:16px; }
.alert-detail-card { grid-column:1/5; padding:16px; }
.alert-evidence-card { grid-column:5/8; padding:16px; }
.alert-spatial-card { grid-column:1/5; padding:16px; }
.alert-correlation-card { grid-column:5/8; padding:16px; }
.alert-threshold-key { border-top:2px dashed var(--amber); }
.recovery-threshold-key { border-top:2px dashed var(--cyan); }
.alert-chart-footer { display:flex; align-items:center; gap:17px; margin-top:8px; padding-top:10px; border-top:1px solid var(--stroke); color:#91a6af; font-size:8.5px; }
.alert-chart-footer span { display:flex; align-items:center; gap:6px; }
.alert-chart-footer i { width:7px; height:7px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 3px rgba(98,230,198,.08); }

.alert-queue { display:grid; gap:7px; margin-top:11px; max-height:670px; overflow:auto; padding-right:2px; }
.alert-queue-item { width:100%; display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px; border:1px solid var(--stroke); border-radius:10px; color:var(--text); background:rgba(255,255,255,.012); text-align:left; cursor:pointer; }
.alert-queue-item:hover,.alert-queue-item.selected { border-color:rgba(68,183,232,.4); background:rgba(68,183,232,.055); }
.alert-queue-item.selected { box-shadow:inset 3px 0 0 var(--cyan); }
.alert-queue-item > span { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; color:var(--amber); background:rgba(255,191,105,.09); font:700 10px "Manrope",sans-serif; }
.alert-queue-item.critical > span,.alert-queue-item.high > span { color:var(--coral); background:rgba(255,102,118,.09); }
.alert-queue-item.suppressed > span { color:var(--muted); background:rgba(129,150,165,.08); }
.alert-queue-item strong,.alert-queue-item small { display:block; }
.alert-queue-item strong { overflow:hidden; text-overflow:ellipsis; font-size:10.5px; white-space:nowrap; }
.alert-queue-item small { margin-top:3px; color:var(--muted); font-size:8.5px; }
.alert-queue-tags { display:grid; gap:4px; justify-items:end; }
.alert-queue-tags b,.alert-queue-tags em { padding:4px 6px; border-radius:6px; font-size:6.8px; font-style:normal; letter-spacing:.04em; white-space:nowrap; }
.alert-queue-tags b { color:var(--cyan); background:rgba(68,183,232,.08); }
.alert-queue-tags em { color:var(--amber); background:rgba(255,191,105,.07); }
.alert-queue-item.critical .alert-queue-tags em,.alert-queue-item.high .alert-queue-tags em { color:var(--coral); background:rgba(255,102,118,.08); }
.alert-queue-item.state-candidate .alert-queue-tags b,.alert-queue-item.state-provisional .alert-queue-tags b { color:var(--amber); background:rgba(255,191,105,.08); }
.alert-queue-item.state-confirmed .alert-queue-tags b { color:var(--mint); background:rgba(98,230,198,.08); }
.alert-queue-item.state-resolved .alert-queue-tags b,.alert-queue-item.state-suppressed .alert-queue-tags b { color:var(--muted); background:rgba(129,150,165,.08); }
.alert-queue-empty { padding:32px 12px; color:var(--muted); font-size:10px; text-align:center; }

.alert-detail-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.alert-detail-head > div { display:flex; align-items:center; gap:7px; }
.alert-id,.alert-status,.alert-detail-head > b { padding:5px 7px; border-radius:6px; font-size:7.5px; letter-spacing:.05em; }
.alert-id { color:var(--cyan); background:rgba(68,183,232,.08); }
.alert-status { color:var(--mint); background:rgba(98,230,198,.08); }
.alert-status.candidate,.alert-status.provisional { color:var(--amber); background:rgba(255,191,105,.08); }
.alert-status.updated { color:var(--cyan); background:rgba(68,183,232,.08); }
.alert-status.resolved { color:var(--muted); background:rgba(129,150,165,.08); }
.alert-detail-head > b { color:var(--coral); background:rgba(255,102,118,.09); }
.alert-detail-card > h3 { margin:13px 0 5px; font:600 15px "Manrope",sans-serif; }
.alert-detail-card > p { min-height:34px; margin:0; color:var(--muted); font-size:9.5px; line-height:1.45; }
.alert-detail-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:13px 0; border:1px solid var(--stroke); border-radius:9px; overflow:hidden; }
.alert-detail-metrics span { min-width:0; padding:9px; border-right:1px solid var(--stroke); }
.alert-detail-metrics span:last-child { border-right:0; }
.alert-detail-metrics small,.alert-detail-metrics strong { display:block; }
.alert-detail-metrics small { color:var(--muted); font-size:7px; }
.alert-detail-metrics strong { margin-top:4px; font-size:9.5px; }
.alert-lifecycle { display:grid; gap:7px; }
.alert-lifecycle > div { display:grid; grid-template-columns:37px 8px minmax(0,1fr); gap:7px; align-items:start; }
.alert-lifecycle time { color:var(--muted); font-size:8px; }
.alert-lifecycle i { width:7px; height:7px; margin-top:2px; border-radius:50%; background:var(--cyan); }
.alert-lifecycle strong,.alert-lifecycle small { display:block; }
.alert-lifecycle strong { font-size:8.5px; }
.alert-lifecycle small { margin-top:2px; color:var(--muted); font-size:7.5px; }

.alert-evidence-list { display:grid; gap:6px; margin-top:10px; }
.alert-evidence-row { display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:8px; align-items:center; padding:7px 0; border-bottom:1px solid var(--stroke); }
.alert-evidence-row:last-child { border-bottom:0; }
.alert-evidence-row > span { width:20px; height:20px; display:grid; place-items:center; border-radius:6px; color:var(--mint); background:rgba(98,230,198,.09); font-size:9px; }
.alert-evidence-row.pending > span { color:var(--muted); background:rgba(129,150,165,.08); }
.alert-evidence-row strong,.alert-evidence-row small { display:block; }
.alert-evidence-row strong { font-size:8.5px; }
.alert-evidence-row small { margin-top:2px; color:var(--muted); font-size:7.5px; }
.alert-evidence-row b { color:#cbd9dc; font-size:8px; font-variant-numeric:tabular-nums; }

.spatial-state,.correlation-score,.engine-version { padding:5px 7px; border-radius:6px; color:var(--mint); background:rgba(98,230,198,.08); font-size:7.5px; letter-spacing:.04em; }
.spatial-state.pending { color:var(--muted); background:rgba(129,150,165,.08); }
.propagation-track { display:grid; grid-template-columns:1fr 30px 1fr; gap:7px; align-items:center; margin:17px 0 14px; }
.propagation-track > span { position:relative; padding:12px 8px 10px; border:1px solid var(--stroke); border-radius:9px; text-align:center; background:rgba(255,255,255,.012); }
.propagation-track > span i { position:absolute; left:50%; top:-5px; width:9px; height:9px; border:2px solid #0b1a27; border-radius:50%; background:var(--coral); transform:translateX(-50%); }
.propagation-track b,.propagation-track small { display:block; }
.propagation-track b { font-size:9px; }
.propagation-track small { margin-top:3px; color:var(--muted); font-size:7.5px; }
.propagation-track em { color:var(--coral); font-style:normal; font-size:18px; text-align:center; }
.alert-spatial-metrics { margin:0; }
.alert-spatial-metrics > div { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-top:1px solid var(--stroke); font-size:8.5px; }
.alert-spatial-metrics dt { color:var(--muted); }
.alert-spatial-metrics dd { margin:0; color:#d4e2e5; font-weight:600; }

.correlation-content { display:grid; grid-template-columns:30px minmax(0,1fr); gap:10px; align-items:center; min-height:72px; margin:13px 0; padding:10px; border:1px solid var(--stroke); border-radius:10px; background:rgba(255,255,255,.012); }
.correlation-content > span { width:29px; height:29px; display:grid; place-items:center; border-radius:8px; color:var(--cyan); background:rgba(68,183,232,.09); font-weight:700; }
.correlation-content strong,.correlation-content small { display:block; }
.correlation-content strong { font-size:9.5px; }
.correlation-content small { margin-top:3px; color:var(--muted); font-size:8px; line-height:1.35; }
.alert-correlation-card > button { width:100%; min-height:36px; }

.alert-bottom-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:12px; margin-top:12px; }
.alert-rules-card,.alert-audit-card { padding:16px; }
.alert-rule-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-top:11px; }
.alert-rule-grid > span { padding:9px; border:1px solid var(--stroke); border-radius:8px; background:rgba(255,255,255,.012); }
.alert-rule-grid small,.alert-rule-grid strong { display:block; }
.alert-rule-grid small { color:var(--muted); font-size:7.5px; }
.alert-rule-grid strong { margin-top:4px; font-size:8.8px; }
.mapmatching-contract { display:grid; grid-template-columns:27px minmax(0,1fr); gap:9px; align-items:start; margin-top:10px; padding:9px 10px; border:1px solid rgba(255,191,105,.16); border-radius:9px; background:rgba(255,191,105,.035); }
.mapmatching-contract > i { width:25px; height:25px; display:grid; place-items:center; border-radius:7px; color:var(--amber); background:rgba(255,191,105,.09); font-style:normal; font-weight:700; }
.mapmatching-contract p { margin:0; }
.mapmatching-contract strong,.mapmatching-contract small { display:block; }
.mapmatching-contract strong { font-size:8.5px; }
.mapmatching-contract small { margin-top:3px; color:var(--muted); font-size:7.7px; line-height:1.4; }
.text-action { border:0; color:var(--cyan); background:none; font-size:8.5px; cursor:pointer; }
.alert-audit-list { display:grid; gap:0; margin-top:9px; max-height:215px; overflow:auto; }
.alert-audit-row { display:grid; grid-template-columns:40px 9px minmax(0,1fr) auto; gap:7px; align-items:start; padding:7px 0; border-bottom:1px solid var(--stroke); }
.alert-audit-row:last-child { border-bottom:0; }
.alert-audit-row time { color:var(--muted); font-size:7.5px; }
.alert-audit-row > i { width:7px; height:7px; margin-top:2px; border-radius:50%; background:var(--cyan); }
.alert-audit-row strong,.alert-audit-row small { display:block; }
.alert-audit-row strong { font-size:8px; }
.alert-audit-row small { margin-top:2px; color:var(--muted); font-size:7px; }
.alert-audit-row b { color:#91a6af; font-size:7px; }
.alert-action-feedback { display:block; min-height:18px; margin-top:7px; color:var(--mint); font-size:9px; text-align:right; }

@keyframes event-pulse { 50% { opacity:.52; box-shadow:0 0 0 8px rgba(98,230,198,0); } }

@media (max-width:1280px) {
  .alert-filterbar { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .alert-filterbar .segmented { grid-column:1/-1; justify-self:start; }
  .alert-advance { width:100%; }
  .alert-stream-card { grid-column:1/9; }
  .alert-queue-card { grid-column:9/13; }
  .alert-detail-card { grid-column:1/5; }
  .alert-evidence-card { grid-column:5/9; }
  .alert-spatial-card { grid-column:1/5; }
  .alert-correlation-card { grid-column:5/9; }
}
@media (max-width:1024px) {
  .event-alert-actions { justify-content:flex-start; }
  .alert-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .alert-kpis article { border-bottom:1px solid var(--stroke); }
  .event-alert-workspace { grid-template-columns:1fr 1fr; }
  .alert-stream-card,.alert-queue-card { grid-column:1/-1; grid-row:auto; }
  .alert-detail-card,.alert-spatial-card { grid-column:1; }
  .alert-evidence-card,.alert-correlation-card { grid-column:2; }
  .alert-queue { max-height:340px; }
  .alert-bottom-grid { grid-template-columns:1fr; }
  .alert-state-track { overflow-x:auto; grid-template-columns:repeat(9,minmax(18px,max-content)); padding:3px 0 8px; }
  .alert-state-track > span { width:150px; }
  .state-machine-foot { flex-wrap:wrap; }
  .state-machine-foot > b { margin-left:0; }
}
@media (max-width:760px) {
  .event-time-contract { grid-template-columns:38px 1fr; }
  .event-time-contract > b { grid-column:2; justify-self:start; }
  .alert-kpis,.alert-filterbar,.event-alert-workspace { grid-template-columns:1fr; }
  .alert-kpis article { border-right:0; }
  .alert-filterbar .segmented { grid-column:auto; width:100%; overflow:auto; }
  .alert-stream-card,.alert-queue-card,.alert-detail-card,.alert-evidence-card,.alert-spatial-card,.alert-correlation-card { grid-column:1; }
  .alert-stream-card canvas { height:190px; }
  .state-machine-heading { align-items:flex-start; flex-direction:column; }
  .hysteresis-badge { min-width:0; width:100%; }
  .alert-detail-metrics,.alert-rule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .alert-chart-footer { align-items:flex-start; flex-direction:column; gap:7px; }
}

/* Floating live-segment inspector: right-docked by default, movable and resizable on desktop. */
#segment-panel.segment-card {
  position: absolute;
  top: 18px;
  right: 18px;
  bottom: auto;
  left: auto;
  width: min(380px, calc(100% - 36px));
  height: min(720px, calc(100% - 36px));
  min-width: 320px;
  min-height: 300px;
  max-width: calc(100% - 24px);
  max-height: calc(100% - 24px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  resize: both;
  overflow: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
#segment-panel.is-dragging,#segment-panel.is-resizing {
  transition: none;
  user-select: none;
  box-shadow: 0 28px 70px rgba(0,0,0,.48), 0 0 0 1px rgba(98,230,198,.24);
}
#segment-panel .segment-card-head {
  position: static;
  z-index: 3;
  min-height: 46px;
  margin: -8px -8px 8px;
  padding: 8px;
  justify-content: flex-start;
  gap: 8px;
  cursor: grab;
  touch-action: none;
  border-bottom: 1px solid rgba(177,211,224,.09);
  border-radius: 12px 12px 8px 8px;
  background: linear-gradient(180deg,rgba(8,20,32,.98),rgba(8,20,32,.91));
  backdrop-filter: blur(18px);
}
#segment-panel.is-dragging .segment-card-head { cursor: grabbing; }
.segment-card-body {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 4px 20px 0;
  overflow: auto;
  scrollbar-gutter: stable;
}
.segment-card-body::-webkit-scrollbar { width: 4px; }
.segment-card-body::-webkit-scrollbar-thumb { border-radius: 4px; background: #244054; }
.segment-drag-grip {
  flex: 0 0 auto;
  color: #69808f;
  font-size: 18px;
  line-height: 1;
}
.segment-card-route { display: flex; align-items: center; gap: 7px; min-width: 0; }
.segment-drag-copy { color: #5f7583; font-size: 8px; white-space: nowrap; }
.segment-card-actions { display: flex; gap: 6px; margin-left: auto; }
#segment-panel .segment-card-actions > button {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--stroke);
  border-radius: 8px;
  color: #8197a3;
  background: #112231;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
}
#segment-panel .segment-card-actions > button:hover,
#segment-panel .segment-card-actions > button:focus-visible {
  border-color: rgba(98,230,198,.36);
  color: var(--mint);
  background: rgba(98,230,198,.08);
  outline: none;
}
.segment-resize-handle {
  position: absolute;
  left: 3px;
  bottom: 3px;
  z-index: 5;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 0;
  border-radius: 0 8px 0 8px;
  cursor: nesw-resize;
  touch-action: none;
  opacity: .78;
  background: linear-gradient(225deg,transparent 48%,rgba(98,230,198,.22) 49% 58%,transparent 59% 68%,rgba(98,230,198,.58) 69% 77%,transparent 78%);
}
.segment-resize-handle:hover,.segment-resize-handle:focus-visible {
  opacity: 1;
  outline: 1px solid rgba(98,230,198,.34);
  background-color: rgba(98,230,198,.05);
}

@media (max-width: 880px) {
  #segment-panel.segment-card {
    top: 190px;
    right: 12px;
    bottom: 80px;
    left: 12px;
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none;
    resize: none;
  }
  #segment-panel .segment-card-head { cursor: default; touch-action: auto; }
  .segment-drag-grip,.segment-drag-copy,#dock-segment-panel,.segment-resize-handle { display: none !important; }
}

@media (max-width: 560px) {
  #segment-panel.segment-card { top: 12px; bottom: 66px; }
}

/* Inferred junction topology and directed movement workspace */
.topology-nav-icon::before,
.topology-nav-icon::after{content:"";position:absolute;background:currentColor;opacity:.78;transform-origin:left center}
.topology-nav-icon::before{width:15px;height:1.5px;left:3px;top:9px;transform:rotate(-27deg)}
.topology-nav-icon::after{width:14px;height:1.5px;left:3px;top:10px;transform:rotate(29deg)}
.topology-nav-icon i{position:absolute;z-index:1;width:5px;height:5px;border:1.5px solid currentColor;border-radius:50%;background:#0a1722}
.topology-nav-icon i:nth-child(1){left:0;top:8px}.topology-nav-icon i:nth-child(2){right:0;top:1px}.topology-nav-icon i:nth-child(3){right:0;bottom:1px}
.module-state.inferred{color:var(--amber);border-color:rgba(255,191,105,.25);background:rgba(255,191,105,.07)}
.topology-source-contract{display:grid;grid-template-columns:48px minmax(270px,1.35fr) repeat(3,minmax(115px,.55fr));gap:14px;align-items:center;margin-bottom:13px;padding:14px 16px;border:1px solid rgba(68,183,232,.16);border-radius:14px;background:linear-gradient(115deg,rgba(68,183,232,.055),rgba(12,26,39,.96) 46%,rgba(98,230,198,.025))}
.topology-source-symbol{width:45px;height:45px;display:grid;place-items:center;border:1px solid rgba(68,183,232,.24);border-radius:13px;color:var(--cyan);background:rgba(68,183,232,.08);font:700 10px "Manrope",sans-serif;letter-spacing:.8px}
.topology-source-contract>div{min-width:0;padding-left:13px;border-left:1px solid var(--stroke)}.topology-source-contract strong,.topology-source-contract small{display:block}.topology-source-contract strong{font-size:10.5px}.topology-source-contract small{margin-bottom:3px;color:#68818f;font-size:7.5px;font-weight:700;letter-spacing:.55px}.topology-source-contract p{margin:4px 0 0;color:#7d929f;font-size:8.5px;line-height:1.45}.topology-source-contract>b{justify-self:end;max-width:110px;padding:7px 8px;border:1px solid rgba(255,191,105,.18);border-radius:7px;color:var(--amber);background:rgba(255,191,105,.06);font-size:7.5px;line-height:1.35;text-align:center}
.topology-filterbar{grid-template-columns:1.45fr repeat(4,minmax(130px,1fr))}.topology-filterbar input{width:100%;height:34px;padding:0 9px;border:1px solid var(--stroke);border-radius:8px;outline:0;color:#cadadd;background:#0e1d2b;font-size:10.5px;color-scheme:dark}.topology-filterbar input:focus{border-color:rgba(98,230,198,.45)}
.topology-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:13px;align-items:start}
.topology-map-card,.topology-catalog-card,.topology-detail-card,.topology-chart-card,.topology-audit-card{min-width:0;padding:17px;border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel)}
.topology-map-card{grid-column:1;grid-row:1/span 2}.topology-map-wrap{position:relative;height:545px;margin-top:12px;border-radius:12px;overflow:hidden;background:#07131d}.topology-map-wrap>#topology-map{width:100%;height:100%}.topology-map-legend{position:absolute;left:11px;bottom:11px;z-index:10;display:flex;flex-wrap:wrap;gap:10px;padding:8px 10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#8ea2ad;background:rgba(6,15,23,.89);backdrop-filter:blur(8px);font-size:8.5px}.topology-map-legend span{display:flex;align-items:center;gap:5px}.topology-map-legend i{display:inline-block;width:17px;height:3px;border-radius:3px;background:var(--cyan)}.topology-map-legend .topology-ramp-key{background:var(--amber)}.topology-map-legend .topology-selected-key{height:5px;background:var(--mint)}.topology-map-legend .topology-node-key{width:7px;height:7px;border:1px solid #07131d;border-radius:50%;background:var(--amber)}
.topology-map-wrap .module-map-note{left:auto;right:11px;top:11px;bottom:auto;max-width:300px}
.topology-catalog-card{grid-column:2;grid-row:1}.topology-movement-list{display:grid;gap:7px;max-height:310px;margin-top:12px;overflow:auto;padding-right:3px;scrollbar-width:thin}.topology-movement-row{width:100%;min-height:62px;display:grid;grid-template-columns:5px minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--stroke);border-radius:10px;color:var(--text);background:#0c1a27;text-align:left;cursor:pointer;transition:border-color .18s,background .18s,transform .18s}.topology-movement-row:hover{border-color:rgba(68,183,232,.28);transform:translateY(-1px)}.topology-movement-row.selected{border-color:rgba(98,230,198,.38);background:linear-gradient(115deg,rgba(98,230,198,.08),#0c1a27 65%)}.topology-movement-row>i{width:4px;height:32px;border-radius:4px;background:var(--movement-color)}.topology-movement-row span{min-width:0}.topology-movement-row strong,.topology-movement-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topology-movement-row strong{font-size:9.5px}.topology-movement-row small{margin-top:4px;color:#718895;font-size:8px}.topology-movement-row>b{font-size:10px}.topology-movement-row>em{min-width:35px;padding:5px 6px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.07);font-size:8px;font-style:normal;text-align:center}
.topology-detail-card{grid-column:2;grid-row:2;background:linear-gradient(145deg,rgba(98,230,198,.035),var(--panel) 52%)}.topology-type-badge{padding:5px 7px;border-radius:6px;color:var(--cyan);background:rgba(68,183,232,.08);font-size:7.5px;font-weight:700}.topology-detail-hero{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:end;margin:16px 0 11px;padding:12px;border-radius:10px;background:rgba(98,230,198,.045)}.topology-detail-hero strong{font:600 25px/1 "Manrope",sans-serif}.topology-detail-hero span{padding-bottom:2px;color:#718895;font-size:8px}.topology-detail-hero b{padding:5px 7px;border-radius:6px;background:rgba(255,255,255,.035);font-size:8px}.topology-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border:1px solid var(--stroke);border-radius:10px;overflow:hidden}.topology-detail-grid>div{padding:9px;border-right:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.topology-detail-grid>div:nth-child(3n){border-right:0}.topology-detail-grid>div:nth-last-child(-n+3){border-bottom:0}.topology-detail-grid dt{color:#718895;font-size:7.5px}.topology-detail-grid dd{margin:4px 0 0;color:#d6e4e6;font-size:9px;font-weight:600}
.topology-chart-card{grid-column:1}.topology-chart-card canvas{width:100%;height:260px;margin-top:10px}.topology-chart-legend{display:flex;gap:12px;color:#8297a3;font-size:8.5px}.topology-chart-legend span{display:flex;align-items:center;gap:5px}.topology-chart-legend i{width:16px;height:2px;border-radius:3px;background:var(--cyan)}.topology-chart-legend .topology-typical-key{background:#788d99}
.topology-audit-card{grid-column:2;background:linear-gradient(145deg,rgba(156,140,255,.035),var(--panel) 54%)}.topology-build-steps{display:grid;gap:1px;margin:13px 0 0;padding:0;list-style:none}.topology-build-steps li{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:start;padding:9px 0;border-bottom:1px solid var(--stroke)}.topology-build-steps li>b{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:var(--violet);background:rgba(156,140,255,.08);font-size:7.5px}.topology-build-steps strong,.topology-build-steps small{display:block}.topology-build-steps strong{font-size:9px}.topology-build-steps small{margin-top:3px;color:#718895;font-size:8px;line-height:1.4}.topology-feedback{display:block;margin-top:12px;padding:10px;border:1px solid rgba(255,191,105,.13);border-radius:9px;color:#9aaeB6;background:rgba(255,191,105,.04);font-size:8.5px;line-height:1.45}
@media(max-width:1280px){.topology-source-contract{grid-template-columns:48px minmax(260px,1fr) repeat(3,minmax(90px,.4fr))}.topology-filterbar{grid-template-columns:repeat(3,1fr)}.topology-map-wrap{height:480px}}
@media(max-width:1080px){.topology-source-contract{grid-template-columns:48px 1fr repeat(3,minmax(90px,.4fr))}.topology-source-contract>div{grid-column:2/-1}.topology-layout{grid-template-columns:1fr}.topology-map-card,.topology-catalog-card,.topology-detail-card,.topology-chart-card,.topology-audit-card{grid-column:auto;grid-row:auto}.topology-map-wrap{height:430px}.topology-movement-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}}
@media(max-width:700px){.topology-source-contract{grid-template-columns:42px 1fr}.topology-source-contract>div{grid-column:1/-1;padding:8px 0 0;border-left:0;border-top:1px solid var(--stroke)}.topology-source-contract>b{grid-column:1/-1;justify-self:start;max-width:none}.topology-filterbar{grid-template-columns:1fr}.topology-map-wrap{height:360px}.topology-movement-list{grid-template-columns:1fr}.topology-detail-grid{grid-template-columns:repeat(2,1fr)}.topology-detail-grid>div:nth-child(3n){border-right:1px solid var(--stroke)}.topology-detail-grid>div:nth-child(2n){border-right:0}.topology-detail-grid>div:nth-last-child(-n+3){border-bottom:1px solid var(--stroke)}.topology-detail-grid>div:nth-last-child(-n+2){border-bottom:0}.topology-detail-hero{grid-template-columns:auto 1fr}.topology-detail-hero b{grid-column:1/-1;justify-self:start}.topology-map-legend{right:11px}.topology-map-wrap .module-map-note{left:11px;right:11px;max-width:none}}

/* Executable model registry, inference and validation trace */
.ml-execution-card{grid-column:1/-1;min-width:0;padding:19px;border:1px solid rgba(98,230,198,.2);border-radius:var(--radius);background:linear-gradient(135deg,rgba(98,230,198,.045),var(--panel) 42%,rgba(156,140,255,.035));box-shadow:inset 0 1px rgba(255,255,255,.02)}
.ml-runtime-state{min-height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border:1px solid rgba(255,191,105,.2);border-radius:7px;color:var(--amber);background:rgba(255,191,105,.055);font-size:7.5px;font-weight:700;letter-spacing:.45px;white-space:nowrap}.ml-runtime-state i{width:6px;height:6px;border-radius:50%;background:currentColor}.ml-runtime-state.online{color:var(--mint);border-color:rgba(98,230,198,.24);background:rgba(98,230,198,.06)}.ml-runtime-state.snapshot{color:var(--cyan);border-color:rgba(68,183,232,.22);background:rgba(68,183,232,.055)}
.ml-governance-grid{display:grid;grid-template-columns:minmax(245px,.85fr) minmax(330px,1.15fr);gap:10px;margin-top:14px}.ml-governance-grid>section{min-width:0;border:1px solid var(--stroke);border-radius:11px;background:rgba(6,17,27,.48)}
.ml-model-identity{display:grid;grid-template-columns:43px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px}.ml-model-symbol{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(98,230,198,.25);border-radius:12px;color:var(--mint);background:rgba(98,230,198,.08);font:700 10px "Manrope",sans-serif;letter-spacing:.7px}.ml-model-identity small,.ml-model-identity strong,.ml-model-identity code{display:block}.ml-model-identity small{color:#6e8491;font-size:7.5px;letter-spacing:.45px}.ml-model-identity strong{margin:4px 0;font-size:10.5px}.ml-model-identity code{overflow:hidden;color:#8298a4;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.ml-model-identity>b{align-self:start;padding:5px 6px;border-radius:5px;color:var(--amber);background:rgba(255,191,105,.07);font-size:7px}
.ml-live-result,.ml-validation-metrics{display:grid;grid-template-columns:repeat(4,1fr)}.ml-live-result>div,.ml-validation-metrics>div{min-width:0;padding:12px;border-right:1px solid var(--stroke)}.ml-live-result>div:last-child,.ml-validation-metrics>div:last-child{border-right:0}.ml-live-result small,.ml-live-result strong,.ml-validation-metrics small,.ml-validation-metrics strong{display:block}.ml-live-result small,.ml-validation-metrics small{color:#718794;font-size:7.5px}.ml-live-result strong{margin-top:6px;font:600 15px/1 "Manrope",sans-serif}.ml-validation-metrics strong{margin-top:5px;color:var(--mint);font-size:10.5px}.ml-validation-metrics{grid-column:1;background:rgba(98,230,198,.025)}
.ml-lineage{grid-column:2;padding:11px 12px}.ml-lineage-head{display:flex;justify-content:space-between;gap:12px;color:#708692;font-size:7.5px;font-weight:700;letter-spacing:.4px}.ml-lineage-head code{overflow:hidden;color:#8297a2;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.ml-lineage-list{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.ml-lineage-list>span{min-width:0;display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:6px;align-items:center;padding:7px;border:1px solid rgba(255,255,255,.035);border-radius:7px;background:#0b1925}.ml-lineage-list i{width:5px;height:5px;border-radius:50%;background:var(--mint)}.ml-lineage-list strong{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.ml-lineage-list b{color:var(--cyan);font-size:7.5px}.ml-lineage-list code{grid-column:2/-1;color:#5f7582;font-size:7px}
.ml-execution-actions{display:grid;grid-template-columns:1fr auto auto;gap:9px;align-items:center;margin-top:11px}.ml-execution-actions output{min-height:34px;display:flex;align-items:center;padding:8px 10px;border-radius:8px;color:#8297a3;background:rgba(68,183,232,.035);font-size:8.5px;line-height:1.4}.ml-execution-actions .primary-action,.ml-execution-actions .secondary-action{height:34px;white-space:nowrap}.ml-execution-actions button:disabled{opacity:.55;cursor:wait}
@media(max-width:1100px){.ml-governance-grid{grid-template-columns:1fr}.ml-validation-metrics,.ml-lineage{grid-column:auto}.ml-lineage-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.ml-live-result,.ml-validation-metrics{grid-template-columns:repeat(2,1fr)}.ml-live-result>div:nth-child(2),.ml-validation-metrics>div:nth-child(2){border-right:0}.ml-live-result>div:nth-child(-n+2),.ml-validation-metrics>div:nth-child(-n+2){border-bottom:1px solid var(--stroke)}.ml-lineage-list{grid-template-columns:1fr}.ml-execution-actions{grid-template-columns:1fr}.ml-execution-actions button{width:100%}.ml-model-identity{grid-template-columns:40px 1fr}.ml-model-identity>b{grid-column:1/-1;justify-self:start}}

/* Executable UMAP + HDBSCAN pattern workspace */
.pattern-cluster-list{max-height:390px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(156,140,255,.35) transparent}
.pattern-cluster-list .pattern-loading{margin:8px 0;padding:18px;border:1px dashed var(--stroke);border-radius:10px;color:var(--muted);font-size:10px;line-height:1.5;text-align:center}
.pattern-cluster-list .coral-bg{background:rgba(255,102,118,.14);color:var(--coral)}
.pattern-cluster-list .blue-bg{background:rgba(100,168,255,.14);color:#64a8ff}
.pattern-chart-tooltip{pointer-events:none;z-index:12}
#analytics-pattern-chart{cursor:crosshair}
#view-intensitat .intensity-source-banner>a{padding:6px 8px;border-radius:6px;color:var(--amber);background:rgba(255,191,105,.07);font-size:8px;font-weight:700;letter-spacing:.5px;text-decoration:none;white-space:nowrap}
#view-intensitat .intensity-source-banner>a:hover,#view-intensitat .intensity-source-banner>a:focus-visible{color:#07141d;background:var(--amber);outline:none}
