.activity{display:grid;gap:12px}.act-scopes,.act-filters,.act-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.act-filters input{min-height:34px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font:inherit;font-size:.86rem}.act-filters input[type=search]{min-width:180px}.act-table{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}.act-item+.act-item,.act-group+.act-group,.act-item+.act-group,.act-group+.act-item{border-top:1px solid var(--line)}.act-row{display:grid;grid-template-columns:44px minmax(90px,160px) minmax(118px,176px) minmax(120px,220px) minmax(0,1fr) 32px;gap:12px;align-items:center;padding:9px 14px;font-size:.84rem}.act-time{color:var(--ink-4);font-variant-numeric:tabular-nums}.act-who,.act-summary{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.act-thing{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.act-thing.link{background:none;border:0;padding:0;font:inherit;font-weight:600;cursor:pointer}.act-thing.link:hover{text-decoration:underline}.act-pill{justify-self:start;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink-2);font-size:.74rem;font-weight:600;white-space:nowrap}.act-pill.ai{background:color-mix(in srgb,var(--accent, var(--ink)) 14%,transparent)}.act-pill.danger{background:color-mix(in srgb,#c0392b 16%,transparent);color:#c0392b}.act-more{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink-3);cursor:pointer}.act-nest{background:color-mix(in srgb,var(--ink) 3%,transparent);border-top:1px solid var(--line)}.act-diff{display:grid;gap:4px;padding:6px 14px 12px 70px;font-size:.8rem;font-variant-numeric:tabular-nums}.act-diff-row{display:grid;grid-template-columns:minmax(80px,140px) minmax(0,1fr) 18px minmax(0,1fr);gap:10px;align-items:baseline}.act-key{color:var(--ink-4);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.74rem;overflow-wrap:anywhere}.act-old{color:var(--ink-3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink) 30%,transparent);overflow-wrap:anywhere}.act-new{color:var(--ink);overflow-wrap:anywhere}.act-arrow{color:var(--ink-4)}.act-empty{padding:28px;text-align:center;color:var(--ink-4)}@media(max-width:720px){.act-row{grid-template-columns:auto minmax(0,1fr) 32px;grid-template-areas:"time who more" "pill pill pill" "name name name" "sum sum sum";gap:6px 10px;padding:12px 14px}.act-time,.act-who{display:inline}.act-time{grid-area:time}.act-who{grid-area:who;min-width:0}.act-more{grid-area:more}.act-pill{grid-area:pill}.act-thing{grid-area:name;white-space:normal;overflow-wrap:anywhere}.act-summary{grid-area:sum;white-space:normal;overflow:visible;overflow-wrap:anywhere}.act-summary:empty{display:none}.act-diff{padding-left:14px}.act-diff-row{grid-template-columns:1fr;gap:0}.act-arrow{display:none}}.kp{position:relative;display:grid;gap:12px;padding-bottom:80px}.kp-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.kp-search{flex:1 1 220px;max-width:340px;padding:9px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);font:inherit;color:var(--ink)}.kp-chips{display:flex;flex-wrap:wrap;gap:6px}.kp-chip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer;transition:background .25s var(--ease-spring),color .25s}.kp-chip b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-3)}.kp-chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}.kp-chip.on b{color:var(--card-2)}.kp-scroll{overflow:auto;max-height:calc(100vh - 190px);border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.kp-table{border-collapse:collapse;width:100%;min-width:1120px;table-layout:fixed;font-size:13px}.kp-table col.c-sel{width:36px}.kp-table col.c-pic{width:52px}.kp-table col.c-used{width:64px}.kp-table col.c-fam{width:150px}.kp-table col.c-unit{width:72px}.kp-table col.c-basis{width:84px}.kp-table col.c-macro{width:78px}.kp-table col.c-gpu{width:60px}.kp-table col.c-ver{width:56px}.kp-table td{overflow:hidden;text-overflow:ellipsis}.kp-table td.kp-used,.kp-table td.kp-fam,.kp-table td[colspan]{overflow:visible}.kp-family.empty td{opacity:.55}.kp-famdel{padding:2px 10px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}.kp-famdel:hover{border-color:#c83c32;color:#c83c32}.kp-table th{position:sticky;top:0;z-index:2;background:var(--card-2);text-align:left;font-weight:500;font-size:11px;color:var(--ink-3);padding:8px 6px;border-bottom:1px solid var(--line)}.kp-table td{padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.kp-table .num{text-align:right}.kp-row:hover{background:var(--card-2)}.kp-row.sel{background:var(--gold-soft)}.kp-family td{background:var(--paper-2)}.kp-family.orphan td{background:var(--gold-soft)}.kp-fhead{display:flex;gap:10px;align-items:center;width:100%;background:none;border:0;font:inherit;color:var(--ink);cursor:pointer;padding:4px 0;text-align:left}.kp-fhead:disabled{cursor:default}.kp-caret{display:inline-flex}.kp-fname{font-weight:600}.kp-fmeta{color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums}.kp-status{margin-left:auto;display:inline-flex;gap:4px;align-items:center;font-size:11px;padding:2px 8px;border-radius:999px}.kp-status.ok{background:var(--moss-soft);color:var(--moss-ink)}.kp-status.warn{background:var(--gold-soft);color:var(--gold)}.kp-thumb{width:32px;height:32px;border-radius:8px;object-fit:cover;display:block}.kp-nopic{width:32px;height:32px;border-radius:8px;border:1.5px dashed var(--gold);background:none;color:var(--gold);display:grid;place-items:center;cursor:pointer}.kp-cell{width:100%;min-width:0;padding:5px 6px;border:1px solid transparent;border-radius:6px;background:transparent;font:inherit;color:var(--ink);transition:background .6s ease,border-color .2s}.kp-cell.num{text-align:right;width:64px;font-variant-numeric:tabular-nums}.kp-cell:hover{border-color:var(--line-strong)}.kp-cell:focus{outline:none;border-color:var(--accent);background:var(--card)}.kp-cell.empty{border:1px dashed var(--gold)}.kp-cell.flash{background:var(--moss-soft);border-color:var(--moss)}.kp-name{min-width:180px}.kp-pill{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--paper-2);font-size:12px;white-space:nowrap}.kp-pill.assign{background:none;border:1.5px dashed var(--gold);color:var(--gold);cursor:pointer;font:inherit;font-size:12px}.kp-unit,.kp-basis,.kp-gpu{color:var(--ink-3);white-space:nowrap}.kp-gpu{text-align:right;font-variant-numeric:tabular-nums}.kp-used{position:relative;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:56px}.kp-usedn{min-width:28px;padding:2px 8px;border:0;border-radius:999px;background:var(--paper-2);color:var(--ink);font:inherit;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}.kp-usedn.zero{background:none;color:var(--ink-4);font-weight:400;cursor:default}.kp-sort{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.kp-sort.on{color:var(--ink);font-weight:600}.kp-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:10;width:240px;max-width:calc(100vw - 32px);max-height:260px;overflow:auto;display:grid;gap:2px;padding:8px;text-align:left;white-space:normal;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:0 12px 32px #1c1b1829;font-weight:400}.kp-pop-row{display:flex;justify-content:space-between;gap:10px;padding:4px 6px;font-size:12px;color:var(--ink)}.kp-pop-row i{font-style:normal;color:var(--ink-3)}.kp-more{margin:4px 0;padding:4px 14px;border-radius:999px;border:1px dashed var(--line-strong);background:none;cursor:pointer;color:var(--ink-3)}.kp-none{text-align:center;color:var(--ink-4);padding:32px}.kp-anchor{position:relative;display:inline-flex;gap:8px;align-items:center}.kp-picker{position:absolute;left:0;bottom:calc(100% + 6px);z-index:10;min-width:200px;display:grid;gap:4px;padding:8px;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:0 12px 32px #1c1b1829}.kp-row .kp-picker,.kp-table .kp-picker{bottom:auto;top:calc(100% + 6px)}.kp-picker input{padding:7px 10px;border:1px solid var(--line-strong);border-radius:8px;font:inherit}.kp-pick{text-align:left;padding:6px 10px;border:0;border-radius:8px;background:none;font:inherit;cursor:pointer;color:var(--ink)}.kp-pick:hover{background:var(--paper-2)}.kp-new{color:var(--moss-ink)}.kp-actions{position:fixed;left:50%;bottom:calc(var(--tabbar-h, 66px) + env(safe-area-inset-bottom,0px) + 14px);z-index:60;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;align-items:center;max-width:calc(100vw - 24px);padding:8px 10px;background:var(--ink);color:var(--card);border-radius:24px;box-shadow:0 16px 40px #1c1b184d}.kp-actions button{padding:7px 14px;border:0;border-radius:999px;background:#ffffff1f;color:inherit;font:inherit;font-size:13px;cursor:pointer}.kp-actions .kp-picker{max-width:calc(100vw - 40px);color:var(--ink);bottom:calc(100% + 14px)}.kp-actions .kp-picker button{background:none}.kp-count{min-width:26px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.kp-units{display:inline-flex;gap:6px;align-items:center;padding:3px 8px;border-radius:999px;border:1px solid var(--line-strong);background:none;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}.kp-units b{font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}.kp-units.missing{border:1.5px dashed var(--gold);color:var(--gold)}.kp-unitsrow td{background:var(--paper-2)}.ku{display:grid;gap:6px;padding:6px 4px;font-size:13px}.ku-default{display:flex;flex-wrap:nowrap;white-space:nowrap;gap:8px;align-items:center;color:var(--ink-3)}.ku-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.ku-row,.ku-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ku input.ku-in,.ku select.ku-in{width:auto!important;min-width:0;padding:4px 8px!important;border-radius:8px;font-size:13px}.ku select.ku-in{padding-right:28px!important}.ku input.ku-in.num{width:76px!important;text-align:right}.ku-unit{min-width:64px;color:var(--ink-2);white-space:nowrap}.ku-g{color:var(--ink-3)}.ku-badge{padding:1px 8px;border-radius:999px;font-size:11px}.ku-badge.ai{border:1.5px dashed var(--gold);color:var(--gold);background:var(--gold-soft)}.ku-badge.ok{background:var(--moss-soft);color:var(--moss-ink)}.ku-btn{display:inline-flex;gap:4px;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer}.ku-note{margin:0;color:var(--ink-3);font-size:12px}.ku-error{margin:0;color:var(--gold);font-size:12px}.kp-actions.confirming{flex-wrap:nowrap;align-items:center;justify-content:flex-start}.kp-actions.confirming .kp-confirm{flex:1 1 auto;min-width:0}.kp-actions.confirming .kp-x{flex:none;margin-left:auto}.kp-into{position:relative}.kp-into-box{position:relative;display:inline-flex}.kp-into-box input{padding:6px 10px;border:0;border-radius:8px;font:inherit;color:var(--ink);min-width:200px}.kp-into-list{position:absolute;left:0;bottom:calc(100% + 8px);min-width:260px;max-width:calc(100vw - 40px);display:grid;gap:2px;padding:6px;background:var(--card);border-radius:var(--r-sm);box-shadow:0 12px 32px #1c1b1833}.kp-into-list:empty{display:none}.kp-actions .kp-into-list button{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;border-radius:8px;background:none;color:var(--ink);text-align:left}.kp-actions .kp-into-list button:hover{background:var(--paper-2)}.kp-into-list i{font-style:normal;color:var(--ink-3)}.kp-actions .kp-danger{background:#c83c32d9}.kp-confirm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}.kp-confirm select{padding:5px 8px;border-radius:8px;border:0;font:inherit;color:var(--ink);max-width:200px}.kp-confirm .kp-go{background:var(--card);color:var(--ink);font-weight:600}.kp-nopic-wrap{display:inline-flex;align-items:center;gap:2px}.kp-upload{border:0;background:none;color:var(--ink-4);padding:2px;cursor:pointer;display:grid;place-items:center}.kp-upload:hover{color:var(--ink)}.kp-nopic .spin{animation:kp-spin .8s linear infinite}@keyframes kp-spin{to{transform:rotate(360deg)}}.kp-short{display:none}@media(max-width:760px){.kp-actions{flex-wrap:nowrap;gap:4px;padding:6px 8px;width:max-content;white-space:nowrap}.kp-actions.confirming{flex-wrap:wrap;white-space:normal;width:calc(100vw - 24px);align-items:flex-start}.kp-table td.kp-name,.kp-table th:nth-child(3){position:sticky;left:0;z-index:1;background:var(--card);box-shadow:1px 0 0 var(--line)}.kp-table th:nth-child(3){z-index:3;background:var(--card-2)}.kp-row.sel td.kp-name{background:var(--gold-soft)}.kp-actions button{padding:7px 10px;font-size:12px}.kp-long{display:none}.kp-short{display:inline}}.kph{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr) minmax(280px,360px);gap:20px;align-items:start}.kph-skel{height:320px;border-radius:16px;background:var(--paper-2);grid-column:1 / -1;animation:kph-pulse 1.4s ease-in-out infinite}@keyframes kph-pulse{50%{opacity:.5}}.kph-settings,.kph-list{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.kph-field{display:grid;gap:6px}.kph-field>span{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}.kph select,.kph-plain,.kph-editor textarea{width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-size:.86rem}.kph select:focus,.kph-plain:focus,.kph-editor textarea:focus{outline:none;border-color:var(--accent)}.kph-editor{position:relative;border-radius:10px}.kph-editor textarea,.kph-back{font:inherit;font-size:.84rem;line-height:1.5;padding:8px 10px;min-height:220px;margin:0;border:1px solid var(--line-strong);border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere;box-sizing:border-box}.kph-editor textarea{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;color:transparent;caret-color:var(--ink);resize:none;height:100%;overflow:hidden}.kph-back{position:relative;color:var(--ink);pointer-events:none;border-color:transparent}.kph-back mark{background:var(--gold-soft);color:var(--gold);border-radius:4px;box-shadow:0 0 0 1px var(--gold-soft)}.kph-editor.bad textarea{border-color:var(--danger)}.kph-plain{resize:vertical;line-height:1.45}.kph-actions{display:flex;gap:8px}.kph-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font:inherit;font-weight:600;font-size:.84rem;cursor:pointer}.kph-btn.primary{background:var(--ink);color:var(--card);border-color:var(--ink)}.kph-btn.sm{min-height:28px;padding:4px 11px;font-size:.78rem}.kph-btn:disabled{opacity:.4;cursor:default}.kph-preview{display:grid;gap:14px}.kph-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.kph-card{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.kph-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kph-shot{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--paper-2);display:grid;place-items:center}.kph-shot img{width:100%;height:100%;object-fit:cover;display:block}.kph-shot.busy{animation:kph-pulse 1.1s ease-in-out infinite}.kph-err{padding:8px;font-size:.72rem;color:var(--danger);overflow:hidden}.kph-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.kph-grow{flex:1}.kph-run{display:grid;gap:6px}.kph-run small{color:var(--ink-3);font-variant-numeric:tabular-nums}.kph-fail{color:var(--danger)!important}.kph-bar{height:4px;border-radius:4px;background:var(--paper-2);overflow:hidden}.kph-bar i{display:block;height:100%;width:0;background:var(--moss);border-radius:4px}.kph-rows{display:grid;gap:2px;max-height:620px;overflow:auto}.kph-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:10px}.kph-row:hover{background:var(--card-2)}.kph-thumb{width:34px;height:34px;border-radius:8px;object-fit:cover;flex:none}.kph-thumb.none{border:1.5px dashed var(--gold);box-sizing:border-box}.kph-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.kph-tag{font-style:normal;font-size:.68rem;color:var(--moss-ink);background:var(--moss-soft);padding:1px 8px;border-radius:999px}.spin{animation:kph-spin .8s linear infinite}@keyframes kph-spin{to{transform:rotate(360deg)}}@media(max-width:1100px){.kph{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.spin,.kph-shot.busy,.kph-skel{animation:none}}.kph-list,.kph-rows,.kph-settings,.kph-preview{grid-template-columns:minmax(0,1fr);min-width:0}.kph-list>*,.kph-row{min-width:0}.kr{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.kr button{font:inherit;color:inherit;cursor:pointer}.kr-input{font:inherit;font-size:.86rem;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);min-width:0;transition:border-color .2s var(--ease-spring),box-shadow .2s var(--ease-spring)}.kr-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.kr-input.sm{width:84px}.kr-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.kr-stack{display:grid;gap:18px}.kr-error{color:var(--danger);font-size:.82rem;margin:0 0 10px}.kr-note{color:var(--ink-3)}.kr-btn{padding:8px 16px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);font-weight:600;font-size:.84rem}.kr-btn.primary{background:var(--ink);color:var(--card);border-color:var(--ink)}.kr-btn.ghost{border-color:transparent;background:transparent}.kr-btn:disabled{opacity:.35;cursor:not-allowed}.kr-queue{position:sticky;top:12px;display:grid;gap:10px}.kr-video{display:grid;gap:6px}.kr-progress{height:3px;border-radius:3px;background:var(--paper-3);overflow:hidden}.kr-progress i{display:block;height:100%;width:40%;background:var(--accent);border-radius:3px;animation:kr-slide 1.1s var(--ease-spring) infinite alternate}@keyframes kr-slide{0%{transform:translate(-10%)}to{transform:translate(150%)}}.kr-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:70vh;overflow:auto}.kr-list>li{min-width:0}.kr-item{box-sizing:border-box;min-width:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border:1px solid transparent;border-radius:14px;background:transparent;text-align:left}.kr-item.on{background:var(--card);border-color:var(--line);box-shadow:var(--shadow-1)}.kr-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.kr-pill{flex:none;padding:2px 9px;border-radius:999px;font-size:.68rem;font-weight:700;background:var(--paper-2);color:var(--ink-3)}.kr-pill.s-mapped{background:var(--gold-soft);color:var(--gold)}.kr-pill.s-verified{background:var(--plum-soft);color:var(--plum)}.kr-pill.s-tagged{background:var(--accent-soft);color:var(--accent-ink)}.kr-pill.s-confirmed{background:var(--moss-soft);color:var(--moss-ink)}.kr-pane{min-width:0;display:grid;gap:18px}.kr-stops{display:flex;flex-wrap:wrap;align-items:center;gap:4px;border-bottom:1px solid var(--line)}.kr-stops button{position:relative;padding:10px 12px;background:none;border:0;color:var(--ink-3);font-size:.84rem}.kr-stops button b{font-weight:700;margin-right:4px}.kr-stops button.on{color:var(--ink)}.kr-stops button.done{color:var(--moss)}.kr-stop-bar{position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}.kr-stops .kr-pill{margin-left:auto}.kr-scroll{overflow-x:auto}.kr-table{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:.84rem}.kr-line td{padding:6px 8px;background:var(--card);vertical-align:middle;position:relative}.kr-line td:first-child{border-radius:12px 0 0 12px}.kr-line td:last-child{border-radius:0 12px 12px 0}.kr-line.issue td{background:var(--card-2)}.kr-line.flagged td{box-shadow:inset 0 -2px 0 var(--gold)}.kr-raw{max-width:220px}.kr-seg,.kr-roles,.kr-waive{display:inline-flex;padding:2px;border-radius:999px;background:var(--paper-2);gap:2px}.kr-seg button,.kr-roles button,.kr-waive button{border:0;background:none;padding:4px 10px;border-radius:999px;font-size:.74rem;color:var(--ink-3);transition:background .25s var(--ease-spring),color .25s var(--ease-spring)}.kr-seg button.on,.kr-roles button.on,.kr-waive button.on{background:var(--ink);color:var(--card)}.kr-roles button.taken{opacity:.4}.kr-qty{white-space:nowrap;min-width:168px}.kr-qty input.kr-input,.kr-qty select.kr-input{display:inline-block;box-sizing:border-box}.kr-qty input.kr-input{width:70px!important}.kr-qty select.kr-input{width:84px!important;margin-left:6px}.kr-rawtext{display:inline-flex;align-items:center;gap:4px}.kr-raw .kr-input{width:100%;box-sizing:border-box}.kr-taste{color:var(--ink-3);font-style:italic;margin-right:6px}.kr-mapbtn{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:.8rem;display:inline-flex;gap:6px;align-items:center}.kr-mapbtn.empty{border-style:dashed;color:var(--accent-ink)}.kr-conf{font-size:.68rem;color:var(--gold)}.kr-ai{display:inline-flex;gap:4px;margin-left:6px}.kr-mini{border:0;background:none;font-size:.72rem;color:var(--ink-3);text-decoration:underline}.kr-grams{color:var(--ink-3);white-space:nowrap}.kr-end{white-space:nowrap}.kr-icon{border:0;background:none;width:26px;height:26px;border-radius:50%;color:var(--ink-3)}.kr-icon.on{color:var(--gold)}.kr-mapper{position:absolute;z-index:20;top:100%;left:0;width:300px;padding:10px;display:grid;gap:8px;background:var(--card);border:1px solid var(--line-strong);border-radius:18px;box-shadow:var(--shadow-2, 0 12px 32px rgba(0,0,0,.14))}.kr-mapper-list{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto}.kr-mapper-opt{width:100%;display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border:0;background:none;border-radius:10px;text-align:left;font-size:.84rem}.kr-mapper-opt:hover{background:var(--paper-2)}.kr-mapper-opt.variant{padding-left:24px;color:var(--ink-2)}.kr-mapper-opt small{color:var(--ink-4)}.kr-missing{color:var(--danger);font-size:.72rem;font-style:normal}.kr-mapper-create{border:1px dashed var(--line-strong);background:none;border-radius:12px;padding:7px;font-size:.82rem}.kr-mapper-form{display:grid;gap:8px}.kr-mapper-macros{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.kr-mapper-macros label{display:grid;gap:2px;font-size:.66rem;color:var(--ink-3)}.kr-mapper-macros .kr-input{padding:6px 4px;width:100%}.kr-servings{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.kr-big{width:96px;font:500 3rem var(--font-display);border:0;background:none;color:var(--ink);text-align:center}.kr-chips{display:flex;flex-wrap:wrap;gap:6px}.kr-chip{padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:.8rem;transition:transform .25s var(--ease-spring),background .25s}.kr-chip:active{transform:scale(.95)}.kr-chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}.kr-chip.ai{border-style:dashed;border-color:var(--accent);color:var(--accent-ink);background:transparent}.kr-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.kr-tile{padding:14px 10px;border-radius:16px;background:var(--card);border:1px solid var(--line);display:grid;gap:2px;text-align:center}.kr-tile strong{font:500 1.5rem var(--font-display)}.kr-tile small{color:var(--ink-3);font-size:.7rem}.kr-track{position:relative;height:10px;border-radius:10px;background:var(--paper-2)}.kr-band.unset .kr-track{background:repeating-linear-gradient(90deg,var(--paper-3) 0 6px,transparent 6px 12px)}.kr-fill{position:absolute;top:0;bottom:0;border-radius:10px;background:var(--moss-soft);box-shadow:inset 0 0 0 1px var(--moss)}.kr-band.r-above .kr-needle,.kr-band.r-below .kr-needle{background:var(--danger)}.kr-needle{position:absolute;top:-5px;width:3px;height:20px;margin-left:-1.5px;border-radius:3px;background:var(--ink)}.kr-kcal{color:var(--ink-2);font-weight:600}.kr-contrib{list-style:none;margin:0;padding:0;display:grid;gap:6px}.kr-contrib li{display:grid;grid-template-columns:140px 1fr 80px;align-items:center;gap:10px;font-size:.82rem}.kr-contrib i{display:block;height:6px;border-radius:6px;background:var(--accent);transition:width .4s var(--ease-spring)}.kr-contrib b{text-align:right;font-weight:600}.kr-axis{display:grid;gap:6px}.kr-axis-name{font-size:.78rem;color:var(--ink-3)}.kr-axis-name b{color:var(--accent)}.kr-cover{position:relative;aspect-ratio:16 / 10;max-width:480px;border-radius:20px;background:var(--paper-2);border:1px dashed var(--line-strong);overflow:hidden;display:grid;place-items:center}.kr-cover img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.kr-cover .kr-btn{position:relative}.kr-prompt{width:100%;max-width:640px;resize:vertical}.kr-checks,.kr-blockers{list-style:none;margin:0;padding:0;display:grid;gap:6px}.kr-checks li{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line)}.kr-checks li span{flex:1;display:grid}.kr-checks li small{color:var(--ink-3)}.kr-checks li.ok i{color:var(--moss)}.kr-checks li.bad i{color:var(--danger)}.kr-jump{border:0;background:none;color:var(--accent-ink);font-weight:600}.kr-blockers{color:var(--danger);font-size:.82rem}.kr-back{display:none;justify-self:start;padding:6px 14px 6px 10px;border:0;background:var(--paper-2);border-radius:999px;font-size:.82rem;font-weight:600}.kr-back:before{content:"‹ "}.kr-range{display:inline-flex;align-items:center;gap:8px}.kr-unit-field{display:inline-flex;align-items:center;gap:5px}.kr-unit-field .kr-input{width:76px;box-sizing:border-box;text-align:right}.kr-unit-field small{color:var(--ink-3);font-size:.74rem}.kr-mapwrap{display:inline-block}.kr-mapper.floating{position:fixed;width:min(300px,calc(100vw - 16px));box-sizing:border-box}@media(max-width:820px){.kr{grid-template-columns:1fr}.kr-queue{position:static}.kr-list{max-height:none}.kr-item{padding:13px 14px}.kr:not(.detail-open) .kr-pane{display:none}.kr.detail-open .kr-queue{display:none}.kr-back{display:inline-block}.kr-tiles{grid-template-columns:repeat(3,1fr)}.kr-stops{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.kr-stops button{white-space:nowrap;padding:10px 8px;flex:0 0 auto}.kr-stops .kr-pill{flex:0 0 auto}.kr-scroll{overflow-x:visible}.kr-table,.kr-lines,.kr-lines tr,.kr-lines td{display:block}.kr-lines{display:grid;gap:8px}.kr-lines tr.kr-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:center;padding:12px;background:var(--card);border-radius:16px;border:1px solid var(--line)}.kr-line td,.kr-line.issue td{padding:0;background:none;border-radius:0;min-width:0;max-width:none}.kr-line.issue{background:var(--card-2)}.kr-line .kr-raw{grid-column:1;grid-row:1}.kr-line .kr-end{grid-column:2;grid-row:1;justify-self:end}.kr-line .kr-kind{grid-column:1 / -1;grid-row:2}.kr-line .kr-qty{grid-column:1 / -1;grid-row:3;min-width:0}.kr-line .kr-map{grid-column:1 / -1;grid-row:4}.kr-line .kr-grams{grid-column:1;grid-row:5;white-space:normal}.kr-line .kr-rolecell{grid-column:2;grid-row:5;justify-self:end}.kr-line .kr-mapbtn{max-width:100%}.kr-line .kr-rawtext{display:flex}.kr-contrib li{grid-template-columns:minmax(0,1fr) 60px 64px}}.kr-mapbtn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:5px 14px 5px 6px;border-radius:16px;text-align:left}.kr-mapbtn.empty{padding:5px 16px}.kr-thumb{flex:none;width:36px;height:36px;border-radius:10px;object-fit:cover;background:var(--paper-2);display:grid;place-items:center;font-family:var(--font-display, inherit);font-size:.95rem;color:var(--ink-3)}.kr-pilltext{display:grid;gap:1px;min-width:0;line-height:1.15}.kr-pilltext small{font-size:.68rem;color:var(--ink-3);text-transform:none;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kr-pilltext strong{font-size:.86rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kr-add{border-style:dashed;color:var(--ink-3);min-width:32px}.kr-add-box{position:relative;display:inline-flex}.kr-add-input{width:9rem;padding:5px 12px;border-radius:999px;font-size:.8rem}.kr-add-hits{position:absolute;top:calc(100% + 4px);left:0;z-index:5;display:flex;flex-wrap:wrap;gap:4px;max-width:16rem;padding:6px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 8px 24px #00000014}.kr-guess{position:relative;display:inline-block;margin-left:6px}.kr-guessbtn{width:20px;height:20px;padding:0;border-radius:50%;border:1.5px dashed var(--gold);background:var(--gold-soft);color:var(--gold);font-size:11px;line-height:1;cursor:pointer}.kr-guesspop{position:absolute;right:0;top:calc(100% + 6px);z-index:12;min-width:250px;padding:8px 10px;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:0 12px 32px #1c1b1829;white-space:normal}.kr-guesspop small{display:block;color:var(--ink-3);margin-bottom:2px}:root{color-scheme:light;--paper: #f5f0e7;--paper-2: #ece5d8;--paper-3: #e3dbcb;--card: #fffdf9;--card-2: #faf6ee;--ink: #1c1b18;--ink-2: #4b4740;--ink-3: #7c776d;--ink-4: #a8a297;--line: rgba(28, 27, 24, .09);--line-strong: rgba(28, 27, 24, .18);--accent: #c2481f;--accent-ink: #8f3313;--accent-soft: #f7e3d9;--moss: #2f6b4f;--moss-ink: #1f4d38;--moss-soft: #dfeee3;--gold: #b5831c;--gold-soft: #f7ebd0;--plum: #6b4f8f;--plum-soft: #ebe3f4;--danger: #b03a22;--danger-soft: #f8dcd5;--c-calories: #c2481f;--c-protein: #2f6b4f;--c-carbs: #b5831c;--c-fat: #b8506d;--c-fiber: #3b7f8a;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-alt: "Noto Sans Oriya", "Nirmala UI", "Kalinga", sans-serif;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 22px;--r-xl: 30px;--shadow-1: 0 1px 2px rgba(28, 27, 24, .05), 0 10px 30px -18px rgba(28, 27, 24, .25);--shadow-2: 0 2px 4px rgba(28, 27, 24, .05), 0 24px 48px -24px rgba(28, 27, 24, .35);--shadow-3: 0 30px 80px -20px rgba(28, 27, 24, .45);--ease-spring: linear(0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017, 1.077 20.4%, 1.121, 1.149 24.3%, 1.159, 1.163 27%, 1.154, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur: .22s;--topbar-h: 64px;--tabbar-h: 66px}@media(prefers-reduced-motion:reduce){:root{--ease-spring: ease-out;--dur: 1ms}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","tnum";background-image:radial-gradient(1200px 600px at 10% -10%,rgba(194,72,31,.06),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(47,107,79,.06),transparent 55%);background-attachment:fixed}body.cook-mode{background:#f7f2e8}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;color:var(--ink)}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:none;padding:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}ul,ol{margin:0;padding:0;list-style:none}::selection{background:var(--accent-soft);color:var(--accent-ink)}:focus-visible{outline:3px solid rgba(194,72,31,.35);outline-offset:2px;border-radius:6px}.display{font-family:var(--font-display);font-weight:500;font-variation-settings:"opsz" 144,"SOFT" 40;letter-spacing:-.025em;line-height:1.02;font-size:clamp(2rem,1.4rem + 2.4vw,3.4rem)}.display em{font-style:italic;font-weight:400;color:var(--accent)}.eyebrow{margin:0 0 6px;display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.eyebrow-moss{color:var(--moss)}.eyebrow-muted{color:var(--ink-3)}.lede{color:var(--ink-2);font-size:1.02rem;line-height:1.5;max-width:60ch}.hint{color:var(--ink-3);font-size:.82rem;line-height:1.45;display:inline-flex;align-items:center;gap:6px}.muted{color:var(--ink-3)}input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);padding:10px 12px;outline:none;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur)}input:hover,select:hover,textarea:hover{border-color:#1c1b184d}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #c2481f1f}textarea{min-height:72px;resize:vertical;line-height:1.5}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237c776d' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}input[type=range]{width:100%;accent-color:var(--moss)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--moss)}input::placeholder,textarea::placeholder{color:var(--ink-4)}.inline-input{border:0!important;background:transparent!important;padding:2px 4px!important;margin-left:-4px;border-radius:6px!important;box-shadow:none!important}.inline-input:hover,.inline-input:focus{background:#1c1b180d!important}.inline-input.title{font-family:var(--font-display);font-size:1.15rem;font-weight:500;letter-spacing:-.01em}.inline-input.muted{color:var(--ink-3);font-size:.85rem}body.shell{height:100%;overflow:hidden}html:has(body.shell){height:100%;overflow:hidden}.app{position:fixed;left:0;right:0;top:var(--vv-top, 0px);height:var(--vv-h, 100dvh);display:flex;flex-direction:column;overflow:hidden}.app>.topbar,.app>.cook-topbar,.app>.banner{flex:none}.app>main{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.main{width:100%;max-width:1480px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 24px}.page{display:grid;gap:26px;align-content:start}.page>*{min-width:0}.topbar{position:sticky;top:0;z-index:40;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;height:var(--topbar-h);padding:0 clamp(16px,3vw,40px);background:#f5f0e7d1;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-size:1.28rem;font-weight:500;letter-spacing:-.02em;color:var(--ink);width:max-content}.wordmark em{font-style:italic;color:var(--accent);font-weight:400}.wordmark svg{color:var(--accent)}.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:14px}.save-indicator{display:inline-flex;align-items:center;gap:7px;color:var(--ink-3);font-size:.78rem;font-weight:600}.save-indicator i{width:8px;height:8px;border-radius:50%;background:var(--moss);display:block}.save-indicator.saving i{background:var(--gold)}.save-indicator.error i{background:var(--danger)}.save-indicator.local i{background:var(--ink-4)}.banner{overflow:hidden;background:var(--gold-soft);color:#6a4c0c;border-bottom:1px solid rgba(181,131,28,.3)}.banner span{display:block;padding:10px clamp(16px,3vw,40px);font-size:.88rem}.banner button{position:absolute;right:16px;margin-top:-30px;font-weight:700;font-size:.8rem}.dock{flex:none;z-index:40;display:grid;justify-items:center;padding-bottom:env(safe-area-inset-bottom);background:#f5f0e78c;backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);border-top:1px solid rgba(255,255,255,.5);box-shadow:0 -1px 0 var(--line)}.tabbar{width:min(560px,100%);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:var(--tabbar-h);padding:6px 8px}.tab{display:grid;place-items:center;gap:3px;border-radius:14px;color:var(--ink-3);font-size:.68rem;font-weight:600;transition:color var(--dur),transform var(--dur) var(--ease-spring)}.tab.active{color:var(--accent)}.tab:active{transform:scale(.92)}.boot{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--ink-3);font-family:var(--font-display);font-size:1.1rem;font-style:italic}.boot-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:22px;background:var(--card);color:var(--accent);box-shadow:var(--shadow-2)}.subnav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}.page-header-copy{display:grid;gap:8px;max-width:760px}.page-header-copy .lede{margin-top:2px}.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.page-header.compact .display{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.2rem)}.section-title{display:grid;gap:3px;margin-bottom:14px}.section-title h2{font-family:var(--font-display);font-weight:500;font-size:1.5rem;letter-spacing:-.02em}.section-title p{color:var(--ink-3);font-size:.88rem}@media(max-width:900px){.topbar-right{gap:10px}.save-indicator span{display:none}input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea{font-size:max(16px,1em)!important}.page,.subnav{min-width:0}.subnav>*{max-width:100%;min-width:0}.segmented{width:100%;overflow-x:auto;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.segmented-item{flex:none}.display{font-size:clamp(1.5rem,1.1rem + 2.4vw,2.1rem)}.page-header .eyebrow{display:none}.page-header-copy{gap:6px}.main{padding-top:16px}.page{gap:20px}}@media(display-mode:standalone){.topbar,.cook-topbar{padding-top:calc(10px + env(safe-area-inset-top));height:auto}body{overscroll-behavior-y:none}a,button,.diary-card,.favourite{-webkit-touch-callout:none}}body.keyboard-open .tabbar{display:none}body.keyboard-open .topbar:after{content:var(--vv-debug, none);font:11px/1 monospace;color:var(--ink-3)}body.keyboard-open .dock{padding-bottom:0}.button,.icon-button,.back-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;border-radius:999px;background:var(--card);color:var(--ink);border:1px solid var(--line-strong);font-weight:600;font-size:.88rem;line-height:1;white-space:nowrap;transition:transform var(--dur) var(--ease-spring),background var(--dur),border-color var(--dur),box-shadow var(--dur),color var(--dur)}.button:hover:not(:disabled){border-color:var(--ink);box-shadow:var(--shadow-1)}.button.primary{background:var(--ink);color:var(--card);border-color:var(--ink)}.button.primary:hover:not(:disabled){background:#000}.button.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.button.ghost:hover:not(:disabled){background:#1c1b180f;border-color:transparent;box-shadow:none}.button.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.button.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.button.large{min-height:48px;padding:12px 20px;font-size:1rem}.icon-button{width:38px;height:38px;padding:0}.icon-button.subtle{border-color:transparent;background:transparent;color:var(--ink-3);width:32px;height:32px;min-height:32px}.icon-button.subtle:hover{background:#1c1b180f;color:var(--ink)}.text-button{color:var(--accent);font-weight:600;font-size:.84rem;padding:4px 2px;border-radius:6px}.text-button:hover{text-decoration:underline;text-underline-offset:3px}.text-button.danger{color:var(--danger)}.link-button{color:var(--ink);font-weight:600;text-align:left;border-bottom:1px dashed var(--line-strong);padding-bottom:1px}.link-button:hover{color:var(--accent);border-color:var(--accent)}.back-link{background:transparent;border-color:transparent;color:var(--ink-3);padding-left:4px;width:max-content}.back-link:hover{color:var(--ink)}.spacer{flex:1}.segmented{position:relative;display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:#1c1b180f}.segmented-item{position:relative;display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;color:var(--ink-2);font-size:.86rem;font-weight:600;transition:color var(--dur);white-space:nowrap}.segmented-item:hover,.segmented-item.active{color:var(--ink)}.segmented-label{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px}.segmented-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--card);box-shadow:0 1px 2px #1c1b181f,0 4px 12px -6px #1c1b184d}.segmented-sm .segmented-item{padding:6px 11px;font-size:.8rem}.chip-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip-divider{width:1px;height:22px;background:var(--line-strong);margin:0 4px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--card);border:1px solid var(--line-strong);color:var(--ink-2);font-size:.8rem;font-weight:600;line-height:1.2;transition:background var(--dur),color var(--dur),border-color var(--dur),transform var(--dur) var(--ease-spring)}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip small{color:var(--ink-4);font-weight:600;font-size:.72rem}.chip.active{background:var(--ink);color:var(--card);border-color:var(--ink)}.chip.active small{color:#fffdf9b3}.chip-moss.active{background:var(--moss);border-color:var(--moss)}.chip-accent{color:var(--accent-ink);background:var(--accent-soft);border-color:transparent}.chip-accent.active{background:var(--accent);color:#fff;border-color:var(--accent)}.chip-gold.active{background:var(--gold);border-color:var(--gold)}.chip .avatar{margin-left:-4px}.avatar{border-radius:50%;object-fit:cover;background:var(--paper-2);flex:0 0 auto}.avatar.ring{box-shadow:0 0 0 2px var(--card)}.avatar-stack{display:inline-flex;align-items:center}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--card);margin-right:calc(var(--avatar-size, 24px) * -.3)}.avatar-stack b{margin-left:4px;font-size:.7rem;color:var(--ink-3)}.switch{position:relative;display:inline-flex;align-items:center;padding:3px;border-radius:999px;background:var(--ink-4);transition:background var(--dur);flex:0 0 auto}.switch-md{width:48px;height:28px}.switch-sm{width:38px;height:22px}.switch-lg{width:64px;height:36px}.switch.on{background:var(--moss)}.switch-knob{display:grid;place-items:center;height:100%;aspect-ratio:1;border-radius:50%;background:#fff;color:var(--moss);box-shadow:0 2px 6px #0003;margin-left:0}.switch.on .switch-knob{margin-left:auto}.sheet-root{position:fixed;top:var(--vv-top, 0px);left:0;right:0;height:var(--vv-h, 100dvh);z-index:60;display:grid}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c1b1859;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet{position:relative;z-index:1;display:flex;flex-direction:column;background:var(--card);box-shadow:var(--shadow-3);overflow:hidden}.sheet-right .sheet{justify-self:end;width:min(520px,100%);height:100%;border-radius:var(--r-xl) 0 0 var(--r-xl)}.sheet-right .sheet.wide{width:min(640px,100%)}.sheet-bottom .sheet{align-self:end;width:100%;max-height:100%;border-radius:var(--r-xl) var(--r-xl) 0 0;padding-bottom:env(safe-area-inset-bottom)}.sheet-center{place-items:center;padding:20px}.sheet-center .sheet{width:min(560px,100%);max-height:100%;border-radius:var(--r-xl)}.sheet-grabber{width:40px;height:5px;margin:10px auto 0;border-radius:999px;background:var(--line-strong)}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 20px 8px}.sheet-head-copy{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;min-width:0}.sheet-eyebrow{color:var(--ink-3);font-size:.78rem;font-weight:600;white-space:nowrap}.sheet-title{font-family:var(--font-ui);font-weight:600;font-size:1.05rem;letter-spacing:-.01em;line-height:1.25;min-width:0}.sheet-title-sub{color:var(--ink-3);font-weight:500;font-size:.85rem;margin-left:4px}.sheet-head .icon-button{width:40px;height:40px;min-height:40px;flex:none}.sheet-body{flex:1;overflow-y:auto;padding:4px 24px 24px;overscroll-behavior:contain}.sheet-footer{display:flex;align-items:center;gap:8px;padding:14px 24px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card-2)}.toast-stack{position:fixed;left:50%;bottom:max(24px,calc(env(safe-area-inset-bottom) + 20px));z-index:70;display:grid;gap:8px;transform:translate(-50%);width:min(460px,calc(100% - 32px));pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-radius:var(--r-md);background:var(--ink);color:var(--card);font-size:.88rem;font-weight:500;box-shadow:var(--shadow-2);pointer-events:auto}.toast button{color:var(--gold-soft);font-weight:700;white-space:nowrap}.toast-success{background:var(--moss-ink)}.toast-error{background:var(--danger)}.toast-stack{bottom:calc(var(--dock-h, 72px) + 12px)}.disclosure{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.disclosure-head{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;text-align:left;font-weight:600;font-size:.9rem;color:var(--ink)}.disclosure-head small{margin-left:auto;color:var(--ink-4);font-weight:500;font-size:.75rem}.disclosure-head i{display:inline-flex;color:var(--ink-3)}.disclosure-body{overflow:hidden}.disclosure-inner{display:grid;gap:14px;padding:4px 16px 16px}.empty{display:grid;justify-items:center;gap:8px;padding:48px 20px;text-align:center;color:var(--ink-3);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.empty strong{color:var(--ink);font-family:var(--font-display);font-weight:500;font-size:1.3rem;letter-spacing:-.01em}.empty p{max-width:36ch;font-size:.9rem}.empty-art{width:72px;height:72px;color:var(--ink-4);margin-bottom:4px}.stepper{display:inline-grid;grid-template-columns:34px minmax(56px,1fr) auto 34px;align-items:center;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);overflow:hidden;height:38px}.stepper button{height:100%;font-size:1.15rem;font-weight:600;color:var(--ink-2)}.stepper button:hover{background:#1c1b180f;color:var(--ink)}.stepper input{border:0!important;border-radius:0!important;background:transparent!important;text-align:center;padding:0!important;font-weight:700;box-shadow:none!important;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.stepper span{color:var(--ink-4);font-size:.75rem;padding-right:4px}.ring{position:relative;display:inline-grid;place-items:center;flex:0 0 auto}.ring svg{position:absolute;top:0;right:0;bottom:0;left:0}.ring-moss{color:var(--moss)}.ring-accent{color:var(--accent)}.ring-gold{color:var(--gold)}.ring-ink{color:var(--ink)}.ring-label{position:relative;font-size:.66rem;font-weight:700;color:var(--ink)}.field{display:grid;gap:6px}.field-label{font-size:.78rem;font-weight:700;color:var(--ink-2);letter-spacing:.02em}.field-hint{color:var(--ink-3);font-size:.76rem;display:inline-flex;align-items:center;gap:5px}.field-error{color:var(--danger);font-size:.8rem;font-weight:600}.form-stack{display:grid;gap:16px}.form-stack.tight{gap:8px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card-2)}.toggle-row strong{display:block;font-size:.92rem}.toggle-row small{color:var(--ink-3);font-size:.78rem}.check-row{display:inline-flex;align-items:center;gap:10px;font-size:.88rem;color:var(--ink-2);font-weight:500;cursor:pointer}.notice-inline{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--r-md);background:var(--gold-soft);color:#6a4c0c;font-size:.86rem;font-weight:500}.search-bar{display:flex;align-items:center;gap:10px;padding:0 8px 0 16px;height:50px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-3);transition:border-color var(--dur),box-shadow var(--dur);flex:1;min-width:200px;cursor:text}.search-bar:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px #1c1b180f}.search-bar input{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;font-size:1rem}.search-bar.small{height:38px;padding-left:12px}.search-bar.small input{font-size:.88rem}.tag-editor{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card)}.tag-editor input{flex:1 1 140px;border:0!important;padding:4px!important;background:transparent!important;box-shadow:none!important}.tag-hints{display:flex;flex-wrap:wrap;gap:6px}.tag-hints button{padding:5px 10px;border-radius:999px;background:var(--paper-2);font-size:.78rem;font-weight:600;color:var(--ink-2)}.tag-hints button:hover{background:var(--ink);color:var(--card)}.sticky-save{position:sticky;bottom:20px;z-index:30;display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px 10px 10px 18px;border-radius:999px;background:var(--ink);color:var(--card);box-shadow:var(--shadow-2);width:max-content;max-width:100%}.sticky-save>span{font-size:.86rem;font-weight:600;margin-right:8px}.sticky-save .button.ghost{color:#fffdf9cc}.sticky-save .button.primary{background:var(--card);color:var(--ink);border-color:var(--card)}.sticky-save{bottom:calc(var(--dock-h, 72px) + 12px)}.macro-label{display:grid;gap:0;border-top:2px solid var(--ink)}.macro-label-title{padding:10px 0 6px;font-family:var(--font-display);font-weight:600;font-size:1.1rem}.macro-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.macro-row:last-child{border-bottom:2px solid var(--ink)}.macro-name{font-size:.82rem;font-weight:600;color:var(--ink-2)}.macro-value{font-family:var(--font-display);font-variant-numeric:tabular-nums}.macro-value strong{font-size:1.3rem;font-weight:500}.macro-value small{color:var(--ink-3);font-family:var(--font-ui);font-size:.75rem}.macro-bar{height:6px;border-radius:999px;background:#1c1b1812;overflow:hidden}.macro-bar.none{background:transparent}.macro-bar i{display:block;height:100%;border-radius:999px;background:var(--gold);transition:width .6s var(--ease-out)}.macro-bar i.on{background:var(--moss)}.macro-bar i.over{background:var(--accent)}.macro-calories .macro-name{color:var(--c-calories)}.macro-protein .macro-name{color:var(--c-protein)}.macro-carbs .macro-name{color:var(--c-carbs)}.macro-fat .macro-name{color:var(--c-fat)}.macro-fiber .macro-name{color:var(--c-fiber)}.macro-label.compact .macro-row{padding:5px 0}.macro-label.compact .macro-value strong{font-size:1.05rem}.macro-strip{display:flex;flex-wrap:wrap;gap:14px}.macro-strip span{display:grid}.macro-strip strong{font-family:var(--font-display);font-weight:500;font-size:1.1rem;line-height:1}.macro-strip small{color:var(--ink-3);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.macro-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.macro-edit{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.macro-edit-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.macro-edit-head strong{font-size:.78rem;color:var(--ink-2)}.macro-edit-head output{font-family:var(--font-display);font-size:1.15rem;font-weight:500}.macro-edit-head output small{color:var(--ink-3);font-family:var(--font-ui);font-size:.7rem}.macro-edit-number{padding:6px 8px!important;font-size:.85rem}.macro-edit.macro-calories input[type=range]{accent-color:var(--c-calories)}.macro-edit.macro-protein input[type=range]{accent-color:var(--c-protein)}.macro-edit.macro-carbs input[type=range]{accent-color:var(--c-carbs)}.macro-edit.macro-fat input[type=range]{accent-color:var(--c-fat)}.macro-edit.macro-fiber input[type=range]{accent-color:var(--c-fiber)}.recipe-image{display:block;width:100%;height:100%;overflow:hidden;background:var(--paper-2);position:relative;flex:0 0 auto}.recipe-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}.recipe-image img[data-yt]{transform:scale(1.36)}.recipe-image.placeholder{display:grid;place-items:center;color:#ffffffd9;font-family:var(--font-display);font-size:2.4rem;font-style:italic}.recipe-tile{display:grid;gap:10px;cursor:pointer;border-radius:var(--r-lg)}.recipe-tile-media{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--r-lg);background:var(--paper-2);box-shadow:var(--shadow-1)}.recipe-tile:hover .recipe-tile-media img{transform:scale(1.05)}.recipe-tile:hover .recipe-tile-media img[data-yt]{transform:scale(1.42)}.recipe-tile-badge{position:absolute;top:10px;left:10px;padding:4px 9px;border-radius:999px;background:#fffdf9eb;font-size:.7rem;font-weight:700}.recipe-tile-people{position:absolute;bottom:10px;right:10px;display:flex}.recipe-tile-people .avatar{margin-left:-6px}.recipe-tile-copy h3{font-family:var(--font-display);font-weight:500;font-size:1.12rem;letter-spacing:-.015em;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-tile-copy p{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px;color:var(--ink-3);font-size:.78rem;font-weight:500}.recipe-tile-copy p span:first-child{color:var(--moss);font-weight:600}.tile-lg .recipe-tile-media{aspect-ratio:16 / 10}.recipe-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--card);transition:border-color var(--dur),box-shadow var(--dur),background var(--dur)}.recipe-row.clickable{cursor:pointer}.recipe-row.clickable:hover{border-color:var(--ink-3);box-shadow:var(--shadow-1)}.recipe-row.clickable:active{transform:scale(.985)}.recipe-row.draggable{cursor:grab}.recipe-row.draggable:active{cursor:grabbing}.recipe-row.active{border-color:var(--moss);background:var(--moss-soft)}.recipe-row-image{width:56px;height:56px;border-radius:12px}.recipe-row.dense{grid-template-columns:44px minmax(0,1fr) auto;gap:10px;padding:6px}.recipe-row.dense .recipe-row-image{width:44px;height:44px;border-radius:10px}.recipe-row-copy{display:grid;gap:2px;min-width:0}.recipe-row-copy strong{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-row.dense .recipe-row-copy strong{font-size:.84rem}.recipe-row-copy small{color:var(--ink-3);font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-row-trailing{display:flex;align-items:center;gap:6px}.recipe-row-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.audio-button{display:inline-flex;align-items:center;gap:10px;border-radius:999px;font-weight:700;transition:transform var(--dur) var(--ease-spring),background var(--dur),color var(--dur)}.audio-button.recorded{background:var(--accent);color:#fff}.audio-button.spoken{background:var(--ink);color:var(--card)}.audio-button.playing{background:var(--moss);color:#fff}.audio-button:disabled{background:var(--paper-2);color:var(--ink-4)}.audio-sm{padding:7px 12px 7px 9px;font-size:.8rem}.audio-md{padding:10px 16px 10px 12px;font-size:.9rem}.audio-xl{padding:16px 24px 16px 18px;font-size:1.2rem;min-height:64px}.audio-icon{display:inline-flex;align-items:center;gap:6px}.audio-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.audio-bars b{width:3px;height:40%;border-radius:2px;background:currentColor;animation:bars .8s ease-in-out infinite}.audio-bars b:nth-child(2){animation-delay:.15s}.audio-bars b:nth-child(3){animation-delay:.3s}@keyframes bars{0%,to{height:30%}50%{height:100%}}.voice-recorder{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.record-button{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);font-weight:600;font-size:.86rem}.record-button.recording{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.record-dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff}.record-button.recording .record-dot{background:var(--danger);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #b03a2280}50%{box-shadow:0 0 0 8px #b03a2200}}.upload-button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);font-size:.86rem;font-weight:600;cursor:pointer;width:max-content}.upload-button:hover{border-color:var(--ink)}.upload-button input{display:none}.picker{display:grid;gap:12px}.picker-search{display:flex;align-items:center;gap:10px;padding:0 6px 0 14px;height:48px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card-2);color:var(--ink-3)}.picker-search:focus-within{border-color:var(--ink)}.picker-search input{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;font-size:1rem}.picker-shuffle{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--card)}.picker-scopes{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.picker-target{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--gold);font-size:.74rem;font-weight:700}.picker-list{display:grid;gap:6px}.picker-flags{display:inline-flex;align-items:center;gap:6px;padding-right:6px}.flag{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;font-size:.7rem}.flag-rotation{background:var(--gold-soft);color:var(--gold)}.fit-great{width:10px;height:10px;background:var(--moss)}.fit-okay{width:10px;height:10px;background:var(--gold)}.fit-off{width:10px;height:10px;background:var(--paper-3)}.date-scroller{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}.date-scroller::-webkit-scrollbar{display:none}.date-pill{position:relative;display:grid;justify-items:center;gap:2px;min-width:58px;padding:8px 6px;border-radius:14px;color:var(--ink-2);flex:0 0 auto}.date-pill small{position:relative;z-index:1;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.date-pill strong{position:relative;z-index:1;font-family:var(--font-display);font-weight:500;font-size:1.2rem}.date-pill.active{color:var(--card)}.date-pill-bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;background:var(--ink)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-4);flex:0 0 auto}.status-dot.verified{background:var(--moss)}.status-dot.manual{background:var(--gold)}.status-text.verified{color:var(--moss)}.status-text.manual{color:var(--gold)}.recipe-tile-copy p span.pending{color:var(--ink-4);font-style:italic;font-weight:500}.alt-name{display:block;font-family:var(--font-alt);color:var(--ink-3);line-height:1.5;font-weight:500}.alt-sm{font-size:.8rem}.alt-md{font-size:.92rem}.alt-lg{font-size:1.15rem;color:var(--ink-2)}.alt-xl{font-size:1.6rem;color:var(--ink-2);font-weight:600}.alt-name.unverified{color:var(--ink-4)}.alt-name.unverified:after{content:"";display:inline-block;width:5px;height:5px;margin-left:6px;vertical-align:middle;border-radius:999px;background:var(--gold)}.alt-editor{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;max-width:560px}.alt-editor .field{flex:1;min-width:220px}.alt-input{width:100%;min-height:46px;padding:10px 14px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--card);font-family:var(--font-alt);font-size:1.05rem}.signin{min-height:100dvh;display:grid;place-items:center;padding:24px}.signin-card{display:grid;justify-items:center;gap:14px;max-width:420px;text-align:center;padding:40px 32px;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow-2)}.signin-mark{display:grid;place-items:center;width:66px;height:66px;border-radius:22px;background:var(--accent);color:var(--paper)}.signin-card .display{font-size:2rem}.signin-card .lede{font-size:.98rem}.signin-google{margin-top:6px;gap:10px;padding:12px 20px;font-size:.95rem}.signin-card .hint{color:var(--ink-3);font-size:.78rem;display:block}.signin-card .hint a{text-decoration:underline}.signin-error{color:var(--danger);font-size:.85rem}.signin-note{max-width:34ch;padding:10px 14px;border-radius:var(--r-md);background:var(--gold-soft);color:#6a4c0c;font-size:.84rem;line-height:1.45}.account{position:relative}.account-button{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;overflow:hidden;border:1px solid var(--line-strong);background:var(--card);transition:border-color var(--dur)}.account-button:hover{border-color:var(--ink)}.account-button img{width:100%;height:100%;object-fit:cover}.account-initial{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--ink)}.account-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:232px;display:grid;padding:6px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow-2)}.account-who{display:grid;gap:1px;padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.account-who strong{font-size:.9rem}.account-who small{color:var(--ink-3);font-size:.76rem;overflow:hidden;text-overflow:ellipsis}.account-house{color:var(--ink-2)!important;text-transform:capitalize}.account-dev{color:var(--accent)!important;font-weight:600}.account-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border-radius:10px;text-align:left;font-size:.86rem;font-weight:600;color:var(--ink-2);transition:background var(--dur),color var(--dur)}.account-item:hover{background:var(--paper-2);color:var(--ink)}@media(max-width:900px){.account-menu{right:0;min-width:210px}}.signin-or{position:relative;width:100%;margin:2px 0;text-align:center}.signin-or:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--line)}.signin-or span{position:relative;padding:0 12px;background:var(--card);color:var(--ink-4);font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.signin-email{display:grid;gap:9px;width:100%}.signin-email input{width:100%;padding:11px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper);font-size:.95rem;text-align:center}.signin-email input:focus{outline:none;border-color:var(--ink)}.signin-email .button{width:100%;justify-content:center}.signin-code{font-family:var(--font-display);font-size:1.5rem!important;font-weight:600;letter-spacing:.35em;text-indent:.35em;font-variant-numeric:tabular-nums}.signin-back{color:var(--ink-3);font-size:.78rem;font-weight:600;text-decoration:underline}.signin-back:hover{color:var(--ink)}.person-switcher{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#1c1b180f}.person-switch{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;opacity:.55;transition:opacity var(--dur),background var(--dur)}.person-switch.active{opacity:1;background:var(--card);box-shadow:var(--shadow-1)}.account-item{min-height:44px}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.page-actions .button{min-height:44px}.account{display:inline-flex;align-items:center;gap:4px}.menu-button{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;color:var(--ink-2)}.menu-button:hover,.menu-button[aria-expanded=true]{background:var(--paper-2);color:var(--ink)}.week-nav{display:flex;align-items:center;gap:6px}.week-nav-label{display:inline-grid;min-width:150px;text-align:center;overflow:hidden}.week-nav-label strong{font-family:var(--font-display);font-weight:500;font-size:1.05rem;letter-spacing:-.01em}.people-summary{display:flex;flex-wrap:wrap;gap:10px}.person-summary{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:999px;background:var(--card);border:1px solid var(--line)}.person-summary strong{display:block;font-size:.9rem}.person-summary small{color:var(--ink-3);font-size:.76rem}.subnav{flex-wrap:nowrap}.plan-tabs{display:flex;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}.plan-tabs::-webkit-scrollbar{display:none}.plan-tab{flex:none;min-height:44px;padding:0 12px;border-radius:999px;background:var(--paper);color:var(--ink-3);font-size:.9rem;font-weight:700;white-space:nowrap;transition:background var(--dur),color var(--dur)}.plan-tab:hover{color:var(--ink)}.plan-tab.active{background:var(--ink);color:var(--card)}.plan-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.plan-overflow{position:relative;flex:none}.plan-overflow-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:grid;min-width:200px;padding:6px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-2)}.plan-overflow-menu button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:var(--r-md);font-size:.86rem;font-weight:600;text-align:left;color:var(--ink-2)}.plan-overflow-menu button:hover{background:var(--paper);color:var(--ink)}.plan-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:6px 14px;border-radius:var(--r-md);background:var(--gold-soft);color:#6a4c0c;font-size:.8rem;font-weight:600}.cook-send-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r-lg);background:var(--ink);color:var(--card)}.cook-send-card>div:first-child{flex:1;min-width:0;display:grid;gap:2px}.cook-send-card strong{font-size:.92rem}.cook-send-card span{font-size:.78rem;opacity:.82}.cook-send-card .button{min-height:44px;background:#ffffff29;color:var(--card);border-color:transparent}.cook-send-card .button:hover{background:#ffffff42}.week-board{display:grid;gap:22px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(215px,1fr));gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 12px;margin:0 -2px}.week-grid::-webkit-scrollbar{height:8px}.week-grid::-webkit-scrollbar-thumb{background:var(--paper-3);border-radius:999px}.day-column{display:flex;flex-direction:column;min-width:0;scroll-snap-align:start;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow var(--dur),transform var(--dur) var(--ease-spring)}.day-column.today{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-1)}.day-column.past{opacity:.72}.day-column.past:hover{opacity:1}.day-column.all-out{background:repeating-linear-gradient(-45deg,var(--card),var(--card) 10px,var(--card-2) 10px,var(--card-2) 20px)}.day-column.expanded{box-shadow:var(--shadow-2)}.day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:14px 14px 10px;border-bottom:1px solid var(--line)}.day-date{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:8px;align-items:baseline}.day-weekday{grid-column:1 / -1;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.day-column.today .day-weekday{color:var(--accent)}.day-number{font-family:var(--font-display);font-weight:500;font-size:2.2rem;line-height:.95;letter-spacing:-.03em}.day-month{font-family:var(--font-display);font-style:italic;color:var(--ink-3);font-size:1rem}.day-meta{display:grid;justify-items:end;gap:8px}.day-person-macros{display:grid;justify-items:end;gap:2px}.day-person-macro{font-size:.74rem;font-weight:700;color:var(--ink-2);white-space:nowrap}.day-person-macro b{color:var(--ink-4);font-weight:800;margin-right:2px}.day-person-macro small{color:var(--ink-4);font-weight:500}.day-out{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);font-size:.72rem;font-weight:700;color:var(--ink-3);transition:all var(--dur)}.day-out:hover{border-color:var(--accent);color:var(--accent)}.day-out.active{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink, var(--accent))}.day-slots{display:grid;align-content:start}.slot-block{padding:10px 12px 12px;border-bottom:1px solid var(--line);transition:background var(--dur)}.slot-block:last-child{border-bottom:0}.slot-block.off{background:var(--card-2)}.slot-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.slot-title{display:grid;text-align:left;min-width:0;border-radius:6px}.slot-title strong{font-size:.8rem;font-weight:700;letter-spacing:.02em}.slot-title small{color:var(--ink-4);font-size:.68rem}.slot-title:hover strong{color:var(--accent)}.slot-tools{display:inline-flex;align-items:center;gap:6px}.slot-switch{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 12px;border-radius:999px;background:transparent;border:1px solid transparent;color:var(--ink-4);font-size:.68rem;font-weight:700;transition:background var(--dur),color var(--dur),border-color var(--dur)}.slot-switch:hover{color:var(--ink-2)}.slot-switch.out{background:var(--gold-soft);color:#6a4c0c}.slot-note{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.slot-out{font-family:var(--font-display);font-style:italic;color:var(--ink-3);font-size:.92rem;overflow:hidden}.slot-rows{display:grid;gap:6px}.slot-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px}.slot-row.not-eating{opacity:.55}.slot-avatars{display:flex;flex:none}.slot-avatars .avatar:not(:first-child){margin-left:-8px}.slot-row-body{display:grid;gap:3px;min-width:0}.slot-dish-name{display:flex;align-items:center;gap:8px;min-width:0;min-height:32px;text-align:left;border-radius:var(--r-md);padding:2px 4px;margin:-2px -4px;transition:background var(--dur)}.slot-dish-name:hover{background:var(--paper)}.slot-dish-name span{font-size:.86rem;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meal-chip-image{width:28px;height:28px;border-radius:50%;flex:0 0 auto}.slot-ingredients{display:flex;flex-wrap:wrap;gap:4px}.slot-ingredient{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:var(--paper);color:var(--ink-3);font-size:.7rem;font-weight:600;transition:background var(--dur),color var(--dur)}.slot-ingredient:hover{background:var(--accent-soft);color:var(--accent)}.slot-row-empty{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:0 12px;border-radius:999px;background:var(--paper);border:1px solid transparent;text-align:left;color:var(--ink-2);font-size:.84rem;font-weight:600;transition:border-color var(--dur),background var(--dur)}.slot-row-empty:hover{border-color:var(--ink-3);background:var(--card)}.slot-row-empty.dashed{border:1px dashed var(--line-strong);background:transparent;color:var(--ink-3)}.slot-row-empty.dashed:hover{border-color:var(--accent);color:var(--accent)}.slot-row.guest .slot-row-empty{background:var(--plum-soft)}.shuffle{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;color:var(--ink-4);transition:background var(--dur),color var(--dur)}.shuffle:hover{background:var(--moss-soft);color:var(--moss)}.day-column.expanded .slot-block{padding:14px 18px 16px}.day-column.expanded .slot-title strong{font-size:.95rem}.day-column.expanded .slot-dish-name span{font-size:.98rem}.day-column.expanded .meal-chip-image{width:36px;height:36px}.day-column.expanded .day-number{font-size:3rem}.day-carousel{display:grid;gap:8px}.day-strip-row{display:flex;align-items:center;gap:4px}.strip-nav{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink-3)}.strip-nav:hover{background:var(--paper);color:var(--ink)}.strip-caption{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 4px;font-size:.76rem;font-weight:600;color:var(--ink-3)}.day-strip{flex:1;min-width:0;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:4px;border-radius:999px;background:#1c1b180f}.day-strip-item{position:relative;display:grid;justify-items:center;gap:0;padding:6px 2px;border-radius:999px;color:var(--ink-2)}.day-strip-item small{position:relative;z-index:1;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.day-strip-item strong{position:relative;z-index:1;font-family:var(--font-display);font-size:1.05rem;font-weight:500}.day-strip-item.today strong{color:var(--accent)}.day-strip-item.active,.day-strip-item.active strong{color:var(--card)}.day-strip-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--ink)}.day-carousel-stage{position:relative;overflow:hidden;margin:0 -4px;padding:4px}.day-carousel-item{touch-action:pan-y}.meal-sheet{display:grid;gap:18px}.meal-sheet-people{display:grid;gap:8px}.meal-sheet-person{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--card)}.meal-sheet-person.not-eating{opacity:.6}.meal-sheet-person.guest{background:var(--plum-soft);border-color:transparent}.meal-sheet-person-copy{display:grid;gap:2px;min-width:0}.meal-sheet-person-copy strong{font-size:.92rem}.meal-sheet-guests{display:flex;flex-wrap:wrap;gap:6px}.meal-sheet-voice{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.plan-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.plan-section-head h2{font-family:var(--font-display);font-weight:500;font-size:1.25rem}.plan-section-actions{display:flex;flex-wrap:wrap;gap:8px}.shopping{display:grid;gap:20px}.shopping-progress{position:relative;height:34px;border-radius:999px;background:var(--paper-2);overflow:hidden}.shopping-progress i{position:absolute;inset:0 auto 0 0;background:var(--moss-soft);transition:width .5s var(--ease-out)}.shopping-progress span{position:relative;display:flex;align-items:center;height:100%;padding:0 16px;font-size:.82rem;font-weight:700;color:var(--moss-ink)}.shopping-groups{columns:2;column-gap:20px}.shopping-group{break-inside:avoid;margin-bottom:20px;padding:14px 16px 8px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}.shopping-group h3{font-family:var(--font-display);font-weight:500;font-size:1.05rem;padding-bottom:8px;border-bottom:1px solid var(--line)}.shopping-line{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.shopping-line:last-child{border-bottom:0}.tick{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid var(--line-strong);color:#fff;transition:all var(--dur) var(--ease-spring)}.tick:hover{border-color:var(--moss)}.shopping-line.bought .tick{background:var(--moss);border-color:var(--moss)}.shopping-visual{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--paper);font-size:1.1rem;overflow:hidden}.shopping-visual img{width:100%;height:100%;object-fit:contain}.shopping-copy{display:grid;min-width:0}.shopping-copy strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--dur)}.shopping-copy small{color:var(--ink-4);font-size:.72rem}.shopping-qty{font-family:var(--font-display);font-weight:500;font-size:1rem;white-space:nowrap}.shopping-line.bought .shopping-copy strong{color:var(--ink-4);text-decoration:line-through}.shopping-line.bought .shopping-qty{color:var(--ink-4)}.shopping-qty.loose{color:var(--ink-4);font-style:italic;font-size:.85rem}.snacks{display:grid;gap:20px}.quick-add{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 16px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-3)}.quick-add:focus-within{border-color:var(--ink)}.quick-add input{border:0!important;background:transparent!important;padding:8px 0!important;box-shadow:none!important;font-size:1rem}.snack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.snack-card{display:grid;gap:10px;padding:14px 16px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-1)}.snack-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.snack-card-head .inline-input{flex:1;min-width:0}.snack-card-qty{display:grid;grid-template-columns:70px 90px 1fr;align-items:center;gap:8px}.snack-card-qty input{padding:6px 10px!important}.snack-visible{display:flex;align-items:center;justify-content:flex-end;gap:6px}.snack-visible small{color:var(--ink-3);font-size:.72rem}.day-dots{display:flex;gap:6px}.day-dot{width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);font-size:.72rem;font-weight:700;color:var(--ink-3);transition:all var(--dur)}.day-dot.on{background:var(--moss);border-color:var(--moss);color:#fff}.handoff{display:grid;gap:20px}.handoff-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:20px;align-items:start}.handoff-editor textarea{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86rem;line-height:1.55;padding:16px;border-radius:var(--r-lg)}.handoff-side{display:grid;gap:14px;padding:18px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}.handoff-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.handoff-stats div{display:grid;gap:2px}.handoff-stats strong{font-family:var(--font-display);font-weight:500;font-size:1.8rem;line-height:1}.handoff-stats span{color:var(--ink-3);font-size:.72rem}.handoff-actions{display:grid;gap:8px}.handoff-actions .button{justify-content:flex-start}.handoff-shared{display:flex;gap:8px;align-items:flex-start;color:var(--moss);font-size:.82rem;font-weight:500}.handoff-warning{display:flex;gap:8px;align-items:center;color:var(--accent);font-size:.82rem;font-weight:600}@media(max-width:900px){.week-nav-label{min-width:120px}.shopping-groups{columns:1}.handoff-grid{grid-template-columns:1fr}.page-header-actions{width:100%}.page-header-actions .button{flex:1}}.diary-page{padding-bottom:32px;max-width:760px;margin:0 auto}.diary-ribbon{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:6px;min-height:44px;margin:0 0 8px;padding:4px 0;background:var(--paper)}.diary-ribbon>.person-switcher{flex:0 0 auto}.diary-ribbon-date{display:flex;align-items:center;justify-content:center;gap:2px;flex:1 1 auto;min-width:0}.diary-ribbon-date .icon-button{flex:0 0 auto;width:36px;height:36px}.diary-ribbon-date strong{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:1.02rem;font-weight:500;letter-spacing:-.01em}.diary-ribbon-total{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:3px;padding:8px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:.92rem;font-weight:700;color:var(--ink-2);white-space:nowrap}.diary-ribbon-total small{font-size:.68rem;font-weight:650;color:var(--ink-3)}.diary-days{display:grid;gap:4px}.diary-day{display:grid;gap:10px;padding-top:6px}.diary-separator{position:sticky;top:44px;z-index:10;padding:8px 2px;background:var(--paper);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.diary-day-status{padding:4px 2px 12px;color:var(--ink-4);font-size:.85rem;font-style:italic}.diary-sentinel{height:1px}.diary-earlier{justify-self:start;min-height:44px;margin-top:4px;padding:0 4px;color:var(--ink-3);font-size:.82rem;font-weight:650}.diary-earlier:hover{color:var(--ink)}.diary-timeline{display:grid;gap:10px;overflow:hidden}.diary-row{position:relative;overflow:hidden;border-radius:var(--r-md)}.diary-swipe-delete{position:absolute;top:0;right:0;bottom:0;z-index:0;width:120px;max-width:60%;display:flex;align-items:center;justify-content:flex-end;background:var(--danger);border-radius:0 var(--r-md) var(--r-md) 0}.diary-swipe-delete-btn{display:inline-flex;align-items:center;gap:6px;height:100%;padding:0 18px;color:#fff;font-size:.82rem;font-weight:700;white-space:nowrap}.diary-entry{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:68px 1fr;align-items:start;gap:10px;background:var(--paper);touch-action:pan-y}.diary-time{padding-top:18px;text-align:right;white-space:nowrap;font-size:.78rem;font-weight:700;color:var(--ink-4);font-variant-numeric:tabular-nums}.diary-time small{font-size:.72em;font-weight:700;margin-left:1px}.diary-card{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;width:100%;text-align:left;padding:10px 14px 10px 10px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);transition:transform var(--dur) var(--ease-spring),box-shadow var(--dur)}.diary-card:hover{box-shadow:var(--shadow-1)}.diary-card:active{transform:scale(.99)}.diary-photo{width:64px;height:64px;border-radius:var(--r-sm);overflow:hidden;display:grid;place-items:center;color:var(--card)}.diary-row.planned .diary-photo{box-shadow:0 0 0 2px var(--moss)}.diary-photo img{width:100%;height:100%;object-fit:cover}.diary-copy{display:grid;gap:3px;min-width:0}.diary-copy strong{font-family:var(--font-display);font-weight:500;font-size:1.05rem;letter-spacing:-.01em}.diary-copy small{color:var(--ink-3);font-size:.8rem}.diary-copy em{color:var(--ink-3);font-size:.8rem;font-style:italic}.diary-edit{color:var(--ink-4)}.diary-card-note{background:transparent;border-color:transparent;box-shadow:none;cursor:default}.diary-card-note:hover{box-shadow:none}.diary-card-note:active{transform:none}.diary-note-mark{background:var(--card-2);font-size:1.25rem}.diary-copy strong.diary-note-text,.diary-card-note strong{font-weight:400;font-style:italic;color:var(--ink-2)}.diary-chip{justify-self:start;margin-top:2px;padding:3px 9px;border-radius:999px;background:var(--card-2);border:1px solid var(--line);font-size:.72rem;font-weight:650;color:var(--ink-3)}button.diary-chip:hover{color:var(--ink);border-color:var(--line-strong)}@media(max-width:900px){.diary-entry{grid-template-columns:68px 1fr;gap:8px}.diary-time{padding-top:16px;font-size:.72rem}.diary-card{grid-template-columns:52px 1fr auto;gap:10px;padding:8px 10px 8px 8px}.diary-photo{width:52px;height:52px}.diary-copy strong{font-size:.95rem}}.draft{display:grid;gap:14px}.draft-photo{width:100%;max-height:260px;object-fit:cover;border-radius:var(--r-md)}.draft-when{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:640px){.draft-when{grid-template-columns:1fr 1fr}.draft-when .field:last-child{grid-column:1 / -1}.draft-macros{grid-template-columns:repeat(3,1fr)}}.draft-macros{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:10px}.draft-note{color:var(--ink-3);font-size:.82rem}.draft-link{justify-content:flex-start;gap:8px}.draft input{min-height:44px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--card);width:100%}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;display:grid;place-items:center}.confetti i{position:absolute;display:block}.confetti-strip{width:8px;height:14px;border-radius:2px}.confetti-dot{width:9px;height:9px;border-radius:999px}.diary-copy .pending{color:var(--ink-4);font-style:italic}.estimate{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px 16px;border-radius:var(--r-md);background:var(--moss-soft);color:var(--moss-ink)}.estimate-medium{background:var(--gold-soft);color:#6a4c0c}.estimate-low{background:var(--accent-soft);color:var(--accent-ink)}.estimate-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#fff9}.estimate strong{display:block;font-size:.9rem}.estimate p{margin-top:3px;font-size:.85rem}.estimate small{display:block;margin-top:4px;opacity:.75;font-size:.78rem;font-style:italic}.draft-note.warn{color:var(--danger)}.draft-keep{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:var(--r-md);background:var(--card-2);border:1px solid var(--line)}.draft-keep strong{display:block;font-size:.9rem}.draft-keep small{color:var(--ink-3);font-size:.78rem}.regular-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.regular-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);cursor:pointer;transition:transform var(--dur) var(--ease-spring),box-shadow var(--dur),border-color var(--dur)}.regular-card:hover{box-shadow:var(--shadow-1);border-color:var(--line-strong);transform:translateY(-2px)}.regular-card:active{transform:scale(.99)}.regular-media{width:72px;height:72px;border-radius:var(--r-md);overflow:hidden;display:grid;place-items:center;color:var(--card)}.regular-media.large{width:96px;height:96px;border-radius:var(--r-lg)}.regular-media img{width:100%;height:100%;object-fit:cover}.regular-copy{display:grid;gap:2px;min-width:0}.regular-copy strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regular-copy small{color:var(--accent);font-size:.76rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regular-copy p{color:var(--ink-3);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regular-copy p em{color:var(--accent);font-style:normal;font-weight:600}.regular-flag{display:inline-flex;color:var(--gold)}.regular-photo{display:flex;align-items:center;gap:16px}.regular-photo-actions{display:grid;gap:6px;justify-items:start}.home-page{padding-bottom:48px;max-width:720px;margin:0 auto;gap:14px}.home-section{min-width:0}.muted-line{margin:4px 0;font-size:13px;color:var(--ink-3)}.home-page .person-switcher{width:max-content;justify-self:start}.hero-pill{display:flex;align-items:flex-start;justify-content:space-evenly;gap:12px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow-x:auto}.hero-pill.loading{opacity:.55}.hero-ring{flex:0 0 auto;display:grid;justify-items:center;gap:2px;width:64px;text-align:center}.hero-ring strong{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--ink)}.hero-ring small{font-size:10px;line-height:1.2;color:var(--ink-3);white-space:nowrap}.hero-streak{text-decoration:none}.hero-note{margin:8px 0 0;padding:0 2px;font-size:.8rem;color:var(--ink-3)}.habits-row{display:flex;align-items:center;gap:8px;max-height:88px}.icon-btn-sm{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);color:var(--ink-3);cursor:pointer}.icon-btn-sm[aria-pressed=true]{background:var(--moss-soft);border-color:transparent;color:var(--moss-ink)}.install-steps{display:grid;gap:14px;margin:0;padding:0;list-style:none}.install-steps li{display:flex;align-items:center;gap:12px;font-size:.95rem;color:var(--ink)}.install-steps svg{flex:0 0 auto;color:var(--accent)}.habit-rail{display:flex;gap:16px;flex:1;min-width:0;max-height:88px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.habit-rail::-webkit-scrollbar{height:0}.habit-row-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.habit-item{flex:0 0 auto;display:grid;gap:4px;justify-items:center;width:64px;max-width:64px;text-align:center}.habit-item small{display:block;width:100%;font-size:11px;line-height:1.2;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.habit-ring-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--ink)}.habit-ring-btn .ring-label{font-size:13px;font-weight:700;color:var(--ink)}.habit-ring-media{position:relative;display:block;width:34px;height:34px;border-radius:50%;overflow:hidden}.habit-ring-media img{display:block;width:100%;height:100%;object-fit:cover}.habit-ring-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#2f6b4f8c;color:#fff;border-radius:50%}.habit-ring-count{position:absolute;right:-3px;bottom:-3px;padding:1px 4px;border-radius:999px;background:var(--moss);color:#fff;font-size:9px;font-weight:750;line-height:1.4;box-shadow:0 0 0 2px var(--card)}.habit-add-ring{display:grid;place-items:center;width:46px;height:46px;margin:4px;border:1.5px dashed var(--line-strong);border-radius:999px;background:transparent;color:var(--ink-3);cursor:pointer}.usuals-rail{display:flex;align-items:center;gap:14px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.usuals-rail::-webkit-scrollbar{height:0}.usual{flex:0 0 auto;width:84px;min-height:44px;display:grid;gap:4px;justify-items:center;scroll-snap-align:start;text-align:center;background:none;border:none;padding:0;cursor:pointer}.usual-media{width:56px;height:56px;border-radius:999px;overflow:hidden;display:grid;place-items:center;box-shadow:var(--shadow-1)}.usual-media img{width:100%;height:100%;object-fit:cover}.usual-media b{font-family:var(--font-display);font-size:1.2rem;color:var(--card)}.usual strong{width:100%;font-size:12px;font-weight:650;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.usual small{width:100%;font-size:.72rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.usuals-all-chip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-3);font-size:12px;font-weight:650;text-decoration:none}.eat-list{display:flex;flex-direction:column;gap:10px}.eat-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md)}.eat-row.done{background:var(--moss-soft);border-color:transparent}.eat-media{flex:0 0 auto;width:48px;height:48px;border-radius:var(--r-sm);overflow:hidden;display:grid;place-items:center}.eat-media img{width:100%;height:100%;object-fit:cover}.eat-media b{font-family:var(--font-display);font-size:1.2rem;color:var(--card)}.eat-copy{display:flex;flex-direction:column;gap:2px;min-width:0;margin-right:auto}.eat-eyebrow{font-size:11px;color:var(--ink-4);order:2}.eat-copy strong{order:1;font-size:14px;font-weight:650;color:var(--ink)}.eat-copy span{order:3;font-size:12px;color:var(--ink-3)}.eat-missed{color:var(--gold);font-weight:750}.eat-row.done .eat-copy span{color:var(--moss-ink);font-weight:650}.eat-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.eat-cta{min-height:44px;padding:0 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-sm);font-size:13px;font-weight:650;cursor:pointer}.eat-skip,.eat-modify{min-height:44px;padding:0 12px;background:none;border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink-3);font-size:13px;font-weight:600;cursor:pointer}.library{display:grid;gap:14px}.search-bar-shuffle{padding-right:6px}.shuffle-button{width:44px;height:44px;min-height:44px;border-radius:50%;background:var(--ink);color:var(--card);flex:0 0 auto}.ask-button{width:44px;height:44px;min-height:44px;border-radius:50%;background:var(--moss);color:#fff;flex:0 0 auto;margin-left:auto;transition:opacity var(--dur)}.ask-button:disabled{opacity:.5}.ask-button.asking{animation:ask-pulse 1.1s ease-in-out infinite}@keyframes ask-pulse{0%,to{opacity:1}50%{opacity:.45}}.craving-understood{display:flex;align-items:center;gap:6px;margin:-4px 2px 0;color:var(--ink-3);font-size:.82rem}.craving-clear{width:20px;height:20px;min-height:0;flex:0 0 auto}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:22px 18px}.library-tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:-4px}.library-tag-row .chip{font-size:.78rem;padding:6px 12px;min-height:0}.tile-tags{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:2px}.tile-tags span{font-size:.68rem;font-weight:600;color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em}.load-more{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px;color:var(--ink-3);font-size:.82rem}.tile-rotation-toggle{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fffdf9eb;color:var(--ink);box-shadow:var(--shadow-1);transition:background var(--dur),color var(--dur)}.tile-rotation-toggle.on{background:var(--moss);color:#fff}.recipe-page{gap:24px}.recipe-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(220px,.85fr);gap:24px;align-items:center}.recipe-hero-media{position:relative;border-radius:var(--r-xl);overflow:hidden;background:var(--paper-2);box-shadow:var(--shadow-2);aspect-ratio:16 / 10}.recipe-hero-image{width:100%;height:100%;object-fit:cover}.hero-icon-actions{position:absolute;top:10px;right:10px;display:flex;gap:8px}.hero-icon{width:40px;height:40px;min-height:0;border-radius:50%;background:#fffdf9eb;color:var(--ink);box-shadow:var(--shadow-1);display:grid;place-items:center}.video-frame{position:relative;width:100%;height:100%;aspect-ratio:16 / 10;border-radius:var(--r-lg);overflow:hidden}.video-frame iframe{width:100%;height:100%;border:0;display:block}.video-poster{position:relative;display:block;width:100%;height:100%;cursor:pointer}.video-poster:hover .recipe-hero-image img{transform:scale(1.04)}.video-poster:hover .recipe-hero-image img[data-yt]{transform:scale(1.4)}.play-badge{position:absolute;left:50%;top:50%;translate:-50% -50%;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:#fffdf9eb;color:var(--ink);box-shadow:var(--shadow-2);padding-left:4px}.method-video{margin-bottom:16px}.recipe-hero-copy{display:grid;gap:6px;align-content:center}.recipe-actions{display:flex;flex-wrap:wrap;gap:8px}.recipe-section{display:grid;align-content:start}.recipe-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:32px;align-items:start}.facts-row{display:flex;flex-wrap:wrap;gap:8px}.facts-chip{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:.84rem;font-weight:600;color:var(--ink-2)}.facts-chip b{font-family:var(--font-display);font-weight:600;color:var(--ink)}.facts-chip.pending{color:var(--ink-4);font-style:italic;font-weight:500}.rotation-row-section{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.rotation-big-toggle{min-height:44px;padding:0 20px;border-radius:999px;background:var(--card);border:1px solid var(--line-strong);font-weight:700;color:var(--ink-2)}.rotation-big-toggle.on{background:var(--moss);border-color:transparent;color:#fff}.rotation-row-avatars{display:flex;flex-wrap:wrap;gap:8px}.tag-chips{display:grid;gap:10px}.tag-add-form input{min-height:40px;max-width:220px}textarea.notes-field{min-height:84px}.rotation-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.rotation-card{display:grid;gap:12px;padding:14px 16px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);transition:border-color var(--dur),background var(--dur)}.rotation-card.in{border-color:#2f6b4f66;background:linear-gradient(180deg,var(--moss-soft),var(--card) 60%)}.rotation-card-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.rotation-card-head strong{display:block;font-size:1rem}.rotation-card-head small{color:var(--ink-3);font-size:.78rem}.rotation-statuses{display:flex;flex-wrap:wrap;gap:5px}.rotation-statuses .chip{font-size:.74rem;padding:5px 9px}.rotation-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.rotation-feedback .inline-input{flex:1;min-width:120px;margin-left:4px}.feedback{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;border:1px solid var(--line-strong);font-size:.76rem;font-weight:700;color:var(--ink-3);transition:all var(--dur)}.feedback.liked{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.feedback.disliked{background:var(--paper-2);border-color:transparent;color:var(--ink)}.ingredient-list{display:grid;gap:6px}.section-title.with-action{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.section-title.with-action>div{display:grid;gap:3px}.ingredient-readout{display:grid}.ingredient-readout li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.ingredient-readout li:last-child{border-bottom:0}.ingredient-readout-name{display:grid;text-align:left;min-width:0;border-radius:6px}.ingredient-readout-name:disabled{opacity:1;cursor:default}.ingredient-readout-name strong{font-size:.95rem}.ingredient-readout-name:not(:disabled):hover strong{color:var(--accent)}.ingredient-readout-name em{font-style:normal;color:var(--ink-3);font-size:.78rem}.ingredient-readout li>b{font-family:var(--font-display);font-weight:500;font-size:1.05rem;color:var(--accent);white-space:nowrap}.ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) auto 90px;align-items:center;gap:10px;padding:6px 8px 6px 6px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--card)}.ingredient-identity{display:flex;align-items:center;gap:10px;min-width:0;text-align:left;border-radius:10px}.ingredient-identity:disabled{opacity:1;cursor:default}.ingredient-identity:not(:disabled):hover .ingredient-copy strong{color:var(--accent)}.ingredient-visual{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--paper);font-size:1.25rem;overflow:hidden;flex:0 0 auto}.ingredient-visual img{width:100%;height:100%;object-fit:contain}.ingredient-copy{display:grid;min-width:0}.ingredient-copy strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-prep-tag{font-style:normal;font-weight:500;color:var(--ink-3)}.ingredient-copy small{color:var(--ink-3);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-select{padding:8px 28px 8px 10px!important;font-size:.82rem;font-weight:600;border-radius:999px!important}.scale-box{display:grid;gap:10px;margin-top:18px;padding:14px 16px;border-radius:var(--r-lg);background:var(--card-2);border:1px solid var(--line)}.scale-box strong{display:block;font-size:.92rem}.scale-box small{color:var(--ink-3);font-size:.78rem}.scale-controls{display:flex;align-items:center;gap:8px}.scale-controls input{width:110px}.scale-controls span{color:var(--ink-3);font-size:.82rem}.prep-steps{display:grid;gap:10px;padding-left:0;counter-reset:step}.prep-steps li{position:relative;padding-left:34px;color:var(--ink-2);line-height:1.5}.prep-steps li:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--card);font-size:.72rem;font-weight:700}.rotation-board{display:grid;gap:28px;max-width:720px}.rotation-list{display:grid;gap:6px}.rotation-row-trailing{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap;justify-content:flex-end}.rotation-row-people{display:inline-flex;flex-wrap:wrap;gap:5px}.avatar-pref{position:relative;display:inline-flex;border-radius:50%;opacity:.92;transition:opacity var(--dur)}.avatar-pref.disliked{opacity:.5}.avatar-pref.disliked:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;background:linear-gradient(to top right,transparent calc(50% - 1.5px),var(--ink) calc(50% - 1.5px),var(--ink) calc(50% + 1.5px),transparent calc(50% + 1.5px))}.rotation-search{display:grid;gap:10px}.board-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.board-filters select{width:auto;max-width:45%;padding:6px 28px 6px 10px!important;font-size:.8rem;border-radius:999px!important}.board-filters-compact{margin-bottom:2px}.studio{display:grid;gap:18px;max-width:860px}.studio-card{display:grid;gap:16px;padding:22px;border-radius:var(--r-xl);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-1)}.studio-card .button.primary{justify-self:start}.ingredient-editor{gap:8px}.ingredient-editor .button.ghost{justify-self:start;padding-inline:6px}.ingredient-editor .ingredient-rows{display:grid;gap:10px}.ingredient-editor .ingredient-row{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper)}.ingredient-editor .ingredient-row input,.ingredient-editor .ingredient-row select{min-height:40px}.ingredient-editor .ingredient-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.ingredient-editor .ingredient-thumb{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--card);border:1px solid var(--line);overflow:hidden;font-size:1.15rem;flex:0 0 auto}.ingredient-editor .ingredient-thumb img{width:100%;height:100%;object-fit:contain}.ingredient-editor .ingredient-meta{display:grid;grid-template-columns:84px minmax(120px,160px) minmax(0,1fr);gap:8px;align-items:center}.ingredient-editor .ingredient-prep{font-size:.86rem}.ingredient-editor .ingredient-prep-add{justify-self:start;padding:6px 10px;border-radius:999px;border:1px dashed var(--line-strong);color:var(--ink-3);font-size:.78rem;font-weight:600}.ingredient-editor .ingredient-prep-add:hover{border-color:var(--accent);color:var(--accent)}.ingredient-editor .ingredient-link{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink-4)}.ingredient-editor .ingredient-link.is-linked{background:var(--moss-soft);border-color:transparent;color:var(--moss-ink)}@media(max-width:560px){.ingredient-editor .ingredient-meta{grid-template-columns:84px minmax(0,1fr)}.ingredient-editor .ingredient-meta .ingredient-prep,.ingredient-editor .ingredient-meta .ingredient-prep-add{grid-column:1 / -1}}.pantry{display:grid;gap:16px}.pantry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.pantry-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:10px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);cursor:pointer;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease-spring)}.pantry-card:hover{border-color:var(--ink-3);box-shadow:var(--shadow-1);transform:translateY(-2px)}.pantry-visual{display:grid;place-items:center;width:72px;height:72px;border-radius:var(--r-md);background:var(--paper);font-size:2rem;overflow:hidden}.pantry-visual img{width:100%;height:100%;object-fit:contain}.pantry-copy{display:grid;min-width:0}.pantry-copy strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pantry-copy .alt-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pantry-copy em{color:var(--ink-3);font-style:normal;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pantry-title{display:flex;align-items:center;gap:6px;min-width:0}.pantry-title strong{flex:1;min-width:0}.pantry-title b{color:var(--ink-4);font-weight:600;font-size:.72rem;font-variant-numeric:tabular-nums}.ingredient-page{gap:28px}.ingredient-hero{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;align-items:center}.ingredient-hero-visual{display:grid;place-items:center;aspect-ratio:1;border-radius:var(--r-xl);background:linear-gradient(145deg,var(--card),var(--paper-2));box-shadow:var(--shadow-1);font-size:4rem;overflow:hidden}.ingredient-hero-visual img{width:100%;height:100%;object-fit:contain;padding:12px}.ingredient-hero-copy{display:grid;gap:10px}.nutrient-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.nutrient{display:grid;gap:8px;padding:14px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);border-top:3px solid var(--ink-4)}.nutrient.macro-calories{border-top-color:var(--c-calories)}.nutrient.macro-protein{border-top-color:var(--c-protein)}.nutrient.macro-carbs{border-top-color:var(--c-carbs)}.nutrient.macro-fat{border-top-color:var(--c-fat)}.nutrient.macro-fiber{border-top-color:var(--c-fiber)}.nutrient.macro-calories input[type=range]{accent-color:var(--c-calories)}.nutrient.macro-protein input[type=range]{accent-color:var(--c-protein)}.nutrient.macro-carbs input[type=range]{accent-color:var(--c-carbs)}.nutrient.macro-fat input[type=range]{accent-color:var(--c-fat)}.nutrient.macro-fiber input[type=range]{accent-color:var(--c-fiber)}.nutrient-head{display:flex;align-items:baseline;justify-content:space-between}.nutrient-head span{font-size:.78rem;font-weight:700;color:var(--ink-2)}.nutrient-head strong{font-family:var(--font-display);font-weight:500;font-size:1.3rem}.nutrient-head small{color:var(--ink-3);font-family:var(--font-ui);font-size:.7rem}.nutrient-number{padding:6px 8px!important;font-size:.85rem}.regular-row{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:14px}.regular-row input{height:44px}.regular-macros{display:flex;flex-wrap:wrap;gap:10px}.regular-macros .field{flex:1 1 90px}.regular-macros input{height:44px}@media(max-width:900px){.recipe-hero,.recipe-columns{grid-template-columns:1fr;gap:20px}.recipe-hero-media{aspect-ratio:16 / 9;max-height:220px}.ingredient-hero{grid-template-columns:110px 1fr;gap:16px}.ingredient-row{grid-template-columns:minmax(0,1fr) auto}.ingredient-row .unit-select{grid-column:2}.recipe-grid{grid-template-columns:repeat(2,1fr);gap:16px 12px}}.scale-box{display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.scale-box.empty{gap:6px;border-style:dashed;background:transparent}.scale-head{display:grid;gap:3px}.scale-control{display:flex;align-items:center;justify-content:center;gap:10px}.scale-step{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-strong);font-size:1.2rem;font-weight:600;color:var(--ink-2)}.scale-step:hover{border-color:var(--ink);color:var(--ink)}.scale-target{display:inline-flex;align-items:baseline;gap:5px}.scale-target input{width:5.2ch;padding:4px 0;border:none;background:transparent;font-family:var(--font-display);font-size:1.9rem;font-weight:500;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}.scale-target input:focus{outline:none;border-bottom:2px solid var(--accent)}.scale-target span{color:var(--ink-3);font-size:.86rem;font-weight:600}.scale-warning{padding:9px 12px;border-radius:var(--r-sm, 10px);background:var(--gold-soft);color:#6a4c0c;font-size:.8rem;line-height:1.4}.scale-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.scale-macros div{display:grid;gap:1px;justify-items:center}.scale-macros dt{color:var(--ink-3);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.scale-macros dd{margin:0;font-family:var(--font-display);font-size:1.05rem;font-variant-numeric:tabular-nums}.scale-factor{color:var(--ink-3);font-size:.76rem;font-weight:600;text-align:center}.scale-list{display:grid;gap:5px;margin:0;padding:0;list-style:none}.scale-list li{display:grid;grid-template-columns:68px 1fr;gap:10px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line);font-size:.88rem}.scale-list li:last-child{border-bottom:none}.scale-amount{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.scale-amount.unknown{color:var(--ink-4)}.scale-name em{font-style:normal;color:var(--ink-3);font-size:.82rem}.scale-yield-open{width:100%;padding:9px 12px;border-radius:var(--r-md);border:1px dashed var(--line-strong);color:var(--ink-3);font-size:.8rem;font-weight:600;transition:all var(--dur)}.scale-yield-open:hover{border-color:var(--ink);color:var(--ink)}.scale-yield{display:grid;gap:8px;padding:12px;border-radius:var(--r-md);background:var(--paper-2)}.scale-yield-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.scale-yield-row input{flex:1 1 90px;min-width:0;padding:9px 12px;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);font-size:.95rem;text-align:center;font-variant-numeric:tabular-nums}.scale-yield-row input:focus{outline:none;border-color:var(--ink)}.scale-yield-cancel{color:var(--ink-3);font-size:.78rem;font-weight:600;text-decoration:underline}.scale-factor em{font-style:normal;color:var(--ink-4)}.rotation-search{display:grid;gap:12px;scroll-margin-top:12px;padding-bottom:calc(var(--vv-h, 100dvh) - 200px)}.vault-page{display:grid;gap:14px}.vault-page>.back-link{margin-bottom:2px}.vault-toolbar{display:flex;align-items:center;gap:10px}.vault-search{flex:1}.vault-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.vault-card{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:12px;min-height:44px;padding:10px 12px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);cursor:pointer;transition:border-color var(--dur),box-shadow var(--dur),transform var(--dur) var(--ease-spring)}.vault-card:hover{border-color:var(--ink-3);box-shadow:var(--shadow-1);transform:translateY(-2px)}.vault-card:active{transform:scale(.99)}.vault-card-media{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-sm);overflow:hidden;background:var(--paper-2);flex:0 0 auto}.vault-card-media img{width:100%;height:100%;object-fit:cover}.vault-card-media span{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:1.3rem;color:#fffdf9eb}.vault-card-copy{display:grid;gap:2px;min-width:0}.vault-card-head{display:flex;align-items:center;gap:6px;min-width:0}.vault-card-head strong{flex:1 1 auto;min-width:0;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-card-copy em{font-style:normal;color:var(--ink-3);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-kind{flex:0 0 auto;padding:3px 9px;border-radius:999px;font-size:.66rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.vault-kind-recipe{background:var(--moss-soft);color:var(--moss-ink)}.vault-kind-ingredient{background:var(--gold-soft);color:var(--gold)}.vault-kind-cheat{background:var(--plum-soft);color:var(--plum)}@media(max-width:900px){.vault-grid{grid-template-columns:1fr}}.omnibar-root{display:grid;gap:6px;padding:6px 10px 4px}.omnibar-bar{display:flex;align-items:flex-end;gap:6px;padding:4px;border-radius:var(--r-xl);background:#fffdf9b8;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid rgba(255,255,255,.7);box-shadow:0 1px 2px #1c1b180f,0 0 0 1px var(--line);cursor:text}.omnibar-bar.busy{opacity:.7}.omnibar-camera{display:grid;place-items:center;cursor:pointer;width:40px;height:40px;border-radius:999px;flex:0 0 auto;background:var(--accent);color:#fff;transition:transform var(--dur) var(--ease-spring),opacity var(--dur)}.omnibar-camera:active{transform:scale(.92)}.omnibar-camera input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.omnibar-input{flex:1;min-width:0;border:0;background:none;outline:none;resize:none;min-height:40px;max-height:130px;overflow-y:auto;padding:9px 8px;font-family:var(--font-ui);font-size:16px;line-height:22px;color:var(--ink)}.omnibar-input::placeholder{color:var(--ink-4)}.omnibar-send,.omnibar-mic{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:999px;transition:transform var(--dur) var(--ease-spring),background var(--dur)}.omnibar-send{background:var(--accent);color:#fff}.omnibar-send:active{transform:scale(.92)}.omnibar-mic{background:var(--card-2);color:var(--ink-2);border:1px solid var(--line)}.omnibar-mic.recording{background:var(--danger-soft);color:var(--danger)}.omnibar-mic:active{transform:scale(.92)}.omnibar-panel{max-height:min(42vh,360px);overflow-y:auto;padding:6px;border-radius:var(--r-lg);background:#fffdf9c7;backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid rgba(255,255,255,.7);box-shadow:0 8px 30px #1c1b181f,0 0 0 1px var(--line)}.omnibar-group{display:grid;gap:0;padding-bottom:4px}.omnibar-group:last-child{padding-bottom:0}.omnibar-group-label{padding:6px 10px 2px;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}.omnibar-row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;width:100%;min-height:46px;text-align:left;padding:3px 8px;border-radius:var(--r-md);color:var(--ink);transition:background var(--dur)}.omnibar-row:hover,.omnibar-row:focus-visible{background:var(--paper-2)}.omnibar-row.primary{background:var(--accent-soft)}.omnibar-row.static{cursor:default}.omnibar-row.answer button{min-height:40px;padding:0 14px;border-radius:999px;background:var(--accent);color:#fff;font-size:.8rem;font-weight:600}.omnibar-done{color:var(--moss);font-size:.78rem;font-weight:600}.omnibar-thumb{width:32px;height:32px;border-radius:999px;overflow:hidden;display:grid;place-items:center;flex:0 0 auto}.omnibar-thumb img{width:100%;height:100%;object-fit:cover}.omnibar-thumb b{font-family:var(--font-display);color:var(--card);font-size:.92rem}.omnibar-thumb.ask{background:var(--accent-soft);color:var(--accent)}.omnibar-copy{display:grid;gap:1px;min-width:0}.omnibar-copy strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.omnibar-copy small{color:var(--ink-3);font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.omnibar-subline{display:flex;align-items:center;gap:6px;min-width:0}.omnibar-subline small{flex:1 1 auto;min-width:0;margin:0}.omnibar-check{flex:0 0 auto;font-style:normal;font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:999px;white-space:nowrap}.omnibar-check.warn{background:var(--gold-soft);color:var(--gold)}.omnibar-hint{font-size:.58rem;font-weight:700;letter-spacing:.03em;color:var(--ink-4);border:1px solid var(--line-strong);border-radius:5px;padding:1px 5px}.omnibar-empty{padding:10px;color:var(--ink-3);font-size:.82rem}.omnibar-lograil{display:flex;align-items:center;gap:8px;min-height:44px;padding:3px 10px;border-radius:var(--r-lg);background:#fffdf9c7;backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid rgba(255,255,255,.7);box-shadow:0 8px 30px #1c1b181f,0 0 0 1px var(--line)}.omnibar-lograil-log{flex:1 1 auto;min-width:0;text-align:left;font-size:.88rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.omnibar-lograil-log.static{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-weight:500;cursor:default}.omnibar-lograil-ai{flex:0 0 auto;display:flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--accent-soft);color:var(--accent)}.omnibar-apply-all{margin:8px 10px 4px;min-height:44px;border-radius:var(--r-md);background:var(--accent);color:#fff;font-weight:600;font-size:.9rem}body.omnibar-open .tabbar{display:none}.draft-sheet{display:grid;gap:12px;padding-top:2px;min-width:0}.ds-photo{width:100%;max-height:160px;object-fit:cover;border-radius:var(--r-md)}.ds-label{min-height:48px;max-height:96px;resize:none;overflow:hidden;font-size:1.02rem;line-height:1.35;font-weight:600;letter-spacing:-.01em}.ds-label::placeholder{font-weight:500}.ds-hero{display:grid;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--card-2);border:1px solid var(--line)}.ds-kcal{display:flex;align-items:baseline;gap:6px;min-width:0}.draft-sheet .ds-hero .ds-kcal .ds-kcal-input{flex:0 1 auto;width:auto;field-sizing:content;min-width:2ch;max-width:100%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;font-family:var(--font-display);line-height:1.1;font-weight:600;font-size:2.6rem!important;letter-spacing:-.02em;color:var(--ink)}.draft-sheet .ds-hero .ds-kcal .ds-kcal-input:focus{box-shadow:inset 0 -2px 0 var(--accent)}.ds-kcal-input::-webkit-outer-spin-button,.ds-kcal-input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.ds-kcal-unit{color:var(--ink-3);font-size:.9rem;font-weight:600}.ds-cue{margin-left:auto;align-self:center;white-space:nowrap;padding:5px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold);font-size:.72rem;font-weight:700}.ds-macros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ds-macro{display:grid;gap:4px;min-width:0}.ds-macro-name{color:var(--ink-3);font-size:.68rem;font-weight:600;letter-spacing:.02em}.ds-macro-value{display:flex;align-items:baseline;gap:2px;min-width:0;min-height:44px;padding:0 8px;border-radius:var(--r-xs);background:var(--card);border:1px solid var(--line)}.draft-sheet .ds-hero .ds-macro .ds-macro-value input{flex:0 1 auto;width:auto;field-sizing:content;min-width:1.5ch;max-width:100%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;font-weight:600;font-size:1.02rem!important}@supports not (field-sizing: content){.draft-sheet .ds-hero .ds-kcal .ds-kcal-input{width:4ch}.draft-sheet .ds-hero .ds-macro .ds-macro-value input{width:100%}}.ds-macro-value input::-webkit-outer-spin-button,.ds-macro-value input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.ds-macro-value i{color:var(--ink-4);font-style:normal;font-size:.72rem}.ds-macro-value:focus-within{border-color:var(--line-strong)}.draft-sheet .ds-hero .ds-macro-protein input{color:var(--c-protein)}.draft-sheet .ds-hero .ds-macro-carbs input{color:var(--c-carbs)}.draft-sheet .ds-hero .ds-macro-fat input{color:var(--c-fat)}.draft-sheet .ds-hero .ds-macro-fiber input{color:var(--c-fiber)}.ds-why{color:var(--ink-3);font-size:.78rem;line-height:1.45;margin:-6px 2px -2px}.ds-why.warn{color:var(--danger)}.ds-portion{display:grid;grid-template-columns:minmax(0,148px) minmax(0,1fr);gap:8px;align-items:center}.ds-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;border-radius:var(--r-sm);background:var(--card-2);border:1px solid var(--line)}.ds-stepper button{height:46px;font-size:1.25rem;color:var(--ink-2);border-radius:var(--r-sm)}.ds-stepper button:active{background:var(--paper-2)}.ds-stepper-value{display:grid;justify-items:center;min-width:0;line-height:1.15}.ds-stepper-value b{font-size:1rem;font-weight:700}.ds-stepper-value small{color:var(--ink-3);font-size:.66rem}.ds-mults{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.ds-mult{min-height:46px;border-radius:var(--r-sm);background:var(--card);border:1px solid var(--line);color:var(--ink-2);font-size:.85rem;font-weight:600}.ds-mult.on{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}.ds-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -24px;padding:2px 24px;scroll-snap-type:x proximity}.ds-chips::-webkit-scrollbar{display:none}.ds-chip{flex:0 0 auto;scroll-snap-align:start;min-height:44px;padding:0 15px;border-radius:999px;background:var(--card-2);border:1px solid var(--line);color:var(--ink-2);font-size:.85rem;font-weight:600;white-space:nowrap}.ds-chip.on{background:var(--ink);border-color:var(--ink);color:var(--card)}.ds-when{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ds-field{display:grid;gap:4px;min-width:0}.ds-field>span{color:var(--ink-3);font-size:.72rem;font-weight:600}.ds-field input{min-height:46px;font-size:.95rem}.ds-keep{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:6px 14px;border-radius:var(--r-md);background:var(--card-2);border:1px solid var(--line)}.ds-keep span{font-size:.88rem;font-weight:600}.ds-actions{display:flex;align-items:center;gap:10px;width:100%}.ds-discard{flex:0 0 auto;min-height:52px}.ds-save{flex:1 1 auto;min-height:52px;font-size:1rem}.progress-page{padding-bottom:32px;display:grid;gap:20px}.progress-back-row{display:flex;align-items:center;min-height:44px}.progress-back{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:650;color:var(--ink-2)}.progress-section{display:grid;gap:8px;min-width:0}.progress-heading{margin:0;font-family:var(--font-ui);font-size:12px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.progress-streak{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 20px;background:linear-gradient(160deg,var(--accent-soft),var(--card-2));border-radius:var(--r-lg);color:var(--accent-ink)}.progress-streak i{display:grid;place-items:center;color:var(--accent)}.progress-streak-number{font-family:var(--font-display);font-size:40px;font-weight:600;line-height:1}.progress-streak-number small{font-family:var(--font-ui);font-size:13px;font-weight:600;letter-spacing:.02em}.progress-best{font-size:12px;font-weight:650;letter-spacing:.04em;color:var(--accent-ink);opacity:.8}.week-card{padding:20px 22px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.week-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.week-number{display:flex;align-items:baseline;gap:6px;font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.1;color:var(--ink)}.week-number small{font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--ink-3)}.banked{text-align:right;color:var(--moss-ink)}.banked strong{font-family:var(--font-display);font-size:22px;font-weight:600}.banked small{font-family:var(--font-ui);font-size:11px;font-weight:600;margin-left:3px}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:18px 0 0;padding:0;list-style:none}.week-day{display:flex;flex-direction:column;align-items:center;gap:6px}.week-letter{font-size:11px;font-weight:600;color:var(--ink-4)}.week-kcal{font-size:10px;color:var(--ink-4);min-height:13px}.week-dot{width:100%;max-width:34px;aspect-ratio:1;border-radius:50%;background:var(--paper-3);border:1.5px solid transparent}.week-day.is-today .week-dot{border-color:var(--ink)}.week-day.v-green .week-dot{background:var(--moss)}.week-day.v-amber .week-dot{background:var(--gold)}.week-day.v-red .week-dot{background:var(--accent)}.week-day.v-logged .week-dot{background:var(--ink-4)}.week-day.v-open .week-dot{background:var(--paper-3);border-color:var(--ink-3)}.week-day.v-missed .week-dot{background:var(--paper-3)}.week-day.v-before .week-dot{background:transparent;border:1.5px solid var(--line)}.week-day.v-future .week-dot{background:transparent;border:1.5px dashed var(--line-strong)}.week-foot{margin:14px 0 0;font-size:12px;color:var(--ink-3)}.week-foot+.week-foot{margin-top:4px}.repairs .repair-lede{margin:0 0 10px;font-size:13px;color:var(--ink-3)}.repair-row{display:flex;flex-wrap:wrap;gap:8px}.repair-chip{padding:7px 13px;background:var(--gold-soft);color:var(--gold);border-radius:999px;font-size:12px;font-weight:650;text-decoration:none}.year-lede{margin:0;font-size:13px;color:var(--ink-3)}.year-scroll{overflow-x:auto;max-width:100%;min-width:0;padding-bottom:6px;-webkit-overflow-scrolling:touch}.year-grid{display:flex;gap:3px;min-width:max-content}.year-week{display:flex;flex-direction:column;gap:3px;min-height:44px;padding:2px;margin:-2px;border:0;border-radius:4px;background:none;text-decoration:none;transition:background var(--dur)}.year-week:hover,.year-week:focus-visible{background:var(--paper-2);outline:none}.year-cell{width:16px;height:16px;border-radius:4px;background:var(--paper-3);display:block}.year-cell.v-green{background:var(--moss)}.year-cell.v-amber{background:var(--gold)}.year-cell.v-red{background:var(--accent)}.year-cell.v-logged{background:var(--ink-4)}.year-cell.v-open{background:var(--paper-3);box-shadow:inset 0 0 0 1.5px var(--ink-3)}.year-cell.v-before,.year-cell.v-future{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.year-key{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:var(--ink-4)}.year-key .year-cell{margin-left:8px}.year-key .year-cell:first-child{margin-left:0}@media(max-width:560px){.week-card{padding:16px 18px}}.subnav-chips{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;row-gap:10px}.subnav-chips .chip{min-height:44px;padding:10px 16px;font-size:.88rem}.people{display:grid;gap:20px}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.person-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:14px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-1);text-align:left}.person-card.inactive{opacity:.6}.person-card-copy{display:grid;gap:2px;min-width:0}.person-card-copy strong{font-family:var(--font-display);font-weight:500;font-size:1.25rem;letter-spacing:-.01em}.person-card-copy small{color:var(--ink-3);font-size:.76rem}.person-card-copy em{font-style:normal;font-size:.74rem;color:var(--moss);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-card-copy em.avoid{color:var(--accent)}.people-grid.guests .person-card{background:var(--plum-soft);border-color:transparent}.person-photo-row{display:flex;align-items:center;gap:16px}.targets{display:grid;gap:18px}.targets-layout{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:20px;align-items:start}.targets-total{position:sticky;top:16px;display:grid;gap:10px;padding:18px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}.targets-slots{display:grid;gap:12px}.target-card{display:grid;gap:10px;padding:14px 16px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}.target-card-head{display:flex;align-items:baseline;gap:10px}.target-card-head strong{font-family:var(--font-display);font-weight:500;font-size:1.15rem}.target-card-head small{color:var(--ink-3)}.slots{display:grid;gap:18px}.slot-list{display:grid;gap:8px}.slot-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px 10px 8px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);position:relative}.slot-row.inactive{opacity:.6}.drag-handle{display:grid;place-items:center;width:30px;height:36px;color:var(--ink-4);cursor:grab;touch-action:none;border-radius:8px}.drag-handle:hover{background:var(--paper);color:var(--ink)}.drag-handle:active{cursor:grabbing}.slot-row-copy{display:grid;text-align:left;min-width:0;border-radius:6px}.slot-row-copy strong{font-family:var(--font-display);font-weight:500;font-size:1.1rem}.slot-row-copy small{color:var(--ink-3);font-size:.76rem}.slot-row-copy:hover strong{color:var(--accent)}@media(max-width:900px){.targets-layout{grid-template-columns:1fr}.targets-total{position:static}}.tags-view{display:grid;gap:18px;max-width:640px}.tags-list{display:grid;gap:10px}.tag-vocab-row{display:grid;gap:8px;padding:14px 16px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}.tag-vocab-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.tag-vocab-words{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tag-vocab-word-input{flex:1 1 120px;min-width:100px;border:none;background:transparent;padding:6px 4px;font-size:.86rem}.tag-vocab-word-input:focus{outline:none}.tag-vocab-add{display:flex;align-items:end;gap:10px;max-width:480px}.tag-vocab-add .field{flex:1}.tags-json{display:grid;gap:10px}.tags-json textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--paper-2)}.tags-json .button.primary{justify-self:start}.language-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;max-width:560px}.language-card{position:relative;display:grid;gap:4px;justify-items:start;padding:18px 20px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);text-align:left;transition:border-color var(--dur),transform var(--dur) var(--ease-spring)}.language-card:hover{border-color:var(--line-strong)}.language-card.active{border-color:var(--ink)}.language-card:active{transform:scale(.98)}.language-native{font-size:1.3rem;font-weight:600;color:var(--ink)}.language-card small{color:var(--ink-3);font-size:.8rem}.language-tick{position:absolute;top:14px;right:14px;width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:var(--moss);color:#fff}.language-request{display:flex;align-items:end;gap:10px;max-width:480px}.language-request .field{flex:1}.access-accounts{display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}.access-account{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;max-width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.access-account.pending{border-style:dashed;background:transparent}.access-account>span:not(.access-role):not(.access-invite-mark){display:grid;gap:1px;min-width:0;flex:1 1 140px;overflow-wrap:anywhere}.access-account strong{font-size:.92rem}.access-account small{color:var(--ink-3);font-size:.78rem;overflow:hidden;text-overflow:ellipsis}.access-invite-mark{display:grid!important;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper-3);color:var(--ink-3);flex:none}.access-role{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;background:var(--paper-2);color:var(--ink-2);font-size:.74rem;font-weight:700;text-transform:capitalize;flex:none}.access-role.owner{background:var(--moss-soft, var(--paper-3));color:var(--moss)}.access-copy{max-width:100%;margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong);font-size:.78rem;font-weight:600;color:var(--ink-2);flex:none}.access-copy:hover{border-color:var(--ink);color:var(--ink)}.access-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.access-person{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}.access-person-head{display:flex;align-items:center;gap:11px}.access-person-head strong{font-family:var(--font-display);font-size:1.1rem;font-weight:500}.access-links{display:flex;flex-wrap:wrap;gap:7px}.access-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong);font-size:.8rem;font-weight:600;color:var(--ink-3);transition:all var(--dur)}.access-chip:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.access-chip.on{background:var(--ink);border-color:var(--ink);color:var(--card)}.access-chip:disabled{opacity:.55;cursor:default}.access-chip em{font-style:normal;opacity:.6;font-size:.72rem}.access-roles{display:flex;flex-wrap:wrap;gap:8px}.access-invite-done{display:grid;gap:12px}.access-link{display:block;padding:12px 14px;border-radius:var(--r-md);background:var(--paper-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;word-break:break-all}.access-cook-link{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);max-width:480px;min-width:0;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr)}.access-cook-link>*,.access-cook-link-head>div{min-width:0}.access-cook-link .access-link{overflow-wrap:anywhere;min-width:0}.access-cook-link .hint,.access-cook-link-head small{overflow-wrap:anywhere}.access-cook-link-head{display:flex;align-items:center;gap:12px}.access-cook-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper-3);color:var(--ink-2);flex:none}.access-cook-link-head strong{display:block;font-size:.95rem}.access-cook-link-head small{color:var(--ink-3);font-size:.8rem}.access-cook-link .access-link{margin:0}.access-cook-link-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.access-cook-link-actions .access-copy{margin-left:0}.cook-app{font-size:17px}.cook-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px;padding:0 clamp(16px,3vw,40px);background:#f7f2e8d9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.cook{width:100%;max-width:1080px;margin:0 auto;padding:24px clamp(16px,3vw,40px) 80px;display:grid;gap:22px}.cook-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:2px solid var(--ink)}.cook-relative{display:block;color:var(--accent);font-size:.85rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.cook-date .display{font-size:clamp(2.4rem,2rem + 3vw,4.4rem)}.cook-nav{display:flex;gap:8px}.cook-nav-button{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:54px;padding:0 16px;border-radius:999px;background:var(--card);border:1px solid var(--line-strong);font-weight:700;font-size:1rem}.cook-nav-button.today{background:var(--ink);color:var(--card);border-color:var(--ink)}.cook-settings-row{display:grid;gap:12px}.cook-settings-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.cook-lang-chip{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:999px;background:var(--card);border:1px solid var(--line-strong);font-weight:700;font-size:.95rem}.cook-lang-chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}.cook-interactive-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;border-radius:var(--r-lg);background:var(--accent);color:#fff;font-weight:800;font-size:1.05rem}.cook-handoff{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 20px;border-radius:var(--r-lg);background:var(--gold-soft);color:#5b4210}.cook-handoff strong{display:block;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.cook-handoff p{white-space:pre-wrap;line-height:1.5;font-size:.95rem;max-height:200px;overflow:auto}.cook-day{display:grid;gap:18px;touch-action:pan-y}.cook-meal{display:grid;gap:14px;padding:18px;border-radius:var(--r-xl);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-1);transition:opacity var(--dur),background var(--dur)}.cook-meal.done{background:var(--moss-soft);border-color:#2f6b4f4d}.cook-meal.done .cook-dish{opacity:.7}.cook-meal-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px}.cook-time{display:grid}.cook-time strong{font-family:var(--font-display);font-weight:500;font-size:2rem;line-height:1;letter-spacing:-.02em;color:var(--accent)}.cook-time span{font-weight:700;font-size:.95rem;color:var(--ink-2)}.cook-people{display:flex;flex-wrap:wrap;gap:8px}.cook-people span{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;background:var(--paper);font-weight:700;font-size:.95rem}.cook-people.large span{font-size:1.1rem}.done-button{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:2px solid var(--line-strong);color:var(--ink-4);background:var(--card);transition:all var(--dur) var(--ease-spring)}.done-button.on{background:var(--moss);border-color:var(--moss);color:#fff}.done-button.large{width:auto;height:64px;padding:0 24px;border-radius:999px;grid-auto-flow:column;gap:10px;font-weight:800;font-size:1.15rem}.cook-dishes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.cook-dish{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center;padding:8px;border-radius:var(--r-lg);background:var(--paper);text-align:left;border:1px solid transparent;transition:border-color var(--dur),background var(--dur);position:relative}.cook-dish:hover{background:var(--card-2);border-color:var(--line-strong)}.cook-dish-image{width:120px;height:96px;border-radius:16px}.cook-dish-copy{display:grid;gap:8px;min-width:0}.cook-dish-copy strong{font-family:var(--font-display);font-weight:500;font-size:1.5rem;line-height:1.05;letter-spacing:-.02em}.cook-count{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:4px 12px;border-radius:999px;background:var(--ink);color:var(--card);font-weight:800;font-size:1.05rem}.cook-dish-people{position:absolute;right:12px;bottom:12px;display:flex}.cook-dish-people .avatar{margin-left:-8px}.cook-note-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;border-radius:var(--r-lg);background:var(--accent-soft)}.cook-note-row p{font-size:1.05rem;line-height:1.4;color:var(--accent-ink);font-weight:600}.cook-empty{display:grid;justify-items:center;gap:10px;padding:60px 20px;text-align:center;color:var(--ink-3);border:2px dashed var(--line-strong);border-radius:var(--r-xl)}.cook-empty strong{font-family:var(--font-display);font-weight:500;font-size:1.8rem;color:var(--ink)}.cook-out{color:var(--ink-3);font-family:var(--font-display);font-style:italic;font-size:1.05rem}.cook-snacks{display:grid;gap:12px}.cook-snacks h2{font-family:var(--font-display);font-weight:500;font-size:1.5rem}.cook-snack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.cook-snack-grid article{display:grid;gap:4px;padding:16px 18px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}.cook-snack-grid strong{font-family:var(--font-display);font-weight:500;font-size:1.3rem}.cook-snack-grid span{font-weight:800;color:var(--accent)}.cook-snack-grid small{color:var(--ink-3)}.cook-recipe-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center}.cook-recipe-image{width:100%;aspect-ratio:4 / 3;border-radius:var(--r-xl);box-shadow:var(--shadow-2)}.cook-recipe-copy{display:grid;gap:14px}.cook-recipe-copy .display{font-size:clamp(2rem,1.6rem + 2.4vw,3.4rem)}.cook-recipe-actions{display:flex;flex-wrap:wrap;gap:10px}.cook-video{width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--r-xl);background:#000}.cook-quantities{display:grid;gap:12px;padding:20px;border-radius:var(--r-xl);background:var(--card);border:1px solid var(--line)}.cook-quantities h2{font-family:var(--font-display);font-weight:500;font-size:1.6rem}.cook-scale-note{margin-top:-8px;font-size:.85rem;font-weight:600;color:var(--ink-3)}.cook-quantities ul{display:grid;gap:2px}.cook-quantities li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:1.15rem;font-weight:600}.cook-quantities li:last-child{border-bottom:0}.cook-ingredient-prep{font-style:normal;font-weight:500;font-size:.9rem;color:var(--ink-3)}.cook-quantities li strong{font-family:var(--font-display);font-weight:500;font-size:1.45rem;color:var(--accent);white-space:nowrap}.cook-ingredient-visual{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--paper);font-size:1.4rem;overflow:hidden}.cook-ingredient-visual img{width:100%;height:100%;object-fit:contain}.cook-note{display:grid;gap:8px;padding:20px;border-radius:var(--r-xl);background:var(--accent-soft);color:var(--accent-ink)}.cook-note h2{font-family:var(--font-display);font-weight:500}.cook-note p{font-size:1.15rem;line-height:1.5;font-weight:600}@media(max-width:760px){.cook-recipe-hero{grid-template-columns:1fr}.cook-meal-head{grid-template-columns:minmax(0,1fr) auto}.cook-people{grid-column:1 / -1}.cook-dishes{grid-template-columns:1fr}.cook-dish{grid-template-columns:92px minmax(0,1fr);gap:10px}.cook-dish-image{width:92px;height:78px;border-radius:12px}.cook-dish-copy strong{font-size:1.2rem}.cook-dish-people{position:static;grid-column:1 / -1;justify-content:flex-end}.cook-handoff{grid-template-columns:auto minmax(0,1fr)}.cook-handoff .audio-button{grid-column:2;justify-self:start}}.cook-mode .alt-name{color:var(--ink-2);font-weight:600}.cook-mode .alt-lg{font-size:1.4rem;line-height:1.35}.cook-mode .alt-xl{font-size:2.1rem;line-height:1.2;margin-top:4px}.cook-mode .cook-quantities .alt-lg{margin-top:2px}.admin-list{display:grid;gap:14px}.admin-house{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow-1);min-width:0}.admin-house-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;min-width:0}.admin-house-name{display:grid;gap:2px;min-width:0;flex:1 1 200px}.admin-house-name strong{font-family:var(--font-display);font-weight:500;font-size:1.25rem;letter-spacing:-.01em}.admin-house-name small{color:var(--ink-3);font-size:.74rem}.admin-house-name code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;word-break:break-all}.admin-counts{display:flex;flex-wrap:wrap;gap:6px}.admin-count{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:var(--paper-2);color:var(--ink-2);font-size:.72rem;font-weight:600}.admin-members{display:grid;gap:6px}.admin-member{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);min-width:0}.admin-member-who{display:grid;gap:1px;min-width:0;flex:1 1 auto}.admin-member-who strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-member-who small{color:var(--ink-3);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-member .access-role{margin-left:0}.admin-remove{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--ink-3);flex:none}.admin-remove:hover{background:var(--paper-3);color:var(--accent)}.admin-house-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-house-actions .access-copy{margin-left:0}.admin-outcome{display:grid;gap:10px}.admin-outcome .lede{display:flex;align-items:flex-start;gap:8px}@media(max-width:520px){.admin-member{flex-wrap:wrap}.admin-member-who{flex-basis:100%}}.admin-waiting{display:grid;gap:8px;margin-bottom:8px}.admin-waiter{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;padding:11px 14px;border:1px dashed var(--line-strong);border-radius:var(--r-md)}.admin-waiter>span:first-child{display:grid;gap:1px;min-width:0}.admin-waiter strong{font-size:.9rem;word-break:break-word}.admin-waiter small{color:var(--ink-3);font-size:.76rem;word-break:break-all}.admin-invited{display:grid;gap:4px;padding-top:10px;border-top:1px dashed var(--line)}.admin-invitee.lapsed{opacity:.6}.admin-pill{margin-left:auto;text-transform:none;cursor:help}.admin-pill.ok{background:var(--moss-soft, var(--paper-3));color:var(--moss)}.admin-pill.bad{background:color-mix(in srgb,#c2481f 14%,transparent);color:#c2481f}.admin-email{display:grid;gap:10px;margin-bottom:18px}.admin-email-test{display:flex;gap:8px;flex-wrap:wrap}.admin-email-test input{flex:1 1 220px;min-width:0}.admin-email-result{margin:0;font-size:.82rem;font-weight:600;overflow-wrap:anywhere;animation:admin-rise .35s cubic-bezier(.22,1.3,.36,1)}.admin-email-result.ok{color:var(--moss)}.admin-email-result.bad{color:#c2481f}.admin-email-result small{font-weight:400;color:var(--ink-2)}.admin-email-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:var(--ink-2);justify-self:start}.admin-chevron{transition:transform .3s cubic-bezier(.22,1.3,.36,1)}.admin-chevron.open{transform:rotate(180deg)}.admin-email-log{display:grid;gap:2px;animation:admin-rise .35s cubic-bezier(.22,1.3,.36,1)}.admin-email-row{display:grid;grid-template-columns:70px 80px minmax(0,1fr) minmax(0,1.4fr);gap:8px;font-size:.76rem;padding:5px 0;border-bottom:1px solid var(--line)}.admin-email-row>span{min-width:0;overflow-wrap:anywhere}@media(max-width:640px){.admin-email-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"when kind result" "to to to";gap:2px 10px;padding:8px 0}.admin-email-row>span:nth-child(1){grid-area:when;color:var(--ink-3)}.admin-email-row>span:nth-child(2){grid-area:kind}.admin-email-row>span:nth-child(3){grid-area:to;font-weight:600}.admin-email-row>span:nth-child(4){grid-area:result;text-align:right}}.admin-email-row.bad span:last-child{color:#c2481f}.admin-email-to{min-width:0}@keyframes admin-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.admin-email-result,.admin-email-log{animation:none}}.kitchen{display:grid;gap:16px;max-width:1360px;margin:0 auto;padding:8px 0 80px}.kitchen-tabs{display:flex;flex-wrap:wrap;gap:8px}.kitchen-chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink-2);font:inherit;font-weight:600;font-size:.86rem;cursor:pointer;transition:transform var(--dur) var(--ease-spring),background var(--dur),color var(--dur),border-color var(--dur)}.kitchen-chip:hover{border-color:var(--ink-3);color:var(--ink)}.kitchen-chip:active{transform:scale(.94)}.kitchen-chip.active{background:var(--ink);color:var(--card);border-color:var(--ink)}.kitchen-chip small{color:var(--ink-4);font-weight:600;font-size:.72rem;font-variant-numeric:tabular-nums}.kitchen-chip.active small{color:color-mix(in srgb,var(--card) 70%,transparent)}.kitchen-chip.sm{min-height:28px;padding:4px 11px;font-size:.78rem}.kitchen-chip.ghost{border-color:transparent;background:transparent}.kitchen-chip.dim:not(.active){opacity:.45}.kitchen-panel{animation:kitchen-rise var(--dur) var(--ease-out)}@keyframes kitchen-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.kitchen-panel{animation:none}}.kcat{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}.kcat-main{display:grid;gap:12px;min-width:0}.kcat-facets{display:grid;gap:8px}.kcat-facet{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.kcat-facet-label{width:64px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.kcat-count{margin-left:auto;color:var(--ink-3);font-size:.8rem}.kcat-sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow-x:auto}.kcat-table{border-collapse:collapse;width:100%;min-width:820px}.kcat-table th{text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:12px 10px 8px;border-bottom:1px solid var(--line-strong);white-space:nowrap}.kcat-table td{padding:0 10px;height:38px;border-bottom:1px solid var(--line);white-space:nowrap}.kcat-table .num{text-align:right}.kcat-table tbody tr{cursor:pointer;transition:background var(--dur)}.kcat-table tbody tr:hover td,.kcat-table tbody tr:focus-visible td{background:color-mix(in srgb,var(--ink) 4%,transparent)}.kcat-name{font-weight:600}.kcat-source{display:inline-flex;align-items:center;gap:8px}.kcat-source i{display:inline-block;height:6px;border-radius:3px;background:var(--c-protein);transition:width .48s var(--ease-spring)}.kcat-none{color:var(--ink-4)}.kcat-status{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--paper-2);color:var(--ink-3)}.kcat-status.confirmed{background:var(--moss);color:#fff}.kcat-status.tagged,.kcat-status.verified{background:var(--moss-soft);color:var(--moss-ink)}.kcat-status.mapped{background:var(--gold-soft);color:var(--gold)}.kcat-matrix{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;overflow-x:auto;position:sticky;top:16px}.kcat-matrix table{border-collapse:separate;border-spacing:3px;width:100%}.kcat-matrix th{font-size:.64rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);text-align:center}.kcat-matrix th[scope=row]{text-align:left;white-space:nowrap;padding-right:6px}.kcat-cell{width:100%;min-height:32px;border-radius:8px;border:0;font:inherit;font-family:var(--font-display);font-size:1rem;cursor:pointer;background:var(--paper-2);color:var(--ink-2);transition:transform var(--dur) var(--ease-spring),outline-color var(--dur);outline:2px solid transparent}.kcat-cell:hover{transform:scale(1.1)}.kcat-cell.zero{background:var(--accent-soft);color:var(--accent)}.kcat-cell.one{background:var(--gold-soft);color:var(--gold)}.kcat-cell.on{outline-color:var(--ink)}@media(max-width:1000px){.kcat{grid-template-columns:1fr}.kcat-matrix{position:static}}
