:root{--bg:#1a0f0d;--panel:#2a1814;--text:#f0e0d0;--muted:#a88d7c;--accent:#e07a3f;color:var(--text);background:var(--bg);font-family:Space Grotesk,system-ui,sans-serif}html,body,#root{height:100%;margin:0}.app{flex-direction:column;height:100%;display:flex}.hud{background:var(--panel);border-bottom:1px solid #000;align-items:center;gap:20px;padding:8px 16px;display:flex}.title{letter-spacing:.02em;font-weight:700}.clock{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:6px;min-width:150px;display:inline-flex}.sundial{flex-shrink:0;overflow:visible}.sundial .sky.day{fill:#d98a5c}.sundial .sky.night{fill:#2b2140}.sundial .sun{fill:#ffe7a8}.sundial .moon{fill:#e8e2d4}.sundial .moon-cut.day{fill:#d98a5c}.sundial .moon-cut.night{fill:#2b2140}.sundial .horizon{stroke:var(--muted);stroke-width:1px}.tick{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.speeds{display:flex}.speeds button{color:var(--text);border:1px solid var(--muted);cursor:pointer;font:inherit;background:0 0;border-radius:0;padding:3px 10px;position:relative}.speeds button+button{margin-left:-1px}.speeds button:first-child{border-radius:4px 0 0 4px}.speeds button:last-child{border-radius:0 4px 4px 0}.speeds button.on{z-index:1;background:var(--accent);border-color:var(--accent);color:#1a0f0d}.pixi-host{flex:1;min-height:0;overflow:hidden}.status{background:var(--panel);color:var(--muted);font-variant-numeric:tabular-nums;border-top:1px solid #000;padding:6px 16px;font-size:13px}.status.bad{color:#f08a70}.main{flex:1;min-height:0;display:flex}.main .pixi-host{flex:1}.room-btn{color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:4px 6px;font-size:13px;display:flex}.room-btn:hover{background:#3a241d}.room-btn.on{border-color:var(--accent);background:#3a241d}.room-btn .name{flex:1}.room-btn .size{color:var(--muted);font-size:11px}.room-btn .swatch{background:var(--cat);border-radius:2px;width:10px;height:10px}kbd{border:1px solid var(--muted);border-radius:3px;padding:0 3px;font-size:10px}.stock,.drill{font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:flex}.drill button{color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:12px}.room-btn.short .name{color:var(--muted)}.inspector{background:var(--panel);border-left:1px solid #000;flex-direction:column;flex-shrink:0;gap:6px;width:240px;padding:10px 12px;font-size:13px;display:flex;overflow-y:auto}.inspector header{justify-content:space-between;align-items:center;display:flex}.inspector h2{margin:0;font-size:15px}.inspector header button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:18px}.inspector p{margin:0}.inspector .k{color:var(--muted);margin-right:4px}.inspector .warn{color:#ff9a7c}.inspector label{align-items:center;gap:6px;display:flex}.inspector select{color:var(--text);border:1px solid var(--muted);font:inherit;background:#1a0f0d;border-radius:4px;flex:1;padding:2px 4px}.inspector .danger{color:#f08a70;font:inherit;cursor:pointer;background:0 0;border:1px solid #f08a70;border-radius:4px;margin-top:8px;padding:4px}.view{flex:1;min-width:0;display:flex;position:relative}.messages{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;max-width:420px;display:flex;position:absolute;top:10px;right:12px}.event-cards{z-index:3;zoom:var(--ui-scale,1);flex-direction:column;gap:8px;width:320px;display:flex;position:absolute;top:36px;left:12px}.event-card{border:1px solid #000;border-left:3px solid var(--accent);background:#1e110df5;border-radius:6px;flex-direction:column;gap:6px;padding:8px 10px;font-size:13px;animation:.35s ease-out event-in;display:flex;box-shadow:0 6px 24px #00000073}.event-card p{margin:0}.event-card .title{color:var(--accent);font-size:14px;font-weight:600}.event-card .icon{width:1.2em;display:inline-block}.event-card.belt_ship{border-left-color:#6fb0ff}.event-card.gas_pocket{border-left-color:#ff7a5c}.event-card.celebration{border-left-color:#f2c84b}@keyframes event-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}.msg{border:1px solid #000;border-left:3px solid var(--muted);pointer-events:auto;background:#1e110deb;border-radius:4px;align-items:flex-start;gap:4px;padding:6px 4px 6px 10px;font-size:13px;display:flex}.msg .dismiss{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;min-width:24px;min-height:24px;margin:-4px 0;padding:0;font-size:16px;line-height:1}.msg .dismiss:hover{color:var(--text);background:#ffffff14}@media (pointer:coarse){.msg .dismiss{min-width:36px;min-height:36px;margin:-10px -2px -10px 0}}.msg.good{border-left-color:#8fcf6f}.msg.warn{border-left-color:#ff7a5c}.legend{color:var(--muted);align-items:center;gap:4px;margin-left:6px;display:inline-flex}.legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.legend i.bad{background:#ff4a2e}.legend i.good{background:#5fe07a;margin-left:6px}.office{width:300px}.office h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 2px;font-size:12px}.office h3 .k{text-transform:none;letter-spacing:0;margin-left:6px}.visit{background:#22130f;border:1px solid #000;border-radius:6px;flex-direction:column;gap:6px;padding:8px;display:flex}.visit .who{align-items:center;gap:8px;display:flex}.visit .title{color:var(--accent);font-weight:600}.face{width:34px;height:34px;color:var(--text);background:#5b3a2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.face.small{width:26px;height:26px;font-size:11px}.visit .face{width:46px;height:46px}.face:has(svg){overflow:hidden;box-shadow:inset 0 0 0 1px #0006}.face svg{width:100%;height:100%;display:block}.choice{text-align:left;color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:#2f1c16;border-radius:4px;padding:5px 8px}.choice:hover:not(:disabled){border-color:var(--accent)}.choice:disabled{opacity:.5;cursor:not-allowed}.choice .hint{color:var(--muted);font-size:11px;display:block}.ordinance{justify-content:space-between;align-items:center;gap:8px;display:flex}.ordinance button{color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:12px}.ordinance button.on{border-color:var(--accent);color:var(--accent)}.ordinance button:disabled{opacity:.5;cursor:not-allowed}.notable{align-items:center;gap:8px;display:flex}.notable .grow{flex:1}.loyalty{background:#3a241d;border-radius:3px;flex-shrink:0;width:50px;height:6px;overflow:hidden}.loyalty span{background:var(--accent);height:100%;display:block}.hud{flex-wrap:wrap;row-gap:6px}.hud>*{white-space:nowrap}.menu-btn{color:var(--text);border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:14px}.menu-backdrop{z-index:10;background:#0a0504b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.menu{background:var(--panel);border:1px solid #000;border-radius:8px;flex-direction:column;gap:12px;width:min(420px,100%);padding:20px;display:flex;box-shadow:0 10px 40px #00000080}.menu h2{margin:0;font-size:18px}.title-backdrop{background:radial-gradient(80% 70% at 50% 45%,#0000 35%,#0a050499 100%),linear-gradient(#0000 55%,#0a050480);flex-direction:column;gap:clamp(16px,4vh,36px);animation:.8s both title-in;overflow-y:auto}.title-backdrop.mars-dusk{background:var(--mars-dusk)}.title-backdrop .menu{-webkit-backdrop-filter:blur(8px);background:#241612d1;flex-shrink:0}.title-backdrop .logo-word{font-size:clamp(30px,min(11vw,10vh),76px)}.title-backdrop .logo-mars{font-size:clamp(18px,min(6.4vw,6vh),44px)}.title-backdrop .logo-o{animation:240s linear infinite hole-turn}@media (width>=900px){.title-backdrop{background:linear-gradient(90deg,#0a05048c,#0000 55%),linear-gradient(#0000 60%,#0a050473);align-items:flex-start;padding-left:7vw}.title-backdrop .logo{width:420px}}@keyframes title-in{0%{opacity:0}}@keyframes hole-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.title-backdrop,.title-backdrop .logo-o{animation:none}}@media (height<=520px){.title-backdrop .logo-tag{display:none}}.menu-slots,.menu-confirm{flex-direction:column;gap:6px;display:flex}.menu button{text-align:left;color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:#2f1c16;border-radius:5px;padding:8px 12px}.menu button:hover:not(:disabled){border-color:var(--accent)}.menu button:disabled{opacity:.45;cursor:not-allowed}.menu button.primary{background:var(--accent);border-color:var(--accent);color:#1a0f0d;font-weight:600}.menu button .sub{opacity:.8;font-size:11px;font-weight:400;display:block}.menu :focus-visible{outline-offset:2px;outline:2px solid #ffd2a8}.menu-error{color:#ff9a7c;margin:0;font-size:13px}.menu-confirm p{margin:0 0 4px}.menu:not(.welcome):not(.help):not(.menu-wide){width:min(380px,100%)}.menu-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.menu-links{flex-wrap:wrap;gap:2px 14px;display:flex}.menu .menu-links button{color:var(--muted);text-underline-offset:3px;background:0 0;border:none;padding:4px 0;font-size:13px;text-decoration:underline}.menu .menu-links button:hover{color:var(--text)}.menu .menu-back{align-self:flex-start}.menu-esc:empty{display:none}.menu-version>span:not(.menu-branch){white-space:nowrap}@media (pointer:coarse){.menu-esc{display:none}}.menu.menu-wide{box-sizing:border-box;width:min(620px,100%);max-height:min(680px,100dvh - 32px)}@media (width>=640px){.menu.menu-wide{height:min(560px,100dvh - 32px)}}.settings{flex-direction:column;flex:1;gap:10px;min-height:0;font-size:14px;display:flex}.settings-tabs{border-bottom:1px solid #000;gap:2px;display:flex}.menu .settings-tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:6px 10px}.menu .settings-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.settings-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.settings-body h3{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 2px;font-size:12px}.settings-body section:first-child h3{margin-top:0}.set-row{border-bottom:1px solid #ffffff0d;align-items:center;gap:12px;min-height:36px;padding:6px 2px;display:flex}.set-row>label,label.set-row>.set-text{flex:1;min-width:0}label.set-row{cursor:pointer}.set-text{flex-direction:column;min-width:0;display:flex}.set-name{font-size:14px}.set-hint{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.set-ctl{flex-shrink:0;align-items:center;gap:8px;display:flex}.set-ctl input[type=range]{width:140px;accent-color:var(--accent)}.set-ctl output{text-align:right;min-width:3em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.set-ctl select{max-width:200px;color:var(--text);border:1px solid var(--muted);font:inherit;background:#1a0f0d;border-radius:4px;padding:4px 6px}.menu .set-ctl button{padding:4px 12px}.set-ctl input[type=checkbox]{appearance:none;cursor:pointer;border:1px solid var(--muted);background:#3a241d;border-radius:11px;width:38px;height:22px;margin:0;transition:background .15s;position:relative}.set-ctl input[type=checkbox]:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.set-ctl input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.set-ctl input[type=checkbox]:checked:after{background:#1a0f0d;transform:translate(16px)}.settings-back{align-self:flex-start}@media (width<=639px){.set-hint{white-space:normal}.set-row.set-slider{flex-wrap:wrap;row-gap:0}.set-row.set-slider>.set-ctl{flex-basis:100%}.set-ctl input[type=range]{flex:1;width:auto}}.room-btn kbd{opacity:.7}.room-btn:disabled{opacity:.4;cursor:not-allowed}.room-card{background:#22130f;border-top:1px solid #000;flex-direction:column;gap:3px;max-height:45%;padding:8px 10px;font-size:12px;display:flex;overflow-y:auto}.room-card h3{margin:0;font-size:14px}.room-card p{margin:0}.room-card .k{color:var(--muted)}.room-card .cost{flex-wrap:wrap;gap:4px 8px;display:flex}.room-card .cost .short{color:#ff7a5c}.room-card .bad{color:#ff9a7c}.room-card .good{color:#9fcf86}.room-card .rotate{color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:3px;margin-left:6px;padding:0 5px;font-size:11px}.flows{width:340px}.flows.wide{width:480px}.flows .tabs{flex-wrap:wrap;gap:2px;display:flex}.flows .tabs button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;padding:2px 7px;font-size:12px}.flows .tabs button.on{border-color:var(--accent);color:var(--accent)}.river{border-top:1px solid #000;padding-top:6px}.river h4{margin:0 0 4px;font-size:13px}.river h4 .k{font-size:11px;font-weight:400}.river svg .lbl{fill:var(--text);font-family:Space Grotesk,system-ui,sans-serif;font-size:9.5px}.river svg .lbl.halo{stroke:var(--panel);stroke-width:3px;paint-order:stroke;stroke-linejoin:round}@keyframes pulse{0%,to{box-shadow:0 0 #e07a3fe6}50%{box-shadow:0 0 0 4px #e07a3f00}}.pulse{border-radius:4px;animation:1.4s ease-in-out infinite pulse;border-color:var(--accent)!important}.tutorial{z-index:3;border:1px solid #000;border-left:3px solid var(--accent);background:#1e110df5;border-radius:6px;flex-direction:column;gap:6px;width:300px;padding:10px 12px;font-size:13px;display:flex;position:absolute;bottom:10px;right:12px;box-shadow:0 6px 24px #00000073}.tutorial p{margin:0}.tutorial .say{font-size:14px}.tutorial .k{color:var(--muted);font-size:12px}.tutorial .who{align-items:center;gap:8px;display:flex}.tutorial .who>span:nth-child(2){flex:1}.tutorial .icon,.tutorial .link{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none}.tutorial .link{align-self:flex-end;padding:0;font-size:12px;text-decoration:underline}.tutorial .steps{align-items:center;gap:6px;display:flex}.tutorial .steps .icon{padding:0 4px;font-size:18px;line-height:1}.tutorial .steps .icon:hover{color:var(--text)}.tutorial .progress{flex:1;gap:3px;display:flex}.tutorial .progress button{cursor:pointer;background:#3a241d content-box content-box;border:none;border-radius:2px;flex:1;height:12px;padding:4px 0}.tutorial .progress button.now{background-color:#8a5a40;padding:2px 0}.tutorial .progress button.done{background-color:var(--accent)}.tutorial .tick{color:var(--accent)}.tutorial-pill{z-index:3;color:var(--text);border:1px solid var(--accent);font:inherit;cursor:pointer;background:#1e110df5;border-radius:12px;padding:4px 12px;font-size:12px;position:absolute;bottom:10px;right:12px}.hud,.resbar,.inspector,.status,.menu,.tutorial,.tutorial-pill,.dock,.cam-readout,.messages{zoom:var(--ui-scale,1)}.color-blind .legend i.bad{background:#f08a24}.color-blind .legend i.good{background:#3f8fff}.help{width:min(620px,100%)}.help-cols{grid-template-columns:1fr 1fr;gap:4px 20px;display:grid}.help dl{flex-direction:column;gap:4px;margin:0;font-size:13px;display:flex}.help dl div{align-items:baseline;gap:8px;display:flex}.help dt{text-align:right;min-width:110px}.help dd{margin:0}@media (width<=560px){.help-cols{grid-template-columns:1fr}}.tutorial,.tutorial-pill{bottom:calc(76px * var(--ui-scale,1))}.menu-version{color:var(--muted);justify-content:flex-end;gap:12px;margin:0;font-size:11px;display:flex}.menu-branch{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-right:auto;overflow:hidden}.cam-readout{z-index:2;pointer-events:none;color:var(--muted);background:#1e110dbf;border-radius:4px;padding:3px 8px;font-size:12px;position:absolute;top:10px;left:12px}.cam-readout:empty{display:none}.cam-readout{align-items:center;gap:8px;display:flex}.cam-reset{pointer-events:auto;font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--muted);background:0 0;border-radius:4px;padding:1px 7px;font-size:11px}.cam-reset:hover{border-color:var(--accent);color:var(--accent)}.cam-reset[hidden]{display:none}.cam-readout:has(>span:empty):has(>.cam-reset[hidden]):not(:has(>.cam-cutaway:not([hidden]))){display:none}.cam-cutaway{pointer-events:auto;align-items:center;gap:4px;display:flex}.cam-cutaway[hidden],.cam-wedge[hidden]{display:none}.cam-zoom{font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--muted);background:0 0;border-radius:4px;width:22px;height:20px;padding:0;font-size:13px;line-height:1}.cam-zoom:hover{border-color:var(--accent);color:var(--accent)}.cam-wedge{white-space:nowrap;align-items:center;gap:6px;margin-left:6px;font-size:11px;display:flex}.cam-wedge span{min-width:52px}.cam-wedge input[type=range]{width:90px;accent-color:var(--accent)}.walk-crosshair{pointer-events:none;filter:drop-shadow(0 0 1px #1a0f0d);background:linear-gradient(#f6efe6,#f6efe6) 50%/2px 14px no-repeat,linear-gradient(#f6efe6,#f6efe6) 50%/14px 2px no-repeat;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%}.hole-name{color:var(--accent);font-weight:600}.hole-picker{color:var(--accent);border:1px solid var(--accent);font:inherit;background:#1a0f0d;border-radius:4px;padding:2px 4px;font-weight:600}.map-screen{z-index:4;background:#0e0708;flex-direction:column;display:flex;position:absolute;inset:0}.map-screen header{background:var(--panel);zoom:var(--ui-scale,1);border-bottom:1px solid #000;align-items:center;gap:16px;padding:8px 14px;display:flex}.map-screen h2{margin:0;font-size:16px}.map-screen header .legend{flex-wrap:wrap;flex:1;gap:12px;font-size:12px;display:flex}.map-screen header .legend label{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.map-screen header .legend i{border-radius:50%;width:10px;height:10px;display:inline-block}.map-screen header button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:20px}.map-wrap{background:radial-gradient(circle,#2a1612 0%,#120907 70%);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.globe{cursor:grab;position:absolute;inset:0}.globe:active{cursor:grabbing}.globe canvas{display:block}.map-screen footer{background:var(--panel);zoom:var(--ui-scale,1);border-top:1px solid #000;padding:6px 14px;font-size:12px}.map-locked{color:#ffcf9f;zoom:var(--ui-scale,1);background:#2a1814;border-bottom:1px solid #000;margin:0;padding:6px 14px;font-size:12px}.map-body{flex:1;min-height:0;display:flex}.site-panel{background:var(--panel);zoom:var(--ui-scale,1);border-left:1px solid #000;flex-shrink:0;width:250px;padding:10px 12px;font-size:13px;overflow-y:auto}.site-panel header{justify-content:space-between;align-items:center;display:flex}.site-panel h3{margin:0;font-size:15px}.site-panel h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 4px;font-size:11px}.site-panel p{margin:2px 0}.site-panel ul{flex-direction:column;gap:3px;margin:0;padding-left:0;list-style:none;display:flex}.site-panel i{border-radius:50%;width:9px;height:9px;display:inline-block}.site-panel header button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:18px}.site-panel .checks li.ok{color:#9fcf86}.site-panel .checks li.no{color:var(--muted)}.found-btn{background:var(--accent);color:#1a0f0d;width:100%;font:inherit;cursor:pointer;border:none;border-radius:5px;margin-top:8px;padding:7px;font-weight:600}.found-btn:disabled{color:var(--muted);cursor:not-allowed;background:#3a241d}.msg .from{color:var(--accent)}.network{width:320px}.network table.holes{border-collapse:collapse;width:100%;font-size:13px}.network table.holes th{text-align:left;color:var(--muted);font-weight:500}.network table.holes tr.here td{color:var(--accent)}.network h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;margin:12px 0 4px;font-size:12px;display:flex}.network h3 .k{text-transform:none;letter-spacing:0}.network .route{border-bottom:1px solid #0006;justify-content:space-between;gap:8px;padding:6px 0;font-size:13px;display:flex}.network .route.idle{opacity:.6}.network .route>div{flex:1}.network .route button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:16px}.network .trip{background:#0005;border-radius:2px;height:4px;margin-top:4px}.network .trip>div{background:var(--accent);border-radius:2px;height:100%}.network .trip>div.returning{background:var(--muted)}.network .new-route{flex-direction:column;gap:6px;font-size:13px;display:flex}.network .new-route label{justify-content:space-between;align-items:center;gap:8px;display:flex}.network .new-route select{font:inherit;color:var(--text);background:#2f1c16;border:1px solid #000;border-radius:4px;padding:2px 4px}.network .warn{color:#e0503a;margin:0}.network .new-route button.primary{background:var(--accent);border:1px solid var(--accent);color:#1a0f0d;cursor:pointer;font-weight:600;font:inherit;border-radius:4px;padding:4px}.network .new-route button.primary:disabled{opacity:.5;cursor:default}.network .dot,.network .legend i{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.network .axis{color:var(--muted);grid-template-columns:52px 1fr 52px;align-items:center;gap:6px;margin:3px 0;font-size:12px;display:grid}.network .axis>span:last-child{text-align:right}.network .track{height:12px;position:relative}.network .track:before{content:"";background:#0006;height:2px;position:absolute;top:5px;left:0;right:0}.network .track:after{content:"";background:#fff3;width:1px;height:8px;position:absolute;top:2px;left:50%}.network .track i{box-sizing:border-box;border-radius:50%;width:10px;height:10px;margin-left:-5px;position:absolute;top:1px}.network .track i.target{opacity:.7;background:0 0;border:1.5px solid}.network .track i.now{box-shadow:0 0 0 1px #1a0f0d}.network .legend{color:var(--muted);gap:12px;margin-top:2px;font-size:12px;display:flex}.network .opinion{grid-template-columns:1fr 70px 88px;align-items:center;gap:6px;margin:3px 0;font-size:12px;display:grid}.network .opinion .bar{background:#0005;border-radius:3px;height:6px;position:relative}.network .opinion .bar:after{content:"";background:#fff4;width:1px;height:10px;position:absolute;top:-2px;left:50%}.network .opinion .bar>div{border-radius:3px;height:100%;position:absolute;top:0}.network .opinion .pos{background:#7cc47a}.network .opinion .neg{background:#e0503a}.network .opinion .tier{text-align:right}.network .tier.allied,.network .tier.friendly{color:#7cc47a}.network .tier.wary{color:#e0a03a}.network .tier.hostile{color:#e0503a}.inspector .controls{flex-direction:column;gap:4px;margin:6px 0;font-size:13px;display:flex}.inspector .controls label{align-items:center;gap:6px;display:flex}.inspector .controls input[type=number]{width:56px;font:inherit;color:var(--text);background:#2f1c16;border:1px solid #000;border-radius:4px;padding:1px 4px}.inspector .controls input[type=number]:disabled{opacity:.5}.people{width:300px}.people h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:12px 0 4px;font-size:12px}.people .stages{background:#0005;border-radius:6px;height:12px;margin:6px 0 4px;display:flex;overflow:hidden}.people .child,.people .legend i.child{background:#e0c050}.people .adult,.people .legend i.adult{background:#6fb3c9}.people .elder,.people .legend i.elder{background:#b48ad8}.people .legend{gap:12px;margin:0;font-size:13px;display:flex}.people .legend i{border-radius:50%;width:8px;height:8px;margin-right:3px;display:inline-block}.people ul{margin:4px 0;padding:0;font-size:13px;list-style:none}.people .checks li{color:#e0503a}.people .checks li.ok{color:#7cc47a}.people .upcoming li{padding:1px 0}.floor-picker{z-index:5;background:#1a0f0dcc;border:1px solid #000;border-radius:6px;flex-direction:column;gap:2px;max-height:80%;padding:4px;display:flex;position:absolute;top:50%;right:10px;overflow-y:auto;transform:translateY(-50%)}.floor-picker button{color:var(--text);font:inherit;cursor:pointer;background:#2f1c16;border:1px solid #0000;border-radius:4px;padding:2px 8px;font-size:12px}.floor-picker button.on{border-color:var(--accent);color:var(--accent);font-weight:600}.floor-picker button.preview{border-color:var(--muted);border-style:dashed}.finishes{flex-direction:column;gap:2px;display:flex}.finishes .finish{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:#2f1c16;border:1px solid #0000;border-radius:4px;grid-template-columns:14px 1fr auto;align-items:center;gap:6px;padding:3px 6px;font-size:12px;display:grid}.finishes .finish.on{border-color:var(--accent)}.finishes .finish.short{opacity:.55}.finishes .finish .chip{border:2px solid;border-radius:2px;width:12px;height:12px}.finishes .finish.erase{grid-template-columns:1fr auto}.finishes .finish.erase.on{color:#e0503a;border-color:#e0503a}.finishes p.k{margin:2px 0 0;font-size:11px}.linings{flex-wrap:wrap;align-items:center;gap:3px;max-width:560px;font-size:11px;display:flex}.linings>.k{margin-right:2px}.linings .lining{color:var(--text);font:inherit;cursor:pointer;background:#2f1c16;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.linings .lining.on{border-color:var(--accent)}.linings .lining.short{opacity:.55}.linings .lining:disabled{opacity:.35;cursor:default}.linings .lining .chip{border:2px solid;border-radius:2px;width:10px;height:10px}.linings .note{flex-basis:100%}.corridor-confirm{z-index:6;border:1px solid var(--accent);background:#1a0f0de8;border-radius:8px;min-width:260px;padding:10px 14px;font-size:13px;position:absolute;bottom:64px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0008}.corridor-confirm h3{margin:0 0 4px;font-size:14px}.corridor-confirm p{margin:2px 0}.corridor-confirm .warn{color:#e0503a}.corridor-confirm .buttons{gap:8px;margin-top:8px;display:flex}.corridor-confirm button{font:inherit;color:var(--text);cursor:pointer;background:#2f1c16;border:1px solid #000;border-radius:4px;padding:4px 10px}.corridor-confirm button.primary{background:var(--accent);color:#1a0f0d;font-weight:600}.corridor-confirm button:disabled{opacity:.5;cursor:default}.under-construction{margin:4px 0 8px}.under-construction p{margin:3px 0}.under-construction button,.construction button.up{font:inherit;color:var(--text);cursor:pointer;background:#2f1c16;border:1px solid #e0a03a;border-radius:4px;padding:2px 8px;font-size:12px}.under-construction .bar,.construction .bar{background:#0006;border-radius:3px;height:6px;overflow:hidden}.under-construction .bar>div,.construction .bar>div{background:#e0a03a;height:100%}.construction{width:300px}.construction .queue{flex-direction:column;gap:6px;margin:6px 0;padding:0;font-size:13px;list-style:none;display:flex}.construction .row{grid-template-columns:1fr auto auto;align-items:center;gap:6px;margin-bottom:2px;display:grid}.construction .actions{gap:3px;display:flex}.construction button.link{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.build-chip{border-color:#e0a03a!important}.storage{margin:6px 0;font-size:13px}.storage .summary{margin:2px 0 4px}.storage .bar{background:#0005;border-radius:3px;height:8px;margin-bottom:6px;display:flex;overflow:hidden}.storage .bar>div{height:100%}.storage .all{gap:4px;margin-bottom:4px;display:flex}.storage .good{cursor:pointer;grid-template-columns:18px 10px 1fr auto;align-items:center;gap:6px;margin:1px 0;display:grid}.storage .good.off{opacity:.55}.storage .good .swatch{border-radius:2px;width:10px;height:10px}.storage .good .n{color:var(--muted);font-variant-numeric:tabular-nums}.storage button{font:inherit;color:var(--text);cursor:pointer;background:#2f1c16;border:1px solid #000;border-radius:4px;padding:2px 8px;font-size:12px}.dock{z-index:6;pointer-events:none;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.dock>*{pointer-events:auto}.dock-strip{background:#1e110df0;border:1px solid #000;border-radius:6px;flex-wrap:wrap;flex:1;align-items:center;gap:3px 4px;min-width:0;padding:5px 8px;font-size:12px;display:flex;box-shadow:0 4px 16px #00000059}.dock-modes{background:#1e110df0;border:1px solid #000;border-radius:6px;gap:4px;margin-left:auto;padding:5px;display:flex;box-shadow:0 4px 16px #00000059}.mode-btn{min-width:58px;color:var(--text);font:inherit;cursor:pointer;background:#2f1c16;border:1px solid #0000;border-radius:5px;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:12px;display:flex;position:relative}.mode-btn .icon{font-size:16px;line-height:1}.mode-btn:hover{border-color:var(--muted)}.mode-btn.on{background:var(--accent);color:#1a0f0d;font-weight:600}.mode-btn:disabled{opacity:.4;cursor:not-allowed}.mode-btn .badge{background:var(--accent);color:#1a0f0d;border:1px solid #000;border-radius:8px;min-width:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:14px;position:absolute;top:-7px;right:-7px}.mode-btn.on .badge{color:var(--accent);background:#1a0f0d}.dock-btn{white-space:nowrap;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.dock-btn:hover{background:#3a241d}.dock-btn.on{border-color:var(--accent);color:var(--accent)}.dock-btn:disabled{opacity:.4;cursor:not-allowed;background:0 0}.dock-btn kbd{opacity:.7}.dock-btn.demolish{color:#f08a70}.dock-btn.category .swatch{background:var(--cat);border-radius:2px;width:9px;height:9px}.dock-btn.category.open{border-color:var(--muted);background:#3a241d}.dock-section{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.dock-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 4px 0 2px;font-size:10px}.dock-sep{background:#4a3027;align-self:stretch;width:1px;margin:0 6px}.dock-hint{color:var(--muted);margin-left:auto;padding-left:8px;font-size:11px}.dock-group{position:relative}.dock-popup{z-index:7;background:#1e110df7;border:1px solid #000;border-radius:6px;flex-direction:column;gap:6px;width:max-content;max-width:min(620px,80vw);padding:6px;display:flex;position:absolute;bottom:calc(100% + 11px);left:-4px;box-shadow:0 6px 24px #00000073}.dock-group.leftward .dock-popup{left:auto;right:-4px}.dock-popup-row{flex-wrap:wrap;gap:3px;display:flex}.dock-popup .room-btn{background:#2f1c16}.dock-popup .room-btn:hover{background:#3a241d}.dock-card{z-index:1;border:1px solid #000;border-radius:6px;width:320px;max-width:80vw;position:absolute;bottom:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 6px 24px #00000073}.dock-group.leftward .dock-card{left:auto;right:0}.dock-card .room-card{border-top:none;max-height:260px}.maintenance h3{margin:10px 0 2px;font-size:13px}.maintenance .condition-bar{position:relative}.maintenance .condition-bar>.repair{opacity:.8;background:#fff;height:2px;position:absolute;bottom:0;left:0}.inspector .condition .bar{background:#0006;border-radius:3px;height:6px;margin:-2px 0 6px;overflow:hidden}.inspector .condition .bar>div{height:100%}.build-frame{pointer-events:none;z-index:900;border:4px solid #f2c53d;border-radius:10px;position:fixed;inset:6px;box-shadow:0 0 12px #f2c53d55}.room-name{white-space:nowrap}.floor-badge{color:#fff;vertical-align:.12em;letter-spacing:.02em;border-radius:.7em;margin-left:.35em;padding:0 .4em;font-size:.72em;font-weight:700;line-height:1.5;display:inline-block}.inspector .rename-btn{color:var(--text);opacity:.55;cursor:pointer;background:0 0;border:none;margin-left:.3em;padding:0 2px;font-size:.8em}.inspector .rename-btn:hover{opacity:1}.inspector input.rename{font:inherit;color:var(--text);background:#0006;border:1px solid #e0a03a;border-radius:4px;width:70%;padding:2px 6px;font-size:16px;font-weight:600}.res-tip{z-index:50;pointer-events:none;width:220px;color:var(--text);background:#2a1814f2;border:1px solid #000;border-radius:6px;flex-direction:column;gap:3px;padding:8px 10px;font-size:12px;display:flex;position:fixed;box-shadow:0 6px 18px #0008}.res-tip strong{font-size:13px}.res-tip .tip-note{color:var(--muted)}.res-tip .spark{margin-top:4px}.res-tip .tip-foot{color:var(--muted);font-size:11px}.res-tip .tip-legend{gap:10px;font-size:11px;display:flex}.res-tip .tip-legend i{font-style:normal}.trends{width:320px}.trends>*{flex-shrink:0}.trends h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 2px;font-size:12px}.trends h3.trend-title{color:var(--text);text-transform:none;letter-spacing:0;margin:6px 0 0;font-size:14px}.seg{border:1px solid var(--muted);border-radius:5px;align-self:flex-start;gap:0;display:flex;overflow:hidden}.seg button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;padding:3px 10px;font-size:12px}.seg button+button{border-left:1px solid #a88d7c55}.seg button.on{background:var(--accent);color:#1a0f0d}.seg.small button{padding:2px 8px;font-size:11px}.trend-svg{touch-action:none;width:100%;height:auto;display:block}.trend-svg .grid{stroke:#ffffff14;stroke-width:1px}.trend-svg .axis{fill:var(--muted);font-family:inherit;font-size:9px}.trend-svg .ref{stroke:#f0c06066;stroke-width:1px;stroke-dasharray:3 3}.trend-svg .ref-label{fill:#f0c060aa;font-family:inherit;font-size:8.5px}.trend-svg .cursor{stroke:#fff5;stroke-width:1px}.trend-readout{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 10px;min-height:16px;font-size:12px;display:flex}.trend-sum{font-variant-numeric:tabular-nums;font-size:12px}.trend-group{flex-direction:column;display:flex}.trend-row{color:var(--text);font:inherit;cursor:pointer;text-align:left;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:1fr 96px 46px 44px;align-items:center;gap:6px;padding:2px 4px;font-size:12px;display:grid}.trend-row:hover{background:#ffffff0c}.trend-row.on{border-color:var(--accent);background:#e07a3f18}.trend-row .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trend-row .val{text-align:right}.trend-row .delta{text-align:right;color:var(--muted);font-size:11px}.why{width:320px}.why>*{flex-shrink:0}.why h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 2px;font-size:12px}.why h3.why-head{color:var(--text);text-transform:none;letter-spacing:0;margin:6px 0 0;font-size:14px}.why-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.why-item{border-left:3px solid #ff9a7c;flex-direction:column;gap:2px;padding:2px 0 2px 8px;display:flex}.why-item.good{border-left-color:#7fd67f}.why-amount{font-variant-numeric:tabular-nums}.why-fix{color:#f0d8b0;font-size:12px}.why-show,.why-trend{color:var(--accent);border:1px solid var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;padding:1px 8px;font-size:11px}.why-show.on{background:var(--accent);color:#1a0f0d}.why-trend{border:none;margin-top:10px;padding:0;font-size:12px}.why-home{color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:2px 4px;font-size:12px}.why-home:hover{background:#ffffff0c}.cause-band{margin-top:6px}.cause-band .trend-readout span{font-size:11px}.finish .chip.windows{background:linear-gradient(90deg,#9fd2ff 0 45%,#3b3f45 45% 55%,#9fd2ff 55%);border-color:#5a7a96}.finish .chip.bulkhead{background:repeating-linear-gradient(135deg,#e0a03a 0 3px,#3b3f45 3px 6px);border-color:#3b3f45}.finish .chip.refit{background:linear-gradient(90deg,#8a6650 0 33%,#a45a3e 33% 66%,#b9c2c9 66%);border-color:#5c4031}.finish .chip.fine,.lining .chip.fine{box-shadow:inset 0 0 0 1px #fff0d2b3}canvas{touch-action:none}html,body{overscroll-behavior:none}body{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}.view,.map-wrap,.dock{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app{box-sizing:border-box;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.messages{max-width:min(420px,100% - 24px)}.event-cards{width:min(320px,100% - 24px)}.tutorial{box-sizing:border-box;width:min(300px,100% - 24px)}.corridor-confirm{box-sizing:border-box;min-width:min(260px,100% - 48px);max-width:calc(100% - 24px)}@media (pointer:coarse){.speeds button,.menu-btn,.office-btn,.drill button{padding:6px 12px}.dock-btn{padding:6px 10px}.room-btn{padding:7px 8px}.floor-picker button{padding:6px 10px}.menu button{min-height:44px;padding:11px 12px}.menu .menu-links button{padding:12px 0}.menu .settings-tabs button{min-height:44px}.set-row{min-height:52px}.set-ctl select{min-height:44px}.set-ctl input[type=range]{height:44px}.set-ctl input[type=checkbox]{border-radius:14px;width:48px;height:28px}.set-ctl input[type=checkbox]:after{width:22px;height:22px}.set-ctl input[type=checkbox]:checked:after{transform:translate(20px)}.cam-reset{padding:4px 10px}.cam-zoom{width:36px;height:32px;font-size:16px}.dock-btn kbd,.room-btn kbd,.mode-btn kbd{display:none}}@media (width<=760px){.hud{gap:6px 8px;padding:5px 8px}.resbar{flex-flow:column;gap:2px;padding:3px 6px;font-size:12px}.group-label{box-sizing:border-box;width:64px;padding:0 5px;font-size:8.5px}.res{min-width:54px}.res .ico svg{width:14px;height:14px}.office-btn .office-label{display:none}.clock{font-size:13px}.speeds button{padding:4px 9px}.needs{flex-basis:100%;order:10}.needs.calm{display:none}.clock{min-width:0}.tick{display:none}.main{position:relative}.inspector{z-index:8;max-height:55%;padding-bottom:calc(10px + env(safe-area-inset-bottom));border-top:1px solid #000;border-left:none;border-radius:10px 10px 0 0;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #00000080;width:auto!important}.site-panel{z-index:8;border-top:1px solid #000;border-left:none;width:auto;max-height:55%;position:absolute;bottom:0;left:0;right:0}.status{white-space:nowrap;text-overflow:ellipsis;padding:5px 10px;font-size:12px;overflow:hidden}.dock{flex-direction:column;align-items:stretch;gap:6px;bottom:6px;left:6px;right:6px}.dock-modes{justify-content:space-between;margin-left:0}.mode-btn{flex:1;min-width:0;padding:4px}.dock-hint{display:none}.dock-card .room-card{max-height:28vh}.tutorial,.tutorial-pill{top:36px;bottom:auto;right:6px}.event-cards{top:32px;left:6px}.messages{right:6px}.floor-picker{max-height:50%;right:4px}.menu-backdrop{padding:10px}.menu{box-sizing:border-box;max-height:100%;padding:16px;overflow-y:auto}.map-screen header{flex-wrap:wrap;gap:8px;padding:6px 10px}}.walk-pad{left:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:5;pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute}.walk-pad[hidden]{display:none}.walk-stick{pointer-events:auto;touch-action:none;opacity:.6;background:radial-gradient(circle,#f0e0d014 0 55%,#f0e0d00a 56%);border:2px solid #f0e0d040;border-radius:50%;width:120px;height:120px;transition:opacity .15s;position:relative;box-shadow:inset 0 0 18px #0006}.walk-stick.on{opacity:.9}.walk-knob{pointer-events:none;background:#f0e0d055;border:2px solid #f0e0d099;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0008}.walk-stick:not(.on) .walk-knob{transition:transform .12s ease-out}.walk-stairs{flex-direction:column;gap:6px;display:flex}.walk-stairs button{pointer-events:auto;font:inherit;color:var(--text);cursor:pointer;background:#1a0f0db0;border:1px solid #f0e0d060;border-radius:6px;padding:8px 12px;font-size:13px}.walk-stairs button[hidden]{display:none}.welcome{gap:12px;width:min(540px,100%)}.welcome h2{color:var(--accent);font-size:25px}.welcome p{margin:0;font-size:16.5px;line-height:1.5}.welcome button.primary{text-align:center;margin-top:6px;font-size:16.5px}.app.welcoming>:not(.main):not(.menu-backdrop):not(.update-banner),.app.welcoming .view>:not(.pixi-host),.app.welcoming .pixi-host>:not(canvas),.app.titling>:not(.main):not(.menu-backdrop):not(.update-banner),.app.titling .view>:not(.pixi-host),.app.titling .pixi-host>:not(canvas),.app.titling .main>:not(.view){display:none}.ico{flex-shrink:0;display:inline-flex}.ico svg{display:block}.hud{gap:6px 12px;padding:5px 12px}.menu-btn{align-items:center;padding:3px 6px;display:inline-flex}.needs{flex-wrap:wrap;flex:1;gap:4px 6px;min-width:0;display:flex}.need{font:inherit;white-space:nowrap;cursor:pointer;color:#f4b860;background:#f0a03018;border:1px dashed #f0a03090;border-radius:12px;align-items:center;gap:5px;padding:1px 9px 1px 6px;font-size:12.5px;display:inline-flex}.need.bad{color:#ff8a6c;background:#ff4a2e30;border:1px solid #ff5a3c;font-weight:600}.need:hover:not(:disabled){filter:brightness(1.2)}.need:disabled{cursor:default}.need.more{color:var(--muted);cursor:help;background:0 0;border:1px solid #ffffff30}.drill,.drop{font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-size:13px;display:inline-flex}.drill.paused{color:var(--muted)}.drill button{padding:1px 6px;font-size:10px}.drop.warn{color:#f4b860}.office-btn{color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:2px 8px;font-size:13px;display:inline-flex}.office-btn.waiting{border-color:var(--accent);background:var(--accent);color:#1a0f0d;font-weight:600}.office-btn .badge{color:var(--accent);background:#1a0f0d;border-radius:8px;padding:0 5px;font-size:11px;line-height:15px}.resbar{background:#22130f;border-bottom:1px solid #000;flex-wrap:wrap;gap:3px 6px;min-height:22px;padding:3px 8px;font-size:13px;display:flex}.resbar .group{background:#ffffff08;border:1px solid #ffffff1c;border-radius:5px;flex-wrap:wrap;align-items:center;gap:1px;padding:1px 3px 1px 0;display:flex}.group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#ffffff0a;border-right:1px solid #ffffff1c;border-radius:4px 0 0 4px;align-self:stretch;align-items:center;margin-right:1px;padding:0 5px;font-size:9px;font-weight:600;display:flex}.res{white-space:nowrap;box-sizing:border-box;font-variant-numeric:tabular-nums;cursor:pointer;border:1px solid #0000;border-radius:3px;align-items:center;gap:3px;min-width:46px;padding:1px 3px;display:inline-flex}.res .ico{color:var(--muted)}.res .dir{width:9px}.res .dir.up{color:#9fcf86}.res .dir.down{color:#e89a7a}.res .rate{color:var(--muted);font-size:11px}.res .rate.glow{color:#f0c060}.res:hover,.res:focus-visible{background:#ffffff10;outline:none}.res.warn{color:#f4b860;background:#f0a03014;border:1px dashed #f0a03090}.res.bad{color:#ff8a6c;background:#ff4a2e26;border:1px solid #ff5a3c;font-weight:600}.res.full{color:#8fc0ea;border:1px dotted #7fb3e0a0}.res.warn .ico,.res.bad .ico,.res.full .ico{color:inherit}.phone-only{display:none}.hud-more,.resbar .group-cells{display:contents}.pause-btn,.hud-toggle{color:var(--text);font:inherit;border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:13px}.hud-toggle{white-space:nowrap;gap:5px}.hud-toggle .chev{font-size:14px;line-height:1;transition:transform .15s;display:inline-block}.hud.open .hud-toggle .chev{transform:rotate(180deg)}.need-count{font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;color:#f4b860;background:#f0a03018;border:1px dashed #f0a03090;border-radius:12px;gap:4px;padding:1px 9px 1px 6px;font-size:13px;font-weight:600}.need-count.bad{color:#ff8a6c;background:#ff4a2e30;border:1px solid #ff5a3c}@media (width<=639px){.hud{flex-wrap:wrap}.phone-only{align-items:center;display:inline-flex}.hud .hole-name,.hud .hole-picker{text-overflow:ellipsis;flex:1;min-width:0;max-width:max-content;overflow:hidden}.hud .hud-more{display:none}.hud.open .hud-more{border-top:1px solid #ffffff14;flex-wrap:wrap;flex-basis:100%;order:10;align-items:center;gap:6px 10px;padding-top:4px;display:flex}.hud .hud-more .needs{flex:100%}.hud .sundial,.hud .drop.warn{display:none}.hud .office-btn{margin-left:auto}.app:not(.hud-open) .resbar{display:none}}@media (pointer:coarse) and (width<=639px){.pause-btn,.hud-toggle,.need-count{padding:6px 12px}}@media (width<=760px){.resbar .group{flex-wrap:nowrap}.resbar .group-cells{flex-wrap:wrap;flex:1;align-items:center;gap:1px;min-width:0;display:flex}}.update-banner{top:calc(8px + env(safe-area-inset-top));z-index:20;box-sizing:border-box;background:var(--panel);border:1px solid var(--accent);border-radius:8px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:6px 8px 6px 14px;font-size:13.5px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000080}.update-banner button{font:inherit;cursor:pointer;border:1px solid var(--accent);border-radius:5px;padding:4px 12px}.update-banner button.primary{background:var(--accent);color:#1a0f0d;font-weight:600}.update-banner button:disabled{opacity:.6;cursor:default}.update-banner .update-later{color:var(--text);opacity:.7;background:0 0;border-color:#0000;padding:4px 6px}.update-banner .update-later:hover{opacity:1}.tutorial .tip-actions{gap:6px;display:flex}.directory{width:300px}.directory>*{flex-shrink:0}.directory h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:6px;margin:10px 0 2px;font-size:12px;display:flex}.dir-search,.dir-filters select{font:inherit;color:var(--text);background:#2f1c16;border:1px solid #000;border-radius:4px;padding:3px 6px;font-size:12px}.dir-filters{align-items:center;gap:6px;display:flex}.dir-filters select{flex:1;min-width:0}.dir-floor{flex-direction:column;display:flex}.dir-room{color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:10px 1fr auto;align-items:center;gap:6px;padding:2px 4px;font-size:12px;display:grid}.dir-room:hover{background:#ffffff0c}.dir-room .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dir-room .dot{background:#7fd67f;border-radius:50%;width:8px;height:8px}.dir-room .dot.building{background:#6ab0e0}.dir-room .dot.worn{background:#e6b33c}.dir-room .dot.stalled{background:#ff6a5a}.milestones{width:300px}.milestones>*{flex-shrink:0}.milestones h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;margin:10px 0 2px;font-size:12px;display:flex}.milestones h3 .k{text-transform:none;letter-spacing:0}.ms-row{color:var(--muted);align-items:center;gap:6px;padding:2px 0;font-size:13px;display:flex}.ms-row.done{color:var(--text)}.ms-row .mark{text-align:center;width:14px}.ms-row.done .mark{color:var(--accent)}.ms-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ms-progress{align-items:center;gap:4px;display:flex}.ms-progress .bar{background:#0006;border-radius:2px;width:48px;height:4px;overflow:hidden}.ms-progress .bar>span{background:var(--accent);opacity:.7;height:100%;display:block}.ms-hole{margin-bottom:6px}.ms-hole p{font-size:13px}
