/* ===== COMPOSANT STATUS BADGE BEM ===== */
/* Système de badges de statut unifié selon méthodologie BEM */
/* Élimine les styles inline de compliance/admin.py */

/* === BLOCK PRINCIPAL === */
.c-status {
    display: inline-flex;
    align-items: center;
    gap: var(--cb-spacing-2, 8px);
    padding: var(--cb-spacing-2, 8px) var(--cb-spacing-3, 12px);
    border: 1px solid transparent;
    border-radius: 4px;
    font-family: inherit;
    font-size: var(--cb-font-size-sm, 0.875rem);
    font-weight: var(--cb-font-weight-semibold, 600);
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    transition: var(--cb-transition-fast, all 0.3s ease);
    white-space: nowrap;
}

/* === ELEMENTS === */
.c-status__icon {
    flex-shrink: 0;
    font-size: 1.2em;
    line-height: 1;
}

.c-status__text {
    line-height: inherit;
}

/* === MODIFIERS - COMPLIANCE STATUSES === */
/* [DOMAIN: compliance] These modifiers are used by the compliance domain */

/* Compliance Conforme (Approuvé) */
.c-status--conforme {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--conforme:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* Compliance Partial (Partiellement Conforme) */
.c-status--partial {
    background-color: rgba(255, 193, 7, 0.1);
    color: var(--cb-warning, #ffc107);
    border-color: rgba(255, 193, 7, 0.3);
}

.c-status--partial:hover {
    background-color: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.5);
}

/* Compliance Non-Conforme (Non Approuvé) */
.c-status--non-conforme {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--non-conforme:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* Compliance En Révision */
.c-status--en-revision {
    background-color: rgba(23, 162, 184, 0.1);
    color: var(--cb-info, #17a2b8);
    border-color: rgba(23, 162, 184, 0.3);
}

.c-status--en-revision:hover {
    background-color: rgba(23, 162, 184, 0.15);
    border-color: rgba(23, 162, 184, 0.5);
}

/* Approved / Compliant status */
.c-status--approved {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--approved:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* Denied / Non-compliant status (CRITICAL) */
.c-status--denied {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--denied:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* Pending / Waiting status */
.c-status--pending {
    background-color: rgba(255, 193, 7, 0.1);
    color: var(--cb-warning, #ffc107);
    border-color: rgba(255, 193, 7, 0.3);
}

.c-status--pending:hover {
    background-color: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.5);
}

/* === MODIFIERS - ENCRYPTION STATUSES === */

/* Encrypted / Secure status */
.c-status--encrypted {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--encrypted:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* Unencrypted / Unsafe status */
.c-status--unencrypted {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--unencrypted:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* === MODIFIERS - DPIA STATUSES === */

/* DPIA Completed status */
.c-status--dpia-completed {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--dpia-completed:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* DPIA Not completed status */
.c-status--dpia-not-completed {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--dpia-not-completed:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* DPIA Not applicable status */
.c-status--dpia-na {
    background-color: rgba(108, 117, 125, 0.1);
    color: #6c757d;
    border-color: rgba(108, 117, 125, 0.3);
}

.c-status--dpia-na:hover {
    background-color: rgba(108, 117, 125, 0.15);
    border-color: rgba(108, 117, 125, 0.5);
}

/* === MODIFIERS - REVIEW STATUSES === */

/* Review Overdue (CRITICAL) */
.c-status--review-overdue {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--review-overdue:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* Review Due Soon (WARNING) */
.c-status--review-due-soon {
    background-color: rgba(255, 193, 7, 0.1);
    color: var(--cb-warning, #ffc107);
    border-color: rgba(255, 193, 7, 0.3);
}

.c-status--review-due-soon:hover {
    background-color: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.5);
}

/* Review Current (OK) */
.c-status--review-current {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--review-current:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* === MODIFIERS - ISSUE STATUSES === */

/* Critical Issues Found (CRITICAL) */
.c-status--issues-found {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--issues-found:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* No Critical Issues (OK) */
.c-status--no-issues {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--no-issues:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* === MODIFIERS - COMPLIANCE SCORE === */

/* Compliance Score High (>= 80%) */
.c-status--score-high {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
    font-weight: var(--cb-font-weight-semibold, 600);
}

.c-status--score-high:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* Compliance Score Medium (60-79%) */
.c-status--score-medium {
    background-color: rgba(255, 193, 7, 0.1);
    color: var(--cb-warning, #ffc107);
    border-color: rgba(255, 193, 7, 0.3);
    font-weight: var(--cb-font-weight-semibold, 600);
}

.c-status--score-medium:hover {
    background-color: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.5);
}

/* Compliance Score Low (< 60%) */
.c-status--score-low {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--score-low:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* === MODIFIERS - FOLLOW-UP REQUIRED === */

/* Follow-up Required (CRITICAL) */
.c-status--followup-required {
    background-color: rgba(220, 53, 69, 0.1);
    color: var(--cb-danger, #dc3545);
    border-color: rgba(220, 53, 69, 0.3);
    font-weight: var(--cb-font-weight-bold, 700);
}

.c-status--followup-required:hover {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.5);
}

/* No Follow-up Required (OK) */
.c-status--followup-not-required {
    background-color: rgba(40, 167, 69, 0.1);
    color: var(--cb-success, #28a745);
    border-color: rgba(40, 167, 69, 0.3);
}

.c-status--followup-not-required:hover {
    background-color: rgba(40, 167, 69, 0.15);
    border-color: rgba(40, 167, 69, 0.5);
}

/* === MODIFIERS - INCIDENT REPORTING === */

/* Incident Reported (WARNING) */
.c-status--incident-reported {
    background-color: rgba(255, 193, 7, 0.1);
    color: var(--cb-warning, #ffc107);
    border-color: rgba(255, 193, 7, 0.3);
    font-weight: var(--cb-font-weight-semibold, 600);
}

.c-status--incident-reported:hover {
    background-color: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.5);
}

/* Incident Not Reported (INFO) */
.c-status--incident-not-reported {
    background-color: rgba(108, 117, 125, 0.1);
    color: #6c757d;
    border-color: rgba(108, 117, 125, 0.3);
}

.c-status--incident-not-reported:hover {
    background-color: rgba(108, 117, 125, 0.15);
    border-color: rgba(108, 117, 125, 0.5);
}

/* === MODIFIERS - NOT APPLICABLE === */

/* Generic N/A status */
.c-status--na {
    background-color: rgba(108, 117, 125, 0.1);
    color: #6c757d;
    border-color: rgba(108, 117, 125, 0.3);
}

.c-status--na:hover {
    background-color: rgba(108, 117, 125, 0.15);
    border-color: rgba(108, 117, 125, 0.5);
}

/* === MODIFIERS - SIZE VARIANTS === */

.c-status--small {
    padding: var(--cb-spacing-1, 4px) var(--cb-spacing-2, 8px);
    font-size: var(--cb-font-size-xs, 0.75rem);
}

.c-status--large {
    padding: var(--cb-spacing-3, 12px) var(--cb-spacing-4, 16px);
    font-size: var(--cb-font-size-base, 1rem);
}

/* === DYNAMIC COLOR SUPPORT === */
/* Pour les couleurs provenant de la base de données */
.c-status--dynamic {
    color: var(--status-color, inherit);
    background-color: rgba(var(--status-color-rgb, 108, 117, 125), 0.1);
    border-color: rgba(var(--status-color-rgb, 108, 117, 125), 0.3);
}

.c-status--dynamic:hover {
    background-color: rgba(var(--status-color-rgb, 108, 117, 125), 0.15);
    border-color: rgba(var(--status-color-rgb, 108, 117, 125), 0.5);
}
