/* compact-modals.css - loaded last. Changelog (slim/compact pass):
   - Shared window: tighter overlay buttons (28px), h3/h2 14-16px, tab padding.
   - Merchant: tighter panel/summary/funds/rows, 32px icons, 26-28px Buy/Sell/Max, narrow qty input, clamped copy.
   - Inventory: smaller heading, tighter slots/items/loadout/controls.
   - Bank box: 440px wide, 8-12px padding, 15px heading, 26px buttons.
   - Books (kbook): tighter heads, bars, rows, stat grid, pager, doll 150px.
   - World map: narrower info panel, tighter header/footer.
   - NPC card: smaller, 28px buttons, clamped text.
   - Tracker, context menu, tooltip: smaller and tighter.
   - Login/character cards: less padding. All rules use html body #id specificity. */

html body #mmorpgOverlay button{min-height:28px;padding-top:3px;padding-bottom:3px;font-size:14.5px}
html body #mmorpgOverlay h2{font-size:17.5px;margin:0 0 4px}
html body #mmorpgOverlay h3{font-size:15.5px;margin:0 0 4px}
html body #mmorpgOverlay [role="tab"]{padding:3px 10px;min-height:26px}

/* Merchant */
html body #mmorpgOverlay .merchant-panel{gap:6px;padding:0}
html body #mmorpgOverlay .merchant-summary,html body #mmorpgOverlay .merchant-status{margin:0 0 4px;padding:4px 8px}
html body #mmorpgOverlay .merchant-funds{gap:6px;padding:4px 8px;margin:0 0 4px}
html body #mmorpgOverlay .merchant-tab-panel,html body #mmorpgOverlay .merchant-sell-list{gap:4px;padding:4px}
html body #mmorpgOverlay .merchant-loot-card,html body #mmorpgOverlay .merchant-shop-row{padding:4px 8px 4px 48px;gap:2px 6px;min-height:0}
html body #mmorpgOverlay .merchant-icon,html body #mmorpgOverlay .merchant-shop-row>.merchant-icon,html body #mmorpgOverlay .merchant-loot-card>.merchant-icon{width:32px;height:32px}
html body #mmorpgOverlay .merchant-loot-card>h3,html body #mmorpgOverlay .merchant-item-copy h3{font-size:14.5px;margin:0}
html body #mmorpgOverlay .merchant-item-copy p{margin:0;font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html body #mmorpgOverlay .merchant-loot-card button,html body #mmorpgOverlay .merchant-max{min-height:26px;padding:2px 10px;font-size:13px}
html body #mmorpgOverlay .merchant-loot-card input{padding:2px 4px;min-height:24px}
html body #mmorpgOverlay .merchant-toolbar{gap:4px;margin:0 0 4px}

/* Inventory */
html body #mmorpgOverlay .inventory-panel{gap:6px;padding:0}
html body #mmorpgOverlay .inventory-heading{margin:0 0 4px}
html body #mmorpgOverlay .inventory-heading h2{font-size:17.5px}
html body #mmorpgOverlay .inventory-summary{font-size:13px;margin:0}
html body #mmorpgOverlay .inventory-columns{gap:8px}
html body #mmorpgOverlay .inventory-slots{gap:4px}
html body #mmorpgOverlay .inventory-item{padding:3px 4px;min-height:0}
html body #mmorpgOverlay .inventory-item-name{font-size:13px}
html body #mmorpgOverlay .inventory-controls{gap:4px;margin:0 0 4px}
html body #mmorpgOverlay .inventory-feedback{margin:2px 0;font-size:13px}
html body #mmorpgOverlay .inventory-loadout{gap:4px}
html body #mmorpgOverlay .inventory-equipped-slot{padding:3px 6px}
html body #mmorpgOverlay .character-grid{gap:6px}

/* Bank box */
html body #bankPanel.k-bankbox{width:min(440px,calc(100% - 24px));max-height:min(560px,80%);padding:10px 12px}
html body #bankPanel.k-bankbox h2{font-size:16.5px;margin:0 0 4px}
html body #bankPanel .k-bank-close{top:6px;right:6px;width:26px;height:26px}
html body #bankPanel button{min-height:26px;padding:2px 10px;font-size:13px}
html body #bankPanel input,html body #bankPanel select{min-height:26px;padding:2px 6px;box-sizing:border-box}

