/* Bootstrap override */
.form-control,
.form-select {
    background-color: var(--form-field-bg);
    border: 1px solid var(--form-border);
    border-radius: var(--button-border-radius) !important;
    color: var(--form-text-color);
}

.form-control:hover, .form-select:hover, .form-select-white:hover, .form-select-sm:hover {
    border: 1px solid var(--form-border-hover);
    cursor: pointer;
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly],
.form-select[readonly],
.form-control:disabled:hover,
.form-select:disabled:hover,
.form-control[readonly]:hover,
.form-select[readonly]:hover {
    cursor: not-allowed;
}

.form-control[data-easepick-range][readonly],
.form-select[data-easepick-range][readonly],
.form-control[data-easepick-range][readonly]:hover,
.form-select[data-easepick-range][readonly]:hover {
    cursor: pointer;
}

.form-select-white {
    background-color: var(--surface-color) !important;
    border: 1px solid var(--form-border);
    border-radius: var(--button-border-radius) !important;
    color: var(--form-text-color);
}

.form-floating > label {
    font-size: 14px;
    color: var(--form-text-color);
}

.form-floating > .form-control-plaintext ~ label, .form-floating > .form-control:focus ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label, .form-floating > .form-select ~ label {
    color: var(--form-text-color);
}

.form-floating > .form-control ~ label::after,
.form-floating > .form-select ~ label::after {
    background-color: transparent !important;
}

input::file-selector-button {
    background-color: transparent !important;
    border: 0 !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary-link-color);
    box-shadow: 0 0 0 0.2rem rgba(81, 39, 155, 0.45);
    background-color: var(--form-field-bg);
}

.form-layout-horizontal.form-purpose-filter {
    align-items: flex-end;
    margin-bottom: 1rem;
    max-width: 100%;
    min-width: 0;
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
}

.form-layout-inline.form-purpose-filter {
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 0.75rem;
    max-width: 100%;
    min-width: 0;
}

.form-layout-horizontal.form-purpose-filter > *,
.form-layout-inline.form-purpose-filter > * {
    min-width: 0;
}

.form-layout-horizontal.form-purpose-filter > .col-auto,
.form-layout-inline.form-purpose-filter > .col-auto {
    flex: 0 1 auto;
    max-width: 100%;
}

.form-layout-horizontal.form-purpose-filter .form-label,
.form-layout-inline.form-purpose-filter .form-label {
    margin-bottom: 0.35rem;
}

.form-layout-horizontal.form-purpose-filter .form-control,
.form-layout-horizontal.form-purpose-filter .form-select,
.form-layout-horizontal.form-purpose-filter .checkbox-select-toggle,
.form-layout-inline.form-purpose-filter .form-control,
.form-layout-inline.form-purpose-filter .form-select,
.form-layout-inline.form-purpose-filter .checkbox-select-toggle {
    background-color: var(--surface-color);
    width: auto;
    min-width: 11rem;
    max-width: 18rem;
}

.form-layout-horizontal.form-purpose-filter > .form-control,
.form-layout-horizontal.form-purpose-filter > .form-select,
.form-layout-horizontal.form-purpose-filter > .checkbox-select,
.form-layout-inline.form-purpose-filter > .form-control,
.form-layout-inline.form-purpose-filter > .form-select,
.form-layout-inline.form-purpose-filter > .checkbox-select {
    flex: 0 1 18rem;
}

.form-layout-horizontal.form-purpose-filter input[type="week"].form-control,
.form-layout-inline.form-purpose-filter input[type="week"].form-control,
.form-layout-horizontal.form-purpose-filter input[type="number"].form-control,
.form-layout-inline.form-purpose-filter input[type="number"].form-control {
    min-width: 8.5rem;
    max-width: 10rem;
}

.form-layout-horizontal.form-purpose-filter [data-easepick-range],
.form-layout-inline.form-purpose-filter [data-easepick-range] {
    min-width: 14rem;
    max-width: 16rem;
}

