/**
 * Doctor AK Portal — Shared visual + structural styles for auth pages
 * (registration, login, forgot/reset password).
 *
 * Design tokens here match the plugin's premium healthcare brief: white
 * background, light grey sections, rounded cards/inputs, soft shadows,
 * green primary / teal secondary accents. Full dashboard/profile styling
 * follows in the rest of Phase 7 — this file covers the pieces shared by
 * every auth page.
 */

/*
 * Defensive reset: many themes/page builders (Elementor global typography
 * kits especially) apply text-transform/line-height/letter-spacing to every
 * heading, paragraph, label and span inside the content area. Since this
 * markup can be dropped into any theme via the shortcode, we forcibly reset
 * those properties here and re-apply only the ones this design actually
 * wants (see .dak-eyebrow, .dak-section-header h2, etc. below).
 */
.dak-portal,
.dak-portal * {
	text-transform: none !important;
	letter-spacing: normal !important;
}

.dak-portal {
	--dak-primary: #7fb52d;
	--dak-primary-dark: #6a9a24;
	--dak-primary-tint: #f1f8e6;
	--dak-secondary: #16b6a5;
	--dak-text: #1f2933;
	--dak-muted: #6b7280;
	--dak-border: #e3e6ea;
	--dak-bg-page: #f7f8fa;
	--dak-bg-card: #ffffff;
	--dak-bg-subtle: #f5f6f8;
	--dak-danger: #d64545;
	--dak-radius-lg: 16px;
	--dak-radius-md: 10px;
	--dak-radius-sm: 8px;
	--dak-shadow: 0 4px 20px rgba( 20, 30, 40, 0.06 );
	--dak-shadow-hover: 0 8px 24px rgba( 20, 30, 40, 0.1 );
	--dak-tint-teal: #e6f7f5;
	--dak-tint-amber: #fef3c7;
	--dak-tint-amber-text: #b45309;
	--dak-tint-success: #dcfce7;
	--dak-tint-success-text: #15803d;
	--dak-tint-danger: #fbeaea;
	--dak-tint-danger-text: #b42323;
	--dak-tint-info: #dbeafe;
	--dak-tint-info-text: #1d4ed8;
	--dak-tint-purple: #ede4fb;
	--dak-tint-purple-text: #6c3fc5;
	--dak-shadow-lg: 0 12px 40px rgba( 20, 30, 40, 0.12 );

	--dak-text-xs: 0.75rem;
	--dak-text-sm: 0.875rem;
	--dak-text-md: 1rem;
	--dak-text-lg: 1.125rem;
	--dak-text-xl: 1.375rem;
	--dak-text-2xl: 1.75rem;
	--dak-text-3xl: 2.25rem;

	--dak-space-1: 4px;
	--dak-space-2: 8px;
	--dak-space-3: 12px;
	--dak-space-4: 16px;
	--dak-space-5: 24px;
	--dak-space-6: 32px;
	--dak-space-7: 48px;
	--dak-space-8: 64px;

	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
	color: var( --dak-text ) !important;
}

/*
 * Dark theme. Two independent toggles feed the same tokens:
 * - Dashboards (Admin/Doctor/Patient): assets/js/doctor-ak-theme-toggle.js
 *   sets `data-theme` on the `.dak-dashboard` element itself, persisted
 *   server-side per logged-in user — `.dak-portal.dak-dashboard[data-theme]`.
 * - Public site (header, home, directory, auth, booking): assets/js/
 *   doctor-ak-public-theme-toggle.js sets `data-theme` on <html>, persisted
 *   client-side (localStorage) since a visitor may not be logged in —
 *   `html[data-theme] .dak-portal`. Every `.dak-portal` subtree on the page
 *   (header/footer/content are separate top-level divs, not nested under one
 *   shared wrapper) picks up the same overrides via that selector.
 */
/*
 * Covers the gaps the public dark toggle would otherwise miss: the header,
 * home-page content and footer are separate top-level `.dak-portal` divs (not
 * one shared wrapper), so `html[data-theme='dark'] .dak-portal` alone only
 * re-colors those boxes themselves — the page canvas around/between them
 * (body's own background, and any transparent section inside .dak-home that
 * doesn't set its own background) stays whatever the active WordPress
 * theme's default (usually white) is. Painting `<body>` here means every gap
 * shows dark too, without having to give every individual section its own
 * explicit background.
 */
