@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700&family=Sora:wght@500;600;700;800&display=swap";:root{--bg-main: #f4f2ea;--bg-card: #fffdf9;--bg-card-soft: #fdf7ef;--line: #d9d5cb;--text-strong: #1f2b26;--text-muted: #5f675f;--green: #0b6e4f;--green-soft: #d6f2e6;--red: #cc4b37;--red-soft: #ffe0d8;--accent: #f4a259;font-family:Manrope,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-main);color:var(--text-strong)}#root{min-height:100vh}.app-shell{position:relative;overflow:hidden;min-height:100vh}.orb{position:absolute;border-radius:999px;filter:blur(10px);opacity:.55;pointer-events:none}.orb-a{top:-180px;right:-120px;width:460px;height:460px;background:radial-gradient(circle at center,#f4d35e,#f4a259)}.orb-b{bottom:-220px;left:-140px;width:540px;height:540px;background:radial-gradient(circle at center,#9ed6be,#5aa9e6)}.layout{position:relative;z-index:1;width:min(1240px,100% - 2rem);margin:1.3rem auto 2.2rem;padding-bottom:4rem}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(460px,100%);background:#fffdf9;border:1px solid var(--line);border-radius:20px;padding:1.2rem 1.1rem;box-shadow:0 16px 34px #191d1c14}.auth-card h1{margin:.45rem 0 .4rem;font-family:Sora,sans-serif;font-size:1.65rem}.auth-subtitle{margin:0;color:var(--text-muted);font-size:.9rem}.auth-form{margin-top:.9rem;display:grid;gap:.65rem}.auth-form label{display:grid;gap:.3rem;color:var(--text-muted);font-size:.82rem;font-weight:600}.auth-form input{width:100%;border-radius:11px;border:1px solid #cfc8bb;background:#fff;padding:.62rem .72rem;font:inherit;color:var(--text-strong)}.auth-form button{margin-top:.25rem;border:0;border-radius:11px;background:linear-gradient(120deg,#0b6e4f,#18996f);color:#fff;font:inherit;font-weight:700;padding:.66rem .88rem;cursor:pointer}.auth-form button:disabled{opacity:.65;cursor:not-allowed}.auth-switch{margin-top:.8rem;font-size:.85rem;color:var(--text-muted)}.auth-switch button{margin-left:.5rem;border:0;background:transparent;color:#0b6e4f;cursor:pointer;font-weight:700}.auth-loading{display:flex;align-items:center;justify-content:center;gap:.55rem}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;background:#fffdf9;border:1px solid var(--line);border-radius:20px;padding:1rem 1.1rem;box-shadow:0 12px 28px #191d1c14}.topbar h1{margin:.32rem 0 0;font-family:Sora,sans-serif;font-size:clamp(1.2rem,2.1vw,1.7rem)}.topbar-sub{margin:.35rem 0 0;color:var(--text-muted);font-size:.82rem}.topbar-actions{display:inline-flex;align-items:center;gap:.6rem}.session-user{display:grid;gap:.1rem;text-align:right}.session-user strong{font-size:.85rem}.session-user small{font-size:.73rem;color:var(--text-muted)}.ghost-btn{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #d3cec0;border-radius:999px;background:#fff;color:#5b6359;padding:.35rem .66rem;font:inherit;font-weight:700;cursor:pointer}.section-nav{margin-top:.75rem;display:flex;align-items:center;gap:.45rem;overflow-x:auto;padding-bottom:.1rem}.section-nav-btn{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border:1px solid #d7d1c5;background:#fffcf7;color:#5f675f;padding:.45rem .8rem;font:inherit;font-size:.83rem;font-weight:700;cursor:pointer;white-space:nowrap}.section-nav-btn.active{background:#0b6e4f;border-color:#0b6e4f;color:#fff}.period-controls{margin-top:.75rem;background:#fffdf9;border:1px solid var(--line);border-radius:14px;padding:.7rem;display:flex;align-items:flex-end;gap:.65rem;flex-wrap:wrap}.period-controls label{display:grid;gap:.25rem;font-size:.78rem;color:var(--text-muted);font-weight:700}.period-controls label:first-child{grid-template-columns:auto auto;align-items:center;gap:.35rem}.period-controls select,.period-controls input{border:1px solid #d3cdc0;background:#fff;border-radius:10px;padding:.45rem .52rem;font:inherit;color:var(--text-strong);min-width:170px}.status-banner{margin-top:.75rem;border-radius:12px;border:1px solid var(--line);padding:.7rem .9rem;font-size:.88rem}.status-banner.error{background:#ffe7de;border-color:#f1b19d;color:#942a18}.status-banner.success{background:#e6f7ef;border-color:#9ed6be;color:#0d5b42}.status-banner.loading{display:flex;align-items:center;gap:.5rem;background:#f2f7ff;border-color:#b7d4f4;color:#184874}.spin{animation:spin 1s linear infinite}.content-grid{margin-top:.95rem;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.85rem}.panel{background:var(--bg-card);border:1px solid var(--line);border-radius:18px;padding:.92rem;box-shadow:0 10px 24px #191d1c0f}.panel h2{margin:0;font-size:1.05rem;font-family:Sora,sans-serif;display:inline-flex;gap:.45rem;align-items:center}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.8rem}.panel-head span{font-size:.75rem;color:var(--text-muted)}.dashboard-grid .hero-metrics-grid{grid-column:span 12;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;padding:.76rem}.metric-card{display:flex;gap:.75rem;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--bg-card);padding:.8rem .9rem}.metric-card span{display:block;font-size:.77rem;color:var(--text-muted)}.metric-card strong{font-family:Sora,sans-serif;font-size:1.03rem}.metric-card.balance{background:linear-gradient(120deg,#ecfaf4,#f2fff8);border-color:#b7dfce}.panel-large{grid-column:span 8}.dashboard-grid .panel:not(.hero-metrics-grid):not(.panel-large){grid-column:span 4}.chart-wrap{height:280px}.insights{display:grid;gap:.62rem}.insight-item{display:grid;grid-template-columns:auto 1fr;gap:.62rem;border-radius:12px;padding:.68rem;border:1px solid transparent}.insight-item p{margin:.25rem 0 0;font-size:.85rem;color:var(--text-muted)}.insight-item.good{background:var(--green-soft);border-color:#9ed6be}.insight-item.attention{background:var(--red-soft);border-color:#f3baa9}.movements-grid .panel-form{grid-column:span 4}.movements-grid .panel-list{grid-column:span 8;background:var(--bg-card-soft)}.movements-grid .panel-note{grid-column:span 12;background:linear-gradient(180deg,#f8fcfa,#fffdf9)}.transaction-form{display:grid;gap:.66rem}.transaction-form label{display:grid;min-width:0;gap:.31rem;font-weight:700;font-size:.79rem;color:var(--text-muted)}.transaction-form input,.transaction-form select,.category-add-row input,.category-edit-row input,.review-edit input,.review-edit select{width:100%;min-width:0;max-width:100%;border-radius:10px;border:1px solid #cfc8bb;background:#fff;padding:.58rem .68rem;font:inherit;color:var(--text-strong)}.transaction-form input:focus,.transaction-form select:focus,.category-add-row input:focus,.category-edit-row input:focus,.review-edit input:focus{outline:2px solid #a2ceb9;border-color:#a2ceb9}.category-input-row,.category-add-row{display:grid;grid-template-columns:1fr auto;gap:.4rem}.transfer-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.transfer-row label{min-width:0}.field-hint{margin-top:-.12rem;font-size:.74rem;color:var(--text-muted)}.form-actions{display:grid;gap:.5rem}.transaction-form button{border:0;border-radius:11px;background:linear-gradient(120deg,#0b6e4f,#18996f);color:#fff;font:inherit;font-weight:700;padding:.67rem .86rem;cursor:pointer}.btn-secondary{border:1px solid #cfc8bb;border-radius:11px;background:#fff;color:#4a4f48;font:inherit;font-weight:700;padding:.62rem .8rem;cursor:pointer}.transaction-form button:disabled,.upload-btn:disabled,.icon-btn:disabled,.ghost-btn:disabled{opacity:.65;cursor:not-allowed}.form-separator{height:1px;margin:.95rem 0;background:#d9d2c4}.upload-box h3{margin:0;font-family:Sora,sans-serif;font-size:.95rem}.upload-box p{margin:.4rem 0 .65rem;color:var(--text-muted);font-size:.81rem}.file-input{width:100%;margin-bottom:.55rem}.upload-btn{display:inline-flex;align-items:center;gap:.42rem;border:0;border-radius:11px;background:linear-gradient(120deg,#345a7d,#5a7ea2);color:#fff;font:inherit;font-weight:700;padding:.62rem .8rem;cursor:pointer}.panel-list-head{align-items:flex-start;flex-wrap:wrap}.chips{display:flex;flex-wrap:wrap;gap:.45rem}.movement-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:.65rem}.movement-filter-grid label{display:grid;gap:.3rem;font-weight:700;font-size:.78rem;color:var(--text-muted)}.movement-filter-grid select{width:100%;border-radius:10px;border:1px solid #cfc8bb;background:#fff;padding:.55rem .62rem;font:inherit;color:var(--text-strong)}.movement-clear-btn{align-self:end;min-height:40px}.movement-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:.72rem}.movement-total-card{border:1px solid var(--line);border-radius:12px;padding:.62rem .72rem;background:#fff;display:grid;gap:.22rem}.movement-total-card span{font-size:.76rem;color:var(--text-muted);font-weight:700}.movement-total-card strong{font-size:1rem;font-family:Sora,sans-serif}.movement-total-card.income{background:#ecfaf4;border-color:#b7dfce}.movement-total-card.expense{background:#fff1ed;border-color:#efc1b5}.movement-total-card.transfer{background:#eef5ff;border-color:#bfd2ef}.chip{border:1px solid #cfc8bb;border-radius:999px;background:#fff;color:var(--text-muted);padding:.34rem .67rem;font:inherit;font-size:.8rem;cursor:pointer}.chip.active{background:#0b6e4f;border-color:#0b6e4f;color:#fff}.transaction-list{display:grid;gap:.5rem;max-height:320px;overflow:auto}.transaction-list.large-list{max-height:600px}.transaction-row{display:flex;align-items:center;justify-content:space-between;gap:.9rem;border-radius:12px;border:1px solid #dad5cc;background:#fffcf7;padding:.72rem .84rem}.transaction-row strong{display:block;margin-bottom:.17rem;font-size:.9rem}.transaction-row p{margin:0;color:var(--text-muted);font-size:.79rem}.transaction-row.is-transfer{background:#f5f9ff;border-color:#c7d6ea}.movement-meta-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.2rem}.movement-tag{display:inline-flex;align-items:center;gap:.24rem;border-radius:999px;padding:.16rem .46rem;font-size:.68rem;font-weight:800;letter-spacing:.01em;border:1px solid transparent}.movement-tag.income{background:#e8f8ef;border-color:#9dd1bb;color:#0f6148}.movement-tag.expense{background:#ffece7;border-color:#e9b6a7;color:#922f1b}.movement-tag.transfer{background:#edf4ff;border-color:#bbcfed;color:#1f4d7d}.transaction-side{display:grid;justify-items:end;gap:.34rem}.transaction-actions{display:inline-flex;gap:.35rem}.amount{font-family:Sora,sans-serif;font-weight:700;font-size:.93rem}.amount.expense{color:var(--red)}.amount.income{color:var(--green)}.amount.transfer{color:#1f4d7d}.transfer-preview-list{max-height:250px}.reviews-grid .panel-review{grid-column:span 12;background:#fffaf3}.pending-head-actions{display:inline-flex;align-items:center;gap:.45rem}.review-list{display:grid;gap:.55rem}.review-list.full-height{max-height:640px;overflow:auto}.review-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;border:1px solid #e6d6be;border-radius:11px;padding:.62rem .7rem;background:#fff}.review-row strong{display:block;margin-bottom:.18rem;font-size:.89rem}.review-row p{margin:0;font-size:.78rem;color:var(--text-muted)}.review-edit{display:grid;gap:.38rem;width:100%}.review-edit label{display:grid;gap:.24rem;font-size:.74rem;color:var(--text-muted);font-weight:700}.review-actions{display:inline-flex;align-items:center;gap:.36rem;flex-wrap:wrap;justify-content:flex-end}.review-amount{display:inline-flex;margin-top:.24rem;font-family:Sora,sans-serif;font-size:.86rem;font-weight:700}.review-amount.expense{color:var(--red)}.review-amount.income{color:var(--green)}.confidence-chip{border-radius:999px;border:1px solid #efbda6;background:#ffe9df;color:#8f311e;padding:.28rem .56rem;font-size:.73rem;font-weight:700;white-space:nowrap}.icon-btn{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;border:1px solid #cad5cc;background:#fff;color:#215440;padding:.26rem .52rem;font:inherit;font-size:.73rem;font-weight:700;cursor:pointer}.icon-btn.approve{border-color:#a9d5c2;color:#0f6a4d}.icon-btn.reject{border-color:#e4b2a2;color:#9c3a23}.categories-grid .panel{grid-column:span 6}.categories-grid .panel-note{grid-column:span 12;background:#f7fbf8}.accounts-grid .panel-form{grid-column:span 4}.accounts-grid .panel-list{grid-column:span 8;background:linear-gradient(160deg,#f6faf8,#fefcf8)}.accounts-grid .panel-note{grid-column:span 12}.accounts-wallet{display:grid;gap:.95rem}.wallet-group{display:grid;gap:.65rem}.wallet-group-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.wallet-group-head h3{margin:0;display:inline-flex;align-items:center;gap:.42rem;font-size:.96rem;font-family:Sora,sans-serif}.wallet-group-head span{font-size:.78rem;color:var(--text-muted);font-weight:700}.wallet-cards{display:grid;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.account-wallet-card{position:relative;overflow:hidden;border-radius:20px;border:1px solid #d4d8cc;box-shadow:0 14px 30px #161d1b1f;padding:.82rem;display:grid;gap:.54rem}.account-wallet-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(125deg,rgba(255,255,255,.2),transparent 45%);pointer-events:none}.account-wallet-card.asset{background:linear-gradient(145deg,#0f7a56,#15956a 55%,#2ea37d);color:#f3fff8}.account-wallet-card.asset.flexible{background:linear-gradient(145deg,#0e6d68,#0f8f7a 55%,#1ba18a)}.account-wallet-card.liability{background:linear-gradient(145deg,#6f1f31,#8d2c42 55%,#a53f57);color:#fff4f2}.account-wallet-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.account-wallet-name{margin:0;display:block;font-size:1rem}.account-wallet-type{margin:.16rem 0 0;font-size:.76rem;opacity:.9}.wallet-kind-chip{border-radius:999px;padding:.2rem .56rem;font-size:.68rem;font-weight:800;border:1px solid transparent;white-space:nowrap}.wallet-kind-chip.asset{background:#d6ffec2e;border-color:#d6ffec6b;color:#eafff3}.wallet-kind-chip.liability{background:#ffded62e;border-color:#ffded670;color:#fff2ef}.account-wallet-balance{margin:0;font-family:Sora,sans-serif;font-size:1.48rem;letter-spacing:.02em}.account-wallet-meta{margin:0;font-size:.78rem;opacity:.94}.account-wallet-insight{border-radius:12px;border:1px solid rgba(255,255,255,.28);background:#ffffff1f;padding:.52rem .58rem;display:grid;gap:.2rem}.account-wallet-insight strong{display:inline-flex;align-items:center;gap:.34rem;font-size:.8rem}.account-wallet-insight p{margin:0;font-size:.76rem}.account-wallet-insight.good{background:#c6ffe129}.account-wallet-insight.attention{background:#ffecbf26}.account-wallet-insight.critical{background:#ffd6d633}.account-wallet-actions{display:inline-flex;gap:.35rem;flex-wrap:wrap}.account-wallet-card .icon-btn{background:#ffffffe6}.panel-note h3{margin:0;font-family:Sora,sans-serif;font-size:1.02rem}.panel-note p{margin:.45rem 0 0;color:var(--text-muted);line-height:1.45}.category-cloud{margin-top:.65rem;display:flex;flex-wrap:wrap;gap:.46rem}.category-chip{background:#fff;border:1px solid #d9d5cb;border-radius:11px;padding:.5rem .62rem;min-width:230px;display:grid;gap:.45rem}.category-chip strong{display:block;font-size:.84rem}.category-chip small{color:var(--text-muted);font-size:.73rem}.category-chip-actions{display:inline-flex;gap:.35rem;flex-wrap:wrap}.category-edit-row{display:grid;gap:.4rem}.empty-state{margin:0;font-size:.88rem;color:var(--text-muted)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;border-top:1px solid #cfc8bb;background:#fffdf9f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.5rem}.bottom-nav-btn{display:grid;justify-items:center;gap:.2rem;border:1px solid #d4cec1;border-radius:10px;background:#fff;color:#5f675f;padding:.4rem .2rem;font:inherit;font-size:.68rem;font-weight:700;cursor:pointer}.bottom-nav-btn.active{border-color:#0b6e4f;color:#0b6e4f}.mobile-only{display:none}.eyebrow{display:inline-flex;padding:.29rem .73rem;border-radius:999px;border:1px solid #f4d4ae;background:#fff7ea;color:#a76012;font-weight:700;font-size:.7rem;letter-spacing:.04em}@media (max-width: 1080px){.dashboard-grid .panel-large,.dashboard-grid .panel:not(.hero-metrics-grid),.movements-grid .panel-form,.movements-grid .panel-list,.accounts-grid .panel-form,.accounts-grid .panel-list,.categories-grid .panel,.categories-grid .panel-note{grid-column:span 12}.dashboard-grid .hero-metrics-grid{grid-template-columns:repeat(1,minmax(0,1fr))}.review-list.full-height,.transaction-list.large-list{max-height:440px}.wallet-cards{grid-template-columns:1fr}}@media (max-width: 760px){.layout{width:min(1240px,100% - 1rem);margin-top:.8rem;padding-bottom:5rem}.mobile-only{display:inline-flex}.topbar{flex-direction:column;align-items:stretch;gap:.7rem}.topbar-actions{width:100%;justify-content:space-between}.session-user{text-align:left;flex:1}.section-nav{display:none}.section-nav.open{display:flex}.period-controls{padding:.6rem}.period-controls select,.period-controls input{min-width:140px}.transaction-row,.review-row{align-items:flex-start;flex-direction:column}.transaction-side,.review-actions{width:100%;justify-items:start;justify-content:flex-start}.category-input-row,.category-add-row,.transfer-row,.movement-filter-grid,.movement-totals{grid-template-columns:1fr}.movement-clear-btn{width:100%}.account-wallet-card{border-radius:16px}.category-chip{min-width:100%}.pending-head-actions{width:100%;justify-content:space-between}.bottom-nav{display:grid}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
