/*
 * Tampilan Layanan Mandiri — gaya "Teduh"
 *
 * Semua class berawalan lm- supaya tidak bentrok dengan Bootstrap/AdminLTE
 * yang masih dimuat untuk isi halaman lama. Lihat NOTES.md.
 */

:root {
	--lm-primary: #0e5a47;
	--lm-primary-strong: #09402f;
	--lm-primary-soft: #e3efea;
	--lm-on-primary-muted: #cfe5dc;
	--lm-accent: #f2c14e;

	--lm-ground: #f5f6f2;
	--lm-surface: #ffffff;
	--lm-surface-sunken: #fafbf9;
	--lm-line: #e1e6e3;
	--lm-line-strong: #d5dbd7;

	--lm-ink: #16201c;
	--lm-ink-2: #3e4944;
	--lm-muted: #5b6661;

	--lm-warn-bg: #fff1d1;
	--lm-warn-fg: #7a4b00;
	--lm-ok-bg: #ddf1e6;
	--lm-ok-fg: #11613f;
	--lm-danger-bg: #fbe3e1;
	--lm-danger-fg: #9b2c22;
	--lm-info-bg: #e3edf9;
	--lm-info-fg: #1d4f86;

	--lm-font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--lm-radius-sm: 12px;
	--lm-radius: 18px;
	--lm-radius-lg: 24px;
	--lm-shadow: 0 8px 24px rgba(14, 90, 71, 0.10);
	--lm-tap: 44px;
	--lm-nav-h: 68px;
	--lm-sidebar-w: 248px;
}

/* ---------- Dasar ---------- */

body.lm-body {
	margin: 0;
	background: var(--lm-ground);
	color: var(--lm-ink);
	/* mandiri-style.css lama memaksa Quicksand dengan !important */
	font-family: var(--lm-font) !important;
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

/* AdminLTE memasang Source Sans Pro pada judul dan kontrol form */
.lm-body h1,
.lm-body h2,
.lm-body h3,
.lm-body h4,
.lm-body h5,
.lm-body h6,
.lm-body button,
.lm-body input,
.lm-body select,
.lm-body textarea,
.lm-body .btn,
.lm-body .modal-title,
.lm-body .ui-dialog {
	font-family: var(--lm-font);
}

/* Hanya tautan biasa; komponen lm- mengatur warnanya sendiri */
.lm-body a:not([class]) {
	color: var(--lm-primary);
}

.lm-body a:not([class]):hover,
.lm-body a:not([class]):focus {
	color: var(--lm-primary-strong);
}

.lm-body :focus-visible {
	outline: 3px solid var(--lm-accent);
	outline-offset: 2px;
}

.lm-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------- Kerangka ---------- */

.lm-app {
	min-height: 100vh;
	min-height: 100dvh;
}

.lm-topbar {
	position: sticky;
	top: 0;
	z-index: 1030;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 8px 16px;
	padding-top: calc(8px + env(safe-area-inset-top));
	background: var(--lm-primary);
	color: #fff;
}

.lm-topbar__brand {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 1 1 auto;
	min-width: 0;
	color: #fff;
	text-decoration: none;
}

.lm-topbar__brand:hover,
.lm-topbar__brand:focus {
	color: #fff;
	text-decoration: none;
}

.lm-topbar__logo {
	width: 36px;
	height: 36px;
	padding: 4px;
	border-radius: 10px;
	background: #fff;
	object-fit: contain;
	flex-shrink: 0;
}

.lm-topbar__title {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.25;
}

.lm-topbar__eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lm-on-primary-muted);
}

.lm-topbar__name {
	font-size: 16px;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lm-topbar__actions {
	display: flex;
	align-items: center;
	gap: 6px;
}

.lm-icon-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--lm-tap);
	height: var(--lm-tap);
	border: 0;
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	font-size: 19px;
	text-decoration: none;
	cursor: pointer;
}

.lm-body .lm-icon-btn:hover,
.lm-body .lm-icon-btn:focus {
	background: rgba(255, 255, 255, 0.24);
	color: #fff;
	text-decoration: none;
}

.lm-dot {
	position: absolute;
	top: 6px;
	right: 4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	border: 2px solid var(--lm-primary);
	background: var(--lm-accent);
	color: var(--lm-ink);
	font-size: 10px;
	font-weight: 800;
	line-height: 14px;
	text-align: center;
	box-sizing: border-box;
}

.lm-dot:empty {
	display: none;
}

.lm-avatar {
	width: 40px;
	height: 40px;
	border-radius: 20px;
	object-fit: cover;
	background: var(--lm-primary-soft);
	border: 2px solid rgba(255, 255, 255, 0.6);
}

.lm-layout {
	display: flex;
	align-items: flex-start;
}

.lm-main {
	flex: 1 1 auto;
	min-width: 0;
	padding: 16px 16px calc(var(--lm-nav-h) + 32px + env(safe-area-inset-bottom));
}

.lm-main__inner {
	max-width: 960px;
	margin: 0 auto;
}

/* Sidebar: hanya desktop */
.lm-sidebar {
	display: none;
}

/* Navigasi bawah: hanya ponsel/tablet */
.lm-bottomnav {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1030;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	height: calc(var(--lm-nav-h) + env(safe-area-inset-bottom));
	padding: 6px 4px env(safe-area-inset-bottom);
	box-sizing: border-box;
	background: var(--lm-surface);
	border-top: 1px solid var(--lm-line);
}