html[data-theme='dark'] body {
	background: #000000 !important;
}

.dak-portal.dak-dashboard[data-theme='dark'],
html[data-theme='dark'] .dak-portal {
	--dak-primary-tint: #16210f;
	--dak-text: #e9eaec;
	--dak-muted: #9198a3;
	--dak-border: #26282c;
	--dak-bg-page: #000000;
	--dak-bg-card: #0d0e10;
	--dak-bg-subtle: #17181b;
	--dak-shadow: 0 4px 20px rgba( 0, 0, 0, 0.6 );
	--dak-shadow-hover: 0 8px 26px rgba( 0, 0, 0, 0.75 );
	--dak-shadow-lg: 0 12px 40px rgba( 0, 0, 0, 0.8 );
	--dak-tint-teal: #0f2422;
	--dak-tint-amber: #2a2110;
	--dak-tint-amber-text: #f2b84b;
	--dak-tint-success: #10241a;
	--dak-tint-success-text: #4ade80;
	--dak-tint-danger: #2a1414;
	--dak-tint-danger-text: #f28b8b;
	--dak-tint-info: #10203a;
	--dak-tint-info-text: #6fa8f5;
	--dak-tint-purple: #241a33;
	--dak-tint-purple-text: #b394ec;
}

.dak-auth-page {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 2rem !important;
	max-width: 1180px !important;
	margin: 0 auto !important;
	padding: 2.5rem 1rem !important;
}

.dak-auth-card {
	width: 100% !important;
	max-width: 440px !important;
	background: var( --dak-bg-card ) !important;
	border-radius: var( --dak-radius-lg ) !important;
	box-shadow: var( --dak-shadow-lg, var( --dak-shadow ) ) !important;
	padding: 2rem !important;
	box-sizing: border-box !important;
}

/*
 * Split-layout companion panel — a brand/trust column that sits beside the
 * auth card on wide screens and disappears entirely below the breakpoint
 * where the two would no longer comfortably fit side by side (mobile just
 * gets the plain card, same as before this existed). Used on Login,
 * Register and Forgot Password; each page supplies its own copy.
 */
.dak-auth-visual {
	display: none !important;
	height: fit-content;
	flex: 1 1 0 !important;
	min-width: 0 !important;
	max-width: 440px !important;
	/* Was align-self: stretch, which forced this panel to match the auth
	   card's full height — fine for the short Login/Forgot Password cards,
	   but Registration's card is a long multi-section form, so the panel's
	   small content block ended up centered in a mostly-empty tinted box
	   as tall as the whole form. Sticky + a fixed top offset keeps it
	   pinned near the top of the viewport while the form scrolls past it
	   instead, which is the standard pattern for "short panel, long form". */
	align-self: flex-start !important;
	position: sticky !important;
	top: 2.5rem !important;
	flex-direction: column !important;
	justify-content: center !important;
	gap: 1.5rem !important;
	padding: 2.5rem !important;
	box-sizing: border-box !important;
	border-radius: var( --dak-radius-lg ) !important;
	background: linear-gradient( 155deg, var( --dak-primary-tint ) 0%, var( --dak-bg-page ) 100% ) !important;
	box-shadow: 0 1px 0 rgba( 255, 255, 255, 0.6 ) inset !important;
	color: var( --dak-text ) !important;
}

.dak-auth-visual h2 {
	font-size: 1.7rem !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	margin: 0 !important;
	color: var( --dak-text ) !important;
}

.dak-auth-visual-benefits {
	display: flex !important;
	flex-direction: column !important;
	gap: 1rem !important;
}

.dak-auth-visual-benefit {
	display: flex !important;
	align-items: flex-start !important;
	gap: 0.75rem !important;
}

.dak-auth-visual-benefit-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 34px !important;
	height: 34px !important;
	border-radius: 50% !important;
	background: linear-gradient( 165deg, var( --dak-bg-card ) 0%, var( --dak-primary-tint ) 100% ) !important;
	color: var( --dak-primary-dark ) !important;
	box-shadow: var( --dak-shadow ), 0 1px 0 rgba( 255, 255, 255, 0.8 ) inset !important;
}

