/* Inventory window: slot grid + paper-doll equipment, sized to fit one page with no scrolling.
   Selectors are prefixed (html body #mmorpgOverlay #mmorpgWindow) so they beat older modal rules and the
   css-hardening.css tap-height overrides. Buttons are compact on purpose (about a third of the old 44px). */

/* The panel becomes a flex column so the inventory can fill it; the grid is the only part allowed to scroll. */
html body #mmorpgOverlay #mmorpgWindow[data-subpanel="inventory"] #mmorpgCharacterPanel{display:flex;flex-direction:column;padding:6px 8px;box-sizing:border-box}

html body #mmorpgOverlay{--k-gear-slot:52px}
/* Three sections need room: the inventory window opens wide (still resizable and clamped to the viewport). */
html body #mmorpgOverlay[data-open="true"] #mmorpgWindow[data-subpanel="inventory"]{width:min(1000px,calc(100vw - 16px));max-width:calc(100vw - 16px);height:min(640px,calc(100dvh - 100px))}
html body #mmorpgOverlay #mmorpgWindow[data-subpanel="inventory"] #mmorpgCharacterPanel{container-type:inline-size;container-name:inv}
html body #mmorpgOverlay .k-inv{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 44px;grid-template-rows:minmax(0,1fr);gap:10px;align-items:stretch;padding:2px;flex:1 1 auto;min-height:0;min-width:0;box-sizing:border-box;transition:grid-template-columns .22s ease,grid-template-rows .22s ease}
html body #mmorpgOverlay .k-inv-main{grid-column:1;grid-row:1}
html body #mmorpgOverlay .k-inv-equip{grid-column:2;grid-row:1}
html body #mmorpgOverlay .k-inv-preview{grid-column:3;grid-row:1}
html body #mmorpgOverlay .k-inv-preview-tab{grid-column:4;grid-row:1}
/* Collapsed preview: its column shrinks to nothing (the backpack and gear sections widen) and the window keeps its width. */
html body #mmorpgOverlay .k-inv[data-preview="closed"]{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,0fr) 44px}
html body #mmorpgOverlay .k-inv[data-preview="closed"] .k-inv-preview{visibility:hidden;opacity:0;transform:translateX(16px)}
html body #mmorpgOverlay .k-inv-preview{transition:opacity .2s ease,transform .22s ease,visibility .22s}
html body #mmorpgOverlay .k-inv-preview-tab{grid-row:1;align-self:stretch;justify-self:stretch;box-sizing:border-box;min-width:44px;min-height:44px;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:10px 0;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:8px;background:#0a110d;color:var(--k-gold-hi,#ebd391);font:600 14px/1 Grenze Gotisch,Georgia,serif;cursor:pointer;touch-action:manipulation}
html body #mmorpgOverlay .k-inv-preview-tab[aria-expanded="true"]{border-color:var(--k-gold-hi,#ebd391);background:#16241c}
html body #mmorpgOverlay .k-inv-preview-tab:focus-visible{outline:2px solid var(--k-gold-hi,#ebd391);outline-offset:2px}
html body #mmorpgOverlay .k-inv-preview-label{writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.04em;white-space:nowrap}
html body #mmorpgOverlay .k-inv-preview-icon{display:inline-flex}
html body #mmorpgOverlay .k-inv-preview-icon svg{display:block}
@media (prefers-reduced-motion: reduce){
 html body #mmorpgOverlay .k-inv,html body #mmorpgOverlay .k-inv-preview,html body #mmorpgOverlay .k-inv-preview-tab{transition:none}
}
html body #mmorpgOverlay .k-inv-main{display:flex;flex-direction:column;gap:5px;min-width:0;min-height:0}

html body #mmorpgOverlay #mmorpgWindow .k-inv-tools{display:flex;gap:6px;align-items:center;flex:none;min-width:0}
html body #mmorpgOverlay #mmorpgWindow .k-inv-searchbtn{flex:1 1 auto;min-width:0;min-height:17px;height:auto;margin:0;padding:1px 8px;box-sizing:border-box;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:4px;background:#070b09;color:var(--k-text,#eadfc4);font:600 11px/1.2 Grenze Gotisch,Georgia,serif;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body #mmorpgOverlay #mmorpgWindow .k-inv-sort{flex:0 0 auto;min-height:17px!important;height:auto;margin:0;padding:1px 8px;box-sizing:border-box;font:600 11px/1.2 Grenze Gotisch,Georgia,serif;white-space:nowrap;max-width:50%;overflow:hidden;text-overflow:ellipsis}
html body #mmorpgOverlay #mmorpgWindow .k-inv-searchbtn[aria-pressed="true"],html body #mmorpgOverlay #mmorpgWindow .k-inv-searchbtn[aria-expanded="true"]{color:var(--k-gold-hi,#ebd391);border-color:var(--k-gold,#b9954f)}

