@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:15px}body{height:100%;font-family:DM Sans,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55}#root{height:100%}:root{--bg: #0c0f1a;--bg2: #111827;--bg3: #1a2235;--bg4: #232f45;--border: rgba(255,255,255,.07);--border2: rgba(255,255,255,.13);--text: #eef2ff;--text2: #7c8db5;--text3: #3d4f72;--accent: #3b82f6;--accent2: #2563eb;--accent-bg: rgba(59,130,246,.1);--accent-ring: rgba(59,130,246,.22);--green: #4ade80;--green-bg: rgba(74,222,128,.08);--red: #f87171;--red-bg: rgba(248,113,113,.08);--yellow: #fbbf24;--yellow-bg: rgba(251,191,36,.08);--purple: #c084fc;--purple-bg: rgba(192,132,252,.08);--orange: #fb923c;--orange-bg: rgba(251,146,60,.08);--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow: 0 4px 18px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);--r-xs:4px;--r-sm:10px;--r:14px;--r-lg:18px;--sidebar-w: 218px;color-scheme:dark}[data-theme=light]{--bg: #f1f4fb;--bg2: #ffffff;--bg3: #edf0f8;--bg4: #e2e7f2;--border: rgba(0,0,0,.07);--border2: rgba(0,0,0,.13);--text: #0f172a;--text2: #334155;--text3: #64748b;--accent: #2563eb;--accent2: #1d4ed8;--accent-bg: rgba(37,99,235,.07);--accent-ring: rgba(37,99,235,.18);--green: #16a34a;--green-bg: rgba(22,163,74,.07);--red: #dc2626;--red-bg: rgba(220,38,38,.07);--yellow: #d97706;--yellow-bg: rgba(217,119,6,.07);--purple: #7c3aed;--purple-bg: rgba(124,58,237,.07);--orange: #ea580c;--orange-bg: rgba(234,88,12,.07);--shadow-sm: 0 1px 4px rgba(0,0,0,.07);--shadow: 0 4px 18px rgba(0,0,0,.1);--shadow-lg: 0 12px 40px rgba(0,0,0,.13);color-scheme:light}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:99px}.app-layout{display:flex;width:100vw;height:100vh;overflow:hidden;background:var(--bg);color:var(--text)}.main-content{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;background:var(--bg)}.page{padding:28px 32px;max-width:1300px;width:100%;margin:0 auto}.sidebar{width:var(--sidebar-w);flex-shrink:0;height:100vh;display:flex;flex-direction:column;background:var(--bg2);border-right:1px solid var(--border);padding:16px 10px;overflow-y:auto;overflow-x:hidden}.sidebar-logo{display:flex;align-items:center;gap:9px;padding:4px 8px 20px}.sidebar-logo-icon{width:30px;height:30px;border-radius:7px;background:var(--accent-bg);border:1px solid var(--accent-ring);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.sidebar-logo h1{font-family:DM Sans,sans-serif;font-size:16px;font-weight:800;color:var(--accent);white-space:nowrap}.sidebar-logo p{font-size:10px;color:var(--text3);margin-top:1px;white-space:nowrap}.nav-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:10px 8px 3px}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--text2);font-size:13.5px;font-weight:500;font-family:DM Sans,sans-serif;cursor:pointer;width:100%;text-align:left;transition:background .12s,color .12s;white-space:nowrap}.nav-item:hover{background:var(--bg3);color:var(--text)}.nav-item.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.nav-item svg{flex-shrink:0}.sidebar-footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);margin-bottom:3px;background:var(--bg3)}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-email{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-toggle{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--text2);font-size:13px;font-weight:500;font-family:DM Sans,sans-serif;cursor:pointer;width:100%;margin-bottom:3px;transition:background .12s}.theme-toggle:hover{background:var(--bg3);color:var(--text)}.toggle-pill{width:30px;height:16px;border-radius:99px;background:var(--bg4);position:relative;transition:background .2s;flex-shrink:0}.toggle-pill.on{background:var(--accent)}.toggle-knob{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #00000040}.toggle-pill.on .toggle-knob{transform:translate(14px)}.avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;background:var(--accent-bg);color:var(--accent);flex-shrink:0;-webkit-user-select:none;user-select:none}.avatar-lg{width:38px;height:38px;font-size:14px}.header-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:22px}.page-title{font-family:DM Sans,sans-serif;font-size:23px;font-weight:800;color:var(--text);letter-spacing:-.4px}.page-subtitle{font-size:13px;color:var(--text2);margin-top:2px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow-sm)}.card-lg{padding:24px 26px}.card-title{font-family:DM Sans,sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:16px}.stat-icon-row{display:flex;align-items:center;gap:9px;margin-bottom:10px}.stat-icon{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-label{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-family:DM Sans,sans-serif;font-size:22px;font-weight:700;color:var(--text);margin-top:2px}.stat-sub{font-size:12px;color:var(--text3);margin-top:3px}.money{font-family:DM Sans,sans-serif;font-weight:700}.money-lg{font-size:28px}.money-xl{font-size:36px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600;font-family:DM Sans,sans-serif;cursor:pointer;border:none;transition:all .13s;white-space:nowrap;line-height:1}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2);box-shadow:0 4px 14px var(--accent-ring);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border2)}.btn-ghost:hover{background:var(--bg3);color:var(--text)}.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.18)}.btn-danger:hover{background:var(--red);color:#fff}.btn-success{background:var(--green-bg);color:var(--green);border:1px solid rgba(74,222,128,.2)}.btn-success:hover{background:var(--green);color:#fff}.btn-sm{padding:5px 11px;font-size:12.5px;border-radius:var(--r-xs)}.btn-xs{padding:3px 8px;font-size:11.5px;border-radius:var(--r-xs)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--r-xs);border:none;background:transparent;color:var(--text2);cursor:pointer;transition:background .12s,color .12s;flex-shrink:0}.btn-icon:hover{background:var(--bg3);color:var(--text)}.btn-icon.danger:hover{background:var(--red-bg);color:var(--red)}.w-full{width:100%;justify-content:center}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-row{display:grid;gap:12px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}label{font-size:12px;font-weight:600;color:var(--text2)}input,select,textarea{background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:DM Sans,sans-serif;font-size:14px;padding:9px 13px;width:100%;outline:none;transition:border-color .13s,box-shadow .13s,background .13s;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--bg2);box-shadow:0 0 0 3px var(--accent-ring)}input::placeholder,textarea::placeholder{color:var(--text3);font-size:13.5px}select{cursor:pointer}select option{background:var(--bg2);color:var(--text)}textarea{resize:vertical;min-height:76px}.amount-wrap{position:relative}.amount-prefix{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text2);font-size:13px;font-weight:600;pointer-events:none}.amount-input{padding-left:38px!important;font-size:17px!important;font-weight:700!important}.segment{display:flex;background:var(--bg3);border-radius:var(--r-sm);padding:3px;gap:2px}.segment-btn{flex:1;padding:6px 10px;border-radius:8px;border:none;background:transparent;color:var(--text2);font-size:13px;font-weight:500;font-family:DM Sans,sans-serif;cursor:pointer;transition:all .13s;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.segment-btn.active{background:var(--bg2);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.pill-group{display:flex;gap:6px;flex-wrap:wrap}.pill{padding:5px 12px;border-radius:99px;border:1.5px solid var(--border2);background:transparent;color:var(--text2);font-size:12.5px;font-weight:500;font-family:DM Sans,sans-serif;cursor:pointer;transition:all .13s}.pill:hover{border-color:var(--accent);color:var(--accent)}.pill.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{padding:4px 10px;border-radius:99px;border:1.5px solid var(--border);background:var(--bg3);color:var(--text2);font-size:12px;font-weight:500;cursor:pointer;transition:all .13s;font-family:DM Sans,sans-serif}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-size:11.5px;font-weight:600;line-height:1.5;white-space:nowrap;font-family:DM Sans,sans-serif}.badge-blue{background:var(--accent-bg);color:var(--accent)}.badge-green{background:var(--green-bg);color:var(--green)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-yellow{background:var(--yellow-bg);color:var(--yellow)}.badge-purple{background:var(--purple-bg);color:var(--purple)}.badge-orange{background:var(--orange-bg);color:var(--orange)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th{padding:9px 14px;text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);border-bottom:1px solid var(--border);white-space:nowrap;font-family:DM Sans,sans-serif}td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;font-size:13.5px;font-family:DM Sans,sans-serif}tr:last-child td{border-bottom:none}tbody tr{transition:background .1s}tbody tr:hover td{background:var(--bg3)}tfoot td{border-top:1px solid var(--border2);border-bottom:none;padding-top:12px}.td-money{font-weight:700;font-size:14px;text-align:right}.td-total{font-weight:800;font-size:18px;text-align:right}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;animation:fadeIn .15s ease}.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r-lg);padding:26px 28px;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-family:DM Sans,sans-serif;font-size:17px;font-weight:700;color:var(--text)}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.alert{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:var(--r-sm);font-size:13px;margin-bottom:14px;font-family:DM Sans,sans-serif}.alert-info{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-ring)}.alert-error{background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.22)}.alert-success{background:var(--green-bg);color:var(--green);border:1px solid rgba(74,222,128,.22)}.month-nav{display:flex;align-items:center;gap:4px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px 5px}.month-nav-label{font-size:13px;font-weight:600;min-width:126px;text-align:center;color:var(--text);text-transform:capitalize;font-family:DM Sans,sans-serif}.progress{height:5px;background:var(--bg4);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;transition:width .35s ease}.search-wrap{position:relative}.search-wrap input{padding-left:37px}.search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text3);pointer-events:none}.suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--shadow)}.suggestion-item{display:flex;align-items:center;gap:9px;padding:9px 13px;background:transparent;border:none;color:var(--text);font-size:13.5px;font-family:DM Sans,sans-serif;cursor:pointer;width:100%;text-align:left;transition:background .1s}.suggestion-item:hover{background:var(--bg3)}.suggestion-hint{margin-left:auto;font-size:11px;color:var(--text3)}.login-page{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px;position:relative;overflow:hidden}.login-glow{position:absolute;width:700px;height:700px;background:radial-gradient(circle,rgba(59,130,246,.06) 0%,transparent 65%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.login-box{width:100%;max-width:390px;position:relative}.login-logo{text-align:center;margin-bottom:30px}.login-logo-icon{width:54px;height:54px;border-radius:14px;background:var(--accent-bg);border:1px solid var(--accent-ring);display:flex;align-items:center;justify-content:center;color:var(--accent);margin:0 auto 12px}.login-logo h1{font-family:DM Sans,sans-serif;font-size:27px;font-weight:800;color:var(--text);letter-spacing:-.5px}.login-logo p{font-size:13px;color:var(--text2);margin-top:4px}.login-hint{margin-top:14px;padding:11px 13px;background:var(--bg3);border-radius:var(--r-sm);font-size:12px;color:var(--text2);border:1px solid var(--border)}.login-hint strong{color:var(--text3);display:block;margin-bottom:3px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:46px 24px;gap:10px;text-align:center}.empty-icon{font-size:34px;opacity:.3}.empty p{font-size:13px;color:var(--text2);max-width:240px;line-height:1.6}.color-swatches{display:flex;flex-wrap:wrap;gap:6px}.color-swatch{width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;outline:3px solid transparent;outline-offset:2px;transition:outline .13s}.color-swatch.active{outline-color:var(--text)}.icon-grid{display:flex;flex-wrap:wrap;gap:5px}.icon-btn{width:36px;height:36px;border-radius:7px;border:1.5px solid var(--border);background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:17px;cursor:pointer;transition:border-color .13s,background .13s}.icon-btn:hover,.icon-btn.active{border-color:var(--accent);background:var(--accent-bg)}.account-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow-sm)}.account-card:hover{border-color:var(--border2)}.account-balance{font-size:24px;font-weight:700;font-family:DM Sans,sans-serif;margin:10px 0 4px}.person-section{margin-bottom:20px}.person-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg3);border-radius:var(--r-sm);margin-bottom:12px;border:1px solid var(--border)}.person-total{font-size:16px;font-weight:700;font-family:DM Sans,sans-serif}.patrimony-hero{background:var(--bg2);border:1px solid var(--accent-ring);border-radius:var(--r);padding:22px 26px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.patrimony-hero-value{font-size:32px;font-weight:700;font-family:DM Sans,sans-serif;color:var(--green)}.divider{height:1px;background:var(--border);margin:14px 0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.w-full{width:100%}.ml-auto{margin-left:auto}.mt-auto{margin-top:auto}.relative{position:relative}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-sm{font-size:13px}.text-xs{font-size:11.5px}.text-muted{color:var(--text2)}.text-dim{color:var(--text3)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-accent{color:var(--accent)}.font-bold{font-weight:700}.text-right{text-align:right}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width:900px){:root{--sidebar-w:52px}.sidebar-logo h1,.sidebar-logo p,.nav-item span,.nav-label,.sidebar-user-name,.sidebar-user-email,.theme-toggle span{display:none}.sidebar-logo{justify-content:center;padding-bottom:16px}.nav-item,.sidebar-user{justify-content:center}.page{padding:16px 12px}.grid-4,.grid-3{grid-template-columns:1fr 1fr}}@media (max-width:600px){.grid-2,.grid-3,.grid-4,.form-row-2,.form-row-3{grid-template-columns:1fr}.modal{padding:20px 16px}}.recharts-cartesian-axis-tick text,.recharts-legend-item-text,.recharts-label,.recharts-text{fill:var(--text2)!important}.recharts-cartesian-grid line{stroke:var(--border)!important}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--bg2)!important;border-color:var(--border)!important;color:var(--text)!important}.recharts-default-tooltip .recharts-tooltip-label{color:var(--text)!important}.recharts-default-tooltip .recharts-tooltip-item{color:var(--text2)!important}
