/*
 * app.css — style khusus Dashboard Informatika UNTAN
 * Melengkapi core.css Vuexy; hanya untuk komponen yang tidak ada di template.
 */

/* Brand logo di sidebar */
.app-brand-logo.demo .app-brand-img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

/* Kartu yang bisa diklik */
.card-hover {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card-hover:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.375rem 1rem rgba(var(--bs-primary-rgb), 0.15) !important;
}

/* Wadah chart dengan tinggi tetap (Chart.js maintainAspectRatio: false) */
.chart-box {
  position: relative;
  width: 100%;
}
.chart-box.h-200 { height: 200px; }
.chart-box.h-240 { height: 240px; }
.chart-box.h-280 { height: 280px; }
.chart-box.h-320 { height: 320px; }
.chart-box.h-360 { height: 360px; }

/* Ticker pengumuman (dashboard) */
.ticker-container {
  height: 48px;
  overflow: hidden;
  background-color: var(--bs-primary-bg-subtle);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: var(--bs-border-radius);
  display: flex;
  align-items: stretch;
}
.ticker-container .ticker-icon {
  display: flex;
  align-items: center;
  padding: 0 1rem;
  color: var(--bs-primary);
  border-right: 1px solid rgba(var(--bs-primary-rgb), 0.24);
}
.ticker-container .ticker-wrap {
  flex: 1;
  overflow: hidden;
}
.ticker {
  display: flex;
  flex-direction: column;
  transition: transform 0.6s ease-in-out;
}
.ticker p {
  margin: 0 1rem;
  height: 48px;
  display: flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--bs-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Peta sebaran mahasiswa */
#peta_mahasiswa {
  height: 520px;
  border-radius: var(--bs-border-radius);
  z-index: 0;
}
.leaflet-container {
  font-family: var(--bs-body-font-family);
}
.leaflet-tooltip {
  border-radius: var(--bs-border-radius);
  border-color: var(--bs-border-color);
  box-shadow: var(--bs-box-shadow-sm);
}
.map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
}
.map-legend .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 0.35rem;
}

/* Daftar progress (kabupaten asal) */
.progress-list .progress-item + .progress-item {
  margin-top: 0.875rem;
}
.progress-list .progress-item .d-flex {
  font-size: 0.8125rem;
  margin-bottom: 0.25rem;
}
.progress-list .progress {
  height: 8px;
}
.progress-scroll {
  max-height: 440px;
  overflow-y: auto;
  padding-right: 0.25rem;
}

/* Tabel kompak angka */
.table-compact th,
.table-compact td {
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
}

/* Keyword badge pada detail dosen */
.keyword-cloud .badge {
  font-weight: 500;
  text-transform: capitalize;
}

/* Foto dosen */
.dosen-photo {
  width: 180px;
  height: 180px;
  object-fit: cover;
  object-position: top center;
  border-radius: 50%;
  border: 4px solid var(--bs-paper-bg);
  box-shadow: var(--bs-box-shadow);
}

/* Layanan (dashboard) */
.layanan-card .layanan-img {
  height: 96px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Frame dokumen */
.doc-frame {
  width: 100%;
  height: 480px;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
}

/* Angka rasio besar */
.display-ratio {
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.1;
  color: var(--bs-primary);
}

/* Gambar screenshot dalam card */
.card-img-shot {
  width: 100%;
  height: auto;
  border-radius: var(--bs-border-radius);
  border: 1px solid var(--bs-border-color);
}

/* Fokus input pencarian */
.search-input-group .input-group-text {
  background: transparent;
}
