:root{font-family:Helvetica Neue,Arial,sans-serif;color:#222631;background:#f8f7f4;--paper: #fff;--paper-soft: #fbfaf7;--ink: #222631;--muted: #666b73;--navy: #111a35;--accent: #465d82;--accent-soft: #e7ebf2;--rule: #31343a;--line: #d7d5cf;--danger: #8b3d47;--warning: #9a6b18;--shadow: 0 12px 32px #18203316}:root[data-theme=midnight]{color:#eef1f6;background:#08111f;--paper: #111d33;--paper-soft: #0c1729;--ink: #eef1f6;--muted: #b9c5d8;--navy: #d7e3f7;--accent: #89a9d4;--accent-soft: #203351;--rule: #70809a;--line: #344663;--danger: #ffb4ab;--warning: #ffe0a3;--shadow: 0 16px 45px #0006}*{box-sizing:border-box}body{margin:0;background:inherit;color:inherit}button,input,select{font:inherit}main{min-height:100vh;max-width:1180px;margin:auto;padding:26px 28px 70px}.site-header{position:relative;text-align:center;padding:30px 0 36px;border-bottom:1px solid var(--rule);margin-bottom:54px}.site-header h1{margin:0;color:var(--navy);font:italic 400 clamp(2.45rem,6vw,4.25rem)/1.08 "Brush Script MT","Segoe Script","URW Chancery L",cursive;letter-spacing:-.055em}.site-header h1 span{font-weight:400}.tagline{margin:11px 0 0;color:var(--muted);font:.72rem/1.4 Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase}.header-actions{position:absolute;top:0;right:0;display:flex;gap:6px}h2,h3{color:var(--ink);font-family:Georgia,Times New Roman,serif}h2{font-weight:400;font-size:1.75rem}.eyebrow,.source{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:700}.scan-card,.inventory-panel{width:min(100%,780px);margin:0 auto;background:var(--paper);border:1px solid var(--rule);border-radius:0;padding:clamp(18px,4vw,34px);box-shadow:var(--shadow)}.sign-in-card{max-width:520px;text-align:center}.sign-in-card h2{margin:12px 0 24px}.step{margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--navy);font:400 1.55rem Georgia,serif}.viewfinder{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--rule);border-radius:0;display:grid;place-items:center;color:var(--muted);background:#080b10}.viewfinder video{width:100%;height:100%;object-fit:cover}.viewfinder i{position:absolute;width:82%;height:34%;border:2px solid #eef3fb;border-radius:2px;box-shadow:0 0 0 999px #0005}.scanner:not(.active) .viewfinder i{display:none}.camera-status{min-height:2.5em;color:var(--muted);font-size:.82rem;margin:.65rem 0}.camera-button{width:100%;margin-bottom:22px}label{display:block;color:var(--muted);font-size:.78rem;margin-bottom:7px;text-transform:uppercase;letter-spacing:.055em}.entry{display:flex;gap:8px}input,select{min-width:0;width:100%;background:var(--paper);color:var(--ink);border:1px solid #9b9da1;border-radius:0;padding:12px 13px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}button{border:1px solid var(--accent);border-radius:0;background:var(--accent);color:#fff;padding:11px 16px;font-weight:700;cursor:pointer}button:hover:not(:disabled){filter:brightness(.92)}button:disabled{opacity:.48;cursor:default}.error{color:var(--danger)}.success{color:var(--accent)}.quiet{background:transparent;color:var(--accent);border-color:transparent;padding:.4rem .55rem}.confirm-fields{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;margin:1rem 0}.confirm-fields input{margin-top:.35rem}.full-field{grid-column:1 / -1}.result{margin-top:22px;border-top:1px solid var(--rule);padding-top:22px}.result h2{margin:5px 0;font-size:1.25rem}.product{display:grid;grid-template-columns:92px 1fr;gap:18px}.product img{width:92px;height:92px;object-fit:contain;background:#fff;border:1px solid var(--line)}.confirm{margin-top:6px}nav{position:absolute;top:171px;left:50%;transform:translate(-50%);width:min(calc(100% - 56px),1180px);display:flex;justify-content:center;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);z-index:3}nav button{min-width:150px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--ink);padding:14px 20px 11px;font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em}nav .active{color:var(--navy);border-bottom-color:var(--accent);background:transparent}.section-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}.section-heading h2{margin:.25rem 0 0}.inventory-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.inventory-controls label{margin:0}.inventory-controls select{margin-top:5px}.inventory-list{margin:20px 0;border-top:1px solid var(--rule)}.inventory-item{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:17px 10px;border-bottom:1px solid var(--line)}.inventory-item img,.image-placeholder{width:62px;height:62px;border-radius:0;object-fit:contain;background:#fff;border:1px solid var(--line)}.image-placeholder{display:grid;place-items:center;color:#111a35;font-family:Georgia,serif;font-weight:700}.item-copy h3{margin:0;font-size:1.06rem;font-weight:400}.item-copy p{color:var(--muted);margin:.35rem 0}.item-copy small{color:var(--accent)}.item-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:7px}.item-actions button{padding:7px 11px;font-size:.78rem}.danger,.item-actions .danger,.product-actions .danger{background:transparent;border-color:var(--danger);color:var(--danger)}.empty{color:var(--muted);text-align:center;padding:2rem 0}.history-toggle{width:100%;margin-top:8px;background:var(--accent-soft);border-color:var(--line);color:var(--navy)}.history-list>div{display:grid;grid-template-columns:1fr auto;padding:13px 2px;border-bottom:1px solid var(--line)}.history-list small,.history-list p{grid-column:1 / -1;color:var(--muted);margin:.3rem 0 0}.positive{color:var(--accent)}.negative{color:var(--danger)}.modal-backdrop{position:fixed;z-index:10;inset:0;display:grid;place-items:center;background:#080b10b8;padding:18px}.adjust-card{width:min(100%,560px);margin:0 auto;background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:0;padding:26px;box-shadow:0 20px 70px #0008}.adjust-card h3{font-size:1.5rem;font-weight:400}.adjust-card input,.adjust-card select{margin:.35rem 0 .9rem}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.panel-note{color:var(--muted);line-height:1.55}.recipe-list{display:grid;gap:16px;margin-top:20px}.recipe-card{padding:20px;border:1px solid var(--rule);border-radius:0;background:var(--paper-soft)}.recipe-card.ready{border-left:5px solid var(--accent)}.recipe-card>img{width:100%;max-height:240px;object-fit:cover;border-radius:0;margin-bottom:14px}.recipe-card h3{margin:.4rem 0 .8rem;font-size:1.35rem;font-weight:400}.recipe-card p{color:var(--muted)}.mapping-list{display:grid;gap:8px;margin-top:12px}.mapping-list label{padding-top:10px;border-top:1px solid var(--line)}.mapping-list select{margin-top:5px}.recipe-link{display:inline-block;margin-top:12px;color:var(--accent);font-weight:700}.label-capture>p{color:var(--muted)}.file-button{display:block;text-align:center;border:1px solid var(--accent);border-radius:0;background:var(--accent-soft);color:var(--navy);padding:13px;font-weight:700;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.label-preview{display:block;width:100%;max-height:260px;object-fit:contain;background:#080b10;border-radius:0;margin:12px 0}.label-capture>button{width:100%;margin-top:10px}.ocr-fields{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.ocr-fields>label input{margin:.35rem 0 .8rem}.ocr-fields details{margin-top:14px;color:var(--accent)}.ocr-fields pre{white-space:pre-wrap;color:var(--muted);font:.78rem/1.4 ui-monospace,monospace}.ingredient-row{padding-top:10px;border-top:1px solid var(--line)}.ingredient-row label{margin:0}.ingredient-actions{display:flex;gap:8px;margin-top:7px}.ingredient-actions button{flex:1;padding:9px 10px;font-size:.78rem}.ingredient-actions .quiet-action{background:var(--accent-soft);border-color:var(--line);color:var(--navy)}.ignored{font-size:.82rem;color:var(--muted)}.existing-product{margin-top:1rem;padding:14px;background:var(--paper-soft);border:1px solid var(--line)}.existing-product select{margin:.45rem 0 .55rem}.existing-product small{display:block;color:var(--muted);line-height:1.35;text-transform:none;letter-spacing:normal}.product-toggle{margin:8px 0}.product-list{display:grid;gap:12px;margin:12px 0 18px}.product-list>label input{margin-top:5px}.product-management-item{padding:16px;border:1px solid var(--rule);border-radius:0;background:var(--paper-soft)}.product-management-item small{display:block;color:var(--accent);margin-top:3px}.product-management-item p{color:var(--muted);font-size:.78rem;line-height:1.4;margin:7px 0 10px}.product-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:8px}.product-actions button{padding:7px 10px;font-size:.75rem}.inventory-item.low-stock{box-shadow:inset 3px 0 var(--warning)}.inventory-item.expiring{box-shadow:inset 3px 0 #c36f2d}.inventory-item.expired{box-shadow:inset 3px 0 var(--danger)}.stock-badge{display:inline-block;margin-left:8px;padding:2px 7px;border:1px solid var(--warning);color:var(--warning);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.lot-details{grid-column:1 / -1;margin-top:9px;color:var(--accent);font-size:.78rem}.lot-details summary{cursor:pointer;font-weight:700}.lot-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);color:var(--muted)}.lot-row button{padding:6px 9px;font-size:.72rem;white-space:nowrap}code{color:var(--ink)}@media(max-width:700px){main{max-width:640px;padding:18px 14px 94px}.site-header{padding:24px 0 22px;margin-bottom:24px;border-bottom:1px solid var(--line)}.site-header h1{font-size:clamp(2.25rem,12vw,3.25rem)}.tagline{font-size:.58rem;letter-spacing:.12em}.header-actions{position:static;justify-content:flex-end;margin-bottom:16px}.scan-card,.inventory-panel{padding:18px;border-color:var(--line);box-shadow:none}nav{position:fixed;inset:auto 0 0;transform:none;width:100%;max-width:640px;margin:auto;display:grid;grid-template-columns:.8fr 1fr 1.5fr;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);box-shadow:0 -8px 24px #0002}nav button{min-width:0;padding:11px 5px 9px;font-size:.68rem;letter-spacing:.035em}.product{grid-template-columns:76px 1fr;gap:12px}.product img{width:76px;height:76px}.modal-backdrop{place-items:end center}.adjust-card{padding:20px}}@media(max-width:430px){.inventory-controls,.confirm-fields{grid-template-columns:1fr}.full-field{grid-column:auto}.inventory-item{grid-template-columns:54px 1fr;padding-inline:3px}.inventory-item img,.image-placeholder{width:54px;height:54px}.entry button{padding-inline:11px}}.shopping-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:22px;background:var(--accent-soft);border-color:var(--line);color:var(--navy);text-align:left}.shopping-toggle span{display:grid;place-items:center;min-width:27px;height:27px;padding:0 7px;border:1px solid var(--accent);background:var(--paper);color:var(--accent)}.shopping-panel{border:1px solid var(--rule);border-top:0;background:var(--paper-soft);padding:5px 16px}.shopping-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.shopping-item:last-child{border-bottom:0}.shopping-item label{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--ink);text-transform:none;letter-spacing:normal;font-size:.95rem}.shopping-item input[type=checkbox]{flex:0 0 auto;width:19px;height:19px;margin:1px 0 0;accent-color:var(--accent)}.shopping-item small{display:block;margin-top:4px;color:var(--muted);font-size:.7rem}.shopping-item.checked label span{color:var(--muted);text-decoration:line-through}.shopping-item.checked small{text-decoration:none}.recipe-controls{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--rule)}.recipe-controls label{margin:0}.recipe-controls input,.recipe-controls select{margin-top:5px}.result-count{margin:10px 0 0;color:var(--muted);font-size:.75rem;text-align:right}.add-shopping{margin:0 0 12px;background:var(--accent-soft);border-color:var(--accent);color:var(--navy);font-size:.78rem;padding:8px 11px}@media(max-width:520px){.recipe-controls{grid-template-columns:1fr}.shopping-panel{padding-inline:12px}.shopping-item{grid-template-columns:1fr}.shopping-item>button{justify-self:start;margin-left:29px}}
