:root{--accent:#c0ed89;--panel:#132934;--border:#ffffff16}body{overflow:hidden}.topbar{height:68px;position:relative;z-index:1100;background:#122832;gap:24px;padding:0 24px;border:0}.brand{font-size:22px;letter-spacing:2px}.brand-icon{width:37px;height:37px;font-size:27px;line-height:37px;border-radius:12px}.brand small{letter-spacing:1.1px;font-size:7px}.topnav{margin:0}.topnav .active{display:none}.topnav button{font-size:11px}.company-button{background:#223d35;border-color:#68866055;min-width:184px;border-radius:12px}.company-button b{font-size:17px}.save-status{font-size:9px}.avatar{font-size:18px}main{display:block;position:relative;height:calc(100dvh - 68px);min-height:0}.map-area{position:absolute;inset:0;height:100%;min-height:0;background:#bfd7df}.sidebar{position:absolute;z-index:800;left:18px;top:76px;bottom:30px;width:235px;display:none;gap:0;padding:20px 15px 12px;background:#132b35ed;backdrop-filter:blur(18px);border:1px solid #ffffff24;border-radius:18px;box-shadow:0 12px 40px #163a4235;height:auto}.lines-open .sidebar{display:flex}.sidebar>.eyebrow{display:none}.sidebar h1{font-size:21px;margin:0 0 3px}.sidebar .intro{font-size:10px;margin-bottom:16px}.sidebar .network-card{padding:12px;background:#274338;border:0;border-radius:12px}.sparkline,.network-footer,.sidebar-bottom{display:none}.network-card strong{font-size:23px;margin-top:3px}.network-card .small-label{font-size:8px;text-transform:none;letter-spacing:0}.section-title{margin:17px 0 10px}.section-title h2{font-size:11px}.primary{border-radius:9px;font-size:12px;padding:12px}.sidebar #createLine{font-size:11px}.sidebar #browseRealLines{font-size:10px;border-radius:9px}.line-list{gap:7px;margin-bottom:0}.line-card{padding:10px;border-radius:10px;background:#ffffff06;border-color:#ffffff0c}.line-card.selected{background:#b7df7b14;border-color:#b7df7b99}.line-card-head b{font-size:10px}.line-card small{margin:7px 0;font-size:8px}.line-card-stats{font-size:9px;gap:12px}.simple-close{position:absolute;top:10px;right:11px;background:#ffffff0c;border:0;border-radius:50%;width:25px;height:25px;color:#b4c9d1;font-size:20px;display:grid;place-items:center;line-height:1}.inspector{display:none;position:absolute;z-index:850;right:18px;top:76px;bottom:102px;width:300px;background:#132b35f0;backdrop-filter:blur(18px);border:1px solid #ffffff24;border-radius:18px;padding:23px 18px;height:auto;max-height:none;box-shadow:0 12px 40px #163a4235}.panel-open .inspector{display:block}.inspector>.eyebrow{font-size:8px;letter-spacing:1px}.detail-title{margin:13px 0 0;gap:9px}.detail-title .line-number{font-size:18px;border-radius:8px;padding:9px}.detail-title b{font-size:13px}.detail-title small{font-size:8px}.bus-showcase{background:radial-gradient(ellipse at center,#77948235,transparent 68%);margin:3px -7px 1px}.bus-showcase svg{width:100%;height:105px;display:block}.quick-line-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:1px 0 15px}.quick-line-stats>div{background:#ffffff05;border:1px solid #ffffff0c;border-radius:9px;padding:11px 8px;text-align:center}.quick-line-stats b{display:block;font-family:'Bondis Flecha',Manrope,sans-serif;font-size:20px;color:#d5ecbf}.quick-line-stats span{display:block;font-size:8px;color:#91abb3;margin-top:3px}.status-pill{display:none}.line-finance-card{background:#28433566;border:0;border-radius:12px;margin:0 0 16px;padding:13px}.line-finance-card b{font-size:19px}.line-finance-card>small,.line-finance-card .mood-track{display:none}.line-finance-card>button{font-size:12px;border-radius:8px;padding:12px}.inspector .control-label{font-size:11px;margin-top:15px}.simple-details{border-top:1px solid #ffffff15;margin-top:14px;padding-top:13px}.simple-details summary{color:#a6bdc6;font-size:10px;cursor:pointer;padding:3px 0}.simple-details[open] summary{color:#d6edb7;margin-bottom:10px}.simple-details .source-note{font-size:8px}.simple-details>.divider{display:none}.simple-details .metric-grid{margin:8px 0;grid-template-columns:1fr 1fr}.simple-details .metric strong{font-size:18px}.simple-details .small-help{font-size:9px}.simple-details .secondary{margin-bottom:8px}.simple-details h3{margin-top:12px}.map-heading,body[data-map-mode="2d"] .map-heading{left:282px;top:23px;background:none;box-shadow:none;border:0;padding:0;color:#254650;z-index:500}.map-heading .eyebrow{display:none}.map-heading h2,body[data-map-mode="2d"] .map-heading h2{font-size:28px;margin:0 0 5px;color:#244b53;letter-spacing:-1px;text-shadow:0 2px 6px #fff8}.map-heading h2 span{display:none}.map-subtitle{font-size:10px;color:#48737b;text-shadow:0 1px 4px #fff9}.map-subtitle .online-dot{display:none}.map-view-switch{top:22px;left:auto;right:22px;border:1px solid #ffffffa0;border-radius:13px;background:#f4fbf4e8;padding:5px;box-shadow:0 5px 18px #1b515917}.map-view-switch button{padding:9px 15px;border-radius:9px;font-size:11px}.map-view-switch .active{background:#284e56;color:white}.map-tabs{top:80px;left:282px;right:auto;background:#f8fff6dc;border:0;border-radius:11px;box-shadow:0 5px 18px #1b515917}.map-tabs button{padding:8px 13px;border-radius:8px}.map-places{top:126px;left:282px}.map-places button{font-size:10px;background:#f8fff5d9;padding:8px 12px;border:0}.city-toolbar{position:absolute;right:22px;top:80px;z-index:500;display:flex;gap:6px}.city-toolbar button,.toggle-lines{padding:10px 13px;border:1px solid #ffffff8a;border-radius:11px;background:#f4fbf4e0;color:#31555e;box-shadow:0 5px 18px #1b515917;font-size:10px;font-weight:600}.city-toolbar button.active{background:#c4e9a4}.toggle-lines{left:18px;top:22px;position:absolute;z-index:900;padding:12px 17px}.toggle-lines.active{background:#244b53;color:#eaf6dc;border-color:#315e62}.selected-line-hud{position:absolute;z-index:550;left:282px;bottom:115px;display:flex;align-items:center;gap:11px;padding:12px 15px;text-align:left;border:1px solid #ffffffbd;border-radius:14px;background:#f9fff4eb;box-shadow:0 8px 24px #1b515922;min-width:240px;color:#31555a}.selected-line-hud>span:first-child{min-width:42px;border-radius:9px;padding:9px 8px;font-size:15px;font-weight:800;text-align:center}.selected-line-hud b{font-size:12px;display:block}.selected-line-hud small{font-size:9px;display:block;color:#69808a;margin-top:4px}.selected-line-hud>em{margin-left:auto;font-size:22px;font-style:normal;color:#72928a}.citizen-widget,.citizen-widget:not(.minimized){top:auto;right:22px;bottom:115px;width:275px;border-radius:14px;background:#18353be8;border-color:#54726966;backdrop-filter:blur(14px);box-shadow:0 8px 24px #1b515922}.citizen-title{padding:11px 14px}.citizen-widget .citizen-post{padding:0 14px 13px;gap:9px}.citizen-widget .citizen-post p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:10px;line-height:1.6}.citizen-widget .citizen-post header small,.citizen-widget .citizen-post footer{display:none}.citizen-widget .citizen-post header b{font-size:10px}.panel-open .citizen-widget,.panel-open .citizen-widget:not(.minimized){right:339px;max-width:235px}.panel-open .selected-line-hud{display:none}.timebar{left:50%;right:auto;transform:translateX(-50%);bottom:29px;width:430px;height:61px;background:#14333bdc;backdrop-filter:blur(15px);border-radius:17px;border-color:#ffffff28;box-shadow:0 7px 25px #16434a25;padding:11px 16px;gap:15px}.weather{font-size:23px}.weather span{min-width:65px;font-size:10px}.weather small{display:none}.time-hint{display:none}.clock{padding-left:14px}.clock strong{font-size:22px}.playback button{font-size:11px;padding:8px}.map-controls,body[data-map-mode="2d"] .map-controls{right:22px;bottom:290px;border:1px solid #fff8;border-radius:12px;background:#f4fbf4e8;box-shadow:0 5px 18px #1b515917;z-index:550}.map-controls button{width:38px;height:36px}.panel-open .map-controls{right:335px}.map-legend{display:none}.map-note{left:18px;bottom:9px;font-size:7px;background:#fff8!important;color:#5c7880;max-width:270px;letter-spacing:0}.camera-hint{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:8px;color:#496d77;z-index:550;text-shadow:0 1px 2px #fff9}.city-credit{position:absolute;bottom:7px;right:14px;z-index:500;font-size:8px;color:#516f77;background:#ffffff80;padding:3px 7px;border-radius:5px}.city-credit a{color:inherit;text-decoration:none}.city-status{position:absolute;top:168px;left:282px;z-index:500;font-size:8px;color:#617e81;background:#ffffff80;padding:5px 8px;border-radius:6px}.city-loading{position:absolute;z-index:450;top:45%;left:50%;transform:translate(-50%,-50%);background:#173740e8;color:#e7f0dd;padding:20px 28px;border-radius:15px;font-size:13px;box-shadow:0 10px 40px #24495233}.city-loading i{display:inline-block;width:12px;height:12px;border:2px solid #b3d690;border-top-color:transparent;border-radius:50%;margin-right:9px;animation:loading-turn .8s linear infinite}@keyframes loading-turn{to{transform:rotate(360deg)}}#city3d{position:absolute;inset:0;z-index:1}#city3d canvas{display:block;width:100%;height:100%;cursor:grab}body:not([data-map-mode="3d"]) #city3d,body:not([data-map-mode="3d"]) .city-credit,body:not([data-map-mode="3d"]) .city-status,body:not([data-map-mode="3d"]) .city-loading{display:none}body[data-map-mode="3d"] #map,body[data-map-mode="3d"] #streetMap{visibility:hidden}body[data-map-mode="2d"] #map{visibility:hidden}.city-error{padding:150px 300px;color:#24434a}.build-banner{top:218px;z-index:600;left:50%;border-radius:12px;white-space:normal}.toast{z-index:1400;bottom:98px}.business-dialog{width:850px;padding:32px;border-radius:20px}.business-columns{gap:27px;grid-template-columns:250px 1fr}.upgrade-card{padding:16px;border-radius:13px}.upgrade-head b{font-size:12px}.upgrade-head small{font-size:10px}.upgrade-card p{font-size:10px}.upgrade-card button{border-radius:7px;padding:10px 6px;font-size:10px}.fare-price input{border-radius:10px}.business-heading h2{font-size:27px}.upgrade-note,.fare-panel>.source-note{font-size:9px}.business-heading p{font-size:12px}.business-columns h3{font-size:15px}.messages-dialog{border-radius:20px}.lines-open .toggle-lines{}.leaflet-control-scale{display:none!important}.city-toolbar button:disabled{opacity:.5}
.google-map-dialog{max-width:460px;border-radius:20px;padding:32px}.google-map-dialog h2{margin-bottom:12px}.google-map-dialog p{font-size:13px;line-height:1.7}.google-map-state{padding:15px;border:1px solid #b7df7b35;border-radius:10px;background:#b7df7b0b;color:#d6e8c8;font-size:12px;line-height:1.6}.map-color-label{display:block;margin:24px 0 12px;font-size:12px;color:#bad0cb}.google-map-dialog input{width:100%;accent-color:#b7df7b}.google-map-actions{display:flex;gap:10px;margin:20px 0}.google-map-actions button{flex:1}.google-map-actions button:disabled{opacity:.38;cursor:default}.google-setup-link{color:#c4e6ac;font-size:12px}.google-map-dialog>small{display:block;font-size:10px;color:#90aaa9;line-height:1.6;margin-top:20px}.google-credits{position:absolute;z-index:700;right:10px;bottom:3px;max-width:60%;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:5px 10px;background:#ffffffed;border-radius:5px;color:#263e45;font-size:10px;line-height:1.4}.google-credits[hidden]{display:none}.google-credits b{font-size:16px;font-weight:600;white-space:nowrap}.google-credits small{font-size:8px}.google-credits a{color:#263e45}body[data-map-mode="2d"] .google-credits{display:none}
.draft-price{padding:12px;background:#b7df7b0d;border:1px solid #b7df7b25;border-radius:10px;margin-top:17px}.draft-price span{font-size:9px;color:#a6c5ad}.draft-price b{display:block;font-size:19px;margin:5px 0;color:#d5eec0}.draft-price small{display:block;font-size:8px;color:#92aaa8;line-height:1.5}.inspector:has(#saveDraft) .route-stops{max-height:80px}.inspector:has(#saveDraft) .small-help{font-size:8px}
@media(min-width:1500px){.sidebar{width:255px}.map-heading,body[data-map-mode="2d"] .map-heading,.map-tabs,.map-places,.city-status,.selected-line-hud{left:306px}.inspector{width:325px}.panel-open .citizen-widget,.panel-open .citizen-widget:not(.minimized){right:365px}.panel-open .map-controls{right:365px}}
@media(max-width:900px){.topbar{gap:14px;padding:0 16px}.save-status{display:none}.topnav{margin:0}.sidebar{width:220px;left:12px}.map-heading,body[data-map-mode="2d"] .map-heading{left:255px}.map-tabs,.map-places,.city-status,.selected-line-hud{left:255px}.map-heading h2,body[data-map-mode="2d"] .map-heading h2{font-size:24px}.map-view-switch{right:12px}.city-toolbar{right:12px;top:126px}.map-tabs{top:80px}.citizen-widget,.citizen-widget:not(.minimized){right:12px;width:235px}.panel-open .citizen-widget,.panel-open .citizen-widget:not(.minimized){display:none}.inspector{right:12px;width:290px}.selected-line-hud{bottom:112px;min-width:210px;padding:10px}.timebar{width:400px}.city-status{top:166px}}
@media(max-width:700px){.topbar{height:60px}.brand{font-size:17px;gap:7px}.brand small,.topnav,.company-button small{display:none}.company-button{min-width:140px;padding:7px 10px;margin-left:auto}.company-button b{font-size:14px}.company-button>span{font-size:6px}.avatar{display:none}main{height:calc(100dvh - 60px)}.map-heading,body[data-map-mode="2d"] .map-heading{left:16px;top:78px;padding:0;width:auto}.map-heading h2,body[data-map-mode="2d"] .map-heading h2{font-size:23px}.map-view-switch{right:12px;top:18px;left:auto}.map-view-switch button{font-size:10px;padding:9px 11px}.toggle-lines{left:12px;top:18px;font-size:10px;padding:13px 15px}.sidebar{left:12px;top:71px;bottom:110px;width:230px;height:auto}.map-tabs{top:142px;left:12px;right:auto}.map-tabs button{font-size:9px;padding:8px 10px}.map-places{left:12px;top:189px;gap:5px}.map-places button{font-size:9px;padding:8px 10px}.city-toolbar{top:238px;right:auto;left:12px}.city-toolbar button{padding:9px 10px;font-size:9px}.city-status{display:none}.selected-line-hud{left:12px;bottom:108px;min-width:190px}.selected-line-hud small{font-size:8px}.citizen-widget,.citizen-widget:not(.minimized){right:12px;bottom:180px;width:210px}.lines-open .citizen-widget{display:none}.inspector{top:71px;bottom:99px;right:12px;left:12px;width:auto;padding:20px;max-width:340px;margin-left:auto}.panel-open .map-controls{display:none}.map-controls,body[data-map-mode="2d"] .map-controls{bottom:342px;right:12px}.timebar{width:calc(100% - 24px);max-width:410px;bottom:27px;padding:10px 12px;gap:10px}.weather{display:flex}.weather span{min-width:50px;font-size:9px}.clock strong{font-size:20px}.playback{margin-left:auto}.playback button{font-size:10px;padding:7px}.camera-hint{bottom:8px;font-size:7px;max-width:95%;white-space:normal;text-align:center}.map-note,.city-credit{display:none}.build-banner{top:292px;width:90%;max-width:350px}.business-columns{grid-template-columns:1fr}.business-dialog{padding:24px 18px;max-height:92dvh}.fare-panel{border:0;padding:0}.upgrade-card{padding:12px}.upgrade-head b{font-size:11px}.business-heading{display:block}.business-wallet{margin-top:15px}.bus-showcase svg{height:90px}}
.city-toolbar button[hidden],#freeMapRetry[hidden]{display:none}.city-palette{position:absolute;top:199px;left:282px;z-index:550;display:flex;gap:3px;background:#17333cec;padding:4px;border:1px solid #ffffff26;border-radius:11px;box-shadow:0 5px 15px #163a4220}.city-palette button{border:0;background:transparent;padding:8px 11px;border-radius:7px;color:#b4ccc8;font-size:9px;cursor:pointer}.city-palette button.active{background:#d1e6b8;color:#274439;font-weight:700}body:not([data-map-mode="3d"]) .city-palette{display:none}.city-credit{max-width:34%;line-height:1.5}.city-status{max-width:330px}body:has(#buildBanner:not(.hidden)) .city-palette{top:258px}
@media(min-width:1500px){.city-palette{left:306px}}@media(max-width:900px){.city-palette{left:255px}}@media(max-width:700px){.city-palette{left:12px;top:279px}.city-credit{display:block!important;bottom:5px;right:8px;max-width:48%;font-size:6px}.camera-hint{bottom:18px}.map-note{display:none}body:has(#buildBanner:not(.hidden)) .city-palette{display:none}body[data-map-mode="3d"] .build-banner{top:320px}}
.map-places select{border:1px solid #ffffff80;background:#eff7f1dc;border-radius:9px;color:#48645f;font-size:9px;padding:9px 8px;max-width:125px;cursor:pointer}@media(max-width:700px){.map-places select{font-size:8px;max-width:114px;padding:8px 4px}}
.city-pulse{margin-top:14px}.city-pulse-row{display:flex;justify-content:space-between;gap:8px;margin:10px 0;font-size:10px;color:#9cb6bd}.city-pulse-row b{color:#d6edb7;text-align:right;font-size:10px}.city-pulse progress{width:100%;height:5px;border:0;accent-color:#c0ed89}.city-pulse>p{font-size:10px;line-height:1.5;color:#b2c6c8}.city-event-info{padding:11px;background:#ffffff07;border-radius:9px;line-height:1.5}.city-event-info b{display:block;font-size:10px;color:#d6edb7}.city-event-info small{display:block;font-size:9px;margin-top:4px;color:#a6bdc6}.weather #cityPulseLabel{display:block!important;font-size:7px;margin-top:3px;white-space:nowrap;color:#b5d1bb}.weather i{font-style:normal;font-size:23px}
/* Reserve a separate row for the camera actions above the line details. */
.panel-open .inspector{top:126px}
@media(min-width:701px) and (max-width:900px){.city-toolbar{top:80px}}
@media(max-width:700px){
 .panel-open .city-toolbar{top:71px;right:12px;left:auto;max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:flex-end}
 .panel-open .inspector{top:116px}
.panel-open:has(#freeMapRetry:not([hidden])) .inspector{top:153px}
}

.draft-mobile-header,.draft-mobile-hint{display:none}
.mobile-map-options{display:contents}
.mobile-map-options>summary{display:none}
.mobile-map-options .map-tabs{z-index:500}
.street-route-status{font-size:12px;line-height:1.5;color:#c0d6cf;padding:10px 0}.street-route-status button{margin-left:8px;border:1px solid #c0ed8966;border-radius:8px;background:#ffffff0c;color:#c0ed89;padding:8px 12px;min-height:36px}
@media(max-width:700px){
 :root{--mobile-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
 .topbar{padding:0 12px;gap:10px}.company-button{min-width:0;max-width:55%;margin-left:auto}.brand{font-size:16px;letter-spacing:1px}.brand-icon{width:32px;height:32px;line-height:32px;font-size:24px}
 .toggle-lines{top:12px;left:10px;min-height:44px;font-size:12px;padding:10px 12px}
 .map-view-switch{top:12px;right:10px;padding:3px}.map-view-switch button{font-size:11px;padding:10px;min-height:38px}
 .map-heading,body[data-map-mode="2d"] .map-heading{left:12px;top:69px}.map-heading h2,body[data-map-mode="2d"] .map-heading h2{font-size:20px}.map-subtitle{display:none}
 .mobile-map-options{display:block;position:absolute;z-index:750;right:10px;top:68px;max-width:calc(100% - 20px);width:280px;pointer-events:none}
 .mobile-map-options>summary{display:block;list-style:none;pointer-events:auto;cursor:pointer;margin-left:auto;width:max-content;min-height:44px;padding:13px 12px;border-radius:12px;background:#f4fbf4f5;color:#244b53;font-size:12px;font-weight:600;box-shadow:0 3px 16px #163a4225}
 .mobile-map-options>summary::after{content:' ＋'}.mobile-map-options[open]>summary::after{content:' −'}
 .mobile-map-options[open]{pointer-events:auto;padding:8px;border-radius:14px;background:#f4fbf4fa;box-shadow:0 8px 24px #163a4235}
 .mobile-map-options .map-tabs,.mobile-map-options .map-places,.mobile-map-options .city-toolbar,.mobile-map-options .city-palette{position:static!important;transform:none;margin:8px 0 0;max-width:100%;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start;background:none;box-shadow:none;padding:0}
 .mobile-map-options:not([open])>:not(summary){display:none!important}
 .mobile-map-options button,.mobile-map-options .map-places select{min-height:44px;font-size:12px;padding:10px;max-width:100%}
 .mobile-map-options .map-places select{flex:1;min-width:150px;background:white}
 .sidebar{left:10px;right:10px;top:64px;bottom:var(--mobile-bottom);width:auto;max-width:360px;padding:18px 16px;overscroll-behavior:contain}
 .sidebar .intro,.line-card small{font-size:12px}.line-card-head b,.line-card-stats{font-size:12px}.line-card{padding:12px}.sidebar #createLine,.sidebar #browseRealLines{font-size:13px;min-height:44px}
 .simple-close{width:40px;height:40px;top:8px;right:8px;font-size:26px;z-index:2}
 .inspector,.panel-open .inspector,.panel-open:has(#freeMapRetry:not([hidden])) .inspector{top:auto;left:8px;right:8px;bottom:var(--mobile-bottom);width:auto;max-width:420px;max-height:min(55dvh,520px);margin:0 auto;padding:18px 16px;border-radius:18px;overscroll-behavior:contain;scroll-padding-bottom:16px}
 .inspector>.eyebrow{padding-right:44px}.inspector h2{font-size:20px;padding-right:28px}.inspector .sub,.inspector .control-label,.inspector .small-help,.simple-details summary,.simple-details .small-help{font-size:13px;line-height:1.5}.simple-details summary{min-height:44px;display:flex;align-items:center}
 .inspector input:not([type="range"]),dialog input:not([type="range"]),dialog select{font-size:16px;min-height:44px;max-width:100%}.inspector input[type="range"]{min-height:36px}.inspector .primary,.inspector .secondary{min-height:44px;font-size:13px}
 .inspector.draft-panel{padding:0;overflow:hidden;max-height:min(65dvh,600px)}
 .panel-open .inspector.draft-panel{display:flex;flex-direction:column}
 .draft-mobile-header{display:flex;flex-shrink:0;align-items:center;gap:6px;padding:10px 52px 0 12px}
 .draft-mobile-hint{display:block;flex-shrink:0;margin:6px 16px 0;font-size:12px;color:#bad0cb}.draft-expanded .draft-mobile-hint{display:none}
 .draft-mobile-header button{min-height:44px;border:0;border-radius:9px;background:#ffffff0c;color:#eaf6dc;font-size:13px}.draft-mobile-header #draftToggle{flex:1;text-align:left;padding:10px 12px;font-weight:600}.draft-mobile-header #draftUndo{width:44px;font-size:24px}
 .draft-content{display:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 16px 12px}
 .draft-expanded .draft-content{display:block}.draft-content h2{font-size:18px}.draft-content>.eyebrow{display:none}.draft-content .draft-price{margin:12px 0 0;padding:12px}.draft-content .draft-price b{font-size:22px}.draft-content .draft-price span,.draft-content .draft-price small{font-size:12px}.draft-content .route-stops{max-height:110px;overflow:auto}
 .draft-panel>.button-pair{flex-shrink:0;margin:0;padding:10px 12px 12px;background:#132b35}.draft-panel .button-pair button{padding:10px}
 .draft-panel>.street-route-status{flex-shrink:0;padding:6px 16px 0;font-size:11px}.draft-panel>.street-route-status button{min-height:36px}
 .panel-open:has(.draft-panel) .build-banner{display:none}
 .timebar{bottom:calc(16px + env(safe-area-inset-bottom,0px));width:calc(100% - 16px);height:56px;padding:6px 10px;gap:6px;max-width:420px}.weather{font-size:19px}.weather span{display:none}.clock{padding-left:6px}.clock strong{font-size:20px}.playback{gap:2px}.playback button,.playback #pause{min-width:38px;min-height:44px;padding:7px;font-size:12px}
 .camera-hint{display:none}.selected-line-hud{left:10px;bottom:calc(var(--mobile-bottom) + 8px);min-width:0;max-width:calc(100% - 20px);padding:9px 12px}.selected-line-hud b{font-size:13px}.selected-line-hud small{font-size:11px}
 .citizen-widget,.citizen-widget:not(.minimized){right:10px;bottom:calc(var(--mobile-bottom) + 90px);width:240px}.citizen-title{min-height:44px;padding-right:44px}.citizen-hide{min-width:40px;min-height:40px}.citizen-widget .citizen-post p{font-size:13px}.citizen-title span{font-size:10px}
 .map-controls,body[data-map-mode="2d"] .map-controls{right:10px;bottom:calc(var(--mobile-bottom) + 150px)}.map-controls button{width:44px;height:44px}
 .city-credit{max-width:95%;font-size:7px;bottom:2px}.google-credits{font-size:8px;max-width:95%;padding:2px 5px}.google-credits small{display:none}
 dialog{width:calc(100% - 20px);max-width:420px;max-height:90dvh;overflow-y:auto;padding:24px 18px;overscroll-behavior:contain}dialog h2{font-size:23px}dialog p,dialog li{font-size:14px}.close-dialog{min-width:44px;min-height:44px;right:6px;top:6px}dialog button{min-height:44px}.upgrade-grid,.company-stat-grid{grid-template-columns:1fr 1fr}.upgrade-card p,.upgrade-head small,.upgrade-card button,.company-guidance p{font-size:12px}.business-heading h2{padding-right:25px}.toast{bottom:calc(var(--mobile-bottom) + 10px);max-width:calc(100% - 24px);width:max-content;font-size:13px;padding:12px 16px}
}
@media(max-width:360px){.brand{font-size:14px}.map-view-switch button{font-size:10px;padding:10px 8px}.company-button b{font-size:12px}.weather{display:none}.upgrade-grid{grid-template-columns:1fr}}
@media(max-width:700px) and (max-height:500px){.map-heading{display:none}.inspector,.panel-open .inspector{max-height:calc(100% - 84px)}.citizen-widget{display:none}.sidebar{top:8px}.mobile-map-options{top:8px;right:200px}.selected-line-hud{display:none}}

.fleet-control{margin:16px 0 0}.inspector .fleet-control .control-label{display:block;text-align:center;margin:0 0 8px;color:#91abb3;font-size:11px}.fleet-stepper{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:8px}.fleet-stepper button{display:grid;place-items:center;min-width:44px;height:52px;border:1px solid transparent;border-radius:10px;background:transparent;color:#edf5f5;font-family:inherit;font-size:40px;line-height:1;cursor:pointer}.fleet-stepper button:hover:not(:disabled){background:#ffffff0c;color:#b9ee79}.fleet-stepper button:focus-visible{outline:2px solid #b9ee79;outline-offset:2px}.fleet-stepper button:disabled{opacity:.3;cursor:default}.fleet-stepper input{width:100%;min-width:0;box-sizing:border-box;margin:0;padding:0 4px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:center;color:#edf5f5;font-family:'Bondis Flecha',Manrope,sans-serif;font-size:38px;line-height:1.2;font-weight:800;cursor:text}.fleet-stepper input:hover{background:#ffffff0c}.fleet-stepper input:focus{outline:none;border-color:#b9ee79;background:#ffffff0c}.fleet-control input[type="hidden"]{display:none}.fleet-confirm{margin:8px 0 0;text-align:center}.fleet-confirm[hidden]{display:none}.fleet-confirm small{display:block;margin:0 0 8px;color:#91abb3;font-size:12px}.fleet-confirm .button-pair{margin:0}

.build-banner{max-width:calc(100% - 32px);white-space:normal}.build-instructions{min-width:0}.build-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.build-actions button{margin:0;min-height:40px;padding:8px 12px;font-size:12px;font-weight:600;border:1px solid #ffffff26;white-space:nowrap}.build-actions #undoStop{font-size:20px;padding:6px 12px}.build-actions #cancelBuild{background:#f6eee4;color:#57382d;border-color:#f6eee4}.build-actions button:hover{filter:brightness(1.12)}.build-actions button:focus-visible{outline:2px solid #c0ed89;outline-offset:3px}
.panel-open #showDraftEditor{display:none}
@media(min-width:701px){body:has(#buildBanner:not(.hidden)) .city-palette{top:310px}}
@media(max-width:700px){.build-banner{flex-wrap:wrap;gap:8px;width:calc(100% - 24px);padding:12px}.build-instructions{flex:1}.build-actions{width:100%}.build-actions button{min-height:44px}.build-actions #showDraftEditor,.build-actions #cancelBuild{flex:1}}

/* A shared flow keeps alerts, the city title and camera controls apart. */
.city-status{display:none}
main{--map-header-height:54px;--map-edge:18px;--map-content-left:282px}
.map-header{position:absolute;z-index:900;top:18px;left:var(--map-edge);right:22px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;pointer-events:none}
.map-header>*{position:static!important;transform:none;max-width:100%;pointer-events:auto}
.map-header .toggle-lines{order:1;flex-shrink:0}
.map-header .dispatch-button{order:2;min-height:42px;flex-shrink:0;white-space:normal;overflow-wrap:anywhere}
.map-header .map-view-switch{order:4;margin-left:auto;flex-wrap:wrap}
.sidebar,.panel-open .inspector{top:calc(18px + var(--map-header-height) + 16px)}
.mobile-map-options{display:flex;flex-direction:column;align-items:flex-start;gap:20px;position:absolute;z-index:750;top:calc(18px + var(--map-header-height) + 16px);left:var(--map-content-left);right:22px;max-height:calc(100% - var(--map-header-height) - 160px);overflow:auto;pointer-events:none}
.mobile-map-options>summary{display:none}
.mobile-map-options .map-tabs,.mobile-map-options .city-toolbar{position:static!important;transform:none;margin:0;max-width:100%;flex-wrap:wrap;pointer-events:auto;gap:12px}
.mobile-map-options .map-tabs{padding:4px;display:flex}
.mobile-map-options .city-toolbar{margin-top:20px}
@media(min-width:701px){body[data-game-mode="basic"] .mobile-map-options .city-toolbar{margin-top:0}}
.mobile-map-options .map-tabs button,.mobile-map-options .city-toolbar button{padding:7px 18px;min-height:32px}
.mobile-map-options .map-places{gap:6px}
.mobile-map-options .map-places button{white-space:nowrap}
.mobile-map-options .map-places select{min-width:0;max-width:100%}
.city-status{top:calc(18px + var(--map-header-height) + 16px + var(--map-options-height,160px) + 10px)}
.build-banner{top:calc(18px + var(--map-header-height) + 16px + var(--map-options-height,160px) + 36px)}
@media(min-width:1500px){main{--map-content-left:306px}}
@media(min-width:701px){.panel-open .mobile-map-options{right:calc(18px + 300px + 16px)}}
@media(min-width:1500px){.panel-open .mobile-map-options{right:calc(18px + 325px + 16px)}}
@media(min-width:701px) and (max-width:900px){main{--map-edge:12px;--map-content-left:255px}.panel-open .mobile-map-options{right:calc(12px + 290px + 16px)}}
@media(max-width:700px){
 main{--map-edge:10px}
 .map-header{top:12px;right:10px;gap:8px}
 .map-header .dispatch-button{min-height:44px;padding:10px 12px;font-size:12px;flex:1 1 140px}
 .map-header .map-view-switch{order:3}
 .sidebar{top:calc(12px + var(--map-header-height) + 12px)}
 .mobile-map-options{top:calc(12px + var(--map-header-height) + 12px);left:auto;right:10px;gap:0;overflow:auto;max-height:calc(100% - var(--map-header-height) - 120px)}
 .mobile-map-options>summary{display:block;flex-shrink:0}
 .mobile-map-options .map-tabs,.mobile-map-options .city-toolbar{margin-top:16px}
 .lines-open .mobile-map-options{display:none}
 .inspector,.panel-open .inspector,.panel-open:has(#freeMapRetry:not([hidden])) .inspector{top:auto;max-height:min(55dvh,520px,calc(100% - var(--map-header-height) - var(--mobile-bottom) - 80px))}
 .panel-open .inspector.draft-panel{max-height:min(65dvh,600px,calc(100% - var(--map-header-height) - var(--mobile-bottom) - 80px))}
 .build-banner,body[data-map-mode="3d"] .build-banner{top:calc(12px + var(--map-header-height) + 68px)}
}
.pending-draft-stop{animation:pending-stop 1s ease-in-out infinite alternate}.route-stop.pending{opacity:.6;font-style:italic}@keyframes pending-stop{to{stroke-opacity:.35;fill-opacity:.6}}@media(prefers-reduced-motion:reduce){.pending-draft-stop{animation:none}}
.selected-line-hud[hidden]{display:none!important}
.branch-entry{display:block;width:100%;margin-top:14px;padding:13px 0 3px;border:0;border-top:1px solid #ffffff15;background:none;color:#d6edb7;font-size:11px;font-weight:800;text-align:left}.branch-entry:hover{color:var(--accent)}