.lm-bottomnav__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	min-height: var(--lm-tap);
	color: var(--lm-muted);
	font-size: 11px;
	font-weight: 600;
	text-decoration: none;
}

.lm-body .lm-bottomnav__item:hover,
.lm-body .lm-bottomnav__item:focus {
	color: var(--lm-primary);
	text-decoration: none;
}

.lm-bottomnav__icon {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 30px;
	border-radius: 15px;
	font-size: 19px;
}

.lm-bottomnav__item.is-active {
	color: var(--lm-primary);
	font-weight: 700;
}

.lm-bottomnav__item.is-active .lm-bottomnav__icon {
	background: var(--lm-primary-soft);
}

.lm-bottomnav__icon .lm-dot {
	top: -4px;
	right: 6px;
	border-color: var(--lm-surface);
}

@media (min-width: 992px) {
	.lm-bottomnav {
		display: none;
	}

	.lm-sidebar {
		display: flex;
		flex-direction: column;
		gap: 4px;
		position: sticky;
		top: 64px;
		flex: 0 0 var(--lm-sidebar-w);
		height: calc(100vh - 64px);
		box-sizing: border-box;
		padding: 20px 12px;
		background: var(--lm-surface);
		border-right: 1px solid var(--lm-line);
		overflow-y: auto;
	}

	.lm-main {
		padding: 28px 32px 48px;
	}
}

.lm-sidebar__profile {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 12px 16px;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--lm-line);
}

.lm-sidebar__profile .lm-avatar {
	border-color: var(--lm-primary-soft);
}

.lm-sidebar__who {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.3;
}

.lm-sidebar__who strong {
	font-size: 14px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lm-sidebar__who span {
	font-size: 12px;
	color: var(--lm-muted);
}

.lm-sidebar__label {
	padding: 12px 12px 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lm-muted);
}

.lm-sidebar__link {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: var(--lm-tap);
	padding: 0 12px;
	border: 0;
	border-radius: var(--lm-radius-sm);
	background: transparent;
	color: var(--lm-ink-2);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.lm-sidebar__link .fa {
	width: 20px;
	font-size: 17px;
	text-align: center;
	color: var(--lm-muted);
}

.lm-body .lm-sidebar__link:hover,
.lm-body .lm-sidebar__link:focus {
	background: var(--lm-ground);
	color: var(--lm-ink);
	text-decoration: none;
}

.lm-sidebar__link.is-active {
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
}

.lm-sidebar__link.is-active .fa {
	color: var(--lm-primary);
}

.lm-sidebar__link--danger,
.lm-sidebar__link--danger .fa {
	color: var(--lm-danger-fg);
}

.lm-footer {
	margin-top: 32px;
	font-size: 12px;
	color: var(--lm-muted);
	text-align: center;
}

/* ---------- Judul halaman ---------- */

.lm-page-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 4px 0 16px;
}

.lm-page-title {
	margin: 0;
	line-height: 1.25;
	font-family: var(--lm-font);
	font-size: 22px;
	font-weight: 800;
	color: var(--lm-ink);
}

h1.lm-page-head {
	display: block;
	margin: 4px 0 16px;
}

.lm-section-title {
	margin: 0;
	font-family: var(--lm-font);
	font-size: 16px;
	font-weight: 700;
	color: var(--lm-ink);
}

.lm-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 24px 0 12px;
}

.lm-link {
	color: var(--lm-primary);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

/* ---------- Hero sapaan (beranda) ---------- */

.lm-hero {
	margin: -16px -16px 0;
	padding: 20px 20px 72px;
	border-radius: 0 0 28px 28px;
	background: var(--lm-primary);
	color: #fff;
}

.lm-hero__greet {
	margin: 0;
	font-size: 13px;
	color: var(--lm-on-primary-muted);
}

.lm-hero__name {
	margin: 2px 0 0;
	font-family: var(--lm-font);
	font-size: 22px;
	font-weight: 800;
	color: #fff;
}

.lm-hero + .lm-card {
	margin-top: -52px;
	position: relative;
}

@media (min-width: 992px) {
	.lm-hero {
		margin: 0 0 0;
		border-radius: var(--lm-radius-lg);
		padding: 28px 28px 80px;
	}

	.lm-hero + .lm-card {
		margin-left: 16px;
		margin-right: 16px;
	}
}

/* ---------- Kartu ---------- */

.lm-card {
	background: var(--lm-surface);
	border-radius: var(--lm-radius);
	padding: 16px;
}

.lm-card--raised {
	box-shadow: var(--lm-shadow);
	border-radius: 22px;
	padding: 18px;
}

.lm-card + .lm-card {
	margin-top: 12px;
}

.lm-card__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.lm-card__title {
	margin: 0;
	font-family: var(--lm-font);
	font-size: 16px;
	font-weight: 700;
	color: var(--lm-ink);
}

.lm-card__meta {
	margin: 2px 0 0;
	font-size: 13px;
	color: var(--lm-muted);
}

.lm-card--link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.lm-body .lm-card--link:hover,
.lm-body .lm-card--link:focus {
	color: inherit;
	text-decoration: none;
}

.lm-card__head + .lm-card__title {
	margin-top: 10px;
}

.lm-card__action {
	margin-top: 14px;
}

.lm-card__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--lm-muted);
}

