:root{--bg:#f5f3ee;--surface:#fff;--surface-soft:#faf8f3;--line:#e9e4db;--text:#181713;--muted:#6e675d;--primary:#25231f;--warm:#c88b59;--sage:#8fa081;--stone:#b7aa97;--danger:#b2553d;--shadow:0 18px 42px #1a140b0f;--radius-xl:28px;--radius-lg:20px;--radius-md:16px;--radius-sm:12px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);background:radial-gradient(circle at 0 0,#c88b5914,#0000 28%),linear-gradient(#f7f4ee 0%,#f2eee7 100%);margin:0;font-family:Segoe UI Variable Text,Aptos,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.page{min-height:100vh}.pin-shell{z-index:40;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#1817133d;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pin-card{width:min(100%,420px);box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #ffffffb3;border-radius:32px;padding:32px}.pin-card h1,.brand-card h2,.topbar h1,.banner h3,.block-head h3{letter-spacing:-.03em;margin:0;font-family:Georgia,Times New Roman,serif}.pin-card h1{margin-bottom:12px;font-size:2.6rem}.pin-form{gap:10px;margin-top:22px;display:grid}.pin-form label,.form-grid label{color:var(--muted);gap:8px;font-size:.95rem;display:grid}.pin-form input,.pin-form button,.button,.menu-card a,.form-grid input,.form-grid select,.form-grid textarea,.pill{border-radius:14px}.pin-form input,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;padding:14px 15px}.pin-form button,.button{background:var(--primary);color:#fff;border:0;padding:13px 18px}.hint,.error,.muted,.meta,.surface-card p,.history-row p,.budget-note p,.panel-card p,.soft-alert p,.footnote{color:var(--muted)}.error{min-height:1.2em;color:var(--danger)}.app-frame{opacity:.3;grid-template-columns:300px minmax(0,1fr);gap:24px;padding:24px;transition:opacity .18s;display:grid}.app-frame.is-ready{opacity:1}.sidebar{align-content:start;gap:16px;display:grid}.brand-card,.menu-card,.panel-card,.surface-card,.banner{border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow);background:#ffffffb8}.brand-card,.panel-card,.surface-card,.banner{padding:22px}.section-tag{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;font-size:.76rem;font-weight:700;display:inline-block}.brand-card h2{font-size:1.8rem;line-height:1.1}.menu-card{padding:8px;display:grid}.menu-card a{padding:12px 14px}.menu-card a:hover{background:var(--surface-soft)}.panel-head,.block-head,.topbar,.banner,.stack-row,.category-row,.history-row,.budget-item,.action-row,.topbar-actions,.chat-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack-list,.category-list,.history-list,.budget-list{gap:12px;display:grid}.stack-row{border-top:1px solid var(--line);padding-top:12px}.stack-row:first-child{border-top:0;padding-top:0}.soft-alert{background:#fffaf5}.soft-alert h3{margin:0 0 8px}.content{gap:18px;display:grid}.topbar{align-items:end}.topbar h1{max-width:720px;font-size:clamp(2rem,4vw,3.8rem);line-height:.98}.button-secondary{color:var(--text);border:1px solid var(--line);background:#fff}.banner{background:linear-gradient(#ffffffe6,#faf8f3e6)}.banner h3{font-size:1.5rem}.banner strong{font-size:1.2rem}.card-grid{gap:18px;display:grid}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.main-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr)}.compact-card strong{margin:10px 0 6px;font-size:1.8rem;display:block}.block-head h3{font-size:1.5rem}.mini-chart{grid-template-columns:repeat(7,1fr);align-items:end;gap:12px;height:220px;margin-top:24px;display:grid}.bar-col{justify-items:center;gap:10px;display:grid}.bar-col span{background:linear-gradient(#d6c7b6 0%,#b88e6a 100%);border-radius:999px;width:100%;max-width:44px}.bar-col:nth-child(6) span{background:linear-gradient(#b8c5ae 0%,#7d9070 100%)}.bar-col small{color:var(--muted)}.category-list{margin-top:18px}.category-label{align-items:center;gap:10px;display:flex}.category-value{justify-items:end;gap:4px;display:grid}.swatch{border-radius:999px;width:12px;height:12px}.tone-warm{background:var(--warm)}.tone-sage{background:var(--sage)}.tone-ink{background:#515a63}.tone-stone{background:var(--stone)}.tone-soft{background:#d9d4cb}.toggle-row{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.pill{border:1px solid var(--line);color:var(--muted);background:#fff;padding:10px 14px}.pill.active{background:var(--primary);color:#fff}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.full-span{grid-column:1/-1}.budget-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.budget-preview>div,.budget-note{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);padding:14px}.budget-preview strong,.budget-note strong{margin-top:8px;display:block}.warn{color:var(--danger)}.action-row,.history-list,.budget-list{margin-top:18px}.history-row,.budget-item{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);padding:14px}.history-row strong,.budget-item strong{margin-bottom:6px;display:block}.minus{color:var(--danger)}.plus{color:#5b7850}.progress{background:#ece6dc;border-radius:999px;flex:1;min-width:120px;height:10px;overflow:hidden}.progress span{border-radius:inherit;background:linear-gradient(90deg, var(--warm), #ad6f3d);height:100%;display:block}.budget-item em{color:var(--muted);font-style:normal}.chat-box{border:1px solid var(--line);background:linear-gradient(#fcfbf8 0%,#f6f2ea 100%);border-radius:24px;gap:12px;margin-top:18px;padding:16px;display:grid}.bubble{border-radius:16px;max-width:85%;padding:12px 14px;line-height:1.5}.bubble.bot{border:1px solid var(--line);background:#fff}.bubble.user{background:var(--primary);color:#fff;margin-left:auto}.chat-chip{background:var(--primary);color:#fff;border-radius:999px;padding:9px 12px;font-size:.9rem;display:inline-flex}.muted-chip{color:var(--muted);border:1px solid var(--line);background:#fff}.toast{z-index:30;border:1px solid var(--line);max-width:340px;box-shadow:var(--shadow);color:var(--muted);background:#ffffffeb;border-radius:18px;padding:16px 18px;position:fixed;bottom:24px;right:24px}@media (max-width:1180px){.app-frame,.summary-grid,.main-grid{grid-template-columns:1fr}}@media (max-width:720px){.app-frame{padding:16px}.topbar,.banner,.action-row,.topbar-actions,.history-row,.budget-item{flex-direction:column;align-items:flex-start}.form-grid,.budget-preview{grid-template-columns:1fr}.toast{max-width:none;left:16px;right:16px}}.menu-card a.active{background:var(--surface-soft)}.history-actions{justify-items:end;gap:10px;display:grid}.mini-actions{gap:8px;display:flex}.mini-actions button{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:12px;padding:8px 10px}@media (max-width:720px){.history-actions{justify-items:start}}.form-grid-form{gap:18px;display:grid}.empty-state{border:1px dashed var(--line);border-radius:var(--radius-md);color:var(--muted);background:var(--surface-soft);padding:18px}.debt-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);gap:14px;padding:14px;display:grid}.debt-payment-box{border-top:1px solid var(--line);gap:14px;padding-top:14px;display:grid}.payment-history-list{gap:10px;display:grid}.payment-history-row{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px}.payment-history-row strong{margin-bottom:4px;display:block}.budget-entry-list{gap:12px;display:grid}.budget-entry-row{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);grid-template-columns:minmax(0,1fr) minmax(180px,220px);align-items:end;gap:14px;padding:14px;display:grid}.budget-entry-row strong{margin-bottom:6px;display:block}@media (max-width:720px){.budget-entry-row{grid-template-columns:1fr}}
