/* CBC Event Planner — frontend styling.
 * Minimal styling for shortcodes ([cbc_login_form], [cbc_profile_page],
 * [cbc_vendor_directory], [cbc_participant_directory], [cbc_request_form]).
 * Polish/redesign sker i Fase 8.
 */

/* ===== Banners (login, profile, request) ===== */
.cbc-login-banner,
.cbc-profile-banner,
.cbc-request-banner {
	padding: 0.75em 1em;
	margin: 1em 0;
	border-radius: 4px;
	border-left: 4px solid;
	font-size: 0.95em;
}

.cbc-login-banner--success,
.cbc-profile-banner--success,
.cbc-request-banner--success {
	background: #e8f5e9;
	border-left-color: #2e7d32;
	color: #1b5e20;
}

.cbc-login-banner--info,
.cbc-profile-banner--info,
.cbc-request-banner--info {
	background: #e3f2fd;
	border-left-color: #1565c0;
	color: #0d47a1;
}

.cbc-login-banner--error,
.cbc-profile-banner--error,
.cbc-request-banner--error {
	background: #ffebee;
	border-left-color: #c62828;
	color: #b71c1c;
}

/* ===== Profil-side ===== */
.cbc-profile-page {
	max-width: 900px;
}

.cbc-profile-section {
	margin: 1.5em 0;
	padding: 1em 1.25em;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fff;
}

.cbc-profile-section h2 {
	margin-top: 0;
}

.cbc-profile-dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.4em 1em;
	margin: 0;
}

.cbc-profile-dl dt {
	font-weight: 600;
	color: #555;
}

.cbc-profile-dl dd {
	margin: 0;
}

.cbc-profile-stub {
	color: #888;
	font-style: italic;
}

.cbc-profile-nav {
	display: flex;
	gap: 0.75em;
	margin: 1em 0;
}

.cbc-profile-nav__link {
	display: inline-block;
	padding: 0.4em 0.9em;
	background: #f5f5f5;
	border: 1px solid #ddd;
	border-radius: 4px;
	text-decoration: none;
}

.cbc-profile-joined {
	display: block;
	margin-top: 0.25em;
	color: #666;
	font-style: italic;
	font-size: 0.85em;
}

/* ===== Profile self-service edit (4.6) ===== */
.cbc-profile-section--edit {
	background: #fafafa;
}

.cbc-profile-edit > summary {
	cursor: pointer;
	font-weight: 600;
	padding: 0.25em 0;
	user-select: none;
}

.cbc-profile-edit > summary:hover {
	color: #1565c0;
}

.cbc-profile-edit[open] > summary {
	margin-bottom: 0.75em;
}

.cbc-profile-edit-form {
	display: flex;
	flex-direction: column;
	gap: 0.85em;
	max-width: 480px;
}

.cbc-profile-edit-field {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
	margin: 0;
}

.cbc-profile-edit-field label {
	font-weight: 600;
}

.cbc-profile-edit-field input[type="text"],
.cbc-profile-edit-field input[type="tel"],
.cbc-profile-edit-field select {
	padding: 0.5em 0.6em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
	background: #fff;
	box-sizing: border-box;
}

.cbc-profile-edit-field input:focus,
.cbc-profile-edit-field select:focus {
	outline: 2px solid #1976d2;
	outline-offset: 1px;
	border-color: #1976d2;
}

.cbc-profile-edit-field small {
	color: #666;
	font-size: 0.85em;
}

.cbc-profile-edit-submit {
	margin: 0.25em 0 0;
}

.cbc-profile-btn--save {
	display: inline-block;
	padding: 0.55em 1.3em;
	background: #1976d2;
	color: #fff;
	border: 0;
	border-radius: 4px;
	font: inherit;
	cursor: pointer;
}

.cbc-profile-btn--save:hover {
	background: #1565c0;
}

