.lp-card,

.lp-panel,

.lp-admin-card,

.lp-selection-panel,

.lp-admin-form-card {

	max-width: 100%;

	border: 1px solid var(--lp-border);

	background: var(--lp-surface);

	border-radius: var(--lp-radius-none);

	box-shadow: none;

}

.lp-notice--error{

	font-size: var(--lp-font-sm);

}

.lp-notice--error p{

	margin:0;

}



.lp-card,

.lp-panel,

.lp-admin-card,

.lp-admin-form-card {

	padding: var(--lp-card-padding);

}



.lp-card--flush,

.lp-panel--flush {

	padding: 0;

}



.lp-card__header,

.lp-panel__header,

.lp-selection-panel header {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-card-gap);

	padding: var(--lp-card-header-padding);

	border-bottom: 1px solid var(--lp-border);

}



.lp-card__title,

.lp-panel__title,

.lp-selection-panel h2 {

	display: inline-flex;

	align-items: center;

	gap: var(--lp-space-3);

	margin: 0;

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	line-height: 1.2;

	text-transform: uppercase;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-card__body,

.lp-panel__body {

	padding: var(--lp-card-padding);

}



.lp-card__footer,

.lp-panel__footer {

	padding: var(--lp-space-4) var(--lp-space-6);

	border-top: 1px solid var(--lp-border-light);

}



.lp-button,

.lp-button--secondary,

.lp-submit-request-button,

button.lp-button,

a.lp-button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-2);

	width: var(--lp-button-secondary-width);

	min-height: var(--lp-button-secondary-height);

	padding: 6px;

	border: 1px solid var(--lp-red);

	border-radius: var(--lp-radius-none);

	background: var(--lp-red);

	color: #fff;

	font-family: var(--lp-font-button);

	font-size: var(--lp-button-font-size);

	font-weight: 400;

	line-height: 1.1;

	text-align: center;

	text-decoration: none;

	text-transform: uppercase;

	letter-spacing: var(--lp-button-letter-spacing);

	cursor: pointer;

	transition: background var(--lp-transition-fast), color var(--lp-transition-fast), border-color var(--lp-transition-fast);

}



.lp-button:hover,

.lp-button--secondary:hover {

	border-color: var(--lp-red);

	color: #fff;

}



.lp-button--primary,

.lp-submit-request-button {

	width: var(--lp-button-primary-width);

	min-height: var(--lp-button-primary-height);

	border-color: var(--lp-red);

	background: var(--lp-red);

	color: #fff;

	text-transform: uppercase;

	letter-spacing: var(--lp-button-letter-spacing);

}



.lp-button--primary:hover,

.lp-submit-request-button:hover {

	border-color: var(--lp-red-dark);

	background: var(--lp-red-dark);

	color: #fff;

}



.lp-button--outline {

	border-color: var(--lp-border);

	background: #fff;

	color: var(--lp-text);

}



.lp-button--danger,

.lp-button--refuse {

	border-color: var(--lp-red);

	background: #fff;

	color: var(--lp-red);

}



.lp-button--success,

.lp-button--approve {

	border-color: var(--lp-green);

	background: #fff;

	color: var(--lp-green);

}



.lp-button:disabled,

.lp-submit-request-button:disabled,

button:disabled {

	opacity: 0.45;

	cursor: not-allowed;

}



.lp-filter-bar {

	display: flex;

	flex-wrap: wrap;

	align-items: center;

	gap: var(--lp-space-3);

	margin-bottom: 15px;

}



.lp-filter-select,

.lp-filter-bar select,

.lp-admin-class-filters select,

.lp-student-class-filters select,

.lp-calendar-toolbar select {

	min-height: 32px;

	height: 32px;

	min-width: 160px;

	padding: 0 var(--lp-space-3);

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-none);

	background-color: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

	letter-spacing: 0;

}



.lp-filter-button {

	display: inline-flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-3);

	width: 160px;

	min-width: 160px;

	height: 32px;

	min-height: 32px;

	padding: 0 var(--lp-space-3);

	border: 1px solid var(--lp-text);

	border-radius: var(--lp-radius-none);

	background-color: var(--lp-text);

	color: #fff;

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 900;

	letter-spacing: 0.02em;

}



.lp-filter-button {

	padding-right: 14px;

	text-decoration: none;

	cursor: pointer;

}



.lp-search-field {

	min-height: 38px;

	padding: 7px 14px;

	border: 1px solid var(--lp-border);

	background: #fff;

	color: var(--lp-text);

}



.lp-form,

.lp-admin-form,

.lp-class-form {

	display: grid;

	gap: var(--lp-space-5);

}



.lp-form-grid,

.lp-admin-form-grid {

	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: var(--lp-space-4);

}



.lp-form-grid .lp-form-field--full,

.lp-admin-form-grid .lp-form-field--full,

.lp-form-grid .lp-field--full,

.lp-admin-form-grid .lp-field--full {

	grid-column: 1 / -1;

}



.lp-form__field,

.lp-admin-form-field,

.lp-field {

	display: grid;

	gap: 6px;

	margin: 0;

}



.lp-form__field input,

.lp-form__field select,

.lp-form__field textarea,

.lp-admin-form-field input,

.lp-admin-form-field select,

.lp-admin-form-field textarea,

.lp-field input,

.lp-field select,

.lp-field textarea {

	width: 100%;

	min-height: var(--lp-input-height);

	padding: var(--lp-input-padding);

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-none);

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



.lp-form__label,

.lp-field label,

.lp-admin-form-field label {

	color: var(--lp-text-dark);

	font-weight: 700;

	font-size: var(--lp-font-sm);

}



.lp-form__description,

.lp-field-description {

	color: var(--lp-muted);

	font-size: var(--lp-font-xs);

	font-style: italic;

}



.lp-table-wrap {

	width: 100%;

	overflow-x: auto;

	-webkit-overflow-scrolling: touch;

}



.lp-table {

	width: 100%;

	border-collapse: collapse;

	border: 1px solid var(--lp-border);

	background: #fff;

}



.lp-table th {

	padding: 10px;

	background: var(--lp-blue);

	color: #fff;

	font-family: var(--lp-font-main);

	font-size: var(--lp-table-header-size);

	font-weight: 900;

	text-align: left;

	text-transform: uppercase;

	letter-spacing: var(--lp-label-letter-spacing);

}



.lp-table td {

	padding: 10px;

	border-bottom: 1px solid var(--lp-border-light);

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-table-cell-size);

	font-weight: 400;

	vertical-align: middle;

}



.lp-table tr:last-child td {

	border-bottom: 0;

}



.lp-badge {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 6px;

	min-height: 26px;

	padding: 5px 14px;

	font-size: var(--lp-font-xs);

	font-weight: 800;

	line-height: 1;

}



.lp-badge--success,

.lp-badge--approved,

.lp-badge--present,

.lp-badge--paid {

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

}



.lp-badge--danger,

.lp-badge--rejected,

.lp-badge--absent,

.lp-badge--unpaid,

.lp-badge--refused {

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

}



.lp-badge--warning,

.lp-badge--pending {

	background: var(--lp-warning-bg);

	color: var(--lp-warning-text);

}



.lp-badge--info,

.lp-badge--partial {

	background: #F8EAF7;

	color: var(--lp-purple);

}



.lp-notice,

.lp-empty-state {

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-border);

	background: #fff;

	color: var(--lp-text);

}



.lp-notice--success {

	border-color: var(--lp-green);

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

}



.lp-notice--error,

.lp-notice--danger {

	border-color: var(--lp-red);

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

}



.lp-notice--warning {

	border-color: var(--lp-orange);

	background: var(--lp-warning-bg);

	color: var(--lp-warning-text);

}



.lp-info-row__icon {

	color: var(--lp-muted);

}



.lp-info-row__label {

	display: block;

	color: var(--lp-muted);

	font-size: var(--lp-font-xs);

	letter-spacing: 0.04em;

}



.lp-info-row__value {

	display: block;

	color: var(--lp-text);

	font-weight: 700;

}



.lp-side-list {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-key-value-list {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-key-value-row {

	display: grid;

	grid-template-columns: minmax(0, 1fr) auto;

	gap: var(--lp-space-3);

	align-items: center;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	line-height: 1.35;

}



.lp-key-value-row span {

	color: var(--lp-text);

	font-weight: 400;

}



.lp-key-value-row strong {

	color: var(--lp-text);

	font-weight: 900;

	text-align: right;

	white-space: nowrap;

}



.lp-dashboard-grid {

	display: grid;

	gap: var(--lp-space-6);

}



.lp-dashboard-grid--two {

	grid-template-columns: repeat(2, minmax(0, 1fr));

}



.lp-content-sidebar-layout {

	display: grid;

	grid-template-columns: minmax(0, 7fr) minmax(260px, 3fr);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-side-list__item {

	display: grid;

	grid-template-columns: minmax(0, 1fr) auto;

	gap: var(--lp-space-3);

	align-items: center;

	padding: var(--lp-space-3);

	background: #ead1d9;

	color: var(--lp-text);

	font-size: var(--lp-font-xs);

	font-weight: 700;

}



.lp-divider {

	height: 1px;

	border: 0;

	background: var(--lp-border-light);

	margin: var(--lp-space-5) 0;

}

/* =========================================================

   Phase 3.1B - XD Component Normalization

   ========================================================= */



/* Page title blocks */

.lp-admin-classes-overview > header,

.lp-student-class-selection__header,

.lp-calendar-header,

.lp-section-header {

	width: 100%;

}



.lp-admin-classes-overview h1,

.lp-student-class-selection__header h1,

.lp-calendar-header h1,

.lp-section-header h1 {

	text-transform: none;

	color: var(--lp-text-header);

	font-weight: 500;

	letter-spacing: var(--lp-title-letter-spacing);

}



.lp-admin-classes-overview > header p,

.lp-student-class-selection__header p,

.lp-calendar-header p,

.lp-section-header p {

	color: var(--lp-muted);

	font-size: var(--lp-font-sm);

}



/* XD bordered screen panels */

.lp-xd-panel,

.lp-class-detail-card,

.lp-class-detail-section,

.lp-admin-terms-card,

.lp-admin-classes-card,

.lp-student-profile-card,

.lp-student-summary-card,

.lp-reservations-card,

.lp-attendance-card,

.lp-payment-card,

.lp-notes-card {

	border: 1px solid var(--lp-border);

	background: var(--lp-surface);

	border-radius: 0;

	box-shadow: none;

}



/* Shared panel headers */

.lp-xd-panel__header,

.lp-class-detail-card__header,

.lp-class-detail-section__header,

.lp-admin-terms-card__header,

.lp-admin-classes-card__header,

.lp-student-profile-card__header,

.lp-student-summary-card__header,

.lp-reservations-card__header,

.lp-attendance-card__header,

.lp-payment-card__header,

.lp-notes-card__header {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-4);

	min-height: 54px;

	padding: var(--lp-space-4) var(--lp-space-6);

	border-bottom: 1px solid var(--lp-border);

	background: var(--lp-surface);

}



/* Shared red panel titles */

.lp-xd-panel__title,

.lp-class-detail-card__title,

.lp-class-detail-section__title,

.lp-admin-terms-card__title,

.lp-admin-classes-card__title,

.lp-student-profile-card__title,

.lp-student-summary-card__title,

.lp-reservations-card__title,

.lp-attendance-card__title,

.lp-payment-card__title,

.lp-notes-card__title {

	display: inline-flex;

	align-items: center;

	gap: var(--lp-space-3);

	margin: 0;

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	line-height: 1.2;

	text-transform: uppercase;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



/* Shared panel bodies */

.lp-xd-panel__body,

.lp-class-detail-card__body,

.lp-class-detail-section__body,

.lp-admin-terms-card__body,

.lp-admin-classes-card__body,

.lp-student-profile-card__body,

.lp-student-summary-card__body,

.lp-reservations-card__body,

.lp-attendance-card__body,

.lp-payment-card__body,

.lp-notes-card__body {

	padding: var(--lp-space-6);

}



/* Existing Phase 2/3 admin card compatibility */

.lp-admin-card h2,

.lp-selection-panel h2,

.lp-class-rule-box strong {

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



/* Tables inside existing cards */

.lp-admin-card table,

.lp-class-detail-section table {

	width: 100%;

	border-collapse: collapse;

}



.lp-admin-card table th,

.lp-class-detail-section table th {

	padding: 10px;

	background: var(--lp-blue);

	color: #fff;

	font-family: var(--lp-font-main);

	font-size: var(--lp-table-header-size);

	font-weight: 900;

	text-align: left;

	text-transform: uppercase;

	letter-spacing: var(--lp-label-letter-spacing);

}



.lp-admin-card table td,

.lp-class-detail-section table td {

	padding: 10px;

	border-bottom: 1px solid var(--lp-border-light);

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-table-cell-size);

	font-weight: 400;

	vertical-align: middle;

}



/* Compact XD action buttons */

.lp-action-button,

.lp-small-action,

.lp-table-action {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-2);

	width: var(--lp-button-small-width);

	min-height: var(--lp-button-small-height);

	padding: 6px;

	border: 1px solid var(--lp-text);

	border-radius: var(--lp-radius-none);

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-button);

	font-size: 11px;

	font-weight: 400;

	line-height: 1.1;

	text-align: center;

	text-decoration: none;

	text-transform: uppercase;

	letter-spacing: 0.82px;

	cursor: pointer;

}



.lp-week-nav__arrow,

.lp-week-picker__button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-2);

	height: 32px;

	min-height: 32px;

	padding: 0 16px;

	border: none;

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 700;

	line-height: 1;

	text-decoration: none;

	cursor: pointer;

}



.lp-action-button:hover,

.lp-small-action:hover,

.lp-table-action:hover,

.lp-week-nav__arrow:hover,

.lp-week-picker__button:hover {

	border-color: var(--lp-red);

	color: var(--lp-red);

}



/* XD red primary action */

.lp-primary-action,

.lp-admin-add-class-button,

.lp-submit-request-button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-2);

	width: var(--lp-button-primary-width);

	min-height: var(--lp-button-primary-height);

	padding: 6px;

	border: 1px solid var(--lp-red);

	border-radius: var(--lp-radius-none);

	background: var(--lp-red);

	color: #fff;

	font-family: var(--lp-font-button);

	font-size: var(--lp-button-font-size);

	font-weight: 400;

	line-height: 1.1;

	text-align: center;

	text-decoration: none;

	text-transform: uppercase;

	letter-spacing: var(--lp-button-letter-spacing);

	cursor: pointer;

}



.lp-primary-action:hover,

.lp-admin-add-class-button:hover,

.lp-submit-request-button:hover {

	border-color: var(--lp-red-dark);

	background: var(--lp-red-dark);

	color: #fff;

}



/* XD outline neutral action */

.lp-outline-action,

.lp-cancel-button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-2);

	width: var(--lp-button-secondary-width);

	min-height: var(--lp-button-secondary-height);

	padding: 6px;

	border: 1px solid var(--lp-text);

	border-radius: var(--lp-radius-none);

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-button);

	font-size: var(--lp-button-font-size);

	font-weight: 400;

	line-height: 1.1;

	text-align: center;

	text-decoration: none;

	text-transform: uppercase;

	letter-spacing: var(--lp-button-letter-spacing);

	cursor: pointer;

}



/* Filter row normalization */

.lp-calendar-toolbar,

.lp-admin-class-filters,

.lp-student-class-filters,

.lp-filter-bar {

	display: flex;

	flex-wrap: wrap;

	align-items: center;

	gap: var(--lp-space-3);

	margin-bottom: 15px;

}



.lp-calendar-toolbar select,

.lp-admin-class-filters select,

.lp-student-class-filters select {

	min-height: 38px;

	border-radius: 0;

}



/* Week picker normalization */

.lp-week-nav {

	display: inline-grid;

	grid-template-columns: 32px minmax(180px, auto) 32px;

	align-items: stretch;

	gap: 0;

	height: 32px;

	border: 1px solid var(--lp-border);

	background: #fff;

}



.lp-week-nav__arrow {

	width: 32px;

	min-width: 32px;

	height: 32px;

	padding: 0;

	border: 0;

	color: var(--lp-muted);

}



.lp-week-nav__arrow,

