:root{--bg:#f5f7f3;--bg-alt:#eaf0ea;--panel:#fffffff0;--panel-soft:#f8faf8;--primary:#1f6f5f;--primary-dark:#174f46;--secondary:#dfe9d4;--secondary-strong:#bfd4af;--accent:#c98b5d;--text:#1f2a2a;--muted:#5c6d67;--border:#d7e0d9;--danger:#b84a4a;--danger-soft:#f8e2e2;--shadow:#192b271f;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:linear-gradient(135deg, var(--bg) 0%, var(--bg-alt) 100%);min-width:320px}button,input,textarea,select{font:inherit}main{min-height:100vh;padding:2rem}.auth-page,.dashboard-page{justify-content:center;align-items:center;display:flex}.auth-page{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;min-height:100svh;padding:0;display:grid}.panel{background:var(--panel);border:1px solid var(--border);width:min(100%,1100px);box-shadow:0 20px 45px var(--shadow);border-radius:22px}.auth-panel{z-index:1;grid-area:1/1;justify-self:center;max-width:500px;padding:2rem}.auth-scene{background:#183c26;grid-area:1/2;min-width:0;min-height:100svh;margin:0;position:relative;overflow:hidden}.scene-photo{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.auth-scene--pencil{background:#eee9d4}.scene-pencil-colour,.scene-pencil-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scene-pencil-colour{z-index:0;filter:saturate(.94)sepia(.05)contrast(1.035)brightness(1.015)}.scene-pencil-lines{z-index:1;overflow:visible}.pencil-stroke{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(.45px .55px #3d312247);animation:pencil-stroke-draw 1.04s cubic-bezier(.32, .05, .55, 1) var(--stroke-delay) both}.pencil-stroke--leaf,.pencil-stroke--vein{stroke:#596548;stroke-width:2.25px;opacity:.83}.pencil-stroke--wing-left,.pencil-stroke--wing-right,.pencil-stroke--lower-wing{stroke:#544737;stroke-width:2.7px;opacity:.91}.pencil-stroke--wing-line{stroke:#655943;stroke-width:1.8px;opacity:.78}.pencil-stroke--body,.pencil-stroke--body-line{stroke:#403a31;stroke-width:2.8px;opacity:.88}.pencil-stroke--stem{stroke:#66714a;stroke-width:2.1px;opacity:.82}.pencil-stroke--flower{stroke:#76503c;stroke-width:2.4px;opacity:.87}@keyframes pencil-stroke-draw{to{stroke-dashoffset:0}}.panel-header{margin-bottom:1.5rem}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 .35rem;font-size:.72rem;font-weight:700}h1{margin:0;font-size:clamp(2rem,3vw,2.75rem)}h2{margin-top:0}.mode-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.toggle,.primary-button,.secondary-button{cursor:pointer;border:none;border-radius:10px;transition:transform .2s,opacity .2s}.toggle{background:var(--secondary);color:var(--text);padding:.8rem 1rem;font-weight:600}.toggle.active{background:var(--primary);color:#fff}.auth-form,.inventory-form{flex-direction:column;gap:1rem;display:flex}label{color:#334155;flex-direction:column;gap:.5rem;font-weight:600;display:flex}input,textarea,select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;padding:.85rem 1rem}input:focus,textarea:focus{border-color:#3b82f6;outline:2px solid #3b82f633}.primary-button,.secondary-button,.mini-button{padding:.85rem 1.2rem;font-weight:700}.primary-button{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff}.secondary-button{background:var(--secondary);color:var(--text)}.mini-button{background:var(--secondary);color:var(--text);padding:.45rem .7rem;font-size:.8rem}.mini-button.danger{background:var(--danger-soft);color:var(--danger)}.primary-button:hover,.secondary-button:hover,.toggle:hover,.mini-button:hover{transform:translateY(-1px)}.error-message{color:var(--danger);margin:0;font-weight:600}.barcode-open-button{align-self:flex-start}.barcode-scan-message{border:1px solid var(--border);background:var(--bg-alt);color:var(--primary-dark);border-radius:8px;margin:0;padding:.65rem .8rem}.barcode-scanner{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.barcode-scanner-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.barcode-scanner-header h3,.barcode-scanner-header p{margin:0}.barcode-scanner-header h3{font-size:1rem}.barcode-scanner-header p{color:var(--muted);margin-top:.2rem;font-size:.875rem}.barcode-video-frame{aspect-ratio:16/9;background:#17231b;width:100%;position:relative;overflow:hidden}.barcode-video-frame video{object-fit:cover;width:100%;height:100%;display:block}.barcode-scan-guide{pointer-events:none;border:2px solid #ffffffe6;border-radius:8px;position:absolute;inset:25% 12%;box-shadow:0 0 0 999px #0000001f}.barcode-camera-status{color:#fff;text-align:center;background:#0f1712b8;margin:0;padding:.5rem;position:absolute;inset:auto 0 0}.barcode-scanner-error{color:var(--danger);margin:0;font-size:.9rem}.category-picker{font-weight:400;position:relative}.category-picker-control{position:relative}.category-picker-control input{padding-right:3rem}.category-picker-toggle{background:var(--panel-soft);width:3rem;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-left:1px solid #cbd5e1;border-radius:0 9px 9px 0;padding:0;font-size:1.35rem;line-height:1;position:absolute;top:1px;bottom:1px;right:1px}.category-picker-toggle[aria-expanded=true]{color:var(--primary)}.category-picker-list{z-index:10;overscroll-behavior:contain;border:1px solid var(--border);max-height:16rem;box-shadow:0 12px 28px var(--shadow);background:#fff;border-radius:10px;margin:0;padding:.35rem 0;list-style:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow-y:auto}.category-picker-option{color:var(--text);cursor:pointer;padding:.7rem 1rem}.category-picker-option:hover,.category-picker-option.active{background:var(--bg-alt)}.category-picker-option.selected{color:var(--primary-dark);font-weight:700}.mobile-view-toggle{display:none}.dashboard-panel{padding:2rem}.dashboard-header,.welcome-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.welcome-row{color:var(--muted);margin:1.5rem 0}.welcome-row span{color:var(--text);font-weight:700}.content-grid{grid-template-columns:minmax(260px,1fr) minmax(260px,1.2fr);gap:1.5rem;display:grid}.inventory-form,.inventory-list{background:var(--panel-soft);border:1px solid var(--border);border-radius:18px;padding:1.25rem}.inventory-filters{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"search clear""category meal";align-items:end;gap:.65rem;margin-bottom:1rem;display:grid}.inventory-search-field{grid-area:search}.inventory-category-field{grid-area:category}.inventory-meal-field{grid-area:meal}.inventory-filters label{min-width:0;font-size:.9rem}.inventory-filters input,.inventory-filters select{padding:.65rem .75rem}.inventory-filter-clear{white-space:nowrap;grid-area:clear;justify-self:end;padding:.65rem .8rem}.meal-type-group{border:0;min-width:0;margin:0;padding:0}.meal-type-group legend{color:#334155;margin-bottom:.5rem;padding:0;font-weight:600}.meal-type-options{flex-wrap:wrap;gap:.45rem;display:flex}.meal-type-option{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .65rem;font-size:.9rem;font-weight:500;display:flex}.meal-type-option input{width:auto;accent-color:var(--primary);margin:0}.inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.inventory-list ul{overscroll-behavior:contain;flex-direction:column;gap:.85rem;max-height:35rem;margin:1rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.meal-ingredient-scroll{overscroll-behavior:contain;max-height:35rem;overflow-y:auto}.meal-ingredient-scroll ul{max-height:none;overflow:visible}.meal-ingredient-group h3{margin:0;font-size:1rem}.meal-ingredient-group+.meal-ingredient-group{margin-top:1.25rem}.inventory-item{border:1px solid var(--border);background:#fff;border-radius:12px;padding:.9rem 1rem}.inventory-headline{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.inventory-headline>div,.inventory-actions{align-items:center;gap:.5rem;display:flex}.inventory-item span,.inventory-item p,.inventory-item small,.empty-state{color:var(--muted)}.inventory-item p,.inventory-item small{margin:.5rem 0 0}.action-row{align-items:center;gap:.75rem;display:flex}.empty-state{margin:1rem 0 0}@media (prefers-reduced-motion:reduce){.pencil-stroke{stroke-dashoffset:0;animation:none}}@media (width<=760px){main{padding:1rem}.auth-page{grid-template-rows:minmax(210px,32svh) auto;grid-template-columns:minmax(0,1fr);align-content:start;gap:1rem;padding:1rem}.auth-scene{grid-area:1/1;align-self:stretch;height:100%;min-height:0;margin:-1rem -1rem 0}.auth-panel{grid-area:2/1;width:min(100%,500px);padding:1.5rem}.content-grid,.inline-fields{grid-template-columns:1fr}.mobile-view-toggle{z-index:20;background:#fff;border-radius:12px;margin:0 -.5rem 1rem;padding:.5rem;display:grid;position:sticky;top:0}.mobile-view-inventory .inventory-form,.mobile-view-form .inventory-list{display:none}.inventory-list ul,.meal-ingredient-scroll{max-height:none;overflow:visible}.dashboard-panel{padding:1.25rem}.category-picker-option{padding:.8rem 1rem}.inventory-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-header,.welcome-row{flex-direction:column;align-items:flex-start}}
