/* A compact icon rail and a brass-rimmed map keep the play surface open. */
.game-icon{display:block;width:30px;height:30px;flex:none;pointer-events:none;filter:drop-shadow(0 2px 1px #14130dbb)}
button.hud-icon{display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:5px;min-width:44px;min-height:44px;border-radius:4px;background:linear-gradient(#595443,#383a2e);border:1px solid #9d8c65;box-shadow:inset 0 1px #d4c49444,inset 0 -2px #1a211bcc,0 2px 5px #07110b77}
button.hud-icon:hover{background:linear-gradient(#756445,#4a4632);border-color:#d3b876}button.hud-icon:active{background:#625031}
button.hud-icon[aria-pressed=true],button.hud-icon.selected{border-color:#ebc980;background:linear-gradient(#826b3e,#54462e);box-shadow:inset 0 0 0 1px #cab47a66,0 0 6px #0b150d99}
button.hud-icon:focus-visible{outline:2px solid #ffe0a0;outline-offset:2px}.hud-symbol{display:flex;pointer-events:none}
#gameTabs{position:absolute;z-index:9;right:8px;bottom:8px;width:102px;padding:5px;display:grid;grid-template-columns:44px 44px;gap:4px;background:#2c3027e8;border:1px solid #9f8c60;border-radius:6px;box-shadow:inset 0 0 0 2px #4c4936,0 3px 10px #0c160e88}
#gameTabs button,#gameTabs #spiritButton{position:static;inset:auto;display:flex;width:44px;height:44px;min-height:44px;padding:5px;margin:0;flex:none;border-radius:3px}
#gameTabs button .game-icon{width:32px;height:32px}
:root{--side-panel-width:216px;--side-panel-right:116px;--side-panel-height:300px;--equipment-slot-width:40px;--equipment-slot-height:34px}
body,body.panels-open,body.trade-open.panels-open{--dock:0px}#viewport{inset:0}
#gameDock,body.panels-open #gameDock{top:auto;right:var(--side-panel-right);bottom:8px;width:var(--side-panel-width);height:var(--side-panel-height);max-height:calc(100% - 16px);padding:6px;border-radius:5px;background:linear-gradient(115deg,#3b3d2fee,#202d24f5)}
.dock-heading{display:flex;flex:0 0 32px;align-items:center;justify-content:space-between;gap:6px;padding:0 0 3px;border-bottom:1px solid #756b4c}.dock-heading h2{font:18px Georgia,serif;color:#e7cf99;margin:0}
#gameDock #togglePanels{position:static;inset:auto;min-width:28px;width:28px;height:28px;min-height:28px;padding:3px;flex:0 0 28px}.dock-heading .game-icon{width:22px;height:22px}
#panel,body.panels-open #panel{padding:6px 0 0;scrollbar-color:#aa9464 #263023;scrollbar-width:thin}
.inventory-summary{display:flex;justify-content:space-between;gap:4px;color:#d8c596;font-size:12px;line-height:16px}
#inventoryGrid.bag25{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:6px}
.bagslot,body.trade-open .bagslot{height:38px;min-height:0;padding:3px}.bagslot canvas{width:100%;height:100%;object-fit:contain}
#gameDock .desc{font-size:14px;line-height:1.4}#gameDock .questhead h2{font-size:16px}
#mapHud{--map-size:148px;top:8px;right:calc(var(--dock) + 8px);width:var(--map-size);height:calc(var(--map-size) + 25px);padding:0;background:transparent;border:0;box-shadow:none;overflow:visible}
#mapHud #minimapButton{position:relative;display:block;width:var(--map-size);height:var(--map-size);inset:auto;min-height:0;padding:4px;border-radius:50%;background:#444634;border:3px solid #b19b68;box-shadow:inset 0 0 0 2px #262d21,0 3px 12px #111c14aa;overflow:hidden}
#mapHud #minimap{width:100%;height:100%;border-radius:50%;background:#2d4534}#mapHud #minimapButton>span{top:5px;z-index:1;font:bold 12px Georgia,serif;pointer-events:none;color:#fff0c1}
#mapHud .stats{top:auto;bottom:0;left:2px;right:2px;height:20px;min-height:0;padding:0;border:0;background:transparent}
#mapHud .health{height:18px;background:#3d2923;box-shadow:0 2px 4px #121a1499}#mapHud .health b{font:700 12px/16px system-ui}
#mapHud .gold{top:-24px;left:-67px;right:auto;bottom:auto;padding:3px 5px;background:#242d21dd;border:1px solid #8c7b50;color:#eac674;font-size:12px;border-radius:4px}
#mapHud #mapBtn{position:absolute;display:flex;top:0;left:-49px;right:auto;width:44px;height:44px;padding:5px;border-radius:50%;min-height:44px}
#worldClock{top:185px;right:calc(var(--dock) + 12px);font-size:11px;background:#253025cc;padding:2px 6px}
#runButton,body.panels-open #runButton{right:calc(var(--dock) + 161px);top:101px;left:auto;min-width:76px;width:76px;gap:2px;padding:4px;border-radius:22px;background:linear-gradient(90deg,#535b36 var(--energy),#293526 var(--energy))}
#runButton .game-icon{width:28px;height:28px}#runEnergy{font-size:12px}#runLabel{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
header{left:8px;top:8px;right:auto}#journal{width:44px;height:44px;border-radius:4px}#ambientButton{top:8px;left:56px;min-height:44px;width:44px;padding:5px}#fullscreenButton{top:8px;left:104px;min-height:44px;width:44px;padding:5px}
#waveButton,body.panels-open #waveButton{display:flex;top:8px;left:152px;right:auto;min-height:44px;width:44px;padding:5px}
.region{top:60px;left:8px;max-width:230px;padding:4px 6px;font-size:14px;background:#17261cb8}.region small{display:none}#onlineStatus{top:90px;left:12px;font-size:11px}#cloudStatus{top:110px;left:8px;font-size:11px;background:#17261c88}
#displayNotice{top:138px;left:8px}.legend{display:none!important}
#combatbar{left:8px;bottom:8px;width:148px;padding:0;gap:0;background:transparent;min-height:44px}#combatButtons{gap:4px}#combatButtons button{width:44px;flex:1;padding:5px;min-height:44px}#combatButtons .game-icon{width:30px;height:30px}
#trainingFocus{width:148px;min-height:36px;font-size:12px;bottom:49px;padding:5px 21px 5px 7px}
.action{left:164px;bottom:8px;right:auto;gap:4px;min-height:44px}.action button{min-height:44px;padding:5px}#eat{min-width:60px}#eat .game-icon{width:26px;height:26px}#food{font-size:12px;min-width:11px}#stop{width:44px}.action .actiontext{display:none}
#cameraControls,body.panels-open #cameraControls{display:flex;bottom:8px;right:calc(var(--dock) + 124px);left:auto;gap:4px}#cameraControls button{width:40px;min-width:40px;height:40px;min-height:40px;padding:7px}#cameraControls .game-icon{width:24px;height:24px}
#leaveInterior{bottom:57px;right:calc(var(--dock) + 124px);width:44px;min-height:44px;padding:5px}#tutorial{bottom:104px;max-width:calc(100% - var(--dock) - 20px)}#toast{left:50%;transform:translateX(-50%);top:58px;max-width:min(370px,calc(100% - var(--dock) - 40px))}
#creator .creator-rotation{display:flex;justify-content:center}#creator .creator-rotation #creatorZoom{width:auto;min-width:110px;padding:4px 12px}
@media(max-height:500px){#mapHud{--map-size:104px}#worldClock{top:141px}#runButton,body.panels-open #runButton{right:calc(var(--dock) + 118px);top:57px}#mapHud .gold{top:-24px;left:-68px}#cameraControls,body.panels-open #cameraControls{display:none}.region{top:60px}#cloudStatus{top:106px}}
@media(max-height:500px){body.panels-open #runButton{top:8px;right:166px}body.panels-open #mapHud .gold{left:auto;right:4px;top:-27px}}
@media(max-width:820px){#cameraControls,body.panels-open #cameraControls{display:none}#toast{max-width:calc(100% - 150px)}body.panels-open #tutorial{max-width:calc(100% - var(--side-panel-width) - var(--side-panel-right) - 24px);width:220px}}
@media(max-width:580px){:root{--side-panel-width:194px}#gameDock,body.panels-open #gameDock{z-index:11}body.panels-open #tutorial{display:none}}

/* The same service symbols appear on the small map and the readable local map. */
#modal.world-map-window[open]{width:min(920px,calc(100vw - 24px));padding:12px;background:linear-gradient(120deg,#393c2e,#1f2b23);border:2px solid #ab9462}
.world-map-window #modalBody{padding:0;overflow:auto}.world-map-window h2{font-size:22px;margin:0}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px 8px}.map-heading p{margin:3px 0 0;font-size:12px;color:#c9c1a2}.map-heading button{width:44px;margin:0;flex:none}
.map-filters{display:flex;flex-wrap:wrap;gap:4px;padding:0 0 8px}.map-filters button{margin:0;width:40px;min-width:40px;height:40px;min-height:40px;padding:5px}.map-filters .game-icon{width:27px;height:27px}
.map-content{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:10px;min-height:0}.local-map-frame{position:relative;min-width:0;align-self:start;background:#263f31;border:2px solid #8f815a;box-shadow:inset 0 0 15px #15291d;border-radius:3px;overflow:hidden}
#localMap{display:block;width:100%;height:auto;max-height:55dvh;object-fit:contain;touch-action:none;cursor:grab}.map-north{position:absolute;top:7px;left:50%;transform:translateX(-50%);font:bold 14px Georgia,serif;color:#f3deb0;text-shadow:0 1px 3px #000;pointer-events:none}
.map-scale{position:absolute;bottom:5px;left:8px;padding:2px 4px;background:#18271dd9;font-size:11px;color:#d4ccaa;pointer-events:none}.map-tools{display:flex;gap:4px}.map-tools button{margin:0}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0}.map-toolbar p{font-size:12px;margin:0;line-height:1.4}
.map-places{display:flex;flex-direction:column;gap:4px;max-height:55dvh;overflow:auto;scrollbar-width:thin;scrollbar-color:#a3936b #243426}.map-places button{margin:0;display:flex;align-items:center;gap:8px;padding:7px;text-align:left;border-color:#69684d;background:#263626;font-size:13px;min-height:50px}.map-places button .game-icon{width:27px;height:27px}.map-places small{display:block;color:#c2bea1;font-size:11px;margin-top:3px}.map-places button[aria-pressed=true]{border-color:#ecd397;background:#655a35}.map-places p{font-size:13px;padding:9px}
#mapSelection{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #8a7d55;padding:8px 0 0;margin-top:8px;min-height:56px}#mapSelection p{font-size:12px;line-height:1.4;margin:2px 0 0;color:#c8c8ac}#mapSelection strong{font:17px Georgia,serif;color:#f0d99f}#mapSelection button{width:auto;margin:0;min-width:115px;flex:none;font-size:13px}
@media(max-height:440px){.map-content{grid-template-columns:minmax(0,1fr) 205px}#localMap,.map-places{max-height:42dvh}.map-heading{padding-bottom:5px}.map-filters{padding-bottom:5px}.map-filters button{min-height:36px;height:36px}.map-heading h2{font-size:19px}.map-toolbar{margin:4px 0}#mapSelection{min-height:49px;padding-top:5px;margin-top:4px}.world-map-window #closeModal{min-height:36px;margin-top:4px}}
@media(max-width:580px){.map-content{grid-template-columns:1fr}.map-places{max-height:140px}#mapSelection{align-items:flex-start}.map-heading h2{font-size:19px}}

/* Compact worn-item silhouettes, with a separate character-and-stats window. */
.paper-equipment{position:relative;grid-template-areas:". head ." ". neck ammo" "weapon body shield" ". legs ." "hands feet .";grid-template-columns:repeat(3,var(--equipment-slot-width));justify-content:center;gap:4px;margin:4px auto 0;padding:0}
.paper-equipment::before{content:'';position:absolute;z-index:0;left:50%;top:14px;bottom:14px;transform:translateX(-50%);width:4px;background:#776d493b;pointer-events:none}
.equipment-slots.paper-equipment .gearslot,body.panels-open .equipment-slots.paper-equipment .gearslot{z-index:1;width:var(--equipment-slot-width);height:var(--equipment-slot-height);min-height:var(--equipment-slot-height);padding:2px;margin:0;display:flex;align-items:center;justify-content:center;border-radius:3px;border:1px solid #7d7655;background:#414533b8;box-shadow:inset 0 0 5px #17261c99}
.paper-equipment .gearslot .game-icon{width:26px;height:26px;opacity:.32;filter:none}.equipment-slots.paper-equipment .gearslot canvas,body.panels-open .equipment-slots.paper-equipment .gearslot canvas{width:28px;height:28px;object-fit:contain}
.paper-equipment .gearslot:disabled{opacity:1;cursor:default}.equipment-actions{display:flex;justify-content:center;gap:6px;margin:6px 0 0}.equipment-actions button.hud-icon{width:44px;min-height:36px;height:36px;padding:3px}.equipment-actions .game-icon{width:28px;height:28px}
.skill-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:6px}.skill-tiles button{display:grid;grid-template-columns:25px minmax(0,1fr);gap:3px;align-items:center;padding:3px;min-height:42px;border-radius:3px;background:#414633b8;text-align:center}.skill-tiles .game-icon{width:25px;height:25px}.skill-tiles span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skill-tiles b{color:#f1d888;font-size:16px;line-height:1}.skill-tiles b small{display:block;font-size:12px;color:#c0bea2;font-weight:400;margin-top:2px}
/* Equipment and bank windows share a small footprint beside the usable bag. */
#modal.combat-stats-window[open],#modal.trade-window[open]{position:fixed;z-index:30;left:auto;right:calc(var(--side-panel-right) + var(--side-panel-width) + 8px + env(safe-area-inset-right));top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:min(520px,calc(100vw - var(--side-panel-right) - var(--side-panel-width) - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));height:min(328px,calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));max-width:none;max-height:none;margin:0;padding:8px;border-radius:5px;background:linear-gradient(#3d3e30,#293225);border:2px solid #a39160;box-shadow:0 4px 16px #0c160e88}
.combat-stats-window #modalBody{display:flex;flex-direction:column;flex:1;min-height:0;padding:0;overflow:hidden}.combat-stats-window #modalBody:after{display:none}.combat-stats-window h2{font-size:18px;line-height:26px;text-align:center;margin:0 30px 6px 0;flex:none}
.combat-stats-window #closeModal{position:absolute;right:5px;top:5px;width:30px;height:30px;min-height:30px;padding:0;margin:0;font-size:24px;line-height:1;background:#543b2e;border-color:#a37b52;box-shadow:none}
.combat-stats-layout{display:grid;grid-template-columns:112px minmax(80px,1fr) 180px;gap:6px;flex:1;min-height:0}.combat-stats-layout .paper-equipment{--equipment-slot-width:34px;--equipment-slot-height:34px;margin-top:4px;gap:3px}.equipment-level{text-align:center;font:12px Georgia,serif!important;color:#d9c080!important;margin:6px 0!important}
.equipment-character{min-width:0;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at 50% 90%,#726d3f44,transparent 50%)}#equipmentPreview{display:block;width:100%;height:0;flex:1;min-height:0;object-fit:contain;touch-action:none;cursor:grab}.equipment-character small{font:12px Georgia,serif;color:#c9be99;flex:none;padding:4px 0}
.combat-stat-groups{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#aa9362 #263022}.combat-stat-groups section{margin:0 0 8px}.combat-stat-groups h3{font:14px Georgia,serif;margin:0 0 4px;color:#e2bd78}.combat-stat-groups dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;margin:0;font-size:12px;line-height:1.4;color:#d6c7a2}.combat-stat-groups dt,.combat-stat-groups dd{margin:0}.combat-stat-groups dd{color:#e9d796;font-variant-numeric:tabular-nums;text-align:right}
body.equipment-stats-open #gameDock{z-index:22;border-color:#bc9f67}body.equipment-stats-open #tutorial{visibility:hidden}
#modal.trade-window[open]{padding:0}.trade-window #modalBody{padding:8px}.trade-heading{gap:7px;margin-bottom:6px}.trade-heading h2{font-size:18px}.trade-emblem{flex-basis:30px;height:30px;font-size:20px}.trade-heading p{font-size:12px}
.trade-tools{gap:6px;padding-bottom:5px}.trade-window .trade-tabs button{min-height:30px;padding:4px 6px}.trade-window #tradeSearch{min-height:30px;height:30px;width:130px;margin:0;padding:4px 6px}.trade-scroll{margin:6px 0}.trade-grid{gap:4px;padding:6px}.trade-window .trade-slot{height:42px;padding:4px}
.trade-bottom{padding-top:5px}#tradeNotice{font-size:12px;min-height:16px;margin-bottom:5px}.trade-quantity>span{display:none}.trade-window .trade-quantity button{min-width:28px;min-height:30px;padding:4px 6px}.trade-window #tradeCustom{width:52px;min-height:30px;height:30px}.trade-window #depositInventory{min-height:32px;padding:4px 6px}.trade-wallet{font-size:12px}.trade-window #closeModal{top:5px;right:5px;width:30px;height:30px;min-height:30px}
#spiritChoices button{font-family:Georgia,serif;color:#e4cea1;background:#414333}#spiritChoices small{display:block;font:11px system-ui;color:#c7c7a7;margin-top:3px}#spiritChoices .chosen{border-color:#e1c588;background:#6b5d39}#spiritState{padding:5px 8px;background:#333f2c;border:1px solid #8c8357;border-radius:3px}#spiritsDialog{background:linear-gradient(120deg,#3d3b2e,#253426);border:2px solid #a18f62}.spiritHeading h2{font-size:22px}
@media(max-width:800px){.combat-stats-layout{grid-template-columns:106px minmax(65px,1fr) 152px;gap:4px}.combat-stat-groups dl{gap:2px 4px}.trade-tools{flex-wrap:wrap}.trade-window #tradeSearch{width:100%}.trade-controls{gap:5px}.trade-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:720px){.combat-stats-window #modalBody{overflow-y:auto}.combat-stats-window h2{font-size:16px;line-height:20px;min-height:28px}.combat-stats-layout{grid-template-columns:106px minmax(0,1fr);flex:none;min-height:230px}.combat-stat-groups{grid-column:1/-1;overflow:visible}.combat-stats-layout .equipment-character{min-height:210px}.trade-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.trade-window #modalBody{overflow-y:auto}.trade-scroll{min-height:100px;flex:1 0 100px}.trade-heading h2{font-size:16px}}

.paper-equipment [data-equipment-slot="ammo"]{grid-area:ammo;position:relative}.equipment-quantity{position:absolute;top:0;left:1px;color:#ffe281;font:12px/14px system-ui;text-shadow:0 1px 2px #000;pointer-events:none}

/* Paired windows use the rail's space; their close buttons restore the rail. */
body.trade-open,body.workbench-open,body.equipment-stats-open{--side-panel-right:8px}
body.trade-open #gameTabs,body.workbench-open #gameTabs,body.equipment-stats-open #gameTabs{visibility:hidden}
.combat-stat-groups>button{width:100%;min-height:32px;font-size:12px;padding:4px 6px;margin:0 0 6px}.combat-stat-groups section>p{font-size:12px;margin:3px 0 7px}

#minimapCompass{position:absolute;left:0;top:0;width:32px;height:32px;min-width:0;padding:4px;border-radius:50%;z-index:3;background:#3b3b30;border:2px solid #8b8469;color:#f5e9c9}#minimapCompass svg{width:100%;height:100%}
