/*
colorbody deep #80766bcolorbody dim #ccbdaa*/
:root {
	--primary-50:  #4d22b322;
	--primary-100: #4d22b344;
	--primary-500: #4d22b3;
	--primary-700: #411d98;
	--secondary-500: #ffecd5;
}
body { background-color: #ffecd5; }

.btn-primary             { background-color: #4d22b3 !important; border-color: #4d22b3 !important; color: #FFFFFF !important; }
.btn-primary:hover,
.btn-primary:focus       { background-color: #411d98 !important; border-color: #411d98 !important; }
.bg-primary              { background-color: #4d22b3 !important; }
.text-primary            { color: #4d22b3 !important; }
.border-primary          { border-color: #4d22b3 !important; }
.badge.bg-primary        { background-color: #4d22b3 !important; color: #FFFFFF !important; }
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link { background-color: #4d22b3 !important; color: #FFFFFF !important; }
.page-item.active .page-link { background-color: #4d22b3 !important; border-color: #4d22b3 !important; }
.form-control:focus,
.form-select:focus       { border-color: #4d22b3 !important; box-shadow: 0 0 0 .2rem #4d22b333 !important; }
.form-check-input:checked { background-color: #4d22b3 !important; border-color: #4d22b3 !important; }
.dropdown-item.active    { background-color: #4d22b3 !important; }
.list-group-item.active  { background-color: #4d22b3 !important; border-color: #4d22b3 !important; }
.alert-primary           { background-color: #4d22b322 !important; border-color: #4d22b344 !important; color: #4d22b3 !important; }
.footer-nav ul li.active a,
.footer-nav ul li.active a i { color: #4d22b3 !important; }
[data-theme='dark'] .footer-nav ul li.active a,
[data-theme='dark'] .footer-nav ul li.active a i { color: #a691d9 !important; }
.sidenav-profile.bg-gradient { background: linear-gradient(135deg, #4d22b3, #411d98) !important; }
.logo-text { color: #4d22b3; font-size: 1.1rem; }
.clinic-name-header { font-size: .9rem; color: #333; }
.text-muted { color: #4d22b3; }

/* ── Dark mode: form surfaces ───────────────────────────────────────────── */
[data-theme='dark'] body { background-color: #27115a; }

[data-theme='dark'] #daynotice h4,
[data-theme='dark'] #daynotice p { color: #333333 !important; }

[data-theme='dark'] .form-control,
[data-theme='dark'] .form-select,
[data-theme='dark'] textarea.form-control {
	background-color: var(--primary-400) !important;
	border-color: rgba(255,255,255,.25) !important;
	color: #fff !important;
}
[data-theme='dark'] .form-control::placeholder,
[data-theme='dark'] textarea.form-control::placeholder {
	color: rgba(255,255,255,.4) !important;
}
[data-theme='dark'] .form-select option {
	background-color: var(--primary-500);
	color: #fff;
}
[data-theme='dark'] .clinic-name-header {
	color: #a691d9 !important;
}
[data-theme='dark'] .form-control:focus,
[data-theme='dark'] .form-control:active,
[data-theme='dark'] .form-select:focus,
[data-theme='dark'] .form-select:active,
[data-theme='dark'] textarea.form-control:focus,
[data-theme='dark'] textarea.form-control:active {
	background-color: var(--primary-300) !important;
	border-color: #714ec2 !important;
	box-shadow: 0 0 0 .2rem #a691d955 !important;
	color: #fff !important;
	outline: none !important;
}
[data-theme='dark'] .form-check-input {
	background-color: var(--primary-400) !important;
	border-color: rgba(255,255,255,.35) !important;
}
[data-theme='dark'] .form-check-input:checked {
	background-color: #4d22b3 !important;
	border-color: #714ec2 !important;
}
[data-theme='dark'] .form-check-input:focus {
	box-shadow: 0 0 0 .2rem #a691d955 !important;
}
[data-theme='dark'] .input-group-text {
	background-color: var(--primary-300) !important;
	border-color: rgba(255,255,255,.25) !important;
	color: rgba(255,255,255,.75) !important;
}
[data-theme='dark'] .btn-primary,
[data-theme='dark'] .btn-primary:disabled,
[data-theme='dark'] .btn-primary.disabled { background-color: #a691d9 !important; }
[data-theme='dark'] .btn-primary:hover,
[data-theme='dark'] .btn-primary:active { background-color: #714ec2 !important; }
[data-theme='dark'] .text-muted { color: #4d22b3; }

[data-theme='dark'] .btn-outline-primary {
	color: var(--white);
	border-color: #FFF !important;
}

/* ── Light mode: consistent focus / active across all form controls ──── */
.form-control:focus,
.form-control:active,
.form-select:focus,
.form-select:active,
textarea.form-control:focus,
textarea.form-control:active {
	border-color: #4d22b3 !important;
	box-shadow: 0 0 0 .2rem #4d22b333 !important;
	outline: none !important;
}
.form-check-input:focus {
	box-shadow: 0 0 0 .2rem #4d22b333 !important;
	border-color: #4d22b3 !important;
}
.btn:focus,
.btn:active,
.btn.active {
	box-shadow: 0 0 0 .2rem #4d22b344 !important;
	outline: none !important;
}
.nav-pills .nav-link.active,
.nav-pills .nav-link:focus {
	background-color: #4d22b3 !important;
	color: #FFFFFF !important;
	outline: none !important;
}

/* ADA: links have dotted underline; elements styled as buttons are excluded */
a:not(.btn):not(.nav-link):not(.page-link):not(.badge):not(.footer-nav a):not(.sidenav-nav a):not(.logo-wrapper a) {
	text-decoration: underline dotted !important;
	color: #4d22b3}
a:not(.btn):not(.nav-link):not(.page-link):not(.badge):not(.footer-nav a):not(.sidenav-nav a):not(.logo-wrapper a):hover {
	text-decoration: underline solid !important;
	color: #27115a}
[data-theme='dark'] a:not(.btn):not(.nav-link):not(.page-link):not(.badge):not(.footer-nav a):not(.sidenav-nav a):not(.logo-wrapper a) {
	text-decoration: underline dotted !important;
	color: #fff0dd;
}
[data-theme='dark'] a:not(.btn):not(.nav-link):not(.page-link):not(.badge):not(.footer-nav a):not(.sidenav-nav a):not(.logo-wrapper a):hover {
	text-decoration: underline solid !important;
	color: #ffecd5;
}

/* ── Appointment Calendar Widget ──────────────────────────────────────────── */
.appt-cal {
	position: relative;
	user-select: none;
	-webkit-user-select: none;
}
.appt-cal__nav-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: none;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background 0.15s ease;
	flex-shrink: 0;
}
.appt-cal__nav-btn:hover { background: var(--primary-50); }
.appt-cal__nav-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.appt-cal__month-label { font-size: 0.9375rem; letter-spacing: 0.01em; }
.appt-cal__weekdays {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	text-align: center;
	margin-bottom: 4px;
}
.appt-cal__weekdays span {
	font-size: 0.75rem;
	font-weight: 600;
	color: #555;
	padding: 4px 0;
}
.appt-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}
.appt-cal__day {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	min-width: 36px;
	min-height: 36px;
	border-radius: 50%;
	border: none;
	background: transparent;
	color: #333;
	font-size: 0.8125rem;
	cursor: default;
	transition: background 0.12s ease, color 0.12s ease;
	outline: none;
	position: relative;
	padding: 0;
}
.appt-cal__day--empty { visibility: hidden; pointer-events: none; }
.appt-cal__day--available {
	cursor: pointer;
	color: #27115a;
	font-weight: 600;
	background: var(--primary-50);
}
.appt-cal__day--available:hover,
.appt-cal__day--available:focus { background: var(--primary-100); color: #27115a; }
.appt-cal__day--selected {
	background: var(--primary-500) !important;
	color: #fff !important;
	font-weight: 700;
	cursor: pointer;
}
.appt-cal__day--today {
	background: #80766b !important;
	color: #ffffff !important;
	font-weight: 600;
}
.appt-cal__day--selected.appt-cal__day--today {
	background: var(--primary-500) !important;
	color: #fff !important;
}
.appt-cal__day--past,
.appt-cal__day--unavailable { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
.appt-cal__loader {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255,255,255,0.65);
	border-radius: 0.425rem;
	z-index: 10;
}
.appt-cal__loader.d-none { display: none !important; }
[data-theme='dark'] .appt-cal__nav-btn:hover { background: rgba(255,255,255,0.08); }
[data-theme='dark'] .appt-cal__weekdays span { color: rgba(255,255,255,0.4); }
[data-theme='dark'] .appt-cal__day--available {
	color: rgba(255,255,255,0.9);
	background: #3e1b8f;
}
[data-theme='dark'] .appt-cal__day--selected {
	background: #27115a !important;
}

[data-theme='dark'] .appt-cal__day--available:hover,
[data-theme='dark'] .appt-cal__day--available:focus { background: rgba(255,255,255,0.1); color: #fff; }
[data-theme='dark'] .appt-cal__day--past,
[data-theme='dark'] .appt-cal__day--unavailable { color: rgba(255,255,255,0.25); }
[data-theme='dark'] .appt-cal__loader { background: rgba(0,0,0,0.45); }
[data-theme='dark'] .appt-cal__day--today {
	background: #ffecd5 !important;
	color: #4d22b3 !important;
}
[data-theme='dark'] .appt-cal__day--selected.appt-cal__day--today {
	background: #27115a !important;
	color: #ffffff !important;
}


@media (max-width: 359px) {
	.appt-cal__day { font-size: 0.6875rem; }
	.appt-cal__month-label { font-size: 0.8125rem; }
}
