.tab.active[data-v-867a6d3e]{color:var(--fg);font-weight:600}.tab.active[data-v-867a6d3e]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--fg)}.share-card .dish-art[data-v-335712ba]{border:0;border-radius:0;border-bottom:1px solid var(--fg)}:root{--bg: oklch(98% .004 95);--surface: oklch(100% .002 95);--fg: oklch(20% .018 70);--muted: oklch(48% .012 70);--border: oklch(90% .006 95);--accent: oklch(52% .1 28);--danger: oklch(48% .16 28);--lv-easy: oklch(55% .1 150);--lv-mid: oklch(60% .11 85);--lv-hard: oklch(50% .15 28);--accent-soft: color-mix(in oklch, var(--accent) 13%, transparent);--danger-soft: color-mix(in oklch, var(--danger) 12%, transparent);--fg-soft: color-mix(in oklch, var(--fg) 6%, transparent);--food: var(--accent);--food-soft: var(--accent-soft);--font-display: "Iowan Old Style", "Charter", Georgia, "Songti SC", "Noto Serif SC", "SimSun", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace;--fs-h1: clamp(32px, 4.5vw, 54px);--fs-h2: clamp(24px, 3vw, 34px);--fs-h3: 18px;--fs-lead: 17px;--fs-body: 15px;--fs-meta: 12px;--gap-xs: 8px;--gap-sm: 12px;--gap-md: 20px;--gap-lg: 36px;--gap-xl: 60px;--container: 1120px;--gutter: 28px;--radius: 8px;--radius-lg: 12px}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}html,body{touch-action:manipulation;overscroll-behavior:none;overflow-x:hidden;max-width:100%}#app{overflow-x:clip}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}h1,h2,h3,h4{font-family:var(--font-display);margin:0;font-weight:700;letter-spacing:-.005em;text-wrap:balance}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.stack{display:flex;flex-direction:column}.stack>*+*{margin-top:var(--gap-md)}.row{display:flex;align-items:center;gap:var(--gap-md)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md)}.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}.eyebrow:before{content:"";width:22px;height:1px;background:var(--accent);flex:0 0 auto}.h1{font-size:var(--fs-h1);line-height:1.08}.h2{font-size:var(--fs-h2);line-height:1.12}.lead{font-size:var(--fs-lead);color:var(--muted);max-width:60ch}.meta{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.appbar{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--fg)}.appbar-inner{display:flex;align-items:center;gap:16px;padding-block:15px}.logo{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.logo .dot{color:var(--accent)}.spacer{flex:1}.search{position:relative;flex:1;max-width:420px}.search input{width:100%;padding:10px 16px 10px 36px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--fg);font:inherit;font-size:14px}.search input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;font-size:14px;font-weight:600;letter-spacing:.005em;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}.btn-primary:hover{background:color-mix(in oklch,var(--accent) 86%,black);border-color:color-mix(in oklch,var(--accent) 86%,black)}.btn-secondary{background:transparent;color:var(--fg);border-color:var(--fg)}.btn-secondary:hover{background:var(--fg);color:var(--surface)}.btn-ghost{background:transparent;color:var(--fg);border-color:transparent;padding-inline:10px}.btn-ghost:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.btn-danger{background:transparent;color:var(--danger);border-color:transparent;padding-inline:10px}.btn-danger:hover{background:var(--danger-soft)}.btn-danger-solid{background:var(--danger);color:var(--surface);border-color:var(--danger)}.btn-danger-solid:hover{background:color-mix(in oklch,var(--danger) 86%,black)}.btn-sm{padding:8px 14px;font-size:13px}.pills{display:flex;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--border)}.pill-btn{position:relative;padding:9px 0;border:0;background:transparent;color:var(--muted);font-size:14px;font-weight:500;transition:color .15s ease}.pill-btn:hover{color:var(--fg)}.pill-btn[aria-selected=true]{color:var(--fg);font-weight:600}.pill-btn[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--fg)}.list-head{padding-block:44px 26px}.list-head .lead{margin-top:12px}.list-head .lead .num{color:var(--fg)}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 28px;padding-bottom:64px}.recipe-card{cursor:pointer}.recipe-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.dish-art{aspect-ratio:4 / 3;position:relative;overflow:hidden;display:grid;place-items:center;background:color-mix(in oklch,var(--accent) 6%,var(--surface));border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s ease}.dish-art svg.art{width:48%;height:48%}.recipe-card:hover .dish-art{border-color:var(--fg)}.dish-art .dish-label{display:none}.recipe-card-body{padding-top:16px}.recipe-card-body h3{font-size:23px;font-weight:700;margin-bottom:8px;line-height:1.14;transition:color .15s ease}.recipe-card:hover h3{color:var(--accent)}.recipe-card-body .desc{color:var(--muted);font-size:14px;line-height:1.55;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta{display:flex;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;color:var(--muted);letter-spacing:.02em}.recipe-meta>*+*:before{content:"·";margin:0 9px;color:var(--border)}.recipe-meta .m{display:inline-flex;align-items:center;font-size:12px;color:var(--muted)}.recipe-meta .m svg{display:none}.lv-dot{display:none}.tag{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--accent)}.recipe-meta .tag{color:var(--muted);letter-spacing:.04em}.empty-state{text-align:center;padding:80px 24px}.empty-state .empty-icon{width:48px;height:48px;margin:0 auto 18px;color:var(--muted)}.empty-state h3{font-size:20px;margin-bottom:8px}.empty-state p{color:var(--muted);font-size:14px;max-width:32ch;margin:0 auto}.detail-body{padding-block:36px 80px;max-width:880px;margin-inline:auto}.detail-hero{border-radius:var(--radius);overflow:hidden;border:1px solid var(--fg)}.detail-hero .dish-art{aspect-ratio:16 / 8;border:0;border-radius:0}.detail-hero .dish-art svg.art{width:26%;height:26%}.detail-title{margin-top:32px}.detail-title h1{font-size:var(--fs-h1);line-height:1.08}.detail-title .desc{color:var(--muted);font-size:16px;margin-top:12px;max-width:60ch}.detail-stats{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin-top:22px;padding-block:14px;border-top:1px solid var(--fg);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:13px;color:var(--fg)}.detail-stats>*+*:before{content:"·";margin:0 12px;color:var(--border)}.stat-chip{display:inline-flex;align-items:center;gap:8px;font-size:13px}.stat-chip svg{display:none}.stat-chip .num{font-weight:600}.stat-chip .lv-dot{display:none}.detail-col{display:grid;grid-template-columns:1fr 1.6fr;gap:var(--gap-xl);margin-top:40px;align-items:start}.panel{padding:0}.panel+.panel{margin-top:40px}.panel h2{font-size:16px;font-weight:700;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--fg);display:flex;align-items:baseline;gap:8px;letter-spacing:.02em}.panel h2 .count{font-family:var(--font-mono);font-size:12px;color:var(--muted);font-weight:500}.ingr-row{display:flex;align-items:baseline;gap:10px;padding:9px 0}.ingr-row .name{font-size:15px}.ingr-row .fill{flex:1;min-width:20px;border-bottom:1px dotted var(--border);transform:translateY(-3px)}.ingr-row .qty{font-family:var(--font-mono);font-size:13px;color:var(--muted);white-space:nowrap}.step-list{counter-reset:step}.step{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.step:last-child{border-bottom:0}.step-num{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;font-family:var(--font-display);font-size:17px;font-style:italic;color:var(--accent)}.step p{font-size:15px;line-height:1.7}.timer{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.timer .clock{font-family:var(--font-mono);font-size:32px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:.01em}@media(max-width:920px){.recipe-grid{grid-template-columns:1fr 1fr}.detail-col{grid-template-columns:1fr}.appbar-inner{flex-wrap:wrap}.search{order:3;flex-basis:100%;max-width:none}.detail-hero .dish-art{aspect-ratio:16 / 10}.detail-hero .dish-art svg.art{width:40%;height:40%}}@media(max-width:560px){.recipe-grid{grid-template-columns:1fr}}.form-body{padding-block:36px 80px;max-width:720px;margin-inline:auto}.form-head{margin-bottom:30px}.form-head h1{font-size:var(--fs-h1);margin-bottom:8px}.form-head .lead{font-size:15px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:22px}.field>label{font-size:12px;color:var(--muted);font-weight:500;font-family:var(--font-mono);letter-spacing:.04em}.field .req{color:var(--accent)}.input,.textarea{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font:inherit;font-size:15px}.input:focus,.textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.textarea{min-height:76px;resize:vertical;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.field-row{grid-template-columns:1fr}}.hint{font-size:12px;color:var(--muted)}.dropdown{position:relative}.dropdown-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font:inherit;font-size:15px;text-align:left;transition:border-color .15s ease}.dropdown-btn:hover,.dropdown-btn[aria-expanded=true]{border-color:var(--fg)}.dropdown-btn .chev{width:15px;height:15px;color:var(--muted);flex:0 0 auto;transition:transform .15s ease}.dropdown-btn[aria-expanded=true] .chev{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:50;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--fg);border-radius:var(--radius);box-shadow:0 18px 44px -26px #1b150d80}.dropdown-menu li button{width:100%;text-align:left;padding:9px 12px;border:0;border-radius:var(--radius);background:transparent;color:var(--fg);font:inherit;font-size:14px;transition:background .12s ease,color .12s ease}.dropdown-menu li button:hover{background:var(--fg-soft)}.dropdown-menu li button[aria-selected=true]{color:var(--accent);font-weight:600}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg-btn{padding:9px 16px;border-radius:var(--radius);font-size:14px;border:1px solid var(--border);background:transparent;color:var(--fg);transition:background .15s ease,border-color .15s ease,color .15s ease}.seg-btn:hover{border-color:var(--fg)}.seg-btn[aria-pressed=true]{background:var(--fg);border-color:var(--fg);color:var(--surface);font-weight:600}.art-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:640px){.art-pick{grid-template-columns:repeat(2,1fr)}}.art-opt{position:relative;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;background:var(--surface);padding:0;transition:border-color .15s ease}.art-opt:hover{border-color:var(--fg)}.art-opt .dish-art{aspect-ratio:1 / 1;border:0;border-radius:0}.art-opt .dish-art svg.art{width:56%;height:56%}.art-opt[aria-pressed=true]{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}.list-edit{display:flex;flex-direction:column;gap:10px}.list-edit .row{gap:8px}.list-edit .input,.list-edit .textarea{flex:1}.icon-btn{flex:0 0 auto;width:38px;height:38px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--muted);display:grid;place-items:center;font-size:18px;line-height:1;transition:color .15s ease,border-color .15s ease,background .15s ease}.icon-btn:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.add-row-btn{align-self:flex-start;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--fg);background:transparent;color:var(--fg);font-size:13px;font-weight:500;transition:color .15s ease,background .15s ease}.add-row-btn:hover{background:var(--fg);color:var(--surface)}.form-error{font-size:13px;color:var(--danger)}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:8px}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#1b150d73;padding:24px}.dialog{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--fg);border-radius:var(--radius);padding:28px}.dialog h3{font-size:20px;margin-bottom:8px}.dialog p{color:var(--muted);font-size:14px;margin-bottom:24px}.dialog-actions{display:flex;gap:12px;justify-content:flex-end}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:8px;background:var(--fg);color:var(--surface);padding:12px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;animation:toast-in .22s ease}.toast svg{width:16px;height:16px;color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.tabs{display:flex;gap:24px}.tab{position:relative;padding:6px 0;border:0;background:transparent;color:var(--muted);font-size:15px;font-weight:500;transition:color .15s ease}.tab:hover{color:var(--fg)}.tab[aria-selected=true]{color:var(--fg);font-weight:600}.tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--fg)}.sheet{width:100%;max-width:560px;max-height:88vh;overflow:auto;background:var(--surface);border:1px solid var(--fg);border-radius:var(--radius)}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--fg);position:sticky;top:0;background:var(--surface);z-index:1}.sheet-head h2{font-size:18px}.sheet-body{padding:24px}.capture-note{color:var(--muted);font-size:13px;text-align:center;margin-top:14px}.capture-zone{border:1px dashed var(--border);border-radius:var(--radius);aspect-ratio:16 / 9;display:grid;place-items:center;place-content:center;cursor:pointer;text-align:center;background:var(--fg-soft);transition:border-color .15s ease}.capture-zone:hover{border-color:var(--fg)}.capture-zone svg{width:34px;height:34px;margin:0 auto 12px;color:var(--muted)}.capture-zone .big{font-size:15px;font-weight:600;margin-bottom:4px}.capture-zone .sub{color:var(--muted);font-size:13px}.spinner{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:14px}.spinner:before{content:"";width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}.recog{border:1px solid var(--border);border-radius:var(--radius);padding:18px}.recog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:560px){.recog-grid{grid-template-columns:1fr}}.capture-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:18px}.capture-demo{font-size:12px;color:var(--muted);text-align:center;margin-top:16px}.chronicle-body,.report-body{padding-block:36px 80px;max-width:760px;margin-inline:auto}.chron-head,.report-head{margin-bottom:24px}.chron-head .lead,.report-head .lead{margin-top:12px}.chron-modes{display:flex;gap:8px;margin-bottom:26px;flex-wrap:wrap}.chron-stat{display:flex;gap:28px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--fg);border-bottom:1px solid var(--border);margin-bottom:28px;font-family:var(--font-mono);font-size:13px;color:var(--muted)}.chron-stat b{color:var(--fg);font-weight:600;margin-left:4px}.chron-group{margin-bottom:34px}.chron-group h3{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:4px;padding-bottom:8px;border-bottom:1px solid var(--fg);display:flex;align-items:baseline;gap:8px}.chron-group h3 .count{font-family:var(--font-mono);font-size:12px;color:var(--muted);font-weight:500}.chron-entry{display:flex;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer}.chron-entry:hover .ce-name{color:var(--accent)}.chron-entry .ce-date{font-family:var(--font-mono);font-size:12px;color:var(--muted);width:52px;flex:0 0 auto}.chron-entry .ce-thumb{width:52px;height:52px;border:1px solid var(--border);border-radius:var(--radius);flex:0 0 auto;display:grid;place-items:center;background:color-mix(in oklch,var(--accent) 6%,var(--surface));overflow:hidden}.chron-entry .ce-thumb svg{width:70%;height:70%}.chron-entry .ce-main{flex:1;min-width:0}.chron-entry .ce-name{font-family:var(--font-display);font-size:17px;font-weight:700;transition:color .15s ease}.chron-entry .ce-tags{font-size:12px;color:var(--muted);margin-top:2px}.chron-entry .ce-meta{font-family:var(--font-mono);font-size:12px;color:var(--muted);text-align:right;flex:0 0 auto}.report-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:32px}.report-stat{background:var(--surface);padding:20px 18px}.report-stat .rs-num{font-family:var(--font-display);font-size:34px;font-weight:700;line-height:1}.report-stat .rs-label{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-top:8px}.report-sec{margin-bottom:34px}.report-sec h3{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--fg)}.bars{display:flex;flex-direction:column;gap:10px}.bar-row{display:grid;grid-template-columns:52px 1fr 40px;gap:12px;align-items:center}.bar-label{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.bar-track{height:16px;background:var(--fg-soft);border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);border-radius:99px}.bar-val{font-family:var(--font-mono);font-size:12px;color:var(--muted);text-align:right}.top-list{list-style:none}.top-list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);font-size:14px}.top-list li .rk{font-family:var(--font-display);font-style:italic;color:var(--accent);font-size:19px;width:26px;flex:0 0 auto}.top-list li .tn{flex:1;min-width:0}.top-list li .tv{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.report-actions{margin-top:6px}.empty-note{color:var(--muted);font-size:14px}.ingr-mini{font-size:13px;color:var(--muted);line-height:1.8}.share-card{border:1px solid var(--fg);background:var(--surface);border-radius:var(--radius-lg);overflow:hidden}.share-card .dish-art{aspect-ratio:16 / 9;border:0;border-radius:0;border-bottom:1px solid var(--fg)}.share-card .dish-art svg.art{width:38%;height:38%}.share-card-body{padding:20px 22px 22px}.share-card-body h3{font-size:27px;margin-bottom:4px;line-height:1.1}.share-card-meta{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-bottom:6px}.share-sec{margin-top:16px}.share-sec h4{font-size:13px;font-weight:700;letter-spacing:.05em;margin-bottom:8px}.share-sec .ingr-mini{font-size:13px;color:var(--muted);line-height:1.8}.share-foot{margin-top:18px;padding-top:13px;border-top:1px solid var(--fg);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--muted);letter-spacing:.05em}.share-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:18px}.stars{letter-spacing:2px;font-size:15px;white-space:nowrap}.st-on{color:var(--accent)}.st-off{color:var(--border)}.star-pick{display:inline-flex;gap:4px}.star-pick button{border:0;background:transparent;font-size:22px;line-height:1;padding:2px 4px;color:var(--border);transition:color .12s ease}.star-pick button.on,.star-pick button:hover{color:var(--accent)}.detail-actions{display:flex;align-items:center;gap:14px;margin-top:22px;flex-wrap:wrap}.detail-actions .hint{color:var(--muted);font-size:13px}.st-chip{display:inline-flex;align-items:center;gap:7px;font-size:13px}@media(max-width:920px){.tabs{order:2;flex-basis:100%;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border)}.report-stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.report-stat-grid{grid-template-columns:1fr}}