/* ===== Firma-administration (4.6b — vendor-primary kollega-admin) ===== */
.cbc-profile-section--firma-admin {
	background: #fafafa;
}

.cbc-firma-admin > summary {
	cursor: pointer;
	font-weight: 600;
	padding: 0.25em 0;
	user-select: none;
}

.cbc-firma-admin > summary:hover {
	color: #1565c0;
}

.cbc-firma-admin[open] > summary {
	margin-bottom: 0.75em;
}

.cbc-firma-admin-intro {
	color: #555;
	margin: 0 0 1em;
	font-size: 0.95em;
}

.cbc-firma-admin-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1em;
}

.cbc-firma-admin-table th,
.cbc-firma-admin-table td {
	padding: 0.5em 0.65em;
	border-bottom: 1px solid #eee;
	text-align: left;
	vertical-align: top;
}

.cbc-firma-admin-table thead th {
	background: #fff;
	font-weight: 600;
	font-size: 0.9em;
	color: #555;
}

.cbc-firma-admin-row--primary {
	background: #f5f9ff;
}

.cbc-firma-admin-edit,
.cbc-firma-admin-add {
	margin: 0.25em 0;
}

.cbc-firma-admin-edit > summary,
.cbc-firma-admin-add > summary {
	display: inline-block;
	cursor: pointer;
	user-select: none;
	list-style: none;
}

.cbc-firma-admin-edit > summary::-webkit-details-marker,
.cbc-firma-admin-add > summary::-webkit-details-marker {
	display: none;
}

.cbc-firma-admin-edit-form,
.cbc-firma-admin-add-form {
	display: flex;
	flex-direction: column;
	gap: 0.65em;
	margin: 0.75em 0;
	padding: 0.85em 1em;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	max-width: 480px;
}

.cbc-firma-admin-field {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
	margin: 0;
}

.cbc-firma-admin-field label {
	font-weight: 600;
}

.cbc-firma-admin-field input[type="text"],
.cbc-firma-admin-field input[type="email"],
.cbc-firma-admin-field select {
	padding: 0.5em 0.6em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
	background: #fff;
	box-sizing: border-box;
}

.cbc-firma-admin-field input:focus,
.cbc-firma-admin-field select:focus {
	outline: 2px solid #1976d2;
	outline-offset: 1px;
	border-color: #1976d2;
}

.cbc-firma-admin-field small {
	color: #666;
	font-size: 0.85em;
}

.cbc-firma-admin-extras {
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 0.5em 0.85em;
	margin: 0;
}

.cbc-firma-admin-extras legend {
	font-weight: 600;
	padding: 0 0.4em;
}

.cbc-firma-admin-meta {
	margin: 0;
	font-size: 0.85em;
	color: #666;
}

.cbc-firma-admin-submit {
	margin: 0.25em 0 0;
}

.cbc-firma-admin-remove-form {
	display: inline-block;
	margin-left: 0.4em;
}

.cbc-profile-btn--edit,
.cbc-profile-btn--add {
	display: inline-block;
	padding: 0.4em 0.95em;
	background: #fff;
	color: #1976d2;
	border: 1px solid #1976d2;
	border-radius: 4px;
	font: inherit;
	font-size: 0.9em;
	cursor: pointer;
}

.cbc-profile-btn--edit:hover,
.cbc-profile-btn--add:hover {
	background: #e3f2fd;
}

.cbc-profile-btn--remove {
	display: inline-block;
	padding: 0.4em 0.95em;
	background: #fff;
	color: #c62828;
	border: 1px solid #c62828;
	border-radius: 4px;
	font: inherit;
	font-size: 0.9em;
	cursor: pointer;
}

.cbc-profile-btn--remove:hover {
	background: #ffebee;
}

/* ===== Deltager-extras self-service (4.6c) ===== */
.cbc-participant-extras-edit {
	margin-top: 1em;
	padding: 0.75em 0;
	border-top: 1px solid #eee;
}

