:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#25332c;background:#f5f5f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #25332c;--muted: #7b857e;--line: #e7e9e2;--paper: #ffffff;--green: #315c45;--green-dark: #254936;--green-pale: #e8f0e8;--amber-pale: #fff3db}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;padding:27px 17px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 31px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:var(--green-pale);color:var(--green)}.brand strong{display:block;font-size:15px;letter-spacing:-.2px}.brand small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;border:0;border-radius:10px;background:transparent;color:#647168;padding:12px 13px;font-size:13px;text-align:left;transition:background .15s,color .15s}.nav-item:hover{background:#f6f7f3;color:var(--ink)}.nav-item.active{background:var(--green-pale);color:var(--green-dark);font-weight:650}.nav-end{margin-left:auto}.sidebar-note{margin:auto 5px 17px;display:flex;gap:9px;align-items:flex-start;color:#78847b;font-size:11px;line-height:1.55;padding:13px 10px;background:#f7f8f4;border-radius:10px}.sidebar-note svg{flex-shrink:0;margin-top:1px}.sidebar-footer{display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--muted);font-size:10px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%}.dot.green{background:#4d9a67}.dot.amber{background:#d89a34}.main{margin-left:248px;padding:34px clamp(20px,3.2vw,48px) 24px;max-width:1680px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:750;color:#89948b}h1{margin:6px 0 0;font-size:27px;letter-spacing:-1px;font-weight:680}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid transparent;border-radius:9px;padding:10px 14px;font-size:12px;font-weight:650;transition:background .15s,transform .15s;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{background:var(--green);color:#fff}.button.primary:hover:not(:disabled){background:var(--green-dark)}.button.secondary{background:#fff;border-color:var(--line);color:#536257}.button.secondary:hover:not(:disabled){background:#f8f9f5}.notice,.status{display:flex;align-items:flex-start;gap:12px;margin:0 0 20px;padding:14px 16px;border-radius:11px;font-size:12px;line-height:1.55}.notice{color:#715a2d;background:var(--amber-pale)}.notice svg{flex-shrink:0;margin-top:1px}.notice strong{display:block;font-size:12px}.notice p{margin:4px 0 0;max-width:900px}.status{display:block;color:var(--green-dark);background:var(--green-pale)}.welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;color:#fff;background:linear-gradient(110deg,#2b513c,#416a4d);border-radius:17px;padding:29px 32px;margin-bottom:20px;overflow:hidden}.eyebrow.light{color:#b6d1b8}.welcome h2{margin:11px 0 8px;max-width:570px;font-size:clamp(22px,2.5vw,31px);letter-spacing:-1.05px;line-height:1.16;font-weight:630}.welcome p{margin:0;max-width:540px;font-size:12px;color:#e2ece3;line-height:1.6}.welcome-icon{flex-shrink:0;width:82px;height:82px;display:grid;place-items:center;border:1px solid #709078;border-radius:27px;background:#54775d;color:#e5f0e6;transform:rotate(-5deg)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}.metric{min-width:0;padding:17px 17px 16px;background:var(--paper);border:1px solid var(--line);border-radius:13px}.metric-top{display:flex;align-items:center;gap:8px;min-height:26px;margin-bottom:12px}.metric-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#f0f4ed;color:var(--green)}.metric-icon svg{width:15px;height:15px}.metric-label{color:#79837b;font-size:10px;line-height:1.3}.metric>strong{display:block;font-size:24px;font-weight:680;letter-spacing:-.8px;overflow-wrap:anywhere}.metric>small{display:block;margin-top:7px;color:#8b948d;font-size:10px;line-height:1.45}.content-grid,.two-col{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:17px}.panel{min-width:0;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:13px}.panel-title{margin-bottom:19px}.panel-title h2{margin:0;font-size:14px;letter-spacing:-.25px;font-weight:680}.panel-title p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.store-list{display:grid}.store-row{display:flex;align-items:center;gap:11px;padding:11px 1px;border-bottom:1px solid #f0f1ed;transition:opacity .15s}.store-row:last-child{border-bottom:0}a.store-row:hover{opacity:.72}.store-avatar{flex-shrink:0;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:var(--green);background:#edf3ec;font-size:13px;font-weight:750}.grow{flex:1;min-width:0}.store-row strong,.pantry-row strong{display:block;color:#34433a;font-size:12px;font-weight:650}.store-row small,.pantry-row small{display:block;margin-top:4px;color:#929a93;font-size:10px}.store-row>svg{color:#a4ada5}.field-label{display:block;margin-bottom:7px;color:#6f7a70;font-size:11px;font-weight:650}.inline-form{display:flex;align-items:center;gap:8px}input,select{width:100%;min-width:0;color:var(--ink);border:1px solid #dfe4dc;background:#fff;border-radius:8px;padding:10px 11px;font-size:12px;outline:none}input:focus,select:focus{border-color:#6f9a79;box-shadow:0 0 0 3px #e7f0e7}.hint{display:flex;align-items:flex-start;gap:7px;margin-top:14px;color:#879187;font-size:10px;line-height:1.55}.hint svg{flex-shrink:0;margin-top:1px;color:#75947b}.upload-area{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;border:1px dashed #cbd7ca;border-radius:11px;background:#fafbf8;text-align:center;color:#719077}.upload-area strong{color:#435747;font-size:13px}.upload-area span{color:#8f9a90;font-size:10px}.upload-area input{max-width:100%;margin:6px 0;font-size:11px}.selected-file{max-width:100%;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:11px}.form-stack{display:grid;gap:10px}.form-stack .field-label{margin-bottom:-4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row>div{min-width:0}.pantry-list{display:grid}.pantry-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #f0f1ed}.pantry-row:last-child{border-bottom:0}.product-icon{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--green);background:#f0f4ed}.quantity{color:#53685a;font-size:11px;font-weight:650;white-space:nowrap}.empty{display:flex;align-items:center;gap:9px;padding:18px 0 5px;color:#9aa39b;font-size:11px;line-height:1.5}.empty-large{min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;color:#7a967e}.empty-large h3{margin:14px 0 7px;color:#394b3d;font-size:16px;letter-spacing:-.3px}.empty-large p{max-width:480px;margin:0 0 16px;color:#89928b;font-size:11px;line-height:1.7}.main-footer{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:25px;padding:15px 2px 0;border-top:1px solid #e5e8e1;color:#9aa198;font-size:10px}.main-footer span{text-align:right}@media(max-width:1120px){.sidebar{width:215px}.main{margin-left:215px;padding-inline:22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:13px 14px 10px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0 4px 12px}.sidebar nav{display:flex;overflow-x:auto;gap:4px;padding-bottom:1px}.nav-item{flex:0 0 auto;padding:10px 11px;gap:7px;font-size:11px}.nav-item svg{width:16px;height:16px}.nav-end,.sidebar-note,.sidebar-footer{display:none}.main{margin-left:0;padding:22px 14px 20px}.topbar{margin-bottom:18px}h1{font-size:23px}.welcome{padding:23px 21px}.welcome-icon{width:52px;height:52px;border-radius:17px}.welcome-icon svg{width:29px;height:29px}.metric-grid{gap:9px}.metric{padding:13px}.metric>strong{font-size:21px}.content-grid,.two-col{grid-template-columns:1fr;gap:12px}.panel{padding:17px}.main-footer{flex-direction:column}.main-footer span{text-align:left}}@media(max-width:390px){.nav-item{padding-inline:8px}.nav-item span{font-size:10px}.welcome-icon{display:none}.welcome h2{font-size:23px}.metric-grid{grid-template-columns:1fr 1fr}.metric-label{font-size:9px}.metric>strong{font-size:19px}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f5f0}.auth-card{width:min(100%,420px);padding:30px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 40px #25332c0d}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:27px}.auth-brand strong{display:block;font-size:15px}.auth-brand small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.auth-card h1{margin:0 0 8px;font-size:24px}.auth-card>p{margin:0 0 22px;color:var(--muted);font-size:12px;line-height:1.6}.auth-card code{font-size:11px}.auth-form{display:grid;gap:9px}.auth-form label{margin-top:6px;color:#536257;font-size:11px;font-weight:650}.auth-form .button{margin-top:9px}.auth-error,.auth-inline-error{color:#9a3e36!important;background:#fff0ee;border-radius:8px;padding:10px 12px;font-size:11px!important;line-height:1.5}.auth-card .auth-footnote{margin:17px 0 0;font-size:10px}.authenticated-app{min-height:100vh}.account-bar{display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:10px clamp(14px,3.2vw,48px);color:#67736a;background:#fff;border-bottom:1px solid var(--line);font-size:11px}.account-bar .button{padding:7px 10px}.auth-inline-error{margin:10px 20px 0}@media(max-width:760px){.account-bar{padding-inline:14px}.auth-card{padding:24px}}
