#npc-overlay{position:absolute;inset:0;z-index:30;background:rgba(10,8,5,.55);display:flex;align-items:flex-end;justify-content:center;padding:16px}#npc-overlay[hidden]{display:none}#npc-dialog{position:relative;display:grid;grid-template-columns:auto 1fr;gap:14px;width:min(760px,100%);max-height:70%;overflow:auto;background:#1c160f;color:#f3e6c4;border:3px double #c9a45c;border-radius:4px;box-shadow:0 0 0 2px #1c160f,0 12px 40px #000c;padding:14px 16px 12px;font:15px/1.7 'Nanum Myeongjo',serif}@media(max-width:600px){#npc-dialog{grid-template-columns:1fr}.npc-side{display:flex;align-items:center;gap:10px}.npc-portrait{width:72px!important;height:84px!important}}.npc-portrait{width:120px;height:140px;image-rendering:pixelated;border-radius:2px}.npc-plate{margin-top:6px;text-align:center;background:#3a2c1f;border:1px solid #8b6d3e;padding:3px 6px}.npc-plate strong{display:block;color:#f7c96a;font-size:15px}.npc-plate small{display:block;color:#cdb88f;font-size:11px;line-height:1.3}.npc-main{min-width:0;padding-right:18px}#npc-dialog .npc-line{margin:2px 0 8px;min-height:3.4em;cursor:pointer}#npc-dialog .npc-sources{font-size:12px;color:#cdb88f;margin:4px 0}#npc-dialog a{color:#f7c96a}#npc-dialog .npc-options{list-style:none;margin:6px 0 4px;padding:0;display:grid;gap:3px}#npc-dialog .npc-options button{width:100%;text-align:left;background:none;color:#f3e6c4;border:none;border-left:3px solid transparent;padding:3px 8px;font:inherit}#npc-dialog .npc-options button:hover,#npc-dialog .npc-options button:focus{color:#f7c96a;border-left-color:#f7c96a;background:#2d2318}#npc-dialog .npc-note{display:block;color:#8f7f64;font-size:11px;margin-top:6px;font-family:system-ui}#npc-dialog .npc-close{position:absolute;top:6px;right:8px;background:none;border:none;color:#cdb88f;font-size:16px;cursor:pointer}
#npc-bubble{position:absolute;z-index:29;max-width:220px;background:#fffaf0;color:#2d2318;border:2px solid #5a4631;border-radius:12px;padding:6px 10px;font-size:13px;line-height:1.45;box-shadow:0 3px 10px #0005;pointer-events:none}#npc-bubble::after{content:'';position:absolute;left:50%;bottom:-9px;margin-left:-7px;border:7px solid transparent;border-top-color:#5a4631;border-bottom:0}#npc-bubble[hidden]{display:none}
#money-hud{position:absolute;z-index:26;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:4px;background:rgba(28,22,16,.85);border:1px solid #b8924f;border-radius:14px;padding:2px 4px;white-space:nowrap}#money-hud button{background:none;border:none;color:#f7c96a;font-size:13px;font-weight:bold;padding:1px 8px;cursor:default}#money-hud .hud-login{cursor:pointer;text-decoration:underline}#money-hud .hud-logout{color:#cdb88f;font-weight:normal;cursor:pointer;border-left:1px solid #5a4631}#money-hud .hud-pack{color:#f3e6c4;font-weight:normal;cursor:pointer;display:flex;align-items:center;padding:2px 4px}#money-hud .hud-pack:hover svg{filter:brightness(1.15)}#money-hud[hidden]{display:none}#pack-window{position:absolute;z-index:30;right:12px;top:150px;width:min(340px,calc(100% - 24px));max-height:60%;overflow:auto;background:rgba(28,22,16,.95);color:#f3e6c4;border:2px solid #b8924f;border-radius:10px;padding:10px 12px;box-shadow:0 4px 18px #0008}#pack-window[hidden]{display:none}#pack-window header{display:flex;align-items:baseline;gap:8px;background:none;border:none;margin:0;padding:0}#pack-window header strong{color:#f7c96a;font-size:16px}#pack-window header small{color:#cdb88f}#pack-window header button{margin-left:auto;background:#3a2c1f;color:#f3e6c4;border:1px solid #8b6d3e;border-radius:6px;padding:2px 10px}#pack-window footer{display:grid;gap:4px;margin-top:8px;background:none;border:none;padding:0;font-size:12px}#pack-window .pack-money{color:#f7c96a}#pack-window .pack-message{margin:0;min-height:1.2em}#account-overlay{position:absolute;inset:0;z-index:32;background:rgba(10,8,5,.55);display:flex;align-items:center;justify-content:center;padding:16px}#account-overlay[hidden]{display:none}#account-dialog{display:grid;gap:8px;width:min(380px,100%);background:#1c160f;color:#f3e6c4;border:3px double #c9a45c;border-radius:4px;padding:16px;font:14px/1.6 'Nanum Myeongjo',serif}#account-dialog strong{font-size:17px;color:#f7c96a}#account-dialog label{display:grid;gap:2px}#account-dialog label.account-remember{display:flex;gap:6px;align-items:center;font-size:12px;color:#cdb88f}#account-dialog input{background:#2d2318;color:#f3e6c4;border:1px solid #8b6d3e;border-radius:4px;padding:5px 8px;font:inherit}#account-dialog .account-buttons{display:flex;flex-wrap:wrap;gap:6px}#account-dialog button{background:#3a2c1f;color:#f3e6c4;border:1px solid #8b6d3e;border-radius:4px;padding:4px 10px;font:inherit}#account-dialog .account-message{min-height:1.4em;margin:0;color:#f7c96a}#account-dialog small,#account-dialog .account-intro{color:#cdb88f;margin:0}@media(max-width:600px){#money-hud{top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 132px);left:12px;transform:none}}
#shop-window{position:absolute;z-index:31;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100% - 24px));max-height:80%;overflow:auto;background:rgba(28,22,16,.95);color:#f3e6c4;border:2px solid #b8924f;border-radius:10px;box-shadow:0 8px 32px #000a;padding:12px 16px;font-size:14px}#shop-window[hidden]{display:none}#shop-window header{display:flex;align-items:baseline;gap:8px;background:none;border:none;margin:0;padding:0}#shop-window .shop-title{font-size:18px;color:#f7c96a}#shop-window .shop-trade{color:#cdb88f}#shop-window header button,#shop-window [data-q]{background:#3a2c1f;color:#f3e6c4;border:1px solid #8b6d3e;border-radius:6px;padding:2px 10px}#shop-window header button{margin-left:auto}#shop-window [data-q].active{background:#8b6d3e;color:#1c160f}.shop-panes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}@media(max-width:600px){.shop-panes{grid-template-columns:1fr}}.shop-pane h3{margin:4px 0;font-size:14px;color:#cdb88f}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;min-height:72px;background:#1c160f;border:1px solid #5a4631;border-radius:6px;padding:6px}.shop-slot{position:relative;display:grid;justify-items:center;gap:2px;background:#2d2318;border:1px solid #6d5532;border-radius:6px;padding:6px 4px;color:#f3e6c4;font-size:12px;cursor:pointer}.shop-slot:hover,.shop-slot:focus{border-color:#f7c96a;background:#3a2c1f}.shop-slot canvas{width:44px;height:44px;border-radius:4px}.slot-price{color:#f7c96a}.slot-count{position:absolute;top:4px;right:6px;background:#8b6d3e;color:#1c160f;border-radius:8px;padding:0 5px;font-weight:bold}.shop-empty{color:#a8977a;margin:6px}#shop-window footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:10px;background:none;border:none;padding:0}.shop-money{font-weight:bold;color:#f7c96a}.shop-message{flex-basis:100%;margin:0;min-height:1.4em}.shop-note{flex-basis:100%;color:#a8977a;font-size:11px}.shop-tip{position:absolute;left:16px;right:16px;bottom:8px;background:#1c160f;border:1px solid #b8924f;border-radius:6px;padding:6px 8px;font-size:12px}