.lp-week-picker__button {

	box-shadow: inset 0 -1px 0 var(--lp-border);

}



.lp-week-picker {

	position: relative;

	display: inline-flex;

	align-items: stretch;

	height: 32px;

	min-height: 32px;

	margin: 0;

	padding: 0;

}



.lp-week-picker__button {

	position: relative;

	z-index: 1;

	display: inline-flex;

	align-items: center;

	justify-content: center;

	min-width: 210px;

	height: 32px;

	min-height: 32px;

	padding: 0 12px;

	border: 0;

	color: var(--lp-muted);

	pointer-events: none;

}



.lp-week-picker__input {

	position: absolute;

	inset: 0;

	z-index: 2;

	width: 100%;

	height: 32px;

	opacity: 0;

	cursor: pointer;

}



/* Status colors */

.lp-status,

.lp-status-pill {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 6px;

	min-height: 28px;

	padding: 5px 14px;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-xs);

	font-weight: 900;

	line-height: 1;

}



.lp-status--present,

.lp-status--approved,

.lp-status--confirmed,

.lp-status--paid {

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

}



.lp-status--absent,

.lp-status--refused,

.lp-status--rejected,

.lp-status--not-paid {

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

}



.lp-status--pending {

	background: var(--lp-warning-bg);

	color: var(--lp-warning-text);

}



.lp-status--partially-approved,

.lp-status--partially-paid {

	background: #F8EAF7;

	color: var(--lp-purple);

}



/* Form rows matching XD */

.lp-form-section {

	display: grid;

	gap: var(--lp-space-5);

	padding: var(--lp-space-5) 0;

	border-bottom: 1px solid var(--lp-border-light);

}



.lp-form-section:last-child {

	border-bottom: 0;

}



