/* ===== Custom Absensi - SB Admin 2 ===== */
/* Sederhana, elegan, dan mobile friendly */

/* --- Umum --- */
body.bg-gradient-success {
  background: linear-gradient(135deg, #2ecc71 0%, #b2f7ef 100%) !important;
  min-height: 100vh;
}

.card {
  border-radius: 1.2rem;
  box-shadow: 0 4px 28px 0 rgba(52, 199, 89, 0.12), 0 1.5px 6px 0 rgba(0,0,0,0.04);
}

.card .p-5 {
  padding: 2.2rem !important;
}

/* --- Logo dan Judul --- */
.brand-logo {
  width: 75px;
  height: 75px;
  object-fit: contain;
  border-radius: 16px;
  margin-bottom: 0.4rem;
  box-shadow: 0 4px 12px rgba(44, 204, 112, 0.09);
}

.brand-title {
  font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing: 0.5px;
  color: #32a852;
}

/* --- Form Login --- */
.form-control-user {
  border-radius: 2rem !important;
  border: 1.5px solid #d4edea;
  background: #fafdff;
  font-size: 1.05em;
  padding: 0.95rem 1.25rem;
  transition: border-color 0.18s;
  box-shadow: none;
}
.form-control-user:focus {
  border-color: #54eaa8;
  background: #eefef9;
  outline: none;
}

.btn-success.btn-user {
  border-radius: 2rem;
  font-weight: 600;
  font-size: 1.12em;
  padding: 0.7rem 0;
  background: linear-gradient(90deg, #38d39f 70%, #6be585 100%);
  border: none;
  transition: box-shadow 0.15s, background 0.18s;
  box-shadow: 0 4px 18px rgba(56, 211, 159, 0.12);
}
.btn-success.btn-user:hover, .btn-success.btn-user:focus {
  background: linear-gradient(90deg, #28b97c 70%, #38d39f 100%);
  box-shadow: 0 6px 22px rgba(44, 204, 112, 0.17);
}

input::-webkit-input-placeholder { color: #a2b3b2; }
input:-ms-input-placeholder { color: #a2b3b2; }
input::placeholder { color: #a2b3b2; }

/* --- Alert --- */
.alert-danger {
  border-radius: 1.2rem;
  font-size: 1em;
  padding: 0.9em 1.1em;
  box-shadow: 0 3px 10px rgba(252, 86, 108, 0.04);
}

/* --- Footer / Keterangan --- */
.text-gray-600 {
  color: #4e5c5c !important;
  letter-spacing: 0.01em;
}
.text-gray-700 {
  color: #2b3a3a !important;
}

hr {
  border-top: 1.3px solid #d4edea;
  margin-top: 2.2rem;
  margin-bottom: 1.2rem;
}

/* --- Tombol Dark Mode --- */
.btn-darkmode {
  position: absolute;
  top: 16px;
  right: 22px;
  background: rgba(244,244,244,0.84);
  border: none;
  border-radius: 50%;
  width: 42px;
  height: 42px;
  box-shadow: 0 2px 8px rgba(52,199,89,0.10);
  cursor: pointer;
  color: #4e5c5c;
  font-size: 1.2em;
  transition: background 0.15s, color 0.13s;
  z-index: 11;
}
.btn-darkmode:hover, .btn-darkmode:focus {
  background: #d4edea;
  color: #32a852;
}

/* --- Responsive --- */
@media (max-width: 575.98px) {
  .card .p-5 {
    padding: 1.1rem !important;
  }
  .brand-logo {
    width: 54px;
    height: 54px;
  }
  .brand-title {
    font-size: 1.12rem;
  }
  .form-control-user {
    padding: 0.7rem 1rem;
    font-size: 1em;
  }
  .btn-success.btn-user {
    font-size: 1em;
    padding: 0.6rem 0;
  }
  .btn-darkmode {
    width: 38px;
    height: 38px;
    top: 9px;
    right: 12px;
    font-size: 1.05em;
  }
}

/* --- Optional: Smooth Font, jika mau --- */
body, input, button, .brand-title {
  font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
  letter-spacing: 0.01em;
}

/* --- End Custom Absensi --- */
body.dark-mode {
    background: linear-gradient(135deg, #222c2a 0%, #447e65 100%) !important;
    color: #e9f3ef;
}
body.dark-mode .card {
    background: #19211e;
    box-shadow: 0 4px 32px rgba(44, 204, 112, 0.10);
}
body.dark-mode .brand-title { color: #86ffb5; }
body.dark-mode .form-control-user {
    background: #222c2a;
    border-color: #294c3e;
    color: #d2fff3;
}
body.dark-mode .form-control-user:focus {
    background: #233530;
    border-color: #38d39f;
}
body.dark-mode .btn-success.btn-user {
    background: linear-gradient(90deg, #36c48e 70%, #256f49 100%);
    color: #e9f3ef;
}
body.dark-mode .alert-danger {
    background: #3d2626;
    color: #ffb7b7;
    border-color: #6e3131;
}
body.dark-mode .text-gray-600, 
body.dark-mode .text-gray-700 {
    color: #e9f3ef !important;
}
/* ===== Custom Absensi - SB Admin 2 ===== */
/* Sederhana, elegan, dan mobile friendly */

/* Warna gradien sidebar */
.bg-gradient-primary {
    background: linear-gradient(135deg, #3658e4 0%, #43cea2 100%) !important;
}

/* Sidebar */
.sidebar .nav-item .nav-link {
    border-radius: 0.7rem;
    margin-bottom: 3px;
    padding: 0.7rem 1.2rem;
    transition: background 0.16s, color 0.13s;
}
.sidebar .nav-item.active > .nav-link,
.sidebar .nav-link:hover,
.sidebar .nav-link:focus {
    background: #44cba6;
    color: #fff;
}

/* Sidebar Brand */
.sidebar-brand {
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
    font-weight: bold;
    font-size: 1.23rem;
    letter-spacing: 1px;
}

/* Topbar dan dark mode */
.topbar {
    border-radius: 0 0 1rem 1rem;
    box-shadow: 0 2px 12px 0 rgba(44, 204, 112, 0.06);
}
.btn-darkmode {
    margin-left: 1rem;
    background: rgba(244,244,244,0.9);
    border: none;
    border-radius: 50%;
    width: 42px;
    height: 42px;
    box-shadow: 0 2px 8px rgba(52,199,89,0.09);
    cursor: pointer;
    color: #3658e4;
    font-size: 1.17em;
    transition: background 0.16s, color 0.12s;
    z-index: 12;
}
.btn-darkmode:hover, .btn-darkmode:focus {
    background: #eafbf8;
    color: #32a852;
}

/* Avatar Profile */
.img-profile {
    border: 2px solid #43cea2;
    box-shadow: 0 2px 8px rgba(67, 206, 162, 0.13);
}

/* Scroll-to-top */
.scroll-to-top {
    background: #44cba6;
    color: #fff !important;
    border-radius: 2rem;
    width: 44px;
    height: 44px;
    text-align: center;
    line-height: 44px;
    font-size: 1.6rem;
    box-shadow: 0 2px 8px rgba(44, 204, 112, 0.11);
    transition: background 0.15s;
}
.scroll-to-top:hover { background: #3658e4; color: #fff; }

/* Responsive sidebar - collapsed */
@media (max-width: 991.98px) {
    .sidebar {
        width: 68px !important;
    }
    .sidebar .nav-item .nav-link span {
        display: none;
    }
    .sidebar .sidebar-brand-text {
        font-size: 0.88rem;
    }
}
@media (max-width: 767.98px) {
    .topbar {
        border-radius: 0 !important;
        box-shadow: 0 2px 8px rgba(67, 206, 162, 0.13);
    }
    .sidebar {
        border-radius: 0 0 1rem 1rem;
    }
    .container-fluid {
        padding: 1.2rem 0.2rem;
    }
}

/* Dark Mode */
body.dark-mode {
    background: linear-gradient(135deg, #151d25 0%, #447e65 100%) !important;
    color: #e9f3ef;
}
body.dark-mode .sidebar,
body.dark-mode .bg-gradient-primary {
    background: linear-gradient(135deg, #202a2e 0%, #28554b 100%) !important;
}
body.dark-mode .sidebar .nav-link,
body.dark-mode .sidebar .sidebar-brand {
    color: #e0ffe2 !important;
}
body.dark-mode .sidebar .nav-link:hover,
body.dark-mode .sidebar .nav-item.active > .nav-link {
    background: #24625b !important;
    color: #fff !important;
}
body.dark-mode .topbar, body.dark-mode .sticky-footer {
    background: #202a2e !important;
    color: #d6f4e2 !important;
}
body.dark-mode .btn-darkmode {
    background: #151d25 !important;
    color: #d6f4e2 !important;
}
body.dark-mode .btn-darkmode:hover {
    background: #24625b !important;
    color: #e0ffe2 !important;
}
body.dark-mode .img-profile {
    border-color: #44cba6;
}
body.dark-mode .scroll-to-top {
    background: #24625b !important;
    color: #e0ffe2 !important;
}
body.dark-mode .copyright {
    color: #b8ffe8 !important;
}

body, .sidebar-brand, .nav-link, .collapse-item, .topbar, .btn, .copyright {
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
}

/* End custom-absensi.css */
.dashboard-icon {
    right: 20px !important;
    top: 20px !important;
}
@media (max-width: 575.98px) {
    .dashboard-icon {
        right: 8px !important;
        top: 8px !important;
        font-size: 1.2em !important;
    }
}
.dashboard-icon {
    right: 20px !important;
    top: 20px !important;
}
@media (max-width: 575.98px) {
    .dashboard-icon {
        right: 8px !important;
        top: 8px !important;
        font-size: 1.2em !important;
    }
}
/* Tambahkan di custom-absensi.css PALING BAWAH */

body.dark-mode,
body.dark-mode .container-fluid,
body.dark-mode #content-wrapper {
    background: #171d1d !important;
    color: #e9f3ef;
}

body.dark-mode .card {
    background: #232b2b;
    color: #e9f3ef;
    border-color: #233b2c;
    box-shadow: 0 3px 20px 0 rgba(34,58,44,0.19);
}

body.dark-mode .alert-success {
    background: #213a2f;
    color: #b7ffc8;
    border-color: #2a6e52;
}

body.dark-mode .table, 
body.dark-mode .table th,
body.dark-mode .table td {
    background: #202727;
    color: #e9f3ef;
    border-color: #293c37;
}

body.dark-mode .progress {
    background-color: #222c2c;
}

body.dark-mode .list-group-item {
    background: #232b2b;
    color: #e9f3ef;
    border-color: #293c37;
}
/* Sambutan */
.alert-sambutan {
    font-size: 1.15em;
}

/* Kalender kehadiran siswa */
.table-kalender {
    width: auto;
    min-width: 500px;
}
.badge-kalender {
    font-size: 1em;
}
.user-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.user-table th,
.user-table td {
    vertical-align: middle !important;
}
.user-form-card {
    max-width: 440px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .user-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.user-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #2e8464;
}

.user-form-card .form-group label {
    font-weight: 500;
}
.user-form-card {
    max-width: 440px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .user-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.user-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #2e8464;
}

.user-form-card .form-group label {
    font-weight: 500;
}
.kelas-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.kelas-table th,
.kelas-table td {
    vertical-align: middle !important;
}
.kelas-form-card {
    max-width: 400px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .kelas-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.kelas-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #1d736a;
}

.kelas-form-card .form-group label {
    font-weight: 500;
}
.kelas-form-card {
    max-width: 400px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .kelas-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.kelas-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #1d736a;
}

.kelas-form-card .form-group label {
    font-weight: 500;
}
.siswa-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.siswa-table th,
.siswa-table td {
    vertical-align: middle !important;
}
.input-upload-excel {
    display: inline-block;
    max-width: 150px;
}
.siswa-form-card {
    max-width: 400px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .siswa-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.siswa-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #1d736a;
}

.siswa-form-card .form-group label {
    font-weight: 500;
}
.siswa-form-card {
    max-width: 400px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .siswa-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.siswa-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #1d736a;
}

.siswa-form-card .form-group label {
    font-weight: 500;
}
.libur-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.libur-table th,
.libur-table td {
    vertical-align: middle !important;
}
.libur-form-card {
    max-width: 380px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .libur-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.libur-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #3d865c;
}

.libur-form-card .form-group label {
    font-weight: 500;
}
.libur-form-card {
    max-width: 380px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .libur-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.libur-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #3d865c;
}

.libur-form-card .form-group label {
    font-weight: 500;
}
.backup-card-section {
    max-width: 500px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .backup-card-section {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.backup-card-section h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #1d736a;
}
.backup-card-section {
    max-width: 500px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .backup-card-section {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.backup-card-section h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #1d736a;
}
.guru-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.guru-table th,
.guru-table td {
    vertical-align: middle !important;
}
.guru-form-card {
    max-width: 420px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .guru-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.guru-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #247a63;
}

.guru-form-card .form-group label {
    font-weight: 500;
}
.guru-form-card {
    max-width: 420px;
    margin: 32px auto 0 auto;
    border-radius: 16px;
    padding: 32px 24px 20px 24px;
    background: #fff;
}

body.dark-mode .guru-form-card {
    background: #232b2b;
    color: #e9f3ef;
    box-shadow: 0 6px 24px 0 rgba(34,58,44,0.18);
}

.guru-form-card h4 {
    margin-bottom: 20px;
    font-weight: 700;
    color: #247a63;
}

.guru-form-card .form-group label {
    font-weight: 500;
}
.jadwal-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.jadwal-table th,
.jadwal-table td {
    vertical-align: middle !important;
}
.absensi-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.absensi-table th,
.absensi-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
body.dark-mode .absensi-table {
    background: #232b2b;
    color: #e9f3ef;
}
.absensi-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.absensi-table th,
.absensi-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
body.dark-mode .absensi-table {
    background: #232b2b;
    color: #e9f3ef;
}
body.dark-mode .alert-warning {
    background: #373a29;
    color: #ffe47e;
    border-color: #857100;
}
.absensi-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.absensi-table th,
.absensi-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
body.dark-mode .absensi-table {
    background: #232b2b;
    color: #e9f3ef;
}
.kalender-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.kalender-table th,
.kalender-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
.rekap-kalender-summary th, 
.rekap-kalender-summary td {
    vertical-align: middle;
    font-size: 1em;
}
body.dark-mode .kalender-table {
    background: #232b2b;
    color: #e9f3ef;
}
.laporan-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.laporan-table th,
.laporan-table td {
    vertical-align: middle !important;
    font-size: 1em;
}

.badge {
    border-radius: 7px;
    padding: 0.45em 0.8em;
    font-size: 1em;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-top: 2px;
    display: inline-block;
}
.badge-success { background: #1cc88a; color: #fff; }
.badge-warning { background: #f6c23e; color: #655200; }
.badge-info { background: #36b9cc; color: #fff; }
.badge-danger { background: #e74a3b; color: #fff; }
.badge-secondary { background: #9faab5; color: #fff; }

body.dark-mode .badge-success { background: #1cc88a; color: #193828;}
body.dark-mode .badge-warning { background: #ffdf80; color: #655200;}
body.dark-mode .badge-info { background: #36b9cc; color: #193828;}
body.dark-mode .badge-danger { background: #e74a3b; color: #fff;}
body.dark-mode .badge-secondary { background: #6a8077; color: #fff;}
.rekap-bulanan-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.rekap-bulanan-table th,
.rekap-bulanan-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
.badge {
    border-radius: 7px;
    padding: 0.45em 0.8em;
    font-size: 1em;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-top: 2px;
    display: inline-block;
}
.badge-success { background: #1cc88a; color: #fff; }
.badge-warning { background: #f6c23e; color: #655200; }
.badge-info { background: #36b9cc; color: #fff; }
.badge-danger { background: #e74a3b; color: #fff; }
.badge-secondary { background: #9faab5; color: #fff; }
body.dark-mode .badge-success { background: #1cc88a; color: #193828;}
body.dark-mode .badge-warning { background: #ffdf80; color: #655200;}
body.dark-mode .badge-info { background: #36b9cc; color: #193828;}
body.dark-mode .badge-danger { background: #e74a3b; color: #fff;}
body.dark-mode .badge-secondary { background: #6a8077; color: #fff;}
.absensi-guru-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.absensi-guru-table th,
.absensi-guru-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
body.dark-mode .absensi-guru-table {
    background: #232b2b;
    color: #e9f3ef;
}
.siswa-kelas-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.siswa-kelas-table th,
.siswa-kelas-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
body.dark-mode .siswa-kelas-table {
    background: #232b2b;
    color: #e9f3ef;
}
.absensi-kelas-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.absensi-kelas-table th,
.absensi-kelas-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
.badge {
    border-radius: 7px;
    padding: 0.45em 0.8em;
    font-size: 1em;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-top: 2px;
    display: inline-block;
}
.badge-success { background: #1cc88a; color: #fff; }
.badge-warning { background: #f6c23e; color: #655200; }
.badge-info { background: #36b9cc; color: #fff; }
.badge-danger { background: #e74a3b; color: #fff; }
.badge-secondary { background: #9faab5; color: #fff; }
body.dark-mode .badge-success { background: #1cc88a; color: #193828;}
body.dark-mode .badge-warning { background: #ffdf80; color: #655200;}
body.dark-mode .badge-info { background: #36b9cc; color: #193828;}
body.dark-mode .badge-danger { background: #e74a3b; color: #fff;}
body.dark-mode .badge-secondary { background: #6a8077; color: #fff;}
.rekap-wali-bulanan-table-container {
    border-radius: 12px;
    overflow: hidden;
}
.rekap-wali-bulanan-table th,
.rekap-wali-bulanan-table td {
    vertical-align: middle !important;
    font-size: 1em;
}
body.dark-mode .rekap-wali-bulanan-table {
    background: #232b2b;
    color: #e9f3ef;
}
