:root{color-scheme:light;--bg:#f6f7f9;--surface:#ffffff;--surface-raised:#ffffff;--surface-soft:#eef1f5;--surface-sunken:#e8ecf1;--border:#e3e7ec;--border-strong:#ccd2da;--line:#e3e7ec;--line-strong:#ccd2da;--text-strong:#161b22;--text:#2a313b;--text-muted:#646d7a;--ink:#161b22;--muted:#646d7a;--brand:#10817a;--brand-strong:#0c6660;--brand-weak:#e3f4f1;--brand-ring:rgba(16,129,122,0.30);--accent:#10817a;--accent-strong:#0c6660;--copper:#c2693a;--amber:#f5c451;--danger:#c2402f;--danger-strong:#b1372a;--danger-weak:#fdecea;--danger-border:#f6d5cf;--success:#19936e;--success-weak:#e8f6f0;--warn-weak:#fff6e0;--warn-border:#efd9a3;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:15px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:28px;--font-size-3xl:36px;--font-weight-normal:400;--font-weight-medium:600;--font-weight-bold:800;--line-height-tight:1.15;--line-height-snug:1.35;--line-height-normal:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 2px 8px rgba(24,30,40,0.06);--shadow-md:0 12px 28px rgba(24,30,40,0.08);--shadow-lg:0 18px 45px rgba(30,38,52,0.12);--shadow:0 18px 45px rgba(30,38,52,0.08);--shadow-drag:0 16px 36px rgba(20,26,36,0.22);--ease:cubic-bezier(0.22,0.61,0.36,1);--dur-fast:150ms;--dur:220ms;--z-nav:50;--z-actionbar:60;--z-toast:70;--z-modal:80;--nav-height:64px;--safe-bottom:env(safe-area-inset-bottom,0px);--content-bottom-gap:calc(var(--nav-height) + var(--safe-bottom) + var(--space-4));--tap-min:44px;--card-image:64px;--card-image-edit:56px;--nav-icon:22px;--slider-fade:24px;--z-search:80}*{box-sizing:border-box}body,html{overflow-x:clip;max-width:100%}body{margin:0;background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(246,247,249,0) 260px),var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand-ring);outline-offset:2px;border-radius:var(--radius-sm)}a{color:var(--brand-strong);text-decoration:none}h1,h2,p{margin-top:0}.appShell{position:relative;margin:0 auto;max-width:1480px;padding:var(--space-6);padding-bottom:var(--space-6)}.heroBand{align-items:end;background:linear-gradient(180deg,#232d3d,#1b2330);border-radius:var(--radius-md);box-shadow:var(--shadow);color:#fff;display:grid;grid-gap:var(--space-4);gap:var(--space-4);grid-template-columns:1fr auto;margin-bottom:var(--space-4);overflow:hidden;padding:var(--space-5);position:relative}.heroBand:after{background:linear-gradient(90deg,var(--copper),var(--amber),var(--brand));bottom:0;content:"";height:5px;left:0;position:absolute;right:0}.eyebrow{color:var(--copper);font-size:var(--font-size-xs);font-weight:800;margin:0 0 7px;text-transform:uppercase}.heroBand .eyebrow{color:var(--amber)}h1{font-size:var(--font-size-3xl);line-height:1.05;margin-bottom:var(--space-2)}.heroCopy{color:rgba(255,255,255,.76);margin-bottom:0}.heroTitleRow{align-items:center;gap:var(--space-3)}.heroActions,.heroTitleRow{display:flex;flex-wrap:wrap}.heroActions{gap:var(--space-2);justify-content:flex-end}.iconAction{width:44px;height:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-sm);background:rgba(255,255,255,.1);color:#fff;cursor:pointer}.iconAction svg{width:21px;height:21px}.iconAction.primary{background:var(--surface);border-color:transparent;color:var(--brand-strong)}.iconAction.active{background:var(--brand);border-color:var(--brand);color:#fff}.actions button,.chips button,.ghostButton,.modalActions button,.primaryButton,.tabs button{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-height:40px;padding:0 14px}.primaryButton{background:var(--surface);border-color:transparent;color:var(--brand-strong);font-weight:800}.ghostButton{background:transparent;border-color:rgba(255,255,255,.28);color:#fff;font-weight:800}.notice{background:var(--warn-weak);border:1px solid var(--warn-border);border-radius:10px;margin-bottom:var(--space-3);padding:14px 16px}.notice.compact{background:var(--success-weak);border-color:#bfe3d6}.countBadge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--brand-weak);color:var(--brand-strong);font-size:var(--font-size-sm);font-weight:800}.heroBand .countBadge{background:rgba(255,255,255,.14);color:var(--amber)}.heroBadges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.statGrid,.statsGrid{display:grid;grid-gap:var(--space-3);gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:var(--space-3)}.statGrid>div,.statsGrid>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.historyItem span,.muted,.productHeader p,.statGrid span,.statsGrid span{color:var(--text-muted)}.statGrid span,.statsGrid span{font-size:var(--font-size-sm)}.statGrid strong,.statsGrid strong{display:block;margin-top:var(--space-1);font-size:var(--font-size-2xl);font-weight:800;color:var(--text-strong)}.statGrid .accentValue strong{color:var(--brand-strong)}.statGrid.compact{gap:var(--space-2)}.statGrid.compact>div{padding:var(--space-3)}.statGrid.compact strong{font-size:var(--font-size-xl)}.controlDeck{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);grid-gap:var(--space-3);gap:var(--space-3);grid-template-columns:minmax(220px,1fr) auto;margin-bottom:var(--space-4);padding:var(--space-3)}.controlDeck,.searchField{align-items:center;display:grid}.searchField{background:var(--surface-soft);border:1px solid transparent;border-radius:9px;grid-gap:var(--space-2);gap:var(--space-2);grid-template-columns:auto 1fr;padding:0 12px}.searchField span{color:var(--brand-strong);font-size:var(--font-size-sm);font-weight:800}.searchField input{background:transparent;border:0;min-height:var(--tap-min);outline:0;width:100%}.favoriteSwitch{align-items:center;border:1px solid var(--border);border-radius:9px;cursor:pointer;display:inline-flex;gap:var(--space-2);min-height:var(--tap-min);padding:0 12px;white-space:nowrap}.favoriteSwitch input{accent-color:var(--brand)}.editToggle{min-height:var(--tap-min);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--brand-strong);font-weight:800;padding:0 var(--space-4);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.editToggle svg{width:18px;height:18px}.editToggle.active{background:var(--brand);border-color:var(--brand);color:#fff}.actions,.chips,.tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chips{margin-bottom:var(--space-4);flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--slider-fade),#000 calc(100% - var(--slider-fade)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--slider-fade),#000 calc(100% - var(--slider-fade)),transparent 100%)}.chips::-webkit-scrollbar{display:none}.chips button{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap}.chips button,.tabs button{background:var(--surface);color:var(--text-muted)}.chips .active,.tabs .active{background:#1b2330;border-color:#1b2330;color:#fff;font-weight:800}.sectionHeader{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.sectionHeader h2{font-size:var(--font-size-xl);margin:0}.selectAllLine{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:700;margin-bottom:var(--space-3)}.selectAllLine input{width:20px;height:20px;accent-color:var(--brand);cursor:pointer}.contentGrid{align-items:start;display:grid;grid-gap:var(--space-4);gap:var(--space-4);grid-template-columns:minmax(0,1fr) 360px}.contentGrid>*{min-width:0}.productList{display:grid;grid-gap:10px;gap:10px;min-width:0}.productCard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:grid;grid-gap:var(--space-2);gap:var(--space-2);grid-template-columns:var(--card-image) minmax(0,1fr);padding:10px;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.productCard:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.productCard.favorite{border-color:rgba(194,105,58,.46);box-shadow:inset 3px 0 0 var(--copper),var(--shadow-sm)}.imageBox{align-items:center;aspect-ratio:1;background:linear-gradient(135deg,#eef1f5,#f9fafb);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--brand-strong);display:flex;font-size:var(--font-size-xs);font-weight:800;justify-content:center;overflow:hidden;position:relative;text-align:center}.imageBox img{object-fit:cover}.imageBox .placeholderText{color:var(--text-muted);font-weight:600}.productBody{display:grid;grid-gap:6px;gap:6px;min-width:0}.productHeader{display:grid;grid-gap:var(--space-1);gap:var(--space-1);min-width:0}.productHeader .vendorLine{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-muted)}.productHeader .vendorLine span{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.starButton{flex:0 0 auto;background:transparent;border:0;color:#b6bcc6;cursor:pointer;font-size:var(--font-size-lg);line-height:1;padding:0;margin:-6px -4px -6px 0;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.starButton.active{color:var(--copper)}.productHeader h2{font-size:var(--font-size-md);font-weight:700;color:var(--text-strong);line-height:var(--line-height-snug);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.productHeader .priceLine{margin-top:2px}.productHeader strong{color:var(--brand-strong);font-size:var(--font-size-lg);font-weight:800}.unitSuffix{color:var(--text-muted);font-size:var(--font-size-base);font-weight:600;margin-left:2px}.priceTrend{align-items:center;display:inline-flex;gap:var(--space-2)}.priceTrend.up{color:var(--copper)}.priceTrend.down{color:var(--success)}.priceTrend.flat{color:var(--text-muted)}.priceTrend .sparkline{display:block}.priceTrend polyline{stroke-width:1.6}.trendDelta{font-size:var(--font-size-xs);font-weight:800}.actions{align-items:center;gap:var(--space-2)}.actions .disabledAction,.actions a,.actions button{min-height:40px;min-width:40px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center}.actions svg{width:18px;height:18px}.actions a{background:var(--brand-weak);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--brand-strong)}.actions button{background:var(--surface)}.actions .primaryAction{background:var(--brand-weak);border-color:var(--brand-ring);color:var(--brand-strong)}.actions .disabledAction{background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);opacity:.55}.actions .dangerText{border-color:var(--danger-border);color:var(--danger)}.productList.editing{background:var(--surface-sunken);border-radius:var(--radius-lg);padding:var(--space-2)}.productList.editing .productCard{grid-template-columns:36px var(--card-image-edit) minmax(0,1fr) 36px;cursor:default}.productList.editing .productCard:hover{transform:none}.productList.editing .actions{display:none}.editHint{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-snug)}.dragColumn{flex-direction:column;align-self:stretch;gap:2px}.dragColumn,.dragHandle{display:flex;align-items:center;justify-content:center;touch-action:none}.dragHandle{min-width:32px;min-height:32px;color:var(--text-muted);cursor:-webkit-grab;cursor:grab;background:transparent;border:0;padding:4px 0}.dragHandle:active{cursor:-webkit-grabbing;cursor:grabbing}.dragHandle svg{width:20px;height:20px}.moveBtn{background:transparent;border:0;color:var(--text-muted);cursor:pointer;font-size:11px;line-height:1;padding:2px;min-width:28px}.moveBtn:disabled{opacity:.3;cursor:default}.selectBox{display:flex;align-items:flex-start;justify-content:center;padding-top:4px}.selectBox input{width:22px;height:22px;accent-color:var(--brand);cursor:pointer}.productCard.selected{border-color:var(--brand);background:var(--brand-weak)}.productCard.dragging{box-shadow:var(--shadow-drag);transform:scale(1.02);opacity:.96;z-index:2}.productCard.dropTarget{border-color:var(--brand-ring);box-shadow:inset 0 0 0 2px var(--brand-ring)}.selectionBar{position:fixed;left:0;right:0;bottom:calc(var(--nav-height) + var(--safe-bottom));z-index:var(--z-actionbar);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:barIn var(--dur) var(--ease)}.selectionBar .count{font-weight:800;color:var(--text-strong)}.selectionBar .barActions{display:flex;gap:var(--space-2)}.selectionBar .deleteBtn{min-height:var(--tap-min);padding:0 var(--space-4);background:var(--danger-strong);color:#fff;border:0;border-radius:var(--radius-sm);font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.selectionBar .deleteBtn svg{width:18px;height:18px}.selectionBar .clearBtn{min-height:var(--tap-min);padding:0 var(--space-3);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-weight:700;cursor:pointer}@keyframes barIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.historyPanel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);position:-webkit-sticky;position:sticky;top:var(--space-4)}.historyPanel h2{font-size:var(--font-size-lg);margin-bottom:var(--space-3)}.historyList{display:grid;grid-gap:10px;gap:10px}.historyItem{border-bottom:1px solid var(--border);padding-bottom:10px}.historyItem strong{display:block;line-height:var(--line-height-snug);margin:3px 0;color:var(--text-strong)}.empty,.historyItem p{color:var(--text-muted);margin-bottom:0}.loadingBar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600}.loadingBar .loadingDot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--brand);animation:pulse 1.4s ease-in-out infinite}.empty{color:var(--text-muted);text-align:center;padding:var(--space-6) var(--space-4)}.skeletonList{display:grid;grid-gap:10px;gap:10px}.skeletonCard{background:var(--surface-soft);border-radius:var(--radius-md);height:120px;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.bottomNav{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);display:flex;background:var(--surface-raised);border-top:1px solid var(--border);box-shadow:0 -6px 20px rgba(24,30,40,.06);padding-bottom:var(--safe-bottom)}.bottomNav button{flex:1 1;min-height:var(--nav-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:var(--text-muted);font-size:10px;letter-spacing:-.2px;white-space:nowrap;font-weight:var(--font-weight-medium);cursor:pointer;position:relative;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.bottomNav button svg{width:var(--nav-icon);height:var(--nav-icon)}.bottomNav button.active{color:var(--brand-strong);font-weight:var(--font-weight-bold)}.bottomNav button.active:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:28px;height:3px;border-radius:var(--radius-pill);background:var(--brand)}.bottomNav button:active{background:var(--brand-weak)}.modalBackdrop{align-items:center;background:rgba(20,26,36,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:var(--z-modal);animation:fadeIn var(--dur) var(--ease)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modalBackdrop.searchBackdrop{align-items:flex-start;padding:var(--space-3);padding-top:calc(env(safe-area-inset-top, 0px) + var(--space-3))}.searchOverlay{display:flex;flex-direction:column;width:min(100%,560px);max-height:70vh;background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:dialogIn var(--dur) var(--ease)}.searchOverlayInput{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.searchOverlayInput svg{width:20px;height:20px;color:var(--brand-strong)}.searchOverlayInput input{border:0;background:transparent;min-height:var(--tap-min);font-size:var(--font-size-md);outline:0;width:100%}.searchOverlayInput .closeSearch{min-width:var(--tap-min);min-height:var(--tap-min);border:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:var(--font-size-lg)}.searchResults{overflow-y:auto}.searchResultRow{display:grid;grid-template-columns:auto 1fr auto;grid-gap:var(--space-2);gap:var(--space-2);align-items:center;padding:var(--space-3) var(--space-4);min-height:var(--tap-min);border-bottom:1px solid var(--border)}.searchResultRow .rowThumb{position:relative;width:44px;height:44px;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-soft);border:1px solid var(--border);flex-shrink:0}.searchResultRow .rowThumb img{object-fit:cover}.searchResultRow .rowThumbPlaceholder{display:block;width:100%;height:100%;background:var(--surface-soft)}.searchResultRow:active,.searchResultRow:hover{background:var(--surface-soft)}.searchResultRow .rowMain{min-width:0}.searchResultRow .rowName{color:var(--text-strong);font-weight:700;font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.searchResultRow .rowMeta{color:var(--text-muted);font-size:var(--font-size-sm)}.searchResultRow .rowActions{display:flex;gap:var(--space-2)}.searchResultRow .rowActions a,.searchResultRow .rowActions button{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.searchResultRow .rowActions svg{width:18px;height:18px}.searchHint{color:var(--text-muted);text-align:center;padding:var(--space-5)}.productModal,.purchaseModal{background:var(--surface-raised);border-radius:var(--radius-md);display:grid;grid-gap:14px;gap:14px;max-width:460px;padding:22px;width:min(100%,460px)}.productModal{max-height:min(90vh,820px);max-width:720px;overflow:auto;width:min(100%,720px)}.compactModal{max-width:480px}.productModal h2,.purchaseModal h2{font-size:var(--font-size-xl);line-height:1.3;margin-bottom:0}.productModal label,.purchaseModal label{color:var(--text-muted);display:grid;grid-gap:6px;gap:6px}.productModal input,.productModal select,.productModal textarea,.purchaseModal input,.purchaseModal textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:var(--tap-min);padding:0 12px;width:100%}.productModal textarea,.purchaseModal textarea{min-height:92px;padding-top:10px;resize:vertical}.productModal input[type=date],.purchaseModal input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0;max-width:100%}.productModal select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.formGrid{display:grid;grid-gap:var(--space-3);gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.checkboxLine{align-items:center;display:flex!important;gap:var(--space-2)!important}.checkboxLine input{min-height:auto;width:auto}.helperText{font-size:14px;line-height:1.45;margin-bottom:0}.helperText,.pasteZone{color:var(--text-muted)}.pasteZone{align-items:center;background:var(--surface-soft);border:1px dashed var(--border-strong);border-radius:10px;display:flex;justify-content:center;min-height:130px;overflow:hidden;padding:12px;text-align:center}.pasteZone:focus-visible{border-color:var(--brand)}.pasteZone img{max-height:220px;max-width:100%;object-fit:contain}.imageEditSection{display:grid;grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-3);background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-md)}.imageEditLabel{display:flex;align-items:center;gap:6px;margin:0;color:var(--text-muted);font-weight:700}.imageEditLabel svg{width:18px;height:18px}.imageEditSection .pasteZone{background:var(--surface)}.removeImageBtn{justify-self:start;min-height:36px;padding:0 var(--space-3);background:var(--danger-weak);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger);font-weight:700;cursor:pointer}.modalActions{display:flex;gap:var(--space-2);justify-content:flex-end}.modalActions button{background:var(--surface)}.modalActions .primaryButton{background:var(--brand);color:#fff}.confirmDialog{background:var(--surface-raised);border-radius:var(--radius-lg);padding:var(--space-5);max-width:380px;width:min(100%,380px);display:grid;grid-gap:var(--space-3);gap:var(--space-3);text-align:center;animation:dialogIn var(--dur) var(--ease)}.confirmDialog h2{font-size:var(--font-size-lg);margin:0}.confirmDialog p{color:var(--text-muted);margin:0}.confirmDialog .dialogIcon{width:48px;height:48px;border-radius:var(--radius-pill);background:var(--danger-weak);color:var(--danger);display:grid;place-items:center;margin:0 auto}.confirmDialog .dialogIcon svg{width:26px;height:26px}.confirmDialog .actions{display:flex;gap:var(--space-2);justify-content:center;margin-top:var(--space-2)}.confirmDialog .confirmDelete{background:var(--danger-strong);color:#fff;border:0;min-height:var(--tap-min);border-radius:var(--radius-sm);padding:0 var(--space-5);font-weight:800;cursor:pointer}.confirmDialog .cancel{background:var(--surface);border:1px solid var(--border);min-height:var(--tap-min);border-radius:var(--radius-sm);padding:0 var(--space-4);font-weight:700;cursor:pointer}@keyframes dialogIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.toast{position:fixed;left:var(--space-3);right:var(--space-3);bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--space-3));z-index:var(--z-toast);background:var(--text-strong);color:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-weight:600;animation:barIn var(--dur) var(--ease)}.toast.error{background:var(--danger-strong)}.toast.success{background:var(--success)}@media (max-width:1023px){.tabHidden{display:none}.appShell{padding:var(--space-4);padding-bottom:var(--content-bottom-gap)}.appShell.hasActionBar{padding-bottom:calc(var(--content-bottom-gap) + 56px)}.heroMenu{top:calc(var(--space-4) + var(--space-3));right:calc(var(--space-4) + var(--space-3))}.heroBand{grid-template-columns:1fr auto;padding:var(--space-4);gap:var(--space-3)}.heroBand h1{font-size:var(--font-size-2xl)}.heroActions{align-self:end;justify-content:flex-end;flex-wrap:nowrap}.controlDeck{grid-template-columns:1fr}.controlDeck .favoriteSwitch,.controlDeck .searchField,.tabs{display:none}.controlDeck{background:transparent;border:0;box-shadow:none;padding:0;margin-bottom:0;gap:0;justify-items:end}.controlDeck:has(.editHint){background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:var(--space-3);margin-bottom:var(--space-3);justify-items:stretch}.contentGrid{grid-template-columns:1fr}.historyPanel{position:static}.productCard{grid-template-columns:var(--card-image) minmax(0,1fr)}.productList.editing .productCard{grid-template-columns:36px var(--card-image-edit) minmax(0,1fr) 36px}}@media (min-width:1024px){.bottomNav{display:none}.tabSection{display:block}.selectionBar{left:50%;right:auto;transform:translateX(-50%);margin:0;min-width:360px}.selectionBar,.toast{bottom:var(--space-5)}.toast{left:auto;right:var(--space-5);max-width:380px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.authGate{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5);background:radial-gradient(120% 80% at 50% -10%,#2a3547 0,var(--bg) 55%)}.authCard{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6) var(--space-5) var(--space-5);text-align:center}.authCard .eyebrow{color:var(--copper);letter-spacing:.08em}.authTitle{margin:0 0 var(--space-3);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-strong)}.authLead{margin:0 0 var(--space-5);color:var(--text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.kakaoBtn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:13px var(--space-4);border:0;border-radius:var(--radius-md);background:#fee500;color:#191600;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;transition:filter var(--dur,.15s) var(--ease),transform var(--dur,.15s) var(--ease)}.kakaoBtn:hover{filter:brightness(.96)}.kakaoBtn:active{transform:translateY(1px)}.kakaoBtn:disabled{opacity:.6;cursor:progress}.authError{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);background:var(--danger-weak);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger);font-size:var(--font-size-xs);text-align:left}.authLink{display:inline-block;margin-top:var(--space-5);color:var(--brand-strong);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none}.authLink:hover{text-decoration:underline}.authIdBox{gap:var(--space-2);margin:0 0 var(--space-5);padding:var(--space-3);background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left}.authIdBox,.authIdBox>div{display:flex;flex-direction:column}.authIdBox>div{gap:2px}.authIdBox span{font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.08em;color:var(--text-muted)}.authIdBox code{font-size:var(--font-size-xs);color:var(--text-strong);word-break:break-all}.ghostFull{width:100%;padding:11px var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.ghostFull:hover{border-color:var(--text-muted);color:var(--text-strong)}.heroMenu{position:absolute;top:calc(var(--space-6) + var(--space-4));right:calc(var(--space-6) + var(--space-4));z-index:2}.heroMenuBtn{display:inline-flex;align-items:center;justify-content:center;padding:4px;border:0;background:transparent;color:#fff;cursor:pointer;line-height:0}.heroMenuBtn svg{width:26px;height:26px}.heroMenuBtn:hover{opacity:.8}.menuScrim{position:fixed;inset:0;z-index:65;padding:0;border:0;background:transparent;cursor:default}.menuPanel{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:66;min-width:172px;display:flex;flex-direction:column;gap:2px;padding:var(--space-1);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.menuProfile{display:flex;align-items:center;gap:var(--space-2);padding:10px var(--space-3)}.menuAvatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:999px;background:var(--brand-weak);color:var(--brand)}.menuAvatar svg{width:18px;height:18px}.menuProfileText{display:flex;flex-direction:column;min-width:0}.menuProfileText strong{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}.menuProfileText small,.menuProfileText strong{line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menuProfileText small{font-size:var(--font-size-xs);color:var(--text-muted)}.menuDivider{height:1px;margin:2px var(--space-2);background:var(--border)}.menuItem{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:10px var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer}.menuItem svg{width:18px;height:18px;flex-shrink:0}.menuItem:hover{background:var(--surface-soft)}.menuItem.danger{color:var(--danger)}.menuItem.danger:hover{background:var(--danger-weak)}