.lp-form-section__title {

	margin: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	text-transform: uppercase;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-inline-fields {

	display: grid;

	grid-template-columns: repeat(4, minmax(0, 1fr));

	gap: var(--lp-space-3);

}



.lp-inline-fields--2 {

	grid-template-columns: repeat(2, minmax(0, 1fr));

}



.lp-inline-fields--3 {

	grid-template-columns: repeat(3, minmax(0, 1fr));

}



/* Info/profile rows */

.lp-profile-info-grid {

	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(260px, 1.2fr);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-profile-comment {

	padding-left: var(--lp-space-6);

	border-left: 1px solid var(--lp-border);

	color: var(--lp-muted);

	font-size: var(--lp-font-sm);

}



/* Side summary blocks */

.lp-side-panel-list {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-side-panel-item {

	display: grid;

	grid-template-columns: minmax(0, 1fr) auto;

	gap: var(--lp-space-3);

	align-items: center;

	min-height: 42px;

	padding: var(--lp-space-3) var(--lp-space-4);

	background: #ead1d9;

	color: var(--lp-text);

	font-size: var(--lp-font-xs);

	font-weight: 800;

}



.lp-side-panel-item__meta {

	color: var(--lp-muted);

	font-weight: 700;

}



/* Selection sidebar cards */

.lp-selection-panel {

	padding: 0;

}



.lp-selection-panel > strong,

.lp-selection-panel > p,

.lp-selection-panel > div,

.lp-selection-panel > label,

.lp-selection-panel > button {

	margin-left: var(--lp-space-5);

	margin-right: var(--lp-space-5);

}



.lp-selection-panel > *:last-child {

	margin-bottom: var(--lp-space-5);

}



.lp-selection-panel__number {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 28px;

	height: 28px;

	border-radius: 999px;

	background: var(--lp-red);

	color: #fff;

	font-weight: 800;

}



/* Rule / warning boxes */

.lp-class-rule-box,

.lp-warning-box,

.lp-danger-box {

	display: grid;

	gap: var(--lp-space-3);

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-red);

	background: var(--lp-danger-bg);

	color: var(--lp-text);

}



.lp-class-rule-box p,

.lp-warning-box p,

.lp-danger-box p {

	margin: 0;

	color: var(--lp-muted);

	font-style: italic;

}



/* Progress */

.lp-rule-progress {

	height: 12px;

	border-radius: 999px;

	background: #ecc5d0;

	overflow: hidden;

}



.lp-rule-progress i {

	display: block;

	height: 100%;

	border-radius: inherit;

	background: var(--lp-red);

}



/* Notes inputs seen in XD tables */

.lp-note-input,

.lp-table-note-input {

	width: 100%;

	min-height: var(--lp-input-height);

	padding: var(--lp-input-padding);

	border: 1px solid var(--lp-border);

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



/* Color swatches */

.lp-color-swatch {

	display: inline-block;

	width: 24px;

	height: 24px;

	border: 1px solid var(--lp-border-light);

	vertical-align: middle;

}



.lp-color-strip {

	display: inline-block;

	width: 18px;

	height: 30px;

	vertical-align: middle;

}



/* Center footer links inside tables */

.lp-table-footer-link,

.lp-view-all-link {

	display: flex;

	justify-content: center;

	padding: var(--lp-space-4);

	color: var(--lp-blue);

	font-weight: 800;

	text-decoration: none;

}

/* =========================================================

   Phase 3.1C - Existing Screen Normalization

   ========================================================= */



/* Admin / student calendar toolbars */

.lp-calendar-toolbar {

	display: flex;

	align-items: center;

	justify-content: flex-start;

	gap: var(--lp-space-3);

	margin-bottom: 15px;

}



.lp-calendar-toolbar .lp-week-nav {

	margin-right: 0;

}



.lp-calendar-toolbar__action {

	margin-left: auto;

}



.lp-calendar-toolbar .lp-admin-class-filter,

.lp-calendar-toolbar .lp-student-class-filters,

.lp-calendar-toolbar .lp-filter-bar {

	margin-bottom: 0;

}



.lp-admin-classes-overview {

	display: grid;

	gap: var(--lp-space-5);

}



/* Admin classes page Add Class button alignment */

.lp-admin-classes-overview .lp-calendar-toolbar .lp-calendar-toolbar__action {

	margin-left: auto;

}



/* Student class selection */

.lp-student-class-selection {

	display: grid;

	gap: var(--lp-space-5);

}



.lp-student-class-selection__header {

	margin-bottom: 0;

}



.lp-student-class-layout {

	align-items: start;

}



.lp-student-class-layout__calendar,

.lp-student-class-layout__sidebar {

	min-width: 0;

}



.lp-student-class-layout__sidebar {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-selected-class-list {

	display: grid;

	gap: var(--lp-space-3);

	padding-top: var(--lp-space-3);

	border-top: 1px solid var(--lp-border-light);

}



.lp-selected-class-row {

	display: grid;

	grid-template-columns: 18px minmax(0, 1fr) 28px;

	gap: var(--lp-space-3);

	align-items: start;

}



.lp-selected-class-row__check {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 14px;

	height: 14px;

	background: var(--lp-red);

	color: #fff;

	font-size: 10px;

}



.lp-selected-class-remove {

	border: 0;

	background: transparent;

	color: var(--lp-muted);

	font-size: 22px;

	line-height: 1;

	cursor: pointer;

}



.lp-selected-class-remove:hover {

	color: var(--lp-red);

}



.lp-empty-selection {

	margin: 0;

	color: var(--lp-muted);

}



.lp-rule-options {

	display: grid;

	gap: var(--lp-space-2);

	padding-top: var(--lp-space-3);

	border-top: 1px solid #e5bec8;

}



.lp-rule-options label {

	display: flex;

	gap: var(--lp-space-2);

	align-items: center;

	color: var(--lp-text);

	font-size: var(--lp-font-sm);

}



.lp-rule-options label.is-already-counted {

	opacity: 1;

}



.lp-rule-options label.is-already-counted em {

	color: var(--lp-red);

	font-style: italic;

}



.lp-price-line {

	display: flex;

	justify-content: space-between;

	gap: var(--lp-space-5);

	padding-top: var(--lp-space-3);

	border-top: 1px solid var(--lp-border-light);

}



.lp-price-line strong {

	color: var(--lp-red);

}



.lp-confirm-choice {

	display: flex;

	align-items: center;

	gap: var(--lp-space-2);

}



.lp-submit-note {

	margin: 0;

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-border);

	color: var(--lp-muted);

	font-style: italic;

}



/* Student My Classes */

.lp-student-my-classes-overview {

	display: grid;

	gap: var(--lp-space-5);

}



/* Admin class form */

.lp-class-form-layout,

.lp-admin-class-form-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(360px, 0.62fr);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-class-form-layout__main,

.lp-class-form-layout__side,

.lp-admin-class-form-layout__main,

.lp-admin-class-form-layout__side {

	min-width: 0;

}



.lp-class-form-actions,

.lp-admin-class-form-actions {

	display: flex;

	justify-content: flex-end;

	gap: var(--lp-space-3);

	margin-bottom: var(--lp-space-3);

}



.lp-session-calendar-list,

.lp-occurrence-list {

	display: grid;

	gap: var(--lp-space-2);

	max-height: 420px;

	overflow-y: auto;

	padding-right: var(--lp-space-2);

}



.lp-session-calendar-row,

.lp-occurrence-row {

	display: grid;

	grid-template-columns: minmax(0, 1fr) 130px 42px;

	gap: var(--lp-space-3);

	align-items: center;

	padding: var(--lp-space-3) 0;

	border-bottom: 1px solid var(--lp-border-light);

}



.lp-session-calendar-row:last-child,

.lp-occurrence-row:last-child {

	border-bottom: 0;

}



/* Class detail */

.lp-class-detail-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-class-detail-main,

.lp-class-detail-side {

	min-width: 0;

}



.lp-class-detail-side {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-class-detail-section {

	overflow: hidden;

}



.lp-class-detail-section + .lp-class-detail-section {

	margin-top: var(--lp-space-5);

}



.lp-upcoming-classes-list {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-upcoming-class-item {

	display: grid;

	grid-template-columns: 90px minmax(0, 1fr) auto;

	gap: var(--lp-space-3);

	align-items: center;

	min-height: 38px;

	padding: var(--lp-space-3);

	background: #ead1d9;

	font-size: var(--lp-font-xs);

	font-weight: 800;

}



/* Terms */

.lp-admin-terms-layout {

	display: grid;

	gap: var(--lp-space-5);

}



.lp-admin-terms-form {

	display: grid;

	gap: var(--lp-space-4);

}



/* Profile placeholder / Phase 1 profile */

.lp-student-profile,

.lp-student-profile-page {

	display: grid;

	gap: var(--lp-space-5);

}



.lp-profile-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-profile-main,

.lp-profile-sidebar {

	min-width: 0;

}



.lp-profile-sidebar {

	display: grid;

	gap: var(--lp-space-4);

}



/* Legacy notices */

.lp-notice {

	margin-bottom: var(--lp-space-4);

}



/* Legacy admin table containment */

.lp-admin-card,

.lp-class-detail-section {

	overflow-x: auto;

}



/* =========================================================

   Phase 3.1E - Legacy Compatibility: Auth/Profile/Forms

   ========================================================= */



.lp-auth,

.lp-student-profile {

	width: min(var(--lp-container), 100%);

	margin: 0 auto;

}



.lp-auth {

	display: grid;

	place-items: start center;

}



.lp-auth__inner {

	width: min(520px, 100%);

	border: 1px solid var(--lp-border);

	background: var(--lp-surface);

	padding: var(--lp-space-7);

}



.lp-auth__inner--wide {

	width: min(980px, 100%);

}



.lp-auth__title {

	margin: 0 0 var(--lp-space-5);

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-page-title-size);

	font-weight: 500;

	letter-spacing: var(--lp-title-letter-spacing);

}



.lp-auth__switch,

.lp-auth__link {

	margin: var(--lp-space-5) 0 0;

	color: var(--lp-muted);

	font-size: var(--lp-font-sm);

}



.lp-auth__switch a,

.lp-auth__link a {

	color: var(--lp-blue);

	font-weight: 800;

}



.lp-form h2,

.lp-profile-form h2 {

	margin: var(--lp-space-6) 0 0;

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-form__hint {

	margin: 0;

	color: var(--lp-muted);

	font-size: var(--lp-font-sm);

	font-style: italic;

}



.lp-form__actions {

	margin: 0;

	display: flex;

	flex-wrap: wrap;

	gap: var(--lp-space-3);

}



.lp-form__field--checkbox label {

	display: flex;

	align-items: center;

	gap: var(--lp-space-2);

	width: fit-content;

}



.lp-form__field--checkbox input[type="checkbox"],

.lp-choice input[type="checkbox"] {

	width: 14px;

	height: 14px;

	min-width: 14px;

	min-height: 14px;

	flex: 0 0 14px;

	padding: 0;

}



.lp-choice {

	display: inline-flex;

	align-items: center;

	gap: var(--lp-space-2);

	width: fit-content;

	margin-right: var(--lp-space-4);

}



.lp-readonly-grid {

	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: var(--lp-space-4);

	margin-bottom: var(--lp-space-6);

}



.lp-readonly-grid p {

	display: grid;

	gap: 4px;

	margin: 0;

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-border-light);

	background: var(--lp-surface-soft);

}



.lp-readonly-grid strong {

	color: var(--lp-text-dark);

	font-size: var(--lp-font-sm);

	letter-spacing: 0.04em;

}



.lp-form--compact {

	gap: var(--lp-space-4);

}



.lp-form--inline {

	display: flex;

	flex-wrap: wrap;

	align-items: end;

	gap: var(--lp-space-4);

}



.lp-inline-form {

	display: flex;

	flex-wrap: wrap;

	gap: var(--lp-space-2);

	align-items: center;

}



.lp-inline-form input[type="text"] {

	min-width: 180px;

	min-height: 34px;

	padding: 8px 10px;

	border: 1px solid var(--lp-border);

	border-radius: 0;

	font: inherit;

}



.lp-link-button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	padding: 0;

	border: 0;

	background: transparent;

	color: var(--lp-blue);

	cursor: pointer;

	font: inherit;

	text-align: left;

	text-decoration: underline;

}



.lp-action-stack {

	display: flex;

	flex-direction: column;

	align-items: flex-start;

	gap: var(--lp-space-2);

}

/* =========================================================

   Phase 3.1E - Legacy Compatibility: Class Form / Sessions

   ========================================================= */



.lp-class-form-page {

	display: grid;

	gap: var(--lp-space-6);

}



.lp-class-form-page__header {

	display: flex;

	align-items: flex-start;

	justify-content: space-between;

	gap: var(--lp-space-6);

}



.lp-class-form-page__header h1 {

	margin: 0 0 var(--lp-space-2);

}



.lp-class-form-page__header p {

	margin: 0;

	color: var(--lp-muted);

}



.lp-class-builder__grid {

	display: grid;

	grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-class-builder__left,

.lp-class-builder__right {

	display: grid;

	gap: var(--lp-space-5);

	min-width: 0;

}



.lp-class-builder__right {

	position: sticky;

	top: var(--lp-space-6);

}



.lp-radio-stack {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-radio-stack label {

	display: flex;

	align-items: center;

	gap: var(--lp-space-2);

	width: fit-content;

}



.lp-radio-stack input[type="radio"] {

	width: auto;

	min-height: 0;

}



.lp-color-option {

	display: grid;

	grid-template-columns: minmax(0, 1fr) 52px;

	align-items: center;

	gap: var(--lp-space-3);

	opacity: 0.45;

}



.lp-color-option.is-active {

	opacity: 1;

}



.lp-color-preview {

	display: inline-block;

	width: 52px;

	height: 34px;

	border: 1px solid var(--lp-border-light);

	border-radius: 0;

}



.lp-requirement-fields {

	display: grid;

	gap: var(--lp-space-4);

	padding-top: var(--lp-space-4);

	border-top: 1px solid var(--lp-border-light);

}



.lp-requirement-fields[hidden] {

	display: none;

}



.lp-session-calendar {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-session-calendar__table {

	display: grid;

	gap: var(--lp-space-2);

}



.lp-session-calendar__table[hidden] {

	display: none;

}



.lp-session-calendar__head,

.lp-session-calendar__row {

	display: grid;

	grid-template-columns: minmax(190px, 1.2fr) minmax(130px, 0.8fr) minmax(160px, 1fr);

	gap: var(--lp-space-3);

	align-items: center;

}



.lp-session-calendar__head {

	font-weight: 800;

	color: var(--lp-text-dark);

}



.lp-session-calendar__rows {

	display: grid;

	gap: var(--lp-space-2);

}



.lp-session-calendar__row {

	padding: var(--lp-space-3);

	border: 1px solid var(--lp-border-light);

	background: #fff;

}



.lp-session-calendar__row.is-disabled {

	background: var(--lp-danger-bg);

}



.lp-session-date label {

	display: flex;

	align-items: center;

	gap: var(--lp-space-2);

}



.lp-session-date input {

	width: auto;

	min-height: 0;

}



.lp-session-badge {

	display: inline-flex;

	align-items: center;

	width: fit-content;

	padding: 6px 10px;

	font-size: var(--lp-font-sm);

	font-weight: 800;

}



.lp-session-badge--scheduled {

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

	gap: 7px;

}



.lp-session-badge--disabled {

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

	gap: 7px;

}



.lp-session-note[hidden] {

	display: none;

}



.lp-session-note-label {

	display: grid;

	grid-template-columns: auto minmax(0, 1fr);

	align-items: center;

	gap: var(--lp-space-2);

}



.lp-session-note-input {

	width: 100%;

	min-height: 34px;

	padding: 8px 10px;

	border: 1px solid var(--lp-border);

	border-radius: 0;

	font: inherit;

}

/* =========================================================

   Phase 3.1E - Legacy Compatibility: Admin Filters / Detail

   ========================================================= */



.lp-admin-classes,

.lp-admin-terms {

	display: grid;

	gap: var(--lp-space-6);

}



.lp-admin-grid {

	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: var(--lp-space-6);

}



.lp-class-filter {

	display: flex;

	align-items: center;

	gap: var(--lp-space-2);

	padding: 0;

}



.lp-class-filter label {

	display: inline-flex;

	align-items: center;

	min-height: var(--lp-input-height);

	padding: var(--lp-input-padding);

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 900;

}



.lp-class-filter select {

	min-width: 210px;

	min-height: var(--lp-input-height);

	padding: var(--lp-input-padding);

	border: 1px solid var(--lp-border);

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



.lp-filter-dropdown {

	position: relative;

}



.lp-filter-dropdown summary {

	display: inline-flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-3);

	width: 160px;

	min-width: 160px;

	height: 32px;

	min-height: 32px;

	padding: 0 var(--lp-space-3);

	background: var(--lp-text);

	color: #fff;

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 900;

	cursor: pointer;

	list-style: none;

}



.lp-filter-dropdown summary::-webkit-details-marker {

	display: none;

}



.lp-filter-dropdown__panel {

	position: absolute;

	z-index: 20;

	top: calc(100% + 6px);

	left: 0;

	display: grid;

	grid-template-columns: 1fr;

	gap: 0;

	min-width: 260px;

	max-height: 340px;

	overflow: auto;

	padding: var(--lp-space-3);

	border: 1px solid var(--lp-border);

	background: #fff;

	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);

}



.lp-filter-dropdown__option {

	display: flex;

	width: 100%;

	align-items: center;

	gap: var(--lp-space-2);

	padding: 8px 4px;

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



.lp-filter-dropdown__option input {

	width: auto;

	min-height: 0;

}



.lp-filter-dropdown__actions {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

	margin-top: var(--lp-space-3);

	padding-top: var(--lp-space-3);

	border-top: 1px solid var(--lp-border-light);

}



.lp-class-detail {

	display: grid;

	gap: var(--lp-space-6);

}



.lp-class-detail__header {

	display: flex;

	flex-wrap: wrap;

	justify-content: space-between;

	gap: var(--lp-space-4);

	align-items: flex-start;

}



.lp-class-detail__header h1 {

	margin: 0 0 var(--lp-space-2);

}



.lp-detail-grid {

	display: grid;

	grid-template-columns: repeat(4, minmax(0, 1fr));

	gap: var(--lp-space-4);

}



.lp-detail-grid div {

	display: grid;

	gap: 4px;

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-border-light);

	background: var(--lp-surface-soft);

}



.lp-detail-grid strong {

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 900;

	text-transform: uppercase;

	letter-spacing: var(--lp-label-letter-spacing);

}



.lp-detail-note {

	margin-top: var(--lp-space-5);

	padding-top: var(--lp-space-5);

	border-top: 1px solid var(--lp-border-light);

}



.lp-empty-state-section {

	border-style: dashed;

}



.lp-upcoming-classes-card {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-upcoming-classes-header {

	display: flex;

	justify-content: space-between;

	align-items: flex-start;

	gap: var(--lp-space-5);

}



.lp-upcoming-classes-header h2 {

	margin: 0;

}



.lp-upcoming-classes-header strong {

	text-align: right;

	font-size: var(--lp-font-md);

}



.lp-upcoming-class-row {

	display: grid;

	grid-template-columns: 140px minmax(180px, 1fr) 120px;

	gap: var(--lp-space-4);

	align-items: center;

	padding: var(--lp-space-3) 0;

	border-bottom: 1px solid var(--lp-border-light);

}



.lp-upcoming-class-row__date,

.lp-upcoming-class-row__name {

	font-weight: 800;

}



.lp-upcoming-class-row__slots {

	color: var(--lp-text);

}

/* =========================================================

   Phase 3.1E Fix - Missing Legacy Component Selectors

   ========================================================= */



.lp-button--add-class {

	width: var(--lp-button-primary-width);

	min-height: var(--lp-button-primary-height);

	border-color: var(--lp-red);

	background: var(--lp-red);

	color: #fff;

	font-family: var(--lp-font-button);

	font-size: var(--lp-button-font-size);

	font-weight: 400;

	text-transform: uppercase;

	letter-spacing: var(--lp-button-letter-spacing);

}



.lp-button--add-class:hover {

	border-color: var(--lp-red-dark);

	background: var(--lp-red-dark);

	color: #fff;

}



.lp-week-nav__label {

	font-size: var(--lp-font-sm);

	white-space: nowrap;

	color: var(--lp-muted);

}



.lp-admin-calendar {

	min-height: 520px;

	border: 1px solid var(--lp-border);

	background: #fff;

	padding: var(--lp-space-4);

}



.lp-fc-event--disabled {

	opacity: 0.45;

	text-decoration: line-through;

}



.lp-auth,

.lp-student-profile,

.lp-class-form-page,

.lp-class-detail,

.lp-admin-classes,

.lp-admin-terms,

.lp-admin-classes-overview,

.lp-student-class-selection,

.lp-student-my-classes-overview,

.lp-page-section {

	width: 100%;

	max-width: var(--lp-container);

	margin-left: auto;

	margin-right: auto;

}



/* =========================================================

   Phase 3.1E Final - Missing Legacy Spacing Restore

   ========================================================= */



.lp-form__description {

	display: block;

	margin: 4px 0 0;

}



.lp-section-header h2 {

	margin-bottom: 4px;

}



.lp-calendar-header h1,

.lp-student-class-selection__header h1 {

	margin: 0 0 var(--lp-space-2);

}



.lp-auth__link {

	margin-top: var(--lp-space-5);

}



.lp-portal-page--public-auth {

	min-height: auto;

	padding-left: 0;

	padding-right: 0;

	padding-bottom: 0;

	background: transparent;

}





/* =========================================================

   Post Phase 12 - Public Login Page Layout

   ========================================================= */



.lp-auth.lp-auth--login {

	position: relative;

	display: flex;

	flex-direction: column;

	align-items: center;

	width: 100%;

	max-width: none;

	min-height: 842px;

	margin: 0;

}



.lp-auth-login-hero {

	width: 100%;

	min-height: 504px;

	background-image: url("../images/login-page-background.png");

	background-position: center;

	background-repeat: no-repeat;

	background-size: cover;

}



.lp-auth-login-card {

	position: relative;

	z-index: 1;

	width: 540px;

	min-height: 504px;

	margin-top: -252px;

	padding: 70px;

	background: #F4F4F4;

	display: flex;

	align-items: center;

	justify-content: center;

	box-sizing: border-box;

}



.lp-auth-login-card__inner {

	width: 100%;

}



.lp-auth-login-card__title {

	font-family: var(--lp-font-title);

	font-size: var(--lp-page-title-size);

	font-weight: 200;

	color: #1A1A1A;

	letter-spacing: 1.65px;

	text-transform: uppercase;

	margin: 0 0 8px;

}



.lp-auth-login-card__intro {

	margin: 0 0 20px;

	font-family: var(--lp-font-main);

	color: var(--lp-text);

	font-size: var(--lp-font-sm);

	letter-spacing: 0.82px;

	line-height: 1.4;

}



.lp-auth-login-form {

	display: grid;

	gap: 18px;

}



.lp-auth-login-form__field input {

	background: transparent;

	border: 1px solid #707070;

	padding: 15px 20px;

	font-family: var(--lp-font-main);

	color: #6F6C6C;

	font-size: var(--lp-font-sm);

	font-weight: 400;

	letter-spacing: 0.82px;

}



.lp-auth-login-form__meta {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: 16px;

}



.lp-auth-login-form__remember {

	margin: 0;

}



.lp-auth-login-form__remember label {

	color: #6F6C6C;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

}



.lp-auth-login-form__forgot {

	color: var(--lp-red);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 700;

	text-decoration: none;

}



.lp-auth-login-form__actions {

	display: block;

}





.lp-auth-login-form__submit.lp-button {

	font-family: var(--lp-font-main);

    font-size: var(--lp-font-sm);

    font-weight: 700;

    letter-spacing: 1px;

    text-transform: uppercase;

    width: 100%;

    min-height: 39px;

}



.lp-auth-login-card__switch {

	display: grid;

	gap: 2px;

	margin: 14px 0 0;

	text-align: center;

	color: #6F6C6C;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

}



.lp-auth-login-card__switch a {

	color: var(--lp-red);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 700;

	text-decoration: none;

}



/* =========================================================

   Post Phase 12 - Public Register Page Layout

   ========================================================= */



.lp-auth.lp-auth--register {

	position: relative;

	display: flex;

	flex-direction: column;

	align-items: center;

	width: 100%;

	max-width: none;

	margin: 0;

	padding-bottom: 30px;

}



.lp-auth-register-card {

	position: relative;

	z-index: 1;

	width: 540px;

	margin-top: -252px;

	padding: 70px;

	background: #F4F4F4;

	display: flex;

	align-items: flex-start;

	justify-content: center;

	box-sizing: border-box;

}



.lp-auth-register-card__inner {

	width: 100%;

}



.lp-auth-register-card__title {

	margin: 0 0 8px;

	color: #1A1A1A;

	font-family: var(--lp-font-title);

	font-size: var(--lp-page-title-size);

	font-weight: 200;

	letter-spacing: 1.65px;

	text-transform: uppercase;

}



.lp-auth-register-card__intro {

	margin: 0 0 20px;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	letter-spacing: 0.82px;

	line-height: 1.4;

}



.lp-auth-register-form {

	display: grid;

	gap: 14px;

}



.lp-auth-register-section {

	display: grid;

	gap: 9px;

}



.lp-auth--register .lp-auth-register-card .lp-auth-register-section h2.lp-auth-register-section__title {

	margin: 0;

	color: var(--lp-blue);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 900;

	letter-spacing: 0.82px;

	text-transform: uppercase;

	line-height: 1.2;

}



.lp-auth-register-grid {

	display: grid;

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: 10px;

}



.lp-auth-register-grid--single {

	grid-template-columns: 1fr;

}



.lp-auth-register-field--full {

	grid-column: 1 / -1;

}



.lp-auth-register-field input,

.lp-auth-register-field textarea {

	width: 100%;

	background: transparent;

	border: 1px solid #707070;

	padding: 12px 20px;

	color: #6F6C6C;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	letter-spacing: 0.82px;

}



.lp-auth-register-field input {

	min-height: 39px;

}



.lp-auth-register-field textarea {

	min-height: 78px;

	resize: vertical;

}



.lp-auth-register-language {

	display: flex;

	align-items: center;

	flex-wrap: wrap;

	gap: 12px;

	color: #6F6C6C;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	letter-spacing: 0.82px;

}



.lp-auth-register-language span {

	margin-right: 8px;

}



.lp-auth-register-language label {

	display: inline-flex;

	align-items: center;

	gap: 6px;

}



.lp-auth-register-note,

.lp-auth-register-footnote {

	margin: 0;

	color: #6F6C6C;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	letter-spacing: 0.82px;

	line-height: 1.35;

}



.lp-auth-register-section--password {

	margin-top: 6px;

}



.lp-auth-register-terms {

	margin: 0;

}



.lp-auth-register-terms label {

	color: #6F6C6C;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	letter-spacing: 0.82px;

	line-height: 1.35;

}



.lp-auth-register-terms a {

	color: var(--lp-red);

	font-weight: 700;

	text-decoration: none;

}



.lp-auth-register-actions {

	display: block;

	width: 100%;

	margin-top: 6px;

}



.lp-auth-register-submit.lp-button {

	width: 100%;

	min-height: 39px;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 700;

	letter-spacing: 1px;

	text-transform: uppercase;

}



.lp-auth-register-footnote {

	text-align: center;

}



.lp-week-nav form {

	display: flex;

	align-items: center;

	justify-content: center;

	gap: 10px;

	height: 32px;

	min-height: 32px;

	padding: 0;

}



.lp-week-nav input[type="date"] {

	width: 100%;

	border: 0;

	background: transparent;

	font: inherit;

}



.lp-student-class-filters select {

	max-width: 100%;

}



.lp-selection-panel {

	display: grid;

	gap: 14px;

}



.lp-class-form-page .lp-session-calendar__head,

.lp-class-form-page .lp-session-calendar__row {

	grid-template-columns: minmax(190px, 1.2fr) minmax(130px, 0.8fr) minmax(160px, 1fr);

}



.lp-class-form-page .lp-session-calendar__row {

	padding: 10px;

}

/* =========================================================

   Phase 3 - Selected Class / Rule Option Text Formatting

   ========================================================= */



.lp-selected-class-row__content,

.lp-rule-option-label {

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-body-font-size);

	line-height: 1.35;

}



.lp-selected-class-row__content strong,

.lp-rule-option-label strong {

	font-weight: 900;

}



.lp-selected-class-row__meta,

.lp-rule-option-meta {

	font-weight: 400;

}



.lp-selected-class-row__meta {

	display: inline;
	
    margin: 4px;

}
.lp-selected-class-row__teacher {

	display: block;

}


.lp-rule-option-meta {

	display: inline;

}

.lp-class-rule-box .lp-rule-selected-title {

	margin: 0;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-style: normal;

	font-weight: 400;

	line-height: 1.35;

}



.lp-class-rule-box .lp-rule-selected-title strong {

	color: var(--lp-red);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 700;

}



.lp-class-rule-box .lp-rule-option-label {

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

	line-height: 1.35;

}



.lp-class-rule-box .lp-rule-option-label strong {

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 700;

}



.lp-class-rule-box .lp-rule-option-meta {

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

}



.lp-class-pass-option-box .lp-rule-option-label,

.lp-class-pass-option-box .lp-rule-option-label strong {

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 900;

}



.lp-class-pass-option-box .lp-rule-option-meta {

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

}

/* =========================================================

   Phase 3.1G - Enhanced Form Controls

   ========================================================= */



.lp-portal-page .flatpickr-input,

.lp-portal-page .flatpickr-alt-input {

	width: 100%;

	min-height: var(--lp-input-height);

	padding: var(--lp-input-padding);

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-none);

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

	box-shadow: none;

}



.flatpickr-calendar {

	border: 1px solid var(--lp-border);

	border-radius: 0;

	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);

	font-family: var(--lp-font-main);

}



.flatpickr-months,

.flatpickr-weekdays {

	background: #fff;

}



.flatpickr-current-month,

.flatpickr-current-month input.cur-year,

.flatpickr-weekday {

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-weight: 900;

}



.flatpickr-day {

	border-radius: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

}



.flatpickr-day.selected,

.flatpickr-day.startRange,

.flatpickr-day.endRange,

.flatpickr-day.selected:hover {

	border-color: var(--lp-red);

	background: var(--lp-red);

	color: #fff;

}



.flatpickr-day.today {

	border-color: var(--lp-blue);

}



.flatpickr-time input,

.flatpickr-time .flatpickr-am-pm {

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 13px;

}



.lp-portal-page .choices {

	width: 100%;

	min-width: 160px;

	height: 40px;

	margin: 0;

	font-family: var(--lp-font-main);

	font-size: 11px;

}



.lp-portal-page .choices__inner {

	display: flex;

	align-items: center;

	min-height: 40px;

	height: 40px;

	padding: 3.75px 7.5px;

	border: 1px solid var(--lp-border);

	border-radius: 0;

	background: #fff;

	color: var(--lp-text);

	font-size: 11px;

	line-height: 1.2;

}



.lp-portal-page .choices__list--single {

	padding: 0 24px 0 0;

}



.lp-portal-page .choices__item {

	color: var(--lp-text);

	font-size: 11px;

}



.lp-portal-page .choices__placeholder {

	opacity: 1;

	color: var(--lp-text);

}



.lp-portal-page .choices__list--dropdown,

.lp-portal-page .choices__list[aria-expanded] {

	z-index: 91;

	border: 1px solid var(--lp-border);

	border-radius: 0;

	background: #fff;

	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);

}



.lp-portal-page .choices__list--dropdown .choices__item,

.lp-portal-page .choices__list[aria-expanded] .choices__item {

	display: block;

	width: 100%;

	padding: 9px 10px;

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

	line-height: 1.25;

}



.lp-portal-page .choices__list--dropdown .choices__item--selectable.is-highlighted,

.lp-portal-page .choices__list[aria-expanded] .choices__item--selectable.is-highlighted {

	background: transparent;

	color: var(--lp-red);

}



.lp-portal-page .choices__list--multiple {

	display: flex;

	flex-wrap: wrap;

	gap: 6px;

	padding: 0;

}



.lp-portal-page .choices__list--multiple .choices__item {

	margin: 0;

	padding: 4px 8px;

	border: 1px solid var(--lp-border);

	border-radius: 0;

	background: transparent;

	color: var(--lp-text);

	font-size: 11px;

	font-weight: 400;

}



.lp-portal-page .choices__button {

	border-left: 1px solid var(--lp-border);

	background-image: none;

	color: var(--lp-text);

	opacity: 1;

}



.lp-portal-page .choices__button::after {

	content: "×";

	color: var(--lp-text);

	font-size: 12px;

}

.lp-admin-class-form-final__card:has(.lp-requirement-choices) {

	overflow: visible;

}



.lp-admin-class-requirements .lp-requirement-choices,
.lp-communication .lp-requirement-choices,
.lp-app-email-card .lp-requirement-choices,
.lp-app-payment-card .lp-requirement-choices {

	height: auto;

	min-height: 40px;

	z-index: 90;

}



.lp-admin-class-requirements .lp-requirement-choices.is-open,
.lp-communication .lp-requirement-choices.is-open,
.lp-app-email-card .lp-requirement-choices.is-open,
.lp-app-payment-card .lp-requirement-choices.is-open {

	z-index: 130;

}



.lp-admin-class-requirements .lp-requirement-choices .choices__inner,
.lp-communication .lp-requirement-choices .choices__inner,
.lp-app-email-card .lp-requirement-choices .choices__inner,
.lp-app-payment-card .lp-requirement-choices .choices__inner {

	align-items: flex-start;

	height: auto;

	min-height: 40px;

	overflow: visible;

}



.lp-admin-class-requirements .lp-requirement-choices .choices__list--multiple,
.lp-communication .lp-requirement-choices .choices__list--multiple,
.lp-app-email-card .lp-requirement-choices .choices__list--multiple,
.lp-app-payment-card .lp-requirement-choices .choices__list--multiple {

	width: 100%;

	max-height: none;

	overflow: visible;

	padding: 0;

}



.lp-admin-class-requirements .lp-requirement-choices .choices__list--multiple .choices__item,
.lp-communication .lp-requirement-choices .choices__list--multiple .choices__item,
.lp-app-email-card .lp-requirement-choices .choices__list--multiple .choices__item,
.lp-app-payment-card .lp-requirement-choices .choices__list--multiple .choices__item {

	display: inline-flex;

	align-items: center;

	max-width: 100%;

	gap: 6px;

	white-space: normal;

	line-height: 1.25;

}


.lp-admin-class-requirements .lp-requirement-choices .choices__button,
.lp-communication .lp-requirement-choices .choices__button,
.lp-app-email-card .lp-requirement-choices .choices__button,
.lp-app-payment-card .lp-requirement-choices .choices__button {
	position: relative;

	display: inline-flex;

	align-items: center;

	justify-content: center;

	flex: 0 0 18px;

	width: 18px;

	min-width: 18px;

	height: 18px;

	margin: 0 0 0 2px;

	padding: 0;

	border: 0;

	border-left: 1px solid var(--lp-border);

	background: transparent;

	color: transparent;

	font-size: 0;

	line-height: 1;

	text-indent: -9999px;

	opacity: 1;

	overflow: hidden;

}

.lp-admin-class-requirements .lp-requirement-choices .choices__button::after,
.lp-communication .lp-requirement-choices .choices__button::after,
.lp-app-email-card .lp-requirement-choices .choices__button::after,
.lp-app-payment-card .lp-requirement-choices .choices__button::after {
	content: "×";

	position: absolute;

	inset: 0 0 0 1px;

	display: flex;

	align-items: center;

	justify-content: center;

	color: var(--lp-red);

	font-size: 13px;

	font-weight: 900;

	line-height: 1;

	text-indent: 0;

}



.lp-admin-class-requirements .lp-requirement-choices .choices__list--dropdown,

.lp-admin-class-requirements .lp-requirement-choices .choices__list[aria-expanded] {

	z-index: 140;

}



.lp-filter-bar .choices[data-type*="select-one"]::after,

.lp-filter-bar .choices[data-type*="select-one"].is-open::after,

.lp-admin-class-filters .choices[data-type*="select-one"]::after,

.lp-admin-class-filters .choices[data-type*="select-one"].is-open::after,

.lp-student-class-filters .choices[data-type*="select-one"]::after,

.lp-student-class-filters .choices[data-type*="select-one"].is-open::after,

.lp-calendar-toolbar .choices[data-type*="select-one"]::after,

.lp-calendar-toolbar .choices[data-type*="select-one"].is-open::after,

.lp-app-filter-form .choices[data-type*="select-one"]::after,

.lp-app-filter-form .choices[data-type*="select-one"].is-open::after {

	display: none;

}



.lp-filter-bar .choices,

.lp-admin-class-filters .choices,

.lp-student-class-filters .choices,

.lp-calendar-toolbar .choices,

.lp-app-filter-form .choices {

	width: auto;

	min-width: 160px;

	height: 32px;

}



.lp-app-filter-form .choices {

	width: 160px;

	min-width: 160px;

	height: 32px;

	margin-bottom: 0;

}



.lp-filter-bar .choices__inner,

.lp-admin-class-filters .choices__inner,

.lp-student-class-filters .choices__inner,

.lp-calendar-toolbar .choices__inner,

.lp-app-filter-form .choices__inner {

	background: var(--lp-text) url("../icons/Icon feather-filter-white.svg") right 10px center / 16px 16px no-repeat;

	color: #fff;

	font-weight: 900;

	padding-right: 34px;

}



.lp-filter-dropdown__panel {

	display: grid;

	grid-template-columns: 1fr;

	gap: 0;

	background: #fff;

}



.lp-filter-dropdown__option {

	display: flex;

	width: 100%;

	align-items: center;

	gap: var(--lp-space-2);

	padding: 8px 4px;

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



.lp-filter-dropdown__option:hover {

	color: var(--lp-red);

	background: transparent;

}



.lp-color-option {

	grid-template-columns: minmax(0, 1fr) 52px;

	padding: 10px;

	border: 1px solid transparent;

}



.lp-color-preview {

	border-radius: 0;

}

/* =========================================================

   Phase 3.1G - Price Input

   ========================================================= */



.lp-price-input-wrap {

	display: grid;

	grid-template-columns: 38px minmax(0, 1fr);

	align-items: center;

	width: 100%;

	min-height: var(--lp-input-height);

	border: 1px solid var(--lp-border);

	background: #fff;

}



.lp-price-input-wrap__currency {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	height: 100%;

	border-right: 1px solid var(--lp-border);

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 12px;

	font-weight: 900;

}



.lp-price-input-wrap input {

	min-height: calc(var(--lp-input-height) - 2px);

	border: 0 !important;

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

	box-shadow: none;

	outline: none;

}



.lp-price-input-wrap input:focus {

	outline: none;

	box-shadow: none;

}

/* =========================================================

   Phase 3.1H - Icon System

   ========================================================= */



.lp-icon-svg {

	display: inline-block;

	width: 1em;

	height: 1em;

	flex: 0 0 auto;

	vertical-align: -0.12em;

}



.lp-portal-nav__link .lp-icon-svg,

.lp-portal-mobile-nav__link .lp-icon-svg {

	width: 22px;

	height: 22px;

}



.lp-portal-user__avatar .lp-icon-svg,

.lp-portal-mobile-user .lp-icon-svg {

	width: 30px;

	height: 30px;

}



.lp-portal-user__chevron {

	display: inline-block;

	width: 0;

	height: 0;

	margin-left: 2px;

	border-left: 4px solid transparent;

	border-right: 4px solid transparent;

	border-top: 5px solid var(--lp-text);

}



.lp-portal-mobile-menu__close {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 34px;

	height: 34px;

	padding: 0;

	border: 0;

	background: transparent;

	cursor: pointer;

}



.lp-portal-mobile-menu__close .lp-icon-svg {

	width: 18px;

	height: 18px;

}



.lp-button .lp-icon-svg,

.lp-primary-action .lp-icon-svg,

.lp-admin-add-class-button .lp-icon-svg,

.lp-submit-request-button .lp-icon-svg {

	width: 14px;

	height: 14px;

}



.lp-selected-class-row__check {

	background: transparent;

}



.lp-selected-class-row__check::before {

	content: "";

	display: block;

	width: 14px;

	height: 14px;

	background: url("../icons/circle-check.svg") center / contain no-repeat;

}



.lp-selected-class-remove {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	width: 24px;

	height: 24px;

	padding: 0;

}



.lp-js-icon {

	display: inline-block;

	width: 1em;

	height: 1em;

	flex: 0 0 auto;

	background-position: center;

	background-repeat: no-repeat;

	background-size: contain;

	vertical-align: -0.12em;

}



.lp-js-icon--edit-white {

	width: 14px;

	height: 14px;

	background-image: url("../icons/pencil-white.svg");

}



.lp-js-icon--check {

	width: 14px;

	height: 14px;

	background-image: url("../icons/circle-check.svg");

}



.lp-js-icon--close {

	width: 14px;

	height: 14px;

	background-image: url("../icons/circle-x.svg");

}



.lp-fc-select-box .lp-js-icon {

	width: 10px;

	height: 10px;

}

/* =========================================================

   Phase 3.1H.2 - Icons / Tooltips / Filter Buttons

   ========================================================= */



.lp-portal-nav__link {

	color: var(--lp-text);

}



.lp-portal-nav__link .lp-menu-icon,

.lp-portal-mobile-nav__link .lp-menu-icon {

	color: var(--lp-text);

}



.lp-portal-nav__link.is-active,

.lp-portal-nav__link:hover,

.lp-portal-mobile-nav__link.is-active,

.lp-portal-mobile-nav__link:hover {

	color: var(--lp-red);

}



.lp-portal-nav__link.is-active .lp-menu-icon,

.lp-portal-nav__link:hover .lp-menu-icon,

.lp-portal-mobile-nav__link.is-active .lp-menu-icon,

.lp-portal-mobile-nav__link:hover .lp-menu-icon {

	color: var(--lp-blue);

}



.lp-filter-dropdown summary {

	display: inline-flex;

	align-items: center;

	justify-content: space-between;

	width: 160px;

	min-width: 160px;

}



.lp-filter-dropdown summary .lp-icon-svg {

	width: 16px;

	height: 16px;

	margin-left: 12px;

}



.lp-student-class-filters {

	display: flex;

	flex-wrap: wrap;

	gap: var(--lp-space-3);

}



.lp-filter-select-wrap {

	display: inline-flex;

	align-items: center;

	justify-content: space-between;

	width: 160px;

	min-height: var(--lp-input-height);

	padding: var(--lp-input-padding);

	background: var(--lp-text);

	color: #fff;

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 900;

	cursor: pointer;

}



.lp-filter-select-wrap .lp-icon-svg {

	width: 16px;

	height: 16px;

}



.lp-admin-class-filters > select,

.lp-admin-class-filters > .choices,

.lp-student-class-filters > select,

.lp-student-class-filters > .choices,

.lp-filter-bar > select,

.lp-filter-bar > .choices {

	display: inline-block;

	width: 200px;

	min-width: 200px;

	height: 32px;

}



.lp-app-filter-form.lp-student-class-filters .choices__inner {

	min-height: 32px;

	height: 32px;

	padding-top: 0;

	padding-bottom: 0;

}



.lp-student-class-filters .choices__item {

	color: #fff;

	font-weight: 900;

}



.lp-student-class-filters .choices__list--dropdown .choices__item,

.lp-student-class-filters .choices__list[aria-expanded] .choices__item {

	color: var(--lp-text);

	font-weight: 400;

}



.lp-selection-panel header {

	position: relative;

	align-items: center;

}



.lp-selection-panel__title-group {

	display: inline-flex;

	align-items: center;

	gap: var(--lp-space-3);

	min-width: 0;

}



.lp-selection-panel__title-group h2 {

	margin: 0;

}



.lp-selection-step-icon {

	width: 28px;

	height: 28px;

}



.lp-tooltip {

	position: relative;

	margin-left: auto;

}



.lp-tooltip__trigger {

	display: inline-flex;

	align-items: center;

	gap: 7px;

	padding: 0;

	border: 0;

	background: transparent;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 900;

	cursor: pointer;

}



.lp-tooltip__trigger .lp-icon-svg {

	width: 17px;

	height: 17px;

}



.lp-tooltip__content {

	position: absolute;

	top: calc(100% + 10px);

	right: 0;

	z-index: 70;

	display: none;

	width: min(420px, calc(100vw - 40px));

	padding: 18px 22px;

	border: 1px solid var(--lp-red);

	background: #fff;

	color: var(--lp-text);

	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);

}



.lp-tooltip:hover .lp-tooltip__content,

.lp-tooltip:focus-within .lp-tooltip__content {

	display: block;

}



.lp-tooltip__title {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

	margin-bottom: var(--lp-space-3);

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-tooltip__title .lp-icon-svg {

	width: 24px;

	height: 24px;

}



.lp-tooltip__content p {

	margin: 0 0 var(--lp-space-2);

}



.lp-tooltip__content ul {

	margin: 0;

	padding-left: 20px;

}



.lp-tooltip__content li {

	margin-bottom: 5px;

}



.lp-tooltip__content--wide {

	width: min(560px, calc(100vw - 40px));

}



.lp-submit-request-button {

	width: calc(100% - (var(--lp-space-5) * 2));

	box-sizing: border-box;

	background: #A81F440D;

	color: var(--lp-red);

	border: 1px solid var(--lp-red);

	transition:

		background-color 0.2s ease,

		border-color 0.2s ease,

		color 0.2s ease;

}



.lp-submit-request-button:hover,

.lp-submit-request-button:focus-visible {

	background: var(--lp-red);

	border-color: var(--lp-red);

	color: #fff;

}



.lp-submit-request-button:hover .lp-icon-svg path,

.lp-submit-request-button:focus-visible .lp-icon-svg path {

	stroke: #fff;

}



.lp-submit-request-button .lp-icon-svg {

	width: 23px;

	height: 23px;

}



.lp-submit-note {

	display: grid;

	grid-template-columns: 28px minmax(0, 1fr);

	align-items: center;

	gap: var(--lp-space-4);

	box-sizing: border-box;

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-muted);

	background: #F8F8F8;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 10px;

	font-style: italic;

	font-weight: 400;

	line-height: 1.35;

}



.lp-submit-note .lp-icon-svg {

	width: 24px;

	height: 24px;

}



.lp-class-detail-section h2 .lp-icon-svg,

.lp-card h2 .lp-icon-svg {

	width: 21px;

	height: 21px;

	margin-right: var(--lp-space-3);

	vertical-align: -0.2em;

}

/* =========================================================

   Phase 3.1H.3 - Student Profile Box Layout

   ========================================================= */



.lp-profile-edit-form {

	width: 100%;

}



.lp-profile-main,

.lp-profile-sidebar {

	display: grid;

	gap: var(--lp-card-gap);

	align-content: start;

}



.lp-profile-box {

	border: 1px solid var(--lp-border);

	background: var(--lp-surface);

}



.lp-profile-box__header {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-4);

	min-height: 56px;

	padding: var(--lp-card-header-padding);

	border-bottom: 1px solid var(--lp-border);

}



.lp-profile-box__title {

	display: inline-flex;

	align-items: center;

	gap: var(--lp-space-3);

	margin: 0;

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	text-transform: uppercase;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-profile-box__title small {

	color: var(--lp-text);

	font-family: var(--lp-font-title);

	font-size: 12px;

	font-weight: 400;

	letter-spacing: 0.8px;

	text-transform: none;

}



.lp-profile-box__title .lp-icon-svg {

	width: 21px;

	height: 21px;

}



.lp-profile-box__body {

	padding: var(--lp-card-padding);

}



.lp-profile-info-grid {

	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(260px, 1.2fr);

	gap: 22px 28px;

	align-items: start;

}



.lp-profile-info-item {

	display: grid;

	grid-template-columns: 24px minmax(0, 1fr);

	gap: 12px;

	align-items: start;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

}



.lp-profile-info-item .lp-icon-svg {

	width: 21px;

	height: 21px;

}



.lp-profile-info-item strong {

	display: block;

	margin-bottom: 5px;

	color: var(--lp-text);

	font-size: 11px;

	font-weight: 400;

}



.lp-profile-info-item span {

	display: block;

	color: var(--lp-text);

	font-size: 11px;

	font-weight: 400;

	line-height: 1.35;

}



.lp-profile-info-item--note {

	grid-column: 4;

	grid-row: 1 / span 2;

	padding-left: 24px;

	border-left: 1px solid var(--lp-border);

}

.lp-profile-main .lp-profile-box {

	overflow: hidden;

}



.lp-profile-main .lp-profile-box__header {

	min-height: auto;

	padding: var(--lp-card-header-padding);

	border-bottom: 1px solid var(--lp-border);

}



.lp-profile-main .lp-profile-box__title {

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	line-height: 1.2;

	text-transform: uppercase;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-profile-main .lp-profile-box__title .lp-icon-svg {

	display: none;

}



.lp-profile-main .lp-profile-box__body {

	padding: var(--lp-card-padding);

}



.lp-profile-main .lp-profile-info-grid {

	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(240px, 1.3fr);

	gap: 14px 24px;

	align-items: start;

}



.lp-profile-main .lp-profile-info-item {

	display: grid;

	grid-template-columns: 22px minmax(0, 1fr);

	gap: 10px;

	align-items: center;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

}



.lp-profile-main .lp-profile-info-item .lp-icon-svg {

	width: 20px;

	height: 20px;

}



.lp-profile-main .lp-profile-info-item strong {

	display: none;

}



.lp-profile-main .lp-profile-info-item span {

	display: block;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	line-height: 1.35;

}



.lp-profile-main .lp-profile-info-item--note {

	grid-column: 4;

	grid-row: 1 / span 2;

	align-items: start;

	padding-left: var(--lp-space-5);

	border-left: 1px solid var(--lp-border);

}



.lp-profile-box__edit-fields {

	margin-top: var(--lp-space-6);

	padding-top: var(--lp-space-6);

	border-top: 1px solid var(--lp-border-light);

}



.lp-profile-box__edit.is-active {

	border-color: var(--lp-red);

	color: var(--lp-red);

}



.lp-profile-summary-list {

	display: grid;

	gap: 13px;

	margin: 0 0 var(--lp-space-6);

}



.lp-profile-summary-list div {

	display: grid;

	grid-template-columns: minmax(0, 1fr) auto;

	gap: var(--lp-space-4);

	align-items: center;

}



.lp-profile-summary-list dt,

.lp-profile-summary-list dd {

	margin: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 12px;

	font-weight: 400;

}



.lp-profile-summary-list dd {

	text-align: right;

}



.lp-profile-summary-list--security {

	grid-template-columns: repeat(2, minmax(0, 1fr));

}



.lp-profile-summary-list--security div {

	grid-template-columns: 1fr;

}



.lp-profile-summary-list--security dd {

	text-align: left;

}



.lp-profile-important-note {

	display: grid;

	grid-template-columns: 28px minmax(0, 1fr);

	gap: var(--lp-space-4);

	align-items: center;

	margin: 0;

	padding: var(--lp-space-4);

	border: 1px solid var(--lp-red);

	background: var(--lp-danger-bg);

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	line-height: 1.35;

}



.lp-profile-important-note .lp-icon-svg {

	width: 22px;

	height: 22px;

}



.lp-profile-important-note strong {

	color: var(--lp-red);

	font-weight: 900;

}



.lp-profile-save-button {

	justify-self: end;

}

/* =========================================================

   Phase 4 - Applications / Reservations

   ========================================================= */



.lp-page-header {

	display: flex;

	align-items: flex-start;

	justify-content: space-between;

	gap: var(--lp-space-6);

	margin-bottom: var(--lp-title-content-gap);

}



.lp-page-header h1 {

	margin: 0;

	color: var(--lp-text-dark);

	font-family: var(--lp-font-title);

	font-size: var(--lp-page-title-size);

	font-weight: 500;

	line-height: 1.15;

	letter-spacing: var(--lp-title-letter-spacing);

}



.lp-page-header p {

	margin: var(--lp-space-2) 0 0;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-page-subtitle-size);

}



.lp-table-wrap,

.lp-reservations-table-wrap {

	width: 100%;

	overflow: hidden;

	border: 1px solid var(--lp-border);

	background: var(--lp-surface);

	padding: var(--lp-space-4);

}



.lp-app-table-wrap {

	width: 100%;

	overflow: visible;

	border: 1px solid var(--lp-border);

	background: var(--lp-surface);

	padding: var(--lp-space-4);

}



.lp-table,

.lp-app-table,

.lp-reservations-table {

	width: 100%;

	border-collapse: collapse;

	border: 0;

	background: transparent;

	font-family: var(--lp-font-main);

}



.lp-table th,

.lp-app-table th,

.lp-reservations-table th {

	padding: var(--lp-space-5) var(--lp-space-4);

	background: var(--lp-blue);

	color: #fff;

	font-size: var(--lp-table-header-size);

	font-weight: 900;

	letter-spacing: var(--lp-label-letter-spacing);

	text-align: left;

	text-transform: uppercase;

}



.lp-table th + th,

.lp-app-table th + th,

.lp-reservations-table th + th {

	border-left: 8px solid var(--lp-surface);

}



.lp-table td,

.lp-app-table td,

.lp-reservations-table td {

	padding: var(--lp-space-5) var(--lp-space-4);

	border-bottom: 1px solid var(--lp-border-light);

	background: var(--lp-surface);

	color: var(--lp-text);

	font-size: var(--lp-table-cell-size);

	vertical-align: middle;

}



.lp-table td + td,

.lp-app-table td + td,

.lp-reservations-table td + td {

	border-left: 8px solid var(--lp-surface);

}



.lp-table tbody tr:last-child td,

.lp-app-table tbody tr:last-child td,

.lp-reservations-table tbody tr:last-child td {

	border-bottom: 0;

}



.lp-state-block {

	display: inline-flex !important;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-3);

	width: 100%;

	height: 32px;

	padding: var(--lp-space-3);

	border-radius: var(--lp-radius-none);

	font-family: var(--lp-font-main) !important;

	font-size: var(--lp-font-sm) !important;

	font-weight: 900 !important;

	line-height: 1;

	font-style: normal !important;

	text-align: center;

	white-space: nowrap;

}



.lp-state-block .lp-icon-svg {

	display: inline-block;

	width: 17px;

	height: 17px;

	min-width: 17px;

	flex: 0 0 17px;

}



.lp-state-block > span {

	display: inline-block;

	margin: 0;

	color: currentColor;

	font-size: inherit;

	font-weight: inherit;

	line-height: inherit;

}



.lp-state-block--approved,

.lp-state-block--confirmed,

.lp-state-block--paid {

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

}



.lp-state-block--pending {

	background: var(--lp-warning-bg);

	color: var(--lp-warning-text);

}



.lp-state-block--refused,

.lp-state-block--cancelled,

.lp-state-block--unpaid {

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

}



.lp-state-block--partially_approved {

	background: #F8EAF7;

	color: #86387A;

}



.lp-state-block--partial {

	background: #F8EAF7;

	color: #87387A;

}



.lp-state-select {

	width: 100%;

	min-height: 42px;

	padding: var(--lp-space-3);

	border: 0;

	border-radius: var(--lp-radius-none);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-weight: 900;

	text-align: center;

	box-shadow: none;

	outline: none;

}



.lp-app-table td:has(.lp-state-block),

.lp-app-table td:has(.lp-state-select),

.lp-app-table td:has(.lp-status-dropdown),

.lp-reservations-table td:has(.lp-state-block) {

	padding-left: 0;

	padding-right: 0;

}



/* Admin applications list */

.lp-app-screen {

	display: grid;

	gap: var(--lp-space-6);

}



.lp-app-toolbar {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-3);

	margin-bottom: 15px;

	min-height: 32px;

}



