/* Priorité 13: états/feedbacks allégés; priorité par ordre de chargement. */
/* Priorité 9 — états vides, erreurs, chargements et confort de lecture.
   Cette couche doit être chargée en dernier. Elle ne modifie pas les données. */
:root{
  /* Tokens déplacés dans assets/ui-tokens.css. */
}

body, .admin-ui, .ux-shell-bg { color: var(--ui-text); }

.ui-empty-state,
.admin-empty-state,
.portal-empty-state,
.comm-empty-state,
.notes-empty-state{
  position: relative;
  display:flex;
  gap:1rem;
  align-items:flex-start;
  padding:1.15rem 1.25rem;
  border:1px dashed var(--ui-border-strong);
  border-radius:1.25rem;
  background:linear-gradient(135deg, rgba(14,165,233,.10), rgba(15,23,42,.62));
  color:var(--ui-muted);
  box-shadow:0 14px 36px rgba(2,6,23,.18) inset;
}
.ui-empty-state::before,
.admin-empty-state::before,
.portal-empty-state::before,
.comm-empty-state::before,
.notes-empty-state::before{
  content:"";
  width:2.45rem;
  height:2.45rem;
  flex:0 0 auto;
  border-radius:1rem;
  background:rgba(56,189,248,.14);
  border:1px solid rgba(125,211,252,.25);
  box-shadow:0 10px 24px rgba(14,165,233,.10);
}
.ui-empty-state strong,
.admin-empty-state strong,
.portal-empty-state strong,
.comm-empty-state strong,
.notes-empty-state strong{color:#fff;display:block;margin-bottom:.2rem;}
.ui-empty-state p,
.admin-empty-state p,
.portal-empty-state p,
.comm-empty-state p,
.notes-empty-state p{margin:0;line-height:1.55;max-width:72ch;}

.ui-error-state{
  border:1px solid rgba(248,113,113,.35);
  background:linear-gradient(135deg, rgba(248,113,113,.12), rgba(15,23,42,.72));
  color:#fecaca;
  border-radius:1.25rem;
  padding:1.1rem 1.2rem;
}
.ui-warning-state{
  border:1px solid rgba(251,191,36,.35);
  background:linear-gradient(135deg, rgba(251,191,36,.12), rgba(15,23,42,.72));
  color:#fde68a;
  border-radius:1.25rem;
  padding:1.1rem 1.2rem;
}
.ui-success-state{
  border:1px solid rgba(52,211,153,.35);
  background:linear-gradient(135deg, rgba(52,211,153,.12), rgba(15,23,42,.72));
  color:#bbf7d0;
  border-radius:1.25rem;
  padding:1.1rem 1.2rem;
}

.ui-action-row{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin-top:.85rem;}
.ui-mini-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  min-height:42px;padding:.62rem .9rem;border-radius:.85rem;
  border:1px solid rgba(125,211,252,.28);
  background:rgba(14,165,233,.12);color:#bae6fd;font-weight:800;text-decoration:none;
}
.ui-mini-btn:hover{background:rgba(14,165,233,.20);transform:translateY(-1px);}

.portal-loading,
.ui-loading{
  display:flex;align-items:center;gap:.7rem;justify-content:center;
  min-height:150px;border:1px solid rgba(125,211,252,.22);border-radius:1.4rem;
  background:linear-gradient(135deg, rgba(14,165,233,.10), rgba(15,23,42,.64));
  color:#dbeafe;font-weight:900;
}
.ui-loading::before{
  content:"";width:1rem;height:1rem;border-radius:999px;border:3px solid rgba(255,255,255,.25);border-top-color:#38bdf8;animation:uiSpin .8s linear infinite;
}
@keyframes uiSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.ui-loading::before{animation:none}.ui-mini-btn:hover{transform:none}}

.ui-state-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:30px;border-radius:999px;padding:.25rem .7rem;font-size:.78rem;font-weight:900;border:1px solid rgba(148,163,184,.22);background:rgba(15,23,42,.68);color:#cbd5e1;}
.ui-state-chip.ok{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.30);color:#bbf7d0;}
.ui-state-chip.warn{background:rgba(251,191,36,.14);border-color:rgba(251,191,36,.30);color:#fde68a;}
.ui-state-chip.bad{background:rgba(248,113,113,.14);border-color:rgba(248,113,113,.30);color:#fecaca;}

.ui-readable,
.portal-disclosure-body,
.admin-section,
.admin-zone-panel,
.comm-shell,
.notes-shell{line-height:1.55;}
.ui-readable p,
.portal-disclosure-body p{max-width:75ch;}

/* Le site ne doit jamais cacher un contenu long derrière un layout verrouillé. */
html, body{min-height:100%;}
body.admin-ui{overflow-y:auto;}
.admin-section{scroll-margin-top:1rem;}

/* Les tableaux hérités restent utilisables quand ils débordent. */
.table-responsive,
.notes-table-wrap,
.admin-table-wrap{max-width:100%;overflow:auto;border-radius:1rem;}

/* Petits messages de guidage dans les wizards et formulaires. */
.admin-wizard-panel .wizard-review,
.admin-wizard-panel .admin-wizard-help{
  background:rgba(14,165,233,.10);border:1px solid rgba(125,211,252,.22);border-radius:1rem;padding:1rem;color:#dbeafe;
}

/* Mode impression : enlever le décor sombre superflu. */
@media print{
  body{background:white;color:black;}
  .blob,.admin-zone-shell,.admin-wizard-overlay,.ui-action-row{display:none!important;}
  .glass-card,.glass-section,.admin-section,.card{box-shadow:none;border:1px solid #ddd;background:white;color:black;}
}
