.edu-brand {
    display: inline-flex;
    align-items: center;
    gap: var(--edu-space-3);
    color: var(--edu-color-text);
    text-decoration: none;
}

.edu-brand:hover {
    color: var(--edu-color-text);
}

.edu-brand__mark {
    display: inline-grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: var(--edu-radius-md);
    background: var(--edu-color-brand-600);
    box-shadow: 0 0.25rem 0.75rem rgb(52 84 209 / 22%);
    color: #ffffff;
    font-size: var(--edu-text-lg);
    font-weight: 850;
    letter-spacing: -0.03em;
}

.edu-brand__name,
.edu-brand__tagline {
    display: block;
}

.edu-brand__name {
    font-weight: 800;
    letter-spacing: -0.01em;
}

.edu-brand__tagline {
    color: var(--edu-color-text-muted);
    font-size: var(--edu-text-xs);
    line-height: 1.35;
}

.edu-brand--compact .edu-brand__tagline {
    display: none;
}

.btn {
    min-height: 2.75rem;
    border-radius: var(--edu-radius-md);
    font-weight: 700;
    transition: background-color var(--edu-duration-fast) ease, border-color var(--edu-duration-fast) ease, box-shadow var(--edu-duration-fast) ease, color var(--edu-duration-fast) ease, transform var(--edu-duration-fast) ease;
}

.btn:active:not(:disabled) {
    transform: translateY(1px);
}

.btn-primary {
    --bs-btn-bg: var(--edu-color-brand-600);
    --bs-btn-border-color: var(--edu-color-brand-600);
    --bs-btn-hover-bg: var(--edu-color-brand-700);
    --bs-btn-hover-border-color: var(--edu-color-brand-700);
    --bs-btn-active-bg: var(--edu-color-brand-800);
    --bs-btn-active-border-color: var(--edu-color-brand-800);
    --bs-btn-disabled-bg: var(--edu-color-brand-600);
    --bs-btn-disabled-border-color: var(--edu-color-brand-600);
}

.btn-outline-primary {
    --bs-btn-color: var(--edu-color-brand-700);
    --bs-btn-border-color: var(--edu-color-brand-600);
    --bs-btn-hover-bg: var(--edu-color-brand-600);
    --bs-btn-hover-border-color: var(--edu-color-brand-600);
    --bs-btn-active-bg: var(--edu-color-brand-700);
    --bs-btn-active-border-color: var(--edu-color-brand-700);
}

.btn-edu-ghost {
    border-color: transparent;
    background: transparent;
    color: var(--edu-color-brand-700);
}

.btn-edu-ghost:hover {
    background: var(--edu-color-brand-100);
    color: var(--edu-color-brand-800);
}

.edu-page-header {
    display: grid;
    gap: var(--edu-space-4);
    margin-bottom: var(--edu-space-8);
}

.edu-page-header__title {
    margin: 0;
}

.edu-page-header__lead {
    max-width: var(--edu-content-prose);
    margin: 0;
    color: var(--edu-color-text-muted);
    font-size: var(--edu-text-lg);
}

.edu-card {
    height: 100%;
    padding: var(--edu-space-6);
    border: 1px solid var(--edu-color-border);
    border-radius: var(--edu-radius-lg);
    background: var(--edu-color-surface);
    box-shadow: var(--edu-shadow-sm);
}

.edu-card--interactive {
    transition: border-color var(--edu-duration-base) ease, box-shadow var(--edu-duration-base) ease, transform var(--edu-duration-base) ease;
}

.edu-card--interactive:hover {
    border-color: var(--edu-color-brand-200);
    box-shadow: var(--edu-shadow-md);
    transform: translateY(-2px);
}

.edu-card__title {
    margin-bottom: var(--edu-space-3);
    font-size: var(--edu-text-xl);
}

.edu-card__text {
    margin-bottom: var(--edu-space-5);
    color: var(--edu-color-text-muted);
}

