html,body,#root{width:100%;min-height:100%;margin:0}body{overflow-x:hidden}:root{color:#0f172a;background:#f5f8fc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 100% 0,#007aff1f,#0000 32%),#f5f8fc;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffd1;border-right:1px solid #e6edf7;width:300px;min-height:100vh;padding:28px 20px;position:sticky;top:0}.brand{align-items:center;gap:14px;margin-bottom:28px;display:flex}.brand-icon{color:#fff;background:linear-gradient(135deg,#007aff,#0057d9);border-radius:16px;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 14px 30px #007aff47}.brand h1,.brand p,.topbar h2,.topbar p{margin:0}.brand h1{font-size:24px}.brand p,.muted,.topbar p,.panel p,.stat-card p,.stat-card small{color:#64748b}.menu-item{color:#334155;text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;height:46px;padding:0 14px;font-weight:750;display:flex}.menu-item.active,.menu-item:hover{color:#007aff;background:#e9f2ff}.sidebar-bottom{border-top:1px solid #e6edf7;gap:6px;margin-top:24px;padding-top:18px;display:grid}.profile-card{background:#fff;border:1px solid #e6edf7;border-radius:18px;align-items:center;gap:12px;margin-top:14px;padding:14px;display:flex}.avatar{color:#fff;background:#007aff;border-radius:50%;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.profile-card span{color:#64748b;font-size:12px;display:block}.content{flex:1;min-width:0;max-width:calc(100vw - 300px);padding:30px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.topbar h2{letter-spacing:-1px;font-size:34px}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search,.month-picker,.icon-button,.btn{background:#fff;border:1px solid #e6edf7;border-radius:14px;align-items:center;gap:8px;height:46px;padding:0 14px;display:flex;box-shadow:0 8px 24px #0f172a0a}.search input{background:0 0;border:0;outline:0;width:150px}.month-picker{padding:0 8px}.month-picker input{background:0 0;border:0;outline:0}.month-picker button,.icon-button{background:0 0;border:0;position:relative}.icon-button span{color:#fff;background:#ff3b30;border-radius:999px;padding:2px 6px;font-size:11px;position:absolute;top:-5px;right:-5px}.btn{color:#fff;background:#007aff;border:1px solid #007aff;font-weight:800}.btn.secondary{color:#0f172a;background:#fff;border-color:#e6edf7}.btn.full{justify-content:center;width:100%}.stats-grid{grid-template-columns:repeat(6,minmax(155px,1fr));gap:16px;margin-bottom:20px;display:grid}.stats-grid.small{grid-template-columns:repeat(2,1fr)}.stat-card,.panel{background:#fffffff0;border:1px solid #e6edf7;border-radius:22px;box-shadow:0 18px 45px #0f172a0f}.stat-card{padding:20px}.stat-icon{color:#007aff;background:#e9f2ff;border-radius:15px;place-items:center;width:42px;height:42px;margin-bottom:14px;display:grid}.stat-icon.danger{color:#ff3b30;background:#ffecec}.stat-card p{margin:0 0 8px;font-weight:800}.stat-card strong{letter-spacing:-.5px;font-size:24px;display:block}.stat-card small{margin-top:8px;display:block}.main-grid{grid-template-columns:1.2fr 1fr .9fr;gap:18px;display:grid}.panel{padding:20px}.panel h3{margin:0 0 12px}.panel-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.panel-header>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cards-panel{grid-column:span 2}.credit-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.credit-card{background:#fff;border:1px solid #e6edf7;border-radius:18px;padding:16px}.credit-head{align-items:center;gap:10px;display:flex}.credit-head span:first-child{color:#fff;border-radius:9px;place-items:center;width:34px;height:34px;font-size:12px;font-weight:900;display:grid}.credit-head button{background:#f8fafc;border:0;border-radius:10px;margin-left:auto;padding:6px}.credit-values{justify-content:space-between;gap:8px;margin-top:18px;display:flex}.credit-values small,.credit-footer,.flow-row span{color:#64748b;font-size:12px}.credit-values b{font-size:14px;display:block}.progress,.mini-progress,.long-progress{background:#edf2f7;border-radius:999px;height:8px;margin:14px 0;overflow:hidden}.progress i,.mini-progress i,.long-progress i{border-radius:999px;height:100%;display:block}.credit-footer{justify-content:space-between;display:flex}.due-panel{grid-row:span 2}.due-item{border-bottom:1px solid #edf2f7;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:11px 0;display:grid}.due-badge{color:#fff;background:#007aff;border-radius:10px;place-items:center;width:42px;height:42px;font-weight:900;line-height:1;display:grid}.due-badge small{color:#fff;font-size:9px}.positive{color:#059669}.negative{color:#ff3b30}.chart-panel,.category-panel{min-height:300px}.category-content{align-items:center;gap:20px;display:flex}.category-list{flex:1;gap:12px;display:grid}.category-list div{justify-content:space-between;gap:12px;display:flex}.category-list i{border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.wide{width:100%}.flow-panel{grid-column:span 1}.notification-panel{z-index:10;background:#fff;border:1px solid #e6edf7;border-radius:20px;width:360px;padding:18px;position:absolute;top:90px;right:30px;box-shadow:0 24px 70px #0f172a29}.notif{border-bottom:1px solid #eef2f7;grid-template-columns:80px 1fr auto;gap:8px;padding:10px 0;display:grid}.error-banner,.loading-card{border-radius:16px;margin-bottom:16px;padding:14px 18px}.error-banner{color:#b42318;background:#fff1f0;border:1px solid #ffccc7}.loading-card{color:#0057d9;background:#e9f2ff}.table-panel{min-height:420px}.data-table{gap:10px;display:grid}.data-row{background:#fff;border:1px solid #e6edf7;border-radius:16px;grid-template-columns:1fr auto 42px;align-items:center;gap:14px;padding:14px;display:grid}.data-row span{color:#64748b;margin-top:4px;font-size:13px;display:block}.data-row button{background:#f8fafc;border:0;border-radius:10px;padding:8px}.invoice-block{background:#fff;border:1px solid #e6edf7;border-radius:18px;margin-bottom:14px;padding:16px}.empty{text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:18px;padding:26px}.empty h3{color:#0f172a}.form-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin:14px 0;display:grid}.form-grid input,.form-grid select,.modal-form input,.modal-form select,textarea{background:#fff;border:1px solid #dbe5f1;border-radius:13px;width:100%;padding:12px}textarea{min-height:180px;margin:10px 0}.modal-backdrop{z-index:20;background:#0f172a61;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:24px;width:min(760px,96vw);max-height:90vh;padding:22px;overflow:auto;box-shadow:0 30px 90px #0f172a38}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head button{background:#f8fafc;border:0;border-radius:12px;padding:8px}.modal-form{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.modal-form label{gap:6px;font-weight:700;display:grid}.modal-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;display:flex}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #e6edf7;border-radius:24px;gap:14px;width:min(420px,94vw);padding:28px;display:grid;box-shadow:0 20px 70px #0f172a1a}.auth-card label{gap:6px;font-weight:700;display:grid}.auth-card input{border:1px solid #dbe5f1;border-radius:14px;padding:12px}.link{color:#007aff;background:0 0;border:0;font-weight:800}.form-message{background:#f1f5f9;border-radius:12px;padding:12px}@media (width<=1400px){.stats-grid{grid-template-columns:repeat(3,1fr)}.main-grid{grid-template-columns:1fr}.cards-panel{grid-column:auto}.credit-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.app-shell{display:block}.sidebar{width:100%;min-height:auto;position:relative}.sidebar nav,.sidebar-bottom{display:none}.content{max-width:100%;padding:18px}.stats-grid,.credit-grid,.form-grid,.modal-form{grid-template-columns:1fr}.topbar,.actions{flex-direction:column;align-items:stretch}.category-content{flex-direction:column}.notification-panel{width:auto;margin-bottom:16px;position:static}.data-row{grid-template-columns:1fr auto}}
