/* Kingdom Drive — stakeholder portals
   Tokens: Najd Night #0A1F44 · Dune #EEF2F8 · Khaleeji Gold #D4AF37
   Money and metrics are always tabular mono: the ledger is the brand. */

.kd-portal, .kd-portal-head {
	--kd-night: #0a1f44; --kd-dune: #eef2f8; --kd-gold: #d4af37;
	--kd-ink: #0f172a; --kd-good: #109861; --kd-bad: #dc4437; --kd-line: #d8dfeb;
	font-family: "Inter", -apple-system, "Segoe UI", sans-serif;
	color: var(--kd-ink);
}

.kd-portal-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px;
	flex-wrap: wrap; padding: 28px 0 18px; border-bottom: 3px double var(--kd-gold); margin-bottom: 24px; }
.kd-portal-head h1 { font-family: "Inter", sans-serif; font-size: clamp(26px, 4vw, 38px);
	margin: 0 0 6px; color: var(--kd-night); letter-spacing: -.01em; }
.kd-portal-head p { margin: 0; color: #54627a; max-width: 62ch; }
.kd-portal-user { text-align: right; font-size: 14px; }
.kd-portal-user span { display: block; font-weight: 600; }
.kd-portal-user a { color: var(--kd-bad); text-decoration: none; }

.kd-kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 26px; }
.kd-kpi-card { background: var(--kd-night); color: var(--kd-dune); border-radius: 10px; padding: 16px 18px; }
.kd-kpi-card span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; opacity: .75; }
.kd-kpi-card strong { display: block; margin-top: 6px; font-size: 19px;
	font-family: "IBM Plex Mono", ui-monospace, monospace; font-variant-numeric: tabular-nums; }
