:root{--bg: #fbfaf7;--fg: #1f1c18;--muted: #6b6459;--line: #e3ded3;--accent: #8a5a2b;--ok: #2f6f4f;--warn: #8a6d1f;color-scheme:light dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55}@media(prefers-color-scheme:dark){:root{--bg: #17150f;--fg: #f2ede3;--muted: #a49b8c;--line: #332e25;--accent: #d9a066;--ok: #7fc7a0;--warn: #d9be6a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{position:absolute;top:-3rem;left:1rem;z-index:10;padding:.5rem .875rem;border-radius:.5rem;background:var(--bg);color:var(--fg);border:1px solid var(--line)}.skip-link:focus{top:1rem}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);border-bottom:1px solid var(--line)}.app-header .brand{font-weight:650;letter-spacing:-.01em}.app-header a,.app-footer a{color:inherit;text-decoration:none}.app-header nav a:hover,.app-header .brand:hover{color:var(--accent)}.app-main{flex:1;padding:clamp(2rem,6vw,4rem) clamp(1rem,4vw,3rem)}.app-footer{padding:1rem clamp(1rem,4vw,3rem);border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem}.stack{max-width:42rem;display:flex;flex-direction:column;gap:1rem}h1{margin:0;font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.02em}.lede{margin:0;color:var(--muted);font-size:1.0625rem}.muted{color:var(--muted);font-size:.875rem}.checks{margin:0;display:grid;gap:.5rem}.check{display:flex;justify-content:space-between;gap:1rem;padding:.625rem .875rem;border:1px solid var(--line);border-radius:.5rem}.check dt{color:var(--muted)}.check dd{margin:0;font-variant-numeric:tabular-nums}.check.ok dd{color:var(--ok)}.check.warn dd{color:var(--warn)}a{color:var(--accent)}button,.button-link{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border:1px solid var(--line);border-radius:.5rem;background:transparent;color:var(--fg);font:inherit;cursor:pointer;text-decoration:none}button:hover,.button-link:hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{font:inherit;padding:.5rem .625rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg);color:var(--fg)}.form-error{padding:.625rem .875rem;border:1px solid var(--warn);border-radius:.5rem;color:var(--warn)}.field{display:flex;flex-direction:column;gap:.375rem;flex:1}.field span{font-size:.8125rem;color:var(--muted)}.field-row{display:flex;gap:.75rem;flex-wrap:wrap}.field-group{border:1px solid var(--line);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.field-group legend{padding:0 .375rem;color:var(--muted);font-size:.8125rem}.recipe-form{max-width:48rem}.draft-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.draft-row{display:flex;align-items:center;gap:.5rem}.draft-row .drag-handle{cursor:grab;color:var(--muted)}.draft-row .qty{width:4rem}.draft-row .unit{width:5rem}.draft-row .name{flex:2}.draft-row .group{flex:1.5}.draft-row .step-number{color:var(--muted);min-width:1.5rem;text-align:right}.draft-row .step-text{flex:1;resize:vertical}.remove-row,.row-move{border:none;padding:.25rem .5rem;color:var(--muted)}.row-actions{display:flex;flex-direction:column}.row-move:disabled{opacity:.35}.tag-picker{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.tag-checkbox{display:flex;align-items:center;gap:.375rem;font-size:.9375rem}.photo-preview{max-width:20rem;border-radius:.75rem;border:1px solid var(--line)}.recipe-list-header,.recipe-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.recipe-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.recipe-filters{display:flex;gap:.75rem;flex-wrap:wrap}.recipe-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem}.recipe-card{border:1px solid var(--line);border-radius:.75rem;overflow:hidden}.recipe-card a{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:.25rem;padding:.875rem}.recipe-card img{margin:-.875rem -.875rem .25rem;width:calc(100% + 1.75rem);aspect-ratio:4 / 3;object-fit:cover}.recipe-card-title{font-weight:600}.recipe-detail{max-width:56rem}.recipe-detail-body{display:grid;grid-template-columns:1fr 2fr;gap:2rem}.recipe-detail-body h2{font-size:1.125rem}.ingredient-group h3{font-size:.9375rem;color:var(--muted);margin-bottom:.25rem}.tag-list{list-style:none;margin:0;padding:0;display:flex;gap:.5rem;flex-wrap:wrap}.tag-pill{padding:.25rem .625rem;border:1px solid var(--line);border-radius:999px;font-size:.8125rem;color:var(--muted)}@media(max-width:40rem){.recipe-detail-body{grid-template-columns:1fr}.draft-row{flex-wrap:wrap}.draft-row .name,.draft-row .group,.draft-row .step-text{flex-basis:100%}}.format-picker{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.format-picker-options{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;border:1px solid var(--line);border-radius:.625rem}.format-option{padding:.3125rem .75rem;border-color:transparent;font-size:.875rem}.format-option[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.format-option:disabled:hover{border-color:transparent;color:var(--fg)}.format-option-star{color:var(--accent)}.link-button{padding:0;border:0;color:var(--muted);font-size:.8125rem;text-decoration:underline}.link-button:disabled{text-decoration:none}.link-button:hover{border:0}.notecard-frame{container-type:inline-size;width:100%;max-width:34rem}.notecard{width:100%;aspect-ratio:6 / 4;display:flex;flex-direction:column;gap:.6em;padding:1em 1.2em;border:1px solid var(--line);border-radius:.375rem;background:var(--bg);box-shadow:0 1px 3px #00000014;font-size:2.45cqw;line-height:1.35;overflow:hidden}.notecard-header{border-bottom:1px solid var(--line);padding-bottom:.4em}.notecard-header h1{font-size:1.4em;letter-spacing:0}.notecard-meta{margin:.2em 0 0;color:var(--muted);font-size:.9em}.notecard-body{flex:1;min-height:0;display:grid;grid-template-columns:2fr 3fr;gap:1.2em}.notecard-ingredients h2{margin:.3em 0 .15em;font-size:.9em;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.notecard-ingredients ul,.notecard-steps{margin:0;padding-left:1.1em}.notecard-ingredients ul{list-style:none;padding-left:0}.notecard-steps li+li{margin-top:.3em}@media print{.no-print,.app-header,.app-footer{display:none!important}body{background:#fff;color:#000}.notecard-frame{width:6in;max-width:none}.notecard{width:6in;height:4in;aspect-ratio:auto;border:1px solid #000;border-radius:0;box-shadow:none;background:#fff;color:#000}@page{margin:.5in}}.cook-mode{max-width:34rem}.cook-mode-checklist{list-style:none;margin:0;padding:0}.cook-mode-checklist label,.cook-mode-current-step{display:flex;align-items:flex-start;gap:.5rem}.cook-mode-checklist input,.cook-mode-current-step input{margin-top:.25rem}.cook-mode-step{padding:1rem;border:1px solid var(--line);border-radius:.625rem}.cook-mode-current-step{font-size:1.0625rem;margin-top:.5rem}.cook-mode-nav{display:flex;gap:.5rem;margin-top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flowchart-scroll{overflow-x:auto}.flowchart{border-collapse:collapse;min-width:100%}.flowchart-cell{border:1px solid var(--line);padding:.5rem .625rem;vertical-align:middle;font-size:.9375rem;line-height:1.35}.flowchart-ingredient{min-width:9rem;max-width:14rem;color:var(--muted);background:color-mix(in srgb,var(--line) 22%,transparent)}.flowchart-step{min-width:8rem;max-width:15rem}.flowchart-reference{color:var(--muted);font-style:italic;text-align:center;white-space:nowrap}.flowchart-filler{border:0}.flowchart-step-number{display:inline-block;min-width:1.5rem;margin-right:.375rem;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.flowchart-label{display:inline}@media(max-width:40rem){.flowchart-cell{padding:.375rem .5rem;font-size:.875rem}.flowchart-ingredient{min-width:7rem}.flowchart-step{min-width:9rem}}.graph-step-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.graph-step{padding:1rem;border:1px solid var(--line);border-radius:.625rem}.graph-step h2{font-size:1rem;margin:0 0 .75rem}.graph-step-text{font-weight:400;color:var(--muted)}