.cbc-participant-extras-edit > summary {
	cursor: pointer;
	display: inline-block;
	padding: 0.4em 0.95em;
	background: #fff;
	color: #1976d2;
	border: 1px solid #1976d2;
	border-radius: 4px;
	font-size: 0.9em;
	font-weight: 600;
	user-select: none;
	list-style: none;
}

.cbc-participant-extras-edit > summary::-webkit-details-marker {
	display: none;
}

.cbc-participant-extras-edit > summary:hover {
	background: #e3f2fd;
}

.cbc-participant-extras-edit[open] > summary {
	background: #1976d2;
	color: #fff;
	margin-bottom: 1em;
}

.cbc-extras-edit-form {
	display: flex;
	flex-direction: column;
	gap: 1em;
	max-width: 560px;
	padding: 0.5em 0 0;
}

.cbc-extras-edit-fieldset {
	margin: 0;
	padding: 0.75em 1em;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	background: #fff;
}

.cbc-extras-edit-fieldset .cbc-legend {
	font-weight: 600;
	padding: 0 0.4em;
}

.cbc-extras-edit-grid {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	margin-top: 0.5em;
}

.cbc-extras-edit-grid .cbc-service-item {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 0.5em;
	padding: 0.4em 0.5em;
	border-radius: 3px;
}

.cbc-extras-edit-grid .cbc-service-item:hover {
	background: #f5f5f5;
}

.cbc-extras-edit-grid .cbc-service-item.is-inactive {
	opacity: 0.75;
}

.cbc-extras-edit-grid .cbc-service-title {
	font-weight: 500;
}

.cbc-extras-edit-grid .cbc-service-price {
	color: #555;
	font-size: 0.9em;
	white-space: nowrap;
}

.cbc-extras-inactive-note {
	font-style: italic;
	color: #888;
	font-size: 0.85em;
	font-weight: normal;
	margin-left: 0.4em;
}

.cbc-extras-edit-total {
	margin-top: 0.75em;
	padding-top: 0.6em;
	border-top: 1px dashed #ccc;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.cbc-extras-edit-notes {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
}

.cbc-extras-edit-notes label {
	font-weight: 600;
}

.cbc-extras-edit-notes textarea {
	padding: 0.5em 0.6em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
	background: #fff;
	box-sizing: border-box;
	resize: vertical;
	min-height: 80px;
}

.cbc-extras-edit-notes textarea:focus {
	outline: 2px solid #1976d2;
	outline-offset: 1px;
	border-color: #1976d2;
}

.cbc-extras-edit-notes .cbc-field-hint {
	color: #666;
	font-size: 0.85em;
	margin: 0;
}

.cbc-extras-edit-submit {
	margin: 0.25em 0 0;
}

.cbc-extras-edit-submit .cbc-button-primary {
	display: inline-block;
	padding: 0.55em 1.3em;
	background: var(--cbc-brand);
	color: #fff;
	border: 0;
	border-radius: 4px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.cbc-extras-edit-submit .cbc-button-primary:hover {
	background: var(--cbc-brand-dark);
}

/* ===== Tabeller (sendte, directories) ===== */
.cbc-profile-table,
.cbc-directory__table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 0.5em;
}

.cbc-profile-table th,
.cbc-profile-table td,
.cbc-directory__table th,
.cbc-directory__table td {
	padding: 0.5em 0.75em;
	border-bottom: 1px solid #eee;
	text-align: left;
	vertical-align: top;
}

.cbc-profile-table thead th,
.cbc-directory__table thead th {
	background: #fafafa;
	font-weight: 600;
}

/* ===== Anmod-knap i directory ===== */
.cbc-directory__request {
	display: inline-block;
	padding: 0.35em 0.85em;
	background: #1976d2;
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
	font-size: 0.9em;
}

.cbc-directory__request:hover {
	background: #1565c0;
	color: #fff;
}