.lp-app-filter-form {

	display: flex;

	flex-wrap: nowrap;

	align-items: center;

	flex: 1;

	gap: var(--lp-space-3);

	min-width: 0;

	height: 32px;

	margin-bottom: 0;

}



.lp-app-search {

	position: relative;

	display: flex;

	align-items: center;

	width: 160px;

	min-width: 160px;

	height: 32px;

	margin-left: 0;

}



.lp-app-search .lp-icon-svg {

	position: absolute;

	left: var(--lp-space-3);

	width: 16px;

	height: 16px;

	pointer-events: none;

}



.lp-app-search input {

	width: 100%;

	height: 32px;

	min-height: 32px;

	padding: 0 var(--lp-space-4) 0 var(--lp-space-9);

	border: 1px solid #707070;

	border-radius: 0;

	background: #fff;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	letter-spacing: 0.82px;

}



.lp-app-method-select,

.lp-app-payment-date {

	width: 100%;

	min-height: 42px;

	padding: var(--lp-space-3);

	border: 0;

	border-radius: var(--lp-radius-none);

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



.lp-status-dropdown {

	position: relative;

	width: 100%;

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 700;

}



.lp-status-dropdown__current {

	display: flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-3);

	width: 100%;

	min-height: 42px;

	padding: var(--lp-space-3) var(--lp-space-8) var(--lp-space-3) var(--lp-space-3);

	color: currentColor;

	cursor: pointer;

	list-style: none;

}