.form-layout-horizontal.form-purpose-filter .checkbox-select-toggle,
.form-layout-inline.form-purpose-filter .checkbox-select-toggle {
    min-width: 11rem;
    max-width: 15rem;
}

.form-layout-horizontal.form-purpose-filter .btn-group,
.form-layout-inline.form-purpose-filter .btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.form-layout-horizontal.form-purpose-filter .btn-group .ms-2,
.form-layout-inline.form-purpose-filter .btn-group .ms-2 {
    margin-left: 0 !important;
}

@media (max-width: 767.98px) {
    .form-layout-horizontal.form-purpose-filter > .col-auto,
    .form-layout-inline.form-purpose-filter > .col-auto {
        flex: 1 1 14rem;
        width: auto;
        min-width: 0;
    }

    .form-layout-horizontal.form-purpose-filter > .col-auto > div:not(.btn-group),
    .form-layout-inline.form-purpose-filter > .col-auto > div:not(.btn-group) {
        width: 100%;
    }

    .form-layout-horizontal.form-purpose-filter .form-control,
    .form-layout-horizontal.form-purpose-filter .form-select,
    .form-layout-horizontal.form-purpose-filter .checkbox-select-toggle,
    .form-layout-inline.form-purpose-filter .form-control,
    .form-layout-inline.form-purpose-filter .form-select,
    .form-layout-inline.form-purpose-filter .checkbox-select-toggle {
        min-width: 0;
        width: 100%;
        max-width: none;
    }

    .form-layout-horizontal.form-purpose-filter input[type="week"].form-control,
    .form-layout-inline.form-purpose-filter input[type="week"].form-control,
    .form-layout-horizontal.form-purpose-filter input[type="number"].form-control,
    .form-layout-inline.form-purpose-filter input[type="number"].form-control {
        min-width: 0;
        width: 100%;
        max-width: none;
    }

    .form-layout-horizontal.form-purpose-filter .btn-group,
    .form-layout-inline.form-purpose-filter .btn-group {
        width: 100%;
    }

    .form-layout-horizontal.form-purpose-filter .btn-group > .btn,
    .form-layout-horizontal.form-purpose-filter .btn-group > a.btn,
    .form-layout-inline.form-purpose-filter .btn-group > .btn,
    .form-layout-inline.form-purpose-filter .btn-group > a.btn {
        flex: 1 1 auto;
    }
}

@media (max-width: 575.98px) {
    .form-layout-horizontal.form-purpose-filter > .col-auto,
    .form-layout-horizontal.form-purpose-filter > [class*="col-"],
    .form-layout-inline.form-purpose-filter > .col-auto,
    .form-layout-inline.form-purpose-filter > [class*="col-"] {
        flex: 0 0 100%;
        width: 100%;
    }

    .form-layout-horizontal.form-purpose-filter .form-control,
    .form-layout-horizontal.form-purpose-filter .form-select,
    .form-layout-horizontal.form-purpose-filter .checkbox-select-toggle,
    .form-layout-inline.form-purpose-filter .form-control,
    .form-layout-inline.form-purpose-filter .form-select,
    .form-layout-inline.form-purpose-filter .checkbox-select-toggle {
        min-width: 0;
        width: 100%;
        max-width: none;
    }

    .form-layout-horizontal.form-purpose-filter .btn-group,
    .form-layout-inline.form-purpose-filter .btn-group {
        width: 100%;
    }

    .form-layout-horizontal.form-purpose-filter .btn-group > .btn,
    .form-layout-horizontal.form-purpose-filter .btn-group > a.btn,
    .form-layout-inline.form-purpose-filter .btn-group > .btn,
    .form-layout-inline.form-purpose-filter .btn-group > a.btn {
        flex: 1 1 auto;
    }
}