/* ===== Request-form ===== */
.cbc-request-form {
	max-width: 600px;
	margin: 1em 0;
}

.cbc-request-form__field {
	margin: 1em 0;
	display: flex;
	flex-direction: column;
	gap: 0.3em;
}

.cbc-request-form__field label {
	font-weight: 600;
}

.cbc-request-form__field input[type="text"],
.cbc-request-form__field input[type="email"],
.cbc-request-form__field select,
.cbc-request-form__field textarea {
	padding: 0.5em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
}

.cbc-request-form__submit button,
.cbc-login-form__submit button {
	padding: 0.6em 1.4em;
	background: #1976d2;
	color: #fff;
	border: 0;
	border-radius: 4px;
	font: inherit;
	cursor: pointer;
}

.cbc-request-form__submit button:hover,
.cbc-login-form__submit button:hover {
	background: #1565c0;
}

/* ===== Login-form ===== */
.cbc-login-form {
	max-width: 400px;
	margin: 1em 0;
}

.cbc-login-form__field {
	margin: 1em 0;
	display: flex;
	flex-direction: column;
	gap: 0.3em;
}

.cbc-login-form__field input[type="email"] {
	padding: 0.5em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
}

/* ===== Registration & Vendor wizard forms ===== */
/* Genbrugte klasser fra Registration_Form.php + Vendor_Registration_Form.php.
 * Minimal styling — Fase 8 laver polish/redesign.
 */

.cbc-registration-wrap {
	max-width: 800px;
	margin: 1.5em 0;
}

.cbc-reg-title {
	margin-bottom: 0.4em;
}

.cbc-step-intro {
	color: #555;
	margin: 0 0 1.25em;
}

/* Form layout */
.cbc-form {
	display: flex;
	flex-direction: column;
	gap: 1.25em;
}

.cbc-fieldset {
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	padding: 1em 1.25em;
	margin: 0;
	background: #fff;
}

.cbc-legend {
	font-weight: 600;
	padding: 0 0.4em;
	font-size: 1.05em;
}

.cbc-field-row {
	display: flex;
	flex-direction: column;
	gap: 1em;
	margin: 0.6em 0;
}

.cbc-field-row.cbc-two-col {
	flex-direction: row;
	flex-wrap: wrap;
}

.cbc-field-row.cbc-two-col > .cbc-field {
	flex: 1 1 240px;
	min-width: 0;
}

.cbc-field {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
	margin: 0.6em 0;
}

.cbc-label {
	font-weight: 600;
}

.cbc-required {
	color: #c62828;
	margin-left: 0.15em;
}

.cbc-required-note {
	margin: 0.3em 0 0;
	font-size: 0.85em;
	color: #666;
}

.cbc-input,
.cbc-form input[type="text"],
.cbc-form input[type="email"],
.cbc-form input[type="tel"],
.cbc-form input[type="number"],
.cbc-form select,
.cbc-form textarea {
	padding: 0.5em 0.6em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
	background: #fff;
	width: 100%;
	box-sizing: border-box;
}

.cbc-input:focus,
.cbc-form input:focus,
.cbc-form select:focus,
.cbc-form textarea:focus {
	outline: 2px solid #1976d2;
	outline-offset: 1px;
	border-color: #1976d2;
}

.cbc-field-hint {
	margin: 0.15em 0 0;
	font-size: 0.85em;
	color: #666;
}

/* Radio-grupper (kontaktrolle m.fl.) */
.cbc-radio-group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em 1em;
	margin-top: 0.3em;
}

.cbc-radio-label {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	cursor: pointer;
}

/* Checkbox-rækker (samtykke + kollega-extras) */
.cbc-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 0.5em;
	margin: 0.4em 0;
	cursor: pointer;
}

.cbc-checkbox {
	margin-top: 0.2em;
}

/* Ekstraydelser — card-list med pris til højre */
.cbc-extra-services {
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	margin-top: 0.5em;
}