.lp-status-dropdown__current::-webkit-details-marker {

	display: none;

}



.lp-status-dropdown__current::after {

	content: "";

	position: absolute;

	right: var(--lp-space-3);

	width: 0;

	height: 0;

	border-left: 5px solid transparent;

	border-right: 5px solid transparent;

	border-top: 6px solid currentColor;

	pointer-events: none;

}



.lp-status-dropdown[open] .lp-status-dropdown__current::after {

	border-top: 0;

	border-bottom: 6px solid currentColor;

}



.lp-status-dropdown__current .lp-icon-svg,

.lp-status-dropdown__option .lp-icon-svg,

.lp-status-dropdown__icon {

	display: block;

	width: 18px;

	height: 18px;

	min-width: 18px;

	flex: 0 0 18px;

}



.lp-status-dropdown__menu {

	position: absolute;

	z-index: 999;

	top: calc(100% + 4px);

	left: 0;

	right: 0;

	display: grid;

	gap: 2px;

	background: var(--lp-surface);

	box-shadow: var(--lp-shadow-card);

}



.lp-status-dropdown__option {

	display: flex;

	align-items: center;

	justify-content: center;

	gap: var(--lp-space-3);

	width: 100%;

	min-height: 42px;

	padding: var(--lp-space-3);

	border: 0;

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

	cursor: pointer;

}



.lp-status-dropdown__option.is-selected {

	outline: 2px solid currentColor;

	outline-offset: -2px;

}



.lp-status-dropdown--paid,

.lp-status-dropdown__option--paid {

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

}



.lp-status-dropdown--partial,

.lp-status-dropdown__option--partial {

	background: #F8EAF7;

	color: #87387A;

}



.lp-status-dropdown--unpaid,

.lp-status-dropdown__option--unpaid {

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

}



.lp-status-dropdown__icon {

	background-repeat: no-repeat;

	background-position: center;

	background-size: contain;

}



.lp-status-dropdown__icon--paid {

	background-image: url("../icons/credit-card-green.svg");

}



.lp-status-dropdown__icon--partial {

	background-image: url("../icons/credit-card-purple.svg");

}



.lp-status-dropdown__icon--unpaid {

	background-image: url("../icons/credit-card-red.svg");

}



.lp-action-outline-button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 10px;

	width: 160px;

	height: 32px;

	padding: 0 var(--lp-space-3);

	border: 1px solid #707070;

	border-radius: 0;

	background: #fff;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

	line-height: 1;

	letter-spacing: 0.82px;

	text-decoration: none;

	white-space: nowrap;

	cursor: pointer;

}



.lp-action-outline-button:hover,

.lp-action-outline-button:focus {

	border-color: #707070;

	color: var(--lp-muted);

	text-decoration: none;

}



.lp-action-outline-button .lp-icon-svg {

	width: 16px;

	height: 16px;

	flex: 0 0 16px;

}



.lp-app-review-button {

	white-space: nowrap;

}



.lp-app-table td:nth-child(1) strong {

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 900;

}



.lp-app-table td:nth-child(2) strong {

	display: block;

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 900;

}



.lp-app-table td:nth-child(2) span {

	display: block;

	margin-top: 4px;

	font-family: var(--lp-font-main);

	font-size: 10px;

	font-style: italic;

	font-weight: 400;

	line-height: 1.3;

}

.lp-app-table .lp-state-block {

	display: inline-flex !important;

    align-items: center;

    justify-content: center;

    gap: var(--lp-space-3);

    width: 100%;

    height: 32px;

    padding: var(--lp-space-3);

    border-radius: var(--lp-radius-none);

    font-family: var(--lp-font-main) !important;

    font-size: var(--lp-font-sm) !important;

    font-weight: 900 !important;

    line-height: 1;

    font-style: normal !important;

    text-align: center;

    white-space: nowrap;

}



.lp-app-table td:nth-child(3) .lp-state-block {

	font-size: 11px;

	font-weight: 700;

}



.lp-app-table td:nth-child(4) .lp-meta-text,

.lp-app-table td:nth-child(7) .lp-meta-text,

.lp-app-payment-date {

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

}



.lp-app-table td:nth-child(5) .lp-status-dropdown {

	font-size: 11px;

	font-weight: 700;

}



.lp-app-status-icon,

.lp-app-action-icon {

	display: inline-block;

	width: 17px;

	height: 17px;

	min-width: 17px;

	flex: 0 0 17px;

	background-repeat: no-repeat;

	background-position: center;

	background-size: contain;

}



.lp-app-status-icon--approved {

	background-image: url("../icons/circle-check.svg");

}



.lp-app-status-icon--partially_approved {

	background-image: url("../icons/Icon feather-info-purple.svg");

}



.lp-app-status-icon--pending {

	background-image: url("../icons/clock-orange.svg");

}



.lp-app-status-icon--refused,

.lp-app-status-icon--cancelled {

	background-image: url("../icons/circle-x.svg");

}



.lp-app-action-icon {

	width: 16px;

	height: 16px;

	min-width: 16px;

	flex-basis: 16px;

	background-image: url("../icons/pencil-gray.svg");

}



.lp-app-payment-date::-webkit-calendar-picker-indicator {

	display: none;

	opacity: 0;

	-webkit-appearance: none;

}