.lm-note {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: var(--lm-radius-sm);
	background: var(--lm-ground);
	font-size: 13px;
	color: var(--lm-ink-2);
}

.lm-note--danger {
	background: #fdf3f2;
	color: var(--lm-danger-fg);
}

/* ---------- Progres status ---------- */

.lm-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	margin-top: 14px;
	padding: 0;
	list-style: none;
}

.lm-steps__item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 11px;
	font-weight: 600;
	color: var(--lm-muted);
}

.lm-steps__item::before {
	content: '';
	height: 6px;
	border-radius: 3px;
	background: var(--lm-line);
}

.lm-steps__item.is-done::before {
	background: var(--lm-primary);
}

.lm-steps__item.is-done {
	color: var(--lm-ink-2);
}

/* ---------- Badge status ---------- */

.lm-badge {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
}

.lm-badge--warn {
	background: var(--lm-warn-bg);
	color: var(--lm-warn-fg);
}

.lm-badge--ok {
	background: var(--lm-ok-bg);
	color: var(--lm-ok-fg);
}

.lm-badge--danger {
	background: var(--lm-danger-bg);
	color: var(--lm-danger-fg);
}

.lm-badge--info {
	background: var(--lm-info-bg);
	color: var(--lm-info-fg);
}

.lm-badge--neutral {
	background: var(--lm-line);
	color: var(--lm-ink-2);
}

/* ---------- Tombol ---------- */

.lm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--lm-tap);
	padding: 0 18px;
	border: 1.5px solid transparent;
	border-radius: 14px;
	font-family: var(--lm-font);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.lm-btn--primary {
	background: var(--lm-primary);
	color: #fff;
}

.lm-body .lm-btn--primary:hover,
.lm-body .lm-btn--primary:focus {
	background: var(--lm-primary-strong);
	color: #fff;
	text-decoration: none;
}

.lm-btn--soft {
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
}

.lm-body .lm-btn--soft:hover,
.lm-body .lm-btn--soft:focus {
	background: #d3e6de;
	color: var(--lm-primary-strong);
	text-decoration: none;
}

.lm-btn--outline {
	background: var(--lm-surface);
	border-color: var(--lm-line-strong);
	color: var(--lm-ink);
}

.lm-body .lm-btn--outline:hover,
.lm-body .lm-btn--outline:focus {
	border-color: var(--lm-primary);
	color: var(--lm-primary);
	text-decoration: none;
}

.lm-btn--block {
	display: flex;
	width: 100%;
}

.lm-btn--lg {
	min-height: 52px;
	font-size: 16px;
}

.lm-btn-row {
	display: flex;
	gap: 8px;
	margin-top: 12px;
}

.lm-btn-row > .lm-btn {
	flex: 1 1 0;
}

/* ---------- Tile layanan ---------- */

.lm-tiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

@media (min-width: 768px) {
	.lm-tiles {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

.lm-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 16px 6px;
	border-radius: var(--lm-radius);
	background: var(--lm-surface);
	color: var(--lm-ink);
	text-align: center;
	text-decoration: none;
}

.lm-body .lm-tile:hover,
.lm-body .lm-tile:focus {
	color: var(--lm-ink);
	text-decoration: none;
	box-shadow: 0 0 0 2px var(--lm-primary-soft);
}

.lm-tile__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
	font-size: 19px;
}

.lm-tile__label {
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

/* ---------- Daftar ---------- */

.lm-list {
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--lm-surface);
	border-radius: var(--lm-radius);
	overflow: hidden;
}

.lm-list__item + .lm-list__item {
	border-top: 1px solid var(--lm-line);
}

.lm-list__link {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 12px 16px;
	color: var(--lm-ink);
	text-decoration: none;
}

.lm-body .lm-list__link:hover,
.lm-body .lm-list__link:focus {
	background: var(--lm-surface-sunken);
	color: var(--lm-ink);
	text-decoration: none;
}

.lm-list__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
	font-size: 17px;
}

.lm-list__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.35;
}

.lm-list__title {
	font-size: 14px;
	font-weight: 700;
}

.lm-list__sub {
	font-size: 13px;
	color: var(--lm-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lm-list__aside {
	flex-shrink: 0;
	font-size: 12px;
	color: var(--lm-muted);
}

/* ---------- Kosong / memuat ---------- */

.lm-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 28px 20px;
	border-radius: var(--lm-radius);
	background: var(--lm-surface);
	text-align: center;
}

.lm-empty__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 18px;
	background: var(--lm-ground);
	color: var(--lm-muted);
	font-size: 24px;
}

.lm-empty__title {
	margin: 4px 0 0;
	font-size: 15px;
	font-weight: 700;
}

.lm-empty__text {
	margin: 0;
	max-width: 320px;
	font-size: 13px;
	color: var(--lm-muted);
}

/* ---------- Tab (Permohonan/Arsip, Masuk/Terkirim) ---------- */

.lm-tabs {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	gap: 4px;
	margin-bottom: 16px;
	padding: 4px;
	border-radius: 14px;
	background: #e7ebe8;
}

.lm-tabs__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	border-radius: 11px;
	color: var(--lm-muted);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.lm-body .lm-tabs__item:hover,
.lm-body .lm-tabs__item:focus {
	color: var(--lm-ink);
	text-decoration: none;
}

