 :root {
            --primary-green: #2e7d32;
            --dark-green: #1b5e20;
        }

        body {
            background-color: #f8f9fa;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            padding-bottom: 80px;
        }

        /* Top Bar */
        .top-navbar {
            background-color: white;
            padding: 10px 15px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
            position: sticky;
            top: 0;
            z-index: 1000;
        }

        .school-logo-area {
			height: 35px;      /* Atur tinggi maksimal logo */
    		width: auto;       /* Biarkan lebar menyesuaikan agar tidak gepeng */
    		object-fit: contain; /* Memastikan gambar tidak terpotong */
    		display: flex;
        }

        .app-name {
            font-weight: 800;
            color: var(--primary-green);
            font-size: 1.1rem;
            margin: 0;
            line-height: 1.1;
        }

.btn-logout {
    color: #ffffff;
    background: #d32f2f; /* Merah tegas */
    padding: 6px 14px;
    border-radius: 20px; /* Bentuk lebih membulat/capsule */
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 700;
    box-shadow: 0 3px 6px rgba(211, 47, 47, 0.3); /* Bayangan merah halus */
    border: 1px solid #b71c1c;
    transition: 0.3s;
}

.btn-logout:active {
    transform: scale(0.9);
    background: #b71c1c;
}

        .header-school {
            background: linear-gradient(135deg, var(--primary-green), var(--dark-green));
            color: white;
            padding: 20px;
            border-radius: 0 0 25px 25px;
            margin-bottom: 20px;
        }

        /* Menu Grid dengan Warna Berbeda */
        .menu-icon-box {
            padding: 8px 5px;
            border-radius: 10px;
            text-align: center;
            box-shadow: 0 4px 10px rgba(0,0,0,0.08);
            text-decoration: none;
            display: block;
            color: white; /* Teks putih agar kontras dengan background warna */
            transition: 0.2s;
            border: none;
        }

        .menu-icon-box i {
            font-size: 1.6rem;
            margin-bottom: 5px;
            display: block;
        }

        .menu-icon-box span {
            font-size: 0.75rem;
            font-weight: 600;
            display: block;
        }

        /* Variasi Warna Menu */
        .bg-absen  { background: linear-gradient(135deg, #d32f2f, #b71c1c); } /* Merah Muted */
        .bg-rekap  { background: linear-gradient(135deg, #1e88e5, #1565c0); } /* Biru */
        .bg-jurnal { background: linear-gradient(135deg, #43a047, #2e7d32); } /* Hijau */
        .bg-upload { background: linear-gradient(135deg, #8e24aa, #6a1b9a); } /* Ungu */
        .menu-icon-box:active {
            transform: scale(0.95);
            opacity: 0.9;
        }

        /* Status Presensi */
        .card-custom {
            border: none;
            border-radius: 12px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
            background: white;
        }

        .card-presensi { padding: 12px 10px; }

        /* Bottom Nav */
        .bottom-nav {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: white;
            display: flex;
            padding: 10px 0;
            box-shadow: 0 -3px 15px rgba(0,0,0,0.08);
            z-index: 1000;
        }

        .nav-item-custom {
            text-decoration: none;
            color: #888;
            text-align: center;
            flex: 1;
            font-size: 0.6rem;
            font-weight: 600;
        }

        .nav-item-custom i {
            font-size: 1.1rem;
            display: block;
            margin-bottom: 2px;
        }

        .nav-item-custom.active { color: var(--primary-green); }
		
/* Style khusus hanya untuk ikon Pemilu */
.nav-item-custom.menu-pemilu i {
    color: #ffc107 !important; /* Kuning emas yang tegas */
    text-shadow: 0 0 5px rgba(255, 193, 7, 0.3); /* Sedikit efek pendar agar menonjol */
}

/* Tulisan Pemilu tetap tebal agar mudah dibaca */
.nav-item-custom.menu-pemilu span {
    color: var(--primary-green); /* Mengikuti warna utama atau biarkan default */
    font-weight: 700;
}
		
/* Gaya Bottom Sheet untuk About */
.modal.bottom .modal-dialog {
    position: fixed;
    margin: auto;
    width: 100%;
    height: auto;
    bottom: 0; /* Muncul dari bawah */
    transition: transform 0.3s ease-out;
}

.modal.bottom .modal-content {
    border-radius: 25px 25px 0 0; /* Melengkung di atas saja */
    border: none;
    padding-bottom: 20px;
}

.modal-header {
    border-bottom: none;
    padding-top: 15px;
}

/* Garis kecil di atas modal agar terlihat seperti handle sheet */
.modal-handle {
    width: 40px;
    height: 5px;
    background: #ccc;
    border-radius: 10px;
    margin: 0 auto 10px;
}

.identity-line {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.identity-label {
    color: #888;
    font-size: 0.85rem;
}

.identity-value {
    font-weight: 600;
    color: var(--dark-green);
    font-size: 0.85rem;
}
