@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght@300;400;500;600&display=swap";html,body,#root{min-height:100%;margin:0}:root{font-family:Inter,Plus Jakarta Sans,DM Sans,Segoe UI,sans-serif}*{box-sizing:border-box}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;font-family:Material Symbols Outlined;font-size:20px;font-style:normal;font-weight:400;line-height:1;display:inline-block}body{background:#fcf9f8;min-height:100vh;margin:0}#root{min-height:100vh}.app-shell,.login-screen{--bg:#fcf9f8;--bg-gradient:radial-gradient(circle at top, #fff 0%, #f6f3f2 56%, #fcf9f8 100%);--surface:#fff;--surface-soft:#f6f3f2;--surface-soft-2:#ece9e8;--text:#1b1b1c;--muted:#596066;--border:#e5e7eb;--primary:#181f21;--primary-strong:#2d3436;--primary-soft:#d3e4ff;--income:#16a34a;--expense:#d92d20;--pending:#f79009;--transfer:#0060a9;--shadow:0 4px 20px #0000000d;color:var(--text)}.theme-dark{--bg:#0f151b;--bg-gradient:radial-gradient(circle at top, #152028 0%, #0f151b 58%, #0c1116 100%);--surface:#18222c;--surface-soft:#202c38;--surface-soft-2:#2a3744;--text:#eef2f6;--muted:#a8b8c8;--border:#2b3a49;--primary:#d3e4ff;--primary-strong:#a2c9ff;--primary-soft:#a3c9ff33;--income:#4ade80;--expense:#ff8f8f;--pending:#fbbf24;--transfer:#63b3ff;--shadow:0 8px 28px #00000059}.app-shell{background:var(--bg);width:100%;max-width:none;min-height:100vh;margin:0;padding:1rem clamp(.85rem,2vw,1.8rem) 6.3rem}.top-header{box-shadow:none;z-index:8;background:0 0;border:0;border-radius:0;justify-content:space-between;align-items:center;padding:.25rem .2rem;display:flex;position:sticky;top:.25rem}.top-header h1{letter-spacing:-.03em;margin:0;font-size:1.85rem;font-weight:700}.top-header p{color:var(--muted);margin:.18rem 0 0;font-size:.9rem}.header-right{color:var(--muted);align-items:center;gap:.5rem;font-weight:600;display:flex}.layout-shell{display:block}.content{gap:.8rem;margin-top:.95rem;display:grid}.desktop-side{display:none}.panel,.card,.movement-item,.payment-group,.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:24px}.panel{padding:1rem}.panel h2,.panel h3{letter-spacing:-.01em;margin:0 0 .75rem}.form-panel{gap:.72rem;display:grid}label{color:var(--muted);gap:.33rem;font-size:.88rem;font-weight:600;display:grid}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--border);background:var(--surface-soft);color:var(--text);border-radius:12px;width:100%;padding:.72rem .82rem}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb, var(--transfer) 22%, transparent);border-color:var(--transfer)}textarea{resize:vertical}.field-grid{gap:.7rem;display:grid}.field-grid.two{grid-template-columns:1fr}.btn{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:.64rem .9rem;font-weight:700}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff}.theme-dark .btn-primary{color:#0d1620}.btn-soft{background:var(--surface-soft);border-color:var(--border);color:var(--text)}.btn-danger{color:var(--expense);background:#d92d201f;border-color:#d92d2038}.inline-check{align-items:center;gap:.55rem;display:flex}.inline-check input{width:18px;height:18px}.month-selector,.cards-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.card{background:linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);padding:.9rem}.card h3{color:var(--muted);margin:0;font-size:.84rem}.card strong{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:.42rem;font-size:1.03rem;display:block}.card.income{border-left:4px solid var(--income)}.card.expense{border-left:4px solid var(--expense)}.card.pending{border-left:4px solid var(--pending)}.card.transfer{border-left:4px solid var(--transfer)}.card.neutral{border-left:4px solid #98a2b3}.compare-grid{gap:.6rem;display:grid}.compare-grid div{border:1px solid var(--border);background:var(--surface-soft);border-radius:14px;padding:.7rem}.compare-grid span,.muted,small{color:var(--muted)}.list{gap:.6rem;display:grid}.list.compact{gap:.45rem}.list-item{background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;gap:.65rem;padding:.62rem .65rem;display:flex}.category-bars{gap:.6rem;display:grid}.bar-track{background:var(--surface-soft-2);border-radius:999px;width:100%;height:8px;margin-top:.4rem}.bar-fill{background:#98a2b3;border-radius:999px;height:100%}.bar-fill.normal{background:var(--income)}.bar-fill.warning{background:var(--pending)}.bar-fill.exceeded{background:var(--expense)}.quick-types{flex-wrap:wrap;gap:.55rem;display:flex}.movement-clean-form{gap:.85rem}.required-title{color:var(--transfer);text-transform:uppercase;letter-spacing:.05em;font-size:.83rem;font-weight:700}.movement-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.logged-user-pill{border:1px solid var(--border);background:var(--surface-soft);color:var(--muted);border-radius:999px;padding:.35rem .7rem;font-size:.82rem;font-weight:700}.category-label{color:var(--muted);margin-bottom:.45rem;font-size:.86rem;font-weight:700;display:block}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.category-chip{border:1px solid var(--border);background:var(--surface-soft);color:var(--text);border-radius:12px;justify-content:flex-start;align-items:center;gap:.4rem;padding:.5rem .6rem;font-size:.86rem;font-weight:600;display:flex}.category-chip.active{border-color:var(--transfer);background:color-mix(in srgb, var(--primary-soft) 40%, var(--surface-soft));color:var(--transfer)}.optional-toggle{justify-self:start}.optional-box{border:1px dashed var(--border);background:color-mix(in srgb, var(--surface-soft) 84%, transparent);border-radius:14px;gap:.68rem;padding:.7rem;display:grid}.movement-list{gap:.64rem;display:grid}.movement-item{padding:.85rem}.movement-row{align-items:center;gap:.7rem;display:flex}.movement-main{flex:1}.movement-title{margin:0;font-weight:700}.movement-icon{border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;font-weight:800;display:inline-flex}.tag{text-transform:uppercase;border-radius:999px;padding:.2rem .55rem;font-size:.73rem;font-weight:700}.tag-income{color:var(--income);background:#16a34a24}.tag-expense{color:var(--expense);background:#d92d201f}.tag-transfer{color:var(--transfer);background:#0060a924}.actions{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.58rem;display:flex}.payments-grid{gap:.75rem;display:grid}.payment-group{background:linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);padding:.85rem}.payment-group h3{margin:0 0 .7rem}.payment-item{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.48rem;padding:.55rem;display:flex}.payment-item small{display:block}.bottom-nav{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:22px;grid-template-columns:repeat(5,1fr);gap:.42rem;width:calc(100vw - .8rem);padding:.45rem;display:grid;position:fixed;bottom:.55rem;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000024}.bottom-nav button{color:var(--muted);background:0 0;border:0;border-radius:12px;padding:.63rem .35rem;font-weight:700}.bottom-nav button.active{background:var(--primary-soft);color:var(--transfer)}.bottom-nav .add{background:linear-gradient(135deg, var(--primary), var(--primary-strong));color:#fff}.bottom-nav .add.active{filter:brightness(.97)}.login-screen{background:var(--bg-gradient);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{text-align:center;width:min(460px,100%);padding:1.2rem}.login-card h1{margin:0}.login-top{justify-content:center;align-items:center;gap:.75rem;display:flex;position:relative}.login-top .btn{position:absolute;top:-2.4rem;right:0}.login-logo{background:var(--primary);color:#fff;border-radius:14px;place-items:center;width:44px;height:44px;margin:0 auto .75rem;font-size:1.3rem;display:grid}.error-text{color:var(--expense);margin:0}.budget-item{border:1px solid var(--border);background:var(--surface-soft);border-radius:14px;padding:.68rem}.side-brand{gap:.1rem;padding:.2rem .1rem .7rem;display:grid}.side-brand strong{font-size:1.2rem}.side-brand span{color:var(--muted);font-size:.75rem}.side-menu{gap:.34rem;display:grid}.side-cta{margin-top:auto}.side-footer{border-top:1px solid var(--border);gap:.25rem;margin-top:.5rem;padding-top:.45rem;display:grid}.side-link{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:.48rem .3rem;font-weight:600}.side-link:hover{background:var(--surface-soft)}@media (width>=760px){.app-shell{padding:1.1rem clamp(1.2rem,2.8vw,2.4rem) 1.35rem}.bottom-nav{width:100%;margin-top:1rem;position:static;transform:none}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.payments-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.compare-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (width>=980px){.layout-shell{grid-template-columns:clamp(210px,19vw,300px) minmax(0,1fr);align-items:start;gap:1rem;margin-top:.95rem;display:grid}.desktop-side{align-content:start;gap:.45rem;min-height:calc(100vh - 2rem);display:grid;position:sticky;top:1rem}.side-tab{border:1px solid var(--border);background:var(--surface-soft);color:var(--muted);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:.55rem;padding:.7rem .75rem;font-weight:700;display:flex}.side-tab.active{border-color:color-mix(in srgb, var(--transfer) 50%, var(--border));color:var(--transfer);background:color-mix(in srgb, var(--primary-soft) 45%, var(--surface-soft))}.content{gap:1rem;margin-top:0}.bottom-nav{display:none}}