/* Books */
html body .kbook h4,html body .kbook .journal-left h3,html body .kbook .journal-right h3{font-size:16.5px;margin:0 0 4px}
html body .kbook .journal-title{font-size:20px!important}
html body .kbook .journal-reward,html body .kbook .journal-meta{margin:2px 0 4px}
html body .kbook .journal-story{line-height:1.35}
html body .kbook .journal-tabs button{font-size:16.5px}
html body .kbook-head{gap:8px;margin-bottom:2px}
html body .kbook-head .kbook-icon,html body .kbook-head .kbook-icon img{width:36px;height:36px}
html body .kbook-bar{height:16px;margin:3px 0}
html body .kbook-bar span{font-size:12px;line-height:16px}
html body .kbook-gold{margin:4px 0}
html body .kbook-info{margin:4px 0}
html body .kbook-row{padding:2px 4px}
html body .kbook-stats{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:4px}
html body .kbook-stat{padding:3px 6px}
html body .kbook-pager{margin:0 0 4px}
html body .kbook-doll{height:150px;margin:0 0 6px}
html body .journal-leaf{padding:8px 10px}

/* World map */
html body #kWorldMap header{padding:4px 6px 4px 10px}
html body #kWorldMap header button{min-height:26px;min-width:28px}
html body #kWorldMap .k-wm-info{flex:0 0 160px;padding:8px}
html body #kWorldMap .k-wm-info h4{font-size:15.5px}
html body #kWorldMap .k-wm-info p{margin:4px 0 0;font-size:13px}
html body #kWorldMap footer{padding:3px 10px}


/* Tracker, menus, tooltip */
html body #kTracker{width:200px;max-height:36vh;padding:4px 6px 6px}
html body #kTracker .k-tr-row{padding:3px 20px 4px 2px}
html body #worldContextMenu{min-width:150px;padding:3px}
html body #worldContextMenu button{min-height:24px;padding:3px 8px;font-size:13px}
html body #kTip{max-width:240px;padding:4px 8px;font-size:13px}

/* Login / character screens */
html body #kheldraLogin .login-card{padding:16px 20px;width:min(380px,100%)}
html body .character-card{padding:8px 10px}

/* Settings and hotbar-config windows: tight rows, 2-column label/control grid */
html body #mmorpgSettings{padding:8px 12px;line-height:1.3;font-size:13px}
html body #mmorpgSettings:where([style*="block"]){display:grid!important;grid-template-columns:minmax(110px,40%) 1fr;column-gap:10px;row-gap:3px;align-content:start}
html body #mmorpgSettings>h2{grid-column:1/-1;margin:8px 0 2px;padding-bottom:2px;border-bottom:1px solid #766847;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
html body #mmorpgSettings>h2:first-child{margin-top:0}
html body #mmorpgSettings>p{grid-column:1/-1;margin:0;font-size:13.5px;color:#b9c6b3}
html body #mmorpgSettings>label{margin:0;align-self:center;display:block}
html body #mmorpgSettings>label:has(input[type=checkbox]){grid-column:1/-1;display:flex;align-items:center;gap:6px}
html body #mmorpgSettings>label:has(input[type=checkbox]) input{width:auto;min-height:0;margin:0}
html body #mmorpgSettings input,html body #mmorpgSettings select{margin:0;min-height:26px;padding:2px 6px;width:100%}
html body #mmorpgSettings input[type=range]{min-height:20px;padding:0}
html body #mmorpgSettings output{float:right;color:#f1d39a}
html body #mmorpgSettings>button{grid-column:1/-1;min-height:26px;padding:3px 10px;margin-top:4px;font-size:13px}
html body #mmorpgHotbarConfig{padding:8px 12px;font-size:13px}
html body #mmorpgHotbarConfig h2{font-size:14.5px;margin:0 0 2px}
html body #mmorpgHotbarConfig>p{margin:0 0 6px;font-size:13.5px;color:#b9c6b3}
html body #mmorpgHotbarSlots{display:grid;grid-template-columns:repeat(2,1fr);column-gap:12px}
html body #mmorpgHotbarConfig label{grid-template-columns:44px 1fr;gap:6px;padding:3px 0;margin:0}
html body #mmorpgHotbarConfig select{min-height:24px;padding:1px 4px;font-size:13px}
html body #mmorpgHotbarConfig button{min-height:26px;padding:3px 10px;margin-top:6px;font-size:13px}

