:root{
    --bg:#f4f6fb;
    --panel:#ffffff;
    --text:#1f2937;
    --muted:#6b7280;
    --primary:#235d90;
    --primary-2:#3d7eb8;
    --border:#d8e1eb;
    --danger:#b42318;
    --success:#027a48;
    --warning:#b54708;
    --sidebar:#173247;
}

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
    height:100%;
}

body{
    min-height:100vh;
    font-family:Arial, Helvetica, sans-serif;
    background:var(--bg);
    color:var(--text);
}

a{
    color:inherit;
    text-decoration:none;
}

/* ===== STRUCTURE GENERALE ===== */
.layout{
    display:flex;
    align-items:stretch;
    min-height:100vh;
    width:100%;
}

.sidebar{
    width:260px;
    min-width:260px;
    max-width:260px;
    flex:0 0 260px;
    background:var(--sidebar);
    color:#fff;
    padding:20px 16px;
    position:sticky;
    top:0;
    height:100vh;
    overflow-y:auto;
    overflow-x:hidden;
}

.main{
    flex:1;
    min-width:0;
    overflow-x:hidden;
    padding:18px 22px;
}

/* ===== MARQUE / MENU ===== */
.brand{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
    padding:8px 10px 18px;
    border-bottom:1px solid rgba(255,255,255,.16);
    margin-bottom:18px;
}

.brand-logos{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
    padding:10px 14px;
    border:5px solid #3b82f6;
    border-radius:2px;
    background:#1d4561;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}

.brand-logo-card{
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:4px 8px;
    background:#ffffff;
    border:1px solid rgba(15, 23, 42, .12);
    border-radius:2px;
    box-shadow:0 2px 8px rgba(0,0,0,.10);
}

.brand-logo{
    display:block;
    width:100%;
    height:30px;
    object-fit:contain;
}

.brand-text{
    width:100%;
    text-align:left;
}

.brand-title{
    font-size:22px;
    font-weight:900;
    letter-spacing:.2px;
    color:#ffffff;
    text-shadow:0 1px 0 rgba(0,0,0,.25);
}

.brand-subtitle{
    margin-top:4px;
    font-size:13px;
    color:rgba(255,255,255,.94);
    opacity:1;
}

.menu{
    display:flex;
    flex-direction:column;
    gap:9px;
}

.menu a,
.menu-group{
    border-radius:11px;
}

.menu a{
    position:relative;
    display:flex;
    align-items:center;
    min-height:42px;
    padding:11px 13px 11px 16px;
    background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.075));
    border:1px solid rgba(255,255,255,.10);
    border-left:4px solid rgba(255,255,255,.34);
    color:#ffffff;
    font-weight:700;
    line-height:1.15;
    box-shadow:
        0 8px 18px rgba(0,0,0,.13),
        inset 0 1px 0 rgba(255,255,255,.12);
    transition:background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.menu a:hover,
.menu a:focus{
    background:linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.12));
    border-left-color:#f6c85f;
    box-shadow:
        0 10px 22px rgba(0,0,0,.18),
        inset 0 1px 0 rgba(255,255,255,.18);
    transform:translateX(2px);
    outline:none;
}

.menu a.active{
    background:linear-gradient(180deg, #2f6f9b, #235d90);
    border-color:rgba(255,255,255,.16);
    border-left-color:#f6c85f;
    color:#fff;
    box-shadow:
        0 10px 26px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.20);
}

.menu a.active::after{
    content:"";
    position:absolute;
    right:12px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#f6c85f;
    box-shadow:0 0 0 4px rgba(246,200,95,.16);
}

.menu-group{
    margin:14px 0 2px;
    padding:8px 12px;
    font-weight:800;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.7px;
    color:#edf6ff;
    border-left:0;
    background:rgba(255,255,255,.055);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

/* ===== BARRE SUPERIEURE ===== */
.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:14px 18px;
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:16px;
    margin-bottom:18px;
    min-width:0;
}

/* ===== TITRES / CARTES ===== */
.page-header{
    margin:6px 0 14px;
    min-width:0;
}

.page-header h1{
    margin:0 0 4px;
    font-size:28px;
}

.muted{
    color:var(--muted);
}

.card{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:18px;
    padding:18px;
    margin-bottom:16px;
    box-shadow:0 4px 18px rgba(15, 23, 42, .03);
    min-width:0;
}

.card-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}

.card-nested{
    background:#fbfdff;
    border:1px solid var(--border);
    border-style:dashed;
}

/* ===== STATISTIQUES ===== */
.cards-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:14px;
    margin-bottom:16px;
}

.stat-card{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:18px;
    padding:16px;
}

.stat-card span{
    display:block;
    color:var(--muted);
    font-size:13px;
}

.stat-card strong{
    display:block;
    margin-top:8px;
    font-size:30px;
    color:var(--primary);
}

/* ===== CHIPS ===== */
.chips{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.chip{
    background:#eef5fb;
    color:var(--primary);
    border:1px solid #d7e6f4;
    padding:8px 12px;
    border-radius:999px;
    font-size:13px;
}

.chip-select{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border:1px solid #d7e6f4;
    border-radius:999px;
    background:#eef5fb;
    color:#235d90;
    cursor:pointer;
}

.chip-select input{
    width:auto;
    min-width:auto;
    margin:0;
}

/* ===== FORMULAIRES ===== */
.form-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:14px;
}

.form-group{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
}

.form-group-span-2{
    grid-column:span 2;
}

label{
    font-weight:700;
    font-size:14px;
}

input,
select,
textarea{
    width:100%;
    min-width:0;
    border:1px solid var(--border);
    border-radius:12px;
    padding:10px 12px;
    font-size:14px;
    background:#fff;
}

textarea{
    resize:vertical;
}

.card-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:10px;
    margin-top:14px;
}

.card-actions > .btn,
.card-actions > form,
.card-actions > a{
    align-self:flex-start;
}

.workflow-card .workflow-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:12px;
}

.workflow-action-form{
    margin:0;
}

.workflow-return-card{
    width:100%;
    max-width:100%;
    margin:18px 0 0;
    padding:16px;
    background:#fbfdff;
    border:1px dashed var(--border);
    border-radius:16px;
    box-shadow:none;
}

.workflow-return-layout{
    display:grid;
    grid-template-columns:minmax(360px, 1fr) minmax(240px, 340px);
    gap:16px;
    align-items:stretch;
}

.workflow-return-main{
    display:flex;
    flex-direction:column;
    gap:8px;
    min-width:0;
}

.workflow-return-side{
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    gap:12px;
    min-width:0;
}

.workflow-return-card .form-group{
    gap:7px;
}

.workflow-return-card textarea{
    min-height:92px;
}

.workflow-return-note{
    margin:0;
    padding:10px 12px;
    border-radius:12px;
    background:#fff7ed;
    border:1px solid #fed7aa;
    color:#9a3412;
    font-size:13px;
    line-height:1.35;
}

.workflow-return-card .btn{
    width:100%;
    margin-top:0;
    min-height:44px;
}

.workflow-return-card .btn.btn-cancel-returned-bsc{
    width:auto;
    min-width:0;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
    white-space:nowrap;
}

.workflow-print-link{
    min-height:42px;
    padding:10px 14px;
}

.correction-notice-card{
    border-color:#fedf89;
    background:#fffbeb;
}

.correction-notice-card h2{
    margin-top:0;
    color:#92400e;
}

.correction-notice-meta{
    color:#92400e;
    font-size:13px;
    margin-bottom:8px;
}

.correction-notice-reason{
    background:#fff;
    border:1px solid #fde68a;
    border-radius:12px;
    padding:12px 14px;
    color:#111827;
    line-height:1.45;
    white-space:pre-wrap;
}


/* ===== BOUTONS ===== */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:none;
    border-radius:12px;
    padding:10px 14px;
    font-size:14px;
    cursor:pointer;
}

.btn-primary{
    background:var(--primary);
    color:#fff;
}

.btn-primary:hover{
    background:var(--primary-2);
}

.btn-light{
    background:#eef2f7;
    color:#1f2937;
}

.btn-danger{
    background:var(--danger);
    color:#fff;
}

.btn-secondary{
    background:#475467;
    color:#fff;
}



/* ===== RETOURS POUR CORRECTION : boutons compacts et visibles ===== */
.btn-warning{
    background:#f59e0b;
    color:#111827;
    font-weight:700;
}

