*,:after,:before{box-sizing:border-box}:root{--bg:#fff8f7;--bg-soft:#f4edf9;--surface:#fffdfc;--surface-muted:#f8f3f5;--border:#eadfe6;--border-strong:#d5c6d3;--text:#3e3845;--text-soft:#655b69;--text-muted:#8c8290;--text-hint:#b2a6b1;--primary:#a27bd0;--primary-strong:#7650a8;--primary-soft:#ede3fb;--mint:#9bdcc8;--mint-soft:#e0f5ed;--peach:#ffcfc5;--peach-soft:#fff0ed;--yellow:#ffe3a8;--yellow-soft:#fff7df;--blue:#c6ddf8;--blue-soft:#eef6ff;--danger:#db7772;--danger-soft:#ffe2df;--shadow-sm:0 4px 14px #5c436212;--shadow-md:0 14px 34px #5c43621f;--radius-sm:11px;--radius:16px;--radius-lg:24px;color-scheme:light}:root[data-theme=dark]{--bg:#201c29;--bg-soft:#292332;--surface:#2c2536;--surface-muted:#352d40;--border:#493d52;--border-strong:#62536d;--text:#f8f0f7;--text-soft:#d4c8d5;--text-muted:#b0a2b3;--text-hint:#88798d;--primary:#c19ce9;--primary-strong:#e0c7ff;--primary-soft:#443455;--mint:#8bd4bc;--mint-soft:#27493f;--peach:#ff9c94;--peach-soft:#512e32;--yellow:#f2c96f;--yellow-soft:#4a3c24;--blue:#a7c9f2;--blue-soft:#2e3e53;--danger:#ff9d97;--danger-soft:#543236;--shadow-sm:0 4px 14px #0003;--shadow-md:0 16px 36px #00000047;color-scheme:dark}#root,body,html{min-height:100%}body{-webkit-font-smoothing:antialiased;background:#fff8f7;background:var(--bg);color:#3e3845;color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;margin:0}button,input,select{font:inherit}button{cursor:pointer}::selection{background:#ede3fb;background:var(--primary-soft);color:#3e3845;color:var(--text)}.auth-page{background:radial-gradient(circle at 8% 15%,#ede3fb,#0000 32%),#fff8f7;background:radial-gradient(circle at 8% 15%,var(--primary-soft),#0000 32%),var(--bg);display:grid;min-height:100vh;padding:28px;place-items:center}.auth-card{background:#fffdfc;background:var(--surface);border:1px solid #eadfe6;border:1px solid var(--border);border-radius:26px;box-shadow:0 14px 34px #5c43621f;box-shadow:var(--shadow-md);padding:40px;width:min(100%,430px)}.auth-logo{align-items:center;color:#3e3845;color:var(--text);display:flex;font-size:17px;font-weight:800;gap:11px;margin-bottom:34px}.auth-logo-icon,.sidebar-logo-icon{background:#9bdcc8;background:var(--mint);border-radius:13px;color:#315e52;display:grid;font-weight:850;height:38px;place-items:center;width:38px}.auth-card h1{color:#3e3845;color:var(--text);font-size:28px;letter-spacing:-.04em;margin:0 0 6px}.auth-card>p{margin:0 0 28px}.auth-card>p,.auth-note{color:#8c8290;color:var(--text-muted)}.auth-note{font-size:12px;line-height:1.55;margin:-3px 0 16px}.form-group{margin-bottom:16px}.form-group label{color:#655b69;color:var(--text-soft);display:block;font-size:11px;font-weight:800;letter-spacing:.07em;margin-bottom:7px;text-transform:uppercase}.filters input,.filters select,.form-group input,.form-group select{background:#f8f3f5;background:var(--surface-muted);border:1px solid #eadfe6;border:1px solid var(--border);border-radius:11px;border-radius:var(--radius-sm);color:#3e3845;color:var(--text);outline:none;padding:11px 13px;transition:border-color .18s,box-shadow .18s,background .18s;width:100%}.filters input:focus,.filters select:focus,.form-group input:focus,.form-group select:focus{background:#fffdfc;background:var(--surface);border-color:#a27bd0;border-color:var(--primary);box-shadow:0 0 0 4px #a27bd029}.filters select,.form-group select{appearance:auto}.btn{align-items:center;border:1px solid #0000;border-radius:12px;display:inline-flex;font-size:13px;font-weight:800;gap:8px;justify-content:center;line-height:1;padding:11px 16px;transition:transform .18s,box-shadow .18s,background .18s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn-primary{background:#a27bd0;background:var(--primary);box-shadow:0 8px 18px #a27bd03b;color:#fff}.btn-primary:hover{background:#7650a8;background:var(--primary-strong);color:#fff}.btn-secondary{background:#fffdfc;background:var(--surface);border-color:#d5c6d3;border-color:var(--border-strong);color:#3e3845;color:var(--text)}.btn-outline{background:#0000;border-color:#eadfe6;border-color:var(--border);color:#655b69;color:var(--text-soft)}.btn-outline:hover,.btn-secondary:hover{background:#f8f3f5;background:var(--surface-muted);border-color:#a27bd0;border-color:var(--primary)}.btn-sm{font-size:12px;padding:8px 11px}.auth-link{color:#8c8290;color:var(--text-muted);font-size:13px;margin-top:22px;text-align:center}.auth-link button,.text-button{background:none;border:0;color:#7650a8;color:var(--primary-strong);font-weight:800;padding:0}.auth-link button:hover,.text-button:hover{text-decoration:underline}.alert{border:1px solid;border-radius:11px;border-radius:var(--radius-sm);font-size:13px;font-weight:650;margin-bottom:16px;padding:12px 14px}.alert-error{background:#ffe2df;background:var(--danger-soft);border-color:#db777259;color:#db7772;color:var(--danger)}.alert-success{background:#e0f5ed;background:var(--mint-soft);border-color:#9bdcc899;color:#7650a8;color:var(--primary-strong)}.app-layout{display:flex;min-height:100vh}.sidebar{background:#f4edf9;background:var(--bg-soft);border-right:1px solid #eadfe6;border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;height:100vh;padding:24px 15px 18px;position:sticky;top:0;width:238px}.sidebar-logo{align-items:center;display:flex;gap:11px;margin-bottom:34px;padding:0 10px}.sidebar-logo-icon{background:#9bdcc8;background:var(--mint);border-radius:14px;height:39px;width:39px}.sidebar-brand{grid-gap:1px;display:grid;gap:1px}.sidebar-brand>span{color:#3e3845;color:var(--text);font-size:15px;font-weight:850;letter-spacing:-.02em}.sidebar-brand small{color:#b2a6b1;color:var(--text-hint);font-size:9px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:3px}.nav-section{color:#b2a6b1;color:var(--text-hint);font-size:10px;font-weight:850;letter-spacing:.12em;margin:15px 11px 6px;text-transform:uppercase}.nav-link{align-items:center;background:#0000;border:1px solid #0000;border-radius:12px;color:#8c8290;color:var(--text-muted);display:flex;font-size:13px;font-weight:700;gap:11px;padding:11px 12px;text-align:left;transition:background .18s,color .18s,transform .18s;width:100%}.nav-link:hover{background:#ffffff80;color:#3e3845;color:var(--text);transform:translateX(2px)}:root[data-theme=dark] .nav-link:hover{background:#ffffff0f}.nav-link.active{background:#fffdfc;background:var(--surface);border-color:#eadfe6;border-color:var(--border);box-shadow:0 4px 14px #5c436212;box-shadow:var(--shadow-sm);color:#7650a8;color:var(--primary-strong)}.nav-icon{background:#ffffff8c;border-radius:8px;color:currentColor;display:grid;font-size:16px;height:22px;line-height:1;place-items:center;width:22px}:root[data-theme=dark] .nav-icon{background:#ffffff14}.sidebar-footer{grid-gap:12px;border-top:1px solid #eadfe6;border-top:1px solid var(--border);display:grid;gap:12px;padding-top:16px}.theme-toggle{align-items:center;background:#fffdfc;background:var(--surface);border:1px solid #eadfe6;border:1px solid var(--border);border-radius:11px;color:#655b69;color:var(--text-soft);display:flex;font-size:12px;font-weight:750;gap:9px;padding:9px 10px;text-align:left;width:100%}.theme-toggle:hover{border-color:#a27bd0;border-color:var(--primary);color:#3e3845;color:var(--text)}.theme-toggle-icon{color:#7650a8;color:var(--primary-strong);display:grid;font-size:16px;place-items:center;width:20px}.theme-toggle-key{color:#b2a6b1;color:var(--text-hint);font-size:10px;margin-left:auto}.sidebar-user{align-items:center;display:flex;gap:10px;padding:0 4px}.user-avatar{background:#ffcfc5;background:var(--peach);border-radius:50%;color:#80524f;display:grid;flex-shrink:0;font-size:11px;font-weight:850;height:34px;place-items:center;width:34px}.user-info{flex:1 1;min-width:0}.user-name{color:#3e3845;color:var(--text);font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role-text{color:#b2a6b1;color:var(--text-hint);font-size:11px;text-transform:capitalize}.sign-out-btn{width:100%}.main-content{flex:1 1;min-width:0;overflow-x:hidden;padding:38px clamp(20px,4vw,60px) 64px}.dashboard-page{margin:0 auto;position:relative;width:min(100%,1240px)}.page-header{align-items:flex-end;display:flex;gap:20px;justify-content:space-between;margin-bottom:25px}.card-kicker,.page-kicker,.welcome-eyebrow{color:#7650a8;color:var(--primary-strong);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.page-header-left h1{color:#3e3845;color:var(--text);font-size:clamp(28px,3vw,40px);letter-spacing:-.06em;line-height:1.05;margin:6px 0 4px}.page-header-left p{color:#8c8290;color:var(--text-muted);font-size:14px;margin:0}.wave{color:#ffe3a8;color:var(--yellow);display:inline-block;font-size:.62em;margin-left:4px;vertical-align:18%}.header-actions{align-items:center;display:flex;gap:9px}.month-select{align-items:center;background:#fffdfc;background:var(--surface);border:1px solid #eadfe6;border:1px solid var(--border);border-radius:12px;color:#655b69;color:var(--text-soft);display:inline-flex;font-size:12px;font-weight:750;gap:8px;padding:10px 12px}.month-select span{color:#7650a8;color:var(--primary-strong);font-size:16px}.month-select b{color:#b2a6b1;color:var(--text-hint);font-size:13px;margin-left:2px}.dashboard-add-btn{width:auto}.welcome-card{align-items:center;background:#e9e0f8;border:1px solid #e4d7ef;border-radius:27px;box-shadow:0 4px 14px #5c436212;box-shadow:var(--shadow-sm);display:flex;margin-bottom:18px;min-height:190px;overflow:hidden;padding:28px 32px;position:relative}:root[data-theme=dark] .welcome-card{background:#3b304a;border-color:#57486a}.welcome-copy{max-width:560px;position:relative;z-index:1}.welcome-copy h2{color:#4b3c55;font-size:clamp(24px,2.8vw,34px);letter-spacing:-.055em;line-height:1.05;margin:8px 0 6px}:root[data-theme=dark] .welcome-copy h2{color:#f8efff}.welcome-copy p{color:#786887;font-size:13px;margin:0;max-width:470px}:root[data-theme=dark] .welcome-copy p{color:#c9b9d4}.welcome-link{background:none;border:0;color:#7650a8;font-size:12px;font-weight:850;margin-top:16px;padding:0}:root[data-theme=dark] .welcome-link{color:#e0c7ff}.welcome-link:hover{text-decoration:underline}.welcome-link span{margin-left:4px}.welcome-art{bottom:-12px;height:170px;position:absolute;right:42px;width:205px}.art-sun{background:#ffe7a9;border-radius:50%;height:116px;opacity:.9;position:absolute;right:13px;top:-18px;width:116px}.art-card{border-radius:15px;box-shadow:0 11px 20px #5c43621f;position:absolute;transform:rotate(-8deg)}.art-card-back{background:#f4a4b9;bottom:4px;height:71px;right:53px;transform:rotate(8deg);width:110px}.art-card-front{align-content:center;background:#fffdfc;bottom:20px;color:#65556e;display:grid;height:83px;padding:13px;right:14px;transform:rotate(-5deg);width:125px}.art-card-front span{color:#a27bd0;font-size:11px;font-weight:850}.art-card-front strong{color:#43364c;font-size:22px;letter-spacing:-.04em;line-height:1.15}.art-card-front small{color:#a99aaa;font-size:9px;text-transform:uppercase}.art-star{color:#a27bd0;font-size:20px;position:absolute}.star-one{left:14px;top:18px}.star-two{bottom:4px;color:#f28fa7;font-size:26px;right:7px}.stats-grid{grid-gap:13px;display:grid;gap:13px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stat-card{border:1px solid #eadfe6;border:1px solid var(--border);border-radius:20px;box-shadow:0 4px 14px #5c436212;box-shadow:var(--shadow-sm);min-height:143px;overflow:hidden;padding:17px 18px 16px;position:relative;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 14px 34px #5c43621f;box-shadow:var(--shadow-md);transform:translateY(-3px)}.stat-card:after{background:#ffffff47;border-radius:50%;bottom:-54px;content:"";height:125px;position:absolute;right:-35px;width:125px}.stat-card-balance{background:#9bdcc8;background:var(--mint);border-color:#8ccdb9;color:#2d5b4f}.stat-card-income{background:#ffe3a8;background:var(--yellow);border-color:#f2d188;color:#70583b}.stat-card-expense{background:#ffcfc5;background:var(--peach);border-color:#f2b5aa;color:#80504d}.stat-card-savings{background:#c6ddf8;background:var(--blue);border-color:#adcbed;color:#4b617d}.stat-card-top{align-items:center;display:flex;gap:8px;position:relative;z-index:1}.stat-icon{background:#ffffff78;border-radius:9px;color:currentColor;display:grid;font-size:15px;font-weight:850;height:27px;place-items:center;width:27px}.stat-label{color:currentColor;font-size:12px;font-weight:800}.stat-menu{color:#41324b73;font-size:12px;letter-spacing:1px;margin-left:auto}.stat-value{color:currentColor;font-size:29px;font-weight:850;letter-spacing:-.06em;line-height:1;margin-top:16px}.stat-caption,.stat-value{position:relative;z-index:1}.stat-caption{color:#41324b9e;font-size:11px;font-weight:650;margin-top:10px}.dashboard-grid{grid-gap:18px;display:grid;gap:18px;margin-bottom:18px}.dashboard-grid-main,.dashboard-grid-secondary{grid-template-columns:1.08fr .92fr}.card{background:#fffdfc;background:var(--surface);border:1px solid #eadfe6;border:1px solid var(--border);border-radius:24px;border-radius:var(--radius-lg);box-shadow:0 4px 14px #5c436212;box-shadow:var(--shadow-sm);overflow:hidden}.card-header{align-items:flex-start;border-bottom:1px solid #eadfe6;border-bottom:1px solid var(--border);display:flex;gap:15px;justify-content:space-between;padding:19px 21px}.card-header h2{color:#3e3845;color:var(--text);font-size:16px;letter-spacing:-.025em;margin:4px 0 0}.card-header-note{color:#b2a6b1;color:var(--text-hint);font-size:11px;font-weight:750}.card-body{padding:21px}.flow-total{align-items:baseline;display:flex;gap:9px;margin-bottom:24px}.flow-total strong{color:#3e3845;color:var(--text);font-size:32px;letter-spacing:-.065em}.flow-total span{color:#8c8290;color:var(--text-muted);font-size:12px}.flow-meters{grid-gap:20px;display:grid;gap:20px}.flow-meter{grid-gap:8px;display:grid;gap:8px}.flow-meter-label{color:#655b69;color:var(--text-soft);display:flex;font-size:12px;font-weight:700;justify-content:space-between}.flow-meter-label span{align-items:center;display:inline-flex;gap:8px}.flow-meter-label strong{color:#3e3845;color:var(--text);font-size:12px}.meter-dot{border-radius:50%;height:9px;width:9px}.meter-income{background:#4cc59e}.meter-expense{background:#eb817b}.category-track,.flow-track{background:#f8f3f5;background:var(--surface-muted);border-radius:20px;height:10px;overflow:hidden}.category-fill,.flow-fill{border-radius:inherit;height:100%;transition:width .55s ease}.flow-fill-income{background:linear-gradient(90deg,#76d6b5,#45bd94)}.flow-fill-expense{background:linear-gradient(90deg,#f5a097,#e77974)}.flow-note{align-items:center;color:#b2a6b1;color:var(--text-hint);display:flex;font-size:11px;gap:8px;margin-top:28px}.flow-note span{color:#a27bd0;color:var(--primary)}.flow-note.has-data{color:#8c8290;color:var(--text-muted)}.category-body{min-height:285px}.category-total{align-items:baseline;display:flex;gap:8px;margin-bottom:18px}.category-total strong{color:#3e3845;color:var(--text);font-size:26px;letter-spacing:-.05em}.category-total span{color:#8c8290;color:var(--text-muted);font-size:11px}.category-row{grid-gap:8px;display:grid;gap:8px;margin-bottom:17px}.category-row:last-child{margin-bottom:0}.category-row-top{align-items:center;color:#655b69;color:var(--text-soft);display:flex;font-size:12px;justify-content:space-between;text-transform:capitalize}.category-row-top strong{color:#3e3845;color:var(--text);font-size:12px}.category-name{align-items:center;display:flex;gap:8px}.category-dot{border-radius:3px;height:9px;width:9px}.dot-0,.fill-0{background:#f28b86}.dot-1,.fill-1{background:#9b80d5}.dot-2,.fill-2{background:#72a9dc}.dot-3,.fill-3{background:#65c5a2}.dot-4,.fill-4{background:#e6b45d}.category-empty{align-content:center;display:grid;justify-items:center;min-height:245px;padding:18px;text-align:center}.empty-donut{border-bottom:11px solid #f8f3f5;border-bottom:11px solid var(--surface-muted);border-left:11px solid #f8f3f5;border-left:11px solid var(--surface-muted);border-right:11px solid #ffcfc5;border-right:11px solid var(--peach);border-top:11px solid #a27bd0;border-top:11px solid var(--primary);height:112px;margin-bottom:16px;place-items:center;transform:rotate(-25deg);width:112px}.empty-donut,.empty-donut div{border-radius:50%;display:grid}.empty-donut div{background:#fffdfc;background:var(--surface);color:#b2a6b1;color:var(--text-hint);font-size:20px;font-weight:850;height:58px;place-items:center;transform:rotate(25deg);width:58px}.category-empty strong{color:#655b69;color:var(--text-soft);font-size:13px}.category-empty p{color:#b2a6b1;color:var(--text-hint);font-size:11px;margin:5px 0 13px;max-width:220px}.recent-list{min-height:245px}.recent-row{align-items:center;border-bottom:1px solid #eadfe6;border-bottom:1px solid var(--border);display:flex;gap:11px;padding:13px 21px}.recent-row:last-child{border-bottom:0}.transaction-mark{border-radius:11px;display:grid;flex-shrink:0;font-size:17px;font-weight:850;height:34px;place-items:center;width:34px}.mark-income{background:#e0f5ed;background:var(--mint-soft);color:#299374}.mark-expense{background:#ffe2df;background:var(--danger-soft);color:#db7772;color:var(--danger)}.recent-copy{grid-gap:2px;display:grid;flex:1 1;gap:2px;min-width:0}.recent-copy strong{color:#3e3845;color:var(--text);font-size:12px}.recent-copy span,.recent-copy strong{overflow:hidden;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.recent-copy span{color:#b2a6b1;color:var(--text-hint);font-size:11px}.amt-pos{color:#2da17a;font-weight:850}.amt-neg{color:#db7772;color:var(--danger);font-weight:850}.pulse-card{background:linear-gradient(145deg,#fffdfc,#f4edf9);background:linear-gradient(145deg,var(--surface),var(--bg-soft))}.signal-badge{background:#ede3fb;background:var(--primary-soft);border-radius:20px;color:#7650a8;color:var(--primary-strong);font-size:9px;font-weight:850;letter-spacing:.08em;padding:5px 8px}.pulse-content{align-items:center;display:flex;gap:18px;padding:22px 21px}.pulse-score{border-bottom:9px solid #ede3fb;border-bottom:9px solid var(--primary-soft);border-left:9px solid #ede3fb;border-left:9px solid var(--primary-soft);border-radius:50%;border-right:9px solid #9bdcc8;border-right:9px solid var(--mint);border-top:9px solid #a27bd0;border-top:9px solid var(--primary);display:grid;flex-shrink:0;height:105px;place-items:center;width:105px}.pulse-score span{color:#7650a8;color:var(--primary-strong);font-size:18px;line-height:1}.pulse-score strong{color:#3e3845;color:var(--text);font-size:23px;letter-spacing:-.05em;line-height:1;margin-top:-2px}.pulse-score small{color:#b2a6b1;color:var(--text-hint);font-size:9px;font-weight:800;text-transform:uppercase}.pulse-copy{grid-gap:6px;display:grid;gap:6px}.pulse-copy strong{color:#3e3845;color:var(--text);font-size:14px;line-height:1.3}.pulse-copy p{font-size:12px;line-height:1.5;margin:0}.pulse-copy p,.pulse-tip{color:#8c8290;color:var(--text-muted)}.pulse-tip{border:1px solid #eadfe6;border:1px solid var(--border);border-radius:11px;font-size:11px;margin:0 21px 20px;padding:11px 12px}.pulse-tip span{color:#7650a8;color:var(--primary-strong);margin-right:6px}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:9px;margin-bottom:16px}.filters input,.filters select{cursor:pointer;font-size:12px;padding:9px 11px;width:auto}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-size:13px;width:100%}th{background:#f8f3f5;background:var(--surface-muted);color:#b2a6b1;color:var(--text-hint);font-size:10px;font-weight:850;letter-spacing:.08em;padding:11px 15px;text-align:left;text-transform:uppercase}td,th{border-bottom:1px solid #eadfe6;border-bottom:1px solid var(--border)}td{color:#655b69;color:var(--text-soft);padding:13px 15px;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover td{background:#f8f3f5;background:var(--surface-muted)}.badge{border-radius:20px;display:inline-block;font-size:11px;font-weight:800;padding:4px 9px;text-transform:capitalize}.badge-income{background:#e0f5ed;background:var(--mint-soft);color:#2d9b7b}.badge-expense{background:#ffe2df;background:var(--danger-soft);color:#db7772;color:var(--danger)}.badge-admin{background:#ede3fb;background:var(--primary-soft);color:#7650a8;color:var(--primary-strong)}.badge-analyst{background:#eef6ff;background:var(--blue-soft);color:#4774a8}.badge-viewer{background:#f8f3f5;background:var(--surface-muted);border:1px solid #eadfe6;border:1px solid var(--border);color:#8c8290;color:var(--text-muted)}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#3e38456b;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:100}.modal{animation:modal-in .2s ease;background:#fffdfc;background:var(--surface);border:1px solid #eadfe6;border:1px solid var(--border);border-radius:22px;box-shadow:0 14px 34px #5c43621f;box-shadow:var(--shadow-md);max-height:calc(100vh - 40px);overflow-y:auto;padding:27px;width:min(100%,460px)}.modal h2{color:#3e3845;color:var(--text);font-size:20px;letter-spacing:-.04em;margin:0 0 20px}.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:20px}.spinner{animation:spin .65s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;display:inline-block;height:15px;width:15px}.loading-screen{color:#8c8290;color:var(--text-muted);display:grid;font-size:13px;min-height:230px;place-items:center}.loading-screen .spinner{color:#a27bd0;color:var(--primary);margin-right:8px;vertical-align:-3px}.empty-state{color:#8c8290;color:var(--text-muted);display:grid;padding:48px 22px;place-items:center;text-align:center}.empty-state p{color:#655b69;color:var(--text-soft);font-size:13px;margin:8px 0 0}.empty-state span{color:#b2a6b1;color:var(--text-hint);font-size:11px;margin-top:3px}.empty-illustration{background:#ede3fb;background:var(--primary-soft);border-radius:12px;color:#7650a8;color:var(--primary-strong);display:grid;font-size:19px;font-weight:800;height:39px;place-items:center;width:39px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:1100px){.sidebar{width:220px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.sidebar{padding:20px 9px;position:fixed;width:74px;z-index:90}.sidebar-logo{justify-content:center;padding:0}.nav-link>span:not(.nav-icon),.nav-section,.sidebar-brand,.sidebar-user .user-info,.sign-out-btn,.theme-toggle-key,.theme-toggle>span:not(.theme-toggle-icon){display:none}.sidebar-logo-icon{height:40px;width:40px}.nav-link{justify-content:center;padding:12px 8px}.theme-toggle{padding:10px 8px}.sidebar-user,.theme-toggle{justify-content:center}.main-content{margin-left:74px;padding:28px 22px 45px}.dashboard-grid-main,.dashboard-grid-secondary{grid-template-columns:1fr}}@media (max-width:560px){.main-content{margin-left:0;padding:22px 14px 36px}.sidebar{align-items:center;border-bottom:1px solid #eadfe6;border-bottom:1px solid var(--border);border-right:0;flex-direction:row;height:auto;padding:12px 14px;position:static;width:100%}.sidebar-logo{margin:0}.sidebar-nav{flex:1 1;flex-direction:row;gap:3px;justify-content:flex-end}.sidebar-footer{align-items:center;border:0;display:flex;gap:7px;padding:0}.nav-link>span:not(.nav-icon),.nav-section,.sidebar-user,.sign-out-btn,.theme-toggle{display:none}.nav-link{padding:9px 7px;width:37px}.app-layout{display:block}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:21px}.header-actions{width:100%}.dashboard-add-btn,.month-select{flex:1 1}.welcome-card{align-items:flex-start;min-height:254px;padding:23px 21px}.welcome-art{bottom:-14px;right:18px;transform:scale(.82);transform-origin:bottom right}.stats-grid{gap:10px;grid-template-columns:1fr 1fr}.stat-card{border-radius:17px;min-height:130px;padding:14px}.stat-value{font-size:22px;margin-top:14px}.card-header{padding:16px}.card-body{padding:17px 16px}.recent-row{padding:12px 16px}.pulse-content{align-items:flex-start;flex-direction:column}.pulse-score{height:92px;width:92px}}@media (max-width:360px){.stats-grid{grid-template-columns:1fr}.header-actions{align-items:stretch;flex-direction:column}.dashboard-add-btn,.month-select{width:100%}}
/*# sourceMappingURL=main.80deaaae.css.map*/