/* Shared brand controls. Semantic success/warning/danger colours keep their meaning. */
.btn.btn-primary, .btn.odoo-btn-save, .btn.odoo-btn-primary,
.btn.ctrli-primary-action, .qs-odoo .btn.ctrli-primary-action {
    background-color: var(--ctrli-primary);
    border-color: var(--ctrli-primary);
    color: var(--ctrli-brand-primary-contrast);
}
.btn.btn-primary:hover, .btn.btn-primary:focus, .btn.btn-primary:active,
.btn.btn-primary.active, .open > .dropdown-toggle.btn-primary,
.btn.odoo-btn-save:hover, .btn.odoo-btn-primary:hover,
.btn.ctrli-primary-action:hover, .btn.ctrli-primary-action:focus, .btn.ctrli-primary-action:active,
.qs-odoo .btn.ctrli-primary-action:hover, .qs-odoo .btn.ctrli-primary-action:focus, .qs-odoo .btn.ctrli-primary-action:active {
    background-color: var(--ctrli-primary-700);
    border-color: var(--ctrli-primary-700);
    color: var(--ctrli-brand-primary-dark-contrast);
}
.btn.btn-outline.btn-primary { background: transparent; color: var(--ctrli-primary); }
.btn.btn-outline.btn-primary:hover { background: var(--ctrli-primary); color: var(--ctrli-brand-primary-contrast); }
.btn.btn-outline.ctrli-primary-action { background: transparent; color: var(--ctrli-primary-text); }
.btn.btn-outline.ctrli-primary-action:hover { background: var(--ctrli-primary); color: var(--ctrli-brand-primary-contrast); }
.pagination > .active > a, .pagination > .active > span,
.pagination > .active > a:hover, .pagination > .active > a:focus {
    background-color: var(--ctrli-primary); border-color: var(--ctrli-primary);
    color: var(--ctrli-brand-primary-contrast);
}
.form-control:focus { border-color: var(--ctrli-primary); }
.checkbox-primary input[type="checkbox"]:checked + label::before,
.radio-primary input[type="radio"]:checked + label::before { border-color: var(--ctrli-primary); }
.checkbox-primary input[type="checkbox"]:checked + label::before,
.radio-primary input[type="radio"] + label::after { background-color: var(--ctrli-primary); }
.nav > li.active { border-left-color: var(--ctrli-primary); }
.text-navy, .text-primary { color: var(--ctrli-primary); }
a.text-primary:hover, a.text-primary:focus { color: var(--ctrli-primary-text); }
.label-primary, .badge-primary, .navy-bg,
.progress-bar:not(.progress-bar-success):not(.progress-bar-info):not(.progress-bar-warning):not(.progress-bar-danger) {
    background-color: var(--ctrli-primary); color: var(--ctrli-brand-primary-contrast);
}
.panel-primary { border-color: var(--ctrli-primary); }
.panel-primary > .panel-heading { background-color: var(--ctrli-primary); border-color: var(--ctrli-primary); color: var(--ctrli-brand-primary-contrast); }
.panel-primary > .panel-heading + .panel-collapse > .panel-body { border-top-color: var(--ctrli-primary); }
.panel-primary > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: var(--ctrli-primary); }
.panel-primary > .panel-heading .badge, .btn-primary .badge { color: var(--ctrli-primary-text); background: #fff; }
.auth-submit:hover { color: var(--ctrli-brand-primary-dark-contrast); }
.auth-cb input:checked + label::after { border-color: var(--ctrli-brand-primary-contrast); }
.checkbox-primary input[type="checkbox"]:checked + label::after { color: var(--ctrli-brand-primary-contrast); }
.odoo-section-header i.section-icon { color: var(--ctrli-primary); background: rgba(var(--ctrli-brand-primary-rgb), .1); }
.odoo-toggle input:checked + .slider { background: var(--ctrli-primary); }
.ctrli-theme-palette { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ctrli-theme-swatch { width: 36px; height: 36px; border: 2px solid transparent; border-radius: 50%; padding: 3px; background-clip: content-box; }
.ctrli-theme-swatch[aria-pressed="true"] { border-color: var(--ctrli-text-main, #1e2433); }
.ctrli-theme-swatch:focus-visible { outline: 2px solid var(--ctrli-primary); outline-offset: 3px; }
.ctrli-theme-custom { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.ctrli-theme-custom input[type="color"] { width: 48px; height: 36px; padding: 2px; cursor: pointer; }
.ctrli-theme-custom input[type="text"] { width: 115px; }
.ctrli-theme-preview { margin-top: 14px; padding: 14px; border: 1px solid #d9deea; border-radius: 6px; }
