body{background:#f5f7fb;color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}.finance-shell{display:flex;min-height:100vh}.finance-sidebar{width:250px;background:#111827;color:#fff;padding:22px;position:fixed;top:0;bottom:0;left:0}.finance-sidebar .brand{font-weight:800;font-size:22px;margin-bottom:28px}.finance-sidebar a{display:block;color:#cbd5e1;padding:12px 14px;border-radius:12px;margin-bottom:8px;text-decoration:none}.finance-sidebar a:hover{background:#1f2937;color:#fff}.finance-main{margin-left:250px;width:calc(100% - 250px);padding:24px}.finance-topbar{background:#fff;border-radius:20px;padding:18px 22px;box-shadow:0 10px 35px rgba(15,23,42,.06);display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.finance-topbar h4{margin:0;font-weight:800}.topbar-date{background:#eef2ff;color:#4338ca;padding:8px 14px;border-radius:999px}.kpi-row>[class*=col-]{margin-bottom:16px}.kpi-card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 10px 35px rgba(15,23,42,.06);border:1px solid #edf2f7;min-height:118px}.kpi-card span{display:block;color:#64748b;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.kpi-card strong{display:block;margin-top:18px;font-size:26px;color:#0f172a}.kpi-card.accent{background:linear-gradient(135deg,#312e81,#2563eb);color:#fff}.kpi-card.accent span,.kpi-card.accent strong{color:#fff}.kpi-card.warning{border-left:5px solid #f59e0b}.kpi-card.danger{border-left:5px solid #ef4444}.panel-card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 10px 35px rgba(15,23,42,.06);border:1px solid #edf2f7}.table-modern{font-size:13px}.table-modern thead th{background:#f8fafc;color:#475569;border-top:0;position:sticky;top:0;z-index:2}.table-modern td{vertical-align:middle}.sticky-wrap{max-height:420px;overflow:auto}.badge-soft{border-radius:999px;padding:6px 10px;background:#e0f2fe;color:#0369a1}.loader{width:26px;height:26px;border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-content{border:0;border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.25)}.btn{border-radius:11px}.form-control{border-radius:12px;border-color:#e2e8f0}@media(max-width:768px){.finance-sidebar{position:relative;width:100%;height:auto}.finance-shell{display:block}.finance-main{margin-left:0;width:100%;padding:14px}.finance-topbar{display:block}}

.metric-mini h5{font-weight:700;margin-bottom:6px;}
.metric-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8a94a6;margin-bottom:4px;}
.modal-modern{border:0;border-radius:18px;box-shadow:0 24px 80px rgba(16,24,40,.22);overflow:hidden;}
.modal-modern .modal-header{border-bottom:1px solid #eef2f7;background:#fbfcff;}
.modal-modern .modal-footer{border-top:1px solid #eef2f7;background:#fbfcff;}
.modal-modern label{font-size:12px;font-weight:700;color:#667085;}
.table-action-nowrap{white-space:nowrap;}
.btn{border-radius:10px;}
.form-control{border-radius:10px;border-color:#d8dee9;}
.form-control:focus{box-shadow:0 0 0 .15rem rgba(41,98,255,.15);}
