/* Penyesuaian tampilan PROPMA di atas template Maxton */
.avatar-initial{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6f42c1,#0d6efd);color:#fff;font-weight:600;font-size:.95rem;text-transform:uppercase}
.page-breadcrumb h4{font-weight:600}
.min-w-0{min-width:0}
/* Footer Maxton: position:absolute; bottom:0 terhadap body. Body minimal setinggi layar agar
   footer berada di dasar jendela pada halaman pendek; padding bawah konten >= tinggi footer. */
body{min-height:100vh;display:flow-root} /* flow-root: margin-top .main-wrapper tidak "tembus" keluar body */
.main-wrapper{padding-bottom:76px}
/* Logo & nama aplikasi di header sidebar (tinggi header Maxton 70px) */
.sidebar-header .brand-logo{height:46px;width:auto;display:block}
.sidebar-header .logo-icon{flex-shrink:0}
.sidebar-header .logo-name{min-width:0}
.sidebar-header .logo-name h5{font-size:1.05rem;font-weight:700;line-height:1.15;white-space:nowrap}
.sidebar-header .logo-name small{font-size:.68rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-flex>.badge{flex-shrink:0}
.btn-theme{background:transparent;border:1px solid var(--bs-border-color);color:var(--bs-body-color)}
.btn-theme:hover{background:rgba(127,127,127,.12);color:var(--bs-body-color)}
.menu-badge{font-size:.68rem;padding:.2em .5em;margin-left:auto}
:root{--imp-h:0px}
body.has-impersonate-bar{--imp-h:44px}
.impersonate-bar{position:fixed;top:0;left:0;right:0;z-index:1030;background:#ffc107;color:#1f1f1f;padding:.45rem 1rem;font-size:.9rem;display:flex;align-items:center;gap:.75rem;flex-wrap:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.impersonate-bar>.text-truncate{min-width:0;flex:1 1 auto}
@media (max-width:767.98px){.impersonate-bar{font-size:.8rem;padding:.35rem .75rem;gap:.5rem}}
.impersonate-bar .btn{padding:.15rem .6rem;font-size:.8rem;white-space:nowrap}
/* Saat banner "login sebagai" tampil: header & sidebar Maxton (position:fixed; top:0) diturunkan sebesar tinggi banner */
body.has-impersonate-bar .top-header .navbar{top:var(--imp-h)}
body.has-impersonate-bar .sidebar-wrapper{top:var(--imp-h);height:calc(100% - var(--imp-h))}
body.has-impersonate-bar .sidebar-wrapper .sidebar-header{top:var(--imp-h)}
body.has-impersonate-bar .main-wrapper{margin-top:calc(70px + var(--imp-h))}
body.has-impersonate-bar .offcanvas{top:var(--imp-h)}
.notif-dropdown{width:360px;max-width:92vw}
.notif-item{white-space:normal;border-left:3px solid transparent}
.notif-item.unread{border-left-color:var(--bs-primary);background:rgba(13,110,253,.06)}
.notif-badge{position:absolute;top:4px;right:2px;font-size:.6rem;padding:.2em .4em}
.num,.text-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Header tabel & kotak saran mengikuti tema (tema gelap/biru: .table-light bawaan tetap terang) */
[data-bs-theme=dark] .table-light,[data-bs-theme=blue-theme] .table-light,[data-bs-theme=dark] .table-light>tr>th,[data-bs-theme=blue-theme] .table-light>tr>th{--bs-table-bg:var(--bs-tertiary-bg);--bs-table-color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}
.table-rab{font-size:.86rem}
.table-rab th{white-space:nowrap}
.table-rab .kategori-row td{background:var(--bs-tertiary-bg);font-weight:600}
.table-rab .subtotal-row td{font-weight:600;border-top:1px solid var(--bs-border-color)}
.table-rab .total-row td{font-weight:700;border-top:2px solid var(--bs-border-color);font-size:.95rem}
.table-rab tr.dihapus td{text-decoration:line-through;opacity:.55}
.table-rab .saran-pill{font-size:.7rem}
.rab-editor .form-control-sm,.rab-editor .form-select-sm{font-size:.82rem}
.rab-editor td{vertical-align:middle}
.rab-editor .col-uraian{min-width:220px}
.rab-editor .col-vol{width:90px}.rab-editor .col-sat{width:100px}.rab-editor .col-harga{width:150px}.rab-editor .col-jml{width:140px}
.status-timeline{position:relative;padding-left:1.6rem}
.status-timeline::before{content:"";position:absolute;left:.52rem;top:.4rem;bottom:.4rem;width:2px;background:var(--bs-border-color)}
.status-timeline .tl-item{position:relative;padding-bottom:1rem}
.status-timeline .tl-dot{position:absolute;left:-1.6rem;top:.2rem;width:1.1rem;height:1.1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem}
.wizard-tabs .nav-link{border-radius:2rem;font-weight:500}
.wizard-tabs .nav-link.active{background:var(--bs-primary);color:#fff}
.wizard-tabs .nav-link .material-icons-outlined{font-size:18px;vertical-align:-4px}
.card-stat{border:0;color:#fff;border-radius:1rem;overflow:hidden;position:relative}
.card-stat .stat-icon{position:absolute;right:.9rem;top:.6rem;font-size:3rem !important;opacity:.25}
.card-stat .stat-value{font-size:1.9rem;font-weight:700;line-height:1.1}
.card-stat .stat-label{font-size:.8rem;text-transform:uppercase;opacity:.92}
.bg-grad-primary,.card.card-stat.bg-grad-primary{background:linear-gradient(135deg,#3c8dbc,#2c6f99)}
.bg-grad-success,.card.card-stat.bg-grad-success{background:linear-gradient(135deg,#00a65a,#008d4c)}
.bg-grad-warning,.card.card-stat.bg-grad-warning{background:linear-gradient(135deg,#f39c12,#e08e0b)}
.bg-grad-danger,.card.card-stat.bg-grad-danger{background:linear-gradient(135deg,#e74c3c,#c0392b)}
.bg-grad-info,.card.card-stat.bg-grad-info{background:linear-gradient(135deg,#00c0ef,#00a7d0)}
.bg-grad-secondary,.card.card-stat.bg-grad-secondary{background:linear-gradient(135deg,#6c757d,#545b62)}
.verif-page{max-width:720px;margin:2rem auto}
.verif-stamp{font-size:1.6rem;font-weight:800;letter-spacing:.1em}
.perm-group{border:1px solid var(--bs-border-color);border-radius:.75rem;padding:.75rem 1rem}
.perm-group .form-check{margin-bottom:.35rem}
.log-detail{max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-all;background:var(--bs-tertiary-bg);font-size:.72rem}
.text-pre{white-space:pre-wrap}
.dl-compact dt{font-weight:500;color:var(--bs-body-color);opacity:.72}
@media (max-width:767.98px){
  .page-breadcrumb h4{font-size:1.15rem}
  /* Ponsel: footer statis di akhir, didorong ke dasar layar oleh flex bila konten pendek */
  body{display:flex;flex-direction:column}
  .main-wrapper{flex:1 0 auto;padding-bottom:1rem}
  .page-footer{position:static;padding:.75rem 1rem;font-size:.8rem}
  .table-rab{font-size:.78rem}
}