/* Search pane: a small card over the top of the inventory, opened from the Search button. */
html body #mmorpgOverlay .k-inv-searchpane{position:absolute;z-index:30;top:30px;left:8px;right:8px;max-width:300px;display:flex;gap:4px;align-items:center;padding:5px;box-sizing:border-box;background:#0c1b14;border:1px solid #ad9264;border-radius:6px;box-shadow:0 4px 12px #000b}
html body #mmorpgOverlay .k-inv-searchpane .k-inv-search{flex:1 1 auto;min-width:0;min-height:20px;height:20px;margin:0;padding:1px 6px;box-sizing:border-box;background:#070b09;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:4px;color:var(--k-text,#eadfc4);font:12px Grenze Gotisch,Georgia,serif}
html body #mmorpgOverlay #mmorpgWindow .k-inv-searchclose{flex:none;min-height:20px;height:20px;margin:0;padding:0 7px;box-sizing:border-box;font:600 11px/1 Grenze Gotisch,Georgia,serif;white-space:nowrap}

/* Tabs: about half the old height. Text ellipses instead of growing the row. */
html body #mmorpgOverlay .k-inv-tabs{display:flex;gap:2px;flex:none;min-width:0;border-bottom:1px solid var(--k-gold-lo,#6e5a35)}
html body #mmorpgOverlay #mmorpgWindow .k-inv-tabs button{flex:1 1 0;min-width:0;min-height:22px!important;height:22px;margin:0;padding:0 3px;box-sizing:border-box;border:0;border-bottom:2px solid transparent;border-radius:3px 3px 0 0;background:transparent;color:var(--k-muted,#9d9680);font:700 12px/1 Grenze Gotisch,Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body #mmorpgOverlay #mmorpgWindow .k-inv-tabs button[aria-selected="true"]{color:var(--k-gold-hi,#ebd391);border-bottom-color:var(--k-gold,#b9954f);background:#ffffff0d}

/* The grid takes the remaining height. Rows share it (six per tab); they never drop below 30px. */
html body #mmorpgOverlay .k-inv-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(30px,1fr);gap:5px;padding:7px;overflow-y:auto;
 background:#070b09;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:8px;box-shadow:inset 0 0 0 1px #000}
html body #mmorpgOverlay .k-inv-grid .k-slot{aspect-ratio:auto;height:100%;width:100%}
html body #mmorpgOverlay .k-slot,html body #mmorpgOverlay .k-equip{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-height:0;width:auto;height:auto;margin:0;padding:4px;box-sizing:border-box;
 border:1px solid #4a3f2a;border-radius:6px;background:radial-gradient(circle at 50% 30%,#26332c,#0b100e 82%);box-shadow:inset 0 0 0 1px #000,inset 0 -8px 12px #0007;cursor:pointer;overflow:hidden}
html body #mmorpgOverlay .k-slot.is-empty{background:#0b100e;border-color:#262219;box-shadow:inset 0 0 0 1px #000;cursor:default}
html body #mmorpgOverlay .k-slot:not(.is-empty):hover,html body #mmorpgOverlay .k-equip:not(.is-empty):hover{border-color:var(--k-gold-hi,#ebd391);filter:brightness(1.15)}
html body #mmorpgOverlay .k-slot[aria-pressed="true"]{border-color:var(--k-gold-hi,#ebd391);box-shadow:0 0 0 2px #ebd39166,inset 0 0 12px #ebd39133}
html body #mmorpgOverlay .k-slot:focus-visible,html body #mmorpgOverlay .k-equip:focus-visible{outline:2px solid var(--k-gold-hi,#ebd391);outline-offset:1px}
html body #mmorpgOverlay .k-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;pointer-events:none}
html body #mmorpgOverlay .k-icon img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 2px #000a)}
html body #mmorpgOverlay .k-glyph{font:700 16.5px Grenze Gotisch,Georgia,serif;color:var(--k-gold-hi,#ebd391)}
html body #mmorpgOverlay .k-qty{position:absolute;right:2px;bottom:2px;padding:1px 4px;border-radius:7px;background:#000c;font:700 12px/1.2 Grenze Gotisch,Georgia,serif;font-variant-numeric:tabular-nums;color:#fff4d4;text-shadow:0 1px 1px #000;pointer-events:none}