.lm-tabs__item.is-active {
	background: var(--lm-surface);
	color: var(--lm-ink);
	font-weight: 700;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* ---------- Navigasi kembali & judul di kartu ---------- */

.lm-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: var(--lm-tap);
	margin-bottom: 8px;
	color: var(--lm-ink-2);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.lm-body .lm-back:hover,
.lm-body .lm-back:focus {
	color: var(--lm-primary);
	text-decoration: none;
}

.lm-card__heading {
	margin-bottom: 16px;
}

.lm-card__intro {
	margin: 0 0 16px;
}

.lm-card--narrow {
	max-width: 480px;
}

.lm-card__head > div {
	min-width: 0;
}

.lm-hidden {
	display: none;
}

/* ---------- Form ---------- */

.lm-form > * + *,
.lm-card > .lm-field,
.lm-card > .lm-note + .lm-field,
.lm-field + .lm-field {
	margin-top: 16px;
}

.lm-card > .lm-card__heading + .lm-field,
.lm-card > .lm-card__heading + .lm-form,
.lm-form > input[type='hidden'] + *,
.lm-form > input.hidden + * {
	margin-top: 0;
}

.lm-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.lm-label,
.lm-main .lm-label {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--lm-ink-2);
}

.lm-optional {
	font-weight: 500;
	color: var(--lm-muted);
}

.lm-input {
	display: block;
	width: 100%;
	min-height: 52px;
	box-sizing: border-box;
	padding: 12px 16px;
	border: 1.5px solid var(--lm-line-strong);
	border-radius: 14px;
	background: var(--lm-surface-sunken);
	color: var(--lm-ink);
	font-family: var(--lm-font);
	font-size: 15px;
	line-height: 1.4;
}

.lm-input:focus {
	border-color: var(--lm-primary);
	background: var(--lm-surface);
	outline: none;
	box-shadow: 0 0 0 3px var(--lm-primary-soft);
}

.lm-input[readonly] {
	background: var(--lm-ground);
	color: var(--lm-ink-2);
}

.lm-input--area {
	min-height: 120px;
	resize: vertical;
}

.lm-input-wrap {
	position: relative;
}

.lm-input-wrap .lm-input {
	padding-right: 52px;
}

/* Tombol bawaan browser (Edge/Safari) bentrok dengan tombol mata sendiri */
.lm-input-wrap .lm-input::-ms-reveal,
.lm-input-wrap .lm-input::-ms-clear {
	display: none;
}

.lm-input-wrap .lm-input::-webkit-credentials-auto-fill-button,
.lm-input-wrap .lm-input::-webkit-contacts-auto-fill-button {
	visibility: hidden;
	position: absolute;
	right: 0;
	pointer-events: none;
}

.lm-input-wrap__btn {
	position: absolute;
	top: 4px;
	right: 4px;
	width: var(--lm-tap);
	height: var(--lm-tap);
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: var(--lm-muted);
	font-size: 17px;
	cursor: pointer;
}

.lm-hint {
	margin: 0;
	font-size: 12px;
	color: var(--lm-muted);
}

.lm-check {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: var(--lm-tap);
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}

.lm-check input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--lm-primary);
}

.lm-check small {
	display: block;
	font-size: 12px;
	color: var(--lm-muted);
}

.lm-form-actions {
	margin-top: 4px;
}

/* Pesan galat jQuery Validate */
.lm-main label.error,
.lm-main .error:not(.lm-input):not(.form-control) {
	margin: 4px 0 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--lm-danger-fg);
}

.lm-input.error {
	border-color: var(--lm-danger-fg);
}

/* Select2 disamakan dengan .lm-input */
.lm-main .select2-container--default .select2-selection--single {
	height: 52px;
	border: 1.5px solid var(--lm-line-strong);
	border-radius: 14px;
	background: var(--lm-surface-sunken);
}

.lm-main .select2-container--default .select2-selection--single {
	padding: 0;
}

.lm-main .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-left: 16px;
	padding-right: 40px;
	line-height: 49px;
	color: var(--lm-ink);
	font-size: 15px;
}

.lm-main .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 49px;
	right: 10px;
}

.lm-main .select2-container {
	width: 100% !important;
}

/* ---------- Alert ---------- */

.lm-alert {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 16px;
	padding: 12px 14px;
	border-radius: var(--lm-radius-sm);
	font-size: 14px;
}

.lm-alert .fa {
	margin-top: 2px;
	font-size: 17px;
}

.lm-alert p {
	margin: 0;
}

.lm-alert--ok {
	background: var(--lm-ok-bg);
	color: var(--lm-ok-fg);
}

.lm-alert--danger {
	background: var(--lm-danger-bg);
	color: var(--lm-danger-fg);
}

/* ---------- Pesan ---------- */

.lm-message {
	padding: 14px 16px;
	border-radius: var(--lm-radius-sm);
	background: var(--lm-ground);
	font-size: 15px;
	line-height: 1.6;
	white-space: normal;
	overflow-wrap: anywhere;
}

/* ---------- Daftar dengan aksi ---------- */

.lm-list__row {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 10px 8px 10px 16px;
}

.lm-list__actions {
	display: flex;
	align-items: center;
	gap: 2px;
	flex-shrink: 0;
}

.lm-list__chevron {
	color: var(--lm-muted);
}

