@import "https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400..600&family=Spline+Sans+Mono:wght@400;500&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--fl-color-ground:#fbfaf6;--fl-color-surface:#fff;--fl-color-raised:#f1ece1;--fl-color-line:#e7e0d2;--fl-color-line-strong:#ddd3c0;--fl-color-muted:#726a5d;--fl-color-ink-soft:#3c362d;--fl-color-ink:#201c17;--fl-color-primary:#c0552a;--fl-color-primary-deep:#a84720;--fl-color-primary-tint:#f5e4da;--fl-color-sage:#7c8a5f;--fl-color-sage-deep:#5f6e45;--fl-color-sage-tint:#ecefe4;--fl-color-success:#5a7d3e;--fl-color-success-tint:#eaf0e1;--fl-color-success-border:#cdddb7;--fl-color-success-text:#3e5a2a;--fl-color-warning:#c6871b;--fl-color-warning-tint:#f7ecd3;--fl-color-warning-border:#ecd9a8;--fl-color-warning-text:#8a5b0e;--fl-color-error:#bc3b2e;--fl-color-error-tint:#f6e1dd;--fl-color-error-border:#eec7bf;--fl-color-error-text:#8f2a20;--fl-color-info:#2563c4;--fl-color-info-tint:#e1eaf7;--fl-color-info-border:#c2d3f0;--fl-color-info-text:#1b4a97;--fl-color-canvas:var(--fl-color-ground);--fl-color-surface-strong:var(--fl-color-surface);--fl-color-border:var(--fl-color-line);--fl-color-ink-muted:var(--fl-color-muted);--fl-color-brand:var(--fl-color-primary);--fl-color-brand-strong:var(--fl-color-primary-deep);--fl-color-brand-soft:var(--fl-color-primary-tint);--fl-color-accent:var(--fl-color-sage);--fl-color-danger:var(--fl-color-error);--fl-color-focus:var(--fl-color-primary);--fl-font-display:"Newsreader", Georgia, "Times New Roman", serif;--fl-font-sans:"Hanken Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fl-font-mono:"Spline Sans Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--fl-text-xs:.6875rem;--fl-text-sm:.8125rem;--fl-text-base:.9375rem;--fl-text-lg:1.0625rem;--fl-text-xl:1.4375rem;--fl-text-2xl:1.8125rem;--fl-text-3xl:2.25rem;--fl-weight-body:400;--fl-weight-medium:500;--fl-weight-semibold:600;--fl-weight-bold:700;--fl-leading-tight:1.06;--fl-leading-normal:1.5;--fl-leading-relaxed:1.6;--fl-tracking-tight:-.01em;--fl-tracking-label:.14em;--fl-space-1:.25rem;--fl-space-2:.5rem;--fl-space-3:.75rem;--fl-space-4:1rem;--fl-space-5:1.25rem;--fl-space-6:1.5rem;--fl-space-7:1.75rem;--fl-space-8:2rem;--fl-space-10:2.5rem;--fl-space-12:3rem;--fl-radius-sm:.25rem;--fl-radius-md:.375rem;--fl-radius-lg:.625rem;--fl-radius-pill:999px;--fl-shadow-sm:0 1px 2px #201c170d;--fl-shadow-md:0 1px 2px #201c170d, 0 16px 34px #201c170f;--fl-shadow-lg:0 2px 4px #201c170f, 0 30px 60px #201c171a;--fl-content-width:72rem}*,:before,:after{box-sizing:border-box}html{font-family:var(--fl-font-sans);background:var(--fl-color-canvas);color:var(--fl-color-ink);font-size:var(--fl-text-base);font-weight:var(--fl-weight-body);line-height:var(--fl-leading-normal)}body{background:radial-gradient(circle at 90% 0%, color-mix(in srgb, var(--fl-color-accent) 13%, transparent), transparent 28rem), var(--fl-color-canvas);min-width:20rem;margin:0}a{color:var(--fl-color-brand)}::selection{background:var(--fl-color-primary-tint)}.fl-container{width:min(calc(100% - 2rem), var(--fl-content-width));margin-inline:auto}.fl-stack{gap:var(--fl-stack-gap,var(--fl-space-4));flex-direction:column;display:flex}.fl-cluster{align-items:center;gap:var(--fl-cluster-gap,var(--fl-space-3));flex-wrap:wrap;display:flex}.fl-card{padding:var(--fl-space-4);border:1px solid var(--fl-color-border);border-radius:var(--fl-radius-md);background:var(--fl-color-surface);box-shadow:var(--fl-shadow-sm)}.fl-card--elevation-none{box-shadow:none}.fl-card--elevation-md{box-shadow:var(--fl-shadow-md)}.fl-card--elevation-lg{box-shadow:var(--fl-shadow-lg)}.fl-button{justify-content:center;align-items:center;gap:var(--fl-space-2);border-radius:var(--fl-radius-pill);background:var(--fl-color-brand);min-height:2.25rem;color:var(--fl-color-surface);font:inherit;font-size:var(--fl-text-sm);font-weight:var(--fl-weight-semibold);cursor:pointer;border:1px solid #0000;padding:.5625rem 1.125rem;line-height:1;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.fl-button:hover:not(:disabled),.fl-button:active:not(:disabled){background:var(--fl-color-brand-strong)}.fl-button--secondary{border-color:var(--fl-color-line-strong);background:var(--fl-color-surface);color:var(--fl-color-ink)}.fl-button--secondary:hover:not(:disabled),.fl-button--secondary:active:not(:disabled){background:var(--fl-color-raised)}.fl-button--ghost{color:var(--fl-color-primary-deep);background:0 0}.fl-button--ghost:hover:not(:disabled),.fl-button--ghost:active:not(:disabled){background:var(--fl-color-primary-tint)}.fl-button--sage{background:var(--fl-color-sage);color:var(--fl-color-surface)}.fl-button--sage:hover:not(:disabled),.fl-button--sage:active:not(:disabled){background:var(--fl-color-sage-deep)}.fl-button--sm{min-height:1.75rem;padding:.375rem .875rem;font-size:.75rem}.fl-button--lg{min-height:2.75rem;font-size:var(--fl-text-base);padding:.75rem 1.5rem}.fl-button--block{width:100%}.fl-button:disabled{cursor:not-allowed;opacity:.45}.fl-input,.fl-field__input{width:100%;min-height:2.375rem;padding:var(--fl-space-2) .6875rem;border:1px solid var(--fl-color-line-strong);border-radius:var(--fl-radius-sm);background:var(--fl-color-surface);color:var(--fl-color-ink);font:inherit;font-size:.875rem;transition:border-color .12s,box-shadow .12s}.fl-input:focus,.fl-field__input:focus{border-color:var(--fl-color-primary);box-shadow:0 0 0 3px var(--fl-color-primary-tint);outline:none}.fl-field{flex-direction:column;gap:.3125rem;display:flex}.fl-field__label{color:var(--fl-color-muted);font-size:var(--fl-text-xs);font-weight:var(--fl-weight-semibold);letter-spacing:.06em;text-transform:uppercase}.fl-field__input--mono{font-family:var(--fl-font-mono);font-variant-numeric:tabular-nums}.fl-field__input[aria-invalid=true]{border-color:var(--fl-color-error);box-shadow:none}.fl-field__error{color:var(--fl-color-error-text);font-size:var(--fl-text-xs)}.fl-tag{padding:.125rem var(--fl-space-2);border-radius:var(--fl-radius-pill);background:var(--fl-tag-background,var(--fl-color-raised));color:var(--fl-tag-color,var(--fl-color-muted));font-size:.625rem;font-weight:var(--fl-weight-semibold);letter-spacing:.01em;line-height:var(--fl-leading-normal);white-space:nowrap;align-items:center;display:inline-flex}.fl-tag--primary{--fl-tag-background:var(--fl-color-primary-tint);--fl-tag-color:var(--fl-color-primary-deep)}.fl-tag--sage{--fl-tag-background:var(--fl-color-sage-tint);--fl-tag-color:var(--fl-color-sage-deep)}.fl-tag--success{--fl-tag-background:var(--fl-color-success-tint);--fl-tag-color:var(--fl-color-success-text)}.fl-tag--warning{--fl-tag-background:var(--fl-color-warning-tint);--fl-tag-color:var(--fl-color-warning-text)}.fl-tag--error{--fl-tag-background:var(--fl-color-error-tint);--fl-tag-color:var(--fl-color-error-text)}.fl-tag--info{--fl-tag-background:var(--fl-color-info-tint);--fl-tag-color:var(--fl-color-info-text)}.fl-alert{align-items:center;gap:var(--fl-space-2);padding:var(--fl-space-2) .625rem;border:1px solid var(--fl-alert-border,var(--fl-color-info-border));border-radius:var(--fl-radius-md);background:var(--fl-alert-background,var(--fl-color-info-tint));color:var(--fl-alert-color,var(--fl-color-info-text));font-size:.75rem;display:flex}.fl-alert:before{border-radius:var(--fl-radius-pill);background:var(--fl-alert-signal,var(--fl-color-info));content:"";flex:none;width:.375rem;height:.375rem}.fl-alert--success{--fl-alert-background:var(--fl-color-success-tint);--fl-alert-border:var(--fl-color-success-border);--fl-alert-color:var(--fl-color-success-text);--fl-alert-signal:var(--fl-color-success)}.fl-alert--warning{--fl-alert-background:var(--fl-color-warning-tint);--fl-alert-border:var(--fl-color-warning-border);--fl-alert-color:var(--fl-color-warning-text);--fl-alert-signal:var(--fl-color-warning)}.fl-alert--error{--fl-alert-background:var(--fl-color-error-tint);--fl-alert-border:var(--fl-color-error-border);--fl-alert-color:var(--fl-color-error-text);--fl-alert-signal:var(--fl-color-error)}.fl-alert__title{font-weight:var(--fl-weight-semibold)}.fl-stepper{border:1px solid var(--fl-color-line);border-radius:var(--fl-radius-pill);background:var(--fl-color-surface);align-items:stretch;display:inline-flex;overflow:hidden}.fl-stepper__button{width:2.25rem;min-height:2rem;padding:var(--fl-space-1) var(--fl-space-2);background:var(--fl-color-raised);color:var(--fl-color-ink);cursor:pointer;font:inherit;border:0;font-size:.875rem;line-height:1}.fl-stepper__button:hover:not(:disabled){background:var(--fl-color-primary-tint)}.fl-stepper__button:disabled{cursor:not-allowed;opacity:.45}.fl-stepper__value{min-width:2.75rem;padding-inline:var(--fl-space-2);color:var(--fl-color-ink);font-family:var(--fl-font-mono);font-size:var(--fl-text-sm);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;display:inline-flex}.fl-eyebrow{color:var(--fl-color-brand);font-size:var(--fl-text-xs);font-weight:var(--fl-weight-semibold);letter-spacing:var(--fl-tracking-label);text-transform:uppercase;margin:0}.fl-heading{font-family:var(--fl-font-display);font-size:clamp(2.25rem,7vw,5.75rem);font-weight:var(--fl-weight-medium);letter-spacing:var(--fl-tracking-tight);line-height:var(--fl-leading-tight);margin:0}.fl-muted{color:var(--fl-color-ink-muted)}.fl-mono{font-family:var(--fl-font-mono);font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{background:var(--fl-color-ground);color:var(--fl-color-ink);font-family:var(--fl-font-sans);margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--fl-font-display);font-weight:500;line-height:1.12}h1{margin:.5rem 0 1rem;font-size:clamp(2rem,3.5vw,3rem)}h2{margin:1.8rem 0 1rem;font-size:1.65rem}a{color:var(--fl-color-primary-deep);text-underline-offset:3px}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--fl-color-line-strong);background:var(--fl-color-surface);min-height:40px;color:var(--fl-color-ink-soft);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .9rem;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--fl-color-raised)}button.primary,.button.primary{background:var(--fl-color-primary);border-color:var(--fl-color-primary);color:#fff}button.primary:hover,.button.primary:hover{background:var(--fl-color-primary-deep)}button.danger{color:var(--fl-color-error-text)}button:disabled,fieldset:disabled{opacity:.65;cursor:default}:focus-visible{outline:3px solid var(--fl-color-primary);outline-offset:3px}input:not([type=checkbox]),textarea,select{border:1px solid var(--fl-color-line-strong);width:100%;min-width:0;color:var(--fl-color-ink);background:#fff;border-radius:5px;min-height:42px;padding:.6rem .7rem}textarea{resize:vertical}label{gap:.4rem;font-size:.9rem;font-weight:500;display:grid}fieldset{border:0;gap:1.25rem;min-width:0;margin:0;padding:0;display:grid}.eyebrow,.tag{color:var(--fl-color-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}.muted,small{color:var(--fl-color-muted)}.page{width:100%;max-width:900px;margin:0 auto;padding:clamp(24px,4vw,56px)}.wide-page{max-width:1500px}.page-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.back-link{margin-bottom:1.5rem;display:inline-block}.notice,.feedback{background:var(--fl-color-raised);overflow-wrap:anywhere;border-radius:6px;padding:1rem}.feedback.error{background:var(--fl-color-error-tint);color:var(--fl-color-error-text)}.feedback.success{background:var(--fl-color-success-tint);color:var(--fl-color-success-text)}.session-page{max-width:620px;margin:min(15vh,140px) auto;padding:32px}.session-page h1{font-size:clamp(2.5rem,6vw,4rem)}.session-page .primary{min-width:160px;margin:1rem 0}.app-shell{grid-template-columns:100px minmax(0,1fr);min-height:100dvh;display:grid}.rail{background:var(--fl-color-raised);border-right:1px solid var(--fl-color-line);flex-direction:column;align-items:stretch;gap:8px;height:100dvh;padding:20px 10px;display:flex;position:sticky;top:0}.rail>a{color:var(--fl-color-ink-soft);border-radius:7px;flex-direction:column;align-items:center;gap:5px;padding:12px 2px;font-size:.76rem;text-decoration:none;display:flex}.rail>a.active{background:var(--fl-color-primary-tint);color:var(--fl-color-primary-deep)}.rail>a.brand{font:italic 42px var(--fl-font-display);color:var(--fl-color-primary-deep);margin-bottom:20px}.rail .account{text-align:center;overflow-wrap:anywhere;gap:8px;margin-top:auto;font-size:.75rem;display:grid}.rail svg{width:23px;height:23px}.app-content{min-width:0}.navigation-progress{z-index:20;background:var(--fl-color-primary);color:#fff;border-radius:0 0 0 6px;padding:5px 15px;position:fixed;top:0;right:0}.skip-link{z-index:100;background:#fff;padding:1rem;position:fixed;top:-100px;left:20px}.skip-link:focus{top:20px}.recipe-workspace{grid-template-columns:290px minmax(0,1fr);min-height:100dvh;display:grid}.recipe-library{border-right:1px solid var(--fl-color-line);background:#f7f4ed;padding:24px 20px}.recipe-library h1{font-size:2rem}.search-form{gap:.4rem;display:flex}.search-form input{min-width:0}.search-form button{padding:.4rem .6rem}.recipe-list{gap:6px;margin:20px -8px;display:grid}.recipe-row{color:inherit;overflow-wrap:anywhere;border:1px solid #0000;border-radius:6px;gap:5px;padding:14px 12px;text-decoration:none;display:grid}.recipe-row.active{border-color:var(--fl-color-line-strong);background:#fff}.recipe-row:hover{background:var(--fl-color-raised)}.recipe-row strong{font-family:var(--fl-font-display);font-size:1.28rem;font-weight:500}.recipe-main{min-width:0}.pagination{flex-wrap:wrap;gap:12px;margin:20px 0;display:flex}.recipe-meta{color:var(--fl-color-muted);align-items:center;gap:20px;margin-top:24px;font-size:.85rem;display:flex}.recipe-meta label{align-items:center;display:flex}.recipe-content{overflow-wrap:anywhere}.recipe-content img{max-width:100%}.recipe-content li{margin:.8rem 0}.recipe-content .ingredients{padding-left:1.2rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.ingredient-editor{grid-template-columns:70px 90px minmax(100px,1fr) 40px;gap:8px;margin:8px 0;display:grid}.direction-editor{grid-template-columns:24px minmax(0,1fr) 40px;gap:8px;margin:12px 0;display:grid}.direction-editor>span{color:var(--fl-color-muted);padding-top:10px}.editor-footer{border-top:1px solid var(--fl-color-line);flex-wrap:wrap;align-items:center;gap:12px;padding-top:24px;display:flex}.editor-footer>span{color:var(--fl-color-muted);margin-right:auto;font-size:.85rem}dialog{border:1px solid var(--fl-color-line);background:var(--fl-color-ground);width:min(560px,100vw - 32px);max-height:calc(100dvh - 48px);color:inherit;border-radius:12px;padding:28px;overflow:auto;box-shadow:0 24px 100px #201c1740}dialog::backdrop{background:#201c1770}dialog .page-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}dialog .page-heading h2{margin:0}.history-list{padding:0;list-style:none}.history-list a{border-top:1px solid var(--fl-color-line);gap:8px;padding:20px 0;text-decoration:none;display:grid}.history-list span{color:var(--fl-color-muted);font-size:.85rem}.fork-form{align-items:end;gap:12px;margin:24px 0;display:flex}.fork-form label{flex:1}.month-navigation{align-items:center;gap:18px;margin:20px 0;display:flex}.month-navigation h2{margin:0}.calendar-grid{background:var(--fl-color-line);border:1px solid var(--fl-color-line);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}.weekday{text-align:center;background:var(--fl-color-raised);padding:10px;font-size:.8rem}.calendar-day,.calendar-spacer{background:var(--fl-color-ground);min-width:0;min-height:130px;padding:8px}.calendar-spacer{background:#f5f2eb}.calendar-day.today{background:#fff4eb}.day-label{background:0 0;border:0;justify-content:space-between;width:100%;min-height:32px;padding:3px;display:flex}.day-label>span:last-child{color:var(--fl-color-muted)}.mobile-day{display:none}.calendar-entry{background:var(--fl-color-sage-tint);overflow-wrap:anywhere;border-radius:5px;margin:6px 0;padding:8px;font-size:.8rem}.calendar-entry a{color:var(--fl-color-ink-soft);display:block}.calendar-entry small{display:block}.calendar-entry button{background:0 0;border:0;min-height:28px;padding:4px 0;font-size:.7rem;text-decoration:underline}.range-form{max-width:540px}.range-form>button{margin-top:16px}.recipe-picker ul{max-height:240px;padding:0;list-style:none;overflow:auto}.recipe-picker li button{text-align:left;justify-content:start;width:100%;margin:5px 0;display:block}.grocery-add{background:var(--fl-color-raised);border-radius:8px;margin:24px 0;padding:20px}.grocery-add fieldset{grid-template-columns:2fr 2fr auto;align-items:end;gap:12px}.grocery-list{padding:0;list-style:none}.grocery-row{border-bottom:1px solid var(--fl-color-line);padding:18px 0}.grocery-line{align-items:center;gap:16px;display:flex}.grocery-line>div{overflow-wrap:anywhere;flex:1;min-width:0}.grocery-line input{width:23px;height:23px;accent-color:var(--fl-color-sage-deep);flex-shrink:0}.grocery-row.checked strong{color:var(--fl-color-muted);text-decoration:line-through}.grocery-sources{flex-wrap:wrap;gap:8px;font-size:.8rem;display:flex}.preview-row{border-bottom:1px solid var(--fl-color-line);padding:12px 0}@media (width<=1100px){.recipe-workspace{grid-template-columns:250px minmax(0,1fr)}.grocery-add fieldset{grid-template-columns:1fr}}@media (width<=800px){.app-shell{padding-bottom:90px;display:block}.rail{z-index:30;border-right:0;border-top:1px solid var(--fl-color-line-strong);height:auto;padding:5px 8px;padding-bottom:max(5px, env(safe-area-inset-bottom));flex-direction:row;justify-content:space-around;align-items:center;gap:4px;position:fixed;inset:auto 0 0}.rail>a{padding:8px 12px}.rail>a.brand,.rail .rail-new{display:none}.rail .account{max-width:75px;margin:0;font-size:.7rem}.rail .account>span{display:none}.rail .account a{padding:12px 3px}.recipe-workspace{min-height:0;display:block}.recipe-library{border:0}.is-detail .recipe-library,.is-index .recipe-main{display:none}.page-heading{flex-wrap:wrap;align-items:start}.calendar-grid{background:0 0;border:0;display:block}.weekday,.calendar-spacer,.desktop-day{display:none}.mobile-day{display:inline}.calendar-day{border-bottom:1px solid var(--fl-color-line);min-height:0;padding:8px 0}.calendar-entry{align-items:center;gap:12px;font-size:1rem;display:flex}.calendar-entry a{flex:1}.calendar-entry button{min-height:36px;font-size:.85rem}.month-navigation{flex-wrap:wrap;gap:10px}.month-navigation h2{font-size:1.4rem}}@media (width<=480px){.ingredient-editor{grid-template-columns:60px 70px minmax(70px,1fr) 34px;gap:5px}.ingredient-editor input{padding:8px 5px}.ingredient-editor button{padding:5px}.fork-form{flex-direction:column;align-items:stretch}.page{padding:24px 18px}dialog{padding:20px}.editor-footer>span{width:100%}}.session-form{gap:1rem;margin-block:1.5rem;display:grid}
