:root{--bg:#f7f6f4;--surface:#fff;--soft:#f0f2f4;--line:#e4e3df;--text:#262a30;--muted:#7b7f84;--accent:#0a66c2;--pale:#e8f1fa;--green:#34876b;--red:#c86d67;font-family:Inter,"Segoe UI",Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--text);font-size:13px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}button:disabled{opacity:.5;cursor:wait}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-1.1px;font-weight:600}h2{font-size:17px;font-weight:600;letter-spacing:-.4px}h3{font-size:14px;font-weight:600}small,.muted{color:var(--muted)}input,select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:10px 12px;min-width:0;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a66c214}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}label{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;font-size:12px;font-weight:500}svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border-radius:9px;background:var(--surface);border:1px solid var(--line);font-size:12px;font-weight:500;min-height:39px;white-space:nowrap}.btn:hover{background:var(--soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#0757a7}.btn.small{padding:6px 10px;min-height:31px;font-size:11px}.text-btn{color:var(--accent);font-size:12px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px}.icon-btn:hover{background:var(--soft)}.logo{font-size:27px;letter-spacing:-1px;font-weight:650;display:flex;align-items:center;gap:9px}.logo .star{font-size:34px;color:var(--accent);font-weight:400}.logo em{color:var(--accent);font-style:normal}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;display:flex;flex-direction:column;padding:24px 18px;z-index:20;background:#fff}.sidebar .logo{margin:0 10px 30px}.workspace{padding:13px 10px;display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:10px}.workspace>b{background:var(--pale);color:var(--accent);border-radius:8px;padding:8px;font-size:12px}.workspace small{display:block;font-size:9px;letter-spacing:1.3px}.caption{font-size:9px;letter-spacing:1.5px;color:#929292;margin:27px 12px 10px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;text-align:left;font-size:12px;color:#74777b}.nav button.active{background:var(--pale);color:var(--accent);font-weight:600}.nav button:hover{background:var(--soft)}.nav .count{margin-left:auto;font-size:10px;background:#fff;padding:1px 6px;border-radius:4px}.sidebar-bottom{margin-top:auto}.user{display:flex;align-items:center;gap:10px;border-radius:10px;background:var(--bg);padding:11px;margin-top:18px}.avatar{width:34px;height:34px;background:#dfeaf5;color:#497193;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:600}.user>div{flex:1}.user small{display:block;font-size:10px}.shell{margin:10px 10px 10px 230px;min-height:calc(100vh - 20px);background:var(--bg);border-radius:22px;overflow:hidden}.topbar{height:66px;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;font-size:11px}.crumb{display:flex;align-items:center;gap:12px;color:var(--muted)}.crumb strong{font-weight:500;color:var(--text)}.status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.dot{width:6px;height:6px;background:#7eab94;border-radius:50%;display:inline-block}.content{max-width:1580px;margin:auto;padding:31px 34px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.heading p{color:var(--muted);margin-top:7px;font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--muted);margin-bottom:7px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.welcome{background:#eef3f8;border:1px solid #e0e8f0;display:flex;align-items:center;justify-content:space-between;padding:23px 25px;border-radius:13px;margin-bottom:23px}.welcome h2{font-size:19px;margin-bottom:5px}.welcome p{font-size:12px;color:#71808e}.welcome .orbit{font-size:58px;color:#8db2d6;line-height:1}.filters{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0}.filters>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters select{font-size:12px;background:#fff}.filters input{font-size:12px}.pill{font-size:10px;display:inline-flex;align-items:center;gap:5px;background:var(--pale);color:var(--accent);padding:4px 8px;border-radius:6px}.pill.warn{background:#fbf0dd;color:#aa8037}.pill.green{background:#e9f4ee;color:var(--green)}.notice{font-size:11px;color:#877249;background:#fbf6eb;border:1px solid #eee5d0;padding:11px 14px;border-radius:9px;margin:12px 0;display:flex;gap:10px;align-items:center}.notice.info{color:#59788e;background:#edf3f8;border-color:#e0e9f0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:19px 0 23px}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:20px 21px}.stat-title{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;align-items:center}.stat-icon{padding:7px;display:flex;background:var(--soft);border-radius:8px}.stat strong{display:block;font-size:26px;letter-spacing:-.9px;font-weight:600;margin:13px 0 5px;font-variant-numeric:tabular-nums}.stat small{font-size:10px}.positive{color:var(--green)}.negative{color:var(--red)}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0;overflow:hidden}.panel.pad{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:21px 22px 0;gap:12px}.panel-head p{font-size:11px;color:var(--muted);margin-top:4px}.legend{display:flex;gap:12px;font-size:10px;color:var(--muted)}.legend i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px}.chart{padding:25px 22px 17px}.chart-svg{width:100%;height:195px;overflow:visible}.chart-svg text{font-family:inherit;font-size:10px;fill:#91969c}.chart-note{font-size:10px;color:var(--muted);margin-top:9px}.cat-row{display:flex;align-items:center;gap:10px;padding:9px 0}.cat-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px}.cat-detail{flex:1}.cat-detail>div{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-bottom:5px}.track{height:5px;border-radius:5px;background:#f1f2f3;overflow:hidden}.track>i{display:block;height:100%;border-radius:5px}.cat-percent{width:35px;text-align:right;color:var(--muted);font-size:10px}.category-list{padding:15px 22px 20px}.summary-foot{border-top:1px solid var(--line);padding:12px 22px;font-size:10px;display:flex;justify-content:space-between;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{font-size:9px;font-weight:500;letter-spacing:.7px;text-transform:uppercase;color:#96999d;text-align:left;background:#fafafa;padding:12px 18px;border-bottom:1px solid var(--line)}td{padding:13px 18px;border-bottom:1px solid #f0efed}tbody tr:hover{background:#fafbfd}tbody tr:last-child td{border-bottom:0}.description{max-width:340px;overflow:hidden;text-overflow:ellipsis;font-weight:500}.description small{display:block;font-size:9px;font-weight:400;margin-top:3px}.money{text-align:right;font-variant-numeric:tabular-nums;font-weight:550}.tag{font-size:10px;border-radius:5px;padding:4px 7px;background:#f0f2f4;display:inline-flex;gap:6px;align-items:center}.tag i{width:5px;height:5px;border-radius:50%}.table-foot{padding:15px 20px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.search{min-width:230px}.empty{padding:40px;text-align:center;color:var(--muted)}.empty .icon{width:32px;height:32px;margin:0 auto 15px}.empty h3{color:var(--text);margin-bottom:7px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.category-card{display:flex;align-items:center;gap:13px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:11px}.category-card small{display:block;font-size:10px;margin-top:3px}.dropzone{padding:40px 25px;border:1px dashed #a7bed3;border-radius:12px;background:#f7fafc;text-align:center;margin:20px 0}.dropzone .icon{width:32px;height:32px;color:var(--accent);margin-bottom:12px}.dropzone h3{margin-bottom:7px}.dropzone p{font-size:12px;color:var(--muted);margin-bottom:17px}.dropzone input{max-width:100%;font-size:12px;margin-bottom:8px}.import-file{display:flex;gap:14px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.import-file>div{flex:1}.import-file small{display:block;font-size:10px;margin-top:3px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-story{background:#eef3f8;display:flex;flex-direction:column;justify-content:center;padding:12%;position:relative;overflow:hidden}.login-story .logo{margin-bottom:65px}.login-story h1{font-size:45px;line-height:1.17;max-width:430px;letter-spacing:-1.7px}.login-story p{font-size:14px;color:#748594;max-width:370px;margin-top:23px;line-height:1.9}.login-art{font-size:140px;color:#b2cbe3;margin-top:30px;letter-spacing:20px}.login-box{align-self:center;justify-self:center;width:100%;max-width:410px;padding:35px}.login-box h2{font-size:26px;letter-spacing:-.8px;margin-bottom:7px}.login-box p{color:var(--muted);font-size:12px;margin-bottom:30px}.login-box .btn{width:100%}.login-foot{font-size:10px;margin-top:22px;color:#979da3;text-align:center}.error{color:#b95050;font-size:12px;margin:12px 0;min-height:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1/-1}dialog{border:1px solid var(--line);border-radius:15px;padding:26px;max-width:560px;width:calc(100% - 30px);color:var(--text);box-shadow:0 20px 90px #0002}dialog::backdrop{background:#17283c55;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.modal-head h2{font-size:21px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:10px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:9px;background:#253c50;color:white;font-size:12px;box-shadow:0 5px 30px #0002;z-index:100;display:none;max-width:90vw}.loading{padding:40px;text-align:center;color:var(--muted)}.mobile-menu{display:none}.check{width:14px;height:14px;accent-color:var(--accent)}.bulk{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:13px 18px;background:#edf3f9;border-bottom:1px solid var(--line)}.bulk select{font-size:11px;max-width:200px}.fineprint{font-size:10px;color:var(--muted);margin-top:22px;line-height:1.8}.mini-stats{display:flex;gap:25px;margin:20px 0}.mini-stats b{display:block;font-size:24px}.mini-stats small{font-size:11px}.balance-card{display:flex;gap:14px;align-items:center;padding:20px 22px;border-radius:12px;background:#fff;border:1px solid var(--line);margin-bottom:22px}.bank-logo{background:#ed6c15;color:white;border-radius:9px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.balance-card>div:nth-child(2){flex:1}.balance-card strong{font-size:19px;letter-spacing:-.5px}.balance-card small{font-size:10px;display:block}.budget{color:var(--muted);font-size:11px}.settings{max-width:650px}.settings .panel{padding:26px}.settings h2{margin-bottom:7px}.settings p{font-size:12px;color:var(--muted);margin-bottom:24px}.selected{background:#eff5fc!important}
@media(min-width:1500px){.stat strong{font-size:30px}.chart-svg{height:220px}}@media(max-width:1100px){.sidebar{width:205px}.shell{margin-left:205px}.content{padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,1fr)}.heading{align-items:flex-start}.heading .actions{justify-content:flex-end}.stat strong{font-size:27px}}@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:230px;box-shadow:10px 0 40px #0002}.sidebar.open{transform:translateX(0)}.shell{margin:0;border-radius:0;min-height:100vh}.mobile-menu{display:inline-flex}.topbar{padding:0 17px}.topbar .status{display:none}.content{padding:23px 16px}.heading{flex-direction:column;gap:16px}.heading .actions{justify-content:flex-start}h1{font-size:26px}.stats{gap:10px}.stat{padding:15px}.stat strong{font-size:22px}.stat small{font-size:9px}.stat-icon{padding:4px}.welcome{padding:20px}.welcome h2{font-size:17px}.welcome .orbit{display:none}.filters{align-items:flex-start;flex-direction:column}.filters input{width:100%;min-width:0}.filters>div{width:100%}.filters select{max-width:100%}.category-grid{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-story{padding:26px 30px 30px}.login-story .logo{margin-bottom:20px}.login-story h1{font-size:30px}.login-story p{font-size:12px;margin-top:12px}.login-art{display:none}.login-box{padding:35px 30px;max-width:450px}.form-grid{grid-template-columns:1fr}.mini-stats{gap:17px}.mini-stats b{font-size:20px}.panel-head{padding:18px 16px 0}.balance-card{padding:16px}.chart{padding:20px 16px}.legend{font-size:9px;gap:7px}.form-grid .full{grid-column:auto}.notice{align-items:flex-start}td,th{padding:12px}.chart-svg{height:175px}.summary-foot{padding:12px 16px}}