.lm-icon-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--lm-tap);
	height: var(--lm-tap);
	border-radius: 12px;
	color: var(--lm-ink-2);
	font-size: 17px;
	text-decoration: none;
}

.lm-body .lm-icon-action:hover,
.lm-body .lm-icon-action:focus {
	background: var(--lm-ground);
	color: var(--lm-primary);
	text-decoration: none;
}

.lm-icon-action--danger,
.lm-body .lm-icon-action--danger:hover,
.lm-body .lm-icon-action--danger:focus {
	color: var(--lm-danger-fg);
}

.lm-btn--danger-text,
.lm-body .lm-btn--danger-text:hover,
.lm-body .lm-btn--danger-text:focus {
	color: var(--lm-danger-fg);
}

/* ---------- Profil ---------- */

.lm-profile {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 12px;
}

.lm-profile__photo {
	width: 72px;
	height: 72px;
	border-radius: 24px;
	object-fit: cover;
	background: var(--lm-primary-soft);
	flex-shrink: 0;
}

.lm-profile__who {
	min-width: 0;
}

.lm-tiles--4 {
	grid-template-columns: repeat(auto-fit, minmax(76px, 1fr));
}

@media (min-width: 768px) {
	.lm-tiles--4 {
		grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	}
}

.lm-accordion {
	background: var(--lm-surface);
	border-radius: var(--lm-radius);
	overflow: hidden;
}

.lm-accordion__item + .lm-accordion__item {
	border-top: 1px solid var(--lm-line);
}

.lm-accordion__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 56px;
	padding: 0 16px;
	font-size: 15px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

.lm-accordion__head::-webkit-details-marker {
	display: none;
}

.lm-accordion__head .fa {
	color: var(--lm-muted);
	transition: transform 0.15s ease;
}

.lm-accordion__item[open] .lm-accordion__head .fa {
	transform: rotate(180deg);
}

.lm-accordion__empty {
	padding: 0 16px 16px;
}

.lm-dl {
	margin: 0;
	padding: 0 16px 8px;
}

.lm-dl__row {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid var(--lm-line);
	font-size: 14px;
}

.lm-dl dt {
	font-weight: 500;
	color: var(--lm-muted);
}

.lm-dl dd {
	margin: 0;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.lm-logout {
	margin-top: 24px;
}

/* ---------- Tabel di dalam kartu (syarat surat) ---------- */

.lm-table-wrap {
	margin-top: 12px;
	overflow-x: auto;
}

/* ---------- Popup ---------- */

.lm-modal-head {
	border-bottom: 1px solid var(--lm-line);
	background: var(--lm-surface);
	color: var(--lm-ink);
}

.lm-modal-head--danger .modal-title {
	color: var(--lm-danger-fg);
}

.lm-body .modal-body.text-center {
	padding: 24px 20px;
}

.lm-modal-text {
	margin: 8px 0 20px;
}

.lm-rating {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 16px;
}

.lm-rating__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	min-width: 0;
	padding: 12px 2px;
	font-size: 11px !important;
	text-align: center;
	text-transform: capitalize;
	overflow-wrap: anywhere;
	border-radius: var(--lm-radius-sm);
	background: var(--lm-ground);
	color: var(--lm-ink);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}

.lm-body .lm-rating__item:hover,
.lm-body .lm-rating__item:focus {
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
	text-decoration: none;
}

.lm-rating__item img {
	width: 36px;
	height: 36px;
}

.lm-rating__item p {
	margin: 0;
}

/* ---------- Tombol Bootstrap lama di halaman yang belum dirombak ---------- */

.lm-main .btn-primary,
.lm-main .btn-success,
.lm-main .btn.bg-green,
.lm-main .btn.bg-navy,
.lm-main .btn.bg-purple,
.lm-main .btn.bg-olive {
	border-color: var(--lm-primary) !important;
	background: var(--lm-primary) !important;
	color: #fff !important;
}

.lm-main .btn-info,
.lm-main .btn-warning,
.lm-main .btn.bg-aqua,
.lm-main .btn.bg-orange,
.lm-main .btn.bg-fuchsia {
	border-color: var(--lm-primary-soft) !important;
	background: var(--lm-primary-soft) !important;
	color: var(--lm-primary) !important;
}

.lm-main .btn-danger,
.lm-main .btn.bg-red,
.lm-main .btn.bg-maroon {
	border-color: var(--lm-line-strong) !important;
	background: var(--lm-surface) !important;
	color: var(--lm-danger-fg) !important;
}

.lm-main .nav-tabs-custom {
	border-radius: var(--lm-radius);
	box-shadow: none;
}

.lm-main .nav-tabs-custom > .nav-tabs > li.active {
	border-top-color: var(--lm-primary);
}

.lm-main .box-header[class*='bg-'] {
	display: none;
}

/* ---------- Konten lama di dalam kerangka baru ----------
 * Halaman yang belum dirombak masih memakai .box/.btn/.table Bootstrap.
 * Aturan di bawah menyamakan tampilannya dengan gaya baru.
 */

.lm-main .box {
	border: 0;
	border-radius: var(--lm-radius);
	background: var(--lm-surface);
	box-shadow: none;
	overflow: hidden;
}

.lm-main .box-header,
.lm-main .box-header.with-border {
	padding: 16px;
	border-bottom: 1px solid var(--lm-line);
	background: var(--lm-surface) !important;
	color: var(--lm-ink) !important;
}

