:root{
  --red:#d72631;--red-dark:#9e1820;--red-soft:#fff0f1;--black:#12171c;--charcoal:#28323a;
  --ink:#15212b;--muted:#6f7b84;--line:#d9e0e5;--line-strong:#c4ced5;--bg:#f2f4f6;--panel:#fff;
  --yellow:#ffd43b;--green:#3eb759;--grey:#8996a0;--blue:#2a6796;--sidebar:218px;--topbar:58px;
  --shadow:0 8px 24px rgba(19,28,36,.07)
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select{font:inherit}button{cursor:pointer}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.eyebrow{margin:0;font-size:7px;font-weight:950;letter-spacing:1.15px;color:#8b96a0}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px rgba(20,31,40,.025)}
.app-shell{height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{height:100vh;position:relative;z-index:40;display:flex;flex-direction:column;padding:14px 12px;background:#fff;border-right:1px solid var(--line);overflow:hidden}.sidebar:after{content:"";position:absolute;left:39px;bottom:90px;width:138px;height:112px;background:none;opacity:.028;pointer-events:none}.brand-block{display:flex;gap:9px;align-items:center;padding:3px 6px 11px;border-bottom:1px solid #edf0f2}.brand-symbol{width:39px;height:39px;border-radius:9px;background:var(--red);display:grid;place-items:center;overflow:hidden}.brand-symbol img{width:29px;height:25px;filter:brightness(0) invert(1)}.brand-copy strong{display:block;font-size:14px}.brand-copy span{display:block;color:#7b8790;font-size:8px;margin-top:2px}.env-chip{margin:10px 3px 12px;padding:7px 8px;border-radius:7px;background:#fafafa;border:1px solid #e7ebee;display:flex;align-items:center;gap:6px;font-size:7.3px;color:#66737d}.env-chip i{width:6px;height:6px;border-radius:50%;background:#3db969;box-shadow:0 0 0 3px #e1f5e7}.main-nav{display:grid;gap:3px}.nav-item{border:0;background:transparent;color:#5c6872;padding:8px 8px;border-radius:8px;display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;text-align:left;align-items:center;column-gap:6px;width:100%}.nav-item>span{grid-row:1/3;font-weight:950;color:#a0a8af;text-align:center}.nav-item b{font-size:9px;line-height:1.05}.nav-item small{font-size:6.8px;color:#a0a8af;margin-top:2px}.nav-item:hover{background:#f8f9fa}.nav-item.active{background:var(--red-soft);color:var(--red-dark);box-shadow:inset 3px 0 0 var(--red)}.nav-item.active>span{color:var(--red)}.nav-item.active small{color:#b97378}.nav-item.disabled{opacity:.38;cursor:not-allowed}.sidebar-foot{margin-top:auto;position:relative;z-index:2}.legend-mini{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:7px 4px 9px;padding:8px;border-radius:8px;background:#f8f9fa;border:1px solid #e8ecef}.legend-mini span{font-size:6.5px;color:#68747d;display:flex;gap:4px;align-items:center}.dot{width:6px;height:6px;border-radius:2px;display:inline-block}.dot.good{background:var(--yellow)}.dot.close{background:var(--red)}.dot.gap{background:var(--green)}.dot.stale{background:var(--grey)}.isolation-note{padding:7px 8px;margin:0 3px;border-left:3px solid var(--red);background:#fff7f7;border-radius:6px}.isolation-note b,.isolation-note span{display:block}.isolation-note b{font-size:7.2px;color:#90262d}.isolation-note span{font-size:6.6px;line-height:1.35;color:#8b7779;margin-top:2px}
.main{min-width:0;height:100vh;overflow:hidden}.topbar{height:var(--topbar);display:flex;align-items:center;padding:0 18px;background:#fff;border-bottom:1px solid var(--line)}.top-title h1{font-size:15px;margin:1px 0 0}.top-status{margin-left:auto;display:flex;gap:6px;align-items:center}.build-badge,.feed-state,.clock,.pill{border-radius:999px;font-size:6.8px;font-weight:950;letter-spacing:.45px;padding:5px 8px}.build-badge{background:#f0f2f4;color:#58646d}.feed-state{background:#eef1f3;color:#65717b}.feed-state.live{background:#e3f6e8;color:#23783a}.feed-state.warn{background:#fff4d8;color:#886300}.feed-state.error{background:#ffe8ea;color:#a42b35}.clock{background:#161c21;color:#fff;min-width:68px;text-align:center;font-variant-numeric:tabular-nums}
.workspace{height:calc(100vh - var(--topbar));padding:10px 12px 12px;overflow:hidden}.page{display:none;height:100%;min-height:0;overflow:hidden}.page.active{display:grid}.live-page{grid-template-rows:auto minmax(310px,1fr) minmax(160px,26%);gap:8px}.standard-page{grid-template-rows:auto minmax(0,1fr);gap:9px}.page-fill,.page-fill-panel{min-height:0;overflow:hidden}.page-fill-panel{display:flex;flex-direction:column;padding:11px}
.ops-toolbar{display:grid;grid-template-columns:minmax(620px,1.65fr) minmax(420px,1fr);gap:8px;align-items:stretch}.route-control,.ops-kpis{background:#fff;border:1px solid var(--line);border-radius:9px;min-width:0}.route-control{display:grid;grid-template-columns:42px minmax(190px,1.05fr) 150px minmax(180px,.9fr) 72px;gap:7px;align-items:end;padding:7px 8px}.route-badge{height:34px;border-radius:7px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:950}.route-control label{display:grid;gap:2px}.route-control label>span{font-size:6px;font-weight:950;letter-spacing:.65px;color:#75828c}.route-control select,.route-control input,.inline-controls select,.network-filter input,.network-filter select,.p2p-controls select{height:34px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;color:#22303a;padding:0 8px;font-size:9px;outline:none;min-width:0}.route-control select:focus,.route-control input:focus,.inline-controls select:focus,.network-filter input:focus,.network-filter select:focus,.p2p-controls select:focus{border-color:#e36b72;box-shadow:0 0 0 2px #fff0f1}.button{border:0;border-radius:6px;padding:0 11px;height:34px;font-size:7px;font-weight:950;letter-spacing:.35px}.button.primary{background:var(--red);color:#fff}.button.primary:hover{background:var(--red-dark)}.button.secondary{background:#fff;border:1px solid var(--line-strong);color:#52606a}.ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.ops-kpis article{padding:7px 8px;border-left:1px solid #edf0f2;display:grid;align-content:center}.ops-kpis article:first-child{border-left:0}.ops-kpis span{font-size:5.8px;color:#7a8790;font-weight:950;letter-spacing:.45px}.ops-kpis strong{font-size:15px;line-height:1.05;margin-top:2px;font-variant-numeric:tabular-nums}
.avl-board{min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.board-empty{height:100%;display:grid;place-items:center;align-content:center;text-align:center;color:#89949d;gap:3px}.board-empty .route-icon{width:48px;height:34px;border-radius:7px;background:#f1f3f5;color:#8b96a0;display:grid;place-items:center;font-weight:950;font-size:9px;margin-bottom:4px}.board-empty b{font-size:12px;color:#41505b}.board-empty span{font-size:8px}.avl-header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:7px 9px;background:linear-gradient(90deg,#fff 0,#fff 72%,#fff7f7 100%);border-bottom:1px solid var(--line);min-height:48px}.route-identity{display:flex;align-items:center;gap:8px;min-width:0}.route-number{min-width:44px;height:32px;border-radius:6px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:950;padding:0 8px}.route-identity h3{font-size:13px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:620px}.route-identity p{font-size:6.8px;color:#78848d;margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:720px}.avl-header-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.status-chip{border:1px solid var(--line);background:#fff;padding:4px 6px;border-radius:999px;font-size:6px;font-weight:950;color:#65727c}.status-chip.live{background:#e8f7eb;border-color:#ccebd3;color:#27743b}.status-chip.warn{background:#fff5df;border-color:#f3dfaa;color:#8a6400}.status-chip.red{background:#ffebed;border-color:#f3c6ca;color:#a62933}
.operational-avl{position:relative;min-height:0;height:100%;overflow:hidden;background:#eef2f5}.operational-avl:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(215,38,49,.025),transparent 23%,transparent 77%,rgba(215,38,49,.025)),repeating-linear-gradient(90deg,rgba(255,255,255,.72) 0,rgba(255,255,255,.72) 54px,rgba(229,234,238,.72) 54px,rgba(229,234,238,.72) 108px);pointer-events:none}.lane{position:absolute;left:8px;right:8px;height:50%;overflow:hidden}.lane.top{top:0;border-bottom:1px solid rgba(143,155,165,.25)}.lane.bottom{bottom:0}.lane-header{position:absolute;left:7px;width:84px;height:28px;background:#17232c;color:#fff;border-radius:6px;padding:4px 6px;z-index:12;display:grid;align-content:center;box-shadow:0 2px 6px rgba(0,0,0,.12)}.lane.top .lane-header{top:8px}.lane.bottom .lane-header{bottom:8px}.lane-header b{font-size:7px;letter-spacing:.45px}.lane-header span{font-size:5.8px;color:#d8dfe4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lane-rail{position:absolute;left:17px;right:17px;height:3px;background:#27333c;border-radius:3px;box-shadow:0 1px 0 #fff;z-index:3}.lane.top .lane-rail{top:45%}.lane.bottom .lane-rail{bottom:45%}.terminal-cap{position:absolute;width:10px;height:24px;background:#111820;border-radius:2px;z-index:6}.lane.top .terminal-cap{top:calc(45% - 10px)}.lane.bottom .terminal-cap{bottom:calc(45% - 10px)}.terminal-cap.start{left:14px}.terminal-cap.end{right:14px}
.stop-node{position:absolute;transform:translateX(-50%);z-index:5}.lane.top .stop-node{top:calc(45% - 5px)}.lane.bottom .stop-node{bottom:calc(45% - 5px)}.stop-node .marker{display:block;width:11px;height:11px;border-radius:2px;background:#fff;border:1.7px solid #34434e;box-shadow:0 0 0 1px rgba(255,255,255,.55)}.stop-node.terminal .marker,.stop-node.key .marker{background:#202c35;border-color:#202c35}.stop-stem{position:absolute;left:4px;width:2px;background:#aeb8bf}.lane.top .stop-stem{top:10px;height:37px}.lane.bottom .stop-stem{bottom:10px;height:37px}.stop-name{position:absolute;white-space:nowrap;font-size:5.8px;font-weight:760;color:#33414b;max-width:78px;overflow:hidden;text-overflow:ellipsis;writing-mode:vertical-rl;text-orientation:mixed;line-height:1}.lane.top .stop-name{top:14px;left:10px;height:43px}.lane.bottom .stop-name{bottom:14px;right:10px;height:43px;transform:rotate(180deg)}.stop-node.key .stop-name{font-weight:950;color:#111a20}.bus-card{position:absolute;transform:translateX(-50%);width:56px;height:43px;z-index:15;border:1px solid rgba(0,0,0,.16);border-radius:3px;box-shadow:0 2px 5px rgba(14,22,28,.17);padding:3px 4px;text-align:center;color:#10151a;line-height:1.02}.lane.top .bus-card{top:5px}.lane.bottom .bus-card{bottom:5px}.bus-card.good{background:var(--yellow)}.bus-card.close{background:#ef3f48;color:#fff}.bus-card.gap{background:var(--green);color:#072c12}.bus-card.neutral,.bus-card.stale{background:#929da6;color:#fff}.bus-card.offroute{box-shadow:0 0 0 2px #ef7e25,0 2px 5px rgba(14,22,28,.17)}.bus-card b{display:block;font-size:6.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bus-card strong{display:block;font-size:8.6px;margin-top:2px}.bus-card small{display:block;font-size:5.5px;margin-top:2px;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bus-pointer{position:absolute;left:50%;transform:translateX(-50%);width:1px;height:13px;background:rgba(20,25,29,.62)}.lane.top .bus-pointer{bottom:-14px}.lane.bottom .bus-pointer{top:-14px}.bus-pointer:after{content:"";position:absolute;left:-3px;width:7px;height:7px;border-radius:50%;background:currentColor;border:1px solid rgba(0,0,0,.18)}.lane.top .bus-pointer:after{bottom:-2px}.lane.bottom .bus-pointer:after{top:-2px}.lane-empty{position:absolute;left:110px;right:30px;text-align:center;color:#9aa4ac;font-size:6.8px;z-index:2}.lane.top .lane-empty{top:14px}.lane.bottom .lane-empty{bottom:14px}.lane-empty span{background:rgba(255,255,255,.82);border:1px dashed #ccd4da;border-radius:5px;padding:4px 8px}.direction-hidden{position:absolute;inset:0;display:grid;place-items:center;color:#98a3aa;font-size:8px;background:rgba(245,247,248,.82);z-index:20}
.live-bottom-dock{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:8px;min-height:0}.compact-panel{padding:8px;min-height:0;display:flex;flex-direction:column}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:7px}.section-head.compact{margin-bottom:5px}.section-head h3{font-size:11px;margin:1px 0}.section-head p:not(.eyebrow){font-size:7px;color:#81909a;margin:1px 0 0}.pill.grey{background:#eef1f3;color:#68757e}.pill.green{background:#e6f6ea;color:#26743b}.pill.amber{background:#fff4dc;color:#8d6600}.pill.red{background:#ffeaec;color:#a32933}.pill.red-soft{background:#fff0f1;color:#9c2a31}.map-surface{min-height:0;flex:1;border-radius:6px;overflow:hidden;background:#eef1f3;border:1px solid #e1e6e9}.source-state{display:flex;align-items:center;gap:7px}.source-state.mini{padding:5px 6px;background:#fafbfb;border:1px solid #edf0f2;border-radius:6px;margin-bottom:5px}.source-state>i{width:8px;height:8px;border-radius:50%;background:var(--grey);box-shadow:0 0 0 3px #edf0f2;flex:0 0 auto}.source-state.live>i{background:#3eb75b;box-shadow:0 0 0 3px #e7f6ea}.source-state.warn>i{background:#e7a51d;box-shadow:0 0 0 3px #fff3d8}.source-state.error>i{background:var(--red);box-shadow:0 0 0 3px #ffe9ea}.source-state b,.source-state small{display:block}.source-state b{font-size:7px}.source-state small{font-size:6px;color:#73808b;margin-top:1px;line-height:1.25}.attention-list{display:grid;gap:4px;overflow:auto;min-height:0}.attention-item{border-left:3px solid #ccd4da;background:#f8f9fa;border-radius:5px;padding:5px 6px}.attention-item.red{border-color:var(--red);background:#fff4f5}.attention-item.amber{border-color:#e3a51e;background:#fffbef}.attention-item.green{border-color:#49b85f;background:#f1faf3}.attention-item b,.attention-item span{display:block}.attention-item b{font-size:7px}.attention-item span{font-size:6px;color:#75818a;margin-top:1px;line-height:1.25}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:9px;padding:9px 11px;min-height:58px}.page-head.slim{min-height:52px}.page-head h2{font-size:16px;margin:1px 0}.page-head p:not(.eyebrow){font-size:7.5px;color:#6f7d87;margin:0;line-height:1.3}.page-kpis{display:grid;grid-template-columns:repeat(4,95px);gap:5px}.page-kpis article{border-left:1px solid #e7ebee;padding-left:7px}.page-kpis span,.page-kpis small{display:block;font-size:5.5px;color:#849099}.page-kpis strong{display:block;font-size:15px;margin:1px 0}.inline-controls{display:flex;gap:6px;align-items:center}.inline-controls select{width:260px}.network-panel{min-height:0}.network-filter{display:flex;gap:6px}.network-filter input{width:180px}.network-filter select{width:120px}.network-table-wrap{overflow:auto;min-height:0;flex:1;border:1px solid #e4e8eb;border-radius:7px}.network-table{width:100%;border-collapse:collapse;min-width:860px}.network-table th{position:sticky;top:0;z-index:2;background:#f5f7f8;color:#68747e;font-size:6px;text-transform:uppercase;letter-spacing:.45px;text-align:left;padding:7px;border-bottom:1px solid var(--line)}.network-table td{padding:7px;border-bottom:1px solid #edf0f2;font-size:7.5px;vertical-align:middle}.network-table tbody tr:hover{background:#fffafa}.network-route{display:flex;align-items:center;gap:7px}.route-lozenge{min-width:33px;height:25px;padding:0 5px;border-radius:5px;background:#242f37;color:#fff;display:grid;place-items:center;font-size:7px;font-weight:950}.network-route b{display:block;font-size:8px}.network-route small{display:block;font-size:6px;color:#8b959d;margin-top:1px}.dir-health{display:flex;gap:3px}.dir-health span{font-size:6px;padding:3px 4px;border-radius:4px;background:#f1f3f5}.risk-tag{font-size:6px;font-weight:950;border-radius:999px;padding:4px 6px;display:inline-block}.risk-tag.red{background:#ffeaec;color:#a32933}.risk-tag.amber{background:#fff3d8;color:#8b6500}.risk-tag.green{background:#e8f7eb;color:#27743b}.risk-tag.thin{background:#eef1f3;color:#6c7881}.link-button{border:0;background:#fff0f1;color:#a0222c;border-radius:5px;padding:4px 6px;font-size:6px;font-weight:950}
.route360-content{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px}.route360-summary{display:grid;grid-template-columns:1.35fr repeat(4,.55fr);gap:6px}.route360-summary article{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px}.route360-summary article:first-child{border-left:4px solid var(--red)}.route360-summary span,.route360-summary small{display:block}.route360-summary span{font-size:5.8px;color:#77838c}.route360-summary strong{display:block;font-size:12px;margin:1px 0}.route360-summary small{font-size:5.8px;color:#9aa3aa}.route360-work{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);gap:8px;min-height:0}.route360-map-card,.route360-stop-card{padding:8px;display:flex;flex-direction:column;min-height:0}.route360-map-card .map-surface{height:auto}.stop-list{min-height:0;overflow:auto;border:1px solid #e3e8eb;border-radius:6px}.stop-row{display:grid;grid-template-columns:24px 1fr auto;gap:6px;align-items:center;padding:6px 7px;border-bottom:1px solid #edf0f2}.stop-row:last-child{border-bottom:0}.stop-row .seq{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#f1f3f5;font-size:6px;font-weight:950}.stop-row b{font-size:7.5px}.stop-row small{font-size:6px;color:#8b959d}
.p2p-panel{min-height:0}.p2p-controls{display:grid;grid-template-columns:1.05fr .85fr 1.15fr 1.15fr;gap:7px;margin-bottom:8px}.p2p-controls label{display:grid;gap:3px}.p2p-controls label>span{font-size:6px;color:#687580;font-weight:950;letter-spacing:.5px;text-transform:uppercase}.p2p-results{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:8px}.p2p-results article{border:1px solid var(--line);border-radius:7px;padding:8px;background:#fafbfb}.p2p-results span,.p2p-results small{display:block}.p2p-results span{font-size:6px;color:#74808a}.p2p-results strong{display:block;font-size:13px;margin:2px 0}.p2p-results small{font-size:6px;color:#99a2a9}.p2p-corridor{padding:10px;border-radius:7px;background:#f7f9fa;border:1px solid #e2e7ea;flex:1;min-height:130px;overflow:hidden}.p2p-line{height:100%;position:relative;min-height:110px}.p2p-line:before{content:"";position:absolute;left:2%;right:2%;top:48%;height:3px;background:#3f4b54}.p2p-stop{position:absolute;top:calc(48% - 6px);transform:translateX(-50%)}.p2p-stop i{display:block;width:13px;height:13px;border-radius:3px;background:#fff;border:2px solid #4f5c66}.p2p-stop.active i{background:var(--red);border-color:var(--red)}.p2p-stop span{position:absolute;top:17px;left:50%;transform:translateX(-50%) rotate(55deg);transform-origin:top center;white-space:nowrap;font-size:5.8px;color:#59656e}.p2p-vehicle{position:absolute;top:calc(48% - 30px);transform:translateX(-50%);background:#232e36;color:#fff;border-radius:4px;padding:3px 5px;font-size:5.8px;font-weight:950}
.risk-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(82px,1fr));gap:5px}.compact-summary{width:min(520px,45vw)}.risk-summary-grid article{border-radius:7px;padding:6px 8px;border:1px solid var(--line);background:#fff}.risk-summary-grid article.red{border-top:3px solid var(--red)}.risk-summary-grid article.amber{border-top:3px solid #e4a11f}.risk-summary-grid article.green{border-top:3px solid #45b75c}.risk-summary-grid article.grey{border-top:3px solid #a5afb7}.risk-summary-grid span{font-size:5.8px;color:#74808a}.risk-summary-grid strong{display:block;font-size:15px;margin:1px 0}.risk-summary-grid small{display:none}.risk-register{min-height:0}.risk-register-list{display:grid;gap:5px;overflow:auto;min-height:0}.risk-row{display:grid;grid-template-columns:48px minmax(140px,1fr) 1.25fr repeat(3,.42fr) auto;gap:7px;align-items:center;border:1px solid #e5e9ec;border-radius:6px;padding:6px}.risk-row b{font-size:7.5px}.risk-row span{font-size:6.5px;color:#74808a}.risk-row .metric{font-weight:850;color:#313d46}.risk-row.red{border-left:4px solid var(--red)}.risk-row.amber{border-left:4px solid #e4a11f}.risk-row.green{border-left:4px solid #45b75c}
.health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.health-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;min-height:82px}.health-card .health-icon{width:25px;height:25px;border-radius:6px;display:grid;place-items:center;background:#f0f3f5;margin-bottom:5px;font-size:9px}.health-card.good .health-icon{background:#e7f6ea;color:#2c7b41}.health-card.warn .health-icon{background:#fff4dc;color:#8d6600}.health-card.bad .health-icon{background:#ffeaec;color:#a32933}.health-card b,.health-card span,.health-card small{display:block}.health-card b{font-size:8px}.health-card span{font-size:6.5px;color:#66737d;margin-top:2px}.health-card small{font-size:6px;color:#97a0a8;margin-top:4px;line-height:1.25}.feed-inspector{min-height:0;padding:10px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px}.feed-inspector-head{display:flex;justify-content:space-between;gap:12px}.feed-inspector-head h3{font-size:11px;margin:1px 0}.feed-inspector-head p:not(.eyebrow){font-size:6.8px;color:#7d8992;margin:2px 0}.feed-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.feed-slots article{display:flex;align-items:flex-start;gap:7px;padding:7px;border:1px solid #e4e8eb;border-radius:7px;background:#fafbfb}.feed-slots article>span{width:25px;height:25px;border-radius:5px;background:#202a32;color:#fff;display:grid;place-items:center;font-size:6px;font-weight:950}.feed-slots b,.feed-slots small{display:block}.feed-slots b{font-size:7.5px}.feed-slots small{font-size:6.2px;color:#7e8992;line-height:1.25;margin-top:2px}.feed-probe-results{min-height:0;overflow:auto;border:1px solid #e4e8eb;border-radius:7px;background:#f8fafb;padding:7px}.probe-empty{display:grid;place-items:center;height:100%;font-size:7px;color:#82909a}.probe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.probe-card{background:#fff;border:1px solid #e3e8eb;border-radius:6px;padding:7px}.probe-card.good{border-top:3px solid #42b75a}.probe-card.bad{border-top:3px solid var(--red)}.probe-card.wait{border-top:3px solid #a5afb7}.probe-card b{font-size:7.5px}.probe-card .probe-status{display:block;font-size:6px;font-weight:950;margin:2px 0 5px}.probe-card dl{display:grid;grid-template-columns:74px 1fr;gap:3px 5px;margin:0}.probe-card dt,.probe-card dd{font-size:5.8px;margin:0}.probe-card dt{color:#89949c}.probe-card dd{color:#33414a;overflow-wrap:anywhere}
.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:6px!important}.bus-map-marker{min-width:34px;padding:3px 5px;border-radius:5px;font-size:6px;font-weight:950;text-align:center;border:1px solid rgba(0,0,0,.14);box-shadow:0 2px 6px rgba(0,0,0,.22)}.bus-map-marker.good{background:var(--yellow);color:#1a1a15}.bus-map-marker.close{background:#ef3f48;color:#fff}.bus-map-marker.gap{background:var(--green);color:#092c12}.bus-map-marker.neutral,.bus-map-marker.stale{background:#929da6;color:#fff}.bus-popup b,.bus-popup small{display:block}.bus-popup b{font-size:10px}.bus-popup small{font-size:8px;margin-top:2px;color:#65717b}
@media(max-width:1180px){:root{--sidebar:190px}.ops-toolbar{grid-template-columns:1fr}.ops-kpis{display:none}.route-control{grid-template-columns:40px minmax(180px,1fr) 135px minmax(150px,.7fr) 65px}.live-page{grid-template-rows:auto minmax(310px,1fr) minmax(150px,25%)}.live-bottom-dock{grid-template-columns:1.5fr .8fr}.page-kpis{display:none}.route360-work{grid-template-columns:1.35fr .65fr}.compact-summary{width:50vw}}
@media(max-width:820px){html,body{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-columns:1fr}.sidebar{height:auto;position:relative}.main-nav{grid-template-columns:repeat(2,1fr)}.sidebar-foot{display:none}.main{height:auto}.topbar{height:56px}.workspace{height:auto;overflow:visible}.page{height:auto;overflow:visible}.page.active{display:block}.live-page>*{margin-bottom:8px}.route-control{grid-template-columns:40px 1fr}.route-control .search-control,.route-control .button{grid-column:auto}.live-bottom-dock,.route360-work{grid-template-columns:1fr}.avl-board{height:480px}.map-surface{height:280px}.standard-page>*{margin-bottom:8px}.network-table-wrap,.risk-register-list,.stop-list,.feed-probe-results{max-height:420px}.p2p-controls{grid-template-columns:1fr 1fr}.p2p-results{grid-template-columns:1fr 1fr}.health-grid,.feed-slots,.probe-grid{grid-template-columns:1fr 1fr}.compact-summary{width:100%;margin-top:8px}.page-head{align-items:flex-start;flex-direction:column}.inline-controls{width:100%}.inline-controls select{flex:1}}
.operational-avl.single .lane{height:100%;top:0;bottom:auto}.operational-avl.single .lane.top .lane-rail{top:50%}.operational-avl.single .lane.bottom .lane-rail{bottom:50%}.operational-avl.single .lane.top .terminal-cap{top:calc(50% - 10px)}.operational-avl.single .lane.bottom .terminal-cap{bottom:calc(50% - 10px)}.operational-avl.single .lane.top .stop-node{top:calc(50% - 5px)}.operational-avl.single .lane.bottom .stop-node{bottom:calc(50% - 5px)}

/* ===== Tirana AVL operational control-room interface ===== */
:root{--tirana-red:#d81f2a;--tirana-navy:#173553;--tirana-blue:#3979b7;--avl-bg:#edf5fc;--avl-grid:#d9e6f1;--avl-rail:#2c6ca5;--avl-dark:#17242f}
.sidebar{background:linear-gradient(180deg,#fff 0,#fbfcfd 74%,#fff7f7 100%)}
.brand-symbol{background:linear-gradient(145deg,#e52632,#b80e1a);box-shadow:0 6px 18px rgba(216,31,42,.18)}
.nav-item.active{background:linear-gradient(90deg,#fff0f1,#fff8f8);box-shadow:inset 4px 0 0 var(--tirana-red)}
.topbar{box-shadow:0 2px 9px rgba(24,45,64,.05);position:relative;z-index:20}
.topbar:after{content:"";position:absolute;right:215px;width:54px;height:42px;background:none;opacity:.035;pointer-events:none}
.workspace{background:linear-gradient(180deg,#f4f7f9,#eef3f6)}
.control-deck{border-top:3px solid var(--tirana-red)}
.route-control{box-shadow:0 5px 15px rgba(23,53,83,.045)}
.route-badge{background:linear-gradient(145deg,var(--tirana-red),#a9141c);box-shadow:0 4px 12px rgba(216,31,42,.18)}
.button.primary{background:linear-gradient(180deg,#e3313c,#c61621);box-shadow:0 4px 10px rgba(216,31,42,.15)}
.ops-kpis{box-shadow:0 5px 15px rgba(23,53,83,.045)}
.ops-kpis article{position:relative}.ops-kpis article:before{content:"";position:absolute;left:8px;right:8px;top:0;height:2px;background:#dfe8ef}.ops-kpis article:first-child:before{background:var(--yellow)}.ops-kpis article:nth-child(2):before{background:var(--tirana-blue)}.ops-kpis article:nth-child(3):before{background:var(--tirana-red)}.ops-kpis article:nth-child(4):before{background:#7f8d99}
.avl-command-board,.p2p-avl-board{border:1px solid #bed0df;box-shadow:0 9px 28px rgba(31,72,105,.09);border-radius:12px}
.avl-header{background:linear-gradient(90deg,#183b5d 0,#225985 36%,#183b5d 100%);color:#fff;border-bottom:0;min-height:54px;padding:8px 11px}
.route-number{background:#fff;color:#173553;border:2px solid rgba(255,255,255,.55);min-width:50px;height:36px;border-radius:8px;font-size:15px}
.route-identity h3{color:#fff;font-size:14px}.route-identity p{color:#cfe1ef;font-size:7.2px}
.avl-header-meta .status-chip{background:rgba(255,255,255,.11);color:#f5f9fc;border-color:rgba(255,255,255,.18)}
.avl-header-meta .status-chip.live{background:#dff5e5;color:#206d36;border-color:#dff5e5}.avl-header-meta .status-chip.warn{background:#fff1c7;color:#7b5800;border-color:#fff1c7}.avl-header-meta .status-chip.red{background:#ffe1e4;color:#a21e28;border-color:#ffe1e4}
.operational-avl{background:var(--avl-bg);border-top:1px solid #cbdce9}
.operational-avl:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.78) 0,rgba(255,255,255,.78) 64px,rgba(219,230,240,.58) 64px,rgba(219,230,240,.58) 128px)}
.avl-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:52px;font-weight:1000;letter-spacing:8px;color:#17466d;opacity:.018;pointer-events:none;z-index:1}
.lane{left:14px;right:14px}
.lane.top{border-bottom:1px dashed rgba(51,99,138,.24)}
.lane-header{left:8px;width:118px;height:36px;border-radius:7px;background:linear-gradient(135deg,#0f2639,#183e60);box-shadow:0 4px 12px rgba(16,39,57,.18);padding:5px 7px}
.lane-header b{font-size:7.4px;color:#fff}.lane-header span{font-size:6.1px;color:#bcd2e3}
.lane-rail{left:21px;right:21px;height:3px;background:linear-gradient(90deg,#2f73b6,#163d61);box-shadow:0 1px 0 #fff,0 0 0 1px rgba(45,100,146,.08)}
.lane.bottom .lane-rail{background:linear-gradient(90deg,#202a32,#3b4c59)}
.terminal-cap{width:12px;height:27px;background:#173553;border-radius:3px;box-shadow:0 2px 5px rgba(0,0,0,.15)}
.stop-node .marker{width:12px;height:12px;border-radius:3px;border:2px solid #346992;background:#fff}.lane.bottom .stop-node .marker{border-color:#374650}
.stop-node.key .marker{background:#173553;border-color:#173553}.stop-node.terminal .marker{background:#d81f2a;border-color:#d81f2a}
.stop-node.in-section .marker{box-shadow:0 0 0 3px rgba(216,31,42,.14)}.stop-node.section-end .marker{background:#d81f2a;border-color:#d81f2a;box-shadow:0 0 0 4px rgba(216,31,42,.16)}
.stop-stem{background:#a8bfd0}.stop-name{font-size:6px;font-weight:800;color:#203646;max-width:86px}.stop-node.key .stop-name{color:#102636}
.section-band{position:absolute;height:9px;border-radius:999px;background:rgba(216,31,42,.18);border:1px solid rgba(216,31,42,.35);z-index:2}.lane.top .section-band{top:calc(45% - 3px)}.lane.bottom .section-band{bottom:calc(45% - 3px)}
.bus-card{width:64px;height:46px;border:0;border-radius:4px;padding:4px 5px;box-shadow:0 5px 12px rgba(18,30,39,.2);clip-path:polygon(0 0,85% 0,100% 50%,85% 100%,0 100%,8% 50%)}
.bus-card.good{background:#ffd432}.bus-card.close{background:#ed3a45}.bus-card.gap{background:#41b85b}.bus-card.neutral,.bus-card.stale{background:#8e9ba5}
.bus-card b{font-size:7px}.bus-card strong{font-size:9.4px}.bus-card small{font-size:5.7px}.lane.top .bus-card{top:8px}.lane.bottom .bus-card{bottom:8px}
.bus-pointer{height:17px}.lane.top .bus-pointer{bottom:-18px}.lane.bottom .bus-pointer{top:-18px}
.lane-empty{left:150px;right:120px;color:#6f8798}.lane-empty span{border:0;background:rgba(255,255,255,.65);box-shadow:0 1px 3px rgba(0,0,0,.04);letter-spacing:.45px;font-weight:900}
.lane-counters{position:absolute;right:8px;display:flex;gap:4px;z-index:11}.lane.top .lane-counters{top:8px}.lane.bottom .lane-counters{bottom:8px}.lane-counters span{font-size:5.8px;font-weight:900;color:#31536c;background:rgba(255,255,255,.85);border:1px solid #d2e0ea;border-radius:999px;padding:3px 5px}.lane-counters .bunch-count{color:#a52d35}.lane-counters .gap-count{color:#28783d}
.avl-legend{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);display:flex;gap:11px;z-index:20;background:rgba(255,255,255,.9);border:1px solid #d7e1e8;border-radius:999px;padding:4px 9px;box-shadow:0 3px 10px rgba(31,72,105,.06)}
.avl-legend span{font-size:5.6px;font-weight:900;color:#607383;display:flex;align-items:center;gap:4px}.avl-legend i{width:7px;height:7px;border-radius:2px;display:inline-block}.avl-legend i.good{background:var(--yellow)}.avl-legend i.close{background:var(--red)}.avl-legend i.gap{background:var(--green)}.avl-legend i.stale{background:var(--grey)}
.live-page{grid-template-rows:auto minmax(355px,1fr) minmax(210px,31%);gap:9px}
.live-bottom-dock{grid-template-columns:minmax(0,2.15fr) minmax(300px,.75fr);gap:9px}.map-command-card{border-top:3px solid var(--tirana-blue)}
.map-card{overflow:hidden}.map-surface{background:#dfe9ef;border-color:#c8d7e2;min-height:170px;box-shadow:inset 0 0 0 1px #fff}.map-command-card .map-surface,.p2p-map-card .map-surface{min-height:0;height:100%}
.map-head-actions{display:flex;align-items:center;gap:8px}.map-key{font-size:5.8px;color:#72818c;display:flex;align-items:center;gap:4px}.map-key i{width:14px;height:3px;border-radius:3px;display:inline-block}.map-key .dir0{background:#2f73b6}.map-key .dir1{background:#202a32}
.bus-map-marker{min-width:48px;border-radius:6px;padding:4px 6px}.bus-map-marker b,.bus-map-marker span{display:block;line-height:1.05}.bus-map-marker b{font-size:7px}.bus-map-marker span{font-size:5.3px;opacity:.82;margin-top:1px}

/* Point-to-point now uses the same AVL control surface as Live AVL */
.p2p-page{grid-template-rows:auto auto minmax(330px,1fr) minmax(170px,27%);gap:8px}
.p2p-control-deck{display:grid;grid-template-columns:86px minmax(180px,1fr) 190px minmax(180px,1fr) minmax(180px,1fr) 110px;gap:7px;align-items:end;padding:8px 9px;border-top:3px solid var(--tirana-red);box-shadow:0 5px 15px rgba(23,53,83,.045)}
.p2p-route-id{height:36px;background:linear-gradient(145deg,#173553,#254f73);color:#fff;border-radius:7px;display:grid;place-items:center;align-content:center}.p2p-route-id span{font-size:10px;font-weight:1000}.p2p-route-id b{font-size:5.5px;letter-spacing:.7px;color:#cce0ef}
.p2p-control-deck label{display:grid;gap:2px}.p2p-control-deck label>span{font-size:6px;font-weight:950;letter-spacing:.55px;color:#697985}.p2p-control-deck select{height:36px;border:1px solid var(--line-strong);border-radius:6px;background:#fff;padding:0 8px;font-size:8.5px;color:#22303a;min-width:0}
.p2p-mini-state{height:36px;border-radius:7px;background:#f6f8fa;border:1px solid #dfe5e9;padding:5px 7px;display:grid;align-content:center}.p2p-mini-state span{font-size:5.4px;color:#75838e;font-weight:900}.p2p-mini-state strong{font-size:8px;color:#5e6d78}.p2p-mini-state strong.red{color:#b2242f}.p2p-mini-state strong.green{color:#21813b}.p2p-mini-state strong.good{color:#8a6900}
.operational-results{grid-template-columns:1.15fr repeat(4,minmax(0,1fr));gap:6px;margin:0}.operational-results article{min-height:50px;background:#fff;box-shadow:0 2px 7px rgba(23,53,83,.035)}
.p2p-avl-board{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.p2p-bottom-dock{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(290px,.75fr);gap:8px;min-height:0}.p2p-map-card{padding:8px;display:flex;flex-direction:column;min-height:0;border-top:3px solid var(--tirana-red)}
.p2p-explain{padding:10px;border-top:3px solid #173553;min-height:0;overflow:hidden}.p2p-explain h3{font-size:11px;margin:3px 0 8px;color:#173553}.p2p-section-detail{display:grid;gap:5px}.p2p-section-detail b{font-size:17px;color:#17242f}.p2p-section-detail span{font-size:7px;color:#5f707d;line-height:1.35}.p2p-section-detail small{font-size:6.4px;color:#8a969f;line-height:1.35}

/* Route 360 map must remain readable rather than collapsing */
.route360-work{grid-template-columns:minmax(0,1.85fr) minmax(280px,.55fr)}.route360-map-card .map-surface{min-height:360px;height:100%}.route360-map-card{border-top:3px solid var(--tirana-blue)}

@media(max-width:1350px){.p2p-control-deck{grid-template-columns:70px minmax(150px,1fr) 155px minmax(150px,1fr) minmax(150px,1fr) 95px}.live-page{grid-template-rows:auto minmax(330px,1fr) minmax(190px,29%)}.bus-card{width:58px}.lane-counters{display:none}}
@media(max-width:1000px){.p2p-control-deck{grid-template-columns:70px 1fr 1fr 1fr}.p2p-mini-state{display:none}.p2p-control-deck label:nth-of-type(3),.p2p-control-deck label:nth-of-type(4){grid-column:auto}.p2p-bottom-dock,.live-bottom-dock{grid-template-columns:1.5fr .8fr}}


/* === V0.4.1 tightening override === */
.live-page{grid-template-rows:auto minmax(282px,.78fr) minmax(255px,.96fr)!important;gap:8px!important}
.avl-header{min-height:46px!important;padding:6px 10px!important}
.route-number{min-width:44px!important;height:32px!important;font-size:13px!important}
.route-identity h3{font-size:13px!important}
.route-identity p{font-size:6.8px!important}
.lane{left:10px!important;right:10px!important}
.lane-header{left:7px!important;width:102px!important;height:30px!important;padding:4px 6px!important}
.lane.top .lane-header{top:6px!important}
.lane.bottom .lane-header{bottom:6px!important}
.lane-header b{font-size:6.9px!important}
.lane-header span{font-size:5.7px!important}
.lane-rail{left:18px!important;right:18px!important;height:3px!important}
.terminal-cap{width:10px!important;height:22px!important}
.stop-node .marker{width:10px!important;height:10px!important;border-width:1.8px!important}
.stop-stem{width:2px!important;background:#b3c5d2!important}
.lane.top .stop-stem{top:9px!important;height:29px!important}
.lane.bottom .stop-stem{bottom:9px!important;height:29px!important}
.stop-name{font-size:5.3px!important;max-width:70px!important}
.lane.top .stop-name{top:12px!important;left:8px!important;height:34px!important}
.lane.bottom .stop-name{bottom:12px!important;right:8px!important;height:34px!important}
.bus-card{width:56px!important;height:40px!important;padding:3px 4px!important;box-shadow:0 4px 10px rgba(18,30,39,.16)!important}
.bus-card b{font-size:6.4px!important}.bus-card strong{font-size:8.6px!important}.bus-card small{font-size:5.2px!important}
.lane.top .bus-card{top:6px!important}.lane.bottom .bus-card{bottom:6px!important}
.bus-pointer{height:13px!important}.lane.top .bus-pointer{bottom:-14px!important}.lane.bottom .bus-pointer{top:-14px!important}
.lane-empty{left:124px!important;right:92px!important}
.lane-counters{right:6px!important}
.lane-counters span{font-size:5.4px!important;padding:2px 5px!important}
.avl-legend{bottom:4px!important;padding:3px 8px!important}
.avl-legend span{font-size:5.3px!important}
.live-bottom-dock{grid-template-columns:minmax(0,2.55fr) minmax(250px,.55fr)!important;gap:8px!important}
.map-command-card{padding:7px!important}
.map-command-card .map-surface{min-height:245px!important;height:100%!important}
.map-surface{border-radius:8px!important}
.bus-map-marker{min-width:56px!important;padding:5px 7px!important;border-radius:7px!important}
.bus-map-marker b{font-size:7.2px!important}.bus-map-marker span{font-size:5.6px!important}
.p2p-page{grid-template-rows:auto auto minmax(282px,.8fr) minmax(240px,.94fr)!important}
.p2p-bottom-dock{grid-template-columns:minmax(0,2.35fr) minmax(260px,.65fr)!important}
.p2p-map-card .map-surface{min-height:225px!important;height:100%!important}
.route360-work{grid-template-columns:minmax(0,2fr) minmax(265px,.52fr)!important}
.route360-map-card .map-surface{min-height:410px!important}
@media(max-width:1350px){.live-page{grid-template-rows:auto minmax(270px,.8fr) minmax(220px,.9fr)!important}.live-bottom-dock{grid-template-columns:minmax(0,2.2fr) minmax(230px,.6fr)!important}.map-command-card .map-surface{min-height:220px!important}.p2p-page{grid-template-rows:auto auto minmax(270px,.8fr) minmax(215px,.9fr)!important}}

.live-page{grid-template-rows:auto 246px minmax(0,1fr)!important;gap:8px!important}
.avl-board.avl-command-board{height:246px!important;min-height:246px!important;max-height:246px!important}
.avl-header{min-height:42px!important;height:42px!important;padding:5px 9px!important;background:linear-gradient(90deg,#f8fbfe 0,#eef5fa 70%,#fff5f5 100%)!important;color:#132838!important;border-bottom:1px solid #c9d8e3!important;box-shadow:inset 4px 0 0 var(--tirana-red)!important}
.route-number{min-width:42px!important;height:30px!important;border:0!important;border-radius:7px!important;background:var(--tirana-red)!important;color:#fff!important;font-size:12px!important}
.route-identity h3{color:#10283b!important;font-size:12.5px!important}.route-identity p{color:#60798d!important;font-size:6.5px!important}
.avl-header-meta .status-chip{background:#fff!important;color:#536b7e!important;border-color:#cfdae2!important;padding:3px 6px!important}
.avl-header-meta .status-chip.live{background:#e5f6e9!important;color:#216f36!important;border-color:#c8e9d0!important}.avl-header-meta .status-chip.warn{background:#fff4d7!important;color:#865f00!important;border-color:#f1dc9d!important}.avl-header-meta .status-chip.red{background:#ffe8ea!important;color:#a21f29!important;border-color:#f4c6ca!important}
.operational-avl{background:#eaf2f8!important;border-top:0!important}
.operational-avl:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.84) 0,rgba(255,255,255,.84) 52px,rgba(220,230,238,.58) 52px,rgba(220,230,238,.58) 104px)!important}
.avl-watermark{font-size:40px!important;letter-spacing:7px!important;opacity:.014!important}
.lane{left:8px!important;right:8px!important;height:50%!important}
.lane.top{top:0!important;border-bottom:1px dashed rgba(60,99,129,.14)!important}.lane.bottom{bottom:0!important}
.lane.top .lane-rail{top:62%!important}.lane.bottom .lane-rail{bottom:62%!important}
.lane-rail{left:15px!important;right:15px!important;height:2px!important;background:#496c87!important;box-shadow:0 1px 0 rgba(255,255,255,.9)!important}.lane.bottom .lane-rail{background:#49606f!important}
.lane-header{left:7px!important;width:105px!important;height:28px!important;border-radius:6px!important;padding:4px 6px!important;background:#152532!important;box-shadow:0 3px 8px rgba(17,38,54,.16)!important}
.lane.top .lane-header{top:4px!important}.lane.bottom .lane-header{bottom:4px!important}.lane-header b{font-size:6.7px!important}.lane-header span{font-size:5.5px!important;color:#c9d6df!important}
.lane.top .terminal-cap{top:calc(62% - 10px)!important}.lane.bottom .terminal-cap{bottom:calc(62% - 10px)!important}.terminal-cap{width:9px!important;height:21px!important;background:#152532!important}
.lane.top .stop-node{top:calc(62% - 4px)!important}.lane.bottom .stop-node{bottom:calc(62% - 4px)!important}.stop-node .marker{width:9px!important;height:9px!important;border:1.6px solid #466e8d!important;border-radius:2px!important}.lane.bottom .stop-node .marker{border-color:#516674!important}.stop-node.key .marker{background:#19364d!important;border-color:#19364d!important}.stop-node.terminal .marker{background:var(--tirana-red)!important;border-color:var(--tirana-red)!important}
.stop-stem{left:3px!important;width:1.5px!important;background:#a8bac7!important}.lane.top .stop-stem{top:8px!important;height:27px!important}.lane.bottom .stop-stem{bottom:8px!important;height:27px!important}
.stop-name{font-size:5px!important;font-weight:850!important;color:#263d4d!important;max-width:64px!important}.lane.top .stop-name{top:10px!important;left:7px!important;height:30px!important}.lane.bottom .stop-name{bottom:10px!important;right:7px!important;height:30px!important}
.bus-card{width:58px!important;height:39px!important;border-radius:3px!important;padding:3px 4px!important;box-shadow:0 3px 7px rgba(18,30,39,.17)!important;clip-path:polygon(0 0,84% 0,100% 50%,84% 100%,0 100%,9% 50%)!important}.lane.top .bus-card{top:4px!important}.lane.bottom .bus-card{bottom:4px!important}.bus-card b{font-size:6.4px!important}.bus-card strong{font-size:8.7px!important}.bus-card small{font-size:5.1px!important}.bus-pointer{height:14px!important}.lane.top .bus-pointer{bottom:-15px!important}.lane.bottom .bus-pointer{top:-15px!important}
.lane-empty{left:122px!important;right:94px!important;font-size:6px!important}.lane.top .lane-empty{top:8px!important}.lane.bottom .lane-empty{bottom:8px!important}.lane-empty span{padding:3px 7px!important}
.lane-counters{right:5px!important;gap:3px!important}.lane.top .lane-counters{top:4px!important}.lane.bottom .lane-counters{bottom:4px!important}.lane-counters span{font-size:5px!important;padding:2px 4px!important}
.avl-legend{display:none!important}
.live-bottom-dock{grid-template-columns:minmax(0,3fr) 260px!important;gap:8px!important;min-height:0!important}
.map-command-card{padding:7px!important;border-top:3px solid var(--tirana-red)!important}.map-command-card .section-head{min-height:28px!important;margin-bottom:5px!important}.map-command-card .map-surface{min-height:0!important;height:100%!important;border:1px solid #b9cbd8!important;box-shadow:inset 0 0 0 1px #fff,0 5px 15px rgba(23,53,83,.06)!important}
.attention-card{padding:7px!important;border-top:3px solid #183b55!important}.attention-card .section-head{margin-bottom:4px!important}.attention-list{gap:3px!important}
.p2p-page{grid-template-rows:auto auto 246px minmax(0,1fr)!important;gap:8px!important}.p2p-avl-board{height:246px!important;min-height:246px!important;max-height:246px!important}.p2p-bottom-dock{grid-template-columns:minmax(0,3fr) 280px!important;gap:8px!important}.p2p-map-card{padding:7px!important}.p2p-map-card .map-surface{min-height:0!important;height:100%!important}.p2p-explain{padding:8px!important}
.route360-work{grid-template-columns:minmax(0,3fr) 280px!important;gap:8px!important}.route360-map-card .map-surface{min-height:0!important;height:100%!important}
.map-key .dir0{background:var(--tirana-red)!important}.map-key .dir1{background:#275f89!important}
@media(max-width:1350px){.live-page{grid-template-rows:auto 236px minmax(0,1fr)!important}.avl-board.avl-command-board{height:236px!important;min-height:236px!important;max-height:236px!important}.live-bottom-dock{grid-template-columns:minmax(0,2.6fr) 230px!important}.p2p-page{grid-template-rows:auto auto 236px minmax(0,1fr)!important}.p2p-avl-board{height:236px!important;min-height:236px!important;max-height:236px!important}}


/* === Tirana AVL V0.6.1 — compact OCC + stable-map refresh === */
.live-page{grid-template-rows:auto 214px minmax(0,1fr)!important;gap:7px!important}
.avl-board.avl-command-board{height:214px!important;min-height:214px!important;max-height:214px!important;border-radius:10px!important}
.avl-header{min-height:38px!important;height:38px!important;padding:4px 8px!important}
.route-number{min-width:39px!important;height:27px!important;font-size:11.5px!important}
.route-identity{gap:6px!important}.route-identity h3{font-size:11.8px!important}.route-identity p{font-size:6.1px!important}
.avl-header-meta{gap:3px!important}.avl-header-meta .status-chip{font-size:5.4px!important;padding:2px 5px!important}
.operational-avl{background:#edf4f9!important}
.operational-avl:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.88) 0,rgba(255,255,255,.88) 50px,rgba(218,228,236,.60) 50px,rgba(218,228,236,.60) 100px)!important}
.avl-watermark{font-size:34px!important;letter-spacing:6px!important;opacity:.012!important}
.lane{left:7px!important;right:7px!important;height:50%!important}
.lane.top .lane-rail{top:70%!important}.lane.bottom .lane-rail{bottom:70%!important}
.lane-rail{left:14px!important;right:14px!important;height:2px!important;background:#234e6d!important}.lane.bottom .lane-rail{background:#354956!important}
.lane-header{width:96px!important;height:25px!important;padding:3px 5px!important;border-radius:5px!important}
.lane.top .lane-header{top:3px!important}.lane.bottom .lane-header{bottom:3px!important}
.lane-header b{font-size:6.3px!important}.lane-header span{font-size:5.1px!important}
.lane.top .terminal-cap{top:calc(70% - 9px)!important}.lane.bottom .terminal-cap{bottom:calc(70% - 9px)!important}.terminal-cap{width:8px!important;height:19px!important}
.lane.top .stop-node{top:calc(70% - 4px)!important}.lane.bottom .stop-node{bottom:calc(70% - 4px)!important}
.stop-node .marker{width:8px!important;height:8px!important;border-width:1.4px!important}
.stop-stem{left:3px!important;width:1px!important}.lane.top .stop-stem{top:7px!important;height:20px!important}.lane.bottom .stop-stem{bottom:7px!important;height:20px!important}
.stop-name{font-size:4.7px!important;max-width:58px!important}.lane.top .stop-name{top:9px!important;left:6px!important;height:23px!important}.lane.bottom .stop-name{bottom:9px!important;right:6px!important;height:23px!important}
.bus-card{width:55px!important;height:37px!important;padding:3px 4px!important}.lane.top .bus-card{top:3px!important}.lane.bottom .bus-card{bottom:3px!important}
.bus-card b{font-size:6.1px!important}.bus-card strong{font-size:8.2px!important}.bus-card small{font-size:4.9px!important}
.bus-pointer{height:12px!important}.lane.top .bus-pointer{bottom:-13px!important}.lane.bottom .bus-pointer{top:-13px!important}
.lane-empty{left:105px!important;right:82px!important;font-size:5.6px!important}.lane.top .lane-empty{top:6px!important}.lane.bottom .lane-empty{bottom:6px!important}
.lane-counters{right:4px!important;gap:2px!important}.lane.top .lane-counters{top:3px!important}.lane.bottom .lane-counters{bottom:3px!important}.lane-counters span{font-size:4.8px!important;padding:2px 3px!important}
.live-bottom-dock{grid-template-columns:minmax(0,1fr) 230px!important;gap:7px!important;min-height:0!important}
.map-command-card{padding:6px!important;border-top:3px solid var(--tirana-red)!important;box-shadow:0 8px 22px rgba(17,55,83,.09)!important}
.map-command-card .section-head{min-height:25px!important;margin-bottom:4px!important}.map-command-card .section-head h3{font-size:10.5px!important}
.map-command-card .map-surface{min-height:290px!important;height:100%!important;border:1px solid #9fb7c8!important}
.attention-card{padding:6px!important}.attention-card .section-head h3{font-size:10px!important}.attention-item{padding:4px 5px!important}.attention-item b{font-size:6.4px!important}.attention-item span{font-size:5.6px!important}
.p2p-page{grid-template-rows:auto auto 214px minmax(0,1fr)!important;gap:7px!important}.p2p-avl-board{height:214px!important;min-height:214px!important;max-height:214px!important}.p2p-bottom-dock{grid-template-columns:minmax(0,1fr) 250px!important;gap:7px!important}.p2p-map-card .map-surface{min-height:275px!important;height:100%!important}
.route360-work{grid-template-columns:minmax(0,1fr) 260px!important;gap:7px!important}.route360-map-card .map-surface{min-height:470px!important;height:100%!important}
@media(max-width:1350px){.live-page{grid-template-rows:auto 204px minmax(0,1fr)!important}.avl-board.avl-command-board{height:204px!important;min-height:204px!important;max-height:204px!important}.live-bottom-dock{grid-template-columns:minmax(0,1fr) 210px!important}.map-command-card .map-surface{min-height:245px!important}.p2p-page{grid-template-rows:auto auto 204px minmax(0,1fr)!important}.p2p-avl-board{height:204px!important;min-height:204px!important;max-height:204px!important}}

/* === Tirana AVL V0.6.1 — secure access + in-place section analysis === */
.route-control{grid-template-columns:42px minmax(180px,1.05fr) 145px minmax(150px,.75fr) 102px 72px!important}
.section-button{white-space:nowrap;border-color:#9eb3c2!important;color:#173553!important;background:#f7fafc!important}
.section-button:hover{background:#edf5fa!important}
.health-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}

.user-menu{display:flex;align-items:center;gap:4px;height:30px}.user-button{height:30px;border:1px solid #dfe5e9;border-radius:999px;background:#fff;display:grid;grid-template-columns:24px auto;grid-template-rows:1fr 1fr;column-gap:5px;align-items:center;padding:2px 9px 2px 3px;color:#263742;cursor:default}.user-button>span{grid-row:1/3;width:24px;height:24px;border-radius:50%;background:#173553;color:#fff;display:grid;place-items:center;font-size:8px;font-weight:950}.user-button b{font-size:6.7px;line-height:1;align-self:end;text-align:left;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-button small{font-size:5.2px;color:#82909a;line-height:1;align-self:start;text-align:left}.logout-button{width:28px;height:28px;border:1px solid #dfe5e9;background:#fff;border-radius:50%;font-size:11px;color:#667681}.logout-button:hover{color:var(--red);border-color:#efc4c7;background:#fff7f7}

.login-overlay[hidden]{display:none}.login-overlay{position:fixed;inset:0;z-index:2000;background:linear-gradient(135deg,rgba(244,247,249,.97),rgba(255,255,255,.98));display:grid;place-items:center}.login-overlay:before{content:"";position:absolute;inset:0;background:none;opacity:.025;pointer-events:none}.login-card{position:relative;width:min(430px,calc(100vw - 32px));background:#fff;border:1px solid #dbe2e7;border-radius:16px;box-shadow:0 22px 70px rgba(20,40,55,.14);padding:22px}.login-brand{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid #edf1f3}.login-symbol{width:54px;height:54px;border-radius:13px;background:var(--red);display:grid;place-items:center;box-shadow:0 8px 20px rgba(215,38,49,.17)}.login-symbol img{width:40px;filter:brightness(0) invert(1)}.login-brand h2{font-size:22px;margin:2px 0 1px;color:#14232e}.login-brand span{font-size:8px;color:#7f8c95}.login-card form{display:grid;gap:12px;margin-top:18px}.login-card label{display:grid;gap:5px}.login-card label>span{font-size:6.5px;font-weight:950;letter-spacing:.75px;color:#687985}.login-card input{height:42px;border:1px solid #cfd8de;border-radius:8px;padding:0 11px;font-size:10px;outline:none}.login-card input:focus{border-color:#d9545c;box-shadow:0 0 0 3px #fff0f1}.login-submit{height:42px!important;font-size:8px!important;margin-top:2px}.login-message{min-height:16px;font-size:7px;color:#798791;text-align:center}.login-security{margin-top:14px;padding-top:12px;border-top:1px solid #edf1f3;font-size:6.4px;color:#97a1a9;text-align:center}

.section-drawer{position:fixed;z-index:900;right:-410px;top:calc(var(--topbar) + 10px);width:390px;max-width:calc(100vw - 30px);height:auto;max-height:calc(100vh - var(--topbar) - 20px);overflow:auto;background:#fff;border:1px solid #cfdbe3;border-right:0;border-radius:12px 0 0 12px;box-shadow:-16px 20px 55px rgba(20,45,65,.16);padding:13px;transition:right .22s ease}.section-drawer.open{right:0}.section-drawer-head{display:flex;justify-content:space-between;gap:10px;padding-bottom:11px;border-bottom:1px solid #e9eef1}.section-drawer-head h3{font-size:15px;margin:2px 0 1px;color:#173553}.section-drawer-head span{font-size:6.8px;color:#7b8993;line-height:1.35}.drawer-close{width:30px;height:30px;border:1px solid #dce3e8;background:#fff;border-radius:50%;font-size:20px;color:#64747f;line-height:1}.drawer-close:hover{background:#fff2f3;color:var(--red)}.section-drawer-controls{display:grid;gap:8px;margin-top:11px}.section-drawer-controls label{display:grid;gap:3px}.section-drawer-controls label>span{font-size:6px;font-weight:950;letter-spacing:.6px;color:#6b7b86}.section-drawer-controls select{height:36px;border:1px solid #cfd8de;border-radius:7px;background:#fff;padding:0 8px;font-size:8.5px;color:#22333f}.section-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.section-metrics article{border:1px solid #e1e7eb;background:#f8fafb;border-radius:7px;padding:7px}.section-metrics span,.section-metrics strong{display:block}.section-metrics span{font-size:5.7px;color:#7e8c96;font-weight:950;letter-spacing:.45px}.section-metrics strong{font-size:11px;color:#18364e;margin-top:2px}.section-status{margin-top:8px;border-left:3px solid var(--red);background:#fff7f7;border-radius:6px;padding:8px}.section-status b,.section-status span{display:block}.section-status b{font-size:8px;color:#9f2630}.section-status span{font-size:6.5px;color:#78858e;margin-top:2px;line-height:1.35}.clear-section{width:100%;margin-top:10px}

@media(max-width:1350px){.route-control{grid-template-columns:40px minmax(160px,1fr) 130px minmax(130px,.7fr) 90px 65px!important}.health-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.user-button b,.user-button small{display:none}.user-button{grid-template-columns:24px;padding-right:3px}}
@media(max-width:820px){.health-grid{grid-template-columns:1fr 1fr!important}.section-drawer{top:8px;right:-100%;width:96vw;max-height:calc(100vh - 16px);border-radius:12px}.section-drawer.open{right:2vw}.user-menu{display:none}}

/* === Access administration foundation === */
.sidebar:after{display:none!important}
.brand-block.municipality-brand{display:block!important;padding:4px 5px 10px!important;text-align:left}
.municipality-logo{display:block;width:174px;max-width:100%;height:auto;object-fit:contain;object-position:left center;margin:0 0 3px}
.municipality-brand .brand-copy{padding-left:4px}
.municipality-brand .brand-copy strong{font-size:11px;color:#18242d}.municipality-brand .brand-copy span{font-size:6.8px}
.login-overlay:before{display:none!important}
.municipality-login-brand{display:grid!important;grid-template-columns:145px 1fr!important;gap:15px!important}
.municipality-login-logo{width:145px;max-height:84px;object-fit:contain;object-position:left center}
.admin-only-nav[hidden]{display:none!important}

.access-admin-layout{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.65fr);gap:9px;min-height:0}
.access-user-list-panel,.access-editor-panel{padding:10px;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.access-users-list{min-height:0;overflow:auto;display:grid;gap:5px}
.access-user-row{width:100%;border:1px solid #e0e6ea;background:#fff;border-radius:8px;padding:8px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:7px;align-items:center;text-align:left;color:#22313c}
.access-user-row:hover{border-color:#c4d4df;background:#f9fbfc}.access-user-row.active{border-color:#d72631;box-shadow:inset 3px 0 0 #d72631;background:#fff7f7}
.access-user-row .user-avatar{width:30px;height:30px;border-radius:50%;background:#173553;color:#fff;display:grid;place-items:center;font-size:8px;font-weight:950}
.access-user-row b,.access-user-row span,.access-user-row small{display:block}.access-user-row b{font-size:7.8px}.access-user-row span{font-size:6.2px;color:#73828d;margin-top:1px}.access-user-row small{font-size:5.8px;color:#9a6468;margin-top:2px}
.access-user-row .route-count{font-size:6px;font-weight:950;color:#31536c;background:#edf4f8;padding:4px 6px;border-radius:999px;white-space:nowrap}
.access-editor-panel{overflow:auto}.access-user-form{display:grid;gap:9px;min-height:0}.access-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.access-user-form label{display:grid;gap:3px}.access-user-form label>span{font-size:5.8px;font-weight:950;letter-spacing:.6px;color:#687985}.access-user-form input,.access-user-form select{height:36px;border:1px solid #cad5dc;border-radius:7px;padding:0 8px;background:#fff;font-size:8.5px;color:#22333e}
.access-user-form input:focus,.access-user-form select:focus{outline:none;border-color:#d9545c;box-shadow:0 0 0 2px #fff0f1}.password-field{grid-column:1/-1}.password-field small{font-size:5.8px;color:#87939c}
.route-allocation-head{display:flex;justify-content:space-between;align-items:end;gap:10px;border-top:1px solid #e8edf0;padding-top:8px}.route-allocation-head b,.route-allocation-head span{display:block}.route-allocation-head b{font-size:7px;color:#173553}.route-allocation-head span{font-size:6px;color:#7c8992;margin-top:2px}.route-allocation-head>div:last-child{display:flex;gap:4px}
.route-allocation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;max-height:330px;overflow:auto;padding:2px}.route-access-check{border:1px solid #dce4e9;border-radius:7px;background:#f9fbfc;padding:6px;display:flex!important;grid-template-columns:none!important;align-items:center;gap:6px;cursor:pointer}.route-access-check:hover{border-color:#b9ccd8}.route-access-check input{width:14px;height:14px;margin:0;accent-color:#d72631}.route-access-check div{min-width:0}.route-access-check b,.route-access-check small{display:block}.route-access-check b{font-size:7px;color:#1f3341}.route-access-check small{font-size:5.5px;color:#82909a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-access-check.disabled{opacity:.48;cursor:not-allowed}
.access-save-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #e9eef1;padding-top:8px}.access-save-row>span{font-size:6.4px;color:#687984}.access-save-row>span.error{color:#b3242e}.access-save-row>span.success{color:#287a3e}.access-editor-empty{flex:1;display:grid;place-items:center;align-content:center;text-align:center;color:#85929b;gap:3px}.access-editor-empty b{font-size:11px;color:#455660}.access-editor-empty span{font-size:7px;max-width:330px;line-height:1.4}

@media(max-width:1350px){.municipality-logo{width:155px}.route-allocation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.access-admin-layout{grid-template-columns:250px minmax(0,1fr)}}
@media(max-width:820px){.municipality-logo{width:190px}.access-admin-layout{display:block}.access-user-list-panel{max-height:350px;margin-bottom:8px}.route-allocation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-form-grid{grid-template-columns:1fr}}


/* === Stable-map access foundation === */
.sidebar:after,.topbar:after,.login-overlay:before{display:none!important;background:none!important}
.municipality-logo{width:184px!important;max-height:106px!important;object-fit:contain!important;object-position:left center!important}
.municipality-brand .brand-copy{display:none!important}
.municipality-login-logo{width:170px!important;max-height:100px!important}

/* === Tirana AVL V0.8.1 — ADEM Signature branding + editable admin + locked map viewport === */
.brand-block.signature-brand{display:grid!important;justify-items:center!important;gap:4px!important;padding:0 3px 9px!important;text-align:center!important}
.brand-art-frame{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(25,25,25,.08) 0,rgba(215,38,49,.035) 54%,transparent 78%)}
.brand-art-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 52%,rgba(255,255,255,.24) 69%,rgba(255,255,255,.92) 97%)}
.brand-art-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;-webkit-mask-image:radial-gradient(ellipse at center,#000 58%,rgba(0,0,0,.92) 70%,rgba(0,0,0,.25) 88%,transparent 100%);mask-image:radial-gradient(ellipse at center,#000 58%,rgba(0,0,0,.92) 70%,rgba(0,0,0,.25) 88%,transparent 100%)}
.sidebar-art{width:150px;height:150px;border-radius:22px;margin:-3px auto -6px}.signature-brand .brand-copy{display:block!important;padding:0!important}.signature-brand .brand-copy strong{font-size:11px!important;color:#17242e!important}.signature-brand .brand-copy span{font-size:6.5px!important;color:#7f8b94!important}
.signature-login-brand{display:grid!important;grid-template-columns:188px minmax(0,1fr)!important;gap:18px!important;align-items:center!important}.login-art{width:188px;height:188px;border-radius:32px}.signature-login-brand h2{font-size:25px!important;margin:2px 0 2px!important}.signature-login-brand span{display:block;font-size:8px!important;color:#637682!important}.signature-login-brand small{display:block;font-size:6px;color:#9aa5ad;margin-top:6px}.login-card{width:min(620px,calc(100vw - 32px))!important}

.access-admin-layout{grid-template-columns:minmax(245px,.65fr) minmax(470px,1.45fr) minmax(285px,.72fr)!important;gap:8px!important}
.access-user-list-panel,.access-editor-panel,.branding-admin-panel{min-height:0!important}.branding-admin-panel{padding:10px;display:flex;flex-direction:column;overflow:auto;border-top:3px solid var(--red)}
.view-allocation-head{display:flex;justify-content:space-between;align-items:end;gap:10px;border-top:1px solid #e8edf0;padding-top:8px}.view-allocation-head b,.view-allocation-head span{display:block}.view-allocation-head b{font-size:7px;color:#173553}.view-allocation-head span{font-size:6px;color:#7c8992;margin-top:2px}.view-allocation-head>div:last-child{display:flex;gap:4px}
.view-allocation-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.view-access-check{border:1px solid #dce4e9;border-radius:7px;background:#f9fbfc;padding:6px;display:flex!important;align-items:center;gap:6px;cursor:pointer;min-width:0}.view-access-check:hover{border-color:#b9ccd8}.view-access-check input{width:14px!important;height:14px!important;margin:0!important;accent-color:#d72631;flex:0 0 auto}.view-access-check div{min-width:0}.view-access-check b,.view-access-check small{display:block}.view-access-check b{font-size:6.8px;color:#1f3341}.view-access-check small{font-size:5.2px;color:#82909a;white-space:normal;line-height:1.2;margin-top:1px}.view-access-check.disabled{opacity:.48;cursor:not-allowed}
.branding-preview{width:100%;aspect-ratio:1/1;max-height:300px;border-radius:18px;margin:2px 0 9px;background-color:#fff}.admin-art img{object-fit:cover}.branding-form{display:grid;gap:8px}.branding-form label{display:grid;gap:3px}.branding-form label>span{font-size:5.8px;font-weight:950;letter-spacing:.6px;color:#687985}.branding-form input[type="text"],.branding-form input:not([type]){height:36px;border:1px solid #cad5dc;border-radius:7px;padding:0 8px;background:#fff;font-size:8.5px;color:#22333e}.branding-form input[type="file"]{border:1px dashed #c9d5dd;border-radius:8px;padding:8px;background:#fafcfd;font-size:7px}.branding-file small{font-size:5.8px;color:#87939c;line-height:1.35}.branding-save-row{display:grid;gap:6px;border-top:1px solid #e9eef1;padding-top:8px}.branding-save-row span{font-size:6.2px;color:#687984;line-height:1.35}.branding-save-row .button{width:100%}

/* Hard viewport rule: no observer-driven invalidate or automatic re-centre during live refresh. */
.map-surface.leaflet-container{contain:layout paint;will-change:auto}.leaflet-fade-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-zoom-animated{transition:none!important}

@media(max-width:1500px){.access-admin-layout{grid-template-columns:230px minmax(430px,1fr) 260px!important}.view-allocation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar-art{width:132px;height:132px}.branding-preview{max-height:240px}}
@media(max-width:1180px){.access-admin-layout{grid-template-columns:230px minmax(0,1fr)!important}.branding-admin-panel{grid-column:1/-1;max-height:280px}.branding-preview{width:170px;max-height:170px;float:left}.branding-form{grid-template-columns:1fr 1fr}.branding-file,.branding-save-row{grid-column:1/-1}}
@media(max-width:820px){.signature-login-brand{grid-template-columns:1fr!important;text-align:center}.login-art{width:170px;height:170px;margin:auto}.access-admin-layout{display:block!important}.branding-admin-panel{margin-top:8px;max-height:none}.view-allocation-grid{grid-template-columns:1fr 1fr}}

/* ===== Enterprise administration & configurable control room foundation ===== */
:root{--map-stop-label-px:11px;--map-vehicle-label-px:11px;--avl-stop-label-px:6px;--avl-bus-scale:1;--avl-board-height:214px}
.sidebar-foot{padding-top:4px}.isolation-note{display:none!important}.env-chip{display:none!important}
.city-switcher{display:flex;align-items:center;gap:5px;height:30px;padding:0 7px;border:1px solid #dfe5e9;border-radius:999px;background:#fff}.city-switcher>span{font-size:5.6px;font-weight:950;letter-spacing:.65px;color:#84919a}.city-switcher select{border:0;background:transparent;font-size:7px;font-weight:900;color:#263743;outline:none;max-width:130px}
.stop-name{font-size:var(--avl-stop-label-px)!important}.bus-card{transform:translateX(-50%) scale(var(--avl-bus-scale))!important}.avl-command-board{height:var(--avl-board-height)!important;min-height:var(--avl-board-height)!important;max-height:var(--avl-board-height)!important}
.operational-stop-label{background:rgba(255,255,255,.92)!important;border:1px solid rgba(24,61,92,.18)!important;border-radius:4px!important;box-shadow:0 2px 8px rgba(10,36,56,.10)!important;color:#16334a!important;font-size:var(--map-stop-label-px)!important;font-weight:850!important;padding:2px 4px!important;white-space:nowrap!important}.operational-stop-label:before{display:none!important}.bus-map-marker b{font-size:var(--map-vehicle-label-px)!important}.bus-map-marker span{font-size:calc(var(--map-vehicle-label-px) * .72)!important}

.admin-page{grid-template-rows:auto auto minmax(0,1fr);gap:8px}.admin-page-head{margin:0}.admin-city-context{min-width:150px;background:#fff;border:1px solid #dfe6eb;border-radius:8px;padding:7px 10px;display:grid;align-content:center}.admin-city-context span{font-size:5.8px;color:#82909a;font-weight:950;letter-spacing:.6px}.admin-city-context strong{font-size:11px;margin-top:2px;color:#183a56}.admin-tabs{display:flex;gap:5px;padding:5px;background:#eaf0f4;border:1px solid #d5e0e7;border-radius:9px}.admin-tab{border:0;background:transparent;border-radius:6px;padding:8px 13px;font-size:6.8px;font-weight:950;letter-spacing:.55px;color:#617483}.admin-tab.active{background:#173b59;color:#fff;box-shadow:0 3px 8px rgba(17,51,76,.15)}.admin-workspace{min-height:0}.admin-tab-panel{display:none;height:100%;min-height:0;overflow:hidden}.admin-tab-panel.active{display:flex;flex-direction:column}.admin-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.admin-panel-toolbar h3{font-size:12px;margin:1px 0}.admin-panel-toolbar p:not(.eyebrow){font-size:7px;color:#7c8a94;margin:1px 0}.access-only-layout{grid-template-columns:minmax(260px,.62fr) minmax(0,2fr)!important;height:calc(100% - 46px)}
.city-admin-layout{display:grid;grid-template-columns:260px minmax(360px,.82fr) minmax(440px,1.3fr);gap:8px;min-height:0;flex:1}.city-list-panel,.city-editor-panel,.feed-config-panel{padding:10px;min-height:0;overflow:hidden}.city-admin-list{display:grid;gap:5px;overflow:auto;min-height:0;max-height:calc(100vh - 235px)}.city-admin-row{border:1px solid #dfe5e9;background:#fff;border-radius:7px;padding:8px;display:grid;grid-template-columns:38px 1fr auto;gap:7px;align-items:center;text-align:left}.city-admin-row:hover{border-color:#b7cbd8}.city-admin-row.active{border-color:#d72631;box-shadow:inset 3px 0 0 #d72631;background:#fff7f7}.city-admin-code{height:30px;border-radius:6px;background:#173b59;color:#fff;display:grid;place-items:center;font-size:7px;font-weight:1000;text-transform:uppercase}.city-admin-row b{display:block;font-size:8px}.city-admin-row span{display:block;font-size:6.2px;color:#82909a;margin-top:2px}.city-admin-row i{width:7px;height:7px;border-radius:50%;background:#8c99a2}.city-admin-row i.live{background:#39b55a}.city-form{display:grid;gap:8px}.city-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.city-form-grid label,.feed-provider-row label,.feed-config-grid label,.config-group>label{display:grid;gap:3px}.city-form-grid label.wide,.feed-config-grid label.wide{grid-column:1/-1}.city-form-grid label>span,.feed-provider-row label>span,.feed-config-grid label>span,.config-group>label>span{font-size:5.8px;font-weight:950;letter-spacing:.55px;color:#6d7d89}.city-form-grid input,.city-form-grid select,.feed-provider-row input,.feed-config-grid input,.config-group input,.config-group select{height:34px;border:1px solid #cbd6dd;border-radius:6px;background:#fff;padding:0 8px;font-size:8px;color:#213440;outline:none}.city-form-grid input:focus,.feed-config-grid input:focus,.config-group input:focus,.config-group select:focus{border-color:#d72631;box-shadow:0 0 0 2px #fff0f1}.city-save-row,.feed-save-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:7px;border-top:1px solid #edf0f2}.city-save-row span,.feed-import-status{font-size:6.5px;color:#71818c}.feed-config-panel{border-top:3px solid #173b59}.feed-provider-row{margin-bottom:8px}.feed-config-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px 110px;gap:7px;align-items:end}.feed-config-grid small{font-size:5.7px;color:#87939c;line-height:1.3}.feed-config-grid .feed-action{height:34px}.feed-config-grid label.wide{grid-column:1/-1}.city-data-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}.city-data-summary article{background:#f6f9fb;border:1px solid #e0e7ec;border-radius:6px;padding:6px}.city-data-summary article span{display:block;font-size:5.4px;color:#85929b;font-weight:900}.city-data-summary article b{display:block;font-size:9px;color:#1e3a4f;margin-top:2px}.city-data-summary article small{display:block;font-size:5.5px;color:#87939c;margin-top:2px}
.display-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr)) minmax(260px,.9fr);gap:8px;min-height:0;flex:1}.config-group,.display-preview-panel{padding:10px;min-height:0;overflow:auto}.config-group>label{padding:8px 0;border-bottom:1px solid #edf1f3}.config-group>label:last-child{border-bottom:0}.config-group input[type=range]{height:auto;padding:0;accent-color:#d72631}.config-group output{font-size:7px;font-weight:950;color:#173b59;justify-self:end;margin-top:-17px}.toggle-row{grid-template-columns:18px 1fr!important;align-items:start!important}.toggle-row input{width:15px;height:15px;accent-color:#d72631;margin-top:2px}.toggle-row b,.toggle-row small{display:block}.toggle-row b{font-size:7px}.toggle-row small{font-size:5.8px;color:#82909a;margin-top:2px;line-height:1.3}.config-save-message{font-size:6.5px;padding:7px;border-radius:6px;background:#f6f8fa;color:#637582}.display-preview-panel{border-top:3px solid #d72631}.display-preview-map{height:210px;position:relative;background:linear-gradient(135deg,#e7eef2,#f9fbfc);border:1px solid #d5e1e8;border-radius:8px;overflow:hidden}.preview-route-line{position:absolute;left:10%;right:10%;top:50%;height:6px;background:#1f608e;border-radius:999px;box-shadow:0 0 0 3px #fff}.preview-stop{position:absolute;top:47%;padding:3px 5px;background:#fff;border:1px solid #bfcfd9;border-radius:4px;font-size:11px;font-weight:850;color:#19364b}.preview-stop.p1{left:20%}.preview-stop.p2{right:17%}.preview-bus{position:absolute;left:48%;top:28%;background:#ffd43b;border-radius:5px;padding:5px 8px;font-size:9px;font-weight:900;box-shadow:0 4px 10px rgba(0,0,0,.14)}.display-preview-panel>p{font-size:6px;color:#7f8e98}.branding-admin-single{height:100%;display:grid;grid-template-columns:minmax(480px,760px);justify-content:center;align-items:start}.branding-admin-single .branding-admin-panel{min-height:0}
@media(max-width:1450px){.city-admin-layout{grid-template-columns:230px minmax(320px,.8fr) minmax(360px,1.15fr)}.display-admin-grid{grid-template-columns:1fr 1fr}.display-preview-panel{grid-column:1/-1}.city-data-summary{grid-template-columns:1fr 1fr}}
/* PRIOR ENTERPRISE ADMIN FOUNDATION */

.fullscreen-button{height:30px;border:1px solid #ccd7de;background:#fff;border-radius:999px;padding:0 9px;display:flex;align-items:center;gap:5px;color:#314858;font-size:6.2px;font-weight:950;letter-spacing:.35px;white-space:nowrap}
.install-app-button{height:30px;border:1px solid #b9d6c2;background:#edf9f0;border-radius:999px;padding:0 9px;display:flex;align-items:center;gap:5px;color:#1e6f38;font-size:6.2px;font-weight:950;letter-spacing:.35px;white-space:nowrap;cursor:pointer}.install-app-button:hover{background:#1e6f38;color:#fff;border-color:#1e6f38}.install-app-button span{font-size:11px;line-height:1}.install-app-button b{font-size:6.2px}.install-app-button[hidden]{display:none!important}
.fullscreen-button:hover,.fullscreen-button.active{background:#173b59;color:#fff;border-color:#173b59}.fullscreen-icon{font-size:12px;line-height:1}.fullscreen-button b{font-size:6.2px}
html.occ-fullscreen .app-shell{grid-template-columns:1fr!important}html.occ-fullscreen .sidebar{display:none!important}html.occ-fullscreen .topbar{height:48px!important;padding:0 10px!important}html.occ-fullscreen .workspace{height:calc(100vh - 48px)!important;padding:6px 7px 7px!important}html.occ-fullscreen .live-page{gap:5px!important}html.occ-fullscreen .panel{border-radius:7px!important}html.occ-fullscreen .top-title h1{font-size:14px!important}html.occ-fullscreen .build-badge{display:none!important}

.feed-config-panel{overflow:auto!important}.schedule-config-block{margin-top:10px;padding-top:9px;border-top:2px solid #d9e4eb}.schedule-config-block .section-head p:not(.eyebrow){max-width:620px}.schedule-config-grid{display:grid;grid-template-columns:minmax(150px,1fr) 150px 140px 140px;gap:7px;align-items:end}.schedule-config-grid label{display:grid;gap:3px}.schedule-config-grid label.wide{grid-column:1/-1}.schedule-config-grid label>span{font-size:5.8px;font-weight:950;letter-spacing:.55px;color:#6d7d89}.schedule-config-grid input,.schedule-config-grid select{height:34px;border:1px solid #cbd6dd;border-radius:6px;background:#fff;padding:0 8px;font-size:8px;color:#213440;outline:none}.schedule-config-grid input:focus,.schedule-config-grid select:focus{border-color:#d72631;box-shadow:0 0 0 2px #fff0f1}.schedule-config-grid small{font-size:5.7px;color:#87939c;line-height:1.3}.schedule-actions{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:8px;padding-top:7px;border-top:1px solid #edf0f2}.template-link{font-size:5.9px;font-weight:950;color:#1b5d8f;text-decoration:none;border:1px solid #cbdbe6;border-radius:6px;padding:7px 8px;background:#f7fbfd}.template-link:hover{background:#edf6fb}.schedule-foundation-note{margin-top:7px;border-left:3px solid #173b59;background:#f5f9fc;border-radius:5px;padding:6px 7px}.schedule-foundation-note b,.schedule-foundation-note span{display:block}.schedule-foundation-note b{font-size:6.1px;color:#173b59;letter-spacing:.45px}.schedule-foundation-note span{font-size:5.8px;color:#73838e;margin-top:2px;line-height:1.35}
.health-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
@media(max-width:1500px){.schedule-config-grid{grid-template-columns:1fr 140px 130px 130px}.health-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:1000px){.fullscreen-button b{display:none}.schedule-config-grid{grid-template-columns:1fr 1fr}.schedule-config-grid label.wide{grid-column:1/-1}.schedule-actions{grid-template-columns:1fr auto}.schedule-actions .feed-import-status{grid-column:1/-1;grid-row:2}.health-grid{grid-template-columns:1fr 1fr!important}}



.operational-avl{background:#f4f6f8!important;border-top:1px solid #dce3e8!important}
.operational-avl:before{display:none!important;background:none!important}
.avl-watermark{display:none!important}
.lane.top{border-bottom:1px solid #dce3e8!important}
.lane-rail{box-shadow:none!important;background:#244e6e!important}
.lane.bottom .lane-rail{background:#303b44!important}
.stop-stem{background:#b5c1c9!important}
.stop-name{writing-mode:horizontal-tb!important;text-orientation:mixed!important;width:58px!important;max-width:58px!important;height:auto!important;overflow:hidden!important;text-overflow:clip!important;white-space:nowrap!important;line-height:1!important;letter-spacing:.05px!important;font-weight:850!important;color:#233744!important}
.lane.top .stop-name{top:11px!important;left:7px!important;transform:rotate(-90deg)!important;transform-origin:0 0!important}
.lane.bottom .stop-name{bottom:11px!important;left:7px!important;right:auto!important;transform:rotate(90deg)!important;transform-origin:0 100%!important}
.stop-node.key .stop-name{color:#102c40!important;font-weight:950!important}
.stop-node.terminal .stop-name{color:#a71f29!important}
.lane-empty span{background:#fff!important;border:1px solid #dfe5e9!important;box-shadow:none!important}
.operational-stop-label{background:rgba(255,255,255,.96)!important;border:1px solid #cfd8df!important;border-radius:4px!important;box-shadow:0 1px 4px rgba(20,40,55,.12)!important;color:#1f3443!important;font-weight:800!important}
.operational-stop-label:before{display:none!important}
.stop-popup b,.stop-popup small{display:block}.stop-popup small{margin-top:3px;color:#687781;font-size:10px}

/* AVL PLATFORM V0.13.12 BUILD MARKER — DEPLOYMENT ACCEPTANCE FIX */

/* ===== AVL PLATFORM V0.13.12 — GTFS-distance corridor board ===== */
:root{--corridor-navy:#0f2d55;--corridor-blue:#1769b0;--corridor-line:#d8e1ea;--corridor-soft:#f7faff;--corridor-pair:#edf6ff}
.live-page{grid-template-rows:auto var(--avl-board-height) minmax(0,1fr)!important;gap:8px!important}
.ops-toolbar{grid-template-columns:1fr!important;gap:7px!important}
.route-control{grid-template-columns:50px minmax(220px,1fr) 180px minmax(220px,.85fr) 118px 92px!important;padding:8px 10px!important;border-radius:11px!important;box-shadow:none!important}
.route-badge{height:38px!important;border-radius:8px!important;font-size:14px!important}
.route-control select,.route-control input{height:38px!important;font-size:10px!important;border-radius:8px!important}.route-control .button{height:38px!important;border-radius:8px!important;font-size:7.4px!important}
.ops-kpis{grid-template-columns:repeat(7,minmax(0,1fr))!important;border-radius:11px!important;box-shadow:none!important;min-height:64px!important}
.ops-kpis article{padding:8px 11px!important;min-width:0!important}.ops-kpis article:before{display:none!important}.ops-kpis span{font-size:6.5px!important;color:#637488!important}.ops-kpis strong{font-size:17px!important;color:#0e2238!important}.ops-kpis small{font-size:5.8px!important;color:#8a98a7!important;margin-top:2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.avl-board.avl-command-board{height:var(--avl-board-height)!important;min-height:var(--avl-board-height)!important;max-height:var(--avl-board-height)!important;border:1px solid #d7e0e9!important;border-radius:12px!important;box-shadow:none!important;background:#fff!important;display:block!important;overflow:hidden!important}
.distance-avl{height:100%;display:grid;grid-template-rows:38px minmax(0,1fr);background:#fff;color:#102235}
.distance-avl-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 14px 4px;border-bottom:1px solid #eef2f6;background:#fff}
.gtfs-alignment-note{display:flex;align-items:center;gap:7px;min-width:0;font-size:6.7px;color:#5c6d7f;white-space:nowrap}.gtfs-alignment-note>i{width:14px;height:14px;border:1px solid #8da2b8;border-radius:50%;font-style:normal;font-size:8px;font-weight:900;display:grid;place-items:center;color:#315c86;flex:0 0 auto}.gtfs-alignment-note span{overflow:hidden;text-overflow:ellipsis}.gtfs-alignment-note b{color:#1769b0;font-size:6.5px;letter-spacing:.15px;flex:0 0 auto}
.distance-avl-legend{display:flex;gap:14px;align-items:center;flex:0 0 auto}.distance-avl-legend span{display:flex;align-items:center;gap:5px;font-size:6.4px;font-weight:850;color:#607284;white-space:nowrap}.distance-avl-legend i{display:inline-block;width:15px;height:7px;border-radius:2px}.distance-avl-legend i.gap{background:#36b34a}.distance-avl-legend i.good{background:#f5c400}.distance-avl-legend i.close{background:#e3272d}.distance-avl-legend i.stale{background:#aab5c1}
.distance-avl-body{position:relative;display:grid;grid-template-rows:1fr 1fr;min-height:0;padding:0 12px 4px 0;background:#fff}.distance-avl.single .distance-avl-body{grid-template-rows:1fr}.corridor-guide-layer{position:absolute;left:122px;right:22px;top:0;bottom:0;pointer-events:none;z-index:1}.corridor-pair-guide{position:absolute;top:28px;bottom:27px;border-left:1px dashed #c8d9e9;opacity:.9}.corridor-lane{display:grid;grid-template-columns:122px minmax(0,1fr);min-height:0;position:relative;z-index:2}.corridor-lane.inbound{padding-top:3px}.corridor-lane.outbound{padding-bottom:3px}
.corridor-dir{align-self:center;margin:0 12px 0 14px;background:#102c51;color:#fff;border-radius:7px;padding:7px 8px;box-shadow:0 2px 7px rgba(15,45,85,.13);min-width:0}.corridor-dir b{display:flex;gap:5px;align-items:center;font-size:7.5px;letter-spacing:.25px}.corridor-dir b em{font-style:normal;color:#8db3d7}.corridor-dir span{display:block;margin-top:3px;font-size:6.1px;color:#d6e3ef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.corridor-track{position:relative;min-width:0;height:100%;margin-right:10px}.corridor-rail{position:absolute;left:0;right:0;height:2px;background:#0f2d55;z-index:2}.inbound .corridor-rail{top:39%}.outbound .corridor-rail{top:34%}.corridor-rail:before,.corridor-rail:after{content:"";position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:#0f2d55}.corridor-rail:before{left:-1px}.corridor-rail:after{right:-1px}
.corridor-stop{position:absolute;transform:translateX(-50%);z-index:5}.inbound .corridor-stop{top:calc(39% - 4px)}.outbound .corridor-stop{top:calc(34% - 4px)}.corridor-stop-dot{display:block;width:9px;height:9px;border-radius:50%;background:#0f2d55;border:1px solid #0f2d55;box-shadow:0 0 0 2px #fff}.corridor-stop.terminal .corridor-stop-dot{width:11px;height:11px;margin:-1px 0 0 -1px;background:#d72631;border-color:#d72631}.corridor-stop.paired .corridor-stop-dot{background:#124d83;border-color:#124d83}.corridor-stop.in-section .corridor-stop-dot{box-shadow:0 0 0 4px rgba(215,38,49,.12)}.corridor-stop.section-end .corridor-stop-dot{background:#d72631;border-color:#d72631}
.corridor-stop-copy{position:absolute;left:50%;transform:translateX(-50%);text-align:center;width:86px;line-height:1.04;color:#152d46;pointer-events:none}.inbound .corridor-stop-copy{bottom:12px}.outbound .corridor-stop-copy{top:13px}.corridor-stop-copy b{display:block;font-size:var(--avl-stop-label-px);font-weight:900;white-space:normal;max-height:24px;overflow:hidden}.corridor-stop-copy small{display:block;margin-top:3px;font-size:5.9px;color:#5e7590;font-variant-numeric:tabular-nums}.corridor-stop.terminal .corridor-stop-copy b{color:#9c1d27}.corridor-stop.paired .corridor-stop-copy b{color:#0d58a0}
.corridor-section-band{position:absolute;height:8px;background:rgba(215,38,49,.13);border:1px solid rgba(215,38,49,.22);border-radius:99px;z-index:1}.inbound .corridor-section-band{top:calc(39% - 3px)}.outbound .corridor-section-band{top:calc(34% - 3px)}
.corridor-bus{position:absolute;transform:translateX(-50%) scale(var(--avl-bus-scale));transform-origin:center;z-index:12;width:58px;min-height:39px;border:0;border-radius:4px;padding:4px 8px 4px 7px;text-align:left;line-height:1.03;clip-path:polygon(0 0,80% 0,100% 50%,80% 100%,0 100%,0 0);box-shadow:0 2px 6px rgba(14,28,42,.12);color:#111}.inbound .corridor-bus{top:47%}.outbound .corridor-bus{top:45%}.corridor-bus b,.corridor-bus span,.corridor-bus small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.corridor-bus b{font-size:7.2px;font-weight:1000}.corridor-bus span{font-size:5.8px;font-weight:800;margin-top:1px}.corridor-bus small{font-size:5.7px;margin-top:2px}.corridor-bus.good{background:#f3c900}.corridor-bus.close{background:#ea2d32;color:#fff}.corridor-bus.gap{background:#3db84e;color:#082d10}.corridor-bus.stale,.corridor-bus.neutral{background:#aeb8c4;color:#1b2732}.corridor-bus.offroute{outline:2px solid #f08028;outline-offset:1px}
.corridor-empty{position:absolute;left:50%;transform:translateX(-50%);font-size:6px;font-weight:850;letter-spacing:.3px;color:#8493a2;background:#f8fafc;border:1px solid #e1e7ed;border-radius:999px;padding:4px 8px;white-space:nowrap}.inbound .corridor-empty{top:50%}.outbound .corridor-empty{top:48%}
.distance-avl.single .corridor-lane{grid-row:1/-1}.distance-avl.single .corridor-track{height:100%}.distance-avl.single .inbound .corridor-rail,.distance-avl.single .outbound .corridor-rail{top:42%}.distance-avl.single .inbound .corridor-stop,.distance-avl.single .outbound .corridor-stop{top:calc(42% - 4px)}.distance-avl.single .inbound .corridor-bus,.distance-avl.single .outbound .corridor-bus{top:52%}
.live-bottom-dock{grid-template-columns:minmax(0,1fr) 260px!important;gap:8px!important}.map-command-card{border-top:0!important;padding:8px!important}.map-command-card .section-head h3{font-size:11px!important}.attention-card{border-top:0!important}.map-surface{border:1px solid #d7e0e9!important;background:#f5f8fb!important}
html.occ-fullscreen .live-page{grid-template-rows:auto var(--avl-board-height) minmax(0,1fr)!important}
@media(max-width:1350px){.route-control{grid-template-columns:48px minmax(190px,1fr) 150px minmax(160px,.7fr) 102px 78px!important}.ops-kpis{grid-template-columns:repeat(7,minmax(92px,1fr))!important;overflow-x:auto!important}.corridor-guide-layer{left:112px}.corridor-lane{grid-template-columns:112px minmax(0,1fr)}.corridor-stop-copy{width:72px}.distance-avl-legend{gap:8px}.gtfs-alignment-note span{display:none}}

/* AVL PLATFORM V0.13.12 BUILD MARKER — GTFS DISTANCE ALIGNED CORRIDOR */

/* AVL PLATFORM V0.13.12 — LIVE OPERATIONS FOUNDATION */
.shortfall-tag{display:inline-block;margin-left:3px;padding:2px 4px;border-radius:999px;background:#ffeaec;color:#a32933;font-size:5.8px;font-weight:950}

/* AVL PLATFORM V0.13.12 — readable stop labels + road traffic overlay */
.inbound .corridor-stop-copy{bottom:calc(12px + (var(--label-tier,0) * 18px))}
.outbound .corridor-stop-copy{top:calc(13px + (var(--label-tier,0) * 18px))}
.corridor-stop-copy{width:92px;overflow:visible}
.corridor-stop-copy b{max-height:26px;text-shadow:0 0 3px #fff,0 0 3px #fff;background:rgba(255,255,255,.72);border-radius:3px;padding:0 1px}
.traffic-state{flex:0 0 auto;padding:3px 6px;border-radius:999px;border:1px solid #d8e1ea;background:#f7f9fb;color:#68798a;font-size:5.8px;font-weight:900;white-space:nowrap}.traffic-state.live{background:#edf9f0;border-color:#b8e0c1;color:#18783a}.traffic-state.degraded{background:#fff7e7;border-color:#ecd39a;color:#8a5b00}.traffic-state.offline{background:#fff0f1;border-color:#efb5ba;color:#a3232c}.traffic-state.waiting{background:#f4f7fa;color:#708090}
.corridor-traffic-band{position:absolute;left:0;right:0;height:5px;z-index:3;pointer-events:none}.inbound .corridor-traffic-band{top:calc(39% + 10px)}.outbound .corridor-traffic-band{top:calc(34% - 11px)}.corridor-traffic-band>em{position:absolute;left:2px;top:6px;font-style:normal;font-size:5px;font-weight:900;color:#76889a;letter-spacing:.15px;white-space:nowrap}.corridor-traffic-band>i{position:absolute;top:0;height:5px;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.72)}.corridor-traffic-band .traffic-normal{background:#20a052}.corridor-traffic-band .traffic-slow{background:#f0a202}.corridor-traffic-band .traffic-traffic_jam{background:#d7263d}
.traffic-map-tooltip{font-size:9px!important;font-weight:900!important;color:#1b2e42!important;border:1px solid #d8e1ea!important;box-shadow:0 2px 8px rgba(0,0,0,.10)!important}
@media(max-width:1500px){.traffic-state{display:none}.corridor-stop-copy{width:82px}}

.map-key .traffic-normal-key,.map-key .traffic-slow-key,.map-key .traffic-jam-key{width:9px!important;height:4px!important;border-radius:1px!important}.map-key .traffic-normal-key{background:#20a052!important}.map-key .traffic-slow-key{background:#f0a202!important}.map-key .traffic-jam-key{background:#d7263d!important}

/* AVL PLATFORM V0.13.12 — configured-branding-only startup */
[data-brand-logo]:not([src]),[data-brand-logo][data-brand-empty="true"]{visibility:hidden!important;opacity:0!important}

/* AVL PLATFORM V0.13.12 — TRAFFIC INTELLIGENCE + DELAY DISPLAY */
.ops-kpis{grid-template-columns:repeat(8,minmax(0,1fr))!important}
.corridor-dir-traffic{display:block;margin-top:3px;font-size:5.5px;font-weight:850;color:#ffd66b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.corridor-delay-label{position:absolute;transform:translateX(-50%);min-width:25px;padding:2px 4px;border-radius:999px;background:#fff;border:1px solid #e0c075;color:#735000;font-style:normal;font-size:5.6px;font-weight:1000;text-align:center;line-height:1;white-space:nowrap;box-shadow:0 1px 4px rgba(15,45,85,.12);z-index:8}
.inbound .corridor-delay-label{top:calc(8px + (var(--delay-tier,0) * 10px))}.outbound .corridor-delay-label{top:calc(-15px - (var(--delay-tier,0) * 10px))}
.corridor-delay-label.severity-medium{background:#fff5df;border-color:#e3a33a;color:#8b5600}.corridor-delay-label.severity-high{background:#fff0f1;border-color:#df7b83;color:#a51f2a}
.traffic-delay-map-label{display:grid;place-items:center;min-width:38px;height:17px;padding:0 5px;border-radius:999px;background:#fff;border:1px solid #d7a345;color:#815700;font-size:8px;font-weight:1000;box-shadow:0 2px 6px rgba(15,45,85,.18);white-space:nowrap}
.traffic-delay-map-label.severity-medium{background:#fff4d9;border-color:#e19a22;color:#845200}.traffic-delay-map-label.severity-high{background:#fff0f1;border-color:#d95c66;color:#a11c27}
@media(max-width:1350px){.ops-kpis{grid-template-columns:repeat(8,minmax(92px,1fr))!important}}

/* V0.13.12 AI OCC Copilot Lite */
.ai-occ-panel{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:grid;gap:7px}.ai-occ-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ai-occ-head>div{display:grid;gap:2px}.ai-occ-head span{font-size:8px;font-weight:900;letter-spacing:.13em;color:var(--muted)}.ai-occ-head b{font-size:9px;color:var(--navy)}.ai-analyse-button{padding:7px 10px!important;font-size:8px!important;background:#0b294d!important;color:#fff!important;border-color:#0b294d!important}.ai-occ-question input{width:100%;height:30px;border:1px solid var(--line);border-radius:7px;padding:0 9px;font-size:9px;background:#fff}.ai-occ-result{border:1px solid #d8e2ec;background:#f8fbfd;border-radius:8px;padding:8px;display:grid;gap:5px;min-height:44px}.ai-occ-result small{font-size:8px;color:var(--muted);line-height:1.4}.ai-occ-result .ai-severity{font-size:8px;font-weight:900;letter-spacing:.1em}.ai-occ-result .ai-severity.CRITICAL{color:#c91c2b}.ai-occ-result .ai-severity.WATCH{color:#9c6b00}.ai-occ-result .ai-severity.STABLE{color:#148348}.ai-occ-result b{font-size:10px;color:var(--navy);line-height:1.3}.ai-occ-result p{font-size:9px;line-height:1.45;margin:0;color:#334155}.ai-occ-result ul{margin:0;padding-left:14px;font-size:8px;color:#475569}.ai-occ-meta{font-size:7.5px!important;color:#718096!important}.ai-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ai-admin-grid .config-group{min-height:0}.ai-usage-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ai-usage-metrics article{border:1px solid var(--line);border-radius:8px;padding:8px;background:#fafcff}.ai-usage-metrics span{display:block;font-size:7px;font-weight:900;color:var(--muted);letter-spacing:.1em}.ai-usage-metrics strong{font-size:15px;color:var(--navy)}.ai-safety-card p,.ai-safety-card li{font-size:9px;line-height:1.5;color:#475569}.ai-safety-card ul{padding-left:18px;margin:8px 0 0}@media(max-width:1000px){.ai-admin-grid{grid-template-columns:1fr}}


/* AVL PLATFORM V0.13.12 — EXPANDABLE LIVE ROUTE MAP */
.map-expand-button{height:24px!important;min-width:84px!important;padding:0 8px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;border-radius:6px!important;font-size:6.4px!important;white-space:nowrap!important;background:#fff!important;color:#173b59!important;border:1px solid #bdcad6!important;box-shadow:none!important}
.map-expand-button span{font-size:11px;line-height:1}.map-expand-button b{font-size:6.4px;letter-spacing:.04em}.map-expand-button:hover{background:#f2f7fb!important}.map-expand-button.active{background:#173b59!important;color:#fff!important;border-color:#173b59!important}
.map-command-card.map-expanded{position:fixed!important;inset:10px!important;z-index:5000!important;width:auto!important;height:auto!important;max-width:none!important;min-width:0!important;min-height:0!important;margin:0!important;padding:10px!important;border-radius:12px!important;background:#fff!important;box-shadow:0 20px 70px rgba(5,24,44,.35)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.map-command-card.map-expanded .section-head{flex:0 0 auto;margin-bottom:8px!important;align-items:center!important}.map-command-card.map-expanded .section-head h3{font-size:14px!important}.map-command-card.map-expanded .eyebrow{font-size:7px!important}.map-command-card.map-expanded .map-surface{flex:1 1 auto!important;height:auto!important;min-height:0!important;border-radius:9px!important}.map-command-card.map-expanded .map-key{font-size:7px!important}.map-command-card.map-expanded .pill{font-size:7px!important}.map-command-card.map-expanded .map-expand-button{height:30px!important;min-width:104px!important}.map-command-card.map-expanded .map-expand-button b{font-size:7px!important}
html.live-map-expanded,html.live-map-expanded body{overflow:hidden!important}.live-map-expand-backdrop{display:none}
@media(max-width:820px){.map-head-actions{flex-wrap:wrap!important}.map-expand-button{min-width:74px!important}.map-command-card.map-expanded{inset:6px!important;padding:8px!important;border-radius:9px!important}.map-command-card.map-expanded .map-key{display:none!important}}

/* AVL PLATFORM V0.13.12 — NETWORK TRAFFIC + SERVICE RISK INTELLIGENCE */
.network-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.network-scan-button{height:30px!important;padding:0 10px!important;font-size:7px!important;white-space:nowrap!important}
.network-scan-state{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #d8e1ea;border-radius:999px;background:#f7f9fb;color:#6b7c8e;font-size:6.2px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.network-scan-state.scanning{background:#fff7e7;border-color:#ecd39a;color:#875a00}.network-scan-state.ready{background:#edf9f0;border-color:#b8e0c1;color:#18783a}
.network-traffic-pair{display:inline-block;min-width:68px;color:#7b8794;font-size:7px;font-weight:900;white-space:nowrap}.network-traffic-pair.ready{color:#173b59}
.network-worst-traffic{display:block;max-width:150px;font-size:6.5px;font-weight:800;line-height:1.25;color:#536779;white-space:normal}
.network-row-actions{display:flex;gap:4px;flex-wrap:wrap}.network-row-actions .link-button{white-space:nowrap}
.network-table{min-width:1380px}.network-table th:nth-child(8),.network-table td:nth-child(8){min-width:150px}
@media(max-width:1050px){.network-head-actions{justify-content:flex-start}.network-scan-state{order:3}.network-table{min-width:1280px}}

/* AVL PLATFORM V0.13.12 — THREE-ROUTE OCC MONITOR */
.triple-monitor-page{overflow:auto;padding-bottom:10px}
.triple-monitor-head{padding-bottom:8px}.triple-monitor-status{align-self:center;border:1px solid #cfdbe7;border-radius:999px;padding:8px 12px;font-size:8px;font-weight:900;letter-spacing:.45px;color:#587087;background:#f7fafc;white-space:nowrap}.triple-monitor-status.busy{color:#9a6500;background:#fff7df;border-color:#f0d18a}.triple-monitor-status.ready{color:#126d39;background:#eaf8ef;border-color:#b9dfc7}
.triple-route-selector-panel{padding:8px 10px;margin-bottom:8px}.triple-route-selectors{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) 132px;gap:8px;align-items:end}.triple-route-selectors label{display:grid;gap:4px}.triple-route-selectors label>span{font-size:7px;font-weight:900;letter-spacing:.5px;color:#667b8f}.triple-route-selectors select{height:38px;border:1px solid #c8d4df;border-radius:8px;padding:0 10px;background:#fff;color:#102235;font-size:10px;font-weight:700}
.triple-route-stack{display:grid;gap:8px;min-height:0}.triple-route-card{overflow:hidden;padding:0;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.triple-route-card:hover{border-color:#8fb1cf;box-shadow:0 4px 15px rgba(15,45,85,.10)}.triple-route-card.loading{cursor:default}.triple-card-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 10px;border-bottom:1px solid #e5edf4;background:#fbfdff}.triple-route-title{display:flex;align-items:center;gap:8px;min-width:0}.triple-route-title .route-lozenge{min-width:42px;height:31px;border-radius:8px;display:grid;place-items:center;background:#d92131;color:#fff;font-size:12px;font-weight:900;box-shadow:0 4px 10px rgba(217,33,49,.15)}.triple-route-title>div{min-width:0}.triple-route-title b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.triple-route-title small{display:block;font-size:6.5px;color:#75879a;margin-top:2px}.triple-card-metrics{display:flex;align-items:center;gap:12px;flex:0 0 auto}.triple-card-metrics>span{display:grid;gap:1px;min-width:58px}.triple-card-metrics small{font-size:5.8px;color:#718599;font-weight:850;letter-spacing:.35px}.triple-card-metrics b{font-size:9px;color:#18324d}.triple-card-metrics b.red{color:#c91f2c}.triple-card-metrics b.amber{color:#a36d00}.triple-card-metrics b.green{color:#17783e}.triple-card-metrics b.thin{color:#75879a}.triple-map-button{height:30px!important;padding:0 12px!important;font-size:7.5px!important;position:relative;z-index:8}.triple-monitor-board{height:188px;background:#fff}.triple-monitor-board .distance-avl{grid-template-rows:minmax(0,1fr)}.triple-monitor-board .distance-avl-head{display:none}.triple-monitor-board .distance-avl-body{padding-bottom:0}.triple-monitor-board .corridor-dir{margin-left:9px;margin-right:8px;padding:5px 6px}.triple-monitor-board .corridor-lane{grid-template-columns:108px minmax(0,1fr)}.triple-monitor-board .corridor-guide-layer{left:108px}.triple-monitor-board .corridor-dir b{font-size:6.7px}.triple-monitor-board .corridor-dir span{font-size:5.4px}.triple-monitor-board .corridor-dir-traffic{font-size:5px}.triple-monitor-board .corridor-stop-copy{font-size:var(--avl-stop-label-px);transform:translateX(-50%) scale(.9);transform-origin:center}.triple-monitor-board .corridor-bus{transform:translateX(-50%) scale(calc(var(--avl-bus-scale,1) * .88))}.triple-card-loading,.triple-monitor-empty{min-height:150px;display:grid;place-items:center;color:#718599;font-size:10px;font-weight:800;background:#f8fbfd;border:1px dashed #cbd8e4;border-radius:10px}
@media(max-width:1250px){.triple-route-selectors{grid-template-columns:repeat(3,minmax(150px,1fr)) 110px}.triple-card-metrics{gap:7px}.triple-card-metrics>span{min-width:48px}.triple-monitor-board{height:180px}}