/* Footer: gold, value, weight, count, Repair all and Names. Wraps on narrow windows; every piece ellipses. */
html body #mmorpgOverlay .k-inv-foot{flex:none;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:3px 8px;min-width:0;padding:0 2px;font:600 12px/1.2 Grenze Gotisch,Georgia,serif;color:var(--k-muted,#9d9680)}
html body #mmorpgOverlay .k-inv-foot>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body #mmorpgOverlay .k-gold{color:var(--k-gold-hi,#ebd391);font:700 13px/1.2 Grenze Gotisch,Georgia,serif;font-variant-numeric:tabular-nums}
html body #mmorpgOverlay .k-gold::before{content:"\25C8";margin-right:4px;color:var(--k-gold,#b9954f)}

html body #mmorpgOverlay .k-inv-equip{display:grid;grid-auto-rows:auto;gap:6px;justify-items:center;align-content:start;min-width:0;min-height:0}
html body #mmorpgOverlay .k-inv-equip h3{margin:0;font:700 13px/1.2 Grenze Gotisch,Georgia,serif;letter-spacing:.06em;color:var(--k-gold-hi,#ebd391);white-space:nowrap}
html body #mmorpgOverlay .k-doll{position:relative;display:grid;grid-template-columns:repeat(3,var(--k-gear-slot));grid-template-rows:repeat(4,var(--k-gear-slot));gap:5px;padding:8px;justify-content:center;
 grid-template-areas:". head ." "mainHand chest offHand" ". legs ." "projectile feet quiver";
 background:#070b09;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:8px;box-shadow:inset 0 0 0 1px #000}
html body #mmorpgOverlay .k-doll::before{content:"";position:absolute;inset:12px 22px;background:url(/assets/hero.webp) 50% 12%/cover no-repeat;opacity:.16;pointer-events:none;border-radius:40% 40% 10% 10%}
html body #mmorpgOverlay .k-gear-slot{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--k-gear-slot);height:var(--k-gear-slot);min-width:44px;min-height:44px;aspect-ratio:auto;padding:3px;margin:0;z-index:1;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:6px;background:#0f1a14}
html body #mmorpgOverlay .k-gear-slot.is-empty{background:#0b100e8c;border-style:dashed;border-color:#4a3f2a;cursor:default;box-shadow:none}
html body #mmorpgOverlay .k-gear-slot.is-drop{border-color:var(--k-gold-hi,#ebd391);box-shadow:0 0 0 2px #ebd39199}
html body #mmorpgOverlay .k-equip.is-empty{background:#0b100e8c;border-style:dashed;border-color:#4a3f2a;cursor:default;box-shadow:none}
html body #mmorpgOverlay .k-equip-label{font:600 10px/1.15 Grenze Gotisch,Georgia,serif;color:#6d664f;text-align:center;text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;max-width:100%}
html body #mmorpgOverlay .k-dura{position:absolute;left:4px;right:4px;bottom:2px;height:4px;border-radius:2px;background:#000;overflow:hidden}
html body #mmorpgOverlay .k-dura i{display:block;height:100%;background:linear-gradient(90deg,#6d9b4a,#a9c768)}
html body #mmorpgOverlay .k-dura.is-low i{background:linear-gradient(90deg,#9c1f22,#e24c4f)}
html body #mmorpgOverlay .k-inv-hint{margin:0;max-width:100%;text-align:center;font:13px/1.3 Grenze Gotisch,Georgia,serif;color:var(--k-muted,#9d9680);overflow-wrap:anywhere}
html body #mmorpgOverlay .k-equip-head{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%}
html body #mmorpgOverlay .k-equip-views{display:flex;gap:3px;justify-content:center}
html body #mmorpgOverlay .k-equip-views button{min-height:28px;padding:0 7px;font:600 12px/1 Grenze Gotisch,Georgia,serif}
html body #mmorpgOverlay .k-equip-views button[aria-pressed="true"]{border-color:var(--k-gold-hi,#ebd391);color:var(--k-gold-hi,#ebd391)}
html body #mmorpgOverlay .k-preview[hidden],html body #mmorpgOverlay .k-doll[hidden]{display:none}
html body #mmorpgOverlay .k-preview{display:grid;gap:3px;justify-items:center}
html body #mmorpgOverlay .k-preview canvas{width:100%;max-width:240px;aspect-ratio:4/5;height:auto;background:#070b09;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:8px;image-rendering:pixelated;touch-action:pan-y}
html body #mmorpgOverlay .k-preview canvas:focus-visible{outline:2px solid var(--k-gold-hi,#ebd391);outline-offset:1px}
html body #mmorpgOverlay .k-preview-bar{display:flex;align-items:center;gap:6px}
html body #mmorpgOverlay .k-preview-bar button{min-width:32px;min-height:28px;padding:0 6px}
html body #mmorpgOverlay .k-preview-face{font:600 12px/1.2 Grenze Gotisch,Georgia,serif;color:var(--k-gold-hi,#ebd391);min-width:70px;text-align:center}
html body #mmorpgOverlay .k-preview-note{margin:0;max-width:100%;font:12px/1.3 Grenze Gotisch,Georgia,serif;color:#e0876f;text-align:center}
html body #mmorpgOverlay .k-preview-note:empty{display:none}
html body #mmorpgOverlay .k-worn-wt{margin:0;max-width:100%;text-align:center;font:600 12px/1.3 Grenze Gotisch,Georgia,serif;font-variant-numeric:tabular-nums;color:var(--k-gold-hi,#ebd391);overflow-wrap:anywhere}
html body #mmorpgOverlay .k-worn-wt.is-over{color:#e0876f;font-weight:700}