.lm-main .box-header .box-title {
	font-family: var(--lm-font);
	font-size: 17px;
	font-weight: 800;
}

.lm-main .box-body {
	padding: 16px;
}

.lm-main .btn {
	min-height: 40px;
	border-radius: 12px;
	font-family: var(--lm-font);
	font-weight: 700;
}

.lm-main .table-responsive {
	border: 0;
}

.lm-main .table > thead > tr > th {
	border-bottom: 1px solid var(--lm-line-strong);
	background: var(--lm-surface-sunken);
	font-size: 12px;
	font-weight: 700;
	color: var(--lm-muted);
}

.lm-main .form-control {
	min-height: 44px;
	border: 1.5px solid var(--lm-line-strong);
	border-radius: 12px;
	box-shadow: none;
	font-family: var(--lm-font);
}

.lm-main .form-control:focus {
	border-color: var(--lm-primary);
}

/* Kotak dialog lama (notif, pendapat) */
.lm-body .modal-content {
	border: 0;
	border-radius: var(--lm-radius-lg);
	font-family: var(--lm-font);
}

/* ---------- Ikon di dalam tombol ---------- */

.lm-btn .fa,
.lm-icon-btn .fa,
.lm-icon-action .fa,
.lm-tile__icon .fa,
.lm-list__icon .fa {
	width: 1.15em;
	line-height: 1;
	text-align: center;
}

.lm-icon-action--boxed {
	flex: 0 0 var(--lm-tap);
	border: 1.5px solid var(--lm-line-strong);
	background: var(--lm-surface);
}

/* Select bawaan browser (bukan Select2) */
select.lm-input {
	padding-right: 40px;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235b6661' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

/* ---------- Lapak ---------- */

.lm-filter > * + * {
	margin-top: 10px;
}

.lm-filter + * {
	margin-top: 16px;
}

.lm-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
}

.lm-product {
	overflow: hidden;
	border-radius: var(--lm-radius);
	background: var(--lm-surface);
}

.lm-product .carousel,
.lm-product .card-img-top {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--lm-ground);
}

.lm-product .carousel-inner > .item > img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.lm-product__body {
	padding: 14px 16px 16px;
}

.lm-product__name {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
}

.lm-product__price {
	margin: 4px 0 0;
	font-size: 15px;
	font-weight: 800;
	color: var(--lm-primary);
}

.lm-product__price s {
	margin-left: 6px;
	font-size: 12px;
	font-weight: 500;
	color: var(--lm-muted);
}

.lm-product .lm-btn-row > .lm-btn {
	flex: 1 1 auto;
}

.lm-pagination {
	margin-top: 16px;
	font-size: 13px;
	color: var(--lm-muted);
	text-align: center;
}

.lm-pagination .pagination > li > a {
	min-width: var(--lm-tap);
	min-height: var(--lm-tap);
	line-height: 30px;
	border-color: var(--lm-line);
	color: var(--lm-ink-2);
}

.lm-pagination .pagination > .active > a {
	border-color: var(--lm-primary);
	background: var(--lm-primary);
	color: #fff;
}

/* Lapak lama menimpa backdrop jadi transparan */
.lm-body .modal-backdrop.in {
	opacity: 0.45 !important;
}

/* ---------- Wizard verifikasi (smartWizard) ---------- */

.lm-main .nav-tabs-custom > .nav-tabs {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	gap: 4px;
	margin: 0 0 16px;
	padding: 4px;
	border: 0;
	border-radius: 14px;
	background: #e7ebe8;
}

.lm-main .nav-tabs-custom > .nav-tabs > li {
	margin: 0;
	border: 0;
}

.lm-main .nav-tabs-custom > .nav-tabs > li > a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin: 0;
	border: 0;
	border-radius: 11px;
	color: var(--lm-muted);
	font-weight: 600;
}