.lp-app-payment-date {

	appearance: none;

	-webkit-appearance: none;

}



.lp-app-load-more-wrap {

	display: flex;

	justify-content: center;

	padding: var(--lp-space-5);

	border-top: 1px solid var(--lp-border-light);

}



.lp-app-load-more {

	color: var(--lp-blue);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-weight: 900;

	text-decoration: none;

}



/* Admin application detail */

.lp-app-detail-layout {

	display: grid;

	grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) minmax(340px, 430px);

	gap: var(--lp-space-5);

	align-items: start;

}



.lp-app-detail-screen .lp-card__header {

	padding: var(--lp-space-5) 22px;

	border-bottom: 1px solid var(--lp-border);

}



.lp-app-detail-screen .lp-card__body {

	padding: var(--lp-space-5) 30px;

}



.lp-app-detail-screen .lp-card__title {

	gap: 10px;

}



.lp-app-info-list {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-app-info-list p {

	display: grid;

	grid-template-columns: 22px minmax(0, 1fr);

	gap: var(--lp-space-3);

	align-items: center;

	margin: 0;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-weight: 400;

	letter-spacing: 0.97px;

}



.lp-app-info-list .lp-icon-svg {

	width: 18px;

	height: 18px;

}



.lp-app-private-note {

	align-items: flex-start;

	padding-top: var(--lp-space-4);

	border-top: 1px solid var(--lp-border-light);

}



.lp-app-request-list {

	display: block;

}



.lp-app-request-item {

	display: grid;

	grid-template-columns: 32px minmax(180px, 1.4fr) minmax(90px, .55fr) minmax(118px, .55fr) minmax(210px, .9fr);

	gap: var(--lp-space-4);

	align-items: center;

	padding: var(--lp-space-5) 22px;

	border: 0;

	border-bottom: 1px solid var(--lp-border-light);

	background: #fff;

}



.lp-app-request-item--approved,

.lp-app-request-item--refused {

	background: #fff;

}



.lp-app-class-color {

	width: 32px;

	min-width: 32px;

	height: 45px;

	align-self: center;

	border-radius: var(--lp-radius-none);

}



.lp-app-class-summary,

.lp-app-class-capacity,

.lp-app-class-price,

.lp-app-class-decision {

	display: grid;

	gap: var(--lp-space-1);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	line-height: 1.3;

}



.lp-app-class-summary strong,

.lp-app-class-capacity strong,

.lp-app-class-price strong,

.lp-app-class-decision strong {

	margin: 0;

	color: var(--lp-text);

	font-weight: 900;

}



.lp-app-class-summary span,

.lp-app-class-capacity span {

	margin: 0;

	color: var(--lp-muted);

	font-weight: 400;

}



.lp-app-price-input-wrap {

	width: 118px;

	max-width: 118px;

}



.lp-app-decision-buttons {

	display: flex;

	gap: var(--lp-space-2);

}



.lp-app-decision-button {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 10px;

	width: 100px;

	height: 32px;

	padding: 0 var(--lp-space-3);

	border: 1px solid currentColor;

	border-radius: 0;

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 900;

	line-height: 1;

	cursor: pointer;

	opacity: .55;

}



.lp-app-decision-button.is-selected {

	opacity: 1;

	background: #fff;

	box-shadow: inset 0 0 0 1px currentColor;

}



.lp-app-decision-button .lp-icon-svg {

	width: 14px;

	height: 14px;

	flex: 0 0 14px;

}



.lp-app-decision-button--approve {

	background: var(--lp-success-bg);

	color: var(--lp-success-text);

}



.lp-app-decision-button--refuse {

	background: var(--lp-danger-bg);

	color: var(--lp-danger-text);

}



.lp-app-refusal-note {

	display: none;

	grid-column: 1 / -1;

	padding: var(--lp-space-3) var(--lp-space-4);

	background: #F8F8F8;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	line-height: 1.35;

}



.lp-app-refusal-note.is-visible {

	display: block;

}



.lp-app-refusal-note label {

	display: grid;

	gap: var(--lp-space-2);

	margin: 0;

}



.lp-app-refusal-note strong {

	color: inherit;

	font-family: inherit;

	font-size: inherit;

	font-weight: 900;

	line-height: inherit;

}



.lp-app-refusal-note textarea {

	width: 100%;

	min-height: 76px;

	border: 1px solid var(--lp-border-light);

	background: #fff;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	line-height: 1.35;

	resize: vertical;

}



.lp-app-email-card {

	margin-top: var(--lp-space-5);

}



.lp-app-email-card .lp-card__body {

	padding: var(--lp-space-5) 30px;

}



.lp-app-email-card .lp-filter-select,

.lp-app-email-card .choices {

	width: 100%;

	min-width: 100%;

}



.lp-app-email-card .lp-form__field {

	margin-bottom: 10px;

}



.lp-app-payment-panel {

	display: grid;

	gap: var(--lp-space-5);

	align-content: start;

}



.lp-app-side-card {

	margin-top: 0;

}



.lp-app-review-footer {

	display: grid;

	grid-template-columns: minmax(0, 1fr) auto;

	gap: var(--lp-space-4);

	align-items: center;

	margin-top: var(--lp-space-5);

}



.lp-app-warning {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

	height: 32px;

	margin: 0;

	font-size: 11px;

	line-height: 1.25;

}

.lp-app-warning .warning-text {

	color: #A81F44;

	font-size: 13px;

}



.lp-app-warning .lp-icon-svg {

	width: 20px;

	height: 20px;

	flex: 0 0 20px;

}



.lp-app-send-button {

	min-width: 210px;

	height: 32px;

	white-space: nowrap;

}



.lp-app-payment-body {

	display: grid;

	gap: var(--lp-space-5);

}



.lp-app-payment-summary {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-app-payment-history {

	display: grid;

	gap: var(--lp-space-4);

	padding-top: var(--lp-space-5);

	border-top: 1px solid var(--lp-border);

}



.lp-app-payment-history h3 {

	margin: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	line-height: 1.2;

	letter-spacing: var(--lp-card-title-letter-spacing);

	text-transform: uppercase;

}



.lp-app-payment-history .lp-state-block {

	width: 100%;

	min-height: 32px;

}



.lp-app-reminder-button {

	width: 100%;

}



/* Student reservations */

.lp-reservations-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-reservation-class {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

}



.lp-reservation-color {

    width: 32px;

    min-width: 32px;

    height: 45px;

    border-radius: var(--lp-radius-none);

    border-left: 3px solid #000;

    border-color: #00000014;

}



.lp-reservation-text {

	display: grid;

	gap: var(--lp-space-1);

}



.lp-reservation-text strong {

	display: block;

	margin: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-weight: 900;

	line-height: 1.25;

}



.lp-reservation-text span {

	display: block;

	margin: 0;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-weight: 400;

	line-height: 1.25;

}



.lp-reservations-table tbody tr.lp-reservation-row-has-note td {

	border-bottom: 0;

}



.lp-reservation-refusal-row td {

	padding: 0 var(--lp-space-4) var(--lp-space-4);

	border-bottom: 1px solid var(--lp-border-light);

}



.lp-reservation-refusal-note {

	display: grid;

	gap: var(--lp-space-1);

	padding: var(--lp-space-3) var(--lp-space-4);

	background: #F8F8F8;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 400;

	line-height: 1.35;

}



.lp-reservation-refusal-note strong,

.lp-reservation-refusal-note span {

	color: inherit;

	font-family: inherit;

	font-size: inherit;

	line-height: inherit;

}



.lp-reservation-refusal-note strong {

	font-weight: 900;

}



.lp-reservation-refusal-note span {

	font-weight: 400;

}



.lp-meta-text {

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-weight: 400;

	line-height: 1.35;

	letter-spacing: 0.97px;

}



.lp-reservations-summary-card > .lp-card__header {

	justify-content: flex-start;

}



.lp-reservations-summary-section {

	padding: var(--lp-space-5) var(--lp-space-6);

	border-bottom: 1px solid var(--lp-border);

}



.lp-reservations-summary-section p {

	display: grid;

	grid-template-columns: minmax(0, 1fr) auto;

	align-items: center;

	gap: var(--lp-space-4);

	margin: 0 0 var(--lp-space-4);

	padding: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	line-height: 1.35;

}



.lp-reservations-summary-section p:last-child {

	margin-bottom: 0;

}



.lp-reservations-summary-section span,

.lp-reservations-summary-section strong {

	color: var(--lp-text);

	font-weight: 700;

}



.lp-reservations-summary-section strong {

	text-align: right;

}



.lp-reservations-summary-section--total strong {

	color: var(--lp-red);

	font-weight: 900;

}



.lp-reservations-payment-note {

	display: flex;

	align-items: flex-start;

	gap: var(--lp-space-3);

	margin: var(--lp-space-5) var(--lp-space-6) var(--lp-space-6);

}



.lp-reservations-payment-note .lp-icon-svg {

	width: 20px;

	height: 20px;

	flex: 0 0 20px;

}



.lp-reservations-payment-note > div {

	min-width: 0;

}



.lp-reservations-payment-note p {

	margin: 0;

	color: var(--lp-muted);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-md);

	font-style: normal;

	line-height: 1.35;

}



.lp-reservations-payment-note p + p {

	margin-top: var(--lp-space-1);

	font-size: var(--lp-font-sm);

}



.lp-reservations-payment-note strong {

	color: var(--lp-text);

	font-weight: 700;

}

.lp-portal-page .lp-table thead th input[type="checkbox"],

.lp-portal-page .lp-app-table thead th input[type="checkbox"],

.lp-portal-page .lp-reservations-table thead th input[type="checkbox"] {

	border-color: #fff;

}



.lp-portal-page .lp-table thead th input[type="checkbox"]:checked,

.lp-portal-page .lp-app-table thead th input[type="checkbox"]:checked,

.lp-portal-page .lp-reservations-table thead th input[type="checkbox"]:checked {

	border-color: var(--lp-red);

}



.lp-app-table[data-lp-students-table] th:first-child,

.lp-app-table[data-lp-students-table] td:first-child {

	padding-left: var(--lp-space-4);

}



.lp-app-table[data-lp-students-table] th:first-child label,

.lp-app-table[data-lp-students-table] td:first-child label {

	display: inline-flex;

	align-items: center;

	gap: 8px;

	font-size: var(--lp-font-md);

	font-weight: 900;

}



.lp-app-table[data-lp-students-table] td:first-child strong {

	font-size: var(--lp-font-md);

	font-weight: 900;

}

.lp-app-table[data-lp-students-table] td:nth-child(3),

.lp-app-table[data-lp-students-table] td:nth-child(4),

.lp-app-table[data-lp-students-table] td:nth-child(6) {

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

}

.lp-attendance-list-table td,

.lp-attendance-taking-table td {

	font-size: 13px;

	font-weight: 400;

	letter-spacing: 0.97px;

}



.lp-attendance-list-table .lp-reservation-text strong {

	font-size: 13px;

	font-weight: 900;

	letter-spacing: 0.97px;

}



.lp-attendance-table-button {

	width: 100%;

}



.lp-attendance-taking-table th:nth-child(5),

.lp-attendance-taking-table td:nth-child(5) {

	width: 40%;

}



.lp-attendance-inner-toolbar {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

	margin: -4px 0 var(--lp-space-4);

}



.lp-attendance-select-label {

	font-size: 11px;

	font-weight: 900;

	letter-spacing: 0.82px;

	white-space: nowrap;

	color: var(--lp-text);

}



.lp-attendance-class-select {

	flex: 0 0 auto;

	width: auto !important;

	min-width: 180px;

	max-width: 260px;

	min-height: 38px;

	font-size: 11px;

	font-weight: 900;

	letter-spacing: 0.82px;

}



.lp-attendance-occurrence-box {

	display: inline-flex;

	align-items: center;

	min-width: 220px;

	min-height: 38px;

	padding: 0 var(--lp-space-4);

	border: 1px solid var(--lp-border);

	background: #fff;

	color: var(--lp-muted);

	font-size: 11px;

	font-weight: 400;

	letter-spacing: 0.82px;

	white-space: nowrap;

	justify-content: center;

}



.lp-attendance-calendar-toolbar {

	justify-content: space-between;

	margin-bottom: var(--lp-space-4);

}



.lp-attendance-calendar-toolbar .lp-week-nav {

	margin-right: auto;

}



.lp-attendance-calendar-toolbar .lp-week-picker__button {

	min-width: 210px;

}



.lp-attendance-calendar-toolbar .lp-week-nav__arrow.is-disabled {

	opacity: 0.35;

	pointer-events: none;

}



.lp-attendance-save-button {

	margin-left: auto;

}



.lp-attendance-note-field {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

	width: 100%;

	min-height: 42px;

	margin: 0;

	padding: 6px 10px;

	border: 1px solid var(--lp-border);

	background: #fff;

	cursor: text;

}



.lp-attendance-note-field .lp-icon-svg {

	width: 16px;

	height: 16px;

	flex: 0 0 16px;

}



.lp-attendance-note-field span {

	white-space: nowrap;

	color: var(--lp-muted);

	font-size: 13px;

	font-weight: 400;

	letter-spacing: 0.97px;

}



.lp-attendance-note-field textarea {

	display: none;

	width: 100%;

	min-height: 32px;

	padding: 0;

	border: 0;

	background: transparent;

	box-shadow: none;

	resize: vertical;

}



.lp-attendance-note-field.is-active {

	align-items: center;

}



.lp-attendance-note-field.is-active span {

	display: none;

}



.lp-attendance-note-field.is-active textarea {

	display: block;

}



.lp-attendance-taking-table td:has([data-lp-attendance-status]) {

	padding-left: var(--lp-space-3);

	padding-right: var(--lp-space-3);

}

.lp-category-settings-rows {

	display: flex;

	flex-direction: column;

	gap: var(--lp-space-4);

	margin-bottom: var(--lp-space-4);

}



.lp-category-settings-row {

	display: grid;

	grid-template-columns: minmax(0, 1fr) 1fr auto;

	align-items: end;

	gap: var(--lp-space-4);

}



.lp-category-settings-row .lp-form__field {

	margin: 0;

}

.lp-category-color-control {

	display: flex;

	align-items: center;

	gap: var(--lp-space-3);

}



.lp-category-color-control input[type="color"] {

	width: 44px;

	height: 38px;

	padding: 0;

	border: 1px solid var(--lp-border);

	background: transparent;

	cursor: pointer;

}



.lp-category-color-preview {

	width: 38px;

	height: 38px;

	border: 1px solid var(--lp-border);

	border-radius: 4px;

	background-image:

		linear-gradient(45deg, #ccc 25%, transparent 25%),

		linear-gradient(-45deg, #ccc 25%, transparent 25%),

		linear-gradient(45deg, transparent 75%, #ccc 75%),

		linear-gradient(-45deg, transparent 75%, #ccc 75%);

	background-size: 10px 10px;

	background-position: 0 0, 0 5px, 5px -5px, -5px 0;

}



.lp-category-color-code {

	width: 230px;

	min-height: 38px;

	font-size: 12px;

}



.lp-category-color-code.is-invalid {

	border-color: var(--lp-danger-text);

}

.lp-communication-panels {

	margin: var(--lp-space-5) 0;

}



.lp-communication-panel[hidden] {

	display: none;

}



.lp-communication-select-actions {

	display: flex;

	flex-wrap: wrap;

	gap: var(--lp-space-3);

	margin: 0 0 var(--lp-space-4);

}



.lp-communication-recipient-picker {

	display: flex;

	flex-direction: column;

	gap: var(--lp-space-2);

	max-height: 360px;

	overflow: auto;

	padding: var(--lp-space-3);

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-md);

	background: var(--lp-surface);

}



.lp-communication-recipient-row {

	display: flex;

	align-items: flex-start;

	gap: var(--lp-space-3);

	padding: var(--lp-space-3);

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-sm);

	background: var(--lp-surface);

	cursor: pointer;

}



.lp-communication-recipient-row input {

	margin-top: 3px;

}



.lp-communication-recipient-row strong,

.lp-communication-recipient-row small {

	display: block;

}



.lp-communication-recipient-row small {

	margin-top: 4px;

	color: var(--lp-text-muted);

	font-size: 12px;

	line-height: 1.4;

}



.lp-communication-preview {

	max-height: 420px;

	overflow: auto;

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-md);

}

.lp-communication-recipient-row[hidden] {

	display: none;

}

.lp-communication-preview-list {

	display: flex;

	flex-direction: column;

	gap: var(--lp-space-2);

	margin: 0;

	padding: var(--lp-space-3);

	list-style: none;

}



.lp-communication-preview-item {

	padding: var(--lp-space-3);

	border: 1px solid var(--lp-border);

	border-radius: var(--lp-radius-sm);

	background: var(--lp-surface);

}



.lp-communication-preview-item strong,

.lp-communication-preview-item span {

	display: block;

}



.lp-communication-preview-item span {

	margin-top: 4px;

	color: var(--lp-text-muted);

	font-size: 12px;

	line-height: 1.4;

}

/* =========================================================

   Post Phase 12 - Admin Class Detail Minimal Fixes

   ========================================================= */



.lp-class-detail-final-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(510px, 510px);

	gap: var(--lp-space-5);

	align-items: start;

}



.lp-class-detail-students-card,

.lp-class-detail-upcoming-card {

	overflow: hidden;

}



.lp-class-detail-students-card > .lp-card__header,

.lp-class-detail-upcoming-card > .lp-card__header {

	min-height: 54px;

	padding: var(--lp-space-4) var(--lp-space-5);

	border-bottom: 1px solid var(--lp-border);

}



.lp-class-detail-table-wrap {

	padding: var(--lp-space-4);

	overflow-x: auto;

	background: var(--lp-surface);

}



.lp-class-detail-actions {

	display: grid;

	gap: var(--lp-space-2);

}



.lp-class-detail-actions form {

	margin: 0;

}



.lp-class-detail-action-button {

	width: 100%;

}



.lp-class-detail-student-row[hidden] {

	display: none;

}



.lp-class-detail-students-table tbody td:first-child strong {

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 900;

}



.lp-class-detail-students-table tbody td:nth-child(2),

.lp-class-detail-students-table tbody td:nth-child(3) {

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

}



.lp-class-detail-students-table tbody td:nth-child(4) {

	font-family: var(--lp-font-main);

	font-size: 11px;

	font-weight: 400;

}



.lp-class-detail-upcoming-card {

	min-height: 260px;

}



.lp-class-detail-upcoming-card__schedule {

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 700;

	letter-spacing: 0.82px;

	white-space: nowrap;

}



.lp-class-detail-upcoming-list {

	display: grid;

	gap: var(--lp-space-2);

	padding: var(--lp-space-4);

}



.lp-class-detail-upcoming-list .lp-upcoming-class-row {

	display: grid;

	grid-template-columns: 88px minmax(0, 1fr) auto;

	gap: var(--lp-space-3);

	align-items: center;

	min-height: 32px;

	padding: var(--lp-space-3);

	border-bottom: 0;

	background: #EBD7DD;

}



.lp-class-detail-upcoming-list .lp-upcoming-class-row__date,

.lp-class-detail-upcoming-list .lp-upcoming-class-row__name,

.lp-class-detail-upcoming-list .lp-upcoming-class-row__slots {

	color: var(--lp-text);

	font-size: var(--lp-font-xs);

	font-weight: 800;

	letter-spacing: 0;

}



@media (max-width: 1100px) {

	.lp-class-detail-final-layout {

		grid-template-columns: 1fr;

	}

}

/* =========================================================

   Post Phase 12 - Attendance Session Notes

   ========================================================= */



.lp-attendance-session-note {

	display: grid;

	gap: var(--lp-space-4);

	margin-top: var(--lp-space-5);

	padding-top: var(--lp-space-5);

	border-top: 1px solid var(--lp-border-light);

}



.lp-attendance-session-note__header {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-4);

}



