:root {
      color-scheme: dark;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: #e3e0d8;
      background: #090a0b;
      --panel: #121416;
      --panel-2: #171a1d;
      --line: #2a2d30;
      --muted: #8e949a;
      --accent: #a68a58;
      --danger: #a94b45;
      --health: #8f3733;
      --xp: #596b78;
    }

    * { box-sizing: border-box; }
    body {
      margin: 0;
      min-width: 320px;
      min-height: 100vh;
      background:
        linear-gradient(180deg, rgba(255,255,255,.015), transparent 35%),
        radial-gradient(circle at 50% -10%, #343024 0, transparent 34%),
        #090a0b;
    }
    button { font: inherit; }
    .app { width: min(980px, calc(100% - 24px)); margin: auto; padding: 18px 0 34px; }
    .topbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
    .title-row { display: flex; align-items: baseline; gap: 10px; }
    .top-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; }
    .developer-toggle { display:inline-flex; align-items:center; gap:7px; color:var(--muted); font-size:11px; font-weight:700; cursor:pointer; user-select:none; white-space:nowrap; }
    .developer-toggle input { position:absolute; opacity:0; pointer-events:none; }
    .developer-toggle-track { position:relative; width:34px; height:18px; border:1px solid #45494d; border-radius:999px; background:#16181a; transition:background .15s,border-color .15s; }
    .developer-toggle-thumb { position:absolute; top:2px; left:2px; width:12px; height:12px; border-radius:50%; background:#777d82; transition:transform .15s,background .15s; }
    .developer-toggle input:checked + .developer-toggle-track { border-color:#8c744d; background:#342d20; }
    .developer-toggle input:checked + .developer-toggle-track .developer-toggle-thumb { transform:translateX(16px); background:#c8ad76; }
    .developer-toggle input:focus-visible + .developer-toggle-track { outline:2px solid #b79a63; outline-offset:2px; }
    .version { color: var(--muted); font-size: 12px; letter-spacing: .09em; }
    h1, h2, h3, p { margin-top: 0; }
    h1 { margin-bottom: 0; font-family: Georgia, serif; font-size: clamp(25px, 5vw, 38px); font-weight: 600; letter-spacing: -.02em; }
    h2 { font-size: 18px; margin-bottom: 14px; }
    .menu-button, .secondary, .primary, .danger, .equip-button {
      border-radius: 8px;
      cursor: pointer;
      transition: background .15s, border-color .15s, transform .05s;
    }
    .menu-button:active, .secondary:active, .primary:active, .danger:active, .equip-button:active { transform: translateY(1px); }
    .menu-button { border: 1px solid #3a3d40; background: #17191b; color: #e3e0d8; padding: 10px 13px; font-weight: 700; }
    .menu-count { color: #cab483; margin-left: 5px; }
    .new-badge { display:none; margin-left:6px; padding:2px 5px; border-radius:9px; background:#7f2f2a; color:#fff; font-size:9px; }
    .new-badge.show { display:inline-block; }
    .menu-button.pulse { animation:pulse 1s ease-in-out 3; }
    @keyframes pulse { 50% { box-shadow:0 0 0 4px #a68a5844; border-color:#a68a58; } }

    .layout { display: grid; grid-template-columns: 300px 1fr; gap: 12px; }
    .panel { background: linear-gradient(180deg, #151719, #111315); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 50px #0007; padding: 17px; }
    .hero-panel { grid-row: span 2; }
    .section-label { margin: 0 0 7px; color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
    .hero-name { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 16px; }
    .hero-name h2 { margin: 0; font-family: Georgia, serif; font-size: 23px; }
    .gold { color: #b77945; font-weight: 700; }

    .bar-wrap { margin: 11px 0; }
    .bar-label { display: flex; justify-content: space-between; color: #bbb; font-size: 12px; margin-bottom: 5px; }
    .bar { height: 8px; background: #292c2f; border-radius: 2px; overflow: hidden; }
    .fill { height: 100%; transition: width .25s; }
    .health { background: var(--health); }
    .xp { background: var(--xp); }

    .stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 15px 0; }
    .stat { border: 1px solid #292c2f; background: #0f1113; padding: 10px 7px; border-radius: 7px; text-align: center; }
    .stat span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
    .stat strong { display: block; margin-top: 3px; font-size: 19px; }
    .base-note { color: var(--muted); font-size: 11px; line-height: 1.45; margin-bottom: 15px; }

    .equipment { display: grid; gap: 6px; }
    .equipment-slot { display: grid; grid-template-columns: 74px 1fr; align-items: center; gap: 8px; min-height: 43px; border-top: 1px solid #25282a; padding-top: 7px; }
    .slot-name { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
    .slot-item { font-size: 12px; line-height: 1.3; }
    .slot-empty { color: #676c71; }

    .battle-panel { min-height: 340px; }
    .battle-stage { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: center; gap: 8px; margin: 8px 0 15px; }
    .combatant { position: relative; min-height: 170px; border: 1px solid #2b2e31; background: linear-gradient(180deg, #17191b, #0f1113); border-radius: 10px; padding: 16px 12px; text-align: center; overflow: hidden; }
    .combatant-name { font-family: Georgia, serif; font-size: 19px; margin-bottom: 13px; }
    .figure { height: 64px; display: grid; place-items: center; color: #777d82; font-family: Georgia, serif; font-size: 19px; letter-spacing: .12em; border-bottom: 1px solid #26292b; margin-bottom: 12px; }
    .hero-figure::before { content: "СТРАННИК"; }

    .versus { text-align: center; color: #5f6469; font-family: Georgia, serif; font-size: 18px; }
    .combat-hp { font-size: 12px; color: #bbb; }
    .combat-bar { margin: 8px 0 5px; height: 10px; }
    .enemy-stats { margin-top:8px; color:var(--muted); font-size:11px; line-height:1.5; }
    .developer-enemy-stats span { display:block; }
    .boss-button { margin-top:8px; background:linear-gradient(#6f3b32,#4b2823); border-color:#8f5146; color:#eee; }
    .retreat-button { width:100%; margin-top:8px; }
    .location-switcher { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:0 0 14px; }
    .location-button { min-height:54px; border:1px solid #34373a; border-radius:8px; background:#111315; color:#aeb2b5; padding:7px 6px; cursor:pointer; font-weight:800; font-size:12px; }
    .location-button small { display:block; margin-top:3px; color:#71767a; font-size:9px; font-weight:600; }
    .location-button.active { border-color:#8c744d; background:#282217; color:#e2d4b4; }
    .location-button:disabled { opacity:.42; cursor:not-allowed; }
    .zone-progress { color:var(--muted); font-size:11px; margin:-6px 0 12px; text-align:center; }
    .damage-float { position: absolute; left: 50%; top: 58px; transform: translateX(-50%); font-size: 27px; font-weight: 900; color: #e1d8c4; text-shadow: 0 2px 8px #000; opacity: 0; pointer-events: none; }
    .damage-float.show { animation: damage 1.44s ease-out; }
    .damage-float.heal { color: #91aa86; }
    @keyframes damage { 0% { opacity: 0; transform: translate(-50%, 12px) scale(.85); } 18% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -35px) scale(1.06); } }
    .hit { animation: hit .44s linear; }
    @keyframes hit { 50% { transform: translateX(4px); filter: brightness(1.4); } }

    .primary { width: 100%; border: 1px solid #7e6946; background: linear-gradient(#8f764c, #6f5b3e); color: #111; padding: 13px 15px; font-weight: 900; }
    .primary:disabled { opacity: .48; cursor: default; }
    .battle-note { color: var(--muted); font-size: 11px; text-align: center; margin: 9px 0 0; }

    .log-panel { min-height: 250px; }
    .log-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
    .state { color: #bcb3a2; border: 1px solid #343638; padding: 5px 8px; border-radius: 6px; font-size: 11px; }
    .log { height: 190px; overflow-y: auto; border-top: 1px solid #282b2d; padding-top: 9px; }
    .log p { margin: 0; padding: 4px 0; font-size: 13px; color: #aeb3b7; }
    .log p:last-child { color: #e3e0d8; }
    .log .loot { color: #b9a16e; }
    .log .level { color: #9eafba; }

    .drawer-backdrop { position: fixed; inset: 0; background: #0009; opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 20; }
    .drawer-backdrop.open { opacity: 1; pointer-events: auto; }
    .drawer { position: fixed; top: 0; right: 0; width: min(430px, 94vw); height: 100dvh; background: #101214; border-left: 1px solid #343638; box-shadow: -20px 0 70px #000b; transform: translateX(100%); transition: transform .22s ease; z-index: 21; display: flex; flex-direction: column; }
    .drawer.open { transform: translateX(0); }
    .drawer-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 17px; border-bottom: 1px solid #292c2f; }
    .drawer-head h2 { margin: 0; font-family: Georgia, serif; }
    .drawer-body { overflow-y: auto; padding: 15px 17px 28px; }
    .inventory { display: grid; gap: 8px; }
    .item { border: 1px solid #2b2e31; border-left-width: 3px; background: #151719; border-radius: 8px; padding: 11px; }
    .item-row { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
    .item-name { font-weight: 800; font-size: 13px; }
    .item-meta { color: var(--muted); font-size: 11px; margin-top: 4px; }
    .equip-button { border: 1px solid #484b4e; background: #232629; color: #ddd; padding: 7px 9px; font-size: 11px; font-weight: 800; white-space: nowrap; }
    .common { color: #d2d2ce; border-left-color: #85888a; }
    .uncommon { color: #8fb78b; border-left-color: #5f8f5b; }
    .rare { color: #91a9bb; border-left-color: #617f96; }
    .epic { color: #d98cff; border-left-color: #b455e0; text-shadow:0 0 12px #b455e055; }
    .compare-up { color:#78b978; font-weight:800; }
    .compare-down { color:#d07168; font-weight:800; }
    .compare-even { color:#8f9499; font-weight:800; }
    .empty { color: #6f7478; font-size: 13px; }
    .drawer-section { margin-top: 22px; padding-top: 17px; border-top: 1px solid #292c2f; }
    .danger { width: 100%; border: 1px solid #64312e; background: #351a19; color: #e3b2ae; padding: 11px; font-weight: 800; }
    .confirm { display: none; margin-top: 9px; padding: 11px; border: 1px solid #56302d; background: #241615; border-radius: 8px; }
    .confirm.show { display: block; }
    .confirm p { color: #cda9a5; font-size: 12px; margin-bottom: 9px; }
    .confirm-row { display: flex; gap: 7px; }
    .secondary { flex: 1; border: 1px solid #383b3e; background: #1a1c1f; color: #ccc; padding: 9px; }
    .confirm-row .danger { flex: 1; }
    .reward-card { width:min(390px,100%); background:linear-gradient(180deg,#17191b,#101214); border:1px solid #4a4437; border-radius:13px; padding:18px; text-align:center; box-shadow:0 25px 80px #000; transform:translateY(8px) scale(.97); transition:transform .2s; }
    .reward-xp { color:#9eb3c2; }
    .reward-gold { color:#c6814f; }
    .reward-item { display:none; margin-top:12px; padding:14px; border:1px solid #85888a; border-left-width:4px; border-radius:9px; background:#141618; text-align:left; }
    .reward-item.show { display:block; }
    .reward-item.uncommon { border-color:#5f8f5b; } .reward-item.rare { border-color:#617f96; } .reward-item.epic { border-color:#b455e0; }
    .reward-item-main { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-top:7px; }
    .reward-compare { font-size:27px; line-height:1; font-weight:900; }
    .reward-actions { display:flex; gap:8px; margin-top:15px; }
    .reward-actions button { flex:1; }
    .reward-next:only-child { flex-basis:100%; }
    .reward-particle { position:fixed; z-index:60; pointer-events:none; font-weight:900; font-size:17px; text-shadow:0 2px 8px #000; transition:transform .75s cubic-bezier(.2,.75,.25,1), opacity .75s; }
    @media (max-width: 760px) {
      .app { width: min(100% - 12px, 560px); padding-top: 10px; }
      .layout { grid-template-columns: 1fr; }
      .hero-panel { grid-row: auto; }
      .battle-stage { grid-template-columns: 1fr 42px 1fr; }
      .panel { padding: 14px; border-radius: 9px; }
      .combatant { min-height: 160px; padding: 13px 8px; }
      .figure { font-size: 14px; letter-spacing: .08em; }
      .stats { margin-bottom: 10px; }
      .equipment { grid-template-columns: 1fr 1fr; gap: 6px 10px; }
      .equipment-slot { grid-template-columns: 58px 1fr; }
      .log { height: 220px; }
    }

    body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
    .app { width:min(760px,calc(100% - 20px)); padding-bottom:18px; }
    .top-summary { display:flex; justify-content:space-between; gap:10px; align-items:center; }
    .top-summary .hero-quick { color:#c9c4ba; font-size:13px; }
    .top-summary .hero-quick strong { color:#f0ede6; }
    .screen { display:none; }
    .screen.active { display:block; }
    .screen-panel { min-height:calc(100dvh - 150px); }
    .battle-screen .panel { padding:14px; }
    .battle-screen .battle-panel { min-height:0; }
    .battle-screen .battle-stage { margin:6px 0 12px; }
    .battle-screen .combatant { min-height:145px; padding:12px 8px; }
    .battle-screen .figure { height:48px; font-size:14px; }
    .battle-screen .battle-note { margin-bottom:0; }
    .bottom-nav { position:fixed; left:0; right:0; bottom:0; z-index:30; display:grid; grid-template-columns:repeat(5,1fr); padding:7px max(7px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-right)); background:#0d0f11f5; border-top:1px solid #303337; backdrop-filter:blur(12px); }
    .nav-button { border:0; background:transparent; color:#868c91; min-height:52px; padding:4px 2px; font-size:10px; font-weight:800; cursor:pointer; }
    .nav-button span { display:block; font-size:21px; line-height:25px; }
    .nav-button.active { color:#d8c28d; }
    .nav-badge { display:inline-block!important; min-width:15px; height:15px; padding:0 4px; border-radius:8px; background:#7f2f2a; color:#fff; font-size:9px!important; line-height:15px!important; vertical-align:top; }
    .inventory-grid { display:grid; gap:9px; }
    .price { color:#d6b86e; font-size:12px; font-weight:900; white-space:nowrap; }
    .small-button { border:1px solid #7e6946; background:#6f5b3e; color:#111; border-radius:7px; padding:8px 10px; font-weight:900; cursor:pointer; }
    .small-button:disabled { opacity:.45; cursor:default; }
    .sell-button { border-color:#593c2f; background:#2b211c; color:#d0b29f; }
    .item-level { color:#c8b37e; font-weight:800; }
    .map-list { display:grid; gap:9px; }
    .map-card { width:100%; text-align:left; border:1px solid #34373a; border-radius:10px; background:#111315; color:#c6c9cb; padding:14px; cursor:pointer; }
    .map-card.active { border-color:#8c744d; background:#282217; color:#e2d4b4; }
    .map-card:disabled { opacity:.52; cursor:not-allowed; }
    .map-card strong,.map-card small { display:block; }
    .map-card small { margin-top:5px; color:#858b90; }
    .hero-grid { display:grid; gap:12px; }
    .hero-grid .panel { box-shadow:none; }
    .changelog { color:var(--muted); font-size:12px; line-height:1.55; }
    @media (max-width:760px){
      .app{width:min(100% - 12px,560px);padding-top:8px}.topbar{margin-bottom:8px}h1{font-size:23px}.version{font-size:10px}
      .screen-panel{min-height:calc(100dvh - 135px)}
      .battle-screen .battle-stage{grid-template-columns:1fr 34px 1fr}.battle-screen .combatant-name{font-size:16px;margin-bottom:8px}.battle-screen .enemy-stats{font-size:10px}.battle-screen .primary{padding:14px}
      .reward-card{max-height:88dvh;overflow-y:auto}
    }

/* v0.0.4 */
.boss-combatant{border-color:#8f5146;box-shadow:inset 0 0 30px #5e211833}.boss-combatant .combatant-name{color:#e0b39d}.rare{color:#75b9e6;border-left-color:#3488bd;text-shadow:0 0 12px #3a8bb644}


/* v0.0.4a */
.combat-stats{margin-top:8px}
.enemy-normal .combatant-name,.enemy-normal .enemy-figure{color:#ece9e1}
.enemy-elite{border-color:#4f7d52;box-shadow:inset 0 0 26px #2e633326}
.enemy-elite .combatant-name,.enemy-elite .enemy-figure{color:#83c989;text-shadow:0 0 12px #4f9a5555}
.enemy-rare{border-color:#3f8fc4;box-shadow:inset 0 0 28px #246f9c2e}
.enemy-rare .combatant-name,.enemy-rare .enemy-figure{color:#79c8ff;text-shadow:0 0 14px #369bd066}
.enemy-boss{border-color:#ba6b4f;box-shadow:inset 0 0 34px #7f2d243d,0 0 18px #7f2d2422}
.enemy-boss .combatant-name,.enemy-boss .enemy-figure{color:#ffb08f;text-shadow:0 0 14px #a8463277}
.enemy-boss .enemy-figure{letter-spacing:.16em;font-weight:900}
.rare{color:#79c8ff;border-left-color:#3f9fd8;text-shadow:0 0 10px #369bd055}
.item.rare{border-color:#315f7d;border-left-color:#3f9fd8;background:linear-gradient(90deg,#17304466,#151719 34%)}
.reward-item.rare{border-color:#3f9fd8;background:linear-gradient(90deg,#17304488,#141618 45%)}
.battle-reward{margin:12px 0;padding:15px;border:1px solid #4a4437;border-radius:11px;background:linear-gradient(180deg,#17191b,#101214);text-align:center;box-shadow:inset 0 0 30px #0004}
.battle-reward[hidden]{display:none}
.battle-reward .reward-item{text-align:left}
.battle-reward .reward-actions,.battle-reward .boss-reward-actions{margin-top:12px}
@media(max-width:760px){
  .battle-reward{padding:12px}
  .reward-item-main{align-items:flex-start}
  .reward-actions{display:grid}
  .reward-actions button{width:100%}
}


/* v0.0.4b: compact lists and unified item details */
.item-clickable{cursor:pointer;transition:border-color .15s,background .15s,transform .05s}
.item-clickable:hover{background:#1a1d20;border-color:#4a4f54}
.item-clickable:active{transform:translateY(1px)}
.item-summary{display:flex;justify-content:space-between;gap:12px;align-items:center}
.item-summary-main{min-width:0}.item-summary-hint{color:var(--muted);font-size:11px;white-space:nowrap}
.item-compare-box{margin-top:15px;border-top:1px solid #303438;padding-top:13px}
.item-compare-title{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:900;margin-bottom:8px}
.item-compare-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:7px 0;border-bottom:1px solid #25292c;font-size:13px}
.item-compare-row:last-child{border-bottom:0}.item-compare-current{color:#aeb3b7}.item-compare-delta{font-weight:900;min-width:42px;text-align:right}
@media(max-width:560px){.item-summary-hint{display:none}}


/* v0.0.4c */
.inventory-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.inventory-head h2{margin:0}.inventory-sell-all{flex:0 0 auto;padding:8px 11px}
.item-open-button{display:flex;justify-content:space-between;align-items:center;gap:12px;min-width:0;flex:1;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer}
.quick-sell-button{flex:0 0 auto;border:1px solid #593c2f;background:#2b211c;color:#d0b29f;border-radius:7px;padding:8px 10px;font-weight:800;cursor:pointer}
.quick-sell-button:hover{border-color:#805441}
@media(max-width:560px){.inventory-head{align-items:stretch;flex-direction:column}.inventory-sell-all{width:100%}.item-summary{align-items:stretch}.quick-sell-button{align-self:center}.item-open-button{gap:6px}}

/* v0.0.5 */
.combat-actions{display:grid;grid-template-columns:minmax(0,2fr) minmax(130px,1fr);gap:8px;margin-top:12px;align-items:end}.combat-actions[hidden]{display:none}.enemy-intent{margin:8px 0;padding:9px;border:1px solid #8b5a35;border-radius:8px;background:#2b1d13;color:#f0b97d;font-weight:900;text-align:center}.auto-battle-button{width:100%;margin-top:8px}.auto-battle-button.active{border-color:#5f8f5b;background:#203421;color:#9bd19b}.random-green-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px;margin-bottom:14px;border:1px solid #4b7548;border-radius:10px;background:linear-gradient(90deg,#203722,#151719)}.random-green-card small{display:block;color:#aab0aa;margin-top:5px;max-width:430px}.locked-item{opacity:.58}.reward-actions{flex-wrap:wrap}.reward-actions button{min-width:120px}
@media(max-width:620px){.combat-actions{grid-template-columns:1fr}.random-green-card{align-items:stretch;flex-direction:column}.random-green-card button{width:100%}}


/* v0.0.5a: location state separation and level-up notification */
.location-button.active { cursor: default; opacity: 1; }
.location-button.locked-zone { opacity: .42; cursor: not-allowed; }
.location-button.selection-busy:not(.locked-zone) { cursor: default; }
.level-up-spark { font-size: 30px; line-height: 1; animation: levelUpSpark 1s ease-in-out infinite alternate; }
@keyframes levelUpSpark { from { transform: rotate(-12deg) scale(.9); filter: brightness(.9); } to { transform: rotate(12deg) scale(1.16); filter: brightness(1.35); } }


/* v0.0.5b: visible equipment-level restrictions in shop */

/* v0.0.5b revision 2 */
.auto-control-sticky{position:sticky;top:6px;z-index:18;margin:0 0 10px;padding:6px;background:#111315e8;border:1px solid #303438;border-radius:9px;backdrop-filter:blur(8px)}
.auto-control-sticky .auto-battle-button{margin:0}
.special-encounter-notice{margin:0 0 10px;padding:10px 12px;border:1px solid #4f7d52;border-radius:8px;background:#203421;color:#a9d9aa;font-weight:900;text-align:center}
.nav-upgrade{display:inline-block!important;margin-left:2px;color:#70cf78;font-size:18px!important;line-height:15px!important;vertical-align:top;text-shadow:0 0 8px #4da95788}
.inventory-upgrade{border-color:#4f7d52;background:linear-gradient(90deg,#18301b,#151719 36%)}
.inventory-upgrade .item-name{color:#8fd195}

/* v0.0.5e */
.nav-upgrade[hidden], .nav-badge[hidden] { display:none !important; }
.item-quick-actions{display:flex;gap:7px;flex:0 0 auto;align-items:center}
.quick-equip-button{border:1px solid #4f7d52;background:#1d3020;color:#9bd19b;border-radius:7px;padding:8px 10px;font-weight:800;cursor:pointer}
.quick-equip-button:disabled{opacity:.45;cursor:not-allowed}
.skill-ready{border-color:#719b55!important;box-shadow:0 0 0 1px #719b5544,0 0 12px #719b5533;color:#b8e397!important}
.skill-active{border-color:#6e9fc2!important;background:#1c3140!important;color:#b8dcf4!important}
@media(max-width:680px){.item-quick-actions{flex-direction:column}.quick-equip-button,.quick-sell-button{width:100%}}

.inventory-bulk-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.inventory-bulk-actions .inventory-sell-all{white-space:nowrap}

/* v0.0.5f: responsive What's New modal */

.tutorial-ready{outline:2px solid #f0c96a;box-shadow:0 0 0 4px rgba(240,201,106,.18),0 0 18px rgba(240,201,106,.35);animation:tutorialPulse 1s ease-in-out infinite alternate}@keyframes tutorialPulse{from{transform:scale(1)}to{transform:scale(1.025)}}

/* v0.0.6: timing-based attack meter */
.attack-control{min-width:0}.attack-meter{position:relative;height:18px;overflow:hidden;border:1px solid #555b56;border-radius:6px;background:#171a18;box-shadow:inset 0 1px 4px #0008}.attack-meter-zones{display:grid;grid-template-columns:40fr 30fr 20fr 10fr;height:100%}.attack-zone.weak{background:#70443d}.attack-zone.normal{background:#756a3c}.attack-zone.strong{background:#667044}.attack-zone.critical{background:#47704a}.attack-meter-marker{position:absolute;top:-2px;bottom:-2px;left:0;width:4px;border-radius:2px;background:#f4f1df;box-shadow:0 0 7px #fff;pointer-events:none}.attack-meter-labels{display:grid;grid-template-columns:40fr 30fr 20fr 10fr;margin:3px 2px 7px;color:#aeb3ae;font-size:10px;font-weight:800;text-align:center}.attack-control .primary{width:100%}@media(max-width:620px){.combat-actions{grid-template-columns:1fr}.attack-meter{height:20px}}

.attack-zone{transition:filter .08s ease,box-shadow .08s ease,transform .08s ease}.attack-zone.hit-zone{filter:brightness(1.75) saturate(1.25);box-shadow:inset 0 0 0 2px #f4f1df,0 0 12px #f4f1df;transform:scaleY(1.08);position:relative;z-index:1}


/* v0.0.6f: читаемое завершение боя */
.enemy-defeat-banner{position:absolute;left:50%;top:48%;z-index:5;width:calc(100% - 14px);transform:translate(-50%,-50%);padding:8px 6px;border-radius:7px;background:#090b0ddd;border:1px solid #555;color:#e6e1d5;font-size:10px;font-weight:950;letter-spacing:.08em;line-height:1.25;text-align:center;pointer-events:none;text-shadow:0 2px 8px #000;box-shadow:0 8px 24px #000a}
.enemy-defeat-banner[hidden]{display:none}
.enemy-defeat-banner.elite{border-color:#5c9b61;color:#9edfa4;background:#102015e8}
.enemy-defeat-banner.rare{border-color:#55b9f2;color:#a7ddff;background:#0d1c27eb;box-shadow:0 0 22px #3da8e744,0 8px 24px #000a}
.enemy-defeat-banner.boss{border-color:#c2674f;color:#ffd0bc;background:#2b1210ef;font-family:Georgia,serif;font-size:12px;letter-spacing:.11em;box-shadow:0 0 28px #b54d3755,0 8px 24px #000b}

.quest-panel{margin:10px 0 12px}.quest-list{display:grid;gap:8px}.quest-card{padding:10px 12px;border:1px solid #30363d;border-radius:10px;background:#111416}.quest-card.main{border-color:#5d512b}.quest-card.daily{border-color:#31506b}.quest-head{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#aeb7bf}.quest-head strong{color:#e6edf3}.quest-title{margin:4px 0 7px;font-weight:700}.quest-progress{height:6px;background:#272c31;border-radius:999px;overflow:hidden}.quest-progress span{display:block;height:100%;background:#8e9b58;border-radius:inherit}.quest-card.daily .quest-progress span{background:#5f8fb3}.quest-card.main .quest-progress span{background:#b69a49}.quest-card small{display:block;margin-top:6px;color:#919ba4}.quest-card.completed{opacity:.68}.quest-card.completed .quest-title{text-decoration:line-through}

/* v0.6.11: compact UI, quests on map, staged reward flow */
.battle-reward{
  position:fixed;inset:0;z-index:70;margin:0;padding:16px;border:0;border-radius:0;
  display:grid;place-items:center;background:#000c;overflow-y:auto;box-shadow:none;
}
.battle-reward[hidden]{display:none}
.battle-reward>div,.battle-reward>.reward-earned,.battle-reward>.reward-item,.battle-reward>.reward-actions{width:min(430px,100%)}
.battle-reward::before{content:"";position:absolute;width:min(462px,calc(100% - 24px));height:min-content;min-height:260px;background:linear-gradient(180deg,#17191b,#101214);border:1px solid #4a4437;border-radius:13px;box-shadow:0 25px 80px #000;z-index:-1}
.battle-reward .reward-actions{margin-bottom:18px}
.reward-item-resolving{animation:reward-item-resolve .3s ease forwards}
@keyframes reward-item-resolve{to{transform:translateY(-22px) scale(.97);opacity:0}}
.map-quest-panel{margin-top:18px;padding-top:16px;border-top:1px solid #2c3034}

/* about 20% denser without shrinking touch targets too aggressively */
.app{width:min(720px,calc(100% - 16px));padding-top:10px}
.topbar{margin-bottom:8px}.title-row h1{font-size:30px}.version{font-size:10px}
.panel{padding:13px;border-radius:9px}
.section-label{margin-bottom:5px;font-size:10px}h2{font-size:17px;margin:0 0 8px}
.battle-screen .battle-stage{margin:4px 0 8px;gap:7px;grid-template-columns:1fr 34px 1fr}
.battle-screen .combatant{min-height:122px;padding:9px 7px}.battle-screen .combatant-name{font-size:16px;margin-bottom:6px}
.battle-screen .figure{height:36px;font-size:12px}.combat-bar{margin-top:5px}.combat-hp{font-size:10px;margin-top:5px}.enemy-stats{font-size:10px}
.auto-control-sticky{margin-bottom:8px}.auto-battle-button{padding:9px}.zone-progress{margin:7px 0;font-size:10px}
.primary,.secondary{padding:10px 12px}.battle-note{margin:8px 0 0;font-size:9px}
.quest-card{padding:8px 10px}.quest-title{margin:3px 0 6px;font-size:14px}.quest-head{font-size:11px}.quest-card small{font-size:11px}
.bottom-nav{padding-top:5px}.nav-button{min-height:48px}.nav-button span{font-size:19px;line-height:22px}

@media(max-width:480px){
  .app{width:calc(100% - 6px);padding-top:5px}.topbar{padding:0 3px}.title-row h1{font-size:22px;line-height:.95}.top-summary .hero-quick,.gold{font-size:11px}
  .panel{padding:9px}.battle-screen .battle-stage{grid-template-columns:1fr 24px 1fr;gap:4px}.versus{font-size:9px}
  .battle-screen .combatant{min-height:112px;padding:8px 5px}.battle-screen .combatant-name{font-size:14px}.battle-screen .figure{height:31px;font-size:11px}
  .battle-reward{padding:10px}.battle-reward::before{width:calc(100% - 12px)}.reward-actions{display:grid;gap:7px}.reward-actions button{width:100%;min-height:40px}
}

/* v0.6.12: final compact reward modal */
.battle-reward{
  position:fixed;inset:0;z-index:70;display:grid;place-items:center;
  padding:14px;background:#000d;overflow-y:auto;
}
.battle-reward[hidden]{display:none}
.battle-reward::before{display:none}
.battle-reward>div,.battle-reward>.reward-earned,.battle-reward>.reward-item,.battle-reward>.reward-actions{width:auto}
.battle-reward .reward-item{
  margin-top:10px;padding:12px 14px;border-width:0 0 0 4px;border-radius:4px;
  background:transparent;
}
.battle-reward .reward-item-main{margin-top:5px}
.battle-reward .reward-actions{margin:12px 0 0}
.battle-reward .reward-actions button{min-height:40px}
@media(max-width:480px){
  .battle-reward .reward-item{padding:10px 8px 10px 12px}
  .battle-reward .reward-actions{grid-template-columns:1fr;display:grid}
}


/* v0.6.13: three explicit reward flows */
.reward-flow-card{width:min(420px,100%);padding:18px;text-align:center}
@media(max-width:480px){
  .reward-flow-card{width:min(340px,100%);padding:14px}
}


/* v0.6.14: clearer loot comparison and persistent boss choice */
.zone-progress.boss-ready{margin-top:12px;padding:9px 12px;border:1px solid #705d39;border-radius:8px;background:#211b12;color:#e0c47f;font-weight:900}
.boss-button{margin-top:8px;background:linear-gradient(180deg,#72503e,#503329);border-color:#90604a}

/* v0.6.15: non-blocking reward notification */


/* v0.7.0 UX polish */
.item-status{margin-top:5px;font-size:12px;font-weight:900}


/* v0.7.2 compact shop and reward hierarchy */

.reward-item-card{width:min(390px,100%);padding:18px}.reward-dot{color:#686e72}
@media(max-width:480px){
  .reward-item-card{padding:16px}
}

/* v0.7.3 stable boss warning row */
.zone-progress.boss-ready{min-height:38px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
.zone-progress.boss-warning{border-color:#a66535;background:#2b1d13;color:#f0b97d;box-shadow:0 0 14px rgba(240,185,125,.12)}

/* v0.7.6: non-blocking item rewards during background autobattle */

/* v0.7.9 visible uncommon shop offers */


/* v0.7.13 stable battle dock and mobile viewport hotfix */
:root{--bottom-nav-height:64px;--battle-dock-gap:6px}
.battle-screen{padding-bottom:190px}
.battle-action-dock{position:fixed;left:50%;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--battle-dock-gap));z-index:29;width:min(704px,calc(100% - 16px));transform:translateX(-50%);box-sizing:border-box;padding:8px;border:1px solid #34383b;border-radius:10px;background:#0f1113;box-shadow:0 -6px 18px #0009}
.battle-action-dock[hidden]{display:none}
.battle-action-dock .combat-actions{display:block;margin:0}
.battle-action-dock .combat-actions[hidden]{display:none}
.battle-action-dock .attack-control{display:block;min-width:0}
.battle-action-dock .attack-meter-labels{margin-bottom:6px}
.battle-action-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(112px,1fr);gap:7px}
.battle-action-row button,.battle-main-action{width:100%;min-height:48px;margin:0}
.battle-screen .log-panel{min-height:240px}
@media(max-width:620px){:root{--bottom-nav-height:58px}.battle-screen{padding-bottom:184px}.battle-action-dock{width:calc(100% - 6px);padding:6px}.battle-action-row{grid-template-columns:minmax(0,1.8fr) minmax(104px,1fr);gap:6px}.battle-action-row button,.battle-main-action{min-height:46px;padding:9px 7px}}
@media(max-width:360px){.battle-action-row{grid-template-columns:minmax(0,1fr) 96px}.battle-action-row button{font-size:13px}}

.screen:not(.active) .battle-action-dock{display:none!important}


/* v0.7.14: combat focus, feedback and compact reward comparison */
.battle-meter-panel{margin-top:12px;padding:9px 10px 3px;border:1px solid #34383b;border-radius:9px;background:#101214}
.battle-meter-panel[hidden]{display:none}
.battle-meter-panel .attack-meter{height:22px}
.battle-meter-panel .attack-meter-labels{margin:4px 2px 0;font-size:11px}
.log-panel.collapsed{min-height:0!important;padding:0}
.log-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;border:0;background:transparent;color:#ddd;text-align:left}
.log-toggle .section-label{display:block;margin-bottom:3px}
.log-toggle strong{font-size:17px}
#battleLogToggleText{color:#c8b37e;font-size:12px;font-weight:900}
.log-panel .log{margin:0 14px 14px;max-height:230px}
.battle-screen .log-panel{min-height:0}
.battle-screen{padding-bottom:126px}
.battle-action-dock{padding:7px}
.battle-action-row{grid-template-columns:minmax(112px,1fr) minmax(0,2fr)}
.battle-action-row .primary{font-size:18px}
.level-up-stats{display:block;min-height:15px;margin-top:4px;color:#9fcf98;font-size:12px;font-weight:800}
.damage-float.show{animation:damageImpact 1.1s cubic-bezier(.16,.7,.2,1)}
.damage-float.strong{font-size:34px;color:#f1cf75;text-shadow:0 2px 8px #000,0 0 14px #d3a84c}
.damage-float.critical{font-size:40px;color:#fff0a8;text-shadow:0 2px 8px #000,0 0 20px #ffe27a}
.hit{animation:hitNormal .56s cubic-bezier(.2,.8,.2,1)}
.hit-strong{animation:hitStrong .68s cubic-bezier(.16,.8,.2,1)}
.hit-critical{animation:hitCritical .82s cubic-bezier(.12,.8,.18,1)}
@keyframes damageImpact{0%{opacity:0;transform:translate(-50%,12px) scale(.72)}18%{opacity:1;transform:translate(-50%,-2px) scale(1.18)}72%{opacity:1;transform:translate(-50%,-28px) scale(1)}100%{opacity:0;transform:translate(-50%,-46px) scale(.9)}}
@keyframes hitNormal{0%,100%{transform:translateX(0);filter:brightness(1)}28%{transform:translateX(7px);filter:brightness(1.75)}55%{transform:translateX(-3px);filter:brightness(1.25)}}
@keyframes hitStrong{0%,100%{transform:translateX(0) scale(1);filter:brightness(1)}20%{transform:translateX(12px) scale(1.025);filter:brightness(2.15)}42%{transform:translateX(-8px) scale(1.015)}64%{transform:translateX(5px)}}
@keyframes hitCritical{0%,100%{transform:translateX(0) scale(1);filter:brightness(1)}14%{transform:translateX(16px) scale(1.045);filter:brightness(2.8) saturate(1.5)}30%{transform:translateX(-13px) rotate(-1deg)}48%{transform:translateX(10px) rotate(1deg)}66%{transform:translateX(-6px)}82%{transform:translateX(3px)}}
@media(max-width:620px){.battle-screen{padding-bottom:120px}.battle-action-row{grid-template-columns:minmax(104px,1fr) minmax(0,1.8fr)}.battle-meter-panel{margin-top:10px}}

/* v0.7.15: immediate attack input and explicit turn lock */
.battle-meter-panel{touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}
.battle-meter-panel.meter-locked{cursor:default}
.battle-meter-panel.meter-locked .attack-meter{filter:saturate(.75);opacity:.88}
#attackButton.action-processing{position:relative;opacity:.78}
#attackButton.action-processing::after{content:'Ход...';position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;background:#7a4d17;color:#fff}


/* v0.7.16: readable loot comparison and in-card power warning */
.reward-stat-line{display:block;width:100%;line-height:1.35;text-align:center}
.reward-stat-base{color:#d8dde0;font-weight:900}
.reward-stat-comparison{font-weight:800}
.reward-stat-comparison.compare-up{color:#8fca8d}
.reward-stat-comparison.compare-down{color:#df7770}
.reward-stat-comparison.compare-even{color:#8f9499}
.enemy-intent{margin:2px 0 9px;padding:6px 7px;border:1px solid #a8433c;border-radius:7px;background:#351717;color:#ffd0c8;font-size:11px;font-weight:900;line-height:1.2;text-align:center;box-shadow:0 0 14px rgba(210,61,52,.2)}
.enemy-power-intent{position:relative;border-color:#dc5148!important;animation:enemyPowerPulse 1.15s ease-in-out infinite}
.enemy-power-intent .combatant-name,.enemy-power-intent .enemy-figure{color:#ffc0ad!important;text-shadow:0 0 16px rgba(255,79,64,.72)!important}
.enemy-power-intent .combat-bar{box-shadow:0 0 10px rgba(229,72,62,.35)}
@keyframes enemyPowerPulse{0%,100%{box-shadow:inset 0 0 34px rgba(154,34,29,.28),0 0 0 1px rgba(229,72,62,.28),0 0 16px rgba(213,48,40,.22)}50%{box-shadow:inset 0 0 46px rgba(184,39,32,.46),0 0 0 2px rgba(255,91,79,.48),0 0 30px rgba(235,56,46,.42)}}
@media(prefers-reduced-motion:reduce){.enemy-power-intent{animation:none}}


/* v0.7.17: explicit attack meter onboarding and deterministic restart */
.attack-meter-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 1px 7px}
.attack-meter-heading strong{color:#e7dec5;font-size:13px;letter-spacing:.02em}
.attack-meter-heading span{color:#9da5aa;font-size:10px;font-weight:700;text-align:right}
.attack-meter-tutorial{margin:0 0 8px;padding:7px 9px;border:1px solid #7d693a;border-radius:7px;background:#282113;color:#f1d88b;font-size:11px;font-weight:800;line-height:1.3;text-align:center}
.attack-meter-tutorial[hidden]{display:none}
.battle-meter-panel .attack-meter-marker{width:7px;left:-2px;border-radius:4px;background:#fff8d8;box-shadow:0 0 4px #fff,0 0 11px #ffe98a,0 0 18px rgba(255,230,120,.55)}
.battle-meter-panel .attack-meter-marker::after{content:'';position:absolute;top:3px;bottom:3px;left:-4px;width:15px;border-radius:50%;background:rgba(255,244,190,.18);filter:blur(3px)}
.battle-meter-panel .attack-meter-labels span{display:flex;flex-direction:column;gap:1px;line-height:1.05}
.battle-meter-panel .attack-meter-labels b{font-size:9px;color:#d8d1bc;font-weight:900}
@media(max-width:420px){.attack-meter-heading{align-items:flex-start}.attack-meter-heading span{max-width:150px}.battle-meter-panel .attack-meter-labels b{font-size:8px}.battle-meter-panel .attack-meter-labels{font-size:10px}}


/* v0.7.18: inline battle result instead of reward modal */
.battle-stage[hidden]{display:none}

/* v0.7.23: hidden reward actions must stay hidden even inside result card. */
#rewardEquip[hidden],#rewardSecondaryActions[hidden],#rewardContinue[hidden],#rewardItemContent[hidden],#rewardEmptyState[hidden]{display:none !important}

/* v0.7.23: equipment level lock. */


/* v0.7.26: desktop shop layout, comparison labels and capped attack-meter acceleration */

/* v0.7.26: одноразовое обучение */
.tutorial-notice{margin:8px 0;padding:9px 11px;border:1px solid #8e7438;border-radius:8px;background:#2a2212;color:#f2d98b;font-size:13px;font-weight:800;line-height:1.35;text-align:center}
.tutorial-notice[hidden]{display:none}
.attack-meter-panel.tutorial-focus{outline:2px solid #f0c96a;box-shadow:0 0 0 4px rgba(240,201,106,.13),0 0 22px rgba(240,201,106,.22)}
.nav-button:disabled{opacity:.45;cursor:not-allowed}


/* v0.7.30: compact first attack tutorial */
#attackMeterHint[hidden]{display:none}
#defendButton.tutorial-muted{opacity:.38;filter:saturate(.45);box-shadow:none;cursor:not-allowed}
@media(max-width:620px){
  .battle-screen .battle-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .battle-screen .versus{display:none}
}


/* v0.7.30: compact inventory sale actions and in-game confirmation */
.inventory-bulk-actions{align-items:center}
.inventory-sell-all{min-height:40px;border-radius:9px;font-size:13px;font-weight:800;letter-spacing:.01em}
.inventory-sell-all.sell-common{border-color:#555b60;background:#171a1c;color:#d0d4d6}
.inventory-sell-all.sell-common:hover{border-color:#777f84;background:#1d2124}
.inventory-sell-all.sell-uncommon{border-color:#7d6534;background:#211c12;color:#e8c875}
.inventory-sell-all.sell-uncommon:hover{border-color:#aa8740;background:#2a2214}
.sale-confirm-text{margin:0;color:#b9bec1;line-height:1.45}
@media(max-width:560px){
  .inventory-bulk-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
  .inventory-sell-all{width:100%;padding:8px 7px;font-size:12px}
}


/* v0.7.30: clear bulk-sale labels and simple yes/no confirmation */
.inventory-sell-all{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.15}
.inventory-sell-all span{display:block;font-size:13px}
.inventory-sell-all small{display:block;font-size:11px;font-weight:700;opacity:.82}
@media(max-width:560px){
  .inventory-sell-all{min-height:54px}
  .inventory-sell-all span{font-size:12px}
  .inventory-sell-all small{font-size:10px}
}


/* v0.7.40: safe sales during auto-farm, mobile bulk actions and bronze animation */
.sale-flying-coin{position:fixed;z-index:180;width:14px;height:14px;border:2px solid #f0c06e;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe7a6 0 18%,#d89743 35%,#8b542b 72%,#4c2c1c 100%);box-shadow:0 0 9px #d8974388;pointer-events:none;will-change:transform,opacity}
.gold.sale-balance-pulse{animation:saleBalancePulse .52s ease-out}
@keyframes saleBalancePulse{0%{transform:scale(1);filter:brightness(1)}38%{transform:scale(1.16);filter:brightness(1.75);text-shadow:0 0 12px #db9b55}100%{transform:scale(1);filter:brightness(1)}}
.inventory-sell-all:disabled,.quick-sell-button:disabled{cursor:not-allowed;opacity:.42;filter:grayscale(.35)}
@media(max-width:560px){
  .inventory-bulk-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:8px;overflow:visible}
  .inventory-sell-all{width:100%;min-width:0;max-width:100%;padding:9px 10px}
  .inventory-sell-all span,.inventory-sell-all small{max-width:100%;white-space:normal;text-align:center}
}
@media(prefers-reduced-motion:reduce){.gold.sale-balance-pulse{animation:none}.sale-flying-coin{display:none}}

/* v0.7.40: detailed comparison in the recommended shop card */


/* v0.7.40: compact multi-stat shop cards */

/* v0.7.40: left-aligned item characteristics in shop cards */


/* v0.7.40: collapsed player statistics */
.hero-statistics{padding:0;overflow:hidden}
.hero-statistics summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;cursor:pointer;list-style:none;user-select:none}
.hero-statistics summary::-webkit-details-marker{display:none}
.hero-statistics summary .section-label{margin:0}
.statistics-summary-hint{font-size:12px;color:#9ea4a8}
.hero-statistics[open] .statistics-summary-hint{font-size:0}
.hero-statistics[open] .statistics-summary-hint::after{content:'Скрыть';font-size:12px}
@media(max-width:560px){.hero-statistics summary{padding:14px}}

/* v0.7.40: developer-mode toggle and hidden enemy diagnostics */
@media (max-width:620px){.topbar{align-items:flex-start}.top-actions{flex-direction:column-reverse;align-items:flex-end;gap:5px}.developer-toggle{font-size:10px}}
@media (max-width:390px){.developer-toggle-label{display:none}.top-actions{gap:4px}}

/* v0.8.0: aligned combat cards in developer mode */
.battle-screen .battle-stage{
  align-items:stretch;
}
.battle-screen .versus{
  align-self:center;
}
body.developer-mode .battle-screen .combatant{
  display:flex;
  flex-direction:column;
}
body.developer-mode .battle-screen .enemy-stats{
  min-height:30px;
  box-sizing:border-box;
}
body.developer-mode .battle-screen .combat-stats,
body.developer-mode .battle-screen .developer-enemy-stats{
  margin-top:auto;
  padding-top:8px;
}


/* v0.8.0: inventory stats use the same per-stat comparison standard as the shop */
.inventory-item-stats{display:grid;gap:2px;margin-top:4px;justify-items:stretch;text-align:left}
.inventory-item-stats .reward-stat-line{display:block;width:100%;text-align:left;font-size:13px;line-height:1.28}
.inventory-item-stats .reward-stat-base{color:#c9cdcf}
.inventory-item-stats .reward-stat-comparison{font-size:12px}
@media(max-width:480px){
  .inventory-item-stats .reward-stat-line{font-size:12.5px}
  .inventory-item-stats .reward-stat-comparison{font-size:11.5px}
}

.pending-equip-item{box-shadow:inset 0 0 0 1px #b9964f66}.pending-equip-note{margin-top:6px;color:#d5b66d;font-size:.82rem;font-weight:700}.pending-equip-item .quick-sell-button:disabled{opacity:.45}

/* v0.8.0: Ruins and long-term balance */
.ruins-run-notice{
  margin:8px 0 0;
  padding:8px 10px;
  border:1px solid #4b4332;
  border-radius:8px;
  background:linear-gradient(90deg,#1b1812,#111315);
  color:#d8c28d;
  font-size:12px;
  font-weight:800;
  text-align:center;
}
.ruins-screen-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.compact-button{width:auto;min-height:38px;padding:7px 12px}
.ruins-intro{margin:10px 0 16px;color:var(--muted);line-height:1.55}
.ruins-floor-list{display:grid;gap:10px}
.ruins-floor-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid #34373a;
  border-radius:11px;
  background:linear-gradient(180deg,#151719,#101214);
}
.ruins-floor-card.available{border-color:#6b5b3c;box-shadow:inset 0 0 24px #6b4c1f22}
.ruins-floor-card.completed{border-color:#4f7658}
.ruins-floor-card.locked{opacity:.58}
.ruins-floor-title{font-family:Georgia,serif;font-size:18px;color:#e0d4bc}
.ruins-floor-meta{margin-top:4px;color:#9fa4a7;font-size:12px;line-height:1.45}
.ruins-floor-description{margin-top:7px;color:#777e82;font-size:12px;line-height:1.45}
.ruins-floor-status{margin-top:7px;color:#77b783;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ruins-floor-actions{min-width:132px;text-align:right}
.ruins-floor-actions button{width:100%}
.ruins-map-card{border-color:#494331;background:linear-gradient(135deg,#171714,#101315)}
.ruins-map-card strong{color:#d6c28f}
body.ruins-active .auto-control-sticky{display:none}
body.ruins-active .battle-panel{border-color:#4e4634;box-shadow:inset 0 0 34px #8b6d2520}

.potion-action-row{display:grid;grid-template-columns:1fr;margin:0 0 6px}
.potion-action-row[hidden]{display:none!important}
.potion-action-row .ruins-heal-button{width:100%;min-height:40px;margin:0;padding:7px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.potion-action-row .ruins-heal-button small{display:block;color:#87a98f;font-size:10px;font-weight:700;text-align:right}
.potion-action-row .ruins-heal-button.poison-priority{border-color:#82bd72;box-shadow:0 0 16px rgba(91,184,111,.22),inset 0 0 18px rgba(67,137,81,.12)}
.attack-action-group.has-special{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
@media(max-width:620px){.potion-action-row .ruins-heal-button{min-height:38px;padding:6px 9px;font-size:13px}.potion-action-row .ruins-heal-button small{font-size:9px}.attack-action-group.has-special{grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr)}}
.ruins-heal-button{border-color:#4c765c;color:#9ed9aa}
.ruins-heal-button:disabled{color:#6e7770}
.legendary{color:#f4c96b!important;border-left-color:#c99a2e!important;text-shadow:0 0 14px #d9a63355}

@media(max-width:620px){
  .ruins-floor-card{grid-template-columns:1fr;padding:12px}
  .ruins-floor-actions{min-width:0;text-align:left}
  .ruins-floor-actions button{min-height:44px}
}

/* v0.8.0: Ruins result and healing feedback */
.ruins-result{
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid #3d4440;
  border-radius:9px;
  background:#121614;
  color:#b9c3bd;
  font-size:13px;
  line-height:1.45;
}
.ruins-result.success{border-color:#4f7658;color:#a9d6b3;background:#111812}
.ruins-result.failure{border-color:#755047;color:#d4aaa0;background:#181211}
.damage-float.heal{color:#79d88d;text-shadow:0 0 14px #55d273aa}
.combatant.heal-pulse{box-shadow:inset 0 0 0 1px #65c77a77,0 0 22px #55c96c33}

/* v0.8.0: enemy archetype label and developer-only combat chronology */
.enemy-role{
  min-height:15px;
  margin:-8px 0 5px;
  color:#858c90;
  font-size:10px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.enemy-elite .enemy-role{color:#79af7e}
.enemy-rare .enemy-role{color:#6eb7e7}
.enemy-boss .enemy-role{color:#d89a82}
@media(max-width:480px){
  .enemy-role{margin:-5px 0 3px;font-size:9px;letter-spacing:.04em}
}

/* v0.8.2 utility visibility */
#rewardItemRelics[hidden],#rewardRuneDrop[hidden],#topShardsWrap[hidden]{display:none!important}


/* v0.8.17: path tabs and achievements placeholder */
.path-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 14px}
.path-tab-button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:10px 12px;border:1px solid #34373a;border-radius:10px;background:#101315;color:#98a1a8;font:800 12px/1.1 system-ui,sans-serif;cursor:pointer}
.path-tab-button.active{border-color:#8c744d;background:#282217;color:#e2d4b4}
.path-tab-badge{position:static;min-width:16px;height:16px;line-height:16px;font-size:9px!important}
.path-panel{display:grid;gap:0}
.path-panel[hidden]{display:none!important}
.achievement-panel{margin-top:16px;padding-top:14px;border-top:1px solid #2c3034}
.achievement-placeholder{display:grid;gap:4px;padding:14px 16px;border:1px dashed #3d474d;border-radius:12px;background:linear-gradient(180deg,#121617,#0d1011);color:#c2c8cd;text-align:left}
.achievement-placeholder strong{color:#e6edf3;font-size:15px}
.achievement-placeholder small{color:#8e98a1;line-height:1.45}
@media(max-width:620px){.path-tabs{grid-template-columns:1fr}.path-tab-button{justify-content:flex-start;text-align:left}}


/* v0.8.18: horizontal Path tabs and one-time opening screen */
.path-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
.path-tab-button{justify-content:center!important;min-width:0;padding:9px 4px!important;white-space:nowrap}
.opening-rune{width:54px;height:54px;background:url('../assets/art/rune-mark.svg') center/contain no-repeat;filter:drop-shadow(0 0 16px #90b6a966)}
.opening-story{display:grid;gap:8px;margin:4px 0 8px;color:#aeb8b2;line-height:1.55}
.opening-story p{margin:0}
body.opening-active{overflow:hidden}
@media(max-width:380px){.path-tabs{gap:4px!important}.path-tab-button{padding:8px 2px!important;font-size:9.5px!important;letter-spacing:0!important}}

/* v0.8.19: reliable combat feedback, red incoming damage and visual boss progress */
.damage-float.received{
  color:#ff6f61!important;
  text-shadow:0 2px 8px #000,0 0 14px rgba(255,69,52,.8)!important;
}
.enemy-defeat-banner{animation:none!important}
.boss-progress-visual{display:flex;align-items:center;justify-content:center;gap:9px;min-height:24px}
.boss-progress-dots{display:flex;align-items:center;justify-content:center;gap:5px}
.boss-progress-dot{display:block;width:9px;height:9px;border:1px solid #615b4c;border-radius:50%;background:#171a19;box-shadow:inset 0 0 0 2px #0c0e0d}
.boss-progress-dot.filled{border-color:#c3a45b;background:#d0ae5d;box-shadow:0 0 8px rgba(208,174,93,.35),inset 0 0 0 1px rgba(255,238,176,.3)}
.boss-progress-visual strong{min-width:28px;color:#c8b37e;font-size:10px;letter-spacing:.04em}
@media(max-width:360px){.boss-progress-dots{gap:4px}.boss-progress-dot{width:8px;height:8px}}

/* v0.8.21: contextual quest reward modal */
