/* Service Calendar Booking - Public Styles */
:root {
	--wsc-primary: #4338ca;
	--wsc-primary-dark: #2d2a7a;
	--wsc-accent: #c9a227;
	--wsc-border: #e6e4f0;
	--wsc-text: #22213a;
	--wsc-muted: #6b6a85;
	--wsc-radius: 12px;
	--wsc-font: inherit;
	--wsc-font-size: 15px;
	--wsc-shadow: 0 2px 10px rgba(30, 20, 70, .06);
	--wsc-shadow-md: 0 10px 26px rgba(30, 20, 70, .10);
}

/* Mobile dashboard header: the app-style workspace hierarchy. */
@media (max-width:767px) {
	.wsc-mobile-app-mode .wsc-dash-header {
		display:grid;
		grid-template-columns:1fr auto;
		grid-template-areas:
			"workspace actions"
			"avatar ."
			"name name"
			"description description";
		align-items:start;
	}
	.wsc-mobile-app-mode .wsc-dash-header-copy { display:contents; }
	.wsc-mobile-app-mode .wsc-dash-header-eyebrow {
		grid-area:workspace;
		align-self:center;
		margin:0;
	}
	.wsc-mobile-app-mode .wsc-dash-header-actions {
		grid-area:actions;
		display:flex;
		width:auto;
		margin:0;
		justify-content:flex-end;
		gap:8px;
	}
	.wsc-mobile-app-mode .wsc-dash-avatar-wrap {
		grid-area:avatar;
		margin-top:14px;
	}
	.wsc-mobile-app-mode .wsc-dash-avatar {
		width:68px;
		height:68px;
	}
	.wsc-mobile-app-mode .wsc-dash-header-copy h2 {
		grid-area:name;
		margin:14px 0 0;
		font-size:25px;
	}
	.wsc-mobile-app-mode .wsc-dash-header-copy p {
		display:block;
		grid-area:description;
		margin:7px 0 0;
		font-size:14px;
		line-height:1.5;
	}
	.wsc-mobile-app-mode .wsc-dash-header-copy .wsc-badge-front {
		grid-area:description;
		justify-self:start;
		margin-top:58px;
	}
}