.dak-auth-visual-benefit-icon svg {
	width: 16px !important;
	height: 16px !important;
}

.dak-auth-visual-benefit strong {
	display: block !important;
	font-size: 0.92rem !important;
	color: var( --dak-text ) !important;
}

.dak-auth-visual-benefit span {
	font-size: 0.82rem !important;
	color: var( --dak-muted ) !important;
	line-height: 1.4 !important;
}

@media ( min-width: 900px ) {
	.dak-auth-visual {
		display: flex !important;
	}
}

.dak-auth-header {
	text-align: center !important;
	margin-bottom: 1.5rem !important;
}

.dak-eyebrow {
	display: inline-block !important;
	background: var( --dak-primary-tint ) !important;
	color: var( --dak-primary-dark ) !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	padding: 0.3rem 0.9rem !important;
	border-radius: 999px !important;
	margin-bottom: 0.85rem !important;
}

.dak-auth-header h1 {
	font-size: 1.6rem !important;
	font-weight: 700 !important;
	margin: 0 0 0.5rem !important;
}

.dak-auth-header h1 .dak-accent {
	color: var( --dak-primary ) !important;
}

.dak-auth-header p {
	color: var( --dak-muted ) !important;
	margin: 0 !important;
	font-size: 0.95rem !important;
}

.dak-hidden {
	display: none !important;
}

.dak-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect( 0, 0, 0, 0 ) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.dak-field-row {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 1rem !important;
}

.dak-field-row .dak-field {
	flex: 1 1 240px !important;
}

.dak-field {
	position: relative !important;
	margin-bottom: 1.1rem !important;
}

.dak-field label,
.dak-field-label {
	display: flex !important;
	align-items: center !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	margin-bottom: 0.4rem !important;
	color: var( --dak-text ) !important;
}

.dak-required {
	color: var( --dak-danger ) !important;
}

.dak-field-icon {
	display: inline-flex !important;
	width: 15px !important;
	height: 15px !important;
	margin-right: 0.4rem !important;
	flex-shrink: 0 !important;
}

.dak-field-icon svg {
	width: 100% !important;
	height: 100% !important;
}

