/* Skin contract: override these tokens only; screen structure and behavior stay independent. */
:root{--bg:#eceeea;--paper:#fff;--ink:#27312f;--muted:#75807a;--line:#d9dfd9;--accent:#3c6559;--soft:#eff4f0;--radius:12px;--font:system-ui,sans-serif}
[data-skin=night]{--bg:#171f25;--paper:#222e35;--ink:#e6eceb;--muted:#9aadae;--line:#405058;--accent:#99c8bc;--soft:#2b3b40}
[data-skin=paper]{--bg:#e9dfcb;--paper:#faf4e7;--ink:#493c2c;--muted:#8c7961;--line:#d7c7ac;--accent:#796044;--soft:#eee4d1;--radius:3px;--font:serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px}button,select,input{font:inherit;color:inherit}button,select{cursor:pointer;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:10px}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.active{background:var(--soft);border-color:var(--accent)}.primary{background:var(--accent);color:var(--paper);border-color:var(--accent);font-weight:700}.shell{height:100dvh;max-width:500px;margin:auto;background:var(--paper);display:grid;grid-template-rows:26px 57px 1fr 57px;box-shadow:0 0 0 1px var(--line);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.build-status{background:var(--soft);color:var(--muted);display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:10px}.build-status button{padding:2px 7px;font-size:10px}header{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}header strong{display:block;font-size:15px}small,.muted{color:var(--muted);font-size:11px}main{min-height:0;display:flex;flex-direction:column;padding:14px 16px 10px;gap:10px}h1{font-size:21px;margin:0}h2{font-size:14px;margin:0 0 8px}p{margin:0;line-height:1.65}nav{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);gap:1px;padding:5px}nav button{padding:4px 0;font-size:10px;border:0;background:transparent}nav button span{display:block;font-size:17px;margin-bottom:2px}.heading{display:flex;align-items:center;justify-content:space-between}.tag{font-size:10px;color:var(--accent);background:var(--soft);padding:4px 8px;border-radius:5px}.card{border:1px solid var(--line);border-radius:var(--radius);padding:13px;background:var(--paper)}.row{display:flex;justify-content:space-between;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:9px}.actions{display:flex;gap:8px}.actions>*{flex:1}.bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px}.ledger .row{padding:9px 0;border-bottom:1px solid var(--line)}.ledger .row:last-child{border-bottom:0;font-weight:700}.stat{font-size:27px;font-weight:650;letter-spacing:-1px}.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.steps span{font-size:9px;text-align:center;border-top:3px solid var(--line);padding-top:6px;color:var(--muted)}.steps .current{color:var(--accent);border-color:var(--accent);font-weight:700}.hero-placeholder{flex:1;min-height:40px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);background:var(--soft)}.merchant{display:grid;grid-template-columns:1fr auto;gap:6px}.counter{display:flex;align-items:center;gap:14px}.counter button{width:34px;padding:6px}.list{display:grid;gap:7px}.item{width:100%;display:flex;align-items:center;justify-content:space-between;padding:11px;text-align:left}.item b{font-size:12px}.grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;max-width:280px;width:100%;margin:0 auto}.grid button{aspect-ratio:1;padding:0;border-radius:3px;font-size:10px;background:var(--soft)}.grid button.filled{background:var(--line);border-color:var(--muted)}.grid button.selected{background:var(--accent);color:var(--paper)}.shelves{grid-template-columns:repeat(5,1fr);max-width:220px}.tabs{display:flex;gap:5px}.tabs button{flex:1;padding:8px 3px;font-size:11px}.mini{padding:7px 10px;font-size:11px}.map-node{padding:14px;border:1px solid var(--line);border-radius:var(--radius);text-align:left}.map-node strong{display:block}.divider{text-align:center;font-size:12px;color:var(--muted)}progress{width:100%;height:7px;accent-color:var(--accent)}.page{display:flex;justify-content:center;align-items:center;gap:16px}.page button{padding:5px 15px}.flow{display:none}dialog{max-width:350px;width:90%;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px}dialog::backdrop{background:#0008}dialog button{margin-top:14px;width:100%}@media(min-width:1000px){.shell{margin-left:calc(50% - 110px)}.flow{display:block;position:absolute;left:calc(50% - 420px);top:70px;width:245px}.flow h2{font-size:21px}.flow p{margin:14px 0}.flow button{width:100%;margin-top:5px;text-align:left;padding:9px 12px}.flow small{display:block;margin-top:14px}}@media(max-height:700px){.shell{grid-template-rows:22px 48px 1fr 48px}main{padding:9px 12px;gap:7px}.card{padding:9px}.ledger .row{padding:5px 0}button{padding:8px}h1{font-size:18px}.grid{max-width:216px}.shelves{max-width:175px}.item{padding:7px}.map-node{padding:9px}.stat{font-size:23px}}@media(max-height:580px){body{font-size:11px}main{gap:5px}.card{padding:7px}h2{margin-bottom:4px}.grid{max-width:176px}.shelves{max-width:145px}.item{padding:5px}small,.muted{font-size:10px}}

.block{display:block;margin-top:4px}.catalog-filters{display:flex;gap:6px}.catalog-filters select{width:50%;min-width:0;padding:8px}.actions input{width:0;min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.shape{display:grid;gap:2px;flex-shrink:0;justify-content:center}.shape i{display:block;width:10px;height:10px;background:var(--accent);opacity:.65}.shape-empty{font-size:10px;color:var(--muted)}.item-mini .shape{transform:scale(.6);transform-origin:center}.item-mini{display:flex;width:35px;height:32px;align-items:center;justify-content:center}.catalog-list{display:grid;gap:6px}.catalog-list .item{min-height:62px}.real-board{max-width:min(240px,36dvh)}.real-board button{min-width:0;min-height:0}.catalog-list .shape{transform:scale(.8);transform-origin:right center}
@media(max-height:600px){.catalog-list .item{min-height:43px;padding:5px 8px}.catalog-list .shape{max-height:46px;transform:scale(.55);transform-origin:center}.catalog-filters select{padding:5px}.real-board{max-width:175px}}

.intake{padding:10px}.intake h2{margin:0;font-size:12px}.intake>.row+.row{margin-top:7px}.intake .actions{flex-shrink:0}.intake .actions>*{white-space:nowrap}.intake b{font-size:12px}.intake~.real-board{max-width:min(220px,29dvh)}
@media(max-height:600px){.intake{padding:6px}.intake~.real-board{max-width:145px}.intake .mini{padding:5px}.intake b{font-size:11px}.intake h2{font-size:11px}}

.real-board,.incoming-draggable{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.real-board .filled,.incoming-draggable{cursor:grab}.dragging,.dragging *{cursor:grabbing!important}.real-board button.drop-preview{background:var(--accent);color:var(--paper);outline:2px solid var(--ink);outline-offset:-2px;opacity:.65}.drag-ghost{position:fixed;z-index:99;pointer-events:none;padding:7px 10px;border:1px solid var(--accent);border-radius:6px;background:var(--paper);color:var(--ink);font-size:12px;box-shadow:0 3px 15px #0002;max-width:180px}.drag-ghost.invalid{opacity:.45}.incoming-draggable{padding:5px 0}

.encyclopedia-detail .ledger .row{padding:5px 0}.encyclopedia-detail .row b{text-align:right;overflow-wrap:anywhere}

.party-slots{margin:8px 0}.party-slots button{min-width:0;padding:4px}.chapter-roster button{min-width:0;padding:4px}.party-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:var(--soft);color:var(--accent);font-weight:700}

.chapter-roster button{touch-action:none;user-select:none}.chapter-roster button:not(:disabled){cursor:grab}.party-slots button.party-drop-target{outline:2px solid var(--accent);background:var(--soft)}

@media(max-height:700px){main{gap:5px}.card{padding:7px}.party-slots button{padding:4px}.intake~.real-board{max-width:160px}.intake h2{white-space:nowrap}.intake>.row:first-child small{flex-shrink:0}}

.party-character{position:relative;touch-action:none;user-select:none;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;border-radius:8px}.party-character:hover,.party-character:focus-visible{background:var(--soft)}.character-art{width:100%;height:80px;object-fit:contain;pointer-events:none;flex-shrink:0}.character-name{font-size:12px;font-weight:700;line-height:1.3}.character-status{font-size:10px;line-height:1.2}.party-character .party-badge{position:absolute;top:3px;left:3px}.character-identity{display:flex;align-items:center;justify-content:center;gap:6px}.character-identity .character-art{width:56px;height:64px}.party-character[onpointerdown]{cursor:grab}.party-slots button:not(.party-character){border-style:dashed;background:var(--soft)}[data-party-roster].party-drop-target{outline:2px solid var(--accent);background:var(--soft)}
@media(max-height:700px){.party-slots{margin:4px 0}main:has(.funding-controls) .party-character .character-art{height:32px}.character-art{height:40px}.character-identity .character-art{width:44px;height:52px}}

.character-equipment{display:flex;flex-direction:column;gap:9px;min-height:0;height:100%}.gear-close{font-size:21px;line-height:1;padding:5px 9px}.character-switch{display:flex;align-items:center;justify-content:space-between;gap:6px}.character-switch>div{text-align:center;min-width:0}.character-switch h2{margin:0 0 2px}.character-switch button{flex-shrink:0}.character-stats{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;padding:7px 9px;background:var(--soft);border-radius:8px}.character-stats small{flex-basis:100%}.equipment-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.equipment-slot{text-align:left;min-width:0;padding:7px 8px}.equipment-slot>*{display:block}.equipment-slot b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:3px 0}.equipment-slot small{font-size:10px}.equipment-controls label{display:flex;align-items:center;font-size:11px}.equipment-controls .mini{padding:5px 9px}.equipment-controls>small{display:block;margin-top:3px}.equipment-inventory h2{font-size:12px;margin:0 0 5px}.gear-candidates{display:grid;gap:5px}.character-equipment .item{padding:7px 9px}.character-equipment .item small.block{margin-top:2px}.character-equipment .page{margin-top:auto}.equipment-inventory{min-height:0}
@media(max-height:700px){.character-equipment{gap:6px}.character-stats{padding:4px 8px;gap:2px 15px}.equipment-slot{padding:5px 6px}.equipment-slot b{margin:2px 0}.character-equipment .item{padding:5px 8px}.character-equipment .page button{padding:4px 15px}.character-switch .mini{padding:5px 8px}}

.chapter-roster .party-character:not([onpointerdown]){cursor:pointer}

/* Provided transparent equipment art; hit testing stays on the underlying cells. */
.item-art{display:inline-flex;width:52px;height:52px;flex-shrink:0;align-items:center;justify-content:center;pointer-events:none}
.item-art img{display:block;max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.item-mini .item-art{width:32px;height:32px}.catalog-list .item-art{width:42px;height:42px}
.real-board{position:relative;gap:0}.real-board button{border-radius:0}.warehouse-art{position:absolute;pointer-events:none;z-index:1;overflow:hidden}.warehouse-art img{position:absolute;left:50%;top:50%;object-fit:contain;pointer-events:none;-webkit-user-drag:none;user-select:none}.real-board button{position:relative}.real-board button.drop-preview{box-shadow:inset 0 0 0 2px var(--ink)}
@media(max-height:600px){.catalog-list .item-art{height:32px;width:36px}.item-art{height:40px;width:40px}}

.gear-item-art .item-art{width:28px;height:28px}

/* Growth is a separate character panel, sized for touch without scrolling. */
.character-view-actions{align-items:center;flex:none;gap:8px}.character-view-actions .mini,.character-view-actions .gear-close{min-height:44px;min-width:44px}.character-view-actions .gear-close{flex:none}
.growth-policies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.growth-policies button{text-align:left;min-height:72px;padding:10px 8px}.growth-policies b,.growth-policies small{display:block}.growth-policies small{font-size:10px;line-height:1.6;margin-top:5px}

[data-equipment-item],[data-equipment-slot]{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
[data-equipment-item]:not(:disabled),[data-equipment-slot][onpointerdown]{cursor:grab}
.equipment-slot.equipment-target{outline:2px solid var(--accent);outline-offset:-2px}.equipment-drop-target{outline:3px solid var(--accent);outline-offset:-3px;background:var(--soft)}
.equipment-inventory{border-radius:8px}.equipment-slot{min-height:60px}.equipment-controls>small{min-height:18px}

/* Primary purchasing and funding controls keep a finger-sized hit area. */
.touch-target{min-width:44px;min-height:44px}.counter button.touch-target{width:44px;min-height:44px;padding:8px}.funding-controls .touch-target{padding:8px 4px;white-space:nowrap}

/* Keep warehouse item actions at the bottom of the screen. */
.warehouse-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px}.warehouse-controls{display:flex;flex-direction:column;gap:10px}.warehouse-footer .bottom{margin-top:0}

/* Warehouse: show the board grid, with a separate outline around the selected item. */
.real-board{border:1px solid var(--line)}
.real-board button,.real-board button.filled,.real-board button.selected{border:0;border-radius:0;background:transparent;box-shadow:inset -1px -1px 0 var(--line)}
.real-board .warehouse-art.is-selected{outline:2px solid var(--accent);outline-offset:-2px}
.real-board button.drop-preview{background:color-mix(in srgb,var(--accent) 25%,transparent);box-shadow:inset 0 0 0 2px var(--ink)}

/* During warehouse dragging, preview the item itself and only its outer footprint. */
.real-board .warehouse-drag-preview{position:absolute;z-index:3;pointer-events:none;overflow:hidden;outline:2px solid var(--accent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 10%,transparent);opacity:.6}
.real-board .warehouse-drag-preview[hidden]{display:none}
.real-board .warehouse-drag-preview img{position:absolute;left:50%;top:50%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.real-board .warehouse-art.drag-source{opacity:.2}

/* Reserve the upper warehouse space for future artwork; align the board immediately above the controls. */
.warehouse-board-area{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.warehouse-board-area .real-board{flex-shrink:0}
.warehouse-board-area+.warehouse-footer{margin-top:0}

/* Fixed 8x8 warehouse display; cells outside the unlocked size are inactive. */
/* Unavailable cells have a strong, patterned fill; warehouse matches the item-info card width. */
.warehouse-board-area{width:100%}
.warehouse-board-area .real-board{align-self:stretch;flex:0 0 auto;width:100%;max-width:none;min-width:100%;height:auto;margin:0;aspect-ratio:1 / 1;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr))}.warehouse-board-area .real-board>button{width:100%;height:100%;aspect-ratio:auto}
.real-board button.warehouse-locked,.real-board button.warehouse-locked:disabled{background:repeating-linear-gradient(135deg,#aab2ae 0px,#aab2ae 7px,#c2c9c5 7px,#c2c9c5 14px);opacity:1;cursor:not-allowed;box-shadow:inset -1px -1px 0 #89938d}
.real-board button.warehouse-locked:focus-visible{outline:none}

/* Reserved warehouse page navigation; only page one exists for now. */
.warehouse-pagination{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;padding:5px 0;font-size:12px;color:var(--muted)}
.warehouse-pagination button{min-width:34px;min-height:28px;padding:2px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font-size:20px;line-height:1}
.warehouse-pagination button:disabled{opacity:.35;cursor:default}

/* Slide the navigation into view while keeping the game area unchanged. */
.shell{position:relative;grid-template-rows:26px 57px minmax(0,1fr)}
#nav{position:absolute;left:env(safe-area-inset-left);right:env(safe-area-inset-right);bottom:calc(env(safe-area-inset-bottom) - 65px);height:57px;z-index:20;display:grid;background:#e9ecef;box-shadow:none;transition:bottom .2s ease-in-out;pointer-events:none}
#nav.is-open{bottom:env(safe-area-inset-bottom);pointer-events:auto}
#nav::after{content:"";position:absolute;top:100%;left:0;right:0;height:calc(100px + env(safe-area-inset-bottom));background:#e9ecef;pointer-events:none}
#menuToggle{position:absolute;right:calc(env(safe-area-inset-right) + 10px);bottom:calc(env(safe-area-inset-bottom) - 8px);width:52px;height:44px;padding:19px 4px 3px;z-index:21;clip-path:polygon(50% 0,100% 100%,0 100%);border:0;border-radius:0;background:#e9ecef;font-size:10px;line-height:1;font-weight:600;transition:bottom .2s ease-in-out}
#nav.is-open+#menuToggle{bottom:calc(57px + env(safe-area-inset-bottom))}
@media(max-height:700px){.shell{grid-template-rows:22px 48px minmax(0,1fr)}#nav{height:48px;bottom:calc(env(safe-area-inset-bottom) - 56px)}#nav.is-open{bottom:env(safe-area-inset-bottom)}#nav.is-open+#menuToggle{bottom:calc(48px + env(safe-area-inset-bottom))}}

/* Shared item panel for incoming stock and warehouse selection. */
.warehouse-item-panel{display:flex;flex-direction:column;gap:6px;padding:10px}
.warehouse-item-panel h2{margin:0;font-size:12px}
.warehouse-item-panel .row{min-width:0}
.warehouse-item-panel .row>div{min-width:0}
.warehouse-item-panel .actions{display:flex;flex-wrap:wrap;gap:6px}
.warehouse-item-panel .incoming-draggable{touch-action:none;cursor:grab}
@media(max-height:700px){.warehouse-item-panel{padding:6px;gap:4px}}

/* 店舗レイアウト：固定8×6グリッド、2×2の棚。 */
.shop-layout-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));width:100%;aspect-ratio:1/1;border:1px solid var(--line);margin:6px 0}
.shop-layout-grid .shop-cell{min-width:0;min-height:0;padding:0;border:0;border-radius:0;box-shadow:inset -1px -1px 0 var(--line);background:var(--paper);font-size:11px;color:var(--ink)}
.shop-layout-grid .shop-cell.occupied{background:var(--soft);box-shadow:inset -1px -1px 0 var(--line)}
.shop-layout-grid .shop-cell.chosen{background:color-mix(in srgb,var(--accent) 28%,var(--paper));box-shadow:inset -1px -1px 0 var(--accent)}
.shop-layout-grid .shop-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Shelf drag: prevent touch scrolling on the grid while holding a shelf. */
.shop-layout-grid .shop-cell{touch-action:none;user-select:none;-webkit-user-select:none}

/* 店舗の商品選択：棚・倉庫で共通のカード表示 */
.shop-product-list{display:grid;gap:6px}
.shop-product-card{display:flex;align-items:center;gap:9px;width:100%;min-width:0;padding:9px;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.shop-product-card.active{border-color:var(--accent);background:var(--soft)}
.shop-product-mark{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border:1px solid var(--accent);border-radius:5px;color:var(--accent)}
.shop-product-info{display:flex;flex-direction:column;min-width:0;gap:3px}
.shop-product-info b{font-size:12px}
.shop-product-info small{font-size:10px;overflow-wrap:anywhere}
@media(max-height:700px){.shop-product-card{padding:5px 7px}.shop-product-list{gap:4px}}

.shop-product-list{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,auto)}
.shop-product-card{position:relative;display:block;aspect-ratio:1/1;height:auto;min-height:0;padding:0;border-radius:4px;overflow:hidden}
.shop-product-image{position:absolute;inset:5% 5% 22%;width:90%;height:73%;max-width:90%;max-height:73%;object-fit:contain;image-rendering:auto}
.shop-product-name{position:absolute;bottom:3%;left:4%;width:92%;font-size:10px;line-height:1.2;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shop-product-card.active{outline:2px solid var(--accent);outline-offset:-2px}

/* 商品管理：フォルダ見出し型のタブと、2列の正方形カード */
.shop-folder-tabs{display:flex;gap:4px;align-items:flex-end;margin-bottom:-1px;position:relative;z-index:1}
.shop-folder-tabs button{flex:1;min-width:0;padding:9px 3px;border:1px solid var(--line);border-radius:8px 8px 0 0;background:var(--soft);font-size:11px}
.shop-folder-tabs button.active{background:var(--paper);border-bottom-color:var(--paper);box-shadow:none}
.shop-folder-content{border-radius:0 0 var(--radius) var(--radius)}
.shop-folder-content .shop-product-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.shop-folder-content .page{margin-top:14px}
.shop-folder-content .actions{margin-top:14px}
.shop-folder-content .shop-product-card{max-height:155px}
@media(max-height:700px){.shop-folder-content .shop-product-card{max-height:110px}.shop-folder-content .shop-product-list{gap:7px;margin-top:8px}.shop-folder-content .page,.shop-folder-content .actions{margin-top:10px}}

/* 商品タイルの情報ボタンは複数選択とは独立 */
.shop-product-tile{position:relative;min-width:0;aspect-ratio:1}
.shop-product-tile .shop-product-card{height:100%;max-height:none}
.shop-product-tile .shop-product-detail{position:absolute;top:4px;right:4px;z-index:1;width:23px;height:23px;min-width:23px;min-height:23px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:12px;font-weight:700;line-height:1}
.shop-folder-content .shop-product-tile{max-height:155px}
@media(max-height:700px){.shop-folder-content .shop-product-tile{max-height:110px}}

/* 棚の商品4枠と倉庫補充を同じ画面に表示 */
.shop-shelf-section .shop-product-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}
.shop-shelf-section .shop-product-tile,.shop-shelf-section .shop-empty-slot{min-width:0;aspect-ratio:1}
.shop-empty-slot{display:grid;place-items:center;border:1px dashed var(--line);border-radius:4px;color:var(--muted);font-size:18px}
.shop-shelf-section .shop-product-name{font-size:9px}
.shop-stock-section .shop-product-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}
.shop-shelf-section,.shop-stock-section{margin-top:8px}
.shop-shelf-section .actions,.shop-stock-section .actions{margin-top:8px}

/* 商品ごとの棚補充・倉庫返却 */
.shop-product-transfer{position:absolute;right:4px;bottom:4px;z-index:2;display:grid;place-items:center;width:27px;height:27px;min-width:27px;min-height:27px;padding:0;border:1px solid var(--accent);border-radius:50%;background:var(--paper);color:var(--accent);font-size:20px;font-weight:700;line-height:1}
.shop-product-transfer:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.shop-product-tile .shop-product-name{bottom:3%;padding-right:26px;box-sizing:border-box;text-align:left}
