/* ===== GLOBAL FORMS ===== */
.form-control, .form-select {
    border-radius: 10px;
    padding: .6rem .75rem;
    box-shadow: none;
    border: 1px solid rgba(15,23,42,0.08);
}
.form-control:focus, .form-select:focus {
    box-shadow: 0 6px 22px rgba(13,110,253,0.06);
    border-color: rgba(13,110,253,0.22);
}

.required-star { color: #dc3545; margin-left: .25rem; font-weight: 700; }
label.required:not(.no-required)::after { content: " *"; color: red; }
.no-required.required::after { display: none !important; content: none !important; }

/* ===== CHECKBOX CARDS ===== */
.checkbox-card-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.checkbox-card-item { position: relative; }
.checkbox-card-item input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.checkbox-card-item label {
    display: block; margin: 0; padding: .95rem 1rem; border: 1px solid #d9dee7;
    border-radius: 1rem; background: #fff; font-weight: 500; font-size: 14px;
    cursor: pointer; transition: all .15s ease; height: 100%;
}
.checkbox-card-item input[type="checkbox"]:focus + label { border-color: var(--primary); box-shadow: 0 0 0 .2rem rgba(0, 74, 132, .12); }
.checkbox-card-item input[type="checkbox"]:checked + label {
    border-color: var(--primary); background: rgba(0, 74, 132, .08); color: var(--primary);
}

/* ===== CUSTOM SWITCH ===== */
.custom-switch { position: relative; display: inline-block; width: 50px; height: 26px; }
.custom-switch input { opacity: 0; width: 0; height: 0; }
.custom-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #d9dee7; transition: .4s; border-radius: 34px; }
.custom-slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 4px; bottom: 4px; background-color: white; transition: .4s; border-radius: 50%; }
.custom-switch input:checked + .custom-slider { background-color: var(--primary); }
.custom-switch input:checked + .custom-slider:before { transform: translateX(24px); }

@media (max-width: 991px) { .checkbox-card-group { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .checkbox-card-group { grid-template-columns: 1fr; } }