.tf-identity{--tf-sidebar-width:256px;--tf-content-width:60rem;--tf-panel-shadow:0 1px 2px #29251f0d;--tf-selected-bg:color-mix(in srgb, var(--tf-action-bg) 7%, white);background:var(--tf-surface-canvas);overflow-wrap:anywhere;flex-direction:column;min-height:100dvh;display:flex}.tf-identity :focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:3px}.tf-identity .tf-skip-link{z-index:60;background:var(--tf-surface-card);padding:12px 16px;position:absolute;top:8px;left:16px;transform:translateY(-200%)}.tf-identity .tf-skip-link:focus{transform:none}.tf-identity .tf-icon{background:currentColor;flex:none;width:20px;height:20px;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.tf-identity .tf-button{white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}html.tf-nav-locked{overflow:hidden}.tf-shell{grid-template-columns:var(--tf-sidebar-width) minmax(0, 1fr);min-height:100dvh;display:grid}.tf-shell-main{flex-direction:column;min-width:0;display:flex}.tf-shell-brand{border-radius:6px;display:inline-flex}.tf-shell-brand>span{padding-block:0}.tf-shell-brand img{width:128px}.tf-sidebar{background:var(--tf-surface-card);border-right:1px solid var(--tf-border-subtle);flex-direction:column;height:100dvh;padding:1.25rem .875rem;display:flex;position:sticky;top:0}.tf-sidebar-head{justify-content:space-between;align-items:center;min-height:44px;padding:0 .5rem 1.25rem;display:flex}.tf-sidebar-nav ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.tf-identity .tf-sidebar-link{border-radius:var(--tf-radius-control);width:100%;min-height:44px;color:var(--tf-text-secondary);font:600 .9375rem/1.25 var(--tf-font-body);cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:.75rem;padding:.5rem .75rem;text-decoration:none;display:flex;position:relative}.tf-identity .tf-sidebar-link:hover:not(:disabled),.tf-sidebar-link[aria-current=page]{background:var(--tf-surface-subtle);color:var(--tf-text-primary)}.tf-sidebar-link[aria-current=page]:before{content:"";background:var(--tf-action-bg);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-.875rem}.tf-sidebar-link[aria-current=page] .tf-icon{color:var(--tf-action-bg)}.tf-sidebar-foot{border-top:1px solid var(--tf-border-subtle);margin-top:auto;padding-top:1rem}.tf-sign-out-nav output:empty{display:none}.tf-sign-out-nav output{color:var(--tf-status-error);padding:.5rem .75rem 0;font-size:.875rem;display:block}.tf-topbar,.tf-drawer-close,.tf-nav-backdrop{display:none}.tf-auth-header{justify-content:center;padding:1.5rem 1rem .5rem;display:flex}.tf-identity-main{width:min(var(--tf-content-width), calc(100% - 3rem));flex-direction:column;flex:1;align-items:flex-start;gap:1.25rem;margin:2.5rem auto 3rem;display:flex}.tf-identity-main>*{max-width:100%}.tf-identity-main p{max-width:64ch}.tf-identity-main>h1,.tf-identity-title,.tf-page-header h1{font-family:var(--tf-font-display);font-variation-settings:"SOFT" 35, "WONK" 0;letter-spacing:-.01em;text-wrap:balance;font-size:clamp(1.875rem,3.2vw,2.375rem);font-weight:600;line-height:1.15}.tf-identity-main h2{font-size:1.25rem;font-weight:600;line-height:1.3}.tf-page-header{gap:.5rem;width:100%;padding-bottom:.75rem;display:grid}.tf-page-header>p:not(.tf-eyebrow):not(.tf-identity-title){color:var(--tf-text-secondary);font-size:1.0625rem}.tf-identity .tf-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--tf-text-secondary);font-size:.8125rem;font-weight:600}.tf-identity-footer{width:min(var(--tf-content-width), calc(100% - 3rem));border-top:1px solid var(--tf-border-subtle);color:var(--tf-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1.5rem;margin:auto auto 0;padding-block:1rem;font-size:.875rem;display:flex}.tf-identity-footer nav{gap:1.25rem;display:flex}.tf-identity-footer a{align-items:center;min-height:44px;display:inline-flex}.tf-panel,.tf-household-editor>section{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);width:100%;min-width:0;box-shadow:var(--tf-panel-shadow);padding:1.5rem}.tf-panel-header{gap:.25rem;display:grid}.tf-panel-header p{color:var(--tf-text-secondary)}.tf-badge{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-subtle);width:fit-content;color:var(--tf-text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:.375rem;padding:.125rem .625rem;font-size:.8125rem;font-weight:600;line-height:1.5;display:inline-flex}.tf-badge[data-tone=success]{background:var(--tf-status-success-bg);color:var(--tf-status-success);border-color:#0000}.tf-task{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.25rem;display:grid}.tf-task-icon{border-radius:var(--tf-radius-control);background:var(--tf-surface-subtle);width:44px;height:44px;color:var(--tf-text-primary);place-items:center;display:grid}.tf-task-body{gap:.375rem;min-width:0;display:grid}.tf-task-body p{color:var(--tf-text-secondary)}.tf-access-status{grid-template-columns:auto minmax(0,1fr)}.tf-account-sections{gap:1rem;display:grid}.tf-account-action{display:contents}.tf-account-action output{color:var(--tf-text-secondary);grid-column:2/-1}.tf-account-action output:empty{display:none}.tf-button.tf-button--danger,.tf-button.tf-button--danger[aria-busy=true]:hover,.tf-button.tf-button--danger[aria-busy=true]:active{background:var(--tf-status-error);border-color:var(--tf-status-error);color:var(--tf-status-error-bg)}.tf-button.tf-button--danger:hover:not([aria-busy=true]){background:color-mix(in srgb, var(--tf-status-error) 88%, black)}.tf-delete-dialog{gap:1rem;display:grid}.tf-future-workflows{margin-top:.75rem}.tf-future-workflows ul{margin:1rem -1.5rem -1.5rem;padding:0;list-style:none}.tf-future-workflows li{border-top:1px solid var(--tf-border-subtle);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.5rem;display:grid}.tf-future-workflows li .tf-task-icon{width:36px;height:36px;color:var(--tf-text-secondary)}.tf-future-workflows h3{font-size:1rem;font-weight:600}.tf-future-workflows li p{color:var(--tf-text-secondary);font-size:.9375rem}.tf-identity-problem{text-align:center;justify-items:center;gap:.75rem;max-width:36rem;margin:2rem auto 0;padding:2.5rem 2rem;display:grid}.tf-identity-problem h1{font-size:clamp(1.625rem,3vw,2rem)}.tf-identity-problem p{color:var(--tf-text-secondary)}.tf-problem-icon{background:var(--tf-status-warning-bg);width:48px;height:48px;color:var(--tf-status-warning);border-radius:50%;place-items:center;display:grid}.tf-problem-icon .tf-icon{width:24px;height:24px}.tf-problem-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.75rem;display:flex}.tf-problem-actions output:empty{display:none}.tf-identity-auth{text-align:center;align-items:center;width:min(28rem,100% - 2rem);margin-top:1.5rem}.tf-identity-auth>p{color:var(--tf-text-secondary)}.tf-clerk-root,.tf-clerk-card-box{width:100%;min-width:0;max-width:100%}.tf-clerk-card-box{border-radius:var(--tf-radius-card);box-shadow:var(--tf-panel-shadow)}.tf-clerk-card{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);box-shadow:none}.tf-clerk-control{min-height:48px}.tf-identity .cl-headerTitle{font-size:1.375rem;line-height:1.2;font-family:var(--tf-font-display)}.tf-identity-loading{z-index:70;background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);width:max-content;max-width:calc(100% - 2rem);padding:.625rem 1rem;position:fixed;bottom:1.5rem;left:50%;translate:-50%;box-shadow:0 4px 16px #29251f1a}.tf-identity-main>output:not(:empty){color:var(--tf-text-secondary);font-size:.9375rem}.tf-household-editor{gap:1.25rem;width:100%;min-width:0;display:grid}.tf-household-editor>section>h2{margin-block:.25rem .375rem}.tf-household-editor>section>p:not(.tf-eyebrow){color:var(--tf-text-secondary)}.tf-people{gap:.75rem;margin-top:1.25rem;padding:0;list-style:none;display:grid}.tf-person-link,.tf-person-card{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);min-height:3.5rem;color:inherit;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.875rem;padding:.875rem 1rem;text-decoration:none;display:grid}.tf-person-link{width:100%;font:inherit;text-align:left;cursor:pointer}.tf-person-link:hover{background:var(--tf-surface-subtle);border-color:var(--tf-border-control)}.tf-person-initial{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-subtle);border-radius:999px;place-items:center;width:2.5rem;height:2.5rem;font-weight:700;display:grid}.tf-person-summary{gap:.375rem;min-width:0;display:grid}.tf-person-summary strong{font-size:1.0625rem}.tf-person-tags{gap:.5rem;min-width:0;display:grid}.tf-tag-row{flex-wrap:wrap;gap:.375rem;min-width:0;display:flex}.tf-tag{background:var(--tf-surface-subtle);max-width:min(100%,20rem);color:var(--tf-text-secondary);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3125rem;padding:.125rem .625rem .125rem .5rem;font-size:.8125rem;line-height:1.5;display:inline-flex}.tf-tag>span{text-overflow:ellipsis;overflow:hidden}.tf-tag>.tf-icon{width:14px;height:14px}.tf-tag[data-kind=allergy],.tf-tag[data-kind=avoid],.tf-tag[data-kind=diet],.tf-tag[data-kind=unknown],.tf-tag[data-kind=none]{white-space:normal;max-width:100%}.tf-tag[data-kind=allergy],.tf-tag[data-kind=avoid]{background:var(--tf-status-error-bg);color:var(--tf-status-error);font-weight:600}.tf-tag[data-kind=diet]{background:var(--tf-status-success-bg);color:var(--tf-status-success);font-weight:600}.tf-tag[data-kind=unknown]{border:1px dashed var(--tf-border-control);background:0 0}.tf-tag[data-kind=spice],.tf-tag[data-kind=appetite],.tf-tag[data-kind=likes],.tf-tag[data-kind=dislikes],.tf-tag[data-kind=guessedDiet],.tf-tag[data-kind=course],.tf-tag[data-kind=protein],.tf-tag[data-kind=cuisine],.tf-tag[data-kind=feature],.tf-tag[data-kind=equipment]{border-color:color-mix(in srgb, var(--tf-kiln) 12%, transparent);background:var(--tf-oat);color:var(--tf-text-primary)}.tf-person-tags[data-wrap] .tf-tag{white-space:normal;max-width:100%}.tf-person-chevron{border-right:2px solid var(--tf-text-secondary);border-bottom:2px solid var(--tf-text-secondary);width:.625rem;height:.625rem;margin-right:.375rem;transform:rotate(-45deg)}.tf-field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 1rem;margin-block:1.25rem;display:grid}.tf-field-pair>.tf-default-field{margin-block:0}.tf-person-remove-trigger{color:var(--tf-text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:.25rem;padding:0}.tf-person-remove{border-radius:var(--tf-radius-control);background:var(--tf-status-error-bg);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.tf-person-remove p{flex-basis:100%;font-weight:600}.tf-people-empty{border:1px dashed var(--tf-border-control);border-radius:var(--tf-radius-control);margin-top:1.25rem;padding:1rem}.tf-add-person{gap:.5rem;margin-top:1.25rem;display:grid}.tf-add-person label{font-weight:600}.tf-add-person>div{gap:.5rem;display:flex}.tf-add-person input{flex:1}.tf-add-person .tf-button{flex:none}.tf-add-person p{color:var(--tf-status-warning);font-size:.9375rem}.tf-default-field{gap:.5rem;min-width:0;margin-block:1.25rem;display:grid}.tf-default-field>label,.tf-default-field legend{font-weight:600}.tf-default-field legend{margin-bottom:.5rem}.tf-default-field>textarea,.tf-default-field>select,.tf-default-field>input,.tf-add-person input{border:1px solid var(--tf-border-control);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);width:100%;min-width:0;min-height:3rem;color:var(--tf-text-primary);font:inherit;resize:vertical;padding:.75rem;display:block}.tf-default-field p,.tf-default-field output{color:var(--tf-text-secondary);overflow-wrap:anywhere;font-size:.9375rem}.tf-default-field output[data-problem=false]{margin-top:-.5rem}.tf-default-field output[data-problem=true]{color:var(--tf-status-warning);font-weight:600}.tf-default-field>.tf-button{justify-self:start}.tf-person-section{border-top:1px solid var(--tf-border-subtle);margin-top:1.5rem;padding-top:1.25rem}.tf-person-section h2,.tf-person-section h3{font-size:1.0625rem;font-weight:600}.tf-person-section>p{color:var(--tf-text-secondary);margin-top:.25rem;font-size:.9375rem}.tf-default-checks{flex-wrap:wrap;gap:.5rem;display:flex}.tf-default-check{background:var(--tf-surface-card);border:1px solid var(--tf-border-control);overflow-wrap:anywhere;cursor:pointer;border-radius:999px;align-items:center;gap:.375rem;min-height:2.75rem;padding:.5rem 1rem;font-size:.9375rem;line-height:1.25;display:inline-flex;position:relative}.tf-default-check:hover{background:var(--tf-surface-subtle)}.tf-default-check:has(:checked){background:var(--tf-selected-bg);border-color:var(--tf-action-bg)}.tf-default-check:has(:checked):before{content:"✓" / "";color:var(--tf-action-bg);font-weight:700}.tf-default-check[data-none]:not(:has(:checked)){border-style:dashed}.tf-default-check:has(:disabled){cursor:not-allowed;opacity:.7}.tf-default-check:has(:focus-visible){outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-default-check input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.tf-tag-input{border:1px solid var(--tf-border-control);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);flex-wrap:wrap;align-items:center;gap:.375rem;min-width:0;min-height:3rem;padding:.375rem .5rem;display:flex}.tf-tag-input:focus-within{outline:3px solid var(--tf-focus-ring);outline-offset:3px}.tf-tag-input[data-locked]{opacity:.7}.tf-tag-input ul{flex-wrap:wrap;gap:.375rem;min-width:0;padding:0;list-style:none;display:flex}.tf-tag-input .tf-tag{align-items:center;gap:.125rem;padding-right:.125rem;font-size:.875rem;display:inline-flex}.tf-tag-input .tf-tag span{text-overflow:ellipsis;overflow:hidden}.tf-tag-input .tf-tag button{width:1.75rem;height:1.75rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.tf-tag-input .tf-tag button:hover{background:#29251f14}.tf-tag-input .tf-tag .tf-icon{width:14px;height:14px}.tf-tag-input input{min-width:8rem;min-height:2.25rem;color:var(--tf-text-primary);font:inherit;background:0 0;border:0;flex:8rem;padding:.25rem}.tf-tag-input input:focus-visible{outline:none}.tf-household-bar{z-index:10;background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.75rem .75rem .75rem 1rem;display:flex;position:sticky;bottom:.75rem;box-shadow:0 4px 16px #29251f1a}.tf-save-status{min-width:8rem;color:var(--tf-text-secondary);flex:1 1 0;align-items:center;gap:.5rem;font-size:.9375rem;display:flex}.tf-save-status[data-tone=success] .tf-icon{color:var(--tf-status-success)}.tf-save-status[data-tone=warning]{color:var(--tf-status-warning);font-weight:600}.tf-person-panel{border:0;border-left:1px solid var(--tf-border-subtle);background:var(--tf-surface-canvas);width:min(38rem,100vw);max-width:none;height:100dvh;max-height:none;color:var(--tf-text-primary);margin:0 0 0 auto;padding:0;position:fixed;inset:0 0 0 auto;box-shadow:-8px 0 32px #29251f29}.tf-person-panel[open]{grid-template-rows:auto minmax(0,1fr) auto;animation:.2s ease-out tf-panel-in;display:grid}.tf-person-panel::backdrop{background:#29251f59}@keyframes tf-panel-in{0%{opacity:0;transform:translate(2rem)}}.tf-person-panel-head{background:var(--tf-surface-card);border-bottom:1px solid var(--tf-border-subtle);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.875rem;padding:1rem 1rem 1rem 1.5rem;display:grid}.tf-person-panel-head h2{font-size:1.375rem;line-height:1.3}.tf-person-panel-head h2:focus{outline:none}.tf-person-panel-close{width:2.75rem;height:2.75rem;color:var(--tf-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.tf-person-panel-close:hover{background:var(--tf-surface-subtle);color:var(--tf-text-primary)}.tf-person-panel-body{overscroll-behavior:contain;padding:.25rem 1.5rem 1.5rem;overflow-y:auto}.tf-household-bar[data-panel]{box-shadow:none;border-width:1px 0 0;border-radius:0;padding:.75rem 1rem .75rem 1.5rem;position:static}.tf-setup-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.tf-setup-progress{background:var(--tf-surface-subtle);border-radius:999px;height:.375rem;margin-block:.25rem .75rem;overflow:hidden}.tf-setup-progress span{border-radius:inherit;background:var(--tf-action-bg);height:100%;transition:width .2s;display:block}.tf-setup-header h1:focus{outline:none}.tf-setup-people{gap:.5rem;margin-bottom:.5rem;padding:0;list-style:none;display:grid}.tf-setup-people li{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.tf-setup-people li strong{flex:1}.tf-setup-people .tf-person-remove{flex-basis:100%;margin-top:0}.tf-setup-kitchen{margin-top:1.25rem}@media (max-width:1023px){.tf-shell{display:block}.tf-topbar{z-index:30;background:var(--tf-surface-card);border-bottom:1px solid var(--tf-border-subtle);justify-content:space-between;align-items:center;gap:1rem;min-height:60px;padding:.5rem 1rem;display:flex;position:sticky;top:0}.tf-nav-toggle,.tf-drawer-close{border:1px solid var(--tf-border-control);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);min-width:44px;min-height:44px;color:var(--tf-text-primary);font:600 .9375rem/1 var(--tf-font-body);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;padding:0 .875rem;display:inline-flex}.tf-drawer-close{border-color:#0000;padding:0}.tf-nav-toggle:hover,.tf-drawer-close:hover{background:var(--tf-surface-subtle)}.tf-sidebar{z-index:50;visibility:hidden;width:min(20rem,86vw);height:100dvh;transition:transform .2s,visibility 0s linear .2s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 40px #29251f2e}.tf-shell[data-nav-open=true] .tf-sidebar{visibility:visible;transition:transform .2s;transform:none}.tf-nav-backdrop{z-index:40;opacity:0;pointer-events:none;background:#171a1c66;transition:opacity .2s;display:block;position:fixed;inset:0}.tf-shell[data-nav-open=true] .tf-nav-backdrop{opacity:1;pointer-events:auto}.tf-sidebar-head{padding-bottom:1rem}.tf-identity-main,.tf-identity-footer{width:min(var(--tf-content-width), calc(100% - 2rem))}.tf-identity-main{margin-top:1.75rem}}@media (max-width:720px){.tf-task{grid-template-columns:auto minmax(0,1fr);align-items:start}.tf-task>.tf-button,.tf-account-action>.tf-button,.tf-account-action output{grid-column:1/-1}.tf-task>.tf-button,.tf-account-action>.tf-button{width:100%}.tf-future-workflows li{grid-template-columns:auto minmax(0,1fr)}.tf-future-workflows li .tf-badge,.tf-future-workflows li>.tf-button{grid-column:2;justify-self:start}.tf-panel,.tf-household-editor>section{padding:1.25rem}.tf-future-workflows ul{margin:1rem -1.25rem -1.25rem}.tf-future-workflows li{padding:1rem 1.25rem}.tf-field-pair{grid-template-columns:minmax(0,1fr)}.tf-person-panel{border-left:0}.tf-person-panel-head{padding-left:1rem}.tf-person-panel-body{padding-inline:1rem}.tf-household-bar[data-panel]{padding-left:1rem}}@media (prefers-reduced-motion:reduce){.tf-identity *,.tf-identity :before,.tf-identity :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.tf-cookbook-header{grid-template-columns:minmax(0,1fr) auto;align-items:end}.tf-cookbook-header>*{grid-column:1}.tf-cookbook-header>.tf-button,.tf-cookbook-header>.tf-meal-new{grid-area:1/2/span 2;align-self:end}.tf-cookbook-header:has(>.tf-recipe-page-actions){grid-template-columns:minmax(0,1fr)}.tf-recipe-page-actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.tf-menu{position:relative}.tf-identity .tf-menu-button{aspect-ratio:1;padding:0}.tf-menu-list{z-index:30;background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);gap:2px;min-width:14rem;margin:0;padding:.375rem;list-style:none;display:grid;position:absolute;top:calc(100% + .375rem);left:0;box-shadow:0 4px 16px #29251f1a}.tf-menu-list[hidden]{display:none}.tf-identity .tf-menu-list:focus-visible{outline:none}.tf-menu-apart{border-top:1px solid var(--tf-border-subtle);margin-top:.25rem;padding-top:.375rem}.tf-menu-item{border-radius:var(--tf-radius-control);width:100%;min-height:44px;color:var(--tf-text-primary);font:600 .9375rem/1.25 var(--tf-font-body);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.tf-menu-item:hover,.tf-menu-item:focus-visible{background:var(--tf-surface-subtle)}.tf-identity .tf-menu-item:focus-visible{outline-offset:-3px}.tf-menu-item .tf-icon{color:var(--tf-text-secondary)}.tf-recipe-meal{color:var(--tf-text-secondary);flex-wrap:wrap;align-items:center;gap:.375rem .625rem;font-size:.9375rem;display:flex}.tf-recipe-meal>.tf-icon{width:18px;height:18px;color:var(--tf-kiln)}.tf-recipe-meal>span{font-weight:600}.tf-recipe-meal ul{flex-wrap:wrap;gap:.375rem .625rem;display:flex}.tf-recipe-meal li+li:before{content:"·";margin-right:.625rem}.tf-recipe-list{gap:.75rem;width:100%;display:grid}.tf-meal-row:hover{border-color:var(--tf-border-control)}.tf-meal-row:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-cookbook-tools{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;width:100%;display:grid}.tf-cookbook-filter{white-space:nowrap;align-items:center;gap:.5rem;display:inline-flex}.tf-cookbook-status{min-height:1.75rem;color:var(--tf-text-secondary);flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin-block:.75rem .25rem;font-size:.9375rem;display:flex}.tf-cookbook-clear{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.tf-cookbook-clear:focus-visible,.tf-filter-chip:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-cookbook-none{color:var(--tf-text-secondary)}.tf-cookbook-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.25rem;width:100%;display:grid}.tf-cookbook-card{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);height:100%;box-shadow:var(--tf-panel-shadow);overflow-wrap:anywhere;grid-template-rows:auto 1fr;display:grid;overflow:hidden}.tf-cookbook-card:hover{border-color:var(--tf-border-control)}.tf-cookbook-card:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-cookbook-photo{aspect-ratio:4/3;background:var(--tf-oat);width:100%;color:color-mix(in srgb, var(--tf-kiln) 55%, transparent);object-fit:cover;place-items:center;display:grid}.tf-cookbook-photo .tf-icon{width:2.5rem;height:2.5rem}.tf-cookbook-card-body{align-content:start;gap:.375rem;padding:.875rem 1rem 1rem;display:grid}.tf-cookbook-card-body strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.0625rem;line-height:1.3;display:-webkit-box;overflow:hidden}.tf-cookbook-card-body>span:not(.tf-tag-row){color:var(--tf-text-secondary);font-size:.9375rem}.tf-cookbook-more{color:var(--tf-text-secondary);align-self:center;font-size:.875rem}.tf-cookbook-panel-head{background:var(--tf-surface-card);border-bottom:1px solid var(--tf-border-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.875rem;padding:1rem 1rem 1rem 1.5rem;display:grid}.tf-cookbook-panel-head h2{font-size:1.375rem;line-height:1.3}.tf-cookbook-panel-head h2:focus{outline:none}.tf-cookbook-panel-body{align-content:start;gap:1.5rem;padding-top:1.25rem;display:grid}.tf-cookbook-group{border:0;gap:.75rem;min-width:0;margin:0;padding:0;display:grid}.tf-cookbook-group legend{margin-bottom:.75rem;padding:0;font-weight:600}.tf-cookbook-note{color:var(--tf-text-secondary);margin:-.5rem 0 .75rem;font-size:.875rem}.tf-cookbook-chips{flex-wrap:wrap;gap:.5rem;display:flex}.tf-filter-chip{border:1px solid var(--tf-border-control);background:var(--tf-surface-card);min-height:44px;color:var(--tf-text-primary);font:400 .9375rem/1.3 var(--tf-font-body);cursor:pointer;border-radius:999px;align-items:center;gap:.375rem;padding:.5rem 1rem .5rem .75rem;display:inline-flex}.tf-filter-chip .tf-icon{width:16px;height:16px;color:var(--tf-text-secondary)}.tf-filter-count{color:var(--tf-text-secondary);font-variant-numeric:tabular-nums;font-size:.8125rem}.tf-filter-chip:hover{background:var(--tf-surface-subtle)}.tf-filter-chip[data-empty]{border-color:var(--tf-border-subtle);color:var(--tf-text-secondary);background:0 0}.tf-filter-chip[aria-pressed=true]{border-color:var(--tf-action-bg);box-shadow:inset 0 0 0 1px var(--tf-action-bg);background:var(--tf-selected-bg);color:var(--tf-text-primary)}.tf-filter-chip[aria-pressed=true] .tf-icon{color:var(--tf-action-bg)}.tf-cookbook-panel-foot{background:var(--tf-surface-card);border-top:1px solid var(--tf-border-subtle);flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.75rem 1.5rem;display:flex}.tf-recipe-form,.tf-recipe-view{gap:1.25rem;width:100%;display:grid}.tf-recipe-form .tf-panel,.tf-recipe-view .tf-panel{gap:1rem;display:grid}.tf-recipe-notice:empty{display:none}.tf-recipe-notice:focus{outline:none}.tf-recipe-notice .tf-status{justify-items:start;gap:.75rem;display:grid}.tf-recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.tf-recipe-field{align-content:start;gap:.375rem;min-width:0;display:grid}.tf-recipe-field>label,.tf-recipe-field>legend{font-weight:600}.tf-recipe-field>legend{margin-bottom:.375rem}.tf-recipe-field .tf-field{width:100%;min-width:0}.tf-recipe-field textarea{resize:vertical}.tf-recipe-hint,.tf-recipe-diets{gap:.5rem;display:grid}.tf-recipe-help{color:var(--tf-text-secondary);font-size:.9375rem}.tf-recipe-error{color:var(--tf-status-error);overflow-wrap:anywhere;font-size:.9375rem;font-weight:600}.tf-recipe-rows{gap:.75rem;display:grid}.tf-recipe-row{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.75rem;padding:1rem;display:grid}.tf-recipe-row[data-kind=heading]{background:var(--tf-surface-subtle)}.tf-recipe-row>fieldset{gap:.75rem;min-width:0;display:grid}.tf-recipe-legend{letter-spacing:.04em;text-transform:uppercase;color:var(--tf-text-secondary);font-size:.8125rem;font-weight:600}.tf-ingredient-fields{grid-template-columns:minmax(5rem,7rem) minmax(7rem,9rem) minmax(0,1fr) minmax(0,1fr);gap:.75rem;display:grid}.tf-recipe-check{align-items:center;gap:.5rem;width:fit-content;min-height:44px;display:inline-flex}.tf-recipe-check input{width:1.25rem;height:1.25rem;accent-color:var(--tf-action-bg)}.tf-recipe-temperature{grid-template-columns:minmax(0,1fr) 5rem;gap:.5rem;display:grid}.tf-recipe-row-controls{flex-direction:column;gap:.25rem;display:flex}.tf-recipe-row-controls button{border:1px solid var(--tf-border-control);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);width:44px;height:44px;color:var(--tf-text-primary);cursor:pointer;place-items:center;display:grid}.tf-recipe-row-controls button:hover:not(:disabled){background:var(--tf-surface-subtle)}.tf-recipe-row-controls button:disabled{opacity:.4;cursor:not-allowed}.tf-recipe-row-controls button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-recipe-add,.tf-recipe-actions{flex-wrap:wrap;gap:.75rem;display:flex}.tf-recipe-actions a.tf-button{align-items:center;display:inline-flex}.tf-recipe-meta{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.tf-recipe-meta li{font-weight:600}.tf-recipe-view{--tf-row-edge:1.5rem}.tf-recipe-ingredients{margin:0 calc(-1 * var(--tf-row-edge));border-bottom:1px solid var(--tf-border-subtle);overflow-wrap:anywhere;grid-template-columns:max-content minmax(0,1fr) auto;column-gap:1rem;display:grid}.tf-recipe-ingredient-group,.tf-recipe-ingredient-group>ul,.tf-recipe-ingredient{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.tf-recipe-ingredient-group>ul{margin:0;padding:0;list-style:none}.tf-recipe-ingredient-group h3{padding:1.25rem var(--tf-row-edge) .5rem;grid-column:1/-1;font-size:1rem;font-weight:600}.tf-recipe-ingredient{padding:.625rem 1rem .625rem var(--tf-row-edge);border-top:1px solid var(--tf-border-subtle);align-items:start;transition:background-color .12s ease-out}.tf-recipe-amount{font-variant-numeric:tabular-nums;font-weight:600}.tf-recipe-ingredient-body{gap:.25rem;display:grid}.tf-recipe-preparation{color:var(--tf-text-secondary)}.tf-recipe-steps{margin:0 calc(-1 * var(--tf-row-edge)) calc(-1 * var(--tf-row-edge));overflow-wrap:anywhere;padding:0;list-style:none;display:grid}.tf-recipe-step{padding:1rem 1rem 1rem var(--tf-row-edge);border-top:1px solid var(--tf-border-subtle);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:1rem;transition:background-color .12s ease-out;display:grid}.tf-recipe-step:last-child{border-radius:0 0 var(--tf-radius-card) var(--tf-radius-card)}:is(.tf-recipe-step,.tf-recipe-ingredient):hover{background:var(--tf-surface-subtle)}:is(.tf-recipe-step,.tf-recipe-ingredient):has(.tf-ask-about[aria-pressed=true]){background:var(--tf-selected-bg);box-shadow:inset 3px 0 0 var(--tf-action-bg)}.tf-recipe-step-number{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-card);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:1.75rem;height:1.75rem;padding:0 .375rem;font-size:.875rem;font-weight:700;display:grid}.tf-recipe-step-body{gap:.375rem;padding-top:.125rem;display:grid}.tf-recipe-step-body p{white-space:pre-line}.tf-recipe-step-detail{color:var(--tf-text-secondary);align-items:center;gap:.375rem;font-size:.9375rem;display:flex}.tf-recipe-step-detail .tf-icon{flex:none;width:16px;height:16px}.tf-step-uses{flex-wrap:wrap;gap:.375rem;margin:.125rem 0 0;padding:0;list-style:none;display:flex}.tf-step-uses li{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-card);color:var(--tf-text-secondary);border-radius:999px;padding:.125rem .625rem;font-size:.875rem;line-height:1.5}.tf-step-uses strong{color:var(--tf-text-primary);font-weight:600}.tf-ask-about{width:2.5rem;height:2.5rem;color:var(--tf-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;place-items:center;margin:-.375rem 0;display:grid}.tf-ask-about:hover,.tf-ask-about[aria-pressed=true]{border-color:var(--tf-border-subtle);background:var(--tf-surface-card);color:var(--tf-text-primary)}@media (hover:hover){.tf-ask-about{opacity:0;transition:opacity .12s ease-out}:is(.tf-recipe-step,.tf-recipe-ingredient):hover .tf-ask-about,.tf-ask-about:focus-visible,.tf-ask-about[aria-pressed=true]{opacity:1}}@media (max-width:720px){.tf-recipe-view{--tf-row-edge:1.25rem}.tf-recipe-ingredients{column-gap:.75rem}.tf-recipe-step{gap:.75rem}.tf-recipe-step,.tf-recipe-ingredient{padding-right:.5rem}}.tf-step-parts{gap:.5rem;margin-top:.75rem;display:grid}.tf-step-part{grid-template-columns:minmax(0,1fr) 5rem 7rem;align-items:center;gap:.5rem;display:grid}.tf-step-part label{font-size:.9375rem}@media (max-width:720px){.tf-step-part{grid-template-columns:minmax(0,1fr) 7rem}.tf-step-part label{grid-column:1/-1}}.tf-recipe-link{overflow-wrap:anywhere}@media (max-width:720px){.tf-cookbook-tools{grid-template-columns:minmax(0,1fr) auto}.tf-cookbook-search{grid-column:1/-1}.tf-cookbook-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.tf-cookbook-card-body{padding:.75rem}.tf-cookbook-panel-head{padding-left:1rem}.tf-cookbook-panel-foot{padding-inline:1rem}:is(.tf-cookbook-header,.tf-cookbook-header:has(>.tf-recipe-page-actions)){grid-template-columns:minmax(0,1fr)}.tf-cookbook-header>.tf-button{grid-area:auto/1;justify-content:flex-start}.tf-recipe-page-actions{flex-wrap:nowrap;gap:.5rem}.tf-recipe-page-actions>.tf-button{flex:auto;min-width:0;padding-inline:.75rem}.tf-recipe-page-actions .tf-menu-list{left:auto;right:0}.tf-ingredient-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tf-recipe-grid{grid-template-columns:minmax(0,1fr)}.tf-ingredient-fields>:nth-child(n+3){grid-column:1/-1}.tf-recipe-row{grid-template-columns:minmax(0,1fr);padding:.75rem}.tf-recipe-row-controls{flex-direction:row}.tf-recipe-actions>*{flex:100%;justify-content:center}}.tf-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tf-recipe-form{--tf-row-controls:8.75rem;container-type:inline-size}.tf-recipe-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.tf-recipe-grid--three{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.tf-recipe-rows--compact{gap:.5rem}.tf-ingredient-head,.tf-ingredient-fields{grid-template-columns:5.5rem 7.5rem minmax(0,1.4fr) minmax(0,1fr) 6rem;align-items:center;gap:.5rem;display:grid}.tf-ingredient-head{margin-right:calc(var(--tf-row-controls) + 1rem);color:var(--tf-text-secondary);padding-left:calc(.5rem + 1px);font-size:.8125rem;font-weight:600}.tf-ingredient-row,.tf-step-row{grid-template-columns:minmax(0, 1fr) var(--tf-row-controls);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);align-items:center;gap:.375rem .5rem;padding:.5rem;display:grid}.tf-ingredient-row[data-kind=heading]{background:var(--tf-surface-subtle)}.tf-ingredient-row .tf-recipe-row-controls,.tf-step-row .tf-recipe-row-controls{flex-direction:row;justify-content:flex-end}.tf-ingredient-fields .tf-recipe-check{font-size:.9375rem}.tf-row-notes{grid-column:1/-1;gap:.375rem;display:grid}.tf-row-notes:empty{display:none}.tf-ingredient-link{gap:.5rem;display:grid}.tf-ingredient-link>p{color:var(--tf-text-secondary);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.9375rem;display:flex}.tf-ingredient-link>p>.tf-icon{flex:none;width:16px;height:16px}.tf-ingredient-link button:not(.tf-filter-chip){min-height:1.5rem;color:var(--tf-text-primary);font:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.tf-ingredient-link button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-ingredient-picker{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);background:var(--tf-surface-subtle);gap:.625rem;padding:.75rem;display:grid}.tf-ingredient-picker ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tf-ingredient-picker-actions{flex-wrap:wrap;gap:1rem;display:flex}.tf-step-row{grid-template-columns:2rem minmax(0, 1fr) var(--tf-row-controls);align-items:start}.tf-step-number{background:var(--tf-surface-subtle);width:2rem;height:2rem;color:var(--tf-text-primary);border-radius:999px;place-items:center;margin-top:.5rem;font-weight:600;display:grid}.tf-step-body{gap:.25rem;min-width:0;display:grid}.tf-step-more,.tf-recipe-pills{gap:.75rem;display:grid}.tf-step-more>summary,.tf-recipe-pills>summary,.tf-writer-words>summary{cursor:pointer;min-height:44px;color:var(--tf-text-secondary);overflow-wrap:anywhere;align-items:center;font-size:.9375rem;display:flex}.tf-recipe-pills>summary strong{color:var(--tf-text-primary);margin-right:.375rem}@container (max-width:52rem){.tf-ingredient-head{display:none}.tf-ingredient-fields{grid-template-columns:5.5rem 7.5rem minmax(0,1fr) 6rem;grid-template-areas:"amount unit name name""prep prep prep optional"}.tf-ingredient-fields>:first-child{grid-area:amount}.tf-ingredient-fields>:nth-child(2){grid-area:unit}.tf-ingredient-fields>:nth-child(3){grid-area:name}.tf-ingredient-fields>:nth-child(4){grid-area:prep}.tf-ingredient-fields>:nth-child(5){grid-area:optional}}@container (max-width:34rem){.tf-ingredient-row{grid-template-columns:minmax(0,1fr)}.tf-ingredient-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"amount unit""name name""prep prep""optional optional"}.tf-step-row{grid-template-columns:2rem minmax(0,1fr)}.tf-step-row .tf-recipe-row-controls{grid-column:1/-1}.tf-recipe-grid--three,.tf-recipe-grid{grid-template-columns:minmax(0,1fr)}.tf-recipe-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}}.tf-recipe-flag{border-radius:var(--tf-radius-control);background:var(--tf-surface-subtle);overflow-wrap:anywhere;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;font-size:.9375rem;display:flex}.tf-recipe-flag .tf-icon{flex:none;margin-top:.125rem}.tf-recipe-drafts{gap:.75rem;width:100%;display:grid}.tf-recipe-draft-list{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.25rem;display:grid}.tf-recipe-draft{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);box-shadow:var(--tf-panel-shadow);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.tf-recipe-draft:has(>a:hover){border-color:var(--tf-border-control)}.tf-recipe-draft:has(>a:focus-visible){outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-recipe-draft>a:focus-visible{outline:none}.tf-recipe-draft>a{overflow-wrap:anywhere;align-content:center;align-self:stretch;gap:.25rem;min-height:48px;padding:.875rem .25rem .875rem 1rem;display:grid}.tf-recipe-draft>a:has(>img){grid-template-columns:3.5rem minmax(0,1fr);column-gap:.875rem;padding-left:.75rem}.tf-recipe-draft>a>img{border-radius:var(--tf-radius-control);background:var(--tf-oat);object-fit:cover;grid-row:1/span 2;align-self:center;width:3.5rem;height:3.5rem}.tf-recipe-draft>a:has(>img)>:not(img){grid-column:2}.tf-recipe-draft strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.0625rem;line-height:1.3;display:-webkit-box;overflow:hidden}.tf-recipe-draft>a>span{color:var(--tf-text-secondary);font-size:.9375rem}.tf-recipe-draft>button{width:2.75rem;height:2.75rem;color:var(--tf-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;margin-right:.5rem;padding:0;display:grid}.tf-recipe-draft>button:hover{background:var(--tf-surface-subtle);color:var(--tf-text-primary)}.tf-recipe-draft>button[aria-disabled]{cursor:progress}@media (max-width:720px){.tf-recipe-draft-list{grid-template-columns:minmax(0,1fr);gap:.75rem}}.tf-recipe-writer{gap:1.25rem;width:100%;scroll-margin-top:1.5rem;display:grid}.tf-writer-steps{color:var(--tf-text-secondary);flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.9375rem;display:flex}.tf-writer-steps li{align-items:center;gap:.5rem;display:inline-flex}.tf-writer-steps li span{border:1px solid var(--tf-border-control);border-radius:999px;place-items:center;width:1.5rem;height:1.5rem;font-size:.8125rem;font-weight:600;display:grid}.tf-writer-steps li[aria-current=step]{color:var(--tf-text-primary);font-weight:600}.tf-writer-steps li[aria-current=step] span{border-color:var(--tf-action-bg);background:var(--tf-action-bg);color:var(--tf-action-text)}.tf-writer-steps li[data-done] span{background:var(--tf-surface-subtle)}.tf-writer-describe{gap:1rem;display:grid}.tf-writer-describe textarea{min-height:14rem}.tf-writer-status{align-items:center;gap:.625rem;font-weight:600;display:flex}.tf-writer-spinner{border:2px solid var(--tf-border-subtle);border-top-color:var(--tf-action-bg);border-radius:999px;width:1.125rem;height:1.125rem;animation:.8s linear infinite tf-spin}@keyframes tf-spin{to{transform:rotate(360deg)}}.tf-draft-title{font-family:var(--tf-font-display);overflow-wrap:anywhere;font-size:1.625rem;font-weight:600;line-height:1.2}.tf-draft-view .tf-panel{gap:.75rem;display:grid}.tf-writer-summary{border-radius:var(--tf-radius-card);background:var(--tf-surface-subtle);align-items:flex-start;gap:.625rem;padding:.875rem 1rem;display:flex}.tf-writer-summary .tf-icon,.tf-recipe-writer .tf-status .tf-icon{flex:none;margin-top:.125rem}.tf-recipe-writer .tf-status{align-items:flex-start;gap:.5rem;display:flex}.tf-writer-change{gap:.75rem;display:grid}.tf-writer-change-form{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;display:grid}.tf-writer-words p{white-space:pre-line;color:var(--tf-text-secondary);overflow-wrap:anywhere}.tf-ai-mark{border-left:3px solid var(--tf-border-control);border-radius:0 var(--tf-radius-control) var(--tf-radius-control) 0;background:var(--tf-surface-subtle);gap:.125rem;margin-top:.375rem;padding:.375rem .75rem;font-size:.9375rem;display:grid}.tf-ai-mark p{align-items:flex-start;gap:.5rem;display:flex}.tf-ai-mark .tf-icon{flex:none;margin-top:.125rem}.tf-ai-mark-text{overflow-wrap:anywhere;gap:.125rem;display:grid}.tf-ai-mark-actions{flex-wrap:wrap;gap:0 1.25rem;padding-left:1.75rem;display:flex}.tf-ai-mark-actions button{min-height:44px;color:var(--tf-text-primary);font:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.tf-ai-mark-actions button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-ai-questions{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);box-shadow:var(--tf-panel-shadow);gap:.75rem;padding:1.25rem;display:grid}.tf-ai-questions-head{align-items:center;gap:.75rem;display:flex}.tf-ai-questions-head h3{font-size:1.0625rem;font-weight:600}.tf-ai-questions-head h3:focus{outline:none}.tf-ai-questions-count{background:var(--tf-surface-subtle);border-radius:999px;flex:none;padding:.125rem .5rem;font-size:.875rem;font-weight:600}.tf-ai-options{border:0;gap:.5rem;margin:0;padding:0;display:grid}.tf-ai-option{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);cursor:pointer;overflow-wrap:anywhere;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem .75rem;min-height:48px;padding:.625rem 1rem;display:grid}.tf-ai-option[data-selected]{border-color:var(--tf-action-bg);background:var(--tf-surface-subtle)}.tf-ai-option:focus-within{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-ai-option input[type=radio]{width:1.125rem;height:1.125rem;accent-color:var(--tf-action-bg)}.tf-ai-option kbd{border:1px solid var(--tf-border-control);min-width:1.5rem;color:var(--tf-text-secondary);font:inherit;text-align:center;border-radius:.375rem;padding:0 .375rem;font-size:.8125rem}.tf-ai-option--other .tf-field{grid-column:1/-1}.tf-ai-questions-actions{justify-content:flex-end;gap:.5rem;display:flex}.tf-ai-allowance{color:var(--tf-text-secondary);gap:.375rem;font-size:.9375rem;display:grid}.tf-ai-allowance meter{width:100%;height:.5rem}.tf-writer-notes{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.tf-capture{grid-template-columns:minmax(0,1fr);gap:1.25rem;width:100%;display:grid}.tf-capture-box{background:var(--tf-surface-card);border:1px solid var(--tf-border-control);border-radius:var(--tf-radius-card);box-shadow:var(--tf-panel-shadow), 0 12px 32px -20px #963f2d59;grid-template-columns:minmax(0,1fr);gap:.75rem;padding:1.5rem 1.5rem 1.25rem;transition:border-color .2s;display:grid}.tf-capture-box:focus-within{border-color:var(--tf-text-primary);outline:3px solid var(--tf-focus-ring);outline-offset:3px}.tf-capture-label{font-family:var(--tf-font-display);font-variation-settings:"SOFT" 35, "WONK" 0;font-size:clamp(1.375rem,2.6vw,1.75rem);font-weight:600;line-height:1.2}.tf-capture-write{position:relative}.tf-capture-field{field-sizing:content;width:100%;min-height:7.5rem;max-height:35rem;color:var(--tf-text-primary);font:400 1.125rem/1.6 var(--tf-font-body);resize:none;background:0 0;border:0;padding:0;display:block}.tf-capture-field:focus{outline:none}.tf-capture-example{color:var(--tf-text-secondary);font:400 1.125rem/1.6 var(--tf-font-body);pointer-events:none;animation:4.2s ease-in-out both tf-example;position:absolute;inset:0 0 auto}@keyframes tf-example{0%{opacity:0;transform:translateY(.375rem)}10%,88%{opacity:1;transform:none}to{opacity:0;transform:translateY(-.25rem)}}.tf-capture-noticed{min-height:1.5rem;color:var(--tf-status-info);align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;display:flex}.tf-capture-noticed:empty{display:none}.tf-capture-noticed .tf-icon{flex:none;animation:.3s ease-out tf-pop}@keyframes tf-pop{0%{opacity:0;transform:scale(.4)}}.tf-capture-starters{border-top:1px solid var(--tf-border-subtle);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding-top:.75rem;display:flex}.tf-capture-starters ul{flex-wrap:wrap;gap:.5rem;display:flex}.tf-capture-starters-label{letter-spacing:.06em;text-transform:uppercase;color:var(--tf-text-secondary);font-size:.8125rem;font-weight:600}.tf-capture-chip{border:1px solid color-mix(in srgb, var(--tf-kiln) 16%, transparent);background:var(--tf-oat);min-height:44px;color:var(--tf-text-primary);font:400 .9375rem/1.3 var(--tf-font-body);text-align:left;cursor:pointer;border-radius:999px;align-items:center;gap:.375rem;padding:.5rem .875rem;transition:transform .15s,border-color .15s;display:inline-flex}.tf-capture-chip:hover{border-color:color-mix(in srgb, var(--tf-kiln) 45%, transparent);transform:translateY(-1px)}.tf-capture-chip--paste{border-style:dashed;border-color:var(--tf-border-control);background:var(--tf-surface-card);font-weight:600}.tf-capture-chip:focus-visible,.tf-capture-toggle:focus-visible,.tf-choice-chip:focus-visible,.tf-capture-switch-button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-capture-help{color:var(--tf-text-secondary);font-size:.9375rem;display:block}.tf-capture-household{border:0;gap:.5rem;min-width:0;margin:0;padding:0;display:grid}.tf-capture-household legend{align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:600;display:flex}.tf-capture-toggle{min-height:44px;font:inherit;cursor:pointer;padding:.375rem .875rem .375rem .625rem;font-size:.875rem;transition:background .15s,color .15s}.tf-capture-toggle[aria-pressed=false]{border:1px dashed var(--tf-border-control);color:var(--tf-text-secondary);background:0 0;font-weight:400;text-decoration:line-through}.tf-capture-progress{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);box-shadow:var(--tf-panel-shadow);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem 1rem;padding:1.25rem 1.5rem;display:grid;position:relative;overflow:hidden}.tf-capture-pot{background:var(--tf-oat);width:3rem;height:3rem;color:var(--tf-kiln);border-radius:999px;place-items:center;display:grid;position:relative}.tf-capture-pot>.tf-icon{width:26px;height:26px}.tf-capture-steam,.tf-capture-steam:before,.tf-capture-steam:after{background:color-mix(in srgb, var(--tf-kiln) 35%, transparent);border-radius:999px;width:.3125rem;height:.75rem;animation:1.8s ease-in infinite tf-steam;position:absolute;top:.125rem;left:50%}.tf-capture-steam:before,.tf-capture-steam:after{content:"";top:0}.tf-capture-steam:before{animation-delay:.6s;left:-.625rem}.tf-capture-steam:after{animation-delay:1.2s;left:.625rem}@keyframes tf-steam{0%{opacity:0;transform:translate(-50%,.5rem)scaleY(.6)}40%{opacity:1}to{opacity:0;transform:translate(-50%,-.875rem)scaleY(1.1)}}.tf-capture-progress-text{gap:.125rem;min-width:0;display:grid}.tf-capture-progress-text output{font-family:var(--tf-font-display);overflow-wrap:anywhere;font-size:1.25rem;font-weight:600;line-height:1.25}.tf-capture-progress-text p{color:var(--tf-text-secondary)}.tf-capture-switch{grid-column:1/-1}.tf-capture-switch-button{min-height:44px;color:var(--tf-text-primary);font:inherit;text-align:left;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;align-items:center;gap:.375rem;padding:0;font-weight:600;text-decoration:underline;display:inline-flex}.tf-capture-bar{background:var(--tf-action-bg);border-radius:999px;width:35%;height:3px;animation:1.6s ease-in-out infinite tf-bar;position:absolute;bottom:0;left:0}@keyframes tf-bar{0%{transform:translate(-100%)}to{transform:translate(300%)}}.tf-draft-view[aria-busy=true] li{animation:.35s ease-out both tf-rise}.tf-draft-view li[data-written]{border-radius:var(--tf-radius-control);animation:1.4s ease-out tf-written}@keyframes tf-rise{0%{opacity:0;transform:translateY(.375rem)}}@keyframes tf-written{0%{background:var(--tf-sage)}to{background:0 0}}.tf-capture-origin{border:1px solid color-mix(in srgb, var(--tf-kiln) 14%, transparent);border-radius:var(--tf-radius-card);background:var(--tf-oat);align-items:flex-start;gap:.875rem;padding:1rem 1.25rem;display:flex}.tf-capture-origin>.tf-icon{width:24px;height:24px;color:var(--tf-kiln);flex:none;margin-top:.125rem}.tf-capture-origin>div{gap:.375rem;min-width:0;display:grid}.tf-capture-origin-title{overflow-wrap:anywhere;font-weight:600}.tf-capture-origin>.tf-capture-origin-photo{width:6rem;color:var(--tf-text-secondary);text-align:center;flex:none;justify-items:center;gap:.25rem;margin:0 0 0 auto;font-size:.75rem;display:grid}.tf-capture-origin-photo img{object-fit:cover;border-radius:calc(var(--tf-radius-card) / 2);width:6rem;height:6rem;box-shadow:0 1px 3px color-mix(in srgb, var(--tf-kiln) 18%, transparent);animation:.36s ease-out both tf-origin-photo-in}@keyframes tf-origin-photo-in{0%{opacity:0;transform:scale(.94)rotate(-2deg)}}@media (max-width:30rem){.tf-capture-origin>.tf-capture-origin-photo{width:4.5rem}.tf-capture-origin-photo img{width:4.5rem;height:4.5rem}}@media (prefers-reduced-motion:reduce){.tf-capture-origin-photo img{animation:none}}.tf-capture-box[data-dragging]{border-color:var(--tf-kiln);background:color-mix(in srgb, var(--tf-oat) 60%, var(--tf-surface-card));border-style:dashed}.tf-capture-camera{border:1px solid color-mix(in srgb, var(--tf-kiln) 18%, transparent);background:var(--tf-oat);width:44px;height:44px;color:var(--tf-kiln);cursor:pointer;border-radius:999px;place-items:center;padding:0;transition:transform .15s,border-color .15s;display:grid;position:absolute;bottom:-.25rem;right:-.25rem}.tf-capture-camera:hover:not(:disabled){border-color:color-mix(in srgb, var(--tf-kiln) 45%, transparent);transform:translateY(-1px)rotate(-6deg)}.tf-capture-camera:disabled{opacity:.45;cursor:not-allowed}.tf-capture-camera:focus-visible,.tf-capture-photos button:focus-visible,.tf-writer-photos a:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-capture-field,.tf-capture-example{padding-right:3rem}.tf-capture-photos{flex-wrap:wrap;gap:.625rem;display:flex}.tf-capture-photos li{width:5.5rem;height:7rem;animation:.35s cubic-bezier(.2,.9,.3,1.2) both tf-photo-in;position:relative}.tf-capture-photos li:nth-child(odd){--tf-tilt:-2deg}.tf-capture-photos li:nth-child(2n){--tf-tilt:1.5deg}@keyframes tf-photo-in{0%{opacity:0;transform:translateY(.5rem) scale(.9) rotate(var(--tf-tilt,0deg))}}.tf-capture-photos img{object-fit:cover;border:3px solid var(--tf-surface-card);border-radius:var(--tf-radius-control);width:100%;height:100%;box-shadow:0 2px 8px -2px color-mix(in srgb, var(--tf-kiln) 35%, transparent);transform:rotate(var(--tf-tilt,0deg));display:block}.tf-capture-photos li:has(>.tf-writer-spinner) img{opacity:.55}.tf-capture-photos li>.tf-writer-spinner{margin:auto;position:absolute;inset:0}.tf-capture-photos li[data-problem] img{outline:2px solid var(--tf-status-error);outline-offset:-2px;filter:grayscale(.6)}.tf-capture-photos-remove{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-card);width:2rem;height:2rem;color:var(--tf-text-primary);cursor:pointer;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:-.5rem;right:-.5rem}.tf-capture-photos li[data-problem] .tf-capture-photos-remove{color:var(--tf-status-error)}.tf-capture-photos-add{border:1px dashed var(--tf-border-control);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);width:100%;height:100%;color:var(--tf-text-primary);font:600 .8125rem/1.2 var(--tf-font-body);cursor:pointer;place-content:center;justify-items:center;gap:.25rem;padding:.25rem;display:grid}.tf-capture-photos-add:hover{border-color:var(--tf-kiln)}.tf-capture-scan{width:3.5rem;height:4.25rem;display:block;position:relative}.tf-capture-scan img{object-fit:cover;border:2px solid var(--tf-surface-card);width:100%;height:100%;box-shadow:0 2px 6px -2px color-mix(in srgb, var(--tf-kiln) 45%, transparent);border-radius:.375rem;position:absolute;inset:0}.tf-capture-scan img[data-layer="0"]{z-index:3}.tf-capture-scan img[data-layer="1"]{z-index:2;transform:rotate(7deg)translate(.25rem)}.tf-capture-scan img[data-layer="2"]{z-index:1;transform:rotate(-8deg)translate(-.25rem)}.tf-capture-scan-line{z-index:4;background:var(--tf-action-bg);height:3px;box-shadow:0 0 10px 2px color-mix(in srgb, var(--tf-action-bg) 55%, transparent);border-radius:999px;animation:1.8s ease-in-out infinite alternate tf-scan;position:absolute;inset:2px 2px auto}@keyframes tf-scan{0%{transform:translateY(0)}to{transform:translateY(3.75rem)}}.tf-capture-keep{cursor:pointer;align-items:flex-start;gap:.625rem;margin-top:.25rem;font-weight:600;display:flex}.tf-capture-keep input{width:1.25rem;height:1.25rem;accent-color:var(--tf-action-bg);flex:none;margin:.125rem 0 0}.tf-capture-keep small{color:var(--tf-text-secondary);font-size:.875rem;font-weight:400;display:block}.tf-writer-beside{gap:1.25rem;display:grid}.tf-writer-photos{align-content:start;gap:.5rem;display:grid}.tf-writer-photos ul{gap:.625rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.tf-writer-photos li{flex:none;width:9rem}.tf-writer-photos a{border-radius:var(--tf-radius-control);cursor:zoom-in;display:block}.tf-writer-photos img{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);width:100%;height:auto;display:block}.tf-writer-photos p{color:var(--tf-text-secondary);font-size:.875rem}@media (min-width:60rem){.tf-writer-beside{grid-template-columns:minmax(0,1fr) 17rem;align-items:start}.tf-writer-photos{order:2;position:sticky;top:1rem}.tf-writer-photos ul{max-height:calc(100dvh - 5rem);display:grid;overflow:auto}.tf-writer-photos li{width:auto}}@media (max-width:59.99rem){.tf-writer-photos{order:-1}}.tf-recipe-writer .tf-status{flex-wrap:wrap}.tf-recipe-writer .tf-status>p{flex:14rem}@media (prefers-reduced-motion:reduce){.tf-capture-photos li,.tf-capture-scan-line{animation:none}.tf-capture-camera:hover:not(:disabled){transform:none}}.tf-capture-found{border-radius:var(--tf-radius-card);background:var(--tf-status-info-bg);align-items:flex-start;gap:.875rem;padding:1.25rem;display:flex}.tf-capture-found>.tf-icon{width:24px;height:24px;color:var(--tf-status-info);flex:none}.tf-capture-found>div{gap:.5rem;min-width:0;display:grid}.tf-capture-found h2{font-size:1.125rem}.tf-ideas{gap:1.25rem;display:grid}.tf-ideas-head{gap:.25rem;display:grid}.tf-ideas-head h2{font-family:var(--tf-font-display);font-size:clamp(1.375rem,2.6vw,1.75rem);font-weight:600;line-height:1.2}.tf-ideas-head p{color:var(--tf-text-secondary);font-size:1.0625rem}.tf-ideas-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.875rem;display:grid}.tf-ideas-questions{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-subtle);gap:1rem;padding:1.25rem 1.5rem;display:grid}.tf-ideas-questions[data-first]{background:var(--tf-surface-card);box-shadow:var(--tf-panel-shadow)}.tf-ideas-questions-lead{font-weight:600}.tf-ideas-questions-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.tf-ideas-questions-actions>span{color:var(--tf-text-secondary);font-size:.9375rem}@media (max-width:30rem){.tf-ideas-questions{padding:1rem}}.tf-ideas-list[data-count="4"]{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}.tf-ideas-list>li{animation:.4s cubic-bezier(.2,.9,.3,1.1) both tf-idea-in;display:grid}.tf-ideas-list>li:nth-child(2){animation-delay:60ms}.tf-ideas-list>li:nth-child(3){animation-delay:.12s}.tf-ideas-list>li:nth-child(4){animation-delay:.18s}@keyframes tf-idea-in{0%{opacity:0;transform:translateY(.625rem)scale(.98)}}.tf-idea{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);min-height:11rem;box-shadow:var(--tf-panel-shadow);color:var(--tf-text-primary);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;flex-direction:column;gap:.5rem;padding:1.25rem 1.25rem 1rem;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.tf-idea:hover:not(:disabled){border-color:color-mix(in srgb, var(--tf-kiln) 45%, transparent);box-shadow:var(--tf-panel-shadow), 0 14px 28px -18px #963f2d73;transform:translateY(-2px)}.tf-idea:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-idea:disabled{cursor:default}.tf-idea-title{font-family:var(--tf-font-display);font-size:1.25rem;font-weight:600;line-height:1.25}.tf-idea-pitch{color:var(--tf-text-secondary)}.tf-idea-meta{flex-wrap:wrap;gap:.25rem .75rem;font-size:.875rem;display:flex}.tf-idea-meta>span:first-child:has(.tf-icon){align-items:center;gap:.25rem;font-weight:600;display:inline-flex}.tf-idea-meta .tf-icon{width:16px;height:16px;color:var(--tf-kiln)}.tf-idea-dishes{border-radius:var(--tf-radius-control);background:var(--tf-oat);gap:.125rem;padding:.5rem .75rem;font-size:.875rem;display:grid}.tf-idea-dishes>span:first-child{color:var(--tf-text-secondary)}.tf-idea-dishes>span:last-child{font-weight:600}.tf-idea-go{color:var(--tf-action-bg);align-items:center;gap:.25rem;margin-top:auto;padding-top:.25rem;font-weight:600;display:inline-flex}.tf-idea-go .tf-icon{width:16px;height:16px;transition:transform .18s}.tf-idea:hover:not(:disabled) .tf-idea-go .tf-icon{transform:translate(3px)}.tf-idea--waiting{background:linear-gradient(100deg, transparent 30%, color-mix(in srgb, var(--tf-oat) 70%, transparent) 50%, transparent 70%) var(--tf-surface-card);cursor:default;background-size:250% 100%;min-height:11rem;animation:1.4s ease-in-out infinite tf-shimmer}@keyframes tf-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.tf-ideas-more{border:1px dashed var(--tf-border-control);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);gap:.375rem;padding:1.25rem 1.5rem;display:grid}.tf-ideas-more label{font-family:var(--tf-font-display);font-size:1.125rem;font-weight:600}.tf-ideas-more p{color:var(--tf-text-secondary);font-size:.9375rem}.tf-ideas-more>div{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-top:.25rem;display:grid}@media (max-width:30rem){.tf-ideas-more{padding:1rem}.tf-ideas-more>div{grid-template-columns:minmax(0,1fr)}}.tf-writer-ideas-foot{justify-items:start;gap:.75rem;display:grid}.tf-writer-back{justify-self:start}.tf-writer-back .tf-icon,.tf-writer-ideas-foot .tf-icon{width:18px;height:18px}.tf-meal-bar{border:1px solid color-mix(in srgb, var(--tf-kiln) 18%, transparent);border-radius:var(--tf-radius-card);background:var(--tf-oat);flex-wrap:wrap;align-items:flex-start;gap:.75rem .875rem;padding:1rem 1.25rem;display:flex}.tf-meal-bar>.tf-icon{width:24px;height:24px;color:var(--tf-kiln);flex:none;margin-top:.125rem}.tf-meal-bar>div{flex:18rem;gap:.5rem;min-width:0;display:grid}.tf-meal-bar-title{overflow-wrap:anywhere;font-weight:600}.tf-meal-bar ol{flex-wrap:wrap;gap:.5rem;display:flex}.tf-meal-bar li{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-card);border-radius:999px;align-items:center;gap:.375rem;min-height:36px;padding:.25rem .75rem .25rem .375rem;font-size:.9375rem;display:inline-flex}.tf-meal-bar li>span:first-child,.tf-meal-bar li>.tf-icon{background:var(--tf-surface-subtle);border-radius:999px;flex:none;place-items:center;width:1.5rem;height:1.5rem;font-size:.8125rem;font-weight:600;display:grid}.tf-meal-bar li>.tf-icon{background:var(--tf-sage);color:var(--tf-text-primary);padding:.25rem}.tf-meal-bar li small{color:var(--tf-text-secondary);font-size:.8125rem}.tf-meal-bar li[aria-current=step]{border-color:var(--tf-text-primary);font-weight:600}.tf-meal-bar li[aria-current=step]>span:first-child{background:var(--tf-action-bg);color:var(--tf-action-text)}.tf-meal-bar li[data-status=skipped]>span:nth-child(2){color:var(--tf-text-secondary);text-decoration:line-through}.tf-meal-bar>div>p:last-child{color:var(--tf-text-secondary);font-size:.875rem}.tf-meal-bar-skip{flex:none;min-height:36px}@media (prefers-reduced-motion:reduce){.tf-ideas-list>li,.tf-idea--waiting{animation:none}.tf-idea:hover:not(:disabled),.tf-idea:hover:not(:disabled) .tf-idea-go .tf-icon{transform:none}}.tf-choices{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);box-shadow:var(--tf-panel-shadow);gap:1rem;padding:1.25rem 1.5rem 1.5rem;display:grid}.tf-choices-head{gap:.125rem;display:grid}.tf-choices-head h2{font-family:var(--tf-font-display);font-size:1.375rem;font-weight:600}.tf-choices-head p{color:var(--tf-text-secondary)}.tf-choice{border:0;gap:.5rem;min-width:0;margin:0;padding:0;display:grid}.tf-choice legend{margin-bottom:.5rem;padding:0;font-size:1rem;font-weight:600}.tf-choice-options{flex-wrap:wrap;gap:.5rem;display:flex}.tf-choice-chip{border:1px solid var(--tf-border-control);background:var(--tf-surface-card);min-height:44px;color:var(--tf-text-primary);font:400 .9375rem/1.3 var(--tf-font-body);text-align:left;cursor:pointer;border-radius:999px;align-items:center;gap:.375rem;padding:.5rem 1rem;transition:background .15s,transform .15s;display:inline-flex}.tf-choice-chip:hover:not(:disabled){background:var(--tf-surface-subtle);transform:translateY(-1px)}.tf-choice-chip[aria-pressed=true]{border-color:var(--tf-text-primary);background:var(--tf-sage);cursor:default;font-weight:600}.tf-choice-chip:disabled{background:var(--tf-disabled-bg);color:var(--tf-disabled-text);cursor:not-allowed}.tf-choice-chip--other{border-style:dashed}.tf-choice-other{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;display:grid}@media (max-width:720px){.tf-capture-box,.tf-capture-progress,.tf-choices{padding:1rem}.tf-capture-field,.tf-capture-example{font-size:1.0625rem}}@media (prefers-reduced-motion:reduce){.tf-capture-example,.tf-capture-noticed .tf-icon,.tf-capture-steam,.tf-capture-steam:before,.tf-capture-steam:after,.tf-capture-bar,.tf-draft-view li{animation:none}.tf-capture-chip,.tf-choice-chip{transition:none}.tf-capture-chip:hover,.tf-choice-chip:hover:not(:disabled){transform:none}}.tf-photos{gap:.75rem;width:100%;display:grid}.tf-photos-gallery{border-radius:var(--tf-radius-card);gap:.625rem;display:grid}.tf-photos-cover{aspect-ratio:16/9;border-radius:var(--tf-radius-card);background:var(--tf-oat);width:100%;max-height:30rem;box-shadow:var(--tf-panel-shadow);cursor:zoom-in;border:0;padding:0;display:block;overflow:hidden}.tf-photos-cover img,.tf-photos-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.tf-photos-cover:hover .tf-photos-full{transform:scale(1.015)}.tf-photos-cover .tf-photos-full{object-fit:contain;position:relative}.tf-photos-cover .tf-photos-backdrop{filter:blur(28px)saturate(1.15);opacity:.55;position:absolute;inset:0;transform:scale(1.15)}.tf-photos-cover.tf-photos-pending{cursor:default;position:relative}.tf-photos-cover.tf-photos-pending:hover img{transform:none}.tf-photos-strip{scroll-snap-type:x proximity;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.tf-photos-strip>li{scroll-snap-align:start;flex:none}.tf-photos-thumb,.tf-photos-add{border-radius:var(--tf-radius-control);background:var(--tf-oat);border:0;place-items:center;width:5.5rem;height:5.5rem;padding:0;display:grid;position:relative;overflow:hidden}.tf-photos-thumb{cursor:zoom-in}.tf-photos-add{border:1px dashed var(--tf-border-control);background:var(--tf-surface-card);color:var(--tf-text-primary);font:600 .875rem/1.2 var(--tf-font-body);cursor:pointer;align-content:center;gap:.25rem;transition:background .15s,border-color .15s}.tf-photos-add:hover{border-color:var(--tf-kiln);background:var(--tf-oat)}.tf-photos-add .tf-icon{width:22px;height:22px;color:var(--tf-kiln)}.tf-photos-cover:focus-visible,.tf-photos-thumb:focus-visible,.tf-photos-add:focus-visible,.tf-photos-pending button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-photos-pending img{opacity:.55;filter:saturate(.7)}.tf-photos-pending>.tf-writer-spinner{margin:auto;position:absolute;inset:0}.tf-photos-pending[data-problem]{outline:2px solid var(--tf-status-error);outline-offset:-2px}.tf-photos-pending button{background:var(--tf-surface-card);width:2rem;height:2rem;color:var(--tf-status-error);cursor:pointer;border:0;border-radius:999px;place-items:center;display:grid;position:absolute;top:.25rem;right:.25rem}.tf-photos-empty{border:1px dashed var(--tf-border-control);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem;display:flex}.tf-photos-empty .tf-photos-add{border-style:solid;border-color:color-mix(in srgb, var(--tf-kiln) 25%, transparent);background:var(--tf-oat);width:8rem;height:6rem}.tf-photos-empty p{color:var(--tf-text-secondary);flex:14rem}.tf-photos-empty>div{flex:14rem;justify-items:start;gap:.75rem;display:grid}.tf-photos-making{background:var(--tf-oat);color:var(--tf-text-secondary);align-content:center;place-items:center;gap:.75rem;display:grid}.tf-photos-making>.tf-writer-spinner{position:static}.tf-cookbook-making{color:var(--tf-text-secondary);align-content:center;gap:.5rem;font-size:.875rem}.tf-photos-cover,.tf-photos-thumb,.tf-cookbook-card{position:relative}.tf-ai-tag{color:#fff;font:600 .75rem/1.4 var(--tf-font-body);pointer-events:none;background:#29251fb8;border-radius:999px;padding:.125rem .5rem;position:absolute;top:.5rem;left:.5rem}.tf-saved-tag{color:#fff;font:600 .75rem/1.4 var(--tf-font-body);pointer-events:none;background:#29251fb8;border-radius:999px;align-items:center;gap:.25rem;padding:.125rem .5rem;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.tf-saved-tag .tf-icon{width:.875rem;height:.875rem}.tf-photos-thumb .tf-ai-tag{padding:0 .375rem;font-size:.6875rem;top:.25rem;left:.25rem}.tf-photos[data-dragging] .tf-photos-gallery,.tf-photos[data-dragging] .tf-photos-empty{outline:3px dashed var(--tf-action-bg);outline-offset:4px}.tf-photos-status:empty{display:none}.tf-photos-status{color:var(--tf-text-secondary);font-size:.9375rem}.tf-photos .tf-status{align-items:flex-start;gap:.5rem;display:flex}.tf-photo-viewer{color:#f5f6f7;background:#171a1cf7;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.tf-photo-viewer[open]{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.tf-photo-viewer::backdrop{background:#171a1ccc}.tf-photo-viewer-bar,.tf-photo-viewer-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.tf-photo-viewer-bar h2{font-family:var(--tf-font-display);overflow-wrap:anywhere;font-size:1.25rem;font-weight:600;display:grid}.tf-photo-viewer-bar h2:focus{outline:none}.tf-photo-viewer-bar h2 span{font-family:var(--tf-font-body);color:#b5bdc3;font-size:.875rem;font-weight:400}.tf-photo-viewer-image{place-content:center;justify-items:center;gap:.5rem;min-height:0;margin:0;padding:0 1rem;display:grid}.tf-photo-viewer-image img{border-radius:var(--tf-radius-control);object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 10rem);animation:.25s ease-out tf-rise}.tf-photo-viewer-image figcaption{color:#b5bdc3;font-size:.875rem}.tf-photo-viewer .tf-link{color:#f5f6f7}.tf-photo-viewer-nav,.tf-photo-viewer-manage,.tf-photo-viewer-confirm{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tf-photo-viewer button{border-radius:var(--tf-radius-control);color:#f5f6f7;min-height:44px;font:600 .9375rem/1.2 var(--tf-font-body);cursor:pointer;background:0 0;border:1px solid #f5f6f773;align-items:center;gap:.375rem;padding:.5rem 1rem;display:inline-flex}.tf-photo-viewer button:hover{background:#f5f6f71a}.tf-photo-viewer :focus-visible{outline-offset:2px;outline:3px solid #8ec5f2}.tf-photo-viewer .tf-photo-viewer-close{justify-content:center;width:44px;padding:0}@media (prefers-reduced-motion:reduce){.tf-photos-cover img,.tf-photo-viewer-image img{transition:none;animation:none}.tf-photos-cover:hover img{transform:none}}.tf-identity{--tf-chat-width:26rem}.tf-chat-panel{z-index:45;width:min(var(--tf-chat-width), 100vw);background:var(--tf-surface-canvas);border-left:1px solid var(--tf-border-subtle);grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;animation:.2s ease-out tf-panel-in;display:grid;position:fixed;inset:0 0 0 auto;box-shadow:-12px 0 32px #29251f1a}.tf-chat-panel[hidden]{display:none}@media (min-width:1200px){.tf-shell-main:has(.tf-chat-panel:not([hidden])){padding-right:var(--tf-chat-width)}.tf-chat-panel{box-shadow:none;animation:none}}@media (max-width:720px){.tf-chat-panel{border-left:0;width:100vw}}.tf-chat-head{background:var(--tf-surface-card);border-bottom:1px solid var(--tf-border-subtle);align-items:center;gap:.625rem;padding:.5rem .5rem .5rem 1.25rem;display:flex}.tf-identity .tf-chat-head h2{flex:1;font-size:1.125rem}.tf-chat-log{overscroll-behavior:contain;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.tf-chat-intro{color:var(--tf-text-secondary)}.tf-chat-entry{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);overflow-wrap:anywhere;gap:.5rem;max-width:92%;padding:.625rem .875rem;display:grid}.tf-chat-entry[data-from=you]{background:var(--tf-surface-subtle);align-self:flex-end}.tf-chat-entry p{white-space:pre-line}.tf-chat-working{color:var(--tf-text-secondary);align-items:center;gap:.625rem;display:flex}.tf-chat-working .tf-writer-spinner{flex:none}.tf-chat-long summary{cursor:pointer}.tf-identity .tf-chat-quote{border-left:3px solid var(--tf-border-subtle);color:var(--tf-text-secondary);white-space:normal;gap:.125rem;padding-left:.625rem;font-size:.875rem;display:grid}.tf-chat-quote-label{color:var(--tf-text-primary);font-weight:600}.tf-chat-quote-text{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tf-chat-about{gap:.5rem;display:grid}.tf-chat-about-head{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);background:var(--tf-selected-bg);align-items:flex-start;gap:.5rem;padding:.5rem .25rem .5rem .75rem;display:flex}.tf-chat-about-head .tf-chat-quote{border-left:0;flex:1;min-width:0;padding-left:0}.tf-chat-about-clear{width:2rem;height:2rem;color:var(--tf-text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;margin:-.125rem 0;display:grid}.tf-chat-about-clear:hover{background:var(--tf-surface-card);color:var(--tf-text-primary)}.tf-chat-suggestions{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.tf-chat-suggestions button{border:1px solid var(--tf-border-control);background:var(--tf-surface-card);min-height:2rem;color:var(--tf-text-primary);font:inherit;cursor:pointer;border-radius:999px;padding:.25rem .75rem;font-size:.875rem}.tf-chat-suggestions button:hover{background:var(--tf-surface-subtle)}.tf-chat-long[open] summary{color:var(--tf-text-secondary);font-size:.875rem}.tf-chat-none,.tf-chat-status{color:var(--tf-text-secondary);font-size:.9375rem}.tf-chat-picture{gap:.375rem;margin:0;display:grid}.tf-chat-picture-frame{aspect-ratio:3/2;border-radius:calc(var(--tf-radius-card) - .25rem);background:var(--tf-surface-subtle);place-items:center;display:grid;position:relative;overflow:hidden}.tf-chat-picture-frame .tf-chat-working{padding:0 1rem}.tf-chat-picture-frame img{object-fit:cover;width:100%;height:100%}.tf-chat-picture figcaption{color:var(--tf-text-secondary);font-size:.9375rem}.tf-chat-changed{border-top:1px solid var(--tf-border-subtle);color:var(--tf-text-secondary);justify-items:start;gap:.25rem;padding-top:.5rem;font-size:.9375rem;display:grid}.tf-chat-changed button{font-size:inherit}.tf-chat-saved{color:var(--tf-text-secondary);align-self:center;align-items:center;gap:.375rem;font-size:.875rem;display:flex}.tf-chat-actions{gap:.625rem;display:grid}.tf-chat-actions>div{flex-wrap:wrap;gap:.5rem;display:flex}.tf-chat-actions .tf-status,.tf-chat-foot .tf-status{align-items:flex-start;gap:.5rem;display:flex}.tf-chat-foot{background:var(--tf-surface-card);border-top:1px solid var(--tf-border-subtle);gap:.75rem;max-height:70dvh;padding:.75rem 1.25rem 1rem;display:grid;overflow-y:auto}.tf-chat-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem;display:grid}.tf-chat-form textarea{resize:none;min-height:2.75rem}.tf-recipe-form-bar{justify-content:flex-end;display:flex}.tf-identity .tf-button .tf-icon{flex:none}.tf-recipe-form[inert]{opacity:.6}.tf-recipe-flag{flex-wrap:wrap}.tf-recipe-flag p{flex:10rem;min-width:0}.tf-recipe-flag button{min-height:1.5rem;color:var(--tf-text-primary);font:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;flex:none;margin-left:auto;padding:0;font-weight:600;text-decoration:underline}.tf-recipe-flag button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-versions{overscroll-behavior:contain;align-content:start;gap:.5rem;margin:0;padding:1rem 1.25rem;list-style:none;display:grid;overflow-y:auto}.tf-version{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);color:var(--tf-text-primary);overflow-wrap:anywhere;gap:.125rem;padding:.625rem .875rem;text-decoration:none;display:grid}.tf-version:hover{background:var(--tf-surface-subtle)}.tf-version[aria-current]{border-color:var(--tf-action-bg);box-shadow:inset 0 0 0 1px var(--tf-action-bg);background:var(--tf-selected-bg)}.tf-version-head{justify-content:space-between;gap:.75rem;display:flex}.tf-version-head>span,.tf-version-line{color:var(--tf-text-secondary);font-size:.875rem}.tf-version-bar{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);grid-column:1/-1;gap:.75rem;padding:.875rem 1rem;display:grid}.tf-version-bar-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.tf-review-bar{z-index:20;border:1px solid var(--tf-action-bg);border-radius:var(--tf-radius-card);background:var(--tf-selected-bg);width:100%;box-shadow:var(--tf-panel-shadow);gap:.5rem;padding:.875rem 1rem;display:grid;position:sticky;top:0}@media (max-width:1023px){.tf-review-bar{top:61px}}@media (max-width:720px){.tf-review-bar{position:static}}.tf-review-bar-note{color:var(--tf-text-secondary);font-size:.9375rem}.tf-review-bar-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.tf-review-removed p{align-items:center;gap:.5rem;font-weight:600;display:flex}.tf-review-removed ul{color:var(--tf-text-secondary);gap:.25rem;margin:.5rem 0 0;padding-left:1.75rem;display:grid}.tf-admin-ingredients{gap:1rem;width:100%;display:grid}.tf-status-line:empty{display:none}.tf-admin-tabs{border-bottom:1px solid var(--tf-border-subtle);flex-wrap:wrap;gap:.25rem;display:flex}.tf-admin-tabs button{min-height:44px;color:var(--tf-text-secondary);font:600 1rem/1.3 var(--tf-font-body);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:.375rem;padding:.5rem .875rem;display:inline-flex}.tf-admin-tabs button[aria-selected=true]{border-bottom-color:var(--tf-action-bg);color:var(--tf-text-primary)}.tf-admin-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.tf-admin-search{flex:14rem;min-width:0}.tf-admin-search .tf-field{width:100%}.tf-admin-list{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);margin:.5rem 0 1rem;padding:0;list-style:none;display:grid;overflow:hidden}.tf-admin-list>li+li{border-top:1px solid var(--tf-border-subtle)}.tf-admin-row{width:100%;min-height:3rem;color:var(--tf-text-primary);font:inherit;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:.25rem 1rem;padding:.625rem 1rem;display:grid}button.tf-admin-row{cursor:pointer}button.tf-admin-row:hover{background:var(--tf-surface-subtle)}button.tf-admin-row:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:-3px}.tf-admin-row-facts{color:var(--tf-text-secondary);font-size:.9375rem}.tf-admin-row-marks,.tf-admin-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.375rem;display:flex}.tf-admin-mark{border:1px solid var(--tf-border-subtle);color:var(--tf-text-secondary);white-space:nowrap;border-radius:999px;padding:.125rem .5rem;font-size:.8125rem}.tf-admin-mark[data-strong]{border-color:var(--tf-border-control);color:var(--tf-text-primary)}.tf-admin-inline{flex-wrap:wrap;grid-column:1/-1;align-items:flex-end;gap:.75rem;display:flex}.tf-admin-inline .tf-recipe-field{flex:16rem}.tf-admin-form{align-content:start;gap:1rem;display:grid}.tf-admin-name{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.tf-admin-name>.tf-recipe-field{flex:14rem}.tf-admin-choices,.tf-admin-usda{border:0;gap:.5rem;margin:0;padding:0;display:grid}.tf-admin-choices legend,.tf-admin-usda legend,.tf-admin-danger h3{margin-bottom:.5rem;font-weight:600}.tf-admin-choices>div{flex-wrap:wrap;gap:.5rem;display:flex}.tf-admin-food{border-radius:var(--tf-radius-control);background:var(--tf-surface-subtle);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding:.75rem;display:flex}.tf-admin-text-button{min-height:1.5rem;color:var(--tf-text-primary);font:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.tf-admin-foods{gap:.375rem;margin:0;padding:0;list-style:none;display:grid}.tf-admin-foods button{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);width:100%;color:var(--tf-text-primary);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;gap:.125rem;padding:.625rem .75rem;display:grid}.tf-admin-foods button:hover,.tf-admin-foods button[aria-pressed=true]{border-color:var(--tf-action-bg);background:var(--tf-selected-bg)}.tf-admin-text-button:focus-visible,.tf-admin-foods button:focus-visible,.tf-admin-tabs button:focus-visible{outline:3px solid var(--tf-focus-ring);outline-offset:2px}.tf-admin-danger{border-top:1px solid var(--tf-border-subtle);flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding-top:1rem;display:flex}.tf-admin-danger h3,.tf-admin-danger>.tf-recipe-field,.tf-admin-danger>p{flex:1 0 100%}@media (max-width:40rem){.tf-admin-row{grid-template-columns:minmax(0,1fr)}.tf-admin-row-marks,.tf-admin-row-actions{justify-content:flex-start}}.tf-identity{--tf-cook-width:44rem}.tf-cook{background:var(--tf-surface-canvas);flex-direction:column;flex:1;min-height:100dvh;display:flex}.tf-identity .tf-cook .tf-button{white-space:normal;text-align:center}.tf-cook-top{z-index:30;position:sticky;top:0}.tf-cook-bar{min-height:60px;padding:max(.5rem, env(safe-area-inset-top)) 1rem .5rem;background:var(--tf-surface-card);border-bottom:1px solid var(--tf-border-subtle);align-items:center;gap:.5rem;display:flex}.tf-identity .tf-cook-bar h1{-webkit-line-clamp:2;line-clamp:2;min-width:0;font:600 1.125rem/1.3 var(--tf-font-body);overflow-wrap:anywhere;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.tf-identity .tf-cook-close{border-radius:var(--tf-radius-control);min-width:44px;min-height:44px;color:var(--tf-text-primary);flex:none;justify-content:center;align-items:center;gap:.375rem;padding:0 .75rem 0 .5rem;font-weight:600;text-decoration:none;display:inline-flex}.tf-cook-close:hover{background:var(--tf-surface-subtle)}.tf-cook-bar-actions{flex:none;gap:.5rem;display:flex}.tf-identity .tf-cook-bar-actions .tf-button{min-width:44px;min-height:44px;padding:.5rem .875rem}@media (max-width:479px){.tf-cook-bar{padding-inline:.5rem}.tf-identity .tf-cook-close,.tf-identity .tf-cook-bar-actions .tf-button{padding:0}.tf-cook-bar-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.tf-cook-body{--tf-cook-gutter:1rem;width:min(var(--tf-cook-width), calc(100% - 2 * var(--tf-cook-gutter)));align-content:start;gap:1rem;margin:1.25rem auto 2rem;display:grid}.tf-cook-body p{max-width:64ch}.tf-cook-problem{width:min(var(--tf-cook-width), calc(100% - 2rem));margin:1rem auto 0}.tf-cook-problem,.tf-cook-body .tf-status{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.tf-cook-problem p,.tf-cook-body .tf-status p{flex:12rem;min-width:0}.tf-cook-progress{align-items:center;gap:.75rem;padding:1.5rem 0;font-size:1.125rem;font-weight:600;display:flex}.tf-cook-drafting{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.tf-cook-drafting li{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);align-items:flex-start;gap:.75rem;padding:.875rem 1rem;display:flex}.tf-cook-drafting li>span{gap:.125rem;display:grid}.tf-cook-drafting li>span>span{color:var(--tf-text-secondary);font-variant-numeric:tabular-nums;font-size:.9375rem}.tf-cook-drafting li>.tf-icon{color:var(--tf-text-secondary);flex:none;margin-top:.125rem}.tf-cook-drafting li[data-ready]>.tf-icon{color:var(--tf-text-primary)}.tf-identity .tf-cook-text-button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.tf-cook-setup{gap:.875rem;padding:1rem 1.25rem;display:grid}.tf-cook-setting{border:0;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;min-width:0;margin:0;padding:0;display:flex}.tf-cook-setting-name{float:left;flex:0 0 6.5rem;padding:0;font-weight:600}.tf-cook-servings,.tf-cook-batches{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.tf-cook-servings{gap:.5rem 1rem}.tf-cook-stepper{border:1px solid var(--tf-border-control);background:var(--tf-surface-card);border-radius:999px;align-items:center;display:inline-flex}.tf-cook-stepper button{width:44px;height:44px;color:var(--tf-text-primary);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.tf-cook-stepper button:hover:not(:disabled){background:var(--tf-surface-subtle)}.tf-cook-stepper button:disabled{color:var(--tf-disabled-text);cursor:not-allowed}.tf-cook-stepper output{font-variant-numeric:tabular-nums;text-align:center;min-width:2.5ch;font-size:1.125rem;font-weight:600}.tf-cook-summary{gap:.75rem;display:grid}.tf-cook-start{font-variant-numeric:tabular-nums;align-items:flex-start;gap:.625rem;font-size:1.125rem;font-weight:600;display:flex}.tf-cook-start .tf-icon{width:24px;height:24px}.tf-cook-go{z-index:20;margin:0 calc(-1 * var(--tf-cook-gutter)) -2rem;padding:.75rem var(--tf-cook-gutter) max(.75rem, env(safe-area-inset-bottom));background:var(--tf-surface-canvas);border-top:1px solid var(--tf-border-subtle);position:sticky;bottom:0}.tf-cook-go .tf-button{width:100%}@media (min-width:720px){.tf-cook-go{border-top:0;justify-content:flex-end;margin-inline:0;display:flex}.tf-cook-go .tf-button{width:auto;min-width:16rem}}.tf-cook-stages{margin:0;padding:0;list-style:none;display:grid}.tf-cook-stage{padding:0 0 1.25rem 2.25rem;position:relative}.tf-cook-stage:before{content:"";background:var(--tf-border-subtle);border-radius:1px;width:2px;position:absolute;top:2.25rem;bottom:.25rem;left:calc(.75rem - 1px)}.tf-cook-stage:last-child:before{display:none}.tf-identity .tf-cook-stage-head{font:600 1.125rem/1.3 var(--tf-font-body)}.tf-cook-stage-head button{width:100%;min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.625rem;padding:.5rem 0;display:flex}.tf-cook-stage-dot{border:2px solid var(--tf-border-control);background:var(--tf-surface-canvas);border-radius:50%;place-items:center;width:1.5rem;height:1.5rem;display:grid;position:absolute;top:.75rem;left:0}.tf-cook-stage[data-state=now] .tf-cook-stage-dot{border-color:var(--tf-text-primary);box-shadow:inset 0 0 0 3px var(--tf-surface-canvas);background:var(--tf-text-primary)}.tf-cook-stage[data-state=done] .tf-cook-stage-dot{border-color:var(--tf-text-primary);background:var(--tf-text-primary);color:var(--tf-surface-card)}.tf-cook-stage-dot .tf-icon{width:14px;height:14px}.tf-cook-stage-name{text-wrap:balance;flex:1;min-width:0}.tf-cook-stage[data-state=done] .tf-cook-stage-name{color:var(--tf-text-secondary)}.tf-cook-stage-meta{color:var(--tf-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.25rem;font-size:.9375rem;font-weight:500;display:inline-flex}.tf-cook-stage-meta .tf-icon{width:18px;height:18px}.tf-cook-stage-head .tf-icon:last-child{color:var(--tf-text-secondary);flex:none;transition:transform .15s}.tf-cook-stage-head [aria-expanded=true] .tf-icon:last-child{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.tf-cook-stage-head .tf-icon:last-child{transition:none}}.tf-cook-rows{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);background:var(--tf-surface-card);margin:.25rem 0 0;padding:0;list-style:none;overflow:hidden}.tf-cook-rows>li+li{border-top:1px solid var(--tf-border-subtle)}.tf-cook-row{align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.tf-cook-row[data-closed]{position:relative}.tf-cook-row[data-closed] .tf-cook-row-title:after{content:"";position:absolute;inset:0}@media (hover:hover){.tf-cook-row[data-closed]:hover{background:var(--tf-surface-subtle)}}.tf-cook-row>.tf-cook-check{z-index:1;margin-top:.375rem;position:relative}.tf-cook-row-body{flex:1;gap:.375rem;min-width:0;display:grid}.tf-cook-row-title{min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.tf-cook-row-text{flex:1;gap:.125rem;min-width:0;display:grid}.tf-cook-row-name{font-size:1.0625rem;font-weight:600;line-height:1.35}.tf-cook-row-title>.tf-icon{width:18px;height:18px;color:var(--tf-text-secondary);flex:none;transition:transform .15s}.tf-cook-row-title[aria-expanded=true]>.tf-icon{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.tf-cook-row-title>.tf-icon{transition:none}}.tf-cook-row[data-done] .tf-cook-row-name{color:var(--tf-text-secondary);text-decoration:line-through}.tf-cook-row-facts,.tf-cook-row-ahead{color:var(--tf-text-secondary);font-size:.9375rem}.tf-cook-row[data-running] .tf-cook-row-facts{color:var(--tf-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.tf-cook-row-more{gap:.5rem;padding-bottom:.25rem;display:grid}.tf-cook-heat{min-height:3.25rem;color:var(--tf-text-secondary);align-items:center;font-weight:600}.tf-cook-heat[data-now]{background:var(--tf-status-info-bg);color:var(--tf-status-info)}.tf-cook-row-now{background:var(--tf-selected-bg);box-shadow:inset 3px 0 0 var(--tf-text-primary)}@media (max-width:479px){.tf-cook-body{--tf-cook-gutter:.75rem}.tf-cook-setup,.tf-cook-now{padding-inline:1rem}.tf-cook-stage{padding-left:2rem}}.tf-cook-makes,.tf-cook-scale-note,.tf-cook-facts,.tf-cook-dish,.tf-cook-note,.tf-cook-row-more .tf-cook-cue{color:var(--tf-text-secondary);font-size:.9375rem}.tf-cook-uses{flex-wrap:wrap;gap:.375rem;margin:.125rem 0;padding:0;list-style:none;display:flex}.tf-cook-uses li{border:1px solid var(--tf-border-subtle);background:var(--tf-surface-subtle);border-radius:999px;padding:.25rem .625rem;font-size:.9375rem;line-height:1.35}.tf-cook-uses li span{color:var(--tf-text-secondary)}.tf-cook-check{width:1.75rem;height:1.75rem;accent-color:var(--tf-text-primary);cursor:pointer;flex:none;margin:0}.tf-cook-strip{border-bottom:1px solid var(--tf-border-subtle);background:var(--tf-surface-canvas)}.tf-cook-strip ol,.tf-cook-strip p{width:min(var(--tf-cook-width), calc(100% - 2rem));margin:0 auto}.tf-cook-strip ol{gap:4px;padding:.25rem 0 0;list-style:none;display:flex}.tf-cook-strip li{flex:1}.tf-cook-strip button{background:linear-gradient(var(--bar), var(--bar)) center / 100% 6px no-repeat;cursor:pointer;--bar:var(--tf-border-subtle);border:0;width:100%;height:1.25rem;padding:0;display:block}.tf-cook-strip [data-state=done] button{--bar:var(--tf-text-secondary)}.tf-cook-strip [data-state=now] button{--bar:var(--tf-text-primary)}.tf-cook-strip p{color:var(--tf-text-secondary);text-overflow:ellipsis;white-space:nowrap;padding-bottom:.5rem;font-size:.875rem;overflow:hidden}.tf-cook-strip-count{color:var(--tf-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.tf-cook-timers{border-bottom:1px solid var(--tf-border-subtle);background:var(--tf-border-subtle);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1px;margin:0;padding:0;list-style:none;display:grid}.tf-cook-timer{background:var(--tf-surface-card);min-height:56px;color:var(--tf-text-primary);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:0 .75rem;padding:.25rem .5rem .25rem 1rem;display:grid}.tf-cook-timer-label{text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;overflow:hidden}.tf-cook-timer-label span{color:var(--tf-text-secondary);font-weight:400}.tf-cook-timer-time{font:600 clamp(1.75rem, 7vw, 2.25rem) / 1.1 var(--tf-font-body);font-variant-numeric:tabular-nums;letter-spacing:.01em}.tf-cook-timer[data-state=paused] .tf-cook-timer-time{color:var(--tf-text-secondary)}.tf-cook-timer-actions{gap:.25rem;display:flex}.tf-cook-timer-button{border:1px solid var(--tf-border-control);border-radius:var(--tf-radius-control);background:var(--tf-surface-card);min-width:44px;min-height:44px;color:var(--tf-text-primary);font:600 .9375rem/1 var(--tf-font-body);cursor:pointer;justify-content:center;align-items:center;gap:.375rem;padding:0 .625rem;display:inline-flex}.tf-cook-timer-button:hover{background:var(--tf-surface-subtle)}.tf-cook-timer-remove{color:var(--tf-text-secondary);border-color:#0000;padding:0}@media (max-width:479px){.tf-cook-timers:has(>:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}.tf-cook-timers>:last-child:nth-child(odd){grid-column:1/-1}.tf-cook-timer{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label label""time actions";padding:.375rem .25rem .375rem .75rem}.tf-cook-timer-label{grid-area:label;font-size:.875rem}.tf-cook-timer-time{grid-area:time;font-size:1.5rem}.tf-cook-timer-actions{grid-area:actions;gap:0}.tf-cook-timer-button{padding:0}}.tf-cook-alarms{z-index:55;padding:.75rem 1rem max(.75rem, env(safe-area-inset-bottom));pointer-events:none;gap:.5rem;display:grid;position:fixed;inset:auto 0 0}.tf-cook-alarm{width:min(var(--tf-cook-width), 100%);border-radius:var(--tf-radius-card);background:var(--tf-text-primary);color:var(--tf-surface-card);pointer-events:auto;grid-template-columns:auto minmax(0,1fr);gap:.625rem .75rem;margin:0 auto;padding:1rem;animation:.2s ease-out tf-rise;display:grid;box-shadow:0 8px 32px #29251f4d}.tf-cook-alarm>.tf-icon{width:28px;height:28px}.tf-cook-alarm[data-ringing]>.tf-icon{animation:1s ease-in-out infinite tf-ring}@keyframes tf-ring{0%,60%,to{transform:rotate(0)}15%{transform:rotate(-14deg)}30%{transform:rotate(12deg)}45%{transform:rotate(-6deg)}}.tf-cook-alarm-text{gap:.125rem;font-size:1.0625rem;display:grid}.tf-cook-alarm-actions{flex-wrap:wrap;grid-column:1/-1;gap:.5rem;display:flex}.tf-cook-alarm-actions .tf-button{flex:auto}.tf-cook-now{gap:.625rem;padding:1.25rem;display:grid}.tf-identity .tf-cook-now-where{color:var(--tf-text-secondary);font:600 .8125rem/1.4 var(--tf-font-body);font-variant-numeric:tabular-nums;letter-spacing:.06em;text-transform:uppercase}.tf-identity .tf-cook-now :is(h2,h3){font:600 clamp(1.625rem, 5vw, 2.125rem) / 1.2 var(--tf-font-body);letter-spacing:-.01em;text-wrap:balance}.tf-cook-instruction{font-size:1.125rem;line-height:1.5}.tf-cook-now .tf-cook-uses li{padding:.375rem .75rem;font-size:1.0625rem}.tf-cook-now .tf-cook-facts{font-size:1rem}.tf-cook-cue{align-items:flex-start;gap:.5rem;font-size:1.0625rem;display:flex}.tf-cook-cue .tf-icon{margin-top:.125rem}.tf-cook-row-more .tf-cook-cue .tf-icon{width:18px;height:18px}.tf-cook-heat-now{border-radius:var(--tf-radius-control);background:var(--tf-status-info-bg);color:var(--tf-status-info);align-items:center;gap:.5rem;padding:.625rem .875rem;font-weight:600;display:flex}.tf-cook-now-actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.tf-identity .tf-cook-now-actions .tf-button{min-height:52px;font-size:1.0625rem}@media (max-width:719px){.tf-identity .tf-cook-now-actions .tf-button{flex:100%}}.tf-cook-end{justify-items:start}.tf-cook-end>.tf-icon{width:32px;height:32px}.tf-cook-awake{min-height:1.5rem;color:var(--tf-text-secondary);font-size:.875rem}.tf-cook-stop{color:var(--tf-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.tf-cook:has(.tf-cook-alarm) .tf-cook-body{margin-bottom:13rem}@media (min-width:1200px){.tf-cook:has(>.tf-chat-panel:not([hidden])){padding-right:var(--tf-chat-width)}.tf-cook:has(>.tf-chat-panel:not([hidden])) .tf-cook-alarms{right:var(--tf-chat-width)}}.tf-cook-change{border-top:1px solid var(--tf-border-subtle);gap:.5rem;padding-top:.5rem;display:grid}.tf-cook-change-summary{font-weight:600}.tf-cook-change-name{color:var(--tf-text-secondary);font-size:.875rem;font-weight:600}.tf-cook-change ul{margin:.125rem 0 0;padding-left:1.25rem;list-style:outside}.tf-cook-change-actions{flex-wrap:wrap;gap:.5rem;display:flex}.tf-cooking-now>.tf-icon{color:var(--tf-text-primary)}.tf-cooking-now>a:before{content:"·";color:var(--tf-text-secondary);margin-right:.625rem;display:inline-block}@media (prefers-reduced-motion:reduce){.tf-cook-alarm,.tf-cook-alarm[data-ringing]>.tf-icon{animation:none}}.tf-meal-new,.tf-meal-delete{justify-items:end;gap:.5rem;display:grid}.tf-meal-delete{justify-items:start;margin-top:.5rem}.tf-meal-new output,.tf-meal-delete output{color:var(--tf-text-secondary);font-size:.9375rem}.tf-meal-new output:empty,.tf-meal-delete output:empty{display:none}.tf-meal-thumb{border-radius:var(--tf-radius-control);background:var(--tf-oat);width:4rem;height:4rem;color:color-mix(in srgb, var(--tf-kiln) 55%, transparent);object-fit:cover;place-items:center;display:grid}.tf-meal-row{background:var(--tf-surface-card);border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius-card);min-height:48px;box-shadow:var(--tf-panel-shadow);color:inherit;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1rem;padding:.875rem 1rem;text-decoration:none;display:grid}.tf-meal-row-body{gap:.25rem;min-width:0;display:grid}.tf-meal-row-body strong{font-size:1.0625rem;line-height:1.3}.tf-meal-row-body>span{color:var(--tf-text-secondary);font-size:.9375rem}.tf-meal-row-serves{align-items:center;gap:.375rem;display:inline-flex}.tf-meal-row-serves .tf-icon{width:16px;height:16px}.tf-meal-title{max-width:100%}.tf-meal-name{color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:inline}.tf-meal-name:hover>span:first-child{text-underline-offset:.15em;text-decoration:underline;text-decoration-thickness:2px}.tf-identity .tf-meal-pencil{width:.75em;height:.75em;color:var(--tf-text-secondary);vertical-align:baseline;margin-left:.375em}.tf-identity .tf-meal-name-field{width:100%;font-family:var(--tf-font-display);font-size:1.5rem;font-weight:600}.tf-meal-serves{border:0;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-inline-size:0;margin:0;padding:0;display:flex}.tf-meal-serves>legend{float:left;padding:0;font-weight:600}.tf-meal-status{min-height:1.5rem}.tf-meal-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.tf-meal-section{gap:1rem;display:grid}.tf-meal-empty{color:var(--tf-text-secondary)}.tf-meal-dish{border-top:1px solid var(--tf-border-subtle);grid-template-rows:auto 1fr;grid-template-columns:4rem minmax(0,1fr) 2.75rem;gap:.5rem 1rem;padding-block:1rem;display:grid}.tf-meal-dish:first-child{border-top:0;padding-top:0}.tf-meal-dish>.tf-meal-thumb{grid-row:1/span 2}.tf-meal-dish-title{overflow-wrap:anywhere;grid-column:2;align-self:center;font-size:1.0625rem;font-weight:600;line-height:1.3}.tf-meal-remove{grid-area:1/3}.tf-meal-dish-body{grid-column:2/-1;gap:.625rem;min-width:0;display:grid}.tf-meal-dish-line{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-width:0;display:flex}.tf-identity .tf-meal-course{min-height:44px;padding-block:.5rem;font-size:.9375rem}.tf-meal-quiet{color:var(--tf-text-secondary);font-size:.9375rem}.tf-meal-text-button{min-height:44px;color:var(--tf-text-primary);font:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;padding:0 .25rem;font-size:.9375rem;text-decoration:underline}.tf-meal-update{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.tf-meal-update>span{align-items:center;gap:.375rem;font-weight:600;display:inline-flex}.tf-meal-add-dish{justify-self:start}.tf-identity .tf-meal-problem{z-index:5;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;width:100%;display:flex;position:sticky;bottom:1rem;box-shadow:0 4px 16px #29251f29}.tf-meal-problem>p{flex:12rem}.tf-meal-panel .tf-cookbook-panel-body{gap:1.25rem}.tf-meal-search{gap:.75rem;display:grid}.tf-meal-courses,.tf-meal-servings{border:0;min-inline-size:0;margin:0;padding:0}.tf-meal-join{gap:1rem;display:grid}.tf-meal-join>.tf-button{justify-self:start}.tf-meal-pick{border-top:1px solid var(--tf-border-subtle);align-items:center;gap:.75rem;padding-block:.75rem;display:flex}.tf-meal-pick>.tf-meal-thumb{width:3rem;height:3rem}.tf-meal-pick-body{flex:auto;gap:.125rem;min-width:0;display:grid}.tf-meal-pick-body>span{color:var(--tf-text-secondary);font-size:.875rem}.tf-meal-pick-body>.tf-tag-row{margin-top:.25rem}.tf-meal-pick .tf-button{flex:none;min-height:44px;padding-block:.5rem}.tf-meal-added{min-height:44px;color:var(--tf-text-secondary);flex:none;align-items:center;gap:.375rem;padding-inline:.75rem;font-weight:600;display:inline-flex}.tf-meal-added .tf-icon{width:16px;height:16px;color:var(--tf-status-success)}.tf-writer-for-meal{color:var(--tf-text-secondary);align-items:center;gap:.5rem;display:flex}.tf-writer-for-meal>.tf-icon{color:var(--tf-kiln)}@media (max-width:720px){.tf-cookbook-header>.tf-meal-new{grid-area:auto/1;justify-items:stretch}.tf-meal-actions>a.tf-button{width:100%}}@media (max-width:30rem){.tf-meal-thumb{width:3rem;height:3rem}.tf-meal-row{gap:.75rem;padding:.75rem}.tf-meal-dish{grid-template-columns:3rem minmax(0,1fr) 2.75rem;column-gap:.75rem}.tf-meal-dish>.tf-meal-thumb{grid-row:1}.tf-meal-dish-body{grid-column:1/-1}.tf-meal-panel .tf-cookbook-panel-foot>.tf-button{flex:100%}}.tf-public-recipes{min-height:auto}.tf-dialog-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.tf-save-status:empty{display:none}.tf-save-status{white-space:nowrap;color:var(--tf-text-secondary);order:1;align-items:center;gap:.375rem;font-size:.9375rem;display:flex}.tf-step-picture{gap:.375rem;max-width:22rem;margin:0;display:grid}.tf-step-picture-frame{aspect-ratio:3/2;border-radius:calc(var(--tf-radius-card) - .25rem);background:var(--tf-surface-subtle);place-items:center;display:grid;position:relative;overflow:hidden}.tf-step-picture-frame a,.tf-step-picture-frame img{width:100%;height:100%;display:block}.tf-step-picture-frame img{object-fit:cover}.tf-step-picture-frame .tf-chat-working{padding:0 1rem}.tf-step-picture figcaption{color:var(--tf-text-secondary);font-size:.9375rem}.tf-cook-plating{align-items:start;gap:.75rem;display:grid}@media (min-width:40rem){.tf-cook-plating{grid-template-columns:minmax(0,22rem) minmax(0,1fr)}}.tf-cook-plates{gap:.75rem;display:grid}