@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;font-size:16px;line-height:1.5;color-scheme:light dark;--bg:light-dark(#f5f5ee,#181e1b);--paper:light-dark(#fff,#242d28);--ink:light-dark(#243c31,#e6eee8);--muted:light-dark(#596b60,#b4c4b8);--line:light-dark(#dce3da,#425248);--accent:light-dark(#35664c,#9ccbaa);--accent-ink:light-dark(#fff,#182a20);--error:light-dark(#a12721,#ffb0a6);background:var(--bg);color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:10px 15px;min-height:44px}button:hover{border-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.5}button.primary,nav button.active{background:var(--accent);color:var(--accent-ink);border-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1:focus{outline:none}a{color:var(--accent);text-underline-offset:3px}.app{max-width:1200px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px 32px;border-bottom:1px solid var(--line)}.brand{font:500 2rem Georgia,serif;text-decoration:none;color:var(--ink)}nav{display:flex;gap:8px;flex-wrap:wrap}.local-badge{font-size:.8125rem;color:var(--muted)}main{padding:24px 32px 36px}h1{font:400 clamp(2rem,4vw,2.7rem)/1.15 Georgia,serif;letter-spacing:-.025em;margin:18px 0 26px}h2{font-size:1.25rem;font-weight:500;margin:0 0 16px}h3{font-size:1rem;font-weight:500;margin:0 0 8px}p{margin:0 0 16px}small,.small{font-size:.8125rem;color:var(--muted)}.muted{color:var(--muted);font-size:.875rem}.storage-note{font-size:.8125rem;color:var(--muted);margin-bottom:16px}.datebar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.date-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.date-controls input{width:auto;padding:8px 10px;min-width:0}.macro-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.macro-grid .nutrient{background:var(--paper);border-radius:18px;padding:18px;margin:0}.nutrient{min-width:0;margin:0 0 24px}.nutrient-label{font-size:.875rem;color:var(--muted);margin-bottom:5px}.quantity{display:flex;align-items:baseline;column-gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums}.quantity strong{font-size:1.75rem;font-weight:500;line-height:1.25}.quantity span{color:var(--muted);font-size:.8125rem}.macro-grid .quantity{display:block}.macro-grid .quantity span{display:block;margin-top:4px}.track{height:6px;background:var(--line);border-radius:6px;margin:12px 0 8px;overflow:hidden}.fill{height:100%;background:var(--accent)}.incomplete .fill{opacity:.55}.no-target,.nutrient-note{display:block;margin-top:8px}.nutrient-note{font-size:.8125rem}.missing{color:var(--muted);font-size:.8125rem}.missing summary{min-height:44px;cursor:pointer;padding:8px 0}.missing p{margin-top:4px}.goal-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.8125rem;margin:4px 0 18px}.text-button{border:0;background:transparent;color:var(--accent);padding:10px 0}.columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}.columns.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:24px;background:var(--paper);border-radius:18px;min-width:0}.section-heading,.meal-heading,.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.section-heading h2{margin:0}.meal{margin-top:24px}.meal-heading{color:var(--muted);font-size:.8125rem}.meal-heading h3{font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;margin:0}.food-row{display:flex;gap:14px;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.food-row>div:first-child{min-width:0;overflow-wrap:anywhere}.food-row small{display:block;margin-top:4px}.row-actions{display:flex;gap:6px;flex-shrink:0}.row-actions button{padding:8px 10px}.meal-totals{display:block;padding-top:10px}.full{width:100%;margin-top:18px}.empty{padding:28px 0;color:var(--muted)}.empty h3{color:var(--ink)}.empty p{max-width:36ch;margin:0}.check{display:flex;gap:10px;align-items:center;min-height:44px;margin:20px 0 0}.check input{width:20px;min-height:20px;height:20px;accent-color:var(--accent)}input,select{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:46px}label{display:block;font-size:.875rem;margin-bottom:10px}label input,label select{display:block;margin-top:7px;font-size:1rem}.form-grid,.micro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid{margin:20px 0 4px}.result{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0;padding:16px}.result>span:first-child{min-width:0;overflow-wrap:anywhere}.result small{display:block;margin-top:4px}.result-kcal{flex-shrink:0;font-size:.875rem;white-space:nowrap;color:var(--muted)}.result-kcal span{margin-left:10px;color:var(--accent)}.product-title{margin-top:24px}.source-note,.alert{padding:16px;border-radius:12px;background:var(--paper);margin:16px 0;border-left:3px solid var(--accent);font-size:.875rem}.panel .source-note{background:var(--bg)}.alert{border-color:var(--error)}.alert button{margin:4px}.error{color:var(--error);margin:16px 0}.notice{color:var(--accent);font-size:.875rem}.notice:not(:empty){padding:12px 0}.notice button{margin-left:12px}.product-details{margin-top:20px}.product-details>summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--accent)}.product-details .micro-grid{background:var(--paper);padding:24px;border-radius:18px}.actions{display:flex;gap:10px;flex-wrap:wrap}.backup{margin-top:24px}.backup input[type=file]{max-width:100%;font-size:.875rem}footer{border-top:1px solid var(--line);padding:20px 32px 30px;color:var(--muted);font-size:.75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:680px){header{padding:18px;gap:12px}header nav{order:3;width:100%}nav button{flex:1;padding:10px 8px}main{padding:18px}.columns,.columns.equal{grid-template-columns:1fr}.macro-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.macro-grid .nutrient{padding:16px}.panel{padding:18px}.page-heading{align-items:start}.page-heading h1{margin-bottom:12px}.result{padding:12px}.result-kcal span{display:none}.micro-grid{grid-template-columns:1fr}.goal-caption{gap:0}.goal-caption .text-button{padding-top:4px}.datebar{gap:8px}.datebar>.muted{width:100%}.row-actions button{padding:8px}.product-details .micro-grid{padding:18px}footer{padding:18px}.form-grid{gap:12px}}@media(max-width:370px){.form-grid{grid-template-columns:1fr}.food-row{flex-wrap:wrap}.row-actions{margin-left:auto}.result{align-items:start}.result-kcal{white-space:normal;max-width:65px;text-align:right}}:root{color-scheme:light;--bg:#e8e9e7;--paper:#fafbf9;--ink:#2c3531;--muted:#5d6661;--line:#d2d7d3;--accent:#35664c;--accent-ink:#fff;--error:#a12721;background-color:var(--bg);background-image:radial-gradient(ellipse at 15% 20%,#ffffff30,transparent 65%),repeating-linear-gradient(125deg,#3a403703 0px,#3a403703 1px,transparent 1px,transparent 4px)}.micro .quantity{gap:5px;font-size:.9375rem;line-height:1.5}.micro .quantity strong,.micro .quantity span{font-size:inherit;line-height:inherit;font-weight:400;color:var(--ink)}.unit-help,.save-meal{margin:12px 0 20px}.unit-help>summary,.save-meal>summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--accent);font-size:.875rem}.unit-help p{max-width:65ch;font-size:.875rem;color:var(--muted)}.saved-destination{max-width:300px;margin-bottom:24px}.saved-ingredients{padding-left:20px;margin:0 0 24px}.saved-ingredients li{margin-bottom:8px}.save-meal form{padding:12px;background:var(--bg);border-radius:12px}
