@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#142b4a;--blue:#2867c7;--blue2:#4b8be8;--ink:#172b46;--muted:#8190a4;--line:#e7edf4;--bg:#f4f7fb;--green:#168765;--red:#cf5260}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:244px;background:linear-gradient(175deg,#122844,#172f50);color:#eaf1fb;padding:25px 16px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 35px}.brand b{font:800 14px Manrope;letter-spacing:.9px;display:block}.brand small{display:block;color:#91a6c1;font-size:11px;margin-top:4px}.brand-mark{height:48px;width:48px;border-radius:14px;background:linear-gradient(140deg,#68a5ff,#2867c7);display:grid;place-items:center;color:white;font:800 15px Manrope;box-shadow:0 8px 22px #1c5ab54d}.brand-mark.mini{width:39px;height:39px;border-radius:11px;font-size:12px}.nav-label,.eyebrow{font-size:10px;letter-spacing:1.35px;font-weight:700;color:#91a1b6}.nav-label{padding:0 13px 12px}.nav-link{display:flex;align-items:center;gap:12px;color:#aebdd0;padding:12px 14px;border-radius:9px;margin:2px 0;font-size:13px}.nav-link span{font-weight:500}.nav-link.active,.nav-link:hover{background:#2c4770;color:#fff}.nav-link.active{box-shadow:inset 3px 0 #6ba5ff}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff1c;padding:18px 4px 0;display:flex;align-items:center;gap:10px}.user-avatar{width:35px;height:35px;background:#365b88;border-radius:50%;display:grid;place-items:center;font-weight:700}.user-meta{min-width:0;flex:1}.user-meta b,.user-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta b{font-size:12px}.user-meta small{font-size:10px;color:#9db0c8;margin-top:4px}.logout{font-size:18px;color:#a9bbd1}.main-content{padding:28px 34px 20px;max-width:1600px;width:calc(100% - 244px);margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.topbar h1{font:800 26px Manrope;margin:6px 0 0;letter-spacing:-.7px}.topbar .eyebrow{color:#8090a5}.topbar-right{display:flex;align-items:center;gap:9px;color:#7a899e;font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:#20b584;box-shadow:0 0 0 4px #20b5841b}.today{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:white;margin-left:8px}.welcome-panel{background:linear-gradient(112deg,#1a3a65,#2867b9 70%,#3b82d5);border-radius:16px;padding:28px 30px;color:#fff;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative;margin-bottom:20px;min-height:205px}.welcome-panel h2{font:800 26px Manrope;letter-spacing:-.6px;margin:10px 0 8px}.welcome-panel p{color:#d2e4fa;margin:0 0 20px}.eyebrow.light{color:#a8cafa}.btn{border:0;background:var(--blue);color:white;padding:11px 16px;border-radius:8px;font-weight:700;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.btn:hover{filter:brightness(1.06)}.btn-white{background:white;color:#235a9f}.btn-light{background:#f0f4fa;color:#40546e;border:1px solid #e1e8f1}.welcome-art{width:40%;height:145px;position:relative;display:flex;align-items:center;justify-content:center}.art-circle{position:absolute;width:210px;height:210px;border:1px solid #ffffff35;border-radius:50%;right:30px;top:-34px;box-shadow:0 0 0 25px #ffffff09,0 0 0 50px #ffffff07}.art-card{z-index:1;background:#ffffffed;color:#183658;border-radius:13px;padding:20px 22px;min-width:245px;box-shadow:0 15px 40px #102d5433;transform:rotate(-2deg)}.art-card small,.art-card span{display:block;color:#71859d;font-size:10px}.art-card strong{font:800 22px Manrope;display:block;margin:9px 0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card,.panel{background:#fff;border:1px solid #e9eef5;border-radius:13px;box-shadow:0 3px 12px #213a5905}.stat-card{padding:19px 20px}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#718198;font-size:12px;margin-bottom:14px}.stat-card>strong{font:800 22px Manrope;letter-spacing:-.6px;display:block;overflow-wrap:anywhere}.stat-card>small{display:block;margin-top:9px;font-size:11px}.stat-icon{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;font-size:17px;font-weight:700}.green{color:var(--green)}.red,.negative{color:var(--red)}.positive{color:var(--green)}.stat-icon.green{background:#e5f7ef}.stat-icon.red{background:#fff0f1}.stat-icon.blue{background:#eaf2ff;color:#3977cb}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.panel{padding:21px 22px;margin-bottom:20px;min-width:0}.content-grid .panel{margin-bottom:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-heading h3{font:800 15px Manrope;margin:0}.panel-heading p{font-size:11px;color:#8a98aa;margin:6px 0 0}.text-link{font-size:11px;color:#2d6fc6;font-weight:700;white-space:nowrap}.account-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #eef2f7}.account-symbol{width:39px;height:39px;border-radius:11px;background:#edf4ff;color:#3979cb;display:grid;place-items:center;font-size:18px}.account-info{flex:1;min-width:0}.account-info b,.account-info small{display:block}.account-info b{font-size:12px}.account-info small{color:#91a0b2;font-size:10px;margin-top:5px}.account-row>strong{font:700 13px Manrope;white-space:nowrap}.chart-wrap{height:190px}.chart-legend{display:flex;gap:18px;color:#8190a4;font-size:10px;margin-top:10px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.legend-dot.income{background:#367bd0}.legend-dot.expense{background:#e69b75}.table-wrap{overflow-x:auto;width:100%}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}th{text-align:left;color:#8b99ab;font-size:10px;font-weight:700;letter-spacing:.3px;background:#f8fafc;padding:12px 12px;border-top:1px solid #eef2f6;border-bottom:1px solid #e9eef4}td{padding:13px 12px;border-bottom:1px solid #edf1f6;color:#53647a}td b{color:#243a55;font-weight:700}td small.cell-sub{display:block;color:#94a1b1;margin-top:4px;max-width:260px;overflow:hidden;text-overflow:ellipsis}.right{text-align:right}.amount{font-weight:700;color:#233b59}.pill{display:inline-block;padding:5px 8px;border-radius:5px;font-size:10px;font-weight:700}.pill-green{background:#e7f8f0;color:#168765}.pill-red{background:#fff0f1;color:#c44d5c}.pill-blue{background:#edf4ff;color:#326fc0}.empty{text-align:center;padding:30px;color:#91a0b1}.form-panel{padding-bottom:24px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.form-grid label,.filter-row label,.login-card label{display:block;font-size:11px;color:#6d7d92;font-weight:700;margin-bottom:7px}.form-grid input,.form-grid select,.filter-row input,.filter-row select,.login-card input{width:100%;height:40px;border:1px solid #dfe7f0;border-radius:7px;padding:0 11px;color:#263c57;background:#fff;outline:none}.form-grid input:focus,.form-grid select:focus,.filter-row input:focus,.filter-row select:focus,.login-card input:focus{border-color:#6ba0e6;box-shadow:0 0 0 3px #2e75d51a}.span-2{grid-column:span 2}.form-actions{display:flex;align-items:end;gap:9px}.filter-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:17px}.filter-row>div{min-width:150px}.filter-row .btn{height:40px}.icon-button{border:0;background:#fff5f5;border-radius:6px;padding:6px 9px;cursor:pointer}.danger-text{color:#c64d5a}.alert{padding:12px 15px;border-radius:8px;margin-bottom:18px;font-size:12px}.alert.success{background:#e8f8f0;color:#147b5b}.alert.danger{background:#fff0f1;color:#b73d4b}.report-stats{margin-top:0}.footer{padding:12px 0 4px;color:#9aa6b6;font-size:10px;text-align:center}.footer span{margin:0 7px}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top right,#dbeaff,transparent 50%),#f4f7fb;padding:20px}.login-card{width:min(420px,100%);padding:38px;background:#fff;border:1px solid #e5ebf3;border-radius:18px;box-shadow:0 20px 65px #1d3d6414}.login-card .brand-mark{margin-bottom:25px}.login-card h1{font:800 25px Manrope;margin:8px 0}.login-card .muted{color:#8291a5;font-size:12px;line-height:1.6}.login-card form{margin-top:25px}.login-card input{margin-bottom:17px}.login-card .btn{margin-top:5px}.full{width:100%;height:43px}.small{font-size:10px!important}.muted{color:#8c9aac}.footer{margin-top:18px}tfoot th{color:#253b56;background:#f1f5fa}@media(max-width:1100px){.main-content{padding:23px;width:calc(100% - 220px)}.sidebar{width:220px}.content-grid{grid-template-columns:1fr}.welcome-art{width:35%}.stat-card>strong{font-size:18px}}@media(max-width:760px){.sidebar{width:62px;padding:18px 8px}.brand{padding:0 3px 30px}.brand>span:last-child,.nav-label,.nav-link span,.user-meta,.logout{display:none}.brand-mark.mini{width:43px;height:43px}.nav-link{justify-content:center;padding:13px 0;font-size:17px}.sidebar-bottom{justify-content:center}.main-content{width:calc(100% - 62px);padding:18px 12px}.topbar{align-items:flex-start}.topbar h1{font-size:21px}.topbar-right{font-size:0}.today{font-size:10px}.welcome-panel{padding:22px;min-height:180px}.welcome-panel h2{font-size:21px}.welcome-art{display:none}.stats-grid{grid-template-columns:1fr;gap:10px}.stat-card{padding:15px}.stat-card>strong{font-size:20px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.panel{padding:16px 12px}.filter-row{align-items:stretch}.filter-row>div{flex:1;min-width:120px}.filter-row .btn{flex:1}.panel-heading{align-items:flex-start}.panel-heading h3{font-size:14px}}
@media print{.sidebar,.topbar-right,.filter-row,.btn,.footer,.form-panel{display:none!important}.main-content{width:100%;padding:0}.panel,.stat-card{box-shadow:none;break-inside:avoid}.app-shell{display:block}body{background:#fff}.topbar{margin-bottom:10px}}