.kd-kpi-card.kd-good strong { color: #8fd6ae; }
.kd-kpi-card.kd-bad strong { color: #f0a08f; }

.kd-card { background: #fff; border: 1px solid var(--kd-line); border-radius: 12px; padding: 22px 24px; margin-bottom: 22px; }
.kd-card h2, .kd-card h3 { font-family: "Inter", sans-serif; color: var(--kd-night); margin-top: 0; }
.kd-card h4 { margin: 22px 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .07em; color: #6a756f; }

/* The vehicle ledger — the signature block */
.kd-ledger { border-top: 6px solid var(--kd-gold); }
.kd-ledger-head { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; align-items: flex-start; }
.kd-ledger-head p { color: #54627a; margin: 4px 0 0; font-size: 14px; }
.kd-ledger-net { text-align: right; background: var(--kd-dune); border-radius: 10px; padding: 12px 18px; min-width: 220px; }
.kd-ledger-net span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: #6a756f; }
.kd-ledger-net strong { font-family: "IBM Plex Mono", monospace; font-size: 22px; font-variant-numeric: tabular-nums; }
.kd-ledger-net.kd-good strong { color: var(--kd-good); }
.kd-ledger-net.kd-bad strong { color: var(--kd-bad); }

.kd-ledger-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 18px; }
@media (max-width: 860px) { .kd-ledger-grid { grid-template-columns: 1fr; } }
.kd-ledger-block dl { margin: 0; }
.kd-ledger-block dl > div { display: flex; justify-content: space-between; gap: 12px;
	padding: 7px 0; border-bottom: 1px dotted var(--kd-line); }
.kd-ledger-block dt { color: #54627a; }
.kd-ledger-block dd { margin: 0; font-family: "IBM Plex Mono", monospace; font-variant-numeric: tabular-nums; font-weight: 500; }

.kd-chart-wrap { margin-top: 8px; }

.kd-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.kd-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
	color: #6a756f; border-bottom: 2px solid var(--kd-night); padding: 8px 10px; }
.kd-table td { padding: 9px 10px; border-bottom: 1px solid var(--kd-line);
	font-variant-numeric: tabular-nums; }
.kd-table td[data-l="Revenue"], .kd-table td[data-l="Amount"], .kd-table td[data-l="Commission"],
.kd-table td[data-l="Salary"], .kd-table td[data-l="Net pay"], .kd-table td[data-l="Incentives"],
.kd-table td[data-l="Deductions"] { font-family: "IBM Plex Mono", monospace; }

.kd-pill { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.kd-pill-completed, .kd-pill-paid, .kd-pill-approved { background: #e2f1e8; color: var(--kd-good); }
.kd-pill-scheduled, .kd-pill-declared, .kd-pill-draft { background: #f6ecd6; color: #8a6a24; }
.kd-pill-cancelled { background: #f7e3de; color: var(--kd-bad); }

.kd-bad { color: var(--kd-bad); }
.kd-good { color: var(--kd-good); }

.kd-locked { max-width: 560px; margin: 40px auto; text-align: center; background: #fff;
	border: 1px solid var(--kd-line); border-radius: 14px; padding: 40px 32px; }
.kd-locked h2 { font-family: "Inter", sans-serif; color: var(--kd-night); margin-top: 0; }
.kd-login { text-align: left; }
.kd-login h2 { text-align: center; }
.kd-login form p { margin: 0 0 14px; }
.kd-login label { display: block; font-weight: 600; margin-bottom: 4px; }
.kd-login input[type=text], .kd-login input[type=password] { width: 100%; padding: 10px 12px;
	border: 1px solid var(--kd-line); border-radius: 8px; }
.kd-login input[type=submit] { background: var(--kd-night); color: var(--kd-dune); border: 0;
	border-radius: 8px; padding: 11px 22px; font-weight: 600; cursor: pointer; width: 100%; }
.kd-login input[type=submit]:hover { background: #132c5c; }
.kd-note { text-align: center; font-size: 14px; }

.kd-btn { display: inline-block; background: var(--kd-night); color: var(--kd-dune) !important;
	padding: 11px 24px; border-radius: 8px; text-decoration: none; font-weight: 600; margin: 4px; }
.kd-btn:hover { background: #132c5c; }
.kd-btn-ghost { background: transparent; color: var(--kd-night) !important; border: 1.5px solid var(--kd-night); }

@media (max-width: 680px) {
	.kd-table thead { display: none; }
	.kd-table tr { display: block; border: 1px solid var(--kd-line); border-radius: 10px; margin-bottom: 10px; padding: 6px 0; }
	.kd-table td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 6px 14px; }
	.kd-table td::before { content: attr(data-l); font-weight: 600; color: #6a756f; }
}

/* ============ Booking experience (/book/) ============ */
.kd-booking { --bk-navy: #0a1f44; --bk-gold: #d4af37; --bk-line: #dde4f0; --bk-muted: #55647e; }
.kd-book-layout { display: grid; grid-template-columns: 1.55fr 1fr; gap: 26px; align-items: start; max-width: 1080px; }
.kd-book-form { display: grid; gap: 18px; }
.kd-bf-card { background: #fff; border: 1px solid var(--bk-line); border-radius: 16px; padding: 24px 26px;
	box-shadow: 0 1px 2px rgba(10,31,68,.05), 0 6px 18px rgba(10,31,68,.05); }
.kd-bf-card > legend, .kd-bf-title { font: 600 11px "IBM Plex Mono", monospace; letter-spacing: .18em;
	text-transform: uppercase; color: #a8871f; margin: 0 0 16px; display: block; }
.kd-bf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.kd-bf-grid .kd-bf-full { grid-column: 1 / -1; }
.kd-booking label { display: block; font: 600 13.5px "Inter", sans-serif; color: #0f172a; }
.kd-booking label small { font-weight: 500; color: var(--bk-muted); }
.kd-booking .req { color: #dc4437; }
.kd-booking input[type="text"], .kd-booking input[type="email"], .kd-booking input[type="date"],
.kd-booking input[type="time"], .kd-booking input[type="number"], .kd-booking select, .kd-booking textarea {
	width: 100%; margin-top: 7px; font: 400 15px "Inter", sans-serif; color: #0f172a;
	background: #fbfcfe; border: 1.5px solid var(--bk-line); border-radius: 10px; padding: 12px 14px;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.kd-booking textarea { resize: vertical; min-height: 84px; }
.kd-booking input:focus, .kd-booking select:focus, .kd-booking textarea:focus {
	outline: none; background: #fff; border-color: var(--bk-gold); box-shadow: 0 0 0 3px rgba(212,175,55,.18); }
.kd-booking input::placeholder, .kd-booking textarea::placeholder { color: #9aa7c0; }

/* Segmented service selector */
.kd-seg { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.kd-seg input { position: absolute; opacity: 0; pointer-events: none; }
.kd-seg label { display: flex; flex-direction: column; gap: 3px; cursor: pointer; text-align: center;
	border: 1.5px solid var(--bk-line); border-radius: 12px; padding: 13px 10px 12px; background: #fbfcfe;
	font: 600 13.5px "Inter", sans-serif; color: #0f172a; transition: all .15s ease; }
.kd-seg label small { font: 500 11px "Inter", sans-serif; color: var(--bk-muted); }
.kd-seg label:hover { border-color: #b9c4da; }
.kd-seg input:checked + label { border-color: var(--bk-gold); background: linear-gradient(180deg, #fdf9ec, #faf4dd);
	box-shadow: 0 0 0 3px rgba(212,175,55,.15); }
.kd-seg input:focus-visible + label { outline: 3px solid var(--bk-gold); outline-offset: 2px; }

/* Fare summary panel */
.kd-fare { position: sticky; top: 96px; background: linear-gradient(175deg, #12305f, #0a1f44 70%, #071630);
	color: #eef2f8; border-radius: 16px; padding: 24px 26px; border: 1px solid rgba(212,175,55,.4);
	box-shadow: 0 20px 50px rgba(7,22,48,.35); }
.kd-fare h3 { margin: 0 0 4px; font: 700 19px "Inter", sans-serif; color: #fff; }
.kd-fare .kd-fare-sub { margin: 0 0 18px; font-size: 13px; color: #9fb0cd; }
.kd-fare-rows { display: grid; gap: 9px; padding: 14px 0; border-top: 1px solid rgba(238,242,248,.14);
	border-bottom: 1px solid rgba(238,242,248,.14); font-size: 13.5px; }
.kd-fare-rows div { display: flex; justify-content: space-between; gap: 12px; }
.kd-fare-rows span { color: #aab8d4; }
.kd-fare-rows b { font: 500 13px "IBM Plex Mono", monospace; font-variant-numeric: tabular-nums; color: #eef2f8; }
.kd-fare-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; }
.kd-fare-total span { font-size: 13.5px; color: #aab8d4; }
.kd-fare-total strong { font: 600 26px "IBM Plex Mono", monospace; color: #e6c65a; font-variant-numeric: tabular-nums; }
.kd-fare .kd-btn { width: 100%; text-align: center; margin-top: 18px; font-size: 16px; padding: 15px 20px;
	background: linear-gradient(135deg, #e6c65a, #d4af37 55%, #a8871f); color: #071630; border-radius: 11px;
	border: 0; font-weight: 700; cursor: pointer; box-shadow: 0 8px 22px rgba(212,175,55,.35); transition: transform .15s, box-shadow .15s; }
.kd-fare .kd-btn:hover { transform: translateY(-1px); box-shadow: 0 12px 28px rgba(212,175,55,.45); }
.kd-fare-note { margin: 14px 0 0; font-size: 12px; color: #8ea2c6; line-height: 1.55; }
.kd-fare-trust { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 12.5px; color: #c3cfe4; }
.kd-fare-trust li { position: relative; padding-left: 20px; }
.kd-fare-trust li::before { content: "✓"; position: absolute; left: 0; color: #e6c65a; font-weight: 700; }

@media (max-width: 900px) {
	.kd-book-layout { grid-template-columns: 1fr; }
	.kd-fare { position: static; }
	.kd-seg { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.kd-bf-grid { grid-template-columns: 1fr; }
	.kd-bf-card { padding: 20px 18px; }
}

/* ============ Onboarding / KYC (/onboarding/) ============ */
.kd-kyc .kd-kyc-intro { max-width: 1080px; margin-bottom: 26px; }
.kd-kyc .kd-kyc-intro h2 { font: 800 clamp(26px, 3.4vw, 36px) "Inter", sans-serif; color: #0a1f44; margin: 0 0 10px; letter-spacing: -.015em; }
.kd-kyc .kd-kyc-intro p { margin: 0; color: #55647e; font-size: 16px; max-width: 720px; }
.kd-kyc-layout { display: grid; grid-template-columns: 1.55fr 1fr; gap: 26px; align-items: start; max-width: 1080px; }
.kd-kyc-form { display: grid; gap: 18px; }

/* Role selector */
.kd-role { display: grid; grid-template-columns: 1fr; gap: 10px; }
.kd-role input { position: absolute; opacity: 0; pointer-events: none; }
.kd-role label { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; align-items: center; cursor: pointer;
	border: 1.5px solid #dde4f0; border-radius: 12px; padding: 15px 18px; background: #fbfcfe; transition: all .15s ease; }
.kd-role label b { font: 700 15.5px "Inter", sans-serif; color: #0f172a; grid-column: 2; }
.kd-role label small { font: 500 13px "Inter", sans-serif; color: #55647e; grid-column: 2; }
.kd-role label .kd-role-ico { grid-row: 1 / 3; width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center;
	background: linear-gradient(140deg, #12305f, #0a1f44); color: #e6c65a; }
.kd-role label .kd-role-ico svg { width: 22px; height: 22px; }
.kd-role label:hover { border-color: #b9c4da; }
.kd-role input:checked + label { border-color: #d4af37; background: linear-gradient(180deg, #fdf9ec, #faf4dd);
	box-shadow: 0 0 0 3px rgba(212,175,55,.15); }
.kd-role input:focus-visible + label { outline: 3px solid #d4af37; outline-offset: 2px; }

/* File dropzone-style inputs */
.kd-file { margin-top: 7px; position: relative; }
.kd-file input[type="file"] { width: 100%; font: 500 13.5px "Inter", sans-serif; color: #55647e;
	border: 1.5px dashed #c6d0e2; border-radius: 10px; padding: 16px 14px; background: #fbfcfe; cursor: pointer;
	transition: border-color .15s, background .15s; }
.kd-file input[type="file"]:hover { border-color: #d4af37; background: #fdfbf3; }
.kd-file input[type="file"]::file-selector-button { font: 600 13px "Inter", sans-serif; color: #0a1f44;
	background: #eef2f8; border: 1px solid #dde4f0; border-radius: 8px; padding: 8px 14px; margin-right: 12px; cursor: pointer; }
.kd-file input[type="file"]:focus-visible { outline: 3px solid #d4af37; outline-offset: 2px; }

/* Process panel */
.kd-kyc-side { position: sticky; top: 96px; display: grid; gap: 18px; }
.kd-process { background: linear-gradient(175deg, #12305f, #0a1f44 70%, #071630); color: #eef2f8;
	border-radius: 16px; padding: 24px 26px; border: 1px solid rgba(212,175,55,.4); box-shadow: 0 20px 50px rgba(7,22,48,.3); }
.kd-process h3 { margin: 0 0 16px; font: 700 18px "Inter", sans-serif; color: #fff; }
.kd-process ol { margin: 0; padding: 0; list-style: none; counter-reset: kdp; display: grid; gap: 14px; }
.kd-process li { position: relative; padding-left: 40px; font-size: 13.8px; color: #c3cfe4; counter-increment: kdp; }
.kd-process li b { display: block; color: #fff; font-size: 14.5px; }
.kd-process li::before { content: counter(kdp); position: absolute; left: 0; top: 1px; width: 27px; height: 27px;
	display: grid; place-items: center; font: 700 12.5px "IBM Plex Mono", monospace; color: #071630;
	background: linear-gradient(135deg, #e6c65a, #d4af37); border-radius: 8px; }
.kd-kyc-assure { background: #fff; border: 1px solid #dde4f0; border-radius: 16px; padding: 20px 24px;
	box-shadow: 0 1px 2px rgba(10,31,68,.05), 0 6px 18px rgba(10,31,68,.05); }
.kd-kyc-assure ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; font-size: 13.3px; color: #55647e; }
.kd-kyc-assure li { position: relative; padding-left: 22px; }
.kd-kyc-assure li::before { content: "✓"; position: absolute; left: 0; color: #109861; font-weight: 700; }

@media (max-width: 900px) {
	.kd-kyc-layout { grid-template-columns: 1fr; }
	.kd-kyc-side { position: static; }
}

/* ============ Portal sign-in (/portal-login/) ============ */
.kd-login { max-width: 460px !important; margin: 0 auto; }
.kd-login h2 { text-align: center; }
.kd-login > p { text-align: center; color: #55647e; font-size: 14.5px; }
.kd-login #loginform { margin-top: 20px; }
.kd-login #loginform p { margin: 0 0 16px; }
.kd-login #loginform label { display: block; font: 600 13.5px "Inter", sans-serif; color: #0f172a; margin-bottom: 7px; }
.kd-login #loginform input[type="text"], .kd-login #loginform input[type="password"] {
	width: 100%; font: 400 15.5px "Inter", sans-serif; color: #0f172a; background: #fbfcfe;
	border: 1.5px solid #dde4f0; border-radius: 10px; padding: 13px 14px; box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease; }
.kd-login #loginform input:focus { outline: none; background: #fff; border-color: #d4af37;
	box-shadow: 0 0 0 3px rgba(212,175,55,.18); }
.kd-login .login-remember { display: flex; align-items: center; gap: 8px; }
.kd-login .login-remember label { display: flex; align-items: center; gap: 8px; margin: 0;
	font-weight: 500; color: #55647e; cursor: pointer; }
.kd-login .login-remember input { accent-color: #d4af37; width: 16px; height: 16px; }
.kd-login .login-submit input[type="submit"] {
	width: 100%; font: 700 16px "Inter", sans-serif; color: #071630; cursor: pointer;
	background: linear-gradient(135deg, #e6c65a, #d4af37 55%, #a8871f);
	border: 0; border-radius: 11px; padding: 15px 20px;
	box-shadow: 0 8px 22px rgba(212,175,55,.35); transition: transform .15s, box-shadow .15s; }
.kd-login .login-submit input[type="submit"]:hover { transform: translateY(-1px);
	box-shadow: 0 12px 28px rgba(212,175,55,.45); }
.kd-login .kd-note { text-align: center; margin-top: 16px; }
.kd-login .kd-note a { color: #55647e; font-size: 13.5px; }
.kd-login .kd-note a:hover { color: #a8871f; }

/* Login role chips */
.kd-login-roles { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin: 6px 0 12px; }
.kd-login-roles span { font: 600 11px "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase;
	color: #55647e; background: #f1f4fa; border: 1px solid #dde4f0; border-radius: 999px; padding: 5px 11px; }

/* ============ Booking wizard ============ */
.kd-wiz-bar { display: flex; gap: 8px; list-style: none; margin: 0 0 18px; padding: 0; }
.kd-wiz-bar li { flex: 1; display: flex; align-items: center; gap: 8px; font: 600 13px "Inter", sans-serif;
	color: #8494b3; padding: 10px 12px; background: #fff; border: 1.5px solid #dde4f0; border-radius: 11px; cursor: default; }
.kd-wiz-bar li span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 7px;
	background: #eef2f8; color: #55647e; font: 700 12px "IBM Plex Mono", monospace; }
.kd-wiz-bar li.on { color: #0a1f44; border-color: #d4af37; }
.kd-wiz-bar li.on span { background: linear-gradient(135deg, #e6c65a, #d4af37); color: #071630; }
.kd-wiz-bar li.on { cursor: pointer; }
.kd-wstep[hidden] { display: none; }
.kd-wiz-nav { display: flex; gap: 10px; margin-top: 16px; }
.kd-wiz-nav .kd-btn { flex: 1; }
.kd-btn-back { font: 600 14px "Inter", sans-serif; color: #55647e; background: #fff; border: 1.5px solid #dde4f0;
	border-radius: 11px; padding: 13px 18px; cursor: pointer; transition: border-color .15s; }
.kd-btn-back:hover { border-color: #b9c4da; color: #0a1f44; }
.kd-trip-chip { display: flex; align-items: center; gap: 12px; background: linear-gradient(180deg,#fdf9ec,#faf4dd);
	border: 1.5px solid #d4af37; border-radius: 12px; padding: 12px 16px; margin-bottom: 14px;
	font: 500 13.5px "Inter", sans-serif; color: #0a1f44; }
.kd-trip-chip div { flex: 1; }
.kd-chip-edit { font: 700 12.5px "Inter", sans-serif; color: #a8871f; background: none; border: 0; cursor: pointer;
	text-decoration: underline; white-space: nowrap; }
.kd-review { display: grid; gap: 10px; margin: 0; }
.kd-review > div { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 10px;
	border-bottom: 1px solid #eef2f8; font-size: 14px; }
.kd-review dt { color: #55647e; font-weight: 500; }
.kd-review dd { margin: 0; color: #0f172a; font-weight: 600; text-align: right; }
.kd-review-note { margin: 14px 0 0; font-size: 13px; color: #55647e; background: #f6f8fc; border-radius: 10px; padding: 12px 14px; }
.kd-wa-alt { text-align: center; font-size: 14px; color: #55647e; margin: 4px 0 0; }
.kd-wa-alt a { color: #0a7d46; font-weight: 700; }

/* ============ Wizard polish: contrast + gold primaries ============ */
.kd-wiz-head h2 { font: 800 26px "Inter", sans-serif; color: #0a1f44; margin: 0 0 4px; letter-spacing: -.01em; }
.kd-wiz-head p { margin: 0 0 16px; font-size: 14px; color: #55647e; }
.kd-wiz-bar li { background: #eef2f8; border-color: #d5ddeb; color: #55647e; }
.kd-wiz-bar li span { background: #dde4f0; }
.kd-wiz-bar li.on { background: linear-gradient(175deg, #12305f, #0a1f44); border-color: #0a1f44; color: #fff; }
.kd-wiz-bar li.on span { background: linear-gradient(135deg, #e6c65a, #d4af37); color: #071630; }
.kd-wiz .kd-next, .kd-wiz button[type="submit"].kd-btn {
	background: linear-gradient(135deg, #e6c65a, #d4af37 55%, #a8871f) !important;
	color: #071630 !important; font-weight: 700; border: 0; border-radius: 11px;
	box-shadow: 0 8px 22px rgba(212,175,55,.35); transition: transform .15s, box-shadow .15s; }
.kd-wiz .kd-next:hover, .kd-wiz button[type="submit"].kd-btn:hover {
	transform: translateY(-1px); box-shadow: 0 12px 28px rgba(212,175,55,.45); background: linear-gradient(135deg, #edd06a, #d9b53f 55%, #b08f24) !important; }

/* ============ Branded portal login ============ */
.kd-login-shell { display: flex; flex-direction: column; align-items: center; }
.kd-login-brand { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-bottom: 22px; text-align: center; }
.kd-login-brand img { border-radius: 19px; box-shadow: 0 10px 30px rgba(0,0,0,.4), 0 0 0 1px rgba(212,175,55,.45); margin-bottom: 8px; }
.kd-login-brand b { font: 800 22px "Inter", sans-serif; letter-spacing: .02em; color: #eef2f8; }
.kd-login-brand b em { font-style: normal; color: #d4af37; }
.kd-login-brand small { font: 600 9.5px "IBM Plex Mono", monospace; letter-spacing: .3em; color: #7f93bd; }
.kd-login-shell .kd-login { background: #fff; border: 1px solid rgba(212,175,55,.4); border-radius: 18px;
	box-shadow: 0 30px 70px rgba(4,12,28,.55); padding: 30px 32px; }
.kd-login-trust { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; list-style: none;
	margin: 20px 0 0; padding: 0; font-size: 12.5px; color: #9fb0cd; }
.kd-login-trust li::before { content: "✓ "; color: #d4af37; font-weight: 700; }
.kd-login-back { margin: 14px 0 0; }
.kd-login-back a { font-size: 13px; color: #7f93bd; text-decoration: none; }
.kd-login-back a:hover { color: #d4af37; }

/* ============ Contact page layout ============ */
.kd-contact-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 26px; align-items: start; margin: 26px 0 8px; }
.kd-contact-info { background: linear-gradient(175deg, #12305f, #0a1f44 60%, #071630); color: #cfd9ec;
	border: 1px solid rgba(212,175,55,.4); border-radius: 16px; padding: 26px 26px 22px; font-size: 14.5px; }
.kd-contact-info .kd-bf-title { color: #e6c65a; }
.kd-contact-info p { margin: 14px 0 0; }
.kd-contact-info strong { color: #fff; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-family: "IBM Plex Mono", monospace; }
.kd-contact-info a { color: #e6c65a; text-decoration: none; }
.kd-contact-info a:hover { color: #fff; }
.kd-contact-links a { display: inline-block; margin-top: 4px; font-weight: 600; }
.kd-contact-rule { border: 0; border-top: 1px solid #e8edf6; margin: 34px 0 26px; }
.kd-wa-cta { display: inline-flex; align-items: center; gap: 9px; margin: 14px 0 2px;
	font: 700 14px "Inter", sans-serif; color: #0a7d46 !important; background: #eafaf1;
	border: 1.5px solid #bfe8d2; border-radius: 11px; padding: 11px 18px; text-decoration: none;
	transition: border-color .15s, transform .15s; }
.kd-wa-cta:hover { border-color: #0a7d46; transform: translateY(-1px); color: #065f36 !important; }
.kd-wa-dot { width: 9px; height: 9px; border-radius: 50%; background: #22c15e; box-shadow: 0 0 0 3px rgba(34,193,94,.2); }
.kd-contact-info .kd-wa-cta { background: rgba(34,193,94,.12); border-color: rgba(34,193,94,.4); color: #7fe0a8 !important; }
.kd-contact-info .kd-wa-cta:hover { color: #b5f0cd !important; }
@media (max-width: 880px) { .kd-contact-grid { grid-template-columns: 1fr; } }