.wsc-btn {
	display: inline-block;
	padding: 10px 18px;
	border-radius: 8px;
	border: 1px solid var(--wsc-border);
	background: #fff;
	color: var(--wsc-text);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	cursor: pointer;
	text-align: center;
}
.wsc-btn-primary {
	background: var(--wsc-primary);
	border-color: var(--wsc-primary);
	color: #fff;
}
.wsc-btn-primary:hover { background: var(--wsc-primary-dark); color: #fff; }
.wsc-btn-danger-outline {
	background: #fff;
	border-color: #f3caca;
	color: #dc2626;
}
.wsc-btn-danger-outline:hover {
	background: #fef2f2;
	border-color: #dc2626;
	color: #dc2626;
}
.wsc-btn-block { display: block; width: 100%; }
.wsc-registration-role-picker{max-width:620px;margin:24px auto;padding:26px;border:1px solid var(--wsc-border);border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(35,30,85,.08)}
.wsc-registration-role-picker h3{margin:0 0 16px;color:var(--wsc-text)}
.wsc-registration-role-picker-list{display:grid;gap:10px}.wsc-registration-role-picker-list .wsc-btn{display:flex;align-items:center;justify-content:space-between;text-align:left}.wsc-registration-role-picker-list small{font-weight:500;opacity:.86}
.wsc-tab-pane[inert],#wsc-availability-status-card[inert]{opacity:.58;filter:saturate(.7);cursor:not-allowed}
.wsc-provider-verification-note{margin:14px 0}
.wsc-hint { color: var(--wsc-muted); font-size: 13px; }
.wsc-courses-chips{display:flex;flex-wrap:wrap;gap:6px}
.wsc-courses-chips:empty{display:none}
.wsc-courses-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:999px;background:var(--wsc-primary-light,#eef0fd);color:var(--wsc-text);font-size:13px;font-weight:600}
.wsc-courses-chip-remove{border:none;background:transparent;color:var(--wsc-muted);cursor:pointer;font-size:15px;line-height:1;padding:2px 4px;border-radius:50%}
.wsc-courses-chip-remove:hover{background:rgba(0,0,0,.08);color:var(--wsc-text)}
.wsc-courses-add-input{border:1px solid var(--wsc-border);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;outline:none;width:100%}
.wsc-courses-add-input:focus{border-color:var(--wsc-primary);box-shadow:0 0 0 3px rgba(67,56,202,.12)}
.wsc-courses-filter{border:1px solid var(--wsc-border);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;outline:none;width:100%}
.wsc-courses-filter:focus{border-color:var(--wsc-primary);box-shadow:0 0 0 3px rgba(67,56,202,.12)}
.wsc-courses-actions{display:flex;gap:8px}
.wsc-courses-actions button{background:transparent;border:1px solid var(--wsc-border);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--wsc-primary)}
.wsc-courses-actions button:hover{background:var(--wsc-primary-light,#eef0fd)}
.wsc-courses-field{padding:0}
.wsc-courses-dropdown{position:relative}
.wsc-courses-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--wsc-border);border-radius:8px;padding:10px 12px;background:#fff;font:inherit;font-size:14px;cursor:pointer;text-align:left}
.wsc-courses-toggle:hover{border-color:var(--wsc-primary)}
.wsc-courses-toggle-arrow{color:var(--wsc-muted)}
.wsc-courses-panel{position:relative;z-index:1;margin-top:6px;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--wsc-border);border-radius:8px;background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.08);animation:wscCoursesPanelIn .16s ease}
@keyframes wscCoursesPanelIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.wsc-courses-checklist{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto;border:1px solid var(--wsc-border);border-radius:8px;padding:8px}
.wsc-courses-option{position:relative;display:flex;align-items:center;gap:8px;padding:7px 30px 7px 10px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}
.wsc-courses-option:hover{background:var(--wsc-primary-light,#eef0fd)}
.wsc-courses-option input[type="checkbox"]{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}
.wsc-courses-option-text{flex:1;min-width:0}
.wsc-courses-option-check{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--wsc-primary);font-weight:700;opacity:0}
.wsc-courses-option.is-selected{background:var(--wsc-primary-light,#eef0fd);color:var(--wsc-primary);font-weight:700}
.wsc-courses-option.is-selected .wsc-courses-option-check{opacity:1}
.wsc-empty { color: var(--wsc-muted); padding: 20px 0; }
.wsc-view-toolbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	flex-wrap: wrap;
}
.wsc-view-label {
	color: var(--wsc-muted);
	font-size: 13px;
	font-weight: 700;
}
.wsc-view-toggle {
	display: inline-flex;
	gap: 3px;
	padding: 3px;
	border: 1px solid var(--wsc-border);
	border-radius: 8px;
	background: #fff;
	box-shadow: var(--wsc-shadow);
}
.wsc-view-toggle-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 7px 12px;
	border-radius: 6px;
	color: var(--wsc-muted);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: background .18s ease, color .18s ease;
}
.wsc-view-toggle-btn:hover,
.wsc-view-toggle-btn.is-active {
	background: var(--wsc-primary);
	color: #fff;
	text-decoration: none;
}

/* ---- Providers directory ---- */
.wsc-providers-directory {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.wsc-providers-grid {
	display: grid;
	grid-template-columns: repeat(var(--wsc-columns, 3), 1fr);
	gap: 22px;
}
@media (max-width: 900px) {
	.wsc-providers-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.wsc-providers-grid { grid-template-columns: 1fr; }
}

.wsc-provider-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background: #fff;
	border: 1px solid var(--wsc-border);
	border-radius: var(--wsc-radius);
	box-shadow: var(--wsc-shadow);
	padding: 24px 20px;
	gap: 8px;
}
.wsc-provider-avatar {
	width: 84px;
	height: 84px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 6px;
}
.wsc-provider-name { margin: 0; font-size: 17px; font-weight: 700; color: var(--wsc-text); }
.wsc-provider-bio { margin: 0; color: var(--wsc-muted); font-size: 13.5px; line-height: 1.5; }
.wsc-provider-extra-fields { font-size: 13px; color: var(--wsc-muted); width: 100%; }
.wsc-provider-extra-fields div { margin: 2px 0; }

.wsc-provider-service-single {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 4px 0;
	font-size: 14px;
}
.wsc-provider-service-name { font-weight: 600; color: var(--wsc-text); }
.wsc-provider-service-price {
	font-weight: 700;
	color: var(--wsc-primary);
	background: #eef0fd;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 13px;
}
.wsc-provider-service-multi { width: 100%; margin: 4px 0; }
.wsc-provider-service-select {
	width: 100%;
	padding: 8px 10px;
	border-radius: 8px;
	border: 1px solid var(--wsc-border);
	background: #fff;
	font-size: 13.5px;
	color: var(--wsc-text);
}
.wsc-provider-card .wsc-btn-primary { margin-top: 6px; width: 100%; }

.wsc-providers-list { display: flex; flex-direction: column; gap: 14px; }
.wsc-provider-row {
	display: flex;
	align-items: center;
	gap: 18px;
	background: #fff;
	border: 1px solid var(--wsc-border);
	border-radius: var(--wsc-radius);
	box-shadow: var(--wsc-shadow);
	padding: 16px 20px;
}
.wsc-provider-row-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.wsc-provider-row-body { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.wsc-provider-row .wsc-provider-service-single { justify-content: flex-start; }
.wsc-provider-row .wsc-provider-service-multi { max-width: 320px; }
.wsc-provider-row-btn { flex-shrink: 0; }
@media (max-width: 640px) {
	.wsc-provider-row { flex-wrap: wrap; }
	.wsc-provider-row-btn { width: 100%; }
}

/* ---- Booking widget refinements ---- */
.wsc-cal-nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.wsc-cal-nav-icon {
	display: block;
	width: 18px !important;
	height: 18px !important;
	fill: none !important;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.wsc-secure-note {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 10px 0 0;
	color: var(--wsc-muted);
	font-size: 13px;
	line-height: 1.4;
}
.wsc-secure-note-icon {
	display: block;
	width: 16px !important;
	height: 16px !important;
	flex: 0 0 16px;
	fill: none !important;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ---- My bookings ---- */
.wsc-my-bookings {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.wsc-my-bookings-items {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.wsc-my-bookings-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 4px;
}
.wsc-my-bookings-header h2 {
	margin: 0;
	color: var(--wsc-text);
	font-size: 24px;
	line-height: 1.2;
}
.wsc-my-bookings-header p {
	margin: 4px 0 0;
	color: var(--wsc-muted);
	font-size: 14px;
}
.wsc-booking-item {
	background: #fff;
	border: 1px solid var(--wsc-border);
	border-left: 4px solid var(--wsc-primary);
	border-radius: var(--wsc-radius);
	box-shadow: var(--wsc-shadow);
	padding: 18px 20px;
}
.wsc-booking-item-status-pending { border-left-color: #c9a227; }
.wsc-booking-item-status-confirmed { border-left-color: #16a34a; }
.wsc-booking-item-status-cancelled,
.wsc-booking-item-status-canceled { border-left-color: #dc2626; }
.wsc-booking-item-status-completed { border-left-color: #4338ca; }
.wsc-my-bookings-view-grid .wsc-my-bookings-items {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	align-items: stretch;
}
.wsc-my-bookings-view-grid .wsc-booking-item {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	border-top: 4px solid var(--wsc-primary);
	border-left-width: 1px;
}
.wsc-my-bookings-view-grid .wsc-booking-item-status-pending { border-top-color: #c9a227; }
.wsc-my-bookings-view-grid .wsc-booking-item-status-confirmed { border-top-color: #16a34a; }
.wsc-my-bookings-view-grid .wsc-booking-item-status-cancelled,
.wsc-my-bookings-view-grid .wsc-booking-item-status-canceled { border-top-color: #dc2626; }
.wsc-my-bookings-view-grid .wsc-booking-item-status-completed { border-top-color: #4338ca; }
.wsc-my-bookings-view-grid .wsc-booking-item-main {
	align-items: flex-start;
	flex-direction: column;
	gap: 8px;
}
.wsc-my-bookings-view-grid .wsc-booking-item-meta {
	flex-direction: column;
	align-items: stretch;
}
.wsc-my-bookings-view-grid .wsc-booking-meta-chip {
	width: 100%;
	border-radius: 8px;
}
.wsc-booking-item-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}
.wsc-booking-item-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 10px;
}
.wsc-booking-meeting { margin: 0 0 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* Single, systematic row for every booking-card action button (Download
   Invoice, Join Meeting, Watch/Listen Recording, Rate My Service, Cancel
   Booking). All buttons share one wrapping flex row instead of each
   stacking on its own line, and wsc-booking-action-btn keeps them the
   same height/min-width so the row reads as one consistent group even
   when only 1-2 of them are present for a given booking. */
.wsc-booking-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
	margin: 0 0 10px;
}
.wsc-booking-actions .wsc-booking-action-btn {
	flex: 1 1 auto;
	min-width: 150px;
	white-space: nowrap;
}
@media (max-width: 480px) {
	.wsc-booking-actions .wsc-booking-action-btn {
		flex-basis: 100%;
	}
}
.wsc-booking-actions .wsc-btn-danger-outline {
	margin-left: auto;
}
@media (max-width: 480px) {
	.wsc-booking-actions .wsc-btn-danger-outline {
		margin-left: 0;
	}
}
/* Secondary, non-button links/hints (resend invoice email, meeting
   passcode) sit in their own row below the primary action buttons so
   they never get visually mixed in with the button group. */
.wsc-booking-subtext {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 14px;
	margin: 0 0 10px;
}
.wsc-booking-meta-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	padding: 6px 10px;
	border: 1px solid var(--wsc-border);
	border-radius: 999px;
	background: #f8f8fc;
	color: var(--wsc-text);
	font-size: 13px;
	line-height: 1.3;
}
.wsc-booking-meta-chip svg {
	display: block;
	width: 14px !important;
	height: 14px !important;
	flex: 0 0 14px;
	fill: none !important;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	color: var(--wsc-primary);
}

/* ---- Premium public UI system ---- */
.wsc-booking-widget,
.wsc-dashboard,
.wsc-become-provider,
.wsc-my-bookings,
.wsc-providers-directory,
.wsc-providers-grid,
.wsc-providers-list {
	font-family: inherit;
	color: var(--wsc-text);
}
.wsc-booking-widget *,
.wsc-dashboard *,
.wsc-become-provider *,
.wsc-my-bookings *,
.wsc-providers-directory *,
.wsc-providers-grid *,
.wsc-providers-list * {
	box-sizing: border-box;
}
.wsc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.wsc-btn:hover {
	transform: translateY(-1px);
	box-shadow: var(--wsc-shadow);
}
.wsc-btn:disabled {
	cursor: not-allowed;
	opacity: .65;
	transform: none;
	box-shadow: none;
}
.wsc-field-group {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-bottom: 16px;
}
.wsc-dashboard.wsc-dashboard-hide-hero .wsc-dash-header { display: none; }
.wsc-field-group label {
	color: var(--wsc-text);
	font-size: 13px;
	font-weight: 700;
}
.wsc-field-group input,
.wsc-field-group select,
.wsc-field-group textarea,
.wsc-exception-form input,
.wsc-exception-form select,
.wsc-provider-status-select {
	width: 100%;
	box-sizing: border-box;
	min-height: 18px;
	border: 1px solid var(--wsc-border);
	border-radius: 10px;
	background: #fff;
	color: var(--wsc-text);
	font: inherit;
	font-size: 14px;
	padding: 11px 13px;
	outline: none;
	transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.wsc-field-group input:hover,
.wsc-field-group select:hover,
.wsc-field-group textarea:hover {
	border-color: #c9c6e6;
}
.wsc-field-group input:disabled,
.wsc-field-group select:disabled,
.wsc-field-group textarea:disabled {
	background: #f6f6fb;
	color: var(--wsc-muted);
	cursor: not-allowed;
}
.wsc-field-group input[type="checkbox"],
.wsc-field-group input[type="radio"] {
	width: 16px;
	height: 16px;
	min-height: 0;
	flex: none;
	padding: 0;
	border-radius: 4px;
}
.wsc-field-group select,
.wsc-exception-form select,
.wsc-provider-status-select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	height: 42px;
	line-height: 20px;
	padding-right: 34px;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6a85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 14px 14px;
}
.wsc-field-group textarea {
	min-height: 96px;
	resize: vertical;
}
.wsc-field-group input:focus,
.wsc-field-group select:focus,
.wsc-field-group textarea:focus,
.wsc-exception-form input:focus,
.wsc-provider-status-select:focus {
	border-color: var(--wsc-primary);
	box-shadow: 0 0 0 3px rgba(67, 56, 202, .12);
}
.wsc-registration-email-domain-error {
	margin: 0;
	color: #b42318;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
}
.wsc-registration-email-domain-error[hidden] { display: none !important; }
.wsc-registration-email-domain-blocked input {
	border-color: #d92d20;
	box-shadow: 0 0 0 3px rgba(217, 45, 32, .12);
}
.wsc-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
/*
 * Wraps a set of .wsc-field-group fields whose position/width an admin
 * has configured from Profile Fields → (role) in the admin. Each field
 * carries one of the wsc-field-w-* classes below; the container just
 * needs to let them wrap onto new rows as needed.
 */
.wsc-field-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}
.wsc-field-grid > .wsc-field-group {
	flex: 1 1 100%;
	min-width: 0;
	margin-bottom: 0;
}
.wsc-field-grid > .wsc-field-group.wsc-field-w-50 {
	flex-basis: calc(50% - 7px);
}
.wsc-field-grid > .wsc-field-group.wsc-field-w-33 {
	flex-basis: calc(33.333% - 10px);
}
.wsc-field-grid > .wsc-field-group.wsc-field-w-25 {
	flex-basis: calc(25% - 10.5px);
}
.wsc-field-grid > .wsc-field-group.wsc-field-w-66 {
	flex-basis: calc(66.667% - 4.667px);
}
.wsc-field-grid > .wsc-field-group.wsc-field-w-75 {
	flex-basis: calc(75% - 3.5px);
}
.wsc-form-msg {
	display: inline-flex;
	align-items: center;
	margin-top: 10px;
	font-size: 13px;
	font-weight: 600;
}
.wsc-form-msg.success { color: #15803d; }
.wsc-form-msg.error { color: #dc2626; }

/* Booking widget */
.wsc-booking-widget {
	overflow: hidden;
	background: linear-gradient(180deg, #ffffff 0%, #fbfbff 100%);
	border: 1px solid var(--wsc-border);
	border-radius: 16px;
	box-shadow: var(--wsc-shadow-md);
}
.wsc-booking-widget-header {
	padding: 32px 32px 26px;
	background: linear-gradient(135deg, #ffffff 0%, #f5f7ff 54%, #fff8e5 100%);
	border-bottom: 1px solid var(--wsc-border);
}
.wsc-booking-widget-header h2 {
	margin: 0;
	font-size: 28px;
	line-height: 1.2;
	color: var(--wsc-text);
}
.wsc-booking-widget-header p {
	max-width: 680px;
	margin: 8px 0 0;
	color: var(--wsc-muted);
	font-size: 15px;
	line-height: 1.5;
}
.wsc-booking-columns {
	display: grid;
	grid-template-columns: minmax(220px, .95fr) minmax(260px, 1.1fr) minmax(220px, .95fr);
	gap: 0;
}
.wsc-booking-col {
	min-width: 0;
	padding: 28px;
	border-right: 1px solid var(--wsc-border);
}
.wsc-booking-col:last-child { border-right: none; }
.wsc-step-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	color: var(--wsc-muted);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}
.wsc-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: var(--wsc-primary);
	color: #fff;
	font-size: 12px;
}
.wsc-provider-info-box {
	display: none;
	margin: 0 0 18px;
	padding: 14px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--wsc-shadow);
}
.wsc-provider-info-box:not(:empty) {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 12px;
	align-items: center;
}
.wsc-provider-info-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--wsc-border);
}
.wsc-provider-info-box p,
.wsc-provider-info-extra {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--wsc-muted);
	font-size: 13px;
	line-height: 1.5;
}
.wsc-service-summary {
	margin-top: 12px;
	padding: 14px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--wsc-shadow);
}
.wsc-service-summary .price {
	color: var(--wsc-primary);
	font-weight: 800;
}

/* Premium booking summary card (date/time/price recap above the submit button) */
.wsc-booking-summary {
	margin: 16px 0;
	padding: 18px 20px;
	border-radius: 14px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(155deg, #ffffff 0%, #f7f7ff 60%, #fffaf0 100%);
	border: 1px solid var(--wsc-border);
	box-shadow: var(--wsc-shadow-md);
}
.wsc-booking-summary::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: linear-gradient(180deg, var(--wsc-primary), var(--wsc-accent));
}
.wsc-summary-row {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--wsc-text);
	font-size: 14px;
	font-weight: 600;
}
.wsc-summary-row + .wsc-summary-row {
	margin-top: 8px;
}
.wsc-summary-row svg {
	flex: 0 0 auto;
	fill: none;
	stroke: var(--wsc-primary);
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	background: rgba(67, 56, 202, .08);
	border-radius: 999px;
	padding: 4px;
	box-sizing: content-box;
}
.wsc-summary-divider {
	height: 1px;
	margin: 14px 0;
	background: linear-gradient(90deg, var(--wsc-border) 0%, transparent 100%);
}
.wsc-summary-price-row {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
.wsc-summary-original {
	color: var(--wsc-muted);
	font-size: 14px;
	text-decoration: line-through;
	text-decoration-color: rgba(107, 106, 133, .5);
}
.wsc-summary-price {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -.01em;
	background: linear-gradient(120deg, var(--wsc-primary), var(--wsc-primary-dark));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.wsc-discount-line {
	margin-top: 8px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	color: #1a7a4c;
	background: rgba(26, 122, 76, .1);
}
.wsc-calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}
#wsc-cal-title {
	font-size: 17px;
	font-weight: 800;
	color: var(--wsc-text);
	text-align: center;
}
.wsc-cal-nav {
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 999px;
	border: 1px solid var(--wsc-border);
	background: #fff;
	color: var(--wsc-primary);
	cursor: pointer;
}
.wsc-calendar-weekdays,
.wsc-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 9px;
}
.wsc-calendar-weekdays {
	margin-bottom: 8px;
	color: var(--wsc-muted);
	font-size: 12px;
	font-weight: 800;
	text-align: center;
}
.wsc-calendar-grid .wsc-hint {
	grid-column: 1 / -1;
	margin: 8px 0;
}
.wsc-cal-day {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	min-width: 0;
	border: 1px solid var(--wsc-border);
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	font-weight: 700;
}
.wsc-day-available {
	cursor: pointer;
	color: var(--wsc-primary);
	background: #f2f4ff;
	border-color: #d7dcff;
}
.wsc-day-available:hover,
.wsc-day-selected {
	background: var(--wsc-primary);
	border-color: var(--wsc-primary);
	color: #fff;
}
.wsc-day-disabled {
	color: #b5b3c6;
	background: #f7f7fb;
}
.wsc-day-empty {
	visibility: hidden;
}
.wsc-booking-right h4 {
	margin: 0 0 16px;
	font-size: 17px;
}
.wsc-slots-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.wsc-slot-btn {
	min-height: 40px;
	padding: 9px 10px;
	border: 1px solid var(--wsc-border);
	border-radius: 999px;
	background: #fff;
	color: var(--wsc-text);
	font-weight: 700;
	cursor: pointer;
}
.wsc-slot-btn:hover,
.wsc-slot-selected {
	border-color: var(--wsc-primary);
	background: var(--wsc-primary);
	color: #fff;
}
.wsc-booking-form-section {
	padding: 30px 32px 32px;
	border-top: 1px solid var(--wsc-border);
	background: #fff;
}
.wsc-booking-form-section h3 {
	margin: 0 0 18px;
	font-size: 22px;
}
.wsc-coupon-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px;
}
.wsc-payment-methods {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 6px 0 0;
}
.wsc-pay-option {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 13px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	font-weight: 700;
}
.wsc-pay-option:has(input:checked) {
	border-color: var(--wsc-primary);
	box-shadow: 0 0 0 3px rgba(67, 56, 202, .10);
}
.wsc-pay-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: #f3f4ff;
}
.wsc-booking-success {
	max-width: 460px;
	margin: 0 auto;
	padding: 40px 32px 34px;
	text-align: center;
	background: #fff;
	border: 1px solid var(--wsc-border, #e6e4f0);
	border-radius: calc(var(--wsc-radius, 12px) + 4px);
	box-shadow: 0 20px 45px rgba(30, 20, 70, .12);
	animation: wscTyPop .35s ease;
}
@keyframes wscTyPop {
	from { opacity: 0; transform: translateY(10px) scale(.98); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}
.wsc-success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 14px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--wsc-primary, #4338ca), var(--wsc-accent, #c9a227));
	color: #fff;
	font-size: 30px;
	font-weight: 800;
	box-shadow: 0 8px 20px rgba(67, 56, 202, .35);
}
.wsc-ty-badge {
	display: inline-block;
	margin-bottom: 12px;
	padding: 5px 14px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #fff;
	background: var(--wsc-accent, #c9a227);
	border-radius: 999px;
}
.wsc-booking-success h3 {
	margin: 4px 0 10px;
	font-size: 1.5em;
	font-weight: 800;
	color: var(--wsc-text, #22213a);
}
.wsc-booking-success > p {
	margin: 0 0 12px;
	color: var(--wsc-text, #22213a);
	line-height: 1.6;
}
.wsc-ty-ref-chip {
	display: inline-block;
	margin: 4px 0 16px;
	padding: 8px 18px;
	font-size: .95em;
	color: var(--wsc-text, #22213a);
	background: var(--wsc-box-bg, #f9fafb);
	border: 1px dashed var(--wsc-border, #e6e4f0);
	border-radius: 999px;
}
.wsc-booking-success .wsc-hint {
	font-size: .9em;
	color: var(--wsc-muted, #6b6a85);
	margin-bottom: 18px;
}
.wsc-booking-success .wsc-btn-primary {
	display: inline-block;
	padding: 12px 26px;
	font-weight: 700;
}
.wsc-pending-spinner {
	display: inline-block;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	border: 4px solid var(--wsc-border, #e6e4f0);
	border-top-color: var(--wsc-primary, #4338ca);
	border-radius: 50%;
	animation: wsc-spin .8s linear infinite;
}
.wsc-qr-card {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	max-width: 320px;
	margin: 18px auto 0;
	padding: 22px 20px;
	background: var(--wsc-box-bg, #f9fafb);
	border: 1px solid var(--wsc-border);
	border-radius: calc(var(--wsc-radius) - 4px);
}
.wsc-qr-card-label {
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--wsc-muted);
	margin-bottom: 14px;
}
.wsc-qr-card-img {
	display: block;
	width: 150px;
	height: 150px;
	padding: 10px;
	background: #fff;
	border: 1px solid var(--wsc-border);
	border-radius: 10px;
}
.wsc-qr-card .wsc-hint {
	margin: 14px 0 4px;
	line-height: 1.5;
}
.wsc-qr-card-link {
	font-size: 12px;
	color: var(--wsc-primary);
	word-break: break-all;
}
.wsc-membership-success {
	margin: 0 auto 28px;
}

/* ---------- Shared "Thank You" modal shell (booking + membership) ---------- */
.wsc-thankyou-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(25, 23, 51, .55);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 100000;
	padding: 20px;
	opacity: 1;
	transition: opacity .25s ease;
}
/* Closed/entrance state — the partials render with this class already on
   (server-side), and initThankYouModals()/showSuccess() in wsc-public.js
   remove it a frame after paint so the modal always animates in instead of
   just appearing, whether it came from the redirect-based partial or the
   JS-injected instant-success card. Re-added on close so both paths animate
   out the same way too. */
.wsc-thankyou-modal-overlay.wsc-ty-closed {
	opacity: 0;
	pointer-events: none;
}
.wsc-thankyou-modal {
	position: relative;
	width: 100%;
	max-width: 480px;
	max-height: 90vh;
	overflow-y: auto;
	border-radius: calc(var(--wsc-radius, 12px) + 4px);
}
.wsc-thankyou-modal-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 34px;
	height: 34px;
	min-width: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--wsc-border, #e6e4f0);
	color: var(--wsc-text, #22213a);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	z-index: 2;
	box-shadow: 0 4px 10px rgba(25, 23, 51, .12);
	transition: background .15s ease;
}
.wsc-thankyou-modal-close:hover {
	background: #f3f4ff;
}
.wsc-thankyou-modal-footer {
	margin-top: -12px;
	padding-bottom: 8px;
	text-align: center;
}
.wsc-thankyou-modal-continue {
	padding: 12px 32px;
	font-weight: 700;
}


/* Consultant dashboard — premium */
.wsc-dashboard {
	--wsc-dash-glow: rgba(67, 56, 202, .18);
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.wsc-dash-header {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
	padding: 30px 32px;
	border: 1px solid #29255f;
	border-radius: 20px;
	background:
		radial-gradient(120% 180% at 0% 0%, rgba(201, 162, 39, .35) 0%, rgba(201, 162, 39, 0) 42%),
		radial-gradient(90% 160% at 100% 0%, rgba(56, 189, 248, .28) 0%, rgba(56, 189, 248, 0) 45%),
		linear-gradient(120deg, #211d54 0%, #2f2a86 48%, #3b3199 100%);
	box-shadow: 0 18px 40px rgba(30, 20, 70, .22);
}
.wsc-dash-header::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	overflow: hidden;
	pointer-events: none;
	background-image: radial-gradient(rgba(255, 255, 255, .16) 1px, transparent 1px);
	background-size: 16px 16px;
	opacity: .35;
	-webkit-mask-image: linear-gradient(120deg, rgba(0, 0, 0, .9), transparent 65%);
	mask-image: linear-gradient(120deg, rgba(0, 0, 0, .9), transparent 65%);
}
.wsc-dash-avatar-wrap {
	position: relative;
	z-index: 1;
	flex: none;
	padding: 4px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--wsc-accent), #fff2c6, var(--wsc-accent));
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .25), 0 10px 26px rgba(201, 162, 39, .35);
}
.wsc-dash-avatar {
	display: block;
	width: 84px;
	height: 84px;
	border: 3px solid #211d54;
	border-radius: 999px;
	object-fit: cover;
}
.wsc-dash-header-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 8px;
	padding: 4px 11px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #ffe9a8;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.wsc-dash-header-eyebrow svg {
	width: 12px !important;
	height: 12px !important;
	fill: none !important;
	stroke: currentColor;
	stroke-width: 2.4;
}
.wsc-dash-header-copy {
	position: relative;
	z-index: 1;
	flex: 1 1 240px;
	min-width: 0;
}
.wsc-dash-header-copy h2 {
	margin: 0;
	color: #fff;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -.01em;
	line-height: 1.2;
}
.wsc-dash-header-copy p {
	margin: 7px 0 0;
	max-width: 46em;
	color: rgba(233, 233, 255, .82);
	font-size: 14.5px;
	line-height: 1.55;
}
.wsc-dash-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}
.wsc-dash-stat {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 18px;
	overflow: hidden;
	border: 1px solid var(--wsc-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--wsc-shadow);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.wsc-dash-stat::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: linear-gradient(180deg, var(--wsc-stat-color, var(--wsc-primary)), transparent);
}
.wsc-dash-stat:hover {
	border-color: var(--wsc-stat-color, var(--wsc-primary));
	box-shadow: var(--wsc-shadow-md);
	transform: translateY(-3px);
}
.wsc-dash-stat:nth-child(1) { --wsc-stat-color: #4338ca; }
.wsc-dash-stat:nth-child(2) { --wsc-stat-color: #c9a227; }
.wsc-dash-stat:nth-child(3) { --wsc-stat-color: #15803d; }
.wsc-dash-stat:nth-child(4) { --wsc-stat-color: #0891b2; }
.wsc-dash-stat-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 11px;
	background: color-mix(in srgb, var(--wsc-stat-color, var(--wsc-primary)) 12%, #fff);
	color: var(--wsc-stat-color, var(--wsc-primary));
}
.wsc-dash-stat-icon svg {
	width: 19px !important;
	height: 19px !important;
	fill: none !important;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.wsc-dash-stat-body { display: block; min-width: 0; }
.wsc-dash-stat-body span {
	display: block;
	color: var(--wsc-muted);
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .02em;
	text-transform: uppercase;
}
.wsc-dash-stat-body strong {
	display: block;
	margin-top: 5px;
	color: var(--wsc-text);
	font-size: 23px;
	font-weight: 800;
	line-height: 1.15;
}
.wsc-dash-tabs {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	padding: 6px;
	border: 1px solid var(--wsc-border);
	border-radius: 14px;
	background: #f6f6fc;
	box-shadow: inset 0 1px 2px rgba(30, 20, 70, .04);
}
.wsc-tab-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: 0 0 auto;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: transparent;
	color: var(--wsc-muted);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.wsc-tab-btn svg {
	width: 16px !important;
	height: 16px !important;
	flex: 0 0 16px;
	fill: none !important;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.wsc-tab-btn:hover {
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-primary-dark));
	color: #fff !important;
}
.wsc-tab-btn:disabled,
.wsc-tab-btn[aria-disabled="true"] {
	opacity: .52;
	cursor: not-allowed;
	box-shadow: none;
	transform: none;
}
.wsc-tab-btn:disabled:hover,
.wsc-tab-btn[aria-disabled="true"]:hover {
	background: transparent;
	color: var(--wsc-muted) !important;
}
.wsc-tab-btn.active {
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-primary-dark));
	border-color: transparent;
	color: #fff;
	box-shadow: 0 8px 18px rgba(67, 56, 202, .28);
	transform: translateY(-1px);
}
.wsc-tab-pane {
	display: none;
}
.wsc-tab-pane.active {
	display: block;
	animation: wscTabPaneIn .22s ease;
}
@keyframes wscTabPaneIn {
	from { opacity: 0; transform: translateY(4px); }
	to { opacity: 1; transform: translateY(0); }
}
.wsc-dash-card {
	padding: 24px;
	border: 1px solid var(--wsc-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--wsc-shadow);
	transition: box-shadow .2s ease;
}
.wsc-dash-card:hover {
	box-shadow: var(--wsc-shadow-md);
}
.wsc-dash-card + .wsc-dash-card {
	margin-top: 16px;
}
.wsc-dash-card h3 {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 14px;
	color: var(--wsc-text);
	font-size: 19px;
	font-weight: 800;
	line-height: 1.25;
}
.wsc-dash-card h3 svg {
	width: 18px !important;
	height: 18px !important;
	flex: 0 0 18px;
	fill: none !important;
	stroke: var(--wsc-primary);
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.wsc-dash-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}
/* Customer dashboard: bookings list embedded without its own page header/toggle */
#wsc-tab-my-bookings .wsc-my-bookings-embedded {
	gap: 14px;
}
#wsc-tab-overview .wsc-booking-item {
	margin: 0;
}
.wsc-profile-image-field {
	display:block !important;
	grid-template-columns: 96px 1fr;
	gap: 16px;
	align-items: center;
	margin-bottom: 20px;
	padding: 0px !important;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fbfbff;
}
.wsc-profile-image-field img {
	width: 96px;
	height: 96px;
	border-radius: 999px;
	object-fit: cover;
	box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--wsc-border);
}
.wsc-profile-image-field input[type="file"] {
	max-width: 360px;
	padding: 9px;
}
.wsc-services-list,
.wsc-exceptions-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.wsc-exception-bookings-note {
	display: block;
	color: var(--wsc-muted);
	font-size: 13px;
	font-weight: 700;
}
.wsc-btn-small {
	min-height: auto;
	padding: 7px 12px;
	font-size: 13px;
}
.wsc-service-item,
.wsc-exception-item,
.wsc-day-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fbfbff;
}
.wsc-service-item-body {
	flex: 1;
	min-width: 0;
}
.wsc-service-meta,
.wsc-exception-item span,
.wsc-exception-item em {
	display: block;
	margin-top: 3px;
	color: var(--wsc-muted);
	font-size: 13px;
}
.wsc-color-dot {
	width: 14px;
	height: 14px;
	border-radius: 999px;
	flex: 0 0 14px;
}
.wsc-service-item-actions {
	display: flex;
	gap: 8px;
}
.wsc-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 7px 10px;
	border: 1px solid var(--wsc-border);
	border-radius: 8px;
	background: #fff;
	color: var(--wsc-text);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
}
.wsc-day-label {
	width: 120px;
	flex: 0 0 120px;
	font-weight: 800;
}
.wsc-day-ranges {
	display: flex;
	flex: 1;
	flex-wrap: wrap;
	gap: 8px;
}
.wsc-range-row {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.wsc-range-row input {
	width: 118px;
	min-height: 36px;
	padding: 7px 9px;
	border: 1px solid var(--wsc-border);
	border-radius: 8px;
}
.wsc-day-ranges .wsc-day-empty {
	visibility: visible;
	color: var(--wsc-muted);
	font-size: 13px;
}
.wsc-inline-check,
.wsc-payout-method-row {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.wsc-payout-method-row {
	gap: 16px;
}
.wsc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.wsc-table th,
.wsc-table td {
	padding: 12px 10px;
	border-bottom: 1px solid var(--wsc-border);
	text-align: left;
	vertical-align: middle;
}
.wsc-table th {
	color: var(--wsc-muted);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}
.wsc-provider-bookings-table-wrap {
	overflow-x: auto;
}
.wsc-provider-bookings-table-wrap,
.wsc-table-scroll {
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-inline: contain;
}
.wsc-provider-bookings-table-wrap .wsc-table { min-width: 900px; }
/* Recording cell: keep the single upload button compact so it doesn't blow
   out the column width on the provider Bookings table. */
.wsc-recording-cell { max-width: 180px; }
.wsc-recording-cell .wsc-upload-recording-form {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}
.wsc-recording-cell input[type="file"] {
	max-width: 160px;
	font-size: 12px;
}
.wsc-recording-cell .wsc-upload-msg { font-size: 11px; }
.wsc-badge-front {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 26px;
	padding: 4px 11px 4px 9px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: #eef0fd;
	color: var(--wsc-primary);
	font-size: 12px;
	font-weight: 800;
}
.wsc-badge-front::before {
	content: "";
	width: 6px;
	height: 6px;
	flex: none;
	border-radius: 999px;
	background: currentColor;
}
.wsc-badge-front-approved,
.wsc-badge-front-confirmed,
.wsc-badge-front-paid {
	background: #dcfce7;
	color: #15803d;
}
.wsc-badge-front-pending,
.wsc-badge-front-unpaid {
	background: #fef3c7;
	color: #92400e;
}
.wsc-badge-front-cancelled,
.wsc-badge-front-canceled,
.wsc-badge-front-failed {
	background: #fee2e2;
	color: #b91c1c;
}

/* ==========================================================================
   Premium Dashboard Upgrade Layer
   Elevates services / availability / payout / buttons without touching
   markup structure. Loads after the base rules above and wins on specificity
   or source order, so it is safe to keep the earlier rules in place.
   ========================================================================== */

/* -- Section icon chip in card headers (h3) -------------------------------- */
.wsc-dash-card > h3 {
	position: relative;
	padding-left: 0;
}
.wsc-dash-card-header h3 { margin: 0; }

/* -- Buttons: more tactile, premium feel ----------------------------------- */
.wsc-btn {
	position: relative;
	border-radius: 10px;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.wsc-btn-primary {
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-primary-dark));
	box-shadow: 0 6px 16px rgba(67, 56, 202, .22);
}
.wsc-btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(67, 56, 202, .3);
}
.wsc-btn-primary:active { transform: translateY(0); }
.wsc-btn-icon {
	border-radius: 9px;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.wsc-btn-icon:hover {
	border-color: var(--wsc-primary);
	color: var(--wsc-primary);
	background: #f6f6fd;
	box-shadow: 0 4px 10px rgba(67, 56, 202, .12);
	transform: translateY(-1px);
}
.wsc-delete-service-front:hover,
.wsc-delete-exception:hover {
	border-color: #dc2626;
	color: #dc2626;
	background: #fef2f2;
}

/* -- Services list: premium cards with colour accent + hover lift ---------- */
.wsc-services-list {
	display: grid;
	gap: 12px;
}
.wsc-service-item {
	position: relative;
	align-items: center;
	padding: 16px 16px 16px 20px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(30, 20, 70, .05);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.wsc-service-item::before {
	content: "";
	position: absolute;
	inset: 10px auto 10px 0;
	width: 4px;
	border-radius: 999px;
	background: var(--wsc-service-color, var(--wsc-primary));
}
.wsc-service-item:hover {
	border-color: #d8d5f2;
	box-shadow: 0 10px 24px rgba(30, 20, 70, .10);
	transform: translateY(-2px);
}
.wsc-service-item .wsc-color-dot {
	width: 12px;
	height: 12px;
	flex: 0 0 12px;
	box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
}
.wsc-service-item-body strong {
	font-size: 15px;
	letter-spacing: -.01em;
}
.wsc-service-meta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 5px;
	padding: 3px 0;
	font-weight: 600;
}

/* -- Availability builder: card rows + cleaner time chips ------------------ */
#wsc-weekly-schedule {
	display: grid;
	gap: 10px;
}
.wsc-day-row {
	align-items: flex-start;
	padding: 16px 18px;
	border-radius: 14px;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.wsc-day-row:hover {
	border-color: #d8d5f2;
	box-shadow: 0 6px 16px rgba(30, 20, 70, .06);
}
.wsc-day-row:has(.wsc-day-empty) {
	background: #fbfbfc;
	border-style: dashed;
}
.wsc-day-label {
	display: flex;
	align-items: center;
	min-height: 36px;
	color: var(--wsc-text);
	font-size: 14px;
}
.wsc-day-ranges .wsc-day-empty {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 4px;
	color: var(--wsc-muted);
	font-style: italic;
}
.wsc-range-row {
	padding: 5px 6px 5px 10px;
	border: 1px solid var(--wsc-border);
	border-radius: 999px;
	background: #f6f6fd;
}
.wsc-range-row span {
	color: var(--wsc-muted);
	font-weight: 700;
}
.wsc-range-row input {
	min-height: 30px;
	padding: 4px 8px;
	border: none;
	border-radius: 999px;
	background: #fff;
}
.wsc-range-row .wsc-remove-range {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	padding: 0;
	border: none;
	border-radius: 999px;
	background: transparent;
	color: var(--wsc-muted);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.wsc-range-row .wsc-remove-range:hover {
	background: #fee2e2;
	color: #dc2626;
}
.wsc-add-range {
	align-self: center;
	min-height: 34px;
	padding: 6px 12px;
	border: 1px dashed #c9c6e6;
	border-radius: 999px;
	background: transparent;
	color: var(--wsc-primary);
	font-weight: 700;
	font-size: 12.5px;
}
.wsc-add-range:hover {
	background: #eef0fd;
	border-style: solid;
}

/* -- Availability: visual month calendar ------------------------------------*/
.wsc-avail-cal {
	position: relative;
	margin-top: 6px;
}
.wsc-avail-cal-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-bottom: 12px;
}
.wsc-avail-cal-nav strong {
	min-width: 150px;
	text-align: center;
	color: var(--wsc-text);
	font-size: 15px;
}
.wsc-avail-cal-nav .wsc-btn-icon {
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wsc-border);
	border-radius: 999px;
	background: #fff;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}
.wsc-avail-cal-nav .wsc-btn-icon:hover { background: #eef0fd; }
.wsc-avail-cal-weekdays,
.wsc-avail-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 6px;
}
.wsc-avail-cal-weekdays {
	margin-bottom: 6px;
}
.wsc-avail-cal-weekdays span {
	text-align: center;
	font-size: 11.5px;
	font-weight: 700;
	color: var(--wsc-muted);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.wsc-avail-cal-day {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--wsc-border);
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	font: inherit;
	transition: border-color .15s ease, box-shadow .15s ease, transform .1s ease, background .15s ease;
}
.wsc-avail-cal-day:hover {
	border-color: var(--wsc-primary);
	box-shadow: 0 3px 10px rgba(30, 20, 70, .10);
	transform: translateY(-1px);
}
.wsc-cal-day-num {
	font-size: 17px;
	font-weight: 800;
	color: var(--wsc-text);
}
.wsc-avail-cal-day.is-other-month .wsc-cal-day-num { color: #c7c5da; }
.wsc-avail-cal-day.is-today { border-color: var(--wsc-primary); border-width: 2px; }
.wsc-avail-cal-day.is-open { background: #f2f4ff; border-color: #d7dcff; }
.wsc-avail-cal-day.is-custom { background: #fff8ec; border-color: #f4dfae; }
.wsc-avail-cal-day.is-holiday { background: #fef2f2; border-color: #f5c8c8; }
.wsc-avail-cal-day.is-closed { background: #fbfbfc; }
.wsc-avail-cal-day .wsc-cal-dot {
	position: absolute;
	bottom: 5px;
	left: 50%;
	transform: translateX(-50%);
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #d8d5f2;
}
.wsc-avail-cal-day .wsc-cal-dot.is-open { background: #16a34a; }
.wsc-avail-cal-day .wsc-cal-dot.is-custom { background: #d97706; }
.wsc-avail-cal-day .wsc-cal-dot.is-holiday { background: #dc2626; }
.wsc-avail-cal-day .wsc-cal-dot.is-closed { background: #c7c5da; }
.wsc-avail-cal-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 14px;
	font-size: 12.5px;
	color: var(--wsc-muted);
}
.wsc-avail-cal-legend span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.wsc-avail-cal-legend span { padding:5px 9px; border:1px solid transparent; border-radius:999px; }
.wsc-avail-cal-legend .wsc-cal-dot { width:9px; height:9px; border-radius:50%; box-shadow:0 0 0 3px transparent; }
.wsc-avail-cal-legend .wsc-cal-dot.is-open { background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.14); }
.wsc-avail-cal-legend .wsc-cal-dot.is-custom { background:#d97706; box-shadow:0 0 0 3px rgba(217,119,6,.14); }
.wsc-avail-cal-legend .wsc-cal-dot.is-holiday { background:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.14); }
.wsc-avail-cal-legend .wsc-cal-dot.is-closed { background:#94a3b8; box-shadow:0 0 0 3px rgba(148,163,184,.16); }
.wsc-avail-cal-legend span:has(.is-open) { color:#166534; background:#f0fdf4; border-color:#bbf7d0; }
.wsc-avail-cal-legend span:has(.is-custom) { color:#92400e; background:#fffbeb; border-color:#fde68a; }
.wsc-avail-cal-legend span:has(.is-holiday) { color:#b91c1c; background:#fef2f2; border-color:#fecaca; }
.wsc-avail-cal-legend span:has(.is-closed) { color:#475569; background:#f8fafc; border-color:#e2e8f0; }

.wsc-cal-popover {
	position: absolute;
	z-index: 20;
	width: 240px;
	padding: 12px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--wsc-shadow-md);
}
.wsc-cal-popover-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}
.wsc-cal-popover-head strong { font-size: 13.5px; color: var(--wsc-text); }
.wsc-cal-popover-head .wsc-btn-icon {
	border: none;
	background: transparent;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	color: var(--wsc-muted);
	padding: 2px 6px;
}
.wsc-cal-popover-form,
#wsc-cal-popover-form {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
#wsc-cal-popover-form input[type="text"],
#wsc-cal-popover-form input[type="time"],
#wsc-cal-popover-form input[type="date"] {
	width: 100%;
	padding: 6px 8px;
	border: 1px solid var(--wsc-border);
	border-radius: 8px;
	font: inherit;
	font-size: 13px;
}
.wsc-cal-popover-times {
	display: flex;
	align-items: center;
	gap: 6px;
}
.wsc-cal-popover-times input { flex: 1; }
.wsc-cal-popover-range-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	color: var(--wsc-muted);
	cursor: pointer;
}
.wsc-cal-popover-range {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
}
.wsc-cal-popover-range label { color: var(--wsc-muted); white-space: nowrap; }
.wsc-cal-popover-range input { flex: 1; }
.wsc-exception-form input[name="end_date"] {
	max-width: 150px;
}
.wsc-cal-popover-actions {
	display: flex;
	gap: 8px;
}
.wsc-cal-popover-actions .wsc-btn {
	flex: 1;
	padding: 6px 10px;
	font-size: 13px;
}
@media (max-width: 640px) {
	.wsc-cal-day-num { font-size: 12px; }
	.wsc-cal-popover { width: 200px; }
}

/* -- Holidays / exceptions list --------------------------------------------*/
.wsc-exceptions-list {
	display: grid;
	gap: 10px;
	margin-top: 14px;
}
.wsc-exception-item {
	border-radius: 12px;
	flex-wrap: wrap;
	row-gap: 8px;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.wsc-exception-item:hover {
	border-color: #d8d5f2;
	box-shadow: 0 6px 16px rgba(30, 20, 70, .06);
}
.wsc-exception-item strong {
	min-width: 96px;
	color: var(--wsc-primary);
}
.wsc-exception-item .wsc-delete-exception {
	margin-left: auto;
}
.wsc-exception-form {
	padding: 16px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fbfbff;
	margin-bottom: 4px;
}
.wsc-exception-form-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	align-items: start;
}
.wsc-exception-form .wsc-field-group {
	margin-bottom: 0;
}
.wsc-exception-fullday-group {
	justify-content: flex-end;
	padding-bottom: 11px;
}
.wsc-exception-note-group {
	grid-column: span 2;
}
.wsc-exception-time-group {
	grid-column: span 2;
}
.wsc-exception-time-row {
	display: flex;
	align-items: center;
	gap: 8px;
}
.wsc-exception-time-row .wsc-exception-time {
	flex: 1;
}
.wsc-exception-time-row span {
	color: var(--wsc-muted);
	font-size: 13px;
}
.wsc-exception-form-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 16px;
}
.wsc-exception-form-actions .wsc-btn {
	padding: 11px 24px;
}
@media (max-width: 782px) {
	.wsc-exception-form-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.wsc-exception-note-group,
	.wsc-exception-time-group {
		grid-column: span 2;
	}
	.wsc-exception-fullday-group {
		justify-content: flex-start;
		padding-bottom: 0;
	}
}

/* -- Payout: method chosen as a segmented card selector --------------------*/
.wsc-payout-method-row {
	gap: 12px;
	flex-wrap: wrap;
}
.wsc-payout-method-row .wsc-inline-check {
	position: relative;
	gap: 8px;
	padding: 10px 18px 10px 40px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fbfbff;
	font-weight: 700;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.wsc-payout-method-row .wsc-inline-check input {
	position: absolute;
	left: 14px;
}
.wsc-payout-method-row .wsc-inline-check:hover {
	border-color: #c9c6e6;
}
.wsc-payout-method-row .wsc-inline-check:has(input:checked) {
	border-color: var(--wsc-primary);
	background: #eef0fd;
	box-shadow: 0 0 0 3px rgba(67, 56, 202, .1);
	color: var(--wsc-primary-dark);
}
#wsc-payout-bank-fields,
#wsc-payout-upi-fields {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px dashed var(--wsc-border);
}

/* -- Meeting / availability-status mini card polish ------------------------*/
#wsc-meeting-card select,
#wsc-availability-status-card select {
	max-width: 340px;
}

/* -- Earnings / payout table rows ------------------------------------------*/
.wsc-table tbody tr {
	transition: background .15s ease;
}
.wsc-table tbody tr:hover {
	background: #fbfbff;
}

@media (max-width: 640px) {
	.wsc-day-row { flex-direction: column; align-items: stretch; }
	.wsc-day-label { min-height: 0; margin-bottom: 4px; }
	.wsc-payout-method-row { flex-direction: column; }
	.wsc-payout-method-row .wsc-inline-check { width: 100%; box-sizing: border-box; }
}

/* Provider directory lift */
.wsc-provider-card,
.wsc-provider-row {
	position: relative;
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.wsc-provider-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 5px;
	background: linear-gradient(90deg, var(--wsc-primary), #0f766e, var(--wsc-accent));
}
.wsc-provider-card:hover,
.wsc-provider-row:hover {
	transform: translateY(-2px);
	border-color: #d7dcff;
	box-shadow: var(--wsc-shadow-md);
}
.wsc-provider-card-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	width: 110%;
	margin-top: auto;
}
.wsc-provider-card .wsc-provider-card-actions .wsc-btn {
	width: 100%;
	margin-top: 0;
}
.wsc-provider-quick-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 7px;
	margin: 2px 0 4px;
}
.wsc-provider-quick-meta span,
.wsc-provider-extra-chips div {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 5px 9px;
	border: 1px solid var(--wsc-border);
	border-radius: 999px;
	background: #f8f8fc;
	color: var(--wsc-muted);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.25;
}
.wsc-providers-list {
	gap: 16px;
}
.wsc-providers-list .wsc-provider-row {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr) 190px;
	align-items: center;
	gap: 18px;
	padding: 18px;
	border-radius: 14px;
	background: linear-gradient(135deg, #fff 0%, #fbfbff 100%);
}
.wsc-provider-row-media {
	display: flex;
	align-items: center;
	justify-content: center;
}
.wsc-providers-list .wsc-provider-row-avatar {
	width: 96px;
	height: 96px;
	box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--wsc-border);
}
.wsc-provider-row-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}
.wsc-providers-list .wsc-provider-name {
	font-size: 20px;
	line-height: 1.2;
}
.wsc-providers-list .wsc-provider-quick-meta {
	justify-content: flex-end;
	margin: 0;
}
.wsc-providers-list .wsc-provider-bio {
	max-width: 760px;
	font-size: 14px;
}
.wsc-provider-extra-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 10px 0;
}
.wsc-provider-extra-chips div {
	width: auto;
	margin: 0;
}
.wsc-provider-row-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-self: stretch;
	justify-content: center;
}
.wsc-provider-row-actions .wsc-btn {
	width: 100%;
}
.wsc-provider-profile-btn,
.wsc-university-student-profile-btn {
	background: #fff;
	color: var(--wsc-primary);
	border-color: #d7dcff;
}
.wsc-provider-profile-btn:hover,
.wsc-university-student-profile-btn:hover {
	background: #f2f4ff;
	color: var(--wsc-primary);
}
.wsc-profile-modal-open {
	overflow: hidden;
}
.wsc-provider-profile-modal[hidden] {
	display: none;
}
.wsc-provider-profile-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
}
/* Drag affordance for the mobile bottom-sheet layout (see the max-width:
   680px block below) — hidden on desktop where the dialog stays centered. */
.wsc-sheet-handle {
	display: none;
}
.wsc-provider-profile-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, .56);
	backdrop-filter: blur(4px);
}
/* .wsc-provider-profile-dialog is a flex column: banner/close/head live in
   the non-scrolling .wsc-provider-profile-fixed-top, and only
   .wsc-provider-profile-body scrolls — so the close (X) button and the
   student's name stay visible/fixed no matter how far the body is scrolled. */
.wsc-provider-profile-dialog {
	position: relative;
	z-index: 1;
	width: min(760px, 100%);
	max-height: min(86vh, 820px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	padding: 0;
	border: 1px solid var(--wsc-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
.wsc-provider-profile-fixed-top {
	position: relative;
	flex: 0 0 auto;
	z-index: 2;
}
.wsc-provider-profile-banner {
	position: relative;
	min-height: 112px;
	border-radius: 15px 15px 0 0;
	background: linear-gradient(120deg, #4338ca 0%, #6d28d9 55%, #9333ea 100%);
	overflow: hidden;
	display: flex;
	align-items: center;
}
.wsc-provider-profile-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 85% -10%, rgba(255, 255, 255, .35), transparent 55%), radial-gradient(circle at 10% 120%, rgba(255, 255, 255, .18), transparent 50%);
}
/* Avatar, name and course chip all live together inside the banner. */
.wsc-provider-profile-banner-inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 18px 58px 18px 24px;
	box-sizing: border-box;
}
.wsc-provider-profile-avatar {
	width: 60px;
	height: 60px;
	border-radius: 999px;
	object-fit: cover;
	flex-shrink: 0;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, .9);
}
.wsc-provider-profile-banner-info {
	min-width: 0;
}
.wsc-provider-profile-banner-name {
	margin: 0;
	font-size: 19px;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.01em;
	line-height: 1.25;
	text-shadow: 0 1px 6px rgba(15, 23, 42, .35);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.wsc-provider-profile-head-info {
	margin-top: 6px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}
.wsc-provider-profile-service-count,
.wsc-provider-profile-course-chip {
	display: inline-flex;
	align-items: center;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .3);
	padding: 4px 10px;
	border-radius: 20px;
}
.wsc-provider-profile-close {
	position: absolute;
	top: 14px;
	right: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	min-width: 34px;
	min-height: 34px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	backdrop-filter: blur(4px);
	color: #fff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: background .18s ease;
	z-index: 3;
}
.wsc-provider-profile-close:hover {
	background: rgba(255, 255, 255, .3);
}
.wsc-provider-profile-body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 20px 24px 24px;
}
/* Bio: clamp to a few lines and only reveal "Read more" when the text
   actually overflows (see initBioToggle-equivalent in wsc-public.js). */
.wsc-provider-bio-text {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}
.wsc-provider-bio-text.is-expanded {
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
}
.wsc-provider-bio-toggle {
	display: inline-block;
	margin-top: 8px;
	padding: 0;
	border: 0;
	background: none;
	font-size: 13px;
	font-weight: 800;
	color: var(--wsc-primary);
	cursor: pointer;
}
.wsc-provider-bio-toggle:hover {
	text-decoration: underline;
}
.wsc-provider-profile-section {
	padding-top: 18px;
}
.wsc-provider-profile-section h4 {
	margin: 0 0 10px;
	font-size: 16px;
	line-height: 1.25;
}
.wsc-provider-profile-section p {
	margin: 0;
	color: var(--wsc-muted);
	line-height: 1.6;
}
.wsc-provider-profile-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.wsc-provider-profile-detail-grid div,
.wsc-provider-profile-service {
	padding: 13px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fbfbff;
}
.wsc-provider-profile-detail-grid span {
	display: block;
	color: var(--wsc-muted);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}
.wsc-provider-profile-detail-grid strong {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	line-height: 1.35;
}
.wsc-provider-profile-services {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.wsc-provider-profile-service {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
}
.wsc-provider-profile-service strong {
	display: block;
	font-size: 15px;
}
.wsc-provider-profile-service span {
	display: block;
	margin-top: 4px;
	color: var(--wsc-primary);
	font-size: 13px;
	font-weight: 800;
}
.wsc-provider-profile-service p {
	margin-top: 6px;
	font-size: 13px;
}

@media (max-width: 980px) {
	.wsc-booking-columns,
	.wsc-dash-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.wsc-providers-list .wsc-provider-row {
		grid-template-columns: 96px minmax(0, 1fr);
	}
	.wsc-provider-row-actions {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.wsc-booking-col:nth-child(2) {
		border-right: none;
	}
	.wsc-booking-col:last-child {
		grid-column: 1 / -1;
		border-top: 1px solid var(--wsc-border);
	}
	.wsc-payment-methods {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 680px) {
	.wsc-booking-widget-header,
	.wsc-booking-form-section,
	.wsc-booking-col,
	.wsc-dash-card,
	.wsc-dash-header {
		padding: 18px;
	}
	.wsc-dash-avatar-wrap {
		width: 64px;
	}
	.wsc-dash-avatar {
		width: 56px;
		height: 56px;
	}
	.wsc-dash-header-copy h2 {
		font-size: 22px;
	}
	.wsc-booking-columns,
	.wsc-dash-stats,
	.wsc-form-row,
	.wsc-profile-image-field {
		grid-template-columns: 1fr;
	}
	.wsc-field-grid > .wsc-field-group.wsc-field-w-50,
	.wsc-field-grid > .wsc-field-group.wsc-field-w-33,
	.wsc-field-grid > .wsc-field-group.wsc-field-w-25,
	.wsc-field-grid > .wsc-field-group.wsc-field-w-66,
	.wsc-field-grid > .wsc-field-group.wsc-field-w-75 {
		flex-basis: 100%;
	}
	.wsc-booking-col {
		border-right: none;
		border-bottom: 1px solid var(--wsc-border);
	}
	.wsc-booking-col:last-child {
		grid-column: auto;
		border-top: none;
		border-bottom: none;
	}
	.wsc-slots-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
	.wsc-dash-header,
	.wsc-my-bookings-header,
	.wsc-service-item,
	.wsc-exception-item,
	.wsc-day-row {
		align-items: flex-start;
		flex-direction: column;
	}
	.wsc-my-bookings-header .wsc-view-toolbar {
		justify-content: flex-start;
		width: 100%;
	}
	.wsc-day-label {
		width: auto;
		flex-basis: auto;
	}
	.wsc-service-item-actions {
		width: 100%;
	}
	.wsc-service-item-actions .wsc-btn-icon {
		flex: 1;
	}
	.wsc-providers-list .wsc-provider-row {
		grid-template-columns: 1fr;
		text-align: left;
	}
	.wsc-provider-row-media {
		justify-content: flex-start;
	}
	.wsc-provider-row-title {
		flex-direction: column;
	}
	.wsc-providers-list .wsc-provider-quick-meta {
		justify-content: flex-start;
	}
	.wsc-provider-row-actions,
	.wsc-provider-card-actions,
	.wsc-provider-profile-detail-grid,
	.wsc-provider-profile-service {
		grid-template-columns: 1fr;
	}
	/* Bottom-sheet layout: the dialog docks to the bottom edge and slides up
	   instead of appearing as a centered popup, so it reads as part of the
	   booking flow rather than a desktop-style dialog box. */
	.wsc-provider-profile-modal {
		align-items: flex-end;
		padding: 0;
	}
	.wsc-provider-profile-backdrop {
		transition: opacity .25s ease;
	}
	.wsc-provider-profile-modal:not(.is-open) .wsc-provider-profile-backdrop {
		opacity: 0;
	}
	.wsc-provider-profile-dialog {
		width: 100%;
		max-width: 100%;
		max-height: 88vh;
		border-radius: 20px 20px 0 0;
		transform: translateY(100%);
		transition: transform .32s cubic-bezier(.32, .72, 0, 1);
		box-shadow: 0 -8px 40px rgba(15, 23, 42, .22);
	}
	.wsc-provider-profile-modal.is-open .wsc-provider-profile-dialog {
		transform: translateY(0);
	}
	.wsc-provider-profile-banner {
		border-radius: 20px 20px 0 0;
	}
	.wsc-sheet-handle {
		display: block;
		width: 40px;
		height: 5px;
		border-radius: 999px;
		background: var(--wsc-border);
		margin: 6px auto 12px;
		cursor: pointer;
	}
	/* Inside the profile modal the handle sits over the gradient banner, so
	   it needs to float there (lighter colour, no flow spacing) instead of
	   taking up its own row above the content. */
	.wsc-provider-profile-fixed-top .wsc-sheet-handle {
		display: block;
		position: absolute;
		top: 10px;
		left: 50%;
		transform: translateX(-50%);
		width: 40px;
		height: 5px;
		border-radius: 999px;
		background: rgba(255, 255, 255, .55);
		margin: 0;
		cursor: pointer;
		z-index: 4;
	}
	.wsc-provider-profile-banner-inner {
		padding: 18px 50px 18px 20px;
		gap: 10px;
	}
	.wsc-provider-profile-avatar {
		width: 50px;
		height: 50px;
	}
	.wsc-provider-profile-banner-name {
		font-size: 17px;
	}
	.wsc-provider-profile-body {
		padding: 20px 20px calc(20px + env(safe-area-inset-bottom, 0px));
	}
	.wsc-provider-profile-close {
		top: 10px;
	}

	/* Same bottom-sheet treatment for the shared "Thank You" modal (booking +
	   membership) — see the notes on the provider-profile rules above. This
	   is the most important touchpoint to get right since it's the last
	   step of the booking flow, so it should read as native as possible. */
	.wsc-thankyou-modal-overlay {
		align-items: flex-end;
		padding: 0;
	}
	.wsc-thankyou-modal {
		max-width: 100%;
		max-height: 88vh;
		border-radius: 20px 20px 0 0;
		padding-top: 4px;
		box-shadow: 0 -8px 40px rgba(15, 23, 42, .22);
		transform: translateY(0);
		transition: transform .32s cubic-bezier(.32, .72, 0, 1);
	}
	.wsc-thankyou-modal-overlay.wsc-ty-closed .wsc-thankyou-modal {
		transform: translateY(100%);
	}
	.wsc-thankyou-modal-close {
		top: 10px;
	}
}

.wsc-filters-toggle{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 16px;border:1px solid var(--wsc-border);border-radius:999px;background:#fff;color:var(--wsc-text);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.wsc-filters-toggle:hover{background:var(--wsc-primary);border-color:var(--wsc-primary);color:#fff!important}
.wsc-filters-toggle-icon{color:var(--wsc-muted);flex-shrink:0;transition:color .15s ease}
.wsc-filters-toggle-arrow{color:var(--wsc-muted);flex-shrink:0;transition:transform .2s ease,color .15s ease}
.wsc-filters-toggle:hover .wsc-filters-toggle-icon,
.wsc-filters-toggle:hover .wsc-filters-toggle-arrow{color:#fff!important}
.wsc-filters-toggle[aria-expanded="true"] .wsc-filters-toggle-arrow{transform:rotate(180deg)}
.wsc-filters-toggle[aria-expanded="true"]{border-color:var(--wsc-primary);color:var(--wsc-primary)}
.wsc-provider-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 20px;padding:15px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.wsc-provider-filters[hidden]{display:none}
.wsc-provider-filters input,.wsc-provider-filters select{min-height:40px;padding:7px 10px;border:1px solid #d1d5db;border-radius:7px;color:var(--wsc-text) !important;background:#fff !important;-webkit-text-fill-color:var(--wsc-text)}
.wsc-provider-filters input:hover,.wsc-provider-filters select:hover,.wsc-provider-filters input:focus,.wsc-provider-filters select:focus{color:var(--wsc-text) !important;background:#fff !important;-webkit-text-fill-color:var(--wsc-text)}
.wsc-provider-filters input::placeholder{color:var(--wsc-muted);opacity:1}
.wsc-provider-marketplace-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:12px;margin:8px 0 12px}
.wsc-provider-marketplace-meta .wsc-badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#eef2ff}
.wsc-avail-indicator{display:inline-flex;align-items:center;gap:5px}
.wsc-avail-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}
.wsc-avail-available .wsc-avail-dot{background:#22c55e;box-shadow:0 0 0 2px rgba(34,197,94,.2)}
.wsc-avail-busy .wsc-avail-dot{background:#eab308;box-shadow:0 0 0 2px rgba(234,179,8,.2)}
.wsc-avail-offline .wsc-avail-dot{background:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.2)}
.wsc-reviews{margin-top:20px}
.wsc-rating-summary{font-size:18px;margin-bottom:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wsc-review{padding:12px 0;border-top:1px solid #eee}
.wsc-star-icon{color:#f5a623}
.wsc-provider-rating-btn{display:inline-flex;align-items:center;gap:4px;padding:0;margin:0;border:0;background:none;font:inherit;font-size:12px;color:var(--wsc-text);cursor:pointer;text-decoration:none}
.wsc-provider-rating-btn:hover,.wsc-provider-rating-btn:focus-visible{text-decoration:underline}
.wsc-provider-rating-btn .wsc-star-icon{font-size:13px}
.wsc-provider-reviews-modal .wsc-provider-profile-dialog{width:min(560px,100%)}
.wsc-provider-reviews-list{margin-top:6px}
.wsc-provider-reviews-list .wsc-review:first-child{border-top:0}
.wsc-provider-reviews-list .wsc-review p{margin:6px 0 0;color:var(--wsc-muted)}

.wsc-rate-provider-btn{margin-top:10px}
.wsc-rate-provider-btn.wsc-is-hidden{display:none !important}
.wsc-rate-provider-form{margin-top:12px;padding:14px;border:1px solid var(--wsc-border);border-radius:10px;background:#fafafa;display:none;flex-direction:column;gap:10px}
.wsc-rate-provider-form[hidden]{display:none}
.wsc-rate-provider-form.wsc-is-open{display:flex !important}
.wsc-rate-provider-form textarea{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:7px;font-family:inherit;resize:vertical}
.wsc-rate-stars{display:flex;gap:4px}
.wsc-rate-star{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:#d1d5db;padding:0}
.wsc-rate-star.is-active{color:#f5a623}
.wsc-my-review{margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wsc-my-review-stars{color:#f5a623;font-size:16px;letter-spacing:1px}

/* ---- Meeting recording upload (student + parent) ---- */
.wsc-btn-upload{
	background:#fff;
	border-color:var(--wsc-primary);
	color:var(--wsc-primary);
}
.wsc-btn-upload svg{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-right:6px;vertical-align:-2px}
.wsc-btn-upload:hover,
.wsc-btn-upload.wsc-is-active{
	background:var(--wsc-primary);
	color:#fff;
	box-shadow:var(--wsc-shadow);
}
.wsc-booking-action-btn svg{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-right:6px;vertical-align:-2px}

.wsc-upload-recording-panel{
	margin:0 0 10px;
	overflow:hidden;
	animation:wscUploadPanelIn .18s ease;
}
.wsc-upload-recording-panel[hidden]{display:none}

.wsc-reschedule-panel{
	margin:0 0 10px;
	overflow:hidden;
	animation:wscUploadPanelIn .18s ease;
	padding:16px;
	border:1px solid var(--wsc-border);
	border-radius:var(--wsc-radius);
	background:linear-gradient(180deg,#f9f9fd 0%,#fff 100%);
	box-shadow:var(--wsc-shadow);
	display:flex;
	flex-direction:column;
	gap:10px;
}
.wsc-reschedule-panel[hidden]{display:none}
.wsc-reschedule-date-label{
	display:flex;
	flex-direction:column;
	gap:4px;
	font-size:13px;
	font-weight:600;
	max-width:220px;
}
.wsc-reschedule-date-label input[type="date"]{
	padding:8px 10px;
	border:1px solid var(--wsc-border);
	border-radius:8px;
	font-weight:400;
}
.wsc-reschedule-slots{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.wsc-reschedule-slot-btn{
	padding:7px 12px;
	border:1px solid var(--wsc-border);
	border-radius:20px;
	background:#fff;
	color:var(--wsc-text);
	font-size:13px;
	cursor:pointer;
	transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.wsc-reschedule-slot-btn:hover{border-color:var(--wsc-primary)}
.wsc-reschedule-slot-btn.is-active{
	background:var(--wsc-primary);
	border-color:var(--wsc-primary);
	color:#fff;
}
.wsc-reschedule-actions{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
}
.wsc-upload-recording-form{
	display:flex;
	flex-direction:column;
	gap:10px;
	padding:16px;
	border:1px solid var(--wsc-border);
	border-radius:var(--wsc-radius);
	background:linear-gradient(180deg,#f9f9fd 0%,#fff 100%);
	box-shadow:var(--wsc-shadow);
}
.wsc-upload-drop{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:6px;
	text-align:center;
	padding:26px 16px;
	border:2px dashed var(--wsc-border);
	border-radius:10px;
	background:#fff;
	cursor:pointer;
	transition:border-color .15s ease,background-color .15s ease;
	position:relative;
}
.wsc-upload-drop:hover{border-color:var(--wsc-primary)}
.wsc-upload-drop.wsc-is-dragover{
	border-color:var(--wsc-primary);
	background:#f2f1fd;
}
.wsc-upload-drop.wsc-has-file{border-color:#16a34a;background:#f0fbf4}
.wsc-upload-drop svg{stroke:var(--wsc-primary);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.wsc-upload-drop-title{font-weight:600;color:var(--wsc-text);font-size:14px}
.wsc-upload-drop-filename{font-size:12.5px}
.wsc-upload-drop.wsc-has-file .wsc-upload-drop-filename{color:#166534;font-weight:600}
.wsc-upload-drop input[type="file"]{
	position:absolute;
	inset:0;
	opacity:0;
	cursor:pointer;
}
.wsc-upload-recording-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wsc-upload-recording-actions .wsc-btn{padding:8px 16px;font-size:13px}
.wsc-upload-msg{font-size:12.5px}
@keyframes wscUploadPanelIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

.wsc-notice-box.wsc-notice-warning{margin-bottom:16px;padding:12px 16px;border-radius:8px;background:#fff8e6;border:1px solid #f0d896;color:#8a6a1f;font-size:14px}
.wsc-notice-box{margin-bottom:16px;padding:12px 16px;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb;color:#374151;font-size:14px}
.wsc-notice-box.wsc-notice-success{background:#ecfdf3;border-color:#a7e8c4;color:#0a7a34}
.wsc-notice-box.wsc-notice-error{background:#fdecec;border-color:#f3b8b8;color:#a3231f}

/* ---- Membership pricing page ([wsc_membership]) ---- */
.wsc-membership-page{max-width:1080px;margin:0 auto}
.wsc-current-plan-banner{display:flex;align-items:center;gap:8px;margin-bottom:22px;font-size:15px}
.wsc-membership-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;margin-top:10px}
.wsc-membership-plan{position:relative;background:#fff;border:1px solid var(--wsc-border,#e5e7eb);border-radius:14px;padding:26px 22px;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(30,20,70,.05);transition:transform .18s ease,box-shadow .18s ease}
.wsc-membership-plan:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(30,20,70,.09)}
.wsc-membership-plan-popular{border-color:var(--wsc-primary);box-shadow:0 10px 26px rgba(67,56,202,.14)}
.wsc-membership-plan-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--wsc-primary),var(--wsc-accent,#c9a227));color:#fff;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 14px;border-radius:999px;white-space:nowrap}
.wsc-membership-plan h3{margin:6px 0 6px;font-size:19px;font-weight:800}
.wsc-membership-plan-price{font-size:30px;font-weight:800;color:var(--wsc-primary);margin-bottom:16px}
.wsc-membership-plan-price span{font-size:13px;font-weight:600;color:#6b7280}
.wsc-membership-plan-features{list-style:none;margin:0 0 22px;padding:0;flex:1}
.wsc-membership-plan-features li{padding:6px 0 6px 24px;position:relative;font-size:14px;color:#374151;border-bottom:1px solid #f3f4f6}
.wsc-membership-plan-features li:last-child{border-bottom:none}
.wsc-membership-plan-features li::before{content:"✓";position:absolute;left:0;color:#0a7a34;font-weight:700}
.wsc-membership-plan .wsc-btn[disabled]{opacity:.6;cursor:not-allowed}

.wsc-membership-pay-modal-overlay{position:fixed;inset:0;background:rgba(25,23,51,.55);display:none;align-items:center;justify-content:center;z-index:100000}
.wsc-membership-pay-modal{background:#fff;border-radius:14px;padding:28px 30px;width:380px;max-width:92vw;box-shadow:0 24px 60px rgba(25,23,51,.28);text-align:center}
.wsc-membership-pay-modal h3{margin-top:0}
.wsc-membership-pay-options{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.wsc-membership-pay-modal #wsc-membership-pay-cancel{margin-top:6px}

/* ---- University Directory ([wsc_universities]) ---- */
.wsc-university-directory{display:flex;flex-direction:column;gap:14px}
.wsc-university-grid{display:grid;grid-template-columns:repeat(var(--wsc-columns,3),1fr);gap:22px}
@media (max-width:900px){.wsc-university-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.wsc-university-grid{grid-template-columns:1fr}}
.wsc-university-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:22px;background:#fff;border:1px solid var(--wsc-border);border-radius:var(--wsc-radius);box-shadow:var(--wsc-shadow);text-decoration:none;color:var(--wsc-text);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.wsc-university-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--wsc-primary),#0f766e,var(--wsc-accent))}
.wsc-university-card .wsc-university-avatar{width:84px;height:84px;font-size:28px}
.wsc-university-card:hover{transform:translateY(-3px);box-shadow:var(--wsc-shadow-md);border-color:var(--wsc-primary);color:var(--wsc-text)}
.wsc-university-name{margin:0;font-size:14.4px;font-weight:500;text-decoration:none}
.wsc-university-card-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.wsc-university-card-meta .wsc-badge{display:inline-block;padding:3px 9px;border-radius:999px;background:#eef2ff;color:var(--wsc-text);font-size:12px;font-weight:600}
.wsc-university-card-courses{margin:0;color:var(--wsc-muted);font-size:13px;line-height:1.5}
.wsc-university-card-actions{margin-top:auto;width:100%}
.wsc-university-card-cta{display:block;width:100%;margin-top:0}

.wsc-university-detail{display:flex;flex-direction:column;gap:20px}
.wsc-university-back{display:inline-block;width:fit-content;font-size:13px;font-weight:700;color:var(--wsc-muted);text-decoration:none}
.wsc-university-back:hover{color:var(--wsc-primary)}
.wsc-university-detail-head{display:flex;flex-direction:column;gap:10px}
.wsc-university-detail-name{margin:0;font-size:26px;font-weight:800;color:var(--wsc-text)}
.wsc-university-detail-section h3{margin:0 0 12px;font-size:16px;font-weight:800;color:var(--wsc-text)}
.wsc-university-course-chips{display:flex;flex-wrap:wrap;gap:8px}
.wsc-university-chip{display:inline-block;padding:7px 16px;border-radius:999px;border:1px solid var(--wsc-border);background:#fff;color:var(--wsc-text);font-size:13px;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}
.wsc-university-chip:hover{border-color:var(--wsc-primary);color:var(--wsc-primary)}
.wsc-university-chip.is-active{background:var(--wsc-primary);border-color:var(--wsc-primary);color:#fff}

.wsc-university-student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px}
.wsc-university-student-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:20px;background:#fff;border:1px solid var(--wsc-border);border-radius:var(--wsc-radius);box-shadow:var(--wsc-shadow)}
.wsc-university-student-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;margin-bottom:4px}
.wsc-university-student-name{margin:0;font-size:15px;font-weight:800}
.wsc-university-student-course{margin:0;font-size:12px;color:var(--wsc-muted)}
.wsc-university-student-actions{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:10px}
.wsc-university-student-actions .wsc-btn{width:100%}

/* --- University directory: richer cards, hero header, radio/checkbox fields --- */
.wsc-badge{display:inline-block;padding:3px 9px;border-radius:999px;background:#eef2ff;color:var(--wsc-text);font-size:12px;font-weight:600}
.wsc-badge-verified{background:#e6f7ec;color:#1a7a3e}
/* Mobile-only duplicate of the "Registered" badge inside the meta row
   (see university-detail.php) — hidden by default, shown only under
   600px below. Kept here (not just in the template's own <style>) so it
   still works if a caching/minifier plugin changes asset load order. */
.wsc-university-detail-hero .wsc-university-card-meta .wsc-university-meta-registered{display:none !important}
.wsc-btn-outline{background:transparent;border:1px solid var(--wsc-primary);color:var(--wsc-primary)}
.wsc-btn-outline:hover{background:var(--wsc-primary);color:#fff}

.wsc-university-directory-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.wsc-university-search{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:260px;max-width:640px}
.wsc-university-search input[type="search"]{flex:1 1 160px;min-width:140px}
.wsc-university-search input,
.wsc-university-search select{min-height:18px;border:1px solid var(--wsc-border);border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;outline:none;background:#fff;color:var(--wsc-text)}
.wsc-university-search select{flex:1 1 140px;min-width:130px;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6a85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:14px 14px}
.wsc-university-search input:focus,
.wsc-university-search select:focus{border-color:var(--wsc-primary);box-shadow:0 0 0 3px rgba(67,56,202,.12)}
.wsc-add-university-cta{white-space:nowrap}

.wsc-university-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--wsc-primary),#7c6cf5);color:#fff;font-weight:800;font-size:15px;letter-spacing:.5px}
.wsc-university-avatar-lg{width:72px;height:72px;font-size:24px}
.wsc-university-logo-img{object-fit:cover;background:#fff;border:1px solid var(--wsc-border)}
.wsc-image-field-square img{border-radius:10px;}
.wsc-university-card-top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.wsc-university-card-top .wsc-university-name{margin-bottom:4px}
.wsc-university-card-extras{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12.5px;color:var(--wsc-muted)}
.wsc-university-card-extras strong{color:var(--wsc-text);font-weight:700}

.wsc-university-detail-hero{display:flex;align-items:center;gap:18px;padding:22px;background:#fff;border:1px solid var(--wsc-border);border-radius:var(--wsc-radius);box-shadow:var(--wsc-shadow)}
.wsc-university-detail-hero-body{display:flex;flex-direction:column;gap:10px}
.wsc-university-detail-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wsc-university-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.wsc-university-detail-grid div{padding:14px 16px;border:1px solid var(--wsc-border);border-radius:14px;background:#fbfbff}
.wsc-university-detail-grid span{display:block;color:var(--wsc-muted);font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px}
.wsc-university-detail-grid strong{display:block;margin-top:5px;font-size:14.5px;line-height:1.4;word-break:break-word}
.wsc-university-detail-grid strong a{color:var(--wsc-primary)}
@media (max-width:600px){.wsc-university-detail-grid{grid-template-columns:1fr}.wsc-university-detail-hero{flex-direction:column;align-items:flex-start}}

/* Radio / checkbox custom-field options, used in student/parent/university forms */
.wsc-radio-option,
.wsc-checkbox-option{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:500;color:var(--wsc-text);margin:4px 0;cursor:pointer}
.wsc-radio-option input,
.wsc-checkbox-option input{width:auto;min-height:0;margin:0}

/* ==========================================================================
   Add University form — premium redesign
   Signature: a soft indigo→gold "spotlight" badge on the intro icon, and an
   accent gradient rail along the top of the card.
   ========================================================================== */
.wsc-add-university{max-width:1040px;margin:0 auto;--wsc-au-radius:16px}

.wsc-add-university-intro{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.wsc-add-university-intro-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wsc-add-university-icon{
	display:flex;align-items:center;justify-content:center;flex-shrink:0;
	width:52px;height:52px;border-radius:16px;font-size:24px;
	background:radial-gradient(120% 120% at 30% 20%,#efe9ff 0%,var(--wsc-primary) 65%,var(--wsc-accent) 130%);
	box-shadow:0 8px 20px rgba(67,56,202,.28);
}

/* Configurable radio-field direction, shared by registration, profile and booking forms. */
.wsc-radio-group,
.wsc-cf-radio-group { display:flex; gap:10px 18px; flex-wrap:wrap; }
.wsc-radio-group-vertical { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.wsc-cf-radio-group.wsc-radio-group-vertical { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }

/* Registration user-role picker: the same saved role data can be displayed as
   generous cards or as compact, keyboard-accessible tabs. */
.wsc-usertype-picker-intro { margin:-4px 0 18px; color:#667085; }
.wsc-role-picker-tabs .wsc-usertype-list { display:flex; gap:8px; flex-wrap:wrap; }
.wsc-role-picker-tabs .wsc-usertype-card { flex:1 1 180px; min-height:0; padding:12px 14px; border-radius:10px; box-shadow:none; }
.wsc-role-picker-tabs .wsc-usertype-card .wsc-usertype-desc { display:none; }
.wsc-role-picker-tabs .wsc-usertype-card .wsc-usertype-icon { width:34px; height:34px; min-width:34px; font-size:16px; }
.wsc-role-picker-tabs .wsc-usertype-card .wsc-usertype-check { display:none; }
.wsc-role-picker-tabs .wsc-usertype-card.is-selected { background:#f1efff; border-color:#4d3ed5; }
@media (max-width:600px) { .wsc-role-picker-tabs .wsc-usertype-list { flex-direction:column; } .wsc-role-picker-tabs .wsc-usertype-card { width:100%; } }
.wsc-add-university-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--wsc-accent)}
.wsc-add-university-heading{margin:2px 0 0;font-size:26px;font-weight:800;color:var(--wsc-text);letter-spacing:-.01em}
@media (max-width:640px){.wsc-add-university-intro{align-items:flex-start;flex-wrap:wrap}.wsc-add-university-intro-actions{width:100%;margin-left:0}.wsc-add-university-intro-actions .wsc-btn{flex:1;text-align:center}}

.wsc-add-university-card{
	position:relative;overflow:hidden;
	padding:30px 28px;background:#fff;border:1px solid var(--wsc-border);
	border-radius:var(--wsc-au-radius);box-shadow:var(--wsc-shadow-md);
}
.wsc-add-university-card::before{
	content:"";position:absolute;top:0;left:0;right:0;height:4px;
	background:linear-gradient(90deg,var(--wsc-primary),#7c6cf5 55%,var(--wsc-accent));
}
.wsc-add-university-head{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--wsc-border)}
.wsc-add-university-title{margin:0 0 6px;font-size:21px;font-weight:800;letter-spacing:-.01em}
.wsc-add-university-required-note{display:inline-block;margin-top:10px;font-size:12px;font-weight:600;color:var(--wsc-muted)}
.wsc-required-mark{color:var(--wsc-accent);font-weight:800}

.wsc-add-university .wsc-field-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
.wsc-add-university .wsc-field-grid > .wsc-field-group{grid-column:span 12;min-width:0;margin-bottom:0}
.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-75{grid-column:span 9}
.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-66{grid-column:span 8}
.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-50{grid-column:span 6}
.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-33{grid-column:span 4}
.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-25{grid-column:span 3}
.wsc-add-university .wsc-field-group label{font-size:11.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--wsc-muted)}
.wsc-add-university .wsc-field-group input,
.wsc-add-university .wsc-field-group select,
.wsc-add-university .wsc-field-group textarea{width:100%;box-sizing:border-box;border-radius:10px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.wsc-add-university .wsc-field-group input[type="checkbox"],
.wsc-add-university .wsc-field-group input[type="radio"]{width:16px;height:16px;min-height:0;flex:none;box-sizing:border-box;border-radius:4px}
.wsc-add-university .wsc-courses-option{width:100%}
.wsc-add-university .wsc-field-group input:hover,
.wsc-add-university .wsc-field-group select:hover,
.wsc-add-university .wsc-field-group textarea:hover{border-color:#c9c6e6}
.wsc-add-university .wsc-field-group input:focus,
.wsc-add-university .wsc-field-group select:focus,
.wsc-add-university .wsc-field-group textarea:focus{box-shadow:0 0 0 4px rgba(67,56,202,.12),0 0 0 1px var(--wsc-primary) inset}
.wsc-add-university .wsc-field-type-textarea,
.wsc-add-university .wsc-field-type-courses,
.wsc-add-university .wsc-field-type-image{align-self:stretch}
.wsc-add-university .wsc-courses-toggle{border-radius:10px}
.wsc-add-university .wsc-btn-block{
	margin-top:22px;min-height:48px;font-size:14.5px;border-radius:11px;border:0;
	background:linear-gradient(120deg,var(--wsc-primary),#5b4fd6);
	box-shadow:0 10px 24px rgba(67,56,202,.28);
}
.wsc-add-university .wsc-btn-block:hover{box-shadow:0 12px 28px rgba(67,56,202,.36)}

/* Optional multi-step University Addition Form. */
.wsc-university-step-progress{display:flex;align-items:flex-start;gap:8px;margin:0 0 26px;padding:0;overflow-x:auto;scrollbar-width:thin}
.wsc-university-progress-item{display:flex;align-items:center;gap:8px;min-width:max-content;color:var(--wsc-muted);font-size:12px;transition:.2s ease}
.wsc-university-progress-item:not(:last-child)::after{content:"";width:24px;height:2px;margin-left:3px;background:var(--wsc-border)}
.wsc-university-progress-item>span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--wsc-border);border-radius:50%;background:#fff;font-size:11px;font-weight:800}
.wsc-university-progress-item strong{font-size:12px;font-weight:700}
.wsc-university-progress-item.is-active{color:var(--wsc-primary)}
.wsc-university-progress-item.is-active>span{border-color:var(--wsc-primary);background:var(--wsc-primary);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--wsc-primary) 13%,transparent)}
.wsc-university-progress-item.is-complete{color:#15803d}.wsc-university-progress-item.is-complete>span{border-color:#15803d;background:#15803d;color:#fff}.wsc-university-progress-item.is-complete>span::after{content:"✓"}.wsc-university-progress-item.is-complete>span{font-size:0}.wsc-university-progress-item.is-complete>span::after{font-size:14px}
.wsc-university-form-step{padding:20px;border:1px solid color-mix(in srgb,var(--wsc-primary) 14%,var(--wsc-border));border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--wsc-primary) 3%,#fff),#fff);animation:wscUniversityStepIn .25s ease}
.wsc-university-form-step[hidden]{display:none}.wsc-university-form-step-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 18px}.wsc-university-form-step-title span{color:var(--wsc-primary);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.wsc-university-form-step-title h4{margin:0;color:var(--wsc-text);font-size:18px}
.wsc-university-form-step.is-completed{background:#f8fafc;border-color:#d7dee8}.wsc-university-form-step.is-completed .wsc-field-grid{opacity:.78}.wsc-university-form-step.is-completed input:disabled,.wsc-university-form-step.is-completed select:disabled,.wsc-university-form-step.is-completed textarea:disabled{cursor:not-allowed;background:#f1f5f9;color:var(--wsc-text);-webkit-text-fill-color:var(--wsc-text);opacity:1}
.wsc-university-step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.wsc-university-step-actions [hidden]{display:none}.wsc-university-step-actions [data-wsc-step-next],.wsc-university-step-actions [data-wsc-step-submit]{margin-left:auto}
@keyframes wscUniversityStepIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.wsc-university-step-progress{gap:6px;margin-bottom:20px}.wsc-university-progress-item strong{display:none}.wsc-university-progress-item:not(:last-child)::after{width:18px}.wsc-university-form-step{padding:16px}.wsc-university-step-actions .wsc-btn{flex:1;padding-left:12px;padding-right:12px}.wsc-university-step-actions [data-wsc-step-next],.wsc-university-step-actions [data-wsc-step-submit]{margin-left:0}}

/* Success / error banner */
.wsc-add-university .wsc-form-msg{
	display:none;align-items:flex-start;gap:8px;width:100%;box-sizing:border-box;
	margin-top:14px;padding:12px 14px;border-radius:10px;border-left:3px solid transparent;
	font-size:13px;line-height:1.5;animation:wscMsgIn .25s ease;
}
.wsc-add-university .wsc-form-msg:not(:empty){display:flex}
.wsc-add-university .wsc-form-msg.success{background:#f0fbf4;border-color:#15803d;color:#166534}
.wsc-add-university .wsc-form-msg.error{background:#fef2f2;border-color:#dc2626;color:#b91c1c}
@keyframes wscMsgIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

@media (max-width:800px){
	.wsc-add-university .wsc-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.wsc-add-university .wsc-field-grid > .wsc-field-group,
	.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-75,
	.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-66,
	.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-50,
	.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-33,
	.wsc-add-university .wsc-field-grid > .wsc-field-group.wsc-field-w-25{grid-column:span 2}
	.wsc-add-university-card{padding:22px 18px}
}
/* Saving-state indicator for AJAX save buttons (spinner + dimmed label) */
.wsc-btn.wsc-is-saving,
.wsc-btn-icon.wsc-is-saving {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: #fff !important;
	pointer-events: none;
	opacity: .85;
}
.wsc-btn.wsc-is-saving::after,
.wsc-btn-icon.wsc-is-saving::after {
	content: "";
	position: static;
	display: block;
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	margin: 0;
	border: 2px solid rgba(255, 255, 255, .45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: wsc-spin .6s linear infinite;
}
.wsc-btn-outline.wsc-is-saving::after {
	border-color: rgba(67, 56, 202, .3);
	border-top-color: var(--wsc-primary, #4338ca);
}
.wsc-btn-outline.wsc-is-saving { color: var(--wsc-primary, #4338ca) !important; }
@keyframes wsc-spin {
	to { transform: rotate(360deg); }
}
.wsc-form-msg {
	transition: opacity .3s ease;
}

/* Custom booking-question radio/checkbox options (Settings -> Booking
   Form Fields -> Custom Questions). Reuses the existing field-group input
   sizing above, just adds the row layout for multiple choices. */
.wsc-cf-radio-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.wsc-cf-radio-option,
.wsc-cf-checkbox-option {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--wsc-text);
	cursor: pointer;
}
.wsc-cf-radio-option input,
.wsc-cf-checkbox-option input {
	width: 16px;
	height: 16px;
	min-height: 0;
}

/* ==========================================================================
   PREMIUM UI/UX UPGRADE
   Student directory cards, University directory cards, and the Booking
   form widget. Purely visual — no markup/class changes required, so this
   layers safely on top of everything above.
   ========================================================================== */

/* ---------- shared premium tokens ---------- */
:root{
	--wsc-p-gold: #c9a227;
	--wsc-p-violet: #7c6cf5;
	--wsc-p-ring: 0 0 0 4px #fff, 0 0 0 6px rgba(67,56,202,.14);
	--wsc-p-shadow-rest: 0 1px 2px rgba(30,20,70,.04), 0 10px 24px -12px rgba(40,30,110,.16);
	--wsc-p-shadow-hover: 0 8px 16px -6px rgba(40,30,110,.18), 0 28px 48px -20px rgba(40,30,110,.32);
}

/* =========================================================
   1) STUDENT DIRECTORY — premium provider cards & rows
   ========================================================= */
.wsc-providers-grid{ gap: 26px; }

.wsc-provider-card{
	position: relative;
	border-radius: 20px;
	padding: 30px 22px 24px;
	background:
		radial-gradient(120% 90% at 50% -10%, rgba(124,108,245,.10) 0%, rgba(124,108,245,0) 55%),
		linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%);
	border: 1px solid #ece9fb;
	box-shadow: var(--wsc-p-shadow-rest);
	transition: transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s ease, border-color .22s ease;
}
.wsc-provider-card::before{
	height: 4px;
	background: linear-gradient(90deg, var(--wsc-primary), var(--wsc-p-violet) 50%, var(--wsc-p-gold));
	background-size: 200% 100%;
	transition: background-position .5s ease;
}
.wsc-provider-card:hover::before{ background-position: 100% 0; }
.wsc-provider-card:hover,
.wsc-provider-row:hover{
	transform: translateY(-7px);
	box-shadow: var(--wsc-p-shadow-hover);
	border-color: #d8d2fb;
}
.wsc-provider-avatar{
	width: 96px;
	height: 96px;
	box-shadow: var(--wsc-p-ring), 0 10px 22px -6px rgba(67,56,202,.30);
	transition: transform .25s ease, box-shadow .25s ease;
}
.wsc-provider-card:hover .wsc-provider-avatar{
	transform: scale(1.045);
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(67,56,202,.28), 0 14px 26px -6px rgba(67,56,202,.38);
}
.wsc-provider-name{
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -.01em;
}
.wsc-provider-bio{ font-size: 13.5px; }

/* badges: verified / featured / plan pills get a premium tint treatment */
.wsc-provider-quick-meta .wsc-badge,
.wsc-provider-card .wsc-badge,
.wsc-provider-row .wsc-badge{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 11px;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .01em;
	background: linear-gradient(135deg, #eef0fd, #f5f0ff);
	color: var(--wsc-primary);
	border: 1px solid #e3e0fb;
}
.wsc-provider-quick-meta span:has(+ span),
.wsc-provider-quick-meta span{ box-shadow: none; }

/* availability indicator — soft glow + pulse when available */
.wsc-avail-indicator{
	padding: 4px 11px 4px 9px;
	border-radius: 999px;
	background: #f8f8fc;
	border: 1px solid var(--wsc-border);
	font-size: 11.5px;
	font-weight: 800;
}
.wsc-avail-available{ background: #eafcf1; border-color: #cdf3dc; color: #157a3d; }
.wsc-avail-busy{ background: #fef8e8; border-color: #f6e5b4; color: #92650a; }
.wsc-avail-offline{ background: #fdeeee; border-color: #f6d0d0; color: #b3261e; }
.wsc-avail-available .wsc-avail-dot{
	box-shadow: 0 0 0 3px rgba(34,197,94,.22);
	animation: wscAvailPulse 1.8s ease-in-out infinite;
}
@keyframes wscAvailPulse{
	0%, 100% { box-shadow: 0 0 0 3px rgba(34,197,94,.22); }
	50% { box-shadow: 0 0 0 6px rgba(34,197,94,.10); }
}

/* service price chip — richer gradient */
.wsc-provider-service-price{
	background: linear-gradient(135deg, #eef0fd, #f7f0ff);
	border: 1px solid #e3e0fb;
	color: var(--wsc-primary-dark);
	font-weight: 800;
}

/* CTAs — gradient primary with a subtle shine sweep on hover */
.wsc-provider-card .wsc-btn-primary,
.wsc-provider-row-btn.wsc-btn-primary,
.wsc-university-card-cta.wsc-btn-primary{
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	border-color: transparent;
	box-shadow: 0 8px 18px -6px rgba(67,56,202,.45);
}
.wsc-provider-card .wsc-btn-primary:hover,
.wsc-provider-row-btn.wsc-btn-primary:hover,
.wsc-university-card-cta.wsc-btn-primary:hover{
	background: linear-gradient(135deg, var(--wsc-primary-dark), var(--wsc-primary));
	box-shadow: 0 10px 22px -6px rgba(67,56,202,.55);
}
.wsc-provider-card .wsc-btn-primary::after,
.wsc-university-card-cta.wsc-btn-primary::after{
	content: "";
	position: absolute;
	top: 0; left: -60%;
	width: 40%; height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
	transform: skewX(-20deg);
	transition: left .5s ease;
}
.wsc-provider-card .wsc-btn-primary:hover::after,
.wsc-university-card-cta.wsc-btn-primary:hover::after{ left: 130%; }
.wsc-provider-profile-btn,
.wsc-university-student-profile-btn{
	border-color: #d7dcff;
	background: #fbfbff;
	font-weight: 700;
}
.wsc-provider-profile-btn:hover,
.wsc-university-student-profile-btn:hover{
	background: #f2f4ff;
	border-color: var(--wsc-primary);
}

/* list / row view — refined "premium row" card */
.wsc-providers-list .wsc-provider-row{
	border-radius: 18px;
	border-color: #ece9fb;
	background: linear-gradient(135deg, #ffffff 0%, #fbfbfe 100%);
	box-shadow: var(--wsc-p-shadow-rest);
}
.wsc-providers-list .wsc-provider-row-avatar{
	box-shadow: var(--wsc-p-ring);
}

/* =========================================================
   2) UNIVERSITY DIRECTORY — premium cards
   ========================================================= */
.wsc-university-grid{ gap: 26px; }

.wsc-university-card{
	border-radius: 20px;
	padding: 26px 22px 22px;
	background:
		radial-gradient(120% 90% at 50% -10%, rgba(201,162,39,.08) 0%, rgba(201,162,39,0) 55%),
		linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%);
	border-color: #ece9fb;
	box-shadow: var(--wsc-p-shadow-rest);
	transition: transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s ease, border-color .22s ease;
}
.wsc-university-card::before{
	height: 4px;
	background: linear-gradient(90deg, var(--wsc-primary), var(--wsc-p-violet) 50%, var(--wsc-p-gold));
}
.wsc-university-card:hover{
	transform: translateY(-7px);
	box-shadow: var(--wsc-p-shadow-hover);
	border-color: #d8d2fb;
}
.wsc-university-avatar{
	box-shadow: var(--wsc-p-ring), 0 10px 22px -6px rgba(67,56,202,.28);
	transition: transform .25s ease, box-shadow .25s ease;
}
.wsc-university-card:hover .wsc-university-avatar{
	transform: scale(1.05);
}
.wsc-university-logo-img{ box-shadow: var(--wsc-p-ring); border: none; }
.wsc-university-name{
	font-size: 16px;
	font-weight: 800;
	letter-spacing: -.005em;
}
.wsc-university-card-meta .wsc-badge{
	background: linear-gradient(135deg, #eef0fd, #f5f0ff);
	border: 1px solid #e3e0fb;
	color: var(--wsc-primary-dark);
	font-weight: 800;
}
.wsc-badge-verified{
	background: linear-gradient(135deg, #e6f7ec, #ecfbf3) !important;
	color: #157a3d !important;
	border: 1px solid #c9f0da;
}
.wsc-university-card-courses{ font-size: 12.5px; }

/* university search bar */
.wsc-university-search input,
.wsc-university-search select{
	border-radius: 10px;
	background: #fff;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.wsc-university-search input:hover,
.wsc-university-search select:hover{ border-color: #c9c6e6; }
.wsc-add-university-cta.wsc-btn-primary{
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	border-color: transparent;
	box-shadow: 0 8px 18px -6px rgba(67,56,202,.45);
}

/* university detail hero + student roster cards */
.wsc-university-detail-hero{
	border-radius: 20px;
	background: linear-gradient(135deg, #ffffff 0%, #f7f7ff 55%, #fffaf0 100%);
	box-shadow: var(--wsc-p-shadow-rest);
}
.wsc-university-avatar-lg{ box-shadow: var(--wsc-p-ring), 0 10px 22px -6px rgba(67,56,202,.28); }
.wsc-university-chip.is-active{
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	border-color: transparent;
	box-shadow: 0 6px 14px -4px rgba(67,56,202,.4);
}

.wsc-university-student-card{
	position: relative;
	overflow: hidden;
	border-radius: 18px;
	padding: 24px 18px;
	background: linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%);
	border-color: #ece9fb;
	box-shadow: var(--wsc-p-shadow-rest);
	transition: transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s ease, border-color .22s ease;
}
.wsc-university-student-card::before{
	content: "";
	position: absolute; inset: 0 0 auto; height: 4px;
	background: linear-gradient(90deg, var(--wsc-primary), var(--wsc-p-violet) 50%, var(--wsc-p-gold));
}
.wsc-university-student-card:hover{
	transform: translateY(-6px);
	box-shadow: var(--wsc-p-shadow-hover);
	border-color: #d8d2fb;
}
.wsc-university-student-avatar{
	width: 80px; height: 80px;
	box-shadow: var(--wsc-p-ring);
	transition: transform .25s ease;
}
.wsc-university-student-card:hover .wsc-university-student-avatar{ transform: scale(1.05); }
.wsc-university-student-name{ font-size: 15.5px; font-weight: 800; letter-spacing: -.005em; }
.wsc-university-student-actions .wsc-btn-primary{
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	border-color: transparent;
}

/* =========================================================
   3) BOOKING FORM — premium redesign
   ========================================================= */
.wsc-booking-widget{
	border-radius: 20px;
	border-color: #ece9fb;
	box-shadow: 0 1px 2px rgba(30,20,70,.05), 0 24px 60px -24px rgba(40,30,110,.35);
}
.wsc-booking-widget-header{
	position: relative;
	overflow: hidden;
	padding: 32px 32px 26px;
	background:
		radial-gradient(70% 140% at 100% 0%, rgba(201,162,39,.12) 0%, rgba(201,162,39,0) 60%),
		radial-gradient(60% 140% at 0% 0%, rgba(124,108,245,.14) 0%, rgba(124,108,245,0) 60%),
		linear-gradient(135deg, #ffffff 0%, #f6f7ff 55%, #fff9e9 100%);
}
.wsc-booking-widget-header::after{
	content: "";
	position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
	background: linear-gradient(90deg, var(--wsc-primary), var(--wsc-p-violet) 50%, var(--wsc-p-gold));
}
.wsc-booking-widget-header h2{
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -.01em;
	background: linear-gradient(120deg, var(--wsc-text) 40%, var(--wsc-primary));
	-webkit-background-clip: text;
	background-clip: text;
}

/* step labels — numbered pill with connecting rail */
.wsc-booking-col{ position: relative; padding: 28px 24px; }
.wsc-step-label{
	font-size: 11.5px;
	letter-spacing: .06em;
}
.wsc-step-num{
	width: 26px; height: 26px;
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	box-shadow: 0 4px 10px -2px rgba(67,56,202,.5);
	font-weight: 800;
}
.wsc-booking-col:not(:last-child)::after{
	content: "";
	position: absolute;
	top: 42px; right: 0;
	width: 1px; height: calc(100% - 60px);
	background: linear-gradient(180deg, var(--wsc-border), transparent 90%);
}

.wsc-provider-info-box,
.wsc-service-summary{
	border-radius: 14px;
	border-color: #ece9fb;
	background: linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%);
}
.wsc-provider-info-avatar{ box-shadow: var(--wsc-p-ring); }

/* calendar */
.wsc-calendar-header{
	padding: 4px 0 12px;
}
#wsc-cal-title{ font-weight: 800; letter-spacing: -.01em; }
.wsc-cal-nav{
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, color .18s ease;
}
.wsc-cal-nav:hover{
	transform: translateY(-1px);
	border-color: var(--wsc-primary);
	box-shadow: 0 6px 14px -4px rgba(67,56,202,.3);
}
.wsc-cal-day{
	border-radius: 12px;
	transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.wsc-day-available{
	background: linear-gradient(180deg, #f5f6ff, #eef0fd);
}
.wsc-day-available:hover{
	transform: translateY(-2px);
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	box-shadow: 0 8px 16px -4px rgba(67,56,202,.45);
}
.wsc-day-selected{
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet)) !important;
	box-shadow: 0 8px 18px -4px rgba(67,56,202,.5);
	transform: translateY(-1px);
}

/* time slots */
.wsc-slots-list{ gap: 12px; }
.wsc-slot-btn{
	border-radius: 12px;
	font-weight: 700;
	transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.wsc-slot-btn:hover{
	transform: translateY(-2px);
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	box-shadow: 0 8px 16px -4px rgba(67,56,202,.4);
}
.wsc-slot-selected{
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet)) !important;
	box-shadow: 0 8px 18px -4px rgba(67,56,202,.45);
}

/* booking summary card */
.wsc-booking-summary{
	border-radius: 16px;
	border-color: #ece9fb;
	box-shadow: 0 1px 2px rgba(30,20,70,.04), 0 16px 34px -16px rgba(40,30,110,.28);
}
.wsc-booking-summary::before{ width: 5px; }
.wsc-summary-price{ font-size: 26px; }

/* payment method cards */
.wsc-payment-methods{ gap: 14px; }
.wsc-pay-option{
	border-radius: 14px;
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.wsc-pay-option:hover{
	transform: translateY(-2px);
	border-color: #d7dcff;
	box-shadow: var(--wsc-p-shadow-rest);
}
.wsc-pay-option:has(input:checked){
	border-color: var(--wsc-primary);
	background: linear-gradient(180deg, #ffffff 0%, #f5f6ff 100%);
	box-shadow: 0 0 0 3px rgba(67,56,202,.12), var(--wsc-p-shadow-rest);
}
.wsc-pay-icon{
	background: linear-gradient(135deg, #eef0fd, #f5f0ff);
}

/* section heading + submit CTA */
.wsc-booking-form-section{ padding: 30px 32px 32px; }
.wsc-booking-form-section h3{
	font-weight: 800;
	letter-spacing: -.01em;
}
.wsc-booking-form-section .wsc-btn-primary,
#wsc-booking-submit,
.wsc-booking-widget button[type="submit"]{
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wsc-primary), var(--wsc-p-violet));
	border-color: transparent;
	font-weight: 800;
	letter-spacing: .01em;
	box-shadow: 0 10px 22px -6px rgba(67,56,202,.5);
}
.wsc-booking-form-section .wsc-btn-primary:hover,
#wsc-booking-submit:hover,
.wsc-booking-widget button[type="submit"]:hover{
	background: linear-gradient(135deg, var(--wsc-primary-dark), var(--wsc-primary));
	box-shadow: 0 14px 28px -8px rgba(67,56,202,.6);
}

@media (max-width: 900px){
	.wsc-booking-col:not(:last-child)::after{ display: none; }
}

/* ==========================================================================
   ROUND 2 — Overview timeline, friendly empty states, dark mode,
   and animated skeleton/spinner loaders.
   ========================================================================== */

/* ---------- 1) Timeline-style booking items (Overview + My Bookings) ---------- */
.wsc-timeline{ position: relative; display: flex; flex-direction: column; gap: 16px; }
.wsc-timeline::before{
	content: "";
	position: absolute;
	left: 48px; top: 6px; bottom: 6px;
	width: 2px;
	background: linear-gradient(180deg, #d7d2fb 0%, transparent 96%);
}
.wsc-booking-item:has(.wsc-timeline-date-badge){
	position: relative;
	padding-left: 108px;
}
.wsc-timeline-date-badge{
	position: absolute;
	left: 22px; top: 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 56px; height: 60px;
	border-radius: 14px;
	background: linear-gradient(160deg, #ffffff, #f5f6ff);
	border: 1px solid #e3e0fb;
	box-shadow: var(--wsc-p-shadow-rest, 0 6px 16px -8px rgba(40,30,110,.25));
	z-index: 1;
}
.wsc-timeline-date-month{
	font-size: 10.5px; font-weight: 800; letter-spacing: .08em;
	text-transform: uppercase; color: var(--wsc-primary);
}
.wsc-timeline-date-day{ font-size: 22px; font-weight: 800; color: var(--wsc-text); line-height: 1.15; }

/* grid view: badge tucks into the corner instead, no rail line */
.wsc-my-bookings-view-grid .wsc-timeline::before{ display: none; }
.wsc-my-bookings-view-grid .wsc-booking-item:has(.wsc-timeline-date-badge){
	padding-left: 20px;
	padding-top: 70px;
}
.wsc-my-bookings-view-grid .wsc-timeline-date-badge{
	left: auto; right: 16px; top: 16px;
	width: 46px; height: 50px;
	border-radius: 12px;
}
.wsc-my-bookings-view-grid .wsc-timeline-date-day{ font-size: 18px; }

@media (max-width: 480px){
	.wsc-timeline::before{ left: 40px; }
	.wsc-booking-item:has(.wsc-timeline-date-badge){ padding-left: 90px; }
	.wsc-timeline-date-badge{ left: 14px; width: 48px; height: 52px; }
	.wsc-timeline-date-day{ font-size: 18px; }
}

/* ---------- 2) Friendly illustrated empty states ---------- */
.wsc-empty-state{
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 14px;
	padding: 52px 32px;
	border: 1px dashed #dcd8f7;
	border-radius: 18px;
	background: linear-gradient(180deg, #fbfbfe 0%, #f7f7fd 100%);
}
.wsc-empty-state-grid-span{ grid-column: 1 / -1; }
.wsc-empty-state-compact{ padding: 28px 20px; }
.wsc-empty-state-icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px; height: 64px;
	border-radius: 999px;
	background: linear-gradient(135deg, rgba(67,56,202,.10), rgba(201,162,39,.14));
	color: var(--wsc-primary);
}
.wsc-empty-state-icon svg{ width: 28px; height: 28px; }
/* Bigger illustrated SVGs (empty calendar / no-results search) used on the
   most prominent empty states — see my-bookings.php, providers-list.php and
   customer-dashboard.php. Flat shapes only (no gradients/defs/ids) so the
   markup is safe to render more than once on the same page. */
.wsc-empty-illustration{ display: block; width: 132px; height: 132px; margin: 0 auto 2px; }
.wsc-empty-state-compact .wsc-empty-illustration{ width: 100px; height: 100px; }
.wsc-empty-state-title{ margin: 2px 0 0; font-size: 16px; font-weight: 800; color: var(--wsc-text); }
.wsc-empty-state-text{ margin: 0; max-width: 360px; font-size: 13.5px; color: var(--wsc-muted); line-height: 1.55; }
.wsc-empty-state .wsc-btn{ margin-top: 6px; }

.wsc-btn.wsc-is-saving{ cursor: progress; opacity: .92; gap: 8px; }

/* Service-specific availability overview on the Existing Student dashboard. */
.wsc-service-availability-summary-list{display:grid;gap:10px}
.wsc-service-availability-summary-item{padding:13px 14px;border:1px solid var(--wsc-border);border-radius:12px;background:#fff}
.wsc-service-availability-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wsc-service-availability-summary-item p{margin:7px 0 0;color:var(--wsc-text-muted);font-size:.9rem;line-height:1.55}
.wsc-service-availability-summary-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.wsc-service-availability-summary-actions .wsc-btn{min-height:36px;padding:7px 11px;font-size:.84rem}
@media(max-width:520px){.wsc-service-availability-summary-head{align-items:flex-start;flex-direction:column;gap:7px}.wsc-service-availability-summary-item{padding:12px}.wsc-service-availability-summary-actions .wsc-btn{width:100%;justify-content:center}}

/* ---------- 4) Skeleton shimmer placeholders (calendar / slots while loading) ---------- */
@keyframes wscShimmer{
	0%   { background-position: -220px 0; }
	100% { background-position: 220px 0; }
}
.wsc-skeleton{
	background: linear-gradient(90deg, #ece9fb 25%, #f6f5ff 37%, #ece9fb 63%);
	background-size: 440px 100%;
	animation: wscShimmer 1.4s ease-in-out infinite;
	border-color: transparent !important;
	cursor: default;
	pointer-events: none;
}
.wsc-cal-day-skeleton{ box-shadow: none; }
.wsc-slot-skeleton{ min-height: 40px; }

/* ---------- 5) Dark mode ---------- */
html[data-wsc-theme="dark"]{
	--wsc-primary: #8b7cf6;
	--wsc-primary-dark: #6f5fe0;
	--wsc-accent: #e8c766;
	--wsc-border: #33344a;
	--wsc-text: #edeefb;
	--wsc-muted: #a5a6c4;
	--wsc-shadow: 0 2px 10px rgba(0,0,0,.4);
	--wsc-shadow-md: 0 16px 36px rgba(0,0,0,.55);
	color-scheme: dark;
}
html[data-wsc-theme="dark"] :is(
	.wsc-booking-widget,
	.wsc-dashboard, .wsc-dash-card,
	.wsc-my-bookings,
	.wsc-provider-card, .wsc-provider-row,
	.wsc-university-card, .wsc-university-student-card,
	.wsc-booking-item, .wsc-empty-state,
	.wsc-service-summary, .wsc-provider-info-box,
	.wsc-booking-summary, .wsc-pay-option,
	.wsc-add-university-card, .wsc-university-detail-hero,
	.wsc-university-detail-grid div,
	.wsc-provider-profile-dialog,
	.wsc-qr-card, .wsc-booking-success,
	.wsc-become-provider, .wsc-membership-page
){
	background: linear-gradient(180deg, #1c1d2c 0%, #16172280 100%), #181927;
	border-color: var(--wsc-border);
	color: var(--wsc-text);
}
html[data-wsc-theme="dark"] .wsc-booking-widget-header{
	background: linear-gradient(135deg, #1c1d2c 0%, #211f38 55%, #221d2a 100%);
	border-bottom-color: var(--wsc-border);
}
html[data-wsc-theme="dark"] .wsc-booking-form-section{
	background: #16172a;
	border-top-color: var(--wsc-border);
}
html[data-wsc-theme="dark"] :is(.wsc-field-group input, .wsc-field-group select, .wsc-field-group textarea,
	.wsc-university-search input, .wsc-university-search select,
	.wsc-exception-form input, .wsc-provider-status-select){
	background: #20212f;
	border-color: var(--wsc-border);
	color: var(--wsc-text);
}
html[data-wsc-theme="dark"] .wsc-field-group input:disabled{ background: #191a26; }
html[data-wsc-theme="dark"] .wsc-btn{
	background: #20212f;
	border-color: var(--wsc-border);
	color: var(--wsc-text);
}
html[data-wsc-theme="dark"] .wsc-btn-primary{ color: #fff; }
html[data-wsc-theme="dark"] .wsc-btn-outline{ background: transparent; }
html[data-wsc-theme="dark"] .wsc-cal-day{ background: #20212f; border-color: var(--wsc-border); color: var(--wsc-text); }
html[data-wsc-theme="dark"] .wsc-avail-cal-day{ background: #20212f; border-color: var(--wsc-border); color: var(--wsc-text); }
html[data-wsc-theme="dark"] .wsc-avail-cal-day.is-closed{ background: #191a26; }
html[data-wsc-theme="dark"] .wsc-day-available{ background: linear-gradient(180deg, #262842, #1f2036); }
html[data-wsc-theme="dark"] .wsc-day-disabled{ background: #191a26; color: #55566f; }
html[data-wsc-theme="dark"] .wsc-slot-btn{ background: #20212f; border-color: var(--wsc-border); color: var(--wsc-text); }
html[data-wsc-theme="dark"] :is(.wsc-badge, .wsc-provider-service-price, .wsc-avail-indicator,
	.wsc-provider-quick-meta span, .wsc-provider-extra-chips div){
	background: #262842;
	border-color: var(--wsc-border);
	color: var(--wsc-text);
}
html[data-wsc-theme="dark"] .wsc-empty-state{
	background: linear-gradient(180deg, #1c1d2c, #16172280), #181927;
	border-color: var(--wsc-border);
}
html[data-wsc-theme="dark"] .wsc-empty-state-icon{
	background: linear-gradient(135deg, rgba(139,124,246,.25), rgba(232,199,102,.18));
}
html[data-wsc-theme="dark"] .wsc-empty-illustration .wsc-eil-panel{
	fill: #1c1d2c;
}
html[data-wsc-theme="dark"] .wsc-skeleton{
	background: linear-gradient(90deg, #20212f 25%, #2a2c42 37%, #20212f 63%);
	background-size: 440px 100%;
}
html[data-wsc-theme="dark"] .wsc-timeline-date-badge{
	background: linear-gradient(160deg, #20212f, #191a26);
	border-color: var(--wsc-border);
}
html[data-wsc-theme="dark"] .wsc-timeline::before{
	background: linear-gradient(180deg, var(--wsc-border) 0%, transparent 96%);
}
html[data-wsc-theme="dark"] :is(.wsc-thankyou-modal-overlay, .wsc-provider-profile-backdrop){
	background: rgba(0,0,0,.72);
}
html[data-wsc-theme="dark"] :is(.wsc-thankyou-modal, .wsc-provider-profile-modal .wsc-provider-profile-dialog){
	background: #1c1d2c;
	color: var(--wsc-text);
}
html[data-wsc-theme="dark"] .wsc-hint{ color: var(--wsc-muted); }

/* ---------- 6) Floating dark-mode toggle ---------- */
.wsc-theme-toggle{
	position: fixed;
	right: 20px; bottom: 20px;
	z-index: 999;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border: none;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--wsc-primary, #4338ca), var(--wsc-p-violet, #7c6cf5));
	color: #fff;
	cursor: pointer;
	box-shadow: 0 10px 24px -8px rgba(67,56,202,.55);
	transition: transform .2s ease, box-shadow .2s ease;
}
.wsc-theme-toggle:hover{ transform: translateY(-2px) scale(1.04); box-shadow: 0 14px 30px -8px rgba(67,56,202,.6); }
.wsc-theme-toggle svg{ width: 22px; height: 22px; }
@media (max-width: 640px){
	.wsc-theme-toggle{ right: 14px; bottom: 14px; width: 44px; height: 44px; }
	.wsc-theme-toggle svg{ width: 20px; height: 20px; }
}

/* ==========================================================================
   Notification bell (provider & customer dashboard header) — shared classes,
   used by both public/views/provider-dashboard.php and
   public/views/customer-dashboard.php.
   ========================================================================== */
.wsc-dash-header-actions {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-left: auto;
	flex: none;
}
.wsc-notif-bell-wrap {
	position: relative;
}
.wsc-push-toggle-wrap {
	position: relative;
}
.wsc-push-toggle-wrap[hidden] {
	display: none;
}
.wsc-push-gear-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff !important;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.wsc-push-gear-btn:hover {
	background: rgba(255, 255, 255, .18);
	transform: translateY(-1px);
}
.wsc-push-gear-icon {
	display: inline-block;
	width: 20px;
	height: 20px;
	background-color: #ffffff;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.6-.22l-2.39.96a7.1 7.1 0 0 0-1.62-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54c-.59.24-1.13.56-1.62.94l-2.39-.96a.5.5 0 0 0-.6.22L2.72 8.84a.5.5 0 0 0 .12.64l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32c.14.24.4.32.6.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.26.42.5.42h3.84c.24 0 .46-.18.5-.42l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.24.1.5 0 .6-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58zM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.6-.22l-2.39.96a7.1 7.1 0 0 0-1.62-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54c-.59.24-1.13.56-1.62.94l-2.39-.96a.5.5 0 0 0-.6.22L2.72 8.84a.5.5 0 0 0 .12.64l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32c.14.24.4.32.6.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.26.42.5.42h3.84c.24 0 .46-.18.5-.42l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.24.1.5 0 .6-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58zM12 15.5A3.5 3.5 0 1 1 12 8.5a3.5 3.5 0 0 1 0 7z'/></svg>");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}
.wsc-push-popover {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	width: 240px;
	max-width: 80vw;
	padding: 12px 14px;
	border: 1px solid var(--wsc-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 40px rgba(20, 15, 60, .22);
}
.wsc-push-popover[hidden] {
	display: none;
}
.wsc-push-popover-label {
	font-size: 13px;
	font-weight: 600;
	color: #1f2333;
	line-height: 1.3;
}
.wsc-toggle-switch {
	position: relative;
	flex: none;
	width: 46px;
	height: 26px;
	padding: 0;
	border: none;
	border-radius: 999px;
	background: #dfe1ea;
	box-shadow: inset 0 1px 2px rgba(15, 12, 40, .12);
	cursor: pointer;
	transition: background .2s ease, box-shadow .2s ease;
}
.wsc-toggle-switch .wsc-toggle-knob {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 5px rgba(15, 12, 40, .28), 0 0 0 1px rgba(15, 12, 40, .03);
	transition: transform .2s cubic-bezier(.4, 0, .2, 1);
}
.wsc-toggle-switch:hover {
	background: #d2d5e2;
}
.wsc-toggle-switch:focus-visible {
	outline: 2px solid #4338ca;
	outline-offset: 2px;
}
.wsc-toggle-switch[data-state="on"] {
	background: linear-gradient(135deg, #4ade80, #22c55e);
	box-shadow: inset 0 1px 2px rgba(0, 60, 20, .15), 0 0 0 3px rgba(74, 222, 128, .18);
}
.wsc-toggle-switch[data-state="on"]:hover {
	background: linear-gradient(135deg, #3fd374, #1eb954);
}
.wsc-toggle-switch[data-state="on"] .wsc-toggle-knob {
	transform: translateX(20px);
}
.wsc-toggle-switch:disabled {
	opacity: .55;
	cursor: default;
	box-shadow: none;
}
.wsc-toggle-switch:disabled:hover {
	background: #dfe1ea;
}
.wsc-notif-bell {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff !important;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.wsc-notif-bell:hover {
	background: rgba(255, 255, 255, .18);
	transform: translateY(-1px);
}
.wsc-notif-bell svg {
	display: none;
}
.wsc-notif-bell-icon {
	display: inline-block;
	width: 20px;
	height: 20px;
	background-color: #ffffff;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a6 6 0 0 0-6 6v3.59c0 .53-.21 1.04-.59 1.41L4 14.41V16h16v-1.59L18.59 13c-.38-.37-.59-.88-.59-1.41V8a6 6 0 0 0-6-6zm0 20a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a6 6 0 0 0-6 6v3.59c0 .53-.21 1.04-.59 1.41L4 14.41V16h16v-1.59L18.59 13c-.38-.37-.59-.88-.59-1.41V8a6 6 0 0 0-6-6zm0 20a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22z'/></svg>");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}
.wsc-notif-badge {
	position: absolute;
	top: -4px;
	right: -4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border: 2px solid #211d54;
	border-radius: 999px;
	background: #dc2626;
	color: #fff;
	font-size: 10px;
	font-weight: 800;
	line-height: 1;
}
.wsc-notif-dropdown {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	width: 320px;
	max-width: 90vw;
	overflow: hidden;
	border: 1px solid var(--wsc-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 40px rgba(20, 15, 60, .22);
}
.wsc-notif-dropdown-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 14px;
	border-bottom: 1px solid var(--wsc-border);
	font-weight: 800;
	font-size: 13px;
	color: var(--wsc-text);
}
.wsc-notif-mark-all {
	border: none;
	background: none;
	padding: 0;
	color: var(--wsc-primary);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}
.wsc-notif-mark-all:hover { text-decoration: underline; }
.wsc-notif-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin-left: 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--wsc-text);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.wsc-notif-close:hover,
.wsc-notif-close:focus { background: #f1f0fa; color: var(--wsc-primary); }
.wsc-notif-list {
	max-height: 340px;
	overflow-y: auto;
}
.wsc-notif-empty {
	margin: 0;
	padding: 20px 14px;
	text-align: center;
}
.wsc-notif-item {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 11px 14px;
	border-bottom: 1px solid var(--wsc-border);
	cursor: pointer;
	transition: background .15s ease;
}
.wsc-notif-item:last-child { border-bottom: none; }
.wsc-notif-item:hover { background: #f7f7fd; }
.wsc-notif-item strong {
	font-size: 13px;
	color: var(--wsc-text);
}
.wsc-notif-item span {
	font-size: 12.5px;
	color: var(--wsc-muted);
}
.wsc-notif-item small {
	margin-top: 2px;
	color: var(--wsc-muted);
	font-size: 11px;
}
.wsc-notif-item.wsc-notif-unread {
	background: #eef0fd;
	position: relative;
}
.wsc-notif-item.wsc-notif-unread::before {
	content: "";
	position: absolute;
	top: 14px;
	left: 5px;
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: var(--wsc-primary);
}
.wsc-notif-item.wsc-notif-unread strong { padding-left: 10px; }
.wsc-registration-discount-notice {
	margin: 10px 0 0;
	padding: 10px 12px;
	border: 1px solid #c9c3ff;
	border-radius: 9px;
	background: #f4f3ff;
	color: #312e81;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.45;
}

/* ==========================================================================
   Provider "Your Bookings" bulk actions + quick Approve/Reject
   ========================================================================== */
.wsc-bulk-bar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 12px;
}
.wsc-bulk-bar .wsc-bulk-action-select {
	min-width: 190px;
}
.wsc-bulk-bar .wsc-bulk-count {
	color: var(--wsc-muted);
	font-size: 12px;
}
.wsc-bulk-bar .wsc-bulk-msg {
	font-size: 12px;
	font-weight: 700;
}
.wsc-bulk-bar .wsc-bulk-msg.wsc-bulk-msg-error { color: #b91c1c; }
.wsc-bulk-bar .wsc-bulk-msg.wsc-bulk-msg-success { color: #15803d; }
.wsc-check-col { width: 28px; }
.wsc-booking-actions-cell {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.wsc-provider-approve-booking {
	border-color: #15803d !important;
	color: #15803d !important;
}
.wsc-provider-approve-booking:hover {
	background: #dcfce7 !important;
}
.wsc-provider-reject-booking {
	border-color: #b91c1c !important;
	color: #b91c1c !important;
}
.wsc-provider-reject-booking:hover {
	background: #fee2e2 !important;
}

@media (max-width: 680px) {
	.wsc-dash-header-actions {
		width: 100%;
		margin-left: 0;
		justify-content: flex-end;
	}
	.wsc-notif-dropdown {
		right: -14px;
		width: 280px;
	}
}

/* -- Service reordering: drag handle + up/down arrows ---------------------- */
.wsc-service-item {
	cursor: default;
}
.wsc-service-drag-handle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 20px;
	color: var(--wsc-muted);
	cursor: grab;
	touch-action: none;
}
.wsc-service-drag-handle:active {
	cursor: grabbing;
}
.wsc-service-item.wsc-dragging {
	opacity: .45;
	box-shadow: 0 10px 24px rgba(30, 20, 70, .18);
}
.wsc-move-service-up,
.wsc-move-service-down {
	min-height: 34px;
	min-width: 34px;
	padding: 7px 8px;
	font-size: 15px;
	line-height: 1;
}
.wsc-move-service-up:disabled,
.wsc-move-service-down:disabled {
	opacity: .35;
	cursor: not-allowed;
}

/* -- Payout field live-verification (IFSC lookup / UPI verify) ------------- */
.wsc-payout-verify-row {
	display: flex;
	align-items: center;
	gap: 8px;
}
.wsc-payout-verify-row input {
	flex: 1;
}
.wsc-payout-verify-status {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--wsc-muted);
	min-height: 18px;
}
.wsc-payout-verify-status.success {
	color: #15803d;
}
.wsc-payout-verify-status.error {
	color: #dc2626;
}

/* -- Earnings export toolbar ------------------------------------------------ */
.wsc-export-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
	padding: 12px 14px;
	border: 1px solid var(--wsc-border);
	border-radius: 12px;
	background: #fbfbff;
}
.wsc-export-filter {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--wsc-muted);
}
.wsc-export-filter select {
	padding: 6px 10px;
	border: 1px solid var(--wsc-border);
	border-radius: 8px;
	background: #fff;
	font-size: 13px;
}
.wsc-export-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.wsc-export-actions .wsc-btn:disabled {
	opacity: .5;
	cursor: not-allowed;
}
#wsc-earnings-table th:first-child,
#wsc-earnings-table td:first-child {
	width: 34px;
	text-align: center;
}

@media (max-width: 680px) {
	.wsc-export-toolbar {
		flex-direction: column;
		align-items: stretch;
	}
	.wsc-export-actions {
		justify-content: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wsc-provider-profile-dialog,
	.wsc-provider-profile-backdrop {
		transition: none !important;
	}
}

/* ==========================================================================
   ROUND 3 — Airy spacing pass for the booking widget/calendar.
   Only touches spacing/whitespace (padding, gaps, line-height) plus the
   hard column divider → nothing here changes colors, gradients, or the
   "premium" look from Round 1/2, just gives it more room to breathe.
   ========================================================================== */
.wsc-booking-widget-header {
	padding: 38px 36px 32px;
}
.wsc-booking-widget-header p {
	line-height: 1.6;
}
.wsc-booking-columns {
	gap: 4px;
}
.wsc-booking-col {
	/* The hard border-right (Round 1) plus the soft gradient ::after line
	   (Round 2) stacked two dividers on top of each other — dropping the
	   hard border and keeping only the soft fading line reads lighter. */
	padding: 34px 30px;
	border-right: none;
}
.wsc-step-label {
	margin-bottom: 16px;
}
.wsc-provider-info-box,
.wsc-service-summary {
	margin-top: 14px;
	padding: 16px 18px;
}
.wsc-field-group {
	gap: 8px;
	margin-bottom: 20px;
}
.wsc-calendar-header {
	margin-bottom: 20px;
}
.wsc-calendar-weekdays,
.wsc-calendar-grid {
	gap: 10px;
}
.wsc-calendar-weekdays {
	margin-bottom: 12px;
}
.wsc-booking-right h4 {
	margin: 0 0 20px;
}
.wsc-slots-list {
	gap: 14px;
}
.wsc-booking-form-section {
	padding: 36px 36px 38px;
}
.wsc-booking-form-section h3 {
	margin: 0 0 22px;
}
.wsc-payment-methods {
	gap: 16px;
	margin: 10px 0 0;
}
.wsc-pay-option {
	padding: 14px 16px;
}
.wsc-secure-note {
	margin: 16px 0 0;
}
.wsc-booking-summary {
	margin: 22px 0;
}
@media (max-width: 900px) {
	.wsc-booking-col {
		padding: 28px 24px;
	}
}
@media (max-width: 600px) {
	.wsc-booking-widget-header {
		padding: 28px 22px 24px;
	}
	.wsc-booking-form-section {
		padding: 26px 22px 30px;
	}
}
/* =================================================================
 * REGISTRATION FORM — "Select User Type" step
 * ================================================================= */
.wsc-usertype-card-wrap {
	max-width: 460px;
	margin: 0 auto;
}
.wsc-usertype-heading {
	margin: 0 0 16px;
	font-size: 17px;
	font-weight: 800;
	color: var(--wsc-text);
	text-align: center;
}
.wsc-usertype-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 20px;
}
.wsc-usertype-card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border: 1.5px solid var(--wsc-border);
	border-radius: var(--wsc-radius);
	cursor: pointer;
	background: #fff;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.wsc-usertype-card:hover {
	border-color: #c9c6e6;
}
.wsc-usertype-card.is-selected {
	border-color: var(--wsc-primary);
	background: rgba(67, 56, 202, .05);
	box-shadow: 0 0 0 3px rgba(67, 56, 202, .10);
}
.wsc-usertype-card input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.wsc-usertype-icon {
	flex: none;
	width: var(--wsc-usertype-icon-size, 44px);
	height: var(--wsc-usertype-icon-size, 44px);
	border-radius: var(--wsc-usertype-icon-radius, 50%);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #eef0fb;
}
.wsc-registration-progress {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--wsc-muted);
	text-align: center;
}
.wsc-usertype-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wsc-usertype-icon-emoji {
	font-size: 22px;
	line-height: 1;
}
.wsc-usertype-icon-fallback {
	font-size: 17px;
	font-weight: 800;
	color: var(--wsc-primary);
	text-transform: uppercase;
}
.wsc-usertype-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.wsc-usertype-title {
	font-size: 15.5px;
	font-weight: 700;
	color: var(--wsc-text);
}
.wsc-usertype-desc {
	font-size: 12.5px;
	color: var(--wsc-muted);
}
.wsc-usertype-check {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	color: #fff;
	background: var(--wsc-primary);
	opacity: 0;
	transform: scale(.6);
	transition: opacity .15s ease, transform .15s ease;
}
.wsc-usertype-card.is-selected .wsc-usertype-check {
	opacity: 1;
	transform: scale(1);
}
.wsc-usertype-error {
	margin: -8px 0 14px;
	font-size: 13px;
	color: #dc2626;
	text-align: center;
}
.wsc-usertype-login-hint {
	margin: 14px 0 0;
	font-size: 13.5px;
	color: var(--wsc-muted);
	text-align: center;
}
.wsc-usertype-login-hint a {
	color: var(--wsc-primary);
	font-weight: 700;
	text-decoration: none;
}
.wsc-usertype-login-hint a:hover {
	text-decoration: underline;
}
.wsc-usertype-back {
	display: inline-block;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wsc-primary);
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
}
.wsc-usertype-back:hover {
	text-decoration: underline;
}
.wsc-selected-user-type{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:10px 12px;border:1px solid rgba(67,56,202,.20);border-radius:10px;background:rgba(67,56,202,.055);color:var(--wsc-muted)}
.wsc-selected-user-type[hidden]{display:none!important}
.wsc-selected-user-type span{font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.wsc-selected-user-type strong{padding:4px 9px;border-radius:999px;background:var(--wsc-primary);color:#fff;font-size:13px;line-height:1.2}
@media(max-width:480px){.wsc-selected-user-type{align-items:flex-start;flex-direction:column;gap:7px}.wsc-selected-user-type strong{max-width:100%;overflow-wrap:anywhere}}

/* Fallback (generic) rendering used for role_choice fields outside the
   two-step registration template — e.g. WSC_Profile_Fields::render_field_input(). */
.wsc-role-choice-option {
	display: flex;
	align-items: center;
	gap: 10px;
}
.wsc-role-choice-icon {
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
}
.wsc-role-choice-icon-emoji {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}
.wsc-role-choice-text {
	display: flex;
	flex-direction: column;
	gap: 1px;
}
.wsc-role-choice-desc {
	font-size: 12px;
	color: var(--wsc-muted);
}

/* =====================================================================
 * MANAGE UNIVERSITIES — front-end [wsc_manage_universities] (edit +
 * bulk-edit screen for admins / authorized roles)
 * ===================================================================== */
.wsc-manage-universities { max-width: 1100px; margin: 0 auto; }
.wsc-manage-university-card { margin-bottom: 20px; }
.wsc-manage-university-filter { display: flex; gap: 8px; margin-bottom: 14px; }
.wsc-manage-university-filter input[type="search"] {
	flex: 1;
	max-width: 320px;
}
.wsc-bulk-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 12px 0;
	padding: 10px;
	background: var(--wsc-bg-soft, #f8f9fb);
	border: 1px solid var(--wsc-border);
	border-radius: 8px;
}
.wsc-bulk-bar select,
.wsc-bulk-bar input[type="text"] {
	padding: 6px 8px;
	border: 1px solid var(--wsc-border);
	border-radius: 6px;
}
.wsc-manage-university-table { width: 100%; border-collapse: collapse; }
.wsc-manage-university-table th,
.wsc-manage-university-table td {
	text-align: left;
	padding: 10px 8px;
	border-bottom: 1px solid var(--wsc-border);
	font-size: 13.5px;
}
.wsc-manage-university-table thead th { font-weight: 700; color: var(--wsc-muted); }
.wsc-manage-university-pagination { margin-top: 14px; display: flex; gap: 6px; }
.wsc-manage-university-pagination .page-numbers {
	display: inline-block;
	padding: 6px 10px;
	border: 1px solid var(--wsc-border);
	border-radius: 6px;
	text-decoration: none;
}
.wsc-manage-university-pagination .page-numbers.current {
	background: var(--wsc-accent);
	color: #fff;
	border-color: var(--wsc-accent);
}

/* Front-end University Management: same dashboard visual language. */
.wsc-manage-universities { display:flex; flex-direction:column; gap:20px; max-width:1180px; }
.wsc-manage-university-card { margin:0; padding:0; overflow:hidden; border-radius:16px; }
.wsc-manage-university-card > h3 { margin:0; padding:20px 24px; border-bottom:1px solid var(--wsc-border); background:linear-gradient(135deg,rgba(67,56,202,.08),rgba(124,58,237,.03)); color:var(--wsc-text); font-size:18px; }
.wsc-manage-university-card > form:not(.wsc-manage-university-filter), .wsc-manage-university-card > .wsc-table-scroll { margin:20px 24px; }
.wsc-manage-university-filter { align-items:center; margin:20px 24px 14px; padding:12px; border:1px solid var(--wsc-border); border-radius:12px; background:#fafaff; }
.wsc-manage-university-filter input[type="search"] { min-height:42px; max-width:none; flex:1 1 230px; border:1px solid var(--wsc-border); border-radius:9px; background:#fff; }
.wsc-manage-university-card .wsc-bulk-bar { margin:0; padding:14px; border:1px solid var(--wsc-border); border-radius:12px; background:#fafaff; }
.wsc-manage-university-card .wsc-bulk-bar select, .wsc-manage-university-card .wsc-bulk-bar input[type="text"] { min-height:38px; border-color:var(--wsc-border); border-radius:8px; background:#fff; }
.wsc-manage-university-table { overflow:hidden; border:1px solid var(--wsc-border); border-radius:12px; }
.wsc-manage-university-table thead th { padding:13px 12px; background:#f7f7ff; color:var(--wsc-muted); font-size:11px; letter-spacing:.05em; text-transform:uppercase; }
.wsc-manage-university-table tbody tr { transition:background .16s ease; }
.wsc-manage-university-table tbody tr:hover { background:#faf9ff; }
.wsc-manage-university-table td { padding:14px 12px; }
.wsc-manage-university-table td:first-child { width:30px; }
.wsc-manage-university-pagination { margin:0 24px 22px; }
@media (max-width:680px) { .wsc-manage-university-card > h3 { padding:17px 18px; } .wsc-manage-university-filter, .wsc-manage-university-card > form:not(.wsc-manage-university-filter), .wsc-manage-university-card > .wsc-table-scroll { margin-left:18px; margin-right:18px; } .wsc-manage-university-filter .wsc-btn { width:100%; } .wsc-manage-university-card .wsc-bulk-bar { align-items:stretch; } .wsc-manage-university-card .wsc-bulk-bar select, .wsc-manage-university-card .wsc-bulk-bar input[type="text"], .wsc-manage-university-card .wsc-bulk-bar .wsc-btn { width:100%; box-sizing:border-box; } }

/* Registration/login: aligned with the dashboard header and theme colours. */
.wsc-registration-form, .wsc-auth-screen { max-width:620px; margin:28px auto; padding:0 18px; background:transparent; border-radius:0; box-sizing:border-box; }
.wsc-registration-form .wsc-add-university-intro { display:none; }
.wsc-usertype-card-wrap, .wsc-registration-fields-step, .wsc-auth-card { max-width:420px; margin:0 auto; padding:0 !important; border:1px solid var(--wsc-border) !important; border-radius:16px !important; background:#fff; box-shadow:var(--wsc-shadow-md) !important; overflow:hidden; }
.wsc-registration-form.wsc-registration-from-role-picker { max-width:456px; }
.wsc-registration-form.wsc-registration-from-role-picker #wsc-registration-form { max-width:420px; margin-left:auto; margin-right:auto; }
.wsc-registration-panel-header, .wsc-auth-card-header { display:block; box-sizing:border-box; width:100%; margin:0 !important; padding:20px 26px; background:linear-gradient(120deg, var(--wsc-primary-dark), var(--wsc-primary) 56%, var(--wsc-primary)); color:#fff; font-size:21px; font-weight:800; line-height:1.25; text-align:center; }
.wsc-usertype-card-wrap > :not(.wsc-registration-panel-header), .wsc-registration-fields-step > :not(.wsc-registration-panel-header) { margin-left:32px; margin-right:32px; }
.wsc-usertype-heading { margin-top:22px; margin-bottom:16px; font-size:17px; font-weight:800; color:var(--wsc-text); }
.wsc-usertype-list { gap:12px; margin-bottom:22px; }
.wsc-usertype-card { gap:12px; padding:13px 14px; border:1px solid var(--wsc-border); border-radius:10px; box-shadow:none; }
.wsc-usertype-card:hover { border-color:var(--wsc-primary); }
.wsc-usertype-card.is-selected { border-color:var(--wsc-primary); background:color-mix(in srgb, var(--wsc-primary) 6%, #fff); box-shadow:0 0 0 2px color-mix(in srgb, var(--wsc-primary) 15%, transparent); }
.wsc-usertype-icon { background:color-mix(in srgb, var(--wsc-primary) 10%, #fff); }
.wsc-usertype-title { font-size:16px; color:var(--wsc-text); }
.wsc-usertype-check { background:var(--wsc-primary); }
.wsc-usertype-login-hint { margin-top:16px; margin-bottom:24px; }
.wsc-usertype-login-hint a { color:var(--wsc-primary); }
.wsc-usertype-card-wrap .wsc-usertype-next { display:block; width:auto; min-width:88px; margin-top:0; margin-bottom:0; padding:10px 22px; border-radius:999px; background:var(--wsc-primary); box-shadow:0 4px 10px color-mix(in srgb, var(--wsc-primary) 25%, transparent); font-size:14px; }
.wsc-registration-fields-step { padding-bottom:28px !important; }
.wsc-registration-fields-step .wsc-registration-progress { margin-top:20px; }
.wsc-registration-fields-step .wsc-field-grid { margin-top:20px; }
.wsc-registration-fields-step .wsc-btn { margin-top:16px; }
.wsc-registration-fields-step .wsc-btn-block { width:calc(100% - 64px); box-sizing:border-box; }
.wsc-auth-screen { max-width:456px; }
.wsc-auth-card { max-width:420px; }
.wsc-auth-card-body { padding:26px 32px 28px; }
.wsc-auth-card-body h2 { margin:0; color:var(--wsc-text); font-size:19px; text-align:center; }
.wsc-auth-subtitle { margin:7px 0 22px; color:var(--wsc-muted); font-size:13px; text-align:center; }
.wsc-auth-card-body .login-username, .wsc-auth-card-body .login-password { margin:0 0 14px; }
.wsc-auth-card-body label { display:block; margin-bottom:6px; color:#333; font-size:13px; font-weight:600; }
.wsc-auth-card-body input[type="text"], .wsc-auth-card-body input[type="password"] { width:100%; padding:11px 12px; border:1px solid var(--wsc-border); border-radius:9px; box-sizing:border-box; }
.wsc-auth-card-body input[type="text"]:focus, .wsc-auth-card-body input[type="password"]:focus { outline:0; border-color:var(--wsc-primary); box-shadow:0 0 0 3px color-mix(in srgb, var(--wsc-primary) 13%, transparent); }
.wsc-auth-card-body .login-remember label { display:inline; font-weight:400; }
.wsc-auth-card-body .login-submit { text-align:center; margin:17px 0 0; }
.wsc-auth-card-body .button-primary { padding:10px 24px; border:0; border-radius:999px; background:var(--wsc-primary); color:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.wsc-auth-footer { margin:17px 0 0; text-align:center; font-size:13px; }
.wsc-auth-footer a { color:var(--wsc-primary); text-decoration:none; }
.wsc-auth-register-prompt { margin:14px 0 0; padding-top:16px; border-top:1px solid var(--wsc-border); color:var(--wsc-muted); font-size:13px; text-align:center; }
.wsc-auth-register-prompt a { color:var(--wsc-primary); font-weight:700; text-decoration:none; }
.wsc-logout-button { display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; border:1px solid var(--wsc-primary); border-radius:999px; background:#fff; color:var(--wsc-primary); font-size:14px; font-weight:700; line-height:1.2; text-decoration:none; transition:.18s ease; }
.wsc-logout-button:hover { background:var(--wsc-primary); color:#fff; transform:translateY(-1px); }
.wsc-login-error-modal { position:fixed; z-index:100100; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; }
.wsc-login-error-modal__backdrop { position:absolute; inset:0; background:rgba(15,23,42,.62); backdrop-filter:blur(5px); }
.wsc-login-error-modal__dialog { position:relative; width:min(100%,420px); padding:30px; border:1px solid rgba(255,255,255,.65); border-radius:20px; background:#fff; box-shadow:0 28px 70px rgba(15,23,42,.35); text-align:center; }
.wsc-login-error-modal__icon { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; margin-bottom:11px; border-radius:50%; background:#fef2f2; color:#dc2626; font-size:24px; font-weight:800; }
.wsc-login-error-modal__dialog h3 { margin:0 0 9px; color:var(--wsc-text); font-size:21px; }
.wsc-login-error-modal__dialog p { margin:0; color:var(--wsc-muted); font-size:14px; line-height:1.55; }
.wsc-login-error-modal__actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:22px; }
.wsc-login-error-modal__actions a, .wsc-login-error-modal__close { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 17px; border:1px solid var(--wsc-primary); border-radius:999px; background:var(--wsc-primary); color:#fff; font:700 13px inherit; text-decoration:none; cursor:pointer; }
.wsc-login-error-modal__close { background:#fff; color:var(--wsc-primary); }
.wsc-auth-notice { margin:0; text-align:center; }
.wsc-registration-form #wsc-usertype-next { width:calc(100% - 80px); margin:0 40px !important; display:block; box-sizing:border-box; text-align:center; border-radius:12px !important; }
.wsc-university-detail-website-btn { display:inline-flex; align-items:center; justify-content:center; align-self:flex-start; margin-top:2px; padding:9px 16px; border:1px solid var(--wsc-primary); border-radius:999px; background:#fff; color:var(--wsc-primary); font-size:13px; font-weight:700; line-height:1.2; text-decoration:none; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.wsc-university-detail-website-btn:hover { border-color:var(--wsc-primary-dark); background:var(--wsc-primary); color:#fff; text-decoration:none; }
.wsc-auth-message { margin:0 0 16px; padding:10px 12px; border-radius:9px; font-size:13px; line-height:1.45; text-align:center; }
.wsc-auth-message-success { background:#f0fbf4; color:#166534; border:1px solid #bbf7d0; }
.wsc-auth-message-error { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; }
.wsc-registration-success-modal { position:fixed; z-index:100100; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; animation:wscFadeIn .18s ease; }
.wsc-registration-success-modal__backdrop { position:absolute; inset:0; background:rgba(15,23,42,.62); backdrop-filter:blur(5px); }
.wsc-registration-success-modal__dialog { position:relative; width:min(100%,420px); padding:32px 30px; border:1px solid rgba(255,255,255,.65); border-radius:20px; background:#fff; box-shadow:0 28px 70px rgba(15,23,42,.35); text-align:center; animation:wscModalPop .22s cubic-bezier(.2,.9,.3,1.3); }
.wsc-registration-success-modal__icon { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; margin-bottom:14px; border-radius:50%; background:#ecfdf3; color:#16a34a; box-shadow:0 0 0 6px #f0fdf4; }
.wsc-registration-success-modal__dialog h3 { margin:0 0 9px; color:var(--wsc-text); font-size:22px; }
.wsc-registration-success-modal__dialog p { margin:0; color:var(--wsc-muted); font-size:14px; line-height:1.55; }
.wsc-registration-success-modal__countdown { margin-top:12px !important; font-size:12.5px !important; color:#9490a8 !important; }
.wsc-registration-success-modal__actions { display:flex; justify-content:center; margin-top:24px; }
.wsc-registration-success-modal__continue { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 22px; border:1px solid var(--wsc-primary); border-radius:999px; background:var(--wsc-primary); color:#fff; font:700 13.5px inherit; cursor:pointer; transition:.18s ease; }
.wsc-registration-success-modal__continue:hover { filter:brightness(1.06); transform:translateY(-1px); }
@keyframes wscFadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes wscModalPop { from { opacity:0; transform:translateY(8px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:480px) { .wsc-registration-success-modal { align-items:flex-end; padding:12px; } .wsc-registration-success-modal__dialog { padding:26px 20px; border-radius:18px; } }
@media (prefers-reduced-motion:reduce) { .wsc-registration-success-modal, .wsc-registration-success-modal__dialog { animation:none !important; } }

/* Confirmation before a day-off sends reschedule requests. */
.wsc-exception-notify-modal[hidden] { display:none; }
.wsc-exception-notify-modal { position:fixed; inset:0; z-index:100001; display:flex; align-items:center; justify-content:center; padding:18px; }
.wsc-exception-notify-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.54); backdrop-filter:blur(4px); }
.wsc-exception-notify-dialog { position:relative; z-index:1; width:min(420px,100%); padding:24px; border:1px solid var(--wsc-border); border-radius:16px; background:#fff; box-shadow:0 24px 60px rgba(15,23,42,.28); }
.wsc-exception-notify-dialog h4 { margin:0 0 9px; color:var(--wsc-text); font-size:18px; }
.wsc-exception-notify-dialog p { margin:0; color:var(--wsc-muted); font-size:14px; line-height:1.55; }
.wsc-exception-notify-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:20px; }
@media (max-width:480px) { .wsc-exception-notify-dialog { padding:20px; } .wsc-exception-notify-actions .wsc-btn { width:100%; } }

/* Student Directory profile modal: match the premium University-detail profile view. */
.wsc-provider-profile-modal { padding:20px; }
.wsc-provider-profile-backdrop { background:radial-gradient(circle at 50% 20%,rgba(67,56,202,.28),rgba(15,23,42,.62)); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.wsc-provider-profile-dialog { width:min(640px,100%); max-height:90vh; border:0; border-radius:24px; box-shadow:0 30px 70px -15px rgba(30,27,75,.35),0 0 0 1px rgba(255,255,255,.6) inset; }
.wsc-provider-profile-banner { min-height:132px; border-radius:24px 24px 0 0; background:linear-gradient(120deg,#4338ca 0%,#6d28d9 55%,#9333ea 100%); }
.wsc-provider-profile-banner-inner { gap:16px; padding:22px 64px 22px 32px; }
.wsc-provider-profile-avatar { width:68px; height:68px; padding:3px; box-sizing:border-box; background:rgba(255,255,255,.9); box-shadow:0 6px 16px -4px rgba(15,23,42,.35); }
.wsc-provider-profile-banner-name { font-size:19px; }
.wsc-provider-profile-head-info { margin-top:8px; }
.wsc-provider-profile-service-count { gap:6px; padding:4px 10px 4px 8px; font-size:12.5px; }
.wsc-provider-profile-service-count::before { content:""; width:6px; height:6px; border-radius:50%; background:#4ade80; box-shadow:0 0 0 3px rgba(74,222,128,.25); flex:0 0 auto; }
.wsc-provider-profile-course-chip { padding:4px 10px; font-size:12px; }
.wsc-provider-profile-close { top:18px; right:18px; width:34px; height:34px; min-width:34px; min-height:34px; border-radius:50%; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.35); color:#fff; font-size:18px; font-weight:600; backdrop-filter:blur(4px); }
.wsc-provider-profile-close:hover { background:rgba(255,255,255,.3); }
.wsc-provider-profile-body { padding:26px 32px 30px; }
.wsc-provider-profile-section { margin-bottom:22px; padding:0 0 22px; border-bottom:1px solid #f2f0fb; }
.wsc-provider-profile-section:last-child { margin-bottom:4px; padding-bottom:0; border-bottom:0; }
.wsc-provider-profile-section h4 { display:flex; align-items:center; gap:8px; margin:0 0 14px; color:#4338ca; font-size:13px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; }
.wsc-provider-profile-section h4::before { content:"◆"; color:#a855f7; font-size:12px; }
.wsc-provider-profile-detail-grid { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.wsc-provider-profile-detail-grid div { position:relative; overflow:hidden; padding:10px 14px; border:1px solid #ece9fb; border-radius:14px; background:linear-gradient(180deg,#faf9ff,#f5f3ff); }
.wsc-provider-profile-detail-grid div::before { content:""; position:absolute; top:0; bottom:0; left:0; width:3px; background:linear-gradient(180deg,#818cf8,#c084fc); }
.wsc-provider-profile-detail-grid div:nth-child(even)::before { background:linear-gradient(180deg,#38bdf8,#6366f1); }
.wsc-provider-profile-detail-grid span { color:#8b5cf6; font-size:10px; letter-spacing:.6px; }
.wsc-provider-profile-detail-grid strong { margin-top:2px; color:#181430; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wsc-provider-profile-services { gap:12px; }
.wsc-provider-profile-service { padding:16px 18px; border:1px solid #edecf7; border-radius:16px; background:#fff; box-shadow:0 2px 8px rgba(30,27,75,.04); }
.wsc-provider-profile-service strong { color:#181430; font-size:15px; }
.wsc-provider-profile-service span { color:#7c3aed; font-size:12.5px; }
.wsc-provider-profile-service p { color:#64748b; font-size:13px; }
.wsc-provider-profile-service .wsc-btn-primary { border:0; border-radius:10px; padding:9px 22px; background:linear-gradient(135deg,#4338ca,#7c3aed); box-shadow:0 6px 14px -6px rgba(67,56,202,.55); }
@media (max-width:600px) { .wsc-provider-profile-modal { align-items:flex-end; padding:0; } .wsc-provider-profile-dialog { max-width:100%; max-height:92vh; border-radius:20px 20px 0 0; } .wsc-provider-profile-banner { min-height:112px; border-radius:20px 20px 0 0; } .wsc-provider-profile-banner-inner { gap:12px; padding:20px 56px 20px 20px; } .wsc-provider-profile-avatar { width:58px; height:58px; } .wsc-provider-profile-body { padding:20px 20px calc(24px + env(safe-area-inset-bottom)); } .wsc-provider-profile-close { top:18px; right:18px; } }
@media (max-width:480px) { .wsc-registration-form, .wsc-auth-screen { margin:18px auto; padding:0 12px; } .wsc-usertype-card-wrap, .wsc-registration-fields-step, .wsc-auth-card { border-radius:12px !important; } .wsc-usertype-card-wrap > :not(.wsc-registration-panel-header), .wsc-registration-fields-step > :not(.wsc-registration-panel-header) { margin-left:20px; margin-right:20px; } .wsc-registration-fields-step .wsc-btn-block { width:calc(100% - 40px); } .wsc-auth-card-body { padding:22px 20px 24px; } .wsc-registration-panel-header, .wsc-auth-card-header { padding:17px 20px; font-size:19px; } }

/* Final responsive guardrails shared by every public plugin screen. */
.wsc-booking-widget,.wsc-dashboard,.wsc-provider-dashboard,.wsc-customer-dashboard,.wsc-my-bookings,.wsc-providers-grid,.wsc-providers-list,.wsc-university-directory,.wsc-university-detail,.wsc-manage-universities,.wsc-add-university,.wsc-membership-page,.wsc-auth-screen,.wsc-registration-form{max-width:100%;box-sizing:border-box}
.wsc-table-scroll{max-width:100%;overscroll-behavior-inline:contain}.wsc-table-scroll table{min-width:640px}.wsc-modal-dialog,.wsc-thankyou-modal-dialog{max-width:min(96vw,680px)}
@media (max-width:767px){
	.wsc-mobile-app-mode{overflow-x:hidden;-webkit-tap-highlight-color:transparent}.wsc-mobile-app-mode :is(button,a,input,select,textarea){touch-action:manipulation}.wsc-mobile-app-mode :is(input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],select,textarea){font-size:16px}
	.wsc-mobile-app-mode .wsc-dash-card,.wsc-mobile-app-mode .wsc-card,.wsc-mobile-app-mode .wsc-provider-card,.wsc-mobile-app-mode .wsc-university-card{min-width:0}.wsc-mobile-app-mode .wsc-filter-bar,.wsc-mobile-app-mode .wsc-bulk-bar{align-items:stretch}.wsc-mobile-app-mode .wsc-filter-bar :is(input,select,.wsc-btn),.wsc-mobile-app-mode .wsc-bulk-bar :is(input,select,.wsc-btn){width:100%;box-sizing:border-box}
	.wsc-mobile-app-mode .wsc-modal,.wsc-mobile-app-mode .wsc-login-error-modal,.wsc-mobile-app-mode .wsc-account-pending-modal,.wsc-mobile-app-mode .wsc-registration-success-modal{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.wsc-mobile-app-mode .wsc-login-error-modal__dialog{width:100%;padding:24px 20px;border-radius:20px}.wsc-mobile-app-mode .wsc-registration-success-modal__dialog{width:100%;padding:26px 20px;border-radius:20px}
	.wsc-mobile-app-mode .wsc-mobile-bottom-nav{display:flex;position:fixed;z-index:10030;right:0;bottom:0;left:0;gap:3px;align-items:stretch;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(67,56,202,.12);background:rgba(255,255,255,.96);box-shadow:0 -10px 28px rgba(30,20,70,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
	.wsc-mobile-app-mode .wsc-mobile-bottom-nav-item{flex:1;min-width:0;min-height:46px;padding:6px 4px;border:0;border-radius:11px;background:transparent;color:var(--wsc-muted);font-size:10px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wsc-mobile-app-mode .wsc-mobile-bottom-nav-item.is-active{background:color-mix(in srgb,var(--wsc-primary) 12%,#fff);color:var(--wsc-primary)}.wsc-mobile-app-mode .wsc-mobile-bottom-nav-item:disabled{opacity:.48;cursor:not-allowed;background:transparent;color:var(--wsc-muted)}
	.wsc-mobile-app-mode .wsc-dashboard,.wsc-mobile-app-mode .wsc-customer-dashboard{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.wsc-mobile-bottom-nav-item,.wsc-university-form-step,.wsc-login-error-modal__dialog{animation:none!important;transition:none!important}}

/* Registration/profile-completion status dialog. */
.wsc-account-pending-modal { position:fixed; z-index:10050; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(20,18,54,.55); backdrop-filter:blur(4px); }
.wsc-account-pending-dialog { width:min(100%,460px); padding:30px; border:1px solid rgba(255,255,255,.6); border-radius:20px; background:#fff; box-shadow:0 24px 64px rgba(22,18,65,.28); text-align:center; }
.wsc-account-pending-dialog h3 { margin:0 0 12px; color:#241f52; font-size:23px; }
.wsc-account-pending-dialog p { margin:0 0 22px; color:#67627f; line-height:1.6; }
@media (max-width:480px) { .wsc-account-pending-modal { align-items:flex-end; padding:12px; } .wsc-account-pending-dialog { padding:24px 20px; border-radius:18px; } }

/* Optional phone-first shell. Enabled from Settings → Frontend Appearance. */
@media (max-width:767px) {
	.wsc-mobile-app-mode .wsc-dashboard,
	.wsc-mobile-app-mode .wsc-provider-dashboard,
	.wsc-mobile-app-mode .wsc-customer-dashboard,
	.wsc-mobile-app-mode .wsc-booking-widget,
	.wsc-mobile-app-mode .wsc-university-directory,
	.wsc-mobile-app-mode .wsc-university-detail,
	.wsc-mobile-app-mode .wsc-manage-universities,
	.wsc-mobile-app-mode .wsc-registration-form,
	.wsc-mobile-app-mode .wsc-auth-screen,
	.wsc-mobile-app-mode .wsc-providers-grid,
	.wsc-mobile-app-mode .wsc-providers-list {
		box-sizing:border-box;
		width:100%;
		max-width:none;
		margin:0 auto;
		padding-right:14px;
		padding-left:14px;
	}
	.wsc-mobile-app-mode .wsc-dashboard,
	.wsc-mobile-app-mode .wsc-provider-dashboard,
	.wsc-mobile-app-mode .wsc-customer-dashboard {
		padding-top:14px;
		padding-bottom:calc(24px + env(safe-area-inset-bottom));
	}
	.wsc-mobile-app-mode .wsc-card,
	.wsc-mobile-app-mode .wsc-dashboard-card,
	.wsc-mobile-app-mode .wsc-provider-card,
	.wsc-mobile-app-mode .wsc-booking-widget,
	.wsc-mobile-app-mode .wsc-auth-card,
	.wsc-mobile-app-mode .wsc-usertype-card-wrap,
	.wsc-mobile-app-mode .wsc-registration-fields-step {
		border-radius:18px;
		box-shadow:0 8px 28px rgba(34,28,84,.08);
	}
	.wsc-mobile-app-mode .wsc-dashboard-tabs,
	.wsc-mobile-app-mode .wsc-provider-dashboard-tabs,
	.wsc-mobile-app-mode .wsc-customer-dashboard-tabs {
		position:sticky;
		top:0;
		z-index:20;
		margin-right:-14px;
		margin-left:-14px;
		padding:10px 14px;
		background:rgba(255,255,255,.94);
		backdrop-filter:blur(12px);
		-webkit-backdrop-filter:blur(12px);
		box-shadow:0 2px 12px rgba(30,27,75,.06);
		overflow-x:auto;
		white-space:nowrap;
	}
	.wsc-mobile-app-mode .wsc-btn,
	.wsc-mobile-app-mode button,
	.wsc-mobile-app-mode input[type="submit"] {
		min-height:44px;
	}
	.wsc-mobile-app-mode input:not([type="checkbox"]):not([type="radio"]),
	.wsc-mobile-app-mode select,
	.wsc-mobile-app-mode textarea {
		min-height:46px;
		font-size:16px;
	}
	.wsc-mobile-app-mode .wsc-table-scroll,
	.wsc-mobile-app-mode .wsc-calendar-wrap,
	.wsc-mobile-app-mode .wsc-university-detail-main {
		border-radius:16px;
		-webkit-overflow-scrolling:touch;
	}
}

/* App workspace details: intentionally scoped to the admin-enabled mode. */
@media (max-width:767px) {
	.wsc-mobile-app-mode .wsc-dashboard {
		gap:14px;
		padding-top:max(14px, env(safe-area-inset-top));
		background:linear-gradient(180deg,#f7f7ff 0%,#fff 42%);
	}
	.wsc-mobile-app-mode .wsc-dash-header {
		gap:14px;
		margin:0 -14px;
		padding:22px 18px;
		border-width:0 0 1px;
		border-radius:20px 20px 24px 24px;
		box-shadow:0 14px 30px rgba(30,20,70,.2);
		position:relative;
		z-index:30;
	}
	.wsc-mobile-app-mode .wsc-dash-avatar { width:62px; height:62px; }
	.wsc-mobile-app-mode .wsc-dash-header-copy { flex-basis:180px; }
	.wsc-mobile-app-mode .wsc-dash-header-copy h2 { font-size:22px; }
	.wsc-mobile-app-mode .wsc-dash-header-copy p { display:none; }
	.wsc-mobile-app-mode .wsc-dash-header-actions { margin-left:auto; }
	.wsc-mobile-app-mode .wsc-dash-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
	.wsc-mobile-app-mode .wsc-dash-stat { min-height:78px; padding:13px; border-radius:15px; }
	.wsc-mobile-app-mode .wsc-dash-stat-icon { width:34px; height:34px; border-radius:10px; }
	.wsc-mobile-app-mode .wsc-dash-stat-body strong { font-size:19px; }
	.wsc-mobile-app-mode .wsc-dash-tabs {
		position:sticky;
		top:0;
		z-index:25;
		gap:4px;
		margin:0 -14px;
		padding:9px 14px;
		border-width:0 0 1px;
		border-radius:0;
		background:rgba(255,255,255,.94);
		box-shadow:0 8px 18px rgba(30,20,70,.07);
		backdrop-filter:blur(14px);
		-webkit-backdrop-filter:blur(14px);
	}
	.wsc-mobile-app-mode .wsc-tab-btn { min-height:44px; padding:9px 13px; border-radius:12px; font-size:13px; }
	.wsc-mobile-app-mode .wsc-tab-pane { padding-bottom:calc(18px + env(safe-area-inset-bottom)); }
	.wsc-mobile-app-mode .wsc-booking-widget { overflow:hidden; padding:0; border-radius:22px; }
	.wsc-mobile-app-mode .wsc-booking-widget > :not(.wsc-booking-widget-header) { margin-right:16px; margin-left:16px; }
	.wsc-mobile-app-mode .wsc-booking-widget-header { margin:0 !important; padding:22px 18px; }
	.wsc-mobile-app-mode .wsc-booking-widget-header h2 { font-size:21px; }
	.wsc-mobile-app-mode .wsc-providers-grid,
	.wsc-mobile-app-mode .wsc-university-grid { grid-template-columns:1fr; gap:14px; }
	.wsc-mobile-app-mode .wsc-provider-card,
	.wsc-mobile-app-mode .wsc-university-card { border-radius:18px; }
	.wsc-mobile-app-mode .wsc-field-grid,
	.wsc-mobile-app-mode .wsc-profile-fields { grid-template-columns:1fr; gap:14px; }
	.wsc-mobile-app-mode .wsc-modal,
	.wsc-mobile-app-mode .wsc-thankyou-modal { padding:0; align-items:flex-end; }
	.wsc-mobile-app-mode .wsc-modal-dialog,
	.wsc-mobile-app-mode .wsc-thankyou-modal-dialog {
		width:100%;
		max-height:92vh;
		border-radius:24px 24px 0 0;
		padding-bottom:calc(18px + env(safe-area-inset-bottom));
	}
	.wsc-mobile-app-mode .wsc-btn-block,
	.wsc-mobile-app-mode .wsc-booking-widget button[type="submit"] {
		position:relative;
		min-height:48px;
		border-radius:14px;
	}
}

/* Mobile app mode: prevent header/popover collisions on small screens. */
@media (max-width:767px) {
	.wsc-mobile-app-mode .wsc-dash-header {
		display:grid;
		grid-template-columns:minmax(0,1fr) auto;
		grid-template-areas:
			"workspace actions"
			"avatar ."
			"name name"
			"description description"
			"status status";
		min-height:0;
		gap:0;
	}
	.wsc-mobile-app-mode .wsc-dash-header-copy { display:contents; }
	.wsc-mobile-app-mode .wsc-dash-header-eyebrow { grid-area:workspace; align-self:center; justify-self:start; width:fit-content; margin:0; }
	.wsc-mobile-app-mode .wsc-dash-header-actions { grid-area:actions; display:flex; width:auto; margin:0; justify-content:flex-end; gap:8px; }
	.wsc-mobile-app-mode .wsc-dash-avatar-wrap { grid-area:avatar; margin-top:14px; }
	.wsc-mobile-app-mode .wsc-dash-avatar { width:68px; height:68px; }
	.wsc-mobile-app-mode .wsc-dash-header-copy h2 { grid-area:name; margin:14px 0 0; font-size:25px; }
	.wsc-mobile-app-mode .wsc-dash-header-copy p { display:block; grid-area:description; margin:7px 0 0; font-size:14px; line-height:1.5; }
	.wsc-mobile-app-mode .wsc-dash-header-copy .wsc-badge-front { grid-area:status; justify-self:start; margin:10px 0 0; }

	/* A phone notification tray, rather than a desktop dropdown over cards/tabs. */
	.wsc-mobile-app-mode .wsc-notif-dropdown:not([hidden]) {
		position:fixed;
		top:max(10px, env(safe-area-inset-top));
		right:10px;
		bottom:max(12px, env(safe-area-inset-bottom));
		left:10px;
		z-index:10020;
		width:auto;
		max-width:none;
		max-height:none;
		display:flex;
		flex-direction:column;
		overflow:hidden;
		border-radius:20px;
		box-shadow:0 20px 50px rgba(20,15,60,.28);
	}
	.wsc-mobile-app-mode .wsc-notif-list { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
	.wsc-mobile-app-mode .wsc-push-popover:not([hidden]) {
		position:fixed;
		top:auto;
		right:10px;
		bottom:calc(12px + env(safe-area-inset-bottom));
		left:10px;
		z-index:10021;
		width:auto;
		max-width:none;
		padding:18px;
		border-radius:18px;
	}
}

/* Elementor/theme rules cannot override the round dashboard avatar. */
.wsc-dash-avatar-wrap {
	width:92px;
	height:92px;
	box-sizing:border-box;
	overflow:hidden;
	border-radius:50% !important;
}
.wsc-dash-avatar-wrap > img.wsc-dash-avatar,
.wsc-dash-avatar-wrap > img.avatar {
	display:block !important;
	width:100% !important;
	height:100% !important;
	max-width:none !important;
	margin:0 !important;
	border-radius:50% !important;
	object-fit:cover !important;
	clip-path:circle(50% at 50% 50%);
}

/* University hero: compact and readable on phone screens. */
@media (max-width:600px) {
	.wsc-university-detail-with-toc .wsc-university-detail-hero {
		display:grid;
		grid-template-columns:58px minmax(0,1fr);
		grid-template-areas:"avatar title" "meta meta";
		align-items:start;
		gap:8px 12px;
		padding:14px 16px 16px;
		border-radius:18px;
	}
	.wsc-university-detail-hero-cover { height:44px; }
	.wsc-university-detail-hero-avatar { grid-area:avatar; margin-top:4px; align-self:start; }
	.wsc-university-detail-hero .wsc-university-avatar-lg { width:58px; height:58px; border-radius:14px; }
	.wsc-university-detail-hero-body { display:contents; }
	.wsc-university-detail-name { grid-area:title; align-self:end; margin:0; color:var(--wsc-text,#1e293b) !important; font-size:18.5px; line-height:1.28; }
	.wsc-university-detail-name .wsc-badge-verified { display:none !important; }
	.wsc-university-detail-hero .wsc-university-card-meta { grid-area:meta; gap:6px; margin:0; }
	.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge { padding:6px 9px; font-size:12px; }
	/* Address meta becomes a country-only meta on phones. */
	.wsc-university-meta-location { color:transparent !important; font-size:0 !important; }
	.wsc-university-meta-location::after { content:'🌍 ' attr(data-wsc-country); color:var(--wsc-text,#1e293b); font-size:12px; }
	/* Only country, student count and course count stay visible on phones;
	   every other meta chip (score, established year, ...) is hidden so the
	   header stays compact. Whitelisting (instead of hiding each type one by
	   one) means any meta chip added later is hidden on mobile by default. */
	.wsc-university-detail-hero .wsc-university-card-meta > .wsc-badge:not(.wsc-university-meta-location):not(.wsc-university-meta-student):not(.wsc-university-meta-course):not(.wsc-university-meta-registered) {
		display:none !important;
	}
	.wsc-university-detail-hero .wsc-university-card-meta .wsc-university-meta-registered { display:inline-block !important; }
	.wsc-university-detail-website-btn { display:none !important; }
}

@media (max-width:767px) {
	.wsc-mobile-app-mode .wsc-dash-avatar-wrap { width:76px; height:76px; }
	.wsc-mobile-app-mode .wsc-dash-avatar-wrap > img.wsc-dash-avatar,
	.wsc-mobile-app-mode .wsc-dash-avatar-wrap > img.avatar { width:68px !important; height:68px !important; margin:0 auto !important; }
}

/* University detail assets live here, never inside a shortcode. wpautop() can
   inject paragraph tags into inline <style>/<script> output and corrupt it. */
.wsc-university-detail-with-toc{display:block;width:100%;box-sizing:border-box}
.wsc-university-detail-with-toc .wsc-university-detail-hero{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);align-items:start;gap:22px;margin-bottom:26px;padding:112px 28px 28px;background:#fff;border:1px solid var(--wsc-border,#e2e8f0);border-radius:18px;box-shadow:var(--wsc-shadow-md,0 10px 26px rgba(30,20,70,.10));overflow:hidden}
.wsc-university-detail-hero-cover{position:absolute;inset:0 0 auto;height:96px;background:linear-gradient(120deg,var(--wsc-primary,#4338ca),#6d28d9 55%,var(--wsc-accent,#c9a227) 130%)}
.wsc-university-detail-hero-avatar{position:relative;z-index:1;margin-top:-64px}
.wsc-university-detail-hero .wsc-university-avatar-lg{width:104px;height:104px;border:4px solid #fff;border-radius:22px;box-shadow:0 8px 20px rgba(30,20,70,.18)}
.wsc-university-detail-hero-body{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.wsc-university-detail-with-toc .wsc-university-detail-name{margin:0;color:var(--wsc-text,#1e293b);font-size:26px;line-height:1.25}
.wsc-university-detail-hero .wsc-university-card-meta{justify-content:flex-start;margin:0}
.wsc-university-detail-layout{display:flex;align-items:flex-start;gap:26px;width:100%;box-sizing:border-box}
.wsc-university-toc{position:sticky;top:24px;flex:0 0 260px;width:260px}
.wsc-university-toc-inner{overflow:hidden;padding:18px 0;background:#fff;border:1px solid var(--wsc-border,#e2e8f0);border-radius:16px;box-shadow:var(--wsc-shadow)}
.wsc-university-toc-inner h4{margin:0 0 10px;padding:0 18px 12px;border-bottom:1px solid var(--wsc-border,#e2e8f0);color:var(--wsc-muted,#64748b);font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.wsc-university-toc-inner nav{display:flex;flex-direction:column;padding:8px}.wsc-university-toc-link{display:flex;align-items:center;gap:10px;margin:1px 0;padding:9px 12px;border-radius:10px;color:var(--wsc-muted,#64748b);font-size:13.5px;font-weight:600;text-decoration:none}.wsc-university-toc-link:hover,.wsc-university-toc-link.is-active{background:#f2f1ff;color:var(--wsc-primary,#4338ca)}
.wsc-university-toc-link-marker,.wsc-univ-accordion-marker{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:24px;height:24px;padding:0 5px;border-radius:8px;background:#f0efff;color:var(--wsc-primary,#4338ca);font-size:10px;font-weight:800}
.wsc-university-detail-main{flex:1 1 auto;min-width:0}.wsc-univ-accordion{display:flex;flex-direction:column;gap:14px}.wsc-univ-accordion-item{overflow:hidden;border:1px solid var(--wsc-border,#e2e8f0);border-radius:16px;background:#fff;box-shadow:var(--wsc-shadow);scroll-margin-top:24px}.wsc-univ-accordion-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:17px 22px;border:0;background:#fff;color:var(--wsc-text,#1e293b);font:inherit;font-size:15.5px;font-weight:800;text-align:left;cursor:pointer}.wsc-univ-accordion-header-left{display:flex;align-items:center;gap:12px}.wsc-univ-accordion-panel{display:none}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-panel{display:block}.wsc-univ-accordion-panel-inner{padding:0 22px 22px}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{border-bottom:1px solid var(--wsc-border,#e2e8f0)}.wsc-univ-accordion-chevron{transition:transform .2s ease}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{transform:rotate(180deg)}
@media(max-width:760px){.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:10px 12px;padding:72px 16px 16px}.wsc-university-detail-hero-cover{height:44px}.wsc-university-detail-hero-avatar{margin-top:-28px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:58px;height:58px;border-radius:14px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:19px}.wsc-university-detail-layout{display:block}.wsc-university-toc{position:static;width:auto;margin-bottom:16px}.wsc-university-toc-inner nav{flex-direction:row;flex-wrap:wrap}.wsc-university-toc-link{flex:1 1 145px}.wsc-univ-accordion-header{padding:15px 16px}.wsc-univ-accordion-panel-inner{padding:0 16px 18px}}
.wsc-student-profile-modal{position:fixed;inset:0;z-index:999999;align-items:center;justify-content:center;padding:20px}.wsc-student-profile-modal .wsc-modal-overlay{position:absolute;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(5px)}.wsc-student-profile-modal .wsc-modal-content{position:relative;z-index:1;display:flex;flex-direction:column;width:min(640px,100%);max-height:90vh;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 30px 70px rgba(15,23,42,.35)}.wsc-modal-banner{position:relative;min-height:116px;background:linear-gradient(120deg,#4338ca,#6d28d9 55%,#9333ea);color:#fff}.wsc-modal-banner-inner{display:flex;align-items:center;gap:16px;padding:24px 62px 24px 28px}.wsc-modal-avatar-ring{width:64px;height:64px;flex:0 0 auto;padding:3px;border-radius:50%;background:#fff}.wsc-modal-avatar{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.wsc-modal-avatar-fallback{display:flex;align-items:center;justify-content:center;background:#f1f0fe;color:#4338ca;font-weight:800}.wsc-modal-banner-name{margin:0;color:#fff;font-size:19px}.wsc-student-profile-modal .wsc-modal-close{position:absolute;z-index:2;top:16px;right:16px;width:34px;height:34px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:19px;cursor:pointer}.wsc-student-profile-modal .wsc-modal-body{overflow:auto;padding:26px 30px}.wsc-modal-section{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid #ece9fb}.wsc-modal-section:last-child{margin-bottom:0;border:0}.wsc-modal-section h4{margin:0 0 12px;color:#4338ca;font-size:13px;text-transform:uppercase}.wsc-modal-bio-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}.wsc-modal-bio-text.is-expanded{display:block}.wsc-modal-bio-toggle{margin-top:8px;padding:0;border:0;background:transparent;color:#4338ca;font-weight:700;cursor:pointer}.wsc-modal-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.wsc-modal-detail-card{padding:10px 14px;border:1px solid #ece9fb;border-radius:14px;background:#faf9ff}.wsc-modal-detail-card .wsc-detail-label{display:block;color:#8b5cf6;font-size:10px;font-weight:800;text-transform:uppercase}.wsc-modal-detail-card .wsc-detail-val{display:block;margin-top:3px;color:#181430;font-size:14px;font-weight:700}@media(max-width:600px){.wsc-student-profile-modal{align-items:flex-end;padding:0}.wsc-student-profile-modal .wsc-modal-content{max-height:92vh;border-radius:20px 20px 0 0}.wsc-student-profile-modal .wsc-modal-body{padding:20px}.wsc-modal-banner{min-height:104px}.wsc-modal-banner-inner{padding:20px 54px 20px 20px}}

/* Compact university header and TOC. These rules intentionally come last so
   theme CSS cannot expand the detail page back into the previous tall layout. */
.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:88px minmax(0,1fr);gap:16px;margin-bottom:18px;padding:70px 24px 18px;border-radius:16px}
.wsc-university-detail-hero-cover{height:54px}.wsc-university-detail-hero-avatar{margin-top:-38px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:88px;height:88px;border-width:3px;border-radius:18px;font-size:28px}
.wsc-university-detail-hero-body{gap:9px;justify-content:flex-start}.wsc-university-detail-with-toc .wsc-university-detail-name{gap:8px;font-size:23px;letter-spacing:-.02em}.wsc-university-detail-name .wsc-badge-verified{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;font-size:11px;line-height:1;white-space:nowrap}
.wsc-university-detail-hero .wsc-university-card-meta{display:flex;align-items:center;justify-content:flex-start;gap:7px;width:100%}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 10px;border:1px solid #ded9ff;border-radius:999px;background:linear-gradient(180deg,#fafaff,#f1efff);color:#373082;font-size:12px;font-weight:750;line-height:1;white-space:nowrap}.wsc-university-detail-hero .wsc-university-meta-location{background:#f7f7fb;color:#536075;border-color:#e5e7ef}.wsc-university-detail-website-btn{min-height:32px;margin-top:0;padding:6px 12px;font-size:12px}
.wsc-university-detail-layout{gap:18px}.wsc-university-toc{flex-basis:230px;width:230px;top:18px}.wsc-university-toc-inner{padding:12px 0;border-radius:14px}.wsc-university-toc-inner h4{margin:0 0 6px;padding:0 15px 9px;font-size:10px;letter-spacing:.35px}.wsc-university-toc-inner nav{gap:2px;padding:5px}.wsc-university-toc-link{gap:8px;min-height:34px;margin:0;padding:7px 9px;border-radius:8px;font-size:12px;line-height:1.2}.wsc-university-toc-link-marker{min-width:21px;height:21px;padding:0 4px;border-radius:6px;font-size:8px}.wsc-university-toc-link.is-active{background:linear-gradient(90deg,#eeecff,#f7f6ff);box-shadow:inset 3px 0 0 var(--wsc-primary,#4338ca)}
@media(max-width:760px){.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:8px 12px;margin-bottom:14px;padding:58px 14px 14px}.wsc-university-detail-hero-cover{height:42px}.wsc-university-detail-hero-avatar{margin-top:-24px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:58px;height:58px;border-radius:14px;font-size:19px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:18px}.wsc-university-detail-hero .wsc-university-card-meta{gap:5px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:27px;padding:4px 8px;font-size:11px}.wsc-university-toc{margin-bottom:14px}.wsc-university-toc-inner nav{gap:4px;padding:7px}.wsc-university-toc-link{flex:1 1 135px;min-height:30px;padding:6px 8px;font-size:11px}}

/* Premium university table of contents: a calm navigation card with a
   strong current-section cue, while retaining high contrast for accessibility. */
.wsc-university-toc{isolation:isolate}
.wsc-university-toc-inner{position:relative;padding:0;overflow:hidden;border:1px solid rgba(99,82,190,.16);border-radius:18px;background:linear-gradient(145deg,#fff 0%,#fcfbff 54%,#f7f6ff 100%);box-shadow:0 16px 38px rgba(54,42,124,.11)}
.wsc-university-toc-inner::before{content:'';display:block;height:5px;background:linear-gradient(90deg,var(--wsc-primary,#4338ca),#7c3aed 55%,#c4a24b)}
.wsc-university-toc-inner h4{display:flex;align-items:center;gap:8px;margin:0;padding:16px 16px 12px;border:0;color:#5b6280;font-size:10px;font-weight:850;letter-spacing:.65px;line-height:1.1;text-transform:uppercase}
.wsc-university-toc-inner h4::before{content:'+';display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;background:#eeecff;color:var(--wsc-primary,#4338ca);font-size:13px;letter-spacing:0}
.wsc-university-toc-inner nav{position:relative;display:flex;flex-direction:column;gap:4px;padding:4px 9px 11px}
.wsc-university-toc-link{position:relative;isolation:isolate;display:flex;align-items:center;gap:10px;min-height:40px;margin:0;padding:8px 10px;border:1px solid transparent;border-radius:11px;color:#66708a;font-size:12.5px;font-weight:700;line-height:1.25;text-decoration:none;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}
.wsc-university-toc-link::after{content:'';position:absolute;z-index:-1;inset:0;border-radius:inherit;opacity:0;background:linear-gradient(100deg,rgba(67,56,202,.08),rgba(124,58,237,.025));transition:opacity .18s ease}
.wsc-university-toc-link-marker{width:25px;min-width:25px;height:25px;padding:0;border:1px solid #e2defe;border-radius:8px;background:#f5f3ff;color:#5547bf;font-size:8px;font-weight:900;letter-spacing:.04em;box-shadow:0 2px 4px rgba(67,56,202,.06);transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}
.wsc-university-toc-link:hover{color:#40369c;transform:translateX(2px);border-color:rgba(99,82,190,.14);background:rgba(255,255,255,.78);box-shadow:0 5px 14px rgba(45,36,109,.06)}
.wsc-university-toc-link:hover::after{opacity:1}.wsc-university-toc-link:hover .wsc-university-toc-link-marker{background:#ebe8ff;border-color:#cbc4ff;transform:scale(1.05)}
.wsc-university-toc-link.is-active{border-color:rgba(94,76,203,.14);background:#fff;color:var(--wsc-primary,#4338ca);font-weight:800;box-shadow:0 7px 18px rgba(65,49,156,.12)}
.wsc-university-toc-link.is-active::after{opacity:1}.wsc-university-toc-link.is-active::before{content:'';position:absolute;left:-10px;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(#5b4ee2,#8b5cf6)}
.wsc-university-toc-link.is-active .wsc-university-toc-link-marker{border-color:var(--wsc-primary,#4338ca);background:linear-gradient(135deg,var(--wsc-primary,#4338ca),#7c3aed);color:#fff;box-shadow:0 5px 12px rgba(67,56,202,.23)}
.wsc-university-toc-link:focus-visible{outline:3px solid rgba(99,102,241,.32);outline-offset:2px}
@media(max-width:760px){.wsc-university-toc-inner{border-radius:15px}.wsc-university-toc-inner h4{padding:13px 14px 9px}.wsc-university-toc-inner nav{flex-direction:row;flex-wrap:wrap;gap:6px;padding:5px 8px 10px}.wsc-university-toc-link{flex:1 1 145px;min-height:35px;padding:6px 8px;font-size:11px}.wsc-university-toc-link::before{display:none}.wsc-university-toc-link-marker{width:22px;min-width:22px;height:22px;border-radius:7px}.wsc-university-toc-link:hover{transform:none}.wsc-university-toc-link.is-active{box-shadow:0 4px 11px rgba(65,49,156,.1)}}

/* Restored university-detail visual system from the earlier project revision.
   Assets stay external because WordPress can corrupt inline shortcode CSS/JS. */
.wsc-university-detail-with-toc .wsc-university-detail-hero{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:18px;min-height:142px;margin-bottom:22px;padding:20px 24px;border:0;border-radius:18px;background:linear-gradient(118deg,#4236c8 0%,#6329d5 57%,#a57179 150%);box-shadow:0 14px 32px rgba(50,35,140,.2);overflow:hidden}
.wsc-university-detail-hero::after{content:'';position:absolute;right:-55px;bottom:-105px;width:260px;height:260px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 36px rgba(255,255,255,.045),0 0 0 74px rgba(255,255,255,.03);pointer-events:none}
.wsc-university-detail-hero-cover{display:none}.wsc-university-detail-hero-avatar{z-index:1;margin:0}.wsc-university-detail-hero .wsc-university-avatar-lg{width:88px;height:88px;border:3px solid rgba(255,255,255,.96);border-radius:19px;box-shadow:0 10px 20px rgba(19,12,74,.25);background:#fff;color:var(--wsc-primary,#4338ca)}
.wsc-university-detail-hero-body{z-index:1;gap:10px}.wsc-university-detail-with-toc .wsc-university-detail-name{margin:0;color:#fff;font-size:25px;font-weight:800;line-height:1.2;letter-spacing:-.02em;text-shadow:0 1px 1px rgba(20,12,80,.14)}
.wsc-university-detail-name .wsc-badge-verified{min-height:25px;padding:4px 9px;border:1px solid rgba(221,255,232,.75);background:#e7f8ec;color:#167b43;font-size:10.5px;font-weight:800;text-shadow:none}
.wsc-university-detail-hero .wsc-university-card-meta{gap:7px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:29px;padding:4px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:11.5px;font-weight:750;box-shadow:none;backdrop-filter:blur(3px)}
.wsc-university-detail-hero .wsc-university-meta-location{background:rgba(255,255,255,.19);color:#fff;border-color:rgba(255,255,255,.33)}.wsc-university-detail-website-btn{min-height:31px;padding:6px 12px;border:1px solid rgba(255,255,255,.72);border-radius:9px;background:#fff;color:#4d36bd;font-size:11.5px;font-weight:800;box-shadow:0 4px 10px rgba(24,14,91,.14)}
.wsc-university-detail-layout{gap:22px}.wsc-university-toc{flex-basis:220px;width:220px;top:20px}.wsc-university-toc-inner{padding:10px 0;border:1px solid #e2e3ef;border-radius:13px;background:#fff;box-shadow:0 7px 19px rgba(35,27,91,.07)}.wsc-university-toc-inner::before{display:none}
.wsc-university-toc-inner h4{gap:0;margin:0 0 6px;padding:2px 13px 10px;border-bottom:1px solid #ececf4;color:#58657b;font-size:9px;font-weight:850;letter-spacing:.28px}.wsc-university-toc-inner h4::before{display:none}.wsc-university-toc-inner nav{gap:5px;padding:5px}
.wsc-university-toc-link{gap:8px;min-height:39px;padding:8px 9px;border:0;border-radius:8px;color:#637087;font-size:11px;font-weight:700;box-shadow:none;transform:none}.wsc-university-toc-link::after{display:none}.wsc-university-toc-link-marker{width:20px;min-width:20px;height:20px;border:0;border-radius:6px;background:#f1efff;color:#5c4dcd;font-size:7px;box-shadow:none}
.wsc-university-toc-link:hover{transform:none;border:0;background:#f7f6ff;color:#4d3fc3;box-shadow:none}.wsc-university-toc-link:hover .wsc-university-toc-link-marker{border:0;background:#e9e6ff;transform:none}.wsc-university-toc-link.is-active{border:0;background:#efedff;color:#4c3ac5;font-weight:800;box-shadow:none}.wsc-university-toc-link.is-active::before{display:none}.wsc-university-toc-link.is-active .wsc-university-toc-link-marker{border:0;background:#e0dcff;color:#4b3ac2;box-shadow:none}
.wsc-univ-accordion{gap:12px}.wsc-univ-accordion-item{border-color:#e4e4ef;border-radius:13px;box-shadow:0 7px 18px rgba(35,27,91,.06)}.wsc-univ-accordion-item.is-open{border-color:#4c3bc4;box-shadow:0 10px 22px rgba(50,37,145,.14)}.wsc-univ-accordion-header{min-height:48px;padding:14px 18px;font-size:13px}.wsc-univ-accordion-header-left{gap:10px}.wsc-univ-accordion-marker{min-width:22px;height:22px;padding:0 4px;border-radius:6px;font-size:8px}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{border:0;background:linear-gradient(100deg,#4335c7,#312786);color:#fff}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-marker{background:rgba(255,255,255,.18);color:#fff}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{color:#fff}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-panel{background:#fff}.wsc-univ-accordion-panel-inner{padding:0 18px 18px}
@media(max-width:760px){.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:12px;min-height:112px;margin-bottom:15px;padding:16px 14px;border-radius:15px}.wsc-university-detail-hero::after{right:-85px;bottom:-122px;width:210px;height:210px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:58px;height:58px;border-radius:14px;font-size:19px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:18px}.wsc-university-detail-name .wsc-badge-verified{min-height:22px;padding:3px 7px;font-size:9px}.wsc-university-detail-hero .wsc-university-card-meta{gap:5px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:26px;padding:4px 8px;font-size:10px}.wsc-university-toc{width:auto;margin-bottom:15px}.wsc-university-toc-inner nav{gap:4px;padding:6px}.wsc-university-toc-link{flex:1 1 135px;min-height:32px;padding:6px 7px;font-size:10.5px}.wsc-univ-accordion-header{padding:13px 14px;font-size:12.5px}.wsc-univ-accordion-panel-inner{padding:0 14px 16px}}

/* University detail: align the page with the plugin's directory/dashboard
   system (soft surfaces, purple-gold accents and compact neutral cards). */
.wsc-university-detail-with-toc .wsc-university-detail-hero{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:18px;min-height:136px;margin-bottom:22px;padding:22px 24px;overflow:hidden;border:1px solid #ece9fb;border-radius:20px;background:radial-gradient(105% 115% at 100% 0%,rgba(201,162,39,.10) 0%,rgba(201,162,39,0) 52%),linear-gradient(135deg,#fff 0%,#f7f7ff 57%,#fffaf0 100%);box-shadow:var(--wsc-p-shadow-rest,var(--wsc-shadow))}
.wsc-university-detail-hero::before{content:'';position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed) 50%,var(--wsc-p-gold,var(--wsc-accent)))}.wsc-university-detail-hero::after{display:none}.wsc-university-detail-hero-cover{display:none}
.wsc-university-detail-hero-avatar{z-index:1;margin:0}.wsc-university-detail-hero .wsc-university-avatar-lg{width:88px;height:88px;border:0;border-radius:20px;background:#fff;color:var(--wsc-primary);box-shadow:var(--wsc-p-ring,0 0 0 3px #fff),0 10px 22px -6px rgba(67,56,202,.28)}
.wsc-university-detail-hero-body{z-index:1;gap:9px}.wsc-university-detail-with-toc .wsc-university-detail-name{margin:0;color:var(--wsc-text);font-size:24px;font-weight:800;line-height:1.2;letter-spacing:-.01em;text-shadow:none}.wsc-university-detail-name .wsc-badge-verified{min-height:25px;padding:4px 9px;font-size:10.5px}
.wsc-university-detail-hero .wsc-university-card-meta{gap:7px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:29px;padding:4px 10px;border:1px solid #e3e0fb;border-radius:999px;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:var(--wsc-primary-dark);font-size:11.5px;font-weight:800;box-shadow:none}.wsc-university-detail-hero .wsc-university-meta-location{background:#f8f8fc;color:var(--wsc-muted);border-color:var(--wsc-border)}.wsc-university-detail-website-btn{min-height:32px;padding:6px 12px;border:1px solid transparent;border-radius:9px;background:linear-gradient(135deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed));color:#fff;font-size:11.5px;font-weight:800;box-shadow:0 7px 15px -7px rgba(67,56,202,.5)}
.wsc-university-detail-layout{gap:20px}.wsc-university-toc{flex-basis:230px;width:230px;top:20px}.wsc-university-toc-inner{padding:0;overflow:hidden;border:1px solid #ece9fb;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fbfbfe 100%);box-shadow:var(--wsc-p-shadow-rest,var(--wsc-shadow))}.wsc-university-toc-inner::before{content:'';display:block;height:4px;background:linear-gradient(90deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed) 50%,var(--wsc-p-gold,var(--wsc-accent)))}
.wsc-university-toc-inner h4{margin:0;padding:14px 15px 10px;border:0;color:var(--wsc-muted);font-size:10px;font-weight:850;letter-spacing:.45px;line-height:1.2;text-transform:uppercase}.wsc-university-toc-inner h4::before{display:none}.wsc-university-toc-inner nav{gap:4px;padding:2px 7px 10px}.wsc-university-toc-link{gap:8px;min-height:37px;padding:7px 9px;border:1px solid transparent;border-radius:9px;color:var(--wsc-muted);font-size:11.5px;font-weight:700;box-shadow:none;transform:none}.wsc-university-toc-link::after,.wsc-university-toc-link::before{display:none}.wsc-university-toc-link-marker{width:21px;min-width:21px;height:21px;border:0;border-radius:7px;background:#f0efff;color:var(--wsc-primary);font-size:7.5px;font-weight:900;box-shadow:none}.wsc-university-toc-link:hover{transform:none;border-color:#e5e1fb;background:#f8f7ff;color:var(--wsc-primary);box-shadow:none}.wsc-university-toc-link:hover .wsc-university-toc-link-marker{border:0;background:#e8e5ff;transform:none}.wsc-university-toc-link.is-active{border-color:#e1dcff;background:linear-gradient(90deg,#f0efff,#faf8ff);color:var(--wsc-primary);font-weight:800;box-shadow:none}.wsc-university-toc-link.is-active .wsc-university-toc-link-marker{border:0;background:linear-gradient(135deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed));color:#fff;box-shadow:0 4px 10px -5px rgba(67,56,202,.55)}
.wsc-univ-accordion{gap:14px}.wsc-univ-accordion-item{border-color:#ece9fb;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fbfbfe 100%);box-shadow:var(--wsc-p-shadow-rest,var(--wsc-shadow))}.wsc-univ-accordion-item.is-open{border-color:#d8d2fb;box-shadow:var(--wsc-p-shadow-hover,var(--wsc-shadow-md))}.wsc-univ-accordion-header{min-height:52px;padding:15px 19px;color:var(--wsc-text);font-size:13.5px}.wsc-univ-accordion-header-left{gap:10px}.wsc-univ-accordion-marker{min-width:25px;height:25px;padding:0 5px;border-radius:8px;background:#f0efff;color:var(--wsc-primary);font-size:8px}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{border-bottom:1px solid #ebe8fa;background:linear-gradient(90deg,#f5f4ff,#fff);color:var(--wsc-primary)}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-marker{background:linear-gradient(135deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed));color:#fff}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{color:var(--wsc-primary)}.wsc-univ-accordion-panel{background:transparent}.wsc-univ-accordion-panel-inner{padding:0 19px 20px}
@media(max-width:760px){.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:12px;min-height:108px;margin-bottom:15px;padding:16px 14px;border-radius:16px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:58px;height:58px;border-radius:15px;font-size:19px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:18px}.wsc-university-detail-hero .wsc-university-card-meta{gap:5px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:26px;padding:4px 8px;font-size:10px}.wsc-university-toc{width:auto;margin-bottom:15px}.wsc-university-toc-inner nav{gap:4px;padding:4px 6px 8px}.wsc-university-toc-link{flex:1 1 135px;min-height:32px;padding:6px 7px;font-size:10.5px}.wsc-univ-accordion-header{padding:13px 14px;font-size:12.5px}.wsc-univ-accordion-panel-inner{padding:0 14px 16px}}

/* University TOC alignment refinement: tabs read as a compact, premium index.
   Markers remain on the left and the section title is intentionally right-aligned. */
.wsc-university-toc-inner{border-color:rgba(83,70,185,.18);border-radius:18px;background:linear-gradient(150deg,#fff 0%,#fcfbff 62%,#f7f6ff 100%);box-shadow:0 16px 38px rgba(48,37,118,.10)}
.wsc-university-toc-inner h4{display:flex;align-items:center;justify-content:space-between;margin:0;padding:15px 15px 11px;color:#566078;font-size:10px;font-weight:850;letter-spacing:.58px}
.wsc-university-toc-inner h4::after{content:'';width:28px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--wsc-primary,#4338ca),#a78bfa)}
.wsc-university-toc-inner nav{gap:5px;padding:4px 8px 11px}
.wsc-university-toc-link{width:100%;min-height:42px;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:11px;box-sizing:border-box}
.wsc-university-toc-link-title{flex:1 1 auto;min-width:0;text-align:right;overflow-wrap:anywhere}
.wsc-university-toc-link-marker{width:25px;min-width:25px;height:25px;border:1px solid #e4e0ff;border-radius:8px;background:#f4f2ff;color:#5547bf;font-size:8px;box-shadow:0 2px 5px rgba(67,56,202,.07)}
.wsc-university-toc-link:hover{border-color:rgba(92,76,198,.15);background:linear-gradient(90deg,#f8f7ff,#fff);color:#41369e;box-shadow:0 5px 14px rgba(45,36,109,.06)}
.wsc-university-toc-link.is-active{border-color:rgba(89,72,198,.17);background:linear-gradient(100deg,#efedff 0%,#fbfaff 100%);color:var(--wsc-primary,#4338ca);box-shadow:0 6px 15px rgba(65,49,156,.08)}
.wsc-university-toc-link.is-active .wsc-university-toc-link-marker{background:linear-gradient(135deg,var(--wsc-primary,#4338ca),var(--wsc-p-violet,#7c3aed));color:#fff;box-shadow:0 4px 10px -5px rgba(67,56,202,.55)}
@media(max-width:760px){.wsc-university-toc-inner h4{padding:13px 14px 9px}.wsc-university-toc-inner nav{gap:6px;padding:5px 7px 9px}.wsc-university-toc-link{flex:1 1 145px;min-height:36px;padding:6px 8px}.wsc-university-toc-link-title{text-align:left}.wsc-university-toc-link-marker{width:22px;min-width:22px;height:22px;border-radius:7px}}

/* University profile premium treatment: uses the dashboard's dark, gold-accented
   header and turns each right-side content tab into a polished reading card. */
.wsc-university-detail-with-toc .wsc-university-detail-hero{position:relative;grid-template-columns:94px minmax(0,1fr);gap:22px;min-height:150px;padding:25px 27px;isolation:isolate;border:1px solid #29255f;border-radius:20px;background:radial-gradient(115% 180% at 0% 0%,rgba(201,162,39,.32) 0%,rgba(201,162,39,0) 42%),radial-gradient(85% 160% at 100% 0%,rgba(56,189,248,.20) 0%,rgba(56,189,248,0) 46%),linear-gradient(120deg,#211d54 0%,#2f2a86 52%,#3b3199 100%);box-shadow:0 18px 40px rgba(30,20,70,.22)}
.wsc-university-detail-hero::before{z-index:-1;height:3px;background:linear-gradient(90deg,#c9a227,#fff0bd 42%,#8b85ff 100%)}
.wsc-university-detail-hero::after{content:'';display:block;position:absolute;z-index:-1;inset:0;border-radius:inherit;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.17) 1px,transparent 1px);background-size:16px 16px;opacity:.34;-webkit-mask-image:linear-gradient(120deg,rgba(0,0,0,.95),transparent 70%);mask-image:linear-gradient(120deg,rgba(0,0,0,.95),transparent 70%)}
.wsc-university-detail-hero-avatar{padding:4px;border-radius:24px;background:linear-gradient(135deg,var(--wsc-accent,#c9a227),#fff2c6,var(--wsc-accent,#c9a227));box-shadow:0 0 0 1px rgba(255,255,255,.22),0 10px 26px rgba(201,162,39,.30)}
.wsc-university-detail-hero .wsc-university-avatar-lg{width:86px;height:86px;border:3px solid #211d54;border-radius:20px;box-shadow:none}.wsc-university-detail-hero-body{align-items:flex-start;gap:8px}
.wsc-university-detail-eyebrow{display:inline-flex;align-items:center;min-height:22px;padding:3px 9px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(255,255,255,.10);color:#ffe9a8;font-size:9.5px;font-weight:850;letter-spacing:.07em;line-height:1;text-transform:uppercase}
.wsc-university-detail-with-toc .wsc-university-detail-name{color:#fff;font-size:25px;letter-spacing:-.02em;text-shadow:0 1px 1px rgba(20,12,80,.2)}.wsc-university-detail-name .wsc-badge-verified{border:1px solid rgba(206,255,224,.7);background:#e8f9ee;color:#167a42;box-shadow:none}
.wsc-university-detail-hero .wsc-university-card-meta{gap:8px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:30px;padding:4px 10px;border-color:rgba(255,255,255,.27);background:rgba(255,255,255,.12);color:#fff;font-size:11.5px;backdrop-filter:blur(4px)}.wsc-university-detail-hero .wsc-university-meta-location{border-color:rgba(255,255,255,.27);background:rgba(255,255,255,.18);color:#fff}.wsc-university-detail-website-btn{min-height:32px;border-color:rgba(255,255,255,.68);border-radius:9px;background:#fff;color:#382c9d;box-shadow:0 5px 13px rgba(17,11,69,.18)}.wsc-university-detail-website-btn:hover{border-color:#fff;background:#fff6d9;color:#282064}
.wsc-university-detail-layout{gap:22px}.wsc-univ-accordion{gap:14px}.wsc-univ-accordion-item{overflow:hidden;border:1px solid #e6e3f5;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(35,27,91,.07);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.wsc-univ-accordion-item:hover{border-color:#d6d0fa;box-shadow:0 12px 26px rgba(35,27,91,.10);transform:translateY(-1px)}
.wsc-univ-accordion-header{position:relative;min-height:58px;padding:16px 19px;border:0;background:linear-gradient(100deg,#fff,#fcfbff);color:#27334e;font-size:13.5px;transition:background .2s ease,color .2s ease}.wsc-univ-accordion-header::before{content:'';position:absolute;left:0;top:15px;bottom:15px;width:3px;border-radius:0 3px 3px 0;background:transparent;transition:background .2s ease}.wsc-univ-accordion-header-left{gap:11px}.wsc-univ-accordion-marker{min-width:27px;height:27px;padding:0 5px;border:1px solid #e5e1ff;border-radius:9px;background:#f3f1ff;color:var(--wsc-primary);font-size:8px;font-weight:900}.wsc-univ-accordion-chevron{width:18px;height:18px;color:#6d7290;transition:transform .22s ease,color .2s ease}
.wsc-univ-accordion-item.is-open{border-color:#3f37a5;box-shadow:0 15px 30px rgba(43,34,128,.17);transform:none}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{border:0;background:linear-gradient(115deg,#2a256f 0%,#3d35a7 56%,#4e3db4 100%);color:#fff}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header::before{background:linear-gradient(#f1cf6a,#fff0bd)}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-marker{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.14);color:#fff}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{color:#fff}.wsc-univ-accordion-panel{background:linear-gradient(180deg,#fff 0%,#fdfdff 100%)}.wsc-univ-accordion-panel-inner{padding:21px 20px 22px}
.wsc-university-detail-grid{gap:13px}.wsc-university-detail-grid div{position:relative;padding:15px 16px;overflow:hidden;border-color:#e8e6f4;border-radius:12px;background:linear-gradient(145deg,#fff,#fafaff);box-shadow:0 4px 10px rgba(35,27,91,.035)}.wsc-university-detail-grid div::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--wsc-primary),transparent)}
@media(max-width:760px){.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:62px minmax(0,1fr);gap:13px;min-height:118px;padding:17px 15px;border-radius:16px}.wsc-university-detail-hero-avatar{padding:3px;border-radius:17px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:56px;height:56px;border-width:2px;border-radius:14px}.wsc-university-detail-eyebrow{min-height:19px;padding:3px 7px;font-size:8px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:18px}.wsc-univ-accordion{gap:11px}.wsc-univ-accordion-header{min-height:51px;padding:13px 14px;font-size:12.5px}.wsc-univ-accordion-header::before{top:12px;bottom:12px}.wsc-univ-accordion-marker{min-width:24px;height:24px;border-radius:8px}.wsc-univ-accordion-panel-inner{padding:16px 14px 18px}.wsc-university-detail-grid div{padding:13px 14px}}

/* Keep hero metadata in one intentional row. On narrow screens it remains a
   single swipeable row instead of breaking the visual hierarchy by wrapping. */
.wsc-university-detail-hero .wsc-university-card-meta{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.wsc-university-detail-hero .wsc-university-card-meta::-webkit-scrollbar{display:none}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{flex:0 0 auto;white-space:nowrap}

/* University directory reference visual system (v11): design-only adaptation.
   Interaction, ownership, payment and external asset handling remain current. */
.wsc-university-grid{gap:26px}.wsc-university-card{border-color:#ece9fb;border-radius:20px;padding:26px 22px 22px;background:radial-gradient(120% 90% at 50% -10%,rgba(201,162,39,.08) 0%,rgba(201,162,39,0) 55%),linear-gradient(180deg,#fff 0%,#fbfbfe 100%);box-shadow:var(--wsc-p-shadow-rest,var(--wsc-shadow));transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,border-color .22s ease}.wsc-university-card::before{height:4px;background:linear-gradient(90deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed) 50%,var(--wsc-p-gold,var(--wsc-accent)))}.wsc-university-card:hover{transform:translateY(-7px);border-color:#d8d2fb;box-shadow:var(--wsc-p-shadow-hover,var(--wsc-shadow-md))}.wsc-university-card .wsc-university-avatar{box-shadow:var(--wsc-p-ring,0 0 0 3px #fff),0 10px 22px -6px rgba(67,56,202,.28);transition:transform .25s ease,box-shadow .25s ease}.wsc-university-card:hover .wsc-university-avatar{transform:scale(1.05)}.wsc-university-card .wsc-university-name{font-size:16px;font-weight:800;letter-spacing:-.005em}.wsc-university-card-meta .wsc-badge{border:1px solid #e3e0fb;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:var(--wsc-primary-dark);font-weight:800}

.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:88px minmax(0,1fr);gap:18px;min-height:136px;padding:22px 24px;border:1px solid #ece9fb;border-radius:20px;background:radial-gradient(105% 115% at 100% 0%,rgba(201,162,39,.10) 0%,rgba(201,162,39,0) 52%),linear-gradient(135deg,#fff 0%,#f7f7ff 57%,#fffaf0 100%);box-shadow:var(--wsc-p-shadow-rest,var(--wsc-shadow));isolation:auto}.wsc-university-detail-hero::before{z-index:auto;height:4px;background:linear-gradient(90deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed) 50%,var(--wsc-p-gold,var(--wsc-accent)))}.wsc-university-detail-hero::after{display:none}.wsc-university-detail-hero-avatar{padding:0;border-radius:0;background:transparent;box-shadow:none}.wsc-university-detail-hero .wsc-university-avatar-lg{width:88px;height:88px;border:0;border-radius:20px;background:#fff;color:var(--wsc-primary);box-shadow:var(--wsc-p-ring,0 0 0 3px #fff),0 10px 22px -6px rgba(67,56,202,.28)}.wsc-university-detail-eyebrow,.wsc-university-detail-hero .wsc-badge-verified,.wsc-university-detail-hero .wsc-university-detail-website-btn{display:none!important}.wsc-university-detail-with-toc .wsc-university-detail-name{color:var(--wsc-text);font-size:24px;font-weight:800;letter-spacing:-.01em;text-shadow:none}.wsc-university-detail-hero .wsc-university-card-meta{gap:7px;margin:0}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{display:inline-flex;align-items:center;justify-content:center;min-height:29px;padding:4px 10px;border:1px solid #e3e0fb;border-radius:999px;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:var(--wsc-primary-dark);font-size:11.5px;font-weight:800;line-height:1;text-decoration:none;box-shadow:none;backdrop-filter:none}.wsc-university-detail-hero .wsc-university-meta-location{border-color:var(--wsc-border);background:#f8f8fc;color:var(--wsc-muted)}.wsc-university-detail-hero .wsc-university-meta-website{border-color:transparent;background:linear-gradient(135deg,var(--wsc-primary),var(--wsc-p-violet,#7c3aed));color:#fff;box-shadow:0 7px 15px -7px rgba(67,56,202,.5)}.wsc-university-detail-hero .wsc-university-meta-website:hover{color:#fff;background:linear-gradient(135deg,var(--wsc-primary-dark),var(--wsc-primary))}

.wsc-university-detail-layout{gap:22px}.wsc-university-toc{flex-basis:220px;width:220px;top:20px}.wsc-university-toc-inner{padding:10px 0;border:1px solid #e2e3ef;border-radius:13px;background:#fff;box-shadow:0 7px 19px rgba(35,27,91,.07)}.wsc-university-toc-inner::before{display:none}.wsc-university-toc-inner h4{gap:0;margin:0 0 6px;padding:2px 13px 10px;border-bottom:1px solid #ececf4;color:#58657b;font-size:9px;font-weight:850;letter-spacing:.28px}.wsc-university-toc-inner h4::after{display:none}.wsc-university-toc-inner nav{gap:5px;padding:5px}.wsc-university-toc-link{gap:8px;min-height:39px;padding:8px 9px;border:0;border-radius:8px;color:#637087;font-size:11px;font-weight:700;box-shadow:none;transform:none}.wsc-university-toc-link::after,.wsc-university-toc-link::before{display:none}.wsc-university-toc-link-title{text-align:left}.wsc-university-toc-link-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border-radius:6px;background:#f1efff;color:#5c4dcd;font-size:11px;line-height:1}.wsc-university-toc-link:hover{transform:none;border:0;background:#f7f6ff;color:#4d3fc3;box-shadow:none}.wsc-university-toc-link.is-active{border:0;background:#efedff;color:#4c3ac5;font-weight:800;box-shadow:none}.wsc-university-toc-link.is-active .wsc-university-toc-link-icon{background:#e0dcff;color:#4b3ac2}

.wsc-univ-accordion{gap:14px}.wsc-univ-accordion-item{position:relative;overflow:hidden;border:1px solid var(--wsc-border,#e2e8f0);border-radius:16px;background:#fff;box-shadow:var(--wsc-shadow);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.wsc-univ-accordion-item::before{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:transparent;transition:background .2s ease}.wsc-univ-accordion-item:hover{transform:none}.wsc-univ-accordion-item.is-open{border-color:#d7dcff;box-shadow:var(--wsc-shadow-md,0 10px 26px rgba(30,20,70,.10))}.wsc-univ-accordion-item.is-open::before{background:linear-gradient(180deg,var(--wsc-primary),var(--wsc-accent))}.wsc-univ-accordion-header,.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{min-height:auto;padding:17px 22px;border:0;background:transparent;color:var(--wsc-text);font-size:15.5px}.wsc-univ-accordion-header::before{display:none}.wsc-univ-accordion-header-left{gap:12px}.wsc-univ-accordion-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#f2f1ff;font-size:16px;transition:background .2s ease,transform .2s ease}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-icon{background:linear-gradient(135deg,var(--wsc-primary),#7c6cf5)}.wsc-univ-accordion-chevron,.wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{color:var(--wsc-muted);transition:transform .2s ease,color .2s ease}.wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{color:var(--wsc-primary)}.wsc-univ-accordion-panel{background:#fff}.wsc-univ-accordion-panel-inner{padding:0 22px 22px}.wsc-univ-accordion-panel-inner>*{margin-left:0;margin-right:0}.wsc-university-detail-grid div{border-color:#e4e4ef;border-radius:14px;background:#fbfbff;box-shadow:none}.wsc-university-detail-grid div::before{display:none}
@media(max-width:760px){.wsc-university-detail-with-toc .wsc-university-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:12px;min-height:108px;padding:16px 14px;border-radius:16px}.wsc-university-detail-hero .wsc-university-avatar-lg{width:58px;height:58px;border-radius:15px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:18px}.wsc-university-detail-hero .wsc-university-card-meta{gap:5px}.wsc-university-detail-hero .wsc-university-card-meta .wsc-badge{min-height:26px;padding:4px 8px;font-size:10px}.wsc-university-toc{width:auto;margin-bottom:15px}.wsc-university-toc-inner nav{gap:4px;padding:6px}.wsc-university-toc-link{flex:1 1 135px;min-height:32px;padding:6px 7px;font-size:10.5px}.wsc-university-toc-link-title{text-align:left}.wsc-univ-accordion{gap:11px}.wsc-univ-accordion-header,.wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{padding:13px 14px;font-size:12.5px}.wsc-univ-accordion-icon{flex-basis:24px;width:24px;height:24px;border-radius:8px;font-size:12px}.wsc-univ-accordion-panel-inner{padding:0 14px 16px}}

/* demobotgf university fidelity: external CSS only, so visual parity never
   depends on inline template styles (which can be corrupted by wpautop). */
.wsc-university-directory .wsc-university-grid{gap:26px}
.wsc-university-directory .wsc-university-card{min-height:286px;padding:26px 22px 22px;border:1px solid #ece9fb;border-radius:20px;background:radial-gradient(120% 90% at 50% -10%,rgba(201,162,39,.08) 0%,rgba(201,162,39,0) 55%),linear-gradient(180deg,#fff 0%,#fbfbfe 100%);box-shadow:0 1px 2px rgba(30,20,70,.04),0 10px 24px -12px rgba(40,30,110,.16)}
.wsc-university-directory .wsc-university-card::before{height:4px;background:linear-gradient(90deg,#4338ca,#7c6cf5 50%,#c9a227)}
.wsc-university-directory .wsc-university-card .wsc-university-avatar{width:84px;height:84px;border:0;border-radius:50%;background:linear-gradient(135deg,#4338ca,#7c6cf5);box-shadow:0 0 0 4px #fff,0 0 0 6px rgba(67,56,202,.14),0 10px 22px -6px rgba(67,56,202,.28);font-size:28px;font-weight:800}
.wsc-university-directory .wsc-university-card .wsc-university-logo-img{border:0;object-fit:cover}
.wsc-university-directory .wsc-university-card .wsc-university-name{margin:0;color:#1e293b;font-size:16px;font-weight:800;letter-spacing:-.005em;line-height:1.3}
.wsc-university-directory .wsc-university-card-meta{gap:8px;margin:0}
.wsc-university-directory .wsc-university-card-meta .wsc-badge{padding:3px 9px;border:1px solid #e3e0fb;border-radius:999px;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:#2d2a7a;font-size:12px;font-weight:800}
.wsc-university-directory .wsc-university-card-meta .wsc-badge-verified{background:linear-gradient(135deg,#e6f7ec,#ecfbf3)!important;border-color:#c9f0da;color:#157a3d!important}
.wsc-university-directory .wsc-university-card-actions{margin-top:auto}
.wsc-university-directory .wsc-university-card-cta{padding:10px 18px;border:1px solid transparent;border-radius:10px;background:linear-gradient(135deg,#4338ca,#7c6cf5);box-shadow:0 8px 18px -6px rgba(67,56,202,.45);color:#fff;font-size:14px;font-weight:600;line-height:23px;text-align:center}

.wsc-university-detail-with-toc{display:block;width:100%;box-sizing:border-box}
.wsc-university-detail-with-toc .wsc-university-detail-hero{position:relative;display:flex;align-items:flex-end;gap:22px;min-height:212px;margin-bottom:26px;padding:28px 28px 24px;overflow:hidden;isolation:auto;border:1px solid #e6e4f0;border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(30,20,70,.10)}
.wsc-university-detail-with-toc .wsc-university-detail-hero::before,.wsc-university-detail-with-toc .wsc-university-detail-hero::after{content:none;display:none}
.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{position:absolute;inset:0 0 auto;width:100%;height:96px;border-radius:0;background:linear-gradient(120deg,#4338ca 0%,#6d28d9 55%,#c9a227 130%)}
.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{position:relative;z-index:1;flex:0 0 auto;padding:0;border-radius:0;background:none;box-shadow:none}
.wsc-university-detail-with-toc .wsc-university-avatar-lg{width:104px;height:104px;border:4px solid #fff;border-radius:22px;background:linear-gradient(135deg,#4338ca,#7c6cf5);box-shadow:0 8px 20px rgba(30,20,70,.18);font-size:32px}
.wsc-university-detail-with-toc .wsc-university-logo-img{object-fit:cover;background:#fff}
.wsc-university-detail-with-toc .wsc-university-detail-hero-body{position:relative;z-index:1;display:flex;flex:1 1 auto;align-self:stretch;justify-content:space-between;min-width:0;min-height:158px;margin:0;padding:6px 0 0;gap:0}
.wsc-university-detail-with-toc .wsc-university-detail-eyebrow,.wsc-university-detail-with-toc .wsc-university-detail-name .wsc-badge-verified,.wsc-university-detail-with-toc .wsc-university-detail-website-btn{display:none!important}
.wsc-university-detail-with-toc .wsc-university-detail-name{margin:0;color:#fff;font-size:26px;font-weight:800;letter-spacing:normal;line-height:1.3;text-shadow:none}
.wsc-university-detail-with-toc .wsc-university-card-meta{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:8px;width:100%;max-width:100%;margin:0 0 14px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.wsc-university-detail-with-toc .wsc-university-card-meta::-webkit-scrollbar{display:none}
.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-badge{display:block;flex:0 0 auto;padding:3px 9px;border:1px solid #e3e0fb;border-radius:999px;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:#2d2a7a;font-size:12px;font-weight:800;line-height:19px;white-space:nowrap;text-decoration:none}
.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-university-meta-location,.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-university-meta-website{border-color:#e3e0fb;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:#2d2a7a;box-shadow:none}
.wsc-university-detail-with-toc .wsc-university-detail-layout{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:26px;width:100%;box-sizing:border-box}
.wsc-university-detail-with-toc .wsc-university-toc{flex:0 0 260px;width:260px;margin:0;position:sticky;top:24px;box-sizing:border-box}
.wsc-university-detail-with-toc .wsc-university-toc-inner{padding:18px 0;overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 1px 2px rgba(30,20,70,.04),0 10px 24px -12px rgba(40,30,110,.16)}
.wsc-university-detail-with-toc .wsc-university-toc-inner h4{display:block;margin:0 0 10px;padding:0 18px 12px;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:12px;font-weight:800;letter-spacing:.4px;line-height:1.3;text-transform:uppercase}
.wsc-university-detail-with-toc .wsc-university-toc-inner h4::after{content:none;display:none}
.wsc-university-detail-with-toc .wsc-university-toc-inner nav{display:flex;flex-direction:column;gap:0;padding:8px}
.wsc-university-detail-with-toc .wsc-university-toc-link{display:flex;align-items:center;gap:10px;min-height:40px;margin:1px 0;padding:9px 12px;border:0;border-radius:10px;background:transparent;color:#64748b;font-size:13.5px;font-weight:600;line-height:22px;text-align:left;text-decoration:none;box-shadow:none;transform:none}
.wsc-university-detail-with-toc .wsc-university-toc-link-icon{display:inline;flex:0 0 auto;width:auto;height:auto;border:0;border-radius:0;background:transparent;color:inherit;font-size:14px;line-height:1;box-shadow:none}
.wsc-university-detail-with-toc .wsc-university-toc-link:hover{border:0;background:#f8f8ff;color:#4338ca;box-shadow:none;transform:none}
.wsc-university-detail-with-toc .wsc-university-toc-link.is-active{border:0;background:linear-gradient(90deg,#f2f1ff,#faf6ea);color:#4338ca;font-weight:800;box-shadow:none}
.wsc-university-detail-with-toc .wsc-university-detail-main{flex:1 1 0%;min-width:0;width:0;box-sizing:border-box}
.wsc-university-detail-with-toc .wsc-univ-accordion{display:flex;flex-direction:column;gap:14px;width:100%;box-sizing:border-box}
.wsc-university-detail-with-toc .wsc-univ-accordion-item{position:relative;overflow:hidden;scroll-margin-top:24px;border:1px solid #f2f1ff;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(30,20,70,.10);transition:border-color .15s ease,box-shadow .15s ease}
.wsc-university-detail-with-toc .wsc-univ-accordion-item::before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;background:transparent;transition:background .2s ease}
.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open{border-color:#d7dcff;box-shadow:0 10px 26px rgba(30,20,70,.10)}
.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open::before{background:linear-gradient(180deg,#4338ca,#c9a227)}
.wsc-university-detail-with-toc .wsc-univ-accordion-header,.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:68px;padding:17px 22px;border:0;border-radius:0;background:transparent;color:#4338ca;font:inherit;font-size:13.5px;font-weight:600;text-align:left}
.wsc-university-detail-with-toc .wsc-univ-accordion-header::before{content:none;display:none}
.wsc-university-detail-with-toc .wsc-univ-accordion-header-left{display:flex;align-items:center;gap:12px}
.wsc-university-detail-with-toc .wsc-univ-accordion-icon{display:flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border:0;border-radius:10px;background:#f2f1ff;color:#4338ca;font-size:16px;line-height:1}
.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open .wsc-univ-accordion-icon{background:linear-gradient(135deg,#4338ca,#7c6cf5);color:#fff}
.wsc-university-detail-with-toc .wsc-univ-accordion-chevron,.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open .wsc-univ-accordion-chevron{color:#4338ca}
.wsc-university-detail-with-toc .wsc-univ-accordion-panel{display:grid;grid-template-rows:0fr;padding:0;background:transparent;transition:grid-template-rows .25s ease}
.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open .wsc-univ-accordion-panel{grid-template-rows:1fr}
.wsc-university-detail-with-toc .wsc-univ-accordion-panel-inner{min-height:0;padding:0;overflow:hidden;color:#334155;font-size:15px;line-height:1.65}
.wsc-university-detail-with-toc .wsc-univ-accordion-panel-inner>*{margin-left:0;margin-right:0;padding:0 22px 22px}
.wsc-university-detail-with-toc .wsc-univ-accordion-panel-inner>*:first-child{padding-top:2px}
@media(max-width:900px){.wsc-university-detail-with-toc .wsc-university-detail-layout{flex-direction:column}.wsc-university-detail-with-toc .wsc-university-toc{flex:0 0 auto;width:100%;position:static}.wsc-university-detail-with-toc .wsc-university-detail-main{width:100%}.wsc-university-detail-with-toc .wsc-university-toc-inner nav{flex-direction:row;flex-wrap:wrap;gap:4px;padding:8px}.wsc-university-detail-with-toc .wsc-university-toc-link{flex:1 1 150px}}
@media(max-width:600px){.wsc-university-detail-with-toc .wsc-university-detail-hero{flex-direction:column;align-items:flex-start;gap:14px;min-height:0;padding:22px 20px 20px}.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{height:70px}.wsc-university-detail-with-toc .wsc-university-avatar-lg{width:84px;height:84px;font-size:26px}.wsc-university-detail-with-toc .wsc-university-detail-hero-body{min-height:132px}.wsc-university-detail-with-toc .wsc-university-detail-name{font-size:20px}.wsc-university-detail-with-toc .wsc-university-card-meta{gap:6px}.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-badge{font-size:11px}.wsc-university-detail-with-toc .wsc-university-toc-link{min-height:36px;padding:7px 9px;font-size:12px}.wsc-university-detail-with-toc .wsc-univ-accordion-header,.wsc-university-detail-with-toc .wsc-univ-accordion-item.is-open .wsc-univ-accordion-header{min-height:58px;padding:13px 14px;font-size:12.5px}.wsc-university-detail-with-toc .wsc-univ-accordion-panel-inner>*{padding-right:14px;padding-left:14px}}

/* University detail hero and accordion interaction: aligns the public page
   with the directory reference while retaining the configurable theme color. */
.wsc-university-detail-with-toc .wsc-university-detail-hero{display:block;min-height:264px;margin-bottom:26px;padding:0;overflow:hidden;border-color:#e6e4f0;border-radius:20px;background:#fff}
.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{display:block;height:120px;background:linear-gradient(120deg,#4338ca 0%,#6d28d9 55%,#c9a227 130%)}
.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{position:absolute;z-index:2;top:35px;left:36px}
.wsc-university-detail-with-toc .wsc-university-avatar-lg{width:122px;height:122px;border:5px solid #fff;border-radius:24px;font-size:38px}
.wsc-university-detail-with-toc .wsc-university-detail-hero-body{position:static;display:block;min-height:0;margin:0;padding:0}
.wsc-university-detail-with-toc .wsc-university-detail-name{position:absolute;z-index:1;top:46px;left:190px;display:flex;align-items:center;gap:12px;margin:0;color:#fff;font-size:29px;font-weight:800;line-height:1.2}
.wsc-university-detail-with-toc .wsc-university-detail-name .wsc-badge-verified{display:inline-flex!important;align-items:center;min-height:35px;padding:6px 13px;border:1px solid #c9f0da;border-radius:999px;background:#e9faef;color:#157a3d;font-size:13px;font-weight:700;line-height:1;text-shadow:none;white-space:nowrap}
.wsc-university-detail-with-toc .wsc-university-card-meta{position:absolute;z-index:1;top:95px;right:36px;bottom:auto;left:190px;display:flex;flex-wrap:nowrap;align-items:center;gap:9px;width:auto;max-width:none;margin:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-badge{display:inline-flex;align-items:center;flex:0 0 auto;min-height:32px;padding:5px 11px;line-height:1;white-space:nowrap}
.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-university-meta-location,.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-university-meta-website{border-color:#e3e0fb;background:linear-gradient(135deg,#eef0fd,#f5f0ff);color:#2d2a7a}
.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-university-meta-website:hover{background:var(--wsc-primary,#4338ca);color:#fff}

@media (hover:hover){
	.wsc-university-detail-with-toc .wsc-univ-accordion-header:hover{background:var(--wsc-primary,#4338ca);color:#fff}
	.wsc-university-detail-with-toc .wsc-univ-accordion-header:hover .wsc-univ-accordion-icon{background:rgba(255,255,255,.2);color:#fff}
	.wsc-university-detail-with-toc .wsc-univ-accordion-header:hover .wsc-univ-accordion-chevron{color:#fff}
}
.wsc-university-detail-with-toc .wsc-univ-accordion-header:focus-visible{outline:3px solid rgba(67,56,202,.34);outline-offset:-3px;background:var(--wsc-primary,#4338ca);color:#fff}
.wsc-university-detail-with-toc .wsc-univ-accordion-header:focus-visible .wsc-univ-accordion-icon{background:rgba(255,255,255,.2);color:#fff}
.wsc-university-detail-with-toc .wsc-univ-accordion-header:focus-visible .wsc-univ-accordion-chevron{color:#fff}

@media(max-width:600px){
	.wsc-university-detail-with-toc .wsc-university-detail-hero{min-height:238px}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{height:92px}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{top:32px;left:20px}
	.wsc-university-detail-with-toc .wsc-university-avatar-lg{width:86px;height:86px;border-radius:19px;font-size:28px}
	.wsc-university-detail-with-toc .wsc-university-detail-name{top:25px;left:122px;gap:7px;font-size:19px}
	.wsc-university-detail-with-toc .wsc-university-detail-name .wsc-badge-verified{min-height:26px;padding:4px 8px;font-size:10px}
	.wsc-university-detail-with-toc .wsc-university-card-meta{top:79px;right:16px;bottom:auto;left:122px;gap:6px}
	.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-badge{min-height:27px;padding:4px 8px;font-size:10px}
}

/* Compact university-detail header: the gradient is deliberately a short
   85px top band, while the white lower portion retains room for the logo. */
.wsc-university-detail-with-toc .wsc-university-detail-hero{height:190px;min-height:190px;max-height:190px}
.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{height:85px}
.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{top:0}
.wsc-university-detail-with-toc .wsc-university-detail-name{top:19px}
.wsc-university-detail-with-toc .wsc-university-card-meta{top:54px}
@media(max-width:600px){
	.wsc-university-detail-with-toc .wsc-university-detail-hero{height:190px;min-height:190px;max-height:190px}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{height:85px}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{top:0}
	.wsc-university-detail-with-toc .wsc-university-detail-name{top:16px}
	.wsc-university-detail-with-toc .wsc-university-card-meta{top:48px}
}

/* Final desktop alignment for the compact university-detail hero. */
.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{top:36px}
.wsc-university-detail-with-toc .wsc-university-detail-name{top:40px}
.wsc-university-detail-with-toc .wsc-university-card-meta{top:100px}

/* Keep the compact mobile layout intact. */
@media(max-width:600px){
	.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{top:40px}
	.wsc-university-detail-with-toc .wsc-university-detail-name{top:10px}
	.wsc-university-detail-with-toc .wsc-university-card-meta{top:125px}
}

/* Course & Fee accordion: Student Profile modal polish. The close control is
   intentionally a solid, high-contrast surface so it remains clear on the
   purple banner and has the same finish as the rest of the plugin modal UI. */
.wsc-student-profile-modal .wsc-modal-content{
	border:1px solid rgba(255,255,255,.82);
	background:linear-gradient(180deg,#fff 0%,#fcfbff 100%);
	box-shadow:0 30px 76px rgba(15,23,42,.42),0 0 0 1px rgba(67,56,202,.08);
}
.wsc-student-profile-modal .wsc-modal-close{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	top:16px;
	right:16px;
	width:36px;
	height:36px;
	min-width:36px;
	min-height:36px;
	padding:0;
	border:1px solid rgba(255,255,255,.96);
	border-radius:50%;
	background:#fff;
	color:#4338ca;
	box-shadow:0 5px 15px rgba(30,27,75,.24);
	font-size:23px;
	font-weight:500;
	line-height:1;
	transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.wsc-student-profile-modal .wsc-modal-close:hover{
	background:#4338ca;
	color:#fff;
	box-shadow:0 8px 18px rgba(30,27,75,.32);
	transform:translateY(-1px);
}
.wsc-student-profile-modal .wsc-modal-close:focus-visible{
	outline:3px solid rgba(255,255,255,.72);
	outline-offset:2px;
	background:#4338ca;
	color:#fff;
}
.wsc-student-profile-modal .wsc-modal-body{background:linear-gradient(180deg,#fff 0%,#fcfbff 100%)}

/* Single and group repeater controls shared by Profile, Registration and Booking forms. */
.wsc-repeater-field{display:grid;gap:8px}.wsc-repeater-rows{display:grid;gap:8px}.wsc-repeater-row{display:flex;gap:8px}.wsc-repeater-row input{flex:1;min-width:0}.wsc-repeater-group{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px 42px 14px 14px;border:1px solid var(--wsc-border);border-radius:10px;background:#fafaff}.wsc-repeater-group label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--wsc-muted)}.wsc-repeater-remove,.wsc-repeater-add{border:1px solid #d7dcff;border-radius:8px;background:#fff;color:var(--wsc-primary);font:700 14px inherit;cursor:pointer}.wsc-repeater-remove{flex:0 0 38px;min-height:38px;font-size:22px;line-height:1}.wsc-repeater-group .wsc-repeater-remove{position:absolute;top:10px;right:10px;width:28px;min-height:28px;padding:0}.wsc-repeater-add{justify-self:start;min-height:36px;padding:0 12px}.wsc-repeater-add:hover,.wsc-repeater-remove:hover{border-color:var(--wsc-primary);background:var(--wsc-primary);color:#fff}

/* Compact, click-to-open field help. It replaces long helper sentences under
   an input without hiding them from keyboard or screen-reader users. */
.wsc-field-group>label{position:relative}.wsc-field-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-left:6px;padding:0;border:1px solid var(--wsc-primary,#4338ca);border-radius:50%;background:#fff;color:var(--wsc-primary,#4338ca);font:700 11px/1 Arial,sans-serif;vertical-align:middle;cursor:pointer}.wsc-field-tooltip-trigger:hover,.wsc-field-tooltip-trigger:focus-visible{background:var(--wsc-primary,#4338ca);color:#fff;outline:none}.wsc-field-tooltip{position:absolute;z-index:30;left:0;top:calc(100% + 7px);display:none;max-width:min(300px,calc(100vw - 42px));padding:9px 11px;border-radius:8px;background:#24213f;color:#fff;font-size:12px;font-weight:500;line-height:1.35;box-shadow:0 8px 20px rgba(20,17,50,.22)}.wsc-field-tooltip::before{content:"";position:absolute;left:10px;top:-5px;width:10px;height:10px;background:#24213f;transform:rotate(45deg)}.wsc-field-group>label.is-tooltip-open .wsc-field-tooltip{display:block}.wsc-field-tooltip-trigger:focus-visible+.wsc-field-tooltip{display:block}

/* Keep text and icons white whenever a frontend interactive control changes
   to a dark/primary surface on hover. Light hover surfaces intentionally keep
   their regular dark text for contrast. */
@media (hover:hover){
	.wsc-btn-primary:hover,
	.wsc-btn-outline:hover,
	.wsc-btn-upload:hover,
	.wsc-day-available:hover,
	.wsc-slot-btn:hover,
	.wsc-filters-toggle:hover,
	.wsc-logout-button:hover,
	.wsc-university-meta-website:hover,
	.wsc-university-detail-with-toc .wsc-univ-accordion-header:hover,
	.wsc-student-profile-modal .wsc-modal-close:hover{
		color:#fff !important;
	}
	.wsc-btn-primary:hover :is(svg,.dashicons),
	.wsc-btn-outline:hover :is(svg,.dashicons),
	.wsc-btn-upload:hover :is(svg,.dashicons),
	.wsc-day-available:hover :is(svg,.dashicons),
	.wsc-slot-btn:hover :is(svg,.dashicons),
	.wsc-filters-toggle:hover :is(svg,.dashicons),
	.wsc-logout-button:hover :is(svg,.dashicons),
	.wsc-university-meta-website:hover :is(svg,.dashicons),
	.wsc-university-detail-with-toc .wsc-univ-accordion-header:hover :is(svg,.dashicons){
		color:#fff !important;
		stroke:currentColor;
	}
}

/* ------------------------------------------------------------------
   Classic Design — selected in Settings > Frontend Appearance.
   Premium remains the default. These overrides intentionally keep the
   configured brand colours while replacing gradients, large rounding and
   floating-card effects with a calmer, traditional interface.
   ------------------------------------------------------------------ */
.wsc-registration-payment-box{display:grid;gap:8px;margin:18px 0;padding:15px 16px;border:1px solid #d9dcf6;border-radius:12px;background:#f8f8ff;color:#25235a}
/* Keep a role-restricted fee hidden for non-selected user types even though
   this component normally uses a grid layout. */
.wsc-registration-payment-box[hidden]{display:none !important}
.wsc-registration-payment-box strong{font-size:15px}.wsc-registration-payment-box p{margin:0;color:#646482;font-size:13px}.wsc-registration-payment-box label{font-weight:700;font-size:13px}.wsc-registration-payment-box select{min-height:42px;padding:8px 10px;border:1px solid #cfd3ee;border-radius:8px;background:#fff;color:#24213f}
.wsc-registration-otp-method{display:grid;gap:8px;margin:16px 0;padding:13px 14px;border:1px solid #d8d9f3;border-radius:12px;background:#fbfbff;color:#25235a}.wsc-registration-otp-method[hidden]{display:none!important}.wsc-registration-otp-method-label{font-size:13px;font-weight:700}.wsc-registration-otp-method select,.wsc-registration-otp-phone-fallback input{width:100%;min-height:42px;padding:8px 10px;border:1px solid #cfd3ee;border-radius:8px;background:#fff;color:#25235a;box-sizing:border-box;font:inherit}.wsc-registration-otp-method select:focus,.wsc-registration-otp-phone-fallback input:focus{border-color:var(--wsc-primary,#4338ca);outline:0;box-shadow:0 0 0 3px rgba(67,56,202,.12)}.wsc-registration-otp-method-note{margin:0;color:#646482;font-size:12px;line-height:1.4}.wsc-registration-otp-phone-fallback{display:grid;gap:5px}.wsc-registration-otp-phone-fallback[hidden]{display:none!important}.wsc-registration-otp-phone-fallback label{font-size:13px;font-weight:700}.wsc-registration-otp-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.wsc-registration-otp-card{display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:7px 8px;border:1px solid #d4d5ed;border-radius:8px;background:#fff;color:#363354;cursor:pointer;font-size:13px;font-weight:700;line-height:1.2;text-align:center}.wsc-registration-otp-card input{position:absolute;opacity:0;pointer-events:none}.wsc-registration-otp-card:has(input:checked){border-color:var(--wsc-primary,#4338ca);background:#f2f1ff;color:var(--wsc-primary,#4338ca);box-shadow:0 0 0 2px rgba(67,56,202,.10)}.wsc-registration-otp-card:focus-within{outline:2px solid rgba(67,56,202,.28);outline-offset:2px}.wsc-registration-otp-card-icon{font-size:16px;line-height:1}.wsc-registration-otp-box{display:grid;gap:10px;margin:18px 0;padding:15px 16px;border:1px solid #cdd8f7;border-radius:12px;background:#f7f9ff;color:#25235a}.wsc-registration-otp-box[hidden]{display:none!important}.wsc-registration-otp-box strong{font-size:15px}.wsc-registration-otp-help{margin:0;color:#646482;font-size:13px;line-height:1.45}.wsc-registration-otp-box .wsc-field-group{margin:0}.wsc-registration-otp-box input[type="text"]{width:100%;min-height:42px;padding:8px 10px;border:1px solid #cfd3ee;border-radius:8px;box-sizing:border-box;letter-spacing:.14em;text-align:center;text-transform:uppercase}.wsc-registration-otp-resend{justify-self:start;padding:8px 13px;font-size:12px}
@media (max-width:480px){.wsc-registration-otp-method,.wsc-registration-otp-box{padding:13px}.wsc-registration-otp-cards{grid-template-columns:1fr}.wsc-registration-otp-card{justify-content:flex-start;padding-left:12px}.wsc-registration-otp-resend{width:100%;justify-self:stretch}}

/* Password reveal toggle for registration Password and Confirm Password fields. */
.wsc-password-control{position:relative;display:block}.wsc-password-control>input{width:100%;padding-right:48px!important;box-sizing:border-box}.wsc-password-toggle{position:absolute;top:50%;right:7px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:7px;transform:translateY(-50%);background:transparent;color:var(--wsc-muted,#646482);cursor:pointer}.wsc-password-toggle:hover,.wsc-password-toggle:focus-visible{background:rgba(67,56,202,.10);color:var(--wsc-primary,#4338ca);outline:0}.wsc-password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.wsc-password-toggle:focus-visible{box-shadow:0 0 0 2px rgba(67,56,202,.28)}

/* Compact, tap-friendly field-information tooltips. */
.wsc-field-tooltip-trigger{width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;max-height:14px!important;flex:0 0 14px;margin-left:5px;font-size:9px;line-height:1!important}
.wsc-field-tooltip{top:calc(100% + 6px);max-width:min(240px,calc(100vw - 32px));padding:7px 9px;border-radius:6px;font-size:10px;line-height:1.35;overflow-wrap:anywhere;box-shadow:0 6px 16px rgba(20,17,50,.20)}
.wsc-field-tooltip::before{left:8px;top:-4px;width:8px;height:8px}
@media (max-width:640px){.wsc-field-group>label{display:inline-block;max-width:100%}.wsc-field-tooltip{width:min(240px,calc(100vw - 32px));max-width:calc(100vw - 32px);white-space:normal}.wsc-field-tooltip-trigger{width:14px;height:14px;margin-left:4px}}
.wsc-booking-timezone-field #wsc-booking-timezone-search{display:block;width:100%;margin:8px 0 7px;padding:10px 12px;border:1px solid var(--wsc-border,#e6e4f0);border-radius:8px;background:#fff;color:var(--wsc-text,#22213a);font:inherit}.wsc-booking-timezone-field #wsc-booking-timezone-search:focus{border-color:var(--wsc-primary,#4338ca);outline:0;box-shadow:0 0 0 3px rgba(67,56,202,.12)}

/* Compact, responsive timezone control used before slot selection. */
.wsc-booking-timezone-step{margin:18px 20px 0;padding:16px 18px;border:1px solid var(--wsc-border,#e6e4f0);border-radius:12px;background:linear-gradient(135deg,#fbfbff,#f7f8ff);box-sizing:border-box}.wsc-booking-timezone-step>.wsc-step-label{margin-bottom:10px}.wsc-booking-timezone-step .wsc-booking-timezone-field{width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent}.wsc-booking-timezone-continue{justify-self:end;margin-top:11px;min-height:40px}.wsc-booking-columns[hidden]{display:none!important}
.wsc-booking-timezone-field{width:min(100% - 40px,680px);margin:14px 20px 0;padding:10px 12px 9px;border:1px solid var(--wsc-border,#e6e4f0);border-radius:10px;background:#fafaff;box-sizing:border-box}
.wsc-booking-timezone-field>label{display:block;margin:0 0 6px;color:var(--wsc-text,#22213a);font-size:13px;font-weight:700}
.wsc-booking-timezone-field .wsc-required-mark{color:#c72727}
.wsc-booking-timezone-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(184px,230px);gap:8px;align-items:center}
.wsc-booking-timezone-field #wsc-booking-timezone-search,.wsc-booking-timezone-field #wsc-booking-timezone{width:100%;min-height:38px;margin:0;padding:7px 10px;border:1px solid var(--wsc-border,#e6e4f0);border-radius:7px;background:#fff;color:var(--wsc-text,#22213a);box-sizing:border-box;font:inherit;font-size:13px}
.wsc-booking-timezone-field #wsc-booking-timezone-search:focus,.wsc-booking-timezone-field #wsc-booking-timezone:focus{border-color:var(--wsc-primary,#4338ca);outline:0;box-shadow:0 0 0 2px rgba(67,56,202,.12)}
.wsc-booking-timezone-field .wsc-hint{margin:6px 0 0;font-size:11px;line-height:1.35}
@media (max-width:640px){.wsc-booking-timezone-step{margin:12px 14px 0;padding:13px;border-radius:10px}.wsc-booking-timezone-step .wsc-booking-timezone-field{width:100%;margin:0;padding:0}.wsc-booking-timezone-continue{width:100%;margin-top:9px}.wsc-booking-timezone-field{width:calc(100% - 28px);margin:10px 14px 0;padding:9px 10px;border-radius:8px}.wsc-booking-timezone-controls{grid-template-columns:1fr;gap:6px}.wsc-booking-timezone-field #wsc-booking-timezone-search,.wsc-booking-timezone-field #wsc-booking-timezone{min-height:37px;font-size:13px}.wsc-booking-timezone-field .wsc-hint{font-size:10.5px}}

/* Provider availability timezone: same compact selector pattern as booking. */
.wsc-provider-timezone-field{padding:10px 12px!important;border:1px solid var(--wsc-border,#e6e4f0);border-radius:10px;background:#fafaff;box-sizing:border-box}
.wsc-provider-timezone-field>label{display:block;margin:0 0 6px;color:var(--wsc-text,#22213a);font-size:13px;font-weight:700}
.wsc-provider-timezone-field .wsc-required-mark{color:#c72727}
.wsc-provider-timezone-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(184px,230px);gap:8px;align-items:center}
.wsc-provider-timezone-field #wsc-provider-timezone-search,.wsc-provider-timezone-field #wsc-provider-timezone{width:100%;min-height:38px;margin:0;padding:7px 10px;border:1px solid var(--wsc-border,#e6e4f0);border-radius:7px;background:#fff;color:var(--wsc-text,#22213a);box-sizing:border-box;font:inherit;font-size:13px}
.wsc-provider-timezone-field #wsc-provider-timezone-search:focus,.wsc-provider-timezone-field #wsc-provider-timezone:focus{border-color:var(--wsc-primary,#4338ca);outline:0;box-shadow:0 0 0 2px rgba(67,56,202,.12)}
.wsc-provider-timezone-field .wsc-hint{display:block;margin:6px 0 0;font-size:11px;line-height:1.35}
@media (max-width:640px){.wsc-provider-timezone-field{padding:9px 10px!important;border-radius:8px}.wsc-provider-timezone-controls{grid-template-columns:1fr;gap:6px}.wsc-provider-timezone-field #wsc-provider-timezone-search,.wsc-provider-timezone-field #wsc-provider-timezone{min-height:37px;font-size:13px}.wsc-provider-timezone-field .wsc-hint{font-size:10.5px}}

/* Parent/customer dashboard timezone follows the same compact, searchable UI. */
.wsc-customer-timezone-field{padding:10px 12px!important;border:1px solid var(--wsc-border,#e6e4f0);border-radius:10px;background:#fafaff;box-sizing:border-box}.wsc-customer-timezone-field>label{display:block;margin:0 0 6px;color:var(--wsc-text,#22213a);font-size:13px;font-weight:700}.wsc-customer-timezone-field .wsc-required-mark{color:#c72727}.wsc-customer-timezone-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(184px,230px);gap:8px;align-items:center}.wsc-customer-timezone-field #wsc-customer-timezone-search,.wsc-customer-timezone-field #wsc-customer-timezone{width:100%;min-height:38px;margin:0;padding:7px 10px;border:1px solid var(--wsc-border,#e6e4f0);border-radius:7px;background:#fff;color:var(--wsc-text,#22213a);box-sizing:border-box;font:inherit;font-size:13px}.wsc-customer-timezone-field #wsc-customer-timezone-search:focus,.wsc-customer-timezone-field #wsc-customer-timezone:focus{border-color:var(--wsc-primary,#4338ca);outline:0;box-shadow:0 0 0 2px rgba(67,56,202,.12)}.wsc-customer-timezone-field .wsc-hint{display:block;margin:6px 0 0;font-size:11px;line-height:1.35}
@media (max-width:640px){.wsc-customer-timezone-field{padding:9px 10px!important;border-radius:8px}.wsc-customer-timezone-controls{grid-template-columns:1fr;gap:6px}.wsc-customer-timezone-field #wsc-customer-timezone-search,.wsc-customer-timezone-field #wsc-customer-timezone{min-height:37px;font-size:13px}.wsc-customer-timezone-field .wsc-hint{font-size:10.5px}}

/* Keep notification messages readable on every mobile layout, not only app mode. */
@media (max-width:680px) {
	.wsc-notif-dropdown:not([hidden]) {
		position: fixed;
		top: max(10px, env(safe-area-inset-top));
		right: 10px;
		bottom: max(12px, env(safe-area-inset-bottom));
		left: 10px;
		z-index: 10020;
		width: auto;
		max-width: none;
		max-height: none;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}
	.wsc-notif-dropdown:not([hidden]) .wsc-notif-list {
		flex: 1 1 auto;
		min-height: 0;
		max-height: none;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}
}

.wsc-manage-universities-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:20px 24px 0}.wsc-manage-universities-heading .wsc-add-university-title{margin:0}@media(max-width:680px){.wsc-manage-universities-heading{padding:17px 18px 0}}@media(max-width:520px){.wsc-manage-universities-heading{align-items:flex-start;flex-direction:column}.wsc-manage-universities-heading .wsc-btn{width:100%;justify-content:center}}

/* University Manager dashboard: profile plus an owned-university workspace. */
.wsc-university-manager-dashboard { max-width: 1180px; margin: 0 auto; }
.wsc-university-manager-dashboard .wsc-university-manager-profile-card { margin: 22px 0; }
.wsc-university-manager-profile-card > h3 { margin: 0 0 18px; font-size: 19px; color: var(--wsc-text); }
.wsc-university-manager-profile-card .wsc-field-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.wsc-university-manager-profile-card .wsc-field-group { grid-column: span 12; }
.wsc-university-manager-profile-card .wsc-field-w-50 { grid-column: span 6; }
.wsc-university-manager-profile-card .wsc-field-w-33 { grid-column: span 4; }
.wsc-university-manager-profile-card .wsc-field-w-25 { grid-column: span 3; }
.wsc-university-manager-workspace { margin-top: 22px; }
@media (max-width: 680px) {
	.wsc-university-manager-profile-card .wsc-field-w-50,
	.wsc-university-manager-profile-card .wsc-field-w-33,
	.wsc-university-manager-profile-card .wsc-field-w-25 { grid-column: span 12; }
}

/* University detail logo: keep every aspect ratio inside its dedicated
   square instead of cropping a wide wordmark or a tall crest. */
.wsc-university-detail-with-toc .wsc-university-detail-hero .wsc-university-logo-img{box-sizing:border-box;display:block;object-fit:contain!important;object-position:center;padding:8px;background:#fff}
@media (max-width:600px){.wsc-university-detail-with-toc .wsc-university-detail-hero .wsc-university-logo-img{padding:5px}}

/* Mobile university hero: keep every element in document flow.  The desktop
   layout intentionally uses positioned elements, but carrying those offsets
   into a narrow card makes a long name collide with the logo and stat chips. */
@media (max-width:600px){
	.wsc-university-detail-with-toc .wsc-university-detail-hero{
		display:flex;
		flex-direction:column;
		align-items:stretch;
		height:auto;
		min-height:0;
		max-height:none;
		gap:0;
		padding:0 16px 18px;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{
		height:80px;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{
		position:relative;
		top:auto;
		left:auto;
		align-self:flex-start;
		margin:24px 0 0;
	}
	.wsc-university-detail-with-toc .wsc-university-avatar-lg{
		width:76px;
		height:76px;
		border-width:3px;
		border-radius:18px;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-body{
		position:relative;
		display:flex;
		flex:0 0 auto;
		flex-direction:column;
		align-items:flex-start;
		min-height:0;
		margin:12px 0 0;
		padding:0;
		gap:10px;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-name{
		position:static;
		width:100%;
		margin:0;
		color:var(--wsc-text,#1e293b);
		font-size:20px;
		line-height:1.3;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-name .wsc-badge-verified{
		display:inline-flex!important;
		margin-top:2px;
	}
	.wsc-university-detail-with-toc .wsc-university-card-meta{
		position:static;
		display:flex;
		flex-wrap:wrap;
		width:100%;
		max-width:100%;
		margin:0;
		overflow:visible;
		gap:6px;
	}
	.wsc-university-detail-with-toc .wsc-university-card-meta .wsc-badge{
		min-height:28px;
		font-size:11px;
	}
}

/* Shared plugin-style confirmation dialog used by every front-end logout link. */
body.wsc-modal-open{overflow:hidden}
.wsc-logout-modal{position:fixed;z-index:100050;inset:0;display:none;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}
.wsc-logout-modal.is-open{display:flex}
.wsc-logout-modal__backdrop{position:absolute;inset:0;background:rgba(20,17,50,.58);backdrop-filter:blur(4px)}
.wsc-logout-modal__dialog{position:relative;z-index:1;width:min(100%,430px);overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:18px;background:#fff;box-shadow:0 28px 72px rgba(15,23,42,.42),0 0 0 1px rgba(67,56,202,.08);animation:wsc-logout-modal-in .18s ease-out}
.wsc-logout-modal__banner{display:flex;align-items:center;gap:9px;min-height:62px;padding:0 62px 0 22px;background:linear-gradient(135deg,#4338ca,#6d28d9 60%,#8b5cf6);color:#fff;font-size:15px;font-weight:800}
.wsc-logout-modal__icon{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid rgba(255,255,255,.5);border-radius:9px;background:rgba(255,255,255,.16);font-size:17px;line-height:1}
.wsc-logout-modal__close{position:absolute;z-index:2;top:13px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.92);border-radius:50%;background:#fff;color:#4338ca;box-shadow:0 4px 12px rgba(30,27,75,.22);font-size:23px;line-height:1;cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease}
.wsc-logout-modal__close:hover,.wsc-logout-modal__close:focus-visible{background:#4338ca;color:#fff;outline:0;transform:translateY(-1px)}
.wsc-logout-modal__content{padding:24px}
.wsc-logout-modal__content h3{margin:0 0 7px;color:var(--wsc-text,#24213f);font-size:21px;line-height:1.2}
.wsc-logout-modal__content p{margin:0;color:var(--wsc-muted,#646482);font-size:14px;line-height:1.55}
.wsc-logout-modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.wsc-logout-modal__actions .wsc-btn{min-height:40px;padding:8px 15px}
.wsc-logout-modal__cancel{border-color:#dddced;background:#fff;color:var(--wsc-text,#24213f)}
.wsc-logout-modal__cancel:hover{border-color:#c9c6ef;background:#f7f6ff;color:var(--wsc-text,#24213f)}
.wsc-logout-modal__confirm{min-width:90px}
.wsc-logout-modal__confirm:disabled{cursor:wait;opacity:.72}
@keyframes wsc-logout-modal-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:480px){.wsc-logout-modal{align-items:flex-end;padding:12px}.wsc-logout-modal__dialog{border-radius:16px}.wsc-logout-modal__content{padding:21px 18px}.wsc-logout-modal__actions{display:grid;grid-template-columns:1fr}.wsc-logout-modal__actions .wsc-btn{width:100%;justify-content:center}.wsc-logout-modal__confirm{grid-row:1}}

/* v1.6.41 — Mobile university-detail hero refinements only. */
@media (max-width:600px){
	/* Reduce the existing 76px logo box by 20% (76 × .8 ≈ 61px). */
	.wsc-university-detail-with-toc .wsc-university-detail-hero .wsc-university-avatar-lg{
		width:61px!important;
		height:61px!important;
	}
	/* The mobile title sits over the gradient band, so keep it high contrast. */
	.wsc-university-detail-with-toc .wsc-university-detail-name{
		color:#fff!important;
	}
	/* Anchor the university metadata row to the hero's lower edge. */
	.wsc-university-detail-with-toc .wsc-university-detail-hero-body{
		position:static;
	}
	.wsc-university-detail-with-toc .wsc-university-card-meta{
		position:absolute!important;
		top:auto!important;
		right:16px!important;
		bottom:10px!important;
		left:16px!important;
		width:auto!important;
		max-width:none!important;
		margin:0!important;
	}
}

/* v1.6.42 — Mobile university-detail hero alignment only.
   Keeps the logo/title/registration state inside the gradient band while
   leaving the metadata row anchored 10px above the card's lower edge. */
@media (max-width:600px){
	.wsc-university-detail-with-toc .wsc-university-detail-hero{
		position:relative!important;
		display:block!important;
		height:260px!important;
		min-height:260px!important;
		max-height:260px!important;
		padding:0 16px 18px!important;
		overflow:hidden!important;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-cover{
		height:132px!important;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-avatar{
		position:absolute!important;
		z-index:3!important;
		top:28px!important;
		left:18px!important;
		margin:0!important;
	}
	/* 61px in v1.6.41 × 1.15 = 70.15px. */
	.wsc-university-detail-with-toc .wsc-university-detail-hero .wsc-university-avatar-lg{
		width:70px!important;
		height:70px!important;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-hero-body{
		position:static!important;
		display:block!important;
		min-height:0!important;
		margin:0!important;
		padding:0!important;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-name{
		position:absolute!important;
		z-index:3!important;
		top:17px!important;
		right:14px!important;
		left:104px!important;
		display:block!important;
		width:auto!important;
		margin:0!important;
		color:#fff!important;
		font-size:18px!important;
		font-weight:800!important;
		line-height:1.2!important;
		text-shadow:none!important;
	}
	.wsc-university-detail-with-toc .wsc-university-detail-name .wsc-badge-verified{
		display:flex!important;
		align-items:center!important;
		width:max-content!important;
		min-height:24px!important;
		margin:7px 0 0!important;
		padding:4px 9px!important;
		border:1px solid #c9f0da!important;
		border-radius:999px!important;
		background:#e6f7ec!important;
		color:#1a7a3e!important;
		font-size:10px!important;
		font-weight:700!important;
		line-height:1!important;
		text-shadow:none!important;
		white-space:nowrap!important;
	}
	.wsc-university-detail-with-toc .wsc-university-card-meta{
		position:absolute!important;
		top:auto!important;
		right:16px!important;
		bottom:10px!important;
		left:16px!important;
		width:auto!important;
		max-width:none!important;
		margin:0!important;
	}
}

/* v1.6.44 — Compact mobile university-detail metadata area only.
   The gradient/title/logo layout remains unchanged; the white lower area now
   wraps the metadata row with approximately 8px above and 10px below it. */
@media (max-width:600px){
	.wsc-university-detail-with-toc .wsc-university-detail-hero{
		height:178px!important;
		min-height:178px!important;
		max-height:178px!important;
	}
}
