*{box-sizing:border-box}body{background:#f5f7fb;color:#263238}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e9efff,#f7f9fc)}.login-card{width:min(430px,92vw);background:#fff;border-radius:20px;padding:34px;box-shadow:0 15px 50px rgba(20,40,80,.12)}.brand{font-weight:800;letter-spacing:.08em;font-size:22px;display:flex;align-items:center;gap:9px}.brand span{font-weight:400;margin-left:0}.brand-logo{width:36px;height:36px;border-radius:8px;object-fit:contain;background:#fff;padding:3px;display:none}.topbar{height:64px;background:#18243a;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:1100}.topbar-left{display:flex;align-items:center;gap:12px}.sidebar-toggle{border:0;background:rgba(255,255,255,.12);color:#fff;width:40px;height:40px;border-radius:10px;font-size:22px;line-height:1}.app-shell{display:flex;min-height:calc(100vh - 64px)}.sidebar{width:250px;flex:0 0 250px;background:#fff;border-right:1px solid #e8ebf0;padding:18px;transition:transform .25s ease,width .25s ease,flex-basis .25s ease;z-index:1050}.nav-item{display:block;padding:12px 14px;border-radius:10px;text-decoration:none;color:#52606d;margin-bottom:5px}.nav-item:hover,.nav-item.active{background:#edf2ff;color:#3157d5}.nav-item.disabled{opacity:.45}.content{flex:1;min-width:0;padding:28px;overflow:auto}.stat-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 5px 20px rgba(30,50,80,.06);display:flex;flex-direction:column;gap:4px}.stat-card small{color:#7b8794}.stat-card strong{font-size:21px}.table-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 5px 20px rgba(30,50,80,.06);overflow:hidden}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.report-table-wrap{overflow-x:auto}.money{text-align:right;white-space:nowrap}.dt-subtotal td{font-weight:700;background:#f0f4ff!important;border-top:2px solid #d8e0f5}.dt-grand-total td{font-weight:800;background:#e8eefc!important;border-top:3px double #9aa9c7}.rowgroup-label{font-weight:700}.sidebar-overlay{display:none}.sidebar-collapsed .sidebar{width:0;flex-basis:0;padding-left:0;padding-right:0;border-right:0;overflow:hidden}.sidebar-logo{display:flex;justify-content:center;align-items:center;margin:2px 0 18px;padding:10px;border-bottom:1px solid #eef0f4}.sidebar-logo img{max-width:150px;max-height:75px;object-fit:contain}.sidebar-logo .fallback{font-weight:800;letter-spacing:.12em;color:#18243a;font-size:17px;text-align:center}.login-brand-logo{width:44px;height:44px;object-fit:contain;display:none}@media(max-width:900px){.filters{grid-template-columns:repeat(2,1fr)}.sidebar{width:220px;flex-basis:220px}}@media(max-width:700px){.sidebar-collapsed .sidebar{width:220px;flex-basis:220px;padding-left:18px;padding-right:18px;border-right:1px solid #e8ebf0;overflow:visible}.sidebar{position:fixed;left:0;top:64px;height:calc(100vh - 64px);transform:translateX(-105%);box-shadow:12px 0 30px rgba(20,40,80,.15)}body.sidebar-open .sidebar{transform:translateX(0)}.sidebar-overlay{position:fixed;inset:64px 0 0;background:rgba(10,20,40,.35);z-index:1040}.sidebar-overlay.show{display:block}.content{padding:15px}.filters{grid-template-columns:1fr}.topbar{padding:0 12px;font-size:13px}.brand{font-size:18px}.topbar-right{white-space:nowrap}.sidebar-logo{margin-top:0}}/* Date picker: keep the requested dd/MMM/yyyy display while using the native calendar selector. */
.date-display { cursor: pointer; background-color: #fff; }
.cemara-date-picker { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* Keep hidden NoTransaksi column hidden in manually generated subtotal rows. */
.dt-subtotal .dt-hidden-col{display:none!important}

/* Fallback alignment for RowGroup subtotal: NoTransaksi is hidden in DataTables. */
#tbl tbody tr.dt-subtotal > td.dt-hidden-col {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Rekap sisa piutang per leasing */
.leasing-sisa-summary thead th{background:#f0f4ff;font-weight:700;white-space:nowrap}.leasing-sisa-summary tfoot th{background:#e8eefc;font-weight:800;border-top:2px solid #9aa9c7;white-space:nowrap}.leasing-sisa-summary td,.leasing-sisa-summary th{vertical-align:middle}
