/* Original arcade interludes, with a readable layout in both phone orientations. */
.modal:has(.customer-story),.modal:has(.office-interior),.modal:has(.office-upgrades){width:min(940px,96vw)}
.customer-story{background:#102735;border:3px solid #8fbcc0;padding:18px;box-shadow:inset 0 0 0 4px #071b29}
.story-versus{display:grid;grid-template-columns:minmax(0,1fr) 78px minmax(0,1fr);align-items:center;gap:16px;margin:20px 0;background:repeating-linear-gradient(0deg,#183946 0 3px,#193d4a 3px 5px);border-bottom:7px solid #bd9563;padding:18px 15px 10px}
.story-person{text-align:center;min-width:0}.story-person svg{width:clamp(90px,19vw,190px);height:auto;max-width:100%;image-rendering:pixelated;border:3px solid #79979c;display:block;margin:auto}.story-person b{font:700 clamp(12px,2vw,19px) monospace;display:block;margin:10px 0 5px;color:#e9efdb;overflow-wrap:anywhere}.story-person small{font:9px monospace;color:#95bdc2;display:block;overflow-wrap:anywhere}.story-center{font:900 22px monospace;text-align:center;color:#c8e89b;line-height:1.2}.story-center small{display:block;font:8px monospace;margin-top:14px;color:#9bb8bd}.story-dialogue{border:2px solid #a1b9a4;background:#061c29;padding:15px;min-height:138px}.customer-story .story-dialogue p{font:clamp(14px,2vw,18px)/1.65 monospace;color:#eff0da;margin:10px 0 0;min-height:3.3em;overflow-wrap:anywhere}.story-talking svg{animation:story-bob .16s steps(2,end) infinite}.story-talking svg path:last-of-type{animation:story-mouth .15s steps(2,end) infinite;transform-origin:center}.customer-story .actions{justify-content:space-between}.customer-story button{font-size:12px}
@keyframes story-bob{50%{transform:translateY(-3px)}}@keyframes story-mouth{50%{opacity:.5}}
.office-interior{margin:16px 0 22px}.office-art-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#24495a;padding:13px}.office-art-heading b{font:700 15px monospace;color:#def0cb}.office-art-heading span{font:10px monospace;color:#a7c9cf;white-space:nowrap}.office-floor-art{display:block;width:100%;max-height:470px;background:#152c37;border:2px solid #6d939b;image-rendering:pixelated}.office-income{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.office-income>div{border:1px solid #4a6971;background:#102b37;padding:13px;min-width:0}.office-income small{font:9px/1.5 monospace;color:#a9c9ca;display:block}.office-income strong{font:700 clamp(17px,2vw,24px) monospace;color:#c6e9a3;display:block;margin:7px 0;overflow-wrap:anywhere}.office-income span{font:10px/1.5 monospace;color:#a2babc;display:block}.office-expansion-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:18px}.office-expansion-grid>div{border:1px dashed #536c72;padding:10px;background:#142a34;opacity:.65;min-width:0}.office-expansion-grid .built{border:1px solid #a2c584;background:#304b3c;opacity:1}.office-expansion-grid .next{border:1px solid #e4c58f;opacity:1}.office-expansion-grid b{display:block;color:#d9e8be;font:20px monospace}.office-expansion-grid span{display:block;font:11px/1.4 monospace;margin:7px 0}.office-expansion-grid small{font:9px monospace;color:#b2c8c4}
@media(max-width:600px) and (orientation:portrait){.modal:has(.customer-story){padding:10px!important}.customer-story{padding:10px}.story-versus{grid-template-columns:minmax(0,1fr) 45px minmax(0,1fr);gap:6px;padding:16px 7px;margin:14px 0}.story-center{font-size:16px}.story-person svg{width:125px}.story-dialogue{padding:12px;min-height:160px}.customer-story .story-dialogue p{font-size:15px;line-height:1.6}.customer-story .actions{gap:8px}.customer-story button{flex:1;font-size:11px;padding:12px 8px}.office-income{grid-template-columns:repeat(2,minmax(0,1fr))}.office-expansion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.office-floor-art{max-height:390px}.office-art-heading{padding:10px}.office-art-heading b{font-size:12px}}
@media(max-height:550px) and (orientation:landscape){.modal:has(.customer-story){padding:10px!important;width:min(760px,95vw)}.customer-story{padding:10px;display:grid;grid-template-columns:45% 1fr;gap:8px 14px;align-items:center}.customer-story>.label{grid-column:1/-1;font-size:8px}.story-versus{grid-row:2/4;grid-template-columns:1fr 36px 1fr;margin:0;padding:10px 5px;gap:5px;border-bottom-width:4px}.story-person svg{width:min(100px,23vh)}.story-person b{font-size:10px;margin:6px 0}.story-person small{font-size:7px}.story-center{font-size:13px}.story-center small{font-size:7px}.story-dialogue{min-height:114px;padding:10px;align-self:stretch}.customer-story .story-dialogue p{font-size:12px;line-height:1.5;margin-top:6px}.customer-story .actions{margin-top:0;gap:6px}.customer-story button{font-size:10px;padding:9px}.office-income{gap:5px}.office-income>div{padding:8px}.office-income strong{font-size:17px}.office-floor-art{max-height:230px}.office-art-heading{padding:8px}.office-art-heading b{font-size:12px}.office-interior p{font-size:11px}.office-expansion-grid span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.story-talking svg,.story-talking svg path:last-of-type{animation:none}}
@media(max-height:550px) and (orientation:landscape){.puck-return-story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:8px 14px}.puck-return-story>.label,.puck-return-story>h1{grid-column:1/-1}.puck-return-story>h1{font-size:19px!important;margin:2px 0!important}.puck-return-story .counter-scene{grid-column:1;grid-row:3/6;height:180px}.puck-return-story .warehouse-sign{font-size:7px;padding:6px}.puck-return-story .counter-desk{font-size:7px;padding:10px 6px}.puck-return-story .speechbox{grid-column:2;margin:0;min-height:110px;padding:10px}.puck-return-story #gus-dialogue{font-size:11px;line-height:1.45;margin-top:6px}.puck-return-story .shoprow{grid-column:2;font-size:11px;padding:7px 0}.puck-return-story .actions{grid-column:2;margin:0;gap:6px}.puck-return-story .actions button{font-size:10px;padding:8px}.puck-return-story .gus{bottom:30px;left:40%;transform:scale(.8);transform-origin:bottom}}

.camera-flash{position:fixed;inset:0;z-index:1000;background:#fff;opacity:0;pointer-events:none}.camera-flash-active{animation:camera-snapshot .18s ease-out both}@keyframes camera-snapshot{0%{opacity:.8}100%{opacity:0}}@media(prefers-reduced-motion:reduce){.camera-flash-active{animation-name:camera-snapshot-gentle;animation-duration:.1s}@keyframes camera-snapshot-gentle{0%{opacity:.15}100%{opacity:0}}}
.powerup-glyph{font-size:35px;margin:8px 0}.powerup-grid .asset-card{display:flex;flex-direction:column}.powerup-grid .asset-card p{flex:1}.powerup-grid .asset-card button{width:100%;margin-top:8px}.mechanic-powerups{border:1px solid #477899;padding:14px;background:#0b2439;margin:15px 0}@media(max-height:550px) and (orientation:landscape){.powerup-glyph{font-size:24px;margin:2px 0}.powerup-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.powerup-grid .asset-card{padding:10px}.powerup-grid .asset-card p{font-size:11px;line-height:1.45}.powerup-grid .asset-card button{font-size:10px;padding:9px 5px}}
.asset-tabs{flex-wrap:wrap}.tow-options .actions{margin-top:10px}.tow-options .actions button{flex:1 1 180px}
@media(max-height:550px) and (orientation:landscape){.modal:has(.powerup-grid) .asset-heading h1{font-size:20px;margin:5px 0}.modal:has(.powerup-grid) .asset-heading>button{padding:7px 11px}.modal:has(.powerup-grid) .asset-tabs{margin:7px 0;gap:5px}.modal:has(.powerup-grid) .asset-tabs button{font-size:10px;padding:8px 10px}.modal:has(.powerup-grid) .region-selector{padding:7px;margin:6px 0;display:flex;align-items:center;gap:12px}.modal:has(.powerup-grid) .region-selector label{display:flex;align-items:center;gap:8px}.modal:has(.powerup-grid) .region-selector select{padding:5px;margin:0;font-size:10px}.modal:has(.powerup-grid) .region-selector small{font-size:9px}.modal:has(.powerup-grid) #asset-content>.label,.modal:has(.powerup-grid) #asset-content>h2{display:none}.modal:has(.powerup-grid) #asset-content>p{font-size:11px;margin:7px 0}.modal:has(.powerup-grid) .powerup-grid{gap:8px}.modal:has(.powerup-grid) .powerup-grid .asset-card{margin:2px 0}.modal:has(.powerup-grid) .powerup-grid h3{font-size:14px;margin:4px 0}.modal:has(.powerup-grid) .powerup-grid strong{font-size:11px}.modal:has(.powerup-grid) .powerup-grid p{margin:7px 0}.modal:has(.powerup-grid) .powerup-grid button{margin-top:2px}}

/* The radio popup must receive taps independently of the click-through mobile footer. */
#radio-menu{pointer-events:auto;touch-action:manipulation;max-height:calc(100dvh - 90px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;isolation:isolate}#radio-menu button{pointer-events:auto;touch-action:manipulation}
/* Pool Pro: enamel shield, rank ladder and the future trophy cabinet. */
.pool-brand-lockup{display:flex;align-items:center;gap:14px;flex-shrink:0}#pool-pro-badge{display:flex;align-items:center;gap:5px;padding:0 7px 0 0;border:0;background:transparent;color:#b7e4e7;box-shadow:none;min-height:54px;cursor:pointer}#pool-pro-badge:hover{filter:brightness(1.2);transform:translateY(-1px)}#pool-pro-badge:focus-visible{outline:2px solid #6ee5cd;outline-offset:3px;border-radius:8px}.pro-emblem{width:54px;height:61px;flex-shrink:0;filter:drop-shadow(0 3px 3px #0007)}.pro-ring-track,.pro-ring{fill:none;stroke:#385168;stroke-width:2}.pro-ring{stroke:#80e8d5;transform:rotate(-90deg);transform-origin:50px 51px;stroke-linecap:round}.pro-shield-rim{fill:var(--pro-metal);stroke:#fff9;stroke-width:.7}.pro-shield{fill:#153e57;stroke:#091b30;stroke-width:2}.pro-badge-label{font:8px monospace;letter-spacing:1px;max-width:38px;text-align:left;line-height:1.5}.pro-badge-label b{display:block;font:bold 16px Georgia,serif;color:#f5dfad}.pool-pro-overlay{position:fixed;inset:0;z-index:155;display:flex;align-items:center;justify-content:center;padding:20px;background:#020e20dc;backdrop-filter:blur(7px)}.pool-pro-overlay[hidden]{display:none}.pool-pro-window{width:740px;max-width:100%;max-height:92dvh;overflow:auto;border:1px solid #558195;border-radius:15px;background:radial-gradient(ellipse at top left,#194d60,#0b2239 60%);color:#dcecef;box-shadow:0 25px 100px #0009}.pro-topline,.pro-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;background:#071a2aa6}.pro-topline{border-bottom:1px solid #42657a}.pro-topline .label{font-size:9px;letter-spacing:2px;color:#82c5cf}.pro-topline button{padding:8px 12px}.pro-footer{border-top:1px solid #42657a}.pro-footer>span{font:9px monospace;letter-spacing:1px;color:#84a7b5}#pool-pro-content{padding:24px}.pro-hero{display:flex;align-items:center;gap:22px;margin-bottom:20px}.pro-hero .pro-emblem{width:108px;height:121px}.pro-hero h2{font-size:32px;line-height:1.1;margin:7px 0 10px;color:#fff3cb}.pro-hero p{font:12px monospace;line-height:1.7;margin:0;color:#b8d6de}.pro-hero p strong{color:#7ee6cb}.pro-progress-card{padding:17px;border:1px solid #4b8d91;background:#163c48;border-radius:8px;margin-bottom:20px}.pro-progress-label{display:flex;justify-content:space-between;gap:12px;font:12px monospace;line-height:1.5}.pro-progress-label strong{color:#b7ffe3}.pro-progress-label span{color:#bdd4db;white-space:nowrap}.pro-progress{height:12px;border:1px solid #527381;background:#071c2c;border-radius:8px;overflow:hidden;margin:11px 0}.pro-progress i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#138fbc,#7ff1c7);box-shadow:0 0 15px #88e6d066}.pro-progress-card small{font:10px/1.6 monospace;color:#aed0d9}.pro-rank-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pro-rank-row{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #355065;border-radius:7px;background:#091e30}.pro-rank-row .pro-emblem{width:39px;height:44px}.pro-rank-row strong{display:block;font: bold 13px Georgia,serif;color:#d5e7e9}.pro-rank-row small{display:block;font:9px/1.6 monospace;margin-top:3px;color:#92b0bf}.pro-current{border-color:#82e8c8;background:#164239;box-shadow:inset 0 0 20px #59c4a412}.pro-rank-status{font:8px monospace;letter-spacing:.4px;margin-left:auto;color:#87adba}.pro-current .pro-rank-status{color:#a8ffda}.pro-earned .pro-rank-status{color:#e7ce8e}.pro-locked .pro-emblem{opacity:.65}.pro-rules{font:10px/1.8 monospace;color:#9fbec9;margin:18px 0}.pro-achievements{display:flex;gap:14px;align-items:center;border:1px dashed #5a798d;border-radius:8px;padding:18px}.pro-achievements>span{color:#dbc78e;font-size:34px}.pro-achievements h3{font: bold 17px Georgia,serif;color:#e5dec7;margin:0 0 5px}.pro-achievements p{font:11px/1.7 monospace;color:#a7bec9;margin:0}@media(max-width:700px){.pool-brand-lockup{gap:6px}#pool-pro-badge{padding:0}.pro-badge-label{display:none}#pool-pro-badge .pro-emblem{width:43px;height:48px}.pool-pro-overlay{padding:10px}.pool-pro-window{max-height:95dvh}.pro-topline,.pro-footer{padding:12px 15px}#pool-pro-content{padding:16px}.pro-hero{gap:15px}.pro-hero .pro-emblem{width:85px;height:96px}.pro-hero h2{font-size:27px}.pro-rank-list{grid-template-columns:1fr}.pro-progress-label{flex-wrap:wrap;gap:4px}.pro-rank-row{padding:8px 12px}}@media(max-width:380px){#pool-pro-badge .pro-emblem{width:36px;height:42px}.pool-brand-lockup{gap:2px}.pro-hero h2{font-size:24px}}
body.touch-device.touch-driving #game-header>div.pool-brand-lockup{display:flex}body.touch-device #pool-pro-badge{min-height:32px}body.touch-device #pool-pro-badge .pro-emblem{width:31px;height:35px}body.touch-device #pool-pro-badge .pro-badge-label{display:none}@media(max-width:700px){body.touch-device.touch-driving #game-header>div.pool-brand-lockup{width:100%;height:32px;gap:10px}body.touch-device #game-header .pool-brand-lockup .brand{font-size:21px}}
/* Original pixel-art rank illustrations, displayed directly from the supplied comp. */
.pro-pixel-emblem{width:68px;height:58px;image-rendering:pixelated;filter:drop-shadow(0 3px 2px #0008);clip-path:polygon(50% 1%,94% 18%,94% 69%,99% 80%,96% 99%,3% 99%,0 80%,6% 69%,6% 18%)}.pro-pixel-9{clip-path:polygon(50% 0,66% 8%,84% 14%,95% 32%,99% 62%,94% 76%,99% 81%,97% 99%,2% 99%,0 81%,6% 76%,0 62%,5% 32%,16% 14%,34% 8%)}#pool-pro-badge .pro-pixel-emblem{width:69px;height:59px}.pro-hero .pro-pixel-emblem{width:154px;height:132px}.pro-rank-row .pro-pixel-emblem{width:77px;height:66px}.pro-rank-row{gap:10px;min-height:86px}.pro-locked .pro-pixel-emblem{opacity:.65;filter:saturate(.55)}.pro-hero h2,.pro-rank-row strong{font-family:monospace;font-weight:900}.pro-hero h2{text-transform:uppercase;letter-spacing:-1px}.pro-badge-label{display:none}.pro-progress{border-radius:2px;border:2px solid #5f7baf;height:17px}.pro-progress i{border-radius:0;background:linear-gradient(#9df368 0 20%,#64da30 20% 75%,#3cb916 75%);box-shadow:inset 0 0 0 2px #bfff7733}.pro-progress-card,.pro-rank-row,.pro-achievements{border-radius:3px}.pro-current{border-color:#7eff48;box-shadow:inset 3px 0 #7eff48}.pro-hero p strong{color:#73f149}@media(max-width:700px){.pro-hero .pro-pixel-emblem{width:116px;height:99px}.pro-hero{gap:12px}.pro-hero h2{font-size:24px}.pro-rank-row .pro-pixel-emblem{width:78px;height:67px}.pro-rank-row{min-height:80px}#pool-pro-badge .pro-pixel-emblem{width:57px;height:49px}}body.touch-device #pool-pro-badge .pro-pixel-emblem{width:46px;height:39px}body.touch-device.touch-driving #game-header>div.pool-brand-lockup{height:38px}
#achievement-horn{display:inline-flex;align-items:center;justify-content:center;gap:3px;border-color:#b59652;color:#ffe590;min-width:44px}#achievement-horn[hidden]{display:none!important}#achievement-horn svg{width:21px;height:21px;flex-shrink:0}#achievement-horn-count{font:bold 10px monospace}#achievement-horn:disabled{opacity:.45;cursor:default}.collision-achievements{border-top:1px solid #42657a;padding-top:22px;margin-top:22px}.collision-achievements>h3{font:bold 21px monospace;color:#fff0bd;margin:7px 0}.collision-achievements>p{font:11px/1.7 monospace;color:#b7d1dc}.collision-achievement-list{display:grid;gap:10px}.collision-achievement{display:flex;align-items:center;gap:17px;padding:15px;border:1px solid #466480;background:#0a2035}.collision-achievement-badge{width:72px;height:80px;flex-shrink:0;filter:drop-shadow(0 3px 2px #0008)}.collision-achievement>div{flex:1;min-width:0}.collision-achievement h4{font:bold 16px monospace;margin:4px 0;color:#e2e9f0}.collision-achievement p{font:10px/1.7 monospace;color:#abc4d0;margin:0}.collision-achievement small{font:9px monospace;color:#9fbece}.collision-achievement .pro-progress{height:10px;margin:8px 0}.achievement-earned{border-color:#81da5d;background:#123d36}.achievement-earned .pro-rank-status{color:#b4ff9b}.achievement-locked .collision-achievement-badge{opacity:.55;filter:saturate(.45)}body.touch-device #game-header #achievement-horn{width:40px;flex:0 0 40px;padding:3px}@media(max-width:700px){.collision-achievement{gap:10px;padding:11px}.collision-achievement-badge{width:56px;height:62px}.collision-achievement h4{font-size:14px}}
/* One shield construction and icon style for professional ranks and achievements. */
.pro-trade-emblem{width:54px;height:60px;clip-path:none;filter:drop-shadow(0 3px 2px #0008)}#pool-pro-badge .pro-trade-emblem{width:48px;height:53px}.pro-hero .pro-trade-emblem{width:110px;height:121px}.pro-rank-row .pro-trade-emblem{width:54px;height:60px}.pro-locked .pro-trade-emblem{opacity:.55;filter:saturate(.45)}@media(max-width:700px){.pro-hero .pro-trade-emblem{width:85px;height:94px}.pro-rank-row .pro-trade-emblem{width:49px;height:54px}#pool-pro-badge .pro-trade-emblem{width:43px;height:47px}}body.touch-device #pool-pro-badge .pro-trade-emblem{width:33px;height:36px}

/* Daily slot machine: one tall reel, readable at thumb distance. */
.daily-slot{max-width:520px;margin:auto;text-align:center}.daily-slot h1{line-height:1.05}.daily-slot small,.daily-reward small{display:block;font-size:11px;line-height:1.6;color:#aac1c9}.daily-machine{position:relative;margin:24px auto 18px;padding:12px;background:#152b37;border:3px solid #83d7c1;box-shadow:0 7px 0 #071923,0 0 35px #71e3bd18;max-width:410px;border-radius:14px}.daily-marquee{color:#ffdb83;letter-spacing:2px;font:bold 12px monospace;padding:9px 0 17px}.daily-reel-window{height:150px;overflow:hidden;background:#e5eed9;border:5px solid #071d28;box-shadow:inset 0 12px 20px #102b3c66,inset 0 -12px 20px #102b3c66;mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}.daily-reel{padding-top:17px;will-change:transform}.daily-reel.spinning{transition:transform 4s cubic-bezier(.12,.65,.18,1)}.daily-reel-row{height:116px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:16px;color:#173b45;border-bottom:1px solid #9bb5a5;font:bold 20px monospace}.daily-reel-row b{font-size:32px;color:#155e66;min-width:78px}.daily-reel-row span{max-width:180px;text-align:left}.daily-pointer{position:absolute;right:1px;top:120px;color:#ffdb83;font-size:26px;filter:drop-shadow(0 1px 4px #000)}.daily-lights{font:16px monospace;letter-spacing:7px;color:#ffd875;padding-top:15px;animation:daily-lights .6s steps(2,end) infinite}.daily-spin-button{min-height:52px;width:100%;margin:12px 0;font-weight:bold;letter-spacing:1px}.daily-slot #daily-spin-status{font-size:12px;line-height:1.7;min-height:40px}.daily-reward-wrap{position:relative;overflow:hidden;text-align:center;max-width:520px;margin:auto;padding:20px 8px}.daily-reward{position:relative;z-index:1;animation:daily-zoom-out .65s cubic-bezier(.17,.8,.3,1) both}.daily-reward-icon{display:grid;place-items:center;margin:24px auto;width:130px;height:130px;background:#183f49;border:3px solid #ffd875;box-shadow:0 0 45px #ffd87530;border-radius:50%;font:bold 42px monospace;color:#ffe29b}.daily-reward-tag{font:bold 11px monospace;letter-spacing:1px;color:#79e5be;padding:18px 0}.daily-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.daily-confetti i{position:absolute;left:var(--x);top:-20px;width:8px;height:15px;background:var(--color);animation:daily-confetti 2.7s var(--delay) ease-in both}.daily-bonus-status{width:100%;font:10px monospace;color:#ffe29b;border:1px solid #a88c4a;background:#203e42;padding:9px 4px;margin:9px 0}.daily-bonus-status[hidden]{display:none}@keyframes daily-lights{to{opacity:.45}}@keyframes daily-zoom-out{from{opacity:0;transform:scale(1.8)}to{opacity:1;transform:scale(1)}}@keyframes daily-confetti{from{transform:translateY(-30px) rotate(var(--turn));opacity:1}to{transform:translateY(700px) rotate(calc(var(--turn) + 650deg));opacity:0}}@media(max-width:480px){.daily-slot h1,.daily-reward h1{font-size:29px}.daily-machine{margin:16px auto}.daily-reel-row{font-size:17px;gap:8px}.daily-reel-row b{min-width:70px;font-size:28px}.daily-reward-wrap{padding:8px 0}}@media(prefers-reduced-motion:reduce){.daily-lights,.daily-reward,.daily-confetti i{animation-duration:.01ms}.daily-reel.spinning{transition-duration:.01ms}}

.income-map-key{margin:12px 0 18px;padding:12px;background:#0b2536;border:1px solid #416477}.income-map-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.income-map-legend>div{display:grid;grid-template-columns:12px 1fr;gap:4px 7px;align-items:center;padding:8px;border:1px solid var(--area-color);background:#102d3b}.income-map-legend i{width:11px;height:11px;background:var(--area-color);border-radius:2px}.income-map-legend strong{font:bold 12px monospace;color:var(--area-color)}.income-map-legend span{grid-column:2;font:10px monospace;color:#cadce2}.income-map-key p{font-size:11px;line-height:1.7;margin:12px 0 0}.income-area-summary{display:flex;flex-direction:column;gap:8px;border-left:4px solid var(--area-color);padding:12px;background:#0c2838;color:var(--area-color);font:12px monospace}.income-area-summary span{color:#c7dbe4;font-size:11px}@media(max-width:600px){.income-map-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.income-map-key{padding:10px}.income-map-legend>div{padding:7px}.income-map-key p{font-size:10px}}

.weekly-reel-row{font-size:15px}.weekly-reel-row span{max-width:205px;line-height:1.4}.spin-win-button{display:flex;gap:12px;align-items:center;justify-content:center;width:100%;min-height:54px;margin:12px 0;border-color:#e3c272;color:#ffe298;background:#374139}.spin-win-button svg{width:28px;height:28px;flex:none}.spin-win-button small{display:block;font-size:10px;color:#d6d9c5;margin-top:5px}.spin-win-button:disabled{opacity:.45}@media(max-width:480px){.weekly-reel-row{font-size:13px}.weekly-reel-row b{min-width:42px}.weekly-reel-row span{max-width:190px}}

.distribution-wordmark{font-size:clamp(24px,5vw,44px);letter-spacing:-1px;overflow-wrap:anywhere}.route-income-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:16px 0}.route-income-grid>div{padding:13px 10px;border:1px solid #426b7f;background:#0a293d;min-width:0}.route-income-grid small{display:block;font:9px/1.6 monospace;color:#a6c5d1;letter-spacing:.5px}.route-income-grid strong{display:block;margin-top:7px;color:#8fe4c8;font-size:21px;overflow-wrap:anywhere}.route-income-note{font-size:11px!important;line-height:1.7;color:#b1cbd5}.route-table-wrap{width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:14px 0}.route-income-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;min-width:420px}.route-income-table th{font:bold 10px/1.5 monospace;letter-spacing:.5px;color:#9dd3df;background:#153e52}.route-income-table th,.route-income-table td{padding:12px 10px;border-bottom:1px solid #36576c;vertical-align:top}.route-income-table td small{display:block;font-size:10px;line-height:1.7;color:#acc4ce;margin-top:5px}.route-income-table select{max-width:155px;min-width:115px;padding:7px;font-size:11px}.route-tech-link{display:block;padding:5px 7px;margin-top:7px;font-size:10px}.weekly-payment-log{margin-top:18px}.weekly-payment-log summary{cursor:pointer;padding:10px 0;color:#a6dfe6;font-weight:bold}.route-finances{margin:20px 0;border-top:1px solid #456d80;padding-top:7px}.weekly-customer-log{margin:24px 0}.tech-detail .route-income-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.route-income-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-income-grid strong{font-size:19px}.route-income-grid>div{padding:10px}.route-income-table{font-size:11px}.weekly-customer-log{padding:12px}.weekly-customer-log h2{font-size:20px;line-height:1.3}}

.online-button{position:fixed;bottom:12px;right:244px;z-index:70;display:inline-flex;align-items:center;gap:7px;height:36px;min-height:36px;padding:0 10px;background:#0c2c46ed;border:1px solid #568dac;color:#d2e4e9;font:10px monospace;white-space:nowrap}.online-button svg{width:17px;height:17px}.online-button b{min-width:13px;color:#9eb3bd}.online-button.lobby-connected b{color:#83edbb}.online-button.lobby-connected{border-color:#66bca5}.lobby-overlay{position:fixed;inset:0;z-index:220;display:flex;align-items:center;justify-content:center;padding:16px;background:#020f1ce8;backdrop-filter:blur(5px)}.lobby-overlay[hidden],.lobby-panel [hidden]{display:none!important}.lobby-panel{width:min(960px,100%);height:min(760px,calc(100dvh - 32px));display:flex;flex-direction:column;background:#0b263a;border:1px solid #65b2ca;box-shadow:0 18px 80px #0008;color:#d6e9ed;overflow:hidden;border-radius:12px}.lobby-header{display:flex;flex:none;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid #36566c}.lobby-header h2{font-size:25px;line-height:1.2;margin:7px 0}.lobby-header p{font-size:11px;line-height:1.5;color:#a3c7d2;margin:0}.lobby-header>button{flex:none;min-width:40px;height:40px;padding:7px}.lobby-main{display:grid;grid-template-columns:minmax(0,1fr) 220px;flex:1;min-height:0}.lobby-chat{display:flex;flex-direction:column;min-width:0;min-height:0}.lobby-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:17px 20px}.lobby-empty{padding:22px 10px;text-align:center;color:#a4c4cf;font-size:12px;line-height:1.8}.lobby-empty strong{font-size:20px;color:#c9e9e7}.lobby-message{display:flex;gap:11px;padding:12px 0;align-items:flex-start}.lobby-avatar{width:38px;height:38px;flex:0 0 38px;padding:6px;display:grid;place-items:center;background:var(--van-color);border:2px solid #d7ece066;border-radius:9px;box-sizing:border-box}.lobby-avatar svg{width:100%;height:100%}.lobby-message-content{min-width:0;flex:1}.lobby-author{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#e1f4ef}.lobby-author b{font:8px monospace;color:#80dbb1;border:1px solid #3c7769;padding:2px 4px;border-radius:3px}.lobby-author time{font:9px monospace;color:#7d9eae}.lobby-company{display:block;color:#82a8bc;font-size:9px;line-height:1.4;margin-top:3px;overflow-wrap:anywhere}.lobby-message p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.65;margin:6px 0 0}.lobby-message.mine .lobby-author strong{color:#8af0c2}.lobby-reply-button,.lobby-thread-toggle{font:10px monospace;padding:4px 7px;min-height:25px;box-shadow:none;margin-top:7px;background:transparent;border-color:#34576c;color:#91cbdc}.lobby-thread{border-bottom:1px solid #29495a;padding-bottom:7px}.lobby-thread-toggle{margin:0 0 8px 49px}.lobby-reply{margin-left:25px;padding-left:12px;border-left:2px solid #3f8491}.lobby-reply .lobby-avatar{width:30px;height:30px;flex-basis:30px;padding:4px}.lobby-expired{font-size:10px;font-style:italic;color:#8ba4b2;padding:7px 0}.lobby-compose{border-top:1px solid #36566c;padding:12px 16px;background:#102f43;flex:none}.lobby-compose textarea{display:block;width:100%;resize:none;min-height:60px;max-height:120px;background:#061e30;border:1px solid #4f7d96;color:#e8f6f2;font:13px/1.5 inherit;padding:10px;border-radius:6px;box-sizing:border-box}.lobby-compose textarea:focus{outline:2px solid #6ed9c9;outline-offset:1px}.lobby-send-row{display:flex;align-items:center;gap:10px;margin-top:9px}.lobby-send-row>small{font-size:9px;line-height:1.5;flex:1;color:#9fc2ce}.lobby-send-row button{padding:8px 12px;min-height:38px;flex:none}.lobby-error{font-size:11px;color:#ffc0a0;padding:0 16px;line-height:1.5;margin:0;background:#102f43}.lobby-error:not(:empty){padding:8px 16px}.lobby-reply-context{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#96e0d4;padding-bottom:9px}.lobby-reply-context button{padding:3px 8px;min-height:26px;box-shadow:none}.lobby-emojis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;margin:10px 0}.lobby-emojis button{font-size:22px;min-height:34px;padding:3px;box-shadow:none}.lobby-roster{min-height:0;overflow-y:auto;border-left:1px solid #36566c;background:#0d2a3c;padding:18px 12px}.lobby-roster h3{font:10px monospace;letter-spacing:1px;color:#93bcca;margin:0 0 14px}.lobby-player{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 0}.lobby-player>span:not(.lobby-avatar){min-width:0;flex:1}.lobby-player strong{font-size:11px;display:block;overflow-wrap:anywhere}.lobby-player small{display:block;font-size:9px;color:#8aafc1;line-height:1.5;overflow-wrap:anywhere;margin-top:3px}.lobby-player i{display:block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#7ce2ab;box-shadow:0 0 8px #7ce2ab44}.lobby-history{font-size:10px;padding:7px;margin:8px 15px;box-shadow:none}.lobby-entry{padding:12px 18px;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body.touch-device #online-button .online-label{display:none}body.touch-device #online-button{width:52px;min-width:45px;padding:0 6px;gap:5px}body.touch-driving .touch-actions #online-button{position:relative;inset:auto;transform:none;flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;height:44px;min-height:44px;max-height:44px;padding:0;box-shadow:none;margin:0}body.touch-driving .touch-actions #online-button b{position:absolute;right:1px;bottom:2px;font-size:8px}.lobby-panel button:focus-visible{outline:2px solid #80ecd3;outline-offset:2px}@media(max-width:650px){.lobby-overlay{padding:6px}.lobby-panel{height:calc(100dvh - 12px);border-radius:9px}.lobby-header{padding:14px 12px}.lobby-header h2{font-size:21px}.lobby-header p{font-size:10px}.lobby-main{display:flex;flex-direction:column-reverse}.lobby-chat{flex:1;min-height:0}.lobby-roster{flex:none;max-height:92px;overflow:hidden;border-left:none;border-bottom:1px solid #36566c;padding:8px 12px}.lobby-roster h3{margin:0 0 3px;font-size:9px}.lobby-players{display:flex;gap:12px;overflow-x:auto;padding-bottom:3px}.lobby-player{min-width:150px;max-width:190px;padding:4px 0}.lobby-player .lobby-avatar{width:30px;height:30px;flex-basis:30px;padding:4px}.lobby-messages{padding:10px 12px}.lobby-compose{padding:9px 10px}.lobby-send-row>small{font-size:8px}.lobby-send-row{gap:7px}.lobby-reply{margin-left:12px}.lobby-emojis{grid-template-columns:repeat(8,minmax(0,1fr))}.lobby-emojis button{font-size:20px}.lobby-roster .lobby-empty{padding:0;font-size:10px}}@media(max-height:450px){.lobby-header{padding:8px 12px}.lobby-header h2{font-size:18px;margin:3px 0}.lobby-header p{font-size:9px}.lobby-compose textarea{min-height:42px;height:42px}.lobby-send-row>small{display:none}.lobby-send-row{margin-top:5px}.lobby-roster{max-height:65px}.lobby-roster h3{display:none}.lobby-message{padding:6px 0}.lobby-emojis{grid-template-columns:repeat(12,minmax(0,1fr));margin:5px 0}.lobby-emojis button{font-size:18px;min-height:26px}.lobby-main{display:grid;grid-template-columns:minmax(0,1fr) 180px}.lobby-roster{max-height:none;overflow-y:auto;border-left:1px solid #36566c}.lobby-players{display:block;overflow:visible}}
.lobby-header{position:static;height:auto;min-height:0}.lobby-compose textarea{font:13px/1.5 system-ui,sans-serif}

.lobby-crown{background:#4a361c;border-color:#e8c46c;box-shadow:0 0 12px #e8bf5a33}

.rival-alert{position:fixed;left:50%;top:90px;transform:translateX(-50%);z-index:75;max-width:460px;width:calc(100% - 32px);padding:12px;background:#572a25f5;border:2px solid #edb66d;color:#ffe3b2;box-shadow:0 5px 20px #0006;font:11px/1.5 monospace}.rival-alert[hidden]{display:none}.rival-alert strong,.rival-alert span{display:block}.rival-alert button{margin-top:8px;min-height:36px}@media(max-width:650px){.rival-alert{top:72px;font-size:9px;padding:8px;max-width:350px}}

.daily-reel{transition:none;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translate3d(0,0,0)}.daily-reel-window{-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}

/* Fit the live visible viewport above iOS/Android keyboards. */
.lobby-overlay{top:var(--lobby-top,0px);bottom:auto;height:var(--lobby-height,100dvh);box-sizing:border-box}.lobby-overlay .lobby-panel{height:min(760px,100%);max-height:100%;min-height:0}.lobby-emojis{max-height:110px;overflow-y:auto}
@media(max-width:900px),(pointer:coarse){.lobby-compose textarea{font-size:16px}.lobby-keyboard{padding:4px}.lobby-keyboard .lobby-header{padding:8px 10px;align-items:center}.lobby-keyboard .lobby-header h2{font-size:18px;margin:0}.lobby-keyboard .lobby-header .label,.lobby-keyboard #lobby-status,.lobby-keyboard .lobby-roster,.lobby-keyboard #lobby-text-help{display:none}.lobby-keyboard .lobby-main{display:flex;flex-direction:column}.lobby-keyboard .lobby-chat{flex:1}.lobby-keyboard .lobby-messages{padding:7px 10px}.lobby-keyboard .lobby-compose{padding:7px;gap:5px}.lobby-keyboard .lobby-compose textarea{height:44px;min-height:44px;max-height:70px;padding:9px}.lobby-keyboard .lobby-send-row{gap:6px}.lobby-keyboard .lobby-send-row button{min-height:36px;padding:6px 12px}.lobby-keyboard .lobby-error{margin:0;padding:0 8px;font-size:10px}.lobby-keyboard .lobby-error:empty{display:none}.lobby-keyboard .lobby-emojis{max-height:72px}}

/* Each notification expires independently and can be dismissed with a thumb. */
.crew-toast{position:relative;padding:12px 54px 12px 12px;pointer-events:auto;overflow-wrap:anywhere;animation:notification-life var(--toast-life,6000ms) linear both}.crew-toast span{line-height:1.45}.notification-dismiss,.rival-alert .notification-dismiss{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:8px;background:#051c3077;color:#f0f8ff;font:19px/1 system-ui;touch-action:manipulation;cursor:pointer}.notification-dismiss:active{background:#06182c;transform:scale(.94)}.rival-alert{padding-right:54px;animation:notification-life 6000ms linear both}.rival-alert>button:not(.notification-dismiss){min-height:44px}.crew-alerts[hidden],.rival-alert[hidden]{display:none!important}
@keyframes notification-life{0%,90%{opacity:1}100%{opacity:0}}
@media(max-width:700px),(pointer:coarse){.crew-alerts{top:auto;bottom:calc(242px + env(safe-area-inset-bottom));left:10px;right:10px;width:auto;max-width:400px;margin:0 auto;gap:6px}.crew-toast{padding:10px 54px 10px 12px}.crew-toast b{font-size:10px}.crew-toast span{font-size:11px}.rival-alert{top:auto;bottom:calc(242px + env(safe-area-inset-bottom));max-width:400px;width:calc(100% - 20px);font-size:10px;padding:10px 54px 10px 12px}}
@media(max-height:500px) and (orientation:landscape){.crew-alerts{left:50%;right:auto;bottom:calc(76px + env(safe-area-inset-bottom));width:min(340px,48vw);transform:translateX(-50%)}.rival-alert{top:54px;bottom:auto;width:min(340px,48vw)}.crew-toast span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.crew-toast,.rival-alert{animation:none}}
.crew-toast,.rival-alert{touch-action:pan-y}.notification-dismiss:focus-visible{outline:2px solid #9be8ff;outline-offset:2px}
@media(max-width:700px),(pointer:coarse){body.touch-driving #crew-alerts{top:auto;bottom:calc(242px + env(safe-area-inset-bottom));left:10px;right:10px;width:auto;max-width:400px;transform:none}}
@media(max-height:500px) and (orientation:landscape){body.touch-driving #crew-alerts{top:auto;bottom:calc(76px + env(safe-area-inset-bottom));left:50%;right:auto;width:min(340px,48vw);max-width:48vw;transform:translateX(-50%)}}

#mobile-daily-bonus{display:none}body.touch-device #game-header .pool-brand-lockup #mobile-daily-bonus:not([hidden]){display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:56px;height:36px;min-height:36px;padding:5px 8px;border:1px solid #d7bc6e;border-radius:5px;background:#2a443d;color:#ffe49a;font:bold 10px/1 monospace;white-space:nowrap;touch-action:manipulation}#mobile-daily-bonus[hidden]{display:none!important}@media(max-width:360px){body.touch-device #game-header .pool-brand-lockup #mobile-daily-bonus:not([hidden]){font-size:9px;padding:5px;min-width:48px}}

#mobile-speed-boost{display:none}body.touch-device #game-header .pool-brand-lockup #mobile-speed-boost:not([hidden]){display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:48px;height:36px;padding:4px 6px;border:1px solid #a5d96c;border-radius:5px;background:#234136;color:#d3ffa6;font:bold 10px/1 monospace;white-space:nowrap;box-sizing:border-box}#mobile-speed-boost[hidden]{display:none!important}body.touch-device #fuel-status{display:none!important}
@media(max-width:700px){body.touch-device.touch-driving #game-header>div.pool-brand-lockup{gap:6px}}
@media(max-width:360px){body.touch-device.touch-driving #game-header>div.pool-brand-lockup{gap:4px}body.touch-device #game-header .pool-brand-lockup .brand{font-size:19px}body.touch-device #game-header .pool-brand-lockup #mobile-daily-bonus:not([hidden]){font-size:8px;min-width:44px;padding:4px}body.touch-device #game-header .pool-brand-lockup #mobile-speed-boost:not([hidden]){font-size:9px;min-width:44px;padding:4px}}
body.touch-device #daily-bonus-map-status{display:none!important}
/* Portrait: one four-column action grid beside the steering pad. */
.portrait-action-grid{display:contents}
@media(orientation:portrait){
 body.touch-driving #touch-driving-controls{bottom:calc(54px + env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));display:grid;grid-template-columns:100px minmax(0,1fr);grid-template-rows:auto;gap:8px;align-items:center;justify-content:normal}
 body.touch-driving #touch-driving-controls .drive-pad{grid-area:1/1;width:100px;height:100px;margin:0;box-shadow:0 4px 0 #031522,0 0 0 5px #061c2cd9}
 body.touch-driving #touch-driving-controls .drive-stick{width:44px;height:44px}
 body.touch-driving #touch-driving-controls .touch-actions{display:contents}
 body.touch-driving #touch-driving-controls .portrait-action-grid{grid-area:1/2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;max-width:none;max-height:180px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;justify-self:stretch;align-self:center;pointer-events:auto}
 body.touch-driving #touch-driving-controls .touch-secondary,body.touch-driving #touch-driving-controls #mobile-powerup-slot,body.touch-driving #touch-driving-controls #mobile-powerup-slot .quick-powerups{display:contents}
 body.touch-driving #touch-driving-controls .portrait-action-grid button{grid-area:auto;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;max-width:none;height:42px;min-height:42px;max-height:42px;aspect-ratio:auto;padding:2px 5px;margin:0;border-radius:6px;font:8px monospace;line-height:1.15;box-shadow:none;overflow-wrap:anywhere;pointer-events:auto;touch-action:manipulation}
 body.touch-driving #touch-driving-controls .portrait-action-grid button[aria-label="Pause driving"]{display:none}
 body.touch-driving #touch-driving-controls .portrait-action-grid svg{width:22px;height:22px;pointer-events:none}
 body.touch-driving .mapwrap{width:100%;max-width:100%;margin-inline:0}
}
@media(orientation:portrait) and (max-width:360px){body.touch-driving #touch-driving-controls{grid-template-columns:94px minmax(0,1fr);gap:6px}body.touch-driving #touch-driving-controls .drive-pad{width:94px;height:94px}}
@media(orientation:portrait){body.touch-driving .mapwrap{height:calc(100dvh - 332px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}body.touch-driving #world{height:100%;width:100%;aspect-ratio:auto;object-fit:cover}body.touch-driving #touch-landscape-radar{display:block;position:absolute;top:4px;right:6px;width:90px;height:auto;z-index:4;image-rendering:pixelated;background:#09273ad9;border-radius:8px}}

/* Stable money readouts as balances and income grow. */
.stats .stat{min-width:0}.stats .stat #cash,.stats .stat #earn{font-size:17px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.wallet strong{font-size:18px;white-space:nowrap;font-variant-numeric:tabular-nums}body.touch-device .wallet strong{font-size:16px}body.touch-driving .stats .stat #cash,body.touch-driving .stats .stat #earn{font-size:12px;line-height:1.4}

/* Keep handbook navigation visible while long topics scroll. */
#instructions-overlay .instructions-window{display:flex;flex-direction:column;overflow:hidden;height:min(850px,92dvh)}#instructions-overlay .instructions-tabs{flex:none}#instructions-overlay .feature-topline,#instructions-overlay .instructions-footer{flex:none}#instructions-overlay .instructions-panel{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}#instructions-overlay .instructions-panel td{overflow-wrap:anywhere}@media(max-width:650px){#instructions-overlay .instructions-tabs{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:max-content;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;max-width:100%}#instructions-overlay .instructions-tabs button{white-space:nowrap}#instructions-overlay .instructions-window{height:calc(100dvh - 22px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}

/* Portrait supply warning joins the bonus statuses instead of taking map space. */
#mobile-supplies-alert,#mobile-supplies-alert[hidden]{display:none!important}@media(orientation:portrait){body.touch-device #game-header .pool-brand-lockup #mobile-supplies-alert:not([hidden]){display:inline-flex!important;align-items:center;justify-content:center;flex:none;min-width:44px;height:36px;min-height:36px;padding:4px;border:1px solid #e3b269;border-radius:5px;background:#443722;color:#ffe0a0;font:bold 9px/1 monospace;white-space:nowrap;touch-action:manipulation}body.touch-device #game-header .pool-brand-lockup #mobile-supplies-alert.supplies-empty{background:#512d30;border-color:#ef8e85;color:#ffe3da}body.touch-device #supplies-alert{display:none!important}}@media(orientation:portrait) and (max-width:360px){body.touch-device #game-header .pool-brand-lockup #mobile-supplies-alert:not([hidden]){min-width:38px;font-size:8px;padding:3px}}

.crew-capacity{padding:14px;border:1px solid #56b8b3;border-radius:7px;background:#103d45;margin:12px 0;display:grid;gap:7px}.crew-capacity strong{color:#a5f2d4}.crew-capacity span,.crew-capacity small{font-size:11px;line-height:1.5}.crew-capacity-full{border-color:#e5b86c;background:#413626}.crew-capacity-full strong{color:#ffe0a1}.crew-capacity-meter{height:9px;border-radius:6px;background:#071f30;overflow:hidden}.crew-capacity-meter i{display:block;height:100%;background:#75d9b4}.crew-capacity-full .crew-capacity-meter i{background:#ecc36d}.weekly-tech-capacities{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.weekly-tech-capacities>div{padding:9px 12px;border:1px solid #467b8a;background:#102f44;border-radius:5px;display:grid;gap:5px;font-size:11px}.weekly-capacity-hint{display:block;color:#a0e5c4;font-size:10px;line-height:1.5;margin:6px 0}.route-income-table option:disabled{color:#8a9daa}

.crew-layout>*{min-width:0}.tech-detail{min-width:0;max-width:100%}.tech-profile>div{min-width:0}.crew-capacity{position:sticky;top:0;z-index:2;box-shadow:0 4px 12px #04172399}@media(max-width:650px){.crew-layout{grid-template-columns:minmax(0,1fr)}.tech-detail .shoprow>span{overflow-wrap:anywhere}}

.departure-road-rules{padding:14px 16px;border:1px solid #5cb6d0;border-radius:7px;background:#103448;margin:14px 0}.departure-road-rules strong{font:bold 12px/1.5 monospace;color:#b5edff}.departure-road-rules p{font-size:13px;line-height:1.6;margin:8px 0}.departure-road-rules p:last-child{margin-bottom:0}.departure-road-rules.road-rules-start{background:#403524;border-color:#e3b76f}.departure-road-rules.road-rules-start strong{color:#ffe0a2}

/* A closer, proportional mobile camera tracks the van inside the driving viewport. */
body.touch-driving .mapwrap #world{position:absolute;left:0;top:0;max-width:none;max-height:none;transform-origin:0 0}

#mobile-driving-status{display:contents}#driving-zoom-controls{display:none}@media(orientation:portrait){body.touch-device.touch-driving #game-header>div.pool-brand-lockup{flex-wrap:wrap;row-gap:5px;height:auto;min-height:38px}body.touch-device.touch-driving #mobile-driving-status{display:flex;flex:0 0 auto;max-width:100%;align-items:center;gap:5px;min-width:0}body.touch-device.touch-driving #driving-zoom-controls{display:inline-flex;align-items:center;flex:none;height:36px;border:1px solid #6495b0;border-radius:5px;background:#102e43;overflow:hidden}body.touch-device.touch-driving #driving-zoom-controls button{display:grid;place-items:center;width:32px;min-width:32px;min-height:36px;height:36px;padding:0;border:0;border-radius:0;box-shadow:none;font:bold 20px/1 monospace;background:#193d53;color:#cef3ff;touch-action:manipulation}body.touch-device.touch-driving #driving-zoom-level{width:42px;text-align:center;font:10px monospace;color:#d0e8ee}body.touch-device.touch-driving #driving-zoom-controls button:disabled{opacity:.35}}

#service-speedup{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}#service-speedup svg{width:18px;height:18px;flex:none}

body.touch-cleaning .cleaning-console #service-speedup{grid-area:6/1;font-size:10px}body.touch-cleaning .cleaning-console #finish-btn{grid-area:6/2}body.touch-cleaning .cleaning-console #dose{grid-column:1/-1;grid-row:5}body.touch-cleaning .cleaning-console #chem-feedback{grid-row:7}

@media(orientation:portrait){body.touch-driving #game-header #header-map{width:30px;min-width:30px;height:30px;min-height:30px;padding:5px}body.touch-driving #game-header #header-map svg{width:18px;height:18px}}

@media(orientation:portrait){body.touch-driving .notice{line-height:1.4;margin:6px 0;max-height:42px}}

/* Native editing gestures stay out of active mobile gameplay. Vertical inventory scrolling remains available. */
body.mobile-play-input{touch-action:pan-y;overscroll-behavior:none}
body.mobile-play-input,body.mobile-play-input *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
body.mobile-play-input :is(input,textarea,select,[contenteditable]:not([contenteditable="false"])){user-select:text;-webkit-user-select:text;-webkit-touch-callout:default;touch-action:auto}

.character-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.character-choice{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 10px;min-width:0}.character-choice svg{width:110px;max-width:100%;height:130px}.character-choice strong{font-size:25px;letter-spacing:-1px}.character-choice.boy strong span{color:#37b9ef}.character-choice.girl strong span{color:#ef75af}.character-choice small{font:10px monospace;overflow-wrap:anywhere}.character-choice:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(max-width:420px){.character-choice-grid{gap:8px}.character-choice{padding:16px 6px}.character-choice strong{font-size:21px}}
