:root{--bg:#f6f4ef;--surface:#ffffff;--surface-2:#fbfaf7;--border:#e2ddd2;--border-strong:#cfc7b6;--text:#24211c;--text-muted:#6b655a;--accent:#2f6f5e;--accent-soft:#e4f0eb;--accent-text:#1e4c40;--warn:#8a5a1c;--warn-soft:#fbf0dd;--danger:#9c3b32;--danger-soft:#fbe9e7;--radius:14px;--radius-sm:9px;--shadow:0 1px 2px rgba(36,33,28,0.06),0 6px 20px rgba(36,33,28,0.06);--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#17181a;--surface:#212326;--surface-2:#1b1d1f;--border:#34373b;--border-strong:#474b50;--text:#ece9e3;--text-muted:#a6a29a;--accent:#6fbfa5;--accent-soft:#21332e;--accent-text:#a9dcca;--warn:#d5a55f;--warn-soft:#33291a;--danger:#e08e85;--danger-soft:#37211f;--shadow:0 1px 2px rgba(0,0,0,0.3),0 6px 20px rgba(0,0,0,0.28)}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}body{min-height:100dvh}h1,h2,h3{margin:0 0 .4em;line-height:1.2;letter-spacing:-.015em}h1{font-size:clamp(1.55rem,1.2rem + 1.6vw,2.1rem)}h2{font-size:clamp(1.2rem,1.05rem + .7vw,1.5rem)}h3{font-size:1.03rem}p{margin:0 0 .85em}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-main{flex:1 1;width:100%;max-width:900px;margin:0 auto;padding:20px 16px 96px}@media (min-width:780px){.app-main{padding:28px 24px 40px}}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.app-header-inner{max-width:900px;margin:0 auto;padding:10px 16px;gap:12px}.app-header-inner,.app-title{display:flex;align-items:center}.app-title{font-weight:620;font-size:1rem;margin:0;gap:8px}.app-header-spacer{flex:1 1}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1 1;background:none;border:0;padding:10px 4px;min-height:56px;color:var(--text-muted);font:inherit;font-size:.76rem;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.tabbar button[aria-current=page]{color:var(--accent-text);font-weight:600}.tabbar .tab-icon{font-size:1.15rem;line-height:1}@media (min-width:780px){.tabbar{position:static;max-width:900px;margin:0 auto 20px;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tabbar button{flex-direction:row;justify-content:center;min-height:46px;font-size:.9rem}.app-main{padding-bottom:24px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card+.card{margin-top:14px}.card-quiet{background:var(--surface-2);box-shadow:none}.stack{flex-direction:column;gap:14px}.row,.stack{display:flex}.row{align-items:center;gap:10px;flex-wrap:wrap}.muted{color:var(--text-muted)}.small{font-size:.86rem}button,input,select,textarea{font:inherit;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;border-radius:999px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:filter .15s ease,transform .05s ease}.btn:hover:not(:disabled){filter:brightness(1.07)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.text-link{color:var(--accent-text);font-weight:600;text-underline-offset:3px}a.btn{text-decoration:none}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-ghost{background:transparent;border-color:transparent;color:var(--accent-text);min-height:40px;padding:6px 10px}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.btn-small{min-height:38px;padding:6px 14px;font-size:.88rem}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-weight:600;font-size:.92rem}.field input[type=date],.field input[type=email],.field input[type=password],.field input[type=text],.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}.field textarea{min-height:96px;resize:vertical}.field-hint{font-size:.84rem;color:var(--text-muted)}.error-text{color:var(--danger);font-size:.9rem;margin:0 0 10px}.tile-grid{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}@media (min-width:560px){.tile-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.tile-grid-3{grid-template-columns:repeat(3,1fr)}}.tile{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:14px;min-height:76px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s ease,background .15s ease}.tile:hover{border-color:var(--border-strong)}.tile.selected,.tile[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.tile-emoji{font-size:1.5rem;line-height:1.1;flex-shrink:0}.tile-body{flex:1 1;min-width:0}.tile-title{font-weight:620;margin:0 0 2px;font-size:.98rem}.tile-blurb{margin:0;font-size:.86rem;color:var(--text-muted)}.tile-check{flex-shrink:0;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border-strong);display:grid;place-items:center;font-size:.8rem;color:transparent}.tile.selected .tile-check,.tile[aria-pressed=true] .tile-check{background:var(--accent);border-color:var(--accent);color:#fff}.mascot-stage{position:relative;width:100%;overflow:hidden;border-radius:var(--radius);background:linear-gradient(180deg,transparent 0,var(--accent-soft) 100%)}.mascot-stage-ground{position:absolute;left:6%;right:6%;bottom:10px;height:1px;background:var(--border-strong);opacity:.45}.mascot-stage-actor{position:absolute;bottom:0;left:0;will-change:transform}.mascot-picker{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}@media (min-width:560px){.mascot-picker{grid-template-columns:repeat(4,1fr)}}.mascot-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;min-height:110px}.mascot-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.mascot-option-name{font-size:.86rem;font-weight:600}.palette-row{display:flex;gap:10px;flex-wrap:wrap}.palette-swatch{width:44px;height:44px;border-radius:50%;border:3px solid transparent;cursor:pointer;padding:0}.palette-swatch[aria-pressed=true]{border-color:var(--text)}.perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.perm-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.perm-item-locked{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.perm-text{flex:1 1;min-width:0}.perm-label{font-weight:600;font-size:.93rem;display:block}.perm-detail{font-size:.84rem;color:var(--text-muted)}.switch{position:relative;flex-shrink:0;width:48px;height:28px;margin-top:2px}.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-track{position:absolute;inset:0;border-radius:999px;background:var(--border-strong);transition:background .15s ease;pointer-events:none}.switch input:checked+.switch-track{background:var(--accent)}.switch input:focus-visible+.switch-track{outline:3px solid var(--accent);outline-offset:2px}.switch-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s ease}.switch input:checked+.switch-track .switch-thumb{transform:translateX(20px)}.lock-pill{flex-shrink:0;font-size:.74rem;font-weight:600;padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent-text);white-space:nowrap;margin-top:3px}.chat-log{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.bubble{max-width:88%;padding:11px 14px;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere}.bubble-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}.bubble-sidekick{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:5px}.bubble-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.badge{font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:999px}.badge-demo{background:var(--warn-soft);color:var(--warn)}.badge-live{background:var(--accent-soft);color:var(--accent-text)}.chat-form{display:flex;gap:8px;align-items:flex-end}.chat-form textarea{flex:1 1;min-height:46px;max-height:140px;padding:11px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);resize:none}.sync-line{display:flex;align-items:center;gap:8px;font-size:.87rem;color:var(--text-muted)}.sync-dot{width:9px;height:9px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.sync-dot[data-state=idle]{background:var(--accent)}.sync-dot[data-state=syncing]{background:var(--warn)}.sync-dot[data-state=error],.sync-dot[data-state=offline]{background:var(--danger)}.notice{padding:11px 13px;border-radius:var(--radius-sm);font-size:.9rem;border:1px solid}.notice-info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--accent-text)}.notice-warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,transparent);color:var(--warn)}.steps{gap:6px;margin-bottom:18px}.step-dot{height:4px;flex:1 1;border-radius:999px;background:var(--border)}.step-dot[data-done=true]{background:var(--accent)}.ability-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.ability-row+.ability-row{margin-top:8px}.ability-row-body{flex:1 1;min-width:0}.ability-order{display:flex;flex-direction:column;gap:2px}.icon-btn{width:34px;height:30px;border-radius:7px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;display:grid;place-items:center;font-size:.8rem;padding:0}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.dialog-backdrop{position:fixed;inset:0;z-index:50;background:rgba(20,18,15,.5);display:grid;place-items:center;padding:16px}.dialog{background:var(--surface);border-radius:var(--radius);padding:20px;max-width:480px;width:100%;max-height:85dvh;overflow-y:auto;box-shadow:var(--shadow)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.bubble-result{max-width:100%;width:100%;padding:0;background:transparent;border:0}.result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.result-headline{font-size:1.12rem;font-weight:650;margin:0 0 12px;letter-spacing:-.01em}.result-para{margin:0 0 14px;color:var(--text)}.result-section{margin:0 0 16px;padding-top:14px;border-top:1px solid var(--border)}.result-section:last-child{margin-bottom:0}.result-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:9px}.result-section-head h4{margin:0;font-size:.94rem;font-weight:650}.source-tag{font-size:.72rem;font-weight:650;padding:3px 8px;border-radius:999px;white-space:nowrap}.source-sample{background:var(--warn-soft);color:var(--warn)}.source-general{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.source-live{background:var(--accent-soft);color:var(--accent-text)}.itinerary{list-style:none;margin:0 0 14px;padding:0}.itinerary-day{padding:0 0 14px 16px;border-left:2px solid var(--accent-soft);position:relative}.itinerary-day:before{content:"";position:absolute;left:-6px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.itinerary-day:last-child{padding-bottom:0;border-left-color:transparent}.itinerary-label{margin:0;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text)}.itinerary-title{margin:1px 0 6px;font-weight:620}.itinerary-items{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.itinerary-items li{font-size:.93rem}.itinerary-note{margin:7px 0 0;font-size:.86rem;color:var(--text-muted);font-style:italic}.identified{padding:12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);margin-bottom:14px}.identified-title{margin:0;font-weight:650;font-size:1.02rem}.identified-meta{margin:2px 0 7px;font-size:.84rem;color:var(--text-muted)}.identified-summary{margin:0;font-size:.93rem}.availability{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.availability li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:9px 11px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.availability-provider{font-weight:620}.availability-kind{font-size:.86rem;color:var(--text-muted)}.availability-note{font-size:.8rem;color:var(--text-muted);width:100%}.meals{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.meal{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.meal-day{flex-shrink:0;width:74px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text);padding-top:2px}.meal-body{display:flex;flex-direction:column;gap:2px;min-width:0}.meal-meta,.meal-swap{font-size:.84rem;color:var(--text-muted)}.meal-swap{font-style:italic}.grocery{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}@media (min-width:560px){.grocery{grid-template-columns:repeat(2,1fr)}}.grocery-group-name{margin:0 0 5px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.grocery-group ul{margin:0;padding-left:18px;font-size:.92rem}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.checklist li{display:flex;gap:9px;align-items:flex-start;font-size:.93rem}.checkbox{flex-shrink:0;width:16px;height:16px;margin-top:3px;border:1.5px solid var(--border-strong);border-radius:4px}.steps{padding-left:20px;gap:7px;font-size:.93rem}.jobs,.steps{margin:0;display:flex;flex-direction:column}.jobs{list-style:none;padding:0;gap:8px}.jobs li{display:flex;flex-direction:column;gap:2px;padding:11px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.job-org{color:var(--text-muted)}.job-note,.job-org{font-size:.86rem}.facts{margin:0;display:flex;flex-direction:column;gap:7px}.fact{display:flex;flex-wrap:wrap;gap:4px 10px}.fact dt{font-weight:620;font-size:.88rem;min-width:130px}.fact dd{margin:0;font-size:.9rem;color:var(--text-muted);flex:1 1;min-width:160px}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:.84rem;padding:5px 11px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}.result-callout{margin:14px 0 0}.try-asking{margin:4px 0 18px}.try-asking-label{margin:0 0 9px;font-size:.88rem;color:var(--text-muted)}.try-asking-list{display:flex;flex-direction:column;gap:8px}@media (min-width:620px){.try-asking-list{display:grid;grid-template-columns:repeat(2,1fr)}}.try-asking-item{display:flex;align-items:center;gap:10px;text-align:left;padding:12px 14px;min-height:52px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:.93rem;transition:border-color .15s ease,background .15s ease}.try-asking-item:hover{border-color:var(--accent);background:var(--accent-soft)}.try-asking-emoji{font-size:1.2rem;flex-shrink:0}@media (pointer:coarse){.btn-ghost,.btn-small{min-height:44px}.icon-btn{width:44px;height:44px}.palette-swatch{width:48px;height:48px}}.compare-grid{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px}@media (min-width:760px){.compare-grid{grid-template-columns:repeat(2,1fr)}}.estimate{border-top:1px solid var(--border)}.estimate-range{margin:0 0 4px;font-size:1.6rem;font-weight:650;letter-spacing:-.02em;color:var(--accent-text)}.estimate-dash{font-size:.95rem;font-weight:500;color:var(--text-muted);margin:0 4px}.estimate-basis{margin:0;font-size:.88rem;color:var(--text-muted)}.result-change{display:inline-block;margin:0 0 12px;padding:5px 11px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:.84rem;font-weight:600}[hidden]{display:none!important}.app-content,.home-panel{flex:1 1}.tile-blurb,.tile-title{display:block}.ui-icon{display:inline-block;vertical-align:middle;flex-shrink:0}.tile-emoji{color:var(--accent-text)}.onboarding-steps{display:flex;gap:6px;margin-bottom:18px}.placeholder-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}summary{cursor:pointer;color:var(--accent-text);padding:8px 0}.answer-source{margin:8px 4px 0;font-size:.8rem}.mascot-stage{background:var(--surface-2);border:1px solid var(--border);isolation:isolate}.mascot-stage:before{content:"";position:absolute;inset:70% 0 0;background:var(--accent-soft);border-top:4px solid var(--border);z-index:-1}.mascot-stage:after{content:"";position:absolute;width:52px;height:64px;top:16px;right:12%;border:5px solid var(--border);border-radius:24px 24px 2px 2px;background:linear-gradient(90deg,transparent 46%,var(--border) 46%,var(--border) 54%,transparent 54%),linear-gradient(0deg,transparent 46%,var(--border) 46%,var(--border) 54%,transparent 54%),var(--accent-soft);z-index:-1}.mascot-stage-ground{height:25px;left:8%;right:8%;bottom:4px;border-radius:50%;background:var(--accent);opacity:.13}@media (min-width:901px){.app-header-inner,.home-layout{max-width:1200px}.home-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);grid-gap:36px;gap:36px;align-items:start}.home-companion{position:-webkit-sticky;position:sticky;top:120px}.home-conversation{min-width:0;border-left:1px solid var(--border);padding-left:32px}.home-conversation .chat-log:empty{min-height:100px}.try-asking-list{display:flex}.tabbar{order:-1;position:-webkit-sticky;position:sticky;top:0;width:100%;max-width:none;margin:0;border-radius:0;box-shadow:none;justify-content:center;border-width:0 0 1px}.tabbar button{flex:0 1 200px}.app-header{position:static}}@media (max-width:560px){.ability-row{flex-wrap:wrap}.ability-row-body{min-width:160px}}.conversation-controls{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:12px}.conversation-controls p{margin:0;flex:1 1}.conversation-controls button{flex-shrink:0}.answer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 14px}.report-answer{font-size:12px;margin:12px 0 0;color:var(--muted)}.report-answer summary{cursor:pointer;width:-moz-fit-content;width:fit-content}.report-answer form{margin-top:10px;color:var(--ink)}.report-answer label{display:block;margin-bottom:6px}.report-answer textarea{width:100%;min-height:70px}.result>.badge{font-size:11px;font-weight:500;margin-bottom:8px}.badge-demo{background:#f7f0e4;color:#715022}.badge-model,.source-model{background:#eeebf8;color:#594579}.badge-live{background:#e7f3ef;color:#286350}.update-toast{position:fixed;z-index:100;bottom:86px;right:16px;left:16px;margin:auto;max-width:440px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card,#fff);box-shadow:0 4px 16px #0002}@media (min-width:901px){.update-toast{bottom:20px;left:auto}}.result-sources{margin:14px 0;font-size:.85rem}.result-sources summary{cursor:pointer;color:var(--text-muted)}.result-sources ul{padding-left:20px}.result-sources a{overflow-wrap:anywhere}