@import "https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,700&display=swap";:root{--bg:#f6efe4;--bg-accent:#efe2cf;--surface:#fffaf2;--ink:#2c241c;--muted:#7d6c5a;--line:#e5d6c2;--primary:#5c4033;--primary-ink:#fff8f0;--warn:#9a6b12;--warn-bg:#fff1d4;--danger:#a33b2d;--danger-bg:#fde8e4;--low:#5a6f8f;--low-bg:#e8eef6;--field:#fffdf8;--shadow:0 12px 32px #40302014;--radius:14px;color:var(--ink);background:radial-gradient(1100px 480px at 8% -8%, #f3e2c8 0%, transparent 55%), radial-gradient(900px 420px at 100% 0%, #efe6d8 0%, transparent 50%), var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Figtree,sans-serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}select{appearance:none;background-color:var(--field);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%237d6c5a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 1.1rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.85rem}.app-shell{max-width:920px;margin:0 auto;padding:1.25rem 1rem 3rem}.app-header{flex-direction:column;align-items:stretch;gap:.2rem;margin-bottom:1.35rem;display:flex}.app-loading{text-align:center;padding:2rem 1rem}.login-page{place-items:center;min-height:70vh;display:grid}.login-card{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--surface);width:min(100%,400px);box-shadow:var(--shadow);padding:1.5rem}.login-card h1{margin:0;font-family:Fraunces,serif;font-size:2rem}.login-card .form{margin-top:1.25rem}.login-card .btn.primary{width:100%}.brand-mark{letter-spacing:-.03em;margin:0;font-family:Fraunces,serif;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700}.brand-sub{color:var(--muted);justify-content:space-between;align-items:baseline;gap:.75rem;margin:0;font-size:.95rem;display:flex}.brand-user{flex-shrink:0;font-weight:500}.app-nav{justify-content:space-between;align-items:center;gap:.85rem;margin-top:.45rem;display:flex}.nav-home{color:var(--muted);border-bottom:2px solid #0000;padding:.3rem 0;font-size:1.12rem;font-weight:600}.nav-home.active{color:var(--ink);border-bottom-color:var(--primary)}.nav-tools{align-items:center;gap:.15rem;display:flex}.nav-tool{width:2.55rem;height:2.55rem;color:var(--muted);border-radius:999px;place-items:center;display:inline-grid}.nav-tool:hover{background:color-mix(in srgb, var(--line) 50%, transparent);color:var(--ink)}.nav-tool.active{background:color-mix(in srgb, var(--primary) 14%, var(--surface));color:var(--primary)}.app-main{background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:1.25rem}.page-heading{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-heading h1{letter-spacing:-.02em;margin:0;font-family:Fraunces,serif;font-size:1.65rem;font-weight:700}.panel h2,.panel h3,.section-head h2,.alert-group h2{letter-spacing:0;margin:0;font-family:Figtree,sans-serif;font-size:1.05rem;font-weight:600}.heading-actions{flex-wrap:wrap;gap:.4rem;display:flex}.muted{color:var(--muted);margin:.35rem 0 0}.back-link{color:var(--muted);margin-bottom:.35rem;font-size:.9rem;display:inline-block}.status-filters{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.status-chip{border:1px solid var(--line);background:var(--field);color:var(--muted);cursor:pointer;font:inherit;border-radius:999px;padding:.4rem .85rem;font-size:.92rem;font-weight:500}.status-chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}.lot-date-fields{gap:.75rem;display:grid}.expiry-mode{flex-wrap:wrap;gap:.4rem;display:flex}.shelf-life-input{grid-template-columns:1fr auto;gap:.4rem;display:grid}.lot-date-preview{margin:-.25rem 0 0;font-size:.9rem}.filters{grid-template-columns:1.4fr 1fr 1fr;gap:.6rem;margin-bottom:1rem;display:grid}.search,.filters select,.form input,.form select,.inline-form input,.qty-input{border:1px solid var(--line);width:100%;color:var(--ink);background-color:var(--field);border-radius:10px;padding:.65rem .85rem}.filters select,.form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%237d6c5a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 1.1rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.85rem}input[type=date],input[type=number]{padding-right:.85rem}.item-list,.lot-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.item-row{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, var(--field), #f7efe4);justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .95rem;display:flex}.settings-tags{flex-wrap:wrap;gap:.7rem .55rem;margin-top:1.1rem;display:flex}.settings-tag{--tag-bg:#f7d8c8;--tag-ink:#8a4a36;--tag-del:#e07a66;background:var(--tag-bg);max-width:100%;color:var(--tag-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tag-ink) 12%, transparent);border-radius:999px;align-items:center;display:inline-flex;position:relative}.settings-tag-category{--tag-bg:#f7d8c8;--tag-ink:#8a4a36;--tag-del:#e07a66}.settings-tag-location{--tag-bg:#d8e8d2;--tag-ink:#3f6a45;--tag-del:#6f9b74}.settings-tag-editing{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tag-ink) 18%, transparent), 0 0 0 2px color-mix(in srgb, var(--tag-bg) 70%, white)}.settings-tag-name{color:inherit;font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:12rem;padding:.42rem 1.2rem .42rem .95rem;font-size:.88rem;font-weight:600;overflow:hidden}.settings-tag-delete{border:1.5px solid var(--surface);background:var(--tag-del);color:#fff;cursor:pointer;border-radius:999px;place-items:center;width:1.1rem;height:1.1rem;padding:0;font-size:.82rem;font-weight:700;line-height:1;display:grid;position:absolute;top:-.28rem;right:-.28rem;box-shadow:0 1px 2px #2c241c1f}.settings-tag-delete:disabled{opacity:.55;cursor:default}.item-row:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--line))}.item-main{gap:.2rem;min-width:0;display:grid}.item-name,.lot-title{font-weight:600}.item-meta{color:var(--muted);font-size:.9rem}.item-notes{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.item-side{text-align:right;flex-shrink:0;justify-items:end;gap:.3rem;display:grid}.item-qty{font-weight:600}.badge{background:var(--bg-accent);color:var(--muted);border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.78rem;display:inline-flex}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.low{background:var(--low-bg);color:var(--low)}.btn{border:1px solid var(--line);background:var(--field);color:var(--ink);cursor:pointer;border-radius:10px;padding:.55rem .9rem;font-weight:600}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn.ghost{background:0 0}.btn.danger{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 30%, white);color:var(--danger)}.btn.icon{place-items:center;width:2.1rem;height:2.1rem;padding:0;display:inline-grid}.form{gap:.85rem;display:grid}.form label,.inline-form{color:var(--muted);gap:.35rem;font-size:.92rem;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.inline-form{flex-wrap:nowrap;align-items:center;gap:.5rem;display:flex}.inline-form input{flex:1;min-width:0}.inline-form .btn{flex-shrink:0}.form-error{color:var(--danger);margin:0}.empty{color:var(--muted);padding:1.25rem .25rem}.empty-state{justify-items:start;gap:.85rem;padding:.25rem 0;display:grid}.empty-state .empty{margin:0;padding:0}.suggest-chips{margin-top:.65rem}.name-suggest-chips{margin-top:-.35rem;margin-bottom:.15rem}.notify-hint{margin:-.5rem 0 1rem;font-size:.9rem}.suggest-chip-row{flex-wrap:wrap;gap:.3rem;display:flex}.suggest-chip{border:1px solid var(--line);background:var(--field);color:var(--muted);cursor:pointer;font:inherit;border-radius:999px;padding:.22rem .55rem;font-size:.78rem;font-weight:500;line-height:1.2}.suggest-chip:disabled{opacity:.55;cursor:default}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--field);margin-bottom:1rem;padding:1rem}.data-panel{gap:.85rem;display:grid}.data-panel .muted{margin:0}.section-head{justify-content:space-between;align-items:center;gap:.75rem;margin:1rem 0 .75rem;display:flex}.section-sub,.add-hint{margin:.25rem 0 0;font-size:.9rem}.lot-list.single .lot-card{background:var(--field)}.qty-controls{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.35rem;display:flex}.qty-input{text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;width:4.5rem}.qty-input::-webkit-outer-spin-button{appearance:none;margin:0}.qty-input::-webkit-inner-spin-button{appearance:none;margin:0}.lot-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, var(--field), #f7efe4);padding:.85rem .95rem}.lot-card.expanded{border-color:color-mix(in srgb, var(--primary) 35%, var(--line))}.lot-main{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.lot-info{min-width:0}.lot-title{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;display:flex}.lot-info .muted{margin:.2rem 0 0}.lot-inline-form{border-top:1px solid var(--line);margin-top:.85rem;padding-top:.85rem}.lot-inline-actions{justify-content:space-between;width:100%}.lot-inline-actions-right{gap:.5rem;margin-left:auto;display:flex}.lot-add-panel{margin-top:.75rem}.lot-add-panel h3{margin-bottom:.75rem}.btn.linkish{width:fit-content;color:var(--primary);border:none;justify-self:start;padding-left:0;padding-right:0;font-weight:500}.item-meta-block{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:.75rem}.item-meta-toggle{cursor:pointer;width:100%;font:inherit;color:var(--ink);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .15rem;font-weight:600;display:flex}.item-meta-panel{margin-top:.5rem;margin-bottom:0}.item-delete-btn{width:100%;margin-top:.85rem}.alert-group{margin-bottom:1.5rem}.alert-group-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem;display:flex}.alert-group-head h2{margin:0}.alert-group .count{color:var(--muted);font-size:.95rem;font-weight:500}.panel h2+.settings-rename-form,.panel h2+.settings-tags{margin-top:1.1rem}.settings-rename-form+.settings-tags{margin-top:.85rem}.settings-tags+.inline-form{margin-top:1rem}.settings-rename-form{width:100%;margin:0}@media (width<=720px){.filters,.form-row{grid-template-columns:1fr}.lot-main{flex-wrap:wrap}.lot-main .qty-controls{justify-content:flex-start;width:100%}.app-main{padding:1rem}}
