/* ==========================================================================
   style.css — Stylesheet bersama untuk seluruh halaman Aplikasi Asesmen
   ========================================================================== */

/* ---------- Base ---------- */
body {
    margin: 0;
    background-color: #F4F6F8;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* ==========================================================================
   Layout Sidebar (dipakai di: index.php, asesmen_guru.php, asesmen_kepsek.php,
   dan halaman lain yang memakai sidebar.php)
   ========================================================================== */
.app-layout { display: flex; min-height: 100vh; }

.app-sidebar {
    width: 260px;
    flex-shrink: 0;
    background-color: #2926db;
    color: #F4F6F8;
    display: flex;
    flex-direction: column;
    padding: 24px 16px;
}
.app-sidebar .sidebar-brand {
    font-weight: 700;
    font-size: 1.1rem;
    color: #FFFFFF;
    padding: 0 12px 20px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 20px;
}
.app-sidebar .sidebar-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    color: #CFD8D5;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.92rem;
    margin-bottom: 6px;
    transition: background-color .15s ease;
}
.app-sidebar .sidebar-link:hover { background-color: rgba(11, 70, 231, 0.89); color: #FFFFFF; }
.app-sidebar .sidebar-link.active { background-color: #268ceb; color: #FFFFFF; }
.app-sidebar .sidebar-footer { margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.1); }

.app-main { flex: 1; background-color: #F4F6F8; padding: 24px 32px; min-width: 0; }

@media (max-width: 768px) {
    .app-layout { flex-direction: column; }
    .app-sidebar { width: 100%; flex-direction: row; flex-wrap: wrap; align-items: center; padding: 12px 16px; }
    .app-sidebar .sidebar-brand { border-bottom: none; margin-bottom: 0; padding: 0 12px 0 0; }
    .app-sidebar .sidebar-nav { display: flex; gap: 6px; flex: 1; }
    .app-sidebar .sidebar-footer { margin-top: 0; padding-top: 0; border-top: none; display: flex; gap: 8px; }
}

/* ==========================================================================
   Kartu umum (dipakai di berbagai halaman: daftar_tugas, detail, monitoring)
   ========================================================================== */
.card-custom { border-radius: 16px; border: 1px solid #EAE6DF; }
.card-empty  { background-color: #FAF8F5; border: 1px solid #EAE6DF; border-radius: 20px; }
.card-stat   { border-radius: 16px; border: none; }
.card-table  { background: #FFFFFF; border-radius: 20px; border: 1px solid #EAE6DF; }

/* ==========================================================================
   index.php — Form Data Asesmen
   ========================================================================== */
.card-asesmen { background-color: #FAF8F5; border: 1px solid #EAE6DF; border-radius: 20px; }
.form-asesmen .form-label {
    font-weight: 700;
    font-size: 0.75rem;
    color: #4A4A4A;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.form-asesmen .form-control,
.form-asesmen .form-select {
    background-color: #F5F1E9;
    border: 1px solid #E2DCD0;
    border-radius: 12px;
    padding: 12px 16px;
}
.btn-mulai {
    background-color: #3D7A68;
    color: #FFFFFF;
    border-radius: 12px;
    padding: 12px 24px;
    font-weight: 600;
    border: none;
}
.btn-mulai:hover { background-color: #2D5D4F; color: #FFFFFF; }

/* ==========================================================================
   daftar_tugas.php
   ========================================================================== */
.btn-subtes { border-radius: 12px; }

/* ==========================================================================
   monitoring.php
   ========================================================================== */
.badge-nilai {
    min-width: 48px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-weight: 700;
    color: #fff;
    padding: 0 6px;
    font-size: 0.8rem;
}
.badge-egma    { background-color: #0d6efd; }
.badge-egra    { background-color: #0dcaf0; }
.badge-menulis { background-color: #ffc107; color: #000; }
.text-bs       { font-size: 0.75rem; font-weight: 600; }

/* ==========================================================================
   detail.php
   ========================================================================== */
.progress-bar-custom { border-radius: 10px; height: 12px; }

/* Kategori Kemampuan Siswa */
.kategori-card { border: 1px solid; }
.kategori-scale-wrap { position: relative; height: 34px; }
.kategori-scale-bar {
    display: flex;
    border-radius: 50rem;
    overflow: hidden;
    height: 14px;
    margin-top: 10px;
}
.kategori-scale-bar .seg-fondasi    { background-color: #dc3545; }
.kategori-scale-bar .seg-mulai      { background-color: #fd7e14; }
.kategori-scale-bar .seg-berkembang { background-color: #ffc107; }
.kategori-scale-bar .seg-mandiri    { background-color: #198754; }
.kategori-marker { position: absolute; top: 0; transform: translateX(-50%); }
.kategori-marker-triangle {
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 9px solid #212529;
}
.kategori-scale-labels { font-size: 0.7rem; }

/* ==========================================================================
   pengelompokan_subtes.php
   ========================================================================== */
.kategori-col-card { border-top: 4px solid; }   /* warna border-top-color diisi inline sesuai kategori */
.kategori-list-scroll { max-height: 480px; overflow-y: auto; }
.text-xxsmall { font-size: 0.72rem; }

/* ==========================================================================
   asesmen_guru.php, asesmen_kepsek.php — Checklist Indikator
   ========================================================================== */
.checklist-item { transition: background-color .1s ease; }
.checklist-item:last-child { border-bottom: none !important; }
.checklist-checkbox { margin-top: 0.35rem; cursor: pointer; }
.checklist-item .form-check-label { cursor: pointer; }

/* ==========================================================================
   soal.php — Mode Bacaan Nyaring (egra_4a): teks mengalir, klik per kata
   ========================================================================== */
.bacaan-nyaring-wrap { font-size: 1.15rem; line-height: 2.6; }
.kata-nyaring {
    display: inline-block;
    padding: 2px 8px;
    margin: 2px 3px;
    border-radius: 6px;
    border: 1px solid #E2DCD0;
    cursor: pointer;
    user-select: none;
    transition: background-color .12s ease, color .12s ease;
}
.kata-nyaring:hover { border-color: #3D7A68; }
.kata-nyaring.kata-benar { background-color: #0d6efd; color: #fff; border-color: #0d6efd; }
.kata-nyaring.kata-salah { background-color: #dc3545; color: #fff; border-color: #dc3545; }

/* ==========================================================================
   monitoring_bulanan.php
   ========================================================================== */
.chart-bulanan-wrap { position: relative; height: 320px; }
 
/* ==========================================================================
   absensi_les.php, monitoring_absensi.php
   ========================================================================== */
.foto-absensi-thumb {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #E2DCD0;
}
.foto-preview-lama {
    max-width: 160px;
    max-height: 160px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid #E2DCD0;
}

/* ==========================================================================
   soal.php
   ========================================================================== */
.card-header-info { background-color: #FAF8F5; border: 1px solid #EAE6DF; border-radius: 16px; }
.card-soal   { background-color: #FFFFFF; border: 1px solid #EAE6DF; border-radius: 12px; }
.card-bacaan { background-color: #FFFDF7; border: 1px solid #F0E6C8; border-radius: 12px; }
.card-bacaan p { font-size: 1.05rem; line-height: 1.8; }
.kunci-jawaban { font-size: 0.75rem; color: #9AA0A6; }

/* Custom Styling Radio B/S/T */
.btn-bs input[type="radio"] { display: none; }
.btn-bs label { cursor: pointer; font-weight: 600; font-size: 0.85rem; }
.btn-bs input[type="radio"]:checked + label.btn-outline-success { background-color: #198754; color: #fff; }
.btn-bs input[type="radio"]:checked + label.btn-outline-danger  { background-color: #dc3545; color: #fff; }
.btn-bs input[type="radio"]:checked + label.btn-outline-secondary { background-color: #6c757d; color: #fff; }
.kriteria-row:nth-child(odd) { background-color: #FAFAFA; }

/* ==========================================================================
   login.php
   ========================================================================== */
body.login-body {
    background-color: #2926db;
    color: #ffffff;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Top Navbar */
.navbar-custom {
    background-color: #ffffff;
    padding: 12px 40px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.navbar-brand img { height: 45px; margin-right: 12px; }
.brand-text { color: #2b4c59; font-weight: 700; line-height: 1.2; }
.nav-link-custom { color: #555555; font-weight: 500; margin: 0 10px; text-decoration: none; }
.nav-link-custom:hover { color: #2b4c59; }

/* Hero Content */
.hero-section {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 50px 0;
    background-image: radial-gradient(circle, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* Card Form Login Kanan */
.card-login {
    background-color: #ffffff;
    color: #333333;
    border-radius: 12px;
    padding: 35px 30px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
.card-login h5 { color: #444444; font-weight: 600; }
.form-control-custom {
    background-color: #f8f9fa;
    border: 1px solid #e0e0e0;
    padding: 10px 15px 10px 40px;
    border-radius: 6px;
}
.input-icon-group { position: relative; }
.input-icon-group i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #888888;
}
.btn-login {
    background-color: #2b4c59;
    color: #ffffff;
    font-weight: 600;
    padding: 10px;
    border-radius: 6px;
    border: none;
    width: 100%;
}
.btn-login:hover { background-color: #1f3741; color: #ffffff; }
.login-logo { height: 150px; width: auto; border-radius: 10px; object-fit: contain; }
.login-hero-title { font-size: 2.1rem; line-height: 1.3; }
.login-hero-text { font-size: 0.95rem; line-height: 1.7; color: #e0e0e0; }