/* PORTAIL TIR — Utilisateurs en ligne — V67K */
.sidebar-menu button[data-view="presence"]::before{content:"🟢"}
.presence-topbar{display:inline-flex;align-items:center;justify-content:center;min-width:118px;width:118px;box-sizing:border-box;align-self:flex-end;border:1px solid rgba(94,234,212,.42);background:rgba(16,185,129,.16);color:#d8fff2;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}
.presence-topbar:hover{background:rgba(16,185,129,.28)}
.presence-topbar.offline{border-color:rgba(248,113,113,.45);background:rgba(220,38,38,.14);color:#ffd5d5}
#view-presence{width:100%;max-width:none;min-width:0;box-sizing:border-box;margin:0;align-self:stretch;padding:16px 18px 34px}
#view-presence .presence-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
#view-presence .presence-page-head h2{margin:0 0 5px;font-size:24px}
#view-presence .presence-page-head p{margin:0;color:#b7c7e8}
#view-presence .presence-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
#view-presence .presence-live-state{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(52,211,153,.32);background:rgba(16,185,129,.13);color:#a7f3d0;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}
#view-presence .presence-live-state.error{border-color:rgba(248,113,113,.38);background:rgba(220,38,38,.15);color:#fecaca}
#view-presence .presence-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
#view-presence .presence-kpi{border:1px solid rgba(128,158,230,.22);background:linear-gradient(145deg,rgba(22,47,103,.94),rgba(10,24,58,.98));border-radius:15px;padding:15px 16px;min-height:76px;display:flex;flex-direction:column;justify-content:center}
#view-presence .presence-kpi strong{font-size:28px;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
#view-presence .presence-kpi span{margin-top:7px;color:#b8c8e8;font-size:12px;font-weight:700}
#view-presence .presence-card{border:1px solid rgba(128,158,230,.22);background:rgba(7,18,46,.94);border-radius:16px;padding:14px;margin-bottom:14px;box-shadow:0 10px 28px rgba(0,0,0,.16)}
#view-presence .presence-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
#view-presence .presence-card-head h3{margin:0 0 4px;font-size:17px}
#view-presence .presence-card-head p{margin:0;color:#9fb0d1;font-size:12px}
#view-presence .presence-legend{display:flex;gap:12px;flex-wrap:wrap;color:#b7c6e3;font-size:11px}
#view-presence .presence-legend span{display:inline-flex;align-items:center;gap:5px}
#view-presence .presence-legend i{width:8px;height:8px;border-radius:50%;display:inline-block;background:#34d399}
#view-presence .presence-legend i.idle{background:#fbbf24}
#view-presence .presence-legend i.hidden{background:#94a3b8}
#view-presence .presence-table-wrap{overflow:auto;border-radius:12px;border:1px solid rgba(132,158,218,.18)}
#view-presence table.presence-grid{width:100%;border-collapse:collapse;table-layout:fixed}
#view-presence table.presence-online-grid{min-width:1180px}
#view-presence table.presence-online-grid col.col-user{width:19%}
#view-presence table.presence-online-grid col.col-role{width:8%}
#view-presence table.presence-online-grid col.col-module{width:18%}
#view-presence table.presence-online-grid col.col-state{width:10%}
#view-presence table.presence-online-grid col.col-device{width:17%}
#view-presence table.presence-online-grid col.col-connected{width:13%}
#view-presence table.presence-online-grid col.col-activity{width:15%}
#view-presence table.presence-recent-grid{min-width:920px}
#view-presence table.presence-recent-grid col.col-user{width:28%}
#view-presence table.presence-recent-grid col.col-role{width:10%}
#view-presence table.presence-recent-grid col.col-module{width:22%}
#view-presence table.presence-recent-grid col.col-device{width:23%}
#view-presence table.presence-recent-grid col.col-ended{width:17%}
#view-presence th{background:#173774;color:#edf3ff;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:10px 11px;white-space:nowrap;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}
#view-presence td{padding:11px;border-top:1px solid rgba(130,157,218,.16);vertical-align:middle;color:#e4ecff;font-size:13px;box-sizing:border-box;overflow:hidden}
#view-presence tbody tr:nth-child(even){background:rgba(32,67,139,.18)}
#view-presence tbody tr:hover{background:rgba(58,102,198,.22)}
#view-presence .presence-user{display:flex;align-items:center;gap:9px;min-width:0;width:100%}
#view-presence .presence-avatar{width:35px;height:35px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(145deg,#2e64d3,#6b45d8);font-weight:900;color:#fff;flex:0 0 35px}
#view-presence .presence-user-text{min-width:0;flex:1}#view-presence .presence-user b{display:block}.presence-user small{display:block;color:#9fb2d7;margin-top:2px}#view-presence .presence-user-name{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
#view-presence .presence-role{display:inline-flex;padding:4px 8px;border-radius:999px;border:1px solid rgba(129,153,220,.28);background:rgba(55,86,158,.23);font-size:11px;font-weight:900}
#view-presence .presence-module{font-weight:800;min-width:0;overflow-wrap:anywhere}.presence-module small{display:block;margin-top:3px;color:#97abd2;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#view-presence .presence-status{display:inline-flex;align-items:center;gap:6px;font-weight:900;font-size:12px}
#view-presence .presence-status::before{content:"";width:9px;height:9px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.12)}
#view-presence .presence-status.idle::before{background:#fbbf24;box-shadow:0 0 0 3px rgba(251,191,36,.12)}
#view-presence .presence-status.hidden::before{background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.12)}
#view-presence .presence-time{font-variant-numeric:tabular-nums;white-space:nowrap}.presence-time small{display:block;color:#9fb0d1;margin-top:3px}
#view-presence .presence-device{min-width:0;overflow-wrap:anywhere}.presence-device small{display:block;color:#8fa3c9;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#view-presence .presence-empty{padding:24px;text-align:center;color:#aebddb;border:1px dashed rgba(132,158,218,.22);border-radius:12px;background:rgba(20,44,94,.16)}
#view-presence .presence-recent-card{opacity:.94}
@media(max-width:1100px){#view-presence .presence-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#view-presence{padding:12px}#view-presence .presence-page-head,#view-presence .presence-card-head{flex-direction:column}#view-presence .presence-head-actions{width:100%;justify-content:flex-start}#view-presence .presence-summary{grid-template-columns:1fr 1fr}.presence-topbar{min-width:auto;width:auto}}


/* V67K — alignement strict des en-têtes et du contenu */
#view-presence .presence-table-wrap table.presence-grid{
  display:table !important;
  width:100% !important;
  margin:0 !important;
  border-collapse:collapse !important;
  table-layout:fixed !important;
}
#view-presence .presence-table-wrap table.presence-grid colgroup{display:table-column-group !important}
#view-presence .presence-table-wrap table.presence-grid col{display:table-column !important}
#view-presence .presence-table-wrap table.presence-grid thead{display:table-header-group !important}
#view-presence .presence-table-wrap table.presence-grid tbody{display:table-row-group !important}
#view-presence .presence-table-wrap table.presence-grid tr{display:table-row !important}
#view-presence .presence-table-wrap table.presence-grid th,
#view-presence .presence-table-wrap table.presence-grid td{
  display:table-cell !important;
  padding:10px 12px !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
}

/* Connexions actives : titres et données suivent exactement le même axe */
#view-presence table.presence-online-grid th:nth-child(1),
#view-presence table.presence-online-grid td:nth-child(1),
#view-presence table.presence-online-grid th:nth-child(3),
#view-presence table.presence-online-grid td:nth-child(3),
#view-presence table.presence-online-grid th:nth-child(5),
#view-presence table.presence-online-grid td:nth-child(5){text-align:left !important}
#view-presence table.presence-online-grid th:nth-child(2),
#view-presence table.presence-online-grid td:nth-child(2),
#view-presence table.presence-online-grid th:nth-child(4),
#view-presence table.presence-online-grid td:nth-child(4),
#view-presence table.presence-online-grid th:nth-child(6),
#view-presence table.presence-online-grid td:nth-child(6),
#view-presence table.presence-online-grid th:nth-child(7),
#view-presence table.presence-online-grid td:nth-child(7){text-align:center !important}

/* Connexions récentes */
#view-presence table.presence-recent-grid th:nth-child(1),
#view-presence table.presence-recent-grid td:nth-child(1),
#view-presence table.presence-recent-grid th:nth-child(3),
#view-presence table.presence-recent-grid td:nth-child(3),
#view-presence table.presence-recent-grid th:nth-child(4),
#view-presence table.presence-recent-grid td:nth-child(4){text-align:left !important}
#view-presence table.presence-recent-grid th:nth-child(2),
#view-presence table.presence-recent-grid td:nth-child(2),
#view-presence table.presence-recent-grid th:nth-child(5),
#view-presence table.presence-recent-grid td:nth-child(5){text-align:center !important}

/* Le contenu interne ne modifie plus la géométrie de la cellule */
#view-presence .presence-user,
#view-presence .presence-module,
#view-presence .presence-device,
#view-presence .presence-time{max-width:100%;box-sizing:border-box}
#view-presence td:nth-child(2) .presence-role,
#view-presence td:nth-child(4) .presence-status{justify-content:center}
