/* ─── Palette Desk ─────────────────────────────────────────────────────────
   Remplace le bleu Bootstrap (#0d6efd) par un indigo plus sobre
   ────────────────────────────────────────────────────────────────────────── */
:root {
    --desk-primary:        #4361ee;
    --desk-primary-rgb:    67, 97, 238;
    --desk-primary-hover:  #3651cf;
    --bs-primary:          var(--desk-primary);
    --bs-primary-rgb:      var(--desk-primary-rgb);
    --bs-link-color:       var(--desk-primary);
    --bs-link-color-rgb:   var(--desk-primary-rgb);
    --bs-link-hover-color: var(--desk-primary-hover);
}

.btn-primary {
    --bs-btn-bg:                    var(--desk-primary);
    --bs-btn-border-color:          var(--desk-primary);
    --bs-btn-hover-bg:              var(--desk-primary-hover);
    --bs-btn-hover-border-color:    var(--desk-primary-hover);
    --bs-btn-active-bg:             var(--desk-primary-hover);
    --bs-btn-active-border-color:   var(--desk-primary-hover);
    --bs-btn-disabled-bg:           var(--desk-primary);
    --bs-btn-disabled-border-color: var(--desk-primary);
    --bs-btn-focus-shadow-rgb:      var(--desk-primary-rgb);
}

.btn-outline-primary {
    --bs-btn-color:              var(--desk-primary);
    --bs-btn-border-color:       var(--desk-primary);
    --bs-btn-hover-bg:           var(--desk-primary);
    --bs-btn-hover-border-color: var(--desk-primary);
    --bs-btn-active-bg:          var(--desk-primary);
    --bs-btn-active-border-color:var(--desk-primary);
    --bs-btn-focus-shadow-rgb:   var(--desk-primary-rgb);
}

.text-primary   { color: var(--desk-primary) !important; }
.bg-primary     { background-color: var(--desk-primary) !important; }
.border-primary { border-color: var(--desk-primary) !important; }

/* ────────────────────────────────────────────────────────────────────────── */

.crm-email-body {
    font-size: 0.95rem;
}

.crm-email-body__preview,
.crm-email-body__quoted {
    white-space: pre-wrap;
}

.crm-email-body__quoted {
    border-left: 3px solid #dee2e6;
    margin-top: 0.75rem;
    padding-left: 1rem;
    color: #6c757d;
    font-size: 0.9rem;
}

.crm-email-body__quoted.is-hidden {
    display: none;
}

.crm-email-preview__body {
    min-height: 150px;
    background: #fff;
}

.crm-email-preview__body img {
    max-width: 100%;
}

.crm-email-thread-separator {
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    border-top: 1px dashed #dee2e6;
    margin: 0.5rem 1rem;
    padding-top: 0.5rem;
}

.notification-badge {
    position: absolute;
    top: 2px;
    right: 0;
    font-size: 0.6rem;
    transform: translate(50%, -30%);
}

.notification-dropdown {
    width: 360px;
    max-height: 420px;
    overflow: hidden;
}

.notification-dropdown .list-group {
    max-height: 260px;
    overflow-y: auto;
}

.notification-item.is-unread {
    background: #f8fafc;
}

.notification-item.is-unread .fw-semibold {
    color: #0b4a6f;
}

.notification-empty {
    background: #fff;
}

.hub-provision-page {
    --hub-ink: #12303b;
    --hub-accent: #c95f35;
    --hub-accent-soft: #f8e4db;
    --hub-surface: #f7f3ee;
}

.hub-provision-hero {
    background:
        radial-gradient(circle at top right, rgba(201, 95, 53, 0.18), transparent 32%),
        linear-gradient(135deg, #17313a, #244b58 60%, #35616c);
    color: #fff;
}

.hub-provision-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.75rem;
    opacity: 0.8;
    margin-bottom: 0.75rem;
}

.hub-provision-form-card {
    position: sticky;
    top: 1.5rem;
}

.hub-site-preview {
    border: 1px solid #ece3da;
    background: linear-gradient(180deg, #fff, var(--hub-surface));
}

.hub-module-grid {
    display: grid;
    gap: 0.75rem;
}

.hub-module-option {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    border: 1px solid #eadfd5;
    border-radius: 0.9rem;
    background: #fff;
    cursor: pointer;
}

.hub-module-option input {
    margin-top: 0.2rem;
}

.hub-module-option strong {
    display: block;
    color: var(--hub-ink);
}

.hub-module-option small {
    display: block;
    color: #6c757d;
}

/* ─── Layout principal ──────────────────────────────────────────────────────
   Sidebar fixe à gauche, contenu prend le reste de la largeur
   ────────────────────────────────────────────────────────────────────────── */
.app-sidebar-col {
    width: 220px;
}

.app-sidebar {
    position: sticky;
    top: 57px;
    max-height: calc(100vh - 57px);
    overflow-y: auto;
}

/* Évite que le contenu principal ne rétrécisse sous la sidebar */
.min-w-0 { min-width: 0; }

/* ────────────────────────────────────────────────────────────────────────── */

/* Avatar utilisateur dans la navbar */
.user-avatar {
    width: 30px;
    height: 30px;
    background: var(--desk-primary);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 600;
    flex-shrink: 0;
    line-height: 1;
}

/* Lignes de tableau cliquables */
tr[data-controller~="row-link"] { cursor: pointer; }
tr[data-controller~="row-link"]:hover > td { background-color: rgba(13, 110, 253, 0.035); }

/* Kanban en scroll horizontal */
.kanban-board {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: 1.25rem;
    -webkit-overflow-scrolling: touch;
}
.kanban-col {
    flex: 0 0 270px;
    min-width: 270px;
}
