﻿:root{--bg:#100d09;--panel:#21170d;--panel2:#2b1d10;--line:#6d5738;--text:#f2e2bd;--muted:#b89d70;--accent:#d6a84c;--green:#94c973;--red:#d36d5f;--blue:#78aee8;--mono:Consolas,"Courier New",monospace}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#2b1f12 0,#100d09 55%);color:var(--text);font-family:system-ui,Segoe UI,sans-serif}
button,input,select,textarea{font:inherit}button{background:linear-gradient(#3a2916,#21170d);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 11px;cursor:pointer}
button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{background:#120d08;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;width:100%}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #ffe1a0;outline-offset:2px}
textarea{min-height:150px;font-family:var(--mono)}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#100d09ee;z-index:4}
h1,h2,h3{font-family:Georgia,serif;color:#ffd37c}h1{margin:0}.topbar p{margin:4px 0 0;color:var(--muted)}.topstats{text-align:right;color:var(--green);font-family:var(--mono)}
.tabs{display:flex;gap:8px;overflow-x:auto;padding:10px 24px;background:#120e09;border-bottom:1px solid #3d2c19;position:sticky;top:80px;z-index:3}.tabs button{white-space:nowrap}.tabs .active{border-color:var(--accent);color:#ffe1a0}
#app{max-width:1450px;margin:auto;padding:18px 24px}.grid{display:grid;gap:14px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.auto{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:linear-gradient(145deg,#2d1f12,#191108);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 12px 24px #0007;min-width:0}.card h2,.card h3{margin-top:0}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.muted{color:var(--muted)}.good{color:var(--green)}.bad{color:var(--red)}.info{color:var(--blue)}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;font-family:var(--mono);font-size:.92rem}.badge{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:2px 8px;background:#140f09;font-size:.82rem}
.bar{height:12px;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#0b0805;margin:8px 0}.bar span{display:block;height:100%;background:linear-gradient(90deg,#8e6429,#e5bd63)}
table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #6d573877;padding:8px;text-align:left;vertical-align:top}.log{font-family:var(--mono);max-height:70vh;overflow:auto;background:#0c0905;border:1px solid var(--line);border-radius:12px;padding:12px}.log div{border-bottom:1px dotted #d6a84c33;padding:5px}.dungeon-live-log{font-family:var(--mono);max-height:260px;overflow:auto;background:#0c0905;border:1px solid #6d573877;border-radius:8px;padding:10px;margin:10px 0}.dungeon-live-log h4{margin:0 0 8px}.dungeon-log-entry{border-left:3px solid var(--line);border-bottom:1px dotted #d6a84c22;padding:5px 7px}.dungeon-log-dungeon{border-left-color:#d6a84c}.dungeon-log-combat{border-left-color:#d87545}.dungeon-log-skill{border-left-color:#7fc7ff}.dungeon-log-loot{border-left-color:#8bd36b}.dungeon-log-danger{border-left-color:var(--red);color:#ffd1c7}.dungeon-log-level{border-left-color:#d9ec78}
.table-scroll{width:100%;overflow-x:auto}
.modal{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:10;padding:16px;overflow:auto}.modal>div{background:var(--panel);border:1px solid var(--accent);border-radius:14px;max-width:760px;width:min(760px,94vw);max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;padding:18px}.modal .actions{position:sticky;bottom:0;background:var(--panel);padding-top:10px}.hidden{display:none}.small{font-size:.88rem}
.common{color:#ddd1b0}.uncommon{color:#98e07a}.rare{color:#6bb7ff}.epic{color:#c58aff}.legendary{color:#ffbf45}.unique{color:#ff7f7f}.elite{color:#66f0ff}
.tracked,.tracked-quest{border-color:var(--accent);box-shadow:0 0 0 1px #d6a84c55,0 12px 24px #0007}.tracked{color:#ffe1a0}
label{display:grid;gap:5px}.card .card{box-shadow:none;background:#1b1209}.actions button{min-height:36px}th{color:#ffd37c}
.notification-center{position:relative;justify-self:end}.notification-toggle{white-space:nowrap;min-height:34px;padding:7px 10px}.notification-toggle span{display:inline-block;min-width:22px;margin-left:6px;border:1px solid var(--line);border-radius:999px;background:#120d08;color:var(--muted);font-family:var(--mono);font-size:.82rem}.notification-toggle.has-unread{border-color:var(--accent);color:#ffe1a0;box-shadow:0 0 0 1px #d6a84c44}.notification-toggle.has-unread span{border-color:var(--accent);color:#ffe1a0}.notification-menu{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 24px));background:#120d08;border:1px solid var(--accent);border-radius:10px;padding:10px;box-shadow:0 14px 30px #000c;z-index:45;text-align:left;color:var(--text);font-family:system-ui,Segoe UI,sans-serif}.notification-menu h3{margin:0 0 8px}.notification-list{display:grid;gap:8px;max-height:320px;overflow:auto}.notification-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;border-bottom:1px dotted #d6a84c44;padding-bottom:7px}.notification-item p{margin:0}.notification-item time{color:var(--muted);font-family:var(--mono);font-size:.82rem}.notification-item.read{opacity:.65}.notification-actions{display:flex;gap:8px;margin-top:10px}.notification-actions button{flex:1;padding:7px 8px}
body[data-theme="terminal"]{--bg:#050805;--panel:#071107;--panel2:#0b190b;--line:#2f7d43;--text:#d8ffd8;--muted:#82b982;--accent:#7cff7c;background:#050805}
body[data-theme="midnight"]{--bg:#080b12;--panel:#111927;--panel2:#182235;--line:#3f5b78;--text:#dce8f7;--muted:#91a9c4;--accent:#7fb7ff;--green:#7ed7a3;--red:#ff7d7d;--blue:#9fc8ff;background:radial-gradient(circle at top,#17243a 0,#080b12 58%)}
body[data-theme="ember"]{--bg:#120807;--panel:#29110d;--panel2:#35180f;--line:#7d3c25;--text:#ffe4d0;--muted:#d39a7a;--accent:#ff9b4a;--green:#b8d36b;--red:#ff6f59;--blue:#8fc6ff;background:radial-gradient(circle at top,#3b160d 0,#120807 58%)}
body[data-theme="grove"]{--bg:#071109;--panel:#102116;--panel2:#172b1c;--line:#3e6b46;--text:#e1f2d8;--muted:#9fbd93;--accent:#a9d66f;--green:#8fe08f;--red:#e07b72;--blue:#83c6bc;background:radial-gradient(circle at top,#19331e 0,#071109 58%)}
body[data-theme="frost"]{--bg:#071116;--panel:#10222b;--panel2:#16303b;--line:#467284;--text:#e0f7ff;--muted:#98bfca;--accent:#8be7ff;--green:#8fe3c5;--red:#ff8b8b;--blue:#a6ddff;background:radial-gradient(circle at top,#173744 0,#071116 58%)}
body[data-theme="royal"]{--bg:#0d0914;--panel:#1d142b;--panel2:#281b3a;--line:#6a5188;--text:#f1e5ff;--muted:#bca2d4;--accent:#d7a7ff;--green:#9ed993;--red:#e98295;--blue:#9fc5ff;background:radial-gradient(circle at top,#2a1b42 0,#0d0914 58%)}
body[data-theme]:not([data-theme="default"]) button{background:linear-gradient(var(--panel2),var(--panel));border-color:var(--line);color:var(--text)}
body[data-theme]:not([data-theme="default"]) input,body[data-theme]:not([data-theme="default"]) select,body[data-theme]:not([data-theme="default"]) textarea{background:var(--bg);border-color:var(--line);color:var(--text)}
body[data-theme]:not([data-theme="default"]) .topbar{background:color-mix(in srgb,var(--bg) 92%,transparent);border-color:var(--line)}
body[data-theme]:not([data-theme="default"]) .tabs{background:var(--bg);border-color:var(--line)}
body[data-theme]:not([data-theme="default"]) .card{background:linear-gradient(145deg,var(--panel2),var(--panel));border-color:var(--line)}
body[data-theme]:not([data-theme="default"]) .card .card,body[data-theme]:not([data-theme="default"]) .badge,body[data-theme]:not([data-theme="default"]) .dashboard .stats span,body[data-theme]:not([data-theme="default"]) .log,body[data-theme]:not([data-theme="default"]) .notification-menu,body[data-theme]:not([data-theme="default"]) .action-menu-body{background:var(--bg);border-color:var(--line)}
body[data-theme]:not([data-theme="default"]) .bar{background:var(--bg);border-color:var(--line)}body[data-theme]:not([data-theme="default"]) .bar span{background:linear-gradient(90deg,var(--line),var(--accent))}
body[data-theme]:not([data-theme="default"]) h1,body[data-theme]:not([data-theme="default"]) h2,body[data-theme]:not([data-theme="default"]) h3,body[data-theme]:not([data-theme="default"]) th{color:var(--accent)}
@media(max-width:850px){.topbar{flex-direction:column;align-items:flex-start}.tabs{top:136px}.two,.stats{grid-template-columns:1fr}#app{padding:12px}.card{padding:12px;border-radius:8px}table{display:block;overflow-x:auto}.actions{gap:6px}button{padding:8px}}

/* --- Usability fixes: compact navigation, stable selects and action menus --- */
.compact-tabs{align-items:center;gap:7px;flex-wrap:wrap}.compact-tabs button{padding:7px 10px}.tab-jump{display:flex;grid-template-columns:auto 150px;grid-auto-flow:column;align-items:center;gap:8px;min-width:150px;margin-left:0}.tab-jump span{color:var(--muted);font-size:.9rem}.tab-jump select{min-width:150px;width:150px;padding:7px 28px 7px 9px}.tab-jump select:focus{z-index:30}.action-menu{position:relative;display:inline-block;min-width:105px}.action-menu summary{list-style:none;background:linear-gradient(#3a2916,#21170d);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 11px;cursor:pointer;user-select:none;text-align:center}.action-menu summary:focus-visible{outline:3px solid #ffe1a0;outline-offset:3px}.action-menu summary::-webkit-details-marker{display:none}.action-menu summary:after{content:' \25BE';color:var(--accent)}.action-menu[open] summary{border-color:var(--accent);color:#ffe1a0}.action-menu-body{position:absolute;right:0;top:calc(100% + 6px);display:grid;gap:6px;min-width:185px;background:#120d08;border:1px solid var(--accent);border-radius:10px;padding:8px;box-shadow:0 12px 28px #000c;z-index:35}.action-menu-body button{width:100%;text-align:left;white-space:nowrap}.action-menu-body .danger-action{border-color:var(--red)}td.actions,th.actions{width:1%;white-space:nowrap}.toolbar-compact{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}.toolbar-compact .action-menu{min-width:130px}.inline-select{max-width:260px}.row label{min-width:190px}.deferred-render-hint{display:none}.tabs select{background:#120d08;color:var(--text);border:1px solid var(--line);border-radius:8px}
@media(max-width:850px){.compact-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:sticky}.compact-tabs button{width:100%}.tab-jump{margin-left:0;grid-column:1/-1;width:100%;min-width:0}.tab-jump select{width:100%;min-width:0}.action-menu,.action-menu summary{width:100%}.action-menu-body{position:static;margin-top:6px;width:100%;min-width:0}.toolbar-compact{display:grid}.row label{min-width:0;width:100%}}
.compact-tabs{flex-wrap:wrap}.tab-jump{min-width:150px;margin-left:0;grid-template-columns:auto 150px}.tab-jump select{min-width:150px;width:150px}
@media(max-width:850px){.tab-jump{width:100%;min-width:0}.tab-jump select{width:100%;min-width:0}}

/* --- v0.3 Quality & Gameplay Flow --- */
.dashboard .suggestion,.suggestion{background:#120d08;border:1px dashed #d6a84c66;border-radius:10px;padding:8px;margin:8px 0;color:#f5ddb0}.npc-box{background:#120d08;border-left:4px solid var(--accent);border-radius:10px;padding:10px;margin:10px 0}.npc-box h3{margin:0 0 6px}.goodish{color:#cfe8a3}.danger-action{border-color:var(--red)!important}.dashboard .card+.suggestion{margin-top:-8px}.toolbar-compact input[type="number"]{max-width:120px}.card.dashboard>.grid.auto{align-items:start}.card.dashboard>.grid.auto>.suggestion{min-height:70px}.dashboard .stats span{background:#140f09;border:1px solid #6d573855;border-radius:8px;padding:7px}.npc-box p{font-family:Georgia,serif;font-style:italic;color:#ffe1a0}.action-menu-body button[data-tab]{text-align:left}select.inline-select{width:auto;min-width:220px}.adventurer-roster{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}.adventurer-tile{display:grid;gap:8px;min-width:0}.adventurer-tile>.suggestion{margin:0;min-height:0}.adventurer-tile>.character-card{height:100%}
@media(max-width:850px){.dashboard .stats span{padding:6px}.toolbar-compact input[type="number"]{max-width:none}.card.dashboard>.grid.auto>.suggestion{min-height:0}}

/* --- Equipment candidate layout --- */
.equip-candidate-table{table-layout:fixed}.equip-candidate-row>td{padding:0;border-bottom:0}.equip-candidate-grid{display:grid;gap:10px;padding:8px 0;min-width:0}.equip-candidate-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(96px,.42fr) minmax(88px,.34fr);grid-template-areas:"main slot origin" "stats stats delta" "actions actions actions";gap:10px 12px;align-items:start;border-bottom:1px solid #6d573877;padding:10px 8px;min-width:0}.equip-candidate-card:last-child{border-bottom:0}.equip-candidate-card h3{margin:0 0 4px;font-size:1rem}.equip-candidate-card p{margin:3px 0}.equip-candidate-stats{grid-area:stats;font-family:var(--mono);line-height:1.35;min-width:0;overflow-wrap:anywhere}.equip-candidate-delta{grid-area:delta;font-family:var(--mono);font-weight:700;justify-self:end}.equip-candidate-actions{grid-area:actions;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;min-width:0}.equip-candidate-actions button{width:100%;min-width:0;white-space:normal}.equip-candidate-main{grid-area:main;min-width:0}.equip-candidate-slot{grid-area:slot;min-width:0}.equip-candidate-origin{grid-area:origin;min-width:0;justify-self:end}.equip-candidate-main h3,.equip-candidate-main p,.equip-candidate-slot,.equip-candidate-origin{overflow-wrap:anywhere}.card .toolbar-compact h2{margin:0}.card .toolbar-compact label{min-width:150px}
@media(max-width:1050px){.equip-candidate-card{grid-template-columns:minmax(0,1fr) minmax(90px,.36fr);grid-template-areas:"main delta" "slot origin" "stats stats" "actions actions"}.equip-candidate-delta,.equip-candidate-origin{justify-self:start}}
@media(max-width:650px){.equip-candidate-table,.equip-candidate-table tbody,.equip-candidate-table tr,.equip-candidate-table td{display:block;width:100%;max-width:100%;overflow:visible}.equip-candidate-table tr:first-child{display:none}.equip-candidate-card{width:100%;max-width:100%;grid-template-columns:1fr;grid-template-areas:"main" "slot" "origin" "stats" "delta" "actions"}.equip-candidate-actions{grid-template-columns:1fr}}

/* --- Artwork system --- */
.artwork{display:block;width:100%;background:var(--bg);border:1px solid var(--line);object-fit:cover;color:transparent}
.character-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px 12px;align-items:start;overflow:hidden}
.character-card .character-avatar{grid-row:1 / span 3;width:88px;aspect-ratio:1/1;border-radius:10px;align-self:start}
.character-card h3{grid-column:2;margin-bottom:0;overflow-wrap:anywhere}
.character-card .stats{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
.character-card p{grid-column:2;margin:0}
.character-card .bar,.character-card .actions{grid-column:1/-1}
.character-card .actions{align-items:center}
.character-card{overflow:visible}
.adventurer-tile,.character-card .actions,.action-menu[open]{position:relative}
.adventurer-tile:has(.action-menu[open]){z-index:60}
.action-menu[open]{z-index:70}
.action-menu[open] .action-menu-body{z-index:80}
.character-detail-card .character-portrait{width:140px;aspect-ratio:1/1;border-radius:12px;float:right;margin:0 0 12px 14px}
.npc-art-box{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center}
.npc-art-box .npc-portrait{width:76px;aspect-ratio:1/1;border-radius:10px}
.enemy-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start}
.enemy-card .enemy-thumb{grid-row:1 / span 5;width:72px;aspect-ratio:1/1;border-radius:8px}
.pet-card{overflow:hidden}
.pet-card .pet-portrait{aspect-ratio:1/1;border-radius:8px;margin-bottom:10px}
.art-banner{aspect-ratio:2/1;border-radius:10px;margin-bottom:10px}
.zone-card,.dungeon-card{overflow:hidden}
.quest-dungeon-preview{display:grid;gap:10px;margin:12px 0}
.quest-story{margin:10px 0;border:1px solid var(--line);border-radius:8px;background:#0002}
.quest-story summary{cursor:pointer;padding:8px 10px;color:#ffd37c;font-family:Georgia,serif}
.quest-story p{margin:0;padding:0 10px 10px}
.quest-dungeon-link{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:10px;background:#0002}
.quest-dungeon-link .art-banner{margin:0;min-height:75px}
.quest-dungeon-link h3{margin:0 0 6px}
.quest-dungeon-link p{margin:4px 0}
.quest-dungeon-preview>button{justify-self:start}
.portrait-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;margin:8px 0}
.portrait-option{display:block;position:relative;min-width:0;border:2px solid var(--line);border-radius:10px;padding:4px;background:#120d08;cursor:pointer}
.portrait-option input{position:absolute;inset:6px auto auto 6px;width:18px;height:18px;z-index:1;accent-color:var(--accent)}
.portrait-option.selected,.portrait-option:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px #d6a84c55}
.portrait-choice{aspect-ratio:1/1;border-radius:7px}
body[data-theme]:not([data-theme="default"]) .artwork{background:var(--bg);border-color:var(--line)}
@media(max-width:650px){
  .adventurer-roster{grid-template-columns:1fr}
  .character-card,.enemy-card{grid-template-columns:64px minmax(0,1fr)}
  .character-card .character-avatar,.enemy-card .enemy-thumb{width:64px}
  .character-card .stats{grid-template-columns:1fr}
  .character-detail-card .character-portrait{float:none;width:100%;max-width:180px;margin:0 0 12px}
  .npc-art-box{grid-template-columns:60px minmax(0,1fr)}
  .npc-art-box .npc-portrait{width:60px}
  .quest-dungeon-link{grid-template-columns:1fr}
  .portrait-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
}
