:root{--canvas:#f1ecdd;--canvas-card:#fbf8f0;--ink:#2a2620;--ink-soft:#5b5448;--pine:#3e5641;--pine-dark:#243329;--ember:#c1622b;--ember-dark:#9c4d20;--tan:#d9c8a9;--tan-dark:#bfa97d;--denim:#4a6b7a;--line:#2a262024;--shadow:0 2px 0 #2a26200f, 0 8px 20px -10px #2a262040}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 1px 1px,#2a26200b 1px,#0000 0);background-size:18px 18px;font-family:Public Sans,sans-serif;line-height:1.5}.wrap{max-width:1080px;margin:0 auto;padding:0 20px 80px}h1,h2,h3,.display{text-transform:uppercase;letter-spacing:.02em;font-family:Oswald,sans-serif}.mono{font-family:IBM Plex Mono,monospace}header.banner{background:var(--pine);background-image:linear-gradient(180deg, var(--pine) 0%, var(--pine-dark) 100%);color:#f1ecdd;border-bottom:6px solid var(--ember);padding:38px 20px 30px}header.banner .inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;max-width:1080px;margin:0 auto;display:flex}header.banner h1{letter-spacing:.04em;margin:0;font-size:34px;font-weight:700}header.banner h1 span{color:var(--ember)}header.banner p{color:#d9d2be;max-width:520px;margin:6px 0 0;font-size:14px}.badge-flag{color:#f1ecdd;letter-spacing:.03em;background:#f1ecdd1a;border:1px solid #f1ecdd59;border-radius:3px;align-items:center;gap:6px;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:12px;display:inline-flex}.tabbar{border-bottom:2px solid var(--line);gap:8px;margin:28px 0 22px;display:flex}.tabbar button{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-right:18px;padding:10px 4px;font-family:Oswald,sans-serif;font-size:15px;transform:translateY(2px)}.tabbar button.active{color:var(--pine-dark);border-bottom-color:var(--ember);font-weight:600}.tabbar button:focus-visible{outline:2px solid var(--denim);outline-offset:2px}.view{display:none}.view.active{display:block}.card{background:var(--canvas-card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;margin-bottom:22px;padding:22px}.card h2{color:var(--pine-dark);margin:0 0 4px;font-size:20px}.card .sub{color:var(--ink-soft);margin:0 0 18px;font-size:13px}.setup-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:18px;display:grid}label.field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:6px;font-size:11px;font-weight:600;display:block}input[type=text],input[type=number],select{border:1px solid var(--tan-dark);width:100%;color:var(--ink);background:#fff;border-radius:4px;padding:9px 10px;font-family:Public Sans,sans-serif;font-size:14px}input[type=text]:focus,input[type=number]:focus,select:focus{outline:2px solid var(--denim);outline-offset:1px}select{height:38px}textarea{color:var(--ink);border:1px solid var(--tan-dark);resize:vertical;border-radius:4px;padding:8px;font-family:Public Sans,sans-serif;font-size:13.5px}textarea:focus{outline:2px solid var(--denim);outline-offset:1px}.editor-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.editor-row .step-text{flex:1;min-width:200px}.stepper{align-items:center;gap:0;display:flex}.stepper button{border:1px solid var(--tan-dark);background:var(--tan);width:34px;height:36px;color:var(--ink);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:16px}.stepper button:first-child{border-radius:4px 0 0 4px}.stepper button:last-child{border-radius:0 4px 4px 0}.stepper input{text-align:center;border-left:none;border-right:none;border-radius:0;width:54px;height:36px;padding:0}.meal-toggles{flex-wrap:wrap;gap:10px;display:flex}.toggle-chip{border:1px solid var(--tan-dark);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:20px;align-items:center;gap:7px;padding:8px 13px;font-size:13px;display:inline-flex}.toggle-chip.on{background:var(--pine);color:#fff;border-color:var(--pine-dark)}.toggle-chip input{display:none}.btn{text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border:1px solid #0000;border-radius:4px;padding:11px 22px;font-family:Oswald,sans-serif;font-size:14px;font-weight:600}.btn-primary{background:var(--ember);color:#fff;border-color:var(--ember-dark)}.btn-primary:hover{background:var(--ember-dark)}.btn-secondary{color:var(--pine-dark);border-color:var(--pine);background:0 0}.btn-secondary:hover{background:var(--pine);color:#fff}.btn-ghost{color:var(--denim);text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:none;padding:4px 0;font-family:Public Sans,sans-serif;font-size:13px;font-weight:600;text-decoration:underline}.btn:focus-visible,.btn-ghost:focus-visible{outline:2px solid var(--denim);outline-offset:2px}.btn[disabled]{opacity:.45;cursor:not-allowed}#dayBoard{flex-direction:column;gap:14px;display:flex}.day-card{background:var(--canvas-card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;overflow:hidden}.day-card-head{background:var(--tan);border-bottom:1px solid var(--tan-dark);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.day-card-head input[type=text]{text-transform:uppercase;letter-spacing:.03em;color:var(--pine-dark);background:0 0;border:none;width:auto;max-width:220px;padding:2px 4px;font-family:Oswald,sans-serif;font-size:16px;font-weight:600}.day-card-head input[type=text]:focus{outline:2px solid var(--denim);background:#fff}.day-num{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:12px}.slot-grid{background:var(--line);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;display:grid}.slot{background:var(--canvas-card);flex-direction:column;justify-content:flex-start;min-height:84px;padding:14px 16px;display:flex}.slot-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:6px;font-size:10px;font-weight:700}.slot-items{flex-direction:column;gap:8px;display:flex}.slot-items .slot-filled{border-bottom:1px dashed var(--line);padding-bottom:8px}.slot-items .slot-filled:last-of-type{border-bottom:none;padding-bottom:0}.slot-add{color:var(--denim);cursor:pointer;text-align:left;background:0 0;border:none;align-self:flex-start;padding:2px 0;font-family:Public Sans,sans-serif;font-size:12px;font-weight:600}.slot-add:hover{text-decoration:underline}.picker-row.picker-added{border-color:var(--pine);background:#f2f6f1}.slot-empty button{border:1px dashed var(--tan-dark);color:var(--denim);text-align:left;cursor:pointer;background:0 0;border-radius:4px;width:100%;padding:8px 10px;font-size:13px;font-weight:600}.slot-empty button:hover{border-color:var(--denim)}.slot-filled{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.slot-filled .name{color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;line-height:1.3}.slot-filled .name:hover{color:var(--ember-dark)}.slot-badges{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.slot-remove{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:2px;font-size:16px;line-height:1}.slot-remove:hover{color:var(--ember-dark)}.badge{letter-spacing:.02em;border-radius:3px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;display:inline-block}.badge-gf{color:var(--pine-dark);background:#e4eee5}.badge-gf.mod{color:var(--ember-dark);background:#fbf1e4}.badge-df{color:var(--denim);background:#e6eef0}.badge-df.mod{color:var(--ember-dark);background:#fbf1e4}.badge-canned{background:var(--tan);color:var(--ink)}.badge-prep{color:var(--ember-dark);background:#f6e2d2}.badge-custom{border:1px solid var(--ember);color:var(--ember-dark);background:#fff}.filter-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.filter-row input[type=text]{max-width:240px}.chip-filter{border:1px solid var(--tan-dark);cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:20px;padding:7px 13px;font-size:12.5px}.chip-filter.active{background:var(--denim);color:#fff;border-color:var(--denim)}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px;display:grid}.recipe-card{background:var(--canvas-card);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;border-radius:6px;flex-direction:column;gap:8px;padding:16px;transition:transform .12s;display:flex;position:relative}.recipe-card:hover{border-color:var(--tan-dark);transform:translateY(-2px)}.recipe-card .meal-tag{background:var(--pine);color:#fff;letter-spacing:.04em;border-radius:0 0 4px 4px;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:10px;position:absolute;top:0;right:14px}.recipe-card h3{text-transform:none;letter-spacing:0;color:var(--ink);margin:4px 0 0;font-family:Public Sans,sans-serif;font-size:16px;font-weight:700}.recipe-card .desc{color:var(--ink-soft);flex-grow:1;margin:0;font-size:12.5px}.recipe-card .meta-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recipe-card .method{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:11px}.overlay{z-index:50;background:#2420198c;justify-content:center;align-items:flex-start;padding:30px 16px;display:none;position:fixed;inset:0;overflow-y:auto}.overlay.open{display:flex}.modal{background:var(--canvas-card);border-radius:8px;width:100%;max-width:640px;margin-top:20px;box-shadow:0 20px 50px #00000059}.modal-head{border-bottom:2px solid var(--ember);background:var(--pine);color:#fff;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h2{color:#fff;margin:0;font-size:18px}.modal-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}.modal-body{max-height:72vh;padding:22px;overflow-y:auto}.modal-body h4{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);margin:18px 0 8px;font-size:11px}.modal-body h4:first-child{margin-top:0}.ing-list{margin:0;padding:0;list-style:none}.ing-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:5px 0;font-size:13.5px;display:flex}.ing-list li .amt{color:var(--pine-dark);white-space:nowrap;margin-left:10px;font-family:IBM Plex Mono,monospace;font-weight:600}.steps-list{margin:0;padding-left:20px;font-size:13.5px}.steps-list li{margin-bottom:8px}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 22px;display:flex}.source-note{color:var(--ink-soft);font-size:11.5px;font-style:italic}.source-note a{color:var(--denim)}.picker-list{flex-direction:column;gap:8px;display:flex}.picker-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;display:flex}.picker-row:hover{border-color:var(--denim)}.picker-row .pr-name{font-size:14px;font-weight:600}.picker-row .pr-desc{color:var(--ink-soft);margin-top:2px;font-size:12px}.manifest-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.manifest-group{margin-bottom:20px}.manifest-group h3{color:var(--pine-dark);border-bottom:2px solid var(--tan);margin-bottom:4px;padding-bottom:6px;font-size:14px}.manifest-item{border-bottom:1px dashed var(--line);align-items:flex-start;gap:10px;padding:9px 2px;display:flex}.manifest-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--pine);flex-shrink:0;margin-top:2px}.manifest-item.checked label{color:var(--ink-soft);text-decoration:line-through}.mi-main{flex-grow:1;min-width:0}.manifest-item label{cursor:pointer;font-size:14px;display:block}.mi-breakdown{color:var(--ink-soft);margin-top:2px;font-size:11.5px;line-height:1.45}.manifest-item.checked .mi-breakdown{opacity:.6}.manifest-item .qty{color:var(--ember-dark);white-space:nowrap;margin-top:1px;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600}.empty-state{text-align:center;color:var(--ink-soft);padding:50px 20px}.empty-state .big{margin-bottom:10px;font-size:40px;display:block}.gear-item{align-items:center}.gear-item .stepper{flex-shrink:0}.gear-item .stepper input{width:44px;height:32px}.gear-item .stepper button{height:32px}.gear-add{border-top:1px solid var(--line);margin-top:8px;padding-top:14px}.gear-add h4{color:var(--pine-dark);margin:14px 0 7px;font-size:13px}.gear-search{max-width:320px;margin:10px 0 6px}.gear-add-grid{flex-wrap:wrap;gap:7px;display:flex}.gear-chip-add{border:1px solid var(--tan-dark);cursor:pointer;color:var(--pine-dark);background:#fff;border-radius:16px;padding:6px 12px;font-size:13px}.gear-chip-add:hover{background:var(--tan)}.gear-edit{flex-shrink:0;padding:2px 8px;font-size:13px}.stow-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--denim);vertical-align:middle;background:#4a6b7a1f;border-radius:3px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.quick-add{flex-wrap:wrap;align-items:center;gap:7px;margin:4px 0 16px;display:flex}.quick-add-label{color:var(--ink-soft);font-size:13px;font-weight:600}.card-inset{background:var(--tan-light,#f5efe2);border:1px solid var(--tan-dark);border-radius:6px;margin:12px 0;padding:12px}.gear-form-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.gear-form-row input[type=text]{flex:180px;max-width:320px}.gear-form-row .field-label{margin-bottom:0}.gear-form-actions{justify-content:flex-end;gap:8px;display:flex}.gear-personal-toggle{color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;margin:2px 0 10px;font-size:13px;display:flex}.gear-personal-toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--pine)}.preset-list{margin-top:14px}.preset-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:10px;padding:9px 2px;display:flex}.preset-cat{margin-bottom:14px}.preset-cat h4{color:var(--pine-dark);margin:10px 0 6px;font-size:13px}.preset-pick{cursor:pointer;align-items:center;gap:8px;padding:3px 0;font-size:14px;display:flex}.preset-pick input[type=checkbox]{width:15px;height:15px;accent-color:var(--pine)}.stow-form{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.stow-form input[type=text]{flex:200px;max-width:320px}.saved-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}select.trip-select{border:1px solid var(--tan-dark);background:#fff;border-radius:4px;max-width:220px;padding:9px 10px;font-size:14px}.legend{color:var(--ink-soft);font-size:13px}.legend strong{color:var(--ink)}.toast{background:var(--pine-dark);color:#fff;opacity:0;pointer-events:none;z-index:100;border-radius:24px;padding:10px 20px;font-size:13.5px;transition:opacity .25s,transform .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0000004d}.toast.show{opacity:1;transform:translate(-50%)translateY(-4px)}@media (width<=560px){header.banner h1{font-size:26px}.modal{border-radius:0;max-height:100vh;margin-top:0}.overlay{padding:0}}.tabbar a{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);cursor:pointer;border-bottom:3px solid #0000;margin-right:18px;padding:10px 4px;font-family:Oswald,sans-serif;font-size:15px;text-decoration:none;transform:translateY(2px)}.tabbar a.active{color:var(--pine-dark);border-bottom-color:var(--ember);font-weight:600}.tabbar a:focus-visible{outline:2px solid var(--denim);outline-offset:2px}