.btn-warning:hover{
    background:#d97706;
    color:#ffffff;
}

.btn-return-correction,
.workflow-return-card .btn.btn-return-correction,
.avs-caisse-return .btn.btn-return-correction{
    width:auto !important;
    min-width:0 !important;
    max-width:100%;
    display:inline-flex;
    align-self:flex-start;
    flex:0 0 auto;
    padding:10px 18px;
    min-height:40px;
    background:#f59e0b !important;
    color:#111827 !important;
    border:1px solid #b45309 !important;
    border-radius:10px;
    font-weight:800;
    line-height:1.2;
    text-align:center;
    white-space:normal;
    box-shadow:0 6px 14px rgba(180,83,9,.18);
}

.btn-return-correction:hover,
.workflow-return-card .btn.btn-return-correction:hover,
.avs-caisse-return .btn.btn-return-correction:hover{
    background:#d97706 !important;
    color:#ffffff !important;
}

.workflow-return-card .card-actions,
.workflow-return-side{
    align-items:flex-start;
}

/* ===== TABLEAUX ===== */
.table-wrap{
    overflow:auto;
    max-width:100%;
    min-width:0;
}

table{
    width:100%;
    border-collapse:collapse;
    min-width:900px;
}

th,
td{
    border:1px solid var(--border);
    padding:10px 12px;
    vertical-align:top;
}

thead th{
    background:#dce6f1;
    position:sticky;
    top:0;
    z-index:1;
    text-align:left;
}

.inline-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

/* ===== BADGES / ETATS ===== */
.badge{
    display:inline-block;
    padding:6px 10px;
    border-radius:999px;
    background:#eef5fb;
    color:var(--primary);
    font-size:12px;
    font-weight:700;
}

.badge-inactive{
    background:#fef3f2;
    color:#b42318;
}
.badge-success{
    background:#ecfdf3;
    color:#027a48;
}

.badge-warning{
    background:#fffaeb;
    color:#b54708;
}

.badge-danger{
    background:#fef3f2;
    color:#b42318;
}

.badge-secondary{
    background:#f2f4f7;
    color:#344054;
}


.kpi-closed{
    color:#027a48;
    font-weight:700;
}

.kpi-pending{
    color:#b54708;
    font-weight:700;
}

.empty{
    text-align:center;
    color:var(--muted);
}

/* ===== DETAILS ===== */
.detail-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px 18px;
}

.detail-span-2{
    grid-column:span 2;
}

/* ===== ALERTES ===== */
.alert{
    border-radius:12px;
    padding:12px 14px;
    margin-bottom:14px;
    border:1px solid transparent;
}

.alert-success{
    background:#ecfdf3;
    color:var(--success);
    border-color:#abefc6;
}

.alert-danger{
    background:#fef3f2;
    color:var(--danger);
    border-color:#fecdca;
}

.alert-warning{
    background:#fffaeb;
    color:var(--warning);
    border-color:#fedf89;
}

/* ===== LOGIN ===== */
.login-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:20px;
}

.login-card{
    width:min(430px, 100%);
    background:#fff;
    border:1px solid var(--border);
    border-radius:20px;
    padding:24px;
    box-shadow:0 10px 32px rgba(15,23,42,.08);
}

.login-card h1{
    margin-top:0;
}

.help-box{
    margin-top:16px;
    padding:12px;
    background:#f8fafc;
    border:1px dashed var(--border);
    border-radius:12px;
}

code{
    background:#eef2f7;
    padding:2px 6px;
    border-radius:8px;
}

/* ===== RECHERCHE / FILTRES ===== */
.search-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:12px;
}

.filter-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:12px;
    align-items:end;
}

.filter-actions{
    grid-column:span 4;
}

.mini-json{
    max-width:340px;
    max-height:120px;
    overflow:auto;
    white-space:pre-wrap;
    word-break:break-word;
    font-size:12px;
    margin:0;
}

/* ===== PERMISSIONS ===== */
.permission-group{
    margin-bottom:18px;
}

.permission-group h3{
    margin:0 0 10px;
    font-size:18px;
}

.permission-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:12px;
}

.permission-card{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:14px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
    cursor:pointer;
}

.permission-card:hover{
    border-color:#bfd2e2;
    box-shadow:0 4px 16px rgba(15,23,42,.05);
}

.permission-card input{
    width:auto;
    min-width:auto;
    margin:0 0 6px;
}

.permission-card-title{
    font-weight:700;
}

.permission-card-code{
    font-size:12px;
    color:var(--muted);
}

/* ===== SIGNATURE ===== */
.sig-preview{
    max-width:240px;
    max-height:90px;
    width:auto;
    height:auto;
    object-fit:contain;
    border:1px solid #d8e1eb;
    border-radius:12px;
    background:#fff;
    padding:6px;
    display:block;
}


/* ===== PAGE CHANGEMENT OBLIGATOIRE MOT DE PASSE ===== */
.password-change-card{
    max-width:920px;
}

.password-change-card .form-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
    align-items:start;
}

.password-change-card .form-group-span-2{
    grid-column:span 2;
}

.password-change-card label{
    white-space:normal;
    line-height:1.25;
}

@media (max-width:760px){
    .password-change-card .form-grid{
        grid-template-columns:1fr;
    }

    .password-change-card .form-group-span-2{
        grid-column:span 1;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width:1100px){
    .form-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .filter-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .filter-actions{
        grid-column:span 2;
    }
}

@media (max-width:900px){
    .search-grid{
        grid-template-columns:1fr 1fr;
    }

    .workflow-return-layout{
        grid-template-columns:1fr;
    }

    .workflow-return-side{
        justify-content:flex-start;
    }
}

@media (max-width:760px){
    .layout{
        flex-direction:column;
    }

    .sidebar{
        width:100%;
        min-width:100%;
        max-width:100%;
        flex:1 1 auto;
        position:relative;
        top:auto;
        height:auto;
        overflow:visible;
    }

    .main{
        padding:12px;
    }

    .form-grid,
    .detail-grid{
        grid-template-columns:1fr;
    }

    .form-group-span-2,
    .detail-span-2{
        grid-column:span 1;
    }
}

@media (max-width:700px){
    .filter-grid{
        grid-template-columns:1fr;
    }

    .filter-actions{
        grid-column:span 1;
    }
}

@media (max-width:640px){
    .search-grid{
        grid-template-columns:1fr;
    }
}
/* ===== CAISSE : PV ARRETE ET BROUILLARD ===== */
.pv-caisse-table-wrap table,
.brouillard-caisse-table{
    min-width:760px;
}

.pv-caisse-table input[readonly],
.pv-caisse-details-grid input[readonly]{
    background:#f8fafc;
    font-weight:700;
}

.pv-caisse-table input[type="number"]{
    text-align:right;
}

.pv-section-row td{
    background:#f8fafc;
    font-weight:800;
    color:#235d90;
    letter-spacing:.4px;
    text-transform:uppercase;
}

.pv-caisse-details-grid{
    margin-top:18px;
}

.text-danger{
    color:#b42318 !important;
}

.brouillard-opening-row td{
    background:#f8fafc;
}

.brouillard-caisse-table tfoot th{
    background:#eaf2fb;
    font-weight:800;
}

@media print{
    .sidebar,
    .topbar,
    .no-print,
    .page-header .muted,
    .card-actions{
        display:none !important;
    }
    .layout{display:block;}
    .main{padding:0;}
    .card{box-shadow:none;border:0;margin:0;padding:0;}
    .brouillard-print-card{padding:0;}
    table{min-width:0;font-size:10px;}
    th,td{padding:5px 6px;}
}

/* ===== RETOURS POUR CORRECTION : boutons compacts rose visibles ===== */
.btn-return-correction,
button.btn-return-correction,
a.btn-return-correction,
.workflow-return-card .btn-return-correction,
.workflow-return-card button.btn-return-correction,
.workflow-return-card .card-actions .btn-return-correction,
.workflow-return-side .btn-return-correction,
.avs-caisse-return .btn-return-correction{
    width:auto !important;
    min-width:0 !important;
    max-width:280px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    padding:9px 16px !important;
    min-height:38px !important;
    background:#f9a8d4 !important;
    color:#831843 !important;
    border:1px solid #be185d !important;
    border-radius:10px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    text-align:center !important;
    white-space:normal !important;
    box-shadow:0 6px 14px rgba(190,24,93,.16) !important;
    cursor:pointer !important;
}

.btn-return-correction:hover,
button.btn-return-correction:hover,
a.btn-return-correction:hover,
.workflow-return-card .btn-return-correction:hover,
.workflow-return-card button.btn-return-correction:hover,
.workflow-return-card .card-actions .btn-return-correction:hover,
.workflow-return-side .btn-return-correction:hover,
.avs-caisse-return .btn-return-correction:hover{
    background:#f472b6 !important;
    color:#ffffff !important;
    border-color:#9d174d !important;
}

.workflow-return-card .card-actions,
.workflow-return-side,
.avs-caisse-return .card-actions{
    width:auto !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;
}

.workflow-return-card > button.btn-return-correction{
    margin-top:10px !important;
}

/* ===== VALEURS FCFA : anti-déformation =====
   Utiliser le titre de colonne "Montant (F CFA)" puis garder uniquement
   la valeur numérique dans la cellule. Ces classes empêchent les montants
   d'être coupés en plusieurs lignes, notamment "F" puis "CFA". */
.amount-cell,
.fcfa-nowrap,
.money-cell,
.currency-cell,
.num-cell,
.cheque-money,
.cheque-money-col{
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    font-variant-numeric:tabular-nums;
}

.amount-cell,
.money-cell,
.currency-cell,
.num-cell,
.cheque-money-col{
    text-align:right;
}

th.amount-cell,
th.money-cell,
th.currency-cell,
th.num-cell,
th.cheque-money-col{
    text-align:right;
}

/* ===== MODULE RAPPORTS / TABLEAU DG INTELLIGENT ===== */
.reports-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:14px;
}

