/* ============================================================
   LatePoint Disclaimer & Signature Step Styles
   ============================================================ */
:root {
	--ibd-primary:      #0c5f8c;
	--ibd-primary-dark: #084567;
	--ibd-accent:       #ff8c00;
	--ibd-success:      #2e7d32;
	--ibd-error:        #c62828;
	--ibd-bg:           #f0f8ff;
	--ibd-border:       #c9dce8;
	--ibd-text:         #1e1e1e;
	--ibd-muted:        #6b7280;
	--ibd-radius:       10px;
	--ibd-shadow:       0 2px 12px rgba(12,95,140,.12);
}

/* ---- Container ---- */
.ibd-disclaimer-step {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--ibd-text);
	max-width: 680px;
	margin: 0 auto;
}

/* ---- Header ---- */
.ibd-step-header {
	text-align: center;
	padding: 16px 0 12px;
	border-bottom: 2px solid var(--ibd-primary);
	margin-bottom: 20px;
}
.ibd-step-icon   { font-size: 2.2rem; line-height: 1; margin-bottom: 6px; }
.ibd-step-title  { font-size: 1.3rem; font-weight: 700; color: var(--ibd-primary); margin: 0 0 6px; }
.ibd-step-subtitle { font-size: 0.82rem; color: var(--ibd-muted); max-width: 520px; margin: 0 auto; line-height: 1.5; }

/* ---- Booking strip ---- */
.ibd-booking-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	background: var(--ibd-bg);
	border: 1px solid var(--ibd-border);
	border-radius: var(--ibd-radius);
	padding: 10px 14px;
	margin-bottom: 20px;
}
.ibd-strip-item    { display: flex; align-items: center; gap: 6px; font-size: 0.82rem; }
.ibd-strip-icon    { font-size: 1rem; }
.ibd-strip-label   { color: var(--ibd-muted); }
.ibd-strip-value   { font-weight: 600; color: var(--ibd-primary); }

/* ---- Sections ---- */
.ibd-section {
	background: #fff;
	border: 1px solid var(--ibd-border);
	border-radius: var(--ibd-radius);
	padding: 16px;
	margin-bottom: 16px;
	box-shadow: var(--ibd-shadow);
}
.ibd-section-title {
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--ibd-primary);
	margin: 0 0 14px;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* ---- Badges ---- */