/* Responsive by window width (the shared window is resizable): three equal sections when wide, two with the preview below at
   medium, one stack on phones. The backpack grid scrolls inside; the page itself never scrolls sideways. */
html body #mmorpgOverlay .k-inv-equip{display:grid;gap:8px;align-content:start;justify-items:stretch;overflow-y:auto;overflow-x:hidden}
html body #mmorpgOverlay .k-inv-preview,html body #mmorpgOverlay .k-gear-panel{min-width:0;box-sizing:border-box}
html body #mmorpgOverlay .k-gear-panel{display:grid;gap:6px;justify-items:center;align-content:start;padding:6px;background:#0a110d;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:8px}
html body #mmorpgOverlay .k-inv-equip>.k-gear-panel{overflow:hidden}
html body #mmorpgOverlay .k-inv-preview{overflow:hidden}
html body #mmorpgOverlay .k-tool-grid{display:grid;grid-template-columns:repeat(4,var(--k-gear-slot));grid-auto-rows:var(--k-gear-slot);gap:5px;padding:8px;justify-content:center;background:#070b09;border:1px solid var(--k-gold-lo,#6e5a35);border-radius:8px;box-shadow:inset 0 0 0 1px #000}
html body #mmorpgOverlay .k-tool-outline{width:60%;height:60%;fill:none;stroke:#6d664f;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
html body #mmorpgOverlay .k-tool .k-equip-label{position:absolute;left:1px;right:1px;bottom:1px;font-size:9px;line-height:1;opacity:.0}
html body #mmorpgOverlay .k-tool.is-carried{border-color:#6d9b4a}
html body #mmorpgOverlay .k-tool-grid .k-gear-slot{z-index:auto}
html body #mmorpgOverlay .k-preview-reset{min-height:28px;padding:0 10px}
/* Medium: backpack and gear side by side; the preview opens as a full-width row below them (in flow, so it never covers the grid). */
@container inv (max-width:899px){
 html body #mmorpgOverlay .k-inv,html body #mmorpgOverlay .k-inv[data-preview]{grid-template-columns:repeat(2,minmax(0,1fr)) 44px;grid-template-rows:auto minmax(0,0fr);overflow-y:auto;overflow-x:hidden}
 html body #mmorpgOverlay .k-inv[data-preview="open"]{grid-template-rows:auto minmax(0,1fr)}
 html body #mmorpgOverlay .k-inv-main{min-height:400px;grid-column:1;grid-row:1}
 html body #mmorpgOverlay .k-inv-equip{grid-column:2;grid-row:1}
 html body #mmorpgOverlay .k-inv-preview-tab{grid-column:3;grid-row:1}
 html body #mmorpgOverlay .k-inv-preview{grid-column:1 / -1;grid-row:2}
}
/* Phone: one column of backpack then gear, the tab on the right edge, and the preview as a row below. */
@container inv (max-width:599px){
 html body #mmorpgOverlay .k-inv,html body #mmorpgOverlay .k-inv[data-preview]{grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto auto minmax(0,0fr);overflow-y:auto;overflow-x:hidden}
 html body #mmorpgOverlay .k-inv[data-preview="open"]{grid-template-rows:auto auto minmax(0,1fr)}
 html body #mmorpgOverlay .k-inv-main{flex:none;min-height:340px;grid-column:1;grid-row:1}
 html body #mmorpgOverlay .k-inv-equip{overflow:visible;grid-column:1;grid-row:2}
 html body #mmorpgOverlay .k-inv-preview-tab{grid-column:2;grid-row:1}
 html body #mmorpgOverlay .k-inv-preview{grid-column:1 / -1;grid-row:3}
}
#itemTooltip .tip-effects{margin-top:6px;padding-top:6px;border-top:1px solid #6e5a3577}
#mmorpgOverlay .k-inv-foot .k-value{color:#e2c47f;font-weight:700}
#mmorpgOverlay .k-inv-foot .k-weight.is-over{color:#e0876f;font-weight:700}
#itemTooltip .tip-gold{color:#e2c47f}

