.lcm-auth-shell,
.lcm-client-panel,
.lcm-consultation-form {
	max-width: 980px;
	margin: 24px auto;
}

.lcm-auth-card,
.lcm-dashboard-card,
.lcm-case-card,
.lcm-slot-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	box-shadow: 0 12px 24px rgb(2 6 23 / 6%);
	padding: 20px;
}

.lcm-card-header h2,
.lcm-auth-header h2,
.lcm-case-card-header h3 {
	margin: 0 0 8px;
	line-height: 1.4;
}

.lcm-card-header p,
.lcm-auth-header p {
	margin: 0;
	color: #475569;
}

.lcm-auth-step {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid #eef2f7;
}

.lcm-auth-tabs {
	display: flex;
	gap: 10px;
	margin-top: 16px;
}

.lcm-auth-tab {
	appearance: none;
	background: #f1f5f9;
	border: 1px solid #cbd5e1;
	color: #0f172a;
	padding: 9px 14px;
	border-radius: 999px;
	cursor: pointer;
	font-weight: 600;
}

.lcm-auth-tab.is-active {
	background: #0f172a;
	border-color: #0f172a;
	color: #fff;
}

.lcm-form p {
	margin: 0 0 14px;
}

.lcm-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.lcm-form input[type="text"],
.lcm-form input[type="tel"],
.lcm-form input[type="email"],
.lcm-form textarea,
.lcm-form select,
.lcm-form input[type="file"] {
	width: 100%;
	max-width: 100%;
	min-height: 42px;
	padding: 10px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #fff;
}

.lcm-form textarea {
	min-height: 130px;
	resize: vertical;
}

.lcm-notice {
	margin-top: 14px;
	margin-bottom: 14px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid #f59e0b;
	background: #fffbeb;
	color: #92400e;
}

.lcm-notice-success {
	border-color: #86efac;
	background: #f0fdf4;
	color: #166534;
}

.lcm-otp-grid {
	display: flex;
	gap: 8px;
	justify-content: flex-start;
	margin-bottom: 10px;
}

.lcm-otp-input {
	width: 48px;
	min-width: 48px;
	height: 52px;
	font-size: 22px;
	text-align: center;
	padding: 0;
	border: 1px solid #94a3b8;
	border-radius: 12px;
}

.lcm-otp-fallback {
	margin-top: 10px;
}

.lcm-case-card {
	margin-top: 14px;
}

.lcm-case-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.lcm-case-card-body p {
	margin: 0 0 8px;
}

.lcm-case-documents ul {
	margin: 8px 0 0;
	padding-inline-start: 18px;
}

.lcm-case-payment {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px dashed #dbe3ef;
}

.lcm-status-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.lcm-status-pending_review {
	background: #e0f2fe;
	color: #075985;
}

.lcm-status-approved_pending_payment {
	background: #ede9fe;
	color: #5b21b6;
}

.lcm-status-confirmed,
.lcm-status-completed {
	background: #dcfce7;
	color: #166534;
}

.lcm-status-rejected,
.lcm-status-cancelled,
.lcm-status-payment_expired,
.lcm-status-review_expired {
	background: #fee2e2;
	color: #991b1b;
}

.lcm-empty-state {
	margin: 0;
	color: #475569;
}

@media (max-width: 680px) {
	.lcm-auth-shell,
	.lcm-client-panel,
	.lcm-consultation-form {
		margin: 18px auto;
	}

	.lcm-auth-card,
	.lcm-dashboard-card,
	.lcm-case-card,
	.lcm-slot-card {
		padding: 16px;
	}

	.lcm-case-card-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.lcm-otp-input {
		width: 42px;
		min-width: 42px;
		height: 48px;
	}
}


/* Client panel */
.lcm-client-panel.lcm-client-dashboard {
	max-width: 980px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}
