/* ===== PDPT UGK — Home Dashboard ===== */

/* --- Reset & Base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-light:#3b82f6;
  --primary-glow:rgba(37,99,235,.2);
  --accent-teal:#0d9488;
  --accent-emerald:#059669;
  --accent-amber:#d97706;
  --accent-rose:#e11d48;
  --bg-body:#f0f4f8;
  --bg-card:#ffffff;
  --bg-nav:#1e3a5f;
  --bg-nav-dark:#162d4a;
  --surface-border:#e2e8f0;
  --text-dark:#0f172a;
  --text-body:#334155;
  --text-muted:#64748b;
  --text-light:#94a3b8;
  --white:#ffffff;
  --radius-xl:20px;
  --radius-lg:16px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);
  --shadow-lg:0 10px 25px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.04);
  --shadow-xl:0 20px 40px -4px rgba(0,0,0,.1);
  --nav-height:60px;
}

html{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  scroll-behavior:smooth;
}

body{
  min-height:100vh;
  background:var(--bg-body);
  color:var(--text-body);
}

a{text-decoration:none;color:inherit}

/* ============================================
   NAVBAR
   ============================================ */
.navbar{
  position:fixed;
  top:0;left:0;right:0;
  height:var(--nav-height);
  background:linear-gradient(135deg,var(--bg-nav),var(--bg-nav-dark));
  display:flex;
  align-items:center;
  padding:0 24px;
  z-index:1000;
  box-shadow:0 2px 20px rgba(0,0,0,.15);
}

.nav-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--white);
  font-weight:700;
  font-size:1.1rem;
  letter-spacing:.01em;
  margin-right:8px;
  white-space:nowrap;
  cursor:pointer;
  transition:opacity .2s;
}

.nav-brand:hover{opacity:.85}

.nav-brand-logo{
  width:34px;height:34px;
  border-radius:8px;
  object-fit:contain;
  background:rgba(255,255,255,.12);
  padding:3px;
}

.nav-brand span{
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.65;
  margin-left:2px;
}

/* Nav items */
.nav-items{
  display:flex;
  align-items:center;
  gap:2px;
  flex:1;
  margin-left:12px;
}

.nav-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:5px;
  padding:8px 16px;
  color:rgba(255,255,255,.8);
  font-size:.82rem;
  font-weight:500;
  border-radius:var(--radius-sm);
  cursor:pointer;
  transition:background .2s, color .2s;
  white-space:nowrap;
  user-select:none;
}

.nav-item:hover,
.nav-item.active{
  background:rgba(255,255,255,.12);
  color:#fff;
}

.nav-item svg{
  opacity:.7;
  transition:opacity .2s;
}

.nav-item:hover svg{opacity:1}

/* Dropdown caret */
.nav-caret{
  width:12px;height:12px;
  transition:transform .25s;
}

.nav-item.open .nav-caret{
  transform:rotate(180deg);
}

/* Dropdown menu */
.nav-dropdown{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:220px;
  background:var(--bg-card);
  border:1px solid var(--surface-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-xl);
  padding:6px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:all .25s cubic-bezier(.22,1,.36,1);
  z-index:100;
}

.nav-item.open .nav-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.nav-dropdown-header{
  padding:8px 12px 4px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-light);
}

.nav-dropdown-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  color:var(--text-body);
  font-size:.82rem;
  font-weight:500;
  border-radius:var(--radius-sm);
  transition:background .15s, color .15s;
  cursor:pointer;
}

.nav-dropdown-item:hover{
  background:rgba(37,99,235,.06);
  color:var(--primary);
}

.nav-dropdown-item svg{
  width:16px;height:16px;
  color:var(--text-light);
  flex-shrink:0;
}

.nav-dropdown-item:hover svg{
  color:var(--primary);
}

.nav-dropdown-divider{
  height:1px;
  background:var(--surface-border);
  margin:4px 8px;
}

.nav-dropdown-item.dd-active{
  background:rgba(37,99,235,.06);
  color:var(--primary);
}
.nav-dropdown-item.dd-active svg{
  color:var(--primary);
}

/* Nav right */
.nav-right{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
}

