.shop-mode-bar{min-height:52px;display:flex;align-items:stretch;gap:0;padding:0 16px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);transition:background .18s ease}.shop-mode-bar.is-active{background:rgba(var(--accent-rgb),.055)}.shop-mode-switch,.shop-character-btn,.shop-cart-btn{border:0;background:transparent;color:var(--text-secondary);font-family:var(--font-ui);cursor:pointer}.shop-mode-switch{min-width:202px;display:grid;grid-template-columns:22px minmax(0,1fr) 34px;align-items:center;gap:10px;padding:7px 14px 7px 0;text-align:left}.shop-mode-icon{color:var(--text-muted);transition:color .18s ease,transform .18s ease}.shop-mode-copy,.shop-character-copy{min-width:0;display:flex;flex-direction:column;gap:1px}.shop-mode-copy strong,.shop-character-copy strong{overflow:hidden;color:var(--text-primary);font-size:.8rem;font-weight:750;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.shop-mode-copy>span,.shop-character-copy>span{overflow:hidden;color:var(--text-muted);font-size:.68rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.shop-mode-track{width:32px;height:18px;padding:2px;border:1px solid var(--border-default);border-radius:9px;background:var(--bg-inset);transition:background .18s ease,border-color .18s ease}.shop-mode-track>span{display:block;width:12px;height:12px;border-radius:50%;background:var(--text-muted);transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s ease}.shop-mode-switch.is-active .shop-mode-icon{color:var(--accent);transform:translateY(-1px)}.shop-mode-switch.is-active .shop-mode-track{border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.16)}.shop-mode-switch.is-active .shop-mode-track>span{transform:translate(14px);background:var(--accent)}.shop-character-btn{min-width:0;max-width:340px;display:flex;align-items:center;gap:16px;padding:7px 16px;border-left:1px solid var(--border-subtle);text-align:left;animation:shop-context-in .18s ease both}.shop-character-btn>#shop-character-change{flex:0 0 auto;color:var(--accent);font-size:.7rem;font-weight:750}.shop-cart-btn{position:relative;min-height:36px;display:inline-flex;align-items:center;gap:7px;margin:7px 0 7px auto;padding:0 10px;border-left:1px solid var(--border-subtle);color:var(--text-primary);font-size:.76rem;font-weight:750}.shop-mode-switch:hover,.shop-character-btn:hover,.shop-cart-btn:hover{color:var(--accent)}.shop-character-btn[hidden],.shop-cart-btn[hidden]{display:none}.shop-cart-badge{min-width:17px;height:17px;padding:0 4px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-contrast);font-family:var(--font-ui);font-size:.63rem;font-weight:800;line-height:1;pointer-events:none}.shop-cart-badge[hidden]{display:none}.shop-cart-badge.is-bumping{animation:shop-badge-pop .22s cubic-bezier(.2,.8,.2,1)}.shop-cart-btn.is-bumping svg{animation:shop-cart-pop .22s cubic-bezier(.2,.8,.2,1)}@keyframes shop-badge-pop{0%{transform:scale(1)}45%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes shop-cart-pop{0%,to{transform:translateY(0)}45%{transform:translateY(-2px)}}@keyframes shop-context-in{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:translate(0)}}html:not(.shop-mode) .shop-cell,html:not(.shop-mode) .shop-add{display:none}.shop-cell{width:1%;white-space:nowrap;text-align:right}.shop-add{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-ui);font-size:.74rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .16s cubic-bezier(.2,.8,.2,1),color .16s cubic-bezier(.2,.8,.2,1),border-color .16s cubic-bezier(.2,.8,.2,1)}.shop-add:hover{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.4);color:var(--accent)}.shop-add:active{transform:scale(.95)}.shop-add svg{flex-shrink:0}.shop-add.is-swapping{animation:shop-control-swap .18s cubic-bezier(.2,.8,.2,1)}@keyframes shop-control-swap{0%{opacity:.35;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.shop-add.is-in-cart{padding:0 2px;gap:0;border-color:rgba(var(--accent-rgb),.4);background:rgba(var(--accent-rgb),.12);color:var(--accent)}.shop-add-step{width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:inherit;font-family:inherit;font-size:.95rem;font-weight:800;line-height:1;cursor:pointer;transition:background .14s}.shop-add-step:hover{background:rgba(var(--accent-rgb),.18)}.shop-add-count{min-width:20px;padding:0 2px;text-align:center;font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:800}@media(min-width:901px){html.shop-mode .magic-row{grid-template-columns:3px minmax(0,1fr) auto auto auto auto}}html:not(.shop-mode) .rail-shop-row{display:none}.rail-shop-row{margin:10px 0 2px}.rail-shop-row .shop-add{height:32px;padding:0 13px;font-size:.78rem}.shop-modal{z-index:100002}.shop-panel{max-width:560px}.shop-panel--cart{max-width:860px;background:var(--bg-surface)}.shop-head{grid-template-columns:118px minmax(0,1fr);gap:18px}.shop-brand{width:112px;height:39px;justify-self:start}.shop-panel--cart .shop-head{padding:20px 24px 16px}.shop-panel--cart .inv-add-title{font-family:var(--font-display);font-size:1.35rem;font-weight:750;letter-spacing:-.025em}.shop-panel--cart .shop-body{padding:0;max-height:min(62vh,600px)}.shop-cart-layout{display:grid;grid-template-columns:minmax(0,1fr) 248px;min-height:330px}.shop-cart-main{min-width:0;padding:20px 24px 24px}.shop-checkout-rail{display:flex;min-width:0;flex-direction:column;padding:20px 20px 24px;border-left:1px solid var(--border-default);background:var(--bg-inset)}.shop-checkout-purse{display:flex;flex-direction:column;gap:5px;padding-bottom:18px;border-bottom:1px solid var(--border-default)}.shop-checkout-label{color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.shop-checkout-purse strong{color:var(--gold);font-family:var(--font-display);font-size:1.18rem;font-variant-numeric:tabular-nums;line-height:1.15}.shop-checkout-rail .shop-totals{margin-top:18px;padding-top:0;border-top:0}.shop-checkout-rail .shop-total-row{padding:6px 0}.shop-checkout-rail .shop-total-row:first-child{margin-bottom:12px;padding-bottom:14px;border-bottom:1px solid var(--border-default)}.shop-checkout-rail .shop-total-row strong{font-family:var(--font-display);font-size:1.02rem}.shop-panel--cart>.inv-add-actions{padding:16px 24px 18px;border-top:1px solid var(--border-default)}.shop-panel.is-opening{animation:shop-modal-open .44s var(--ease-spring)}.shop-panel.is-view-changing{animation:shop-view-in .3s var(--ease-out)}.shop-panel:is(.is-opening,.is-view-changing)>.shop-head,.shop-panel:is(.is-opening,.is-view-changing)>.shop-body,.shop-panel:is(.is-opening,.is-view-changing)>.inv-add-section,.shop-panel:is(.is-opening,.is-view-changing)>.inv-add-actions{animation:shop-content-in .36s var(--ease-out) both}.shop-panel:is(.is-opening,.is-view-changing)>.shop-body,.shop-panel:is(.is-opening,.is-view-changing)>.inv-add-section{animation-delay:.05s}.shop-panel:is(.is-opening,.is-view-changing)>.inv-add-actions{animation-delay:.1s}.shop-modal .modal-backdrop.is-opening{animation:shop-backdrop-in .32s var(--ease-out)}.shop-body{padding:18px 24px 0;max-height:min(58vh,560px);overflow-y:auto}.shop-notice{margin:0 0 12px;padding:9px 12px;border-radius:9px;border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.1);color:var(--text-secondary);font-size:.8rem;line-height:1.4}.shop-purse{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:14px;padding:2px 0 12px;border-bottom:1px solid var(--border-subtle)}.shop-purse-text{min-width:0;display:flex;flex-direction:column;gap:2px;color:var(--text-primary)}.shop-purse-coins{display:flex;align-items:baseline;gap:6px;font-size:.8rem}.shop-purse-coins strong{color:var(--gold);font-variant-numeric:tabular-nums}.shop-purse-label{color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.shop-linkbtn{padding:0;border:0;background:none;color:var(--accent);font-family:var(--font-ui);font-size:.75rem;font-weight:800;cursor:pointer;text-align:right}.shop-linkbtn:hover{text-decoration:underline}.shop-lines{display:flex;flex-direction:column;gap:0}.shop-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(96px,auto) 28px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-subtle)}.shop-line.is-short{box-shadow:inset 2px 0 rgba(var(--red-rgb),.65);padding-left:10px}.shop-line.is-short .shop-line-total{color:rgb(var(--red-rgb))}.shop-line-main{min-width:0;display:flex;flex-direction:column;gap:2px}.shop-line-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:.88rem;font-weight:700}.shop-line-src{color:var(--text-muted);font-size:.66rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.shop-line-qty{grid-template-columns:26px 32px 26px;gap:0;padding:2px;border-radius:9px;background:var(--bg-inset)}.shop-line-qty .inv-add-qty-btn,.shop-line-qty .inv-add-qty-input{height:26px;border:0;border-radius:7px;background:transparent;font-size:.82rem}.shop-line-qty .inv-add-qty-btn:hover{background:var(--bg-hover)}.shop-line-qty .inv-add-qty-input{padding:0;font-weight:800}.shop-line-price{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right}.shop-line-total{color:var(--gold);font-size:.86rem;font-variant-numeric:tabular-nums}.shop-line-each{color:var(--text-muted);font-size:.68rem;font-weight:700}.shop-line-del{width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font-size:1.05rem;line-height:1;cursor:pointer;transition:background .14s,color .14s}.shop-line-del:hover{background:rgba(var(--red-rgb),.14);color:rgb(var(--red-rgb))}.shop-price-field{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.shop-price-hint{color:var(--text-muted);font-size:.64rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.shop-price-group{display:flex;align-items:center;gap:5px}.shop-price-input{width:68px;height:30px;padding:0 7px;border-radius:8px;border:1px dashed var(--border-default);background:var(--bg-inset);color:var(--text-primary);font-family:var(--font-ui);font-size:.82rem;font-weight:700;text-align:right}.shop-price-input:focus{border-style:solid;border-color:rgba(var(--accent-rgb),.5);outline:none}.shop-price-unit{color:var(--text-muted);font-size:.72rem;font-weight:800}.shop-markup{margin-top:16px;padding:12px 0 4px;border-top:1px solid var(--border-subtle)}.shop-markup-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.shop-markup-value{padding:2px 9px;border-radius:7px;border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.12);color:var(--accent);font-family:var(--font-ui);font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .16s cubic-bezier(.16,1,.3,1),background-color .16s ease,border-color .16s ease}.shop-markup-slider{--shop-markup-progress: .3333;position:relative;width:100%;height:30px}.shop-markup-slider:before,.shop-markup-fill{position:absolute;top:13px;right:0;left:0;height:4px;border-radius:999px;pointer-events:none}.shop-markup-slider:before{content:"";background:var(--border-default)}.shop-markup-fill{background:var(--accent);transform:scaleX(var(--shop-markup-progress));transform-origin:left center;transition:transform .11s cubic-bezier(.16,1,.3,1)}.shop-markup-range{position:absolute;inset:0;width:100%;height:30px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:grab;touch-action:pan-y}.shop-markup-range:active{cursor:grabbing}.shop-markup-range::-webkit-slider-runnable-track{height:4px;background:transparent}.shop-markup-range::-moz-range-track,.shop-markup-range::-moz-range-progress{height:4px;background:transparent}.shop-markup-range::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px;appearance:none;-webkit-appearance:none;border:2px solid var(--text-primary);border-radius:50%;background:var(--bg-surface);box-shadow:0 1px 4px rgba(var(--accent-rgb),.18);transition:transform .16s cubic-bezier(.16,1,.3,1),border-color .16s ease,background-color .16s ease}.shop-markup-range::-moz-range-thumb{width:18px;height:18px;border:2px solid var(--text-primary);border-radius:50%;background:var(--bg-surface);box-shadow:0 1px 4px rgba(var(--accent-rgb),.18);transition:transform .16s cubic-bezier(.16,1,.3,1),border-color .16s ease,background-color .16s ease}.shop-markup-range:focus{outline:none}.shop-markup-range:focus-visible::-webkit-slider-thumb{outline:3px solid rgba(var(--accent-rgb),.28);outline-offset:3px;border-color:var(--accent)}.shop-markup-range:focus-visible::-moz-range-thumb{outline:3px solid rgba(var(--accent-rgb),.28);outline-offset:3px;border-color:var(--accent)}.shop-markup.is-dragging .shop-markup-fill{transition:none}.shop-markup.is-dragging .shop-markup-value{transform:translateY(-1px);border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.18)}.shop-markup.is-dragging .shop-markup-range::-webkit-slider-thumb{transform:scale(1.12);border-color:var(--accent)}.shop-markup.is-dragging .shop-markup-range::-moz-range-thumb{transform:scale(1.12);border-color:var(--accent)}.shop-totals{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-default)}.shop-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:4px 0;color:var(--text-secondary);font-size:.85rem}.shop-total-row strong{color:var(--text-primary);font-size:.95rem;font-variant-numeric:tabular-nums}.shop-total-row.is-short,.shop-total-row.is-short strong{color:rgb(var(--red-rgb))}.shop-pending{margin:4px 0 0;color:var(--text-muted);font-size:.75rem;font-weight:700}.shop-danger-hint{margin:0;padding:10px 24px 0;color:rgb(var(--red-rgb));font-size:.78rem;line-height:1.45}.shop-panel .inv-add-primary[disabled]{opacity:.45;cursor:not-allowed}.inv-add-primary.shop-danger{border-color:rgba(var(--red-rgb),.5);background:rgb(var(--red-rgb));color:#fff}.shop-history{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-default)}.shop-history-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border:0;background:none;color:var(--text-muted);font-family:var(--font-ui);font-size:.74rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-align:left;cursor:pointer}.shop-history-toggle:hover,.shop-history-toggle.is-open{color:var(--text-secondary)}.shop-history-chevron{flex-shrink:0;transition:transform .28s cubic-bezier(.4,0,.2,1)}.shop-history-toggle.is-open .shop-history-chevron{transform:rotate(180deg)}.shop-history-collapsible{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1)}.shop-history.is-open .shop-history-collapsible{grid-template-rows:1fr}.shop-history-collapsible-inner{overflow:hidden}.shop-history-empty{margin:4px 0 0;color:var(--text-muted);font-size:.8rem}.shop-history-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.shop-history-row{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.shop-history-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.shop-history-name{color:var(--text-primary);font-size:.82rem;font-weight:750}.shop-history-total{color:var(--gold);font-size:.8rem;font-weight:800;font-variant-numeric:tabular-nums}.shop-history-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:.72rem}.shop-done-list{display:flex;flex-direction:column;gap:4px;margin:14px 0}.shop-done-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.83rem}.shop-done-row strong{color:var(--text-primary);font-variant-numeric:tabular-nums}.shop-action-total{display:none}@media(max-width:768px){.shop-mode-bar{min-height:58px;padding:0 12px}.shop-mode-switch{min-width:0;flex:1 1 auto;grid-template-columns:20px minmax(74px,1fr) 34px;padding-right:10px}.shop-character-btn{flex:1 1 auto;padding:7px 10px}.shop-character-btn>#shop-character-change{display:none}.shop-cart-btn{flex:0 0 auto;padding-left:10px}.shop-cart-btn>#shop-cart-label{display:none}.shop-modal{align-items:flex-end;padding:0}.shop-panel{max-width:none;width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-radius:18px 18px 0 0}.shop-body{flex:0 1 auto;min-height:0;padding:16px 16px 0;max-height:56vh}.shop-panel--cart .shop-body{padding:0}.shop-panel--cart .shop-head{grid-template-columns:94px minmax(0,1fr);gap:12px;padding:18px 16px 14px}.shop-panel--cart .shop-brand{width:88px;height:31px}.shop-cart-layout{grid-template-columns:1fr;min-height:0}.shop-cart-main{padding:16px 16px 20px}.shop-checkout-rail{padding:16px;border-top:1px solid var(--border-default);border-left:0}.shop-panel--cart>.inv-add-actions{padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px))}.shop-purse{grid-template-columns:34px minmax(0,1fr);row-gap:8px}.shop-purse-coins{flex-wrap:wrap}.shop-linkbtn{grid-column:2;text-align:left}.shop-line{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name del" "qty price";row-gap:8px}.shop-line-main{grid-area:name}.shop-line-del{grid-area:del;justify-self:end}.shop-line-qty{grid-area:qty}.shop-line-price{grid-area:price}.shop-panel>.inv-add-actions{position:sticky;bottom:0;z-index:2;flex-wrap:wrap;background:var(--bg-surface);border-top:1px solid var(--border-subtle);padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px))}.shop-action-total{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:8px;color:var(--text-muted);font-size:.72rem;font-weight:750}.shop-action-total strong{color:var(--text-primary);font-size:.92rem;font-variant-numeric:tabular-nums}.shop-danger-hint{padding:10px 16px 0}}@keyframes shop-modal-open{0%{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shop-view-in{0%{opacity:0;transform:translate(16px) scale(.99)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes shop-content-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shop-backdrop-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.shop-add,.shop-add-step,.shop-line-del,.shop-markup-value,.shop-markup-fill,.shop-mode-bar,.shop-mode-icon,.shop-mode-track,.shop-mode-track>span,.shop-history-chevron,.shop-history-collapsible{transition:none}.shop-markup-range::-webkit-slider-thumb{transition:none}.shop-markup-range::-moz-range-thumb{transition:none}.shop-add:active{transform:none}.shop-cart-badge.is-bumping,.shop-cart-btn.is-bumping svg,.shop-add.is-swapping,.shop-character-btn,.shop-panel.is-opening,.shop-panel.is-view-changing,.shop-panel.is-opening>.shop-head,.shop-panel.is-opening>.shop-body,.shop-panel.is-opening>.inv-add-section,.shop-panel.is-opening>.inv-add-actions,.shop-panel.is-view-changing>.shop-head,.shop-panel.is-view-changing>.shop-body,.shop-panel.is-view-changing>.inv-add-section,.shop-panel.is-view-changing>.inv-add-actions,.modal-backdrop.is-opening{animation:none}}