.lcm-client-welcome {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	margin: 0 0 22px;
	padding: 24px 28px;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: linear-gradient(135deg, #fff 35%, #f0f7f7);
	box-shadow: 0 10px 28px rgb(2 6 23 / 5%);
}
.lcm-client-welcome h2 { margin: 0 0 6px; color: #123b46; font-size: clamp(22px, 3vw, 30px); }
.lcm-client-welcome p { margin: 4px 0 0; color: #52616b; }
.lcm-client-welcome .lcm-client-eyebrow { color: #a9772d; font-size: 13px; font-weight: 700; }
.lcm-client-username { font-size: 14px; }
.lcm-client-new-request { flex: 0 0 auto; padding: 11px 17px; border-radius: 9px; background: #c69b53; color: #122d38 !important; font-weight: 700; text-decoration: none; }
.lcm-request-card, .lcm-client-empty {
	margin: 0 0 20px;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 28px rgb(2 6 23 / 5%);
}
.lcm-request-card-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid #edf0f2; }
.lcm-request-card-head > div { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.lcm-request-label { color: #667781; font-size: 13px; }
.lcm-tracking-code { color: #174c59; font-weight: 700; letter-spacing: .03em; }
.lcm-request-main { padding: 18px 0 4px; }
.lcm-request-main h3 { margin: 0 0 12px; color: #163744; font-size: 20px; }
.lcm-request-description { margin: 0 0 16px; color: #485b64; }
.lcm-request-description summary { cursor: pointer; color: #176071; font-weight: 600; }
.lcm-request-description p { margin: 10px 0 0; line-height: 1.9; overflow-wrap: anywhere; }
.lcm-request-appointment { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin: 0; }
.lcm-request-appointment span { color: #667781; }
.lcm-request-appointment strong { color: #172f3a; }
.lcm-status-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 12px 0 18px; padding: 0; list-style: none; }
.lcm-status-timeline li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 0 8px; color: #7b8990; text-align: center; font-size: 13px; line-height: 1.5; }
.lcm-status-timeline li:not(:last-child)::after { position: absolute; z-index: 0; top: 15px; inset-inline-start: 62%; width: 76%; height: 2px; background: #dce3e5; content: ""; }
.lcm-status-timeline li.is-complete:not(:last-child)::after { background: #4b8b7d; }
.lcm-timeline-dot { z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border: 2px solid #d5dfe2; border-radius: 50%; background: #fff; color: #718087; font-size: 13px; font-weight: 700; }
.lcm-status-timeline .is-complete, .lcm-status-timeline .is-current { color: #244c55; font-weight: 600; }
.lcm-status-timeline .is-complete .lcm-timeline-dot { border-color: #4b8b7d; background: #4b8b7d; color: #fff; }
.lcm-status-timeline .is-current .lcm-timeline-dot { border-color: #c69b53; box-shadow: 0 0 0 4px rgb(198 155 83 / 18%); color: #805719; }
.lcm-status-timeline .is-terminal-step .lcm-timeline-dot { border-color: #b45353; background: #b45353; color: #fff; }
.lcm-hold-notice { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; margin: 16px 0; padding: 14px 16px; border: 1px solid #ead5a8; border-radius: 10px; background: #fff9eb; color: #77571e; }
.lcm-request-documents, .lcm-request-payment { margin-top: 18px; padding-top: 16px; border-top: 1px solid #edf0f2; }
.lcm-request-documents h4, .lcm-request-payment h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #24434d; font-size: 15px; }
.lcm-request-documents h4 span { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 99px; background: #edf4f4; font-size: 12px; }
.lcm-request-documents ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 9px; margin: 0; padding: 0; list-style: none; }
.lcm-request-documents li { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border: 1px solid #e4e9ea; border-radius: 9px; background: #fafcfc; }
.lcm-request-documents li a { min-width: 0; color: #175766; overflow-wrap: anywhere; }
.lcm-document-mark { flex: 0 0 auto; display: grid; place-items: center; min-width: 38px; height: 30px; padding: 0 5px; border-radius: 6px; background: #e8f0f1; color: #24535d; font-size: 10px; font-weight: 800; }
.lcm-request-payment { color: #334b54; }
.lcm-request-payment form { margin-top: 12px; }
.lcm-request-payment form input { max-width: 100%; }
.lcm-request-rejection, .lcm-request-closed { margin: 14px 0 0; padding: 12px 14px; border-radius: 9px; background: #fff1f1; color: #8b3434; }
.lcm-client-empty h3 { margin-top: 0; color: #173d47; }
@media (max-width: 680px) {
	.lcm-client-panel.lcm-client-dashboard { overflow: visible; }
	.lcm-client-welcome { align-items: stretch; flex-direction: column; padding: 20px; }
	.lcm-client-new-request { align-self: flex-start; }
	.lcm-request-card-head { align-items: flex-start; flex-direction: column; }
	.lcm-status-timeline { grid-template-columns: 1fr; gap: 0; margin-inline-start: 5px; }
	.lcm-status-timeline li { min-height: 46px; flex-direction: row; align-items: center; gap: 11px; padding: 0 0 12px; text-align: start; }
	.lcm-status-timeline li:not(:last-child)::after { top: 26px; inset-inline-start: 14px; width: 2px; height: calc(100% - 10px); }
	.lcm-status-timeline li:last-child { padding-bottom: 0; }
	.lcm-hold-notice { flex-direction: column; }
}