.cbc-extra-services .cbc-service-item {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 0.6em;
	padding: 0.5em 0.75em;
	border: 1px solid #eee;
	border-radius: 4px;
	background: #fafafa;
	cursor: pointer;
}

.cbc-extra-services .cbc-service-item:hover {
	background: #f0f4f9;
}

.cbc-service-title {
	font-weight: 500;
}

.cbc-service-price {
	color: #555;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.cbc-total-line {
	margin-top: 0.75em;
	padding: 0.6em 0.85em;
	background: #e3f2fd;
	border-radius: 4px;
	font-weight: 600;
	text-align: right;
}

/* Submit-row + buttons */
.cbc-submit-row,
.cbc-step2-actions,
.cbc-commit-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75em;
	margin-top: 0.5em;
}

/* 9.6: CBC brand-color tokens — turkis primary, mørkere turkis hover. */
:root {
	--cbc-brand: #00A89C;
	--cbc-brand-dark: #008075;
	--cbc-brand-light: #e6f5f4;
}

.cbc-button,
.cbc-submit-btn {
	display: inline-block;
	padding: 0.6em 1.4em;
	background: var(--cbc-brand);
	color: #fff;
	border: 0;
	border-radius: 4px;
	font: inherit;
	cursor: pointer;
	text-decoration: none;
}

.cbc-button:hover,
.cbc-submit-btn:hover {
	background: var(--cbc-brand-dark);
	color: #fff;
}

.cbc-button-secondary,
.cbc-btn-secondary {
	display: inline-block;
	padding: 0.55em 1.2em;
	background: #fff;
	color: var(--cbc-brand);
	border: 1px solid var(--cbc-brand);
	border-radius: 4px;
	font: inherit;
	cursor: pointer;
	text-decoration: none;
}

.cbc-button-secondary:hover,
.cbc-btn-secondary:hover {
	background: var(--cbc-brand-light);
	color: var(--cbc-brand-dark);
}

.cbc-btn-link {
	background: transparent;
	border: 0;
	padding: 0.2em 0.4em;
	color: #c62828;
	cursor: pointer;
	font: inherit;
	text-decoration: underline;
}

.cbc-btn-link:hover {
	color: #b71c1c;
}

/* Notice-banners */
.cbc-notice,
.cbc-error-notice {
	padding: 0.75em 1em;
	margin: 1em 0;
	border-radius: 4px;
	border-left: 4px solid #1565c0;
	background: #e3f2fd;
	color: #0d47a1;
}

.cbc-notice-error,
.cbc-error-notice {
	background: #ffebee;
	border-left-color: #c62828;
	color: #b71c1c;
}

/* Success / error wrap (efter tilmelding eller magic-link) */
.cbc-registration-wrap.cbc-success,
.cbc-registration-wrap.cbc-magic-success {
	border-left: 4px solid #2e7d32;
	background: #f1f8e9;
	padding: 1em 1.25em;
	border-radius: 4px;
}

.cbc-registration-wrap.cbc-error,
.cbc-registration-wrap.cbc-magic-error {
	border-left: 4px solid #c62828;
	background: #ffebee;
	padding: 1em 1.25em;
	border-radius: 4px;
}

.cbc-success-body,
.cbc-error-body {
	margin-top: 0.75em;
}

.cbc-ref-box {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.5em 0.85em;
	margin-top: 0.5em;
	background: #fff;
	border: 1px dashed #2e7d32;
	border-radius: 4px;
}

.cbc-ref-id {
	font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
	font-size: 1.05em;
}

.cbc-ref-hint,
.cbc-help-text,
.cbc-next-steps {
	color: #555;
	font-size: 0.9em;
}

/* Autocomplete (firma-søg) */
.cbc-autocomplete {
	position: relative;
}