.nav-login-btn{
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 18px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.15);
  border-radius:100px;
  color:var(--white);
  font-size:.8rem;
  font-weight:600;
  cursor:pointer;
  transition:background .2s, border-color .2s;
}

.nav-login-btn:hover{
  background:rgba(255,255,255,.2);
  border-color:rgba(255,255,255,.25);
}

/* ============================================
   BREADCRUMB
   ============================================ */
.breadcrumb-bar{
  margin-top:var(--nav-height);
  padding:14px 32px;
  background:var(--white);
  border-bottom:1px solid var(--surface-border);
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.breadcrumb-left{
  display:flex;
  align-items:baseline;
  gap:12px;
}

.breadcrumb-title{
  font-size:1.4rem;
  font-weight:700;
  color:var(--text-dark);
}

.breadcrumb-sub{
  font-size:.82rem;
  color:var(--text-muted);
  font-weight:500;
}

.breadcrumb-nav{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.78rem;
  color:var(--text-muted);
}

.breadcrumb-nav a{
  color:var(--primary);
  font-weight:500;
  transition:color .2s;
}

.breadcrumb-nav a:hover{color:var(--primary-dark)}

.breadcrumb-nav svg{
  width:14px;height:14px;
  opacity:.5;
}

/* ============================================
   MAIN CONTENT
   ============================================ */
.main-content{
  padding:28px 32px 48px;
  max-width:1320px;
  margin:0 auto;
}

/* ============================================
   STAT CARDS
   ============================================ */
.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-bottom:28px;
}

.stat-card{
  background:var(--bg-card);
  border:1px solid var(--surface-border);
  border-radius:var(--radius-lg);
  padding:24px;
  display:flex;
  align-items:flex-start;
  gap:16px;
  box-shadow:var(--shadow-sm);
  transition:transform .25s, box-shadow .25s;
  position:relative;
  overflow:hidden;
}

.stat-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  border-radius:3px 3px 0 0;
}

.stat-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
}

