:root {
    --bs-primary: #1976a8;
    --bs-primary-rgb: 25, 118, 168;
    --bs-secondary: #56616f;
    --bs-secondary-rgb: 86, 97, 111;
    --bs-success: #067647;
    --bs-success-rgb: 6, 118, 71;
    --bs-danger: #b42318;
    --bs-danger-rgb: 180, 35, 24;
    --bs-warning: #c99a2e;
    --bs-warning-rgb: 201, 154, 46;
    --bs-body-color: #172033;
    --bs-body-bg: #f3f6f9;
    --bs-border-color: #d5dee8;
    --bs-border-radius: .5rem;
    --bs-font-sans-serif: Arial, system-ui, -apple-system, "Segoe UI", sans-serif;
}

body {
    font-size: .94rem;
    -webkit-font-smoothing: antialiased;
}

.button,
button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-height: 2.35rem;
    border: 1px solid var(--bs-primary);
    border-radius: .45rem;
    padding: .48rem .82rem;
    background: var(--bs-primary);
    color: #fff;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    box-shadow: 0 .25rem .75rem rgba(25, 118, 168, .12);
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.button:hover,
button:hover {
    background: #126897;
    border-color: #126897;
    color: #fff;
    transform: translateY(-1px);
}

.button.secondary,
button.secondary {
    background: #56616f;
    border-color: #56616f;
}

.button.danger,
button.danger {
    background: var(--bs-danger);
    border-color: var(--bs-danger);
}

.button.light {
    background: #e9f3f8;
    border-color: rgba(25, 118, 168, .22);
    color: #0b5f8f;
}

.button.ghost {
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.34);
    color: #fff;
    box-shadow: none;
}

.button:focus-visible,
button:focus-visible,
input:focus,
textarea:focus,
select:focus {
    outline: 0;
    border-color: rgba(25, 118, 168, .65);
    box-shadow: 0 0 0 .22rem rgba(25, 118, 168, .18);
}

input:not([type="checkbox"]):not([type="radio"]),
textarea,
select {
    border-radius: .45rem;
    border-color: var(--bs-border-color);
    background-color: #fff;
    color: var(--bs-body-color);
}

label {
    color: #293548;
    font-size: .88rem;
}

.card,
form,
table {
    border-color: var(--bs-border-color);
    border-radius: .55rem;
    box-shadow: 0 .5rem 1.35rem rgba(16,24,40,.06);
}

table {
    margin-bottom: 0;
    background: #fff;
}

th,
td {
    padding: .72rem .82rem;
    border-bottom: 1px solid var(--bs-border-color);
    font-size: .88rem;
}

th {
    background: #eaf3f8;
    color: #26384c;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
}

tbody tr:nth-child(even) td {
    background: #fbfdff;
}

tbody tr:hover td {
    background: #f1f8fc;
}

.responsive-table {
    border: 1px solid var(--bs-border-color);
    border-radius: .55rem;
    background: #fff;
    box-shadow: 0 .5rem 1.35rem rgba(16,24,40,.05);
}

.responsive-table table {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.alert {
    border: 1px solid #b7ebc6;
    border-left: .35rem solid var(--bs-success);
    border-radius: .55rem;
    background: #ecfdf3;
    color: #05603a;
    font-weight: 700;
    box-shadow: 0 .35rem 1rem rgba(6, 118, 71, .08);
}

.alert.error {
    border-color: #f7c5c1;
    border-left-color: var(--bs-danger);
    background: #fef3f2;
    color: var(--bs-danger);
}

.badge {
    border-radius: 999px;
    padding: .32rem .56rem;
    font-size: .72rem;
    font-weight: 800;
}

.pagination li a,
.pagination li span {
    border-radius: .45rem;
}

.tab-strip {
    border-bottom-color: var(--bs-primary);
}

.tab-strip label {
    border-radius: .55rem .55rem 0 0;
    font-size: .88rem;
}

.document-modal-close {
    min-height: 2.375rem;
}

.privacy-panel,
.document-modal-panel {
    border-radius: .75rem;
}

.privacy-panel {
    padding: 0;
}

.module-sidebar {
    border: 1px solid rgba(255,255,255,.08);
}

.side-menu a {
    font-size: .88rem;
}

.metric-card,
.daily-summary article,
.officer-summary article,
.quality-card,
.quality-issue {
    border-radius: .55rem;
}

.toolbar {
    padding-bottom: .2rem;
}
