:root{--bg:#fbf6ef;--surface:#fff;--surface-2:#f5ece0;--text:#2f2117;--muted:#7a6656;--border:#e7d9c8;--accent:#b5652a;--accent-strong:#934d1a;--accent-text:#fff;--danger:#b3261e;--good:#2e7d32;--pending:#a86a00;--done:#3b5ba9;--radius:12px;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--grid:#eee4d8;--shadow:0 1px 2px #3c230f0f, 0 4px 16px #3c230f0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1c1612;--surface:#261e18;--surface-2:#31271f;--text:#f3e9df;--muted:#b6a291;--border:#3e3228;--accent:#e0914f;--accent-strong:#f0a868;--accent-text:#1c1612;--danger:#ef7d74;--good:#7ccf80;--pending:#e6b450;--done:#8fa9ec;--shadow:none;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--grid:#3a2f26}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h1{font-size:1.9rem}h2{font-size:1.15rem}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:1.25rem;font-size:.95rem}a{color:var(--accent-strong)}.muted{color:var(--muted)}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:1;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.brand{color:var(--text);font-size:1.15rem;font-weight:700;text-decoration:none}.nav{gap:.25rem;display:flex}.nav a{color:var(--muted);border-radius:999px;padding:.35rem .75rem;font-weight:500;text-decoration:none}.nav a.active{background:var(--surface-2);color:var(--text)}.whoami{align-items:center;gap:.75rem;margin-left:auto;display:flex}.account-link{color:inherit;text-decoration:none}.account-link:hover,.account-link.active{text-decoration:underline}.success{color:var(--good);margin:0}.details{grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0;display:grid}.details dt{color:var(--muted)}.details dd{margin:0}.temporary-password{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.temporary-password code{background:var(--surface-2);-webkit-user-select:all;user-select:all;border-radius:6px;padding:.2rem .5rem;font-size:1.1rem}.page{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 4rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.page-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dashboard{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));align-items:start;gap:1rem;display:grid}.detail-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}@media (width<=760px){.detail-layout{grid-template-columns:1fr}}.stack{gap:1rem;display:grid}.detail-layout>*,.stack>*{min-width:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.card-header{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}input,select,textarea,button,.button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;padding:.5rem .65rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical}button,.button{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button:hover{border-color:var(--accent)}button:disabled{opacity:.55;cursor:not-allowed}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.primary:hover:not(:disabled){background:var(--accent-strong)}.danger{color:var(--danger);background:0 0}.link-button{color:var(--accent-strong);background:0 0;border:none;padding:0;text-decoration:underline}.icon-button{min-width:2.2rem;padding:.35rem .6rem}.form{gap:.85rem;display:grid}.form label{gap:.3rem;font-weight:500;display:grid}.form .row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.form .checkbox{grid-template-columns:auto 1fr;align-items:center;column-gap:.5rem;margin-top:.75rem;display:grid}.checkbox input{width:auto}.checkbox small{grid-column:2;font-weight:400}.inline-form{gap:.5rem;margin-bottom:.75rem;display:flex}.form-footer{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.editor{gap:1rem}.ingredient-rows{gap:.5rem;margin-bottom:.75rem;display:grid}.ingredient-row{grid-template-columns:5.5rem 6.5rem minmax(0,1fr) auto;gap:.5rem;display:grid}@media (width<=560px){.ingredient-row{grid-template-columns:1fr 1fr auto}.ingredient-row select{grid-area:2/1/auto/-1}}.step-editor{gap:.6rem;margin:0 0 .75rem;padding-left:1.5rem;display:grid}.step-editor li{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.5rem;display:grid}.step-tools{gap:.25rem;display:flex}.role-picker{border:none;grid-template-columns:1fr 1fr;gap:.6rem;margin:0;padding:0;display:grid}.role-picker legend{margin-bottom:.4rem;font-weight:500}.role-picker label{border:1px solid var(--border);cursor:pointer;border-radius:10px;gap:.15rem;padding:.75rem}.role-picker label.selected{border-color:var(--accent);background:var(--surface-2)}.role-picker input{opacity:0;width:1px;position:absolute}.role-picker span{color:var(--muted);font-size:.875rem;font-weight:400}.auth-card{max-width:440px;margin:3rem auto}.cookie-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.cookie-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:100%;box-shadow:var(--shadow);color:inherit;padding:1.25rem;text-decoration:none;transition:transform .12s,border-color .12s;display:block}.cookie-card:hover{border-color:var(--accent);transform:translateY(-2px)}.cookie-emoji{font-size:2rem}.cookie-card h3{text-transform:none;letter-spacing:0;color:var(--text);margin:.4rem 0 0;font-size:1.15rem}.cookie-card p{margin:0 0 .75rem}.cookie-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.tag{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.tag-open{color:var(--good);border-color:currentColor}.tag-locked{color:var(--muted)}.ingredient-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.ingredient-list .amount{min-width:6.5rem;font-weight:600;display:inline-block}.step-list{gap:.6rem;padding-left:1.4rem;display:grid}.step-list li::marker{color:var(--accent);font-weight:700}.locked-note{text-align:center;background:var(--surface-2);color:var(--muted);border-radius:10px;padding:2rem 1rem}.list{margin:.5rem 0 0;padding:0;list-style:none}.list-row{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 0;display:flex}.list-row:first-child{border-top:none}.list.compact .list-row{align-items:center;padding:.4rem 0}.grow{flex:1;min-width:0}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}blockquote{border-left:3px solid var(--border);color:var(--muted);margin:.35rem 0 .5rem;padding-left:.75rem;font-style:italic}.badge{vertical-align:middle;border:1px solid;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.badge-pending{color:var(--pending)}.badge-good{color:var(--good)}.badge-done{color:var(--done)}.badge-bad{color:var(--danger)}.badge-muted{color:var(--muted)}.error{color:var(--danger);margin:0}.empty{color:var(--muted);padding:1rem 0}details summary{cursor:pointer;color:var(--muted);margin-top:.75rem}.small{font-size:.85rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.notice{border:1px solid var(--pending);background:var(--surface-2);border-radius:10px;margin:0 0 1rem;padding:.75rem 1rem}.nav-count{background:var(--accent);min-width:1.3rem;color:var(--accent-text);text-align:center;border-radius:999px;margin-left:.35rem;padding:0 .35rem;font-size:.75rem;font-weight:700;display:inline-block}.facts{grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:1.25rem 0 1rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-top:1px solid var(--border);vertical-align:top;padding:.55rem .5rem}.table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:none;font-size:.8rem;font-weight:600}.table .num{text-align:right;white-space:nowrap}.table tr.selected td{background:var(--surface-2)}.table-scroll{margin-top:.5rem;overflow-x:auto}.amount{font-variant-numeric:tabular-nums;font-weight:600}.inline-form.compact{margin:.4rem 0 0}.inline-form.compact input{width:6rem}.batch-stepper{align-items:stretch;gap:.35rem;display:flex}.batch-stepper input{text-align:center;width:5rem}.field{gap:.3rem;display:grid}.field>label{font-weight:500}.planned .grow>a{text-decoration:none}.zip-form{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.zip-form label{gap:.3rem;font-weight:500;display:grid}.zip-form input{width:7rem}.price-chart{position:relative}.store-picker{border:none;flex-wrap:wrap;gap:.4rem;margin:0 0 .75rem;padding:0;display:flex}.store-picker legend{margin-bottom:.4rem}.chip{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .7rem;font-size:.875rem;display:inline-flex}.chip.on{border-color:var(--text);background:var(--surface-2)}.chip input{opacity:0;width:1px;position:absolute}.chip:has(input:focus-visible){outline:2px solid var(--accent)}.chip:has(input:disabled){opacity:.5;cursor:not-allowed}.line-key{border-radius:1px;flex:none;width:14px;height:2px;display:inline-block}.chart-frame{position:relative;overflow:hidden}.chart-frame svg{display:block;overflow:visible}.chart-frame svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chart-frame .grid{stroke:var(--grid);stroke-width:1px}.chart-frame .axis-label{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-frame .direct-label{fill:var(--text);font-variant-numeric:tabular-nums;font-size:12px}.chart-frame .series-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-frame .series-marker{stroke:var(--surface);stroke-width:2px}.chart-frame .crosshair{stroke:var(--muted);stroke-width:1px}.chart-frame .hit-area{fill:#0000;cursor:crosshair}.chart-tooltip{background:var(--surface);border:1px solid var(--border);pointer-events:none;border-radius:8px;min-width:170px;padding:.5rem .65rem;font-size:.875rem;position:absolute;box-shadow:0 4px 16px #00000026}.tooltip-row{align-items:center;gap:.45rem;display:flex}.toasts{z-index:10;gap:.5rem;width:min(360px,100vw - 2rem);display:grid;position:fixed;bottom:1rem;right:1rem}.toast{background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);align-items:flex-start;gap:.5rem;padding:.85rem 1rem;display:flex;box-shadow:0 6px 24px #0000002e}@media print{.topbar,.no-print,.detail-layout>aside,.toasts{display:none}.detail-layout{display:block}.card{box-shadow:none;border:none}}.cookie-print-layout{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:1rem;display:grid}.cookie-print-layout>*{min-width:0}.segmented{border:none;flex-wrap:wrap;gap:.4rem 1rem;margin:0;padding:0;display:flex}.segmented legend{margin-bottom:.3rem;padding:0;font-weight:500}.segmented label{white-space:nowrap;align-items:center;gap:.35rem;font-weight:400;display:flex}.cookie-sheet-frame{background:var(--surface-2);border-radius:var(--radius);padding:clamp(.5rem,3vw,1.5rem)}.cookie-sheet{aspect-ratio:7.5/10;color:#1a1a1a;background:#fff;width:100%;max-width:7.5in;margin:0 auto;line-height:1.35;display:grid;box-shadow:0 0 0 1px #00000014,0 6px 20px #0000001f;container-type:inline-size}.cookie-sheet.copies-2{grid-template-rows:1fr 1fr}.cookie-sheet.copies-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.cookie-sheet-cell{min-height:0;font-size:var(--list-font);text-align:center;outline:1px dashed #c8c8c8;flex-direction:column;justify-content:center;align-items:center;padding:8%;display:flex;overflow:hidden}.cookie-sheet.copies-1 .cookie-sheet-cell{outline:none}.cookie-sheet-cell ul{margin:0;padding:0;list-style:none}.cookie-sheet-cell li,.cookie-sheet-title{white-space:nowrap}.cookie-sheet-title{margin:0 0 .5em;font-size:1.25em;font-weight:600}@media (width<=760px){.cookie-print-layout{grid-template-columns:1fr}}@media print{.page:has(.cookie-sheet){max-width:none;padding:0}.cookie-print-layout{display:block}.cookie-sheet-frame{background:0 0;padding:0}.cookie-sheet{aspect-ratio:auto;width:7.5in;max-width:none;height:10in;box-shadow:none;break-inside:avoid}}.paste-panel{border:1px dashed var(--accent);background:var(--surface-2);border-radius:10px;gap:.6rem;margin-bottom:1rem;padding:1rem;display:grid}.paste-panel label{gap:.3rem;font-weight:500;display:grid}.paste-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.paste-preview{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.paste-preview li{background:var(--surface);border-radius:8px;align-items:flex-start;gap:.6rem;padding:.5rem;display:flex}.paste-preview li input[type=checkbox]{width:auto;margin-top:.3rem}.paste-preview li.skipped .paste-fields{opacity:.55}.paste-source{color:var(--muted);margin-bottom:.3rem;font-size:.85rem}.paste-fields{grid-template-columns:5rem 6rem minmax(0,1fr);gap:.4rem;display:grid}@media (width<=560px){.paste-fields{grid-template-columns:1fr 1fr}.paste-fields select{grid-column:1/-1}}.paste-steps{background:var(--surface);border-radius:8px;margin:0;padding:.75rem .75rem .75rem 2rem}.checkbox-row{cursor:pointer;flex:1;align-items:center;gap:.6rem;display:flex}.checkbox-row input{width:auto}.warning{color:var(--pending);margin:0}.unit-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.unit-list li{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:.15rem .6rem;font-size:.9rem}