.stat-card:nth-child(1)::before{background:linear-gradient(90deg,#2563eb,#3b82f6)}
.stat-card:nth-child(2)::before{background:linear-gradient(90deg,#059669,#10b981)}
.stat-card:nth-child(3)::before{background:linear-gradient(90deg,#d97706,#f59e0b)}
.stat-card:nth-child(4)::before{background:linear-gradient(90deg,#e11d48,#f43f5e)}

.stat-icon{
  width:52px;height:52px;
  border-radius:var(--radius-md);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.stat-card:nth-child(1) .stat-icon{background:rgba(37,99,235,.1);color:#2563eb}
.stat-card:nth-child(2) .stat-icon{background:rgba(5,150,105,.1);color:#059669}
.stat-card:nth-child(3) .stat-icon{background:rgba(217,119,6,.1);color:#d97706}
.stat-card:nth-child(4) .stat-icon{background:rgba(225,29,72,.1);color:#e11d48}

.stat-info{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.stat-label{
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--text-muted);
}

.stat-value{
  font-size:1.75rem;
  font-weight:800;
  color:var(--text-dark);
  line-height:1.1;
  letter-spacing:-.02em;
}

.stat-trend{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:.72rem;
  font-weight:600;
  padding:2px 8px;
  border-radius:100px;
  width:fit-content;
}

.stat-trend.up{
  background:rgba(5,150,105,.08);
  color:#059669;
}

.stat-trend.down{
  background:rgba(225,29,72,.08);
  color:#e11d48;
}

/* ============================================
   CHART SECTION
   ============================================ */
.charts-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin-bottom:28px;
}

.chart-card{
  background:var(--bg-card);
  border:1px solid var(--surface-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:box-shadow .25s;
}

.chart-card:hover{
  box-shadow:var(--shadow-md);
}

.chart-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px 0;
}

.chart-title{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.95rem;
  font-weight:700;
  color:var(--text-dark);
}

.chart-title-icon{
  width:32px;height:32px;
  border-radius:var(--radius-sm);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.85rem;
}

.chart-badge{
  padding:4px 12px;
  border-radius:100px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.chart-body{
  padding:20px 24px 24px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.chart-body canvas{
  max-height:320px;
}

/* Chart color accents */
.chart-card.akreditasi .chart-title-icon{background:rgba(37,99,235,.1);color:#2563eb}
.chart-card.akreditasi .chart-badge{background:rgba(37,99,235,.08);color:#2563eb}

.chart-card.prodi .chart-title-icon{background:rgba(5,150,105,.1);color:#059669}
.chart-card.prodi .chart-badge{background:rgba(5,150,105,.08);color:#059669}

.chart-card.dosen .chart-title-icon{background:rgba(217,119,6,.1);color:#d97706}
.chart-card.dosen .chart-badge{background:rgba(217,119,6,.08);color:#d97706}

.chart-card.tendik .chart-title-icon{background:rgba(225,29,72,.1);color:#e11d48}
.chart-card.tendik .chart-badge{background:rgba(225,29,72,.08);color:#e11d48}

/* ============================================
   FOOTER
   ============================================ */
.page-footer{
  text-align:center;
  padding:24px 32px;
  font-size:.75rem;
  color:var(--text-light);
  border-top:1px solid var(--surface-border);
  background:var(--white);
}

/* ============================================
   ANIMATIONS
   ============================================ */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}

.stat-card{
  animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) both;
}
.stat-card:nth-child(1){animation-delay:.05s}
.stat-card:nth-child(2){animation-delay:.1s}
.stat-card:nth-child(3){animation-delay:.15s}
.stat-card:nth-child(4){animation-delay:.2s}

.chart-card{
  animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) both;
}
.chart-card:nth-child(1){animation-delay:.25s}
.chart-card:nth-child(2){animation-delay:.3s}
.chart-card:nth-child(3){animation-delay:.35s}
.chart-card:nth-child(4){animation-delay:.4s}

/* ============================================
   MOBILE NAV TOGGLE
   ============================================ */
.nav-toggle{
  display:none;
  background:none;
  border:none;
  color:var(--white);
  cursor:pointer;
  padding:8px;
  margin-left:auto;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media(max-width:1024px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .charts-grid{grid-template-columns:1fr}
}

@media(max-width:768px){
  .navbar{padding:0 16px}
  
  .nav-toggle{display:flex}
  
  .nav-items{
    position:fixed;
    top:var(--nav-height);
    left:0;right:0;
    background:var(--bg-nav-dark);
    flex-direction:column;
    align-items:stretch;
    padding:12px;
    gap:2px;
    border-bottom:1px solid rgba(255,255,255,.08);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-15px);
    transition:transform .3s cubic-bezier(.22,1,.36,1), opacity .3s, visibility .3s;
    z-index:999;
  }
  
  .nav-items.mobile-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
  
  .nav-item{
    padding:12px 16px;
    border-radius:var(--radius-sm);
  }
  
  .nav-dropdown{
    position:static;
    box-shadow:none;
    border:none;
    background:rgba(255,255,255,.05);
    margin-top:4px;
    border-radius:var(--radius-sm);
    max-height:0;
    overflow:hidden;
    padding:0;
    transition:max-height .3s, padding .3s, opacity .3s;
  }
  
  .nav-item.open .nav-dropdown{
    max-height:400px;
    padding:6px;
  }
  
  .nav-dropdown-item{
    color:rgba(255,255,255,.7);
  }
  
  .nav-dropdown-item:hover{
    background:rgba(255,255,255,.08);
    color:#fff;
  }
  
  .nav-dropdown-header{
    color:rgba(255,255,255,.4);
  }
  
  .nav-dropdown-divider{
    background:rgba(255,255,255,.08);
  }
  
  .nav-right{margin-left:0;justify-content:center;padding:8px 0}
  
  .breadcrumb-bar{
    padding:12px 16px;
    flex-direction:column;
    gap:6px;
    align-items:flex-start;
  }
  
  .main-content{padding:20px 16px 36px}
  .stats-grid{grid-template-columns:1fr 1fr;gap:12px}
  .charts-grid{gap:16px}
}

@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr}
  .stat-card{padding:18px}
  .stat-value{font-size:1.5rem}
  .breadcrumb-title{font-size:1.15rem}
  .chart-header{padding:16px 14px 0;flex-direction:column;align-items:flex-start;gap:8px}
  .chart-body{padding:14px 12px 18px;width:100%;overflow:hidden}
  .chart-body canvas{width:100% !important;height:auto}
}