.lm-main .nav-tabs-custom > .nav-tabs > li.active > a {
	background: var(--lm-surface);
	color: var(--lm-ink);
	font-weight: 700;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.lm-main .nav-tabs-custom > .tab-content {
	padding: 0;
}

.lm-main .sw > .nav {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 16px;
	box-shadow: none;
}

.lm-main .sw > .nav > li > .nav-link,
.lm-main .sw > .nav .nav-link {
	display: flex;
	flex-direction: column;
	gap: 2px;
	height: 100%;
	padding: 10px 6px 8px;
	border: 0;
	border-top: 4px solid var(--lm-line);
	border-radius: 0;
	background: transparent !important;
	color: var(--lm-muted) !important;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.25;
	text-align: left;
}

.lm-main .sw > .nav .nav-link small {
	font-size: 11px;
	font-weight: 500;
}

.lm-main .sw > .nav .nav-link.done {
	border-top-color: var(--lm-primary-soft);
	color: var(--lm-ink-2) !important;
}

.lm-main .sw > .nav .nav-link.active {
	border-top-color: var(--lm-primary);
	color: var(--lm-primary) !important;
}

/* Panah tema "arrows" (::before abu-abu, ::after berwarna) menutupi label langkah berikutnya */
.lm-main .sw > .nav .nav-link::before,
.lm-main .sw > .nav .nav-link::after {
	display: none;
}

.lm-main .sw > .tab-content {
	border: 0;
}

/* Form di dalam langkah wizard verifikasi; dulu col-md-5 mengambang sehingga tinggi langkah salah hitung */
.lm-main .lm-wizard-form {
	max-width: 420px;
	margin: 16px 0 0;
}

.lm-main .lm-wizard-form .btn {
	margin-top: 10px;
}

.lm-main .sw .tab-pane {
	padding: 4px 0 0;
}

.lm-main .sw .StepTitle {
	margin: 0 0 12px;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.3;
}

.lm-main .sw .toolbar {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	padding: 16px 0 0;
}

.lm-main .sw .toolbar .btn {
	flex: 1 1 0;
	min-height: var(--lm-tap);
	margin: 0;
	border-radius: 14px;
}

.lm-main .sw .sw-btn-prev {
	border: 1.5px solid var(--lm-line-strong) !important;
	background: var(--lm-surface) !important;
	color: var(--lm-ink) !important;
}

.lm-main .sw .sw-btn-next {
	border-color: var(--lm-primary) !important;
	background: var(--lm-primary) !important;
	color: #fff !important;
}

.lm-main .sw .btn.disabled {
	opacity: 0.45;
}

.lm-main .pull-right.btn {
	float: none !important;
	display: flex;
	width: 100%;
	justify-content: center;
}

/*
 * Tombol form surat (surat/form/tombol_cetak.php, dipakai bersama admin): Batal dan Kirim
 * sejajar sama lebar. .btn-social menaruh ikon absolut di kiri dengan garis pemisah; di sini
 * ikon dibuat sebaris dengan teks.
 */
.lm-main .box-footer {
	display: flex;
	gap: 8px;
	padding: 16px 10px 10px;
	border: 0;
	background: transparent;
}

.lm-main .box-footer .btn {
	display: inline-flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	min-height: var(--lm-tap);
	margin: 0 !important;
	padding: 10px 16px;
	border-radius: 14px;
	font-size: 15px;
	font-weight: 700;
}

.lm-main .box-footer .btn-social > :first-child {
	position: static;
	width: auto;
	border: 0;
	font-size: 15px;
	line-height: 1;
}

/* Clearfix Bootstrap (.nav::before/::after) ikut jadi sel grid; matikan */
.lm-main .nav-tabs-custom > .nav-tabs::before,
.lm-main .nav-tabs-custom > .nav-tabs::after,
.lm-main .sw > .nav::before,
.lm-main .sw > .nav::after {
	display: none;
}


/* Tema "arrows" smartWizard menggeser tiap langkah -30px */
.lm-main .sw > .nav .nav-link {
	margin: 0 !important;
}

/* CSS lama .pendapat mematok lebar 100px dan margin 10px */
.lm-rating a.lm-rating__item {
	width: auto;
	margin: 0;
	padding: 12px 2px;
	border: 0;
	color: var(--lm-ink);
}

.lm-rating a.lm-rating__item > p {
	margin: 0;
	font-size: 11px;
	text-transform: none;
}

/* ---------- Halaman masuk (fmandiri/masuk.php) ---------- */

.lm-auth {
	min-height: 100vh;
	min-height: 100dvh;
}

.lm-auth__hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: calc(40px + env(safe-area-inset-top)) 24px 76px;
	border-radius: 0 0 32px 32px;
	background: var(--lm-primary);
	color: #fff;
	text-align: center;
}

.lm-auth__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	margin-bottom: 10px;
	border-radius: 24px;
	background: #fff;
}

.lm-auth__logo img {
	width: 64px;
	height: 64px;
	object-fit: contain;
}

.lm-auth__eyebrow {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--lm-on-primary-muted);
}

.lm-body .lm-auth__title {
	margin: 0;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.2;
	color: #fff;
}

.lm-auth__place {
	margin: 0;
	font-size: 13px;
	color: var(--lm-on-primary-muted);
}

.lm-auth__panel {
	width: 100%;
	max-width: 440px;
	margin: -48px auto 0;
	padding: 0 16px calc(24px + env(safe-area-inset-bottom));
	box-sizing: border-box;
}

.lm-auth--wide .lm-auth__panel {
	max-width: 640px;
}

.lm-auth__card {
	position: relative;
	padding: 24px 20px;
	border-radius: var(--lm-radius-lg);
	background: var(--lm-surface);
	box-shadow: var(--lm-shadow);
}

.lm-body .lm-auth__heading {
	margin: 0 0 16px;
	font-size: 19px;
	font-weight: 800;
	color: var(--lm-ink);
}

.lm-auth__card .lm-field + .lm-field {
	margin-top: 16px;
}

.lm-auth__label-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.lm-auth__submit {
	margin-top: 20px;
}

.lm-auth__alt {
	margin-top: 12px;
}

.lm-auth__center {
	display: block;
	margin-top: 14px;
	text-align: center;
}

.lm-auth__scan {
	margin-bottom: 16px;
	text-align: center;
}

.lm-auth__scan img {
	width: 96px;
	height: auto;
}

.lm-auth__locked {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	text-align: center;
}

.lm-auth__more {
	margin-top: 24px;
}

.lm-auth__divider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--lm-muted);
}

.lm-auth__divider::before,
.lm-auth__divider::after {
	content: '';
	flex: 1 1 auto;
	height: 1px;
	background: var(--lm-line-strong);
}

