/* ============================================================
   MIVOATSA — CSS Admin + compléments globaux
   À inclure APRÈS main.css dans les pages admin
   Ou concaténer dans main.css en production
   ============================================================ */

/* ── Styles manquants breadcrumb (déjà dans vues mais centralisés) ── */
.breadcrumb     { display:flex; align-items:center; gap:.5rem; margin-bottom:1.5rem; font-size:.875rem; color:var(--text-muted); }
.breadcrumb a   { color:var(--color-primary); text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb-sep { color:var(--text-light); }

/* ── Profil page ── */
.profil-layout  { display:grid; grid-template-columns:280px 1fr; gap:1.5rem; align-items:start; }
.profil-aside   { position:sticky; top:calc(var(--nav-height) + 1rem); }
.profil-avatar  { width:100px; height:100px; border-radius:50%; object-fit:cover; border:3px solid var(--color-primary-light); }
.profil-avatar-initials { display:flex; align-items:center; justify-content:center; background:var(--color-primary); color:white; font-size:2rem; font-weight:700; }
.profil-name    { font-size:1.2rem; font-weight:700; margin-bottom:.3rem; }
.profil-stats   { display:flex; justify-content:center; gap:1.5rem; margin:1rem 0; padding:1rem 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.profil-stat    { text-align:center; }
.profil-stat-num   { display:block; font-size:1.3rem; font-weight:700; color:var(--color-primary); }
.profil-stat-label { font-size:.75rem; color:var(--text-muted); }
.profil-socials { display:flex; flex-direction:column; gap:.5rem; margin-top:1rem; }
.social-btn     { display:flex; align-items:center; justify-content:center; gap:.5rem; padding:.5rem 1rem; border-radius:var(--radius-md); font-size:.85rem; font-weight:500; text-decoration:none; transition:filter .2s; }
.social-btn:hover { filter:brightness(.9); text-decoration:none; }
.social-linkedin { background:#0a66c2; color:white; }
.social-facebook { background:#1877f2; color:white; }
.social-web      { background:var(--bg-alt); color:var(--text); border:1px solid var(--border); }

/* ── Annuaire ── */
.annuaire-layout { display:grid; grid-template-columns:240px 1fr; gap:1.5rem; align-items:start; }
.filter-sidebar  { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; position:sticky; top:calc(var(--nav-height) + 1rem); }
.filter-section  { margin-bottom:1rem; }
.filter-label    { display:block; font-size:.8rem; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.5rem; }
.filter-checkbox { display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--text); cursor:pointer; padding:.2rem 0; }
.filter-checkbox input { accent-color:var(--color-primary); cursor:pointer; }
.filter-dot      { width:10px; height:10px; border-radius:50%; flex-shrink:0; }

/* ── Bibliothèque ── */
.lib-layout   { display:grid; grid-template-columns:260px 1fr; gap:1.5rem; align-items:start; }
.lib-toolbar  { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; flex-wrap:wrap; gap:.5rem; }

/* ── Empty states ── */
.empty-state  { text-align:center; padding:4rem 2rem; color:var(--text-muted); }
.empty-icon   { font-size:3rem; margin-bottom:1rem; }
.empty-state h3 { color:var(--text); margin-bottom:.5rem; }
.empty-state p  { margin-bottom:1.5rem; }

/* ── Keyword chips ── */
.keyword-chip { background:var(--bg-alt); border:1px solid var(--border); border-radius:999px; padding:.1rem .5rem; font-size:.72rem; color:var(--text-muted); }

/* ── Work rows (profil étudiant) ── */
.work-row        { padding:1rem 1.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.work-row-border { border-top:1px solid var(--border); }
.work-row:hover  { background:var(--bg-alt); }
.work-row-title  { font-weight:600; font-size:.9rem; margin:.3rem 0; }
.work-row-title a { color:var(--text); }
.work-row-title a:hover { color:var(--color-primary); text-decoration:none; }
.work-row-meta   { font-size:.78rem; color:var(--text-muted); }
.work-row-rating { display:flex; flex-direction:column; align-items:flex-end; gap:.2rem; flex-shrink:0; }

/* ── Admin stats ── */
.stat-card       { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; transition:all .2s; }
.stat-card:hover { box-shadow:var(--shadow-md); transform:translateY(-1px); }
.stat-card-icon  { width:40px; height:40px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:.75rem; }
.stat-card-num   { font-size:1.8rem; font-weight:800; line-height:1; margin-bottom:.25rem; }
.stat-card-label { font-size:.78rem; color:var(--text-muted); }

/* ── Top5 sidebar ── */
.top5-item      { display:flex; align-items:center; gap:.6rem; padding:.4rem 0; border-bottom:1px solid var(--border); }
.top5-item:last-child { border-bottom:none; }
.top5-rank      { width:20px; height:20px; border-radius:50%; background:var(--color-primary); color:white; font-size:.72rem; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.top5-info      { display:flex; flex-direction:column; gap:.1rem; min-width:0; }
.top5-title     { font-size:.8rem; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top5-title:hover { color:var(--color-primary); }
.top5-meta      { font-size:.72rem; color:var(--text-muted); }

/* ── Page header ── */
.page-header { background:var(--bg-card); border-bottom:1px solid var(--border); padding:1.5rem 0; }
.page-header h1 { font-size:1.5rem; font-weight:700; }
.page-header p  { color:var(--text-muted); margin-top:.3rem; font-size:.9rem; }

/* ── Lib stats ── */
.lib-stats-row  { display:flex; gap:2rem; flex-wrap:wrap; }
.lib-stat       { display:flex; flex-direction:column; }
.lib-stat-num   { font-size:1.5rem; font-weight:800; color:var(--color-primary); }
.lib-stat-label { font-size:.8rem; color:var(--text-muted); }

/* ── Responsive compléments ── */
@media (max-width:1024px) {
    .lib-layout      { grid-template-columns:220px 1fr; }
    .annuaire-layout { grid-template-columns:200px 1fr; }
}
@media (max-width:768px) {
    .profil-layout   { grid-template-columns:1fr; }
    .profil-aside    { position:static; }
    .lib-layout      { grid-template-columns:1fr; }
    .annuaire-layout { grid-template-columns:1fr; }
    .filter-sidebar  { position:static; }
    .work-row        { flex-direction:column; align-items:flex-start; }
    .work-row-rating { align-items:flex-start; }
}
