.form-label {
    display: block;
    margin: 18px 0 7px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: #2f2f2f;
}

.form-label:first-child {
    margin-top: 0;
}

.form-label .required.error {
    display: inline-block;
    margin-left: 5px;
    color: #d32f2f;
    font-weight: 700;
}

/* pola formularza */
.form-label + input {
    display: block;
    width: 100%;
    height: 44px;
    box-sizing: border-box;
    padding: 0 13px;

    border: 1px solid #d5d5d5;
    border-radius: 6px;
    background: #fff;

    font-size: 15px;
    color: #222;

    transition: border-color .2s ease,
                box-shadow .2s ease,
                background-color .2s ease;
}

/* po kliknięciu */
.form-label + input:focus {
    outline: none;
    border-color: #888;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, .07);
}

/* gdy przeglądarka oznaczy wymagane pole jako niepoprawne */
.form-label + input:invalid:not(:placeholder-shown) {
    border-color: #d9534f;
}

#addCompetitionModal .form-label + input:invalid:not(:placeholder-shown),
#editCompetitionModal .form-label + input:invalid:not(:placeholder-shown) {
    border-color: #d5d5d5;
    box-shadow: none;
}

/* odstęp między kolejnymi polami */
.form-label + input + .form-label {
    margin-top: 20px;
}

/* footer */
html,
body {
    min-height: 100%;
    margin: 0;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Cała główna zawartość */
body > section {
    flex: 1 0 auto;
}

/* Footer */
body > footer {
    flex-shrink: 0;
}

:root {
    --bs-body-font-family: "Trebuchet MS", "Segoe UI", sans-serif;
    --bs-body-color: #172b27;
    --bs-body-bg: #f3f6f2;
    --bs-primary: #285d4a;
    --bs-primary-rgb: 40, 93, 74;
    --bs-success: #417753;
    --bs-success-rgb: 65, 119, 83;
    --bs-dark: #172b27;
    --bs-dark-rgb: 23, 43, 39;
    --bs-border-color: #dce4df;
    --bs-link-color: #285d4a;
    --bs-link-hover-color: #c65a37;
}

body {
    color: #172b27;
    background-color: #f3f6f2;
    font-family: "Trebuchet MS", "Segoe UI", sans-serif;
}

.navbar.navbar-dark.bg-dark {
    --bs-bg-opacity: 1;
    --bs-dark-rgb: 23, 43, 39;
    min-height: 62px;
    border-bottom: 3px solid #c65a37;
    box-shadow: 0 3px 12px rgba(23, 43, 39, .12);
}

.navbar .navbar-brand {
    font-size: 15px;
    font-weight: 750;
}

.navbar .nav-link {
    font-size: 13px;
    font-weight: 650;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    color: #b6d8c6;
}

body > footer.bg-dark {
    --bs-bg-opacity: 1;
    --bs-dark-rgb: 23, 43, 39;
    border-top: 3px solid #c65a37;
}

h1,
h2,
h3,
h4,
h5 {
    color: #172b27;
    font-weight: 700;
}

.btn {
    border-radius: 4px;
    font-weight: 650;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.btn-primary,
.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: #285d4a;
    --bs-btn-border-color: #285d4a;
    --bs-btn-hover-bg: #1c4938;
    --bs-btn-hover-border-color: #1c4938;
    --bs-btn-active-bg: #173b2d;
    --bs-btn-active-border-color: #173b2d;
}

.btn-dark {
    --bs-btn-bg: #172b27;
    --bs-btn-border-color: #172b27;
    --bs-btn-hover-bg: #285d4a;
    --bs-btn-hover-border-color: #285d4a;
}

.form-control,
.form-select {
    border-color: #cbd7d0;
    border-radius: 4px;
    color: #172b27;
}

.form-control:focus,
.form-select:focus {
    border-color: #57866d;
    box-shadow: 0 0 0 .2rem rgba(40, 93, 74, .16);
}

.form-check-input:checked {
    border-color: #285d4a;
    background-color: #285d4a;
}

.form-check-input:focus {
    border-color: #57866d;
    box-shadow: 0 0 0 .2rem rgba(40, 93, 74, .16);
}

.form-label {
    color: #344943;
    font-weight: 650;
}

.card {
    border-color: #dce4df;
    border-radius: 5px;
    box-shadow: 0 4px 16px rgba(23, 43, 39, .06);
}

.card-header {
    border-bottom-color: #dce4df;
}

.table {
    --bs-table-color: #263a34;
    --bs-table-border-color: #dce4df;
    --bs-table-striped-bg: #f3f6f2;
}

.table thead th {
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.alert {
    border-radius: 4px;
}

.modal-content {
    border: 1px solid #dce4df;
    border-radius: 5px;
    box-shadow: 0 16px 42px rgba(23, 43, 39, .18);
}

.signup-heading {
    padding-top: 28px;
    color: #172b27;
    font-size: 1.35rem;
}

@media (max-width: 575.98px) {
    .navbar .navbar-brand {
        max-width: calc(100vw - 110px);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .btn {
        white-space: normal;
    }
}