.report-card{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-height:220px;
    padding:16px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fbfdff;
    box-shadow:0 4px 16px rgba(15,23,42,.035);
}

.report-card-custom{
    border-color:#bfdbfe;
    background:#eff6ff;
}

.report-card h3{
    margin:0;
    color:#0f172a;
    font-size:18px;
}

.report-card p{
    margin:0;
    color:#475467;
    line-height:1.35;
    flex:1;
}

.report-card-kicker,
.report-meta{
    color:#235d90;
    font-size:12px;
    font-weight:700;
}

.report-meta{
    color:#667085;
    font-weight:600;
}

.report-actions{
    margin-top:auto;
}

.report-assignment-card{
    margin-top:16px;
}

.dg-kpi-grid{
    grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
}

.dg-stat-card small{
    display:block;
    margin-top:8px;
    color:#475467;
    line-height:1.35;
}

.dg-priority-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
    gap:12px;
}

.dg-priority-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid #d7e6f4;
    border-radius:14px;
    background:#eef5fb;
    color:#16476e;
    font-weight:800;
}

.dg-priority-item strong{
    font-size:28px;
    color:#b54708;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}

.dg-dashboard-columns{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
}

.dg-mini-table{
    min-width:760px;
}

@media (max-width:1100px){
    .dg-dashboard-columns{
        grid-template-columns:1fr;
    }
}

/* ===== RAPPORTS ENTREPRISE : APERÇU / EXPORT ===== */
.report-preview-frame{
    width:100%;
    overflow:auto;
    background:#fff;
    border:1px solid var(--border);
    border-radius:14px;
    padding:12px;
    margin-top:12px;
}
.report-preview-frame .report-export{
    min-width:0;
    max-width:100%;
}
.report-section-card .card-head{
    gap:10px;
}
.report-actions .btn{
    min-width:auto;
}

/* ===== RAPPORT PERSONNALISÉ : GÉNÉRATEUR PAR COLONNES ===== */
.report-custom-form .form-help{
    display:block;
    margin-top:6px;
    color:#667085;
    font-size:12px;
}
.report-columns-card{
    margin-top:16px;
    border:1px dashed #b9d1ea;
    background:#fbfdff;
}
.report-column-actions{
    margin:8px 0 12px 0;
}
.report-columns-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:10px;
}
.report-column-card{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:46px;
    padding:10px 12px;
    border:1px solid #d7e6f4;
    border-radius:12px;
    background:#fff;
    color:#0f172a;
    font-weight:700;
    line-height:1.25;
}
.report-column-card:hover{
    border-color:#93c5fd;
    background:#f0f7ff;
}
.report-column-card input{
    flex:0 0 auto;
    width:16px;
    height:16px;
}
.report-columns-card .empty{
    padding:14px;
    border:1px solid #e4edf7;
    border-radius:12px;
    background:#f8fafc;
    color:#667085;
}

/* ===== RAPPORTS : aperçu lisible sans déformation ===== */
.report-preview-frame{
    overflow-x:auto !important;
    overflow-y:visible !important;
}
.report-preview-frame .report-export,
.report-preview-frame .table-scroll,
.report-preview-frame table.report-table{
    width:100% !important;
    max-width:none !important;
}
.report-preview-frame .report-export,
.report-preview-frame table.report-table{
    min-width:var(--report-min-width, 1100px) !important;
}
.report-preview-frame .table-scroll{
    overflow-x:auto !important;
    overflow-y:visible !important;
}
.report-preview-frame table.report-table{
    table-layout:fixed !important;
}
.report-preview-frame .report-table th,
.report-preview-frame .report-table td{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    line-height:1.22 !important;
}
.report-preview-frame .report-table .nowrap-col{
    white-space:normal !important;
    overflow-wrap:normal !important;
}
.report-preview-frame .report-table .num{
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;
}
.report-preview-frame .report-density-dense .report-table th,
.report-preview-frame .report-density-ultra .report-table th{
    font-size:8px !important;
    padding:3px 4px !important;
}
.report-preview-frame .report-density-dense .report-table td,
.report-preview-frame .report-density-ultra .report-table td{
    font-size:8.2px !important;
    padding:3.2px 4px !important;
}
.report-preview-frame .report-table th{
    font-weight:800 !important;
}
.report-preview-frame .report-table td{
    min-height:28px !important;
}

/* ===== MENU TELEPHONE : bouton 3 traits + liste deroulante structuree ===== */
.mobile-menu-toggle{
    display:none;
}
.mobile-menu-panel{
    display:block;
}
.brand-text{
    min-width:0;
}

