/* PDSP Situs — perekat tampilan. Warna diambil dari variabel global Elementor (--pdsp-*), mode gelap cukup menimpanya. */

/* ---------- mode gelap: timpa variabel global kit Elementor ---------- */
html[data-tema="gelap"] {
	--pdsp-kertas: #121419;
	--pdsp-permukaan: #1B1E25;
	--pdsp-hangat: #22180F;
	--pdsp-tinta: #EDE8E2;
	--pdsp-redup: #A9B1BE;
	--pdsp-garis: #2F343E;
	--pdsp-oranye-tua: #FFAE5C;
	--pdsp-navy: #0D2846;
	color-scheme: dark;
}
html[data-tema="terang"] { color-scheme: light; }

body {
	background-color: var(--pdsp-kertas, #FFFBF6);
	color: var(--pdsp-tinta, #1E2430);
	font-family: var(--pdsp-font-teks, "Plus Jakarta Sans"), system-ui, -apple-system, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
	transition: background-color .2s ease, color .2s ease;
}
a { color: inherit; }
:focus-visible { outline: 3px solid var(--pdsp-oranye, #F7861A); outline-offset: 2px; }
::selection { background: var(--pdsp-oranye, #F7861A); color: #1A0E04; }
html { scroll-padding-top: 5.5rem; }

/* ---------- dua bahasa di header/footer: elemen berkelas pdsp-id / pdsp-en ---------- */
html[lang^="en"] .pdsp-id,
html:not([lang^="en"]) .pdsp-en { display: none !important; }

/* ---------- header ---------- */
.pdsp-header { backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); }
[data-elementor-type="header"] { position: sticky; top: 0; z-index: 50; }
.admin-bar [data-elementor-type="header"] { top: 32px; }
@media (max-width: 782px) { .admin-bar [data-elementor-type="header"] { top: 46px; } }
html[data-tema="gelap"] .pdsp-logo-terang,
html:not([data-tema="gelap"]) .pdsp-logo-gelap { display: none !important; }

html body .pdsp-bendera { border-radius: 4px; box-shadow: 0 0 0 1px rgba(10, 61, 114, .3); opacity: .8; filter: saturate(.55); transition: opacity .15s ease, filter .15s ease, transform .15s ease; }
html body .pdsp-bendera:hover { opacity: 1; filter: none; transform: translateY(-1px); }
.pdsp-bendera img { display: block; border-radius: 4px; }
html:not([lang^="en"]) body .pdsp-ke-id,
html[lang^="en"] body .pdsp-ke-en { opacity: 1; filter: none; box-shadow: 0 0 0 2px var(--pdsp-oranye, #F7861A); }

.pdsp-tema-toggle { position: relative; font-size: 0 !important; width: 44px; height: 44px; min-width: 44px; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; cursor: pointer; }
.pdsp-tema-toggle::before {
	content: ""; width: 20px; height: 20px; background-color: currentColor;
	-webkit-mask: var(--pdsp-ikon-bulan) center / contain no-repeat; mask: var(--pdsp-ikon-bulan) center / contain no-repeat;
}
html[data-tema="gelap"] .pdsp-tema-toggle::before { -webkit-mask-image: var(--pdsp-ikon-matahari); mask-image: var(--pdsp-ikon-matahari); }

/* menu navigasi Elementor (widget nav-menu) mengikuti palet */
.pdsp-header .elementor-nav-menu--main .elementor-item { color: var(--pdsp-tinta) !important; font-weight: 600; font-size: .92rem; }
.pdsp-header .elementor-nav-menu--main .elementor-item:hover,
.pdsp-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--pdsp-oranye-tua) !important; }
.pdsp-header .elementor-nav-menu--main .elementor-item::after { background-color: var(--pdsp-oranye) !important; }
.pdsp-header .elementor-nav-menu--dropdown { background: var(--pdsp-permukaan) !important; }
.pdsp-header .elementor-nav-menu--dropdown a { color: var(--pdsp-tinta) !important; }
.pdsp-header .elementor-sub-item { background: var(--pdsp-permukaan) !important; }

/* ---------- menu bawah HP ---------- */
:root {
	--pdsp-ikon-beranda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='M10 21v-6h4v6'/%3E%3C/svg%3E");
	--pdsp-ikon-kurikulum: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5h7a3 3 0 0 1 3 3v13a2 2 0 0 0-2-2H2z'/%3E%3Cpath d='M22 5h-7a3 3 0 0 0-3 3v13a2 2 0 0 1 2-2h8z'/%3E%3C/svg%3E");
	--pdsp-ikon-progres: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='m7 15 4-4 3 3 5-6'/%3E%3C/svg%3E");
	--pdsp-ikon-kuliah: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E");
	--pdsp-ikon-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E");
	--pdsp-ikon-tutup: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
	--pdsp-ikon-bulan: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z'/%3E%3C/svg%3E");
	--pdsp-ikon-matahari: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E");
}
.pdsp-bawah { display: none !important; }
@media (max-width: 767px) {
	.pdsp-bawah {
		display: flex !important; position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 60;
		padding-bottom: env(safe-area-inset-bottom, 0px) !important;
		background: color-mix(in srgb, var(--pdsp-permukaan) 92%, transparent);
		backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
		border-top: 1px solid var(--pdsp-garis);
	}
	body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
	.pdsp-hanya-desktop { display: none !important; }
}
@media (min-width: 768px) { .pdsp-hanya-hp { display: none !important; } }
.pdsp-bawah .pdsp-butir {
	flex: 1 1 0; min-height: 60px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
	font-size: .68rem !important; font-weight: 600; color: var(--pdsp-redup) !important; background: transparent !important; border: 0 !important;
	padding: 6px 2px !important; text-decoration: none; line-height: 1.1; text-align: center;
}
.pdsp-bawah .pdsp-butir::before { content: ""; width: 22px; height: 22px; background-color: currentColor; -webkit-mask: var(--ikon) center / contain no-repeat; mask: var(--ikon) center / contain no-repeat; }
.pdsp-bawah .pdsp-butir.aktif, .pdsp-bawah .pdsp-butir[aria-current="page"] { color: var(--pdsp-oranye-tua) !important; }
.pdsp-ikon-beranda { --ikon: var(--pdsp-ikon-beranda); }
.pdsp-ikon-kurikulum { --ikon: var(--pdsp-ikon-kurikulum); }
.pdsp-ikon-progres { --ikon: var(--pdsp-ikon-progres); }
.pdsp-ikon-kuliah { --ikon: var(--pdsp-ikon-kuliah); }
.pdsp-ikon-menu { --ikon: var(--pdsp-ikon-menu); }
body.pdsp-menu-terbuka .pdsp-ikon-menu { --ikon: var(--pdsp-ikon-tutup); color: var(--pdsp-oranye-tua) !important; }

/* lembar menu (dibuka tombol Menu di HP) */
.pdsp-lembar-menu { display: none !important; }
body.pdsp-menu-terbuka { overflow: hidden; }
@media (max-width: 767px) {
	body.pdsp-menu-terbuka .pdsp-lembar-menu {
		display: flex !important; position: fixed !important; inset: 0 0 calc(64px + env(safe-area-inset-bottom, 0px)) 0; z-index: 59;
		overflow-y: auto; background: var(--pdsp-kertas); animation: pdsp-naik .2s ease-out;
	}
}
@keyframes pdsp-naik { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
.pdsp-lembar-menu .elementor-nav-menu--main .elementor-item,
.pdsp-lembar-menu .elementor-nav-menu a { color: var(--pdsp-tinta) !important; font-size: 1.05rem !important; font-weight: 600; padding: 14px 4px !important; border-bottom: 1px solid var(--pdsp-garis); }
.pdsp-lembar-menu .elementor-nav-menu .sub-menu a { font-weight: 500; padding-left: 20px !important; font-size: .95rem !important; }
.pdsp-lembar-menu .elementor-nav-menu .sub-menu { display: block !important; position: static !important; box-shadow: none !important; background: transparent !important; width: auto !important; }

/* ---------- tab & akordeon atomic ---------- */
.pdsp-tab[aria-selected="true"], .pdsp-tab.e--selected { background-color: var(--pdsp-oranye) !important; color: #1A0E04 !important; border-color: var(--pdsp-oranye) !important; }
.pdsp-akordeon summary { list-style: none; cursor: pointer; }
.pdsp-akordeon summary::-webkit-details-marker { display: none; }
.pdsp-akordeon details[open] > summary, .pdsp-akordeon .e-accordion-item[open] > summary { color: var(--pdsp-oranye-tua); }
.pdsp-teks ul, .pdsp-teks ol { margin: .4rem 0 0; padding-left: 1.25rem; display: grid; gap: .45rem; }
.pdsp-teks li::marker { color: var(--pdsp-oranye); }
.pdsp-teks a { color: var(--pdsp-oranye-tua); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.pdsp-teks a:hover { text-decoration-thickness: 2px; }

/* ---------- dasbor & panel (keluaran shortcode) ---------- */
.pd-dasbor { display: grid; gap: 1rem; width: 100%; color: var(--pdsp-tinta); font-size: 1rem; line-height: 1.6; }
.pd-dasbor h2, .pd-dasbor h3 { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; color: var(--pdsp-tinta); margin: 0 0 .5rem; line-height: 1.2; }
.pd-kartu { background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); border-radius: 16px; padding: 1.25rem; }
.pd-kosong { text-align: center; padding: 2.5rem 1.25rem; display: grid; gap: 1rem; justify-items: center; }
.pd-kosong p { margin: 0; max-width: 36rem; color: var(--pdsp-redup); }
.pd-identitas { display: flex; gap: 1.25rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.pd-eyebrow { font-family: var(--pdsp-font-kapital, "Cinzel"), serif; text-transform: uppercase; letter-spacing: .25em; font-size: .75rem; color: var(--pdsp-oranye-tua); margin: 0 0 .25rem; }
.pd-nama { font-size: 1.6rem; margin: 0 0 .25rem !important; }
.pd-redup { color: var(--pdsp-redup); margin: 0; }
.pd-kecil { font-size: .85rem; margin: .2rem 0 0; }
.pd-cincin { --p: 0; width: 104px; height: 104px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto;
	background: radial-gradient(closest-side, var(--pdsp-permukaan) 78%, transparent 79%), conic-gradient(var(--pdsp-oranye) calc(var(--p) * 1%), var(--pdsp-garis) 0); }
.pd-cincin span { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.pd-angka { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: 1rem; }
.pd-angka .pd-kartu { display: grid; gap: .2rem; }
.pd-angka b { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.7rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pd-angka small { font-size: .9rem; color: var(--pdsp-redup); font-weight: 600; }
.pd-angka span { color: var(--pdsp-redup); font-size: .88rem; }
.pd-bar { --p: 0; position: relative; height: 12px; border-radius: 99px; background: var(--pdsp-garis); overflow: visible; margin-bottom: .75rem;
	background-image: linear-gradient(90deg, var(--pdsp-oranye) calc(var(--p) * 1%), transparent 0); }
.pd-target { position: absolute; left: 50%; top: -4px; bottom: -4px; width: 3px; border-radius: 2px; background: var(--pdsp-kuning); }
.pd-tanda { border-color: color-mix(in srgb, var(--pdsp-koral) 55%, var(--pdsp-garis)); }
.pd-tanda ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.pd-peta { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; counter-reset: x; }
.pd-peta li { display: grid; justify-items: center; gap: .35rem; text-align: center; font-size: .78rem; font-weight: 600; color: var(--pdsp-redup); }
.pd-peta li span { width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; border: 2px solid var(--pdsp-garis); background: var(--pdsp-permukaan); font-weight: 800; }
.pd-peta li.selesai span { background: var(--pdsp-hijau); border-color: var(--pdsp-hijau); color: #fff; }
.pd-peta li.aktif { color: var(--pdsp-tinta); }
.pd-peta li.aktif span { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04; box-shadow: 0 0 0 4px color-mix(in srgb, var(--pdsp-oranye) 25%, transparent); }
@media (max-width: 600px) { .pd-peta { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 1rem; } }
.pd-fase { background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); border-radius: 16px; overflow: hidden; }
.pd-fase > summary { display: flex; gap: .75rem; align-items: center; padding: 1rem 1.25rem; cursor: pointer; font-weight: 700; list-style: none; }
.pd-fase > summary::-webkit-details-marker { display: none; }
.pd-fase > summary em { margin-left: auto; font-style: normal; color: var(--pdsp-redup); font-variant-numeric: tabular-nums; }
.pd-no { width: 1.8rem; height: 1.8rem; border-radius: 50%; display: grid; place-items: center; background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); font-size: .85rem; }
.pd-milestone { list-style: none; margin: 0; padding: 0 1.25rem 1rem; display: grid; gap: .75rem; }
.pd-milestone > li { border-left: 4px solid var(--pdsp-garis); padding: .6rem 0 .6rem .9rem; }
.pd-milestone > li.pd-m-selesai { border-left-color: var(--pdsp-hijau); }
.pd-milestone > li.pd-m-menunggu { border-left-color: var(--pdsp-kuning); }
.pd-milestone > li.pd-m-ditolak { border-left-color: var(--pdsp-koral); }
.pd-m-kepala { display: flex; gap: .75rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.pd-chip { display: inline-block; font-size: .72rem; font-weight: 700; padding: .2rem .6rem; border-radius: 99px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-kertas); white-space: nowrap; }
.pd-m-selesai .pd-chip { background: var(--pdsp-hijau); border-color: var(--pdsp-hijau); color: #fff; }
.pd-m-menunggu .pd-chip { background: var(--pdsp-kuning); border-color: var(--pdsp-kuning); color: #2A1E00; }
.pd-chip-waspada { white-space: normal; border-color: var(--pdsp-koral); color: var(--pdsp-koral); background: transparent; }
.pd-unggah, .pd-form-baris { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-end; margin-top: .5rem; }
.pd-form-baris label { display: grid; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--pdsp-redup); }
.pd-form-baris .pd-lebar { flex: 1 1 16rem; }
.pd-dasbor input[type="text"], .pd-dasbor input[type="date"], .pd-dasbor input[type="file"] {
	font: inherit; font-size: .9rem; color: var(--pdsp-tinta); background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); border-radius: 10px; padding: .55rem .7rem; min-height: 44px; max-width: 100%;
}
.pd-tombol { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .6rem 1.2rem; border-radius: 999px; border: 2px solid var(--pdsp-oranye);
	background: var(--pdsp-oranye); color: #1A0E04 !important; font-weight: 700; font-size: .92rem; text-decoration: none; cursor: pointer; font-family: inherit; }
.pd-tombol:hover { background: var(--pdsp-oranye-tua); border-color: var(--pdsp-oranye-tua); color: #fff !important; }
.pd-tombol-kecil { min-height: 40px; padding: .45rem .95rem; font-size: .85rem; }
.pd-tombol-garis { background: transparent; color: var(--pdsp-tinta) !important; }
.pd-pesan { padding: .85rem 1rem; border-radius: 12px; border: 1px solid var(--pdsp-hijau); background: color-mix(in srgb, var(--pdsp-hijau) 12%, var(--pdsp-permukaan)); margin-bottom: 1rem; font-weight: 600; }
.pd-log { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .5rem; }
.pd-log li { padding-bottom: .5rem; border-bottom: 1px dashed var(--pdsp-garis); }
.pd-sebaran { display: grid; gap: .5rem; }
.pd-sebaran div { display: grid; grid-template-columns: 10rem 1fr 2rem; gap: .75rem; align-items: center; font-size: .88rem; }
.pd-sebaran i { --p: 0; height: 10px; border-radius: 99px; background: linear-gradient(90deg, var(--pdsp-oranye) calc(var(--p) * 1%), var(--pdsp-garis) 0); }
.pd-sebaran b { font-variant-numeric: tabular-nums; text-align: right; }
@media (max-width: 600px) { .pd-sebaran div { grid-template-columns: 7rem 1fr 1.5rem; } }
.pd-tabel-gulir { overflow-x: auto; }
.pd-tabel { width: 100%; border-collapse: collapse; font-size: .88rem; }
.pd-tabel th { text-align: left; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--pdsp-redup); border-bottom: 2px solid var(--pdsp-garis); padding: .6rem .5rem; }
.pd-tabel td { border-bottom: 1px solid var(--pdsp-garis); padding: .6rem .5rem; vertical-align: top; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* ---------- widget nav-menu (V3) di dalam flexbox atomik: beri ruang, jangan mengerut ke 0 ---------- */
.pdsp-header .elementor-widget-nav-menu { flex: 1 1 auto; min-width: 0; }
.pdsp-header .elementor-nav-menu--main { justify-content: center; }
.pdsp-header .elementor-nav-menu--main > ul { flex-wrap: nowrap; justify-content: center; }
.pdsp-header .elementor-nav-menu--main .elementor-item { padding: 10px 12px !important; white-space: nowrap; }
.pdsp-lembar-menu .elementor-widget-nav-menu { width: 100%; }

/* ---------- footer navy ---------- */
.pdsp-kaki a { color: #FFFFFF !important; text-decoration: none; }
.pdsp-kaki a:hover { color: var(--pdsp-oranye) !important; text-decoration: underline; }
.pdsp-kaki ul { list-style: none; padding-left: 0 !important; }
.pdsp-header .elementor-widget-nav-menu ~ * { flex: 0 0 auto; }
.pdsp-header .pdsp-bendera, .pdsp-header .pdsp-tema-toggle { flex: 0 0 auto; }
@media (max-width: 1240px) { .pdsp-header .elementor-nav-menu--main .elementor-item { padding: 10px 7px !important; font-size: .85rem !important; } }
/* flexbox atomik membawa width:100% bawaan; anak wadah header harus selebar isinya */
.pdsp-header > * > * { width: auto !important; }
.pdsp-header > * > * > * { width: auto; }
.pdsp-header .elementor-nav-menu--main .elementor-item { padding: 10px 9px !important; font-size: .9rem !important; }
.pdsp-header .elementor-nav-menu--main > ul { justify-content: flex-end; }
.pdsp-header img.pdsp-logo-terang, .pdsp-header img.pdsp-logo-gelap { height: 36px !important; width: auto !important; max-width: none; }
@media (max-width: 1240px) { .pdsp-header .elementor-nav-menu--main .elementor-item { padding: 10px 6px !important; font-size: .84rem !important; } }
@media (max-width: 767px) {
	.pdsp-header img.pdsp-logo-terang, .pdsp-header img.pdsp-logo-gelap { height: 28px !important; }
	.pdsp-header .pdsp-bendera img, .pdsp-header img.pdsp-bendera { width: 27px !important; height: 18px !important; }
	.pdsp-header .pdsp-tema-toggle { width: 40px; height: 40px; min-width: 40px; }
}
.pdsp-header .elementor-menu-toggle { background-color: transparent !important; color: var(--pdsp-tinta) !important; border: 1px solid var(--pdsp-garis); border-radius: 10px; }
.pdsp-header .elementor-menu-toggle svg { fill: currentColor !important; }
.pdsp-header .elementor-nav-menu--dropdown { border: 1px solid var(--pdsp-garis); border-radius: 12px; overflow: hidden; }
.pdsp-header .elementor-nav-menu--dropdown a.elementor-item-active, .pdsp-header .elementor-nav-menu--dropdown a:hover { background: var(--pdsp-hangat) !important; color: var(--pdsp-oranye-tua) !important; }
.pd-dasbor, .pd-dasbor * { min-width: 0; }
.pd-milestone > li, .pd-kartu, .pd-fase { overflow-wrap: anywhere; }
.pd-dasbor .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 600px) {
	.pd-dasbor input[type="file"], .pd-form-baris label, .pd-form-baris input { width: 100%; }
	.pd-milestone { padding: 0 .85rem 1rem; }
	.pd-fase > summary { padding: .9rem; }
	.pd-identitas { flex-direction: column; align-items: flex-start; }
}
.pd-dasbor input, .pd-dasbor button { box-sizing: border-box; }

/* ---------- dasbor ringkas v1.14 (.pdv): kepala navy, peta tahap, akordeon fase + kolom panduan ---------- */
body.pdsp-hal-dasbor .pdsp-kepala { display: none !important; }
body.pdsp-hal-dasbor .pdsp-bagian { padding-top: 1.25rem !important; padding-bottom: 3rem !important; }
.pdv { --pdv-r: 14px; --pdv-emas: #E9C77B; display: grid; gap: .9rem; width: 100%; max-width: 76rem; margin-inline: auto; color: var(--pdsp-tinta); font-size: .95rem; line-height: 1.55; }
.pdv, .pdv * { min-width: 0; box-sizing: border-box; }
.pdv h1, .pdv h2 { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; line-height: 1.15; margin: 0; color: var(--pdsp-tinta); }
.pdv .screen-reader-text, .pdv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pdv summary { list-style: none; cursor: pointer; }
.pdv summary::-webkit-details-marker { display: none; }
.pdv summary:focus-visible, .pdv a:focus-visible, .pdv button:focus-visible { outline: 2px solid var(--pdsp-oranye); outline-offset: 2px; border-radius: 8px; }
.pdv-fase > summary::after, .pdv-dok-kel > summary::after { content: ""; flex: 0 0 auto; width: .45rem; height: .45rem; margin: 0 .2rem 0 .1rem; border-right: 2px solid var(--pdsp-redup); border-bottom: 2px solid var(--pdsp-redup); transform: rotate(45deg) translateY(-2px); transition: transform .2s ease-out; }
.pdv-fase[open] > summary::after, .pdv-dok-kel[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }

/* kepala */
.pdv-kepala { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; gap: 1.25rem 2rem; align-items: center; justify-content: space-between; padding: 1.35rem 1.6rem 1.45rem; border-radius: 18px; color: #F4EFE8;
	background: radial-gradient(36rem 14rem at 100% 0, rgba(232, 140, 48, .24), transparent 62%), linear-gradient(135deg, #0B2340 0%, #12365F 100%); }
.pdv-kepala::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, #C9A24B, #E88C30 55%, transparent); }
.pdv-remah { font-size: .76rem; color: rgba(244, 239, 232, .7); margin-bottom: .4rem; }
.pdv-remah a { color: inherit; text-decoration: none; }
.pdv-remah a:hover { color: #fff; text-decoration: underline; }
.pdv-gelar { font-family: var(--pdsp-font-kapital, "Cinzel"), serif; text-transform: uppercase; letter-spacing: .22em; font-size: .7rem; font-weight: 700; color: var(--pdv-emas); margin: 0 0 .2rem; }
.pdv .pdv-nama { font-size: clamp(1.35rem, 1.05rem + 1.1vw, 1.9rem); font-weight: 800; letter-spacing: -.01em; color: #fff; }
.pdv-meta { margin: .3rem 0 0; color: rgba(244, 239, 232, .8); font-size: .86rem; }
.pdv-ringkas { display: flex; align-items: center; gap: 1rem; }
.pdv-cincin { --p: 0; position: relative; width: 74px; height: 74px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; }
.pdv-cincin::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(var(--pdv-emas) calc(var(--p) * 1%), rgba(255, 255, 255, .16) 0);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 5px)); mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 5px)); }
.pdv-cincin span { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.25rem; color: #fff; font-variant-numeric: tabular-nums; }
.pdv-cincin small { font-size: .68rem; opacity: .75; }
.pdv-angka { display: flex; margin: 0; }
.pdv-angka > div { padding: 0 1rem; border-left: 1px solid rgba(255, 255, 255, .16); }
.pdv-angka dt { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: rgba(244, 239, 232, .7); white-space: nowrap; }
.pdv-angka dd { margin: 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.35rem; line-height: 1.25; color: #fff; font-variant-numeric: tabular-nums; }
.pdv-angka small { font-size: .76rem; font-weight: 600; opacity: .6; }

/* peta tahap */
.pdv-peta { list-style: none; margin: 0; padding: .85rem .75rem .75rem; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); border-radius: var(--pdv-r); }
.pdv-peta li { position: relative; display: grid; justify-items: center; align-content: start; gap: .3rem; text-align: center; font-size: .72rem; font-weight: 600; line-height: 1.25; color: var(--pdsp-redup); }
.pdv-peta li::before { content: ""; position: absolute; top: .78rem; left: calc(-50% + .95rem); right: calc(50% + .95rem); height: 2px; border-radius: 2px; background: var(--pdsp-garis); }
.pdv-peta li:first-child::before { display: none; }
.pdv-peta li.selesai::before, .pdv-peta li.aktif::before { background: var(--pdsp-hijau); }
.pdv-peta span { position: relative; z-index: 1; width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--pdsp-garis); background: var(--pdsp-permukaan); font-size: .74rem; font-weight: 800; }
.pdv-peta em { font-style: normal; }
.pdv-peta li.selesai span { background: var(--pdsp-hijau); border-color: var(--pdsp-hijau); color: #fff; }
.pdv-peta li.aktif { color: var(--pdsp-tinta); font-weight: 700; }
.pdv-peta li.aktif span { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04; box-shadow: 0 0 0 4px color-mix(in srgb, var(--pdsp-oranye) 22%, transparent); }

.pdv-tanda { padding: .6rem .9rem; border-radius: 12px; font-size: .86rem; border: 1px solid color-mix(in srgb, var(--pdsp-koral) 50%, var(--pdsp-garis)); background: color-mix(in srgb, var(--pdsp-koral) 9%, var(--pdsp-permukaan)); }

/* tata letak dua kolom */
.pdv-grid { display: grid; gap: .9rem; grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem); align-items: start; }
.pdv-utama, .pdv-sisi { display: grid; gap: .55rem; }
.pdv-sisi { gap: .9rem; }

/* akordeon fase */
.pdv-fase { background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); border-radius: 12px; overflow: hidden; }
.pdv-fase.kini { border-color: color-mix(in srgb, var(--pdsp-oranye) 55%, var(--pdsp-garis)); box-shadow: inset 3px 0 0 var(--pdsp-oranye); }
.pdv-fase > summary { display: flex; align-items: center; gap: .6rem; min-height: 48px; padding: .6rem .9rem; font-size: .92rem; }
.pdv-fase > summary b { font-weight: 700; }
.pdv-no { flex: 0 0 auto; width: 1.55rem; height: 1.55rem; display: grid; place-items: center; border-radius: 50%; background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); font-size: .74rem; font-weight: 800; }
.pdv-fase.kini .pdv-no { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04; }
.pdv-kini { flex: 0 0 auto; font-size: .66rem; font-weight: 700; padding: .1rem .5rem; border-radius: 99px; background: color-mix(in srgb, var(--pdsp-oranye) 16%, transparent); color: var(--pdsp-oranye-tua); white-space: nowrap; }
.pdv-fase > summary em { margin-left: auto; font-style: normal; font-size: .78rem; color: var(--pdsp-redup); font-variant-numeric: tabular-nums; }
.pdv-butir { list-style: none; margin: 0; padding: 0 .9rem .3rem; }
.pdv-butir > li { padding: .6rem 0; border-top: 1px solid var(--pdsp-garis); overflow-wrap: anywhere; }
.pdv-butir-kepala { display: flex; align-items: baseline; gap: .55rem; }
.pdv-butir-kepala i { flex: 0 0 auto; width: .6rem; height: .6rem; border-radius: 50%; border: 2px solid var(--pdsp-redup); }
.pdv-butir-kepala span { flex: 1; font-weight: 600; font-size: .88rem; line-height: 1.4; }
.pdv-status { flex: 0 0 auto; font-size: .68rem; font-weight: 700; padding: .08rem .5rem; border-radius: 99px; border: 1px solid var(--pdsp-garis); color: var(--pdsp-redup); white-space: nowrap; }
.pdv-s-selesai i { background: var(--pdsp-hijau); border-color: var(--pdsp-hijau); }
.pdv-s-menunggu i { background: var(--pdsp-kuning); border-color: var(--pdsp-kuning); }
.pdv-s-ditolak i { background: var(--pdsp-koral); border-color: var(--pdsp-koral); }
.pdv-s-selesai .pdv-status { color: var(--pdsp-tinta); border-color: transparent; background: color-mix(in srgb, var(--pdsp-hijau) 18%, transparent); }
.pdv-s-menunggu .pdv-status { color: var(--pdsp-tinta); border-color: transparent; background: color-mix(in srgb, var(--pdsp-kuning) 26%, transparent); }
.pdv-s-ditolak .pdv-status { color: var(--pdsp-tinta); border-color: transparent; background: color-mix(in srgb, var(--pdsp-koral) 20%, transparent); }
.pdv-butir-meta { margin: .2rem 0 0 1.15rem; font-size: .78rem; line-height: 1.45; color: var(--pdsp-redup); }
.pdv-berkas a { color: var(--pdsp-oranye-tua); font-weight: 600; }
.pdv-dasar { margin: .15rem 0 0 1.15rem; font-size: .74rem; color: var(--pdsp-redup); }
.pdv-dasar > summary { display: inline-flex; align-items: center; gap: .3rem; min-height: 28px; font-weight: 600; color: var(--pdsp-redup); }
.pdv-dasar > summary::before { content: "+"; font-weight: 800; color: var(--pdsp-oranye-tua); }
.pdv-dasar[open] > summary::before { content: "2"; }
.pdv-dasar p { margin: .15rem 0 .2rem; line-height: 1.45; }
.pdv-unggah { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: .45rem 0 0 1.15rem; }
.pdv input[type="file"] { font: inherit; font-size: .78rem; color: var(--pdsp-redup); max-width: 100%; }
.pdv input[type="file"]::file-selector-button { font: inherit; font-weight: 600; color: var(--pdsp-tinta); background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); border-radius: 8px; padding: .4rem .7rem; margin-right: .5rem; cursor: pointer; }
.pdv button[type="submit"] { font: inherit; font-size: .8rem; font-weight: 700; min-height: 40px; padding: .4rem 1rem; border: 0; border-radius: 99px; background: var(--pdsp-navy, #0B2340); color: #fff; cursor: pointer; transition: background .15s ease-out; }
.pdv button[type="submit"]:hover { background: var(--pdsp-oranye-tua); }
html[data-tema="gelap"] .pdv button[type="submit"] { background: var(--pdsp-oranye); color: #1A0E04; }
.pdv-fase-dok { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; padding: .6rem .9rem .75rem; border-top: 1px dashed var(--pdsp-garis); font-size: .78rem; }
.pdv-fase-dok > span { color: var(--pdsp-redup); font-weight: 600; margin-right: .1rem; }
.pdv-fase-dok a { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .7rem; border-radius: 99px; background: var(--pdsp-hangat); border: 1px solid color-mix(in srgb, var(--pdsp-oranye) 25%, transparent); color: var(--pdsp-oranye-tua); font-weight: 600; text-decoration: none; line-height: 1.3; }
.pdv-fase-dok a::after { content: "↗"; font-size: .8em; }
.pdv-fase-dok a:hover { border-color: var(--pdsp-oranye); }

/* kartu kolom samping */
.pdv-kartu { background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); border-radius: var(--pdv-r); padding: 1rem 1.1rem; overflow-wrap: anywhere; }
.pdv-kartu h2 { font-size: 1.02rem; font-weight: 800; margin-bottom: .45rem; }
.pdv-kartu-kepala { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .3rem; }
.pdv-kartu-kepala h2 { margin: 0; }
.pdv-tombol-kecil { display: inline-flex; align-items: center; gap: .35rem; min-height: 34px; padding: .3rem .75rem; border-radius: 99px; border: 1px solid var(--pdsp-garis); color: var(--pdsp-tinta); font-size: .76rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.pdv-tombol-kecil:hover { border-color: var(--pdsp-oranye); color: var(--pdsp-oranye-tua); }
.pdv-tombol-kecil .pdsp-ikon { width: 14px; height: 14px; }
.pdv-catatan { margin: 0 0 .55rem; font-size: .78rem; line-height: 1.45; color: var(--pdsp-redup); }
.pdv-panduan { border-top: 3px solid var(--pdsp-oranye); }
.pdv-dok-kel { border-top: 1px solid var(--pdsp-garis); }
.pdv-dok-kel > summary { display: flex; align-items: center; gap: .5rem; min-height: 44px; padding: .45rem 0; font-size: .85rem; font-weight: 700; }
.pdv-dok-kel > summary span { flex: 1; }
.pdv-dok-kel > summary em { font-style: normal; font-size: .68rem; font-weight: 600; color: var(--pdsp-redup); white-space: nowrap; }
.pdv-dok { list-style: none; margin: 0 0 .65rem; padding: 0; display: grid; gap: .35rem; }
.pdv-dok li { display: grid; gap: .3rem; padding: .5rem .7rem; border-radius: 10px; border: 1px solid transparent; background: var(--pdsp-kertas); transition: border-color .15s ease-out, background-color .15s ease-out; }
.pdv-dok li:hover, .pdv-dok li:focus-within { border-color: color-mix(in srgb, var(--pdsp-oranye) 45%, var(--pdsp-garis)); background: var(--pdsp-hangat); }
.pdv-dok .pdv-dok-a { display: grid; gap: .1rem; color: var(--pdsp-tinta); text-decoration: none; }
.pdv-dok .pdv-dok-a small { font-size: .7rem; color: var(--pdsp-redup); }
.pdv-dok .pdv-dok-a:hover .pdv-dok-nama { color: var(--pdsp-oranye-tua); text-decoration: underline; }
.pdv-dok a.pdv-format { color: #fff !important; text-decoration: none; }
.pdv-dok a.pdv-format::after { content: " ↗"; font-weight: 600; }
.pdv-dok a.pdv-format:hover, .pdv-dok a.pdv-format:focus-visible { outline: 2px solid var(--pdsp-oranye); outline-offset: 1px; }
.pdv-fase-dok a small { font-size: .62rem; font-weight: 800; letter-spacing: .04em; opacity: .75; }
.pdv-dok-nama { font-size: .82rem; font-weight: 600; line-height: 1.35; }
.pdv-dok-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.pdv-dok-meta small { margin-left: .15rem; font-size: .7rem; color: var(--pdsp-redup); }
.pdv-format { font-size: .6rem; font-weight: 800; letter-spacing: .05em; padding: .1rem .4rem; border-radius: 5px; color: #fff; background: #5B6675; }
.pdv-f-pdf, .pdv-f-contoh { background: #B42318; }
.pdv-f-docx, .pdv-f-dotx { background: #1F5C99; }
.pdv-f-pptx { background: #B5400B; }
.pdv-bar { --p: 0; position: relative; height: 8px; margin: .2rem 0 .55rem; border-radius: 99px; background: var(--pdsp-garis); overflow: hidden; }
.pdv-bar i { position: absolute; inset: 0 auto 0 0; width: calc(var(--p) * 1%); border-radius: inherit; background: linear-gradient(90deg, var(--pdsp-oranye), var(--pdsp-oranye-tua)); }
.pdv-bar::after { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: var(--pdsp-tinta); opacity: .55; }
.pdv-form { display: grid; gap: .55rem; }
.pdv-form-dua { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.pdv-form label { display: grid; gap: .2rem; font-size: .74rem; font-weight: 600; color: var(--pdsp-redup); }
.pdv-form input { width: 100%; min-height: 42px; font: inherit; font-size: .88rem; color: var(--pdsp-tinta); background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); border-radius: 9px; padding: .45rem .65rem; }
.pdv-form input:focus-visible { outline: 2px solid var(--pdsp-oranye); outline-offset: 1px; }
.pdv-form button { justify-self: start; }
.pdv-log { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .45rem; }
.pdv-log li { display: grid; grid-template-columns: auto 1fr; column-gap: .6rem; padding-top: .45rem; border-top: 1px dashed var(--pdsp-garis); font-size: .8rem; }
.pdv-log time { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pdv-log small { grid-column: 2; font-size: .72rem; color: var(--pdsp-redup); }
.pdv-sumber { margin: .2rem 0 0; font-size: .72rem; color: var(--pdsp-redup); }

@media (max-width: 1023px) {
	.pdv-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	body.pdsp-hal-dasbor .pdsp-bagian { padding-top: .75rem !important; }
	.pdv-kepala { padding: 1.1rem 1.1rem 1.25rem; border-radius: 16px; }
	.pdv-ringkas { width: 100%; justify-content: space-between; padding-top: .85rem; border-top: 1px solid rgba(255, 255, 255, .14); }
	.pdv-cincin { width: 62px; height: 62px; }
	.pdv-angka > div { padding: 0 .65rem; }
	.pdv-angka > div:first-child { border-left: 0; }
	.pdv-peta { padding: .75rem .4rem; }
	.pdv-peta em { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.pdv-fase > summary { padding: .55rem .75rem; font-size: .88rem; }
	.pdv-butir { padding: 0 .75rem .25rem; }
	.pdv-butir-meta, .pdv-unggah, .pdv-dasar { margin-left: 0; }
	.pdv-butir-kepala { flex-wrap: wrap; row-gap: .3rem; }
	.pdv-butir-kepala span { flex: 1 1 calc(100% - 1.2rem); }
	.pdv-status { margin-left: 1.15rem; }
	.pdv-angka > div { padding: 0 .55rem; }
	.pdv-angka dt { font-size: .6rem; letter-spacing: .06em; white-space: normal; }
	.pdv-unggah input[type="file"], .pdv-unggah button { width: 100%; }
}
@media (max-width: 420px) {
	.pdv-form-dua { grid-template-columns: 1fr; }
	.pdv-kini { display: none; }
}

/* ======================================================================= berita */

/* ---------- daftar & kartu ---------- */
.pdsp-saringan { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.75rem; }
.pdsp-saring { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .95rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font-size: .88rem; font-weight: 700; text-decoration: none; min-height: 40px; box-sizing: border-box; }
.pdsp-saring span { font-size: .75rem; font-weight: 800; padding: .05rem .5rem; border-radius: 999px; background: var(--pdsp-hangat); color: var(--pdsp-redup); }
.pdsp-saring:hover { border-color: var(--pdsp-oranye); }
.pdsp-saring.aktif { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-saring.aktif span { background: rgba(255, 255, 255, .55); color: #1A0E04; }

.pdsp-kisi-berita { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; width: 100%; }
@media (max-width: 1024px) { .pdsp-kisi-berita { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pdsp-kisi-berita { grid-template-columns: minmax(0, 1fr); } }
.pdsp-kartu-berita { display: flex; flex-direction: column; min-width: 0; border-radius: 18px; overflow: hidden; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); transition: transform .2s ease, box-shadow .2s ease; }
.pdsp-kartu-berita:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -18px rgba(10, 61, 114, .45); }
.pdsp-kartu-gambar { display: block; aspect-ratio: 16 / 10; background: var(--pdsp-hangat); overflow: hidden; }
.pdsp-kartu-gambar img, .pdsp-mini { width: 100%; height: 100%; object-fit: cover; display: block; }
.pdsp-mini-kosong { display: block; width: 100%; height: 100%; background: var(--pdsp-hangat); }
.pdsp-kartu-isi { display: flex; flex-direction: column; gap: .6rem; padding: 1.1rem 1.2rem 1.35rem; min-width: 0; }
.pdsp-kartu-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; font-size: .8rem; color: var(--pdsp-redup); font-weight: 600; }
.pdsp-kartu-judul { margin: 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.22rem; line-height: 1.25; font-weight: 700; overflow-wrap: anywhere; }
.pdsp-kartu-judul a { text-decoration: none; color: var(--pdsp-tinta); }
.pdsp-kartu-judul a:hover { color: var(--pdsp-oranye-tua); }
.pdsp-kartu-ringkas { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--pdsp-redup); }
.pdsp-chip-kategori { display: inline-flex; align-items: center; padding: .2rem .65rem; border-radius: 999px; background: color-mix(in srgb, var(--pdsp-oranye) 16%, transparent); color: var(--pdsp-oranye-tua); font-size: .75rem; font-weight: 800; text-decoration: none; letter-spacing: .01em; }
.pdsp-chip-kategori:hover { background: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-halaman { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-top: 2.25rem; }
.pdsp-halaman .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 .9rem; border-radius: 12px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); text-decoration: none; font-weight: 700; box-sizing: border-box; }
.pdsp-halaman .page-numbers.current { background: var(--pdsp-navy, #0A3D72); border-color: var(--pdsp-navy, #0A3D72); color: #fff; }
.pdsp-kosong { color: var(--pdsp-redup); }

/* ---------- kepala arsip ---------- */
.pdsp-kepala-arsip { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1rem; width: 100%; max-width: 52rem; }
.pdsp-kepala-arsip .pdsp-remah a { color: var(--pdsp-redup); text-decoration: none; }
.pdsp-kepala-arsip h1, .pdsp-kepala-arsip p { margin: 0; }
.pdsp-kepala-arsip .pdsp-judul-halaman { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 3.1rem; line-height: 1.08; letter-spacing: -.02em; color: var(--pdsp-tinta); }
.pdsp-kepala-arsip .pdsp-eyebrow { font-family: var(--pdsp-font-kapital, "Cinzel"), serif; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem; color: var(--pdsp-oranye-tua); }
.pdsp-kepala-arsip .pdsp-lead { font-size: 1.1rem; color: var(--pdsp-redup); }
@media (max-width: 767px) { .pdsp-kepala-arsip .pdsp-judul-halaman { font-size: 2.1rem; } }

/* ---------- pos tunggal: meta, isi ---------- */
.pdsp-meta-pos { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; font-size: .88rem; color: var(--pdsp-redup); font-weight: 600; }
.pdsp-isi-pos { min-width: 0; }
.pdsp-isi-pos p { margin: 0 0 1.15em; }
.pdsp-isi-pos h2, .pdsp-isi-pos h3 { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; line-height: 1.25; margin: 1.6em 0 .6em; color: var(--pdsp-tinta); }
.pdsp-isi-pos a { color: var(--pdsp-oranye-tua); text-underline-offset: 3px; }
.pdsp-isi-pos .pdsp-lead-berita { font-size: 1.14em; }
.pdsp-isi-pos .wp-block-quote { margin: 1.5em 0; padding: .9rem 1.25rem; border-left: 4px solid var(--pdsp-oranye); background: var(--pdsp-hangat); border-radius: 0 14px 14px 0; font-style: normal; }
.pdsp-isi-pos .wp-block-quote p { margin: 0 0 .4em; }
.pdsp-isi-pos .wp-block-quote cite { font-size: .85em; font-style: normal; color: var(--pdsp-redup); font-weight: 700; }
.pdsp-isi-pos .wp-block-image { margin: 0 0 1.5em; }
.pdsp-isi-pos .wp-block-image img { width: 100%; height: auto; border-radius: 16px; background: var(--pdsp-hangat); }
.pdsp-isi-pos figcaption, .pdsp-isi-pos .wp-element-caption { margin: .55rem 0 0; font-size: .85rem; line-height: 1.5; color: var(--pdsp-redup); text-align: left; }

/* ---------- slider galeri (blok Galeri + kelas pdsp-slider): bingkai tetap 16:10, keterangan di bawah ---------- */
.pdsp-isi-pos .wp-block-gallery.pdsp-slider { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0; border-radius: 16px; outline-offset: 4px; overscroll-behavior-x: contain; }
.pdsp-isi-pos .wp-block-gallery.pdsp-slider::-webkit-scrollbar { display: none; }
.pdsp-isi-pos .wp-block-gallery.pdsp-slider > figure.wp-block-image { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; scroll-snap-align: start; display: flex !important; flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; }
.pdsp-isi-pos .wp-block-gallery.pdsp-slider > figure.wp-block-image img { width: 100% !important; height: auto !important; aspect-ratio: 16 / 10; object-fit: contain !important; background: var(--pdsp-navy, #0A3D72); border-radius: 16px; flex: none !important; }
.pdsp-isi-pos .wp-block-gallery.pdsp-slider > figure.wp-block-image figcaption { position: static !important; max-height: none !important; overflow: visible !important; background: none !important; color: var(--pdsp-redup) !important; padding: .6rem .1rem 0 !important; margin: 0 !important; font-size: .85rem !important; text-align: left !important; text-shadow: none !important; width: auto !important; }
.pdsp-isi-pos .wp-block-gallery.pdsp-slider > figure.wp-block-image figcaption a { color: var(--pdsp-oranye-tua) !important; }
.pdsp-slider-kendali { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: .7rem 0 1.6rem; }
.pdsp-slider-kendali > button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font-size: 1.15rem; cursor: pointer; }
.pdsp-slider-kendali > button:disabled { opacity: .35; cursor: default; }
.pdsp-slider-kendali > button:not(:disabled):hover { border-color: var(--pdsp-oranye); }
.pdsp-slider-hitung { font-weight: 800; font-size: .9rem; min-width: 3.5rem; text-align: center; color: var(--pdsp-tinta); }
.pdsp-slider-titik { display: flex; gap: .35rem; margin-left: auto; }
.pdsp-slider-titik button { width: 10px; height: 10px; padding: 0; border-radius: 999px; border: 0; background: var(--pdsp-garis); cursor: pointer; transition: width .2s ease, background .2s ease; }
.pdsp-slider-titik button[aria-current="true"] { width: 26px; background: var(--pdsp-oranye); }

/* ---------- sumber berita (blok Grup berkelas pdsp-sumber) ---------- */
.pdsp-isi-pos .pdsp-sumber { margin: 2.25em 0 0; padding: 1.1rem 1.25rem; border-radius: 14px; border: 1px dashed var(--pdsp-garis); background: var(--pdsp-permukaan); font-size: .9rem; }
.pdsp-isi-pos .pdsp-sumber h2 { margin: 0 0 .5rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pdsp-redup); font-family: inherit; }
.pdsp-isi-pos .pdsp-sumber ul { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: .35rem; }
.pdsp-isi-pos .pdsp-sumber a { overflow-wrap: anywhere; }
.pdsp-isi-pos .pdsp-sumber p { margin: .6rem 0 0; color: var(--pdsp-redup); font-size: .82rem; }

/* ---------- bagikan, terkait ---------- */
.pdsp-bagikan { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; padding-top: 1.25rem; border-top: 1px solid var(--pdsp-garis); }
.pdsp-bagikan-label { font-weight: 800; font-size: .85rem; margin-right: .3rem; color: var(--pdsp-redup); }
.pdsp-bagi { display: inline-flex; align-items: center; min-height: 40px; padding: 0 .9rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font: inherit; font-size: .85rem; font-weight: 700; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.pdsp-bagi:hover { border-color: var(--pdsp-oranye); color: var(--pdsp-oranye-tua); }
.pdsp-terkait { width: 100%; }

/* ---------- sidebar ---------- */
.pdsp-sisi-blok { padding: 1.25rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); width: 100%; box-sizing: border-box; }
.pdsp-sisi-judul { margin: 0 0 .85rem; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.15rem; font-weight: 700; color: var(--pdsp-tinta); }
.pdsp-kategori-daftar, .pdsp-terbaru-daftar { list-style: none; margin: 0; padding: 0; }
.pdsp-kategori-daftar a { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .6rem .7rem; border-radius: 10px; text-decoration: none; color: var(--pdsp-tinta); font-size: .92rem; font-weight: 600; min-height: 44px; box-sizing: border-box; }
.pdsp-kategori-daftar a:hover, .pdsp-kategori-daftar a.aktif { background: var(--pdsp-hangat); }
.pdsp-kategori-daftar a.aktif { color: var(--pdsp-oranye-tua); }
.pdsp-kategori-daftar .pdsp-jumlah { flex: none; min-width: 1.9rem; text-align: center; font-size: .78rem; font-weight: 800; padding: .1rem .5rem; border-radius: 999px; background: var(--pdsp-navy, #0A3D72); color: #fff; box-sizing: border-box; }
.pdsp-terbaru-daftar li + li { border-top: 1px solid var(--pdsp-garis); }
.pdsp-terbaru-daftar a { display: flex; gap: .75rem; align-items: center; padding: .7rem 0; text-decoration: none; color: var(--pdsp-tinta); }
.pdsp-terbaru-daftar .pdsp-mini { flex: none; width: 64px; height: 64px; border-radius: 12px; }
.pdsp-terbaru-daftar a > span:last-child { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.pdsp-terbaru-daftar strong { font-size: .9rem; line-height: 1.35; overflow-wrap: anywhere; }
.pdsp-terbaru-daftar small { font-size: .78rem; color: var(--pdsp-redup); }
.pdsp-terbaru-daftar a:hover strong { color: var(--pdsp-oranye-tua); }

/* sidebar pos tunggal menempel saat digulir (desktop) */
@media (min-width: 1025px) { .pdsp-sisi { position: sticky; top: 6.5rem; align-self: flex-start; } }

/* isi berita memakai warna tinta PDSP (bukan warna teks bawaan kit Elementor) */
.pdsp-isi-pos, .pdsp-isi-pos p, .pdsp-isi-pos li, .pdsp-isi-pos .elementor-widget-container { color: var(--pdsp-tinta); }

/* ======================================================================= mega menu, laci, tautan kolega */

.pdsp-ikon { width: 20px; height: 20px; flex: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- header: kerangka ---------- */
.pdsp-header { position: relative; }
.pdsp-header .pdsp-mega { flex: 1 1 auto; min-width: 0; display: flex; justify-content: center; }
.pdsp-mega-akar { display: flex; align-items: center; gap: .15rem; list-style: none; margin: 0; padding: 0; }
.pdsp-mega-butir { position: static; }
.pdsp-mega-pemicu { display: inline-flex; align-items: center; gap: .3rem; min-height: 44px; padding: 0 .85rem; border: 0; border-radius: 999px; background: transparent; color: var(--pdsp-tinta); font: inherit; font-size: .93rem; font-weight: 700; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .15s ease, color .15s ease; }
.pdsp-mega-pemicu:hover, .pdsp-mega-butir.terbuka > .pdsp-mega-pemicu { background: var(--pdsp-hangat); color: var(--pdsp-oranye-tua); }
.pdsp-mega-pemicu.aktif { color: var(--pdsp-oranye-tua); box-shadow: inset 0 -2px 0 var(--pdsp-oranye); border-radius: 999px 999px 4px 4px; }
.pdsp-mega-panah { width: 16px; height: 16px; transition: transform .2s ease; }
.pdsp-mega-butir.terbuka .pdsp-mega-panah { transform: rotate(180deg); }

/* ---------- panel ---------- */
.pdsp-mega-panel { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; padding: 0 1.5rem; background: var(--pdsp-kertas); border-top: 1px solid var(--pdsp-garis); border-bottom: 1px solid var(--pdsp-garis); box-shadow: 0 28px 48px -28px rgba(10, 30, 60, .45);
	opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.pdsp-mega-butir.terbuka > .pdsp-mega-panel { opacity: 1; visibility: visible; transform: none; transition: opacity .18s ease, transform .18s ease, visibility 0s; }
.pdsp-mega-isi { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 2rem; max-width: 76rem; margin: 0 auto; padding: 1.75rem 0 2rem; }
.pdsp-mega-isi:not(:has(.pdsp-mega-sorot)) { grid-template-columns: minmax(0, 1fr); }
.pdsp-mega-judul { margin: 0 0 1rem; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.35rem; font-weight: 800; color: var(--pdsp-tinta); }
.pdsp-mega-judul span { display: block; margin-top: .2rem; font-family: var(--pdsp-font-teks, "Plus Jakarta Sans"), sans-serif; font-size: .88rem; font-weight: 500; color: var(--pdsp-redup); }
.pdsp-mega-kisi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.pdsp-mega-tautan, .pdsp-laci-tautan { display: flex; align-items: flex-start; gap: .85rem; padding: .85rem .9rem; border-radius: 14px; text-decoration: none; color: var(--pdsp-tinta); transition: background-color .15s ease, transform .15s ease; }
.pdsp-mega-tautan:hover, .pdsp-mega-tautan:focus-visible, .pdsp-mega-tautan.aktif { background: var(--pdsp-hangat); }
.pdsp-mega-tautan:hover { transform: translateX(2px); }
.pdsp-mega-ik { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 42px; height: 42px; border-radius: 12px; background: color-mix(in srgb, var(--pdsp-oranye) 15%, transparent); color: var(--pdsp-oranye-tua); }
.pdsp-mega-tautan.aktif .pdsp-mega-ik, .pdsp-mega-tautan:hover .pdsp-mega-ik { background: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-mega-teks { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.pdsp-mega-teks strong { font-size: .97rem; font-weight: 700; line-height: 1.3; }
.pdsp-mega-teks small { font-size: .82rem; line-height: 1.45; color: var(--pdsp-redup); }
.pdsp-mega-katlist { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px dashed var(--pdsp-garis); }
.pdsp-mega-katlist .pdsp-sorot-label { width: 100%; }
.pdsp-mega-kat { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .5rem .35rem .8rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); text-decoration: none; color: var(--pdsp-tinta); font-size: .82rem; font-weight: 600; }
.pdsp-mega-kat:hover { border-color: var(--pdsp-oranye); color: var(--pdsp-oranye-tua); }
.pdsp-mega-kat .pdsp-jumlah { font-size: .72rem; font-weight: 800; padding: .05rem .45rem; border-radius: 999px; background: var(--pdsp-navy, #0A3D72); color: #fff; }

/* ---------- kolom sorotan ---------- */
.pdsp-sorot { display: flex; flex-direction: column; gap: .5rem; height: 100%; box-sizing: border-box; padding: 1.35rem; border-radius: 18px; background: var(--pdsp-hangat); border: 1px solid var(--pdsp-garis); color: var(--pdsp-tinta); }
.pdsp-sorot p { margin: 0; }
.pdsp-sorot-navy { background: var(--pdsp-navy, #0A3D72); border-color: transparent; color: #EAF1FA; }
.pdsp-sorot-ik { width: 34px; height: 34px; color: var(--pdsp-oranye); margin-bottom: .25rem; }
.pdsp-sorot-label { font-family: var(--pdsp-font-kapital, "Cinzel"), serif; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pdsp-oranye-tua); }
.pdsp-sorot-navy .pdsp-sorot-label { color: var(--pdsp-oranye); }
.pdsp-sorot-judul { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.3rem; font-weight: 800; line-height: 1.2; }
.pdsp-sorot-teks { font-size: .85rem; line-height: 1.55; opacity: .88; }
.pdsp-sorot-tombol { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; padding-top: .6rem; font-weight: 800; font-size: .9rem; color: var(--pdsp-oranye-tua); text-decoration: none; }
.pdsp-sorot-navy .pdsp-sorot-tombol { color: var(--pdsp-oranye); }
.pdsp-sorot-tombol .pdsp-ikon { width: 18px; height: 18px; transition: transform .15s ease; }
.pdsp-sorot-tombol:hover .pdsp-ikon { transform: translateX(3px); }
.pdsp-sorot-daftar { gap: .75rem; }
.pdsp-sorot-berita { display: flex; gap: .75rem; align-items: center; text-decoration: none; color: var(--pdsp-tinta); }
.pdsp-sorot-berita .pdsp-mini { flex: none; width: 86px; height: 64px; border-radius: 10px; }
.pdsp-sorot-berita span { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.pdsp-sorot-berita small { font-size: .75rem; color: var(--pdsp-redup); }
.pdsp-sorot-berita strong { font-size: .86rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pdsp-sorot-berita:hover strong { color: var(--pdsp-oranye-tua); }

/* ---------- tombol laci (☰) & tata letak responsif header ---------- */
.pdsp-burger { display: none; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; padding: 0; border-radius: 12px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); cursor: pointer; order: 99; }
.pdsp-burger:hover { border-color: var(--pdsp-oranye); color: var(--pdsp-oranye-tua); }
@media (max-width: 1240px) { .pdsp-mega-pemicu { padding: 0 .6rem; font-size: .88rem; } .pdsp-mega-isi { grid-template-columns: minmax(0, 1fr) 16rem; } }
@media (max-width: 1024px) {
	.pdsp-header .pdsp-mega { display: none; }
	.pdsp-burger { display: inline-flex; }
}
@media (max-width: 767px) {
	/* di HP laci dibuka dari tombol Menu di menu bawah; ruang header tidak cukup untuk ☰ */
	.pdsp-burger { display: none !important; }
}

/* ---------- laci ---------- */
.pdsp-laci-latar { position: fixed; inset: 0; z-index: 1190; background: rgba(8, 18, 34, .5); opacity: 0; transition: opacity .25s ease; }
.pdsp-laci { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1200; display: flex; flex-direction: column; width: min(25rem, 90vw); background: var(--pdsp-kertas); color: var(--pdsp-tinta); box-shadow: -24px 0 48px -24px rgba(0, 0, 0, .5);
	transform: translateX(104%); transition: transform .26s cubic-bezier(.2, .8, .2, 1); padding-bottom: env(safe-area-inset-bottom, 0px); }
body.pdsp-menu-terbuka { overflow: hidden; }
body.pdsp-menu-terbuka .pdsp-laci { transform: none; }
body.pdsp-menu-terbuka .pdsp-laci-latar { opacity: 1; }
.pdsp-laci-kepala { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.1rem 1rem 1.4rem; border-bottom: 1px solid var(--pdsp-garis); }
.pdsp-laci-kepala span { font-family: var(--pdsp-font-kapital, "Cinzel"), serif; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem; color: var(--pdsp-oranye-tua); }
.pdsp-laci-tutup { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); cursor: pointer; }
.pdsp-laci-isi { flex: 1; overflow-y: auto; padding: .6rem .8rem; overscroll-behavior: contain; }
.pdsp-laci-atas { display: flex; align-items: center; gap: .8rem; width: 100%; min-height: 52px; padding: 0 .7rem; border: 0; border-radius: 12px; background: transparent; color: var(--pdsp-tinta); font: inherit; font-size: 1.02rem; font-weight: 700; text-align: left; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.pdsp-laci-atas > span { flex: 1; }
.pdsp-laci-atas:hover, .pdsp-laci-atas.aktif, .pdsp-laci-atas[aria-expanded="true"] { background: var(--pdsp-hangat); }
.pdsp-laci-atas[aria-expanded="true"] .pdsp-mega-panah { transform: rotate(180deg); }
.pdsp-laci-atas .pdsp-ikon:first-child { color: var(--pdsp-oranye-tua); }
.pdsp-laci-sub { display: flex; flex-direction: column; gap: .15rem; padding: .25rem 0 .6rem 1rem; }
.pdsp-laci-tautan { padding: .65rem .7rem; }
.pdsp-laci-tautan .pdsp-mega-ik { width: 36px; height: 36px; border-radius: 10px; }
.pdsp-laci-tautan.aktif, .pdsp-laci-tautan:hover { background: var(--pdsp-hangat); }
.pdsp-laci-kaki { padding: 1rem 1.4rem 1.4rem; border-top: 1px solid var(--pdsp-garis); }
.pdsp-laci-kaki p { margin: .75rem 0 0; font-size: .8rem; color: var(--pdsp-redup); }
.pdsp-laci-cta { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 48px; border-radius: 999px; background: var(--pdsp-oranye); color: #1A0E04 !important; font-weight: 800; text-decoration: none; }
@media (prefers-reduced-motion: reduce) {
	.pdsp-mega-panel, .pdsp-laci, .pdsp-laci-latar, .pdsp-mega-panah, .pdsp-mega-tautan { transition: none !important; }
}

/* ---------- footer: tautan kolega Universitas Lampung ---------- */
.pdsp-kolega { display: flex; flex-direction: column; gap: 1.75rem; width: 100%; padding: 1.75rem 0 .25rem; border-top: 1px solid rgba(255, 255, 255, .14); }
.pdsp-kolega-judul { margin: 0 0 .85rem; font-family: var(--pdsp-font-kapital, "Cinzel"), serif; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pdsp-oranye); }
.pdsp-kolega ul { list-style: none; margin: 0; padding: 0 !important; }
.pdsp-kolega-fak { display: flex; flex-wrap: wrap; gap: .5rem; }
.pdsp-kolega-fak a { display: inline-flex; align-items: center; gap: .45rem; min-height: 40px; padding: 0 .95rem 0 .75rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .04); font-size: .85rem; font-weight: 700; text-decoration: none !important; box-sizing: border-box; }
.pdsp-kolega-fak .pdsp-ikon { width: 17px; height: 17px; color: var(--pdsp-oranye); }
.pdsp-kolega-fak a:hover { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04 !important; }
.pdsp-kolega-fak a:hover .pdsp-ikon { color: #1A0E04; }
.pdsp-kolega-app { display: grid; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: .6rem; }
.pdsp-kolega-app a { display: flex; align-items: center; gap: .75rem; height: 100%; padding: .7rem .8rem; border-radius: 14px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); text-decoration: none !important; box-sizing: border-box; transition: background-color .15s ease, transform .15s ease, border-color .15s ease; }
.pdsp-kolega-app a:hover { background: rgba(255, 255, 255, .1); border-color: rgba(247, 134, 26, .6); transform: translateY(-2px); }
.pdsp-kolega-ik { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 12px; background: linear-gradient(135deg, #F7861A, #E0650A); color: #1A0E04; box-shadow: 0 6px 14px -8px rgba(247, 134, 26, .9); }
.pdsp-kolega-teks { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.pdsp-kolega-teks strong { font-size: .88rem; line-height: 1.25; color: #FFFFFF; }
.pdsp-kolega-teks small { font-size: .76rem; line-height: 1.35; color: #A9BAD0; }
.pdsp-kolega-app a:hover strong { color: var(--pdsp-oranye); text-decoration: none; }
@media (max-width: 640px) {
	.pdsp-kolega-app { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pdsp-kolega-app a { flex-direction: column; align-items: flex-start; gap: .55rem; }
}

/* laci dirender di dalam footer: jangan ikut warna tautan putih footer */
.pdsp-kaki .pdsp-laci a { color: var(--pdsp-tinta) !important; text-decoration: none !important; }
.pdsp-kaki .pdsp-laci a.pdsp-laci-cta { color: #1A0E04 !important; }
.pdsp-kaki .pdsp-laci a:hover strong, .pdsp-kaki .pdsp-laci a.aktif strong { color: var(--pdsp-oranye-tua); }
/* tema Hello mewarnai semua tombol saat :hover/:focus (merah muda #c36) — kembalikan ke palet PDSP */
.pdsp-mega-pemicu:focus, .pdsp-mega-pemicu:focus-visible { background-color: var(--pdsp-hangat); color: var(--pdsp-oranye-tua); }
.pdsp-laci-atas:hover, .pdsp-laci-atas:focus, .pdsp-laci-atas[aria-expanded="true"] { background-color: var(--pdsp-hangat); color: var(--pdsp-tinta); }
.pdsp-burger:hover, .pdsp-burger:focus, .pdsp-laci-tutup:hover, .pdsp-laci-tutup:focus { background-color: var(--pdsp-permukaan); color: var(--pdsp-oranye-tua); border-color: var(--pdsp-oranye); }
.pdsp-slider-kendali > button:hover, .pdsp-slider-kendali > button:focus { background-color: var(--pdsp-permukaan); color: var(--pdsp-tinta); }
.pdsp-slider-titik button:hover, .pdsp-slider-titik button:focus { background-color: var(--pdsp-oranye); }
.pdsp-bagi:hover, .pdsp-bagi:focus { background-color: var(--pdsp-permukaan); color: var(--pdsp-oranye-tua); }

/* ======================================================================= data prodi: dosen, angka, doktor, katalog, agenda, testimoni */

/* ---------- kartu dosen ---------- */
.pdsp-kisi-dosen { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: 1rem; width: 100%; }
.pdsp-kisi-dosen-kecil { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
.pdsp-dosen { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem; padding: 1.4rem 1.1rem 1.2rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); color: var(--pdsp-tinta); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
a.pdsp-dosen:hover { transform: translateY(-3px); border-color: var(--pdsp-oranye); box-shadow: 0 16px 30px -20px rgba(10, 61, 114, .5); }
.pdsp-dosen-foto { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; border: 4px solid var(--pdsp-hangat); flex: none; }
.pdsp-kisi-dosen-kecil .pdsp-dosen-foto { width: 96px; height: 96px; }
.pdsp-inisial { display: inline-flex; align-items: center; justify-content: center; background: var(--pdsp-navy, #0A3D72); color: #fff; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.6rem; letter-spacing: .02em; }
.pdsp-dosen-nama { margin: .35rem 0 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.05rem; font-weight: 700; line-height: 1.3; }
.pdsp-dosen-bidang { margin: 0; font-size: .82rem; color: var(--pdsp-redup); }
.pdsp-kepakaran { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem; list-style: none; margin: .25rem 0 0; padding: 0; }
.pdsp-kepakaran li { padding: .18rem .6rem; border-radius: 999px; background: var(--pdsp-hangat); font-size: .74rem; font-weight: 600; color: var(--pdsp-tinta); }
.pdsp-dosen-tautan { display: inline-flex; align-items: center; gap: .35rem; margin-top: auto; padding-top: .6rem; font-size: .82rem; font-weight: 800; color: var(--pdsp-oranye-tua); }
.pdsp-dosen-tautan .pdsp-ikon { width: 15px; height: 15px; }

/* ---------- angka ---------- */
.pdsp-ubin-baris { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; width: 100%; }
@media (max-width: 900px) { .pdsp-ubin-baris { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pdsp-ubin { padding: 1.25rem 1.2rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); }
.pdsp-ubin p { margin: 0; }
.pdsp-ubin-angka { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 2.6rem; font-weight: 800; line-height: 1; color: var(--pdsp-oranye-tua); font-variant-numeric: tabular-nums; }
.pdsp-ubin-label { margin-top: .45rem !important; font-weight: 700; color: var(--pdsp-tinta); }
.pdsp-ubin-catatan { margin-top: .2rem !important; font-size: .8rem; color: var(--pdsp-redup); }
.pdsp-angka-dua { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.25rem; margin-top: 1.25rem; width: 100%; }
@media (max-width: 900px) { .pdsp-angka-dua { grid-template-columns: minmax(0, 1fr); } }
.pdsp-grafik, .pdsp-tracer { margin: 0; padding: 1.4rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); }
.pdsp-grafik figcaption { font-weight: 700; margin-bottom: 1rem; }
.pdsp-bar-wadah { display: flex; align-items: flex-end; gap: .6rem; height: 200px; padding-top: 1.4rem; border-bottom: 1px solid var(--pdsp-garis); }
.pdsp-bar { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; }
.pdsp-bar-kolom { position: relative; flex: 1; width: 100%; max-width: 3.4rem; display: flex; align-items: flex-end; }
.pdsp-bar-masuk, .pdsp-bar-lulus { position: absolute; bottom: 0; border-radius: 8px 8px 0 0; display: flex; justify-content: center; }
.pdsp-bar-masuk { left: 0; right: 0; background: color-mix(in srgb, var(--pdsp-navy, #0A3D72) 22%, transparent); }
.pdsp-bar-lulus { left: 22%; right: 22%; background: var(--pdsp-oranye); }
.pdsp-bar-masuk b { position: absolute; top: -1.3rem; font-size: .78rem; color: var(--pdsp-tinta); }
.pdsp-bar-lulus b { padding-top: .2rem; font-size: .72rem; color: #1A0E04; }
.pdsp-bar-tahun { margin-top: .45rem; font-size: .78rem; font-weight: 700; color: var(--pdsp-redup); }
.pdsp-legenda { display: flex; align-items: center; gap: .45rem; margin: .9rem 0 0; font-size: .8rem; color: var(--pdsp-redup); }
.pdsp-legenda span { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-left: .6rem; }
.pdsp-legenda span:first-child { margin-left: 0; }
.pdsp-leg-masuk { background: color-mix(in srgb, var(--pdsp-navy, #0A3D72) 22%, transparent); }
.pdsp-leg-lulus { background: var(--pdsp-oranye); }
.pdsp-tabel-detail { margin-top: .9rem; font-size: .85rem; }
.pdsp-tabel-detail summary { cursor: pointer; font-weight: 700; color: var(--pdsp-oranye-tua); }
.pdsp-tabel-detail table { width: 100%; margin-top: .6rem; border-collapse: collapse; }
.pdsp-tabel-detail th, .pdsp-tabel-detail td { padding: .4rem .5rem; border-bottom: 1px solid var(--pdsp-garis); text-align: left; font-variant-numeric: tabular-nums; }
.pdsp-tracer dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin: .8rem 0 0; }
.pdsp-tracer dt { font-size: .78rem; color: var(--pdsp-redup); }
.pdsp-tracer dd { margin: .15rem 0 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.45rem; font-weight: 800; color: var(--pdsp-tinta); }
.pdsp-akreditasi { display: flex; gap: .6rem; align-items: flex-start; margin: 1.2rem 0 0; padding-top: 1rem; border-top: 1px dashed var(--pdsp-garis); font-size: .82rem; color: var(--pdsp-redup); }
.pdsp-akreditasi .pdsp-ikon { color: var(--pdsp-oranye-tua); }
.pdsp-sumber-data { margin: .9rem 0 0; font-size: .78rem; color: var(--pdsp-redup); }

/* ---------- Dinding Doktor ---------- */
.pdsp-kisi-doktor { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 1rem; width: 100%; }
@media (max-width: 640px) { .pdsp-kisi-doktor { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; } }
.pdsp-doktor { display: flex; flex-direction: column; border-radius: 18px; overflow: hidden; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); color: var(--pdsp-tinta); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
a.pdsp-doktor:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -20px rgba(10, 61, 114, .55); }
.pdsp-doktor-foto { position: relative; aspect-ratio: 4 / 5; background: var(--pdsp-hangat); }
.pdsp-doktor-img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: flex; }
.pdsp-doktor-foto .pdsp-inisial { font-size: 2.6rem; }
.pdsp-doktor-ke { position: absolute; left: .7rem; top: .7rem; padding: .25rem .65rem; border-radius: 999px; background: var(--pdsp-navy, #0A3D72); color: #fff; font-size: .74rem; font-weight: 800; box-shadow: 0 4px 10px -4px rgba(0, 0, 0, .5); }
.pdsp-doktor-isi { display: flex; flex-direction: column; gap: .35rem; padding: .95rem 1rem 1.1rem; }
.pdsp-doktor-isi h3 { margin: 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.02rem; line-height: 1.3; }
.pdsp-doktor-meta { margin: 0; font-size: .76rem; font-weight: 700; color: var(--pdsp-oranye-tua); }
.pdsp-doktor-judul { margin: 0; font-size: .8rem; line-height: 1.45; color: var(--pdsp-redup); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.pdsp-doktor-promotor { margin: 0; font-size: .74rem; color: var(--pdsp-redup); }

/* ---------- katalog ---------- */
.pdsp-katalog { width: 100%; }
.pdsp-cari { display: flex; align-items: center; gap: .6rem; padding: 0 1rem; margin-bottom: 1rem; border-radius: 14px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-redup); }
.pdsp-cari:focus-within { border-color: var(--pdsp-oranye); }
.pdsp-cari input { flex: 1; min-height: 50px; border: 0; background: transparent; color: var(--pdsp-tinta); font: inherit; font-size: 1rem; outline: none; }
.pdsp-saringan button.pdsp-saring { cursor: pointer; font: inherit; font-size: .85rem; font-weight: 700; }
.pdsp-katalog-daftar { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.pdsp-katalog-butir { padding: 1rem 1.15rem; border-radius: 14px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); }
.pdsp-katalog-judul { margin: .45rem 0 .3rem; font-weight: 700; line-height: 1.4; }
.pdsp-katalog-meta { margin: 0; font-size: .82rem; color: var(--pdsp-redup); }
.pdsp-status { display: inline-flex; padding: .16rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 800; background: var(--pdsp-hangat); color: var(--pdsp-tinta); }
.pdsp-status-lulus, .pdsp-status-promosi { background: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-status-tertutup { background: color-mix(in srgb, var(--pdsp-oranye) 30%, transparent); }
.pdsp-status-hasil { background: color-mix(in srgb, var(--pdsp-hijau, #2E9E6B) 22%, transparent); }
.pdsp-status-proposal, .pdsp-status-kelayakan { background: color-mix(in srgb, var(--pdsp-navy, #0A3D72) 16%, transparent); }

/* ---------- agenda ---------- */
.pdsp-agenda-daftar { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; width: 100%; }
.pdsp-agenda-butir { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr) 7.5rem; gap: 1rem; align-items: start; padding: 1rem; border-radius: 16px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); }
.pdsp-agenda-butir[hidden] { display: none; }
.pdsp-agenda-tgl { display: flex; flex-direction: column; align-items: center; padding: .55rem .3rem; border-radius: 12px; background: var(--pdsp-navy, #0A3D72); color: #fff; font-size: .72rem; font-weight: 700; text-align: center; }
.pdsp-agenda-tgl b { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.6rem; line-height: 1; }
.pdsp-agenda-isi h3 { margin: .4rem 0 .2rem; font-size: 1.02rem; }
.pdsp-agenda-judul { margin: 0 0 .3rem; font-size: .88rem; line-height: 1.45; }
.pdsp-agenda-meta { margin: 0; font-size: .78rem; color: var(--pdsp-redup); }
.pdsp-agenda-isi details { margin-top: .4rem; font-size: .8rem; color: var(--pdsp-redup); }
.pdsp-agenda-isi summary { cursor: pointer; font-weight: 700; color: var(--pdsp-tinta); }
.pdsp-agenda-ig { display: inline-flex; align-items: center; gap: .35rem; margin-top: .5rem; font-size: .8rem; font-weight: 800; color: var(--pdsp-oranye-tua); text-decoration: none; }
.pdsp-agenda-ig .pdsp-ikon { width: 16px; height: 16px; }
.pdsp-agenda-foto { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; }
@media (max-width: 640px) {
	.pdsp-agenda-butir { grid-template-columns: 3.8rem minmax(0, 1fr); }
	.pdsp-agenda-foto { display: none; }
}
.pdsp-tombol-lebih { margin-top: 1rem; min-height: 46px; padding: 0 1.4rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font: inherit; font-weight: 800; cursor: pointer; }
.pdsp-tombol-lebih:hover, .pdsp-tombol-lebih:focus { background: var(--pdsp-hangat); color: var(--pdsp-oranye-tua); border-color: var(--pdsp-oranye); }

/* ---------- testimoni ---------- */
.pdsp-kisi-testimoni { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; width: 100%; }
.pdsp-testimoni { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; margin: 0; padding: 1.2rem; border-radius: 18px; background: var(--pdsp-hangat); border: 1px solid var(--pdsp-garis); }
.pdsp-testimoni-foto { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; grid-row: span 2; }
.pdsp-testimoni blockquote { margin: 0; font-size: .92rem; line-height: 1.6; }
.pdsp-testimoni blockquote p { margin: 0 0 .5rem; }
.pdsp-testimoni figcaption { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; }
.pdsp-testimoni figcaption a { display: inline-flex; align-items: center; gap: .35rem; font-weight: 800; color: var(--pdsp-oranye-tua); text-decoration: none; }
.pdsp-testimoni figcaption .pdsp-ikon { width: 16px; height: 16px; }

/* foto Dinding Doktor memenuhi bingkai 4:5 */
.pdsp-doktor-foto > img, .pdsp-doktor-foto > .pdsp-inisial { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; object-position: center top; }

/* Elementor memaksa ".elementor img { border-radius: 0; border: none }" — gambar plugin perlu spesifisitas lebih tinggi */
.elementor .pdsp-dosen img.pdsp-dosen-foto { border-radius: 50%; border: 4px solid var(--pdsp-hangat); object-fit: cover; height: 112px; }
.elementor .pdsp-kisi-dosen-kecil img.pdsp-dosen-foto { height: 96px; }
.elementor .pdsp-terbaru-daftar img.pdsp-mini { border-radius: 12px; height: 64px; }
.elementor .pdsp-sorot-berita img.pdsp-mini { border-radius: 10px; height: 64px; }
.elementor .pdsp-agenda img.pdsp-agenda-foto { border-radius: 12px; height: auto; }
.elementor .pdsp-testimoni img.pdsp-testimoni-foto { border-radius: 12px; height: auto; }
.elementor .pdsp-isi-pos .wp-block-image img { border-radius: 16px; }

/* foto profil myUnila berformat tegak 3:4 — wajah di sepertiga atas */
.elementor .pdsp-dosen img.pdsp-dosen-foto { object-position: center 18%; }

/* ======================================================================= admisi: dokumen & arsip */
.pdsp-kisi-dok { display: grid; grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr)); gap: 1rem; width: 100%; }
@media (max-width: 640px) { .pdsp-kisi-dok { grid-template-columns: minmax(0, 1fr); } }
.pdsp-dok { display: flex; gap: 1rem; padding: 1.25rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); }
.pdsp-dok-ik { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 46px; height: 46px; border-radius: 14px; background: var(--pdsp-navy, #0A3D72); color: #fff; }
.pdsp-dok-isi { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.pdsp-dok-isi h3 { margin: .1rem 0 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.05rem; line-height: 1.3; color: var(--pdsp-tinta); }
.pdsp-dok-isi p { margin: 0; }
.pdsp-dok-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .78rem; color: var(--pdsp-redup); font-weight: 600; }
.pdsp-dok-nomor { font-size: .8rem; font-weight: 700; color: var(--pdsp-oranye-tua); overflow-wrap: anywhere; }
.pdsp-dok-ket { font-size: .86rem; line-height: 1.5; color: var(--pdsp-tinta); }
.pdsp-dok-catatan { font-size: .78rem; color: var(--pdsp-redup); font-style: italic; }
.pdsp-dok-aksi { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .45rem; }
.pdsp-dok-aksi a { display: inline-flex; align-items: center; gap: .35rem; font-size: .84rem; font-weight: 800; text-decoration: none; }
.pdsp-dok-aksi .pdsp-ikon { width: 16px; height: 16px; }
.pdsp-dok-unduh { padding: .45rem .9rem; border-radius: 999px; background: var(--pdsp-oranye); color: #1A0E04 !important; }
.pdsp-dok-sumber { color: var(--pdsp-oranye-tua); }
.pdsp-catatan-status { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 1rem; padding: .9rem 1.1rem; border-radius: 14px; background: var(--pdsp-hangat); border: 1px solid var(--pdsp-garis); font-size: .88rem; }
.pdsp-catatan-status .pdsp-ikon { color: var(--pdsp-oranye-tua); }
.pdsp-catatan-status a { color: var(--pdsp-oranye-tua); font-weight: 700; }
.pdsp-arsip { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--pdsp-garis); }
.pdsp-arsip li { position: relative; display: grid; grid-template-columns: 9.5rem minmax(0, 1fr) auto; gap: .4rem 1rem; align-items: baseline; padding: .75rem 0 .75rem 1.25rem; border-bottom: 1px dashed var(--pdsp-garis); }
.pdsp-arsip li::before { content: ""; position: absolute; left: -7px; top: 1.05rem; width: 12px; height: 12px; border-radius: 50%; background: var(--pdsp-oranye); box-shadow: 0 0 0 3px var(--pdsp-kertas); }
.pdsp-arsip time { font-size: .8rem; font-weight: 700; color: var(--pdsp-redup); }
.pdsp-arsip a { display: inline-flex; align-items: center; gap: .35rem; color: var(--pdsp-tinta); font-weight: 600; text-decoration: none; }
.pdsp-arsip a:hover { color: var(--pdsp-oranye-tua); }
.pdsp-arsip a .pdsp-ikon { width: 15px; height: 15px; flex: none; color: var(--pdsp-oranye-tua); }
.pdsp-arsip-situs { font-size: .72rem; font-weight: 800; padding: .12rem .55rem; border-radius: 999px; background: var(--pdsp-hangat); color: var(--pdsp-redup); }
@media (max-width: 640px) { .pdsp-arsip li { grid-template-columns: minmax(0, 1fr); } }

/* ======================================================================= beranda: hero slider */
.pdsp-hero { position: relative; isolation: isolate; width: 100%; height: min(86vh, 760px); min-height: 520px; overflow: hidden; background: #071a33; color: #fff; }
@media (max-width: 767px) { .pdsp-hero { height: 78vh; min-height: 560px; max-height: 720px; } }
.pdsp-hero-jalur { position: absolute; inset: 0; }
.pdsp-hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility 0s linear .9s; }
.pdsp-hero-slide.aktif { opacity: 1; visibility: visible; transition: opacity .9s ease, visibility 0s; z-index: 1; }
.pdsp-hero-media { position: absolute; inset: 0; overflow: hidden; }
.elementor .pdsp-hero img.pdsp-hero-img, .pdsp-hero img.pdsp-hero-img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 35%; transform: scale(1.12); transition: transform 9s cubic-bezier(.2, .6, .2, 1); will-change: transform; }
.pdsp-hero-slide.aktif .pdsp-hero-img { transform: scale(1.02); }
.pdsp-hero-tirai { position: absolute; inset: 0; background:
	linear-gradient(90deg, rgba(5, 18, 38, .92) 0%, rgba(5, 18, 38, .72) 38%, rgba(5, 18, 38, .18) 72%, rgba(5, 18, 38, .05) 100%),
	linear-gradient(0deg, rgba(5, 18, 38, .85) 0%, rgba(5, 18, 38, 0) 42%); }
@media (max-width: 767px) { .pdsp-hero-tirai { background: linear-gradient(0deg, rgba(5, 18, 38, .95) 8%, rgba(5, 18, 38, .55) 55%, rgba(5, 18, 38, .25) 100%); } }
.pdsp-hero-isi { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 1.1rem; height: 100%; max-width: 76rem; margin: 0 auto; padding: 0 1.5rem 7rem; box-sizing: border-box; }
@media (max-width: 767px) { .pdsp-hero-isi { justify-content: flex-end; padding: 0 1.1rem 9.5rem; gap: .8rem; } }
.pdsp-hero-isi > * { max-width: 44rem; margin: 0; }
.pdsp-hero-eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--pdsp-font-kapital, "Cinzel"), serif; font-size: .8rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #FFB866; }
.pdsp-hero-eyebrow::before { content: ""; width: 2.4rem; height: 2px; background: currentColor; }
.pdsp-hero-judul { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: clamp(2.2rem, 5.2vw, 4.4rem); line-height: 1.02; letter-spacing: -.025em; color: #fff; text-wrap: balance; text-shadow: 0 2px 30px rgba(0, 0, 0, .35); }
.pdsp-hero-sub { font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.6; color: #DCE6F2; max-width: 38rem !important; }
.pdsp-hero-aksi { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .4rem !important; }
.pdsp-hero-cta { display: inline-flex; align-items: center; gap: .55rem; min-height: 52px; padding: 0 1.6rem; border-radius: 999px; background: linear-gradient(135deg, #F7861A, #FFAE5C); color: #1A0E04 !important; font-weight: 800; text-decoration: none; box-shadow: 0 14px 34px -14px rgba(247, 134, 26, .9); transition: transform .2s ease, box-shadow .2s ease; }
.pdsp-hero-cta:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -14px rgba(247, 134, 26, 1); }
.pdsp-hero-cta .pdsp-ikon { width: 18px; height: 18px; transition: transform .2s ease; }
.pdsp-hero-cta:hover .pdsp-ikon { transform: translateX(3px); }
/* teks masuk bertahap */
.pdsp-hero-slide .pdsp-hero-isi > * { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
.pdsp-hero-slide.aktif .pdsp-hero-isi > * { opacity: 1; transform: none; }
.pdsp-hero-slide.aktif .pdsp-hero-isi > :nth-child(2) { transition-delay: .12s; }
.pdsp-hero-slide.aktif .pdsp-hero-isi > :nth-child(3) { transition-delay: .24s; }
.pdsp-hero-slide.aktif .pdsp-hero-isi > :nth-child(4) { transition-delay: .36s; }
/* bilah bawah: pencarian + kendali */
.pdsp-hero-bawah { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 0 1.5rem 2rem; }
.pdsp-hero-wadah { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; max-width: 76rem; margin: 0 auto; }
.pdsp-hero-cari { display: flex; align-items: center; gap: .7rem; flex: 1 1 22rem; max-width: 34rem; min-height: 54px; padding: 0 .8rem 0 1.2rem; border-radius: 16px; border: 1px solid rgba(255, 255, 255, .25);
	background: rgba(255, 255, 255, .12); color: #E6EEF7; font: inherit; font-size: .95rem; text-align: left; cursor: text; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); transition: background-color .2s ease, border-color .2s ease; }
.pdsp-hero-cari:hover, .pdsp-hero-cari:focus { background: rgba(255, 255, 255, .2); border-color: rgba(255, 255, 255, .5); color: #fff; }
.pdsp-hero-cari span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdsp-hero-cari kbd, .pdsp-tombol-cari kbd { font: 700 .7rem/1 var(--pdsp-font-teks, sans-serif); padding: .35rem .5rem; border-radius: 7px; border: 1px solid rgba(255, 255, 255, .35); background: rgba(0, 0, 0, .15); }
.pdsp-hero-kendali { display: flex; align-items: center; gap: .7rem; }
.pdsp-hero-hitung { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: .95rem; color: #A9BAD0; font-variant-numeric: tabular-nums; }
.pdsp-hero-hitung b { color: #fff; font-size: 1.2rem; }
.pdsp-hero-titik-wadah { display: flex; gap: .4rem; }
.pdsp-hero-titik { position: relative; width: 2.6rem; height: 4px; padding: 0; border: 0; border-radius: 4px; background: rgba(255, 255, 255, .28); cursor: pointer; overflow: hidden; }
.pdsp-hero-titik::after { content: ""; position: absolute; inset: -10px 0; }
.pdsp-hero-titik span { position: absolute; inset: 0; width: 0; background: #FFB866; border-radius: 4px; }
.pdsp-hero-titik.aktif span { animation: pdsp-isi var(--hero-jeda, 6500ms) linear forwards; }
.pdsp-hero.berhenti .pdsp-hero-titik.aktif span { animation-play-state: paused; }
@keyframes pdsp-isi { to { width: 100%; } }
.pdsp-hero-jeda, .pdsp-hero-panah { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .08); color: #fff; cursor: pointer; backdrop-filter: blur(10px); }
.pdsp-hero-jeda:hover, .pdsp-hero-panah:hover, .pdsp-hero-jeda:focus, .pdsp-hero-panah:focus { background: rgba(255, 255, 255, .22); color: #fff; border-color: rgba(255, 255, 255, .6); }
.pdsp-hero-panah[data-arah="-1"] .pdsp-ikon { transform: rotate(180deg); }
.pdsp-hero-jeda i { width: 10px; height: 12px; border-left: 3px solid #fff; border-right: 3px solid #fff; box-sizing: border-box; }
.pdsp-hero-jeda.putar i { width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent #fff; margin-left: 3px; }
@media (max-width: 767px) {
	.pdsp-hero-bawah { padding: 0 1.1rem 1.4rem; }
	.pdsp-hero-cari { flex-basis: 100%; max-width: none; min-height: 50px; }
	.pdsp-hero-cari kbd, .pdsp-hero-panah { display: none; }
	.pdsp-hero-kendali { width: 100%; justify-content: space-between; }
	.pdsp-hero-titik { width: 1.8rem; }
}
@media (prefers-reduced-motion: reduce) {
	.pdsp-hero-slide, .pdsp-hero-img, .pdsp-hero-isi > * { transition: none !important; }
	.pdsp-hero-titik.aktif span { animation: none; width: 100%; }
}

/* ---------- berita utama satu baris ---------- */
.pdsp-utama-kepala { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; width: 100%; }
.pdsp-utama-judul { margin: .3rem 0 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; line-height: 1.1; color: var(--pdsp-tinta); }
.pdsp-utama-indeks { display: inline-flex; align-items: center; gap: .5rem; min-height: 46px; padding: 0 1.3rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta) !important; font-weight: 800; text-decoration: none; transition: border-color .15s ease, color .15s ease, transform .15s ease; }
.pdsp-utama-indeks:hover { border-color: var(--pdsp-oranye); color: var(--pdsp-oranye-tua) !important; transform: translateX(2px); }
.pdsp-utama-indeks .pdsp-ikon { width: 18px; height: 18px; }
.pdsp-tautan-bawah { margin-top: 1.4rem; }
.pdsp-baris-berita .pdsp-kartu-gambar { aspect-ratio: 16 / 10; }
.pdsp-baris-berita .pdsp-kartu-judul { font-size: 1.32rem; }
.pdsp-baris-berita .pdsp-kartu-berita:first-child { box-shadow: 0 20px 40px -26px rgba(10, 61, 114, .55); }
@media (max-width: 1024px) {
	.pdsp-baris-berita { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding-bottom: .4rem; scrollbar-width: thin; }
	.pdsp-baris-berita > .pdsp-kartu-berita { flex: 0 0 min(82vw, 22rem); scroll-snap-align: start; }
}

/* ---------- agenda ringkas & guru besar geser ---------- */
.pdsp-agenda-ringkas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; width: 100%; }
@media (max-width: 1024px) { .pdsp-agenda-ringkas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pdsp-agenda-ringkas { grid-template-columns: minmax(0, 1fr); } }
.pdsp-agenda-ringkas li { display: flex; gap: .9rem; padding: 1.1rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); }
.pdsp-agenda-ringkas time { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; width: 4rem; height: 4.2rem; border-radius: 12px; background: var(--pdsp-navy, #0A3D72); color: #fff; font-size: .7rem; font-weight: 700; text-align: center; }
.pdsp-agenda-ringkas time b { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.5rem; line-height: 1; }
.pdsp-agenda-ringkas h3 { margin: .35rem 0 .2rem; font-size: 1rem; }
.pdsp-agenda-ringkas p { margin: 0; font-size: .8rem; line-height: 1.45; color: var(--pdsp-redup); }
.pdsp-geser { width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .6rem; scrollbar-width: thin; }
.pdsp-geser .pdsp-kisi-dosen { display: flex; gap: 1rem; width: max-content; }
.pdsp-geser .pdsp-dosen { width: 15.5rem; flex: none; scroll-snap-align: start; }

/* ---------- tombol cari di header ---------- */
.pdsp-tombol-cari { display: inline-flex; align-items: center; gap: .45rem; flex: none; height: 40px; padding: 0 .55rem 0 .75rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.pdsp-tombol-cari:hover, .pdsp-tombol-cari:focus { border-color: var(--pdsp-oranye); background: var(--pdsp-permukaan); color: var(--pdsp-oranye-tua); }
.pdsp-tombol-cari .pdsp-ikon { width: 18px; height: 18px; }
.pdsp-tombol-cari kbd { color: var(--pdsp-redup); border-color: var(--pdsp-garis); background: var(--pdsp-hangat); }
@media (max-width: 1240px) { .pdsp-tombol-cari kbd { display: none; } }
@media (max-width: 1100px) { .pdsp-tombol-cari-teks { display: none; } .pdsp-tombol-cari { width: 40px; padding: 0; justify-content: center; } }

/* ---------- jendela pencarian ---------- */
body.pdsp-cari-terbuka { overflow: hidden; }
.pdsp-cari-latar { position: fixed; inset: 0; z-index: 1300; background: rgba(5, 14, 28, .55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.pdsp-cari-modal { position: fixed; z-index: 1310; left: 50%; top: 8vh; transform: translateX(-50%); display: flex; flex-direction: column; width: min(46rem, calc(100vw - 2rem)); max-height: 80vh; border-radius: 20px; overflow: hidden;
	background: var(--pdsp-kertas); color: var(--pdsp-tinta); border: 1px solid var(--pdsp-garis); box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .6); animation: pdsp-muncul .18s ease-out; }
@keyframes pdsp-muncul { from { opacity: 0; transform: translate(-50%, -8px) scale(.98); } }
@media (max-width: 640px) { .pdsp-cari-modal { top: 0; width: 100vw; max-height: 100dvh; height: 100dvh; border-radius: 0; } }
.pdsp-cari-kepala { display: flex; align-items: center; gap: .7rem; padding: .9rem 1rem .9rem 1.2rem; border-bottom: 1px solid var(--pdsp-garis); }
.pdsp-cari-kepala > .pdsp-ikon { width: 22px; height: 22px; color: var(--pdsp-oranye-tua); }
.pdsp-cari-kepala input { flex: 1; min-width: 0; min-height: 44px; border: 0; outline: none; background: transparent; color: var(--pdsp-tinta); font: inherit; font-size: 1.1rem; }
.pdsp-cari-kepala input::-webkit-search-cancel-button { display: none; }
.pdsp-cari-tutup { border: 0; background: transparent; cursor: pointer; padding: 0; }
.pdsp-cari-modal kbd { font: 700 .7rem/1 var(--pdsp-font-teks, sans-serif); padding: .3rem .45rem; border-radius: 6px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-redup); }
.pdsp-cari-saring { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 1.2rem; }
.pdsp-cari-saring:not(:empty) { padding: .7rem 1.2rem; border-bottom: 1px solid var(--pdsp-garis); }
.pdsp-cari-saring button { padding: .3rem .75rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; }
.pdsp-cari-saring button:hover, .pdsp-cari-saring button:focus { background: var(--pdsp-hangat); color: var(--pdsp-tinta); }
.pdsp-cari-saring button.aktif { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-cari-hasil { flex: 1; overflow-y: auto; padding: .6rem .6rem 1rem; overscroll-behavior: contain; }
.pdsp-cari-grup-judul, .pdsp-cari-cepat p { margin: .8rem .7rem .35rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--pdsp-redup); }
.pdsp-cari-butir, .pdsp-cari-cepat a { display: flex; align-items: center; gap: .8rem; padding: .6rem .7rem; border-radius: 12px; color: var(--pdsp-tinta); text-decoration: none; }
.pdsp-cari-butir:hover, .pdsp-cari-butir.aktif, .pdsp-cari-cepat a:hover, .pdsp-cari-cepat a.aktif { background: var(--pdsp-hangat); }
.pdsp-cari-butir img { flex: none; width: 44px; height: 44px; border-radius: 10px; object-fit: cover; }
.pdsp-cari-ik { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 10px; background: color-mix(in srgb, var(--pdsp-oranye) 15%, transparent); color: var(--pdsp-oranye-tua); }
.pdsp-cari-ik svg { width: 20px; height: 20px; }
.pdsp-cari-teks { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.pdsp-cari-teks strong { font-size: .95rem; line-height: 1.35; overflow-wrap: anywhere; }
.pdsp-cari-teks small { font-size: .78rem; color: var(--pdsp-redup); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdsp-cari-hasil mark { background: color-mix(in srgb, var(--pdsp-oranye) 35%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }
.pdsp-cari-cepat a .pdsp-ikon { width: 20px; height: 20px; color: var(--pdsp-oranye-tua); }
.pdsp-cari-info { margin: 1.5rem 1rem; color: var(--pdsp-redup); text-align: center; }
.pdsp-cari-kaki { display: flex; gap: 1.2rem; padding: .7rem 1.2rem; border-top: 1px solid var(--pdsp-garis); font-size: .75rem; color: var(--pdsp-redup); }
@media (max-width: 640px) { .pdsp-cari-kaki { display: none; } }

/* atribut hidden harus menang atas display:flex/grid komponen plugin (jendela cari, laci, slider) */
.pdsp-cari-modal[hidden], .pdsp-cari-latar[hidden], .pdsp-laci[hidden], .pdsp-laci-latar[hidden], .pdsp-laci-sub[hidden], [data-lebih][hidden], .pdsp-katalog-butir[hidden], [data-kosong][hidden] { display: none !important; }

/* hero selebar layar: pembungkus atomik akar membawa padding 10px */
.e-con:has(> .pdsp-hero) { padding: 0 !important; gap: 0 !important; }
/* jendela cari dirender di footer: jangan ikut warna tautan putih footer */
.pdsp-kaki .pdsp-cari-modal a { color: var(--pdsp-tinta) !important; text-decoration: none !important; }
.pdsp-kaki .pdsp-cari-modal a:hover strong, .pdsp-kaki .pdsp-cari-modal a.aktif strong { color: var(--pdsp-oranye-tua); }

/* ======================================================================= PDSP dalam Angka */
:root { --pdsp-s1: #1F5C99; --pdsp-s2: #C8650A; --pdsp-s3: #2E9E6B; --pdsp-s0: #9AA3AE; }
html[data-tema="gelap"] { --pdsp-s1: #4F8ACB; --pdsp-s2: #CF7A2A; --pdsp-s3: #34996D; --pdsp-s0: #6B7380; }
.s1 { --w: var(--pdsp-s1); } .s2 { --w: var(--pdsp-s2); } .s3 { --w: var(--pdsp-s3); } .s0 { --w: var(--pdsp-s0); }

/* ---------- blok megah ---------- */
.pdsp-am { position: relative; isolation: isolate; width: 100%; box-sizing: border-box; padding: clamp(1.5rem, 3.5vw, 3rem); border-radius: 28px; overflow: hidden; color: #EAF1FA;
	background: radial-gradient(120% 140% at 0% 0%, #12508F 0%, #0A3D72 38%, #061F3E 100%); box-shadow: 0 40px 80px -40px rgba(6, 31, 62, .8); }
.pdsp-am::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
	background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 36px 36px;
	mask-image: radial-gradient(80% 80% at 70% 20%, #000 30%, transparent 80%); -webkit-mask-image: radial-gradient(80% 80% at 70% 20%, #000 30%, transparent 80%); }
.pdsp-am::after { content: ""; position: absolute; right: -10%; top: -30%; width: 55%; aspect-ratio: 1; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(247, 134, 26, .28), transparent 65%); }
.pdsp-am-kepala { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.8rem; }
.pdsp-am-kepala h2 { margin: .35rem 0 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 800; line-height: 1.1; color: #fff; }
.pdsp-am-eyebrow { margin: 0; font-family: var(--pdsp-font-kapital, "Cinzel"), serif; font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #FFB866; }
.pdsp-am-semua, .pdsp-am-lanjut { display: inline-flex; align-items: center; gap: .5rem; font-weight: 800; text-decoration: none; }
.pdsp-am-semua { min-height: 46px; padding: 0 1.2rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .3); color: #fff !important; }
.pdsp-am-semua:hover { background: rgba(255, 255, 255, .12); }
.pdsp-am-semua .pdsp-ikon, .pdsp-am-lanjut .pdsp-ikon { width: 18px; height: 18px; }
.pdsp-am-ubin-baris { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1024px) { .pdsp-am-ubin-baris { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .pdsp-am-ubin-baris { grid-template-columns: minmax(0, 1fr); } }
.pdsp-am-ubin { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; padding: 1.3rem 1.3rem 1.25rem; border-radius: 20px; border: 1px solid rgba(255, 255, 255, .14);
	background: rgba(255, 255, 255, .06); color: inherit; font: inherit; text-align: left; cursor: pointer; backdrop-filter: blur(6px); transition: transform .25s cubic-bezier(.2, .8, .2, 1), background-color .2s ease, border-color .2s ease, box-shadow .25s ease; }
.pdsp-am-ubin:hover { transform: translateY(-4px); background: rgba(255, 255, 255, .1); color: inherit; }
.pdsp-am-ubin:focus { background: rgba(255, 255, 255, .1); color: inherit; }
.pdsp-am-ubin.aktif { background: linear-gradient(160deg, rgba(247, 134, 26, .22), rgba(255, 255, 255, .08)); border-color: rgba(255, 184, 102, .65); box-shadow: 0 18px 40px -22px rgba(247, 134, 26, .8); }
.pdsp-am-ubin.aktif::after { content: ""; position: absolute; left: 50%; bottom: -9px; width: 16px; height: 16px; transform: translateX(-50%) rotate(45deg); background: rgba(255, 184, 102, .55); border-radius: 3px; }
@media (max-width: 1024px) { .pdsp-am-ubin.aktif::after { display: none; } }
.pdsp-am-atas { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-bottom: .55rem; min-height: 52px; }
.pdsp-ikon-duo { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 16px; color: #FFB866;
	background: linear-gradient(145deg, rgba(255, 184, 102, .26), rgba(255, 184, 102, .06)); box-shadow: inset 0 0 0 1px rgba(255, 184, 102, .35); }
.pdsp-ikon-duo svg { width: 28px; height: 28px; }
.pdsp-am-angka { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: clamp(2.6rem, 4.6vw, 3.6rem); font-weight: 800; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.pdsp-am-label { font-weight: 800; font-size: 1rem; color: #fff; }
.pdsp-am-ket { font-size: .82rem; color: #A9BAD0; }
.pdsp-cincin { width: 52px; height: 52px; }
.pdsp-cincin-dasar { fill: none; stroke: rgba(255, 255, 255, .15); stroke-width: 7; }
.pdsp-cincin-isi { fill: none; stroke: #FFB866; stroke-width: 7; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 32px 32px; transition: stroke-dashoffset 1.4s cubic-bezier(.2, .8, .2, 1); }
.pdsp-cincin-hijau .pdsp-cincin-isi { stroke: #5FD49B; }
.pdsp-spark { display: flex; align-items: flex-end; gap: 4px; height: 44px; }
.pdsp-spark i { display: block; width: 7px; height: var(--t); min-height: 3px; border-radius: 3px 3px 1px 1px; background: linear-gradient(#FFB866, rgba(255, 184, 102, .35)); transform-origin: bottom; }
.pdsp-am.terlihat .pdsp-spark i { animation: pdsp-tumbuh .9s cubic-bezier(.2, .8, .2, 1) both; }
.pdsp-spark i:nth-child(2) { animation-delay: .06s !important; } .pdsp-spark i:nth-child(3) { animation-delay: .12s !important; } .pdsp-spark i:nth-child(4) { animation-delay: .18s !important; }
.pdsp-spark i:nth-child(5) { animation-delay: .24s !important; } .pdsp-spark i:nth-child(6) { animation-delay: .3s !important; } .pdsp-spark i:nth-child(7) { animation-delay: .36s !important; }
@keyframes pdsp-tumbuh { from { transform: scaleY(0); } }
.pdsp-wajah-tumpuk { display: flex; }
.elementor .pdsp-wajah, .pdsp-wajah { width: 34px !important; height: 34px !important; border-radius: 50% !important; object-fit: cover; border: 2px solid #0A3D72 !important; margin-left: -10px; background: #12508F; }
.pdsp-wajah:first-child { margin-left: 0; }
.pdsp-wajah-sisa { display: inline-flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 800; color: #1A0E04; background: #FFB866; }
.pdsp-am-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 2rem; margin-top: 1.5rem; padding: 1.6rem; border-radius: 20px; background: rgba(255, 255, 255, .95); color: #1E2430; animation: pdsp-panel .35s ease; }
html[data-tema="gelap"] .pdsp-am-panel { background: rgba(18, 20, 25, .92); color: #EDE8E2; }
@keyframes pdsp-panel { from { opacity: 0; transform: translateY(8px); } }
@media (max-width: 900px) { .pdsp-am-panel { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }
.pdsp-am-panel h3 { margin: 0 0 .6rem; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-size: 1.4rem; font-weight: 800; }
.pdsp-am-teks p { margin: 0 0 .7rem; line-height: 1.65; font-size: .95rem; }
.pdsp-am-lanjut { color: var(--pdsp-oranye-tua) !important; margin-top: .4rem; }
.pdsp-am-panel .pdsp-ig { margin: 0; padding: 0; border: 0; background: none; }
.pdsp-am-sumber { margin: 1.2rem 0 0; font-size: .76rem; color: #A9BAD0; }
.pdsp-am-panel[hidden] { display: none !important; }

/* ---------- komponen infografis ---------- */
.pdsp-ig { margin: 0; padding: 1.3rem; border-radius: 18px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); min-width: 0; }
.pdsp-ig figcaption { font-weight: 800; margin-bottom: .9rem; line-height: 1.35; color: var(--pdsp-tinta); }
.pdsp-ig-dua { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; width: 100%; margin-bottom: 1.25rem; }
@media (max-width: 900px) { .pdsp-ig-dua { grid-template-columns: minmax(0, 1fr); } }
.pdsp-ig-kanvas { overflow-x: auto; }
.pdsp-ig-kanvas svg { display: block; width: 100%; height: auto; }
.pdsp-kisi { stroke: var(--pdsp-garis); stroke-width: 1; }
.pdsp-dasar { stroke: var(--pdsp-redup); stroke-opacity: .5; }
.pdsp-sumbu { fill: var(--pdsp-redup); font-size: 12px; font-weight: 600; font-family: var(--pdsp-font-teks, sans-serif); }
.pdsp-label-nilai { fill: var(--pdsp-tinta); font-size: 12px; font-weight: 800; font-family: var(--pdsp-font-teks, sans-serif); }
.pdsp-bar-s { fill: var(--w); transition: opacity .2s ease, transform .5s cubic-bezier(.2, .8, .2, 1); transform-box: fill-box; transform-origin: bottom; }
.pdsp-ig:not(.terlihat) .pdsp-bar-s { transform: scaleY(0); }
.pdsp-ig figure:has(.sorot) .pdsp-bar-s:not(.sorot), .pdsp-ig:has(.sorot) .pdsp-bar-s:not(.sorot) { opacity: .45; }
.pdsp-bar-s:focus { outline: none; stroke: var(--pdsp-tinta); stroke-width: 2; }
.pdsp-sasaran { fill: transparent; cursor: pointer; }
.pdsp-sembunyi { display: none; }
.pdsp-legenda-i { display: flex; flex-wrap: wrap; gap: .4rem; margin: -.3rem 0 .6rem; }
.pdsp-leg { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .7rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-kertas); color: var(--pdsp-tinta); font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.pdsp-leg:hover, .pdsp-leg:focus { background: var(--pdsp-hangat); color: var(--pdsp-tinta); }
.pdsp-leg i { width: 12px; height: 12px; border-radius: 3px; background: var(--w); }
.pdsp-leg[aria-pressed="false"] { opacity: .5; text-decoration: line-through; }
.pdsp-bd { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.pdsp-bd li { display: grid; grid-template-columns: minmax(6rem, 38%) minmax(0, 1fr) auto; gap: .7rem; align-items: center; font-size: .86rem; }
.pdsp-bd-label { color: var(--pdsp-tinta); font-weight: 600; overflow-wrap: anywhere; }
.pdsp-bd-jalur { height: 12px; border-radius: 6px; background: color-mix(in srgb, var(--pdsp-garis) 60%, transparent); overflow: hidden; }
.pdsp-bd-isi { display: block; height: 100%; width: var(--l); border-radius: 6px; background: var(--w); transition: width 1s cubic-bezier(.2, .8, .2, 1); }
.pdsp-ig:not(.terlihat) .pdsp-bd-isi { width: 0; }
.pdsp-bd li b { font-variant-numeric: tabular-nums; color: var(--pdsp-tinta); }
.pdsp-am-panel .pdsp-bd-label, .pdsp-am-panel .pdsp-bd li b, .pdsp-am-panel figcaption { color: inherit; }
.pdsp-donat-baris { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; }
.pdsp-donat-baris svg { width: 180px; height: 180px; flex: none; }
.pdsp-donat-seg { fill: none; stroke: var(--w); stroke-width: 24; cursor: pointer; transition: stroke-width .2s ease; }
.pdsp-donat-seg:hover, .pdsp-donat-seg:focus { stroke-width: 30; outline: none; }
.pdsp-donat-angka { fill: var(--pdsp-tinta); font: 800 34px var(--pdsp-font-judul, sans-serif); }
.pdsp-donat-kecil { fill: var(--pdsp-redup); font: 600 13px var(--pdsp-font-teks, sans-serif); }
.pdsp-donat-leg { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .45rem; flex: 1; min-width: 10rem; }
.pdsp-donat-leg li { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto auto; gap: .5rem; align-items: center; font-size: .86rem; }
.pdsp-donat-leg i { width: 12px; height: 12px; border-radius: 3px; background: var(--w); }
.pdsp-donat-leg small { color: var(--pdsp-redup); min-width: 3.2rem; text-align: right; }
.pdsp-ig-catatan { margin: .9rem 0 0; font-size: .8rem; line-height: 1.55; color: var(--pdsp-redup); }
.pdsp-tip { position: fixed; z-index: 1400; max-width: 18rem; padding: .45rem .7rem; border-radius: 10px; background: #0F1B2D; color: #fff; font-size: .8rem; font-weight: 700; pointer-events: none; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .5); }
.pdsp-tip[hidden] { display: none !important; }
.pdsp-linimasa { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem; }
.pdsp-linimasa li { position: relative; padding: 1.1rem 1.1rem 1.1rem 1.25rem; border-radius: 16px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); border-top: 4px solid var(--pdsp-oranye); }
.pdsp-linimasa time { font-size: .76rem; font-weight: 800; color: var(--pdsp-oranye-tua); }
.pdsp-linimasa h3 { margin: .35rem 0 .3rem; font-size: 1rem; }
.pdsp-linimasa p { margin: 0; font-size: .84rem; line-height: 1.5; color: var(--pdsp-redup); }
@media (prefers-reduced-motion: reduce) { .pdsp-bar-s, .pdsp-bd-isi, .pdsp-cincin-isi { transition: none !important; } .pdsp-spark i { animation: none !important; } .pdsp-ig:not(.terlihat) .pdsp-bar-s { transform: none; } .pdsp-ig:not(.terlihat) .pdsp-bd-isi { width: var(--l); } }

/* ---------------------------------------------------------------- pagar menu anggota (30-10-2026): gembok + pemberitahuan akses seizin prodi */
.pdsp-gembok { display: inline-block; width: .85em; height: .85em; margin-left: .35em; vertical-align: -.08em; opacity: .75; flex: none; }
.pdsp-terkunci:hover .pdsp-gembok, .pdsp-terkunci:focus-visible .pdsp-gembok { opacity: 1; }
.pdsp-bawah a.pdsp-butir.pdsp-terkunci { position: relative; }
.pdsp-bawah a.pdsp-butir.pdsp-terkunci .pdsp-gembok { position: absolute; top: .3rem; left: calc(50% + .55rem); width: 15px; height: 15px; margin: 0; padding: 2px; border-radius: 999px;
	background: var(--pdsp-kertas); color: var(--pdsp-oranye-tua); box-shadow: 0 0 0 1px var(--pdsp-garis); opacity: 1; }
.pdsp-sorot-tombol .pdsp-gembok { display: none; }
html.pdsp-kunci-terbuka { overflow: hidden; }
.pdsp-kunci-latar { position: fixed; inset: 0; z-index: 1400; display: grid; place-items: center; padding: 1rem; background: rgba(5, 14, 28, .6);
	backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); opacity: 0; transition: opacity .18s ease-out; }
.pdsp-kunci-latar[hidden] { display: none !important; }
.pdsp-kunci-latar.tampil { opacity: 1; }
.pdsp-kunci-kartu { position: relative; width: min(30rem, 100%); padding: 2rem 1.75rem 1.6rem; border-radius: 22px; text-align: center;
	background: var(--pdsp-kertas); color: var(--pdsp-tinta); border: 1px solid var(--pdsp-garis); box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .55); }
.pdsp-kunci-dialog { transform: translateY(10px) scale(.98); transition: transform .2s ease-out; outline: none; }
.pdsp-kunci-latar.tampil .pdsp-kunci-dialog { transform: none; }
@media (prefers-reduced-motion: reduce) { .pdsp-kunci-latar, .pdsp-kunci-dialog { transition: none; } }
.pdsp-kunci-ik { display: inline-grid; place-items: center; width: 64px; height: 64px; margin-bottom: .9rem; border-radius: 20px;
	background: linear-gradient(145deg, var(--pdsp-hangat), transparent); color: var(--pdsp-oranye-tua); box-shadow: inset 0 0 0 1px var(--pdsp-garis); }
.pdsp-kunci-ik svg { width: 30px; height: 30px; margin: 0; opacity: 1; }
.pdsp-kunci-label { margin: 0 0 .35rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--pdsp-oranye-tua); }
.pdsp-kunci-kartu h1, .pdsp-kunci-kartu h2 { margin: 0 0 .6rem; font-size: clamp(1.25rem, 1.05rem + .9vw, 1.6rem); line-height: 1.25; color: var(--pdsp-tinta); }
.pdsp-kunci-kartu p { margin: 0 0 1.2rem; color: var(--pdsp-redup); line-height: 1.6; }
.pdsp-kunci-aksi { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.pdsp-kunci-aksi .pdsp-kunci-utama { display: inline-flex; align-items: center; gap: .4rem; min-height: 46px; padding: .7rem 1.3rem; border-radius: 999px;
	background: var(--pdsp-oranye); color: #1A0E04 !important; font-weight: 800; text-decoration: none; }
.pdsp-kunci-aksi .pdsp-kunci-utama .pdsp-ikon { width: 18px; height: 18px; }
.pdsp-kunci-aksi .pdsp-kunci-kedua, .pdsp-kunci-aksi button.pdsp-kunci-kedua:hover, .pdsp-kunci-aksi button.pdsp-kunci-kedua:focus { display: inline-flex; align-items: center; min-height: 46px; padding: .7rem 1.3rem; border-radius: 999px;
	border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta) !important; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.pdsp-kunci-aksi .pdsp-kunci-kedua:hover { border-color: var(--pdsp-oranye); }
.pdsp-kunci-kartu .pdsp-kunci-kecil { margin: 1.1rem 0 0; font-size: .85rem; }
.pdsp-kunci-kartu .pdsp-kunci-kecil a { color: var(--pdsp-oranye-tua) !important; font-weight: 700; }
.pdsp-kunci-x, .pdsp-kunci-x:hover, .pdsp-kunci-x:focus { position: absolute; top: .6rem; right: .6rem; width: 40px; height: 40px; border: 0; border-radius: 999px; padding: 0;
	background: transparent; color: var(--pdsp-redup); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.pdsp-kunci-x:hover { background: var(--pdsp-permukaan); color: var(--pdsp-tinta); }
.pdsp-kunci-hal { display: grid; place-items: center; min-height: 62vh; padding: 4rem 1rem; background: radial-gradient(60rem 30rem at 50% 0, var(--pdsp-hangat), transparent 70%); }
.pdsp-tombol-utama.pdsp-terkunci, .pdsp-laci-cta.pdsp-terkunci { white-space: nowrap; }
.pdsp-tombol-utama.pdsp-terkunci .pdsp-gembok { flex: none; }
.pdsp-ig, .pdsp-ig-dua > *, .pdsp-ig-kanvas { min-width: 0; max-width: 100%; }
/* Header HP sempit (≤480px): kolom alat (cari, bendera, tema) tidak melewati layar; logo yang menyusut. */
@media (max-width: 480px) {
	.e-con:has(> .e-con > .pdsp-tema-toggle) { padding-inline: .75rem !important; gap: .5rem !important; }
	.e-con:has(> .e-con > .pdsp-tema-toggle) > .e-con:not(:has(> .pdsp-tema-toggle)) { min-width: 0; flex-shrink: 1; }
	.e-con:has(> .e-con > .pdsp-tema-toggle) > .e-con:not(:has(> .pdsp-tema-toggle)) img { max-width: 100%; height: auto; }
	.e-con:has(> .pdsp-tema-toggle) { padding-inline: 0 !important; gap: .4rem !important; flex: none; }
}

/* ---------------------------------------------------------------- profil doktor /doktor/<nama>/ (31-10-2026) */
.pdsp-pd-wadah { display: block; padding: 2rem 1rem 4rem; background: radial-gradient(70rem 26rem at 50% -6rem, var(--pdsp-hangat), transparent 70%); }
.pdsp-profil-doktor { max-width: 72rem; margin: 0 auto; color: var(--pdsp-tinta); }
.pdsp-profil-doktor .pdsp-remah { font-size: .85rem; color: var(--pdsp-redup); margin: 0 0 1.5rem; }
.pdsp-profil-doktor .pdsp-remah a { color: var(--pdsp-redup); text-decoration: none; }
.pdsp-profil-doktor .pdsp-remah a:hover { color: var(--pdsp-oranye-tua); }
.pdsp-pd-kepala { display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); gap: 2.5rem; align-items: center; margin-bottom: 2.5rem; }
@media (max-width: 767px) { .pdsp-pd-kepala { grid-template-columns: 1fr; gap: 1.5rem; } .pdsp-pd-foto { max-width: 18rem; } }
.pdsp-pd-foto { position: relative; aspect-ratio: 4 / 5; border-radius: 24px; overflow: hidden; background: var(--pdsp-permukaan); box-shadow: 0 30px 60px -30px rgba(10, 30, 60, .45); border: 1px solid var(--pdsp-garis); }
.elementor .pdsp-pd-foto img.pdsp-pd-img, .pdsp-pd-foto img.pdsp-pd-img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; border-radius: 0; }
.pdsp-pd-foto .pdsp-inisial { display: grid; place-items: center; width: 100%; height: 100%; font: 800 4rem/1 var(--pdsp-font-judul, sans-serif); color: var(--pdsp-oranye-tua); }
.pdsp-pd-ke { display: inline-block; margin: 0 0 .7rem; padding: .3rem .8rem; border-radius: 999px; background: var(--pdsp-oranye); color: #1A0E04; font-weight: 800; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.pdsp-pd-identitas h1 { margin: 0 0 1.2rem; font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3rem); line-height: 1.1; color: var(--pdsp-tinta); }
.pdsp-pd-fakta { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .9rem 1.5rem; margin: 0 0 1.5rem; }
.pdsp-pd-fakta div { padding-left: .8rem; border-left: 3px solid var(--pdsp-oranye); }
.pdsp-pd-fakta dt { font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--pdsp-redup); }
.pdsp-pd-fakta dd { margin: .15rem 0 0; font-weight: 700; line-height: 1.4; }
.pdsp-pd-identitas .pdsp-bagikan { border-top: 0; padding-top: 0; }
.pdsp-pd-bagian { margin: 0 0 1.5rem; padding: 1.6rem 1.75rem; border-radius: 20px; background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); }
@media (max-width: 640px) { .pdsp-pd-bagian { padding: 1.2rem 1.1rem; } }
.pdsp-pd-bagian h2 { margin: 0 0 1rem; font-size: 1.15rem; color: var(--pdsp-tinta); }
.pdsp-pd-judul { margin: 0 0 1.2rem; font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem); font-weight: 700; font-style: italic; line-height: 1.5; color: var(--pdsp-tinta); }
.pdsp-pd-aksi { display: flex; flex-wrap: wrap; gap: .6rem; }
.pdsp-pd-aksi .pdsp-pd-tombol { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .55rem 1.1rem; border-radius: 999px; background: var(--pdsp-oranye); color: #1A0E04 !important; font-weight: 800; font-size: .9rem; text-decoration: none; }
.pdsp-pd-aksi .pdsp-pd-tombol-garis { background: var(--pdsp-permukaan); color: var(--pdsp-tinta) !important; border: 1px solid var(--pdsp-garis); }
.pdsp-pd-aksi .pdsp-pd-tombol:hover { filter: brightness(1.05); border-color: var(--pdsp-oranye); }
.pdsp-pd-aksi .pdsp-ikon { width: 18px; height: 18px; }
.pdsp-pd-publikasi { margin: 0 0 .8rem; padding-left: 1.3rem; display: grid; gap: .9rem; }
.pdsp-pd-publikasi li { line-height: 1.5; }
.pdsp-pd-publikasi a { font-weight: 700; color: var(--pdsp-tinta); text-decoration: none; }
.pdsp-pd-publikasi a:hover { color: var(--pdsp-oranye-tua); text-decoration: underline; }
.pdsp-pd-publikasi a .pdsp-ikon { width: 14px; height: 14px; margin-left: .3rem; vertical-align: -.1em; color: var(--pdsp-redup); }
.pdsp-pd-publikasi span { display: block; font-size: .85rem; color: var(--pdsp-redup); }
.pdsp-pd-linimasa { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; border-left: 2px solid var(--pdsp-garis); }
.pdsp-pd-linimasa li { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding-left: 1.2rem; }
.pdsp-pd-linimasa li::before { content: ""; position: absolute; left: -6px; width: 10px; height: 10px; border-radius: 50%; background: var(--pdsp-oranye); }
.pdsp-pd-linimasa time { font-size: .9rem; color: var(--pdsp-redup); }
.pdsp-pd-linimasa a { display: inline-flex; color: var(--pdsp-redup); }
.pdsp-pd-linimasa .pdsp-ikon { width: 16px; height: 16px; }
.pdsp-pd-bagian .pdsp-testimoni { grid-template-columns: 1fr; }
.pdsp-pd-nav { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; margin: 2rem 0 1rem; }
.pdsp-pd-nav a { color: var(--pdsp-tinta); text-decoration: none; font-weight: 700; line-height: 1.3; }
.pdsp-pd-nav a small { display: block; font-size: .75rem; color: var(--pdsp-redup); font-weight: 700; }
.pdsp-pd-nav a[rel="next"] { text-align: right; }
.pdsp-pd-nav a:hover { color: var(--pdsp-oranye-tua); }
.pdsp-pd-nav .pdsp-pd-semua { padding: .55rem 1rem; border-radius: 999px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); font-size: .85rem; white-space: nowrap; }
@media (max-width: 640px) { .pdsp-pd-nav { grid-template-columns: 1fr 1fr; } .pdsp-pd-nav .pdsp-pd-semua { grid-column: 1 / -1; order: 3; text-align: center; } }
.pdsp-katalog-judul a { color: inherit; text-decoration: none; }
.pdsp-katalog-judul a:hover { color: var(--pdsp-oranye-tua); text-decoration: underline; }
.pdsp-pd-identitas h1, .pdsp-pd-bagian h2, .pdsp-pd-nav a { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; }
.pdsp-pd-identitas h1 { font-weight: 800; letter-spacing: -.01em; }
.pdsp-pd-bagian h2 { font-weight: 800; font-size: 1.3rem; }

/* ---------------------------------------------------------------- undangan ujian & mahasiswa aktif (31-10-2026) */
.pdsp-und-kartu { position: relative; overflow: hidden; margin: 0 0 1.5rem; padding: 2.4rem 2.2rem 2rem; border-radius: 26px; color: #fff;
	background: radial-gradient(28rem 28rem at 100% 0, rgba(247, 134, 26, .2), transparent 60%), linear-gradient(140deg, #0A3D72, #051F3D); box-shadow: 0 40px 80px -40px rgba(5, 31, 61, .6); }
.pdsp-und-kartu::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; background: var(--pdsp-oranye); }
@media (max-width: 640px) { .pdsp-und-kartu { padding: 1.8rem 1.2rem 1.4rem; } }
.pdsp-und-label { display: inline-block; margin: 0 0 1rem; padding: .3rem .9rem; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pdsp-und-kartu.akan .pdsp-und-label { background: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-und-prodi { margin: 0 0 1.2rem; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #FFB866; }
.pdsp-und-kartu h1 { margin: 0 0 .4rem; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: clamp(1.8rem, 1.2rem + 2.6vw, 3rem); line-height: 1.08; color: #fff; }
.pdsp-und-kartu h1 span { display: block; font-size: .55em; color: #FFB866; margin-bottom: .3rem; }
.pdsp-und-npm { margin: 0 0 1.2rem; color: rgba(255, 255, 255, .72); font-weight: 600; }
.pdsp-und-judul { margin: 0 0 1.6rem; max-width: 52rem; font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem); font-style: italic; font-weight: 600; line-height: 1.55; color: rgba(255, 255, 255, .94); }
.pdsp-und-kartu .pdsp-pd-fakta { margin: 0; padding-top: 1.2rem; border-top: 1px solid rgba(255, 255, 255, .16); }
.pdsp-und-kartu .pdsp-pd-fakta dt { color: rgba(255, 255, 255, .62); }
.pdsp-und-kartu .pdsp-pd-fakta dd { color: #fff; }
.pdsp-und-aksi { margin-bottom: 1.2rem; }
.pdsp-pd-aksi button.pdsp-pd-tombol { border: 0; cursor: pointer; font: inherit; font-weight: 800; font-size: .9rem; }
.pdsp-pd-aksi button.pdsp-pd-tombol:hover, .pdsp-pd-aksi button.pdsp-pd-tombol:focus { background: var(--pdsp-oranye); color: #1A0E04; }
.pdsp-pd-aksi button.pdsp-pd-tombol:disabled { opacity: .6; cursor: progress; }
.pdsp-undangan .pdsp-bagikan { border-top: 0; padding-top: 0; margin-bottom: 1.5rem; }
.pdsp-und-lain, .pdsp-mhs-daftar { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.pdsp-und-lain a, .pdsp-mhs-daftar a { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .7rem; padding: .7rem .9rem; border-radius: 14px; border: 1px solid var(--pdsp-garis);
	background: var(--pdsp-permukaan); color: var(--pdsp-tinta); text-decoration: none; }
.pdsp-und-lain a:hover, .pdsp-mhs-daftar a:hover { border-color: var(--pdsp-oranye); }
.pdsp-und-lain time, .pdsp-mhs-daftar time { margin-left: auto; font-size: .82rem; color: var(--pdsp-redup); }
.pdsp-mhs-daftar em { flex-basis: 100%; font-size: .88rem; color: var(--pdsp-redup); line-height: 1.45; }
.pdsp-mhs-kepala { margin: 0 0 1.5rem; }
.pdsp-mhs-kepala h1 { margin: 0 0 .6rem; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: clamp(1.8rem, 1.2rem + 2.4vw, 2.8rem); line-height: 1.1; color: var(--pdsp-tinta); }
.pdsp-mhs-kepala > p:last-child { max-width: 46rem; color: var(--pdsp-redup); line-height: 1.6; }
.pdsp-mhs-kisi { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.pdsp-mhs-angkatan { padding: 1.3rem 1.3rem 1.1rem; border-radius: 20px; background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); }
.pdsp-mhs-angkatan header { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; margin-bottom: .8rem; }
.pdsp-mhs-angkatan h2 { margin: 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--pdsp-tinta); }
.pdsp-mhs-angkatan header p { margin: 0; font-size: .85rem; color: var(--pdsp-redup); }
.pdsp-mhs-angkatan header b { color: var(--pdsp-tinta); font-size: 1.05rem; }
.pdsp-mhs-sisa { margin: .7rem 0 0; font-size: .85rem; color: var(--pdsp-redup); line-height: 1.5; }
.pdsp-mhs-dinding { display: inline-flex; align-items: center; gap: .3rem; margin-top: .7rem; font-size: .85rem; font-weight: 700; color: var(--pdsp-oranye-tua); text-decoration: none; }
.pdsp-mhs-dinding .pdsp-ikon { width: 15px; height: 15px; }
.pdsp-agenda-isi h3 a, .pdsp-agenda-ringkas h3 a { color: inherit; text-decoration: none; }
.pdsp-agenda-isi h3 a:hover, .pdsp-agenda-ringkas h3 a:hover { color: var(--pdsp-oranye-tua); text-decoration: underline; }

/* ---------------------------------------------------------------- halaman non-Elementor (Kebijakan Privasi dsb.) berbusana PDSP (31-10-2026) */
body.page:not(.elementor-page) .site-main, body.page:not(.elementor-page) main#content.site-main { max-width: 52rem; margin: 0 auto; padding: 0 1rem 4rem; color: var(--pdsp-tinta); }
body.page:not(.elementor-page) .page-header { margin: 2rem 0 2rem; padding: 2.4rem 2rem 2rem; border-radius: 24px; border: 1px solid var(--pdsp-garis); background: radial-gradient(40rem 16rem at 0 0, var(--pdsp-hangat), transparent 75%), var(--pdsp-kertas); }
@media (max-width: 640px) { body.page:not(.elementor-page) .page-header { padding: 1.6rem 1.2rem 1.4rem; } }
body.page:not(.elementor-page) .page-header .entry-title { margin: 0; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); line-height: 1.1; color: var(--pdsp-tinta); }
body.page:not(.elementor-page) .page-content { font-size: 1.02rem; line-height: 1.75; }
body.page:not(.elementor-page) .page-content h2 { margin: 2.2rem 0 .8rem; font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.45rem; color: var(--pdsp-tinta); }
body.page:not(.elementor-page) .page-content ul { padding-left: 1.3rem; margin: 0 0 1rem; }
body.page:not(.elementor-page) .page-content li { margin-bottom: .45rem; }
body.page:not(.elementor-page) .page-content p:first-child em { display: inline-block; padding: .5rem .9rem; border-radius: 12px; background: var(--pdsp-permukaan); border: 1px solid var(--pdsp-garis); color: var(--pdsp-redup); font-size: .9rem; }
body.page:not(.elementor-page) .page-content a { color: var(--pdsp-oranye-tua); }
.pdsp-tautan-privasi { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------------- masuk dengan kode email (01-11-2026) */
.pdsp-masuk-form { display: grid; gap: .6rem; margin: 0 auto 1rem; max-width: 22rem; text-align: left; }
.pdsp-masuk-form label { font-weight: 700; font-size: .9rem; color: var(--pdsp-tinta); }
.pdsp-masuk-form input { width: 100%; min-height: 48px; padding: .7rem .9rem; border-radius: 12px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-permukaan); color: var(--pdsp-tinta); font: inherit; font-size: 1rem; box-sizing: border-box; }
.pdsp-masuk-form input:focus { outline: 3px solid var(--pdsp-oranye); outline-offset: 1px; }
.pdsp-masuk-form .pdsp-masuk-kode { font-size: 1.6rem; letter-spacing: .6em; text-align: center; font-variant-numeric: tabular-nums; }
.pdsp-masuk-form button.pdsp-pd-tombol, .pdsp-masuk-form button.pdsp-pd-tombol:hover, .pdsp-masuk-form button.pdsp-pd-tombol:focus { justify-content: center; min-height: 48px; border: 0; border-radius: 999px; background: var(--pdsp-oranye); color: #1A0E04; font: inherit; font-weight: 800; cursor: pointer; }
.pdsp-masuk-pesan { margin: 0 auto 1rem !important; max-width: 24rem; padding: .7rem .9rem; border-radius: 12px; background: var(--pdsp-hangat); color: var(--pdsp-tinta) !important; font-size: .9rem; }
.pdsp-masuk-ulang { margin: .2rem 0 0 !important; text-align: center; font-size: .85rem; }
.pdsp-masuk-ulang a { color: var(--pdsp-oranye-tua); }
/* kartu kode ala Gmail di /masuk/?kode= */
.pdsp-kode-kartu { margin: 0 auto 1.2rem; max-width: 24rem; padding: 1.1rem 1.2rem 1.2rem; border-radius: 16px; background: #EEF2F7; text-align: left; }
.pdsp-kode-label { margin: 0 0 .7rem !important; font-size: .9rem; color: #444746 !important; }
.pdsp-kode-digit { display: flex; gap: .45rem; margin: 0 0 1rem !important; }
.pdsp-kode-digit span { flex: 1; max-width: 3rem; padding: .55rem 0; border-radius: 8px; background: #FFFFFF; text-align: center; font-size: 1.7rem; line-height: 1.2; color: #1F1F1F; box-shadow: 0 1px 2px rgba(31,31,31,.12); font-variant-numeric: tabular-nums; }
.pdsp-kode-salin, .pdsp-kode-salin:hover, .pdsp-kode-salin:focus { padding: .7rem 1.8rem; border: 0; border-radius: 999px; background: #0B57D0; color: #FFFFFF; font: inherit; font-weight: 600; cursor: pointer; }
.pdsp-kode-catatan { margin: .9rem 0 0 !important; font-size: .85rem; color: #5B6676 !important; }
:root[data-tema="gelap"] .pdsp-kode-kartu { background: #1E2938; }
:root[data-tema="gelap"] .pdsp-kode-label { color: #C4CCD6 !important; }
:root[data-tema="gelap"] .pdsp-kode-digit span { background: #10161F; color: #EEF2F7; }
.pdsp-masuk-galat { background: #FDECEC !important; color: #8A1C1C !important; border: 1px solid #F3C4C4; }
:root[data-tema="gelap"] .pdsp-masuk-galat { background: #3A1A1A !important; color: #F6B8B8 !important; border-color: #5A2A2A; }
.pdsp-masuk-petunjuk { font-size: .8rem; color: var(--pdsp-redup); margin-top: -.2rem; }

/* ======================================================================= profil mahasiswa tahap 2 (v1.15) */
.pd-pesan-galat { border-color: var(--pdsp-koral); background: color-mix(in srgb, var(--pdsp-koral) 12%, var(--pdsp-permukaan)); }
.pdv-lencana { flex: 0 0 auto; font-size: .7rem; font-weight: 700; padding: .15rem .6rem; border-radius: 99px; border: 1px solid var(--pdsp-garis); color: var(--pdsp-redup); white-space: nowrap; }
.pdv-lencana.tampil { border-color: transparent; background: color-mix(in srgb, var(--pdsp-hijau) 18%, transparent); color: var(--pdsp-tinta); }
.pdv-lencana.tampil::before { content: "● "; color: var(--pdsp-hijau); }
.pdv-profil .pdv-catatan a { color: var(--pdsp-oranye-tua); font-weight: 700; }
.pdv-info { margin: 0 0 .6rem; padding: .5rem .7rem; border-radius: 10px; font-size: .78rem; line-height: 1.45; background: color-mix(in srgb, var(--pdsp-kuning) 18%, var(--pdsp-permukaan)); border: 1px solid color-mix(in srgb, var(--pdsp-kuning) 45%, var(--pdsp-garis)); }
.pdv-info-tolak { background: color-mix(in srgb, var(--pdsp-koral) 10%, var(--pdsp-permukaan)); border-color: color-mix(in srgb, var(--pdsp-koral) 45%, var(--pdsp-garis)); }
.pdv-ubah { border-top: 1px solid var(--pdsp-garis); }
.pdv-ubah > summary { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .84rem; font-weight: 700; color: var(--pdsp-oranye-tua); }
.pdv-ubah > summary::after { content: ""; width: .45rem; height: .45rem; margin-left: auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s ease-out; }
.pdv-ubah[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.pdv-ubah .pdv-form { padding-bottom: .3rem; }
.pdv-form textarea { width: 100%; font: inherit; font-size: .88rem; color: var(--pdsp-tinta); background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); border-radius: 9px; padding: .45rem .65rem; resize: vertical; min-height: 5rem; }
.pdv-form textarea:focus-visible { outline: 2px solid var(--pdsp-oranye); outline-offset: 1px; }
.pdv-form input[type="file"] { min-height: 0; padding: 0; border: 0; background: none; }
.pdv-saklar { display: flex !important; align-items: center; gap: .6rem !important; padding: .6rem .7rem; border-radius: 10px; background: var(--pdsp-hangat); color: var(--pdsp-tinta) !important; font-size: .84rem !important; font-weight: 700 !important; cursor: pointer; }
.pdv-form .pdv-saklar input, .pdv-form .pdv-centang input { width: auto; min-height: 0; padding: 0; }
.pdv-saklar input { appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 2.4rem !important; height: 1.35rem; border-radius: 99px; background: var(--pdsp-garis); border: 0; position: relative; cursor: pointer; transition: background .2s ease-out; }
.pdv-saklar input::after { content: ""; position: absolute; top: 3px; left: 3px; width: calc(1.35rem - 6px); height: calc(1.35rem - 6px); border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .2s ease-out; }
.pdv-saklar input:checked { background: var(--pdsp-hijau); }
.pdv-saklar input:checked::after { transform: translateX(1.05rem); }
.pdv-saklar input:focus-visible { outline: 2px solid var(--pdsp-oranye); outline-offset: 2px; }
.pdv-tampil { margin: 0; padding: .55rem .7rem .6rem; border: 1px solid var(--pdsp-garis); border-radius: 10px; display: flex; flex-wrap: wrap; gap: .35rem .9rem; }
.pdv-tampil legend { padding: 0 .3rem; font-size: .72rem; font-weight: 700; color: var(--pdsp-redup); }
.pdv-centang { display: inline-flex !important; align-items: center; gap: .35rem !important; font-size: .8rem !important; font-weight: 600 !important; color: var(--pdsp-tinta) !important; cursor: pointer; min-height: 32px; }
.pdv-centang input { accent-color: var(--pdsp-oranye); width: 1rem !important; height: 1rem; }
.pdsp-status-profil { background: color-mix(in srgb, var(--pdsp-hijau) 18%, transparent); }
.pdsp-profil-mhs { --pdv-r: 14px; }
.pdsp-profil-mhs .pdsp-mp-peta { margin: 0 0 1.5rem; }
.pdsp-profil-mhs .pdsp-pd-kepala { grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); }
@media (max-width: 767px) { .pdsp-profil-mhs .pdsp-pd-kepala { grid-template-columns: 1fr; } .pdsp-profil-mhs .pdsp-pd-foto { max-width: 14rem; } }
.pdsp-mp-ringkas p { margin: 0 0 .75rem; line-height: 1.7; color: var(--pdsp-tinta); }
.pdsp-profil-mhs .pdsp-pd-linimasa a { margin-left: auto; font-weight: 700; font-size: .85rem; color: var(--pdsp-oranye-tua); }
@media (max-width: 640px) { .pdsp-profil-mhs .pdv-peta em { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }

/* kartu Profil saya selebar dasbor, tepat di bawah kepala (v1.15.1) */
.pdv > .pdv-profil { padding: .85rem 1.1rem .35rem; }
.pdv-profil .pdv-kartu-kepala { justify-content: flex-start; flex-wrap: wrap; }
.pdv-profil-aksi { margin-left: auto; display: flex; flex-wrap: wrap; gap: .4rem; }
.pdv-profil .pdv-kartu-kepala .pdv-tombol-kecil { color: var(--pdsp-oranye-tua); }
.pdv-profil > .pdv-catatan { margin-bottom: .45rem; }
@media (min-width: 900px) {
	.pdv-profil .pdv-form { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.1rem; align-items: start; }
	.pdv-profil .pdv-saklar, .pdv-profil .pdv-tampil, .pdv-profil .pdv-isian-judul, .pdv-profil .pdv-isian-ringkas, .pdv-profil .pdv-aturan { grid-column: 1 / -1; }
	.pdv-profil .pdv-form button { grid-column: 1 / -1; }
}

/* pratinjau profil (v1.15.1) */
.pdv-tombol-baris { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
.pdv-tombol-baris small { font-size: .72rem; color: var(--pdsp-redup); }
.pdv .pdv-tombol-garis[type="submit"], html[data-tema="gelap"] .pdv .pdv-tombol-garis[type="submit"] { background: transparent; color: var(--pdsp-tinta); box-shadow: inset 0 0 0 1.5px var(--pdsp-garis); }
.pdv .pdv-tombol-garis[type="submit"]:hover { box-shadow: inset 0 0 0 1.5px var(--pdsp-oranye); color: var(--pdsp-oranye-tua); background: transparent; }
.pdsp-pratinjau { margin: 0 0 1.5rem; padding: .9rem 1.1rem; border-radius: 14px; border: 1.5px dashed color-mix(in srgb, var(--pdsp-oranye) 70%, var(--pdsp-garis)); background: color-mix(in srgb, var(--pdsp-oranye) 9%, var(--pdsp-kertas)); font-size: .88rem; line-height: 1.5; }
.pdsp-pratinjau p { margin: 0 0 .35rem; }
.pdsp-pratinjau b { display: inline-block; margin-right: .35rem; padding: .05rem .55rem; border-radius: 99px; background: var(--pdsp-oranye); color: #1A0E04; font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; }
.pdsp-pratinjau ul { margin: 0 0 .45rem; padding-left: 1.1rem; color: var(--pdsp-redup); }
.pdsp-pratinjau a { font-weight: 700; color: var(--pdsp-oranye-tua); }

/* kartu capaian siap bagi (v1.16) */
.pdv .pdv-tombol-utama { background: var(--pdsp-oranye); border-color: var(--pdsp-oranye); color: #1A0E04 !important; cursor: pointer; font-family: inherit; }
.pdv .pdv-tombol-utama:hover { background: var(--pdsp-oranye-tua); border-color: var(--pdsp-oranye-tua); color: #fff !important; }
.pdv-dialog { width: min(980px, calc(100vw - 1.5rem)); max-height: calc(100dvh - 1.5rem); padding: 0; border: 0; border-radius: 18px; background: var(--pdsp-permukaan); color: var(--pdsp-tinta); box-shadow: 0 30px 80px -20px rgba(5, 15, 30, .55); overflow: hidden; }
.pdv-dialog[open] { display: flex; flex-direction: column; }
.pdv-dialog::backdrop { background: rgba(5, 15, 30, .62); backdrop-filter: blur(3px); }
.pdv-dialog-kepala { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.1rem; border-bottom: 1px solid var(--pdsp-garis); }
.pdv-dialog-kepala h2 { font-size: 1.1rem; margin: 0; }
.pdv-dialog .pdv-tutup { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; border: 1px solid var(--pdsp-garis) !important; background: transparent !important; color: var(--pdsp-tinta) !important; font-size: 1.4rem; line-height: 1; cursor: pointer; box-shadow: none !important; }
.pdv-dialog .pdv-tutup:hover { border-color: var(--pdsp-oranye) !important; color: var(--pdsp-oranye-tua) !important; }
.pdv-dialog-isi { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 1.1rem; padding: 1.1rem; overflow: auto; }
.pdv-kanvas-wadah { display: grid; place-items: center; align-self: start; position: sticky; top: 0; padding: .75rem; border-radius: 14px; background: repeating-conic-gradient(var(--pdsp-kertas) 0 25%, var(--pdsp-permukaan) 0 50%) 0 0 / 22px 22px; border: 1px solid var(--pdsp-garis); }
.pdv-kanvas-wadah canvas { display: block; max-width: 100%; max-height: calc(100dvh - 9rem); width: auto; height: auto; border-radius: 10px; box-shadow: 0 14px 34px -14px rgba(5, 15, 30, .5); }
.pdv-pilih-format { margin: 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.pdv-pilih-format legend { width: 100%; margin-bottom: .3rem; padding: 0; font-size: .74rem; font-weight: 600; color: var(--pdsp-redup); }
.pdv-pilih-format label { position: relative; display: block !important; }
.pdv-pilih-format input { position: absolute; opacity: 0; width: 1px !important; height: 1px; }
.pdv-pilih-format span { display: grid; gap: .05rem; min-height: 44px; align-content: center; padding: .4rem .8rem; border: 1.5px solid var(--pdsp-garis); border-radius: 10px; font-size: .8rem; font-weight: 700; color: var(--pdsp-tinta); cursor: pointer; }
.pdv-pilih-format span small { font-size: .68rem; font-weight: 600; color: var(--pdsp-redup); }
.pdv-pilih-format input:checked + span { border-color: var(--pdsp-oranye); background: var(--pdsp-hangat); }
.pdv-pilih-format input:focus-visible + span { outline: 2px solid var(--pdsp-oranye); outline-offset: 2px; }
.pdv-kartu-opsi select { width: 100%; min-height: 44px; font: inherit; font-size: .86rem; color: var(--pdsp-tinta); background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); border-radius: 9px; padding: .4rem .6rem; }
.pdv-dialog .pdv-tombol-baris button { font: inherit; font-size: .82rem; font-weight: 700; min-height: 42px; padding: .4rem 1.05rem; border: 0; border-radius: 99px; background: var(--pdsp-navy, #0B2340); color: #fff; cursor: pointer; }
html[data-tema="gelap"] .pdv-dialog .pdv-tombol-baris button { background: var(--pdsp-oranye); color: #1A0E04; }
.pdv-dialog .pdv-tombol-baris .pdv-tombol-garis, html[data-tema="gelap"] .pdv-dialog .pdv-tombol-baris .pdv-tombol-garis { background: transparent; color: var(--pdsp-tinta); box-shadow: inset 0 0 0 1.5px var(--pdsp-garis); }
.pdv-dialog .pdv-tombol-baris .pdv-tombol-garis:hover { box-shadow: inset 0 0 0 1.5px var(--pdsp-oranye); color: var(--pdsp-oranye-tua); }
@media (max-width: 760px) {
	.pdv-dialog { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; border-radius: 0; }
	.pdv-dialog-isi { grid-template-columns: minmax(0, 1fr); padding: .85rem; }
	.pdv-kanvas-wadah { position: static; }
	.pdv-kanvas-wadah canvas { max-height: 46dvh; }
}

/* halaman 404 bernarasi (v1.16.2) */
.pdsp-404 .pdsp-kunci-kartu { width: min(36rem, 100%); box-shadow: 0 30px 70px -36px rgba(5, 15, 30, .45); }
.pdsp-404 .pdsp-kunci-kartu p { margin-bottom: 1rem; }
.pdsp-404-alasan { margin: 0 auto 1rem; padding: .9rem 1.1rem .9rem 2.1rem; max-width: 30rem; text-align: left; border-radius: 14px; background: var(--pdsp-hangat); color: var(--pdsp-tinta); line-height: 1.55; font-size: .93rem; }
.pdsp-404-alasan li { margin: .2rem 0; }
.pdsp-404-alasan li::marker { color: var(--pdsp-oranye-tua); }
.pdsp-404 .pdsp-404-catatan { font-size: .82rem; margin-bottom: 1.2rem; }
.pdsp-404 button.pdsp-kunci-utama { border: 0; cursor: pointer; font: inherit; font-weight: 800; }
.pdsp-404 button.pdsp-kunci-utama:hover, .pdsp-404 button.pdsp-kunci-utama:focus { background: var(--pdsp-oranye-tua); color: #fff !important; }
.pdsp-404-pintasan { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem .9rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--pdsp-garis); font-size: .88rem; }
.pdsp-404-pintasan a { color: var(--pdsp-oranye-tua) !important; font-weight: 700; text-decoration: none; }
.pdsp-404-pintasan a:hover { text-decoration: underline; }
@media (max-width: 480px) { .pdsp-404 .pdsp-kunci-kartu { padding: 1.6rem 1.1rem 1.3rem; } .pdsp-404-alasan { padding-left: 1.7rem; } }

/* foto resmi di formulir Profil saya (v1.17) */
.pdv-isian-foto { display: grid; gap: .5rem; }
.pdv-foto-kini { display: flex; align-items: center; gap: .75rem; padding: .55rem .7rem; border-radius: 12px; background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); }
.pdv-foto-kini img, .pdv-foto-kosong { flex: none; width: 56px; height: 70px; border-radius: 10px; object-fit: cover; }
.pdv-foto-kosong { display: grid; place-items: center; background: var(--pdsp-navy, #0B2340); color: var(--pdsp-oranye); font-weight: 800; font-size: 1.2rem; }
.pdv-foto-kini p { margin: 0; font-size: .76rem; line-height: 1.45; color: var(--pdsp-redup); }
.pdv-foto-kini b { color: var(--pdsp-tinta); }
.pdsp-profil-mhs img.pdsp-pd-img { object-fit: cover; }

/* kepala Dasbor: foto + identitas + tombol baca dokumen (v1.19) */
.pdv-kepala { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "foto id aksi" "ringkas ringkas aksi2"; gap: 1.1rem 1.5rem; }
.pdv-kepala .pdv-baca-aksi-2 { grid-area: aksi2; padding-top: .95rem; border-top: 1px solid rgba(255, 255, 255, .14); }
.pdv-baca-aksi .pdv-baca-tombol { width: 100%; }
.pdsp-baca-unduh[hidden] { display: none; }
.pdv-foto { grid-area: foto; width: 92px; aspect-ratio: 4 / 5; border-radius: 16px; overflow: hidden; display: grid; place-items: center; background: #0B2340;
	box-shadow: 0 0 0 2px #C9A24B, 0 0 0 7px rgba(201, 162, 75, .16), 0 14px 26px -12px rgba(0, 0, 0, .7); }
.pdv-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; }
.pdv-foto span { font-family: var(--pdsp-font-judul, "League Spartan"), sans-serif; font-weight: 800; font-size: 1.8rem; color: var(--pdv-emas); }
.pdv-identitas { grid-area: id; min-width: 0; }
.pdv-ringkas { grid-area: ringkas; padding-top: .95rem; border-top: 1px solid rgba(255, 255, 255, .14); }
.pdv-baca-aksi { grid-area: aksi; display: flex; flex-direction: column; gap: .5rem; }
.pdv-baca-tombol { display: flex; align-items: center; gap: .65rem; min-height: 50px; padding: .45rem 1rem .45rem .5rem; border-radius: 13px; border: 1px solid rgba(201, 162, 75, .5);
	background: rgba(255, 255, 255, .07); color: #fff; font: inherit; font-weight: 700; font-size: .86rem; line-height: 1.2; text-align: left; white-space: normal; cursor: pointer;
	transition: background-color .18s ease-out, border-color .18s ease-out, transform .18s ease-out; }
.pdv-baca-tombol .pdsp-baca-svg { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 9px; background: rgba(201, 162, 75, .18); color: var(--pdv-emas); }
.pdv-baca-tombol small { display: block; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(244, 239, 232, .68); margin-bottom: .1rem; }
.pdv-kepala .pdv-baca-tombol:hover, .pdv-kepala .pdv-baca-tombol:focus { background: rgba(255, 255, 255, .14); border-color: #E88C30; color: #fff; }
.pdv-baca-tombol:hover { transform: translateY(-1px); }
.pdv-baca-tombol:focus-visible { outline: 2px solid #E88C30; outline-offset: 2px; }
.pdv-baca-tombol:disabled { opacity: .45; cursor: not-allowed; transform: none; }
@media (max-width: 760px) {
	.pdv-kepala { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "foto id" "aksi aksi" "aksi2 aksi2" "ringkas ringkas"; gap: .9rem 1rem; }
	.pdv-kepala .pdv-baca-aksi-2 { padding-top: 0; border-top: 0; margin-top: -.4rem; }
	.pdv-foto { width: 70px; border-radius: 13px; }
	.pdv-baca-tombol { font-size: .84rem; padding-right: .7rem; }
	.pdv-baca-tombol .pdsp-baca-svg { width: 32px; height: 32px; padding: 7px; }
}

/* popup penampil dokumen, gaya penampil PDF Google Drive (v1.19) */
.pdsp-baca { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #1E2126; color: #E8EAED; overflow: hidden; }
.pdsp-baca[open] { display: block; }
.pdsp-baca-bingkai { position: relative; width: 100%; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr); background: #1E2126; color: #E8EAED; }
.pdsp-baca::backdrop { background: rgba(0, 0, 0, .7); }
.pdsp-baca-bilah { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; padding: .5rem .75rem .5rem 1.1rem; background: #17191D; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.pdsp-baca-judul { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.pdsp-baca-judul > div { min-width: 0; }
.pdsp-baca-pdf { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 7px; background: #E5322D; color: #fff; font: 800 .64rem/1 "Plus Jakarta Sans", sans-serif; letter-spacing: .04em; }
.pdsp-baca .pdsp-baca-judul h2 { margin: 0; font: 600 1rem/1.3 "Plus Jakarta Sans", sans-serif; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0; }
.pdsp-baca-judul small { display: block; color: #9AA0A6; font-size: .78rem; margin-top: .1rem; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pdsp-baca-aksi { display: flex; align-items: center; gap: .2rem; flex: none; }
.pdsp-baca-btn { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 0; background: transparent; color: #E8EAED; cursor: pointer; transition: background-color .15s ease-out; }
.pdsp-baca .pdsp-baca-btn:hover, .pdsp-baca .pdsp-baca-btn:focus-visible, .pdsp-baca .pdsp-baca-btn[aria-expanded="true"] { background: rgba(255, 255, 255, .12); color: #E8EAED; }
.pdsp-baca .pdsp-baca-btn:focus:not(:focus-visible):not([aria-expanded="true"]) { background: transparent; color: #E8EAED; }
.pdsp-baca-btn:focus-visible, .pdsp-baca-unduh:focus-visible { outline: 2px solid #8AB4F8; outline-offset: 1px; }
.pdsp-baca-svg { width: 22px; height: 22px; }
.pdsp-baca [data-baca-layar] .pdsp-baca-svg + .pdsp-baca-svg, .pdsp-baca.penuh [data-baca-layar] .pdsp-baca-svg:first-child { display: none; }
.pdsp-baca.penuh [data-baca-layar] .pdsp-baca-svg + .pdsp-baca-svg { display: block; }
.pdsp-baca-unduh { display: inline-flex; align-items: center; gap: .45rem; height: 40px; margin: 0 .4rem; padding: 0 .45rem 0 .85rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .24);
	background: rgba(255, 255, 255, .06); color: #fff; font: 600 .88rem/1 "Plus Jakarta Sans", sans-serif; cursor: pointer; transition: background-color .15s ease-out; }
.pdsp-baca .pdsp-baca-unduh:hover, .pdsp-baca .pdsp-baca-unduh:focus { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .24); }
.pdsp-baca-unduh .pdsp-baca-svg { width: 19px; height: 19px; }
.pdsp-baca-unduh b { min-width: 1.7rem; padding: .25rem .45rem; border-radius: 999px; background: #E88C30; color: #1A0E04; font-size: .76rem; font-weight: 800; text-align: center; font-variant-numeric: tabular-nums; }
.pdsp-baca-cari { position: absolute; top: 72px; right: 1rem; z-index: 3; display: flex; align-items: center; gap: .2rem; width: min(440px, calc(100vw - 2rem)); padding: .25rem .3rem .25rem .8rem; border-radius: 12px; background: #2D3036; box-shadow: 0 12px 32px rgba(0, 0, 0, .55); color: #9AA0A6; }
.pdsp-baca-cari[hidden] { display: none; }
.pdsp-baca-cari input { flex: 1; min-width: 0; height: 42px; margin: 0 .3rem; padding: 0; border: 0 !important; background: transparent !important; color: #fff; font-size: 1rem; outline: none; box-shadow: none !important; }
.pdsp-baca-hitung { font-size: .82rem; white-space: nowrap; font-variant-numeric: tabular-nums; padding: 0 .3rem; }
.pdsp-baca-cari .pdsp-baca-btn { width: 38px; height: 38px; }
.pdsp-baca-isi { position: relative; min-height: 0; }
.pdsp-baca-isi iframe { display: block; width: 100%; height: 100%; border: 0; background: #1E2126; }
.pdsp-baca-muat { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: .9rem; color: #9AA0A6; font-size: .9rem; text-align: center; padding: 1rem; pointer-events: none; background: #1E2126; }
.pdsp-baca-muat span { width: 36px; height: 36px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .15); border-top-color: #E88C30; animation: pdsp-putar .9s linear infinite; }
.pdsp-baca.siap .pdsp-baca-muat { display: none; }
.pdsp-baca.galat .pdsp-baca-muat span { display: none; }
@keyframes pdsp-putar { to { transform: rotate(360deg); } }
.pdsp-baca-kaki { position: absolute; left: 50%; bottom: 1.25rem; z-index: 2; transform: translateX(-50%); display: flex; align-items: center; gap: .3rem; padding: .25rem .35rem; border-radius: 999px; background: rgba(32, 33, 36, .94); box-shadow: 0 10px 28px rgba(0, 0, 0, .5); font-size: .86rem; color: #E8EAED; white-space: nowrap; }
.pdsp-baca-kaki label { display: flex; align-items: center; gap: .4rem; padding: 0 .35rem; margin: 0; font-weight: 500; color: inherit; }
.pdsp-baca-kaki input { width: 3.4rem; height: 32px; padding: 0 .3rem; border-radius: 6px; border: 1px solid rgba(255, 255, 255, .2) !important; background: #3C4043 !important; color: #fff; text-align: center; font: inherit; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.pdsp-baca-kaki input::-webkit-inner-spin-button, .pdsp-baca-kaki input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pdsp-baca-kaki .pdsp-baca-btn { width: 38px; height: 38px; }
@media (max-width: 640px) {
	.pdsp-baca-bilah { padding: .4rem .35rem .4rem .75rem; gap: .5rem; min-height: 58px; }
	.pdsp-baca-pdf { display: none; }
	.pdsp-baca .pdsp-baca-judul h2 { font-size: .9rem; }
	.pdsp-baca-judul small { font-size: .72rem; }
	.pdsp-baca-unduh { margin: 0 .15rem; padding: 0 .4rem 0 .55rem; }
	.pdsp-baca-unduh span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.pdsp-baca-btn { width: 40px; height: 40px; }
	.pdsp-baca-cari { top: 64px; right: .5rem; width: calc(100vw - 1rem); }
	.pdsp-baca-kaki { bottom: .8rem; }
}
@media (prefers-reduced-motion: reduce) { .pdsp-baca-muat span { animation-duration: 3s; } .pdv-baca-tombol:hover { transform: none; } }

/* saran pengguna: tombol mengambang + dialog (v1.22) */
.pdsp-saran-tombol { position: fixed; right: 20px; bottom: 20px; z-index: 1000; display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; padding: 0 1.1rem 0 .9rem; border: 0; border-radius: 999px;
	background: linear-gradient(135deg, #0B2340, #12365F); color: #fff; font: inherit; font-weight: 800; font-size: .9rem; cursor: pointer;
	box-shadow: 0 0 0 2px rgba(201, 162, 75, .55), 0 14px 30px -10px rgba(5, 15, 30, .55); transition: transform .18s ease-out, box-shadow .18s ease-out; }
.pdsp-saran-tombol svg { width: 20px; height: 20px; color: var(--pdv-emas, #E0B556); }
.pdsp-saran-tombol:hover, .pdsp-saran-tombol:focus { background: linear-gradient(135deg, #0B2340, #12365F); color: #fff; transform: translateY(-2px); box-shadow: 0 0 0 2px #E88C30, 0 18px 34px -12px rgba(5, 15, 30, .6); }
.pdsp-saran-tombol:focus-visible { outline: 3px solid #E88C30; outline-offset: 3px; }
@media (max-width: 767px) {
	.pdsp-saran-tombol { right: 12px; bottom: calc(76px + env(safe-area-inset-bottom, 0px)); min-height: 44px; padding: 0 .95rem 0 .8rem; font-size: .84rem; }
}
@media print { .pdsp-saran-tombol { display: none; } }
.pdsp-saran { width: min(640px, calc(100vw - 1.5rem)); }
.pdsp-saran-tab { display: flex; gap: .25rem; padding: .5rem 1.1rem 0; border-bottom: 1px solid var(--pdsp-garis); }
.pdsp-saran-tab button { margin-bottom: -1px; padding: .6rem .9rem; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; color: var(--pdsp-redup); font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; }
.pdsp-saran-tab button[aria-selected="true"] { color: var(--pdsp-tinta); border-bottom-color: #E88C30; }
.pdsp-saran-tab button:hover, .pdsp-saran-tab button:focus { background: none; color: var(--pdsp-tinta); }
.pdsp-saran-isi { overflow-y: auto; }
.pdsp-saran-form { display: grid; gap: .9rem; }
.pdsp-saran-intro { margin: 0; color: var(--pdsp-redup); font-size: .9rem; line-height: 1.55; }
.pdsp-saran-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.pdsp-saran-form legend { padding: 0; margin-bottom: .45rem; font-weight: 700; font-size: .86rem; }
.pdsp-saran-jenis-daftar { display: flex; flex-wrap: wrap; gap: .45rem; }
.pdsp-saran-jenis input, .pdsp-saran-nilai input { position: absolute; opacity: 0; pointer-events: none; }
.pdsp-saran-jenis span { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .4rem .8rem; border: 1px solid var(--pdsp-garis); border-radius: 999px; background: var(--pdsp-kertas); font-size: .84rem; font-weight: 600; cursor: pointer; transition: border-color .15s, background-color .15s; }
.pdsp-saran-jenis svg { width: 16px; height: 16px; color: #B4600F; }
.pdsp-saran-jenis input:checked + span { border-color: #E88C30; background: color-mix(in srgb, #E88C30 12%, var(--pdsp-permukaan)); color: var(--pdsp-tinta); box-shadow: inset 0 0 0 1px #E88C30; }
.pdsp-saran-jenis input:focus-visible + span, .pdsp-saran-nilai input:focus-visible + span { outline: 2px solid #E88C30; outline-offset: 2px; }
.pdsp-saran-form textarea { width: 100%; min-height: 120px; resize: vertical; }
.pdsp-saran-hitung { display: block; text-align: right; color: var(--pdsp-redup); font-size: .74rem; font-variant-numeric: tabular-nums; }
.pdsp-saran-gambar { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; padding: .75rem .9rem; border: 1.5px dashed var(--pdsp-garis); border-radius: 12px; font-size: .8rem; color: var(--pdsp-redup); }
.pdsp-saran-gambar.seret { border-color: #E88C30; background: color-mix(in srgb, #E88C30 8%, transparent); }
.pdsp-saran-pilih { display: inline-flex; align-items: center; min-height: 36px; padding: 0 .8rem; border-radius: 9px; background: var(--pdsp-kertas); border: 1px solid var(--pdsp-garis); color: var(--pdsp-tinta); font-weight: 700; cursor: pointer; }
.pdsp-saran-gambar figure { flex: 1 0 100%; margin: .3rem 0 0; display: flex; align-items: flex-start; gap: .7rem; }
.pdsp-saran-gambar figure[hidden] { display: none; }
.pdsp-saran-gambar figure img { max-width: 180px; max-height: 120px; border-radius: 8px; border: 1px solid var(--pdsp-garis); object-fit: cover; }
.pdsp-saran-gambar figure button { padding: .3rem .6rem; font-size: .76rem; }
.pdsp-saran-nilai > div { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.pdsp-saran-nilai small { color: var(--pdsp-redup); font-size: .74rem; }
.pdsp-saran-nilai span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--pdsp-garis); background: var(--pdsp-kertas); font-weight: 800; cursor: pointer; font-variant-numeric: tabular-nums; }
.pdsp-saran-nilai input:checked + span { background: #0B2340; border-color: #0B2340; color: #fff; }
.pdsp-saran-pesan { margin: 0; padding: .7rem .9rem; border-radius: 10px; background: #DDF3E6; color: #1C5B36; font-size: .86rem; font-weight: 600; line-height: 1.5; }
.pdsp-saran-pesan.galat { background: #FDE3E1; color: #8E2219; }
.pdsp-saran-pesan[hidden] { display: none; }
.pdsp-saran-riwayat { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.pdsp-saran-riwayat li { padding: .8rem .95rem; border: 1px solid var(--pdsp-garis); border-radius: 12px; background: var(--pdsp-kertas); }
.pdsp-saran-riwayat-kepala { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; font-size: .8rem; color: var(--pdsp-redup); }
.pdsp-saran-riwayat-kepala b { color: var(--pdsp-tinta); }
.pdsp-saran-riwayat-kepala em { margin-left: auto; padding: .15rem .6rem; border-radius: 99px; background: var(--w); color: #fff; font-style: normal; font-weight: 700; font-size: .72rem; }
.pdsp-saran-riwayat p { margin: .45rem 0 0; font-size: .88rem; line-height: 1.55; }
.pdsp-saran-riwayat blockquote { margin: .6rem 0 0; padding: .55rem .8rem; border-left: 3px solid #E88C30; background: var(--pdsp-permukaan); border-radius: 0 8px 8px 0; font-size: .86rem; }
.pdsp-saran-riwayat blockquote small { display: block; font-weight: 700; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: #B4600F; margin-bottom: .2rem; }
@media (prefers-reduced-motion: reduce) { .pdsp-saran-tombol { transition: none; } .pdsp-saran-tombol:hover { transform: none; } }
.pdsp-saran .pdsp-saran-isi { display: block; padding: 1rem 1.1rem 1.2rem; }
.pdsp-saran [data-saran-panel][hidden] { display: none !important; }
.pdsp-saran .pdv-centang { line-height: 1.45; font-size: .84rem; }
.pdsp-saran-tombol.naik { transform: translateY(-76px); }
.pdsp-saran-tombol.naik:hover, .pdsp-saran-tombol.naik:focus { transform: translateY(-78px); }
.pdsp-saran-tombol.kiri { right: auto; left: 20px; }
@media (max-width: 767px) { .pdsp-saran-tombol.kiri { left: 12px; } .pdsp-saran-tombol.naik { transform: translateY(-60px); } }
/* footer: area sentuh tautan ≥ 24 px di HP (audit 01-11) */
@media (max-width: 767px) { .elementor-location-footer a { display: inline-block; padding-block: 3px; } }
