/* AbsenPro - penyesuaian tema di atas AdminLTE 3 */
:root { --brand:#0e7c66; --brand-dark:#0a5f4e; --brand-soft:#e3f4ef; }
body { font-family:'Source Sans Pro',system-ui,sans-serif; }
.page-title { font-size:1.6rem; letter-spacing:-.01em; }

/* warna utama */
.btn-primary { background:var(--brand); border-color:var(--brand); }
.btn-primary:hover,.btn-primary:focus,.btn-primary:not(:disabled):not(.disabled):active { background:var(--brand-dark); border-color:var(--brand-dark); }
.btn-outline-primary { color:var(--brand); border-color:var(--brand); }
.btn-outline-primary:hover { background:var(--brand); border-color:var(--brand); }
.bg-primary,.badge-primary { background-color:var(--brand)!important; }
.text-primary,a { color:var(--brand); }
a:hover { color:var(--brand-dark); }
.card-primary.card-outline { border-top-color:var(--brand); }
.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active { background:var(--brand); color:#fff; box-shadow:none; }
.page-item.active .page-link { background:var(--brand); border-color:var(--brand); }
.form-control:focus { border-color:var(--brand); box-shadow:0 0 0 .2rem rgba(14,124,102,.2); }
:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }

/* brand & user panel */
.brand-mark { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; margin:0 8px 0 14px; border-radius:8px; background:var(--brand); color:#fff; font-size:15px; }
.brand-mark-lg { width:64px; height:64px; margin:0 0 8px; font-size:28px; border-radius:16px; }
.avatar-initial { width:36px; height:36px; border-radius:50%; background:var(--brand-soft); color:var(--brand-dark); display:flex; align-items:center; justify-content:center; font-weight:700; margin-left:.4rem; }
.clock-pill { font-weight:700; color:var(--brand-dark); font-variant-numeric:tabular-nums; }

/* kamera */
.cam-frame { background:#1b2a27; border-radius:10px; padding:6px; display:inline-block; width:100%; }
.cam-frame video { width:100%; max-height:300px; object-fit:cover; border-radius:6px; transform:scaleX(-1); }
.lokasi-nama { font-size:1rem; }

/* tabel */
.table td,.table th { vertical-align:middle; }
.badge-status { font-weight:600; padding:.35em .6em; }
.thumb { width:38px; height:38px; object-fit:cover; border-radius:6px; }

@media (prefers-reduced-motion:reduce){ *{ transition:none!important; animation:none!important; } }
@media print { .main-sidebar,.main-header,.main-footer,.no-print { display:none!important; } .content-wrapper { margin:0!important; } }