.form-layout-horizontal.form-purpose-filter .form-control:focus,
.form-layout-horizontal.form-purpose-filter .form-select:focus,
.form-layout-horizontal.form-purpose-filter .checkbox-select-toggle:focus,
.form-layout-inline.form-purpose-filter .form-control:focus,
.form-layout-inline.form-purpose-filter .form-select:focus,
.form-layout-inline.form-purpose-filter .checkbox-select-toggle:focus {
    background-color: var(--surface-color);
}

.single-form-card {
    max-width: 42rem;
    width: 100%;
}

@media (max-width: 767.98px) {
    .single-form-card {
        padding: 0.75rem !important;
    }

    .single-form-card > .card-header {
        padding: 0.5rem 0.25rem 0.75rem !important;
    }

    .single-form-card > .card-body {
        padding: 0.5rem 0.25rem !important;
    }

}

.daily-report-promotion-actuals {
    display: grid;
    gap: 0.75rem;
}

.daily-report-promotion-actuals-lines {
    display: grid;
    gap: 0.5rem;
}

.files-upload-card .form-layout-horizontal {
    align-items: flex-start !important;
    --bs-gutter-y: 0.2rem;
}

.files-upload-card .form-text {
    line-height: 1.25;
    margin-top: 0 !important;
}

.files-upload-card span:has(> .form-text) {
    margin-top: 0.15rem !important;
    padding-left: 0 !important;
}

.files-upload-card .form-field-top-slot,
.files-upload-card .tag-pills--reserved:empty {
    height: 1.5rem;
    min-height: 1.5rem;
    margin-bottom: 0.35rem;
}

.form-field-top-slot {
    height: 1.875rem;
    margin-bottom: 0.5rem;
}

/* Image Upload */
.drag-area {
    border: 1px solid var(--form-border);
    color: var(--form-text-color);
    background-color: var(--form-field-bg);
    height: 250px;
    width: 100%;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
    padding-top: 1rem;
    padding-bottom: 2rem;
    border-radius: var(--button-border-radius) !important;
}

.drag-area.is-invalid {
    border: 1px solid var(--invalid-color) !important;
}

.drag-area h5 {
    color: var(--body-text-color) !important;
}

.drag-area i {
    font-size: 2rem;
    color: var(--form-text-color);
    margin-bottom: 0.75rem;
}

.drag-area p,
.drag-area small {
    color: var(--form-text-color);
}

.drag-area:hover {
    border: 1px solid var(--form-border-hover);
}

/* TinyMCE */
.tox-tinymce {
    border-radius: var(--button-border-radius) !important;
    background-color: var(--form-field-bg) !important;
}

.tox .tox-statusbar__branding svg,
.tox .tox-statusbar__branding a:focus:not(:disabled):not([aria-disabled="true"]) svg,
.tox .tox-statusbar__branding a:hover:not(:disabled):not([aria-disabled="true"]) svg {
    fill: var(--body-text-color) !important;
}

.tiny {
    height: auto;
}

textarea.tiny.tiny-source-hidden,
textarea.tiny[hidden].tiny-source-hidden {
    display: none !important;
}

.mce-content-body[data-mce-placeholder],
.mce-content-body p {
    margin: 15px !important;
}

.tox .tox-editor-container {
    border: 1px solid var(--form-border);
    border-radius: var(--button-border-radius) !important;
    background-color: var(--form-field-bg) !important;
}

.tox .tox-edit-area,
.tox .tox-edit-area__iframe,
.tox .tox-toolbar,
.tox .tox-toolbar__primary,
.tox .tox-toolbar-overlord,
.tox .tox-statusbar {
    background-color: var(--form-field-bg) !important;
}

.tox .tox-editor-container:hover {
    border: 1px solid var(--form-border-hover);
}

.tox .tox-editor-container:focus {
    border-color: var(--primary-link-color);
    background-color: var(--form-field-bg);
}

.tox .tox-edit-area:hover {
    cursor: pointer !important;
}

.mce-content-body {
    background-color: var(--form-field-bg) !important;
}

.tox-tinymce.is-invalid,
.tox-tinymce.is-valid {
    position: relative;
}

