@layer interface {
/* Layout owner: the scene never changes position when dungeon combat begins. */
.game-layout { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) clamp(330px,29vw,440px); gap:6px; padding:3px 7px 7px; }
.combat-column { min-width:0; min-height:0; display:grid; grid-template-rows:minmax(0,1fr) 71px auto; padding:5px; }
.sidebar { min-width:0; min-height:0; display:grid; grid-template-rows:auto 42px minmax(0,1fr) auto 44px; padding:11px; overflow:hidden; }
.in-dungeon .sidebar { grid-template-rows:42px minmax(0,1fr) auto; }
.in-dungeon .sidebar-actions { display:none; }
.sidebar > .character-card { grid-row:1; grid-template-columns:1fr; }
.in-dungeon .character-card { display:none; }
.exploration-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:4px; border-bottom:1px solid #704216; background:#090a08; }
.sidebar > [role="tabpanel"] { min-height:0; min-width:0; }
.exploration-details { display:block; overflow:auto; padding:12px 10px; background:radial-gradient(circle at 50% 0,#1b1913,#090a08 62%); }
.nearby-title { display:none; }
.dungeon-map { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:6px; padding:6px 0 0; overflow:hidden; }
.map-heading { flex-wrap:nowrap; padding-bottom:5px; }
.map-controls { width:auto; margin-left:auto; grid-template-columns:24px auto 24px; }
.map-controls button { min-height:24px; padding:2px 6px; font-size:.65rem; }
.map-floor-control { margin-left:0; }
.story-wrap { display:grid; grid-template-rows:minmax(0,1fr); padding:6px 0; overflow:hidden; }
.story-wrap .parchment { padding:16px; }
.story-heading h2 { font-size:1.4rem; }
.story-log { font-size:1rem; line-height:1.5; }
.sidebar [role="tabpanel"][hidden] { display:none; }
.sidebar-actions { min-width:0; min-height:0; padding:6px 0; }
.sidebar-actions .exploration-actions { display:grid; gap:6px; padding:0; }
.combat-column > .action-dock { display:grid; height:80px; }
.combat-column .action-dock .action-scroll { padding:4px; gap:4px; }
.combat-column .action-dock .action-item { padding:3px 4px; }
.combat-column .action-dock .action-icon { height:30px; font-size:1.4rem; }
.combat-column .action-dock .action-icon img { width:30px; height:30px; }
/* Keep one quiet outer frame; remove repeated ornamental frames in the dungeon. */
.in-dungeon :is(.combat-column,.sidebar,.masthead) { border:1px solid #684820; outline:0; background:#0d0e0b; box-shadow:none; }
.in-dungeon :is(.combat-column,.sidebar,.masthead)::before,
.in-dungeon .masthead::after { display:none; }
.in-dungeon .scene { border:0; box-shadow:none; }
.sidebar .composer { min-height:44px; margin:0; grid-template-columns:minmax(0,1fr) 60px; gap:6px; }
.sidebar .composer input { border-color:#68451d; font-size:.85rem; }
.app-shell.exploration-mode:not(.in-dungeon) .combat-column { display:none; }
.app-shell.exploration-mode:not(.in-dungeon) .game-layout { grid-template-columns:minmax(0,1fr); }
.app-shell.exploration-mode:not(.in-dungeon) .sidebar { grid-template-columns:clamp(210px,18vw,270px) minmax(0,1fr) clamp(285px,27vw,360px); grid-template-rows:42px auto minmax(0,1fr) auto; gap:0 8px; }
.app-shell.exploration-mode:not(.in-dungeon) .exploration-tabs { grid-column:3; grid-row:1; grid-template-columns:repeat(2,minmax(0,1fr)); }
.app-shell.exploration-mode:not(.in-dungeon) .character-card { grid-column:3; grid-row:2; }
.app-shell.exploration-mode:not(.in-dungeon) .exploration-details { grid-column:1; grid-row:1 / -1; padding:12px 8px; border:1px solid #704216; }
.app-shell.exploration-mode:not(.in-dungeon) .nearby-title { display:block; margin:0 0 12px; color:#ddc28a; font:1.1rem var(--display); }
.app-shell.exploration-mode:not(.in-dungeon) .story-wrap { grid-column:2; grid-row:1 / -1; grid-template-rows:minmax(0,1fr) 44px; gap:6px; padding:0; }
.app-shell.exploration-mode:not(.in-dungeon) .parchment { padding:24px; }
.app-shell.exploration-mode:not(.in-dungeon) .dungeon-map { grid-column:3; grid-row:2 / 4; }
.app-shell.exploration-mode:not(.in-dungeon) .hall-items { grid-column:3; grid-row:3; min-height:0; overflow:auto; padding:10px 4px; }
.app-shell.exploration-mode:not(.in-dungeon) .sidebar-actions { grid-column:3; grid-row:4; align-self:end; }
.app-shell.exploration-mode:not(.in-dungeon).map-view .move-trigger { display:none; }

.scene-exit[data-closed-door="true"] { opacity:1; border-color:transparent; }
.scene-exit[data-closed-door="true"]:disabled { opacity:1; }
.scene-return { position:absolute; z-index:10; bottom:10px; left:50%; transform:translateX(-50%); max-width:calc(100% - 24px); min-height:32px; padding:6px 14px; border:1px solid #9b8048; border-radius:3px; background:#10150ee8; color:#edd9a9; font:.75rem var(--display); cursor:pointer; box-shadow:0 3px 10px #0008; }
.scene-return:hover,.scene-return:focus-visible { border-color:#e3c37a; background:#302a18; outline:1px solid #e3c37a; outline-offset:2px; }
.scene-return:disabled { opacity:.4; cursor:default; }

/* One compact management toolbar, including the existing character portrait. */
.masthead { grid-template-columns:minmax(160px,1fr) auto auto; grid-template-rows:auto auto; gap:2px 12px; }
.masthead h1 { grid-column:1; grid-row:1; justify-self:start; text-align:left; font-size:clamp(1rem,1.4vw,1.4rem); }
.masthead-tools-left { grid-column:1; grid-row:2; }
.masthead-tools-right { grid-column:3; grid-row:1 / 3; flex-wrap:wrap; justify-content:flex-end; max-width:230px; }
.masthead .character-nav { grid-column:2; grid-row:1 / 3; display:flex; gap:6px; padding:0; justify-content:center; border:0; }
.masthead .character-nav button { min-height:42px; display:flex; align-items:center; gap:6px; padding:4px 10px; font-size:.75rem; }
.masthead .character-nav button > span { width:30px; height:30px; }
.masthead .character-nav .game-art-icon { width:100%; height:100%; object-fit:contain; }
.masthead .portrait { box-shadow:none; }
.masthead .portrait::after { content:none; }
.masthead .portrait > span { position:static; display:block; }
.masthead .portrait .game-art-icon { object-fit:cover; object-position:50% 18%; }
.masthead .portrait b { font-weight:400; }
.dungeon-experience { grid-column:1 / -1; grid-row:4; display:flex; align-items:center; gap:7px; padding:0 0 2px; }
.dungeon-xp-label { flex:none; color:#d8cfbf; font:10px/12px var(--ui); }
.dungeon-experience .stat { flex:1; min-width:0; margin:0; }
.dungeon-experience .stat > span { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.dungeon-experience .meter { height:5px; margin-top:0; }
.combat-resource .effect-indicators { display:flex; flex-wrap:nowrap; gap:5px; margin:0; height:24px; scrollbar-width:thin; overflow-x:auto; overflow-y:hidden; align-items:center; }
.combat-resource .effect-indicators:empty { display:flex; }
.combat-resource .effect-indicator { flex-shrink:0; width:18px; height:18px; font-size:13px; }

@media (min-width:761px) {
 body { overflow:hidden; }
 .app-shell { height:100dvh; min-height:0; grid-template-rows:auto minmax(0,1fr); }
 .app-shell.in-dungeon { grid-template-columns:minmax(0,1fr) clamp(360px,29vw,440px); gap:6px; padding:3px 7px 7px; }
 .in-dungeon .game-layout { display:contents; }
 .in-dungeon .combat-column { grid-column:1; grid-row:1 / 3; }
 .in-dungeon .sidebar { grid-column:2; grid-row:2; }
 .in-dungeon .masthead { grid-column:2; grid-row:1; margin:0; padding:10px; min-width:0; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto auto; gap:6px; }
 .in-dungeon .masthead h1 { grid-column:1 / -1; grid-row:1; font-size:1.05rem; }
 .in-dungeon .masthead .character-nav { grid-column:1 / -1; grid-row:2; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); width:100%; gap:3px; }
 .in-dungeon .masthead .character-nav button { min-width:0; min-height:48px; flex-direction:column; gap:2px; padding:3px 1px; font-size:.7rem; }
 .in-dungeon .masthead .character-nav button > span { width:24px; height:24px; }
 .in-dungeon .masthead .masthead-tools-left { grid-column:1; grid-row:3; }
 .in-dungeon .masthead .masthead-tools-right { grid-column:2; grid-row:3; max-width:none; gap:4px; }
 .in-dungeon .masthead-tools button { padding:3px 6px; font-size:.65rem; }
}
@media (max-width:1100px) and (min-width:761px) {
 .masthead { grid-template-columns:auto minmax(0,1fr) auto; gap:5px 12px; }
 .masthead h1 { grid-column:2; grid-row:1; }
 .masthead-tools-left { grid-column:1; grid-row:1; }
 .masthead-tools-right { grid-column:3; grid-row:1; }
 .masthead .character-nav { grid-column:1 / -1; grid-row:2; }
 .game-layout { grid-template-columns:minmax(0,1fr) 320px; }
 .app-shell.exploration-mode:not(.in-dungeon) .sidebar { grid-template-columns:180px minmax(0,1fr) 280px; }
 .masthead-tools-right { max-width:185px; }
 .masthead .character-nav button { padding:4px 6px; font-size:.7rem; }
}
@media (max-width:760px) {
 .masthead { grid-template-columns:1fr auto; }
 .masthead h1 { grid-column:1; text-align:left; }
 .masthead-tools-left { display:none; }
 .masthead-tools-right { grid-column:2; grid-row:1; }
 .masthead .character-nav { grid-column:1 / -1; grid-row:2; flex-wrap:wrap; }
 .masthead .character-nav button { padding:3px 6px; }
 .game-layout { grid-template-columns:minmax(0,1fr); }
 .combat-column { min-height:400px; grid-template-rows:minmax(270px,45vh) 71px auto; }
 .app-shell.exploration-mode:not(.in-dungeon) .sidebar { grid-template-columns:minmax(0,1fr); grid-template-rows:42px auto auto auto auto; gap:8px; }
 .app-shell.exploration-mode:not(.in-dungeon) .exploration-tabs { grid-column:1; grid-row:1; }
 .app-shell.exploration-mode:not(.in-dungeon) .character-card { grid-column:1; grid-row:2; }
 .app-shell.exploration-mode:not(.in-dungeon) .hall-items { grid-column:1; grid-row:3; max-height:280px; }
 .app-shell.exploration-mode:not(.in-dungeon) .exploration-details { grid-column:1; grid-row:5; }
 .app-shell.exploration-mode:not(.in-dungeon) .dungeon-map { grid-column:1; grid-row:2 / 4; min-height:320px; }
 .app-shell.exploration-mode:not(.in-dungeon) .sidebar-actions { grid-column:1; grid-row:4; }
 .app-shell.exploration-mode:not(.in-dungeon) .story-wrap { grid-column:1; grid-row:6; height:450px; }
 .sidebar { min-height:500px; }
 .in-dungeon .sidebar { height:540px; }
}

}
