.brand { display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:.75rem 0 .25rem; }
.brand-img { display:block; width:150px; height:auto; }
/* logo noir sur fond transparent : passé en blanc sur les fonds sombres */
.navbar-vertical .brand-img, [data-bs-theme="dark"] .login-brand .brand-img { filter: invert(1); }
.brand-sub { font-size:.65rem; font-weight:500; letter-spacing:.35em; text-transform:uppercase; opacity:.6; }
.login-brand .brand-img { width:220px; margin:0 auto; }
.login-brand .brand-sub { margin-top:.75rem; }
@media (max-width: 991.98px) { .brand { flex-direction:row; gap:.75rem; padding:0; } .brand-img { width:56px; } }
.table-sort-link { color:inherit; text-decoration:none; white-space:nowrap; }
tr[data-href] { cursor:pointer; }
.table td.num, .table th.num { text-align:right; white-space:nowrap; font-variant-numeric: tabular-nums; }
.raw-table td { white-space:nowrap; max-width:28rem; overflow:hidden; text-overflow:ellipsis; }
.memo { white-space:pre-wrap; font-size:.85rem; }
.kpi .h1 { font-variant-numeric: tabular-nums; }
.chart-box { position:relative; height:300px; }
.filters .form-select, .filters .form-control { min-width: 9rem; }
@media print { .navbar-vertical, header.navbar { display:none !important; } .page-wrapper { margin:0 !important; } }
