*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#1e293b;background:#f0f4ff;font-family:Segoe UI,sans-serif}.nav{color:#fff;z-index:100;background:#0f172a;justify-content:space-between;align-items:center;padding:14px 32px;display:flex;position:sticky;top:0;box-shadow:0 2px 12px #0003}.nav-brand{letter-spacing:-.5px;background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:800}.nav-links{align-items:center;gap:20px;display:flex}.nav-link{color:#94a3b8;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:#fff}.nav-name{color:#e2e8f0;font-size:14px;font-weight:500}.nav-btn{color:#fff;cursor:pointer;background:linear-gradient(90deg,#ef4444,#dc2626);border:none;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600;transition:opacity .2s}.nav-btn:hover{opacity:.85}.dashboard-container{max-width:1200px;margin:0 auto;padding:36px 40px}.dashboard-heading{color:#0f172a;margin-bottom:4px;font-size:28px;font-weight:800}.dashboard-sub{color:#64748b;margin-bottom:32px;font-size:15px}.dashboard-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:36px;display:grid}.dashboard-card{background:#fff;border:1px solid #e8edf5;border-radius:16px;padding:24px 28px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000000f}.dashboard-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #0000001a}.dashboard-card:before{content:"";height:4px;position:absolute;top:0;left:0;right:0}.dashboard-card:first-child:before{background:linear-gradient(90deg,#3b82f6,#6366f1)}.dashboard-card:nth-child(2):before{background:linear-gradient(90deg,#10b981,#14b8a6)}.dashboard-card:nth-child(3):before{background:linear-gradient(90deg,#f59e0b,#f97316)}.card-icon{margin-bottom:12px;font-size:28px}.card-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:13px;font-weight:600}.card-value{color:#0f172a;font-size:32px;font-weight:800}.card-value.blue{color:#3b82f6}.card-value.green{color:#10b981}.card-value.amber{color:#f59e0b}.dashboard-card.skeleton{background:#f8fafc;border:1px solid #e2e8f0}.skeleton-line-sm{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%) 0 0/200% 100%;border-radius:6px;width:55%;height:12px;margin-bottom:14px;animation:1.4s infinite shimmer}.skeleton-line-lg{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%) 0 0/200% 100%;border-radius:6px;width:75%;height:32px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.charts-loading{color:#94a3b8;padding:20px 0;font-size:14px}.charts-section-title{color:#0f172a;margin-bottom:16px;font-size:18px;font-weight:700}.charts-wrapper{flex-wrap:wrap;gap:24px;display:flex}.chart-box{background:#fff;border:1px solid #e8edf5;border-radius:16px;flex:1;min-width:300px;padding:24px;box-shadow:0 4px 20px #0000000f}.chart-box h4{color:#334155;margin-bottom:16px;font-size:15px;font-weight:700}.expenses-container{max-width:1200px;margin:0 auto;padding:36px 40px}.expenses-heading{color:#0f172a;font-size:28px;font-weight:800}.expenses-sub{color:#64748b;margin-top:4px;font-size:15px}.expenses-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.expenses-add-btn{color:#fff;cursor:pointer;background:linear-gradient(90deg,#3b82f6,#6366f1);border:none;border-radius:10px;align-items:center;gap:6px;padding:11px 22px;font-size:14px;font-weight:700;transition:opacity .2s,transform .2s;display:flex;box-shadow:0 4px 14px #6366f159}.expenses-add-btn:hover{opacity:.9;transform:translateY(-1px)}.expenses-form-box{background:#fff;border:1px solid #e8edf5;border-radius:16px;margin-bottom:24px;padding:28px;box-shadow:0 4px 20px #00000014}.expenses-filters{background:#fff;border:1px solid #e8edf5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;padding:16px 20px;display:flex;box-shadow:0 2px 10px #0000000d}.filters-label{color:#64748b;margin-right:4px;font-size:13px;font-weight:600}.expenses-table-wrapper{background:#fff;border:1px solid #e8edf5;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #0000000f}.expenses-table{border-collapse:collapse;width:100%}.expenses-thead tr{background:linear-gradient(90deg,#0f172a,#1e293b)}.expenses-thead th{color:#94a3b8;text-transform:uppercase;letter-spacing:.6px;text-align:left;padding:14px 16px;font-size:12px;font-weight:700}.expenses-row{border-bottom:1px solid #f1f5f9;transition:background .15s}.expenses-row:hover{background:#f8faff}.expenses-row td{color:#334155;padding:14px 16px;font-size:14px}.category-badge{color:#3b82f6;background:#eff6ff;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.amount-cell{color:#0f172a;font-weight:700}.expenses-edit-btn{color:#d97706;cursor:pointer;background:#fef3c7;border:none;border-radius:6px;margin-right:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:background .2s}.expenses-edit-btn:hover{background:#fde68a}.expenses-del-btn{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:background .2s}.expenses-del-btn:hover{background:#fecaca}.expenses-modal{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.expenses-modal-box{background:#fff;border-radius:20px;width:440px;padding:32px;box-shadow:0 20px 60px #0003}.expenses-modal-box h3{color:#0f172a;margin-bottom:20px;font-size:18px;font-weight:800}.expenses-pagination{justify-content:center;align-items:center;gap:12px;margin-top:24px;display:flex}.expenses-page-btn{cursor:pointer;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 20px;font-size:14px;font-weight:600;transition:all .2s}.expenses-page-btn:hover:not(:disabled){color:#fff;background:#3b82f6;border-color:#3b82f6}.expenses-page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:#64748b;font-size:14px;font-weight:500}.expense-form{flex-direction:column;gap:12px;display:flex}.expense-form-btn-group{gap:10px;margin-top:4px;display:flex}.expense-form-btn{color:#fff;cursor:pointer;background:linear-gradient(90deg,#3b82f6,#6366f1);border:none;border-radius:8px;flex:1;padding:11px;font-size:14px;font-weight:700}.expense-form-cancel-btn{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;flex:1;padding:11px;font-size:14px;font-weight:600}.form-input{color:#1e293b;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s}.form-input:focus{background:#fff;border-color:#6366f1}.form-input-block{color:#1e293b;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;margin:8px 0;padding:12px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s;display:block}.auth-page{background:#f0fdf9;min-height:100vh;display:flex}.auth-left{color:#fff;background:linear-gradient(145deg,#064e3b 0%,#065f46 40%,#047857 100%);flex-direction:column;flex:1;justify-content:center;padding:60px;display:flex;position:relative;overflow:hidden}.auth-left:before{content:"";background:radial-gradient(circle,#34d39940 0%,#0000 70%);border-radius:50%;width:420px;height:420px;position:absolute;top:-120px;right:-120px}.auth-left:after{content:"";background:radial-gradient(circle,#10b98133 0%,#0000 70%);border-radius:50%;width:320px;height:320px;position:absolute;bottom:-80px;left:-80px}.auth-left-content{z-index:1;position:relative}.auth-logo{margin-bottom:16px;font-size:36px}.auth-left h1{color:#ecfdf5;margin-bottom:16px;font-size:34px;font-weight:900;line-height:1.25}.auth-left p{color:#6ee7b7;margin-bottom:40px;font-size:15px;line-height:1.75}.auth-stats{grid-template-columns:1fr 1fr;gap:14px;display:grid}.auth-stat-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff1f;border-radius:14px;padding:18px 20px}.auth-stat-value{margin-bottom:4px;font-size:26px;font-weight:800}.auth-stat-value.blue{color:#67e8f9}.auth-stat-value.purple{color:#c4b5fd}.auth-stat-value.green{color:#6ee7b7}.auth-stat-value.amber{color:#fcd34d}.auth-stat-label{color:#d1fae5;font-size:13px;font-weight:600}.auth-stat-sub{color:#6ee7b7;opacity:.7;margin-top:2px;font-size:11px}.auth-right{background:#f0fdf9;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.auth-card{background:#fff;border:1px solid #d1fae5;border-radius:24px;width:100%;max-width:420px;padding:44px 40px;box-shadow:0 20px 60px #064e3b1a}.auth-card-icon{margin-bottom:8px;font-size:40px}.auth-card h2{color:#064e3b;margin-bottom:6px;font-size:26px;font-weight:900}.auth-card-sub{color:#6b7280;margin-bottom:28px;font-size:14px}.auth-label{color:#374151;margin-top:4px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.auth-btn-gradient{color:#fff;cursor:pointer;background:linear-gradient(90deg,#059669,#10b981);border:none;border-radius:10px;width:100%;margin-top:20px;padding:13px 0;font-size:15px;font-weight:700;transition:all .2s;box-shadow:0 4px 14px #10b98166}.auth-btn-gradient:hover{transform:translateY(-1px);box-shadow:0 6px 20px #10b98180}.auth-footer{text-align:center;color:#6b7280;margin-top:20px;font-size:14px}.auth-footer a{color:#059669;font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13px}.auth-divider{color:#9ca3af;align-items:center;gap:12px;margin:20px 0;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#d1fae5;flex:1;height:1px}.form-input-block:focus{background:#fff;border-color:#10b981;box-shadow:0 0 0 3px #10b9811f}@media (width<=768px){.auth-left{display:none}.dashboard-container,.expenses-container{padding:20px 16px}.expenses-thead th:nth-child(5),.expenses-row td:nth-child(5){display:none}}