.cbc-autocomplete-list {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	background: #fff;
	border: 1px solid #ccc;
	border-top: 0;
	border-radius: 0 0 4px 4px;
	max-height: 220px;
	overflow-y: auto;
	z-index: 10;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.cbc-autocomplete-list li {
	padding: 0.45em 0.75em;
	cursor: pointer;
}

.cbc-autocomplete-list li:hover,
.cbc-autocomplete-list li[aria-selected="true"] {
	background: #e3f2fd;
}

.cbc-autocomplete-loading {
	color: #777;
	font-style: italic;
	cursor: default !important;
}

/* Vendor wizard: trin 2 — kolleger */
.cbc-kolleger-list {
	display: flex;
	flex-direction: column;
	gap: 0.85em;
	margin: 0.5em 0;
	padding: 0;
	list-style: none;
}

.cbc-kolleger-list > li {
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	padding: 0.85em 1em;
	background: #fafafa;
}

.cbc-kollega-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.5em;
	font-weight: 600;
}

.cbc-kollega-num {
	display: inline-block;
	min-width: 1.6em;
	height: 1.6em;
	line-height: 1.6em;
	text-align: center;
	background: #1976d2;
	color: #fff;
	border-radius: 50%;
	font-size: 0.85em;
	margin-right: 0.4em;
}

.cbc-kollega-extras .cbc-extra-services {
	margin-top: 0.3em;
}

.cbc-kollega-count {
	margin-top: 0.5em;
}

/* Vendor wizard: trin 3 — bekræftelse */
.cbc-confirm-section {
	margin: 1em 0;
	padding: 0.85em 1em;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fff;
}

.cbc-confirm-heading {
	margin-top: 0;
	font-size: 1.05em;
}

.cbc-confirm-dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.4em 1em;
	margin: 0;
}

.cbc-confirm-dl dt {
	font-weight: 600;
	color: #555;
}

.cbc-confirm-dl dd {
	margin: 0;
}

.cbc-confirm-extras {
	margin: 0.4em 0;
	padding-left: 1.25em;
}

.cbc-confirm-empty {
	color: #888;
	font-style: italic;
	margin: 0;
}

.cbc-confirm-kolleger {
	width: 100%;
	border-collapse: collapse;
	margin-top: 0.5em;
}

.cbc-confirm-kolleger th,
.cbc-confirm-kolleger td {
	padding: 0.4em 0.6em;
	border-bottom: 1px solid #eee;
	text-align: left;
	vertical-align: top;
}

.cbc-confirm-kolleger thead th {
	background: #fafafa;
	font-weight: 600;
}

