/* =========================================================
   INVENTARIS ASET — PROFESSIONAL UI THEME
   Visual-only layer. Does not change PHP/SQL/role logic.
   ========================================================= */
:root{
  --ia-primary:#0f5bd7;
  --ia-primary-dark:#0a46aa;
  --ia-ink:#172033;
  --ia-muted:#667085;
  --ia-border:#e7ebf2;
  --ia-bg:#f5f7fb;
  --ia-card:#ffffff;
  --ia-radius:16px;
  --ia-shadow:0 10px 30px rgba(23,32,51,.07);
}

body:has(.main-content), body:has(.main-wrapper){
  background:var(--ia-bg) !important;
}

.main-content, .main-wrapper{background:var(--ia-bg);}

/* Sidebar */
.sidebar{
  box-shadow:8px 0 30px rgba(15,34,70,.08) !important;
  border-right:1px solid rgba(255,255,255,.08) !important;
}
.sidebar-brand{padding:18px 18px !important;}
.sidebar-brand-logo,.sidebar-brand-icon{border-radius:12px !important;}
.sidebar-brand-text{font-weight:800 !important;letter-spacing:-.2px;}
.sidebar-section-title{
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  font-size:10px !important;
  font-weight:800 !important;
  opacity:.65;
}
.sidebar-menu a,.sidebar-menu-parent{
  border-radius:11px !important;
  margin:2px 10px !important;
  transition:all .18s ease !important;
}
.sidebar-menu a:hover,.sidebar-menu-parent:hover{transform:translateX(2px);}
.sidebar-menu a.active{box-shadow:0 5px 15px rgba(15,91,215,.16) !important;}
.sidebar-user{
  border-top:1px solid rgba(255,255,255,.10) !important;
  padding:14px !important;
}
.sidebar-user-photo img,.sidebar-user-fallback{border-radius:12px !important;}

/* Topbar */
.topbar,.dashboard-desktop-header{
  background:rgba(255,255,255,.94) !important;
  border-bottom:1px solid var(--ia-border) !important;
  box-shadow:0 4px 18px rgba(23,32,51,.035) !important;
  backdrop-filter:blur(12px);
}
.page-heading h1,.dashboard-desktop-header h5{color:var(--ia-ink) !important;letter-spacing:-.35px;}

/* Cards */
.welcome-card,.filter-card,.stat-card,.dashboard-chart-card,.table-card,.content-card,.main-card,.card{
  border:1px solid var(--ia-border) !important;
  border-radius:var(--ia-radius) !important;
  box-shadow:var(--ia-shadow) !important;
  background:var(--ia-card) !important;
}
.welcome-card{position:relative;overflow:hidden;}
.welcome-card:after{
  content:"";position:absolute;right:-70px;top:-90px;width:210px;height:210px;border-radius:50%;
  background:rgba(15,91,215,.06);pointer-events:none;
}
.stat-card{transition:transform .18s ease,box-shadow .18s ease;}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(23,32,51,.10) !important;}
.stat-label,.filter-subtitle{color:var(--ia-muted) !important;}
.stat-value{font-weight:800 !important;letter-spacing:-.5px;}

/* Tables */
.table-card,.content-card{overflow:hidden;}
.table thead th{
  background:#f8faff !important;
  color:#475467 !important;
  font-size:12px !important;
  font-weight:800 !important;
  text-transform:uppercase;
  letter-spacing:.04em;
  border-bottom:1px solid var(--ia-border) !important;
}
.table tbody td{border-color:#edf0f5 !important;vertical-align:middle;}
.table-hover tbody tr{transition:background .15s ease;}
.table-hover tbody tr:hover{background:#f8fbff !important;}

/* Forms */
.form-control,.form-select,.input-group-text{
  border-color:#dfe5ee !important;
  border-radius:10px !important;
  min-height:44px;
}
.form-control:focus,.form-select:focus{
  border-color:var(--ia-primary) !important;
  box-shadow:0 0 0 .2rem rgba(15,91,215,.11) !important;
}
.form-label{font-weight:700 !important;color:#344054 !important;}

/* Buttons */
.btn{border-radius:10px !important;font-weight:700 !important;transition:all .18s ease !important;}
.btn-primary{background:var(--ia-primary) !important;border-color:var(--ia-primary) !important;}
.btn-primary:hover{background:var(--ia-primary-dark) !important;border-color:var(--ia-primary-dark) !important;transform:translateY(-1px);}
.btn-outline-primary{border-color:var(--ia-primary) !important;color:var(--ia-primary) !important;}
.btn-outline-primary:hover{background:var(--ia-primary) !important;color:#fff !important;}

/* Breadcrumb / headings */
.breadcrumb-custom{font-size:13px !important;color:var(--ia-muted) !important;}
.content-card-header{border-bottom:1px solid var(--ia-border) !important;}

/* Badges */
.badge{border-radius:999px !important;padding:.45em .7em !important;font-weight:700 !important;}

/* Login / public auth */
.login-wrapper{max-width:450px !important;}
.login-card{
  border:1px solid rgba(255,255,255,.45) !important;
  box-shadow:0 28px 80px rgba(10,25,55,.25) !important;
  backdrop-filter:blur(8px);
}
.logo-box{box-shadow:0 14px 32px rgba(13,110,253,.24) !important;}
.app-title{letter-spacing:-.5px !important;}
.btn-login{box-shadow:0 8px 18px rgba(13,110,253,.20) !important;}
.login-links a{font-weight:700 !important;}

/* Responsive polish */
@media(max-width:768px){
  .topbar,.dashboard-desktop-header{padding:12px 14px !important;}
  .welcome-card,.filter-card,.stat-card,.dashboard-chart-card,.table-card,.content-card{border-radius:13px !important;}
  .table-responsive{border-radius:12px;}
}


/* ============================================================
   GLOBAL SCROLL FIX - 2026-10-12
   Memastikan halaman panjang dapat digulir sampai bagian bawah.
   Tidak mengubah permission, query, atau fungsi PHP.
   ============================================================ */
html {
    min-height: 100% !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scroll-behavior: auto;
}
body {
    min-height: 100vh !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}
body.sidebar-open {
    overflow-y: auto !important;
}
.main-content,
.main-wrapper {
    height: auto !important;
    min-height: 100vh !important;
    max-height: none !important;
    overflow-y: visible !important;
    overflow-x: clip;
}
/* Scroll menu sidebar tetap terpisah dari halaman utama. */
.sidebar {
    height: 100vh !important;
    max-height: 100vh !important;
}
.sidebar-nav {
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}
/* Konten panjang dan form tidak terpotong oleh wrapper umum. */
.page-content,
.content-wrapper,
.container-fluid {
    min-height: 0;
}