.tox-tinymce.is-invalid {
    border: 1px solid var(--invalid-color) !important;
}

.tox-tinymce.is-invalid .tox-editor-container {
    border-color: var(--invalid-color) !important;
}

.tox-tinymce.is-valid {
    border: 1px solid var(--valid-color) !important;
}

.tox-tinymce.is-valid::after {
    content: "";
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 1rem;
    height: 1rem;
    pointer-events: none;
    z-index: 20;
    background-repeat: no-repeat;
    background-size: 1rem 1rem;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e")
}

/* Submit Button Spinner */
[data-submit-spinner] {
    display: none;
}

.brand-loader,
[data-submit-spinner],
[data-tenant-switch-spinner] {
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 1.2rem;
    border: 0 !important;
    border-radius: 0 !important;
    background: url("../../img/logo.png") center / contain no-repeat;
    animation: brand-loader-pulse 1.2s ease-in-out infinite;
}

.brand-loader:not([data-submit-spinner]) {
    display: inline-block;
}

[data-submit-button].is-loading {
    pointer-events: none;
}

[data-submit-button].is-loading .btn-text {
    opacity: 0.7;
}

[data-submit-button].is-loading [data-submit-spinner] {
    display: inline-block !important;
}

@keyframes brand-loader-pulse {
    0% {
        transform: scale(0.9) rotate(0deg);
        opacity: 0.55;
    }

    50% {
        transform: scale(1) rotate(180deg);
        opacity: 1;
    }

    100% {
        transform: scale(0.9) rotate(360deg);
        opacity: 0.55;
    }
}

@media (prefers-reduced-motion: reduce) {
    .brand-loader,
    [data-submit-spinner],
    [data-tenant-switch-spinner] {
        animation: none;
    }
}


.form-switch .form-check-input {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
    background-color: var(--secondary-link-color);
}

.form-check-input:checked {
    background-color: var(--primary-link-color);
    border-color: var(--primary-link-color);
}

.form-switch .form-check-input {
    width: 3em;
}

.form-check-input {
    height: 1.5em;
}

/* animate anything that gets .shake */
.shake {
    animation: shake .3s linear;
}

@keyframes shake {
    0%, 100% {
        transform: translateX(0)
    }
    25% {
        transform: translateX(-2px)
    }
    75% {
        transform: translateX(2px)
    }
}

/* (optional) accessibility */
@media (prefers-reduced-motion: reduce) {
    .shake {
        animation: none;
    }
}

.next, .prev {
    cursor: pointer;
    font-size: 0.65rem !important;
    font-weight: normal !important;
}

.text-smaller-button {
    font-size: 0.85rem !important;
    font-weight: normal !important;
    --bs-btn-padding-x: 0.5rem !important;
    --bs-btn-padding-y: 0.25rem !important;
}

.dropdown-min-width {
    min-width: 240px !important;
}

.checkbox-select .form-label {
    display: block;
    margin-bottom: 0.5rem;
    color: var(--form-text-color);
}

.checkbox-select-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start !important;
    width: 100%;
    text-align: left !important;
    padding-right: 2.75rem;
    border-radius: var(--button-border-radius) !important;
    background-position: right 0.9rem center;
    background-repeat: no-repeat;
    background-size: 16px 12px;
    background-image: var(--bs-form-select-bg-img, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"));
    font-size: 14px;
    font-weight: 400 !important;
}

.checkbox-select-toggle--floating {
    min-height: calc(3.5rem + 2px);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center !important;
    gap: 0.125rem;
    padding-top: 0.625rem;
    padding-bottom: 0.375rem;
    line-height: 1.2;
}

