/* =====================================================================
   Gerbang akses peta aset -- halaman permintaan & verifikasi kode.

   Warna diambil dari logo SI-KASEP: nyala biru-toska dengan aksen jingga.
   Logonya berupa wordmark putih, jadi panel kiri sengaja dibuat gelap
   supaya logo itu terbaca tanpa perlu file logo versi lain.
   ===================================================================== */

:root {
	--biru-tua:    #16305e;
	--biru:        #1f4e9c;
	--toska:       #2fa3c4;
	--jingga:      #e39b1f;
	--jingga-tua:  #c07f10;

	--tinta:       #16202b;
	--tinta-lembut:#5a6b7c;
	--garis:       #dfe5ec;
	--latar:       #eef2f7;
	--kartu:       #ffffff;

	--radius:      14px;
	--bayang:      0 1px 3px rgba(16, 32, 43, .06), 0 18px 44px rgba(16, 32, 43, .13);
}

* { box-sizing: border-box; }

body.akses {
	margin: 0;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px 16px;
	background:
		radial-gradient(1100px 520px at 12% -10%, #dce8f6 0%, rgba(220,232,246,0) 62%),
		radial-gradient(900px 480px at 92% 108%, #e2eef2 0%, rgba(226,238,242,0) 60%),
		var(--latar);
	color: var(--tinta);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

.akses-shell {
	width: 100%;
	max-width: 940px;
	display: grid;
	grid-template-columns: 340px 1fr;
	background: var(--kartu);
	border-radius: var(--radius);
	box-shadow: var(--bayang);
	overflow: hidden;
}

/* ------------------------------------------------------- panel kiri (brand) */

.akses-brand {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 26px;
	padding: 34px 30px;
	color: #fff;
	background: linear-gradient(155deg, var(--biru-tua) 0%, var(--biru) 52%, #1c6f9e 100%);
	overflow: hidden;
}

/* semburat lembut supaya panel tidak terlihat rata mati */
.akses-brand::after {
	content: "";
	position: absolute;
	right: -90px;
	bottom: -110px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(47,163,196,.45) 0%, rgba(47,163,196,0) 70%);
	pointer-events: none;
}

.brand-atas { position: relative; z-index: 1; }

.brand-logo {
	display: block;
	width: 168px;
	max-width: 100%;
	height: auto;
	margin-bottom: 22px;
}

.brand-judul {
	margin: 0 0 8px;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -.01em;
	line-height: 1.35;
}

.brand-sub {
	margin: 0 0 24px;
	font-size: 13.5px;
	color: rgba(255,255,255,.76);
}

.brand-poin { margin: 0; padding: 0; list-style: none; }

.brand-poin li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-bottom: 16px;
	font-size: 13px;
}

.brand-poin .ikon {
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	background: rgba(255,255,255,.13);
	border: 1px solid rgba(255,255,255,.16);
}

.brand-poin .ikon svg { width: 15px; height: 15px; stroke: #fff; }

.brand-poin strong {
	display: block;
	font-weight: 600;
	font-size: 13px;
	margin-bottom: 1px;
}

.brand-poin span.ket { color: rgba(255,255,255,.66); font-size: 12.5px; }

/* ------------------------------------------------------------ panel promosi */

.promo {
	position: relative;
	z-index: 1;
	display: block;
	padding: 16px 18px;
	border-radius: 12px;
	text-decoration: none;
	color: #3b2a06;
	background: linear-gradient(140deg, #fdd987 0%, var(--jingga) 100%);
	box-shadow: 0 8px 22px rgba(0,0,0,.22);
	transition: transform .16s ease, box-shadow .16s ease;
}

.promo:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0,0,0,.28);
}

.promo-label {
	display: inline-block;
	margin-bottom: 7px;
	padding: 3px 8px;
	border-radius: 99px;
	background: rgba(59,42,6,.14);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.promo-judul {
	display: block;
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.3;
	margin-bottom: 3px;
}

.promo-jumlah {
	display: block;
	font-size: 12.5px;
	color: #6a4e0c;
	margin-bottom: 10px;
}

.promo-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
}

.promo-cta svg { width: 14px; height: 14px; stroke: currentColor; }

/* --------------------------------------------------------- panel kanan (isi) */

.akses-utama { padding: 38px 40px; }

.akses-kepala { margin-bottom: 26px; }

.akses-kepala h2 {
	margin: 0 0 7px;
	font-size: 23px;
	font-weight: 650;
	letter-spacing: -.015em;
}

.akses-kepala p {
	margin: 0;
	font-size: 14px;
	color: var(--tinta-lembut);
}

.akses-grup { margin-bottom: 17px; }

.akses-grup label {
	display: block;
	margin-bottom: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: #37485a;
}

.akses-grup .keterangan {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 400;
	color: #8493a3;
}

.akses-isian {
	width: 100%;
	padding: 11px 13px;
	border: 1px solid #cfd8e3;
	border-radius: 9px;
	font-size: 14.5px;
	font-family: inherit;
	color: var(--tinta);
	background: #fbfcfe;
	transition: border-color .15s, box-shadow .15s, background .15s;
}

.akses-isian::placeholder { color: #a9b5c2; }

.akses-isian:focus {
	outline: none;
	background: #fff;
	border-color: var(--biru);
	box-shadow: 0 0 0 3.5px rgba(31, 78, 156, .14);
}

textarea.akses-isian { min-height: 88px; resize: vertical; }

/* --- kolom yang isinya belum benar --- */

.akses-isian.salah {
	border-color: #d9534f;
	background: #fdf8f8;
}

.akses-isian.salah:focus {
	border-color: #d9534f;
	box-shadow: 0 0 0 3.5px rgba(217, 83, 79, .15);
}

.akses-grup.salah label { color: #96201f; }

.akses-pesan-kolom {
	display: none;
	align-items: flex-start;
	gap: 5px;
	margin-top: 6px;
	font-size: 12px;
	color: #96201f;
}

.akses-pesan-kolom.tampil { display: flex; }
.akses-pesan-kolom svg { flex: 0 0 13px; width: 13px; height: 13px; margin-top: 1.5px; stroke: currentColor; }

/* keterangan abu-abu disembunyikan saat pesan galat muncul, agar tidak bertumpuk */
.akses-grup.salah .keterangan { display: none; }

.akses-tombol {
	width: 100%;
	padding: 12.5px 18px;
	border: 0;
	border-radius: 9px;
	background: linear-gradient(135deg, var(--biru) 0%, #16407f 100%);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	box-shadow: 0 6px 16px rgba(31, 78, 156, .26);
	transition: transform .14s, box-shadow .14s, opacity .14s;
}

.akses-tombol:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(31, 78, 156, .32); }
.akses-tombol:active { transform: translateY(0); }
.akses-tombol:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

/* ------------------------------------------------------------------- pesan */

.akses-alert {
	display: flex;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 9px;
	font-size: 13px;
	margin-bottom: 20px;
	line-height: 1.5;
}

.akses-alert svg { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 1px; stroke: currentColor; }
.akses-alert p { margin: 0; }
/* validation_errors() membungkus tiap galat dalam <p> tersendiri */
.akses-alert p + p { margin-top: 5px; }
.akses-alert.galat { background: #fdeeee; border: 1px solid #f3c9c9; color: #96201f; }
.akses-alert.info  { background: #e9f2fd; border: 1px solid #c3daf5; color: #17457c; }

/* perangkap bot: tak terlihat manusia, tetap terisi pengisi otomatis */
.akses-jebakan {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.akses-kaki {
	margin-top: 22px;
	padding-top: 17px;
	border-top: 1px solid var(--garis);
	font-size: 12px;
	color: #8493a3;
	text-align: center;
}

.akses-kaki a { color: var(--biru); font-weight: 600; text-decoration: none; }
.akses-kaki a:hover { text-decoration: underline; }

/* ------------------------------------------------------------ halaman OTP */

.akses-tenggat {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	padding: 13px 15px;
	background: #f5f8fc;
	border: 1px solid var(--garis);
	border-radius: 10px;
	font-size: 13px;
}

.akses-tenggat svg { flex: 0 0 18px; width: 18px; height: 18px; stroke: var(--biru); }
.akses-tenggat .waktu { display: block; font-weight: 600; color: var(--tinta); }
.akses-tenggat .sisa  { display: block; font-size: 12px; color: #8493a3; margin-top: 1px; }

.akses-otp {
	width: 100%;
	padding: 16px 10px;
	font-size: 32px;
	font-weight: 600;
	letter-spacing: .42em;
	text-align: center;
	text-indent: .42em;		/* mengimbangi spasi di karakter terakhir */
	color: var(--tinta);
	background: #fbfcfe;
	border: 1px solid #cfd8e3;
	border-radius: 11px;
	font-family: "SFMono-Regular", Menlo, Consolas, monospace;
	transition: border-color .15s, box-shadow .15s, background .15s;
}

.akses-otp::placeholder { color: #cdd7e2; }

.akses-otp:focus {
	outline: none;
	background: #fff;
	border-color: var(--biru);
	box-shadow: 0 0 0 3.5px rgba(31, 78, 156, .14);
}

.akses-bantuan {
	margin-top: 22px;
	padding: 15px 17px;
	background: #f5f8fc;
	border: 1px solid var(--garis);
	border-radius: 10px;
	font-size: 12.5px;
	color: var(--tinta-lembut);
}

.akses-bantuan strong { display: block; color: var(--tinta); font-size: 13px; margin-bottom: 6px; }
.akses-bantuan ul { margin: 0; padding-left: 17px; }
.akses-bantuan li { margin-bottom: 4px; }

/* ------------------------------------------------------------------ layar kecil */

@media (max-width: 860px) {
	body.akses { padding: 0; align-items: stretch; }

	.akses-shell {
		grid-template-columns: 1fr;
		max-width: 560px;
		margin: 0 auto;
		border-radius: 0;
		box-shadow: none;
		min-height: 100vh;
	}

	.akses-brand { padding: 26px 24px 24px; gap: 20px; }
	.brand-logo { width: 138px; margin-bottom: 16px; }
	.brand-judul { font-size: 17.5px; }
	.brand-sub { margin-bottom: 0; }

	/* di layar sempit, ruang dipakai untuk isian -- poin panjang disembunyikan */
	.brand-poin { display: none; }

	.akses-utama { padding: 26px 24px 34px; }
	.akses-kepala h2 { font-size: 20px; }
	.akses-otp { font-size: 27px; letter-spacing: .3em; text-indent: .3em; }
}

@media (min-width: 861px) {
	.akses-shell { min-height: 600px; }
}
