/* A quieter play surface, with the same actions within reach. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
.game-head{padding-top:var(--safe-top);height:calc(78px + var(--safe-top))}.icon-btn{min-width:44px;min-height:44px}.head-actions{gap:6px}
#save-status{display:block;font-size:12px;line-height:1.3;max-width:200px;min-height:44px;padding:7px 10px;border:1px solid #9ab88a42;background:#162d25d9;color:#c9dbb6;border-radius:6px;text-align:center}
#save-status[data-state=error],#save-status[data-state=conflict]{color:#f2c398;border-color:#d7a1728c;background:#3b3122e8}#save-status[data-state=saving],#save-status[data-state=checking]{color:#c3d9d9}
.goal-compact,#map-toggle{display:none}.recipe p{font-size:14px;line-height:1.55}.recipe-title small{font-size:12px}.recipe-cost{font-size:13px}.craft-tabs button,.build-tools button{min-height:44px;font-size:14px}.inventory-table button{min-width:44px;min-height:44px}.secondary,.journey-card button,.outfit-card button{min-height:44px;font-size:14px}.primary{min-height:48px;font-size:14px}.journal-tabs button{min-height:44px;font-size:14px}.tiny-label{font-size:12px}.cost-row{font-size:14px}
.hotbar button{width:72px;height:72px;border-radius:6px}.hotbar{gap:7px}.hotbar button>span:last-child{font-size:12px;letter-spacing:0}.hotbar svg{height:25px;width:25px}.vitals{border-radius:6px}.context{font-size:13px;border-radius:5px;max-width:440px;line-height:1.4}
#build-banner{top:auto;bottom:125px;max-width:550px;width:calc(100% - 40px);min-width:0;border-radius:8px;gap:8px;box-shadow:0 8px 28px #071c1855;z-index:7}
#build-message{font-weight:bold;font-size:15px}#placement-reason{width:100%;text-align:center;font-size:14px;color:#d4e7b8}#placement-reason.blocked{color:#f1b28c}#build-banner button{min-height:44px;font-size:14px}#place-mobile{min-width:90px;background:#d5c18a!important;color:#183025!important}#place-mobile:disabled{opacity:.4}.placing #context{display:none}.placing #cook-action{display:none}
#fishing-status{min-height:72px;width:280px;max-width:80%;top:33%;padding:18px 16px 23px;border-radius:9px;font-size:15px;pointer-events:auto;z-index:6;overflow:hidden}#fishing-status:disabled{cursor:default;opacity:1}#fishing-status.bite{background:#dfc582;color:#1c3126;border:2px solid #fff0bc;animation:bitePulse .6s infinite alternate}#fishing-status.bite:after{content:'';position:absolute;left:0;bottom:0;height:6px;width:var(--bite-left,100%);background:#355c40}
.objective{border-radius:0 6px 6px 0}.objective strong{font-size:14px}.objective p{font-size:13px}.map-panel{border-radius:6px}.notice{border-radius:6px;font-size:14px;line-height:1.4}.expansion-dialog{scroll-padding:10px}#world.bow-aim{cursor:crosshair}
@media(pointer:coarse){
 .control-hint{display:none}.key,kbd{display:none}#touch-controls{display:block;bottom:calc(150px + var(--safe-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));z-index:5}
 #joystick{width:100px;height:100px;border:1px solid #b4cfaa7a;background:#13332885;box-shadow:inset 0 0 24px #98b59216}#stick{width:44px;height:44px;left:27px;top:27px;background:#bed6ae9c}
 #action-touch{width:80px;height:80px;right:0;bottom:0;border:1px solid #d4dca3a0;background:#456142e6;font-size:12px;line-height:1.3}#action-touch strong{font-size:17px}
 #jump-touch{width:60px;height:60px;right:91px;bottom:3px;background:#2f6358ed;font-size:13px}#sprint-touch{width:48px;height:48px;right:16px;bottom:90px;font-size:12px;background:#193f31e6}
 #place-mobile{display:block!important}.placing #touch-controls #action-touch{visibility:hidden}.placing .hotbar{opacity:.45;pointer-events:none}
}
@media(max-width:700px){
 #map-toggle{display:block}
 .game-head{height:calc(64px + var(--safe-top));padding:var(--safe-top) 12px 0;background:linear-gradient(#0a211fef,#0a211f8c,transparent)}.brand.compact{display:none}
 .day-chip{left:12px;transform:none;min-width:0;width:96px;padding:7px 8px;gap:6px;border-radius:5px}.day-chip svg{width:19px;height:19px}.day-chip strong{font-size:12px;letter-spacing:.5px}.day-chip #phase{font-size:12px;max-width:65px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-track{display:none}
 .head-actions{margin-left:auto;gap:5px}.head-actions .icon-btn{width:44px;height:44px}.head-actions svg{width:20px;height:20px}#save-status{display:block!important;position:absolute;left:116px;right:110px;max-width:none;min-width:0;font-size:12px;overflow:hidden;padding:7px 4px;white-space:normal;max-height:44px}
 .resources{top:calc(70px + var(--safe-top));left:12px;width:calc(100% - 116px);gap:4px;display:flex}.resource{min-width:0;min-height:44px;flex:1;padding:8px 5px;gap:5px;border-radius:5px}.resource strong{font-size:14px}.resource svg{width:17px;height:17px}.inventory-btn{top:calc(70px + var(--safe-top));left:auto;right:12px;width:86px;height:44px;padding:8px 4px;font-size:13px;border-radius:5px}
 .objective{display:none}.goal-compact{display:block;position:absolute;top:calc(122px + var(--safe-top));left:12px;width:calc(100% - 199px);min-height:44px;max-height:50px;padding:7px 10px;background:#173b2eae;border-left:2px solid #c5b580;border-radius:4px;text-align:left;font-size:13px;line-height:1.3;overflow:hidden}
 .map-panel{top:calc(120px + var(--safe-top));right:12px;width:171px;background:transparent;border:0;padding:0;z-index:4}.map-panel canvas,.map-panel>div:not(.map-actions),.map-panel>#camp-direction{display:none}.map-panel .map-actions{display:flex;padding:0;gap:4px}.map-panel .map-actions button{display:block;flex:1;width:0;min-height:44px;font-size:13px;padding:8px 3px;border:1px solid #a4bc7d44;border-radius:5px;background:#1b3c2fe8}.map-panel.map-open{background:#17372fee;padding:5px;box-shadow:0 7px 22px #0b1b1966}.map-panel.map-open canvas{display:block;width:161px}.map-panel.map-open>div:not(.map-actions){display:flex;font-size:12px}.map-panel.map-open>#camp-direction{display:block;font-size:13px;min-height:40px;margin:5px 0}
 .bottom-ui{bottom:calc(12px + var(--safe-bottom));left:12px;right:12px;display:block;height:117px}.vitals{position:absolute;bottom:73px;margin:0;width:100%;max-width:none;display:flex;gap:12px;padding:8px 11px;min-height:43px}.vital{gap:6px}.vital svg{width:17px;height:17px}.vital>div>span{font-size:11px}.vital strong{font-size:12px}.meter{height:4px}
 .hotbar{position:absolute;left:0;right:0;bottom:0;transform:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.hotbar button{width:100%;height:64px;min-width:0;gap:5px}.hotbar svg{width:23px;height:23px}.hotbar button>span:last-child{font-size:11px;letter-spacing:0}.hotbar .key{display:none}
 .context{bottom:calc(270px + var(--safe-bottom));max-width:calc(100% - 40px);width:max-content;font-size:13px;padding:8px 12px;pointer-events:none}.notice{top:calc(178px + var(--safe-top));max-width:calc(100% - 32px);font-size:14px;padding:10px 14px;z-index:9}
 #cook-action{bottom:calc(316px + var(--safe-bottom));min-height:44px;padding:10px 14px;border-radius:6px;font-size:14px}#meal-buffs{left:14px;bottom:calc(134px + var(--safe-bottom));font-size:11px;max-width:calc(100% - 28px)}
 #build-banner{top:auto;bottom:calc(143px + var(--safe-bottom));width:calc(100% - 32px);max-width:none;padding:11px;gap:7px}#build-banner button{flex:1;padding:10px 4px!important;font-size:13px}#build-banner #build-message,#build-banner #placement-reason{flex:auto;width:100%}.placing #touch-controls{bottom:calc(323px + var(--safe-bottom))}.placing #touch-controls #jump-touch,.placing #touch-controls #sprint-touch{display:none}
 #raid-alert{top:calc(173px + var(--safe-top));font-size:13px;z-index:6;padding:10px 12px}.notice.show~#raid-alert{opacity:.3}#fishing-status{top:38%;font-size:15px}
 #craft{inset:calc(8px + var(--safe-top)) 8px calc(8px + var(--safe-bottom));width:auto;padding:20px;max-height:none}.craft-hint{font-size:14px;margin:12px 0}.build-tools{margin-bottom:12px}.recipe p{font-size:14px}.recipe-title{font-size:16px}.recipe-cost{font-size:13px}.recipe{padding:14px 12px;gap:8px}.recipe-title small{font-size:11px}.inventory-table{font-size:14px}.inventory-table td{padding:9px 3px}.inventory-table button{min-width:40px;padding:8px 3px}
 dialog{width:calc(100% - 24px);max-width:540px;padding:22px 18px}.expansion-dialog{max-height:calc(86dvh - var(--safe-top) - var(--safe-bottom))}.dialog-top h2{font-size:26px}.modal-grid{gap:8px}.outfits-grid{gap:9px}.outfit-card p{font-size:13px}.dialog-note{font-size:15px!important}
}
@media(pointer:coarse) and (max-height:550px) and (min-width:701px){
 .game-head{height:58px;padding:0 16px}.brand.compact{display:none}.day-chip{left:16px;transform:none;min-width:144px;padding:5px 10px}.head-actions{margin-left:auto}#save-status{max-width:185px}
 .resources{top:67px;left:16px}.resource{min-height:40px;padding:7px 9px}.inventory-btn{top:67px;left:330px;min-height:40px}.objective{display:none}.map-panel{width:100px;top:67px;right:16px}.map-panel>div:not(.map-actions){display:none}.map-panel .map-actions button{min-height:38px}.map-panel>#camp-direction{min-height:36px}
 .bottom-ui{bottom:12px;left:16px;right:16px;height:52px;display:block}.vitals{position:absolute;bottom:0;left:0;display:flex;width:200px;gap:7px;padding:9px;margin:0}.vital>div>span,.vital strong{font-size:10px}.vital{gap:3px}.vital svg{width:13px}.hotbar{bottom:0}.hotbar button{height:52px;width:52px;gap:3px}.hotbar svg{width:20px;height:20px}.hotbar button>span:last-child{font-size:10px}
 #touch-controls{bottom:83px}#joystick{width:94px;height:94px}#stick{left:24px;top:24px}#action-touch{width:73px;height:73px}#jump-touch{right:83px;width:56px;height:56px}#sprint-touch{bottom:84px;width:44px;height:44px}.context{bottom:72px;max-width:55%;font-size:12px}#cook-action{bottom:119px;min-height:42px}#meal-buffs{bottom:69px;left:16px;font-size:11px}#build-banner{top:105px;bottom:auto;max-width:480px;z-index:8}#fishing-status{top:32%;min-height:66px}.notice{top:111px;max-width:55%}#raid-alert{top:65px;max-width:50%}
}
@media(max-width:360px){.resources{width:calc(100% - 105px)}.inventory-btn{width:78px}.resource svg{display:none}.hotbar{gap:4px}.hotbar button>span:last-child{font-size:10px}.goal-compact{font-size:12px}.name-row{gap:6px}}
