:root{color-scheme:dark;--ink:#edf5ff;--muted:#a4b4ca;--bg:#08172b;--panel:#112640;--line:#29415f;--aqua:#6fe4d3;--blue:#7cb9ff;--danger:#ffc2bc;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse 70% 48% at 50% 27%,#1f4864 0%,#102d48 40%,var(--bg) 85%);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}.shell{max-width:520px;min-height:100dvh;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 22px calc(26px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:34px}.brand{font-weight:760;font-size:1.15rem;letter-spacing:.02em}.brand span{color:var(--aqua)}.network{color:var(--danger);font-size:.8rem}.centered{margin:auto;text-align:center;color:var(--muted)}.logo-mark{width:70px;height:70px;margin:auto;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,#4cced8,#7a83e9);box-shadow:0 15px 55px #050d21a8;color:#fff;font-size:2rem}.login{flex:1;display:flex;flex-direction:column;margin:0}.login-hero{text-align:center;margin:auto auto 38px}.login-hero h1{font-size:clamp(2rem,8vw,2.7rem);line-height:1.08;margin:30px 0 12px;letter-spacing:-.04em}.login-hero p{color:var(--muted);line-height:1.55;max-width:31ch;margin:auto}.login-hero .login-tagline{color:var(--ink);font-size:1.08rem;font-weight:600;margin:0 auto 8px}.login-footer{margin:auto 0 0;text-align:center;color:var(--muted);font-size:.72rem;line-height:1.4}.login-form,.settings-panel{display:grid;gap:18px}.login-form label,.settings-panel label,.category-label{display:grid;gap:8px;color:var(--muted);font-size:.9rem}.login-form input,.text-fallback input,select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:13px;padding:12px 14px;color:var(--ink);background:#0d2037;outline:none}.login-form input:focus,.text-fallback input:focus,select:focus{border-color:var(--aqua);box-shadow:0 0 0 3px #6fe4d329}.primary,.secondary{border:0;border-radius:15px;min-height:48px;padding:12px 18px;font-weight:650}.primary{color:#071e2b;background:linear-gradient(120deg,#72e7d3,#92c5ff)}.secondary{color:var(--ink);background:#1b3653;border:1px solid var(--line)}.text-button{background:none;border:0;color:var(--aqua);padding:8px 0}.message{color:var(--danger);min-height:1.4em;text-align:center}.app{display:flex;flex-direction:column;flex:1}.intro{text-align:center;margin-top:clamp(20px,7vh,70px)}.eyebrow{font-size:.72rem;letter-spacing:.23em;color:var(--aqua);font-weight:700}.intro h1{font-size:clamp(1.65rem,7vw,2.25rem);letter-spacing:-.035em;margin:10px 0 0}.avatar-wrap{display:flex;flex:1;min-height:300px;flex-direction:column;align-items:center;justify-content:center;padding:24px 0 8px}.avatar{position:relative;isolation:isolate;width:min(56vw,238px);height:min(56vw,238px);border:0;border-radius:50%;background:linear-gradient(155deg,#b7f1ee,#78cbd8 44%,#7b9ee7);box-shadow:inset -18px -22px 35px #284b8170,0 32px 90px #020c1a9a,0 0 0 12px #6bcae90d;transform:translateZ(0);transition:transform .2s,box-shadow .2s}.avatar:active{transform:scale(.96)}.avatar-halo{position:absolute;inset:-18px;border-radius:50%;border:1px solid #8ddfed59;box-shadow:0 0 38px #49cecf33;pointer-events:none}.avatar-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:29px}.eyes{display:flex;gap:48px}.eyes i{display:block;width:13px;height:18px;background:#153756;border-radius:50%}.mouth{display:block;width:27px;height:8px;border:3px solid #153756;border-top:0;border-radius:0 0 20px 20px}.avatar[data-state="listening"]{box-shadow:inset -18px -22px 35px #284b8170,0 28px 95px #03132ba8,0 0 0 20px #6fe4d327;animation:breathe 1.2s ease-in-out infinite}.avatar[data-state="processing"] .halo{animation:spin 1s linear infinite}.avatar[data-state="processing"]{filter:hue-rotate(22deg)}.avatar[data-state="speaking"] .mouth{width:19px;height:22px;border:3px solid #153756;border-radius:50%;animation:talk .3s ease-in-out infinite alternate}.avatar[data-state="error"]{filter:saturate(.55)}.state-text{text-align:center;color:var(--ink);font-weight:620;font-size:1.08rem;margin:38px 0 0;min-height:1.5em}.voice-disclosure{max-width:34ch;color:var(--muted);text-align:center;line-height:1.42;font-size:.75rem;margin:12px 0 0}.actions{display:flex;gap:10px;justify-content:center;margin:8px 0 24px}.actions button{min-width:130px}.response-panel,.visual-panel,.settings-panel,.text-fallback,.pending-panel,.debug-panel{border:1px solid var(--line);border-radius:20px;background:#0e223bdc;padding:18px;margin:0 0 18px}.response-panel{color:var(--ink);line-height:1.5}.response-panel p{margin:0}.visual-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.visual-heading h2,.settings-panel h2,.text-fallback h2,.debug-panel h2{font-size:1.1rem;margin:0 0 12px}.category-label{margin:8px 0 16px}.card-list{display:grid;gap:10px;max-height:36vh;overflow:auto}.data-card{display:grid;gap:5px;border:1px solid #2b4460;background:#142c49;border-radius:14px;padding:13px 15px;overflow-wrap:anywhere}.data-card span{font-size:.85rem;color:var(--muted)}.settings-panel p,.text-fallback p,.pending-panel p{font-size:.86rem;line-height:1.5;color:var(--muted)}.settings-panel .toggle{display:flex;align-items:center;gap:10px}.settings-panel input[type="range"]{width:100%;accent-color:var(--aqua)}.settings-panel input[type="checkbox"]{accent-color:var(--aqua);width:18px;height:18px}.input-row{display:flex;gap:8px}.input-row input{min-width:0;flex:1}.pending-panel{border-color:#8f7550}.pending-panel .primary{width:100%}.debug-panel{overflow-wrap:anywhere;font-size:.78rem;color:var(--muted)}.debug-panel p{margin:6px 0}@keyframes breathe{50%{transform:scale(1.04)}}@keyframes talk{to{height:9px;width:28px}}@media(max-width:350px){.shell{padding-left:16px;padding-right:16px}.actions{flex-wrap:wrap}.avatar-wrap{min-height:240px}.eyes{gap:34px}}@media(min-height:850px){.avatar-wrap{min-height:390px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.auth-links{display:grid;justify-items:center;gap:3px;margin:13px 0 4px;text-align:center}.auth-links p{margin:0;color:var(--muted);font-size:.88rem}.auth-links .text-button,.back-login{font-size:.88rem}.back-login{justify-self:center}

.response-listen-button{display:block;margin:12px auto 0;font-size:.88rem;font-weight:600}

/* Each area is a separate view. The navigation stays visible above the iPhone safe area. */
.app{padding-bottom:calc(94px + env(safe-area-inset-bottom))}
.home-panel{display:flex;flex-direction:column;flex:1;min-width:0}
.organize-panel{display:grid;align-content:start;gap:12px;min-width:0;padding-top:28px}
.organize-panel h1,.settings-panel h1{font-size:1.7rem;letter-spacing:-.03em;margin:0}
.organize-intro{color:var(--muted);font-size:.9rem;line-height:1.5;margin:0 0 8px}
.organize-modules{display:grid;gap:12px}
.organize-card{display:grid;gap:7px;width:100%;padding:18px;border:1px solid var(--line);border-radius:18px;background:#0e223bdc;color:var(--ink);text-align:left;min-width:0}
.organize-card h2,.organize-card p{margin:0}.organize-card h2,.organize-card strong{font-size:1.06rem;font-weight:700}
.organize-card p,.organize-card > span{font-size:.86rem;line-height:1.45;color:var(--muted)}
.organize-card > em{font-size:.83rem;font-style:normal;font-weight:650;color:var(--aqua)}
.organize-card-active{min-height:100px;border-color:#579aab;background:#143750}
.organize-card-active:focus-visible,.bottom-nav button:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}
.organize-card[aria-disabled="true"]{opacity:.76}.organize-card[aria-disabled="true"] > span{font-size:.75rem;color:var(--aqua)}
.settings-panel{align-content:start;margin-top:28px}.settings-panel h2{margin:0;padding-top:4px}
.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:9px 16px calc(9px + env(safe-area-inset-bottom));background:#0b1d33f2;border-top:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:64px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:12px;color:var(--muted);background:transparent;font-size:.84rem;font-weight:650;white-space:nowrap}
.bottom-nav button[data-active="true"]{background:#21465d;color:var(--aqua)}
.weekly-panel{display:grid;gap:18px;min-width:0;padding:16px 0 calc(22px + env(safe-area-inset-bottom))}
.weekly-heading,.weekly-meal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.weekly-heading h1{font-size:1.6rem;letter-spacing:-.03em;margin:0}
.weekly-heading .text-button{min-height:44px}
.weekly-notice{min-height:1.4em;margin:0;color:var(--aqua);line-height:1.45;font-size:.88rem}
.weekly-notice:empty{display:none}
.weekly-help,.weekly-status,.weekly-loading{color:var(--muted);line-height:1.45;font-size:.88rem;margin:0}
.weekly-badges{display:flex;flex-wrap:wrap;gap:8px}
.weekly-badge{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#173350;color:var(--aqua);font-size:.79rem}
.weekly-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.weekly-day{min-width:0;min-height:48px;padding:8px 2px;border:1px solid var(--line);border-radius:10px;background:#15304e;color:var(--ink);font-size:.82rem;font-weight:700}
.weekly-day[aria-current="date"]{background:var(--aqua);border-color:var(--aqua);color:#082134}
.weekly-day-title{font-size:1.25rem;margin:0}
.weekly-meals{display:grid;gap:13px}
.weekly-meal,.weekly-actions,.weekly-pending{border:1px solid var(--line);border-radius:18px;background:#0e223bdc;padding:16px;display:grid;gap:13px;min-width:0}
.weekly-meal h3,.weekly-actions h3{font-size:1.06rem;margin:0}
.weekly-unsaved{font-size:.72rem;color:var(--aqua)}
.weekly-status-select,.weekly-ingredient label,.weekly-actions label{display:grid;gap:6px;color:var(--muted);font-size:.82rem}
.weekly-panel input,.weekly-panel select{width:100%;min-width:0;min-height:46px;border:1px solid var(--line);border-radius:12px;padding:10px;color:var(--ink);background:#0d2037}
.weekly-panel input:focus,.weekly-panel select:focus{outline:2px solid var(--aqua);outline-offset:1px}
.weekly-ingredients{display:grid;gap:10px}
.weekly-ingredient{display:grid;gap:9px;padding:12px;border:1px solid #2b4460;background:#142c49;border-radius:13px;min-width:0}
.weekly-ingredient strong{overflow-wrap:anywhere}
.weekly-ingredient span{color:var(--muted)}
.weekly-ingredient-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.7fr);gap:10px}
.weekly-remove{justify-self:start;min-height:42px;text-align:left}
.weekly-meal-actions{display:grid;gap:9px}
.weekly-meal-actions .primary,.weekly-meal-actions .secondary{width:100%}
.weekly-actions{margin-top:4px}
.weekly-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.weekly-panel > .primary{width:100%}
.weekly-pending{border-color:#8f7550}
.weekly-pending p{margin:0;color:var(--muted);font-size:.88rem}
@media(max-width:350px){.weekly-day{font-size:.74rem}.weekly-panel{gap:14px}.weekly-meal,.weekly-actions{padding:13px}}

.bottom-nav svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.bottom-nav svg circle{fill:#0b1d33}.bottom-nav button[data-active="true"] svg circle{fill:#21465d}
.weekly-copy{border:1px solid var(--line);border-radius:12px;padding:0 12px}.weekly-copy summary{min-height:48px;display:flex;align-items:center;cursor:pointer;touch-action:manipulation;color:var(--aqua);font-weight:600}.weekly-copy[open]{display:grid;gap:12px;padding-bottom:12px}.weekly-copy label{display:grid;gap:6px;font-size:.86rem;color:var(--muted)}
.weekly-meal-feedback{color:var(--aqua);font-size:.9rem;line-height:1.45;margin:0;overflow-wrap:anywhere}.weekly-meal-feedback:empty{display:none}.weekly-panel input,.weekly-panel select{font-size:16px}.weekly-panel button{touch-action:manipulation}

.food-suggestions{display:grid;gap:2px;max-height:240px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:12px;background:#0d2037;min-width:0;position:relative;z-index:1;touch-action:pan-y}
.food-suggestions[hidden]{display:none}.food-option{display:grid;gap:4px;min-height:52px;width:100%;text-align:left;padding:12px;border:0;border-radius:0;background:transparent;color:var(--ink);touch-action:manipulation;overflow-wrap:anywhere}
.food-option:focus-visible,.food-option:hover{background:#21465d}.food-option small{color:var(--muted);font-size:.8rem}.food-option:disabled{opacity:.5}.food-search-status{font-size:.85rem;color:var(--muted);margin:0;line-height:1.4}.food-search-status:empty{display:none}