.pack-entry{display:grid;align-content:start;gap:4px;min-width:0}.pack-entry>.shop-slot{width:100%}.pack-use{min-height:44px;width:100%;padding:6px 10px;border:1px solid #b8924f;border-radius:6px;background:#4c3921;color:#f7c96a;font:inherit;touch-action:manipulation;cursor:pointer}.pack-use:focus-visible{outline:2px solid #f7c96a;outline-offset:2px}

/* Keep identity below connection status and inventory below the shared compass. */
#scene #walk-together-status{position:absolute;top:65px;left:12px;z-index:1002;max-width:calc(100% - 150px);background:#fffdf2b8;padding:4px 8px;border-radius:5px;font-size:12px;pointer-events:none}
#scene #player-hud{position:absolute;top:100px;left:12px;z-index:1002;max-width:calc(100% - 170px);display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;padding:4px 8px;background:rgba(28,22,16,.75);border-radius:8px;color:#f3e6c4;font-size:13px}
#player-hud .hud-player-name{overflow-wrap:anywhere;min-width:0}#player-hud .hud-logout{background:none;border:0;border-left:1px solid #8b6d3e;color:#cdb88f;padding:0 6px;font-size:12px;cursor:pointer}
#scene #money-hud{top:136px;bottom:auto;left:auto;right:12px;transform:none;max-width:160px;flex-wrap:wrap;justify-content:flex-end}
#scene #money-hud button{white-space:normal;overflow-wrap:anywhere;min-height:28px}
#scene #player-hud[hidden],#scene #money-hud[hidden],#scene #walk-together-status[hidden]{display:none}
@media(max-width:600px){#scene #money-hud{top:116px;right:8px;max-width:150px}#scene #player-hud{font-size:12px;max-width:calc(100% - 174px)}#scene #walk-together-status{max-width:calc(100% - 124px)}}
/* Four-by-four bag and a familiar numbered desktop action bar. */
#pack-window{top:184px;width:312px;max-height:calc(100% - 204px)}
#pack-window .pack-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
#pack-window .pack-entry{min-width:0;position:relative}#pack-window .shop-slot,#pack-window .pack-empty-slot{height:66px;min-height:66px;width:100%;padding:3px;background:#30251bbc;border:1px solid #80653f;border-radius:4px}
#pack-window .shop-slot canvas{width:42px;height:42px;margin:auto}#pack-window .slot-name{font-size:10px;line-height:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#pack-window .pack-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}#pack-window .pack-use{width:auto;min-width:96px}#pack-window .pack-use:disabled{opacity:.45;cursor:default}#pack-window .shop-slot.selected{outline:2px solid #f7c96a;outline-offset:-2px}#pack-window .pack-pages{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:8px}#pack-window .pack-pages[hidden]{display:none}
#action-bar{position:absolute;z-index:1004;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:6px;background:#1c160fbb;border:2px solid #95743d;border-radius:8px}
#action-bar[hidden]{display:none}.action-slot{position:relative;width:48px;height:48px;flex:none;padding:2px;background:#33261cdd;border:1px solid #c2a267;border-radius:4px;cursor:pointer}.action-slot canvas{width:40px;height:40px;pointer-events:none}.action-slot kbd{position:absolute;top:0;left:3px;color:#fff2bf;font:12px system-ui;text-shadow:1px 1px #000;pointer-events:none}.action-slot.unavailable canvas{filter:grayscale(1);opacity:.35}.action-slot:hover{border-color:#ffdb80}
#action-message{position:absolute;bottom:100%;left:0;right:0;text-align:center;color:#fff2bf;text-shadow:1px 1px #000;font-size:13px;pointer-events:none;margin:0 0 6px}
@media(max-width:600px),(pointer:coarse){#action-bar{display:none}#pack-window{top:158px;width:min(312px,calc(100% - 24px));max-height:calc(100% - 180px)}}

@media(min-width:601px) and (pointer:fine){
 #walk-chat{right:auto!important;left:12px;bottom:12px!important;transform:none;width:min(520px,calc(50% - 270px))!important;padding:6px 10px!important;background:rgba(18,17,14,.35)!important;color:#fff5dc!important;text-shadow:1px 1px 2px #000;pointer-events:none;z-index:1003!important}
 #walk-chat[hidden]{display:none}#walk-chat-messages{height:128px!important;max-height:20vh!important;margin:0!important;pointer-events:auto;scrollbar-width:thin}
 #walk-chat-form{margin-top:6px;pointer-events:auto}#walk-chat-form[hidden]{display:none!important}#walk-chat-input{background:#16130edb;color:#fff5dc;border:1px solid #b8924f;border-radius:4px;padding:4px 6px}#walk-chat-close{pointer-events:auto}#walk-chat-error:empty{display:none}
 #scene #first-person-map{width:clamp(240px,24vw,320px);right:12px;bottom:12px}
 .action-slot{width:44px;height:44px}.action-slot canvas{width:36px;height:36px}
}
@media(min-width:601px) and (max-width:1100px) and (pointer:fine){
 #action-bar{gap:2px}.action-slot{width:24px;height:32px}.action-slot canvas{width:20px;height:20px}.action-slot kbd{font-size:10px}
 #walk-chat{width:calc(50% - 161px)!important}#scene #first-person-map{width:min(240px,calc(50% - 161px));bottom:12px}
}
@media(min-width:601px) and (pointer:fine){#walk-chat-input{min-width:0;width:100%}#walk-chat-form{display:flex;flex-wrap:wrap;gap:4px}}

#pack-window header strong,#pack-window header button{flex:none;white-space:nowrap}#pack-window header small{display:none}#pack-window header{justify-content:space-between}
#walk-chat-form[hidden]{display:none!important}

/* Keep era selection and the walking action together in both settings menus. */
.era-walk-controls{grid-column:1/-1;display:flex;align-items:center;gap:6px;min-width:0}.era-walk-controls label{display:flex;align-items:center;gap:4px;min-width:0}.era-walk-controls select{min-width:0}.era-walk-controls button{white-space:nowrap;flex:none}



#large-map{position:absolute;inset:4%;z-index:1200;display:flex;flex-direction:column;background:#e9e0cceF;color:#24372e;border:2px solid #95743d;border-radius:8px;padding:10px;box-shadow:0 8px 40px #0008;pointer-events:auto}
#large-map[hidden]{display:none}#large-map header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 8px;background:none;border:0}#large-map button{padding:6px 12px;cursor:pointer}#large-map canvas{flex:1;min-height:0;width:100%;height:100%;object-fit:contain}#large-map p{margin:6px 0 0;text-align:center;font-size:13px}

#scene #building-popup{bottom:var(--building-info-bottom,60px);max-height:max(60px,calc(100% - var(--building-info-bottom,60px) - 160px))}
#scene #walk-chat-toggle{z-index:1004!important}

/* Fieldsets need explicit label layout: browser fieldset content does not reliably inherit flex. */
#map-options .layer-group{grid-column:1/-1;width:100%;min-width:0}
#map-options .layer-group label{display:flex;align-items:flex-start;gap:5px;width:100%;white-space:normal}
#map-options .layer-group input[type=checkbox]{flex:none;margin-top:5px}
#map-options.open{max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain}

#fishing-status{position:absolute;z-index:1005;left:50%;bottom:90px;transform:translateX(-50%);max-width:80%;padding:7px 12px;border-radius:5px;background:#211d15bb;color:#fff1cf;pointer-events:none;text-align:center}#fishing-status[hidden]{display:none}

#herb-status{position:absolute;z-index:1005;left:50%;top:100px;transform:translateX(-50%);max-width:80%;padding:7px 12px;background:#24351cce;color:#f4eed1;border-radius:5px;pointer-events:none;text-align:center}#herb-status[hidden]{display:none}

#fishing-status progress{display:block;width:240px;max-width:60vw;height:12px;margin:6px auto 3px;accent-color:#b8cf65}#fishing-status progress[hidden],#fishing-status small[hidden]{display:none}#fishing-status small{display:block;font-variant-numeric:tabular-nums}