.dak-field-icon-email { color: var( --dak-primary ) !important; }
.dak-field-icon-experience { color: #a855f7 !important; }
.dak-field-icon-specialization { color: var( --dak-secondary ) !important; }
.dak-field-icon-location { color: #f97316 !important; }
.dak-field-icon-phone { color: #3b82f6 !important; }

.dak-field input[type='text'],
.dak-field input[type='email'],
.dak-field input[type='password'],
.dak-field input[type='tel'],
.dak-field input[type='number'],
.dak-field input[type='time'],
.dak-field input[type='date'],
.dak-field input[type='datetime-local'],
.dak-field select,
.dak-field textarea {
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 0.65rem 0.85rem !important;
	border: 1px solid var( --dak-border ) !important;
	border-radius: var( --dak-radius-sm ) !important;
	background: var( --dak-bg-card ) !important;
	color: var( --dak-text ) !important;
	font-size: 0.95rem !important;
	font-family: inherit !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.dak-field textarea {
	resize: vertical !important;
}

.dak-field input:focus,
.dak-field select:focus,
.dak-field textarea:focus {
	outline: none !important;
	border-color: var( --dak-primary ) !important;
	box-shadow: 0 0 0 3px var( --dak-primary-tint ) !important;
}

.dak-phone-field {
	display: flex !important;
	gap: 0.5rem !important;
}

.dak-phone-field-code {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: 9.5rem !important;
}

.dak-phone-field-number {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}

@media ( max-width: 400px ) {
	.dak-phone-field-code {
		max-width: 6.5rem !important;
	}
}

.dak-password-field {
	position: relative !important;
}

.dak-password-field input[type='password'],
.dak-password-field input[type='text'] {
	padding-right: 2.6rem !important;
}

.dak-password-toggle {
	position: absolute !important;
	top: 50% !important;
	right: 0.65rem !important;
	transform: translateY( -50% ) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 1.75rem !important;
	height: 1.75rem !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var( --dak-muted ) !important;
	cursor: pointer !important;
}

.dak-password-toggle:hover {
	color: var( --dak-text ) !important;
}

.dak-password-toggle svg {
	width: 18px !important;
	height: 18px !important;
}

.dak-password-toggle .dak-icon-eye-off {
	display: none !important;
}

.dak-password-field.is-visible .dak-icon-eye {
	display: none !important;
}

.dak-password-field.is-visible .dak-icon-eye-off {
	display: block !important;
}

.dak-field-inline {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 0.75rem !important;
}

.dak-field-error {
	display: none !important;
	font-size: 0.8rem !important;
	color: var( --dak-danger ) !important;
	margin-top: 0.3rem !important;
}

.dak-field-error.is-visible {
	display: block !important;
}

.dak-field-hint {
	font-size: 0.82rem !important;
	color: var( --dak-muted ) !important;
	border-radius: var( --dak-radius-sm ) !important;
	padding: 0.6rem 0.8rem !important;
}

.dak-field-divider {
	border: none !important;
	border-top: 1px solid var( --dak-border ) !important;
	margin: 1.5rem 0 1.1rem !important;
}

.dak-dashboard-subheading {
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: var( --dak-text ) !important;
	margin: 0 0 0.35rem !important;
}

.dak-alert {
	padding: 0.75rem 1rem !important;
	border-radius: var( --dak-radius-sm ) !important;
	font-size: 0.9rem !important;
	margin-bottom: 1rem !important;
}

.dak-alert-success {
	background: var( --dak-primary-tint ) !important;
	color: var( --dak-primary-dark ) !important;
}

.dak-alert-error {
	background: #fdecec !important;
	color: var( --dak-danger ) !important;
}

.dak-checkbox {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
}

.dak-link,
.dak-link-button {
	display: inline !important;
	color: var( --dak-secondary ) !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-size: 0.85rem !important;
	font-weight: 400 !important;
	line-height: normal !important;
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	cursor: pointer !important;
}

.dak-link:hover,
.dak-link-button:hover {
	text-decoration: underline !important;
}

button.dak-link-button {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	cursor: pointer !important;
}

.dak-form-footer-link {
	text-align: center !important;
	font-size: 0.88rem !important;
	color: var( --dak-muted ) !important;
	margin: 1rem 0 0 !important;
}

.dak-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	border: 1px solid transparent !important;
	border-radius: var( --dak-radius-sm ) !important;
	padding: 0.75rem 1.25rem !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.05s ease !important;
}

.dak-button:active {
	transform: scale( 0.98 ) !important;
}

.dak-button:disabled {
	cursor: not-allowed !important;
	opacity: 0.55 !important;
	transform: none !important;
}

.dak-button-primary {
	background: var( --dak-primary ) !important;
	border-color: var( --dak-primary ) !important;
	color: #ffffff !important;
}

.dak-button-primary:hover {
	background: var( --dak-primary-dark ) !important;
	border-color: var( --dak-primary-dark ) !important;
}

.dak-button-secondary {
	background: var( --dak-bg-card ) !important;
	border-color: var( --dak-border ) !important;
	color: var( --dak-text ) !important;
}

.dak-button-secondary:hover {
	border-color: var( --dak-primary ) !important;
}

.dak-button-danger-outline {
	background: var( --dak-bg-card ) !important;
	border-color: var( --dak-danger ) !important;
	color: var( --dak-danger ) !important;
}

.dak-button-danger-outline:hover {
	background: var( --dak-tint-danger ) !important;
}

.dak-button:disabled {
	opacity: 0.5 !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}

.dak-button-block {
	display: flex !important;
	width: 100% !important;
}

.dak-button-small,
.dak-button-sm {
	padding: 0.45rem 0.9rem !important;
	font-size: 0.85rem !important;
}

.dak-button.is-loading {
	opacity: 0.7 !important;
	pointer-events: none !important;
}

@media ( max-width: 600px ) {
	.dak-auth-card {
		padding: 1.5rem !important;
		border-radius: var( --dak-radius-md ) !important;
	}
}
