#app > header{background:var(--marine);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 6px 20px rgba(6,48,79,.16)}
.nav{max-width:1500px;margin:0 auto;display:flex;align-items:center;gap:20px;padding:0 32px;height:80px}
.logo{flex-shrink:0;display:flex;align-items:center;gap:12px}
.logo img{height:46px;width:auto;display:block}
.logo span{font:700 24px Sora,Inter,sans-serif;letter-spacing:-.02em;color:#fff}

.tabs{position:relative;display:flex;align-items:center;gap:2px;margin:0 auto;align-self:stretch}
.tab{border:none;background:none;cursor:pointer;font-family:inherit;font-size:15.5px;font-weight:500;color:var(--pale);padding:8px 14px;border-radius:9px;
  white-space:nowrap;display:inline-flex;align-items:center;gap:7px;transition:color .2s,background-color .2s}
.tab:hover{color:#fff;background:rgba(255,255,255,.08)}
.tab.active{color:#fff;font-weight:600}
.tab-trait{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--azur);border-radius:3px 3px 0 0;opacity:0;pointer-events:none;
  transition:transform .35s var(--ease),width .35s var(--ease),opacity .2s}
.tab .cnt{font-size:12px;font-weight:700;background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:1px 7px;min-width:20px;text-align:center;line-height:1.5;transition:background-color .2s}
.tab.active .cnt{background:var(--azur)}
.tab .cnt.pulse{animation:pastille .4s var(--ease)}
@keyframes pastille{40%{transform:scale(1.3)}}
.tab-gear{width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);display:grid;place-items:center;cursor:pointer;
  color:var(--pale);flex-shrink:0;margin-right:10px;padding:0;transition:background-color .2s,color .2s,border-color .2s}
.tab-gear:hover{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.4)}
.tab-gear svg{width:19px;height:19px}

.who{display:flex;align-items:center;gap:10px;flex-shrink:0}
.who .nm{text-align:right;line-height:1.25}
.who .nm b{font-size:14.9px;font-weight:700;display:block;color:#fff}
.role-tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 9px;border-radius:999px;background:rgba(12,156,240,.24);color:#a9dcfb}
.role-tag.pr{background:rgba(196,140,255,.2);color:#e3ccff}
.msg-env,.who .out{position:relative;width:44px;height:44px;border-radius:11px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);
  color:var(--pale);cursor:pointer;display:grid;place-items:center;font-size:16px;transition:background-color .2s,color .2s,border-color .2s}
.msg-env:hover,.who .out:hover{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.4)}
.msg-env .n{position:absolute;top:-6px;right:-6px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;border-radius:999px;min-width:19px;height:19px;
  padding:0 4px;display:grid;place-items:center;box-shadow:0 0 0 2px var(--marine);animation:pastille .4s var(--ease)}
#app :focus-visible{outline-color:var(--azur-clair)}
#app main :focus-visible{outline-color:var(--azur)}

#app main{max-width:1500px;margin:0 auto;padding:32px}
.page{outline:none}
#pageBody{transition:opacity .09s ease,transform .09s ease}
#pageBody.sortie{opacity:0;transform:translateY(-4px)}
#pageBody.entree .cascade{animation:monte .45s var(--ease) both;animation-delay:calc(var(--i,0) * 50ms)}
#pageBody.entree tbody tr{animation:fondu .35s ease both;animation-delay:calc(180ms + var(--r,0) * 30ms)}
tr.part{opacity:0;transition:opacity .16s ease}
.case.part{opacity:0;transform:scale(.97);transition:opacity .16s ease,transform .16s ease}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px;flex-wrap:wrap}
.page-head h1{font-size:28px;font-weight:700;color:var(--encre)}
.page-head p{color:var(--muted);margin-top:4px;font-size:15.5px}

#app table:not(.fact){width:100%;border-collapse:collapse}
#app table:not(.fact) thead th{text-align:left;font-size:14px;font-weight:700;color:var(--encre);background:var(--ciel);padding:12px 16px;white-space:nowrap}
#app table:not(.fact) thead th:first-child{border-radius:10px 0 0 10px}
#app table:not(.fact) thead th:last-child{border-radius:0 10px 10px 0}
#app table:not(.fact) tbody td{padding:14px 16px;border-top:1px solid var(--trait);font-size:15px;vertical-align:middle}
#app table:not(.fact) tbody tr:first-child td{border-top:0}
#app table:not(.fact) tbody tr{transition:background-color .15s}
#app table:not(.fact) tbody tr:hover{background:var(--email)}
.empty-cell td{text-align:center;color:var(--faint);padding:44px!important}
.cell-main{display:flex;align-items:center;gap:13px}
.amount{font-weight:700;font-variant-numeric:tabular-nums}
.acts{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.late{color:var(--danger);font-weight:600}
.soon{color:var(--attente-t);font-weight:600}

.toolbar{display:flex;align-items:center;gap:11px;margin-bottom:18px;flex-wrap:wrap}
.search{flex:1;min-width:220px;position:relative}
.search input{width:100%;font-family:inherit;font-size:15.5px;padding:11px 13px 11px 42px;min-height:44px;border:1.5px solid var(--trait);border-radius:10px;background:var(--surface);color:var(--text);
  transition:border-color .2s,box-shadow .2s}
.search input:focus{outline:none;border-color:var(--azur);box-shadow:0 0 0 3px rgba(12,156,240,.3)}
.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--faint)}

.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:26px}
.mini-stats.c3{grid-template-columns:repeat(3,1fr)}
.mini{padding:22px}
.mini .val{font:800 28.6px Sora,Inter,sans-serif;letter-spacing:-.02em}
.mini .lbl{color:var(--muted);font-size:14.9px;margin-top:4px}
.mini .val.g{color:var(--fini-t)}.mini .val.a{color:var(--attente-t)}
.mini .val.r{color:var(--danger)}.mini .val.b{color:var(--azur-fonce)}

@media (max-width:1180px){
  .nav{flex-wrap:wrap;height:auto;padding:12px 24px 0;row-gap:0}
  .who{margin-left:auto}
  .tabs{order:3;width:100%;margin:10px 0 0;padding-bottom:8px;overflow-x:auto;justify-content:flex-start;align-self:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
}
@media (max-width:1100px){
  .mini-stats,.mini-stats.c3{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .nav{padding:12px 16px 0}
  .logo span{font-size:21px}
  .logo img{height:40px}
  .who .nm{display:none}
  #app main{padding:20px 14px}
  .page-head h1{font-size:24px}
  .panel{padding:18px;overflow-x:auto}
}
.demandes{margin-bottom:22px}
