/* Kreupa CV Checkout — design tokens + layout (checkout, success, failure) */
.kcv-checkout, .kcv-result {
	--kcv-brand:#1a56db; --kcv-brand-dark:#123f99; --kcv-brand-tint:#eef3fd;
	--kcv-ink:#161b22; --kcv-muted:#6b7280; --kcv-line:#e5e7eb; --kcv-bg:#f8f9fb; --kcv-surface:#ffffff;
	--kcv-radius:14px; --kcv-radius-sm:9px; --kcv-shadow:0 8px 28px rgba(15,23,42,.07);
	--kcv-success:#0f7b3f; --kcv-success-bg:#e9f7ee; --kcv-success-line:#bfe8cf;
	--kcv-danger:#c0271a; --kcv-danger-bg:#fef2f2; --kcv-danger-line:#fbd0cb;
	--kcv-warn:#8a6d00; --kcv-warn-bg:#fff8e1; --kcv-warn-line:#f4e4a3;
	color:var(--kcv-ink); font-size:15px; line-height:1.5;
}
.kcv-checkout *, .kcv-checkout *::before, .kcv-checkout *::after,
.kcv-result *, .kcv-result *::before, .kcv-result *::after { box-sizing:border-box; }

.kcv-checkout { max-width:1080px; margin:0 auto; }

.kcv-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; align-items:start; }
@media (max-width:860px){ .kcv-grid { grid-template-columns:1fr; } }

.kcv-section-title { margin:0 0 18px; font-size:1.08rem; font-weight:700; letter-spacing:-.01em; color:var(--kcv-ink); }

.kcv-col--fields, .kcv-summary {
	background:var(--kcv-surface); border:1px solid var(--kcv-line); border-radius:var(--kcv-radius);
	padding:24px 24px 26px; box-shadow:var(--kcv-shadow);
}
.kcv-col--summary { position:sticky; top:24px; }