@media (max-width:640px), (max-device-width:640px){
    html.is-phone body:not(.login-page),
    html.is-android-phone body:not(.login-page){
        overflow-x:hidden;
        background:var(--bg);
    }

    html.is-phone .layout,
    html.is-android-phone .layout{
        flex-direction:column;
        width:100%;
        min-height:100vh;
        overflow-x:hidden;
    }

    html.is-phone .sidebar,
    html.is-android-phone .sidebar{
        width:100% !important;
        min-width:100% !important;
        max-width:100% !important;
        flex:0 0 auto !important;
        position:sticky !important;
        top:0 !important;
        z-index:1000 !important;
        height:auto !important;
        max-height:none !important;
        overflow:visible !important;
        padding:0 !important;
        background:#173247 !important;
        border-bottom:1px solid rgba(255,255,255,.16);
        box-shadow:0 8px 22px rgba(15, 23, 42, .18);
    }

    html.is-phone .brand,
    html.is-android-phone .brand{
        display:flex !important;
        flex-direction:column !important;
        align-items:flex-start !important;
        gap:9px !important;
        margin:0 !important;
        padding:10px 14px 12px !important;
        background:#173247 !important;
        border-bottom:1px solid rgba(255,255,255,.14);
    }

    html.is-phone .brand-logos,
    html.is-android-phone .brand-logos{
        width:min(100%, 226px) !important;
        align-self:center !important;
        display:grid !important;
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
        gap:8px !important;
        padding:9px 12px !important;
        border:5px solid #2f80ff !important;
        border-radius:0 !important;
        background:#173247 !important;
        box-shadow:none !important;
    }

    html.is-phone .brand-logo-card,
    html.is-android-phone .brand-logo-card{
        min-height:35px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        padding:4px 6px !important;
        background:#fff !important;
        border:1px solid rgba(15, 23, 42, .14) !important;
        border-radius:1px !important;
        box-shadow:0 2px 6px rgba(0,0,0,.15) !important;
    }

    html.is-phone .brand-logo,
    html.is-android-phone .brand-logo{
        display:block !important;
        width:100% !important;
        height:27px !important;
        object-fit:contain !important;
    }

    html.is-phone .brand-text,
    html.is-android-phone .brand-text{
        width:100% !important;
        text-align:left !important;
        padding-left:10px !important;
        min-width:0 !important;
    }

    html.is-phone .brand-title,
    html.is-android-phone .brand-title{
        margin:0 !important;
        font-size:26px !important;
        line-height:1.08 !important;
        font-weight:900 !important;
        letter-spacing:.2px !important;
        color:#fff !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
        text-shadow:0 1px 0 rgba(0,0,0,.35) !important;
    }

    html.is-phone .brand-subtitle,
    html.is-android-phone .brand-subtitle{
        margin-top:4px !important;
        font-size:14px !important;
        line-height:1.15 !important;
        color:rgba(255,255,255,.94) !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }

    html.is-phone .mobile-menu-toggle,
    html.is-android-phone .mobile-menu-toggle{
        align-self:flex-end !important;
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        flex:0 0 auto !important;
        width:44px !important;
        min-width:44px !important;
        height:40px !important;
        min-height:40px !important;
        margin-top:2px !important;
        padding:0 !important;
        border:1px solid rgba(255,255,255,.28) !important;
        border-radius:10px !important;
        background:rgba(255,255,255,.12) !important;
        color:#fff !important;
        font:inherit !important;
        font-weight:900 !important;
        cursor:pointer !important;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.18) !important;
        -webkit-tap-highlight-color:transparent;
    }

    html.is-phone .mobile-menu-toggle:focus,
    html.is-android-phone .mobile-menu-toggle:focus{
        outline:2px solid rgba(246,200,95,.9) !important;
        outline-offset:2px !important;
    }

    html.is-phone .mobile-menu-toggle[aria-expanded="true"],
    html.is-android-phone .mobile-menu-toggle[aria-expanded="true"]{
        background:rgba(255,255,255,.20) !important;
        border-color:rgba(246,200,95,.82) !important;
    }

    html.is-phone .mobile-menu-bars,
    html.is-android-phone .mobile-menu-bars{
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        font-size:28px !important;
        line-height:1 !important;
        transform:translateY(-1px) !important;
    }

    html.is-phone .mobile-menu-text,
    html.is-android-phone .mobile-menu-text{
        display:none !important;
    }

    html.is-phone .mobile-menu-panel,
    html.is-android-phone .mobile-menu-panel{
        display:none;
        width:100%;
        background:#173247;
        border-top:1px solid rgba(255,255,255,.10);
        overflow:hidden;
    }

    html.is-phone .sidebar.is-mobile-menu-open .mobile-menu-panel,
    html.is-android-phone .sidebar.is-mobile-menu-open .mobile-menu-panel{
        display:block;
        max-height:calc(100vh - 176px);
        overflow-y:auto;
        overflow-x:hidden;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
    }

    html.is-phone .menu,
    html.is-android-phone .menu{
        display:flex !important;
        flex-direction:column !important;
        gap:8px !important;
        padding:10px 13px 16px !important;
        background:#173247 !important;
    }

    html.is-phone .menu-group,
    html.is-android-phone .menu-group{
        margin:14px 0 2px !important;
        padding:8px 12px !important;
        border-radius:10px !important;
        background:rgba(255,255,255,.055) !important;
        color:#edf6ff !important;
        font-size:12px !important;
        line-height:1.15 !important;
        font-weight:900 !important;
        letter-spacing:.65px !important;
        text-transform:uppercase !important;
        white-space:normal !important;
        overflow-wrap:anywhere !important;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.06) !important;
    }

    html.is-phone .menu a,
    html.is-android-phone .menu a{
        min-height:46px !important;
        display:flex !important;
        align-items:center !important;
        padding:10px 30px 10px 18px !important;
        border-radius:11px !important;
        border:1px solid rgba(255,255,255,.12) !important;
        border-left:4px solid rgba(255,255,255,.38) !important;
        background:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.075)) !important;
        color:#ffffff !important;
        font-size:16px !important;
        line-height:1.15 !important;
        font-weight:800 !important;
        white-space:normal !important;
        overflow-wrap:anywhere !important;
        word-break:normal !important;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 8px 18px rgba(0,0,0,.12) !important;
    }

    html.is-phone .menu a:hover,
    html.is-phone .menu a:focus,
    html.is-android-phone .menu a:hover,
    html.is-android-phone .menu a:focus{
        transform:none !important;
        background:linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.10)) !important;
        border-left-color:#f6c85f !important;
        outline:none !important;
    }

    html.is-phone .menu a.active,
    html.is-android-phone .menu a.active{
        background:linear-gradient(180deg, #2f6f9b, #235d90) !important;
        border-left-color:#f6c85f !important;
    }

    html.is-phone .menu a.active::after,
    html.is-android-phone .menu a.active::after{
        right:11px !important;
        width:6px !important;
        height:6px !important;
        box-shadow:0 0 0 3px rgba(246,200,95,.16) !important;
    }

    html.is-phone .main,
    html.is-android-phone .main{
        width:100%;
        max-width:100%;
        padding:10px !important;
        overflow-x:hidden;
    }

    html.is-phone .topbar,
    html.is-android-phone .topbar{
        align-items:flex-start;
        padding:9px 10px !important;
        border-radius:12px !important;
        gap:8px;
        font-size:12.5px;
    }

    html.is-phone .topbar .btn,
    html.is-android-phone .topbar .btn{
        min-height:34px;
        padding:8px 10px !important;
        border-radius:9px !important;
        font-size:12px !important;
        white-space:nowrap;
    }

    html.is-phone .page-header h1,
    html.is-android-phone .page-header h1{
        font-size:21px !important;
        line-height:1.18;
    }

    html.is-phone .card,
    html.is-android-phone .card{
        padding:12px !important;
        border-radius:14px !important;
    }
}

/* ===== CORRECTION 25/05 : logos sans fond + entete mobile mieux rangee =====
   Objectif : supprimer tout fond/cadre autour des logos sur PC et mobile,
   puis ranger le bouton 3 traits sur telephone sans impacter les pages/data. */
.brand-logos{
    width:min(100%, 198px) !important;
    align-self:center !important;
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:10px !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}

.brand-logo-card{
    min-height:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}

.brand-logo{
    display:block !important;
    width:100% !important;
    height:30px !important;
    object-fit:contain !important;
    background:transparent !important;
}

@media (max-width:640px), (max-device-width:640px){
    html.is-phone .brand,
    html.is-android-phone .brand{
        display:grid !important;
        grid-template-columns:minmax(0, 1fr) 56px !important;
        grid-template-areas:
            "logos toggle"
            "title toggle" !important;
        align-items:center !important;
        column-gap:10px !important;
        row-gap:8px !important;
        margin:0 !important;
        padding:13px 14px 13px !important;
        background:#173247 !important;
        border-bottom:1px solid rgba(255,255,255,.14) !important;
    }

    html.is-phone .brand-logos,
    html.is-android-phone .brand-logos{
        grid-area:logos !important;
        justify-self:center !important;
        align-self:end !important;
        width:min(218px, calc(100vw - 104px)) !important;
        max-width:218px !important;
        gap:10px !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        box-shadow:none !important;
    }

    html.is-phone .brand-logo-card,
    html.is-android-phone .brand-logo-card{
        min-height:0 !important;
        padding:0 !important;
        background:transparent !important;
        border:0 !important;
        box-shadow:none !important;
    }

    html.is-phone .brand-logo,
    html.is-android-phone .brand-logo{
        height:34px !important;
        max-width:100% !important;
        object-fit:contain !important;
        background:transparent !important;
    }

    html.is-phone .brand-text,
    html.is-android-phone .brand-text{
        grid-area:title !important;
        width:100% !important;
        min-width:0 !important;
        padding-left:20px !important;
        text-align:left !important;
    }

    html.is-phone .brand-title,
    html.is-android-phone .brand-title{
        font-size:25px !important;
        line-height:1.06 !important;
        margin:0 !important;
    }

    html.is-phone .brand-subtitle,
    html.is-android-phone .brand-subtitle{
        margin-top:4px !important;
        font-size:14px !important;
        line-height:1.15 !important;
    }

    html.is-phone .mobile-menu-toggle,
    html.is-android-phone .mobile-menu-toggle{
        grid-area:toggle !important;
        justify-self:end !important;
        align-self:center !important;
        width:52px !important;
        min-width:52px !important;
        height:52px !important;
        min-height:52px !important;
        margin:0 !important;
        border:2px solid rgba(246,200,95,.78) !important;
        border-radius:15px !important;
        background:rgba(255,255,255,.10) !important;
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.20),
            0 0 0 2px rgba(255,255,255,.16) !important;
    }

    html.is-phone .mobile-menu-bars,
    html.is-android-phone .mobile-menu-bars{
        font-size:32px !important;
        transform:translateY(-1px) !important;
    }

    html.is-phone .mobile-menu-panel,
    html.is-android-phone .mobile-menu-panel{
        border-top:1px solid rgba(255,255,255,.12) !important;
    }

    html.is-phone .sidebar.is-mobile-menu-open .mobile-menu-panel,
    html.is-android-phone .sidebar.is-mobile-menu-open .mobile-menu-panel{
        max-height:calc(100vh - 142px) !important;
    }
}

