:root{--bg:#f5f8f7;--surface:#fff;--green-ink:#004628;--green:#00aa46;--mint:#91fa9b;--mint-soft:#dcfce0;--cream:#fff1d8;--pink:#ffc9d7;--pink-ink:#b8255a;--orange:#ffa200;--orange-ink:#8f5600;--text:#1f1f1f;--muted:#5f6b66;--line:#e3e9e6;--exa:#1840ed;--exa-tint:#e4eaff;--exa-panel:#f6f8fd;--exa-ink:#15161a;--exa-slate:#4b5160;--exa-grid:#e1e4ec;--regular:#004628;--regular-soft:#dcefe4;--irregular:#ffa200;--irregular-soft:#fff1d8;--everyday:#e94e77;--everyday-soft:#ffe1e9;--mark-bg:#004628;--mark-fg:#91fa9b;--display:"Archivo", "Arial Narrow", ui-sans-serif, system-ui, sans-serif;--sans:"Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;--r-xl:24px;--r-lg:18px;--r-md:14px;--r-sm:10px;--shadow-1:0 1px 2px #0046280d, 0 8px 24px -14px #00462840;--shadow-exa:0 1px 2px #15161a0a, 0 10px 30px -18px #1840ed59;--ease:cubic-bezier(.2, .8, .2, 1);font-family:var(--sans);color:var(--text);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--exa-panel)}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}a{color:inherit}:focus-visible{outline:2px solid var(--exa);outline-offset:2px;border-radius:8px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted);font-size:.9rem}.small{font-size:.82rem}.dim{opacity:.65;font-weight:500}.mono{font-family:var(--mono)}.stage{place-items:center;min-height:100%;display:grid;position:relative}.stage:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(40rem 30rem at 50% 45%, var(--exa-panel), transparent 70%), linear-gradient(var(--exa-grid) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(90deg, var(--exa-grid) 1px, transparent 1px) 0 0 / 40px 40px, var(--exa-panel);position:fixed;inset:0}.stage:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(36rem 26rem at 8% 92%,#91fa9b59,#0000 70%),radial-gradient(32rem 24rem at 95% 6%,#1840ed1f,#0000 70%);position:fixed;inset:0}.phone{z-index:1;background:var(--bg);flex-direction:column;width:100%;max-width:430px;height:100dvh;display:flex;position:relative;overflow:hidden}@media (width>=600px){.phone{border:1px solid var(--exa-grid);height:min(100dvh - 48px,900px);box-shadow:0 30px 80px -30px #15161a59, 0 0 0 8px #fff, 0 0 0 9px var(--exa-grid);border-radius:42px}}.skip{z-index:10;background:var(--green-ink);color:#fff;border-radius:var(--r-sm);padding:10px 14px;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.topbar{padding:14px 18px 10px;padding-top:max(14px, env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{align-items:center;gap:10px;display:flex}.wordmark{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;color:var(--green-ink);font-size:1.55rem;font-weight:900;font-stretch:75%;line-height:1}.demo-flag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--orange-ink);background:var(--cream);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.68rem;font-weight:500;display:inline-flex}.demo-flag:before{content:"";background:var(--orange);border-radius:50%;width:6px;height:6px}.content{flex:1;min-height:0;position:relative}.screen{scroll-behavior:smooth;height:100%;overflow-y:auto}.screen[hidden]{display:none}.screen,.messages{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.tabbar{padding:6px 10px;padding-bottom:max(8px, env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);gap:4px;display:flex}.tab{border-radius:var(--r-md);min-height:56px;color:var(--muted);transition:color .2s var(--ease);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:.8rem;font-weight:600;display:flex}.tab-icon{width:52px;height:28px;transition:background-color .25s var(--ease);border-radius:999px;place-items:center;display:grid}.tab:hover,.tab[aria-current=page]{color:var(--green-ink)}.tab[aria-current=page] .tab-icon{background:var(--mint)}.tab:active{transform:scale(.97)}.eyebrow{color:var(--green);font-size:.85rem;font-weight:700}.eyebrow.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--exa-slate);font-size:.72rem;font-weight:500}.eyebrow.light{color:var(--green-ink);opacity:.75}.powered{color:var(--exa)}.display{font-family:var(--display);text-transform:uppercase;letter-spacing:-.005em;color:var(--green-ink);text-wrap:balance;margin:8px 0 12px;font-size:3rem;font-weight:900;font-stretch:75%;line-height:.92}.display em{color:var(--green);font-style:normal}.lede{color:var(--muted);text-wrap:pretty;max-width:34ch}.status{color:var(--muted);text-align:center;padding:28px 16px}.section-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--exa-slate);margin-top:20px;font-size:.72rem;font-weight:500}.button{min-height:46px;transition:background-color .2s var(--ease), transform .12s var(--ease), border-color .2s var(--ease), box-shadow .2s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:.95rem;font-weight:700;text-decoration:none;display:inline-flex}.button:active{transform:scale(.98)}.button.primary{background:var(--mint);color:var(--green-ink)}.button.primary:hover{box-shadow:0 0 0 4px #91fa9b73}.button.ghost{background:var(--surface);border-color:var(--green-ink);color:var(--green-ink)}.button.ghost:hover{background:var(--mint-soft)}.button:disabled{opacity:.5}.chat{flex-direction:column;height:100%;display:flex}.messages{flex-direction:column;flex:1;gap:14px;padding:16px 18px 18px;display:flex;overflow-y:auto}.welcome{margin:auto 0 4px}.question-list{gap:8px;margin:22px 0 0;padding:0;list-style:none;display:grid}.question{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);text-align:left;width:100%;min-height:58px;color:var(--green-ink);transition:border-color .2s var(--ease), transform .12s var(--ease), box-shadow .2s var(--ease), background-color .2s;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-weight:600;display:flex}.question svg{background:var(--mint);width:30px;height:30px;color:var(--green-ink);transition:transform .2s var(--ease);border-radius:50%;flex:none;padding:6px}.question:hover{border-color:var(--green-ink);box-shadow:var(--shadow-1)}.question:hover svg{transform:translate(3px)}.question:active{transform:scale(.99)}.question:disabled{opacity:.55}.bubble{border-radius:22px;max-width:86%;padding:12px 16px}.bubble.user{background:var(--green-ink);color:#fff;border-bottom-right-radius:6px;align-self:flex-end;font-weight:500}.assistant-row{align-items:flex-end;gap:8px;max-width:94%;display:flex}.avatar{flex:none;place-items:center;margin-bottom:2px;display:grid}.bubble.assistant{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-bottom-left-radius:6px;max-width:100%}.bubble.error{background:var(--pink);color:#6b1030}.bubble.notice{background:var(--cream)}.answer{white-space:pre-line;text-wrap:pretty;line-height:1.55}.answer-meta{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);align-items:center;gap:6px;margin-top:10px;font-size:.7rem;display:inline-flex}.answer-labels{flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px;display:flex}.answer-labels .answer-meta{border-radius:999px;margin-top:0;padding:4px 9px;font-weight:500}.answer-meta.private{color:var(--green-ink);background:var(--mint-soft)}.answer-meta.web{color:var(--exa-ink);background:var(--exa-tint)}.answer-meta.backup{color:#6b4e00;background:var(--cream)}.answer-sources{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.answer-sources li{align-items:flex-start;gap:10px;display:flex}.answer-sources a{min-width:0;color:var(--exa-ink);flex-direction:column;gap:1px;font-size:.86rem;font-weight:600;line-height:1.3;text-decoration:none;display:flex}.answer-sources a:hover{color:var(--exa);text-decoration:underline}.tools.sent q{color:var(--text);font-style:italic}.typing{gap:5px;padding:16px;display:flex}.typing span{background:var(--green);opacity:.25;border-radius:50%;width:7px;height:7px;animation:1.2s infinite blink}.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}@keyframes blink{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.how{border-radius:var(--r-md);background:var(--exa-panel);border:1px solid var(--exa-grid);margin-top:12px}.how summary{cursor:pointer;min-height:42px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--exa);align-items:center;gap:8px;padding:0 12px;font-size:.72rem;font-weight:500;list-style:none;display:flex}.how summary::-webkit-details-marker{display:none}.how summary:after{content:"+";transition:transform .2s var(--ease);margin-left:auto;font-size:1rem}.how[open] summary:after{transform:rotate(45deg)}.count{font-family:var(--mono);background:var(--exa);color:#fff;border-radius:999px;padding:1px 7px;font-size:.68rem}.ledger{margin:0;padding:0 12px 4px;list-style:none;display:grid}.ledger li{border-top:1px solid var(--exa-grid);grid-template-columns:1fr auto;column-gap:12px;padding:9px 0;display:grid}.ledger-label{color:var(--exa-slate);font-size:.86rem}.ledger-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--exa-ink);font-size:.86rem;font-weight:600}.ledger-source{font-family:var(--mono);color:#8a90a0;grid-column:1/-1;font-size:.68rem}.tools{color:var(--exa-slate);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 12px 12px;font-size:.78rem;display:flex}.tools code{font-family:var(--mono);background:var(--exa-tint);color:var(--exa);border-radius:6px;padding:3px 7px;font-size:.7rem}.tools code:after{content:"()";opacity:.6}.chips{flex-wrap:wrap;gap:6px;padding:2px 18px 8px;display:flex}.chat .chips{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:10px;overflow-x:auto;-webkit-mask:linear-gradient(90deg,#000 88%,#0000);mask:linear-gradient(90deg,#000 88%,#0000)}.chat .chips::-webkit-scrollbar{display:none}.chat .chip{white-space:nowrap;flex:none}.chip{text-align:left;white-space:normal;border:1px solid var(--line);background:var(--surface);max-width:100%;min-height:44px;color:var(--green-ink);transition:border-color .2s var(--ease), background-color .2s var(--ease), transform .12s var(--ease);border-radius:999px;flex:0 auto;padding:8px 15px;font-size:.88rem;font-weight:600}.chip:hover{border-color:var(--green-ink);background:var(--mint-soft)}.chip:active{transform:scale(.98)}.chip:disabled{opacity:.5}.dock{border-top:1px solid var(--line);background:var(--surface);padding:8px 14px 12px}.composer{gap:8px;display:flex}.composer input{border:1px solid var(--line);background:var(--bg);min-width:0;min-height:50px;transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .2s;border-radius:999px;flex:1;padding:0 18px}.composer input::placeholder{color:var(--muted)}.composer input:focus{border-color:var(--green-ink);background:var(--surface);outline:none;box-shadow:0 0 0 3px #91fa9b99}.send{background:var(--mint);width:50px;height:50px;color:var(--green-ink);transition:transform .12s var(--ease), opacity .2s, box-shadow .2s;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.send:hover:not(:disabled){box-shadow:0 0 0 4px #91fa9b73}.send:active:not(:disabled){transform:scale(.95)}.send:disabled{opacity:.4}.page{flex-direction:column;gap:14px;padding:16px 16px 28px;display:flex}.card{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--line);box-shadow:var(--shadow-1);padding:18px}.card-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.card-title{font-family:var(--display);text-transform:uppercase;color:var(--green-ink);font-size:1.85rem;font-weight:800;font-stretch:75%;line-height:1}.spent{flex-direction:column;align-items:flex-end;display:flex}.spent strong{color:var(--green-ink);font-size:1.15rem;font-weight:700}.source{font-family:var(--mono);color:#8a90a0;margin-top:12px;font-size:.68rem;line-height:1.5}.hero-card{color:var(--green-ink);background:var(--mint);border-radius:28px;flex-direction:column;gap:6px;padding:22px 20px 20px;display:flex;position:relative;overflow:hidden}.hero-card:after{content:"";pointer-events:none;border:34px solid #00462812;border-radius:50%;width:220px;height:220px;position:absolute;top:-70px;right:-60px}.hero-card .eyebrow{color:var(--green-ink);opacity:.8;font-weight:700}.hero-amount{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin:4px 0 6px;font-size:4.4rem;font-weight:900;font-stretch:75%;line-height:.95}.hero-facts{flex-wrap:wrap;gap:6px 14px;font-size:.95rem;display:flex}.hero-facts strong{font-variant-numeric:tabular-nums;font-weight:800}.hero-note{opacity:.75;margin-top:4px;font-size:.82rem}.segmented{background:var(--bg);border:1px solid var(--line);border-radius:999px;gap:4px;margin-bottom:16px;padding:4px;display:flex}.segmented button{min-height:42px;color:var(--muted);transition:background-color .25s var(--ease), color .25s var(--ease);background:0 0;border:0;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.segmented button[aria-pressed=true]{background:var(--green-ink);color:#fff}.segmented button:disabled{opacity:.5}.stackbar{border-radius:999px;gap:3px;height:14px;margin-bottom:6px;display:flex;overflow:hidden}.seg{min-width:4px;transition:flex-grow .6s var(--ease);flex-basis:0}.seg.MANDATORY_REGULAR,.dot.MANDATORY_REGULAR{background:var(--regular)}.seg.MANDATORY_IRREGULAR,.dot.MANDATORY_IRREGULAR{background:var(--irregular)}.seg.EVERYDAY,.dot.EVERYDAY{background:var(--everyday)}.dot{vertical-align:0;background:var(--line);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.basket-list,.cat-list,.tx-list,.split-list,.leak-list{margin:0;padding:0;list-style:none}.basket-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;min-height:70px;padding:12px 0;display:flex}.basket-row:hover .chev{background:var(--mint);transform:translate(3px)}.basket-list li:last-child .basket-row{border-bottom:0}.swatch{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:1.2rem;display:grid}.swatch.big{width:56px;height:56px;font-size:1.5rem}.swatch.MANDATORY_REGULAR{background:var(--regular-soft)}.swatch.MANDATORY_IRREGULAR{background:var(--irregular-soft)}.swatch.EVERYDAY{background:var(--everyday-soft)}.basket-name,.basket-amount,.tx-main{flex-direction:column;display:flex}.basket-name{flex:1;min-width:0}.basket-name strong{color:var(--green-ink);font-weight:700}.basket-amount{text-align:right}.basket-amount strong{color:var(--green-ink);font-size:1.1rem;font-weight:800}.chev{width:28px;height:28px;color:var(--green-ink);background:var(--bg);transition:transform .2s var(--ease), background-color .2s;border-radius:50%;place-items:center;display:grid}.receipt-hint{border-radius:var(--r-md);background:var(--mint-soft);color:var(--green-ink);margin-top:14px;padding:12px 14px;font-size:.92rem}.receipt-paper,.receipt{--zig:8px;-webkit-mask:conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / calc(var(--zig) * 2) var(--zig) repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--zig) * 2) var(--zig) repeat-x, linear-gradient(#000 0 0) center / 100% calc(100% - var(--zig) * 2) no-repeat;-webkit-mask:conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / calc(var(--zig) * 2) var(--zig) repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--zig) * 2) var(--zig) repeat-x, linear-gradient(#000 0 0) center / 100% calc(100% - var(--zig) * 2) no-repeat;mask:conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / calc(var(--zig) * 2) var(--zig) repeat-x, conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) bottom / calc(var(--zig) * 2) var(--zig) repeat-x, linear-gradient(#000 0 0) center / 100% calc(100% - var(--zig) * 2) no-repeat;background:#fffaf0;padding:18px 16px;font-size:.95rem;position:relative}.receipt-paper{background:var(--cream);flex-direction:column;gap:8px;margin-top:16px;padding-top:24px;padding-bottom:24px;display:flex}.reveal{font-family:var(--display);color:var(--green-ink);text-wrap:pretty;margin:4px 0 6px;font-size:1.55rem;font-weight:800;font-stretch:80%;line-height:1.08}.reveal-amount{color:var(--pink-ink);font-variant-numeric:tabular-nums}.paper-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--orange-ink);border-top:1px dashed #e3cfa6;margin-top:8px;padding-top:10px;font-size:.7rem;font-weight:500}.split-list li,.leak-list li{min-height:34px;font-family:var(--mono);justify-content:space-between;align-items:center;gap:12px;font-size:.84rem;display:flex}.split-list li span,.leak-list li>span{font-family:var(--sans);font-size:.92rem}.split-list strong,.leak-list strong{font-weight:600}.leak-list li{color:var(--pink-ink);border-bottom:1px dotted #ecd6b0}.leak-list li:last-child{border-bottom:0}.qty{color:var(--muted);font-family:var(--mono);font-size:.78rem}.badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--surface);color:var(--orange-ink);border:1px dashed var(--orange);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;font-size:.66rem;font-weight:500;display:inline-flex}.cat-list{margin-top:10px}.cat-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.cat-list li span{align-items:center;gap:10px;display:inline-flex}.cat-list strong{font-weight:700}.totals{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.totals div{background:var(--bg);border-radius:var(--r-md);flex-direction:column;padding:12px 14px;display:flex}.totals strong{color:var(--green-ink);font-size:1.15rem;font-weight:800}.back{min-height:44px;color:var(--green-ink);background:0 0;border:0;align-self:flex-start;align-items:center;gap:2px;padding:0 6px 0 0;font-weight:700;display:inline-flex}.page-head{align-items:center;gap:14px;display:flex}.page-title{font-family:var(--display);text-transform:uppercase;color:var(--green-ink);font-size:2.2rem;font-weight:900;font-stretch:75%;line-height:.95}.tx-list{padding:4px 16px}.tx-list li{border-bottom:1px solid var(--line)}.tx-list li:last-child{border-bottom:0}.tx-row,.tx-button{justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:62px;padding:8px 0;display:flex}.tx-button{text-align:left;background:0 0;border:0}.tx-button:hover .chev{background:var(--mint);transform:translate(3px)}.tx-main{flex:1;min-width:0}.tx-main strong{color:var(--green-ink);font-weight:700}.has-receipt{color:var(--orange-ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:3px;margin-left:8px;font-size:.66rem;display:inline-flex}.out{color:var(--text);font-weight:700}.in{color:var(--green);font-weight:700}.receipt{box-shadow:var(--shadow-1);flex-direction:column;gap:4px;padding:28px 18px;display:flex}.receipt-store{font-family:var(--display);text-transform:uppercase;color:var(--green-ink);margin-top:8px;font-size:2rem;font-weight:900;font-stretch:75%;line-height:1}.receipt-when{font-family:var(--mono);color:var(--muted);font-size:.74rem}.receipt-items{border-top:1px dashed #e3cfa6;margin:14px 0 0;padding:0;list-style:none}.receipt-items li{border-bottom:1px dashed #efe1c4;border-radius:8px;align-items:flex-start;gap:10px;padding:9px 8px;font-size:.92rem;display:flex}.receipt-items li.leak{background:var(--everyday-soft)}.receipt-items li.leak strong{color:var(--pink-ink)}.receipt-items .dot{margin-top:6px}.receipt-items strong{font-family:var(--mono);font-weight:600}.item-name{flex-direction:column;flex:1;gap:1px;display:flex}.item-sub{font-family:var(--mono);color:var(--muted);font-size:.7rem}.tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--green-ink);background:var(--mint);vertical-align:1px;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:.62rem;font-weight:500}.receipt-total{border-top:2px solid var(--green-ink);justify-content:space-between;align-items:baseline;margin-top:6px;padding:14px 8px 0;font-size:1.1rem;font-weight:700;display:flex}.receipt-total strong{font-family:var(--mono);font-size:1.25rem}.butler .welcome{margin:0 0 4px}.nudge{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--everyday);border-radius:var(--r-lg);box-shadow:var(--shadow-1);align-items:flex-start;gap:14px;padding:16px;display:flex}.nudge-icon{background:var(--everyday-soft);width:42px;height:42px;color:var(--pink-ink);border-radius:50%;flex:none;place-items:center;display:grid}.nudge-body{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.nudge-body .eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--pink-ink);font-size:.68rem;font-weight:500}.nudge-title{font-family:var(--display);text-transform:uppercase;color:var(--green-ink);font-size:1.6rem;font-weight:900;font-stretch:75%;line-height:1}.up{font-family:var(--mono);color:#fff;background:var(--everyday);vertical-align:5px;letter-spacing:0;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600}.nudge .button{margin-top:6px}.butler-input,.butler .chips{padding:0}.card.exa{border-color:var(--exa-grid);box-shadow:var(--shadow-exa)}.progress{flex-direction:column;gap:14px;display:flex}.butler-task{font-family:var(--mono);color:var(--exa-ink);background:var(--exa-panel);border:1px solid var(--exa-grid);border-radius:var(--r-sm);padding:10px 12px;font-size:.86rem;line-height:1.5}.q{background:var(--exa);color:#fff;text-transform:uppercase;letter-spacing:.06em;vertical-align:1px;border-radius:5px;margin-right:8px;padding:1px 7px;font-size:.68rem;display:inline-block}.stages{gap:2px;margin:0;padding:0;list-style:none;display:grid}.stages li{border-top:1px solid var(--exa-grid);color:#8a90a0;align-items:center;gap:12px;padding:9px 0;font-size:.92rem;transition:color .3s;display:flex}.stage-n{font-family:var(--mono);color:#b8bdc9;width:26px;font-size:.75rem;font-weight:600}.stages li.done{color:var(--exa-slate)}.stages li.done .stage-n{color:var(--exa)}.stages li.now{color:var(--exa-ink);font-weight:600}.stages li.now .stage-n{color:var(--exa);animation:flicker 1s infinite var(--ease)}@keyframes flicker{50%{opacity:.35}}.butler-answer{flex-direction:column;gap:10px;display:flex}.cite{min-width:18px;height:18px;font-family:var(--mono);vertical-align:2px;color:#fff;background:var(--exa);border-radius:5px;place-items:center;margin:0 1px;padding:0 4px;font-size:.66rem;font-weight:600;text-decoration:none;display:inline-grid}.cite:hover{background:var(--exa-ink)}.draft-card{border-radius:var(--r-lg);background:var(--bg);border:1px solid var(--line);border-top:4px solid var(--mint);flex-direction:column;gap:8px;margin-top:6px;padding:16px;display:flex}.draft-card .eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--green);font-size:.68rem;font-weight:500}.draft-subject{font-family:var(--display);color:var(--green-ink);font-size:1.3rem;font-weight:800;font-stretch:85%;line-height:1.15}.draft-body summary{cursor:pointer;color:var(--green-ink);align-items:center;min-height:36px;font-size:.9rem;font-weight:700;display:flex}.draft-body pre{white-space:pre-wrap;font-family:var(--mono);background:var(--surface);border-radius:var(--r-sm);border:1px solid var(--line);max-height:260px;margin:4px 0 0;padding:12px;font-size:.78rem;line-height:1.6;overflow:auto}.draft-actions{flex-wrap:wrap;gap:8px;display:flex}.steps{gap:2px;margin:4px 0 0;padding:0;list-style:none;display:grid}.steps label{cursor:pointer;align-items:flex-start;gap:10px;min-height:40px;padding:6px 0;display:flex}.steps input{width:20px;height:20px;accent-color:var(--green);flex:none;margin-top:1px}.steps input:checked+span{color:var(--muted);text-decoration:line-through}.sources{border-top:1px solid var(--exa-grid);margin:4px 0 0;padding:0;list-style:none;display:grid}.sources li{border-bottom:1px solid var(--exa-grid);align-items:flex-start;gap:12px;padding:10px 4px;scroll-margin-top:80px;display:flex}.sources li.cited .src-n{background:var(--exa);color:#fff}.sources li:target{background:var(--exa-tint)}.src-n{width:24px;height:24px;font-family:var(--mono);background:var(--exa-tint);color:var(--exa);border-radius:6px;flex:none;place-items:center;font-size:.7rem;font-weight:600;display:grid}.sources a{flex-direction:column;gap:2px;min-width:0;text-decoration:none;display:flex}.src-title{color:var(--exa-ink);font-size:.9rem;font-weight:600;line-height:1.3}.sources a:hover .src-title{color:var(--exa);text-decoration:underline}.src-meta{font-family:var(--mono);color:#8a90a0;word-break:break-all;align-items:center;gap:5px;font-size:.68rem;display:inline-flex}.skeleton{border-radius:var(--r-xl);background:linear-gradient(100deg,#e9efec 30%,#f6f9f8 50%,#e9efec 70%) 0 0/300% 100%;height:120px;animation:1.4s linear infinite shimmer}.skeleton.hero{border-radius:28px;height:176px}.skeleton.tall{height:320px}@keyframes shimmer{to{background-position:-150% 0}}.rise{animation:rise .55s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms)}.pop{animation:rise .35s var(--ease) both}.reveal-in{animation:reveal .5s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes reveal{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.assistant-turn{flex-direction:column;gap:10px;display:flex}.question.errand{background:var(--green-ink);border-color:var(--green-ink);color:#fff;min-height:84px;padding:14px 14px 14px 18px}.question.errand:hover{border-color:var(--green-ink);box-shadow:0 10px 30px -14px #00462899}.question.errand svg{background:0 0;border-radius:0;width:44px;height:44px;padding:0}.question.errand:hover svg{transform:translate(4px)}.errand-text{flex-direction:column;gap:3px;display:flex}.errand-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--mint);font-size:.64rem;font-weight:500}.errand-sub{opacity:.75;font-size:.82rem;font-weight:500}.order-card{flex-direction:column;gap:12px;margin-left:34px;padding:16px;scroll-margin-top:12px;display:flex}.order-card.skeleton{height:220px}.order-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.order-title{font-family:var(--display);text-transform:uppercase;color:var(--green-ink);text-wrap:balance;margin-top:4px;font-size:1.75rem;font-weight:900;font-stretch:75%;line-height:1}.order-head .badge{flex:none}.order-basis{color:var(--muted);font-size:.7rem;line-height:1.5}.order-items{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.order-items li{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:40px;font-size:.9rem;display:flex}.order-items li.treat .order-name,.order-items li.treat strong{color:var(--pink-ink)}.order-qty{width:46px;color:var(--muted);flex:none;font-size:.74rem}.order-name{flex:1;min-width:0}.order-items strong{font-size:.84rem;font-weight:600}.link-button{min-height:32px;color:var(--green-ink);text-underline-offset:3px;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.88rem;font-weight:700;text-decoration:underline}.treats{border-radius:var(--r-md);background:var(--everyday-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.treats>div{flex-direction:column;gap:2px;display:flex}.treats strong{color:var(--pink-ink);font-size:.92rem}.treats.on{background:var(--cream)}.treats.on strong{color:var(--orange-ink)}.small-button{flex:none;min-height:38px;padding:0 14px;font-size:.85rem}.delivery{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.delivery-option{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);min-height:92px;color:var(--green-ink);text-align:center;transition:border-color .2s var(--ease), background-color .2s var(--ease), box-shadow .2s;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 4px;display:flex}.delivery-option:hover{border-color:var(--green-ink)}.delivery-option[aria-checked=true]{border:2px solid var(--green-ink);background:var(--mint-soft)}.delivery-label{font-size:.78rem;font-weight:700;line-height:1.2}.delivery-fee{color:var(--muted);font-size:.7rem}.order-sum{margin:0;display:grid}.order-sum div{justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;display:flex}.order-sum dt{color:var(--muted);font-size:.9rem}.order-sum dd{margin:0;font-weight:600}.order-sum .order-total{border-top:2px solid var(--green-ink);margin-top:4px;padding-top:10px}.order-sum .order-total dt{color:var(--green-ink);font-weight:700}.order-sum .order-total dd{color:var(--green-ink);font-size:1.2rem;font-weight:700}.fit{border-radius:var(--r-sm);padding:10px 12px;font-size:.88rem;font-weight:600}.fit.ok{background:var(--mint-soft);color:var(--green-ink)}.fit.over{background:var(--everyday-soft);color:var(--pink-ink)}.button.approve{width:100%;min-height:52px;font-size:1rem}.concept-note{font-family:var(--mono);color:var(--muted);text-align:center;font-size:.66rem;line-height:1.5}.road{border-radius:var(--r-md);background:linear-gradient(transparent 70px, var(--line) 70px 72px, transparent 72px), repeating-linear-gradient(90deg, #cfd8d4 0 10px, transparent 10px 20px) 0 80px / 100% 2px no-repeat, var(--bg);height:92px;position:relative;overflow:hidden}.road-store{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.62rem;position:absolute;top:10px;left:10px}.road-home{background:var(--mint);width:44px;height:44px;color:var(--green-ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:26px;right:10px}.road-bot{transition:left 2.4s var(--ease);animation:.5s ease-in-out infinite alternate trundle;position:absolute;bottom:14px;left:6px}.road[data-stage="1"] .road-bot{left:14%}.road[data-stage="2"] .road-bot{left:52%}.road.arrived .road-bot{animation:none;left:calc(100% - 118px)}.road.arrived .road-home{box-shadow:0 0 0 6px #91fa9b73}@keyframes trundle{to{transform:translateY(-2px)}}.tracking .stages li.done .stage-n,.tracking .stages li.now .stage-n{color:var(--green)}.tracking .stages li{border-top-color:var(--line)}
