:root,
[data-bs-theme="light"] {
    /* Brand palette */
    --shield-primary: #ef553f;
    --shield-primary-dark: #b84236;
    --shield-teal: #08aaae;
    --shield-teal-dark: #0c747a;
    --shield-slate: #1c4748;
    --shield-slate-muted: #51676a;
    --shield-neutral-100: #f8f9fb;
    --shield-neutral-200: #e6e7ea;
    --shield-neutral-300: #ced4da;
    --shield-neutral-900: #1c2024;
    --shield-black: #333333;

    /* Bootstrap token overrides */
    --bs-primary: var(--shield-primary);
    --bs-primary-rgb: 239, 85, 63;
    --bs-secondary: #9499a3;
    --bs-success: #20c997;
    --bs-info: var(--shield-teal);
    --bs-light: var(--shield-neutral-200);
    --bs-dark: var(--shield-slate);
    --bs-body-color: var(--shield-slate);
    --bs-body-bg: #ffffff;
    --bs-border-color: rgba(28, 71, 72, 0.12);
    --bs-link-color: var(--shield-teal);
    --bs-link-hover-color: #0b8f93;
    --bs-dropdown-bg: #ffffff;
    --bs-dropdown-border-color: rgba(28, 71, 72, 0.12);
    --bs-dropdown-link-color: var(--shield-slate);
    --bs-dropdown-link-hover-bg: var(--shield-neutral-100);
    --bs-dropdown-link-hover-color: var(--shield-slate);
    --bs-dropdown-divider-bg: rgba(28, 71, 72, 0.08);
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231c4748'%3e%3cpath d='M3.204 5.783a.5.5 0 0 1 .707-.02L8 9.111l4.089-3.348a.5.5 0 1 1 .64.766l-4.41 3.61a.75.75 0 0 1-.958 0l-4.41-3.61a.5.5 0 0 1-.02-.707z'/%3e%3c/svg%3e");
    --bs-font-sans-serif: "Montserrat", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-border-radius: 0.375rem;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-btn-border-radius: 0.375rem;
    --bs-btn-border-radius-lg: 0.5rem;
    --bs-btn-border-radius-sm: 0.25rem;
    --bs-btn-padding-x: 1.25rem;
    --bs-btn-padding-y: 0.55rem;
    --bs-btn-font-weight: 600;
    --bs-btn-font-size: 0.95rem;
}

:root {
    color-scheme: only light;
}

body {
    font-family: var(--bs-body-font-family);
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    line-height: 1.5;
}

a {
    color: var(--bs-link-color);
    text-decoration: none;
}

a:hover,
a:focus {
    color: var(--bs-link-hover-color);
    text-decoration: none;
}

a:focus-visible {
    outline: 2px solid var(--shield-teal);
    outline-offset: 2px;
    text-decoration: underline;
}

.link-inline {
    color: var(--bs-link-color);
    text-decoration: underline;
    text-decoration-thickness: 0.1rem;
}

.link-inline:hover,
.link-inline:focus,
.dropdown-toggle::after {
    border-top-color: currentColor;
    opacity: 0.65;
    transition: opacity 120ms ease-in-out;
}

.dropdown-toggle:hover::after,
.dropdown-toggle:focus-visible::after {
    opacity: 1;
}

.dropdown-menu {
    background-color: var(--bs-dropdown-bg);
    border-color: var(--bs-dropdown-border-color);
    box-shadow: 0 14px 34px rgba(28, 71, 72, 0.12);
}

.dropdown-menu .dropdown-item {
    color: var(--bs-dropdown-link-color);
}

.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus {
    color: var(--bs-dropdown-link-hover-color);
    background-color: var(--bs-dropdown-link-hover-bg);
}

.dropdown-divider {
    opacity: 1;
    background-color: var(--bs-dropdown-divider-bg);
}.btn-primary {
    --bs-btn-bg: var(--shield-primary);
    --bs-btn-border-color: var(--shield-primary);
    --bs-btn-hover-bg: var(--shield-primary-dark);
    --bs-btn-hover-border-color: var(--shield-primary-dark);
    --bs-btn-active-bg: #9f342b;
    --bs-btn-active-border-color: #9f342b;
    --bs-btn-focus-shadow-rgb: 239, 85, 63;
}

.btn-outline-primary {
    --bs-btn-color: var(--shield-primary);
    --bs-btn-border-color: var(--shield-primary);
    --bs-btn-hover-bg: var(--shield-primary);
    --bs-btn-hover-border-color: var(--shield-primary);
    --bs-btn-active-bg: var(--shield-primary-dark);
    --bs-btn-active-border-color: var(--shield-primary-dark);
    --bs-btn-focus-shadow-rgb: 239, 85, 63;
}

.btn-info {
    --bs-btn-bg: var(--shield-teal);
    --bs-btn-border-color: var(--shield-teal);
    --bs-btn-hover-bg: var(--shield-teal-dark);
    --bs-btn-hover-border-color: var(--shield-teal-dark);
    --bs-btn-focus-shadow-rgb: 8, 170, 174;
}

.form-control,
.form-select,
.custom-select,
select.form-control {
    background-color: #ffffff;
    color: var(--shield-slate);
    border-radius: var(--bs-border-radius);
    border-color: rgba(28, 71, 72, 0.16);
}

.form-select,
.custom-select,
select.form-control {
    background-image: var(--bs-form-select-bg-img);
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    background-size: 0.65rem auto;
    padding-right: 2.25rem;
}

.form-control:focus,
.form-select:focus,
.custom-select:focus,
select.form-control:focus {
    border-color: rgba(8, 170, 174, 0.6);
    box-shadow: 0 0 0 0.15rem rgba(8, 170, 174, 0.25);
}

.badge.bg-primary {
    background-color: var(--shield-primary) !important;
}

.badge.bg-info {
    background-color: var(--shield-teal) !important;
}

.link-muted {
    color: var(--shield-slate-muted);
}

.link-muted:hover,
.link-muted:focus {
    color: var(--shield-slate);
}

.card {
    border: 1px solid rgba(28, 71, 72, 0.08);
    border-radius: var(--bs-border-radius-lg);
    box-shadow: 0 6px 18px rgba(28, 71, 72, 0.08);
}

.card-header {
    background-color: var(--shield-neutral-100);
    font-weight: 600;
    color: var(--shield-slate);
}

.card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--shield-slate);
}

.table > :not(caption) > * > * {
    border-bottom-color: rgba(28, 71, 72, 0.08);
}

.progress {
    background-color: rgba(8, 170, 174, 0.15);
    border-radius: var(--bs-border-radius-lg);
}

.progress-bar {
    background-image: linear-gradient(90deg, var(--shield-teal), var(--shield-primary));
}

.shadow-soft {
    box-shadow: 0 12px 28px rgba(28, 71, 72, 0.12) !important;
}

.bg-teal {
    background-color: var(--shield-teal) !important;
}

.text-slate {
    color: var(--shield-slate) !important;
}