@media (max-width:380px), (max-device-width:380px){
    html.is-phone .brand,
    html.is-android-phone .brand{
        grid-template-columns:minmax(0, 1fr) 50px !important;
        column-gap:8px !important;
        padding:12px 12px !important;
    }

    html.is-phone .brand-logos,
    html.is-android-phone .brand-logos{
        width:min(198px, calc(100vw - 92px)) !important;
        gap:8px !important;
    }

    html.is-phone .brand-logo,
    html.is-android-phone .brand-logo{
        height:30px !important;
    }

    html.is-phone .brand-text,
    html.is-android-phone .brand-text{
        padding-left:12px !important;
    }

    html.is-phone .brand-title,
    html.is-android-phone .brand-title{
        font-size:23px !important;
    }

    html.is-phone .mobile-menu-toggle,
    html.is-android-phone .mobile-menu-toggle{
        width:48px !important;
        min-width:48px !important;
        height:48px !important;
        min-height:48px !important;
    }
}

/* ===== LOGOS DYNAMIQUES SELON LES ENTITES DU PROFIL =====
   1 entite GEBAT       => logo GEBAT seul
   1 entite NOURIVOIRE  => logo Nourivoire seul
   2 entites            => les deux logos
   Aucun fond/cadre n'est ajoute autour des logos. */
.brand-logos.brand-logos--single{
    width:min(100%, 118px) !important;
    max-width:118px !important;
    grid-template-columns:1fr !important;
    justify-content:center !important;
    justify-items:center !important;
    gap:0 !important;
}

.brand-logos.brand-logos--double{
    width:min(100%, 198px) !important;
    max-width:198px !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    justify-content:center !important;
    justify-items:center !important;
    gap:10px !important;
}

.brand-logos--single .brand-logo-card{
    width:118px !important;
    max-width:118px !important;
}

.brand-logos--double .brand-logo-card{
    width:100% !important;
    min-width:0 !important;
}

.brand-logos--single .brand-logo{
    width:auto !important;
    height:34px !important;
    max-width:118px !important;
}

.brand-logos--single .brand-logo-gebat{
    max-width:92px !important;
}

.brand-logos--single .brand-logo-nourivoire{
    max-width:118px !important;
}

.brand-logos--double .brand-logo{
    width:100% !important;
    height:30px !important;
    max-width:100% !important;
}