/* Filter chips: same compact height as the buttons. */
#mmorpgOverlay #mmorpgWindow .k-inv-chips{display:flex;gap:3px;flex:none;flex-wrap:wrap;min-width:0}
#mmorpgOverlay #mmorpgWindow .k-inv-chips button{min-height:16px!important;height:auto;margin:0;padding:1px 7px;box-sizing:border-box;border:1px solid #4a3f2a;border-radius:10px;background:transparent;color:var(--k-muted,#9d9680);font:600 11px/1.2 Grenze Gotisch,Georgia,serif;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mmorpgOverlay #mmorpgWindow .k-inv-chips button[aria-pressed="true"]{color:var(--k-gold-hi,#ebd391);border-color:var(--k-gold,#b9954f);background:#ffffff12}
#mmorpgOverlay .k-lock{position:absolute;left:2px;top:1px;font-size:11px;line-height:1;pointer-events:none;text-shadow:0 1px 1px #000}
#mmorpgOverlay .k-slot.is-unmet .k-icon{opacity:.6}
#mmorpgOverlay .k-unmet{position:absolute;right:0;top:0;width:0;height:0;border-style:solid;border-width:0 12px 12px 0;border-color:transparent #d23a3a transparent transparent;pointer-events:none}
#mmorpgOverlay .k-equip.is-drop{border-color:var(--k-gold-hi,#ebd391);box-shadow:0 0 0 2px #ebd39199}
html body #mmorpgOverlay .k-slot .k-name{position:absolute;left:1px;right:1px;bottom:1px;padding:1px 2px;font:600 10px/1.1 Grenze Gotisch,Georgia,serif;color:#f3e7c4;background:#0a120ecc;border-radius:3px;text-align:center;text-transform:capitalize;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}
html body #mmorpgOverlay .k-slot .k-qty{z-index:1}
@media(max-width:700px){html body #mmorpgOverlay .k-slot .k-name{display:none}}
html body #mmorpgOverlay .k-slot.has-name .k-qty{bottom:auto;top:2px;right:2px;font-size:11px}
html body #mmorpgOverlay .k-slot.has-name .k-icon{height:70%}
html body #mmorpgOverlay #mmorpgWindow .k-inv-names{margin:0 0 0 auto;padding:1px 7px;min-height:16px;height:auto;box-sizing:border-box;font:600 11px/1.2 Grenze Gotisch,Georgia,serif;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* Repair all: button and cost tooltip in the inventory footer. */
.k-inv-repair-wrap{position:relative;display:inline-block;max-width:100%}
.k-inv-repair-tip{position:absolute;bottom:100%;right:0;min-width:240px;max-width:min(320px,90vw);padding:8px 10px;margin-bottom:6px;background:#0c1b14;border:1px solid #ad9264;border-radius:6px;color:#f3dfa6;font-size:14.5px;z-index:20}
.k-inv-repair-tip p{margin:2px 0}
.k-inv-repair-tip[hidden]{display:none}
html body #mmorpgOverlay #mmorpgWindow .k-inv-repair{min-height:17px!important;height:auto;margin:0;padding:1px 8px;box-sizing:border-box;font:700 11px/1.2 Grenze Gotisch,Georgia,serif;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
/* A disabled button swallows pointer events; let the wrapper receive hover so the cost tip still opens. */
.k-inv-repair:disabled{pointer-events:none}
/* Weight badge on item slots and equipment slots (top-left, so it does not clash with the quantity or name). */
html body #mmorpgOverlay .k-slot .k-wt,html body #mmorpgOverlay .k-equip .k-wt{position:absolute;left:2px;top:2px;z-index:1;padding:1px 4px;border-radius:7px;background:#000c;font:600 11px/1.2 Grenze Gotisch,Georgia,serif;font-variant-numeric:tabular-nums;color:#cfe3f0;text-shadow:0 1px 1px #000;pointer-events:none}
html body #mmorpgOverlay .k-equip .k-wt{font-size:10px}
/* A stat row past its limit (the carried weight on the stats sheet). */
#mmorpgOverlay .character-card dd.is-over{color:#e0876f;font-weight:700}
