:root{--color-bg: #ffffff;--color-text: #2a2a2a;--color-text-muted: #6b6b6b;--color-accent: #c75d34;--color-accent-soft: #f3e9e2;--color-border: #ececec;--color-card: #fafafa;--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Helvetica, Arial, sans-serif;--font-display: "Fraunces", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--max-content: 1400px;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--space-7: 4rem;--radius: 8px;--radius-lg: 12px}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,p,ul,ol,figure{margin:0}img{max-width:100%;display:block;height:auto}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--color-text);text-decoration:none}a:hover{color:var(--color-accent)}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1}h2{font-size:1.6rem;line-height:1.2}h3{font-size:1.2rem}.app{min-height:100vh}main{min-width:0}.nav-shell{background:var(--color-bg);position:sticky;top:0;z-index:10}.nav-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--space-4) var(--space-5) var(--space-5)}.nav-masthead{display:inline-flex;align-items:baseline;gap:.5rem;font-family:var(--font-display);line-height:1;white-space:nowrap}.masthead-prefix{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text)}.masthead-name{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400;font-style:italic;color:var(--color-accent)}.nav-search{justify-self:end;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);background:var(--color-bg);transition:background .15s ease,color .15s ease}.nav-search:hover{background:var(--color-accent-soft);color:var(--color-accent)}.nav-strip{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-text);border-bottom:1px solid var(--color-text);overflow-x:auto;white-space:nowrap}.nav-strip-link{font-family:var(--font-sans);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--color-text);position:relative;padding-block:2px}.nav-strip-link:hover,.nav-strip-link.active{color:var(--color-accent)}.nav-strip-link.active:after{content:"";position:absolute;left:0;right:0;bottom:calc(-1 * var(--space-3) - 1px);height:2px;background:var(--color-accent)}.nav-strip-list a.active{color:var(--color-accent)}.nav-strip-divider{display:inline-block;width:1px;height:18px;background:var(--color-border)}.nav-strip-label{font-family:var(--font-display);font-style:italic;color:var(--color-text-muted);font-size:.95rem}.nav-strip-list{display:flex;gap:var(--space-4);list-style:none;padding:0;margin:0}.nav-strip-list a{font-family:var(--font-sans);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem}.nav-strip-list a:hover{color:var(--color-accent)}@media(max-width:700px){.nav-top{grid-template-columns:auto 1fr auto;padding:var(--space-3)}.nav-spacer{display:none}.nav-masthead{justify-self:start}.nav-strip{gap:var(--space-3);padding-inline:var(--space-3)}}.hero{padding:var(--space-6) var(--space-5) var(--space-5);text-align:center;max-width:880px;margin:0 auto}.hero h1{margin-bottom:var(--space-4)}.hero-search{position:relative;margin-top:0;display:flex;align-items:center;gap:6px;max-width:520px;margin-left:auto;margin-right:auto;padding:4px 4px 4px 12px;background:#fff;border:1px solid var(--color-border);border-radius:999px;transition:border-color .15s ease,box-shadow .15s ease}.hero-search:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.hero-search-icon{color:var(--color-text-muted);flex-shrink:0;width:16px;height:16px}.hero-search input{flex:1;padding:8px 4px;border:none;background:transparent;font:inherit;font-size:.95rem;outline:none;min-width:0}.hero-search input::placeholder{color:var(--color-text-muted);font-style:italic}.hero-search-go{padding:7px 16px;background:var(--color-accent);color:#fff;border:none;border-radius:999px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s ease}.hero-search-go:hover{background:#a64f2c}.hero-search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border-radius:var(--radius-lg);box-shadow:0 10px 40px #0000001f;border:1px solid var(--color-border);z-index:30;max-height:440px;overflow-y:auto;text-align:left}.hero-search-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--color-text);border-bottom:1px solid var(--color-border);text-decoration:none}.hero-search-item:last-of-type{border-bottom:none}.hero-search-item:hover{background:var(--color-accent-soft);color:var(--color-text)}.hero-search-item img,.hero-search-thumb-fallback{width:52px;height:52px;object-fit:cover;border-radius:6px;flex-shrink:0}.hero-search-thumb-fallback{background:var(--color-accent-soft)}.hero-search-item span{font-size:1rem;font-weight:500;font-family:var(--font-sans)}.hero-search-empty{padding:var(--space-4);text-align:center;color:var(--color-text-muted);font-style:italic;font-size:.95rem}.hero-search-more{display:block;padding:var(--space-3) var(--space-4);text-align:center;color:var(--color-accent);font-weight:600;font-size:.9rem;border-top:1px solid var(--color-border);background:var(--color-card)}.hero-search-more:hover{background:var(--color-accent-soft);color:var(--color-accent)}.section{padding:var(--space-5) var(--space-5) var(--space-6);max-width:var(--max-content);margin:0 auto}.section-title{text-align:center;margin-bottom:var(--space-5)}.section-kicker{text-align:center;font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--color-text-muted);margin-top:calc(var(--space-5) * -1 + var(--space-1));margin-bottom:var(--space-6)}.section-title-row{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-bottom:var(--space-5);position:relative}.section-title-row .section-title{margin-bottom:0}.section-title-row .section-title-action{position:absolute;right:0;font-size:.82rem}.path-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:800px){.path-row{grid-template-columns:1fr}}.path-card{position:relative;min-height:340px;border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:flex-end;padding:var(--space-5);color:#fff;text-decoration:none;background-color:var(--color-accent-soft);background-size:cover;background-position:center;transition:transform .2s ease,box-shadow .2s ease}.path-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000001a,#000c);z-index:1}.path-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #00000026;color:#fff}.path-card-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:var(--space-2)}.path-card-eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;font-weight:600;opacity:.92}.path-card-title{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,2.6rem);font-weight:400;line-height:1.05}.path-card-meta{font-family:var(--font-display);font-style:italic;font-size:1rem;opacity:.88}.path-card-cta{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-top:var(--space-2);align-self:flex-start;border-bottom:1px solid rgba(255,255,255,.55);padding-bottom:2px;transition:border-color .15s ease}.path-card:hover .path-card-cta{border-bottom-color:#fff}.recent-section{padding-top:var(--space-3)}.recent-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4)}.recent-title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1.2rem;color:var(--color-text-muted);text-align:left}.recent-link{font-size:.85rem;font-weight:500;color:var(--color-accent);text-decoration:none}.recent-link:hover{text-decoration:underline}.recent-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}@media(max-width:900px){.recent-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.recent-row{grid-template-columns:1fr}}.course-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.course-tile{position:relative;aspect-ratio:3 / 2;border-radius:var(--radius);overflow:hidden;background-size:cover;background-position:center;background-color:var(--color-accent-soft);display:block;text-decoration:none;transition:transform .15s ease}.course-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.65) 100%);z-index:1}.course-tile:hover{transform:translateY(-2px)}.course-tile .course-tile-label{position:absolute;bottom:var(--space-2);left:var(--space-3);color:#fff;font-family:var(--font-display);font-size:1.05rem;font-weight:500;z-index:2;line-height:1.1}.course-tile.is-active:before{content:"";position:absolute;inset:0;border:3px solid var(--color-accent);border-radius:var(--radius);z-index:3;pointer-events:none}@media(max-width:900px){.course-strip{grid-template-columns:repeat(3,1fr)}}@media(max-width:500px){.course-strip{grid-template-columns:repeat(2,1fr)}}.filter-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-3)}.filter-row-label{font-family:var(--font-display);font-style:italic;color:var(--color-text-muted);font-size:.9rem;margin-right:var(--space-2)}.filter-dropdown{position:relative}.filter-dropdown-trigger{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#fff;border:1px solid var(--color-border);border-radius:999px;font:inherit;font-size:.82rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:border-color .12s ease,color .12s ease}.filter-dropdown-trigger:hover{border-color:var(--color-accent);color:var(--color-accent)}.filter-dropdown-trigger .chevron{width:10px;height:10px;flex-shrink:0;transition:transform .18s ease}.filter-dropdown.is-open .filter-dropdown-trigger{border-color:var(--color-accent);color:var(--color-accent)}.filter-dropdown.is-open .filter-dropdown-trigger .chevron{transform:rotate(180deg)}.filter-dropdown.has-active .filter-dropdown-trigger{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-soft)}.filter-dropdown-count{background:var(--color-accent);color:#fff;border-radius:999px;padding:1px 7px;font-size:.65rem;font-weight:600;margin-left:2px}.filter-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 24px #0000001a;padding:var(--space-2);min-width:220px;max-width:320px;display:none;max-height:360px;overflow-y:auto}.filter-dropdown.is-open .filter-dropdown-menu{display:block}.filter-dropdown-option{background:transparent;border:none;width:100%;font:inherit;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:7px 10px;border-radius:4px;font-size:.85rem;color:var(--color-text);cursor:pointer;text-decoration:none}.filter-dropdown-option:hover{background:var(--color-accent-soft);color:var(--color-accent)}.filter-dropdown-option.is-selected,.filter-dropdown-option.is-selected:hover{background:var(--color-accent);color:#fff}.filter-dropdown-option .count{color:var(--color-text-muted);font-size:.72rem;flex-shrink:0}.filter-dropdown-option.is-selected .count{color:#ffffffbf}.recipes-search-row{display:flex;align-items:center;gap:var(--space-3);max-width:var(--max-content);margin:0 auto var(--space-5);flex-wrap:wrap}.recipes-search-row input{flex:1;min-width:240px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;background:#fff;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.recipes-search-row input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.recipes-search-count{color:var(--color-text-muted);font-size:.9rem;white-space:nowrap}.recipe-card-wrap{border-radius:var(--radius);transition:box-shadow .15s ease,transform .15s ease}.recipe-card-wrap:hover{box-shadow:0 0 0 3px var(--color-accent)}.active-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:var(--max-content);margin:0 auto var(--space-5);align-items:center}.filter-chip{display:inline-flex;align-items:center;gap:.4rem;padding:var(--space-2) var(--space-3);background:var(--color-accent-soft);border:1px solid transparent;border-radius:999px;font:inherit;font-size:.85rem;color:var(--color-accent);cursor:pointer;transition:background .15s ease,border-color .15s ease}.filter-chip:hover{background:#fff;border-color:var(--color-accent)}.filter-chip-label{font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;opacity:.8}.filter-chip-value{font-weight:600}.filter-chip-x{font-size:1.1rem;line-height:1;margin-left:.2rem}.filter-chip-clear{background:transparent;color:var(--color-text-muted);font-size:.8rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border)}.filter-chip-clear:hover{border-color:var(--color-text-muted);background:var(--color-card)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.recipe-card{border-radius:var(--radius);overflow:hidden;background:var(--color-card)}.recipe-card img{aspect-ratio:4 / 3;object-fit:cover;width:100%}.recipe-card-body{padding:var(--space-3)}.recipe-card h3{font-size:1.05rem;margin-bottom:var(--space-1)}.recipe-card-meta{color:var(--color-text-muted);font-size:.85rem}.recipe-page{max-width:var(--max-content);margin:0 auto;padding:var(--space-5)}.recipe-header{text-align:center;margin-bottom:var(--space-5)}.recipe-header .breadcrumbs{color:var(--color-text-muted);font-size:.85rem;margin-bottom:var(--space-3)}.recipe-header h1{margin-bottom:var(--space-3)}.recipe-summary{font-size:1.15rem;color:var(--color-text-muted);max-width:640px;margin:0 auto var(--space-5)}.recipe-origin{display:inline-block;margin:calc(var(--space-5) * -1 + var(--space-2)) auto var(--space-5);padding:4px 12px;font-family:var(--font-sans);font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-muted);background:#fff}.recipe-origin a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}.recipe-origin a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.recipe-origin.origin-camelia{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.recipe-origin.origin-thai-cookbook{border-color:#c7a93a;color:#8a7320;background:#fdf9e9}.recipe-origin.origin-url-import{border-color:var(--color-border)}.recipe-origin.origin-recipe-skill{border-color:#b4b4d1;color:#6a6a8a;background:#f4f4fb}.recipe-hero{aspect-ratio:16 / 9;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-6);background:var(--color-accent-soft)}.recipe-hero img{width:100%;height:100%;object-fit:cover}.recipe-meta-strip{display:flex;gap:var(--space-5);justify-content:center;padding:var(--space-3) 0;border-block:1px solid var(--color-border);margin-bottom:var(--space-5);font-size:.9rem}.recipe-meta-strip dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.recipe-meta-strip dd{margin:0;font-weight:600}.recipe-body{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-6)}@media(max-width:800px){.recipe-body{grid-template-columns:1fr}}.recipe-ingredients h2,.recipe-method h2,.recipe-extras h2{font-size:1.1rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-accent);font-family:var(--font-sans)}.recipe-extras h2{margin-top:var(--space-6)}.recipe-extras{margin-block:var(--space-5)}.recipe-extras p,.recipe-extras li{text-wrap:pretty}.recipe-extras p{margin-bottom:var(--space-3)}.recipe-extras ul,.recipe-extras ol{padding-left:var(--space-5);margin-bottom:var(--space-3)}.recipe-extras li{margin-bottom:var(--space-2)}.recipe-extras h3{margin-top:var(--space-4);margin-bottom:var(--space-2);font-family:var(--font-sans);font-size:1rem}.recipe-extras a,.recipe-method a,.recipe-ingredients a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.recipe-extras a:hover,.recipe-method a:hover,.recipe-ingredients a:hover{text-decoration-thickness:2px}.recipe-ingredients ul{list-style:none;padding:0}.recipe-ingredients li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.recipe-method ol{padding-left:var(--space-4)}.recipe-method li{margin-bottom:var(--space-3);padding-left:var(--space-2)}.recipe-method h3,.recipe-ingredients h3{margin-top:var(--space-4);margin-bottom:var(--space-2);font-family:var(--font-sans);font-size:1rem}.menus-action-bar{display:flex;justify-content:center;margin-bottom:var(--space-5)}.plan-list{display:flex;flex-direction:column;gap:var(--space-3);max-width:760px;margin:0 auto}.plan-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.plan-card:hover{border-color:var(--color-accent);box-shadow:0 2px 12px #c75d3414;color:var(--color-text)}.plan-card-inner{flex:1;min-width:0}.plan-card-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);font-weight:600;margin-bottom:var(--space-1)}.plan-card-title{font-family:var(--font-display);font-size:1.3rem;font-weight:500;margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-card-covers{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--space-1)}.plan-card-meta{color:var(--color-text-muted);font-size:.8rem;font-style:italic}.plan-card-arrow{font-size:1.4rem;color:var(--color-accent);flex-shrink:0;opacity:.6;transition:opacity .15s ease,transform .15s ease}.plan-card:hover .plan-card-arrow{opacity:1;transform:translate(3px)}.meal-plan-page{max-width:1180px;margin:0 auto;padding:var(--space-5)}.meal-plan-header{text-align:center;margin-bottom:var(--space-4)}.meal-plan-header .breadcrumbs{color:var(--color-text-muted);font-size:.85rem;margin-bottom:var(--space-3)}.meal-plan-header h1{margin-bottom:var(--space-2);font-size:clamp(1.6rem,3vw,2.2rem)}.meal-plan-covers{font-family:var(--font-display);font-style:italic;color:var(--color-text-muted);font-size:1.05rem}.meal-plan-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.meal-plan-status{font-family:var(--font-display);font-style:italic;color:var(--color-text-muted);font-size:.92rem;margin-right:auto;display:flex;gap:6px;align-items:baseline}.meal-plan-status .status-today{color:var(--color-text);font-style:normal;font-weight:600}.meal-plan-status .status-count{color:var(--color-text-muted);font-style:italic}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:1px solid var(--color-border);background:#fff;font:inherit;font-size:.82rem;font-weight:500;color:var(--color-text);cursor:pointer;text-decoration:none;transition:border-color .15s ease,color .15s ease,background .15s ease}.btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover{background:#a64f2c;color:#fff;border-color:#a64f2c}.btn[disabled]{opacity:.5;cursor:not-allowed}.interview-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-5) var(--space-3);overflow-y:auto;z-index:100}.interview-backdrop[hidden]{display:none}.interview-panel{background:#fff;border-radius:var(--radius-lg);width:min(560px,100%);max-width:100%;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4);box-shadow:0 16px 48px #0003}.interview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.interview-header h2{font-size:1.1rem;margin:0;font-family:var(--font-sans)}.interview-close{appearance:none;background:transparent;border:none;font-size:1.6rem;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:0;flex-shrink:0}.interview-close:hover{color:var(--color-accent)}.interview-q{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.interview-q legend{font-family:var(--font-sans);font-size:.92rem;font-weight:600;color:var(--color-text);padding:0;margin-bottom:4px}.interview-options{display:flex;flex-wrap:wrap;gap:8px}.interview-options label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--color-border);border-radius:999px;cursor:pointer;font-size:.88rem;transition:border-color .12s ease,background .12s ease}.interview-options label:hover{border-color:var(--color-text-muted)}.interview-options input[type=radio]{accent-color:var(--color-accent)}.interview-options label:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.interview-q input[type=text]{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;font-size:.9rem}.interview-q input[type=text]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.interview-hint{font-size:.78rem;color:var(--color-text-muted);font-style:italic;margin:0}.interview-footer{display:flex;justify-content:flex-end;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3)}.suggestion-banner{margin-bottom:var(--space-4);padding:12px 16px;background:#fef4ee;border:1px solid #f5d0bb;border-left:3px solid #d97b4a;border-radius:var(--radius);display:flex;align-items:center;gap:12px;font-size:.88rem}.suggestion-banner[hidden]{display:none}.suggestion-banner .icon{font-size:1.1rem;flex-shrink:0}.suggestion-banner .text{flex:1;color:var(--color-text)}.suggestion-banner .text strong{color:#b85a30}.suggestion-banner .suggestion-btn{flex-shrink:0;background:#d97b4a;color:#fff;border:none;padding:6px 14px;border-radius:var(--radius);font:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.suggestion-banner .suggestion-btn:hover{background:#c66635}.parse-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-6);background:var(--color-card);border-radius:var(--radius)}.parse-empty code{background:#fff;padding:1px 6px;border-radius:3px;font-size:.85em}.plan-table-wrap{margin-bottom:var(--space-5);overflow-x:auto}.plan-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.plan-table th,.plan-table td{vertical-align:top;padding:10px 8px;border-bottom:1px solid var(--color-border)}.plan-table tr:last-child td,.plan-table tr:last-child th{border-bottom:none}.plan-table .meal-col{width:110px;padding-left:0;text-align:left}.plan-table .day-col{text-align:center;padding-top:6px;position:relative;background:transparent;transition:background .15s ease}.plan-table .day-col-day{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);font-weight:600;margin-bottom:2px}.plan-table .day-col-date{display:block;font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--color-text);line-height:1}.plan-table .today-badge{display:none;font-size:.55rem;text-transform:uppercase;letter-spacing:.12em;color:#fff;background:var(--color-accent);border-radius:999px;padding:1px 6px;margin:0 auto 4px;width:fit-content}.plan-table .day-col.is-today{background:var(--color-accent-soft);border-radius:8px 8px 0 0}.plan-table .day-col.is-today .day-col-day,.plan-table .day-col.is-today .day-col-date{color:var(--color-accent)}.plan-table .day-col.is-today .today-badge{display:block}.plan-table th.meal-cell{text-align:left;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;padding-left:0;padding-top:14px;vertical-align:top}.plan-table th.meal-cell .meal-icon{margin-right:4px}.plan-table td.day-cell{font-size:.78rem;line-height:1.4;background:transparent;transition:background .15s ease}.plan-table td.day-cell.is-today{background:var(--color-accent-soft)}.plan-table tr:last-child td.day-cell.is-today{border-radius:0 0 8px 8px}.cell-content{display:flex;gap:6px;align-items:flex-start;position:relative;padding:3px 4px;margin:-3px -4px;border-radius:4px;cursor:pointer;transition:background .12s ease}.cell-content:hover{background:#c75d3412}.day-cell.is-today .cell-content:hover{background:#c75d342e}.cell-content+.cell-content{margin-top:4px;padding-top:6px;border-top:1px dotted #e0e0e0}.cell-content.is-dessert{font-size:.92em;color:var(--color-text-muted)}.cell-content.is-dessert .dessert-prefix{flex-shrink:0;font-size:.85em;line-height:1.35;opacity:.85}.plan-meal.is-dessert .plan-meal-type{opacity:.75;font-size:.85em}.cell-notes-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent-soft);color:var(--color-accent);font-size:.85rem;font-weight:700;width:16px;height:16px;line-height:1;border-radius:50%;margin-top:1px}.cell-checkbox{flex-shrink:0;width:14px;height:14px;border:1.5px solid #c0c0c0;border-radius:3px;margin-top:2px;cursor:pointer;background:#fff;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:border-color .12s ease,background .12s ease}.cell-checkbox:hover{border-color:var(--color-accent)}.cell-checkbox.is-checked{background:#27ae60;border-color:#27ae60}.cell-checkbox.is-checked:before{content:"";display:block;width:7px;height:4px;border-left:1.5px solid white;border-bottom:1.5px solid white;transform:rotate(-45deg) translateY(-1px)}.cell-checkbox.is-overdue{border-color:#d97b4a;background:#fef4ee}.cell-text{flex:1;color:var(--color-text)}.cell-text.done{color:var(--color-text-muted);text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:#27ae60a6}.cell-text a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:#c75d3466;text-underline-offset:2px}.cell-text a:hover{text-decoration-color:var(--color-accent)}.cell-text strong{font-weight:600}.cell-text em{color:var(--color-text-muted);font-style:italic}.cell-empty{color:#c8c8c8;font-style:italic}.plan-extras{margin:var(--space-5) 0 var(--space-6);max-width:760px}.plan-extras-summary{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:6px;background:var(--color-accent-soft);color:var(--color-accent);font-weight:500;font-size:.88rem;cursor:pointer;list-style:none;user-select:none}.plan-extras-summary::-webkit-details-marker{display:none}.plan-extras-chevron{display:inline-block;transition:transform .18s ease;font-size:.9rem;line-height:1}.plan-extras[open] .plan-extras-chevron{transform:rotate(90deg)}.plan-extras-body{padding-top:var(--space-4);color:var(--color-text);font-size:.95rem;line-height:1.65}.plan-extras-body p{margin-bottom:var(--space-3);color:var(--color-text-muted)}.plan-extras-body p strong{color:var(--color-text)}.plan-extras-body ul{list-style:none;padding-left:0;margin-bottom:var(--space-3)}.plan-extras-body ul li{position:relative;padding-left:var(--space-4);margin-bottom:var(--space-2);color:var(--color-text-muted)}.plan-extras-body ul li:before{content:"•";position:absolute;left:6px;color:var(--color-accent);font-weight:700}.plan-extras-body hr{display:none}.callout{display:block;padding:14px 18px;margin:var(--space-4) 0;background:var(--color-accent-soft);border-left:3px solid var(--color-accent);border-radius:0 var(--radius) var(--radius) 0;font-size:.92rem;line-height:1.6}.callout-label{display:flex;align-items:center;gap:8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);margin-bottom:8px}.callout-icon{font-size:.95rem}.callout-body p{margin-bottom:var(--space-2);color:var(--color-text)}.callout-body p:last-child{margin-bottom:0}.callout-body ul{list-style:none;padding-left:0;margin:var(--space-2) 0 0}.callout-body ul li{padding-left:var(--space-4);margin-bottom:4px;position:relative;color:var(--color-text)}.callout-body ul li:before{content:"›";position:absolute;left:4px;color:var(--color-accent)}.callout-warning{border-left-color:#d97b4a}.callout-warning .callout-label{color:#b85a30}.callout-tip{border-left-color:#27ae60;background:#f0faf4}.callout-tip .callout-label{color:#27ae60}.plan-detail{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.plan-detail-heading{font-family:var(--font-display);font-size:1.4rem;font-weight:500;margin-bottom:var(--space-5);text-align:center}.plan-day{margin-bottom:var(--space-6);max-width:960px;margin-left:auto;margin-right:auto}.plan-day-header{display:flex;align-items:baseline;gap:10px;padding-bottom:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.plan-day-name{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text)}.plan-day-context{font-family:var(--font-display);font-style:italic;color:var(--color-text-muted);font-size:.95rem}.plan-day-body{display:grid;grid-template-columns:1fr;gap:var(--space-5);align-items:start}.plan-day-body.has-notes{grid-template-columns:1.7fr 1fr}@media(max-width:760px){.plan-day-body.has-notes{grid-template-columns:1fr}}.plan-day-meals{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.plan-day-notes{background:#faf8f5;border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:.88rem;line-height:1.6;color:var(--color-text-muted)}.plan-day-notes-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--color-accent);margin-bottom:var(--space-2)}.plan-day-notes-body p{margin-bottom:var(--space-2);font-style:italic}.plan-day-notes-body p:last-child{margin-bottom:0}.plan-day-notes-body p strong{font-style:normal;color:var(--color-text)}.plan-day-notes-body ul{list-style:none;padding:0;margin:0}.plan-day-notes-body ul li{position:relative;padding-left:var(--space-3);margin-bottom:4px;font-style:italic}.plan-day-notes-body ul li:before{content:"·";position:absolute;left:4px;color:var(--color-accent)}.plan-day-notes-body h3,.plan-day-notes-body h4{font-family:var(--font-display);font-size:.95rem;font-weight:500;font-style:normal;color:var(--color-text);margin-bottom:var(--space-2)}.plan-meal{padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-left:2px solid var(--color-border);scroll-margin-top:180px;transition:background .5s ease,border-color .5s ease}.plan-meal.is-flashed{background:var(--color-accent-soft);border-left-color:var(--color-accent)}.plan-meal-type{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--color-text-muted);margin-bottom:4px}.plan-meal-icon{margin-right:4px}.plan-meal-main{font-size:1rem;line-height:1.5;margin-bottom:var(--space-2)}.plan-meal-main a{color:var(--color-accent);text-decoration:underline}.plan-meal-main strong{font-weight:600}.plan-meal-main em{color:var(--color-text-muted);font-style:italic}.plan-meal-notes{list-style:none;padding:0;margin:0 0 var(--space-2) 0;font-size:.9rem;color:var(--color-text-muted)}.plan-meal-notes li{padding-left:var(--space-4);margin-bottom:4px;position:relative}.plan-meal-notes li:before{content:"•";position:absolute;left:6px;color:var(--color-accent)}.plan-meal-recipe{display:inline-block;margin-top:var(--space-1);font-size:.85rem;color:var(--color-accent);font-weight:500;text-decoration:none;border-bottom:1px solid rgba(199,93,52,.4);padding-bottom:1px}.plan-meal-recipe:hover{border-bottom-color:var(--color-accent)}@media(max-width:800px){.meal-plan-page{padding:var(--space-3)}.meal-plan-actions{flex-direction:column;align-items:stretch}.meal-plan-status{margin-right:0}.btn{justify-content:center}}.meal-plan-body h1{display:none}.meal-plan-body h2{font-family:var(--font-display);font-size:1.55rem;font-weight:500;margin-top:var(--space-7);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-accent);scroll-margin-top:160px}.meal-plan-body h2:first-child{margin-top:0}.meal-plan-body h3{font-family:var(--font-sans);font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-top:var(--space-5);margin-bottom:var(--space-3)}.meal-plan-body p{margin-bottom:var(--space-3);line-height:1.65;text-wrap:pretty}.meal-plan-body ul,.meal-plan-body ol{padding-left:var(--space-5);margin-bottom:var(--space-3)}.meal-plan-body li{margin-bottom:var(--space-2);line-height:1.6}.meal-plan-body strong{font-weight:600}.meal-plan-body em{color:var(--color-text-muted)}.meal-plan-body blockquote{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);border-radius:0 var(--radius) var(--radius) 0}.meal-plan-body blockquote p{margin-bottom:var(--space-2)}.meal-plan-body blockquote p:last-child{margin-bottom:0}.meal-plan-body input[type=checkbox]{accent-color:var(--color-accent);width:16px;height:16px;margin-right:var(--space-2);cursor:pointer;vertical-align:middle}.meal-plan-body hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.meal-plan-body a{color:var(--color-accent);text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .12s ease}.meal-plan-body a:hover{text-decoration-color:var(--color-accent)}.add-recipe-page{max-width:760px;margin:0 auto;padding:var(--space-5)}.add-recipe-header{text-align:center;margin-bottom:var(--space-5)}.add-recipe-header .breadcrumbs{color:var(--color-text-muted);font-size:.85rem;margin-bottom:var(--space-3)}.add-recipe-header h1{margin-bottom:var(--space-2);font-size:clamp(1.6rem,3vw,2rem)}.add-recipe-sub{color:var(--color-text-muted);font-style:italic;font-family:var(--font-display);font-size:1rem}.api-key-setup{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:var(--space-4)}.api-key-setup summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:10px 14px;cursor:pointer;list-style:none;font-size:.85rem}.api-key-setup summary::-webkit-details-marker{display:none}.api-key-setup summary:before{content:"›";display:inline-block;margin-right:6px;color:var(--color-text-muted);transition:transform .18s ease}.api-key-setup[open] summary:before{transform:rotate(90deg)}.api-key-label{font-weight:500;color:var(--color-text);flex:1}.api-key-status{font-size:.75rem;color:var(--color-text-muted);padding:2px 10px;border-radius:999px}.api-key-status[data-state=ok]{color:#27ae60;background:#f0faf4}.api-key-status[data-state=empty]{color:#d97b4a;background:#fef4ee}.api-key-body{padding:0 14px 14px;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.85rem}.api-key-body p{margin-block:var(--space-3)}.api-key-body code{background:#fff;padding:1px 5px;border-radius:3px;font-size:.9em}.api-key-row{display:flex;gap:6px;align-items:stretch}.api-key-row input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;font-family:var(--font-mono);font-size:.85rem;background:#fff}.api-key-row input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-ghost:hover{color:var(--color-text);border-color:var(--color-text-muted)}.input-area{margin-bottom:var(--space-2)}.input-area input[type=url],.input-area textarea{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;font-size:.95rem;background:#fff;line-height:1.5}.input-area textarea{resize:vertical}.input-area input[type=url]:focus,.input-area textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.input-hint{font-size:.78rem;color:var(--color-text-muted);font-style:italic;margin-top:6px;padding-left:4px}.generate-row{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0}.generate-status{flex:1;font-size:.85rem;color:var(--color-text-muted);font-style:italic}.generate-status[data-state=ok]{color:#27ae60;font-style:normal}.generate-status[data-state=err]{color:#b85a30;font-style:normal}.generate-status[data-state=busy]{color:var(--color-accent)}.btn.is-busy{opacity:.7;cursor:progress}.btn.is-busy svg{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.generate-btn svg{transition:transform .18s ease}.output-area{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.output-area[hidden]{display:none}.output-header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3)}.output-header h2{font-family:var(--font-display);font-size:1.25rem;font-weight:500}.output-hint{font-size:.82rem;color:var(--color-text-muted);font-style:italic}.output-area textarea{width:100%;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-mono);font-size:.85rem;background:var(--color-card);line-height:1.55;resize:vertical}.output-area textarea:focus{outline:none;border-color:var(--color-accent);background:#fff}.output-actions{display:flex;gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap}.output-note{font-size:.78rem;color:var(--color-text-muted);font-style:italic}.output-note code{background:var(--color-card);padding:1px 5px;border-radius:3px;font-size:.9em}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.tag{background:var(--color-accent-soft);color:var(--color-accent);padding:var(--space-1) var(--space-3);border-radius:999px;font-size:.8rem;font-weight:500}