.checkbox-select-toggle-label {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: var(--form-text-color);
    font-size: 0.64rem;
    line-height: 1.1;
    opacity: 0.75;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.checkbox-select-toggle-value {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: var(--form-text-color);
    font-size: 1rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.checkbox-select-toggle::after {
    display: none !important;
}

.checkbox-select-toggle.show {
    border-color: var(--primary-link-color);
    box-shadow: var(--shadow);
}

.checkbox-select-menu {
    width: 100%;
}

.checkbox-select-search {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-color);
}

.checkbox-select-options {
    overscroll-behavior: contain;
}

.activity-widget-activity-menu {
    max-width: min(100%, 34rem);
}

label.form-check {
    font-size: 0.8rem;
    color: gray;
}

.form-check-input {
    /*width: 10%;*/
    width: 20px;
    height: 20px;
    margin-right: 5px;
}

.dropdown-menu .form-check {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .4rem .6rem;
    margin: 0;
    border-radius: var(--button-border-radius);
    cursor: pointer;
}

.dropdown-menu .form-check-input {
    margin-top: 0;
}

.dropdown-menu .form-check:hover {
    background: var(--background-subtle-color);
}

.dropdown-menu .form-check:has(.form-check-input:checked) {
    background: var(--secondary-link-color);
    color: var(--form-text-color);
    font-weight: 600;
}

.dropdown-menu .form-check > span {
    flex: 1 1 auto;
}

.dropdown-menu .form-check.active {
    background: var(--secondary-link-color);
    color: var(--form-text-color);
    font-weight: 600;
}

.form-help-text {
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--form-text-color);
    margin-top: 0.25rem;
    padding-left: 0.15rem;
}

.searchable-select {
    position: relative;
}

.searchable-select-menu {
    position: absolute;
    z-index: 1050;
    top: calc(100% + 0.25rem);
    left: 0;
    right: 0;
    max-height: 16rem;
    overflow-y: auto;
    padding: 0.35rem;
}

.searchable-select-option {
    display: block;
    width: 100%;
    border: 0;
    border-radius: var(--button-border-radius);
    background: transparent;
    color: var(--body-text-color);
    padding: 0.55rem 0.7rem;
    text-align: left;
}

.searchable-select-option:hover,
.searchable-select-option:focus {
    background: var(--background-subtle-color);
}

.searchable-select-empty {
    padding: 0.65rem 0.7rem;
}

.onboarding-email-preview {
    width: min(100%, 720px);
    margin: 0 auto;
    padding: 1.75rem 1rem 2rem;
    border-radius: 1.25rem;
    background: #f7f8fb;
    color: #111827;
    font-family: Inter, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.onboarding-email-preview-logo {
    display: flex;
    justify-content: center;
    padding-bottom: 1.125rem;
}

.onboarding-email-preview-logo img {
    display: block;
    width: 96px;
    height: auto;
}

.onboarding-email-preview-card {
    overflow: hidden;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(17, 24, 39, 0.08);
}

.onboarding-email-preview-header {
    padding: 1.25rem 1.375rem 1.125rem;
    background: #51279b;
    text-align: center;
}

.onboarding-email-preview-header h2 {
    margin: 0;
    color: #fff;
    font-size: 1.625rem;
    font-weight: 700;
    line-height: 1.25;
}

.onboarding-email-preview-banner {
    display: block;
    width: 100%;
    height: auto;
    background: #111827;
}

.onboarding-email-preview-body {
    padding: 1.75rem 1.5rem 1.5rem;
    color: #111827;
    font-size: 0.9375rem;
    line-height: 1.6;
}

.onboarding-email-preview-paragraph {
    margin: 0 0 1.125rem;
    color: #111827;
    font-size: 0.9375rem;
    line-height: 1.6;
}

.onboarding-email-preview-button {
    display: inline-block;
    padding: 0.6875rem 1.5rem;
    border-radius: 10px;
    background: #51279b;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
}

.onboarding-email-preview-button:hover,
.onboarding-email-preview-button:focus {
    color: #fff;
    text-decoration: none;
}

.onboarding-email-preview-note {
    margin: 1.5rem 0 0;
    color: #111827;
    font-size: 0.9375rem;
    line-height: 1.6;
}

.onboarding-email-preview-footer {
    padding: 1.125rem 1.125rem 0;
    color: #6b7280;
    font-size: 0.8125rem;
    line-height: 1.45;
    text-align: center;
}

.onboarding-email-preview-footer p {
    margin: 0 0 0.375rem;
}

.repeatable-line-control {
    min-height: 3.5rem;
}

.repeatable-line-control > .form-control,
.repeatable-line-control > .form-select,
.repeatable-line-control .input-group > .form-control,
.repeatable-line-control .input-group > .input-group-text {
    min-height: 3rem;
    border: 1px solid var(--form-border);
    border-radius: var(--button-border-radius);
    background-color: var(--bs-tertiary-bg);
}

.repeatable-line-control > .form-control.is-invalid,
.repeatable-line-control > .form-select.is-invalid,
.repeatable-line-control .input-group > .form-control.is-invalid,
.repeatable-line-control .input-group > .form-select.is-invalid {
    border-color: var(--bs-form-invalid-border-color, var(--invalid-color));
}

.repeatable-line-control .input-group > .form-control.is-invalid + .input-group-text {
    border-color: var(--bs-form-invalid-border-color, var(--invalid-color));
}

/* Keep /bestanden upload form stable when top-row validation appears. */
#attachment-upload-form .col-lg-6 .invalid-feedback:not(.d-none) {
    display: block;
    min-height: 1.25rem;
    margin-top: 0.2rem;
}