.kcv-field { margin-bottom:17px; }
.kcv-field:last-child { margin-bottom:0; }
.kcv-row2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:520px){ .kcv-row2 { grid-template-columns:1fr; } }
.kcv-field label { display:block; margin-bottom:6px; font-size:.85rem; font-weight:600; color:#374151; }
.kcv-req { color:var(--kcv-danger); }
.kcv-field input, .kcv-field textarea {
	width:100%; padding:11px 13px; font-size:.95rem; font-family:inherit; color:var(--kcv-ink);
	border:1px solid var(--kcv-line); border-radius:var(--kcv-radius-sm); background:#fff; transition:border-color .15s, box-shadow .15s;
}
.kcv-field input::placeholder, .kcv-field textarea::placeholder { color:#9aa1ad; }
.kcv-field input:focus, .kcv-field textarea:focus {
	outline:none; border-color:var(--kcv-brand); box-shadow:0 0 0 3px rgba(26,86,219,.14);
}
.kcv-field textarea { resize:vertical; min-height:90px; }
.kcv-field input[type="file"] { padding:9px 12px; background:var(--kcv-bg); cursor:pointer; }
.kcv-field input[type="file"]::file-selector-button {
	margin-right:12px; padding:7px 14px; font-size:.85rem; font-weight:600; color:var(--kcv-brand);
	background:var(--kcv-brand-tint); border:none; border-radius:7px; cursor:pointer; transition:background .15s;
}
.kcv-field input[type="file"]::file-selector-button:hover { background:#e0e9fb; }
.kcv-hint { display:block; margin-top:5px; font-size:.78rem; color:var(--kcv-muted); }

.kcv-line { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:12px 0; border-bottom:1px dashed var(--kcv-line); }
.kcv-line-label { font-size:.92rem; color:#374151; }
.kcv-line-value { font-size:.95rem; font-weight:600; white-space:nowrap; }

.kcv-line--addon { align-items:center; }
.kcv-addon { display:flex; gap:10px; align-items:flex-start; cursor:pointer; margin:0; }
.kcv-addon input { margin-top:3px; width:16px; height:16px; accent-color:var(--kcv-brand); flex:0 0 auto; }
.kcv-addon-text { display:flex; flex-direction:column; }
.kcv-addon-note { font-size:.75rem; color:var(--kcv-muted); }

.kcv-line--subtotal .kcv-line-label, .kcv-line--gst .kcv-line-label { color:var(--kcv-muted); }
.kcv-line--subtotal .kcv-line-value, .kcv-line--gst .kcv-line-value { font-weight:500; color:#374151; }

.kcv-line--total { border-bottom:none; padding-top:16px; margin-top:2px; }
.kcv-line--total .kcv-line-label { font-size:1.02rem; font-weight:700; }
.kcv-line--total .kcv-line-value { font-size:1.32rem; font-weight:800; color:var(--kcv-brand); }

.kcv-terms { display:flex; gap:10px; align-items:flex-start; margin:16px 0 4px; font-size:.85rem; color:#374151; cursor:pointer; }
.kcv-terms input { margin-top:2px; width:16px; height:16px; accent-color:var(--kcv-brand); flex:0 0 auto; }

.kcv-error {
	margin:12px 0 0; padding:10px 13px; font-size:.85rem; color:var(--kcv-danger);
	background:var(--kcv-danger-bg); border:1px solid var(--kcv-danger-line); border-radius:var(--kcv-radius-sm);
}

.kcv-pay-button {
	width:100%; margin-top:16px; padding:14px 18px; font-size:1rem; font-weight:700; color:#fff; cursor:pointer;
	background:var(--kcv-brand); border:none; border-radius:var(--kcv-radius-sm);
	transition:background .15s, transform .05s, box-shadow .15s; box-shadow:0 2px 10px rgba(26,86,219,.25);
}
.kcv-pay-button:hover { background:var(--kcv-brand-dark); }
.kcv-pay-button:active { transform:translateY(1px); }
.kcv-pay-button:disabled { opacity:.65; cursor:progress; box-shadow:none; }

.kcv-secure-note { margin:12px 0 0; font-size:.76rem; color:var(--kcv-muted); text-align:center; }

.kcv-line--discount .kcv-line-label { color:var(--kcv-success); }
.kcv-line--discount .kcv-line-value { font-weight:600; color:var(--kcv-success); }
.kcv-neg { white-space:nowrap; }

.kcv-coupon { padding:12px 0 2px; }
.kcv-coupon-input { display:flex; gap:8px; }
.kcv-coupon-input input {
	flex:1 1 auto; padding:10px 12px; font-size:.9rem; text-transform:uppercase; letter-spacing:.04em;
	border:1px solid var(--kcv-line); border-radius:var(--kcv-radius-sm); background:#fff;
}
.kcv-coupon-input input:focus { outline:none; border-color:var(--kcv-brand); box-shadow:0 0 0 3px rgba(26,86,219,.14); }
.kcv-coupon-input input[readonly] { background:var(--kcv-bg); color:var(--kcv-muted); }
.kcv-coupon-btn {
	flex:0 0 auto; padding:10px 16px; font-size:.88rem; font-weight:700; cursor:pointer;
	color:var(--kcv-brand); background:#fff; border:1px solid var(--kcv-brand); border-radius:var(--kcv-radius-sm); transition:background .15s, color .15s;
}
.kcv-coupon-btn:hover { background:var(--kcv-brand); color:#fff; }
.kcv-coupon-btn:disabled { opacity:.6; cursor:progress; }
.kcv-coupon-msg { margin:8px 0 0; font-size:.8rem; }
.kcv-coupon-msg.is-ok { color:var(--kcv-success); }
.kcv-coupon-msg.is-err { color:var(--kcv-danger); }

/* -----------------------------------------------------------------------
 * Result pages: [kreupa_cv_success] / [kreupa_cv_failure] / [kreupa_cv_retry]
 * --------------------------------------------------------------------- */
.kcv-result {
	max-width:520px; margin:0 auto; padding:38px 32px 34px; text-align:center;
	background:var(--kcv-surface); border:1px solid var(--kcv-line); border-radius:var(--kcv-radius); box-shadow:var(--kcv-shadow);
}
.kcv-result-icon { display:inline-flex; margin-bottom:16px; color:var(--kcv-muted); }
.kcv-result--success .kcv-result-icon { color:var(--kcv-success); }
.kcv-result--failure .kcv-result-icon { color:var(--kcv-danger); }
.kcv-result--neutral .kcv-result-icon { color:var(--kcv-brand); }

.kcv-result-title { margin:0 0 8px; font-size:1.5rem; font-weight:800; letter-spacing:-.01em; }
.kcv-result-sub { margin:0 0 22px; color:var(--kcv-muted); font-size:.96rem; line-height:1.55; }

.kcv-result-card {
	text-align:left; background:var(--kcv-bg); border:1px solid var(--kcv-line); border-radius:var(--kcv-radius-sm);
	padding:6px 18px; margin-bottom:20px;
}
.kcv-result-row { display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px dashed var(--kcv-line); font-size:.9rem; }
.kcv-result-row:last-child { border-bottom:none; }
.kcv-result-row span:first-child { color:var(--kcv-muted); }
.kcv-mono { font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:.82rem; }

.kcv-result-note { margin:18px 0 0; font-size:.82rem; color:var(--kcv-muted); line-height:1.6; }
.kcv-result-note a { color:var(--kcv-brand); text-decoration:none; }
.kcv-result-note a:hover { text-decoration:underline; }

.kcv-result-cta { margin-top:22px; }
.kcv-result--failure .kcv-pay-button { background:var(--kcv-danger); box-shadow:0 2px 10px rgba(192,39,26,.25); }
.kcv-result--failure .kcv-pay-button:hover { background:#9c1f14; }

@media (max-width:520px){
	.kcv-result { padding:30px 20px 26px; border-radius:12px; }
}

.kcv-retry { max-width:420px; margin:0 auto; }
[hidden] { display:none !important; }
