/*
 * Dashboard-wide checkbox / radio visibility.
 * The theme's default unchecked control has a very faint border, so empty boxes
 * are nearly invisible in tables. This raises contrast, size and interaction
 * feedback without touching the theme's own stylesheet (styles.min.css).
 * Loaded after the theme CSS so it wins. Removable: delete this file + its <link>.
 */

/* Base control — plain checkboxes and radios (switches handled separately). */
.form-check-input {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0.15em;
    border: 2px solid #9096a2;          /* clearly visible when unchecked */
    background-color: #fff;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

/* Keep toggle switches their normal pill shape/size. */
.form-switch .form-check-input {
    width: 2.25rem;
    height: 1.25rem;
    border-radius: 2rem;
}

.form-check-input:hover:not(:disabled):not(:checked) {
    border-color: #435ebe;
    box-shadow: 0 0 0 3px rgba(67, 94, 190, .12);
}

.form-check-input:focus,
.form-check-input:focus-visible {
    outline: none;
    border-color: #435ebe;
    box-shadow: 0 0 0 3px rgba(67, 94, 190, .25);
}

/* Checked / indeterminate: solid fill so the state reads instantly. */
.form-check-input:checked,
.form-check-input:indeterminate {
    background-color: #435ebe;
    border-color: #435ebe;
}

/* Disabled: visibly inert, so a blocked row is obvious (e.g. already accounted). */
.form-check-input:disabled {
    opacity: .55;
    cursor: not-allowed;
    background-color: #eef0f3;
    border-color: #c2c6cf;
}

/* Dark theme — keep the same contrast logic on dark surfaces. */
[data-theme-mode="dark"] .form-check-input {
    border-color: #79808f;
    background-color: transparent;
}
[data-theme-mode="dark"] .form-check-input:checked,
[data-theme-mode="dark"] .form-check-input:indeterminate {
    background-color: #6c8cff;
    border-color: #6c8cff;
}
[data-theme-mode="dark"] .form-check-input:disabled {
    background-color: #2b3244;
    border-color: #49505f;
}
