:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16141a;--surface:#201d26;--surface-2:#2a2632;--border:#35303d;--border-hover:#453f52;--text:#f1edf7;--text-muted:#9891a3;--text-faint:#6b6476;--accent:#f0a857;--accent-fg:#f0a857;--accent-text:#1a1409;--danger:#ff6b6b;--mood-low:#7fadd9;--mood-quick:#74d9a0;--mood-focused:#b49bfa;--mood-overwhelmed:#ff8b7e;--mood-low-fg:#7fadd9;--mood-quick-fg:#74d9a0;--mood-focused-fg:#b49bfa;--mood-overwhelmed-fg:#ff8b7e;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--font-display:"Fraunces", Georgia, serif;--font-body:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--content-max:720px;--sidebar-w:236px;--hover-overlay:#ffffff08}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbf8f3;--surface:#fff;--surface-2:#f1ebde;--border:#e4dcc9;--border-hover:#d6caae;--text:#241f2b;--text-muted:#6b6276;--text-faint:#7d7488;--accent-fg:#9c5605;--accent-text:#1a1409;--danger:#d14343;--mood-low-fg:#3e6e96;--mood-quick-fg:#257a4e;--mood-focused-fg:#6b46c1;--mood-overwhelmed-fg:#c23b3b;--hover-overlay:#00000009}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-fg);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{flex-direction:column-reverse;height:100dvh;display:flex}.nav{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.wordmark{display:none}.nav-links{padding-bottom:env(safe-area-inset-bottom);flex-direction:row;justify-content:space-around;display:flex}.nav-link{color:var(--text-faint);flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 4px 8px;font-size:11px;font-weight:600;transition:color .15s;display:flex}.nav-icon{width:20px;height:20px}.nav-link:hover{color:var(--text-muted)}.nav-link.active{color:var(--accent-fg)}.main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.view-header{width:100%;max-width:var(--content-max);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;margin:0 auto;padding:20px clamp(16px,4vw,28px) 4px;display:flex}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.theme-toggle svg{width:17px;height:17px}.theme-toggle:hover{background:var(--surface-2);color:var(--text)}.view-header-text{min-width:0}.eyebrow{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;margin:0;font-size:26px;font-weight:600}.hint{color:var(--text-faint);margin:2px 0 0;font-size:13px}.view-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:0 clamp(16px,4vw,28px) 28px;overflow-y:auto}.view,.chat-panel{max-width:var(--content-max);width:100%;margin:0 auto;animation:.22s fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width>=768px){.shell{flex-direction:row}.nav{width:var(--sidebar-w);border-top:none;border-right:1px solid var(--border);height:100vh}.wordmark{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;padding:26px 24px 6px;font-size:21px;font-weight:600;display:block}.nav-links{flex-direction:column;justify-content:flex-start;gap:2px;padding:10px 12px 12px}.nav-link{border-radius:var(--radius-md);flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:14px}.nav-link:hover:not(.active){background:var(--hover-overlay)}.nav-link.active{background:var(--surface-2)}}.chat-panel{flex-direction:column;height:100%;display:flex}.chat-log{flex-direction:column;flex:1;gap:10px;padding:4px 0 12px;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--text-faint);margin:auto;padding:32px 16px}.chat-empty-icon{width:32px;height:32px;color:var(--text-faint);margin-bottom:12px}.chat-empty p{margin:4px 0}.chat-empty-sub{font-size:13px}.bubble{white-space:pre-wrap;overflow-wrap:break-word;border-radius:16px;max-width:82%;padding:11px 15px;font-size:14.5px;line-height:1.45}.bubble.user{background:var(--accent);color:var(--accent-text);border-bottom-right-radius:4px;align-self:flex-end}.bubble.assistant{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.bubble.typing{align-items:center;gap:4px;padding:14px 16px;display:flex}.bubble.typing span{background:var(--text-faint);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite typing-bounce}.bubble.typing span:nth-child(2){animation-delay:.15s}.bubble.typing span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.chat-input{flex-shrink:0;align-items:center;gap:8px;padding-top:10px;display:flex}.chat-input input{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);min-width:0;height:46px;color:var(--text);flex:1;padding:0 16px;font-size:15px}.chat-input input::placeholder{color:var(--text-faint)}.chat-input input:focus{border-color:var(--accent-fg)}.chat-input button{border:1px solid var(--border);background:var(--surface);width:46px;height:46px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.chat-input button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.chat-input button[type=submit]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.chat-input button[type=submit]:disabled{opacity:.4;cursor:default}.mic.active{background:var(--danger);color:#fff;border-color:var(--danger)}.mood-filter{scrollbar-width:none;gap:8px;padding:2px 2px 16px;display:flex;overflow-x:auto}.mood-filter::-webkit-scrollbar{display:none}.mood-filter button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:flex}.mood-filter button .dot{opacity:.5;background:currentColor;border-radius:50%;width:8px;height:8px}.mood-filter button.active{color:var(--text);background:var(--surface-2)}.mood-filter button.active .dot{opacity:1}.mood-filter .mood-low.active{color:var(--mood-low-fg);border-color:var(--mood-low-fg)}.mood-filter .mood-quick.active{color:var(--mood-quick-fg);border-color:var(--mood-quick-fg)}.mood-filter .mood-focused.active{color:var(--mood-focused-fg);border-color:var(--mood-focused-fg)}.mood-filter .mood-overwhelmed.active{color:var(--mood-overwhelmed-fg);border-color:var(--mood-overwhelmed-fg)}.list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.list li{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);align-items:flex-start;gap:12px;padding:13px 14px;transition:border-color .15s;display:flex}.check{margin-top:-1px}.list li:hover{border-color:var(--border-hover)}.list li.checked{opacity:.5}.list li.checked .row-title{text-decoration:line-through}.row-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.row-title{color:var(--text);overflow-wrap:break-word;font-size:14.5px}.row-title-link{text-align:left;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--border-hover);text-decoration-color:var(--border-hover);text-underline-offset:2px}.row-title-link:hover{color:var(--accent-fg)}.row-meta{color:var(--text-faint);font-size:12px;font-family:var(--font-mono)}.task-row{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.task-row .row-title{flex:1;min-width:0}.task-row-dots{flex-shrink:0;gap:5px;display:flex}.mood-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.mood-dot.mood-low{background:var(--mood-low)}.mood-dot.mood-quick{background:var(--mood-quick)}.mood-dot.mood-focused{background:var(--mood-focused)}.mood-dot.mood-overwhelmed{background:var(--mood-overwhelmed)}.mood-dot.mood-default{background:var(--text-faint)}.check{flex-shrink:0;width:22px;height:22px;display:flex;position:relative}.check input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.check-mark{border:1.5px solid var(--border);background:var(--surface-2);border-radius:7px;justify-content:center;align-items:center;width:22px;height:22px;transition:background .15s,border-color .15s;display:flex}.check input:checked+.check-mark{background:var(--accent);border-color:var(--accent)}.check input:checked+.check-mark:after{content:"";border:solid var(--accent-text);border-width:0 2px 2px 0;width:6px;height:10px;transform:rotate(45deg)translate(-1px,-1px)}.check input:focus-visible+.check-mark{outline:2px solid var(--accent-fg);outline-offset:2px}.empty-state{text-align:center;color:var(--text-faint);flex-direction:column;align-items:center;gap:10px;padding:48px 20px;display:flex}.empty-icon{opacity:.6;width:30px;height:30px}.empty-state p{max-width:280px;margin:0;font-size:14px}.lock-screen{background:var(--bg);justify-content:center;align-items:center;height:100dvh;padding:20px;display:flex}.lock-screen form{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:300px;display:flex}.lock-screen h1{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;margin:0;font-size:34px;font-weight:600}.lock-tagline{color:var(--text-faint);margin:0 0 12px;font-size:13px}.lock-screen input{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);text-align:center;padding:14px 16px;font-size:16px}.lock-screen input:focus{border-color:var(--accent-fg)}.lock-screen button{border-radius:var(--radius-lg);background:var(--accent);width:100%;color:var(--accent-text);text-align:center;padding:13px;font-size:14.5px;font-weight:700;transition:opacity .15s}.lock-screen button:disabled{opacity:.4}.lock-screen .error{color:var(--danger);margin:0;font-size:13px}.settings-section{flex-direction:column;gap:12px;display:flex}.settings-title{font-family:var(--font-display);color:var(--text);margin:0;font-size:18px;font-weight:600}.settings-desc{color:var(--text-muted);margin:0 0 4px;font-size:13px;line-height:1.5}.editor-tabs{gap:6px;display:flex}.editor-tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.editor-tabs button.active{background:var(--surface-2);color:var(--text);border-color:var(--border-hover)}.prompt-editor{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);width:100%;min-height:380px;color:var(--text);font-family:var(--font-mono);resize:vertical;padding:14px 16px;font-size:13px;line-height:1.6}.prompt-editor:focus{border-color:var(--accent-fg)}.prompt-preview{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);min-height:380px;padding:14px 18px;overflow-y:auto}.markdown-body{color:var(--text);font-size:14px;line-height:1.65}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-family:var(--font-display);margin:1.1em 0 .4em;line-height:1.3}.markdown-body h1:first-child,.markdown-body h2:first-child,.markdown-body h3:first-child{margin-top:0}.markdown-body p{margin:.7em 0}.markdown-body ul,.markdown-body ol{margin:.7em 0;padding-left:1.4em}.markdown-body li{margin:.25em 0}.markdown-body code{font-family:var(--font-mono);background:var(--surface-2);border-radius:4px;padding:.15em .4em;font-size:.9em}.markdown-body pre{background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px;overflow-x:auto}.markdown-body pre code{background:0 0;padding:0}.markdown-body blockquote{border-left:3px solid var(--border-hover);color:var(--text-muted);margin:.7em 0;padding-left:12px}.markdown-body strong{color:var(--text);font-weight:700}.markdown-body a{color:var(--accent-fg)}.settings-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:4px;display:flex}.settings-actions-right{align-items:center;gap:10px;display:flex}.settings-actions button.secondary{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-lg);padding:10px 16px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s}.settings-actions button.secondary:hover{background:var(--surface-2);color:var(--text)}.settings-actions-right button:not(.secondary){background:var(--accent);color:var(--accent-text);border-radius:var(--radius-lg);padding:10px 20px;font-size:13.5px;font-weight:700}.settings-actions-right button:not(.secondary):disabled{opacity:.4;cursor:default}.settings-status{font-size:13px;font-weight:600}.settings-status.ok{color:var(--mood-quick-fg)}.settings-status.error{color:var(--danger)}.recipe-row{text-align:left;justify-content:space-between;align-items:baseline;gap:12px;width:100%;display:flex}.recipe-back{color:var(--text-muted);align-items:center;gap:4px;margin-bottom:18px;padding:4px 0;font-size:13.5px;font-weight:600;display:inline-flex}.recipe-back:hover{color:var(--text)}.recipe-title{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;margin:0 0 24px;font-size:26px;font-weight:600}.recipe-block{margin-bottom:28px}.recipe-block h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin:0 0 12px;font-size:11.5px;font-weight:700}.ingredient-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ingredient-list li{align-items:baseline;gap:10px;display:flex}.ingredient-list li:before{content:"";background:var(--accent-fg);border-radius:50%;flex-shrink:0;align-self:center;width:5px;height:5px}.ingredient-name{color:var(--text);overflow-wrap:break-word;font-size:14.5px;line-height:1.4}.ingredient-qty{font-family:var(--font-mono);color:var(--text-faint);flex-shrink:0;margin-left:auto;font-size:12px}.step-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.step-item{align-items:flex-start;gap:12px;display:flex}.step-number{background:var(--surface-2);border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.step-text{color:var(--text);padding-top:2px;font-size:14.5px;line-height:1.6}.recipe-delete{margin-top:4px}.week-grid{border-collapse:separate;border-spacing:6px;table-layout:fixed;width:100%;margin-bottom:8px;display:none}.week-grid-label-col{width:68px}.week-grid th,.week-grid td{text-align:left;vertical-align:top}.week-grid thead th{color:var(--text-faint);padding:4px 8px 8px;font-size:11px;font-weight:600}.week-grid-day-label{text-transform:capitalize;display:block}.week-grid-day-num{font-family:var(--font-display);color:var(--text);margin-top:2px;font-size:16px;font-weight:600;display:block}.week-grid thead th.today .week-grid-day-num{color:var(--accent-fg)}.week-grid tbody th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 8px;font-size:11.5px;font-weight:700}.week-grid td{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);height:60px;padding:10px;overflow:hidden}.week-grid td.today{border-color:var(--accent-fg)}.week-grid-meal{color:var(--text);overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.week-grid-empty{color:var(--text-faint)}.week-grid-meal-link{text-align:left;cursor:pointer;width:100%;text-decoration:underline;-webkit-text-decoration-color:var(--border-hover);text-decoration-color:var(--border-hover);text-underline-offset:2px}.week-grid-meal-link:hover{color:var(--accent-fg)}@media (width>=768px){.week-grid{display:table}.meals-mobile{display:none}}
