/* Dedicated shop surface, scoped so equipment, engine and loot keep their layouts. */
#shopFront { display:none; }
#app.is-shop-view > .inv-wrap { display:block!important; width:1164px!important; min-width:0!important; max-width:none!important; padding:0!important; gap:0!important; }
#app.is-shop-view > .inv-wrap > :not(#shopFront) { display:none!important; }
#app.is-shop-view #caseFloat { display:none!important; }
#app.is-shop-view #shopFront { display:block; color:var(--inv-text,#eeeae3); background:#1a1d21; border:1px solid #3b3e43; border-radius:16px; box-shadow:0 24px 80px #0008; overflow:hidden; font-family:inherit; }
#shopFront * { box-sizing:border-box; }
#shopFront [hidden] { display:none!important; }
#shopFront button,#shopFront input,#shopFront select { font-family:inherit; }
#shopFront button { cursor:pointer; }
#shopFront button:disabled { cursor:default; }
#shopFront h1,#shopFront h2,#shopFront h3,#shopFront p { margin:0; }
#shopFront .sw-head { display:flex; align-items:center; gap:20px; padding:23px 28px; border-bottom:1px solid #34383e; cursor:grab; touch-action:none; }
#shopFront .sw-head:active { cursor:grabbing; }
#shopFront .sw-brand { font-size:26px; font-weight:750; letter-spacing:-2px; color:var(--inv-accent,#d9c5a0); }
#shopFront .sw-brand span { color:#61646a; font-weight:400; margin-left:4px; }
#shopFront .sw-heading { min-width:0; }
#shopFront .sw-eyebrow { display:block; font-size:10px; font-weight:650; letter-spacing:1.6px; color:#9ca3ab; }
#shopFront .sw-heading h1 { margin-top:5px; font-size:25px; line-height:1.15; font-weight:650; letter-spacing:-.6px; max-width:580px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#shopFront .sw-cash { display:flex; align-items:center; gap:13px; padding:10px 15px; margin-left:auto; border:1px solid #3c4148; border-radius:8px; background:#24282e; white-space:nowrap; }
#shopFront .sw-cash span { font-size:11px; color:#9fa8b3; }
#shopFront .sw-cash strong { color:var(--inv-accent,#d9c5a0); font-size:16px; font-weight:600; font-variant-numeric:tabular-nums; }
#shopFront .sw-close { flex-shrink:0; width:36px; height:36px; border:1px solid #41464d; border-radius:8px; color:#ccd1d7; background:#262a30; font-size:25px; line-height:1; }
#shopFront .sw-body { display:grid; grid-template-columns:minmax(0,1fr) 296px; }
#shopFront .sw-main { min-width:0; padding:26px 24px 20px 28px; }
#shopFront .sw-intro { display:flex; align-items:center; justify-content:space-between; margin-bottom:21px; }
#shopFront .sw-intro h2 { margin-top:7px; font-size:23px; letter-spacing:-.5px; font-weight:600; }
#shopFront .sw-catalog-count { font-size:11px; color:#a1a9b1; padding:6px 9px; border:1px solid #383e44; border-radius:6px; }
#shopFront .sw-toolbar { display:flex; align-items:center; gap:10px; }
#shopFront .sw-search { display:flex; align-items:center; gap:10px; min-width:0; flex:1; height:43px; padding:0 13px; background:#24292f; border:1px solid #40464e; border-radius:8px; }
#shopFront .sw-search svg { width:17px; height:17px; fill:none; stroke:#9da7b4; stroke-width:1.7; flex-shrink:0; }
#shopFront .sw-search input { width:100%; padding:0; min-width:0; height:100%; border:0; background:transparent; color:#e3e6eb; outline:0; font-size:13px; }
#shopFront .sw-search:focus-within { border-color:var(--inv-accent,#d9c5a0); }
#shopFront .sw-search input::placeholder { color:#99a3af; }
#shopFront .sw-sort { height:43px; width:190px; padding:0 10px; border:1px solid #40464e; border-radius:8px; background:#24292f; color:#c1c9d3; font-size:11px; color-scheme:dark; }
#shopFront .sw-categories { display:flex; gap:6px; overflow-x:auto; scrollbar-width:thin; padding:14px 0 17px; }
#shopFront .sw-categories button { flex-shrink:0; padding:8px 12px; font-size:11px; color:#aab3bd; background:transparent; border:1px solid transparent; border-radius:6px; }
#shopFront .sw-categories button:hover { background:#292e34; color:#e5e8ed; }
#shopFront .sw-categories button[aria-pressed="true"] { color:var(--inv-accent,#d9c5a0); background:#35342f; border-color:#605b4e; }
#shopFront .sw-catalog { height:512px; overflow:auto; scrollbar-width:thin; scrollbar-color:#515861 transparent; padding:1px 3px 2px 1px; }
#shopFront .sw-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
#shopFront .sw-product { position:relative; display:flex; flex-direction:column; min-width:0; min-height:231px; padding:13px 14px 14px; color:inherit; text-align:left; border:1px solid #3b4149; border-radius:10px; background:linear-gradient(140deg,#2a2f36,#23272d); transition:background .12s,border-color .12s; }
#shopFront .sw-product:hover { border-color:#83857e; background:linear-gradient(140deg,#31373e,#282d33); }
#shopFront .sw-product.is-selected { border-color:var(--inv-accent,#d9c5a0); background:linear-gradient(140deg,#38372f,#292d30); }
#shopFront .sw-product-top { display:flex; align-items:center; justify-content:space-between; gap:5px; min-height:15px; font-size:10px; }
#shopFront .sw-product-status { color:#a6c3b4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#shopFront .sw-product-status:before { content:''; display:inline-block; width:4px; height:4px; border-radius:50%; background:currentColor; margin-right:5px; vertical-align:middle; }
#shopFront .sw-product-owned { font-size:9px; color:#a5adb5; white-space:nowrap; }
#shopFront .sw-art { display:block; height:112px; width:100%; background-size:contain; background-repeat:no-repeat; background-position:center; margin:5px 0 9px; pointer-events:none; }
#shopFront .sw-product-category { font-size:9px; color:#9ba4af; margin-bottom:5px; }
#shopFront .sw-product-name { display:block; font-size:16px; line-height:1.3; font-weight:600; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
#shopFront .sw-product-bottom { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:12px; }
#shopFront .sw-product-price { color:var(--inv-accent,#d9c5a0); font-size:18px; font-weight:600; letter-spacing:-.3px; }
#shopFront .sw-price-note { margin-left:7px; color:#929da8; font-size:9px; white-space:nowrap; }
#shopFront .sw-select-icon { width:27px; height:27px; display:grid; place-items:center; border:1px solid #4b5158; border-radius:6px; color:#b9c1c7; font-size:19px; }
#shopFront .sw-product.is-selected .sw-select-icon { border-color:#7a725d; color:var(--inv-accent,#d9c5a0); }
#shopFront .sw-product.is-unavailable .sw-art { opacity:.45; filter:grayscale(.6); }
#shopFront .sw-product.is-unavailable .sw-product-status { color:#d5af8c; }
#shopFront .sw-catalog-foot { display:flex; justify-content:space-between; gap:10px; font-size:10px; color:#98a1ab; padding-top:18px; }
#shopFront .sw-empty { padding:65px 20px; text-align:center; color:#a3adb8; }
#shopFront .sw-empty > span { display:block; color:var(--inv-accent,#d9c5a0); font-size:45px; margin-bottom:12px; }
#shopFront .sw-empty h3 { color:#e0e4e9; font-size:20px; font-weight:500; margin-bottom:9px; }
#shopFront .sw-empty p { font-size:12px; line-height:1.6; }
#shopFront .sw-empty button { margin-top:20px; background:#343633; color:var(--inv-accent,#d9c5a0); border:1px solid #655f50; border-radius:7px; padding:10px 15px; }
#shopFront .sw-sidebar { min-width:0; padding:26px 24px 20px; border-left:1px solid #34383e; background:#161a1e; display:flex; flex-direction:column; }
#shopFront .sw-detail-head { display:flex; justify-content:space-between; align-items:center; gap:5px; }
#shopFront .sw-owned { font-size:10px; color:#a4adb8; }
#shopFront .sw-detail-art { height:128px; background-position:center; background-size:contain; background-repeat:no-repeat; margin:16px 0 14px; }
#shopFront .sw-detail-category { font-size:10px; color:var(--inv-accent,#d9c5a0); }
#shopFront .sw-detail-name { font-size:23px; font-weight:600; line-height:1.2; letter-spacing:-.4px; margin:6px 0 9px; overflow-wrap:anywhere; }
#shopFront .sw-description { font-size:12px; color:#a3acb6; line-height:1.65; margin-bottom:17px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
#shopFront .sw-unit-row { display:flex; justify-content:space-between; gap:10px; font-size:11px; padding:5px 0; color:#9fa8b3; }
#shopFront .sw-unit-row strong { font-weight:500; color:#d6dce3; text-align:right; }
#shopFront .sw-unit-row .is-locked { color:#d5af8c; }
#shopFront .sw-quantity-section { margin-top:17px; padding-top:17px; border-top:1px solid #363c43; }
#shopFront .sw-quantity-head { display:flex; align-items:center; justify-content:space-between; font-size:12px; }
#shopFront .sw-quantity-note { font-size:10px; color:#9aa5b1; }
#shopFront .sw-quantity { display:flex; height:39px; margin-top:11px; gap:6px; }
#shopFront .sw-quantity button { flex:0 0 39px; border:1px solid #434b54; border-radius:7px; color:#dce2e8; background:#2b3138; font-size:19px; }
#shopFront .sw-quantity input { width:0; flex:1; text-align:center; border:1px solid #434b54; border-radius:7px; background:#22282e; color:#e5e9ee; font-size:16px; font-variant-numeric:tabular-nums; }
#shopFront .sw-quantity input[aria-invalid="true"] { border-color:#d79985; }
#shopFront .sw-quantity input:disabled { opacity:.7; }
#shopFront .sw-quantity button:disabled { color:#6e7780; background:#22272d; border-color:#333a42; }
#shopFront #shopQuantityHint { margin:8px 0 0; color:#9da8b4; font-size:10px; line-height:1.5; min-height:15px; }
#shopFront .sw-order { padding-top:20px; }
#shopFront .sw-total-row { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; }
#shopFront .sw-total { font-size:26px; letter-spacing:-.7px; color:var(--inv-accent,#d9c5a0); font-weight:600; }
#shopFront .sw-delivery { margin:7px 0 14px; font-size:10px; color:#9aa6b2; }
#shopFront .sw-buy { display:flex; align-items:center; justify-content:space-between; width:100%; height:43px; padding:0 14px; border:0; border-radius:7px; color:#262825; background:var(--inv-accent,#d9c5a0); font-size:13px; font-weight:650; }
#shopFront .sw-buy > span:last-child { font-size:22px; font-weight:400; }
#shopFront .sw-buy:hover:not(:disabled) { filter:brightness(1.08); }
#shopFront .sw-buy:disabled { color:#939faa; background:#303840; }
#shopFront .sw-payment { display:block; text-align:center; font-size:10px; color:#94a0ac; margin-top:9px; }
#shopFront .sw-feedback { font-size:11px; line-height:1.6; color:#a9cbb6; margin-top:14px; }
#shopFront .sw-feedback:empty { display:none; }
#shopFront .sw-feedback.is-error { color:#e2ae98; }
#shopFront .sw-capacity { margin-top:auto; padding-top:20px; }
#shopFront .sw-capacity > div:first-child { display:flex; justify-content:space-between; gap:8px; font-size:10px; color:#9da9b5; margin-bottom:8px; }
#shopFront .sw-capacity strong { font-weight:400; }
#shopFront .sw-capacity-meter { height:3px; background:#343c45; border-radius:3px; overflow:hidden; }
#shopFront .sw-capacity-meter i { display:block; height:100%; background:#96b1a2; }
#shopFront .sw-detail-empty h2 { font-size:23px; font-weight:500; margin:27px 0 12px; }
#shopFront .sw-detail-empty p { color:#9da8b4; font-size:12px; line-height:1.6; }
#shopFront .sw-footer { display:flex; align-items:center; justify-content:space-between; border-top:1px solid #353b42; padding:13px 28px; color:#97a1ac; font-size:10px; }
#shopFront .sw-footer > span:first-child { font-size:9px; letter-spacing:1.4px; }
#shopFront .sw-footer i { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--inv-accent,#d9c5a0); margin-right:7px; }
#shopFront kbd { display:inline-block; border:1px solid #444d58; border-radius:4px; padding:3px 5px; margin:0 5px 0 15px; font:inherit; }
#shopFront button:focus-visible,#shopFront input:focus-visible,#shopFront select:focus-visible,#shopFront .sw-head:focus-visible,#shopFront .sw-catalog:focus-visible { outline:2px solid var(--inv-accent,#d9c5a0); outline-offset:-3px; }
@media (prefers-reduced-motion:reduce) { #shopFront * { transition:none!important; } }
