:root{color-scheme:light;--bg:#f5f7f3;--bg-soft:#eef2eb;--surface:#fff;--surface-soft:#eef4ed;--surface-elev:#fbfcf9;--ink:#18211b;--ink-soft:#2d3a30;--muted:#68736a;--muted-strong:#4a5650;--line:#e3e8de;--line-strong:#cdd5c8;--accent:#196f5a;--accent-soft:#e4f1ea;--accent-strong:#135445;--accent-2:#a24b2a;--accent-3:#365e9d;--danger:#a13d3d;--shadow-sm:0 1px 3px rgba(35,48,37,.04),0 1px 2px rgba(35,48,37,.03);--shadow:0 8px 24px rgba(35,48,37,.06),0 2px 6px rgba(35,48,37,.04);--shadow-lg:0 24px 60px rgba(35,48,37,.12),0 8px 20px rgba(35,48,37,.06);--radius-sm:8px;--radius:12px;--radius-lg:18px;--transition:180ms cubic-bezier(0.4,0,0.2,1);--transition-slow:320ms cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:radial-gradient(ellipse 80% 60% at 0 0,rgba(25,111,90,.06),transparent 60%),radial-gradient(ellipse 60% 50% at 100% 100%,rgba(162,75,42,.04),transparent 60%);background-attachment:fixed;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em}button,input,select,textarea{font:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page-shell{min-height:100vh;padding:32px 28px}.app-frame{margin:0 auto;max-width:1320px}.nav-frame{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;gap:14px;justify-content:space-between;margin-bottom:22px;padding:14px 18px}.compact-brand h1{font-size:18px;font-weight:600;letter-spacing:-.01em;margin:0;white-space:nowrap}.compact-brand p{color:var(--muted);font-size:12px;margin:3px 0 0;white-space:nowrap}.segmented{background:var(--bg-soft);border:1px solid var(--line);border-radius:10px;display:inline-flex;gap:2px;padding:3px}.segmented button{background:transparent;border:0;border-radius:7px;color:var(--muted-strong);font-size:13px;font-weight:500;min-height:32px;padding:6px 16px;transition:background var(--transition),color var(--transition),box-shadow var(--transition)}.segmented button:hover{color:var(--ink)}.segmented button.active{background:var(--surface);box-shadow:0 1px 2px rgba(35,48,37,.08),0 1px 3px rgba(35,48,37,.04);color:var(--ink)}.topbar{align-items:flex-end;display:flex;gap:18px;justify-content:space-between;margin-bottom:28px}.brand h1{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0 0 8px}.brand p{color:var(--muted);margin:0}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.input,.select,.textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);min-height:40px;padding:9px 12px;transition:border-color var(--transition),box-shadow var(--transition)}.input:hover,.select:hover,.textarea:hover{border-color:var(--line-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(25,111,90,.12);outline:none}.textarea{min-height:78px;resize:vertical}.button{align-items:center;background:var(--ink);border:1px solid var(--ink);border-radius:var(--radius-sm);color:#fff;display:inline-flex;font-weight:500;gap:8px;min-height:40px;padding:9px 14px;transition:background var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.button:hover:not(:disabled){background:var(--ink-soft);border-color:var(--ink-soft);transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0)}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button.secondary:hover:not(:disabled){background:var(--surface-soft);border-color:var(--line-strong)}.button.danger{background:var(--danger);border-color:var(--danger)}.button.danger:hover:not(:disabled){background:#8a3434;border-color:#8a3434}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.button.full{justify-content:center;width:100%}.trace-filter-panel{margin-bottom:18px}.trace-toolbar{justify-content:flex-start;padding:16px}.trace-search{align-items:center;display:flex;flex:1 1;gap:10px;min-width:min(420px,100%)}.trace-search .input{flex:1 1;min-width:180px}.trace-layout{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(320px,.9fr) minmax(0,1.4fr)}.trace-detail-panel,.trace-list-panel{min-width:0}.trace-list{display:grid;grid-gap:8px;gap:8px;max-height:720px;overflow:auto;padding:0 16px 16px}.trace-list-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);display:grid;grid-gap:7px;gap:7px;padding:12px;text-align:left;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)}.trace-list-item.active,.trace-list-item:hover{background:var(--surface-elev);border-color:var(--accent);box-shadow:var(--shadow-sm)}.trace-list-head,.trace-meta,.trace-step-title{align-items:center;display:flex;gap:8px;justify-content:space-between}.trace-preview{color:var(--ink-soft);font-size:14px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trace-meta,.trace-step-title span{color:var(--muted);font-size:12px}.trace-detail{display:grid;grid-gap:18px;gap:18px}.trace-summary-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.trace-summary-grid>div{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;grid-gap:6px;gap:6px;min-width:0;padding:12px}.trace-reason h3,.trace-summary-grid span{color:var(--muted);font-size:12px;font-weight:500;margin:0}.trace-summary-grid strong{font-size:15px;overflow-wrap:anywhere}.trace-reason{display:grid;grid-gap:8px;gap:8px}.trace-reason p{color:var(--ink-soft);line-height:1.55;margin:0;overflow-wrap:anywhere}.trace-error{margin:0}.trace-section-title{align-items:center;display:flex;justify-content:space-between}.trace-section-title h3{font-weight:500;margin:0}.trace-section-title h3,.trace-section-title span{color:var(--muted);font-size:12px}.trace-model-calls{display:grid;grid-gap:10px;gap:10px}.trace-model-call,.trace-model-call-list{display:grid;grid-gap:8px;gap:8px}.trace-model-call{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px}.trace-model-call>div{align-items:center;display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between}.trace-model-call strong{color:var(--ink)}.trace-model-call p,.trace-model-call span{color:var(--muted);font-size:12px}.trace-model-call p{margin:0;overflow-wrap:anywhere}.trace-timeline{display:grid;grid-gap:12px;gap:12px;padding-top:2px}.trace-step{display:grid;grid-gap:10px;gap:10px;grid-template-columns:14px minmax(0,1fr)}.trace-step-dot{background:var(--accent);border-radius:999px;height:9px;margin-top:8px;width:9px}.trace-step-body{border-bottom:1px solid var(--line);display:grid;grid-gap:6px;gap:6px;padding-bottom:12px}.trace-step-body p{color:var(--ink-soft);margin:0}.trace-step-body pre{background:#f7f9f5;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted-strong);font-size:12px;line-height:1.45;margin:4px 0 0;max-height:260px;overflow:auto;padding:10px;white-space:pre-wrap;word-break:break-word}.link-button{background:transparent;border:0;color:var(--accent);font-weight:500;padding:0;transition:color var(--transition)}.link-button:hover{color:var(--accent-strong)}.icon-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);display:inline-flex;height:34px;justify-content:center;transition:background var(--transition),color var(--transition);width:34px}.icon-button:hover{background:var(--surface-soft);color:var(--ink)}.qr-image{aspect-ratio:1;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);display:block;max-width:260px;padding:8px;width:100%}.auth-shell{align-items:center;display:flex;justify-content:center}.auth-landing-shell,.auth-landing-shell.page-shell{padding:0}.auth-landing{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh;min-height:100dvh;width:100%}.auth-hero{align-content:space-between;background:linear-gradient(155deg,#0d2620,#102b24 50%,#0c1f1a);color:#f7fff8;display:grid;grid-gap:28px;gap:28px;overflow:hidden;padding:clamp(48px,6vw,80px) clamp(40px,6vw,80px);position:relative}.auth-hero:before{background:radial-gradient(circle at 18% 8%,rgba(123,208,184,.28),transparent 42%),radial-gradient(circle at 95% 92%,rgba(214,106,67,.22),transparent 46%),radial-gradient(circle at 75% 18%,rgba(54,94,157,.16),transparent 48%)}.auth-hero:after,.auth-hero:before{content:"";inset:0;pointer-events:none;position:absolute}.auth-hero:after{background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.25)),radial-gradient(ellipse 60% 40% at 50% 100%,rgba(123,208,184,.08),transparent 70%)}.auth-hero>*{position:relative;z-index:1}.auth-hero .auth-brand{align-items:center;display:flex;gap:10px}.auth-hero .auth-brand h1{font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0;white-space:nowrap}.auth-hero .auth-brand p{color:rgba(191,210,199,.8);font-size:13px;margin:0;padding-left:12px;position:relative}.auth-hero .auth-brand p:before{background:rgba(191,210,199,.3);content:"";height:14px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:1px}.auth-hero-copy,.onboarding-copy{align-self:center;display:grid;grid-gap:18px;gap:18px;max-width:620px}.auth-hero-copy h2,.onboarding-copy h2{font-size:44px;font-weight:600;letter-spacing:-.025em;line-height:1.08;margin:0}.auth-hero-copy p,.onboarding-copy p{color:rgba(200,217,207,.88);font-size:16px;line-height:1.75;margin:0;max-width:560px}.auth-feature-list,.onboarding-feature-grid{align-self:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.auth-feature-list div{align-items:center;display:flex;gap:12px}.auth-feature-list div,.auth-flow div,.onboarding-feature-grid div{background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius);padding:14px 16px;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.auth-flow div,.onboarding-feature-grid div{display:grid;grid-gap:6px;gap:6px;grid-template-columns:28px 1fr}.auth-feature-list div:hover,.auth-flow div:hover,.onboarding-feature-grid div:hover{background:hsla(0,0%,100%,.08);border-color:rgba(123,208,184,.25);transform:translateY(-1px)}.auth-feature-list svg,.auth-flow svg,.onboarding-feature-grid svg{color:#7bd0b8}.auth-flow svg,.onboarding-feature-grid svg{grid-row:span 2;margin-top:2px}.auth-flow strong,.onboarding-feature-grid strong{color:#f7fff8;font-size:14px;font-weight:600;grid-column:2}.auth-feature-list span{color:#e3eee7;font-size:13.5px;font-weight:500;line-height:1.45}.auth-flow>div>span,.onboarding-feature-grid>div>span{color:rgba(200,217,207,.8);font-size:12.5px;grid-column:2;line-height:1.5}.auth-flow{align-self:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:460px;padding:32px}.auth-card,.auth-form-card{display:grid;grid-gap:22px;gap:22px;width:100%}.auth-form-card{align-self:stretch;align-content:center;background:transparent;border:0;border-radius:0;box-shadow:none;justify-self:center;max-width:420px;padding:clamp(40px,6vw,72px) clamp(24px,5vw,56px)}.binding-card{max-width:480px}.auth-form-header{display:grid;grid-gap:8px;gap:8px}.auth-form-mark{align-items:center;color:var(--accent);display:inline-flex;font-size:12.5px;font-weight:600;gap:6px;letter-spacing:.02em;text-transform:uppercase}.auth-form-header h2{color:var(--ink);font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:4px 0 0}.auth-form-header p{color:var(--muted-strong);font-size:14px;line-height:1.55;margin:0}.auth-form-card .auth-switch{border-top:1px solid var(--line);color:var(--muted);font-size:13.5px;margin-top:4px;padding-top:18px}.auth-brand h1,.auth-form-card .auth-switch .link-button{font-weight:600}.auth-brand h1{font-size:28px;letter-spacing:-.02em}.auth-heading{border-bottom:0;padding:0}.auth-heading h2{font-size:20px;font-weight:600;letter-spacing:-.01em}.auth-switch{text-align:center}.binding-card{align-self:center;max-width:520px}.binding-qr{justify-items:center;text-align:center}.onboarding-steps{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:10px;gap:10px;padding:14px 16px}.onboarding-steps div{align-items:center;color:var(--muted-strong);display:flex;font-size:13px;gap:12px}.onboarding-steps span{background:var(--accent);border-radius:999px;color:#fff;flex-shrink:0;font-size:11px;font-weight:600;height:22px;width:22px}.onboarding-steps span,.refresh-link{align-items:center;display:inline-flex;justify-content:center}.refresh-link{gap:6px}.grid{display:grid;grid-gap:16px;gap:16px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.dashboard-grid{align-items:stretch}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;position:relative;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.stat:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.stat span{color:var(--muted);display:block;font-size:12.5px;font-weight:500;letter-spacing:.01em;margin-bottom:10px;text-transform:uppercase}.stat strong{display:block;font-feature-settings:"tnum";font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.dashboard-stat{display:grid;grid-gap:10px;gap:10px}.dashboard-stat-icon{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:inline-flex;height:38px;justify-content:center;width:38px}.dashboard-stat p{color:var(--muted);font-size:12.5px;line-height:1.5;margin:0}.dashboard-actions{display:flex;flex-wrap:wrap;gap:10px}.dashboard-actions .button{flex:1 1 160px;min-height:44px}.main-grid{align-items:start;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr)}.summary-grid,.usage-grid{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.grocery-grid{align-items:start;grid-template-columns:minmax(0,1.35fr) minmax(340px,.75fr);margin-bottom:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--transition)}.panel:hover{box-shadow:var(--shadow)}.panel-header{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.panel-header h2{font-size:15px;font-weight:600;letter-spacing:-.005em;margin:0}.panel-body{padding:18px 20px}.chart-wrap{height:260px}.form-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}.field label{color:var(--muted-strong);display:block;font-size:12.5px;font-weight:500;margin-bottom:7px}.checkbox-field{align-items:center;color:var(--ink);display:flex;gap:10px}.checkbox-field input{accent-color:var(--accent);height:18px;width:18px}.summary-actions{display:grid;grid-gap:12px;gap:12px}.summary-preview{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font-family:inherit;line-height:1.7;margin:0;max-height:520px;overflow:auto;padding:18px;white-space:pre-wrap}.grocery-plan-preview{display:grid;grid-gap:16px;gap:16px}.grocery-plan-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.grocery-plan-heading h3{font-size:22px;font-weight:600;letter-spacing:-.01em;margin:10px 0 4px}.grocery-items{display:grid;grid-gap:10px;gap:10px}.grocery-item{align-items:start;background:var(--surface-elev);border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;grid-gap:8px 12px;gap:8px 12px;grid-template-columns:1fr auto;padding:14px}.grocery-item strong{display:block;font-size:15px;margin-bottom:4px}.grocery-item span{color:var(--muted);font-size:12.5px}.grocery-item p{color:var(--muted-strong);font-size:12.5px;grid-column:1/-1;line-height:1.5;margin:0}.grocery-basis{max-height:180px}.selected-row{background:#f3f7f1}.entries,.field input,.field select,.field textarea{width:100%}.entries{border-collapse:collapse}.entries td,.entries th{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:middle}.entries th{color:var(--muted);font-size:12px;font-weight:600}.entries tr:last-child td{border-bottom:0}.entries strong{display:block;overflow-wrap:anywhere}.amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.amount.income{color:var(--accent)}.amount.expense{color:var(--accent-2)}.amount.transfer{color:var(--accent-3)}.pill{align-items:center;background:var(--surface-soft);border-radius:999px;color:var(--muted-strong);display:inline-flex;font-size:12px;font-weight:500;gap:4px;letter-spacing:.005em;padding:5px 10px}.pill.success{background:var(--accent-soft);color:var(--accent-strong)}.pill.warning{background:#fbf0dd;color:#9a5c00}.pill.danger{background:#f8e4e4;color:var(--danger)}.empty,.muted{color:var(--muted)}.empty{padding:40px 16px;text-align:center}.actions{align-items:center;display:flex;gap:4px;justify-content:flex-end}.error{background:#fff5f3;border:1px solid #f0c9c2;border-radius:var(--radius-sm);color:var(--danger);font-size:13.5px;padding:12px 14px}.binding-conflict{background:#fff8f2;border:1px solid #efd6c2;border-radius:var(--radius-sm);color:var(--muted-strong);display:grid;font-size:12.5px;grid-gap:5px;gap:5px;padding:12px 14px;text-align:left;width:100%}.binding-conflict strong{color:var(--danger);font-size:13px;font-weight:600}.binding-conflict span{overflow-wrap:anywhere}.broadcast-result{display:grid;grid-gap:8px;gap:8px}.dashboard-topbar .brand .eyebrow{color:var(--accent);display:inline-block;font-size:12px;font-weight:600;letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}.pill-dot{background:currentColor;border-radius:999px;display:inline-block;height:6px;margin-right:2px;width:6px}.dashboard-stat.tone-expense .dashboard-stat-icon{background:#fbe9df;color:var(--accent-2)}.dashboard-stat.tone-food .dashboard-stat-icon{background:#e4f1ea;color:var(--accent)}.dashboard-stat.tone-reminder .dashboard-stat-icon{background:#e3ebf6;color:var(--accent-3)}.dashboard-stat.tone-channel .dashboard-stat-icon{background:#f1ece2;color:#7a5e22}.panel-header-text{display:grid;grid-gap:4px;gap:4px}.panel-header-text p{font-size:12.5px;margin:0}.panel-header-accent{color:var(--accent)}.dashboard-actions-panel .panel-body{padding:18px}.action-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.action-card{align-items:center;background:var(--surface-elev);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);display:grid;grid-gap:14px;gap:14px;grid-template-columns:40px 1fr auto;padding:16px;text-align:left;transition:background var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.action-card:hover{background:var(--surface);border-color:var(--accent);box-shadow:0 4px 14px rgba(25,111,90,.1);transform:translateY(-2px)}.action-card:hover .action-card-arrow{color:var(--accent);transform:translate(2px,-2px)}.action-card-icon{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:inline-flex;height:40px;justify-content:center;width:40px}.action-card-body{display:grid;grid-gap:4px;gap:4px}.action-card-body strong{font-size:14.5px;font-weight:600;letter-spacing:-.005em}.action-card-body>span{color:var(--muted);font-size:12.5px;line-height:1.5}.action-card-arrow{color:var(--muted);transition:color var(--transition),transform var(--transition)}@media (max-width:900px){.page-shell{padding:18px}.nav-frame{align-items:stretch;flex-direction:column}.nav-tools{justify-content:space-between}.segmented{overflow-x:auto;width:100%}.segmented button{flex:1 0 auto;padding:6px 12px}.topbar{align-items:flex-start;flex-direction:column}.toolbar{justify-content:flex-start;width:100%}.auth-landing,.grocery-grid,.main-grid,.onboarding-layout,.stats-grid,.summary-grid,.trace-layout,.trace-summary-grid,.usage-grid{grid-template-columns:1fr}.auth-landing{min-height:auto;grid-template-rows:auto 1fr}.auth-hero,.onboarding-hero{min-height:auto;padding:28px 24px}.auth-hero{align-content:start;gap:14px;padding:max(28px,env(safe-area-inset-top)) 24px 28px}.auth-hero .auth-feature-list,.auth-hero .auth-flow,.auth-hero .auth-hero-copy p,.auth-hero .onboarding-feature-grid{display:none}.auth-hero-copy h2,.onboarding-copy h2{font-size:30px}.auth-hero .auth-hero-copy h2{font-size:22px;line-height:1.25}.auth-form-card{padding:28px 22px max(28px,env(safe-area-inset-bottom));max-width:480px}.action-grid,.auth-feature-list,.auth-flow,.form-grid,.onboarding-feature-grid{grid-template-columns:1fr}.entries{min-width:720px}.table-scroll{overflow-x:auto}}