:root {
    --app-accent: #3f6b3a;
    --app-accent-hover: #335a2f;
    --app-accent-text: #3f6b3a;
    --app-text: #23281f;
    --app-muted: #5d6656;
    --app-grey: #f1f3ee;
    --app-border: #b9c0b2;
    --app-red: #c42b3c;
    --app-surface: #fff;
    --app-surface-muted: #fbfaf6;
    --app-line: #dfe3d8;
    --app-hover: #f1f5ec;
    --app-shadow: rgba(0, 0, 0, 0.12);
    --app-header-height: 4.5rem;

    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --bs-body-color: var(--app-text);
    --bs-emphasis-color: var(--app-text);
    --bs-secondary-color: var(--app-muted);
    --bs-border-color: var(--app-border);
    --bs-border-radius: 4px;
    --bs-link-color: var(--app-accent-text);
    --bs-link-color-rgb: 63, 107, 58;
    --bs-link-hover-color: var(--app-accent-hover);
    --bs-link-hover-color-rgb: 51, 90, 47;
    --bs-primary: var(--app-accent);
    --bs-primary-rgb: 63, 107, 58;
    --bs-danger: var(--app-red);
    --bs-danger-rgb: 196, 43, 60;
    --bs-focus-ring-color: rgba(63, 107, 58, 0.35);
}

[data-bs-theme=dark] {
    color-scheme: dark;
    --app-accent: #4a7d44;
    --app-accent-hover: #578f50;
    --app-accent-text: #9bc58f;
    --app-text: #e8ebe3;
    --app-muted: #a6af9e;
    --app-grey: #232a20;
    --app-border: #4a5544;
    --app-red: #f0647a;
    --app-surface: #1f251c;
    --app-surface-muted: #191e17;
    --app-line: #333b2e;
    --app-hover: #283024;
    --app-shadow: rgba(0, 0, 0, 0.5);

    --bs-body-bg: #161a14;
    --bs-body-bg-rgb: 22, 26, 20;
    --bs-link-color-rgb: 155, 197, 143;
    --bs-link-hover-color-rgb: 180, 214, 170;
    --bs-primary-rgb: 155, 197, 143;
    --bs-danger-rgb: 240, 100, 122;
}

h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5 {
    font-weight: 700;
}

h1:focus {
    outline: none;
}

.btn {
    font-weight: 600;
}

.btn-primary {
    --bs-btn-bg: var(--app-accent);
    --bs-btn-border-color: var(--app-accent);
    --bs-btn-hover-bg: var(--app-accent-hover);
    --bs-btn-hover-border-color: var(--app-accent-hover);
    --bs-btn-active-bg: var(--app-accent-hover);
    --bs-btn-active-border-color: var(--app-accent-hover);
    --bs-btn-disabled-bg: var(--app-accent);
    --bs-btn-disabled-border-color: var(--app-accent);
}

.btn-outline-primary {
    --bs-btn-color: var(--app-accent-text);
    --bs-btn-border-color: var(--app-accent-text);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--app-accent);
    --bs-btn-hover-border-color: var(--app-accent);
    --bs-btn-active-bg: var(--app-accent);
    --bs-btn-active-border-color: var(--app-accent);
    --bs-btn-disabled-color: var(--app-accent-text);
    --bs-btn-disabled-border-color: var(--app-accent-text);
}

[data-bs-theme=dark] .btn-outline-secondary {
    --bs-btn-color: var(--app-text);
    --bs-btn-border-color: var(--app-border);
    --bs-btn-hover-color: var(--app-text);
    --bs-btn-hover-bg: var(--app-hover);
    --bs-btn-hover-border-color: var(--app-muted);
}

.btn-outline-danger {
    --bs-btn-color: var(--app-red);
    --bs-btn-border-color: var(--app-red);
    --bs-btn-hover-bg: var(--app-red);
    --bs-btn-hover-border-color: var(--app-red);
    --bs-btn-active-bg: #a7162d;
    --bs-btn-active-border-color: #a7162d;
}

.btn-danger {
    --bs-btn-bg: var(--app-red);
    --bs-btn-border-color: var(--app-red);
    --bs-btn-hover-bg: #a7162d;
    --bs-btn-hover-border-color: #a7162d;
}

.form-control, .form-select {
    border-color: var(--app-border);
}

.form-control:focus, .form-select:focus, .form-check-input:focus, .btn:focus-visible {
    border-color: var(--app-accent-text);
    box-shadow: 0 0 0 0.2rem rgba(63, 107, 58, 0.3);
}

.form-check-input:checked {
    background-color: var(--app-accent);
    border-color: var(--app-accent);
}

.form-label {
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.form-label.required::after {
    content: " *";
    color: var(--app-red);
}

fieldset legend.form-label {
    font-size: 1rem;
}

.text-danger {
    color: var(--app-red) !important;
}

.table {
    --bs-table-hover-bg: var(--app-hover);
}

.table-responsive {
    position: relative;
}

@media (min-width: 768px) {
    .members > :not(caption) > tr > :first-child {
        min-width: 12rem;
    }
}

.table > thead th {
    background-color: var(--app-grey);
    font-weight: 700;
}

.summary {
    max-width: 48rem;
}

.summary dt {
    font-weight: 600;
}

.member-form {
    max-width: 48rem;
}

.mark-yes {
    color: var(--app-accent-text);
    font-weight: 700;
}

.mark-no {
    color: var(--app-muted);
}

.valid.modified:not([type=checkbox]):not([type=radio]) {
    outline: 1px solid #598527;
}

.invalid {
    outline: 1px solid var(--app-red);
}

.validation-message {
    color: var(--app-red);
}

.blazor-error-boundary {
    background: var(--app-red);
    padding: 1rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "Wystąpił błąd.";
}

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}