.ibd-pre-filled-badge,
.ibd-required-badge,
.ibd-optional-badge {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: 600;
	border-radius: 4px;
	padding: 1px 6px;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.ibd-pre-filled-badge { background: #e3f2fd; color: #1565c0; }
.ibd-required-badge   { background: #fce4ec; color: #b71c1c; }
.ibd-optional-badge   { background: #f3e5f5; color: #6a1b9a; }

/* ---- Field grid ---- */
.ibd-field-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
@media (max-width: 500px) {
	.ibd-field-grid { grid-template-columns: 1fr; }
}
.ibd-field--full { grid-column: 1 / -1; }

.ibd-field label {
	display: block;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--ibd-muted);
	margin-bottom: 4px;
}
.ibd-field input,
.ibd-field textarea {
	width: 100%;
	border: 1px solid var(--ibd-border);
	border-radius: 6px;
	padding: 8px 10px;
	font-size: 0.88rem;
	color: var(--ibd-text);
	background: #fff;
	box-sizing: border-box;
	transition: border-color .2s;
}
.ibd-field input:focus,
.ibd-field textarea:focus {
	outline: none;
	border-color: var(--ibd-primary);
	box-shadow: 0 0 0 3px rgba(12,95,140,.12);
}
.ibd-readonly {
	background: var(--ibd-bg) !important;
	color: var(--ibd-muted) !important;
	cursor: not-allowed;
}

/* ---- Terms scroll box ---- */
.ibd-terms-section { background: var(--ibd-bg); }
.ibd-terms-scroll {
	max-height: 220px;
	overflow-y: auto;
	border: 1px solid var(--ibd-border);
	border-radius: 6px;
	padding: 12px 14px;
	background: #fff;
	font-size: 0.78rem;
	line-height: 1.6;
	color: var(--ibd-text);
	scroll-behavior: smooth;
}
.ibd-terms-scroll:focus { outline: 2px solid var(--ibd-primary); }
.ibd-terms-list    { margin: 0; padding-left: 18px; }
.ibd-terms-list li { margin-bottom: 8px; }
.ibd-clause-highlight {
	background: #fff8e1;
	border: 1px solid var(--ibd-accent);
	border-radius: 6px;
	padding: 8px 10px;
	margin: 0 0 10px -8px;
	list-style-position: inside;
}
.ibd-terms-final {
	margin-top: 12px;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--ibd-error);
	text-align: center;
	letter-spacing: .01em;
}

/* ---- Signature ---- */
.ibd-signature-wrapper {
	position: relative;
	background: #fff;
	border: 2px dashed var(--ibd-primary);
	border-radius: 8px;
	overflow: hidden;
	height: 160px;
}
.ibd-signature-canvas {
	display: block;
	width: 100%;
	height: 100%;
	cursor: crosshair;
	touch-action: none;
}
.ibd-signature-line {
	position: absolute;
	bottom: 36px;
	left: 16px;
	right: 16px;
	height: 1px;
	background: var(--ibd-border);
	pointer-events: none;
}
.ibd-signature-hint {
	position: absolute;
	bottom: 8px;
	left: 0;
	right: 0;
	text-align: center;
	font-size: 0.7rem;
	color: var(--ibd-muted);
	pointer-events: none;
}
.ibd-clear-btn {
	position: absolute;
	top: 8px;
	right: 8px;
	background: rgba(255,255,255,.85);
	border: 1px solid var(--ibd-border);
	border-radius: 4px;
	padding: 2px 8px;
	font-size: 0.72rem;
	cursor: pointer;
	color: var(--ibd-error);
	transition: background .2s;
}
.ibd-clear-btn:hover { background: #fff; }

/* ---- Accept checkbox ---- */
.ibd-accept-box {
	background: #fffde7;
	border: 1px solid #f9a825;
	border-radius: 6px;
	padding: 12px;
	margin-top: 14px;
}
.ibd-checkbox-label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	cursor: pointer;
}
.ibd-checkbox-label input[type="checkbox"] {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	accent-color: var(--ibd-primary);
	margin-top: 2px;
}
.ibd-checkbox-text {
	font-size: 0.8rem;
	line-height: 1.5;
	color: var(--ibd-text);
}

/* ---- Submit button ---- */
.ibd-submit-area { margin-top: 16px; text-align: center; }
.ibd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 28px;
	border: none;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 700;
	cursor: pointer;
	transition: all .2s;
	position: relative;
}
.ibd-btn--primary {
	background: linear-gradient(135deg, var(--ibd-primary), var(--ibd-primary-dark));
	color: #fff;
	box-shadow: 0 4px 14px rgba(12,95,140,.35);
	width: 100%;
	max-width: 360px;
}
.ibd-btn--primary:hover:not(:disabled) {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(12,95,140,.45);
}
.ibd-btn--primary:disabled {
	opacity: .5;
	cursor: not-allowed;
	transform: none;
}
.ibd-btn-spinner {
	display: none;
	width: 16px;
	height: 16px;
	border: 2px solid rgba(255,255,255,.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: ibd-spin .7s linear infinite;
}
.ibd-loading .ibd-btn-spinner { display: block; }
@keyframes ibd-spin { to { transform: rotate(360deg); } }

/* ---- Status messages ---- */
.ibd-status-message { display: none; margin-top: 12px; }
.ibd-msg {
	display: block;
	padding: 10px 14px;
	border-radius: 6px;
	font-size: 0.84rem;
	font-weight: 600;
}
.ibd-msg--error   { background: #fce4ec; color: var(--ibd-error);   border-left: 3px solid var(--ibd-error); }
.ibd-msg--success { background: #e8f5e9; color: var(--ibd-success);  border-left: 3px solid var(--ibd-success); }

/* ---- Success banner ---- */
.ibd-success-banner {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	background: #e8f5e9;
	border: 2px solid var(--ibd-success);
	border-radius: 8px;
	padding: 16px;
	margin-top: 16px;
	animation: ibd-fadeIn .4s ease;
}
.ibd-success-icon { font-size: 2rem; flex-shrink: 0; }
.ibd-success-text { font-size: 0.84rem; line-height: 1.6; color: var(--ibd-text); }
.ibd-success-text strong { display: block; font-size: 0.95rem; color: var(--ibd-success); margin-bottom: 4px; }
@keyframes ibd-fadeIn { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }

/* ---- LatePoint Next button lock ---- */
.latepoint-next-btn.ibd-lp-locked {
	opacity: .45 !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}

/* ---- Customer cabinet PDF link ---- */
.ibd-customer-pdf-row .booking-info-value { display: flex; }
.ibd-customer-pdf-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-weight: 600;
	color: var(--ibd-primary) !important;
	text-decoration: none;
	transition: color .15s;
}
.ibd-customer-pdf-link:hover { color: var(--ibd-accent) !important; text-decoration: underline; }
.ibd-customer-pdf-link .ibd-pdf-icon { font-size: 1rem; line-height: 1; }

/* ---- Admin order meta box ---- */
.ibd-admin-meta-box { font-size: 13px; }

/* ---- Scrollbar (terms) ---- */
.ibd-terms-scroll::-webkit-scrollbar       { width: 5px; }
.ibd-terms-scroll::-webkit-scrollbar-track { background: var(--ibd-bg); border-radius: 4px; }
.ibd-terms-scroll::-webkit-scrollbar-thumb { background: var(--ibd-border); border-radius: 4px; }