html body #townServicePanel.k-svcbox{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:var(--z-window-base,1000);width:min(440px,calc(100vw - 24px));max-height:80vh;overflow:auto;padding:16px 18px;border:1px solid #b9954f;border-radius:10px;background:linear-gradient(180deg,#14231c,#0a120e);box-shadow:0 18px 50px #000c,inset 0 0 0 1px #000,inset 0 0 0 2px #ebd39122;color:#e6d9b6}
html body #townServicePanel.k-svcbox h2{margin:0 0 8px;font:700 22px Grenze Gotisch,Georgia,serif;color:#ebd391}
html body #townServicePanel .k-svc-close{position:absolute;top:8px;right:8px;width:30px;height:30px;min-height:0;padding:0;border:1px solid #8a2a24;border-radius:6px;background:#4a1416;color:#ffd9d4;font:700 15.5px Grenze Gotisch,Georgia,serif;cursor:pointer}

/* combat-ui.js: combat readability layer */
#kCombatOverlay{pointer-events:none}

/* Network status banner and dot */
.k-net-banner{position:fixed;top:6px;left:50%;transform:translateX(-50%);z-index:18;padding:3px 12px;border-radius:10px;background:rgba(40,28,10,.92);color:#f3e2b3;border:1px solid #b8892f;font:13px/1.4 Grenze Gotisch,Georgia,serif;pointer-events:none}
.k-net-banner[hidden]{display:none}
.k-net-banner[data-kind="net"]{border-color:#c0504a}
.k-net-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 6px;vertical-align:middle;background:#4caf50;box-shadow:0 0 3px rgba(0,0,0,.6)}
.k-net-dot[data-state="amber"]{background:#e0a030}
.k-net-dot[data-state="red"]{background:#d04a40}

/* a11y.js: focus rings, reduced motion, contrast overrides */
html body button:focus-visible,html body [role=tab]:focus-visible,html body [tabindex]:focus-visible,html body a:focus-visible,html body input:focus-visible,html body select:focus-visible,html body .kbook-tab:focus-visible,html body .kbook-row:focus-visible,html body #kShop li:focus-visible{outline:2px solid #f5d68c;outline-offset:2px}
html.k-reduce-motion *,html.k-reduce-motion *::before,html.k-reduce-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html.k-reduce-motion #kTracker *,html.k-reduce-motion .k-qmark,html.k-reduce-motion [class*=quest-mark],html.k-reduce-motion [id*=tmosphere],html.k-reduce-motion [class*=atmos]{animation:none!important;transition:none!important}
html body #mmorpgOverlay .journal-book .journal-side-tab,html body .journal-side-tab{color:#1d1204;text-shadow:none}

/* NPC ambient barks */
#npcBarks{position:fixed;inset:0;pointer-events:none;z-index:18}
.npc-bark{position:absolute;left:0;top:0;max-width:180px;padding:3px 7px;background:#0f1a15cc;border:1px solid #c9a24a;border-radius:6px;color:#f1e6c4;font:13.5px Grenze Gotisch,Georgia,serif;text-align:center;pointer-events:none;transition:opacity .3s ease}
.npc-bark::after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-4px;border:4px solid transparent;border-top-color:#c9a24a;border-bottom:0}
@media (prefers-reduced-motion:no-preference){.npc-bark{animation:npcBarkFloat 6s ease-out both}}
@keyframes npcBarkFloat{from{margin-top:4px}to{margin-top:-6px}}
/* Bank: compact two-pane vault */
html body #bankPanel.k-bankbox,html body #bankPanel{max-width:520px}
html body #bankPanel .bank-balance{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:13px}
html body #bankPanel .bank-coin{width:18px;height:18px}
html body #bankPanel .bank-goldrow,html body #bankPanel .bank-tools{display:flex;gap:4px;align-items:center;margin:0 0 4px;flex-wrap:wrap}
html body #bankPanel .bank-goldrow label{display:flex;align-items:center;gap:4px;font-size:13px}
html body #bankPanel .bank-goldrow input{width:90px}
html body #bankPanel .bank-tools input{flex:1;min-width:90px}
html body #bankPanel .bank-tabs{display:inline-flex;gap:2px}
html body #bankPanel .bank-tabs button[aria-pressed="true"]{border-color:#ebd391;background:#3a4a2c}
html body #bankPanel .bank-panes{display:grid;grid-template-columns:1fr 1fr;gap:6px}
html body #bankPanel .bank-pane h3{margin:0 0 2px;font-size:13px;color:#ebd391}
html body #bankPanel .bank-list{height:210px;overflow:auto;border:1px solid #5a4a28;border-radius:6px;padding:2px;background:#0006}
html body #bankPanel .bank-row{display:grid;grid-template-columns:24px 1fr auto auto;align-items:center;gap:4px;height:30px;padding:0 2px;cursor:pointer;border-radius:4px;font-size:13px}
html body #bankPanel .bank-row:hover{background:#ebd39122}
html body #bankPanel .bank-row.locked{opacity:.55}
html body #bankPanel .bank-row button{min-height:20px;padding:0 5px;font-size:11px}
html body #bankPanel .bank-ic{width:24px;height:24px;display:grid;place-items:center;font-size:11px}
html body #bankPanel .bank-ic img{width:24px;height:24px;object-fit:contain}
html body #bankPanel .bank-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body #bankPanel .bank-empty{margin:6px;font-size:13.5px;opacity:.7}

/* ---- UI smoke fixes: safe window margins, disabled/primary buttons, top-right row, toast placement ---- */
html body #mmorpgOverlay[data-open="true"] #mmorpgWindow{
 top:84px!important;left:50%!important;transform:translateX(-50%)}
html body #mmorpgOverlay button:disabled,html body #mmorpgOverlay button[aria-disabled="true"]{
 opacity:.7;border:1px dashed #8d7a4f;color:#cdbd92;cursor:not-allowed}
html body #mmorpgOverlay .journal-primary:not(:disabled),html body #mmorpgOverlay .sb-foot button:not(:disabled),
html body #mmorpgOverlay .bounty-row button:not(:disabled),
html body #mmorpgOverlay [data-bounty-claim]:not(:disabled),
html body #mmorpgOverlay [data-reset-settings]:not(:disabled){
 background:linear-gradient(#e0c27a,#a9822f);color:#1a1206;border:1px solid #f0d890;font-weight:700}
html body #hudContextToggle{margin-right:72px;white-space:nowrap;position:relative;z-index:var(--z-hud-top,19)}
html body #kaudioToggle{z-index:var(--z-hud-top,19)}
html body #kMessages{bottom:auto;top:96px;left:14px;max-height:80px;overflow:hidden}
html body #mmorpgUtilities button{font-size:11px;line-height:1.1;overflow:hidden;text-overflow:ellipsis}
html body #mmorpgOverlay #mmorpgWindow button:disabled{opacity:.75!important;color:#d9c995!important;border:1px dashed #a08c64!important;background:#1a2620!important}
html body #mmorpgOverlay .settings-book .sb-leaf button,html body #mmorpgOverlay .settings-book .sb-foot button{background:linear-gradient(#e0c27a,#a9822f)!important;color:#1a1206!important;border:1px solid #f0d890!important;font-weight:700;opacity:1!important;padding:3px 12px;align-self:flex-start}

/* ---- Contrast pass: journal body text (WCAG AA on the dark-green page) and window title bar ---- */
html body #mmorpgOverlay .journal-book .journal-story,html body #mmorpgOverlay .journal-book .journal-right p{color:#e6d9b6!important}
html body #mmorpgOverlay .journal-book .journal-reward,html body #mmorpgOverlay .journal-book .journal-giver,
html body #mmorpgOverlay .journal-book .journal-meta,html body #mmorpgOverlay .journal-book .journal-empty{color:#d9ccaa!important}
html body #mmorpgOverlay .journal-book .journal-right h4,html body #mmorpgOverlay .kbook h4{color:#d9b866}
html body #mmorpgOverlay #mmorpgWindow #mmorpgWindowHeader{flex:0 0 34px;height:34px;min-height:34px;position:relative;overflow:visible}
html body #mmorpgOverlay #mmorpgWindow #mmorpgClose{position:relative;top:auto;right:auto;width:28px;height:28px;min-width:28px;min-height:28px;margin:0;z-index:5}

/* ---- Visual QA 2 ---- */
/* Friends: buttons inherited the dark paper text colour (unreadable on the dark page). */
html body #mmorpgOverlay .friends-book .fb-tabs button,html body #mmorpgOverlay .friends-book .fb-add button,html body #mmorpgOverlay .friends-book .fb-row button{color:#e8d9a8!important;background:#14201a!important;border:1px solid #8d7a4f!important}
html body #mmorpgOverlay .friends-book .fb-tabs button[aria-selected="true"]{background:linear-gradient(#d7b36a,#a9803f)!important;color:#1a1208!important}
/* Crafting: disabled quantity/Craft controls stay legible. */
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-qty button:disabled,html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-go:disabled{opacity:1!important;color:#d9c995!important;background:#1a2620!important;border:1px dashed #a08c64!important;filter:none}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-toggle button:not([aria-pressed="true"]){color:#e6d9b6!important}
/* Abilities: hotbar slot rows fit on one line, search box shows its placeholder. */
html body #mmorpgOverlay .abilities-book .abk-slots{gap:2px;flex-wrap:nowrap}
html body #mmorpgOverlay .abilities-book .abk-slots small{width:38px;flex:none}
html body #mmorpgOverlay .abilities-book .abk-slots button{min-width:22px;min-height:24px;padding:2px 0;font-size:12px!important}
html body #mmorpgOverlay .abilities-book .abk-tools input{min-width:96px;text-overflow:ellipsis}
/* Stats doll: four gear slots fit the 150px frame. */
html body .kbook-slot{width:30px;height:30px}
html body .kbook-slot .kbook-icon{width:24px;height:24px}
html body .kbook-slot-head,html body .kbook-slot-mainHand{top:6px}
html body .kbook-slot-chest,html body .kbook-slot-offHand{top:41px}
html body .kbook-slot-legs,html body .kbook-slot-projectile{top:76px}
html body .kbook-slot-feet{top:111px}
/* World overlays (quest markers, dungeon labels) sit above the HUD layer; hide them behind open service/bank boxes. */
body:has(#bankPanel:not([hidden])) #questMarkers,body:has(#bankPanel:not([hidden])) #dungeonMarkers,
body:has(#townServicePanel.k-svcbox:not([hidden])) #questMarkers,body:has(#townServicePanel.k-svcbox:not([hidden])) #dungeonMarkers{visibility:hidden}
/* Tracker owns the top-left under the portrait; toast messages move to its right. */
html body #kMessages{left:226px;max-width:min(420px,calc(100vw - 520px))}
/* Crafting quantity/Max buttons inherited the dark paper text colour. */
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-qty button{color:#e8d9a8!important;background:#14201a!important;border:1px solid #8d7a4f!important}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-go{color:#1a1208!important}
html body #mmorpgOverlay .bounty-book small{margin-right:8px}
/* Dungeons: enabled Enter buttons inherited the dark paper text colour; empty gear slot letters were unreadable. */
html body #mmorpgOverlay .dungeon-book button:not(:disabled){background:linear-gradient(#e0c27a,#a9822f)!important;color:#1a1206!important;border:1px solid #f0d890!important;font-weight:700}
html body .kbook-slot-empty{color:#b39d68}
/* First-hour fixes: shop modal centred (was shifted off the left edge by left:50% + relative), craft button states. */
html body #mmorpgOverlay[data-open="true"] #mmorpgWindow[data-subpanel="merchant"]{position:relative!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;margin:0 auto!important;width:min(760px,calc(100vw - 32px))!important;height:min(620px,calc(100dvh - 120px))!important;max-height:calc(100dvh - 90px)!important}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-go:not(:disabled){background:linear-gradient(#f0cf82,#b98d3a)!important;color:#1a1208!important;border:1px solid #f6e2a8!important;box-shadow:0 0 0 2px #e0c27a55,0 2px 8px #0008;opacity:1!important;filter:none}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-go:disabled{background:#141b17!important;color:#8f8a76!important;border:1px dashed #6b6149!important;opacity:.7!important}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-qty button:not(:disabled){background:#2a3a30!important;color:#f3e3b0!important;border:1px solid #c7a85e!important}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-qty button:disabled{color:#8f8a76!important;background:#141b17!important;opacity:.6!important}
html body #mmorpgOverlay #mmorpgWindow .kbook .kcraft-why{color:#f0b09a;font-weight:700;min-height:1.2em}
/* feedback.css loads later with the same specificity; raise it so the toast log sits right of the tracker. */
html body div#kMessages{left:226px;top:96px;bottom:auto;width:min(380px,calc(100vw - 520px));max-height:80px;overflow:hidden}
/* Mid-width screens: keep the centred window clear of the right-hand action rail; give the NPC card room above the hotbars. */
@media(min-width:900px) and (max-width:1100px){
 html body #mmorpgOverlay[data-open="true"] #mmorpgWindow{left:calc(50% - 40px)!important}
}
/* Tracker sits under the world map (z60) and help (z70); on narrow screens it steps aside while a window is open. */
html body #kTracker{z-index:18}
@media(max-width:1100px){body:has(#mmorpgOverlay[data-open="true"],#kWorldMap:not([hidden]),#khelpOverlay[data-open="true"]) #kTracker{visibility:hidden}}
/* World map: the hover info panel used to be a flex sibling, so showing it narrowed the canvas, moved the cursor off the mark and hid it again (flicker). Overlay it instead. */
html body #kWorldMap .k-wm-body{position:relative}
html body #kWorldMap .k-wm-body .k-wm-info{position:absolute;right:0;top:0;bottom:0;width:170px;flex:none;z-index:3;pointer-events:none;border-left:1px solid #6e5a35;background:linear-gradient(180deg,#101a15f2,#0a110ef2)}
/* Toast log: centre it above the hotbars instead of over the tracker/tutorial card. */
html body div#kMessages{left:50%;transform:translateX(-50%);top:auto;bottom:196px;width:min(420px,calc(100vw - 560px));max-height:90px}

/* Message log: no dark backdrop when there is nothing to show (empty, or every line already faded out). */
html body #kMessages:empty,html body div#kMessages:empty{display:none!important}
html body #kMessages:not(:has(.k-msg:not(.k-old))),html body div#kMessages:not(:has(.k-msg:not(.k-old))){background:none!important;box-shadow:none!important;padding:0!important}
html body #kMessages{background:none}
html body #kMessages:has(.k-msg:not(.k-old)){background:linear-gradient(180deg,#0a0f0d00,#0a0f0dcc)}

html body:has(#npcPortraitCard:not([hidden])) #questMarkers,html body:has(#npcPortraitCard:not([hidden])) .k-coach,html body:has(#npcPortraitCard:not([hidden])) #kAreaBanner,html body:has(#npcPortraitCard:not([hidden])) #dungeonMarkers{visibility:hidden}

/* Shop v3: MMO-style trade window. One-line item rows in a two-column grid, framed icon slots, gold purse header, clear tabs. */
html body #mmorpgOverlay .merchant-panel{display:flex;flex-direction:column;gap:0;min-height:0}
html body #mmorpgOverlay .merchant-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;padding:6px 10px;background:linear-gradient(#1b2a22,#121c17);border-bottom:1px solid #6e5a35}
html body #mmorpgOverlay .merchant-identity{flex:1;min-width:0}
html body #mmorpgOverlay .merchant-identity p{margin:0;font:700 13.5px Grenze Gotisch,Georgia,serif;letter-spacing:.08em;text-transform:uppercase;color:#9d9680}
html body #mmorpgOverlay .merchant-funds{display:flex;align-items:center;gap:7px;margin:0;padding:3px 12px 3px 8px;border:1px solid #8d7a4f;border-radius:14px;background:#0a100d}
html body #mmorpgOverlay .merchant-funds span{font:700 11px Grenze Gotisch,Georgia,serif;letter-spacing:.08em;text-transform:uppercase;color:#9d9680}
html body #mmorpgOverlay .merchant-funds strong{font:700 18.5px Grenze Gotisch,Georgia,serif;color:#f2d777}
html body #mmorpgOverlay .merchant-funds strong::before{content:"";display:inline-block;width:12px;height:12px;margin-right:5px;border-radius:50%;vertical-align:-1px;background:radial-gradient(circle at 35% 30%,#fff3b0,#d9b341 55%,#8a6a1f);box-shadow:0 0 0 1px #3a2c0a}
html body #mmorpgOverlay .merchant-status{flex:1 0 100%;margin:0;padding:2px 0 0;min-height:0;font:italic 14px Grenze Gotisch,Georgia,serif;color:#cfe3b8}
html body #mmorpgOverlay .merchant-status:empty{display:none}
/* Buyback tab: rows keep 13px text and 44px touch targets. */
html body #mmorpgOverlay .merchant-buyback-row{gap:8px;align-items:center}
html body #mmorpgOverlay .merchant-buyback-detail{font-size:13px;margin:0}
html body #mmorpgOverlay .merchant-buyback-button{min-height:44px;min-width:44px;padding:6px 12px;font-size:13px}
html body #mmorpgOverlay .merchant-tabs{display:flex;gap:2px;margin:0;padding:6px 10px 0;border-bottom:1px solid #6e5a35;background:#0d1511;overflow:visible;flex:none}
html body #mmorpgOverlay .merchant-tabs button{margin:0;min-height:30px;padding:5px 18px;border:1px solid #6e5a35;border-bottom:0;border-radius:7px 7px 0 0;background:#14201a;color:#cbbf9d;font:700 14.5px Grenze Gotisch,Georgia,serif;cursor:pointer;line-height:1.2}
html body #mmorpgOverlay .merchant-tabs button[aria-selected="true"]{background:linear-gradient(#d7b36a,#a9803f);color:#1a1208;position:relative;top:1px}
html body #mmorpgOverlay .merchant-tab-panel{flex:1;min-height:0;overflow:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
html body #mmorpgOverlay .merchant-tab-panel[hidden]{display:none}
html body #mmorpgOverlay .merchant-toolbar{display:flex;gap:6px;margin:0}
html body #mmorpgOverlay .merchant-toolbar input[type=search]{flex:1;min-width:0}
html body #mmorpgOverlay .merchant-shop-list,html body #mmorpgOverlay .merchant-sell-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:6px;padding:0}
html body #mmorpgOverlay .merchant-loot-card,html body #mmorpgOverlay .merchant-shop-row{position:relative;display:flex;align-items:center;gap:8px;margin:0;padding:6px 8px 6px 6px;min-height:52px;border:1px solid #4d4630;border-left:3px solid #b9954f;border-radius:6px;background:linear-gradient(90deg,#1a281f,#131c17)}
html body #mmorpgOverlay .merchant-loot-card:hover,html body #mmorpgOverlay .merchant-shop-row:hover{border-color:#b9954f;background:linear-gradient(90deg,#22342a,#17221b)}
html body #mmorpgOverlay .merchant-loot-card>.merchant-icon,html body #mmorpgOverlay .merchant-shop-row>.merchant-icon{position:static;flex:none;width:40px;height:40px;padding:3px;object-fit:contain;border:1px solid #6e5a35;border-radius:5px;background:radial-gradient(circle,#2b3b31,#0c120f);box-shadow:inset 0 0 0 1px #000}
html body #mmorpgOverlay .merchant-loot-card>h3{order:1;flex:1;min-width:0;margin:0;font:700 15.5px Grenze Gotisch,Georgia,serif;text-transform:capitalize;color:#f1e3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body #mmorpgOverlay .merchant-owned{order:2;flex:none;padding:1px 7px;border-radius:9px;background:#0a100d;color:#9d9680;font:12px Grenze Gotisch,Georgia,serif}
html body #mmorpgOverlay .merchant-quantity{order:3;display:flex;align-items:center;gap:4px;margin:0;font:700 13.5px Grenze Gotisch,Georgia,serif;color:#9d9680}
html body #mmorpgOverlay .merchant-quantity input,html body #mmorpgOverlay .merchant-shop-row label input{width:46px;min-height:26px;padding:1px 4px;text-align:center;border:1px solid #6e5a35;border-radius:4px;background:#070b09;color:#f4e6c8;font:700 14.5px Grenze Gotisch,Georgia,serif}
html body #mmorpgOverlay .merchant-price{color:#f2d777;font:700 13px Grenze Gotisch,Georgia,serif;white-space:nowrap}
html body #mmorpgOverlay .merchant-loot-card>.merchant-max,html body #mmorpgOverlay .merchant-shop-row>.merchant-max{order:4}
html body #mmorpgOverlay .merchant-loot-card>button:last-child{order:5}
html body #mmorpgOverlay .merchant-item-copy{flex:1;min-width:0}
html body #mmorpgOverlay .merchant-shop-row>label{display:flex;align-items:center;gap:4px;margin:0;font:700 13.5px Grenze Gotisch,Georgia,serif;color:#9d9680}
html body #mmorpgOverlay .merchant-loot-card button,html body #mmorpgOverlay .merchant-shop-row button{flex:none;min-height:28px;margin:0;padding:3px 12px;border:1px solid #6e5a35;border-radius:5px;font:700 13px Grenze Gotisch,Georgia,serif;cursor:pointer;background:linear-gradient(#d7b36a,#a9803f);color:#1a1208}
html body #mmorpgOverlay .merchant-loot-card button.merchant-max,html body #mmorpgOverlay .merchant-shop-row button.merchant-max{background:#14201a;color:#e6d9b6}
html body #mmorpgOverlay .merchant-shop-row button:disabled{background:#141b17;color:#8f8a76;border-style:dashed;cursor:not-allowed}
@media(max-width:560px){html body #mmorpgOverlay .merchant-shop-list,html body #mmorpgOverlay .merchant-sell-list{grid-template-columns:1fr}html body #mmorpgOverlay .merchant-loot-card,html body #mmorpgOverlay .merchant-shop-row{flex-wrap:wrap}}

/* Chat/Activity panel: slim. Tiny header with the collapse arrow inline, pill tabs, small log, one-row input. */
html body #mmorpgChat.k-chat{padding:4px 6px 5px!important;gap:3px!important;width:clamp(230px,48vw,600px)!important;border-radius:8px!important}
html body #mmorpgChat .k-chat-head{display:flex;align-items:center;justify-content:space-between;min-height:0!important;margin:0!important;padding:0!important;gap:4px}
html body #mmorpgChat .k-chat-head strong,html body #mmorpgChat .k-chat-head h3{margin:0!important;font:700 12px Grenze Gotisch,Georgia,serif!important;letter-spacing:.1em;color:#d7b36a}
html body #mmorpgChat .k-chat-toggle{width:20px!important;min-width:20px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;font-size:12px!important;border-radius:4px!important}
html body #mmorpgChat .k-chat-tabs{display:flex;gap:2px!important;margin:0!important;flex-wrap:nowrap}
html body #mmorpgChat .k-chat-tab{flex:1;min-width:0;min-height:0!important;height:20px;margin:0!important;padding:0 4px!important;font:700 11.5px Grenze Gotisch,Georgia,serif!important;border-radius:9px!important}
html body #mmorpgChat .k-chat-log{max-height:clamp(84px,30vh,200px);margin:0!important;padding:2px 4px!important;font:15.5px/1.35 Grenze Gotisch,Georgia,serif!important}
html body #mmorpgChat .k-chat-log *{font-size:15.5px!important;line-height:1.35!important}
html body #mmorpgChat form,html body #mmorpgChat .k-chat-form{display:flex;gap:4px;margin:0!important}
html body #mmorpgChat input[type=text],html body #mmorpgChat input:not([type]){min-height:0!important;height:24px;padding:0 7px!important;font:13px Grenze Gotisch,Georgia,serif!important;border-radius:5px!important}
html body #mmorpgChat form button,html body #mmorpgChat .k-chat-form button{min-height:0!important;height:24px;min-width:34px!important;margin:0!important;padding:0 8px!important;font:700 12px Grenze Gotisch,Georgia,serif!important;border-radius:5px!important}
/* Shop rows: the icon sits in the flex flow, so cancel the older absolute-icon left padding that left a 70px empty gutter. */
html body #mmorpgOverlay .merchant-shop-row:has(>.merchant-icon),html body #mmorpgOverlay .merchant-loot-card:has(>.merchant-icon){padding:6px 8px 6px 6px!important;min-height:52px}

/* Chat tabs: seven tabs must fit the panel; onboarding card scrolls instead of clipping. */
html body #mmorpgChat .k-chat-tabs{overflow:hidden}
html body #mmorpgChat .k-chat-tab{padding:0 3px!important;font-size:11px!important;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}
html body .k-onb{max-height:calc(100vh - 360px);overflow-y:auto}
/* Shop names: sell cards let the name wrap instead of collapsing to nothing; buy names truncate with the full name in the title tooltip. */
html body #mmorpgOverlay .merchant-loot-card{flex-wrap:wrap}
html body #mmorpgOverlay .merchant-loot-card>h3{flex:1 1 120px;min-width:0;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
html body #mmorpgOverlay .merchant-item-copy h3{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
