/* =========================================================================
   SIKA — Jadwal mengajar & absensi guru
   Dimuat paling akhir; juga memuat beberapa varian komponen yang dipakai
   bersama oleh halaman Data Master.
   ====================================================================== */

/* -------------------------------------------------------------------------
   Varian komponen pelengkap
   ---------------------------------------------------------------------- */

.s-pilih--kecil,
.s-input--kecil {
	height: 38px;
	padding-top: 0;
	padding-bottom: 0;
	font-size: var(--t-sm);
}

.s-input-bungkus .s-input-ikon--teks {
	font-size: var(--t-sm);
	font-weight: 700;
	letter-spacing: 0.01em;
}

/* Alias historis yang dipakai templat Data Master. */
.s-tbl--sekunder {
	background: var(--permukaan);
	color: var(--teks-2);
	border: 1px solid var(--garis-tebal);
	box-shadow: var(--bayang-xs);
}

.s-tbl--netral {
	background: var(--permukaan-3);
	color: var(--teks-2);
	border: 1px solid var(--garis);
}

.s-tbl--sekunder:hover:not(:disabled),
.s-tbl--netral:hover:not(:disabled) {
	background: var(--permukaan-2);
	border-color: var(--biru-300);
	color: var(--biru-700);
}

.s-baris-aktif { background: var(--biru-50); }
.s-baris-aktif:hover { background: var(--biru-100); }
.s-baris-pisah > td { border-top: 2px solid var(--garis); }

.s-pil--redup {
	background: var(--permukaan-3);
	color: var(--teks-4);
	border-color: var(--garis-lembut);
}

.s-memuat {
	display: inline-block;
	background: linear-gradient(90deg, var(--permukaan-3) 25%, var(--garis-lembut) 50%, var(--permukaan-3) 75%);
	background-size: 200% 100%;
	animation: s-kilau 1.4s ease-in-out infinite;
	border-radius: var(--r-xs);
}

.s-memuat--garis { width: 92px; height: 15px; vertical-align: middle; }

.s-kedip { animation: s-kedip 1.9s ease-in-out infinite; }

@keyframes s-kedip {
	0%, 100% { opacity: 1; }
	50%      { opacity: 0.5; }
}

/* -------------------------------------------------------------------------
   Agenda mengajar hari ini
   ---------------------------------------------------------------------- */

.s-agenda { display: flex; flex-direction: column; }

.s-agenda-item {
	display: flex;
	align-items: center;
	gap: var(--s-4);
	padding: var(--s-4) var(--s-6);
	border-bottom: 1px solid var(--garis-lembut);
	border-left: 3px solid transparent;
	transition: background-color var(--cepat) var(--ease-keluar);
}

.s-agenda-item:last-child { border-bottom: none; }
.s-agenda-item:hover { background: var(--permukaan-2); }

.s-agenda-item--berlangsung { border-left-color: var(--sukses-500); background: var(--sukses-50); }
.s-agenda-item--berlangsung:hover { background: var(--sukses-100); }
.s-agenda-item--segera { border-left-color: var(--peringatan-500); background: var(--peringatan-50); }
.s-agenda-item--segera:hover { background: var(--peringatan-100); }
.s-agenda-item--selesai { opacity: 0.75; }
.s-agenda-item--nanti { border-left-color: var(--garis-tebal); }

.s-agenda-waktu {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 78px;
	padding: var(--s-2) 0;
	border-radius: var(--r-md);
	background: var(--permukaan-3);
	flex-shrink: 0;
}

.s-agenda-item--berlangsung .s-agenda-waktu { background: var(--sukses-100); }
.s-agenda-item--segera .s-agenda-waktu { background: var(--peringatan-100); }