#attachment-upload-form .col-lg-6 .invalid-feedback.d-none {
    display: none !important;
}

/* Balance the /bestanden upload form row rhythm. */
#attachment-upload-form {
    margin-bottom: 0 !important;
    --bs-gutter-y: 1rem;
}

@media (max-width: 767.98px) {
    input.form-control,
    textarea.form-control,
    select.form-select,
    .form-control,
    .form-select,
    .repeatable-line-control > .form-control,
    .repeatable-line-control > .form-select,
    .repeatable-line-control .input-group > .form-control,
    .rofo-page input.form-control,
    .rofo-page select.form-select,
    .rofo-driver-input,
    .rofo-opening-select {
        font-size: 16px !important;
    }

    input[type="date"].form-control,
    input[type="time"].form-control,
    input[type="month"].form-control,
    input[type="week"].form-control {
        text-align: left !important;
    }

    input[type="date"].form-control::-webkit-date-and-time-value,
    input[type="time"].form-control::-webkit-date-and-time-value,
    input[type="month"].form-control::-webkit-date-and-time-value,
    input[type="week"].form-control::-webkit-date-and-time-value {
        text-align: left;
    }
}

#attachment-upload-form > .col-auto {
    flex: 0 0 auto;
    width: 100%;
    margin-top: 1rem;
}

#attachment-upload-form > .col-auto .btn-group {
    display: inline-flex;
}

.password-policy {
    margin: -0.25rem 0 1rem;
    padding-left: 0.25rem;
    color: var(--form-text-color);
    font-size: 0.875rem;
}

.password-policy-title {
    margin: 0 0 0.35rem;
    font-weight: 600;
}

.password-policy-list {
    display: grid;
    gap: 0.3rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.password-policy-rule {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    line-height: 1.35;
    transition: color 0.16s ease;
}

.password-policy-dot {
    width: 0.65rem;
    height: 0.65rem;
    flex: 0 0 0.65rem;
    border: 2px solid currentColor;
    border-radius: 999px;
    opacity: 0.55;
    transition: background-color 0.16s ease, border-color 0.16s ease, opacity 0.16s ease;
}

.password-policy-rule.is-met {
    color: var(--bs-success, #198754);
}

.password-policy-rule.is-met .password-policy-dot {
    background-color: currentColor;
    opacity: 1;
}

.password-policy-rule.is-unmet {
    color: var(--bs-danger, #dc3545);
}

.password-policy-rule.is-unmet .password-policy-dot {
    opacity: 0.85;
}

.password-policy-match {
    margin-top: -0.25rem;
}