.lp-attendance-session-note__header h2 {

	margin: 0;

	color: var(--lp-red);

	font-family: var(--lp-font-title);

	font-size: var(--lp-card-title-size);

	font-weight: 400;

	text-transform: uppercase;

	letter-spacing: var(--lp-card-title-letter-spacing);

}



.lp-attendance-session-note__field {

	width: 100%;

	min-height: 110px;

	padding: var(--lp-input-padding);

	border: 1px solid var(--lp-border);

	background: #fff;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: 13px;

	font-weight: 400;

	line-height: 1.4;

	resize: vertical;

}



@media (max-width: 767px) {

	.lp-attendance-session-note__header {

		display: grid;

		grid-template-columns: 1fr;

	}

}

/* =========================================================

   Post Phase 12 - Admin Add/Edit Class Final Layout

   ========================================================= */



.lp-admin-class-form-final {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-admin-class-form-topbar {

	align-items: flex-start;

}



.lp-admin-class-form-topbar .lp-admin-class-form-actions {

	display: flex;

	justify-content: flex-end;

	align-items: center;

	gap: var(--lp-space-3);

	margin: 0;

}



.lp-admin-class-form-topbar .lp-admin-class-form-actions .lp-action-outline-button,

.lp-admin-class-form-topbar .lp-admin-class-form-actions .lp-button {

	width: 190px;

	min-height: 32px;

}

.lp-admin-class-form-final input[type="checkbox"],

.lp-admin-class-form-final input[type="radio"] {

	width: 14px;

	height: 14px;

	min-width: 14px;

	min-height: 14px;

	padding: 0;

	flex: 0 0 14px;

}



.lp-admin-class-form-final__grid {

	display: grid;

	grid-template-columns: minmax(0, 930px) minmax(450px, 590px);

	gap: var(--lp-space-5);

	align-items: start;

}



.lp-admin-class-form-final__card,

.lp-admin-class-session-card {

	overflow: hidden;

}



.lp-admin-class-form-final__body,

.lp-admin-class-session-card__body {

	padding: var(--lp-space-7) var(--lp-space-8);

}



.lp-admin-class-form-section {

	display: grid;

	gap: var(--lp-space-4);

	padding-bottom: var(--lp-space-6);

	border-bottom: 1px solid var(--lp-border-light);

}



.lp-admin-class-form-section + .lp-admin-class-form-section {

	padding-top: var(--lp-space-5);

}



.lp-admin-class-form-section:last-child {

	padding-bottom: 0;

	border-bottom: 0;

}



.lp-admin-class-form-section__title {

	margin: 0;

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-xs);

	font-weight: 900;

	letter-spacing: var(--lp-label-letter-spacing);

	text-transform: uppercase;

}



.lp-admin-class-form-row {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-admin-class-form-row--term {

	grid-template-columns: 1fr;

}



.lp-admin-class-form-row--basic {

	grid-template-columns: 2fr .95fr .9fr .9fr;

}



.lp-admin-class-form-row--basic > :nth-child(5),

.lp-admin-class-form-row--basic > :nth-child(6),

.lp-admin-class-form-row--basic > :nth-child(7),

.lp-admin-class-form-row--basic > :nth-child(8) {

	grid-column: span 1;

}



.lp-admin-class-form-row--basic > :nth-child(9),

.lp-admin-class-form-row--basic > :nth-child(10) {

	grid-column: span 2;

}



.lp-admin-class-form-final .lp-form__field input,

.lp-admin-class-form-final .lp-form__field select,

.lp-admin-class-form-final .lp-price-input-wrap {

	min-height: 40px;

	height: 40px;

}



.lp-admin-class-form-final .lp-form__field input,

.lp-admin-class-form-final .lp-form__field select {

	padding: 0 var(--lp-space-3);

}



.lp-admin-class-form-final .lp-form__field,

.lp-admin-class-form-final .lp-price-field {

	margin: 0;

}



.lp-admin-class-form-final .lp-price-input-wrap {

	grid-template-columns: 38px minmax(0, 1fr);

}



.lp-admin-class-form-section--split {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);

	gap: var(--lp-space-6);

}



.lp-admin-class-form-subsection:first-child {

	padding-right: var(--lp-space-6);

	border-right: 1px solid var(--lp-border-light);

}



.lp-admin-class-form-subsection {

	display: grid;

	gap: var(--lp-space-3);

	align-content: start;

}



.lp-admin-class-colour {

	display: grid;

	gap: var(--lp-space-3);

}



.lp-admin-class-colour label {

	display: inline-flex;

	align-items: center;

	gap: var(--lp-space-2);

	color: var(--lp-text);

	font-size: var(--lp-font-sm);

}



.lp-admin-class-form-final .lp-color-option {

	grid-template-columns: minmax(0, 1fr) 42px;

	gap: var(--lp-space-3);

	padding: 0;

	opacity: 1;

}



.lp-admin-class-form-final .lp-color-preview {

	width: 38px;

	height: 32px;

}



.lp-admin-class-form-final .lp-color-option--custom input[type="color"] {

	width: 38px;

	height: 32px;

	min-height: 32px;

	padding: 2px;

}



.lp-admin-class-requirements {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(230px, 320px);

	gap: var(--lp-space-6);

	align-items: start;

}



.lp-admin-class-form-final .lp-requirement-fields {

	padding-top: 0;

	border-top: 0;

}



.lp-admin-class-form-final .lp-radio-stack {

	gap: 4px;

}



.lp-admin-class-form-info {

	margin: 0;

}



.lp-admin-class-session-card .lp-session-calendar {

	gap: var(--lp-space-4);

}



.lp-admin-class-session-card .lp-session-calendar__table {

	max-height: 350px;

	overflow-y: auto;

	padding-right: var(--lp-space-2);

}



.lp-admin-class-session-card .lp-session-calendar__head,

.lp-admin-class-session-card .lp-session-calendar__row {

	grid-template-columns: minmax(150px, 0.9fr) 130px minmax(150px, 0.8fr);

	gap: var(--lp-space-3);

}



.lp-admin-class-session-card .lp-session-calendar__head {

	position: sticky;

	top: 0;

	z-index: 2;

	background: var(--lp-surface);

}



.lp-admin-class-session-card .lp-session-calendar__head span {

	display: flex;

	align-items: center;

	min-height: 40px;

	padding: 0 var(--lp-space-5);

	background: var(--lp-blue);

	color: #fff;

	font-size: var(--lp-table-header-size);

	font-weight: 900;

	text-transform: uppercase;

	letter-spacing: var(--lp-label-letter-spacing);

}



.lp-admin-class-session-card .lp-session-calendar__rows {

	gap: 0;

}



.lp-admin-class-session-card .lp-session-calendar__row {

	min-height: 46px;

	padding: 0;

	border: 0;

	border-bottom: 1px solid var(--lp-border-light);

	background: transparent;

}



.lp-admin-class-session-card .lp-session-date,

.lp-admin-class-session-card .lp-session-status,

.lp-admin-class-session-card .lp-session-note {

	display: flex;

	align-items: center;

	min-height: 46px;

	padding: 0 var(--lp-space-3);

}



.lp-admin-class-session-card .lp-session-note[hidden] {

	display: flex;

	visibility: hidden;

}



.lp-admin-class-session-card .lp-session-note-label {

	width: 100%;

}



.lp-admin-class-session-card .lp-session-note-input {

	min-height: 32px;

	height: 32px;

}



@media (max-width: 1280px) {

	.lp-admin-class-form-final__grid {

		grid-template-columns: 1fr;

	}



	.lp-admin-class-form-row--basic {

		grid-template-columns: repeat(2, minmax(0, 1fr));

	}



	.lp-admin-class-form-row--basic > * {

		grid-column: auto !important;

	}

}



@media (max-width: 767px) {

	.lp-admin-class-form-final > .lp-admin-class-form-actions {

		display: grid;

		grid-template-columns: 1fr;

	}



	.lp-admin-class-form-final > .lp-admin-class-form-actions .lp-action-outline-button,

	.lp-admin-class-form-final > .lp-admin-class-form-actions .lp-button {

		width: 100%;

	}



	.lp-admin-class-form-final__body,

	.lp-admin-class-session-card__body {

		padding: var(--lp-space-4);

	}



	.lp-admin-class-form-section--split,

	.lp-admin-class-requirements,

	.lp-admin-class-form-row--basic {

		grid-template-columns: 1fr;

	}



	.lp-admin-class-form-subsection:first-child {

		padding-right: 0;

		padding-bottom: var(--lp-space-5);

		border-right: 0;

		border-bottom: 1px solid var(--lp-border-light);

	}



	.lp-admin-class-session-card .lp-session-calendar__table {

		overflow-x: auto;

	}



	.lp-admin-class-session-card .lp-session-calendar__head,

	.lp-admin-class-session-card .lp-session-calendar__row {

		min-width: 520px;

	}

}

/* =========================================================

   Post Phase 12 - Admin Terms Polish

   ========================================================= */



.lp-admin-terms-grid {

	align-items: start;

}



.lp-admin-terms-list-card .lp-table-wrap {

	border: 0;

	padding: 0;

	background: transparent;

}



.lp-admin-terms-list-card .lp-table {

	border: 0;

}



.lp-admin-terms-actions {

	display: grid;

	gap: var(--lp-space-2);

}



.lp-admin-terms-actions form {

	margin: 0;

}



.lp-admin-terms-actions .lp-action-outline-button {

	width: 100%;

}

/* =========================================================

   Post Phase 12 - Admin Student Detail Polish

   ========================================================= */



.lp-admin-student-profile-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);

	gap: var(--lp-space-5);

	align-items: start;

}



.lp-admin-student-profile-main,

.lp-admin-student-profile-side {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-admin-student-profile-card {

	overflow: hidden;

}



.lp-admin-student-profile-card .lp-card__title small {

	color: var(--lp-text);

	font-family: var(--lp-font-title);

	font-size: 12px;

	font-weight: 400;

	letter-spacing: 0.8px;

	text-transform: none;

}



.lp-admin-student-info-grid {

	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(240px, 1.3fr);

	gap: 14px 24px;

	align-items: start;

}



.lp-admin-student-info-grid p {

	display: grid;

	grid-template-columns: 22px minmax(0, 1fr);

	gap: 10px;

	align-items: center;

	margin: 0;

	color: var(--lp-text);

	font-size: var(--lp-font-sm);

}



.lp-admin-student-info-grid .lp-icon-svg {

	width: 20px;

	height: 20px;

}



.lp-admin-student-info-note {

	grid-column: 4;

	grid-row: 1 / span 2;

	align-items: start !important;

	padding-left: var(--lp-space-5);

	border-left: 1px solid var(--lp-border);

}



.lp-admin-student-class-list {

	display: grid;

	gap: var(--lp-space-2);

}



.lp-admin-student-class-row {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(90px, 1fr) minmax(70px, 1fr);

	gap: var(--lp-space-3);

	align-items: center;

	min-height: 45px;

	padding: var(--lp-space-3);

	background: #EBD7DD;

	color: var(--lp-text);

	font-size: var(--lp-font-xs);

}



.lp-admin-student-class-row strong,

.lp-admin-student-class-row span,

.lp-admin-student-class-row em {

	color: inherit;

	font-style: normal;

}



.lp-admin-student-class-row strong {

	font-weight: 900;

}



.lp-admin-student-class-row em {

	text-align: right;

	font-weight: 900;

}



.lp-admin-student-notes-list article + article {

	margin-top: var(--lp-space-4);

	padding-top: var(--lp-space-4);

	border-top: 1px solid var(--lp-border-light);

}



.lp-admin-student-notes-list strong {

	display: block;

	margin-bottom: var(--lp-space-2);

	color: var(--lp-text);

	font-weight: 900;

}



.lp-admin-student-notes-list p {

	margin: 0;

	color: var(--lp-text);

	font-size: var(--lp-font-sm);

	line-height: 1.35;

}



.lp-admin-student-profile-card .lp-table-wrap {

	border: 0;

	padding: 0;

	background: transparent;

}



.lp-admin-student-profile-card .lp-table {

	border: 0;

}



.lp-admin-student-profile-card .lp-inline-form {

	display: grid;

	grid-template-columns: 90px minmax(120px, 1fr);

	gap: var(--lp-space-2);

}



.lp-admin-student-profile-card .lp-inline-form input[type="number"] {

	width: 100%;

	min-height: 32px;

}



.lp-admin-student-profile-card .lp-inline-form .lp-action-outline-button {

	width: 100%;

}



@media (max-width: 1100px) {

	.lp-admin-student-profile-layout {

		grid-template-columns: 1fr;

	}



	.lp-admin-student-info-grid {

		grid-template-columns: repeat(2, minmax(0, 1fr));

	}



	.lp-admin-student-info-note {

		grid-column: 1 / -1;

		grid-row: auto;

		padding-left: 0;

		padding-top: var(--lp-space-4);

		border-left: 0;

		border-top: 1px solid var(--lp-border);

	}

}



@media (max-width: 767px) {

	.lp-admin-student-info-grid,

	.lp-admin-student-class-row {

		grid-template-columns: 1fr;

	}



	.lp-admin-student-class-row em {

		text-align: left;

	}

}

.lp-admin-student-notes-list article header {

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: var(--lp-space-4);

	margin-bottom: var(--lp-space-2);

}



.lp-admin-student-notes-list time {

	color: var(--lp-muted);

	font-size: var(--lp-font-sm);

}



.lp-admin-student-class-row {

	background: #EBD7DD;

}

/* =========================================================

   Post Phase 12 - Admin Teachers List Polish

   ========================================================= */



.lp-admin-teachers-layout {

	grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);

}