@media (max-width:640px), (max-device-width:640px){
    html.is-phone .brand-logos.brand-logos--single,
    html.is-android-phone .brand-logos.brand-logos--single{
        width:min(118px, calc(100vw - 104px)) !important;
        max-width:118px !important;
        grid-template-columns:1fr !important;
        justify-self:center !important;
        gap:0 !important;
    }

    html.is-phone .brand-logos.brand-logos--double,
    html.is-android-phone .brand-logos.brand-logos--double{
        width:min(218px, calc(100vw - 104px)) !important;
        max-width:218px !important;
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
        justify-self:center !important;
        gap:10px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-card,
    html.is-android-phone .brand-logos--single .brand-logo-card{
        width:118px !important;
        max-width:118px !important;
    }

    html.is-phone .brand-logos--single .brand-logo,
    html.is-android-phone .brand-logos--single .brand-logo{
        width:auto !important;
        height:34px !important;
        max-width:118px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-gebat,
    html.is-android-phone .brand-logos--single .brand-logo-gebat{
        max-width:92px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-nourivoire,
    html.is-android-phone .brand-logos--single .brand-logo-nourivoire{
        max-width:118px !important;
    }

    html.is-phone .brand-logos--double .brand-logo,
    html.is-android-phone .brand-logos--double .brand-logo{
        width:100% !important;
        height:34px !important;
        max-width:100% !important;
    }
}

@media (max-width:380px), (max-device-width:380px){
    html.is-phone .brand-logos.brand-logos--single,
    html.is-android-phone .brand-logos.brand-logos--single{
        width:min(108px, calc(100vw - 92px)) !important;
        max-width:108px !important;
    }

    html.is-phone .brand-logos.brand-logos--double,
    html.is-android-phone .brand-logos.brand-logos--double{
        width:min(198px, calc(100vw - 92px)) !important;
        max-width:198px !important;
        gap:8px !important;
    }

    html.is-phone .brand-logos--single .brand-logo,
    html.is-android-phone .brand-logos--single .brand-logo{
        height:30px !important;
        max-width:108px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-gebat,
    html.is-android-phone .brand-logos--single .brand-logo-gebat{
        max-width:86px !important;
    }
}

/* ===== CORRECTION 25/05 : centrage marque + logos agrandis intelligemment =====
   Objectif : centrer le bloc titre/sous-titre dans la barre laterale et
   agrandir legerement les logos sans ajouter de fond, sans toucher aux donnees. */
.brand{
    align-items:center !important;
}

.brand-text{
    width:100% !important;
    max-width:100% !important;
    text-align:center !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

.brand-title{
    text-align:center !important;
    font-size:25px !important;
    line-height:1.08 !important;
    letter-spacing:.15px !important;
}

.brand-subtitle{
    text-align:center !important;
    font-size:14px !important;
    line-height:1.18 !important;
}

.brand-logos.brand-logos--single{
    width:min(100%, 150px) !important;
    max-width:150px !important;
}

.brand-logos.brand-logos--double{
    width:min(100%, 216px) !important;
    max-width:216px !important;
    gap:12px !important;
}

.brand-logos--single .brand-logo-card{
    width:150px !important;
    max-width:150px !important;
}

.brand-logos--single .brand-logo{
    height:42px !important;
    max-width:150px !important;
}

.brand-logos--single .brand-logo-gebat{
    max-width:122px !important;
}

.brand-logos--single .brand-logo-nourivoire{
    max-width:150px !important;
}

.brand-logos--double .brand-logo{
    height:34px !important;
}

@media (max-width:640px), (max-device-width:640px){
    html.is-phone .brand,
    html.is-android-phone .brand{
        grid-template-columns:minmax(0, 1fr) 56px !important;
        grid-template-areas:
            "logos toggle"
            "title title" !important;
        justify-items:center !important;
        align-items:center !important;
        row-gap:9px !important;
        column-gap:8px !important;
    }

    html.is-phone .brand-text,
    html.is-android-phone .brand-text{
        grid-area:title !important;
        justify-self:center !important;
        align-self:center !important;
        width:100% !important;
        padding-left:0 !important;
        padding-right:0 !important;
        text-align:center !important;
    }

    html.is-phone .brand-title,
    html.is-android-phone .brand-title{
        text-align:center !important;
        font-size:27px !important;
        line-height:1.06 !important;
        margin:0 auto !important;
    }

    html.is-phone .brand-subtitle,
    html.is-android-phone .brand-subtitle{
        text-align:center !important;
        font-size:14px !important;
        line-height:1.16 !important;
        margin:4px auto 0 !important;
    }

    html.is-phone .brand-logos,
    html.is-android-phone .brand-logos{
        grid-area:logos !important;
        justify-self:center !important;
        align-self:center !important;
    }

    html.is-phone .brand-logos.brand-logos--single,
    html.is-android-phone .brand-logos.brand-logos--single{
        width:min(150px, calc(100vw - 112px)) !important;
        max-width:150px !important;
    }

    html.is-phone .brand-logos.brand-logos--double,
    html.is-android-phone .brand-logos.brand-logos--double{
        width:min(224px, calc(100vw - 112px)) !important;
        max-width:224px !important;
        gap:12px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-card,
    html.is-android-phone .brand-logos--single .brand-logo-card{
        width:min(150px, calc(100vw - 112px)) !important;
        max-width:150px !important;
    }

    html.is-phone .brand-logos--single .brand-logo,
    html.is-android-phone .brand-logos--single .brand-logo{
        height:42px !important;
        max-width:150px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-gebat,
    html.is-android-phone .brand-logos--single .brand-logo-gebat{
        max-width:122px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-nourivoire,
    html.is-android-phone .brand-logos--single .brand-logo-nourivoire{
        max-width:150px !important;
    }

    html.is-phone .brand-logos--double .brand-logo,
    html.is-android-phone .brand-logos--double .brand-logo{
        height:36px !important;
    }

    html.is-phone .mobile-menu-toggle,
    html.is-android-phone .mobile-menu-toggle{
        grid-area:toggle !important;
        justify-self:end !important;
        align-self:center !important;
    }

    html.is-phone .sidebar.is-mobile-menu-open .mobile-menu-panel,
    html.is-android-phone .sidebar.is-mobile-menu-open .mobile-menu-panel{
        max-height:calc(100vh - 160px) !important;
    }
}

@media (max-width:380px), (max-device-width:380px){
    html.is-phone .brand,
    html.is-android-phone .brand{
        grid-template-columns:minmax(0, 1fr) 50px !important;
    }

    html.is-phone .brand-title,
    html.is-android-phone .brand-title{
        font-size:25px !important;
    }

    html.is-phone .brand-logos.brand-logos--single,
    html.is-android-phone .brand-logos.brand-logos--single,
    html.is-phone .brand-logos--single .brand-logo-card,
    html.is-android-phone .brand-logos--single .brand-logo-card{
        width:min(136px, calc(100vw - 104px)) !important;
        max-width:136px !important;
    }

    html.is-phone .brand-logos--single .brand-logo,
    html.is-android-phone .brand-logos--single .brand-logo{
        height:38px !important;
    }

    html.is-phone .brand-logos--single .brand-logo-gebat,
    html.is-android-phone .brand-logos--single .brand-logo-gebat{
        max-width:112px !important;
    }
}

/* Administration - créneaux horaires de la procédure */
.notice-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:12px;
    align-items:start;
    color:#0f172a;
}
.modules-settings-procedure-hours textarea{
    min-height:54px;
    resize:vertical;
}
.modules-settings-procedure-hours input[type="time"],
.modules-settings-procedure-hours select{
    min-width:110px;
}

/* ===== PV ARRÊTÉ CAISSE : inventaire du numéraire compact et centré ===== */
.pv-caisse-table-wrap{
    width:min(100%, 1080px);
    margin:16px auto 0;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 4px 14px rgba(15, 23, 42, .04);
}

.pv-caisse-table-wrap .pv-caisse-table,
.pv-caisse-table-wrap table{
    width:100%;
    min-width:0 !important;
    table-layout:fixed;
    margin:0 auto;
}

.pv-caisse-table th,
.pv-caisse-table td{
    padding:8px 12px;
    vertical-align:middle;
}

.pv-caisse-table th:nth-child(1),
.pv-caisse-table td:nth-child(1){
    width:auto;
}

.pv-caisse-table th:nth-child(2),
.pv-caisse-table td:nth-child(2){
    width:150px;
    text-align:center;
}

.pv-caisse-table th:nth-child(3),
.pv-caisse-table td:nth-child(3){
    width:190px;
    text-align:left;
}

.pv-caisse-table input[type="number"]{
    max-width:118px;
    min-height:34px;
    padding:7px 10px;
    margin:0 auto;
    text-align:right;
}

.pv-caisse-table input[readonly]{
    max-width:166px;
    min-height:34px;
    padding:7px 12px;
    margin:0;
    text-align:left;
    font-weight:800;
}

.pv-section-row td{
    padding:9px 12px;
    font-size:15px;
}

.pv-caisse-table tfoot th{
    padding:10px 12px;
    vertical-align:middle;
}

.pv-caisse-table tfoot input[readonly]{
    background:#eef5fb;
}

@media (max-width:760px){
    .pv-caisse-table-wrap{
        width:100%;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .pv-caisse-table-wrap .pv-caisse-table,
    .pv-caisse-table-wrap table{
        min-width:620px !important;
    }

    .pv-caisse-table th:nth-child(2),
    .pv-caisse-table td:nth-child(2){
        width:130px;
    }

    .pv-caisse-table th:nth-child(3),
    .pv-caisse-table td:nth-child(3){
        width:165px;
    }
}

/* Reporting quotidien Direction - nouvelle procédure */
.procedure-direction-page-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
}

.procedure-reporting-filter{
    margin-bottom:1rem;
}

.procedure-reporting-filter .card-actions,
.procedure-reporting-actions{
    align-items:center;
    gap:.65rem;
    flex-wrap:wrap;
}

.procedure-reporting-actions .btn{
    min-width:132px;
    justify-content:center;
}

.procedure-reporting-summary{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:14px;
    margin:16px 0 18px;
}

.procedure-reporting-summary .kpi-card{
    padding:18px;
    border:1px solid rgba(31,78,121,.16);
    box-shadow:0 8px 24px rgba(15,23,42,.05);
    min-height:126px;
}

.procedure-reporting-summary .kpi-card span{
    display:block;
    color:#5b6b7c;
    font-weight:700;
    margin-bottom:8px;
}

.procedure-reporting-summary .kpi-card strong{
    display:block;
    font-size:1.9rem;
    line-height:1.05;
    color:#123b63;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
}

.procedure-reporting-summary .kpi-card em{
    display:block;
    margin-top:8px;
    color:#667085;
    font-style:normal;
    font-size:.9rem;
}

.procedure-reporting-summary .kpi-card-total{
    border-color:#1f4e79;
    background:linear-gradient(180deg,#f8fbff,#eef6ff);
}

.procedure-reporting-card .card-head,
.procedure-objectives-card .card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:14px;
}

.procedure-reporting-head h2,
.procedure-direction-head h2,
.procedure-system-head h2{
    margin:0 0 .25rem 0;
    line-height:1.2;
}

.procedure-reporting-badges,
.procedure-direction-badges{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.5rem;
    flex-wrap:wrap;
    flex:0 0 auto;
}

.badge-strong{
    background:#eaf3ff;
    color:#0b5394;
    border-color:#cfe3ff;
    font-weight:800;
}

.procedure-direction-card{
    padding:22px;
    border:1px solid #d7e2ee;
    box-shadow:0 12px 34px rgba(15,23,42,.07);
    overflow:hidden;
}

.procedure-direction-head{
    padding-bottom:14px;
    border-bottom:1px solid #e4ecf5;
}

.procedure-direction-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    margin-bottom:.4rem;
    padding:.25rem .6rem;
    border-radius:999px;
    background:#eef6ff;
    color:#0b5394;
    font-size:.78rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.03em;
}

.procedure-direction-intro{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin:18px 0 16px;
    padding:14px 16px;
    border-radius:16px;
    background:linear-gradient(90deg,#f8fbff,#fff);
    border:1px solid #dbe8f5;
}

.procedure-direction-intro strong{
    color:#0b2545;
    font-size:1.05rem;
}

.procedure-direction-intro span{
    color:#52657a;
    text-align:right;
}

.procedure-direction-grid,
.procedure-reporting-readonly-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.procedure-direction-panel,
.procedure-readonly-box{
    position:relative;
    border:1px solid #d7e2ee;
    border-radius:18px;
    background:#fff;
    padding:16px;
    min-height:150px;
    box-shadow:0 8px 22px rgba(15,23,42,.04);
}

.procedure-direction-panel::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:4px;
    border-radius:18px 0 0 18px;
    background:#1f4e79;
    opacity:.85;
}

.procedure-direction-panel-head{
    display:flex;
    align-items:center;
    gap:.75rem;
    margin-bottom:12px;
}

.procedure-direction-panel-head span{
    display:inline-grid;
    place-items:center;
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:12px;
    background:#eef6ff;
    color:#0b5394;
    font-weight:900;
    font-size:.85rem;
}

.procedure-direction-panel-head h3{
    margin:0;
    color:#0b2545;
    font-size:1.08rem;
}

.procedure-direction-lines{
    display:grid;
    gap:10px;
}

.procedure-direction-two-lines{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.procedure-direction-line{
    padding:12px;
    border-radius:14px;
    background:#f8fafc;
    border:1px solid #e1eaf3;
}

.procedure-direction-line span,
.procedure-readonly-box > strong{
    display:block;
    color:#52657a;
    font-weight:800;
    font-size:.88rem;
    margin-bottom:4px;
}

.procedure-direction-line strong,
.procedure-readonly-box > span{
    display:block;
    color:#0b2545;
    font-weight:900;
    font-size:1.2rem;
    line-height:1.18;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
}

.procedure-direction-line em{
    display:block;
    margin-top:4px;
    color:#1f4e79;
    font-style:normal;
    font-weight:800;
    overflow-wrap:anywhere;
}

.procedure-direction-panel p,
.procedure-readonly-box p{
    margin:.25rem 0 0;
    color:#34465b;
    line-height:1.55;
}

.procedure-direction-panel-cash,
.procedure-readonly-box-wide{
    grid-column:1 / -1;
}

.procedure-cash-breakdown,
.procedure-direction-cash-breakdown{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-bottom:10px;
}

.procedure-cash-breakdown div,
.procedure-direction-cash-breakdown div{
    border:1px solid #dbe8f5;
    background:#f8fbff;
    border-radius:14px;
    padding:12px;
    min-width:0;
}

.procedure-cash-breakdown small,
.procedure-direction-cash-breakdown small{
    display:block;
    color:#667085;
    font-weight:800;
    margin-bottom:4px;
}

.procedure-cash-breakdown strong,
.procedure-direction-cash-breakdown strong{
    display:block;
    color:#0b2545;
    font-size:1.05rem;
    line-height:1.2;
    overflow-wrap:anywhere;
    font-variant-numeric:tabular-nums;
}

.procedure-reporting-section-title{
    margin:22px 0 12px;
}

.procedure-reporting-section-title h3{
    margin:0 0 .35rem;
    color:#0b2545;
    font-size:1.25rem;
}

.procedure-reporting-section-title p{
    margin:0;
    color:#52657a;
}

.procedure-system-section{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    margin-top:8px;
}

.procedure-system-card{
    padding:18px;
    border:1px solid #d7e2ee;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}

.procedure-system-card-warning{
    border-left:5px solid #f59e0b;
}

.procedure-system-card-alert{
    border-left:5px solid #dc2626;
}

.procedure-system-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:12px;
}

.procedure-system-head p{
    margin:0;
    color:#52657a;
}

.procedure-count-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:.35rem .7rem;
    border-radius:999px;
    background:#eef2f7;
    color:#0b2545;
    font-weight:800;
    white-space:nowrap;
}

.procedure-empty-state{
    padding:18px;
    border:1px dashed #cbd5e1;
    border-radius:14px;
    background:#f8fafc;
    color:#52657a;
    font-weight:700;
    text-align:center;
}

.procedure-system-table-wrap{
    overflow-x:auto;
    border:1px solid #dbe8f5;
    border-radius:14px;
    background:#fff;
}

.procedure-system-table{
    width:100%;
    min-width:920px;
    border-collapse:separate;
    border-spacing:0;
}

.procedure-system-table th{
    position:sticky;
    top:0;
    z-index:1;
    padding:10px 12px;
    background:#dce6f1;
    color:#0b2545;
    text-align:left;
    font-size:.86rem;
    border-bottom:1px solid #c8d7e6;
    white-space:nowrap;
}

.procedure-system-table td{
    padding:10px 12px;
    border-bottom:1px solid #edf2f7;
    vertical-align:top;
    color:#1f2937;
    line-height:1.38;
}

.procedure-system-table tbody tr:nth-child(even) td{
    background:#fbfdff;
}

.procedure-system-table tbody tr:hover td{
    background:#f3f8ff;
}

.procedure-system-table .num{
    text-align:right;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
    font-weight:800;
}

.procedure-reference-cell strong,
.procedure-reference-link{
    color:#0b5394;
    font-weight:900;
    text-decoration:none;
}

.procedure-reference-link:hover{
    text-decoration:underline;
}

.mini-status{
    display:inline-flex;
    max-width:240px;
    padding:.28rem .55rem;
    border-radius:999px;
    background:#eef2f7;
    color:#0b2545;
    font-size:.82rem;
    font-weight:800;
    line-height:1.2;
}

.procedure-summary-card{
    margin-top:16px;
    padding:20px;
}

.procedure-summary-list{
    margin:0;
    padding-left:1.35rem;
    display:grid;
    gap:10px;
}

.procedure-summary-list li{
    padding:10px 12px;
    border-radius:12px;
    background:#f8fafc;
    border:1px solid #e1eaf3;
    color:#1f2937;
    line-height:1.45;
}

.procedure-reporting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.procedure-reporting-line{border:1px solid #d7e2ee;border-radius:14px;background:#fff;padding:14px;min-height:96px;}
.procedure-reporting-line strong{display:block;color:#0b2545;font-size:1rem;margin-bottom:5px;}
.procedure-reporting-line span{display:block;color:#52657a;margin-bottom:10px;font-weight:600;}
.procedure-reporting-line textarea{width:100%;min-height:54px;border:1px solid #cdd9e5;border-radius:10px;padding:9px 10px;resize:vertical;font-family:inherit;}
.procedure-reporting-line-wide{grid-column:1/-1;}
.procedure-reporting-line-important{border-color:#f5c26b;background:#fffaf0;}
.procedure-objectives-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;}
.procedure-objective-item{border:1px solid #d7e2ee;border-radius:14px;background:#f8fafc;padding:12px 14px;font-weight:700;color:#0b2545;}

@media (max-width:980px){
    .procedure-direction-grid,
    .procedure-reporting-readonly-grid{
        grid-template-columns:1fr;
    }
    .procedure-direction-two-lines,
    .procedure-cash-breakdown,
    .procedure-direction-cash-breakdown{
        grid-template-columns:1fr;
    }
}

@media (max-width:760px){
    .procedure-direction-page-header,
    .procedure-reporting-card .card-head,
    .procedure-objectives-card .card-head,
    .procedure-direction-head,
    .procedure-system-head,
    .procedure-direction-intro{
        align-items:flex-start;
        flex-direction:column;
    }
    .procedure-direction-intro span{
        text-align:left;
    }
    .procedure-reporting-summary{
        grid-template-columns:1fr;
    }
    .procedure-reporting-summary .kpi-card{
        min-height:auto;
    }
    .procedure-reporting-summary .kpi-card strong{
        font-size:1.45rem;
    }
    .procedure-reporting-actions .btn{
        width:100%;
        min-width:0;
    }
    .procedure-direction-card,
    .procedure-system-card,
    .procedure-summary-card{
        padding:14px;
    }
    .procedure-reporting-grid{
        grid-template-columns:1fr;
    }
}

@media print{
    .procedure-direction-card,
    .procedure-system-card,
    .procedure-summary-card{
        box-shadow:none !important;
        break-inside:avoid;
    }
    .procedure-system-table-wrap{
        overflow:visible;
    }
    .procedure-system-table{
        min-width:0;
    }
    .procedure-system-table th{
        position:static;
    }
}

/* Archivage automatique des dossiers conformes */
.section-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.section-title-row h2 {
    margin: 0 0 .25rem 0;
}
.dashboard-grid-compact {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    margin-bottom: 1rem;
}
.soft-link {
    color: inherit;
    text-decoration: none;
    font-weight: 700;
}
.soft-link:hover {
    text-decoration: underline;
}
.text-right {
    text-align: right;
}
@media (max-width: 720px) {
    .section-title-row {
        flex-direction: column;
    }
}

/* ===== NAVIGATION HORIZONTALE EN HAUT DES LISTES/TABLEAUX =====
   Ajout global : lorsqu'un tableau dépasse en largeur, une barre de navigation
   synchronisée est automatiquement affichée au début du tableau/liste. */
.top-x-scroll{
    display:none;
    width:100%;
    max-width:100%;
    height:18px;
    overflow-x:auto;
    overflow-y:hidden;
    margin:8px 0 6px;
    padding:0;
    border:1px solid #d7e3ef;
    border-radius:999px;
    background:#f8fafc;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
}
.top-x-scroll.is-visible{
    display:block;
}
.top-x-scroll-inner{
    height:1px;
    min-height:1px;
}
.top-x-scroll::-webkit-scrollbar{
    height:12px;
}
.top-x-scroll::-webkit-scrollbar-track{
    background:#eef3f8;
    border-radius:999px;
}
.top-x-scroll::-webkit-scrollbar-thumb{
    background:#8b949e;
    border-radius:999px;
    border:2px solid #eef3f8;
}
.top-x-scroll::-webkit-scrollbar-thumb:hover{
    background:#6b7280;
}
.js-top-scroll-source,
.auto-x-scroll-list{
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.card > .top-x-scroll,
.panel > .top-x-scroll,
.procedure-direction-table-block > .top-x-scroll{
    margin-top:10px;
}
@media print{
    .top-x-scroll{
        display:none !important;
    }
}


/* ===== VALEURS NUMERIQUES : anti-déformation globale =====
   Les montants et chiffres formatés avec des espaces de milliers ne doivent
   jamais se couper sur plusieurs lignes dans les tableaux ou cartes. */
td.num,
th.num,
td.is-num,
th.is-num,
td.amount,
th.amount,
.amount,
.amount-cell,
.fcfa-nowrap,
.money-cell,
.currency-cell,
.num-cell,
.cheque-money,
.cheque-money-col,
.solde-money,
.line-total-field,
.bc-finance-value{
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    font-variant-numeric:tabular-nums;
}

td.num,
th.num,
td.is-num,
th.is-num,
td.amount,
th.amount,
.amount-cell,
.money-cell,
.currency-cell,
.num-cell,
.cheque-money-col,
.solde-money{
    text-align:right;
}

/* ===== MODULE TRÉSORERIE : RANGEMENT ET STRUCTURE ===== */
.dashboard-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:14px;
    margin-bottom:16px;
    align-items:stretch;
}

.kpi-card{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:8px;
    min-height:104px;
}

.kpi-card span,
.kpi-card .kpi-label{
    display:block;
    color:var(--muted);
    font-size:14px;
    line-height:1.25;
}

.kpi-card strong{
    display:block;
    font-size:24px;
    line-height:1.15;
    color:#0f172a;
    word-break:break-word;
}

.kpi-card small{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:4px 9px;
    border-radius:999px;
    background:#eef5fb;
    color:#235d90;
    font-weight:700;
    line-height:1.1;
}

.card-header-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}

.card-header-row h2{
    margin:0 0 6px;
}

.card-header-row p{
    margin:0;
}

.tresorerie-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 16px;
    padding:0;
}

.tresorerie-page{
    width:100%;
    max-width:100%;
}

.tresorerie-title-block h1{
    letter-spacing:.3px;
}

.tresorerie-filter-card{
    padding:16px 18px;
}

.tresorerie-filter-grid{
    grid-template-columns:minmax(220px, 360px) minmax(220px, 360px) minmax(220px, 1fr);
    align-items:end;
}

.tresorerie-filter-actions{
    grid-column:auto;
    margin-top:0;
    align-items:flex-end;
}

.tresorerie-kpi-grid{
    grid-template-columns:repeat(5, minmax(170px, 1fr));
}

.tresorerie-kpi-card{
    margin-bottom:0;
    padding:16px 18px;
    border-left:5px solid #d7e6f4;
}

.tresorerie-kpi-positive{
    border-left-color:#12b76a;
}

.tresorerie-kpi-negative{
    border-left-color:#f04438;
}

.tresorerie-kpi-net{
    border-left-color:#235d90;
}

.tresorerie-card{
    overflow:hidden;
}

.tresorerie-card-actions{
    margin-top:0;
    justify-content:flex-end;
}

.tresorerie-action-grid{
    grid-template-columns:repeat(2, minmax(280px, 1fr));
}

.tresorerie-sync-grid{
    grid-template-columns:repeat(2, minmax(160px, 1fr));
}

.tresorerie-sync-grid .filter-actions{
    grid-column:span 2;
}

.tresorerie-table-wrap{
    width:100%;
    overflow:auto;
    border:1px solid var(--border);
    border-radius:14px;
}

.tresorerie-table{
    margin:0;
    min-width:1040px;
}

.tresorerie-table thead th{
    white-space:nowrap;
}

.tresorerie-table td,
.tresorerie-table th{
    vertical-align:top;
}

.tresorerie-money-in,
.tresorerie-money-out{
    white-space:nowrap;
}

@media (max-width:1500px){
    .tresorerie-kpi-grid{
        grid-template-columns:repeat(3, minmax(210px, 1fr));
    }
}

@media (max-width:1100px){
    .tresorerie-filter-grid,
    .tresorerie-sync-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .tresorerie-filter-actions,
    .tresorerie-sync-grid .filter-actions{
        grid-column:span 2;
    }

    .tresorerie-kpi-grid,
    .tresorerie-action-grid{
        grid-template-columns:repeat(2, minmax(220px, 1fr));
    }
}

@media (max-width:760px){
    .card-header-row{
        flex-direction:column;
    }

    .tresorerie-card-actions{
        justify-content:flex-start;
    }

    .tresorerie-filter-grid,
    .tresorerie-sync-grid,
    .tresorerie-kpi-grid,
    .tresorerie-action-grid{
        grid-template-columns:1fr;
    }

    .tresorerie-filter-actions,
    .tresorerie-sync-grid .filter-actions{
        grid-column:span 1;
    }

    .tresorerie-table{
        min-width:900px;
    }
}

/* ===== MODULE TRÉSORERIE : CARTES DE SYNTHÈSE PROPRES V242 ===== */
.tresorerie-summary-panel{
    padding:18px 18px 20px;
    margin-bottom:16px;
}

.tresorerie-summary-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}

.tresorerie-summary-head h2{
    margin:0 0 6px;
    font-size:22px;
    letter-spacing:.2px;
}

.tresorerie-summary-head p{
    margin:0;
}

.tresorerie-summary-period{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-height:34px;
    padding:7px 12px;
    border:1px solid #d7e6f4;
    border-radius:999px;
    background:#f4f8fc;
    color:#235d90;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
}

.tresorerie-summary-cards{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(170px, 1fr)) !important;
    gap:14px !important;
    align-items:stretch !important;
    width:100% !important;
}

.tresorerie-summary-card{
    display:grid !important;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
    gap:12px;
    min-height:112px;
    padding:16px;
    border:1px solid #dce7f2;
    border-radius:18px;
    background:linear-gradient(180deg, #fff 0%, #f8fbff 100%);
    box-shadow:0 8px 22px rgba(15, 23, 42, .05);
    overflow:hidden;
}

.tresorerie-summary-card .tresorerie-summary-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:14px;
    background:#eef5fb;
    color:#235d90;
    font-size:18px;
    font-weight:900;
    line-height:1;
}

.tresorerie-summary-body{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:5px;
}

.tresorerie-summary-label{
    color:var(--muted);
    font-size:13px;
    font-weight:700;
    line-height:1.25;
}

.tresorerie-summary-card strong{
    display:block;
    color:#0f172a;
    font-size:21px;
    font-weight:900;
    line-height:1.16;
    overflow-wrap:anywhere;
}

.tresorerie-summary-card em{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:4px 9px;
    border-radius:999px;
    background:#eef5fb;
    color:#235d90;
    font-size:12px;
    font-style:normal;
    font-weight:800;
    line-height:1.1;
}

.tresorerie-summary-in{
    border-left:5px solid #12b76a;
}

.tresorerie-summary-in .tresorerie-summary-icon,
.tresorerie-summary-in em{
    background:#ecfdf3;
    color:#027a48;
}

.tresorerie-summary-out{
    border-left:5px solid #f04438;
}

.tresorerie-summary-out .tresorerie-summary-icon,
.tresorerie-summary-out em{
    background:#fff1f3;
    color:#b42318;
}

.tresorerie-summary-net{
    border-left:5px solid #235d90;
}

.tresorerie-summary-net.is-negative{
    border-left-color:#f04438;
}

.tresorerie-summary-net.is-negative .tresorerie-summary-icon,
.tresorerie-summary-net.is-negative em{
    background:#fff1f3;
    color:#b42318;
}

.tresorerie-summary-net.is-positive .tresorerie-summary-icon,
.tresorerie-summary-net.is-positive em{
    background:#ecfdf3;
    color:#027a48;
}

@media (max-width:1500px){
    .tresorerie-summary-cards{
        grid-template-columns:repeat(3, minmax(210px, 1fr)) !important;
    }
}

@media (max-width:980px){
    .tresorerie-summary-head{
        flex-direction:column;
    }
    .tresorerie-summary-cards{
        grid-template-columns:repeat(2, minmax(220px, 1fr)) !important;
    }
}

@media (max-width:640px){
    .tresorerie-summary-cards{
        grid-template-columns:1fr !important;
    }
}
