
    #prep-app { --p-bg:light-dark(#f5f6f0,#17201b); --p-paper:light-dark(#fffefa,#222e26); --p-ink:light-dark(#253e30,#eef3ed); --p-muted:light-dark(#637267,#adbbb0); --p-line:light-dark(#dce3d8,#415045); --p-accent:light-dark(#315e45,#a5cbb0); --p-onaccent:light-dark(#fffefa,#18281e); --p-soft:light-dark(#e7eee3,#304636); --p-rice:light-dark(#9b7836,#d7bb7b); --p-chicken:light-dark(#ad6746,#e8a987); --p-beef:light-dark(#806286,#c8a4d0); --p-veg:light-dark(#548364,#97c8a6); --p-warning:light-dark(#98621c,#e4bd7f); color:var(--p-ink); font:14px/1.45 "Segoe UI",system-ui,sans-serif; background:var(--p-bg); border:1px solid var(--p-line); border-radius:20px; overflow:clip; isolation:isolate; }
    #prep-app *, #prep-app *::before, #prep-app *::after { box-sizing:border-box; }
    #prep-app [hidden] { display:none !important; }
    #prep-app h1, #prep-app h2, #prep-app h3, #prep-app p { margin:0; }
    #prep-app h1 { font-size:23px; line-height:1.15; font-weight:650; letter-spacing:-.8px; }
    #prep-app h2 { font-size:19px; line-height:1.3; font-weight:600; letter-spacing:-.4px; }
    #prep-app h3 { font-size:14px; font-weight:600; }
    #prep-app button, #prep-app input { font:inherit; line-height:1.3; }
    #prep-app button { cursor:pointer; color:inherit; touch-action:manipulation; }
    #prep-app button:focus-visible, #prep-app input:focus-visible { outline:3px solid var(--p-accent); outline-offset:3px; }
    #prep-app .p-muted { color:var(--p-muted); }
    #prep-app .p-small { font-size:12px; }
    #prep-app .p-top { padding:12px 110px 12px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
    #prep-app .p-brand { display:flex; align-items:center; gap:11px; }
    #prep-app .p-logo { display:grid; place-items:center; width:38px; height:38px; background:var(--p-accent); color:var(--p-onaccent); border-radius:12px; font-size:21px; }
    #prep-app .p-batch { text-align:right; }
    #prep-app .p-batch strong { font-size:17px; font-weight:600; }
    #prep-app .p-tabs { display:flex; gap:6px; padding:0 22px 10px; border-bottom:1px solid var(--p-line); }
    #prep-app .p-tab { flex:1; border:0; background:transparent; padding:11px 8px; border-radius:10px; color:var(--p-muted); min-height:44px; }
    #prep-app .p-tab[aria-selected="true"] { background:var(--p-accent); color:var(--p-onaccent); font-weight:600; }
    #prep-app .p-tab span { margin-right:8px; opacity:.7; }
    #prep-app .p-screen { padding:12px 22px 10px; }
    #prep-app .p-cook-layout { display:grid; grid-template-columns:minmax(0,1fr) 244px; gap:18px; align-items:start; }
    #prep-app .p-cook-main { min-width:0; }
    #prep-app .p-steps-panel { background:var(--p-paper); border:1px solid var(--p-line); border-radius:13px; padding:14px 12px; }
    #prep-app .p-steps-header { display:flex; justify-content:space-between; align-items:center; gap:10px; padding-bottom:10px; margin-bottom:4px; border-bottom:1px solid var(--p-line); }
    #prep-app .p-steps-header h3 { font-size:15px; }
    #prep-app .p-step-progress { color:var(--p-muted); font-size:11px; white-space:nowrap; font-variant-numeric:tabular-nums; }
    #prep-app .p-focus { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; background:var(--p-soft); border-radius:13px; }
    #prep-app .p-eyebrow { font-size:11px; letter-spacing:1.1px; text-transform:uppercase; font-weight:650; color:var(--p-muted); margin-bottom:4px; }
    #prep-app .p-focus h2 { font-size:18px; }
    #prep-app .p-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
    #prep-app .p-button { border:1px solid var(--p-line); background:var(--p-paper); border-radius:9px; padding:9px 12px; min-height:42px; white-space:normal; }
    #prep-app .p-button.p-primary { background:var(--p-accent); color:var(--p-onaccent); border-color:var(--p-accent); font-weight:600; }
    #prep-app .p-button:disabled { opacity:.5; cursor:default; }
    #prep-app .p-timers { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:10px 0 12px; }
    #prep-app .p-timer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 13px; border:1px solid var(--p-line); background:var(--p-paper); border-radius:11px; }
    #prep-app .p-timer-title { font-weight:600; }
    #prep-app .p-timer-value { font-variant-numeric:tabular-nums; font-size:18px; font-weight:600; }
    #prep-app .p-timer[data-status="done"] { background:var(--p-soft); }
    #prep-app .p-timer .p-button { padding:7px 9px; font-size:12px; min-height:38px; }
    #prep-app .p-board-title { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:10px; }
    #prep-app .p-flow { position:relative; }
    #prep-app .p-flow-grid { display:grid; grid-template-columns:.9fr 1.15fr 1.1fr; gap:20px; position:relative; z-index:1; }
    #prep-app .p-lane { min-width:0; }
    #prep-app .p-lane-title { color:var(--p-muted); font-size:11px; text-transform:uppercase; letter-spacing:.65px; padding-bottom:10px; }
    #prep-app .p-lane-content { display:flex; flex-direction:column; gap:10px; min-height:var(--p-flow-height,360px); }
    #prep-app .p-proteins { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(var(--p-variant-count,5),minmax(64px,1fr)); gap:10px; align-items:center; flex:1; }
    #prep-app .p-common { display:grid; gap:8px; padding-top:16px; }
    #prep-app .p-common-label { color:var(--p-muted); font-size:11px; }
    #prep-app .p-lane-content.p-recipe { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(var(--p-variant-count,5),minmax(64px,1fr)); gap:10px; align-items:center; justify-content:stretch; }
    #prep-app .p-recipe .p-node { min-height:46px; }
    #prep-app .p-spread { justify-content:space-between; }
    #prep-app .p-node { width:100%; border:1px solid var(--p-line); border-left:3px solid var(--p-food); border-radius:9px; padding:6px 8px; background:var(--p-paper); text-align:left; min-height:46px; position:relative; transition:opacity .18s,background .18s; }
    #prep-app .p-node strong { display:block; font-size:13px; font-weight:600; }
    #prep-app .p-node small { display:block; color:var(--p-muted); font-size:11px; margin-top:2px; }
    #prep-app [data-food="rice"] { --p-food:var(--p-rice); }
    #prep-app [data-food="chicken"] { --p-food:var(--p-chicken); }
    #prep-app [data-food="beef"] { --p-food:var(--p-beef); }
    #prep-app [data-food="veg"] { --p-food:var(--p-veg); }
    #prep-app .p-node[data-lit="false"], #prep-app .p-box[data-lit="false"] { opacity:.7; }
    #prep-app .p-node[aria-pressed="true"], #prep-app .p-box[aria-pressed="true"] { background:var(--p-soft); outline:2px solid var(--p-accent); outline-offset:2px; }
    #prep-app .p-box-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; align-content:start; }
    #prep-app .p-box { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:9px 10px; background:var(--p-paper); color:var(--p-ink); border:1px solid var(--p-line); border-left:3px solid var(--p-food); border-radius:9px; min-height:64px; text-align:left; position:relative; transition:opacity .18s; }
    #prep-app .p-box-count { font-size:17px; font-weight:600; font-variant-numeric:tabular-nums; }
    #prep-app .p-box-id { font-size:12px; color:var(--p-muted); font-variant-numeric:tabular-nums; }
    #prep-app .p-box strong { display:block; font-size:12px; font-weight:600; }
    #prep-app .p-box small { display:block; color:var(--p-muted); font-size:11px; }
    #prep-app .p-paths { position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; overflow:visible; }
    #prep-app .p-path { fill:none; stroke-width:1.35; }
    #prep-app .p-selection { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; margin-top:10px; padding-top:6px; border-top:1px solid var(--p-line); font-size:12px; }
    #prep-app .p-common-row { display:flex; flex-wrap:wrap; gap:5px 16px; color:var(--p-muted); font-size:11px; padding-top:11px; }
    #prep-app .p-clear { border:0; background:transparent; color:var(--p-accent); padding:6px; min-height:32px; }
    #prep-app .p-footer { display:flex; justify-content:space-between; gap:10px; padding:8px 22px; border-top:1px solid var(--p-line); color:var(--p-muted); font-size:11px; }
    #prep-app .p-detail { padding:12px 16px; margin-top:10px; border:1px solid var(--p-line); background:var(--p-paper); border-radius:11px; }
    #prep-app .p-step { display:flex; align-items:flex-start; gap:8px; padding:10px 7px; min-height:52px; border-radius:9px; }
    #prep-app .p-step input { width:18px; height:18px; accent-color:var(--p-accent); margin:1px 0 0; flex-shrink:0; }
    #prep-app .p-step span { display:block; }
    #prep-app .p-step-title { font-size:12px; font-weight:600; }
    #prep-app .p-step-description { color:var(--p-muted); font-size:11px; margin-top:3px; }
    #prep-app .p-step[data-current="true"] { background:var(--p-soft); }
    #prep-app .p-step[data-done="true"] .p-step-title { color:var(--p-muted); text-decoration:line-through; }
    #prep-app .p-form-layout { display:grid; grid-template-columns:1.25fr 1fr; gap:28px; margin-top:18px; }
    #prep-app .p-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    #prep-app .p-field { display:flex; flex-direction:column; gap:5px; min-width:0; font-size:12px; color:var(--p-muted); }
    #prep-app .p-field input { background:var(--p-paper); border:1px solid var(--p-line); border-radius:9px; color:var(--p-ink); width:100%; min-width:0; min-height:44px; padding:10px 11px; font-size:16px; }
    #prep-app .p-field small { font-size:11px; }
    #prep-app .p-section { margin-top:22px; }
    #prep-app .p-section h3 { margin-bottom:10px; }
    #prep-app .p-flavors { display:flex; flex-wrap:wrap; gap:8px; }
    #prep-app .p-check { display:flex; align-items:center; gap:7px; border:1px solid var(--p-line); border-radius:9px; padding:10px; background:var(--p-paper); min-height:44px; font-size:12px; }
    #prep-app .p-check input { accent-color:var(--p-accent); width:17px; height:17px; }
    #prep-app .p-plan { background:var(--p-paper); border:1px solid var(--p-line); padding:17px; border-radius:13px; align-self:start; }
    #prep-app .p-plan-list { margin:15px 0; }
    #prep-app .p-plan-row { display:grid; grid-template-columns:minmax(0,1fr) 58px 60px; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--p-line); font-size:12px; }
    #prep-app .p-plan-row:last-child { border-bottom:0; }
    #prep-app .p-plan-row strong { font-weight:600; }
    #prep-app .p-plan-name strong { display:block; }
    #prep-app .p-plan-name small { display:block; color:var(--p-muted); font-size:11px; }
    #prep-app .p-nutrient { text-align:right; font-variant-numeric:tabular-nums; }
    #prep-app .p-nutrient strong { display:block; }
    #prep-app .p-nutrient small { display:block; color:var(--p-muted); font-size:11px; }
    #prep-app .p-nutrition-details { margin-top:20px; border-top:1px solid var(--p-line); padding-top:8px; }
    #prep-app .p-nutrition-details summary { padding:10px 0; min-height:44px; font-size:12px; color:var(--p-accent); cursor:pointer; }
    #prep-app .p-nutrition-details table { width:100%; border-collapse:collapse; font-size:11px; margin-top:10px; }
    #prep-app .p-nutrition-details th { font-weight:600; text-align:left; }
    #prep-app .p-nutrition-details th:not(:first-child), #prep-app .p-nutrition-details td:not(:first-child) { text-align:right; }
    #prep-app .p-nutrition-details th, #prep-app .p-nutrition-details td { padding:6px 3px; border-bottom:1px solid var(--p-line); }
    #prep-app .p-note { color:var(--p-muted); font-size:12px; margin-top:12px; }
    #prep-app .p-warning { color:var(--p-warning); font-size:12px; padding-top:10px; }
    #prep-app .p-pack-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:26px; margin-top:18px; }
    #prep-app .p-pack-groups { display:grid; gap:12px; }
    #prep-app .p-pack-group { padding-bottom:12px; border-bottom:1px solid var(--p-line); }
    #prep-app .p-pack-group h3 { margin-bottom:7px; }
    #prep-app .p-pack-checks { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
    #prep-app .p-pack-check { border:1px solid var(--p-line); border-radius:8px; background:var(--p-paper); padding:9px 10px; min-height:42px; font-size:12px; }
    #prep-app .p-pack-check[aria-pressed="true"] { background:var(--p-accent); color:var(--p-onaccent); border-color:var(--p-accent); }
    #prep-app .p-empty { padding:25px 0; color:var(--p-muted); }
    @media (prefers-reduced-motion:reduce) { #prep-app * { transition:none !important; } }
    @media (pointer:coarse) { #prep-app .p-button, #prep-app .p-clear, #prep-app .p-timer .p-button { min-height:44px; } }
    @media (max-width:880px) { #prep-app .p-cook-layout { grid-template-columns:minmax(0,1fr); } #prep-app [data-steps] { display:grid; grid-template-columns:1fr 1fr; gap:2px 12px; } }
    @media (max-width:780px) { #prep-app .p-top { padding-right:100px; } #prep-app .p-flow-grid { gap:24px; grid-template-columns:.85fr 1.15fr 1.1fr; } #prep-app .p-node { padding:8px 6px; } #prep-app .p-box { padding:6px; gap:6px; } #prep-app .p-focus { align-items:flex-start; } #prep-app .p-timer { flex-wrap:wrap; } #prep-app .p-form-layout, #prep-app .p-pack-layout { gap:18px; } }
    @media (max-width:620px) { #prep-app .p-screen { padding:15px 14px; } #prep-app .p-top { padding-left:14px; padding-right:96px; } #prep-app .p-batch { display:none; } #prep-app .p-tabs { padding-left:14px; padding-right:14px; gap:3px; } #prep-app .p-tab { padding:10px 5px; font-size:12px; } #prep-app .p-tab span { margin-right:4px; } #prep-app .p-focus { flex-direction:column; } #prep-app .p-timers { grid-template-columns:1fr; } #prep-app .p-board-title { flex-direction:column; gap:2px; } #prep-app .p-flow-grid { grid-template-columns:1fr; gap:22px; } #prep-app .p-lane-content { min-height:0; } #prep-app .p-proteins { display:flex; flex-direction:column; gap:10px; } #prep-app .p-paths { display:none; } #prep-app .p-form-layout, #prep-app .p-pack-layout { grid-template-columns:1fr; } #prep-app [data-steps] { grid-template-columns:1fr; } #prep-app .p-footer { padding:10px 14px; flex-wrap:wrap; } }
  
:root{color-scheme:light dark;font-family:"Segoe UI",system-ui,sans-serif;background:light-dark(#e9ede5,#101713);color:light-dark(#253e30,#eef3ed)}
body{margin:0;padding:12px}button,input,select,textarea{font:inherit}a{color:inherit}button{touch-action:manipulation}.loading{padding:32px}
#prep-app{max-width:1600px;margin:0 auto;min-height:calc(100dvh - 26px)}
#prep-app .p-top{padding-right:22px}#prep-app .p-header-right{display:flex;align-items:center;gap:22px}
#prep-app .p-logo{padding:0;object-fit:contain;flex-shrink:0}
#prep-app .p-cook-layout{grid-template-columns:minmax(0,1fr) 260px}
#prep-app .p-steps-panel{position:sticky;top:12px}
#prep-app .p-step{cursor:pointer}
#prep-app .p-focus{align-items:flex-start}#prep-app .p-focus .p-button{flex-shrink:0}
#prep-app .p-focus p{margin-top:5px;max-width:850px}
#prep-app .p-lane-title{min-height:27px}
#prep-app .p-node{overflow-wrap:anywhere}#prep-app .p-box{min-height:64px}
#prep-app .p-timer{flex-wrap:wrap;align-items:center}
#prep-app .timer-name{min-width:130px;flex:1}
#prep-app .timer-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
#prep-app .timer-tools{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:-4px 0 14px}
#prep-app .p-timer[data-status="done"]{border-color:var(--p-accent);background:var(--p-soft)}
#prep-app .p-timer-value{white-space:nowrap}
#prep-app .p-link-button{border:0;background:transparent;color:var(--p-accent);padding:7px 6px;min-height:36px;font-size:12px;text-align:left}
#prep-app .p-link-button:hover{text-decoration:underline}
#prep-app .notice{margin:12px 22px 0;padding:11px 14px;background:var(--p-soft);border-radius:9px;font-size:13px}
#prep-app .notice.is-error,#prep-app .form-error{color:var(--p-warning)}
#prep-app .notice[hidden],#prep-app [hidden]{display:none!important}
#prep-app .form-error{font-size:13px;margin-top:12px}
#prep-app .inventory-section{margin-bottom:22px}
#prep-app .section-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
#prep-app .ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--p-line)}
#prep-app .ingredient-row.is-meat{grid-template-columns:minmax(0,1fr) 108px 108px}
#prep-app .ingredient-name{display:block;min-width:0;background:transparent;border:0;padding:8px 0;text-align:left;min-height:44px}
#prep-app .ingredient-name strong{display:block;font-size:13px;font-weight:600;overflow-wrap:anywhere}
#prep-app .ingredient-name small{display:block;font-size:11px;color:var(--p-muted);margin-top:4px}
#prep-app .compact-field{font-size:11px}
#prep-app .compact-field input{padding:9px 8px}
#prep-app .recipe-option{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
#prep-app .recipe-option .p-check{flex:1}
#prep-app .recipe-option .p-check span{overflow-wrap:anywhere}
#prep-app .consumption-list{margin-top:10px}
#prep-app .consumption-list>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:5px 0;border-bottom:1px solid var(--p-line);font-size:11px}
#prep-app .recipe-detail{padding:14px;margin:9px 0;border:1px solid var(--p-line);background:var(--p-paper);border-radius:10px}
#prep-app .weight-fields{margin-top:18px}
#prep-app .p-field select,#prep-app .p-field textarea{width:100%;box-sizing:border-box;min-width:0;padding:10px 11px;min-height:44px;border:1px solid var(--p-line);border-radius:9px;background:var(--p-paper);color:var(--p-ink);font-size:16px}
#prep-app .p-field textarea{resize:vertical;line-height:1.45}
#prep-app .p-check{cursor:pointer}
#prep-app details>summary{cursor:pointer;min-height:32px;padding:5px 0}
#prep-app .p-dialog{box-sizing:border-box;width:min(700px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:22px;border:1px solid var(--p-line);border-radius:16px;background:var(--p-paper);color:var(--p-ink);overflow:auto}
#prep-app .p-dialog::backdrop{background:#10171399;backdrop-filter:blur(3px)}
#prep-app .small-dialog{width:min(480px,calc(100vw - 32px))}
#prep-app .dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
#prep-app .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
#prep-app .dialog-actions .danger-button{margin-right:auto;color:var(--p-warning)}
#prep-app #settings>.p-check{margin-top:9px}
#prep-app .requirement-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:8px;align-items:end;margin-top:10px}
#prep-app .p-pack-group h3{overflow-wrap:anywhere}
#prep-app #pack-progress{white-space:nowrap}
@media(min-width:1300px){#prep-app .p-cook-layout{grid-template-columns:minmax(0,1fr) 280px;gap:24px}#prep-app .p-step-title{font-size:13px}#prep-app .p-step-description{font-size:12px}#prep-app .p-flow-grid{gap:28px}}
@media(max-width:1000px){#prep-app .p-cook-layout{grid-template-columns:minmax(0,1fr) 238px;gap:16px}#prep-app .p-flow-grid{gap:16px}#prep-app .p-node strong{font-size:12px}}
@media(max-width:880px){#prep-app .p-cook-layout{grid-template-columns:minmax(0,1fr)}#prep-app .p-steps-panel{position:static}#prep-app #steps{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}#prep-app .p-form-layout{grid-template-columns:minmax(0,1fr)}#prep-app .p-plan{width:auto}}
@media(max-width:620px){body{padding:6px}#prep-app{border-radius:13px}#prep-app .p-top{padding:13px 14px}#prep-app .p-header-right{gap:8px}#prep-app .p-header-right>.p-button{font-size:12px;padding:8px}#prep-app .p-brand h1{font-size:21px}#prep-app .p-brand .p-small{font-size:11px}#prep-app .p-logo{width:32px;height:32px}#prep-app .p-brand{gap:8px}#prep-app .p-timers{grid-template-columns:minmax(0,1fr)}#prep-app .p-focus{align-items:stretch}#prep-app .p-focus .p-button{align-self:flex-start}#prep-app .p-flow-grid{grid-template-columns:minmax(0,1fr)}#prep-app .p-proteins{display:flex;gap:10px}#prep-app #steps{grid-template-columns:minmax(0,1fr)}#prep-app .ingredient-row.is-meat{grid-template-columns:minmax(0,1fr) 82px 82px;gap:6px}#prep-app .ingredient-name small{display:none}#prep-app .ingredient-name strong{font-size:12px}#prep-app .compact-field{font-size:10px}#prep-app .p-fields{gap:10px}#prep-app .requirement-row{grid-template-columns:minmax(0,1fr) 100px}#prep-app .requirement-row>.p-link-button{grid-column:1/-1}#prep-app .p-dialog{padding:16px}#prep-app .p-pack-layout{grid-template-columns:minmax(0,1fr)}#prep-app .notice{margin-left:14px;margin-right:14px}#prep-app .timer-tools{align-items:flex-start;flex-wrap:wrap}}
@media(pointer:coarse){#prep-app .p-link-button{min-height:44px}#prep-app .p-step{min-height:52px}}