.edu-alert {
    padding: var(--edu-space-4) var(--edu-space-5);
    border: 1px solid var(--edu-alert-border, var(--edu-color-border));
    border-left-width: 0.3rem;
    border-radius: var(--edu-radius-md);
    background: var(--edu-alert-bg, var(--edu-color-surface-soft));
    color: var(--edu-alert-color, var(--edu-color-text));
}

.edu-alert--info {
    --edu-alert-bg: var(--edu-color-info-soft);
    --edu-alert-border: var(--edu-color-info);
    --edu-alert-color: var(--edu-color-info);
}

.edu-alert--success {
    --edu-alert-bg: var(--edu-color-success-soft);
    --edu-alert-border: var(--edu-color-success);
    --edu-alert-color: var(--edu-color-success);
}

.edu-alert--warning {
    --edu-alert-bg: var(--edu-color-warning-soft);
    --edu-alert-border: var(--edu-color-warning);
    --edu-alert-color: var(--edu-color-warning);
}

.edu-alert--danger {
    --edu-alert-bg: var(--edu-color-danger-soft);
    --edu-alert-border: var(--edu-color-danger);
    --edu-alert-color: var(--edu-color-danger);
}

.edu-alert__title {
    display: block;
    margin-bottom: var(--edu-space-1);
    color: currentColor;
    font-weight: 800;
}

.edu-alert__message {
    margin: 0;
    color: var(--edu-color-text);
}

.edu-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: var(--edu-space-1) var(--edu-space-3);
    border-radius: var(--edu-radius-pill);
    background: var(--edu-badge-bg, var(--edu-color-surface-soft));
    color: var(--edu-badge-color, var(--edu-color-text));
    font-size: var(--edu-text-xs);
    font-weight: 800;
    line-height: 1;
}

.edu-badge--brand {
    --edu-badge-bg: var(--edu-color-brand-100);
    --edu-badge-color: var(--edu-color-brand-700);
}

.edu-badge--success {
    --edu-badge-bg: var(--edu-color-success-soft);
    --edu-badge-color: var(--edu-color-success);
}

.edu-badge--warning {
    --edu-badge-bg: var(--edu-color-warning-soft);
    --edu-badge-color: var(--edu-color-warning);
}

.edu-badge--danger {
    --edu-badge-bg: var(--edu-color-danger-soft);
    --edu-badge-color: var(--edu-color-danger);
}

.edu-empty-state {
    max-width: 40rem;
    padding: var(--edu-space-10);
    border: 1px dashed var(--edu-color-border-strong);
    border-radius: var(--edu-radius-xl);
    background: var(--edu-color-surface-soft);
    text-align: center;
}

.edu-empty-state__mark {
    display: inline-grid;
    width: 3rem;
    height: 3rem;
    margin-bottom: var(--edu-space-4);
    place-items: center;
    border-radius: var(--edu-radius-pill);
    background: var(--edu-color-brand-100);
    color: var(--edu-color-brand-700);
    font-size: var(--edu-text-xl);
    font-weight: 850;
}

.edu-empty-state__message {
    color: var(--edu-color-text-muted);
}

.form-label {
    color: var(--edu-color-text);
    font-weight: 700;
}

.form-control,
.form-select {
    min-height: 2.75rem;
    border-color: var(--edu-color-border-strong);
    border-radius: var(--edu-radius-md);
    background-color: var(--edu-color-surface);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--edu-color-brand-600);
    box-shadow: 0 0 0 0.2rem rgb(52 84 209 / 18%);
}

.form-text {
    color: var(--edu-color-text-muted);
}

.is-invalid,
.was-validated :invalid {
    --bs-form-invalid-border-color: var(--edu-color-danger);
    --bs-form-invalid-color: var(--edu-color-danger);
}

.edu-status-dot {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    margin-right: var(--edu-space-2);
    border-radius: var(--edu-radius-pill);
    background: currentColor;
}
