:root{
  --bg:#f7f9fc;--surface:#fff;--surface2:#fbfcfe;--text:#0e1730;--muted:#6f7b93;--line:#e5e9f1;
  --blue:#2468ef;--blue2:#eef4ff;--green:#13aa5b;--green2:#ebf8f0;--red:#f02b32;--red2:#fff0f1;
  --purple:#8a42ed;--purple2:#f5efff;--orange:#f4a300;--orange2:#fff6e3;--teal:#1590a3;
  --shadow:0 8px 28px rgba(22,43,86,.055),0 1px 3px rgba(22,43,86,.05);--radius:16px;--sidebar:262px;--topbar:84px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);background:var(--bg)}
.sidebar{position:sticky;top:0;height:100vh;background:rgba(255,255,255,.95);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 13px 18px;z-index:30}
.brand{height:58px;display:flex;align-items:flex-start;justify-content:space-between;padding:7px 10px 0}.brand-main{display:flex;align-items:center;gap:10px}.logo-mark{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#736bff,#2d6ef3);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);color:#fff}.brand-title{font-size:19px;font-weight:800;line-height:18px;letter-spacing:-.35px}.brand-sub{font-size:12px;color:#42516d;margin-top:2px;font-weight:500}.collapse-btn{border:0;background:transparent;color:#53617c;font-size:22px;padding:0 3px;line-height:28px}
.nav{display:flex;flex-direction:column;gap:4px;margin-top:12px}.nav-item{position:relative;height:44px;border:0;border-radius:11px;background:transparent;display:flex;align-items:center;gap:14px;padding:0 16px;color:#42516f;font-weight:560;font-size:14px;text-align:left;width:100%}.nav-item:hover{background:#f6f8fc}.nav-item.active{color:#1258dd;background:linear-gradient(90deg,#f0f4ff,#f7f9ff)}.nav-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:#2b69f0;border-radius:0 4px 4px 0}.nav-icon{width:22px;height:22px;display:grid;place-items:center;color:currentColor}.nav-icon svg{width:20px;height:20px;stroke-width:1.8}.sidebar-spacer{flex:1;min-height:28px}
.user-card{height:59px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;padding:8px 12px;gap:10px;box-shadow:0 2px 7px rgba(20,42,86,.025)}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f10c8d,#eb1475);color:#fff;font-size:12px;font-weight:800}.user-info{min-width:0;flex:1}.user-name{font-size:12px;font-weight:750}.user-role{font-size:10px;color:var(--muted);margin-top:3px}.user-chevron{color:#56627b;font-size:16px}
.promo{margin-top:14px;border:1px solid #e3e8f6;border-radius:13px;min-height:194px;background:linear-gradient(145deg,#f8faff 5%,#f0f3ff 100%);padding:15px 16px 13px;position:relative;overflow:hidden}.promo h4{font-size:13px;line-height:18px;margin:0 0 10px}.promo p{font-size:11px;color:#62708b;line-height:16px;margin:0;width:135px}.promo-art{position:absolute;right:11px;bottom:45px;width:94px;height:77px;opacity:.9}.promo-btn{position:absolute;left:16px;right:16px;bottom:12px;height:27px;border:0;border-radius:6px;background:linear-gradient(90deg,#5a68ff,#6e62ff);color:#fff;font-size:10px;font-weight:700}
.main{min-width:0}.topbar{height:var(--topbar);display:grid;grid-template-columns:minmax(330px,1fr) 247px auto auto auto 54px;gap:16px;align-items:center;padding:18px 26px;border-bottom:1px solid rgba(230,234,242,.75);background:rgba(250,251,253,.88);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.search-box,.date-box{height:46px;border:1px solid #dde3ee;background:#fff;border-radius:13px;display:flex;align-items:center;box-shadow:0 2px 8px rgba(20,42,86,.025)}.search-box{padding:0 14px;gap:10px}.search-box svg{width:18px;color:#52607b}.search-box input{border:0;outline:0;background:transparent;width:100%;color:#26334d;font-size:13px}.shortcut{font-size:11px;color:#768198;border:1px solid #e3e7ee;background:#fbfcfe;border-radius:7px;padding:4px 8px;white-space:nowrap}.date-box{padding:0 14px;justify-content:space-between;color:#26334d;font-size:12px;font-weight:650}.date-left{display:flex;align-items:center;gap:9px}.date-box svg{width:18px;color:#455571}.action-btn{height:43px;border:0;border-radius:10px;color:#fff;font-weight:700;font-size:12px;padding:0 18px;display:flex;align-items:center;gap:10px;box-shadow:0 7px 16px rgba(0,0,0,.08);white-space:nowrap}.action-btn .plus{font-size:22px;line-height:1;font-weight:400}.action-green{background:linear-gradient(180deg,#24b66b,#10a65a)}.action-red{background:linear-gradient(180deg,#fb3338,#e91f27)}.action-blue{background:linear-gradient(180deg,#2f73f4,#1763e9)}.bell{width:43px;height:43px;border:1px solid #e0e5ee;background:#fff;border-radius:50%;display:grid;place-items:center;position:relative;color:#455571}.bell svg{width:20px}.bell-badge{position:absolute;right:-2px;top:-3px;width:17px;height:17px;border-radius:50%;background:#ef2d33;color:#fff;border:2px solid #fff;font-size:8px;font-weight:800;display:grid;place-items:center}
.content{padding:0 26px 28px}.dashboard{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(0,1fr) 356px;gap:16px}.summary-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:1px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.summary-card{height:119px;padding:20px 18px;display:flex;align-items:center;gap:18px;position:relative}.summary-icon{width:58px;height:58px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto}.summary-icon svg{width:31px;height:31px;stroke-width:1.8}.si-blue{background:#edf3ff;color:#1e61e8}.si-green{background:#eaf8ef;color:#14a856}.si-red{background:#ffeff0;color:#fa2e35}.si-purple{background:#f5efff;color:#8b43ec}.summary-label{font-size:13px;color:#32405b;display:flex;align-items:center;gap:7px}.summary-value{font-size:22px;font-weight:780;letter-spacing:-.45px;margin-top:8px;white-space:nowrap}.summary-trend{font-size:11px;margin-top:6px;color:#788399}.trend-up{color:#13a95a;font-weight:700}.trend-down{color:#f32f35;font-weight:700}.card-menu{position:absolute;right:15px;top:15px;border:0;background:transparent;color:#5b6780;font-size:18px}.summary-arrow{position:absolute;right:26px;top:50%;transform:translateY(-50%);font-size:22px;color:#56627a}
.chart-card{height:292px;padding:18px 16px 12px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title-group{display:flex;align-items:center;gap:22px;min-width:0}.card-title{font-size:15px;font-weight:780;letter-spacing:-.2px;white-space:nowrap}.legend{display:flex;gap:20px;align-items:center;font-size:10.5px;color:#40506d}.legend-item{display:flex;align-items:center;gap:6px}.legend-line{width:12px;height:3px;border-radius:2px}.mini-select{height:30px;border:1px solid #dfe4ed;background:#fff;border-radius:8px;padding:0 10px;font-size:11px;color:#33415c}.chart-wrap{height:227px;margin-top:5px;position:relative}.chart-wrap svg{width:100%;height:100%;overflow:visible}
.donut-card{height:292px;padding:18px 18px 10px}.donut-body{display:grid;grid-template-columns:166px minmax(0,1fr);gap:12px;align-items:center;height:205px}.donut{width:154px;height:154px;border-radius:50%;background:conic-gradient(#5475f5 0 32%,#ff5d5f 32% 44%,#f8a817 44% 62%,#5ecb9b 62% 71%,#3cb4c1 71% 78%,#a66ce9 78% 84%,#b7bcc9 84% 100%);position:relative}.donut:after{content:"";position:absolute;inset:31px;background:#fff;border-radius:50%;box-shadow:0 0 0 1px #f5f6f9}.donut-center{position:absolute;inset:0;display:grid;place-content:center;z-index:2;text-align:center;font-size:14px;font-weight:800}.donut-center small{font-weight:500;color:#69758e;margin-top:4px;font-size:11px}.cat-list{display:flex;flex-direction:column;gap:10px}.cat-row{display:grid;grid-template-columns:9px minmax(72px,1fr) 36px 78px;gap:7px;align-items:center;font-size:9.8px;color:#34425c}.dot{width:8px;height:8px;border-radius:50%}.cat-pct{text-align:right;font-weight:700}.cat-val{text-align:right;color:#69768f;white-space:nowrap}.card-link{border-top:1px solid #ebedf2;display:block;text-align:center;padding-top:12px;color:#1763e8;font-size:10.5px;text-decoration:none}.top-link{border:0;background:transparent;color:#1763e8;font-size:10.5px;font-weight:650;padding:0}
.due-card{height:292px;padding:18px 16px 10px}.due-list{display:flex;flex-direction:column;margin-top:11px}.due-row{display:grid;grid-template-columns:36px minmax(0,1fr) 86px 74px;gap:9px;align-items:center;min-height:45px}.due-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:800}.due-title{font-size:10.5px;font-weight:720}.due-sub{font-size:9px;color:#79849a;margin-top:2px}.due-date{font-size:9px;color:#69768e;display:flex;align-items:center;gap:4px;white-space:nowrap}.due-value{font-size:9px;color:#f1222b;font-weight:740;text-align:right;white-space:nowrap}.due-button{height:30px;width:100%;margin-top:7px;border:0;border-radius:7px;background:#f1f4ff;color:#185fdf;font-size:10px;font-weight:650}
.accounts-card{height:365px;padding:17px 16px 14px}.accounts-list{margin-top:13px;display:flex;flex-direction:column;gap:12px}.account-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center}.bank-icon{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;font-size:13px;font-weight:800}.account-title{font-size:10.8px;font-weight:720}.account-sub{font-size:9.3px;color:#768198;margin-top:3px}.account-val{font-size:10.5px;font-weight:760;white-space:nowrap}.account-total{border-top:1px solid #e9edf3;margin-top:15px;padding-top:16px;display:flex;justify-content:space-between;font-size:12px;font-weight:780}.account-total strong{font-size:15px}
.transactions-card{height:365px;padding:17px 15px 10px}.table-wrap{margin-top:12px;overflow:hidden}.tx-table{width:100%;border-collapse:collapse;font-size:9.6px}.tx-table th{height:31px;background:#f8f9fc;color:#65718a;text-align:left;font-weight:600;border-bottom:1px solid #e8ecf3;padding:0 8px}.tx-table td{height:43px;border-bottom:1px solid #edf0f5;padding:0 8px;color:#273651}.tx-table td:nth-child(5),.tx-table th:nth-child(5){text-align:right}.tx-table td:last-child,.tx-table th:last-child{text-align:center}.pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:6px;font-size:9px;white-space:nowrap}.pill-green{background:#eaf8ef;color:#139d53}.pill-orange{background:#fff2e7;color:#ef7d20}.pill-blue{background:#edf3ff;color:#2566e7}.pill-purple{background:#f4ebff;color:#944be4}.status-pill{display:inline-flex;align-items:center;gap:5px;background:#eaf8ef;color:#139d53;border-radius:7px;padding:4px 8px;font-size:9px}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#16ad5a}.table-footer{text-align:center;padding-top:12px}
.side-stack{display:grid;grid-template-rows:178px 188px;gap:14px}.goals-card{padding:16px}.goal-list{margin-top:12px;display:flex;flex-direction:column;gap:12px}.goal-row{display:grid;grid-template-columns:36px minmax(0,1fr) 35px;gap:10px;align-items:center}.goal-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center}.goal-title{font-size:11px;font-weight:760}.goal-sub{font-size:9.5px;color:#6e7a92;margin-top:3px}.progress{height:4px;border-radius:99px;background:#e9edf3;margin-top:7px;overflow:hidden}.progress i{display:block;height:100%;background:#11a95d;border-radius:99px}.goal-pct{font-size:11px;color:#36445f;text-align:right}.summary-month{padding:16px}.month-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px}.month-cell{text-align:center;border-right:1px solid #e8ecf2}.month-cell:last-child{border-right:0}.month-label{font-size:9px;color:#6f7a91}.month-val{font-size:12px;font-weight:780;margin-top:6px}.month-val.green{color:#12a95b}.insight{height:55px;border-radius:8px;background:#edf9f2;margin-top:18px;display:flex;align-items:center;gap:9px;padding:0 11px;font-size:9.5px;line-height:14px;color:#30445d}.insight svg{color:#0fa858;flex:0 0 auto}
.page{padding-top:1px}.page-card{margin-top:1px;min-height:calc(100vh - var(--topbar) - 29px);padding:22px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-header h1{font-size:22px;margin:0;letter-spacing:-.4px}.page-header p{margin:6px 0 0;color:#718097;font-size:12px}.page-actions{display:flex;gap:8px}.secondary-btn,.primary-btn,.danger-btn{height:36px;border-radius:9px;padding:0 13px;font-size:11px;font-weight:700}.secondary-btn{border:1px solid #dde3ee;background:#fff;color:#34425d}.primary-btn{border:0;background:#2168ef;color:#fff}.danger-btn{border:0;background:#ef2e35;color:#fff}.toolbar{display:flex;gap:9px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.field{height:37px;border:1px solid #dde3ee;background:#fff;border-radius:9px;padding:0 11px;font-size:11px;outline:none}.toolbar .grow{flex:1;min-width:220px}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{height:38px;text-align:left;color:#68758d;font-weight:650;background:#fafbfc;border-bottom:1px solid #e8ecf3;padding:0 12px}.data-table td{height:48px;border-bottom:1px solid #edf0f5;padding:0 12px}.data-table tr:hover td{background:#fbfcff}.amount-pos{color:#11a45a;font-weight:750}.amount-neg{color:#e92c34;font-weight:750}.muted{color:#77839a}.empty{padding:54px 20px;text-align:center;color:#758199;font-size:12px}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.settings-panel{border:1px solid var(--line);border-radius:14px;padding:16px}.settings-panel h3{margin:0 0 6px;font-size:13px}.settings-panel p{margin:0 0 14px;font-size:10.5px;color:#748097;line-height:15px}.settings-panel button{width:100%}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.36);display:grid;place-items:center;z-index:100;padding:18px}.modal{width:min(560px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid #e1e6ee;box-shadow:0 24px 65px rgba(15,23,42,.22);padding:20px}.modal h2{font-size:18px;margin:0}.modal-sub{font-size:11px;color:#728097;margin:6px 0 18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-size:10px;color:#526079;font-weight:650}.form-field input,.form-field select,.form-field textarea{border:1px solid #dce2ec;border-radius:9px;padding:10px 11px;font-size:11px;outline:none;background:#fff}.form-field textarea{resize:vertical;min-height:70px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#79a2f5;box-shadow:0 0 0 3px #edf4ff}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.check-row{display:flex;align-items:center;gap:8px;font-size:11px;color:#46546d}.toast{position:fixed;right:20px;bottom:20px;z-index:120;background:#13213a;color:#fff;border-radius:10px;padding:12px 15px;font-size:11px;box-shadow:0 16px 36px rgba(20,30,50,.22);animation:toastIn .2s ease-out}.toast.success{background:#0f7d47}.toast.error{background:#b5252a}@keyframes toastIn{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:1280px){:root{--sidebar:225px}.topbar{grid-template-columns:minmax(260px,1fr) 210px auto auto 50px}.action-blue{display:none}.dashboard{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) 310px}.due-row{grid-template-columns:32px minmax(0,1fr) 78px}.due-value{display:none}}
@media(max-width:980px){.app-shell{grid-template-columns:74px minmax(0,1fr)}.sidebar{padding-left:8px;padding-right:8px}.brand-title,.brand-sub,.collapse-btn,.nav-item span:not(.nav-icon),.user-info,.user-chevron,.promo{display:none}.brand{padding:6px 8px;justify-content:center}.nav-item{justify-content:center;padding:0}.nav-item.active:before{display:none}.user-card{justify-content:center;padding:0}.topbar{grid-template-columns:1fr auto auto 50px}.date-box,.action-red{display:none}.content{padding-left:16px;padding-right:16px}.summary-row{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr 1fr}.due-card,.side-stack{grid-column:1/-1}.side-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto}.settings-grid{grid-template-columns:1fr}.transactions-card{grid-column:1/-1}}
@media(max-width:700px){.topbar{height:72px;padding:12px;grid-template-columns:1fr auto}.bell,.action-green{display:none}.content{padding:0 10px 18px}.dashboard{display:block}.summary-row{display:grid;margin-top:10px}.summary-card{height:104px;margin-bottom:10px}.chart-card,.donut-card,.due-card,.accounts-card,.transactions-card,.side-stack{margin-bottom:10px;height:auto;min-height:280px}.side-stack{display:block}.goals-card,.summary-month{margin-bottom:10px}.donut-body{grid-template-columns:145px 1fr}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.page-card{padding:14px}.page-header{flex-direction:column}.settings-grid{grid-template-columns:1fr}.tx-table{font-size:8.8px}.tx-table th:nth-child(4),.tx-table td:nth-child(4){display:none}}