/* Honeypot — visually hidden */
.cbc-hp-field {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* ---------------------------------------------------------------
 * 4.6d-a: Sessions-tilmelding på /min-profil/
 * --------------------------------------------------------------- */

.cbc-profile-section--sessions h3 {
	margin-top: 1.5em;
	font-size: 1.05em;
	color: #444;
}

.cbc-session-list {
	list-style: none;
	margin: 0.5em 0 1em;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.cbc-session-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 0.75em 1em;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	background: #fff;
}

.cbc-session-list--mine .cbc-session-item {
	border-left: 3px solid #2c7a3d;
	background: #f4faf5;
}

.cbc-session-list--available .cbc-session-item {
	border-left: 3px solid #c0c0c0;
}

.cbc-session-info {
	display: flex;
	flex-direction: column;
	gap: 0.15em;
	flex: 1 1 auto;
	min-width: 0;
}

.cbc-session-title {
	font-size: 1em;
	color: #222;
}

.cbc-session-time {
	font-size: 0.9em;
	color: #555;
}

.cbc-session-location {
	font-size: 0.85em;
	color: #777;
	font-style: italic;
}

.cbc-session-form {
	flex: 0 0 auto;
	margin: 0;
}

.cbc-session-btn--signup,
.cbc-session-btn--unsubscribe {
	min-width: 8em;
}

@media (max-width: 600px) {
	.cbc-session-item {
		flex-direction: column;
		align-items: stretch;
	}
	.cbc-session-form {
		align-self: flex-end;
	}
}

/* --- Fase 6.5: Mit_Program-side (02ab) --- */
.cbc-mit-program { max-width: 900px; margin: 0 auto; padding: 1rem; }
.cbc-mit-program__header { margin-bottom: 1.5rem; }
.cbc-mit-program__title { margin: 0 0 0.25rem; font-size: 1.6rem; }
.cbc-mit-program__user { margin: 0; color: #555; font-size: 1rem; }
.cbc-mit-program__role { color: #888; font-size: 0.9em; }

.cbc-mit-program__actions {
	display: flex;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
}
.cbc-mit-program__btn {
	display: inline-block;
	padding: 0.55rem 1.1rem;
	background: #2c5282;
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
	font-weight: 500;
	transition: background 0.15s;
}
.cbc-mit-program__btn:hover,
.cbc-mit-program__btn:focus {
	background: #1a365d;
	color: #fff;
}
.cbc-mit-program__btn--ics { background: #2f855a; }
.cbc-mit-program__btn--ics:hover,
.cbc-mit-program__btn--ics:focus { background: #22543d; }

.cbc-mit-program__day {
	margin-bottom: 2rem;
}
.cbc-mit-program__day-title {
	font-size: 1.2rem;
	margin: 0 0 0.5rem;
	padding-bottom: 0.3rem;
	border-bottom: 2px solid #e0e0e0;
}

.cbc-mit-program__table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}
.cbc-mit-program__table th,
.cbc-mit-program__table td {
	padding: 0.6rem 0.5rem;
	text-align: left;
	border-bottom: 1px solid #eee;
	vertical-align: top;
}
.cbc-mit-program__table th {
	font-weight: 600;
	background: #f7f7f7;
	font-size: 0.9rem;
}
.cbc-mit-program__time {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	font-weight: 500;
	width: 6em;
}
.cbc-mit-program__row--meeting { background: rgba(44, 82, 130, 0.03); }
.cbc-mit-program__row--session { background: rgba(47, 133, 90, 0.04); }

.cbc-mit-program__col-action {
	text-align: center;
	width: 4em;
}
.cbc-mit-program__event-ics {
	text-decoration: none;
	font-size: 1.2em;
	opacity: 0.7;
	transition: opacity 0.15s;
}
.cbc-mit-program__event-ics:hover,
.cbc-mit-program__event-ics:focus { opacity: 1; }
.cbc-mit-program__event-ics-na { color: #ccc; }

.cbc-mit-program__empty,
.cbc-mit-program__notice {
	padding: 1rem;
	background: #f9f9f9;
	border-left: 3px solid #ddd;
	margin: 1rem 0;
	color: #666;
}

@media (max-width: 600px) {
	.cbc-mit-program__actions {
		flex-direction: column;
	}
	.cbc-mit-program__btn {
		text-align: center;
	}
	.cbc-mit-program__table {
		font-size: 0.92rem;
	}
	.cbc-mit-program__time {
		width: 5em;
	}
}

/* ============================================================
   6.7a §8.1 — Matrix-grid blocked cells (admin only)
   Bemærk: frontend.css enqueues på wp_enqueue_scripts; matrix-grid'et
   renderes i admin via samme klasse-navne. Acceptabel leakage indtil
   67b polish (separat admin-grid-css overvejes).
   ============================================================ */
.cbc-matrix-cell-blocked {
	background-color: #fafafa;
	color: #999;
	text-align: center;
	cursor: help;
	vertical-align: middle;
}
.cbc-matrix-blocked-icon {
	font-size: 1.4em;
	opacity: 0.65;
	display: inline-block;
}
.cbc-matrix-cell-blocked:hover {
	background-color: #f0f0f0;
}
.cbc-matrix-cell-blocked:hover .cbc-matrix-blocked-icon {
	opacity: 0.9;
}
