:root {
    --bs-body-color: var(--sl-color-text);
    --bs-body-bg: var(--sl-color-background);
    --bs-secondary-color: var(--sl-color-muted);
    --bs-border-color: var(--sl-color-border);
    --bs-link-color: var(--sl-color-primary);
    --bs-link-color-rgb: 32, 102, 159;
    --bs-link-hover-color: var(--sl-color-navy);
    --bs-link-hover-color-rgb: 8, 14, 44;
    --bs-border-radius: var(--sl-radius-sm);
}

body { font-size: var(--sl-font-body); line-height: 1.6; }
h1, h2, h3, .h2, .h4, .h5 { color: var(--sl-color-navy); font-weight: 650; line-height: 1.3; }
h1, .h2 { font-size: var(--sl-font-title); }
h2, .h4, .h5 { font-size: var(--sl-font-heading); }
a { text-underline-offset: 0.2em; }
.btn { min-height: 2.75rem; font-weight: 600; transition: none; white-space: normal; }
.btn-primary {
    --bs-btn-bg: var(--sl-color-primary);
    --bs-btn-border-color: var(--sl-color-primary);
    --bs-btn-hover-bg: var(--sl-color-navy);
    --bs-btn-hover-border-color: var(--sl-color-navy);
    --bs-btn-active-bg: var(--sl-color-navy);
    --bs-btn-active-border-color: var(--sl-color-navy);
}
.btn-outline-danger {
    --bs-btn-color: var(--sl-color-danger);
    --bs-btn-border-color: var(--sl-color-danger);
    --bs-btn-hover-bg: var(--sl-color-danger);
    --bs-btn-hover-border-color: var(--sl-color-danger);
    --bs-btn-active-bg: var(--sl-color-danger);
    --bs-btn-active-border-color: var(--sl-color-danger);
}
.card {
    --bs-card-bg: var(--sl-color-surface);
    --bs-card-border-color: var(--sl-color-border);
    --bs-card-border-radius: var(--sl-radius);
    --bs-card-cap-bg: var(--sl-color-background);
    box-shadow: var(--sl-shadow);
}
.card-body { padding: var(--sl-space-5); }
.form-control, .form-select {
    width: 100%;
    max-width: 100%;
    min-height: 2.75rem;
    background-color: var(--sl-color-surface);
    border-color: var(--sl-color-input-border);
}
.form-select[multiple] { min-height: 8rem; }
.form-control:disabled, .form-select:disabled { color: var(--sl-color-muted); background-color: var(--sl-color-background); opacity: 1; }
.form-check-input { border-color: var(--sl-color-input-border); }
.form-check-input:checked { background-color: var(--sl-color-primary); border-color: var(--sl-color-primary); }
.form-label, legend { font-weight: 600; }
.form-text, .text-body-secondary { color: var(--sl-color-muted); }
.invalid-feedback { margin-top: 0.35rem; font-weight: 600; }
.breadcrumb { font-size: var(--sl-font-small); margin-bottom: var(--sl-space-4); }
.alert { border-inline-start-width: 0.25rem; }
.alert-success { --bs-alert-color: var(--sl-color-success); --bs-alert-bg: var(--sl-color-success-bg); --bs-alert-border-color: var(--sl-color-success); }
.alert-info { --bs-alert-color: var(--sl-color-info); --bs-alert-bg: var(--sl-color-info-bg); --bs-alert-border-color: var(--sl-color-info); --bs-alert-link-color: var(--sl-color-info); }
.alert-warning { --bs-alert-color: var(--sl-color-warning); --bs-alert-bg: var(--sl-color-warning-bg); --bs-alert-border-color: var(--sl-color-warning); }
.alert-danger { --bs-alert-color: var(--sl-color-danger); --bs-alert-bg: var(--sl-color-danger-bg); --bs-alert-border-color: var(--sl-color-danger); }
.table { --bs-table-bg: var(--sl-color-surface); --bs-table-color: var(--sl-color-text); }
.table th { background: var(--sl-color-background); }
