:root{--bg: #f4f8fc;--panel: #ffffff;--ink: #0f2440;--muted: #5b7290;--line: #e2ebf4;--brand: #0e5aa7;--brand-soft: #e8f1fb;--green: #1b8f5a;--amber: #c9871f;--red: #c0392b;--shadow: 0 1px 3px rgba(15, 36, 64, .08), 0 1px 2px rgba(15, 36, 64, .05)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:216px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar-foot{margin-top:auto;padding:12px 8px 4px;border-top:1px solid var(--line)}.source-switch{margin-bottom:12px}.source-switch .source-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;display:flex;align-items:center;gap:6px}.source-switch select{width:100%;font-size:12px;padding:5px 8px}.source-switch .dot{width:8px;height:8px;border-radius:50%;display:inline-block}.source-switch .dot.live{background:var(--green);box-shadow:0 0 0 3px #1b8f5a26}.source-switch .dot.snap{background:var(--amber)}.sidebar-foot .whoami{font-size:12px;color:var(--muted);margin-bottom:8px;word-break:break-word}.sidebar-foot button{width:100%}.login-wrap{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:28px;width:340px;display:flex;flex-direction:column;gap:12px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:4px}.login-brand img{height:34px;border-radius:6px}.login-brand b{font-size:15px}.login-brand span{display:block;font-size:11px;color:var(--muted)}.login-card h1{font-size:18px;margin:4px 0 6px}.login-card label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.login-card input{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px}.login-card button{margin-top:6px;padding:10px}.login-error{background:#fbe4e1;color:var(--red);border:1px solid #f0b7ae;border-radius:8px;padding:8px 11px;font-size:13px}.fld{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.fld input{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:8px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}.brand img{height:30px;border-radius:5px}.brand b{font-size:15px;letter-spacing:-.2px}.brand span{display:block;font-size:11px;color:var(--muted)}.nav a{display:block;padding:8px 12px;border-radius:8px;color:var(--muted);font-weight:500;margin-bottom:2px}.nav a:hover{background:var(--brand-soft);color:var(--brand)}.nav a.active{background:var(--brand);color:#fff}.main{flex:1;padding:24px 28px;max-width:1400px;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}h1{font-size:22px;margin:0 0 2px;letter-spacing:-.3px}.sub{color:var(--muted);margin:0 0 20px;font-size:13px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:22px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}.kpi .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.kpi .value{font-size:24px;font-weight:650;margin-top:6px;letter-spacing:-.5px}.kpi .value.pos{color:var(--green)}.kpi .value.neg{color:var(--red)}.kpi .hint{font-size:12px;color:var(--muted);margin-top:2px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}.panel h2{font-size:14px;margin:0;padding:13px 16px;border-bottom:1px solid var(--line);background:#fbfdff}.panel .body{padding:4px 0}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:8px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}thead th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:#fbfdff;position:sticky;top:0}tbody tr:hover{background:var(--brand-soft)}tbody tr:last-child td{border-bottom:none}tr.total td{font-weight:700;border-top:2px solid var(--line);background:#fbfdff}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.pill.Active{background:#e5f5ec;color:var(--green)}.pill.SlowPay,.pill.Slow.Pay{background:#fbefd8;color:var(--amber)}.pill.Defaulted{background:#fbe4e1;color:var(--red)}.pill.Refinanced{background:#e8eef6;color:var(--brand)}.pill.Completed{background:#eef1f4;color:var(--muted)}.pill.Fresh{background:#e5f5ec;color:var(--green)}.pill.Reinvested{background:#e8eef6;color:var(--brand)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 900px){.grid2{grid-template-columns:1fr}.sidebar{width:64px}.brand b,.brand span,.nav a span{display:none}}.chart{padding:12px 8px 4px}.bar{height:8px;border-radius:4px;background:var(--brand)}.barwrap{background:var(--line);border-radius:4px;width:90px;display:inline-block;vertical-align:middle}.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}select,input[type=number]{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}button{font:inherit;font-weight:600;padding:6px 12px;border:1px solid var(--brand);border-radius:8px;background:var(--brand);color:#fff;cursor:pointer}button.ghost{background:#fff;color:var(--brand)}button:hover{opacity:.92}.loading,.error{padding:40px;text-align:center;color:var(--muted)}.error{color:var(--red)}.tabs{display:flex;gap:6px;margin-bottom:16px}.tabs a{padding:6px 14px;border-radius:8px;background:var(--panel);border:1px solid var(--line);color:var(--muted);font-weight:600}.tabs a.active{background:var(--brand);color:#fff;border-color:var(--brand)}.banner{background:#fff8e6;border:1px solid #f0dca6;color:#8a6414;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:13px}table.matrix tr.section td{background:var(--brand-soft);color:var(--brand);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.6px;padding:7px 12px}table.matrix tr.subtotal td{font-weight:700;background:#fbfdff}table.matrix td.total-col,table.matrix th.total-col{font-weight:700;background:#eef4fb;border-left:2px solid var(--line)}table.matrix thead th{z-index:2}table.matrix td:first-child,table.matrix th:first-child{position:sticky;left:0;background:var(--panel);z-index:1;box-shadow:1px 0 0 var(--line)}table.matrix thead th:first-child{z-index:3;background:#fbfdff}table.matrix tr.section td:first-child{background:var(--brand-soft)}.caption{padding:8px 16px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}table.frozen th:nth-child(-n+8),table.frozen td:nth-child(-n+8){position:sticky;z-index:1;background:var(--panel)}table.frozen thead th:nth-child(-n+8){z-index:4;background:#fbfdff}table.frozen tr.total td:nth-child(-n+8){background:#fbfdff}table.frozen td:first-child,table.frozen th:first-child{box-shadow:none}table.frozen th:nth-child(1),table.frozen td:nth-child(1){left:var(--l0, 0px)}table.frozen th:nth-child(2),table.frozen td:nth-child(2){left:var(--l1, 0px)}table.frozen th:nth-child(3),table.frozen td:nth-child(3){left:var(--l2, 0px);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.frozen th:nth-child(4),table.frozen td:nth-child(4){left:var(--l3, 0px)}table.frozen th:nth-child(5),table.frozen td:nth-child(5){left:var(--l4, 0px)}table.frozen th:nth-child(6),table.frozen td:nth-child(6){left:var(--l5, 0px)}table.frozen th:nth-child(7),table.frozen td:nth-child(7){left:var(--l6, 0px)}table.frozen th:nth-child(8),table.frozen td:nth-child(8){left:var(--l7, 0px);box-shadow:2px 0 0 var(--line)}.pdf-btn{position:fixed;top:16px;right:22px;z-index:60;background:var(--brand);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.pdf-btn:hover{background:#0b4a8a}@media print{@page{margin:12mm}body{background:#fff!important}.sidebar,.no-print,.source-switch{display:none!important}.app{display:block!important}.main{padding:0!important;overflow:visible!important}.panel{break-inside:avoid;box-shadow:none;border:1px solid #d5dee8}.kpi{box-shadow:none;border:1px solid #d5dee8}.chart,.scroll{overflow:visible!important}.page-head .controls{display:none!important}}
