/**
 * MIP — Action visibility / UX hardening V2 (MAIN + TENANTS)
 * Couche de cohérence visuelle par-dessus les thèmes existants.
 * V2 : tokens étendus, adaptateurs Hospital/POS, rôles icon-only, sticky élargi.
 *
 * PRIMARY   : .btn-primary, .btn.btn-primary, .submit-btn, .mip-tenant-btn--primary
 * SECONDARY : .btn-secondary, .btn-sm (footers), .modal-cancel, .mip-action--secondary
 * DANGER    : .btn-danger, .mip-action--danger, [data-delete], *.delete*
 * SUCCESS   : .btn-success, .mip-action--success
 * NEUTRAL   : .mip-action--neutral (Edit/View/Preview)
 */

:root {
    --mip-action-min-h: 42px;
    --mip-action-gap: 10px;
    --mip-action-radius: 10px;
    --mip-action-primary: var(--primary, var(--mip-emerald, #0d9488));
    --mip-action-primary-dark: var(--primary-dark, var(--mip-petrol, #004d40));
    --mip-action-secondary-bg: var(--surface, #fff);
    --mip-action-secondary-fg: var(--text, #334155);
    --mip-action-secondary-border: var(--border-color, #cbd5e1);
    --mip-action-danger: var(--danger, #dc2626);
    --mip-action-success: #059669;
    --mip-action-focus: var(--mip-action-primary);
    --mip-action-disabled-opacity: 0.55;
    --mip-action-icon-size: 36px;
    /* Puces texte (tableaux / listes main app) */
    --mip-chip-radius: 10px;
    --mip-chip-min-h: 36px;
    --mip-chip-neutral-bg: #f1f5f9;
    --mip-chip-neutral-fg: #0f172a;
    --mip-chip-neutral-border: #cbd5e1;
    --mip-chip-primary-bg: color-mix(in srgb, var(--mip-action-primary) 12%, #fff);
    --mip-chip-primary-fg: #0f766e;
    --mip-chip-primary-border: color-mix(in srgb, var(--mip-action-primary) 38%, #94a3b8);
    --mip-chip-success-bg: color-mix(in srgb, var(--mip-action-success) 14%, #fff);
    --mip-chip-success-fg: #047857;
    --mip-chip-success-border: color-mix(in srgb, var(--mip-action-success) 42%, transparent);
    --mip-chip-danger-bg: color-mix(in srgb, var(--mip-action-danger) 10%, #fff);
    --mip-chip-danger-fg: #b91c1c;
    --mip-chip-danger-border: color-mix(in srgb, var(--mip-action-danger) 40%, transparent);
    --mip-chip-warning-bg: color-mix(in srgb, #d97706 12%, #fff);
    --mip-chip-warning-fg: #b45309;
    --mip-chip-warning-border: color-mix(in srgb, #d97706 35%, transparent);
}

[data-theme="dark"] {
    --mip-chip-neutral-bg: rgba(51, 65, 85, 0.65);
    --mip-chip-neutral-fg: #f1f5f9;
    --mip-chip-neutral-border: rgba(148, 163, 184, 0.35);
    --mip-chip-primary-bg: color-mix(in srgb, var(--mip-action-primary) 22%, #0f172a);
    --mip-chip-primary-fg: #5eead4;
    --mip-chip-primary-border: rgba(45, 212, 191, 0.35);
    --mip-chip-success-bg: color-mix(in srgb, var(--mip-action-success) 22%, #0f172a);
    --mip-chip-success-fg: #6ee7b7;
    --mip-chip-success-border: rgba(52, 211, 153, 0.35);
    --mip-chip-danger-bg: color-mix(in srgb, var(--mip-action-danger) 20%, #0f172a);
    --mip-chip-danger-fg: #fca5a5;
    --mip-chip-danger-border: rgba(248, 113, 113, 0.35);
    --mip-chip-warning-bg: color-mix(in srgb, #f59e0b 18%, #0f172a);
    --mip-chip-warning-fg: #fcd34d;
    --mip-chip-warning-border: rgba(251, 191, 36, 0.35);
    --mip-action-secondary-bg: rgba(30, 41, 59, 0.85);
    --mip-action-secondary-fg: #e2e8f0;
    --mip-action-secondary-border: rgba(148, 163, 184, 0.35);
}

/* ---------- PRIMARY ---------- */
.btn-primary,
.btn.btn-primary,
.submit-btn,
.mip-tenant-btn--primary,
.mip-modal-btn-primary,
.mip-alert-btn--primary,
.register-wizard-nav__btn--primary,
.mip-welcome-btn--primary {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: var(--mip-action-min-h);
    padding: 0.55rem 1.15rem;
    border-radius: var(--mip-action-radius);
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    box-sizing: border-box;
}

/* Submit pleine largeur seulement hors barres d’actions */
.form-actions .submit-btn,
.mip-dialog-footer .submit-btn,
.mip-crud-dialog__footer .submit-btn,
.mip-tenant-dialog-footer .submit-btn,
.mip-tenant-dialog-form-footer .submit-btn,
.modal-footer .submit-btn,
.lab-form-actions .submit-btn,
.cds-form-footer .submit-btn,
.cds-appt-form-actions .submit-btn,
.form-actions .btn-primary,
.form-actions .btn.btn-primary,
.mip-dialog-footer .btn-primary,
.modal-footer .btn-primary,
.lab-form-actions .btn-primary,
.cds-form-footer .btn-primary,
.cds-appt-form-actions .btn-primary {
    width: auto !important;
    min-width: 7.5rem;
    flex: 0 0 auto;
}

/* Alias main app : btn-primary = même poids que submit-btn */
body.mip-main-app .btn-primary:not(.btn-sm):not(.btn-secondary):not(.btn-danger),
body.mip-main-app .btn.btn-primary:not(.btn-sm) {
    background: var(--mip-action-primary);
    color: #fff;
    border: 1px solid transparent;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--mip-action-primary) 28%, transparent);
}
body.mip-main-app .btn-primary:not(.btn-sm):not(.btn-secondary):not(.btn-danger):hover,
body.mip-main-app .btn.btn-primary:not(.btn-sm):hover {
    background: var(--mip-action-primary-dark);
}

/* MAIN — secondaire + pieds de formulaire (tenants, paiements, modales) */
body.mip-main-app .btn-secondary,
body.mip-main-app a.btn-secondary,
body.mip-main-app .mip-tenant-modern-form__cancel.btn-secondary,
body.mip-main-app .mip-dialog-footer .btn-secondary,
body.mip-main-app .form-actions .btn-secondary,
body.mip-main-app .mip-tenant-modern-form__footer .btn-secondary {
    background: var(--mip-action-secondary-bg, #fff);
    color: var(--mip-action-secondary-fg, #334155);
    border: 1px solid var(--mip-action-secondary-border, #cbd5e1);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    text-decoration: none;
}
body.mip-main-app .btn-secondary:hover,
body.mip-main-app a.btn-secondary:hover,
body.mip-main-app .mip-tenant-modern-form__cancel.btn-secondary:hover,
body.mip-main-app .mip-dialog-footer .btn-secondary:hover,
body.mip-main-app .form-actions .btn-secondary:hover,
body.mip-main-app .mip-tenant-modern-form__footer .btn-secondary:hover {
    background: #f1f5f9;
    border-color: color-mix(in srgb, var(--mip-action-primary) 45%, #cbd5e1);
    color: #0f172a;
}
body.mip-main-app .mip-tenant-modern-form__save.btn-primary,
body.mip-main-app .mip-dialog-footer .btn-primary:not(.btn-sm),
body.mip-main-app .mip-tenant-modern-form__footer .btn-primary:not(.btn-sm),
body.mip-main-app .form-actions .btn-primary:not(.btn-sm) {
    background: linear-gradient(180deg, #14b8a6 0%, var(--mip-action-primary) 48%, var(--mip-action-primary-dark) 100%);
    color: #fff;
    border: 1px solid var(--mip-action-primary-dark);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--mip-action-primary) 35%, transparent);
}
body.mip-main-app .mip-tenant-modern-form__save.btn-primary:hover,
body.mip-main-app .mip-dialog-footer .btn-primary:not(.btn-sm):hover,
body.mip-main-app .mip-tenant-modern-form__footer .btn-primary:not(.btn-sm):hover,
body.mip-main-app .form-actions .btn-primary:not(.btn-sm):hover {
    background: linear-gradient(180deg, #0d9488 0%, var(--mip-action-primary-dark) 100%);
    color: #fff;
}
[data-theme="dark"] body.mip-main-app .btn-secondary,
[data-theme="dark"] body.mip-main-app a.btn-secondary {
    background: rgba(30, 41, 59, 0.85);
    color: #e2e8f0;
    border-color: rgba(148, 163, 184, 0.35);
}
[data-theme="dark"] body.mip-main-app .btn-secondary:hover,
[data-theme="dark"] body.mip-main-app a.btn-secondary:hover {
    background: rgba(51, 65, 85, 0.9);
    border-color: rgba(45, 212, 191, 0.4);
    color: #f8fafc;
}

/* ---------- HOSPITAL adapter (.btn.btn-primary sans Bootstrap) ---------- */
.btn.btn-primary {
    background: var(--mip-action-primary);
    color: #fff;
    border: 1px solid transparent;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--mip-action-primary) 24%, transparent);
}
.btn.btn-primary:hover {
    background: var(--mip-action-primary-dark);
    color: #fff;
}
.btn.btn-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--mip-action-icon-size);
    min-width: var(--mip-action-icon-size);
    padding: 0.35rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--mip-action-secondary-border);
    background: var(--mip-action-secondary-bg);
    font-weight: 600;
    cursor: pointer;
}

/* ---------- SECONDARY / CANCEL / BACK / CLOSE ---------- */
.btn-secondary,
.modal-cancel,
.mip-tenant-btn--secondary,
.mip-modal-btn-secondary,
.mip-alert-btn--secondary,
.mip-action--secondary {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: var(--mip-action-min-h);
    padding: 0.55rem 1.1rem;
    border-radius: var(--mip-action-radius);
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
}

/* Dans les footers, .btn-sm / liens Cancel → secondaire */
.form-actions > .btn-sm,
.mip-dialog-footer > .btn-sm,
.mip-crud-dialog__footer > .btn-sm,
.mip-tenant-dialog-footer > .btn-sm,
.modal-footer > .btn-sm:not([data-delete]):not(.btn-danger):not(.btn-primary):not(.mip-action--danger),
.form-actions > a.btn-sm,
.mip-dialog-footer > a.btn-sm,
.mip-crud-dialog__footer > a.btn-sm {
    min-height: var(--mip-action-min-h);
    padding: 0.5rem 1rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ---------- DANGER ---------- */
.btn-danger,
.mip-modal-btn-danger,
button.btn-sm.btn-danger,
.mip-tenant-btn--danger,
.mip-action--danger {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: var(--mip-action-min-h);
    padding: 0.5rem 1rem;
    border-radius: var(--mip-action-radius);
    font-weight: 700;
    cursor: pointer;
    background: color-mix(in srgb, var(--mip-action-danger) 12%, #fff) !important;
    color: var(--mip-action-danger) !important;
    border: 1px solid color-mix(in srgb, var(--mip-action-danger) 45%, transparent) !important;
    box-sizing: border-box;
}
.btn-danger:hover,
.mip-modal-btn-danger:hover,
button.btn-sm.btn-danger:hover,
.mip-action--danger:hover {
    background: var(--mip-action-danger) !important;
    color: #fff !important;
    border-color: var(--mip-action-danger) !important;
}
[data-theme="dark"] .btn-danger,
[data-theme="dark"] .mip-modal-btn-danger,
[data-theme="dark"] button.btn-sm.btn-danger,
[data-theme="dark"] .mip-action--danger {
    background: color-mix(in srgb, var(--mip-action-danger) 22%, transparent) !important;
    color: #fecaca !important;
}

/* Delete en tableau — jamais plus dominant que Save */
.btn-sm[data-delete],
.btn-sm.action-delete,
.btn-sm.action-revoke-key,
.btn-sm.patient-delete,
.btn-sm.drug-delete,
.btn-sm.sub-delete,
.btn-sm.ad-delete,
.btn-sm.manufacturer-delete,
.btn-sm.disease-delete-btn,
.mip-tenant-btn-icon--danger,
.mip-action-icon.mip-action--danger {
    min-width: var(--mip-action-icon-size);
    min-height: var(--mip-action-icon-size);
    color: var(--mip-action-danger) !important;
    border-color: color-mix(in srgb, var(--mip-action-danger) 40%, var(--border-color, #cbd5e1)) !important;
    background: color-mix(in srgb, var(--mip-action-danger) 8%, #fff) !important;
    font-weight: 700;
}

/* Edit / View / Preview — neutre identifiable */
.mip-action-icon.mip-action--neutral,
.btn-sm.patient-edit,
.btn-sm.drug-edit,
.btn-sm.action-edit,
.btn-sm.patient-preview,
.btn-sm.drug-preview,
.btn-sm.action-preview,
.btn-sm.sub-preview,
.btn-sm.patient-dossier,
a.btn-icon {
    min-width: var(--mip-action-icon-size);
    min-height: var(--mip-action-icon-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--mip-action-secondary-border);
    border-radius: 8px;
    background: var(--mip-action-secondary-bg);
    font-weight: 600;
}

/* ---------- SUCCESS ---------- */
.btn-success,
.mip-tenant-btn--success,
.mip-action--success {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: var(--mip-action-min-h);
    padding: 0.5rem 1rem;
    border-radius: var(--mip-action-radius);
    font-weight: 700;
    cursor: pointer;
    background: color-mix(in srgb, var(--mip-action-success) 14%, #fff);
    color: var(--mip-action-success);
    border: 1px solid color-mix(in srgb, var(--mip-action-success) 40%, transparent);
    box-sizing: border-box;
}
.btn-success:hover,
.mip-action--success:hover {
    background: var(--mip-action-success);
    color: #fff;
}

/* ---------- ACTION BARS / FOOTERS ---------- */
.form-actions,
.mip-form-actions,
.mip-dialog-footer,
.mip-crud-dialog__footer,
.mip-tenant-dialog-footer,
.mip-tenant-dialog-form-footer,
.modal-footer,
.lab-form-actions,
.cds-form-footer,
.cds-appt-form-actions,
.mip-modal-footer,
.register-form-actions {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--mip-action-gap);
    row-gap: 0.65rem;
}

[dir="rtl"] .form-actions,
[dir="rtl"] .mip-dialog-footer,
[dir="rtl"] .modal-footer,
[dir="rtl"] .lab-form-actions,
[dir="rtl"] .cds-form-footer,
[dir="rtl"] .cds-appt-form-actions {
    justify-content: flex-end;
}

/* Toolbar Add/Create */
.list-header .btn-primary,
.list-toolbar .btn-primary,
.mip-list-toolbar .btn-primary,
.patients-toolbar .btn-primary,
.inventory-toolbar .btn-primary,
.mip-crud-toolbar .btn-primary,
.mip-tenant-dialog-toolbar .mip-tenant-btn--primary,
.page-header .btn-primary,
.view-header .btn-primary,
.btn.btn-primary#hospErRefresh,
.btn.btn-primary#hospAdmRefresh,
.btn.btn-primary#hospBedRefresh,
.btn.btn-primary#hospDeptRefresh,
.btn.btn-primary#hospPhRefresh {
    min-height: 44px;
    box-shadow: 0 3px 12px color-mix(in srgb, var(--mip-action-primary) 30%, transparent);
}

/* ---------- STICKY (opt-in + pages longues) ---------- */
.form-actions--sticky,
.mip-form-actions-bar,
body.mip-clinic-pro .cds-form-page > .cds-form-footer,
body.mip-clinic-pro .cds-form-page .cds-form-footer,
body.mip-clinic-pro .cds-form-page .cds-appt-form-actions,
.cds-form-page .cds-form-footer,
.cds-form-page .cds-appt-form-actions,
.cds-form-page > .cds-appt-form-footer-slot,
.cds-form-page .cds-appt-form-footer-slot,
.mip-tenant-modern-form__footer,
body.mip-main-app #settings-view .mip-settings-save-row,
body.mip-main-app .mip-plans-page .mip-plans-actions,
body.mip-main-app #users-view form .form-actions,
body.mip-main-app #drugs-view form .mip-dialog-footer,
body.mip-main-app .mip-drugs-simple-form .mip-dialog-footer {
    position: sticky !important;
    bottom: 0;
    z-index: 40;
    padding: 0.75rem 1rem;
    margin-inline: 0;
    background: color-mix(in srgb, var(--bg-dark, #f8fafc) 92%, transparent);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--border-color, #e2e8f0);
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.06);
}
[data-theme="dark"] .form-actions--sticky,
[data-theme="dark"] .mip-form-actions-bar,
[data-theme="dark"] body.mip-clinic-pro .cds-form-page .cds-form-footer,
[data-theme="dark"] .mip-tenant-modern-form__footer {
    background: color-mix(in srgb, #0f172a 88%, transparent);
    border-top-color: rgba(148, 163, 184, 0.25);
}

/* Pas de sticky dans les VRAIES overlays (pas les pages qui réutilisent .modal-footer) */
.mip-dialog-overlay .mip-dialog-footer,
.mip-crud-dialog-overlay .mip-crud-dialog__footer,
.mip-tenant-dialog-overlay .mip-tenant-dialog-footer,
.modal .modal-footer,
.mip-dialog-overlay .modal-footer,
.mip-crud-dialog-overlay .modal-footer,
.mip-tenant-dialog-overlay .modal-footer,
.mip-dialog-overlay .mip-modal-footer {
    position: static !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

/* Save page-form : rester dominant même si le thème icône annule le fond */
body.mip-clinic-pro.mip-cabinet-theme .cds-form-page .cds-appt-btn-save.cds-icon-action-btn,
body.mip-clinic-pro .cds-form-page .cds-form-footer .btn-primary,
.cds-form-page .cds-form-footer .btn-primary,
.cds-form-page .cds-appt-form-actions .btn-primary {
    background: var(--mip-action-primary) !important;
    color: #fff !important;
    min-height: var(--mip-action-min-h);
    min-width: 7.5rem;
    max-width: none;
    padding: 0.45rem 1.1rem !important;
    flex-direction: row;
    gap: 0.45rem;
    font-weight: 700;
    border-color: transparent !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--mip-action-primary) 28%, transparent) !important;
}
body.mip-clinic-pro.mip-cabinet-theme .cds-form-page .cds-appt-btn-save .cds-icon-action-btn__icon {
    width: 28px;
    height: 28px;
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
}
body.mip-clinic-pro.mip-cabinet-theme .cds-form-page .cds-appt-btn-save .cds-icon-action-btn__icon .fa-solid,
body.mip-clinic-pro.mip-cabinet-theme .cds-form-page .cds-appt-btn-save .cds-icon-action-btn__label {
    color: #fff !important;
    background: transparent !important;
}

.cds-consult-workspace-footer .btn-primary,
.cds-consult-workspace-footer .btn-secondary {
    min-height: var(--mip-action-min-h);
}

/* ---------- ICON-ONLY ---------- */
.btn-sm:where([title], [aria-label]),
.tenant-action-btn,
.cds-icon-action-btn,
.mip-action-icon,
a.btn-icon,
button.btn-icon {
    min-width: var(--mip-action-icon-size);
    min-height: var(--mip-action-icon-size);
}

/*
 * Boutons d’action ligne (œil / crayon / corbeille) — main app
 * Remplace les vieux carrés bordés / emoji par des pastilles soft.
 */
body.mip-main-app :is(button, a).btn-icon,
body.mip-main-app .mip-drugs-row-actions .btn-sm,
body.mip-main-app .btn-sm.drug-preview,
body.mip-main-app .btn-sm.drug-edit,
body.mip-main-app .btn-sm.drug-delete,
body.mip-main-app .btn-sm.drug-request-review,
body.mip-main-app .btn-sm.patient-preview,
body.mip-main-app .btn-sm.patient-edit,
body.mip-main-app .btn-sm.patient-delete,
body.mip-main-app .btn-sm.patient-dossier,
body.mip-main-app .btn-sm.action-preview,
body.mip-main-app .btn-sm.action-edit,
body.mip-main-app .btn-sm.action-delete,
body.mip-main-app .btn-sm.sub-preview,
body.mip-main-app .btn-sm.sub-delete,
body.mip-main-app .btn-sm.manufacturer-preview,
body.mip-main-app .btn-sm.manufacturer-edit,
body.mip-main-app .btn-sm.manufacturer-delete,
body.mip-main-app .btn-sm.expenses-btn-edit,
body.mip-main-app .btn-sm.expenses-btn-delete,
body.mip-main-app .btn-sm.ad-delete,
body.mip-main-app a.btn-sm[href*="/edit/"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding: 0 !important;
    margin: 0;
    border-radius: 0.7rem !important;
    border: 1px solid transparent !important;
    background: #f1f5f9 !important;
    color: #334155 !important;
    font-size: 0.86rem !important;
    line-height: 1 !important;
    text-decoration: none !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

body.mip-main-app :is(button, a).btn-icon:hover,
body.mip-main-app .mip-drugs-row-actions .btn-sm:hover,
body.mip-main-app .btn-sm.drug-preview:hover,
body.mip-main-app .btn-sm.drug-edit:hover,
body.mip-main-app .btn-sm.patient-preview:hover,
body.mip-main-app .btn-sm.patient-edit:hover,
body.mip-main-app .btn-sm.patient-dossier:hover,
body.mip-main-app .btn-sm.action-preview:hover,
body.mip-main-app .btn-sm.action-edit:hover,
body.mip-main-app .btn-sm.sub-preview:hover,
body.mip-main-app .btn-sm.manufacturer-preview:hover,
body.mip-main-app .btn-sm.manufacturer-edit:hover,
body.mip-main-app .btn-sm.expenses-btn-edit:hover,
body.mip-main-app a.btn-sm[href*="/edit/"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.1);
}

/* Voir / aperçu */
body.mip-main-app :is(button, a).btn-icon--view,
body.mip-main-app .btn-sm.drug-preview,
body.mip-main-app .btn-sm.patient-preview,
body.mip-main-app .btn-sm.action-preview,
body.mip-main-app .btn-sm.sub-preview,
body.mip-main-app .btn-sm.manufacturer-preview,
body.mip-main-app .btn-sm.patient-dossier,
body.mip-main-app .btn-sm.drug-request-review {
    background: rgba(109, 40, 217, 0.1) !important;
    color: #6d28d9 !important;
    border-color: rgba(109, 40, 217, 0.14) !important;
}
body.mip-main-app :is(button, a).btn-icon--view:hover,
body.mip-main-app .btn-sm.drug-preview:hover,
body.mip-main-app .btn-sm.patient-preview:hover,
body.mip-main-app .btn-sm.action-preview:hover,
body.mip-main-app .btn-sm.sub-preview:hover,
body.mip-main-app .btn-sm.manufacturer-preview:hover,
body.mip-main-app .btn-sm.patient-dossier:hover,
body.mip-main-app .btn-sm.drug-request-review:hover {
    background: rgba(109, 40, 217, 0.18) !important;
    color: #5b21b6 !important;
}

/* Éditer */
body.mip-main-app :is(button, a).btn-icon--edit,
body.mip-main-app .btn-sm.drug-edit,
body.mip-main-app .btn-sm.patient-edit,
body.mip-main-app .btn-sm.action-edit,
body.mip-main-app .btn-sm.manufacturer-edit,
body.mip-main-app .btn-sm.expenses-btn-edit,
body.mip-main-app button.btn-icon[data-action="edit"],
body.mip-main-app button.btn-icon[data-role-action="edit"],
body.mip-main-app a.btn-icon[href*="/edit/"],
body.mip-main-app a.btn-sm[href*="/edit/"] {
    background: rgba(0, 77, 64, 0.1) !important;
    color: #004d40 !important;
    border-color: rgba(0, 77, 64, 0.16) !important;
}
body.mip-main-app :is(button, a).btn-icon--edit:hover,
body.mip-main-app .btn-sm.drug-edit:hover,
body.mip-main-app .btn-sm.patient-edit:hover,
body.mip-main-app .btn-sm.action-edit:hover,
body.mip-main-app .btn-sm.manufacturer-edit:hover,
body.mip-main-app .btn-sm.expenses-btn-edit:hover,
body.mip-main-app button.btn-icon[data-action="edit"]:hover,
body.mip-main-app button.btn-icon[data-role-action="edit"]:hover,
body.mip-main-app a.btn-icon[href*="/edit/"]:hover,
body.mip-main-app a.btn-sm[href*="/edit/"]:hover {
    background: rgba(0, 77, 64, 0.18) !important;
    color: #00382f !important;
}

/* Supprimer */
body.mip-main-app :is(button, a).btn-icon--danger,
body.mip-main-app .btn-sm.drug-delete,
body.mip-main-app .btn-sm.patient-delete,
body.mip-main-app .btn-sm.action-delete,
body.mip-main-app .btn-sm.sub-delete,
body.mip-main-app .btn-sm.manufacturer-delete,
body.mip-main-app .btn-sm.expenses-btn-delete,
body.mip-main-app .btn-sm.ad-delete,
body.mip-main-app button.btn-icon[data-action="delete"],
body.mip-main-app button.btn-icon[data-role-action="delete"] {
    background: rgba(220, 38, 38, 0.08) !important;
    color: #dc2626 !important;
    border-color: rgba(220, 38, 38, 0.18) !important;
}
body.mip-main-app :is(button, a).btn-icon--danger:hover,
body.mip-main-app .btn-sm.drug-delete:hover,
body.mip-main-app .btn-sm.patient-delete:hover,
body.mip-main-app .btn-sm.action-delete:hover,
body.mip-main-app .btn-sm.sub-delete:hover,
body.mip-main-app .btn-sm.manufacturer-delete:hover,
body.mip-main-app .btn-sm.expenses-btn-delete:hover,
body.mip-main-app .btn-sm.ad-delete:hover,
body.mip-main-app button.btn-icon[data-action="delete"]:hover,
body.mip-main-app button.btn-icon[data-role-action="delete"]:hover {
    background: rgba(220, 38, 38, 0.16) !important;
    color: #b91c1c !important;
}

body.mip-main-app .mip-drugs-row-actions,
body.mip-main-app .mip-row-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

[data-theme="dark"] body.mip-main-app :is(button, a).btn-icon,
[data-theme="dark"] body.mip-main-app .mip-drugs-row-actions .btn-sm,
[data-theme="dark"] body.mip-main-app .btn-sm.drug-preview,
[data-theme="dark"] body.mip-main-app .btn-sm.drug-edit,
[data-theme="dark"] body.mip-main-app .btn-sm.drug-delete,
[data-theme="dark"] body.mip-main-app .btn-sm.patient-preview,
[data-theme="dark"] body.mip-main-app .btn-sm.patient-edit,
[data-theme="dark"] body.mip-main-app .btn-sm.patient-delete,
[data-theme="dark"] body.mip-main-app .btn-sm.action-preview,
[data-theme="dark"] body.mip-main-app .btn-sm.action-edit,
[data-theme="dark"] body.mip-main-app .btn-sm.action-delete {
    box-shadow: none;
}

/* ---------- POS / Razipos : hiérarchie sans écraser le thème ---------- */
#razipos-view .btn-primary,
#pos-view .btn-primary,
.app-wrapper.pos-fullscreen .btn-primary,
html.razipos-mode .modal.razipos-modal .modal-footer .btn-primary {
    min-height: var(--mip-action-min-h) !important;
    font-weight: 700 !important;
}
#razipos-view .btn-secondary,
#pos-view .btn-secondary,
.app-wrapper.pos-fullscreen .btn-secondary,
html.razipos-mode .modal.razipos-modal .modal-footer .btn-secondary {
    min-height: var(--mip-action-min-h) !important;
    font-weight: 600 !important;
}
#razipos-view .modal-footer,
#pos-view .modal-footer,
#razipos-view .cart-actions,
#pos-view .cart-actions,
html.razipos-mode .modal.razipos-modal .modal-footer,
.modal-footer--pos-home {
    display: flex !important;
    flex-wrap: wrap;
    gap: var(--mip-action-gap);
    align-items: center;
    justify-content: flex-end;
}
#razipos-view .btn-danger,
#pos-view .btn-danger,
html.razipos-mode .btn-danger,
html.razipos-mode .modal.razipos-modal .btn-danger {
    min-height: var(--mip-action-min-h) !important;
    font-weight: 700 !important;
    /* Couleur danger reste distincte même sous thème POS */
    background: color-mix(in srgb, var(--mip-action-danger) 14%, #fff) !important;
    color: var(--mip-action-danger) !important;
    border: 1px solid color-mix(in srgb, var(--mip-action-danger) 45%, transparent) !important;
}
@media (max-width: 720px) {
    #razipos-view .modal-footer,
    #pos-view .modal-footer,
    html.razipos-mode .modal.razipos-modal .modal-footer {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    #razipos-view .modal-footer > .btn-primary,
    #pos-view .modal-footer > .btn-primary,
    #razipos-view .modal-footer > .btn-secondary,
    #pos-view .modal-footer > .btn-secondary,
    html.razipos-mode .modal.razipos-modal .modal-footer > .btn-primary,
    html.razipos-mode .modal.razipos-modal .modal-footer > .btn-secondary {
        width: 100% !important;
    }
}

/* Pharmacy product modal footer */
#modalProduct.product-edit-modal .modal-footer .btn-primary,
#modalProduct.product-edit-modal .modal-footer .btn-secondary {
    min-height: var(--mip-action-min-h) !important;
    font-weight: 700 !important;
}

/* Emoji / icon-only MAIN : après classification JS, surpasser styles inline */
button.btn-sm.mip-action--danger,
button.btn-icon.mip-action--danger,
a.btn-icon.mip-action--danger {
    color: var(--mip-action-danger) !important;
    border-color: color-mix(in srgb, var(--mip-action-danger) 45%, transparent) !important;
    background: color-mix(in srgb, var(--mip-action-danger) 10%, #fff) !important;
}
button.btn-sm.mip-action--neutral,
a.btn-icon.mip-action--neutral,
a.btn-sm.mip-action--neutral {
    color: var(--mip-action-secondary-fg) !important;
    border-color: var(--mip-action-secondary-border) !important;
    background: var(--mip-action-secondary-bg) !important;
    font-weight: 600 !important;
}

/* ---------- Focus / disabled / loading ---------- */
.btn-primary:focus-visible,
.btn.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-danger:focus-visible,
.btn-success:focus-visible,
.btn-sm:focus-visible,
.submit-btn:focus-visible,
.mip-tenant-btn:focus-visible,
.modal-cancel:focus-visible,
.tenant-action-btn:focus-visible,
.mip-action-icon:focus-visible,
a.btn-icon:focus-visible {
    outline: 2px solid var(--mip-action-focus);
    outline-offset: 2px;
}

.btn-primary:disabled,
.btn.btn-primary:disabled,
.btn-secondary:disabled,
.btn-danger:disabled,
.submit-btn:disabled,
.mip-tenant-btn:disabled,
.mip-action-icon:disabled {
    opacity: var(--mip-action-disabled-opacity);
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
}

.btn-primary.is-loading,
.submit-btn.is-loading,
.mip-tenant-btn--primary.is-loading {
    pointer-events: none;
    opacity: 0.75;
}

/* ---------- MOBILE ---------- */
/* ---------- TABLE / LIST TEXT CHIPS (main app) ---------- */
body.mip-main-app .mip-action-chip,
body.mip-main-app .dash-quick-btn.mip-action-chip {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: var(--mip-chip-min-h);
    padding: 0.4rem 0.85rem !important;
    border-radius: var(--mip-chip-radius) !important;
    font-size: 0.8rem !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
    cursor: pointer;
    text-decoration: none !important;
    box-sizing: border-box;
    backdrop-filter: none !important;
    transform: none;
    transition:
        background 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.15s ease;
}

body.mip-main-app .mip-action-chip--neutral,
body.mip-main-app .dash-quick-btn.mip-action-chip--neutral,
body.mip-main-app .view-intent-btn.mip-action-chip,
body.mip-main-app .edit-plan-btn.mip-action-chip,
body.mip-main-app .edit-method-btn.mip-action-chip {
    color: var(--mip-chip-neutral-fg) !important;
    background: var(--mip-chip-neutral-bg) !important;
    border: 1px solid var(--mip-chip-neutral-border) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
}
body.mip-main-app .mip-action-chip--neutral:hover,
body.mip-main-app .dash-quick-btn.mip-action-chip--neutral:hover,
body.mip-main-app .view-intent-btn.mip-action-chip:hover,
body.mip-main-app .edit-plan-btn.mip-action-chip:hover,
body.mip-main-app .edit-method-btn.mip-action-chip:hover {
    color: var(--mip-chip-neutral-fg) !important;
    background: color-mix(in srgb, var(--mip-action-primary) 10%, var(--mip-chip-neutral-bg)) !important;
    border-color: color-mix(in srgb, var(--mip-action-primary) 45%, var(--mip-chip-neutral-border)) !important;
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.08) !important;
}

body.mip-main-app .mip-action-chip--primary,
body.mip-main-app .dash-quick-btn.mip-action-chip--primary {
    color: var(--mip-chip-primary-fg) !important;
    background: var(--mip-chip-primary-bg) !important;
    border: 1px solid var(--mip-chip-primary-border) !important;
}

body.mip-main-app .mip-action-chip--success,
body.mip-main-app .dash-quick-btn.mip-action-chip--success,
body.mip-main-app .approve-intent-btn.mip-action-chip {
    color: var(--mip-chip-success-fg) !important;
    background: var(--mip-chip-success-bg) !important;
    border: 1px solid var(--mip-chip-success-border) !important;
}
body.mip-main-app .mip-action-chip--success:hover,
body.mip-main-app .approve-intent-btn.mip-action-chip:hover {
    color: #fff !important;
    background: var(--mip-action-success) !important;
    border-color: var(--mip-action-success) !important;
}

body.mip-main-app .mip-action-chip--danger,
body.mip-main-app .dash-quick-btn.mip-action-chip--danger,
body.mip-main-app .reject-intent-btn.mip-action-chip,
body.mip-main-app .delete-intent-btn.mip-action-chip,
body.mip-main-app .delete-plan-btn.mip-action-chip,
body.mip-main-app .delete-method-btn.mip-action-chip {
    color: var(--mip-chip-danger-fg) !important;
    background: var(--mip-chip-danger-bg) !important;
    border: 1px solid var(--mip-chip-danger-border) !important;
}
body.mip-main-app .mip-action-chip--danger:hover,
body.mip-main-app .reject-intent-btn.mip-action-chip:hover,
body.mip-main-app .delete-intent-btn.mip-action-chip:hover,
body.mip-main-app .delete-plan-btn.mip-action-chip:hover,
body.mip-main-app .delete-method-btn.mip-action-chip:hover {
    color: #fff !important;
    background: var(--mip-action-danger) !important;
    border-color: var(--mip-action-danger) !important;
}

body.mip-main-app .mip-action-chip--warning,
body.mip-main-app .dash-quick-btn.mip-action-chip--warning {
    color: var(--mip-chip-warning-fg) !important;
    background: var(--mip-chip-warning-bg) !important;
    border: 1px solid var(--mip-chip-warning-border) !important;
}

/* dash-quick-btn dans le contenu (pas bannière héros) : jamais texte blanc sur fond clair */
body.mip-main-app :is(.glass-card, .dashboard-container, .mip-page-shell, #app-content) .dash-quick-btn:not(.mip-welcome-btn):not(.banner-actions):not(.mip-welcome-btn--primary):not(.mip-welcome-btn--secondary):not(.mip-plans-hero__action):not(.mip-plans-save):not(.mip-plans-save--primary):not(.mip-plans-modal-submit):not(.mip-settings-btn-primary):not(.mip-settings-btn-secondary):not(.mip-settings-btn-danger):not(.btn-add-primary):not(.mip-action-chip) {
    color: var(--mip-chip-neutral-fg) !important;
    background: var(--mip-chip-neutral-bg) !important;
    border: 1px solid var(--mip-chip-neutral-border) !important;
    backdrop-filter: none !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
}
body.mip-main-app :is(.glass-card, .dashboard-container, .mip-page-shell, #app-content) .dash-quick-btn:not(.mip-welcome-btn):not(.banner-actions):not(.mip-welcome-btn--primary):not(.mip-plans-hero__action):not(.mip-plans-save):not(.mip-action-chip):hover {
    color: var(--mip-chip-neutral-fg) !important;
    background: color-mix(in srgb, var(--mip-action-primary) 10%, var(--mip-chip-neutral-bg)) !important;
    border-color: color-mix(in srgb, var(--mip-action-primary) 40%, var(--mip-chip-neutral-border)) !important;
    transform: translateY(-1px);
}

body.mip-main-app .mip-row-actions,
body.mip-main-app .tenant-row-actions,
body.mip-main-app td .dash-quick-btn + .dash-quick-btn {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

[data-theme="dark"] body.mip-main-app .tenant-action-btn--site { color: #7dd3fc; background: rgba(14, 165, 233, 0.14); border-color: rgba(56, 189, 248, 0.25); }
[data-theme="dark"] body.mip-main-app .tenant-action-btn--preview { color: #c4b5fd; background: rgba(139, 92, 246, 0.16); border-color: rgba(167, 139, 250, 0.28); }
[data-theme="dark"] body.mip-main-app .tenant-action-btn--edit { color: #5eead4; background: rgba(13, 148, 136, 0.18); border-color: rgba(45, 212, 191, 0.28); }
[data-theme="dark"] body.mip-main-app .tenant-action-btn--activate { color: #6ee7b7; background: rgba(16, 185, 129, 0.16); border-color: rgba(52, 211, 153, 0.28); }
[data-theme="dark"] body.mip-main-app .tenant-action-btn--deactivate { color: #fcd34d; background: rgba(245, 158, 11, 0.14); border-color: rgba(251, 191, 36, 0.28); }
[data-theme="dark"] body.mip-main-app .tenant-action-btn--keys { color: #fcd34d; background: rgba(212, 168, 90, 0.16); border-color: rgba(251, 191, 36, 0.25); }

@media (max-width: 720px) {
    .form-actions,
    .mip-dialog-footer,
    .mip-crud-dialog__footer,
    .mip-tenant-dialog-footer,
    .mip-tenant-dialog-form-footer,
    .modal-footer,
    .lab-form-actions,
    .cds-form-footer,
    .cds-appt-form-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    .form-actions > .btn-primary,
    .form-actions > .btn.btn-primary,
    .form-actions > .btn-secondary,
    .form-actions > .submit-btn,
    .form-actions > .btn-sm,
    .mip-dialog-footer > .btn-primary,
    .mip-dialog-footer > .btn-secondary,
    .mip-dialog-footer > .submit-btn,
    .mip-dialog-footer > .btn-sm,
    .modal-footer > .btn-primary,
    .modal-footer > .btn-secondary,
    .modal-footer > .btn-sm,
    .lab-form-actions > .btn-primary,
    .lab-form-actions > .btn-secondary {
        width: 100% !important;
        min-width: 0;
        justify-content: center;
    }
}