.s-agenda-jam {
	font-size: var(--t-base);
	font-weight: 800;
	color: var(--teks);
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

.s-agenda-sampai {
	font-size: var(--t-2xs);
	color: var(--teks-3);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.s-agenda-jp {
	margin-top: 3px;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--teks-4);
}

.s-agenda-isi { flex: 1; min-width: 0; }

.s-agenda-judul {
	font-size: var(--t-base);
	font-weight: 700;
	color: var(--teks);
}

.s-agenda-aksi {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	flex-shrink: 0;
}

@media (max-width: 860px) {
	.s-agenda-item { flex-wrap: wrap; padding: var(--s-4); }
	.s-agenda-aksi { width: 100%; justify-content: flex-end; }
}

/* -------------------------------------------------------------------------
   Grid jadwal mingguan
   ---------------------------------------------------------------------- */

.s-jadwal-bungkus {
	overflow-x: auto;
	border: 1px solid var(--garis);
	border-radius: var(--r-lg);
	background: var(--permukaan);
}

.s-jadwal-grid {
	width: 100%;
	min-width: 720px;
	border-collapse: collapse;
}

.s-jadwal-grid th {
	padding: var(--s-3);
	font-size: var(--t-xs);
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--teks-3);
	background: var(--permukaan-2);
	border-bottom: 1px solid var(--garis);
	text-align: center;
}

.s-jadwal-grid th.s-hari-aktif { color: var(--biru-700); background: var(--biru-50); }

.s-hari-titik {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 5px;
	border-radius: 50%;
	background: var(--biru-500);
	vertical-align: middle;
}

.s-jadwal-jam-kol { width: 94px; }

.s-jadwal-jam {
	width: 94px;
	padding: var(--s-2) var(--s-3);
	text-align: center;
	border-right: 1px solid var(--garis-lembut);
	border-bottom: 1px solid var(--garis-lembut);
	background: var(--permukaan-2);
	white-space: nowrap;
}

.s-jadwal-jam-no {
	display: block;
	font-size: var(--t-sm);
	font-weight: 800;
	color: var(--teks-2);
}

.s-jadwal-jam-teks {
	display: block;
	font-size: 0.625rem;
	font-weight: 600;
	color: var(--teks-4);
	font-variant-numeric: tabular-nums;
}

.s-jadwal-sel {
	border-right: 1px solid var(--garis-lembut);
	border-bottom: 1px solid var(--garis-lembut);
	padding: 4px;
	vertical-align: top;
	min-width: 118px;
}

.s-jadwal-sel--kosong {
	background: repeating-linear-gradient(135deg, transparent, transparent 7px, var(--permukaan-2) 7px, var(--permukaan-2) 14px);
}

.s-jadwal-kartu {
	height: 100%;
	min-height: 48px;
	padding: var(--s-2) 10px;
	border-radius: var(--r-sm);
	background: var(--biru-50);
	border: none;
	box-shadow: none;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1px;
	transition: transform var(--cepat) var(--ease-keluar);
}

.s-jadwal-kartu:hover { transform: translateY(-1px); }

.s-jadwal-kartu--w0 { background: var(--biru-50); }
.s-jadwal-kartu--w1 { background: var(--ungu-50); }
.s-jadwal-kartu--w2 { background: var(--teal-50); }
.s-jadwal-kartu--w3 { background: var(--peringatan-50); }
.s-jadwal-kartu--w4 { background: var(--bahaya-50); }
.s-jadwal-kartu--w5 { background: var(--info-50); }

.s-jadwal-mapel {
	font-size: var(--t-xs);
	font-weight: 700;
	color: var(--teks);
	line-height: 1.3;
}

.s-jadwal-kelas {
	font-size: 0.625rem;
	font-weight: 700;
	color: var(--teks-2);
}

.s-jadwal-meta {
	font-size: 0.625rem;
	color: var(--teks-3);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.s-jadwal-istirahat td {
	padding: 5px var(--s-3);
	text-align: center;
	font-size: var(--t-2xs);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--teks-4);
	background: var(--permukaan-3);
	border-bottom: 1px solid var(--garis-lembut);
}

/* Status kehadiran guru: tambahan "Tugas Dinas" pada pemilih H/D/I/S/A. */
.s-status-tbl--tugas[aria-pressed='true'] { background: var(--info-500); }
.s-status-pilih--memuat { opacity: 0.55; pointer-events: none; }

/* -------------------------------------------------------------------------
   Ringkasan jadwal pada dasbor
   ---------------------------------------------------------------------- */

.s-dasbor-jadwal .s-agenda-item { padding: var(--s-3) var(--s-5); }
.s-dasbor-jadwal .s-agenda-waktu { min-width: 68px; }
