:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1f2937;background:#f6f7fb}*{box-sizing:border-box}body{margin:0}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;background:#111827;color:white;padding:22px 14px;position:fixed;inset:0 auto 0 0}.brand{font-size:22px;font-weight:800;margin:0 8px 24px}.sidebar nav{display:grid;gap:8px}.nav-link{border:0;background:transparent;color:#d1d5db;text-align:left;padding:11px 12px;border-radius:9px;cursor:pointer;font-size:15px}.nav-link:hover,.nav-link.active{background:#1f2937;color:white}.main{margin-left:220px;padding:28px;width:calc(100% - 220px)}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.topbar h1{margin:0}.muted{color:#6b7280;margin:4px 0 0}.primary,.secondary,.danger{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:700}.primary{background:#111827;color:white}.secondary{background:#e5e7eb;color:#111827}.danger{background:#fee2e2;color:#991b1b}.view{display:none}.active-view{display:block}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.card,.panel{background:white;border:1px solid #e5e7eb;border-radius:14px;padding:18px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.card .label{font-size:13px;color:#6b7280}.card .value{font-size:25px;font-weight:800;margin-top:8px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{margin-bottom:18px}.panel h2{margin-top:0;font-size:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.filters{display:flex;gap:10px;margin:15px 0}.filters input,.filters select,label input,label select{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:9px;background:white}.filters input{max-width:320px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 10px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:#6b7280}.amount-income{color:#047857;font-weight:700}.amount-expense{color:#b91c1c;font-weight:700}.account-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.account-card{border:1px solid #e5e7eb;border-radius:12px;padding:16px}.account-card h3{margin:0 0 6px}.balance{font-size:22px;font-weight:800;margin-top:12px}.loan-card{border:1px solid #e5e7eb;border-radius:12px;padding:16px;margin-bottom:14px}.loan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.loan-grid .item span{display:block;color:#6b7280;font-size:12px}.loan-grid .item strong{display:block;margin-top:4px}.bar{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}.bar>div{height:100%;background:#111827}.loan-actions{display:flex;gap:8px;margin-top:14px}.hidden{display:none!important}.category-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.category-row:last-child{border-bottom:0}.warning-panel{border-color:#f59e0b;background:#fffbeb}dialog{border:0;border-radius:16px;padding:0;width:min(520px,94vw);box-shadow:0 20px 50px rgba(0,0,0,.2)}dialog::backdrop{background:rgba(17,24,39,.45)}.form-grid{padding:22px;display:grid;gap:14px}.form-grid h2{margin:0}.form-grid label{display:grid;gap:6px;font-size:13px;font-weight:700}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.empty{padding:18px;text-align:center;color:#6b7280;background:#f9fafb;border-radius:10px}@media(max-width:900px){.sidebar{position:static;width:100%;height:auto}.app-shell{display:block}.sidebar nav{display:flex;overflow:auto}.main{margin-left:0;width:100%;padding:18px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-two{grid-template-columns:1fr}.account-grid{grid-template-columns:1fr 1fr}.loan-grid{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start}}@media(max-width:560px){.cards,.account-grid{grid-template-columns:1fr}.topbar{flex-direction:column}.sidebar{padding:14px}.brand{margin-bottom:12px}.filters{flex-direction:column}.filters input{max-width:none}}
