@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,400,0..1,0&display=block");:root{--cream-50:#fffdf8;--cream-100:#fbf7ef;--cream-200:#f4ede0;--cream-300:#ebe1cf;--cream-400:#ddd0b9;--ink-300:#c9bcab;--ink-500:#85786b;--ink-600:#6a5e53;--ink-700:#4a4038;--ink-800:#3a312a;--ink-900:#2a221c;--terracotta-500:#ad4e34;--terracotta-600:#94412a;--terracotta-100:#f5e1d8;--sage-500:#5f7f51;--sage-100:#e3ead9;--bg-app:var(--cream-100);--bg-linen:var(--cream-200);--linen-thread:rgba(120,92,56,0.075);--surface-card:var(--cream-50);--surface-sunken:var(--cream-200);--line:#e7dccb;--line-strong:#cdbfa8;--text-primary:var(--ink-900);--text-body:var(--ink-800);--text-secondary:var(--ink-600);--text-tertiary:var(--ink-500);--text-on-accent:#ffffff;--accent:var(--terracotta-500);--accent-press:var(--terracotta-600);--accent-soft:var(--terracotta-100);--success:var(--sage-500);--success-soft:var(--sage-100);--nav-bg:var(--ink-900);--nav-icon:var(--cream-300);--nav-active-bg:var(--cream-100);--nav-active-text:var(--terracotta-500);--inverse-bg:var(--ink-900);--inverse-text:var(--cream-50);--overlay-button:rgba(255,255,255,0.92);--scrim:rgba(30,22,16,0.42);color-scheme:light}[data-theme=dark]{--bg-app:#1d1915;--bg-linen:#26201b;--linen-thread:rgba(255,238,214,0.045);--surface-card:#27211c;--surface-sunken:#2f2822;--line:#3a322b;--line-strong:#564a40;--text-primary:#f5eee3;--text-body:#e8dfd1;--text-secondary:#bcae9c;--text-tertiary:#8f8273;--text-on-accent:#241812;--accent:#e0866d;--accent-press:#ea9a83;--accent-soft:rgba(224,134,109,0.18);--success:#9db88c;--success-soft:rgba(157,184,140,0.18);--nav-bg:#3a312a;--nav-icon:#cfc3b2;--nav-active-bg:#f5eee3;--nav-active-text:#a4482f;--inverse-bg:#f5eee3;--inverse-text:#1d1915;--overlay-button:rgba(39,33,28,0.92);--scrim:rgba(0,0,0,0.55);color-scheme:dark}:root{--font-en:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;--font-zh:"Noto Sans TC","PingFang TC","Microsoft JhengHei",var(--font-en);--font-ui:var(--font-en);--text-display:1.9375rem;--text-title:1.6875rem;--text-heading:1.125rem;--text-list:1rem;--text-para:0.9375rem;--text-caption:0.8125rem;--text-overline:0.8125rem;--text-nav:0.71875rem;--leading-display:1.1;--leading-title:1.15;--leading-body:1.45;--tracking-display:-0.025em;--tracking-overline:0.06em}html[lang=zh-Hant]{--font-ui:var(--font-zh);--text-heading:1.0625rem}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--gutter:22px;--row-pad-y:13px;--row-min:44px;--section-gap:24px;--radius-highlight:3px;--radius-checkbox:6px;--radius-chip:9px;--radius-field:12px;--radius-group:14px;--radius-button:14px;--radius-sheet:24px;--radius-pill:999px;--shadow-float:0 10px 28px rgba(42,34,28,0.22),0 2px 6px rgba(42,34,28,0.12);--shadow-fab:0 10px 22px rgba(173,78,52,0.34),0 2px 5px rgba(173,78,52,0.2);--shadow-seg:0 1px 3px rgba(42,34,28,0.14),0 1px 1px rgba(42,34,28,0.06);--shadow-plate:drop-shadow(3px 5px 6px rgba(50,34,18,0.22)) drop-shadow(0 1px 1.5px rgba(50,34,18,0.16));--app-max:430px;--status-bar:max(env(safe-area-inset-top,0px),18px);--nav-offset:calc(26px + env(safe-area-inset-bottom, 0px));--cta-offset:calc(26px + env(safe-area-inset-bottom, 0px));--content-bottom-pad:calc(112px + env(safe-area-inset-bottom, 0px));--plate-home:102px;--plate-hero:200px;--plate-row:64px}[data-theme=dark]{--shadow-float:0 10px 28px rgba(0,0,0,0.5),0 2px 6px rgba(0,0,0,0.35);--shadow-fab:0 10px 22px rgba(0,0,0,0.45),0 2px 5px rgba(0,0,0,0.3);--shadow-seg:0 1px 3px rgba(0,0,0,0.45);--shadow-plate:drop-shadow(3px 6px 7px rgba(0,0,0,0.5)) drop-shadow(0 1px 2px rgba(0,0,0,0.4))}:root{--weave:repeating-linear-gradient(0deg,rgba(40,28,16,0.06) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(255,255,255,0.1) 0 1px,transparent 1px 3px);--weave-strong:repeating-linear-gradient(0deg,rgba(40,28,16,0.11) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(255,255,255,0.16) 0 1.5px,transparent 1.5px 4px)}.cloth{background-color:var(--bg-linen)}.cloth--violet-stripe{background:var(--weave),repeating-linear-gradient(90deg,transparent 0 30px,#5a4a8e 30px 33px,transparent 33px 37px,#5a4a8e 37px 40px,transparent 40px 72px),#f6f4f1}.cloth--chartreuse-weave{background:var(--weave-strong),linear-gradient(90deg,transparent 43%,#eeecdc 43% 57%,transparent 57%),#c5c93c}.cloth--blue-windowpane{background:var(--weave),repeating-linear-gradient(90deg,transparent 0 64px,#36589a 64px 71px),repeating-linear-gradient(0deg,transparent 0 64px,#36589a 64px 71px),#f3f2ee}.cloth--peach-linen{background:var(--weave-strong),#e6c3a6}.cloth--red-gingham{background:var(--weave),linear-gradient(90deg,rgba(255,255,255,.6) 50%,transparent 50%) 0 0 /30px 30px,linear-gradient(0deg,rgba(255,255,255,.6) 50%,transparent 50%) 0 0 /30px 30px,#c8303b}.cloth--cream-linen{background:var(--weave-strong),#eee6d8}.cloth--navy-check{background:var(--weave),repeating-linear-gradient(90deg,transparent 0 36px,#2f4a7c 36px 38px,transparent 38px 42px,#2f4a7c 42px 43px),repeating-linear-gradient(0deg,transparent 0 36px,#2f4a7c 36px 38px,transparent 38px 42px,#2f4a7c 42px 43px),#f5f5f2}.cloth--ink-print{background:var(--weave),repeating-linear-gradient(104deg,transparent 0 40px,#1e1c1a 40px 56px,transparent 56px 74px,#1e1c1a 74px 80px,transparent 80px 132px),#f4f3ef}.cloth--lemon-stripe{background:var(--weave),repeating-linear-gradient(90deg,#d5cf48 0 24px,#f3f0de 24px 27px,#d5cf48 27px 30px,#f3f0de 30px 52px),#f3f0de}[data-theme=dark] .cloth{box-shadow:inset 0 0 0 2000px rgba(16,12,9,.32)}:root{--ease-out:cubic-bezier(0.2,0.8,0.2,1);--dur-press:120ms;--dur-change:200ms;--dur-sheet:320ms;--press-scale:0.97}@media (prefers-reduced-motion:reduce){:root{--dur-press:0ms;--dur-change:0ms;--dur-sheet:0ms;--press-scale:1}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{background:var(--bg-app)}body{margin:0;min-height:100dvh;color:var(--text-body);font-family:var(--font-ui);font-size:var(--text-list);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}a{color:var(--accent);text-decoration:none}img{display:block;max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[aria-disabled=true],[disabled]{opacity:.4;pointer-events:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pressable{transition:transform var(--dur-press) var(--ease-out)}.pressable:active{transform:scale(var(--press-scale))}.linen{background-color:var(--bg-linen);background-image:repeating-linear-gradient(0deg,var(--linen-thread) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,var(--linen-thread) 0 1px,transparent 1px 3px)}:root{--app-left:max(0px,calc((100vw - var(--app-max)) / 2))}.icon{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:var(--icon-size,22px);line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;width:1em;overflow:hidden;flex:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.icon--fill{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 20px;border-radius:var(--radius-button);font-size:var(--text-list);font-weight:600;line-height:1.2;text-align:center;transition:transform var(--dur-press) var(--ease-out),background-color var(--dur-change) var(--ease-out)}.btn:active{transform:scale(var(--press-scale))}.btn--primary{background:var(--accent);color:var(--text-on-accent)}.btn--primary:active{background:var(--accent-press)}.btn--dark{background:var(--inverse-bg);color:var(--inverse-text)}.btn--secondary{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--line-strong)}.btn--ghost{background:transparent;color:var(--accent);padding:0 8px}.btn--sm{min-height:36px;padding:0 14px;border-radius:10px;font-size:.875rem}.btn--block{width:100%}.btn[disabled]{opacity:.4}.btn--done[disabled]{opacity:1;background:var(--surface-sunken);color:var(--text-secondary)}.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-pill);background:var(--surface-card);border:1px solid var(--line);color:var(--text-primary);transition:transform var(--dur-press) var(--ease-out);flex:none}.icon-btn:active{transform:scale(var(--press-scale))}.icon-btn--overlay{background:var(--overlay-button);border-color:transparent}.icon-btn--plain{background:transparent;border-color:transparent}.icon-btn--dark-square{width:48px;height:48px;border-radius:var(--radius-field);background:var(--inverse-bg);color:var(--inverse-text);border:0}.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-nav);font-weight:700;line-height:1}.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:var(--radius-chip);border:1px solid var(--line-strong);background:transparent;color:var(--text-body);font-size:.875rem;font-weight:500;white-space:nowrap;transition:background-color var(--dur-change) var(--ease-out),color var(--dur-change) var(--ease-out),padding var(--dur-change) var(--ease-out),transform var(--dur-press) var(--ease-out)}.chip:active{transform:scale(var(--press-scale))}.chip[aria-pressed=true],.chip[aria-selected=true]{background:var(--inverse-bg);color:var(--inverse-text);border-color:var(--inverse-bg)}.chip__count{color:inherit;opacity:.7}.chip-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter)}.chip-row::-webkit-scrollbar{display:none}.chip-row--wrap{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.field{display:block}.field__label{display:block;margin-bottom:6px;font-size:var(--text-caption);font-weight:600;color:var(--text-secondary)}.field__control{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 14px;border-radius:var(--radius-field);background:var(--surface-card);border:1px solid var(--line);color:var(--text-secondary);transition:border-color var(--dur-change) var(--ease-out)}.field__control:focus-within{border-color:var(--text-primary);box-shadow:0 0 0 .5px var(--text-primary)}.field__control--button{width:100%;text-align:left;cursor:text}.field__input{flex:1 1;min-width:0;border:0;outline:0;background:transparent;color:var(--text-primary);font-size:var(--text-list);padding:13px 0}.field__input::-webkit-search-cancel-button,.field__input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.field__input::placeholder,.field__placeholder{color:var(--text-tertiary)}textarea.field__input{resize:none;line-height:1.45;min-height:96px}.field__control--multiline{align-items:flex-start}.field__control--multiline .icon{margin-top:14px}.field__helper{display:flex;align-items:flex-start;gap:6px;margin-top:8px;font-size:var(--text-caption);color:var(--text-secondary)}.field__helper--success{color:var(--success)}.field__helper .icon{--icon-size:16px;margin-top:1px}.checkbox{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:var(--radius-checkbox);border:1.5px solid var(--line-strong);background:var(--surface-card);color:#fff;flex:none;transition:background-color var(--dur-change) var(--ease-out),border-color var(--dur-change) var(--ease-out)}.checkbox .icon{--icon-size:16px;font-variation-settings:"FILL" 0,"wght" 600,"GRAD" 0,"opsz" 20;opacity:0}.checkbox--checked{background:var(--success);border-color:var(--success)}.checkbox--checked .icon{opacity:1}[data-theme=dark] .checkbox{color:#1d1915}.segmented{display:flex;padding:3px;border-radius:var(--radius-field);background:var(--surface-sunken)}.segmented__item{flex:1 1;min-height:40px;border-radius:10px;font-size:.9375rem;font-weight:500;color:var(--text-secondary);transition:background-color var(--dur-change) var(--ease-out),color var(--dur-change) var(--ease-out)}.segmented__item[aria-selected=true]{background:var(--surface-card);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-seg)}.bottom-nav{position:fixed;z-index:20;bottom:var(--nav-offset);left:calc(var(--app-left) + 18px);display:flex;gap:2px;padding:6px;background:var(--nav-bg);box-shadow:var(--shadow-float)}.bottom-nav,.bottom-nav__item{align-items:center;border-radius:var(--radius-pill)}.bottom-nav__item{position:relative;display:inline-flex;justify-content:center;gap:6px;height:48px;min-width:48px;padding:0 12px;color:var(--nav-icon);transition:background-color var(--dur-change) var(--ease-out),padding var(--dur-change) var(--ease-out),color var(--dur-change) var(--ease-out)}.bottom-nav__item .icon{--icon-size:25px}.bottom-nav__item[aria-current=page]{padding:0 16px 0 13px;background:var(--nav-active-bg);color:var(--nav-active-text)}.bottom-nav__label{font-size:.8125rem;font-weight:700;white-space:nowrap}.bottom-nav__badge{position:absolute;top:4px;right:2px;box-shadow:0 0 0 2px var(--nav-bg)}.bottom-nav__item[aria-current=page] .bottom-nav__badge{position:static;box-shadow:none}.fab{position:fixed;z-index:20;bottom:var(--nav-offset);right:calc(var(--app-left) + 18px);display:grid;place-items:center;width:60px;height:60px;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-fab);transition:transform var(--dur-press) var(--ease-out)}.fab:active{transform:scale(var(--press-scale))}.fab .icon{--icon-size:30px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line)}.tabs__tab{position:relative;min-height:44px;padding:10px 0;font-size:.9375rem;font-weight:600;color:var(--text-secondary);transition:color var(--dur-change) var(--ease-out)}.tabs__tab[aria-selected=true]{color:var(--text-primary)}.tabs__tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--text-primary)}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:52px;padding:var(--status-bar) var(--gutter) 0}.topbar__title{font-size:1.0625rem;font-weight:700;color:var(--text-primary);text-align:center}.topbar__start{justify-self:start}.topbar__end,.topbar__start{display:flex;align-items:center}.topbar__end{justify-self:end}.topbar__link{min-height:44px;padding:0 2px;font-size:var(--text-list);font-weight:500;color:var(--text-secondary)}.topbar__link--accent{color:var(--accent);font-weight:700}.topbar__back{display:inline-flex;align-items:center;gap:2px;min-height:44px;margin-left:-8px;font-size:var(--text-list);font-weight:500;color:var(--text-primary)}.plate{position:relative;display:block;flex:none;width:var(--plate-size,102px);height:var(--plate-size,102px);border-radius:50%}.plate__rim-img,.plate__svg{position:absolute;inset:0;display:block;width:100%;height:100%;filter:var(--shadow-plate)}.plate__rim-img{object-fit:contain}.plate__overlay{position:absolute;inset:0;display:block;width:100%;height:100%}.plate--empty{background:transparent;border:1.5px dashed var(--line-strong);display:grid;place-items:center;color:var(--text-tertiary)}.plate--empty .icon{--icon-size:calc(var(--plate-size, 102px) * 0.3)}.plate--selected{outline:2px solid var(--text-primary);outline-offset:3px}.recipe-tile{display:flex;flex-direction:column;align-items:center;gap:9px;width:100%;color:inherit;text-align:center}.recipe-tile__name{font-size:.875rem;font-weight:600;line-height:1.25;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.list{margin:0;padding:0;list-style:none}.row{display:flex;align-items:center;gap:14px;min-height:var(--row-min);padding:var(--row-pad-y) 0;border-bottom:1px solid var(--line);width:100%;text-align:left;color:inherit}.row__main{flex:1 1;min-width:0}.row__title{font-size:var(--text-list);color:var(--text-primary);line-height:1.3}.row__sub{margin-top:2px;font-size:var(--text-caption);line-height:1.35}.row__end,.row__sub{color:var(--text-secondary)}.row__end{flex:none;font-size:.9375rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.grocery-item--checked .row__end,.grocery-item--checked .row__title{text-decoration:line-through;color:var(--text-tertiary)}.grocery-item--checked .row__sub{color:var(--text-tertiary)}.step-row{display:grid;grid-template-columns:28px 1fr;grid-gap:6px;gap:6px;padding:14px 0;border-bottom:1px solid var(--line)}.step-row__num{font-size:.9375rem;font-weight:700;color:var(--accent);line-height:1.5}.step-row__text{font-size:var(--text-para);line-height:1.55;color:var(--text-body)}.step-row__merge{margin-top:4px;font-size:var(--text-caption);font-weight:600;color:var(--accent);min-height:28px}.log-entry{display:block;width:100%;padding:16px 0;border-bottom:1px solid var(--line);text-align:left;color:inherit}.log-entry__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.log-entry__date{font-size:var(--text-list);font-weight:600;color:var(--text-primary)}.log-entry__rating{color:var(--text-primary);letter-spacing:1px;font-size:.9375rem}.log-entry__note{margin:6px 0 0;font-size:var(--text-para);color:var(--text-body);white-space:pre-wrap}.log-entry__tweaks{margin:6px 0 0;font-size:var(--text-caption);color:var(--text-secondary);white-space:pre-wrap}.log-entry__tweaks strong{font-weight:600;color:var(--text-body)}.log-entry__photo{margin-top:10px;width:100%;max-height:240px;object-fit:cover;border-radius:var(--radius-field)}.log-entry__by{margin-top:6px;font-size:var(--text-caption);color:var(--text-tertiary)}.search-result{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);color:inherit}.search-result__body{flex:1 1;min-width:0}.search-result__name{font-size:var(--text-list);font-weight:600;color:var(--text-primary);line-height:1.3}.search-result__meta{margin-top:1px;font-size:var(--text-caption);color:var(--text-secondary)}.search-result__ings,.search-result__note{margin-top:3px;font-size:var(--text-caption);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result__note{font-style:italic}.highlight,mark{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-highlight);padding:0 3px;font-weight:600}.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet__scrim{position:absolute;inset:0;background:var(--scrim);animation:sheet-fade var(--dur-sheet) var(--ease-out)}.sheet__panel{position:relative;width:100%;max-width:var(--app-max);max-height:92dvh;overflow-y:auto;padding:10px var(--gutter) calc(24px + env(safe-area-inset-bottom, 0px));border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--bg-app);animation:sheet-up var(--dur-sheet) var(--ease-out)}.sheet__handle{width:38px;height:4px;margin:0 auto 14px;border-radius:2px;background:var(--line-strong)}.sheet__title{margin:0 0 16px;font-size:var(--text-heading);font-weight:700;color:var(--text-primary)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.app{position:relative;max-width:var(--app-max);min-height:100dvh;margin:0 auto;background:var(--bg-app)}.screen{padding:calc(var(--status-bar) + 12px) var(--gutter) var(--content-bottom-pad)}.screen--sub{padding-top:0}.screen__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.display{margin:0;font-size:var(--text-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);font-weight:700;color:var(--text-primary)}html[lang=zh-Hant] .display{letter-spacing:0}.subtitle{margin:6px 0 0;font-size:var(--text-para);color:var(--text-secondary)}.title{font-size:var(--text-title);line-height:var(--leading-title);letter-spacing:-.015em}.heading,.title{margin:0;font-weight:700;color:var(--text-primary)}.heading{font-size:var(--text-heading)}.overline{margin:0;font-size:var(--text-overline);font-weight:600;letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--text-secondary)}html[lang=zh-Hant] .overline{text-transform:none;letter-spacing:.02em}.section{margin-top:var(--section-gap)}.section__head{display:flex;justify-content:space-between;margin-bottom:10px}.link,.section__head{align-items:center;min-height:32px}.link{font-size:.9375rem;font-weight:600;color:var(--accent);display:inline-flex}.empty,.muted{color:var(--text-secondary)}.empty{padding:28px 0;font-size:var(--text-para);text-align:center}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px 10px;gap:20px 10px;margin:0 calc(16px - var(--gutter))}.group{border-radius:var(--radius-group);background:var(--surface-card);border:1px solid var(--line);overflow:hidden}.group__row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:var(--text-list);color:var(--text-primary);width:100%;text-align:left}.group__row:last-child{border-bottom:0}.group__value{color:var(--text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.group__head{display:flex;align-items:center;gap:6px;padding:12px 16px 4px;font-size:var(--text-caption);font-weight:600;color:var(--success)}.group__head .icon{--icon-size:18px}.notice{display:flex;gap:10px;padding:14px 16px;border-radius:var(--radius-group);background:var(--surface-card);border:1px solid var(--line);font-size:var(--text-para);color:var(--text-body)}.notice .icon{color:var(--text-secondary);margin-top:1px}.notice__actions{display:flex;gap:8px;margin-top:12px}.sticky-cta{position:fixed;z-index:15;left:calc(var(--app-left) + 18px);right:calc(var(--app-left) + 18px);bottom:var(--cta-offset)}.sticky-cta .btn{width:100%;box-shadow:var(--shadow-float)}.sticky-cta .btn--done{box-shadow:none}.hero{position:relative;height:268px;display:grid;place-items:center}.hero__back{left:16px}.hero__back,.hero__change{position:absolute;top:calc(var(--status-bar) + 4px)}.hero__change{right:16px;display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:var(--radius-pill);background:var(--overlay-button);font-size:.875rem;font-weight:600;color:var(--text-primary)}.detail{padding:20px var(--gutter) calc(var(--content-bottom-pad) + 8px)}.detail__alt{margin:4px 0 0;font-size:var(--text-para)}.detail__alt,.meta-row{color:var(--text-secondary)}.meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:10px 0 18px;font-size:var(--text-caption)}.meta-row__sep{color:var(--text-tertiary)}.meta-row a{display:inline-flex;align-items:center;gap:2px;font-weight:600}.meta-row .icon{--icon-size:15px}.saved-note{margin:0 0 16px;font-size:var(--text-para);font-style:italic}.saved-note,.tab-hint{color:var(--text-secondary)}.tab-hint{margin:14px 0 2px;font-size:var(--text-caption)}.tab-hint--row{display:flex;align-items:center;justify-content:space-between;gap:12px}.tab-hint--row .link{font-size:var(--text-caption)}.detail__actions{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:32px}.detail__actions .danger-link{margin-top:0}.danger-link{display:block;margin:36px auto 0;min-height:44px;font-size:var(--text-caption);color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px}.add{padding:8px var(--gutter) 48px}.add__stack>*+*{margin-top:18px}.split-label{margin-bottom:8px}.editor-section{padding-top:8px}.editor-section>*+*{margin-top:12px}.editor-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.editor-section__count{font-size:var(--text-caption)}.editor-box textarea.field__input{min-height:150px;line-height:1.6}.editor-preview{margin:0;padding:0;list-style:none}.editor-preview__none{color:var(--text-tertiary);font-size:var(--text-caption)}.editor-preview__step{display:grid;grid-template-columns:24px 1fr;grid-gap:6px;gap:6px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:var(--text-para);color:var(--text-body);line-height:1.5}.editor-preview__step:last-child{border-bottom:0}.editor-rows{display:flex;flex-direction:column;gap:8px}.editor-row{display:flex;align-items:center;gap:8px}.editor-input{min-width:0;min-height:48px;padding:0 12px;border-radius:var(--radius-field);border:1px solid var(--line);background:var(--surface-card);color:var(--text-primary);font-size:var(--text-list);transition:border-color var(--dur-change) var(--ease-out)}.editor-input::placeholder{color:var(--text-tertiary)}.editor-input:focus{outline:none;border-color:var(--text-primary);box-shadow:0 0 0 .5px var(--text-primary)}.editor-input--name{flex:1.35 1}.editor-input--portion{flex:1 1}textarea.editor-input--step{display:block;width:100%;padding:12px;resize:none;line-height:1.45;overflow:hidden}.editor-step{display:grid;grid-template-columns:22px 1fr 42px;grid-gap:6px;gap:6px;align-items:start}.editor-step__num{padding-top:13px}.editor-step .icon-btn{margin-top:3px}.picker__preview{display:grid;place-items:center;padding:24px 0;border-radius:var(--radius-group)}.picker__name{margin:10px 0 16px;text-align:center;font-size:var(--text-list);font-weight:600;color:var(--text-primary)}.picker__grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px 8px;gap:16px 8px;justify-items:center;margin-bottom:22px}.picker__grid button{border-radius:50%;padding:0}.grocery-add{display:flex;gap:10px;align-items:center}.grocery-add .field{flex:1 1}.rating-input{display:flex;gap:4px}.rating-input button{width:44px;height:44px;font-size:1.6rem;color:var(--text-primary);line-height:1}.photo-input{display:flex;align-items:center;gap:12px}.photo-input img{width:72px;height:72px;border-radius:var(--radius-field);object-fit:cover}.photo-adjuster{margin-bottom:12px}.photo-adjuster__stage{display:grid;place-items:center;height:268px;border-radius:var(--radius-group);cursor:-webkit-grab;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.photo-adjuster__stage:active{cursor:-webkit-grabbing;cursor:grabbing}.photo-adjuster__hint{margin-top:8px}.photo-adjuster__controls{display:flex;align-items:center;gap:12px;margin-top:6px}.photo-adjuster__zoom{flex:1 1;display:flex;align-items:center;gap:12px;min-height:44px;font-size:var(--text-caption);font-weight:600;color:var(--text-secondary)}.photo-adjuster__zoom input{flex:1 1;accent-color:var(--accent)}.backup{padding:14px 16px 16px}.backup__body{margin:0 0 12px;font-size:var(--text-para);color:var(--text-secondary)}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:var(--status-bar) var(--gutter) 40px}.wordmark{font-family:var(--font-en);font-weight:700;font-size:2.6rem;letter-spacing:-.03em;color:var(--text-primary);margin:0}.error-text{font-size:var(--text-caption);color:var(--accent);margin:8px 0 0}.specimen{padding:calc(var(--status-bar) + 12px) 12px 40px}.specimen__grid{display:grid;grid-template-columns:1fr;grid-gap:18px;gap:18px}.specimen__cell{margin:0}.specimen__cloth{display:grid;place-items:center;height:210px}.specimen figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px 0}.specimen__name{font-weight:600;color:var(--text-primary)}.specimen__sizes{display:flex;align-items:center;gap:14px}@media (min-width:700px){.app:has(.specimen){max-width:1100px}.specimen__grid{grid-template-columns:repeat(3,1fr)}}.backup__import{margin-top:6px}.import__intro{margin:0;font-size:var(--text-para)}.import__format{padding:4px 16px 14px;font-size:var(--text-para)}.import__format summary{min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--text-primary);cursor:pointer}.import__format ul{margin:4px 0 12px;padding-left:18px;color:var(--text-body)}.import__format li+li{margin-top:6px}.import__sample{margin:0 0 12px;padding:12px 14px;border-radius:var(--radius-field);background:var(--surface-sunken);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8125rem;line-height:1.55;white-space:pre-wrap;color:var(--text-body)}.import__row{align-items:flex-start}.import__row--skip .row__sub,.import__row--skip .row__title{color:var(--text-tertiary)}.import__warning{color:var(--accent)}.import__badge{flex:none;margin-top:2px;padding:2px 8px;border-radius:var(--radius-chip);background:var(--surface-sunken);font-size:var(--text-caption);color:var(--text-secondary)}