.lp-admin-teachers-table-wrap {

	border: 1px solid var(--lp-border);

	padding: var(--lp-space-4);

	background: var(--lp-surface);

}



.lp-admin-teachers-table {

	border: 0;

}



.lp-admin-teachers-table th {

	padding: 14px 18px;

	font-size: var(--lp-table-header-size);

	font-weight: 900;

}



.lp-admin-teachers-table td {

	padding: 14px 18px;

	font-size: 13px;

	letter-spacing: 0.97px;

}



.lp-admin-teachers-table td strong {

	font-size: 13px;

	font-weight: 900;

	letter-spacing: 0.97px;

}



.lp-admin-teachers-table td span {

	color: var(--lp-muted);

	font-size: var(--lp-font-xs);

}



.lp-admin-teachers-table .lp-action-outline-button {

	width: 100%;

}



.lp-admin-teachers-schedule-card {

	min-height: 224px;

}



.lp-admin-teachers-schedule-card > .lp-card__header {

	min-height: 54px;

	padding: var(--lp-space-4) var(--lp-space-5);

	border-bottom: 1px solid var(--lp-border);

}



.lp-admin-teachers-schedule-list {

	display: grid;

	gap: var(--lp-space-2);

	padding: var(--lp-space-4);

}



.lp-admin-teachers-schedule-row {

	display: grid;

	grid-template-columns: 82px minmax(0, 1fr) auto;

	gap: var(--lp-space-3);

	align-items: center;

	min-height: 42px;

	padding: var(--lp-space-3);

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-xs);

}



.lp-admin-teachers-schedule-row span,

.lp-admin-teachers-schedule-row strong,

.lp-admin-teachers-schedule-row em,

.lp-admin-teachers-schedule-row small {

	color: inherit;

	font-style: normal;

	line-height: 1.2;

}



.lp-admin-teachers-schedule-row strong {

	display: grid;

	gap: 2px;

	font-weight: 900;

}



.lp-admin-teachers-schedule-row small {

	font-weight: 700;

}



.lp-admin-teachers-schedule-row em {

	font-weight: 900;

	text-align: right;

	white-space: nowrap;

}



@media (max-width: 1100px) {

	.lp-admin-teachers-layout {

		grid-template-columns: 1fr;

	}

}



@media (max-width: 767px) {

	.lp-admin-teachers-schedule-row {

		grid-template-columns: 1fr;

	}



	.lp-admin-teachers-schedule-row em {

		text-align: left;

	}

}

/* =========================================================

   Post Phase 12 - Admin Teacher Detail Polish

   ========================================================= */



.lp-admin-teacher-detail-layout {

	display: grid;

	grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);

	gap: var(--lp-space-5);

	align-items: start;

}



.lp-admin-teacher-detail-main {

	display: grid;

	gap: var(--lp-space-4);

}



.lp-admin-teacher-classes-card,

.lp-admin-teacher-profile-card {

	overflow: hidden;

}



.lp-admin-teacher-classes-table-wrap {

	border: 1px solid var(--lp-border);

	padding: var(--lp-space-4);

	background: var(--lp-surface);

}

.lp-teacher-class-overwrite {

	border: none;

}



.lp-admin-teacher-classes-table {

	border: 0;

}



.lp-admin-teacher-classes-table th {

	padding: 14px 18px;

	font-size: var(--lp-table-header-size);

	font-weight: 900;

}



.lp-admin-teacher-classes-table td {

	padding: 14px 18px;

	font-size: 13px;

	letter-spacing: 0.97px;

}



.lp-admin-teacher-classes-table td:first-child {

	display: table-cell;

	vertical-align: middle;

}



.lp-admin-teacher-classes-table td:first-child .lp-admin-teacher-class-color,

.lp-admin-teacher-classes-table td:first-child strong {

	display: inline-block;

	vertical-align: middle;

}



.lp-admin-teacher-classes-table td:first-child .lp-admin-teacher-class-color {

	margin-right: var(--lp-space-3);

}



.lp-admin-teacher-class-color {

	display: block;

    width: 20px;

    min-width: 20px;

    height: 25px;

    border-radius: var(--lp-radius-none);

    border-left: 3px solid #000;

    border-color: #00000014;

	flex: 0 0 20px;

}



.lp-admin-teacher-classes-table .lp-action-outline-button {

	width: 100%;

}



.lp-admin-teachers-schedule-date {

	color: var(--lp-text);

	font-family: var(--lp-font-main);

	font-size: var(--lp-font-sm);

	font-weight: 700;

	letter-spacing: 0.82px;

	white-space: nowrap;

}



@media (max-width: 1100px) {

	.lp-admin-teacher-detail-layout {

		grid-template-columns: 1fr;

	}

}



/* Final checkbox/radio normalization for Add/Edit Class */

.lp-admin-class-form-final .lp-form__field input[type="checkbox"],

.lp-admin-class-form-final input[type="checkbox"] {

	appearance: none;

	-webkit-appearance: none;

	width: 14px;

	height: 14px;

	min-width: 14px;

	min-height: 14px;

	padding: 0;

	margin: 0;

	border: 1px solid var(--lp-text);

	border-radius: 0;

	background: transparent;

	box-shadow: none;

	flex: 0 0 14px;

}



.lp-admin-class-form-final .lp-form__field input[type="checkbox"]:checked,

.lp-admin-class-form-final input[type="checkbox"]:checked {

	background: var(--lp-red);

	border-color: var(--lp-red);

}



.lp-admin-class-form-final .lp-form__field input[type="checkbox"]:checked::after,

.lp-admin-class-form-final input[type="checkbox"]:checked::after {

	content: '';

	display: block;

	width: 4px;

	height: 8px;

	margin: 1px auto 0;

	border: solid #fff;

	border-width: 0 2px 2px 0;

	transform: rotate(45deg);

}



.lp-admin-class-form-final .lp-form__field input[type="radio"],

.lp-admin-class-form-final input[type="radio"] {

	width: 10px;

	height: 10px;

	min-width: 10px;

	min-height: 10px;

	padding: 0;

	margin: 0;

	flex: 0 0 10px;

}

.lp-attendance-select-all-label {

	justify-content: flex-start;

	font-weight: inherit;

}



.lp-admin-teacher-classes-table tbody tr td:first-child,.lp-admin-teacher-classes-table tbody tr td:last-child,

.lp-attendance-list-table tbody tr td:first-child, .lp-attendance-list-table tbody tr td:last-child,

.lp-attendance-taking-table tbody tr td:last-child {

	padding-left: 0;

}



.lp-attendance-taking-table td:nth-child(2), .lp-attendance-list-table td:nth-child(6), .lp-app-table td:nth-child(6) {

	padding-left: 0;

	padding-right: 0;

}



.lp-teacher-class-actions {

	display: grid;

	gap: var(--lp-space-2);

	justify-items: start;

}





/* .lp-app-table td:nth-child(1),

.lp-reservations-table td:nth-child(1) {

	padding-left: 0;

} */

.lp-reservation-payment-stack {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}
.lp-data-management-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-height: 280px;
	overflow-y: auto;
	padding: 8px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 12px;
	background: #fff;
}

.lp-data-management-list label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 10px;
	background: #f8f8f8;
	cursor: pointer;
}

.lp-data-management-list label:hover {
	background: #f3f3f3;
}

.lp-data-management-list input[type="checkbox"] {
	margin-top: 3px;
	flex: 0 0 auto;
}

.lp-data-management-list span {
	display: flex;
	flex-direction: column;
	gap: 3px;
	line-height: 1.3;
}

.lp-data-management-list small {
	color: var(--lp-color-muted);
	font-size: 12px;
	line-height: 1.35;
}

.lp-data-management-counts {
	max-height: 280px;
	overflow-y: auto;
	padding: 8px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 12px;
	background: #fff;
}

.lp-data-management-counts .lp-key-value-row {
	padding: 9px 10px;
}

.lp-form-actions {
	    margin-top: 10px;
}
/* Student class selection important modal */

.lp-class-important-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 32px;
	margin-top: var(--lp-space-2);
	padding: 6px 16px;
	border: 1px solid var(--lp-red);
	border-radius: var(--lp-radius-none);
	background: var(--lp-red);
	color: #fff;
	font-family: var(--lp-font-button);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.1;
	text-transform: uppercase;
	letter-spacing: 0.82px;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease;
}

.lp-class-important-button:hover,
.lp-class-important-button:focus-visible {
	background: #fff;
	color: var(--lp-red);
	border-color: var(--lp-red);
}

.lp-class-important-modal[hidden] {
	display: none;
}

.lp-class-important-modal {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--lp-space-5);
}

.lp-class-important-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.lp-class-important-modal__dialog {
	position: relative;
	z-index: 1;
	display: grid;
	width: min(620px, 100%);
	max-height: calc(100vh - 40px);
	overflow: auto;
	background: #fff;
	border: 1px solid var(--lp-border);
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.18);
	outline: none;
}

.lp-class-important-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--lp-space-4);
	padding: var(--lp-space-5) var(--lp-space-6);
	border-bottom: 1px solid var(--lp-border-light);
}

.lp-class-important-modal__header h2 {
	margin: 0;
	color: var(--lp-red);
	font-family: var(--lp-font-heading);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: var(--lp-title-letter-spacing);
	text-transform: uppercase;
}

.lp-class-important-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--lp-border);
	background: #fff;
	color: var(--lp-text);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

.lp-class-important-modal__close:hover,
.lp-class-important-modal__close:focus-visible {
	border-color: var(--lp-red);
	color: var(--lp-red);
}

.lp-class-important-modal__body {
	display: grid;
	gap: var(--lp-space-4);
	padding: var(--lp-space-6);
}

.lp-class-important-modal__body p {
	margin: 0;
	color: var(--lp-text);
	font-size: var(--lp-font-md);
	line-height: 1.55;
}

.lp-class-important-modal__footer {
	display: flex;
	justify-content: flex-end;
	padding: var(--lp-space-5) var(--lp-space-6);
	border-top: 1px solid var(--lp-border-light);
}

body.lp-class-important-modal-is-open {
	overflow: hidden;
}

/* Admin student permanent deletion */

.lp-student-delete-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: var(--lp-space-3);
}

.lp-student-delete-button {
	border-color: var(--lp-red);
	background: var(--lp-red);
	color: #fff;
}

.lp-student-delete-button:hover,
.lp-student-delete-button:focus-visible {
	border-color: var(--lp-red);
	background: #fff;
	color: var(--lp-red);
}

.lp-student-delete-button:disabled,
.lp-student-delete-button[aria-disabled="true"] {
	border-color: var(--lp-border);
	background: var(--lp-border);
	color: var(--lp-muted);
	cursor: not-allowed;
	opacity: 0.75;
}

.lp-student-delete-button:disabled:hover,
.lp-student-delete-button:disabled:focus-visible,
.lp-student-delete-button[aria-disabled="true"]:hover,
.lp-student-delete-button[aria-disabled="true"]:focus-visible {
	border-color: var(--lp-border);
	background: var(--lp-border);
	color: var(--lp-muted);
}

.lp-student-delete-modal__dialog {
	width: min(720px, 100%);
}

.lp-student-delete-modal__header h2 {
	color: var(--lp-red);
}

.lp-student-delete-modal__warning {
	display: flex;
	align-items: flex-start;
	gap: var(--lp-space-4);
	padding: var(--lp-space-4);
	border: 1px solid var(--lp-red);
	background: rgba(159, 22, 52, 0.06);
}

.lp-student-delete-modal__warning > svg {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	color: var(--lp-red);
}

.lp-student-delete-modal__warning > div {
	display: grid;
	gap: var(--lp-space-2);
}

.lp-student-delete-modal__warning strong {
	color: var(--lp-red);
	font-family: var(--lp-font-title);
	font-size: var(--lp-font-lg);
	font-weight: 500;
	line-height: 1.35;
}

.lp-student-delete-modal__records {
	display: grid;
	gap: var(--lp-space-3);
}

.lp-student-delete-modal__records h3 {
	margin: 0;
	color: var(--lp-text);
	font-family: var(--lp-font-title);
	font-size: var(--lp-font-md);
	font-weight: 500;
	line-height: 1.3;
	text-transform: uppercase;
}

.lp-student-delete-modal__counts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	border-top: 1px solid var(--lp-border-light);
	border-left: 1px solid var(--lp-border-light);
}

.lp-student-delete-modal__counts > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--lp-space-3);
	min-width: 0;
	padding: var(--lp-space-3);
	border-right: 1px solid var(--lp-border-light);
	border-bottom: 1px solid var(--lp-border-light);
	background: #fff;
}

.lp-student-delete-modal__counts dt,
.lp-student-delete-modal__counts dd {
	margin: 0;
}

.lp-student-delete-modal__counts dt {
	color: var(--lp-text);
	font-size: var(--lp-font-sm);
	line-height: 1.35;
}

.lp-student-delete-modal__counts dd {
	flex: 0 0 auto;
	color: var(--lp-red);
	font-family: var(--lp-font-title);
	font-size: var(--lp-font-lg);
	font-weight: 600;
}

.lp-student-delete-modal__scope-note {
	padding: var(--lp-space-3);
	border: 1px solid var(--lp-border-light);
	background: var(--lp-surface-soft);
	color: var(--lp-muted);
	font-size: var(--lp-font-sm);
}

.lp-student-delete-modal__confirmation {
	display: flex;
	align-items: flex-start;
	gap: var(--lp-space-3);
	padding: var(--lp-space-4);
	border: 1px solid var(--lp-border);
	background: #fff;
	color: var(--lp-text);
	font-size: var(--lp-font-md);
	line-height: 1.45;
	cursor: pointer;
}

.lp-student-delete-modal__confirmation input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--lp-red);
}

.lp-student-delete-modal__confirmation:focus-within {
	border-color: var(--lp-red);
	box-shadow: 0 0 0 2px rgba(159, 22, 52, 0.12);
}

.lp-student-delete-modal__footer {
	gap: var(--lp-space-3);
}

body.lp-student-delete-modal-is-open {
	overflow: hidden;
}

@media (max-width: 767px) {
	.lp-class-important-modal {
		align-items: center;
		padding: var(--lp-space-3);
	}

	.lp-class-important-modal__dialog {
		max-height: calc(100vh - 24px);
	}

	.lp-class-important-modal__header,
	.lp-class-important-modal__body,
	.lp-class-important-modal__footer {
		padding-left: var(--lp-space-4);
		padding-right: var(--lp-space-4);
	}

	.lp-class-important-modal__footer .lp-button {
		width: 100%;
	}
}

.lp-admin-class-form-final__grid h2 {
	margin: 0;
}

.lp-student-class-filters .lp-action-outline-button {
	width: auto;
}
.lp-app-screen .lp-button {
	width: auto;
}
.lp-price-line[hidden] {
	display: none !important;
}
/* Admin Students: keep long class lists from crushing semester columns. */
[data-lp-students-table] {
	table-layout: fixed;
	width: 100%;
}

[data-lp-students-table] th:nth-child(2) {
	width: 25%;
}
