:root{color-scheme:dark;--bg:#07111d;--panel:#0b1827;--panel2:#102235;--panel3:#15293c;--line:#273c4c;--text:#ebf5fe;--muted:#8da7b7;--green:#51e3b3;--blue:#62b8ff;--amber:#ffd06a;--red:#ff6c80;--darkshadow:0 24px 50px rgba(1,6,12,.45)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.app{height:100dvh;display:grid;grid-template-columns:minmax(350px,418px) minmax(0,1fr);overflow:hidden}.sidebar{min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:linear-gradient(180deg,#0d1c2c 0%,#081421 48%);z-index:800}.sidebarHead{padding:22px 20px 14px}.brandbar,.brandidentity,.metrics,.statusBand,.searchBox,.navTabs,.listBar,.filterline,.mapHead,.mapActions,.mapBottom,.mapLegend,.mapWarning,.cardMain,.cardSide,.rowActions,.detailBar,.detailTitle,.arrivalRow,.alertRow,.notificationControls,.photoGrid{display:flex;align-items:center}.brandbar{justify-content:space-between}.brandidentity{gap:12px;min-width:0}.brandicon{display:grid;place-items:center;border:1px solid #4a967c;width:46px;height:46px;border-radius:14px;background:#123c3e;color:var(--green);box-shadow:0 0 28px #3fe5b11a}.brandicon svg{width:28px;height:28px}.brandidentity h1{font-size:23px;line-height:1.1;margin:0;letter-spacing:-.8px}.brandidentity h1 span{color:var(--green)}.brandidentity h1 small{font-size:11px;letter-spacing:1.2px;color:#d6e7f1}.brandidentity p{color:var(--muted);font-size:9px;letter-spacing:1.75px;margin:7px 0 0;font-weight:780}.version{color:#7e9caf;border:1px solid var(--line);padding:5px 7px;border-radius:6px;font-size:10px;font-weight:800}.metrics{gap:8px;margin-top:23px}.metrics>div{flex:1;min-width:0;background:#13263a;border:1px solid #30475b;border-radius:13px;padding:12px 10px 10px;display:flex;flex-direction:column;gap:4px}.metrics strong{font-size:25px;font-variant-numeric:tabular-nums;line-height:1}.metrics span{font-size:9px;letter-spacing:1px;font-weight:800;color:#88a7b8}.statusBand{justify-content:space-between;border-top:1px solid #21354a;border-bottom:1px solid #21354a;padding:11px 20px;background:#0b1928}.stateChip{font-size:10px;letter-spacing:.9px;font-weight:800;display:inline-flex;align-items:center;gap:9px;border:1px solid #886c35;border-radius:50px;padding:7px 12px}.stateChip.amber{background:#3a2b1a;color:var(--amber)}.stateChip.green{color:var(--green);border-color:#236a58;background:#153b35}.stateChip .pulse{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px currentColor22}.timeNow{color:#b8cbd8;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.searchBlock{padding:13px 18px 0}.searchBox{height:47px;background:#132338;border:1px solid #37536a;border-radius:12px;padding:0 13px;color:#95b2c9;gap:10px}.searchBox svg{width:18px}.searchBox:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #4ee2b021}.searchBox input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:white;font-size:14px}.searchBox input::placeholder{color:#899eae}.searchBox button{background:none;border:0;font-size:22px;color:#7f9bac}.navTabs{overflow-x:auto;flex-shrink:0;gap:5px;padding:14px 18px 12px;border-bottom:1px solid #213445;scrollbar-width:none}.navTabs::-webkit-scrollbar{display:none}.navTabs button{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#9ab1c3;border:1px solid #2e4759;background:#102234;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:740}.navTabs button svg{width:15px;height:15px}.navTabs button.active{background:#153c39;color:#91ffe0;border-color:#58d8ba}.listBar{justify-content:space-between;padding:15px 20px 9px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#79a5b6;text-transform:uppercase}.listBar h2{font-size:16px;letter-spacing:-.2px;margin:5px 0 0}.listCount{font-variant-numeric:tabular-nums;color:#bed5e2;padding:6px 10px;border:1px solid #2c4152;background:#182a3e;border-radius:20px;font-size:12px}.filterline{justify-content:space-between;gap:10px;padding:0 19px 12px;font-size:11px;color:#9bb3c4}.filterline label{display:flex;align-items:center;gap:4px}.filterline input{accent-color:#53d7b0}.results{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:2px 13px 22px;scrollbar-color:#32495d transparent;scrollbar-width:thin}.listCard{display:flex;align-items:center;gap:12px;width:100%;border:1px solid transparent;background:transparent;border-radius:14px;padding:11px 9px;margin-bottom:6px;transition:background .15s,border-color .15s}.listCard:hover,.listCard.selected{background:#132b3b;border-color:#355e61}.cardMain{gap:12px;flex:1;min-width:0;text-align:left;color:var(--text);border:0;background:none;padding:0}.badgeLine{background:#1a4947;color:#93f4d9;min-width:68px;max-width:78px;min-height:52px;display:grid;place-items:center;border-radius:12px;font-weight:800;font-size:15px;overflow-wrap:anywhere;padding:6px}.badgeLine.stop{background:#1c3653;color:#8ccafe}.badgeLine.bus{background:#164638;color:#96f2c7}.badgeLine svg{width:23px;height:23px}.cardText{min-width:0;flex:1}.cardText strong{display:block;font-size:13px;font-weight:720;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardText small{display:block;margin-top:5px;color:#87a1b2;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cardText em{display:block;margin-top:5px;font-size:10px;font-style:normal;color:#7fa4b0}.favBtn{background:none;border:0;color:#718e9c;padding:6px;display:grid;place-items:center}.favBtn svg{width:21px;height:21px}.favBtn.isFav{color:#ffdb87}.favBtn.isFav svg{fill:currentColor}.moreBtn,.outlineBtn,.primaryBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:11px 14px;font-weight:750;font-size:12px}.moreBtn{width:100%;background:#173142;color:#99f2d6;border:1px solid #386657;margin:10px 0}.outlineBtn{border:1px solid #345466;color:#c4e4ef;background:#142a3d}.primaryBtn{border:1px solid #319c79;background:#157155;color:white}.primaryBtn svg,.outlineBtn svg{width:16px;height:16px}.sideNote{color:#a0b7c6;font-size:12px;line-height:1.5}.infoPill{border-radius:99px;padding:5px 9px;background:#24384a;color:#b5d3e6;font-size:10px;font-weight:760;white-space:nowrap}.infoPill.blue{color:#91cbff;background:#183954}.infoPill.amber{color:#ffd17d;background:#4d3922}.infoPill.green{color:#8dedd0;background:#1b463c}.infoPill.red{color:#ff9fad;background:#4c2634}.emptyState{background:#122438;border:1px dashed #385168;border-radius:15px;margin:10px 7px;padding:23px 19px;color:#a9c1d1;line-height:1.55;font-size:13px}.emptyState h3{margin:0 0 8px;color:#eff8ff;font-size:16px}.emptyState p{margin:0 0 11px}.sidebarFooter{background:#081421;border-top:1px solid #203548;padding:10px 18px 12px;color:#7193a8;font-size:10px;line-height:1.75}.sidebarFooter #apiHealth{color:#9dbccd}.mapWrap{position:relative;min-width:0;min-height:0;background:#12212c;overflow:hidden}#map{position:absolute;inset:0;z-index:0;background:#162430}.leaflet-container{font:inherit!important;background:#122438!important}.leaflet-tile-pane.isDark{filter:invert(90%) hue-rotate(180deg) saturate(.7) brightness(.69) contrast(1.11)}.leaflet-control-attribution{font-size:10px!important;background:#0a1a28de!important;color:#bcd0d8!important}.leaflet-control-zoom{border:1px solid #4a6875!important;box-shadow:0 5px 24px #0005!important;overflow:hidden;border-radius:10px!important}.leaflet-control-zoom a{background:#11263b!important;color:#dfedf7!important;border-bottom-color:#4b6779!important}.mapTop{pointer-events:none;position:absolute;z-index:500;top:18px;left:18px;right:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mapHead{background:#0b1a2cde;backdrop-filter:blur(16px);border:1px solid #436176;border-radius:17px;padding:13px 17px;box-shadow:var(--darkshadow);max-width:320px;display:flex;flex-direction:column;gap:5px}.mapLabel{display:flex;align-items:center;gap:7px;color:#abc4d7;font-size:9px;font-weight:800;letter-spacing:1.65px}.mapLabelDot{width:8px;height:8px;background:var(--green);box-shadow:0 0 10px var(--green);border-radius:50%}.mapHead strong{font-size:21px;letter-spacing:-.4px}.mapHead small{color:#a2c1d0;font-size:11px}.mapActions{pointer-events:auto;gap:7px}.mapActions button{width:39px;height:42px;display:grid;place-items:center;border:1px solid #4c6d80;border-radius:12px;background:#0c1c2de8;color:#e7f4ff;backdrop-filter:blur(8px)}.mapActions button svg{width:18px;height:18px}.mapActions button:active,.mapActions button.selected{color:var(--green);border-color:var(--green)}.mapBottom{pointer-events:none;position:absolute;z-index:400;bottom:30px;left:18px;right:18px;flex-direction:column;align-items:flex-start;gap:8px}.mapLegend{flex-wrap:wrap;gap:10px;background:#071521eb;border:1px solid #3a5265;border-radius:11px;padding:9px 13px;font-size:10px;color:#a2b9c7}.mapLegend span{display:inline-flex;align-items:center;gap:5px}.dot{width:9px;height:9px;display:inline-block;border-radius:50%;background:currentColor}.dot.green{color:var(--green)}.dot.blue{color:var(--blue)}.dot.amber{color:var(--amber)}.dot.red{color:var(--red)}.mapWarning{pointer-events:auto;max-width:650px;gap:10px;border-radius:12px;background:#0d2134ec;border:1px solid #3d5a6f;padding:11px 13px;backdrop-filter:blur(9px);box-shadow:0 10px 22px #0005;font-size:11px;color:#bcd1dd}.mapWarning svg{color:var(--amber);width:18px}.mapWarning span{flex:1}.mapWarning a{font-weight:800;white-space:nowrap;color:#82f2d0}.mapWarning.live svg{color:var(--green)}.detail{z-index:950;position:absolute;top:104px;right:18px;bottom:92px;width:min(410px,calc(100% - 36px));background:#0b1a2bf8;border:1px solid #456074;border-radius:19px;box-shadow:var(--darkshadow);overflow:auto;padding:23px;backdrop-filter:blur(12px)}.detailGrip{display:none}.detail h2{font-size:27px;line-height:1.15;letter-spacing:-.5px;margin:8px 35px 7px 0}.detail p{color:#b0c6d3;font-size:13px;line-height:1.5}.closeDetail{border:1px solid #415c6e;background:#172b40;border-radius:50%;height:32px;width:32px;position:absolute;top:15px;right:15px;display:grid;place-items:center;color:#def1f9}.closeDetail svg{width:17px}.detailTop{display:flex;align-items:center;gap:12px}.detailTop .badgeLine{font-size:17px}.detailActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.detailBlock{margin:18px 0 0;padding:13px;background:#12273a;border:1px solid #2e495d;border-radius:13px}.detailBlockTitle{font-size:10px;letter-spacing:1.5px;color:#9dbccc;font-weight:850;margin:0 0 10px}.detailKV{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detailKV div{display:flex;flex-direction:column;gap:4px}.detailKV small{color:#83a0b1;font-size:10px}.detailKV b{font-size:12px}.departureList{display:flex;flex-direction:column;gap:6px;margin-top:9px}.arrivalRow{gap:8px;border-bottom:1px solid #2b4253;padding:10px 0;font-size:12px}.arrivalRow:last-child{border-bottom:0}.arrivalLine{border-radius:6px;padding:5px 7px;background:#174439;color:#91f3d1;font-weight:800;min-width:51px;text-align:center}.arrivalRow .arrivalDesc{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.arrivalDesc strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arrivalDesc small{font-size:10px;color:#88a5b9}.arrivalTime{font-size:15px;letter-spacing:-.4px;color:#ebfaff;font-weight:850;font-variant-numeric:tabular-nums}.arrivalAlarm{border:1px solid #3b6071;background:#173143;border-radius:8px;color:#83d3f3;display:grid;place-items:center;width:33px;height:33px}.arrivalAlarm svg{width:17px}.statusInfo{margin-top:13px;padding:10px 12px;background:#3d311d;border:1px solid #6d5328;border-radius:10px;color:#ffe3a1;font-size:12px;line-height:1.5}.statusInfo.blue{border-color:#2a5b7c;color:#addfff;background:#14324a}.stopPin{width:13px;height:13px;background:#68bafe;border:2px solid white;border-radius:50%;box-shadow:0 0 0 4px #48a1ff38,0 3px 7px #0012}.stopPin.selected{width:16px;height:16px;background:var(--green);box-shadow:0 0 0 5px #51e3b330,0 3px 7px #0012}.busPin{width:36px;height:36px;display:grid;place-items:center;border-radius:13px;border:2px solid #d7fff1;color:#06201d;background:#51e3b3;box-shadow:0 4px 18px #0009,0 0 0 5px #4cf4b436}.busPin svg{width:25px;height:25px}.photoGrid{flex-direction:column;align-items:stretch;gap:13px;padding:3px 7px}.photoCard{overflow:hidden;background:#14283b;border-radius:15px;border:1px solid #2b4354}.photoCard img{width:100%;height:148px;object-fit:cover;display:block;background:#18293b}.photoCaption{padding:12px}.photoCaption strong{display:block;font-size:13px}.photoCaption small{display:block;margin-top:5px;color:#8fa8b8;line-height:1.5;font-size:10px}.photoCaption a{font-size:11px}.alertCard{padding:14px;background:#142638;border:1px solid #344e5f;border-radius:13px;margin:6px 3px 11px}.alertCard strong{display:block;font-size:13px}.alertCard p{font-size:11px;color:#a4bdc8;line-height:1.5;margin:6px 0}.alertRow{justify-content:space-between;gap:6px;border-bottom:1px solid #304458;padding:10px 0}.alertRow small{font-size:10px;color:#9db5c4}.alertRow button{border:1px solid #644653;background:#3c2637;color:#ffacbb;border-radius:8px;padding:6px 9px;font-size:11px}.notificationControls{gap:7px;margin-top:9px;flex-wrap:wrap}.notificationControls select{background:#0c1c2e;color:#d8e9f4;border:1px solid #416071;padding:10px;border-radius:9px}.photoCredit{font-size:10px;color:#93a8b6;line-height:1.5}.toast{position:absolute;z-index:2500;left:50%;bottom:150px;transform:translateX(-50%);border:1px solid #59cfa4;background:#123c33;color:#d4fced;border-radius:12px;padding:12px 17px;max-width:min(420px,92%);text-align:center;box-shadow:0 12px 25px #0006;font-size:12px;line-height:1.4}.leaflet-bottom.leaflet-right{bottom:90px}@media(min-width:1100px){.mapActions button{width:43px;height:43px}.mapBottom{bottom:28px}}@media(max-width:760px){.app{display:flex;flex-direction:column}.mapWrap{order:0;flex:0 0 43dvh;height:43dvh;min-height:270px}.sidebar{order:1;flex:1;border-right:0;border-top:1px solid #365267;min-height:0;border-radius:18px 18px 0 0;margin-top:-10px;position:relative}.sidebarHead{padding:11px 15px 8px}.brandicon{width:36px;height:36px;border-radius:11px}.brandicon svg{width:23px;height:23px}.brandidentity h1{font-size:20px}.brandidentity h1 small{font-size:9px}.brandidentity p{font-size:8px;margin-top:4px}.metrics{margin-top:10px;gap:6px}.metrics>div{padding:8px 8px 7px;border-radius:9px}.metrics strong{font-size:18px}.metrics span{font-size:8px}.statusBand{padding:6px 15px}.stateChip{font-size:9px;padding:5px 9px}.timeNow{font-size:11px}.searchBlock{padding:8px 13px 0}.searchBox{height:39px;border-radius:10px}.searchBox input{font-size:13px}.navTabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 13px;gap:5px;overflow:visible}.navTabs button{justify-content:center;min-width:0;font-size:11px;padding:7px 4px;border-radius:9px}.listBar{padding:8px 14px 6px}.listBar h2{font-size:14px;margin-top:2px}.eyebrow{font-size:9px}.filterline{padding:0 13px 5px;font-size:10px}.results{padding:0 9px 12px}.listCard{padding:7px 7px;margin-bottom:3px}.badgeLine{min-height:43px;min-width:58px;max-width:63px;font-size:13px}.cardText strong{font-size:12px}.cardText small{font-size:10px;margin-top:3px}.sidebarFooter{padding:8px 12px}.mapTop{top:12px;left:12px;right:12px}.mapHead{padding:10px 11px;border-radius:12px;max-width:215px}.mapHead strong{font-size:16px}.mapHead small{font-size:10px}.mapLabel{font-size:8px;letter-spacing:.8px}.mapActions{gap:5px}.mapActions button{width:33px;height:35px;border-radius:9px}.mapActions button svg{width:16px}.mapBottom{left:10px;right:10px;bottom:24px;gap:6px}.mapLegend{font-size:9px;padding:7px 9px;gap:7px}.mapWarning{font-size:10px;padding:8px}.mapWarning svg{width:15px}.leaflet-bottom.leaflet-right{bottom:79px}.leaflet-control-attribution{font-size:8px!important}.detail{position:fixed;top:auto;left:0;right:0;bottom:0;width:100%;max-height:76dvh;border-radius:18px 18px 0 0;border-bottom:0;padding:25px 17px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -18px 60px #000b;z-index:1800}.detailGrip{display:block;position:absolute;top:9px;left:calc(50% - 18px);width:36px;height:4px;border-radius:10px;background:#527084}.closeDetail{top:16px}.toast{position:fixed;bottom:80px}.photoCard img{height:130px}}@media(max-height:690px) and (max-width:760px){.mapWrap{flex-basis:40dvh;height:40dvh}.sidebarHead{padding-top:8px}.metrics{margin-top:6px}.metrics>div{padding:5px 8px}.brandidentity p{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