.lm-auth__note {
	margin: 16px 0 0;
	font-size: 14px;
	color: var(--lm-ink-2);
	text-align: center;
}

.lm-auth__more .lm-btn--soft {
	margin-top: 16px;
}

.lm-auth__footer {
	margin-top: 28px;
	text-align: center;
}

.lm-auth__footer p {
	margin: 4px 0 0;
	font-size: 12px;
	color: var(--lm-muted);
}

@media (min-width: 992px) {
	.lm-auth {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	}

	.lm-auth__hero {
		position: sticky;
		top: 0;
		justify-content: flex-end;
		align-items: flex-start;
		height: 100vh;
		box-sizing: border-box;
		padding: 48px;
		border-radius: 0;
		background:
			linear-gradient(rgba(9, 64, 47, 0.78), rgba(9, 64, 47, 0.78)),
			var(--lm-latar, none) center / cover no-repeat,
			var(--lm-primary);
		text-align: left;
	}

	.lm-body .lm-auth__title {
		font-size: 36px;
	}

	.lm-auth__panel {
		display: flex;
		flex-direction: column;
		justify-content: center;
		max-width: 480px;
		min-height: 100vh;
		margin: 0 auto;
		padding: 48px 24px;
	}

	.lm-auth--wide .lm-auth__panel {
		max-width: 680px;
	}
}

/* a:hover Bootstrap (garis bawah + biru) mengalahkan class komponen tunggal */
.lm-body a[class*='lm-']:hover,
.lm-body a[class*='lm-']:focus {
	text-decoration: none;
}

.lm-body .lm-link:hover,
.lm-body .lm-link:focus {
	color: var(--lm-primary-strong);
	text-decoration: underline;
}

/* ---------- Form di halaman masuk/daftar/lupa PIN ---------- */

.lm-auth__card form > * + * {
	margin-top: 16px;
}

.lm-auth__card form > input[type='hidden'] + *,
.lm-auth__card form > .lm-auth__heading + *,
.lm-auth__card form > .lm-alert + * {
	margin-top: 0;
}

.lm-auth__card form > .lm-auth__submit {
	margin-top: 24px;
}

.lm-field-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.lm-field-row > .lm-field + .lm-field {
	margin-top: 0;
}

.lm-segmented {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	gap: 4px;
	padding: 4px;
	border-radius: 14px;
	background: #e7ebe8;
}

.lm-segmented__item {
	position: relative;
	margin: 0;
	cursor: pointer;
}

.lm-segmented__item input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.lm-segmented__item span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	border-radius: 11px;
	color: var(--lm-muted);
	font-size: 14px;
	font-weight: 600;
}

.lm-segmented__item input:checked + span {
	background: var(--lm-surface);
	color: var(--lm-ink);
	font-weight: 700;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.lm-segmented__item input:focus-visible + span {
	outline: 3px solid var(--lm-accent);
	outline-offset: 2px;
}

.lm-auth__card form > .lm-auth__send-label {
	margin-top: 20px;
}

.lm-auth__card form > .lm-btn-row--flush {
	margin-top: 8px;
}

.lm-empty__icon--ok {
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
}

.lm-auth__locked + .lm-auth__submit {
	margin-top: 20px;
}

.lm-alert--info {
	background: var(--lm-info-bg);
	color: var(--lm-info-fg);
}

.lm-alert--warn {
	background: var(--lm-warn-bg);
	color: var(--lm-warn-fg);
}

/* Banner beranda: teks + tautan aksi di bawahnya */
.lm-alert__body {
	flex: 1 1 auto;
	min-width: 0;
}

.lm-alert__title {
	margin: 0 0 2px;
	font-weight: 700;
}

.lm-alert a.lm-alert__action,
.lm-alert a.lm-alert__action:hover {
	display: inline-block;
	margin-top: 6px;
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
}

.lm-card + .lm-alert {
	margin-top: 16px;
}

/* ---------- Registrasi bertahap ---------- */

.lm-stepper {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}

.lm-stepper__item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 10px;
	border-top: 4px solid var(--lm-line);
	font-size: 12px;
	font-weight: 600;
	color: var(--lm-muted);
}

.lm-stepper__item.is-done {
	border-top-color: var(--lm-primary-soft);
	color: var(--lm-ink-2);
}

.lm-stepper__item.is-current {
	border-top-color: var(--lm-primary);
	color: var(--lm-primary);
	font-weight: 800;
}

.lm-stepper__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 11px;
	background: var(--lm-ground);
	font-size: 11px;
	font-weight: 800;
}

.lm-stepper__item.is-current .lm-stepper__num {
	background: var(--lm-primary);
	color: #fff;
}

.lm-stepper__item.is-done .lm-stepper__num {
	background: var(--lm-primary-soft);
	color: var(--lm-primary);
}

.lm-input--otp {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: 0.5em;
	text-align: center;
}

.lm-input--otp::placeholder {
	letter-spacing: 0.3em;
}

.lm-auth__resend {
	margin-top: 12px;
}

.lm-auth__card form > .lm-hint {
	margin-top: 8px;
}

.lm-btn[disabled] {
	opacity: 0.55;
	cursor: not-allowed;
}


/* Input tanggal bawaan ponsel butuh lebar penuh; baris dua kolom bertumpuk di layar sempit */
@media (max-width: 479px) {
	.lm-field-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}
}
