:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#f8fafc;background:#101b27;font-synthesis:none;--edge-l: max(12px, env(safe-area-inset-left));--edge-r: max(12px, env(safe-area-inset-right));--edge-t: max(10px, env(safe-area-inset-top));--edge-b: max(10px, env(safe-area-inset-bottom));--pad: clamp(54px, 15vh, 86px);--stick-r: clamp(36px, 11vh, 56px);--panel: rgba(10, 18, 28, .78);--line: rgba(255, 255, 255, .16);--amber: #f2b233;--cyan: #2fd3ff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{padding:0;margin:0;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none}#renderCanvas{display:block;width:100vw;height:100vh;height:100dvh;outline:none;touch-action:none}.hud{position:fixed;inset:0;pointer-events:none;z-index:2;user-select:none;-webkit-user-select:none}.hud>*{z-index:1}button{font:inherit;touch-action:none;cursor:pointer;pointer-events:auto;color:#fff;background:var(--panel);border:1px solid rgba(255,255,255,.32);box-shadow:0 4px 12px #00000038;font-weight:800}button.primary{background:#e8b348;color:#172231;border-color:#f5cf7b}button.primary.unavailable{background:#3c424ad1;color:#cfd6de;border:1px dashed rgba(255,255,255,.4);font-weight:700}button.active{background:#e8ae3c;color:#142232}button.pressed{transform:scale(.97);filter:brightness(1.12)}.panel,.objective,.telemetry,.toast,.minimap{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 18px #00000038}.pause-button{position:absolute;left:var(--edge-l);top:var(--edge-t);width:44px;height:44px;border-radius:12px;font-size:18px}.left-stack{position:absolute;left:calc(var(--edge-l) + 52px);top:var(--edge-t);width:min(350px,38vw);display:flex;flex-direction:column;align-items:flex-start;gap:6px}.objective{display:grid;gap:3px;padding:8px 12px;border-left:3px solid var(--amber);max-width:100%}.objective strong{font-size:14px;line-height:1.2;color:#fff3d0;letter-spacing:.01em}#objective-detail{font-size:11.5px;color:#c9d4e0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.objective-row{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:3px}.chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:#e8eef5;white-space:nowrap;background:#ffffff1a;padding:3px 8px;border-radius:999px;border:1px solid transparent}.chip[hidden],.chip-button[hidden]{display:none}.chip.dist{background:#2fd3ff33;color:#d8f4ff;border-color:#2fd3ff80;font-variant-numeric:tabular-nums}.chip.cargo{background:#f2b23338;color:#ffe7b0;border-color:#f2b2338c}.chip.cargo.hands{background:var(--amber);color:#172231;border-color:#ffd98a}.chip.mine{border-color:#f2b233b3;color:#ffe7b0;font-variant-numeric:tabular-nums}.chip.team{background:#ffffff0f;color:#b8c4d1;font-weight:600;font-variant-numeric:tabular-nums}.chip-button{font-size:11px;padding:6px 11px;min-height:28px;border-radius:999px;background:#e8b348;color:#172231;border-color:#f5cf7b}.base-status{display:none;gap:2px;margin-top:3px;padding-top:4px;border-top:1px solid var(--line);font-size:10.5px;color:#d6e2ec;font-variant-numeric:tabular-nums}.base-status span{display:block;line-height:1.3}.base-status span+span{color:#ffd98a}.toast{padding:7px 12px;font-size:12.5px;font-weight:700;color:#fff3d0;border-color:#f2b23373;max-width:100%;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,transform .18s,visibility 0s .18s}.toast.visible{opacity:1;visibility:visible;transform:none;transition:opacity .18s,transform .18s}.telemetry{position:absolute;right:var(--edge-r);top:var(--edge-t);display:flex;align-items:center;gap:10px;padding:3px 12px 4px}.telemetry .clock{font-size:13px;font-weight:800;color:#ffe08f;font-variant-numeric:tabular-nums}.telemetry .clock.off-shift{color:#b8c2cf}.telemetry .speed{display:inline-flex;align-items:baseline;gap:4px;padding-left:10px;border-left:1px solid rgba(255,255,255,.2)}.telemetry .speed strong{font-size:clamp(20px,5vh,28px);min-width:1.6ch;text-align:right;font-variant-numeric:tabular-nums}.telemetry .speed span{font-size:11px;color:#b8c2cf}.minimap{position:absolute;right:var(--edge-r);top:calc(var(--edge-t) + 50px);width:clamp(110px,30vh,168px);pointer-events:auto;cursor:pointer;overflow:hidden;touch-action:none;border-color:#ffffff47;border-radius:14px}.minimap canvas{display:block;width:100%;aspect-ratio:1}.minimap-bar{display:flex}.nav-turn{flex:1;text-align:center;padding:3px 6px 4px;font-size:14px;font-weight:800;color:#fff;letter-spacing:.02em;background:#075a75;border-top:1px solid rgba(47,211,255,.6);font-variant-numeric:tabular-nums;white-space:nowrap}.nav-turn[hidden],.minimap-legend{display:none}.pad{position:absolute;bottom:var(--edge-b);display:grid;gap:10px}.pad-right{right:var(--edge-r);grid-template-columns:repeat(2,var(--pad))}.pad button{height:var(--pad);border-radius:20px;font-size:clamp(22px,5vh,30px);line-height:1}.pad button small{display:block;font-size:8px;letter-spacing:.02em;margin-top:4px}.pad button.wide{grid-column:1 / -1;height:auto;min-height:clamp(48px,14vh,60px);padding:6px 8px;font-size:14.5px;line-height:1.15;border-radius:16px;white-space:normal}.joystick-zone{position:absolute;left:0;bottom:0;width:min(40vw,400px);height:62vh;z-index:0;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.stick-base{position:absolute;width:calc(var(--stick-r) * 2.7);height:calc(var(--stick-r) * 2.7);left:calc(var(--edge-l) + var(--stick-r) * 1.35 + 4px);top:calc(100% - var(--edge-b) - var(--stick-r) * 1.35 - 4px);transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;opacity:.55;transition:opacity .12s;background:radial-gradient(circle at center,#182b3b80 0 30%,#101c2a8c 32% 64%,#0e1925b8);border:2px solid rgba(255,255,255,.42);box-shadow:0 6px 20px #00000040,inset 0 0 0 7px #ffffff0d}.joystick-zone.engaged .stick-base{opacity:1;border-color:#f8cb72d9;transition:none}.joystick-thumb{position:absolute;left:50%;top:50%;width:calc(var(--stick-r) * 1.1);height:calc(var(--stick-r) * 1.1);border-radius:50%;transform:translate(-50%,-50%);will-change:transform;pointer-events:none;background:radial-gradient(circle at 34% 29%,#f8d68d,#dba135 78%);border:3px solid rgba(255,245,208,.87);box-shadow:0 3px 10px #00000059}.hud[data-context=riding] #cargo-status,.hud[data-context=riding] #team-progress,.hud[data-context=walking] #team-progress,.hud[data-context=walking] #objective-distance,.hud[data-context=base] #objective-distance{display:none}.hud[data-context=base] .base-status{display:grid}.hud[data-context=base] .objective{border-left-color:#ffd84a}.hud[data-mode=walking] .telemetry .speed{display:none}.hud[data-mode=walking] .pad [data-control]{opacity:.55}.minimap.expanded{position:fixed;z-index:5;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);width:min(calc(90vh + 140px),96vw,780px);display:grid;grid-template-columns:1fr auto;background:#0d1620;border-color:#ffffff59;box-shadow:0 0 0 100vmax #05090e8c,0 10px 30px #00000080}.minimap.expanded canvas{grid-row:span 2}.minimap.expanded .minimap-bar{display:none}.minimap.expanded .minimap-legend{display:grid;align-content:start;gap:clamp(2px,1vh,6px);list-style:none;margin:0;padding:10px 12px 0 8px;width:140px;font-size:clamp(10px,2.8vh,12px);color:#e8eef5}.minimap.expanded .minimap-legend li{display:flex;align-items:center}.minimap.expanded .minimap-legend i{display:inline-grid;place-items:center;width:18px;height:18px;flex:none;border-radius:50%;margin-right:6px;color:#152230;font-style:normal;font-weight:800;font-size:10px}.minimap.expanded .minimap-legend i.sq{border-radius:3px}.minimap.expanded .minimap-legend i.sq.next{background:#fff;color:#ff5a3c;box-shadow:0 0 0 2px #ff5a3c}.minimap.expanded .minimap-legend i.line{height:4px;border-radius:2px;background:var(--cyan);box-shadow:0 0 0 1.5px #032b3d}.minimap.expanded .minimap-legend i.sectors{border-radius:3px;background:conic-gradient(from 45deg,#4da6de 0 25%,#60ac67 0 50%,#bf7dcb 0 75%,#e4a949 0);opacity:.85}.minimap.expanded .minimap-legend .credit{font-size:9.5px;color:#8fa3b8;margin-top:4px}.devtime{position:absolute;left:50%;bottom:var(--edge-b);transform:translate(-50%);display:flex;gap:4px;align-items:center;padding:4px 6px;background:var(--panel);border-radius:10px;font-size:10px;color:#c3cedb;opacity:.85}.devtime[hidden]{display:none}.devtime button{padding:4px 6px;border-radius:7px;font-size:10px}.pause{position:fixed;inset:0;z-index:8;display:grid;place-items:center;background:#080e169e;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.pause[hidden]{display:none}.pause-card{width:min(92vw,520px);max-height:90vh;overflow:auto;background:#132231;border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:18px 20px;display:grid;gap:10px}.pause-card h2{margin:0;font-size:18px;letter-spacing:.04em}.pause-card h2 small{display:block;font-size:10px;color:#f5c25a;letter-spacing:.14em;margin-top:2px}.pause-actions{display:flex;gap:10px}.pause-actions button{padding:12px 18px;border-radius:12px;font-size:14px;min-height:46px}.about-notice{margin:0;color:#ffe08f;font-weight:800;font-size:12px;letter-spacing:.05em}.about-text{margin:0;font-size:12px;color:#c9d4e0;line-height:1.45}.about-text a{color:#f2c230}#fps{color:#8ed0a2;font-variant-numeric:tabular-nums}#logistics-panel{border:1px solid #4c6265;border-radius:8px;padding:10px;font-size:13px}#logistics-panel summary{padding:6px 0;cursor:pointer;font-weight:700}.logistics-lines p{margin:7px 0;line-height:1.4}#release-team{min-height:48px;margin:8px 0;padding:10px;font-size:13px}#release-team:disabled{opacity:.55}#game-calendar{margin-top:12px;border-top:1px solid rgba(255,255,255,.22);padding-top:8px}#game-calendar summary{color:#ffdb88;font-weight:800;cursor:pointer}.calendar-current{color:#dceaf1;font-size:12px;line-height:1.4}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(61px,1fr));gap:4px;overflow-x:auto;padding-bottom:5px}.calendar-day{display:flex;flex-direction:column;align-items:center;gap:3px;background:#162630;color:#e1ecf2;border:1px solid #435864;border-radius:7px;padding:6px 2px;font-size:10px;min-width:0}.calendar-day strong{font-size:11px}.calendar-day small{font-size:9px}.calendar-day span{font-weight:750;font-size:9px;color:#ffd48a}.calendar-day.selected{background:#37506a;border-color:#ffd48a;box-shadow:inset 0 0 0 1px #ffda85}#next-workday{min-height:44px;margin-top:8px;padding:9px 14px;border-radius:9px;background:#c68e33;color:#15232a;font-weight:800;font-size:12px}#next-workday:disabled{opacity:.45}.calendar-note{font-size:10px;color:#b2c1cd;line-height:1.35}.fatal,.portrait-warning{position:fixed;inset:0;z-index:9;background:#101b27;align-items:center;justify-content:center;text-align:center;padding:25px;font-weight:700;display:flex}.fatal[hidden],.portrait-warning{display:none}.portrait-message{width:min(100%,420px);display:grid;gap:12px;justify-items:center}.portrait-message strong{font-size:clamp(22px,5vw,28px)}.portrait-message p{margin:0;font-weight:500;line-height:1.5;color:#d4dee8}.portrait-message .landscape-start{min-height:54px;width:min(100%,320px);padding:12px 18px;border-radius:14px;font-size:16px;touch-action:manipulation;background:#e8b348;color:#172231;border:1px solid #f5cf7b}.portrait-message .landscape-start:disabled{opacity:.7}.portrait-message .landscape-feedback{font-size:12px;line-height:1.45;min-height:32px;color:#d0d9e5}@media(orientation:portrait)and (max-width:900px){.portrait-warning{display:flex}}@media(pointer:coarse){#tips,.keys{display:none}}@media(pointer:fine)and (min-height:481px){:root{--pad: 60px}.pad{opacity:.82}}@media(max-height:480px){#tips,.keys{display:none}.left-stack{width:min(318px,40vw);gap:5px}.objective{gap:2px;padding:5px 9px 6px}.objective strong{font-size:12.5px}#objective-detail{-webkit-line-clamp:1;font-size:10.5px}.objective-row{margin-top:1px}.chip{font-size:9.5px;padding:2px 6px}.chip-button{padding:4px 8px;min-height:24px;font-size:10px;white-space:nowrap}.base-status{font-size:9.5px}.hud[data-context=base] #objective-detail{display:none}.toast{font-size:11.5px;padding:5px 10px}.telemetry .clock{font-size:12px}.minimap{top:calc(var(--edge-t) + 44px)}.nav-turn{font-size:12.5px;padding:2px 6px 3px}.pad button.wide{font-size:13px}}.vehicle-choice{z-index:9}.vehicle-options button{flex:1;display:grid;gap:2px;min-height:64px}.vehicle-options button small{font-size:11px;font-weight:500;opacity:.8}
