:root{--font:"Plus Jakarta Sans", system-ui, sans-serif;--radius:18px;--radius-sm:12px;--nav-h:76px;--safe-bottom:env(safe-area-inset-bottom,0px);--dock-inset:14px;--transition-fast:.16s ease;--glass:#ffffffb8;--glass-border:#ffffff73;--shadow:0 10px 30px #0f17141a;--shadow-lift:0 18px 40px #0f171429;--warn:#b45309;--warn-soft:#fef3c7;--danger:#9b1c1c;--danger-soft:#fee2e2;--buy:#0e7490;--buy-soft:#cffafe;--low:#a16207;--low-soft:#fef9c3;--stock:#15803d;--stock-soft:#dcfce7;font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:500;line-height:1.4;transition:background .28s,color .28s}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f6f3;--bg-elevated:#ffffffdb;--bg-muted:#e5ece6;--ink:#122018;--ink-muted:#5b6c61;--line:#1b43321f;--header-fade:#f3f6f3db;--sheet-scrim:#0c18127a;--bg-glow-a:#d7ebe0;--bg-glow-b:#e8f1ea}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1411;--bg-elevated:#18221de0;--bg-muted:#1a2420;--ink:#e8f0ea;--ink-muted:#9aada2;--line:#d8ebe01f;--header-fade:#0d1411e0;--sheet-scrim:#0000009e;--bg-glow-a:#163528;--bg-glow-b:#1a2a38;--glass:#18221dc7;--glass-border:#ffffff14;--shadow:0 12px 36px #00000059;--shadow-lift:0 20px 48px #00000073;--danger-soft:#3f1515;--stock-soft:#143523;--low-soft:#3a2c0d;--buy-soft:#12343c}[data-theme=midnight]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070b14;--bg-elevated:#101624e6;--bg-muted:#121829;--ink:#edf1ff;--ink-muted:#9aa6c3;--line:#b4c6ff1f;--header-fade:#070b14e6;--sheet-scrim:#000000ad;--bg-glow-a:#152048;--bg-glow-b:#2a1440;--glass:#101624cc;--glass-border:#b4c6ff24;--shadow:0 14px 40px #00000073;--shadow-lift:0 22px 50px #0000008c;--danger-soft:#3a1220;--stock-soft:#10281f;--low-soft:#33240c;--buy-soft:#0f2f3a}[data-theme=mist]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef2f6;--bg-elevated:#ffffffd1;--bg-muted:#e2e8f0;--ink:#152033;--ink-muted:#64748b;--line:#3341551f;--header-fade:#eef2f6e0;--sheet-scrim:#0f172a6b;--bg-glow-a:#dbe7f5;--bg-glow-b:#e8e4f4}:root,[data-accent=forest]{--accent:#1b4332;--accent-soft:#d8ebe0;--accent-strong:#0f2e22;--accent-glow:#1b433247}[data-accent=ocean]{--accent:#0e7490;--accent-soft:#cffafe;--accent-strong:#155e75;--accent-glow:#0e74904d}[data-accent=ember]{--accent:#ea580c;--accent-soft:#ffedd5;--accent-strong:#c2410c;--accent-glow:#ea580c47}[data-accent=berry]{--accent:#be185d;--accent-soft:#fce7f3;--accent-strong:#9d174d;--accent-glow:#be185d47}[data-accent=citrus]{--accent:#65a30d;--accent-soft:#ecfccb;--accent-strong:#4d7c0f;--accent-glow:#65a30d47}[data-accent=slate]{--accent:#334155;--accent-soft:#e2e8f0;--accent-strong:#1e293b;--accent-glow:#33415547}[data-theme=dark][data-accent=forest],[data-theme=midnight][data-accent=forest]{--accent:#6fbf95;--accent-soft:#1a3328;--accent-strong:#95d5b2}[data-theme=dark][data-accent=ocean],[data-theme=midnight][data-accent=ocean]{--accent:#22d3ee;--accent-soft:#164e63;--accent-strong:#67e8f9}[data-theme=dark][data-accent=ember],[data-theme=midnight][data-accent=ember]{--accent:#fb923c;--accent-soft:#7c2d12;--accent-strong:#fdba74}[data-theme=dark][data-accent=berry],[data-theme=midnight][data-accent=berry]{--accent:#f472b6;--accent-soft:#831843;--accent-strong:#f9a8d4}[data-theme=dark][data-accent=citrus],[data-theme=midnight][data-accent=citrus]{--accent:#a3e635;--accent-soft:#3f6212;--accent-strong:#bef264}[data-theme=dark][data-accent=slate],[data-theme=midnight][data-accent=slate]{--accent:#94a3b8;--accent-soft:#1e293b;--accent-strong:#cbd5e1}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;color:var(--ink);background:radial-gradient(1000px 520px at 8% -8%, var(--bg-glow-a) 0%, transparent 55%), radial-gradient(860px 480px at 100% 0%, var(--bg-glow-b) 0%, transparent 50%), radial-gradient(700px 400px at 50% 110%, var(--accent-glow) 0%, transparent 55%), var(--bg);background-attachment:fixed;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.app-shell{max-width:720px;min-height:100dvh;padding:0 16px calc(var(--nav-h) + var(--safe-bottom) + 28px);flex-direction:column;margin:0 auto;display:flex}.app-header{z-index:10;background:linear-gradient(180deg, var(--header-fade) 65%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;gap:12px;padding:20px 0 14px;display:flex;position:sticky;top:0}.brand{flex-direction:column;gap:2px;display:flex}.brand-name{letter-spacing:-.04em;color:var(--accent);text-shadow:0 1px #ffffff26;font-size:1.75rem;font-weight:800}.brand-sub{color:var(--ink-muted);font-size:.85rem;font-weight:500}.icon-btn{background:var(--bg-elevated);border:1px solid var(--line);width:48px;height:48px;color:var(--accent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform var(--transition-fast), box-shadow var(--transition-fast);border-radius:16px;place-items:center;display:grid}.icon-btn:hover{box-shadow:var(--shadow-lift)}.icon-btn:active{transform:scale(.96)}.screen{flex-direction:column;flex:1;gap:14px;animation:.28s ease-out rise-in;display:flex}.pwa-notice{border:1px solid var(--line);background:var(--bg-elevated);min-height:58px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;display:flex}.pwa-notice>span:not(.status-dot){flex-direction:column;flex:1;min-width:0;display:flex}.pwa-notice strong{font-size:.9rem}.pwa-notice small{color:var(--ink-muted);font-size:.75rem}.pwa-notice.warning{border-color:color-mix(in srgb, var(--warn) 32%, var(--line));background:color-mix(in srgb, var(--warn-soft) 64%, var(--bg-elevated))}.pwa-notice.update,.pwa-notice.install{border-color:color-mix(in srgb, var(--accent) 32%, var(--line))}.pwa-notice button{min-height:38px;color:var(--accent);border-radius:10px;flex-shrink:0;padding:0 10px;font-size:.8rem;font-weight:800}.pwa-notice .notice-primary{background:var(--accent);color:#fff}.notice-actions{gap:2px;display:flex}.status-dot{background:var(--stock);width:10px;height:10px;box-shadow:0 0 0 5px var(--stock-soft);border-radius:999px;flex:none}.pwa-notice.warning .status-dot{background:var(--warn);box-shadow:0 0 0 5px var(--warn-soft)}@keyframes rise-in{0%{opacity:.55;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toolbar{align-items:center;gap:10px;display:flex}.search{border:1px solid var(--line);background:var(--bg-elevated);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:50px;box-shadow:var(--shadow);transition:box-shadow var(--transition-fast), border-color var(--transition-fast);border-radius:16px;outline:none;flex:1;padding:0 16px}.search:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow), var(--shadow)}.btn{min-height:48px;transition:transform 80ms ease, background .15s ease, box-shadow var(--transition-fast);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, white), var(--accent));color:#fff;box-shadow:0 8px 20px var(--accent-glow)}.btn-primary:hover{background:var(--accent-strong)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:var(--bg-elevated);border:1px solid var(--line);color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-block{width:100%}.fab{right:max(18px,50% - 342px);bottom:calc(var(--nav-h) + var(--safe-bottom) + 28px);background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 85%, white), var(--accent));color:#fff;width:58px;height:58px;box-shadow:0 12px 28px var(--accent-glow), var(--shadow-lift);z-index:20;transition:transform var(--transition-fast), box-shadow var(--transition-fast);border-radius:20px;place-items:center;font-size:1.8rem;font-weight:700;display:grid;position:fixed}.fab:hover{transform:translateY(-2px)}.fab:active{transform:scale(.96)}.item-list{flex-direction:column;gap:10px;display:flex}.category-group{flex-direction:column;gap:8px;display:flex}.category-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);padding:8px 4px 0;font-size:.72rem;font-weight:800}.item-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;gap:12px;padding:14px;display:flex}.item-card:hover{box-shadow:var(--shadow-lift)}.item-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.item-card-top>:first-child{min-width:0}.item-name{letter-spacing:-.02em;font-size:1.08rem;font-weight:800}.item-meta{color:var(--ink-muted);margin-top:2px;font-size:.8rem}.item-details{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin-top:7px;display:flex}.amount-pill{min-height:26px;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;align-items:center;padding:0 9px;font-size:.75rem;font-weight:800;display:inline-flex}.item-note{min-width:0;color:var(--ink-muted);overflow-wrap:anywhere;font-size:.8rem}.badge{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-one-off{background:var(--buy-soft);color:var(--buy)}.status-chips{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.status-chip{min-height:46px;transition:transform var(--transition-fast), opacity var(--transition-fast), outline-color var(--transition-fast);border:1px solid #0000;border-radius:14px;padding:6px 4px;font-size:.78rem;font-weight:700;line-height:1.15}.status-chip.in_stock{background:var(--stock-soft);color:var(--stock)}.status-chip.running_low{background:var(--low-soft);color:var(--low)}.status-chip.need_to_buy{background:var(--buy-soft);color:var(--buy)}.status-chip.active{outline-offset:0;outline:2px solid;transform:translateY(-1px)}.status-chip:not(.active){opacity:.55}.shop-row{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);text-align:left;width:100%;min-height:68px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform var(--transition-fast), background var(--transition-fast);align-items:center;gap:12px;padding:14px 16px;display:flex}.shop-row:active{background:var(--bg-muted);transform:scale(.99)}.shop-check{border:2px solid var(--accent);width:28px;height:28px;box-shadow:inset 0 0 0 0 var(--accent);transition:box-shadow var(--transition-fast);border-radius:10px;flex-shrink:0}.shop-text{flex-direction:column;flex:1;gap:2px;display:flex}.shop-text .item-details{margin-top:4px}.shop-name{font-size:1.08rem;font-weight:800}.shop-sub{color:var(--ink-muted);font-size:.8rem}.bottom-nav{left:50%;bottom:calc(var(--dock-inset) + var(--safe-bottom));z-index:30;pointer-events:none;background:0 0;border:none;width:min(420px,100% - 28px);padding:0;position:fixed;transform:translate(-50%)}.bottom-nav-inner{pointer-events:auto;background:var(--glass);border:1px solid var(--glass-border);max-width:none;box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(18px)saturate(1.25);backdrop-filter:blur(18px)saturate(1.25);border-radius:28px;grid-template-columns:repeat(3,1fr);gap:4px;margin:0;padding:8px;display:grid}.nav-link{min-height:56px;color:var(--ink-muted);transition:background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.72rem;font-weight:700;display:flex}.nav-link.active{background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 80%, transparent), var(--accent-soft));color:var(--accent);box-shadow:inset 0 1px #ffffff59}.nav-link:active{transform:scale(.97)}.nav-link span:first-child{font-size:1.15rem;line-height:1}.empty{border-radius:calc(var(--radius) + 4px);background:var(--bg-elevated);border:1px dashed color-mix(in srgb, var(--accent) 28%, var(--line));text-align:center;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;align-items:center;gap:12px;margin-top:28px;padding:32px 22px;display:flex}.empty h2{letter-spacing:-.03em;font-size:1.25rem}.empty p{color:var(--ink-muted);max-width:32ch}.empty-actions{flex-direction:column;gap:8px;width:min(100%,280px);display:flex}.empty-actions .btn{width:100%}.inline-note{background:var(--accent-soft);color:var(--accent-strong);border-radius:12px;margin:0;padding:10px 12px;font-size:.9rem;font-weight:600}.item-card-actions{align-items:center;gap:6px;display:flex}.icon-chip{background:var(--bg-muted);border:1px solid var(--line);width:40px;height:40px;color:var(--ink-muted);border-radius:12px;place-items:center;font-size:1.05rem;line-height:1;display:grid}.edit-chip{width:auto;padding:0 10px;font-size:.78rem;font-weight:800}.icon-chip.active{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.item-card.pinned{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.pin-mark{color:var(--accent)}.sheet-backdrop{background:var(--sheet-scrim);z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:flex-end;padding:12px;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-elevated);border:1px solid var(--line);width:min(520px,100%);max-height:min(92dvh,760px);padding:18px 16px calc(16px + var(--safe-bottom));box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px 24px 18px 18px;flex-direction:column;gap:14px;animation:.2s ease-out sheet-up;display:flex;overflow-y:auto}.sheet-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px;font-size:.68rem;font-weight:800;display:block}.sheet-close{border:1px solid var(--line);width:42px;height:42px;color:var(--ink-muted);background:var(--bg-muted);border-radius:13px;flex:none;place-items:center;font-size:1.45rem;line-height:1;display:grid}.item-form{flex-direction:column;gap:14px;display:flex}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.detail-fields{grid-template-columns:minmax(164px,.8fr) minmax(0,1.2fr)}@keyframes sheet-up{0%{opacity:.55;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.sheet h2{letter-spacing:-.02em;font-size:1.2rem}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-muted);font-size:.8rem;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 80%, transparent);border-radius:12px;outline:none;min-height:48px;padding:0 12px}.field textarea{resize:vertical;min-height:72px;padding-block:11px;line-height:1.35}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.field-hint{color:var(--ink-muted);align-self:flex-end;margin-top:-2px;font-size:.7rem}.quantity-input{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 80%, transparent);border-radius:12px;grid-template-columns:44px minmax(54px,1fr) 44px;min-height:48px;display:grid;overflow:hidden}.quantity-input button{background:var(--bg-muted);color:var(--accent);font-size:1.2rem;font-weight:800}.quantity-input input{border:0;border-inline:1px solid var(--line);text-align:center;appearance:textfield;border-radius:0;width:100%;min-height:46px;padding:0 4px;font-weight:800}.quantity-input input::-webkit-inner-spin-button{appearance:none;margin:0}.quantity-input input::-webkit-outer-spin-button{appearance:none;margin:0}.quantity-stepper{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 68%, transparent);border-radius:13px;grid-template-columns:42px minmax(70px,1fr) 42px;align-self:flex-start;align-items:center;min-height:44px;display:grid;overflow:hidden}.quantity-stepper button{color:var(--accent);background:var(--bg-muted);align-self:stretch;font-size:1.1rem;font-weight:800}.quantity-stepper span{text-align:center;min-width:88px;padding:0 10px;font-size:.82rem;font-weight:800}.quantity-stepper button:disabled,.quantity-input button:disabled{cursor:not-allowed;opacity:.35}.archive-confirm{border:1px solid color-mix(in srgb, var(--danger) 26%, var(--line));background:var(--danger-soft);color:var(--danger);border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex}.archive-confirm p{font-size:.85rem}.form-error{background:var(--danger-soft);border-radius:12px;padding:10px 12px;font-weight:700;color:var(--danger)!important;font-size:.82rem!important}.sheet-actions{flex-wrap:wrap;gap:8px;display:flex}.sheet-actions .btn{flex:1;min-width:120px}.toast{left:50%;bottom:calc(var(--nav-h) + var(--safe-bottom) + 28px);z-index:50;background:linear-gradient(135deg, var(--accent-strong), var(--accent));color:#fff;width:min(480px,100% - 24px);min-height:52px;box-shadow:0 14px 32px var(--accent-glow);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 16px;animation:.2s ease-out rise-in;display:flex;position:fixed;transform:translate(-50%)}.toast button{color:#fff;background:#ffffff2e;border-radius:10px;min-height:40px;padding:0 12px;font-weight:800}.settings-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;gap:12px;padding:16px;display:flex}.settings-card h2{letter-spacing:-.02em;font-size:1.05rem}.settings-card p{color:var(--ink-muted);font-size:.95rem}.settings-card strong{color:var(--ink)}.status-list{border-block:1px solid var(--line);flex-direction:column;display:flex}.status-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:42px;font-size:.88rem;display:flex}.status-row:last-child{border-bottom:0}.status-row>span{color:var(--ink-muted)}.status-good{color:var(--stock)!important}.status-warning{color:var(--warn)!important}.theme-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.theme-option{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 70%, transparent);text-align:left;min-height:72px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border-radius:16px;flex-direction:column;gap:2px;padding:12px;display:flex}.theme-option strong{font-size:.95rem}.theme-option span{color:var(--ink-muted);font-size:.78rem}.theme-option.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);transform:translateY(-1px)}.accent-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.accent-option{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 70%, transparent);min-height:64px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.78rem;font-weight:700;display:flex}.accent-option.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);transform:translateY(-1px)}.accent-swatch{border-radius:8px;width:22px;height:22px;box-shadow:0 4px 10px #0000002e}.count-pill{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.68rem;font-weight:800;display:inline-flex}.muted{color:var(--ink-muted);font-size:.9rem}@media (width>=720px){.app-shell{padding-top:8px}.item-card:hover,.shop-row:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}}@media (width<=460px){.field-row,.detail-fields{grid-template-columns:1fr}.pwa-notice.install{flex-wrap:wrap;align-items:flex-start}.pwa-notice.install .notice-actions{justify-content:flex-end;width:100%}}@media (prefers-reduced-motion:reduce){.screen,.sheet,.toast,.fab,.nav-link,.item-card,.theme-option,.accent-option{transition:none;animation:none}}
