/* === annales-bac === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 160px;min-width:160px}
.filter-search{flex:2 1 220px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12)), inset -2px -2px 5px rgba(255,255,255,.6));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.annales-grid{display:grid;gap:14px;margin-bottom:24px}
.annale-card{padding:18px 22px;display:flex;flex-direction:column;gap:8px}
.annale-meta{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-color);display:flex;gap:8px;flex-wrap:wrap}
.annale-meta .badge{padding:3px 10px;border-radius:99px;background:var(--surface-soft);color:var(--text-color)}  .annale-meta .badge-source{background:var(--text-color);color:var(--bg-color)}
.annale-meta .badge-novembre{color:#a25c00}
.annale-meta .badge-remplacement{color:var(--muted-color);font-style:italic}
.annale-title{font-family:var(--font-display);font-size:15px;font-weight:600;line-height:1.3;margin:0}
.annale-actions{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;align-items:center;margin-top:6px}
.btn-pdf{padding:8px 14px;background:var(--text-color);color:var(--bg-color);font-weight:500;text-decoration:none;border-radius:var(--r,12px);box-shadow: none;border-bottom:none;transition:box-shadow .2s}
.btn-pdf:hover{border-color: var(--accent); box-shadow: var(--card-shadow-hover, none), -6px -6px 14px rgba(255,255,255,.6));border-bottom:none}
.btn-link{color:var(--muted-color);font-size:13px}
.btn-corr{padding:4px 12px;color:#c00;border-radius:99px;background:rgba(204,0,0,.06)}
body.dark .btn-corr{color:#ff6b6b;background:rgba(255,107,107,.1)}

.pagination{display:flex;gap:8px;justify-content:center;padding:24px 0;font-family:var(--font-display);font-size:14px;flex-wrap:wrap}
.pagination button{padding:8px 16px;background:var(--bg-color);color:var(--text-color);cursor:pointer;border-radius:var(--r,12px);border:none;box-shadow: none;font-family:var(--font-display)}
.pagination button.active{background:var(--text-color);color:var(--bg-color);box-shadow: none
.pagination button:disabled{opacity:.4;cursor:not-allowed}

.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

/* === annales-ece === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 160px;min-width:160px}
.filter-search{flex:2 1 220px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12)), inset -2px -2px 5px rgba(255,255,255,.6));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.annales-grid{display:grid;gap:14px;margin-bottom:24px}
.annale-card{padding:18px 22px;display:flex;flex-direction:column;gap:6px}
.annale-meta{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-color);display:flex;gap:8px;flex-wrap:wrap}
.annale-meta .badge{padding:3px 10px;border-radius:99px;background:var(--surface-soft);color:var(--text-color)}  .annale-meta .badge-ece{background:var(--text-color);color:var(--bg-color)}
.annale-meta .badge-ep{background:var(--surface-strong);color:var(--text-color);font-weight:600}
.annale-title{font-family:var(--font-display);font-size:15px;font-weight:600;line-height:1.3;margin:4px 0 0}
.annale-theme{font-family:var(--font-display);font-size:13px;color:var(--muted-color);font-style:italic}
.annale-tools{font-family:var(--font-display);font-size:12px;color:var(--muted-color)}
.annale-actions{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;align-items:center;margin-top:6px}
.btn-pdf{padding:8px 14px;background:var(--text-color);color:var(--bg-color);font-weight:500;text-decoration:none;border-radius:var(--r,12px);box-shadow: none;border-bottom:none;transition:box-shadow .2s}
.btn-pdf:hover{border-color: var(--accent); box-shadow: var(--card-shadow-hover, none), -6px -6px 14px rgba(255,255,255,.6));border-bottom:none}
.btn-corr{padding:4px 12px;color:#c00;border-radius:99px;background:rgba(204,0,0,.06);text-decoration:none}
body.dark .btn-corr{color:#ff6b6b;background:rgba(255,107,107,.1)}
.btn-link{color:var(--muted-color);font-size:13px}

.pagination{display:flex;gap:8px;justify-content:center;padding:24px 0;font-family:var(--font-display);font-size:14px;flex-wrap:wrap}
.pagination button{padding:8px 16px;background:var(--bg-color);color:var(--text-color);cursor:pointer;border-radius:var(--r,12px);border:none;box-shadow: none;font-family:var(--font-display)}
.pagination button.active{background:var(--text-color);color:var(--bg-color);box-shadow: none
.pagination button:disabled{opacity:.4;cursor:not-allowed}

.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

/* === cahiers-prepa === */
.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}

.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:180px}
.filter-search{flex:2 1 240px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12)), inset -2px -2px 5px rgba(255,255,255,.6));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.cahiers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px;margin-bottom:24px}
.cahier-card{padding:24px;display:flex;flex-direction:column;gap:10px}
.cahier-meta{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);display:flex;gap:8px;flex-wrap:wrap}
.cahier-meta .badge{padding:3px 10px;border-radius:99px;background:var(--surface-soft);color:var(--text-color)}  .cahier-meta .badge-fil{background:var(--text-color);color:var(--bg-color)}
.cahier-title{font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.3;margin:0;letter-spacing:-.005em}
.cahier-lycee{font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.cahier-matieres{font-family:var(--font-display);font-size:12px;line-height:1.6;color:var(--text-color);display:flex;flex-wrap:wrap;gap:4px}
.cahier-matieres .matiere-tag{padding:2px 10px;background:var(--surface-soft);border-radius:99px}  .cahier-stats{font-family:var(--font-display);font-size:12px;color:var(--muted-color)}
.cahier-actions{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;margin-top:auto;padding-top:8px}
.btn-cahier{padding:8px 14px;background:var(--text-color);color:var(--bg-color);font-weight:500;text-decoration:none;border-radius:var(--r,12px);box-shadow: none;border-bottom:none;transition:box-shadow .2s}
.btn-cahier:hover{border-color: var(--accent); box-shadow: var(--card-shadow-hover, none), -6px -6px 14px rgba(255,255,255,.6));border-bottom:none}

.pagination{display:flex;gap:8px;justify-content:center;padding:24px 0;font-family:var(--font-display);font-size:14px;flex-wrap:wrap}
.pagination button{padding:8px 16px;background:var(--bg-color);color:var(--text-color);cursor:pointer;border-radius:var(--r,12px);border:none;box-shadow: none;font-family:var(--font-display)}
.pagination button.active{background:var(--text-color);color:var(--bg-color);box-shadow: none
.pagination button:disabled{opacity:.4;cursor:not-allowed}

.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

@media(max-width:640px){
.cahiers-grid{grid-template-columns:1fr}
}

/* === debouches === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 320px;min-width:240px}
.filter-search{flex:2 1 400px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12));width:100%}
.filters select:focus{outline:none;box-shadow: none

.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}
.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.sankey{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sankey-col{background:var(--bg-color);padding:18px;border-radius:18px;box-shadow: none;min-height:180px;display:flex;flex-direction:column;gap:10px}
.sankey-col h3{font-family:var(--font-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);margin:0 0 4px}
.sankey-col-metiers{background:var(--surface-soft)}
.sankey-list{display:flex;flex-direction:column;gap:6px}
.sankey-item{font-family:var(--font-display);font-size:13px;line-height:1.4;padding:8px 12px;border-radius:10px;background:var(--bg-color);box-shadow: none;color:var(--text-color);text-decoration:none;border-bottom:none}
.sankey-item:hover{box-shadow: var(--card-shadow-hover, none)
.sankey-item code{font-family:var(--font-display);font-size:11px;color:var(--muted-color);margin-right:6px}
.sankey-list .placeholder{font-family:var(--font-display);font-size:13px;color:var(--muted-color);font-style:italic;padding:6px 2px}
.sankey-list .more{font-family:var(--font-display);font-size:12px;color:var(--muted-color);padding:4px 12px}

@media (max-width: 1024px){
.sankey{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 600px){
.sankey{grid-template-columns:1fr}
}

.metiers-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.metier-detail-card{background:var(--bg-color);padding:20px;border-radius:16px;box-shadow: none;display:flex;flex-direction:column;gap:8px}
.metier-detail-card .code{font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:99px;background:var(--text-color);color:var(--bg-color);align-self:flex-start}
.metier-detail-card h4{font-family:var(--font-display);font-size:15px;font-weight:600;line-height:1.3;margin:0}
.metier-detail-card .skills{font-family:var(--font-display);font-size:12px;color:var(--muted-color);line-height:1.5}
.metier-detail-card a{font-family:var(--font-display);font-size:12px;color:var(--text-color);text-decoration:none;border-bottom:1px solid var(--surface-soft);align-self:flex-start;padding:2px 0}
.empty{padding:40px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

/* === ecoles-doctorales === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:180px}
.filter-search{flex:2 1 240px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}
.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.ed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}
.ed-card{background:var(--bg-color);padding:24px;border-radius:18px;box-shadow: none;display:flex;flex-direction:column;gap:12px}
.ed-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ed-sigle{font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:99px;background:var(--text-color);color:var(--bg-color)}
.ed-numero{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);padding:3px 10px;border-radius:99px;background:var(--surface-soft)}
.ed-libelle{font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.3;margin:0;letter-spacing:-.005em}
.ed-meta{font-family:var(--font-display);font-size:13px;color:var(--muted-color);display:flex;flex-direction:column;gap:4px}
.ed-meta strong{color:var(--text-color);font-weight:600}
.ed-links{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;margin-top:auto}
.ed-links a{padding:7px 14px;font-weight:500;color:var(--text-color);background:var(--bg-color);border-radius:99px;box-shadow: none;text-decoration:none;border-bottom:none;transition:box-shadow .2s}
.ed-links a:hover{box-shadow: var(--card-shadow-hover, none)
.ed-links a.primary{background:var(--text-color);color:var(--bg-color)}

.load-more-wrap{display:flex;justify-content:center;margin:32px 0 0}
.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

#conseil{padding:36px}
#conseil .label{font-family:var(--font-display);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);display:block;margin-bottom:8px}
#conseil h3{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0 0 16px}
#conseil p{font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--text-color);margin:0 0 12px;max-width:75ch}
#conseil .btn-outline{margin-top:8px}

/* === glossaire === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 20px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 200px;min-width:200px}
.filter-search{flex:2 1 320px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.az-nav{position:sticky;top:84px;z-index:10;background:var(--bg-color);padding:14px 0;display:flex;flex-wrap:wrap;gap:6px;border-radius:14px;margin-bottom:20px}
.az-nav a{font-family:var(--font-display);font-size:13px;font-weight:600;padding:6px 10px;border-radius:8px;color:var(--text-color);text-decoration:none;border-bottom:none;background:var(--surface-soft);min-width:30px;text-align:center}
.az-nav a.disabled{opacity:.3;pointer-events:none}
.az-nav a:hover{box-shadow: none

.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}
.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.glossaire-list{display:grid;grid-template-columns:1fr;gap:10px}
.glossaire-letter{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--text-color);margin:24px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--surface-soft)}
.glossaire-card{background:var(--bg-color);padding:18px 22px;border-radius:14px;box-shadow: none;display:flex;flex-direction:column;gap:8px}
.glossaire-card.is-open{box-shadow: none
.glossaire-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;cursor:pointer;flex-wrap:wrap}
.glossaire-term{font-family:var(--font-display);font-size:18px;font-weight:600;letter-spacing:-.005em;margin:0;color:var(--text-color)}
.glossaire-cat{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);padding:3px 10px;border-radius:99px;background:var(--surface-soft)}
.glossaire-def{font-family:var(--font-body);font-size:15px;line-height:1.65;color:var(--text-color);margin:0}
.glossaire-meta{font-family:var(--font-display);font-size:12px;color:var(--muted-color)}
.glossaire-disciplines{display:flex;flex-wrap:wrap;gap:6px;display:none}
.glossaire-card.is-open .glossaire-disciplines{display:flex}
.glossaire-disciplines .pill{font-family:var(--font-display);font-size:12px;padding:3px 10px;border-radius:99px;background:var(--surface-soft);color:var(--text-color)}
.glossaire-actions{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:12px;display:none}
.glossaire-card.is-open .glossaire-actions{display:flex}
.glossaire-actions a{padding:6px 12px;color:var(--text-color);background:var(--bg-color);border-radius:99px;box-shadow: none;text-decoration:none;border-bottom:none}
.glossaire-actions a:hover{box-shadow: var(--card-shadow-hover, none)

.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

/* === laboratoires === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:180px}
.filter-search{flex:2 1 240px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}
.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.labs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}
.lab-card{background:var(--bg-color);padding:24px;border-radius:18px;box-shadow: none;display:flex;flex-direction:column;gap:12px}
.lab-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lab-sigle{font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:99px;background:var(--text-color);color:var(--bg-color)}
.lab-type{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);padding:3px 10px;border-radius:99px;background:var(--surface-soft)}
.lab-label{font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.3;margin:0;letter-spacing:-.005em}
.lab-place{font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.lab-tutelles{font-family:var(--font-body);font-size:13px;line-height:1.55;color:var(--muted-color);margin:0}
.lab-tutelles strong{color:var(--text-color);font-weight:600}
.lab-disciplines{display:flex;flex-wrap:wrap;gap:6px}
.lab-disciplines .pill{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:99px;background:var(--surface-soft)}
.lab-links{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;margin-top:auto}
.lab-links a{padding:7px 14px;font-weight:500;color:var(--text-color);background:var(--bg-color);border-radius:99px;box-shadow: none;text-decoration:none;border-bottom:none;transition:box-shadow .2s}
.lab-links a:hover{box-shadow: var(--card-shadow-hover, none)
.lab-links a.primary{background:var(--text-color);color:var(--bg-color)}

.load-more-wrap{display:flex;justify-content:center;margin:32px 0 0}
.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

/* === metiers === */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:180px}
.filter-search{flex:2 1 240px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}
.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.metiers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}
.metier-card{background:var(--bg-color);padding:24px;border-radius:18px;box-shadow: none;display:flex;flex-direction:column;gap:12px}
.metier-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.metier-code{font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:99px;background:var(--text-color);color:var(--bg-color)}
.metier-disc{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);padding:3px 10px;border-radius:99px;background:var(--surface-soft)}
.metier-libelle{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1.25;margin:0;letter-spacing:-.005em}
.metier-snippet{font-family:var(--font-body);font-size:14px;line-height:1.55;color:var(--muted-color);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.metier-skills{display:flex;flex-wrap:wrap;gap:6px}
.metier-skills .chip{font-family:var(--font-display);font-size:12px;padding:3px 10px;border-radius:99px;background:var(--surface-soft);color:var(--text-color)}
.metier-links{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;margin-top:auto}
.metier-links a{padding:7px 14px;font-weight:500;color:var(--text-color);background:var(--bg-color);border-radius:99px;box-shadow: none;text-decoration:none;border-bottom:none;transition:box-shadow .2s}
.metier-links a:hover{box-shadow: var(--card-shadow-hover, none)
.metier-links a.primary{background:var(--text-color);color:var(--bg-color)}

.load-more-wrap{display:flex;justify-content:center;margin:32px 0 0}
.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

/* === sources === */
/* Filtres dans le style des landing pages — n'utilise pas de couleur dure */
.filters{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:180px}
.filter-search{flex:2 1 240px}
.filters label{font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color)}
.filters select,.filters input{font-family:var(--font-display);font-size:14px;padding:10px 14px;background:var(--bg-color);color:var(--text-color);border:none;border-radius:var(--r,12px);box-shadow: none; border: var(--card-border, 1px solid rgba(17,17,17,0.12)), inset -2px -2px 5px rgba(255,255,255,.6));width:100%}
.filters select:focus,.filters input:focus{outline:none;box-shadow: none

.stats-row{display:flex;gap:32px;flex-wrap:wrap;margin:0 0 24px;font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.stats-row .stat strong{display:block;font-size:24px;font-weight:700;color:var(--text-color)}
.stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color);margin:0 0 24px}
.stats strong{color:var(--text-color)}

.sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:24px}

/* La carte hérite du neumorphism via .feature-card listé dans neu.css */
.source-card{background:var(--bg-color);padding:28px 24px;display:flex;flex-direction:column;gap:14px}
.source-meta{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.source-meta .badge{padding:3px 10px;border-radius:99px;background:var(--surface-soft);color:var(--text-color)}  .source-meta .badge-type{background:var(--text-color);color:var(--bg-color)}
.source-meta .badge-status-active{color:var(--text-color)}
.source-meta .badge-status-archived{color:var(--muted-color);font-style:italic}

.source-name{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.2;margin:0;letter-spacing:-.005em}
.source-disciplines{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);display:flex;gap:6px;flex-wrap:wrap}
.source-disciplines .pill{padding:2px 10px;border-radius:99px;background:var(--surface-soft)}
.source-description{font-family:var(--font-body);font-size:15px;line-height:1.65;color:var(--text-color);margin:0}
.source-stats{font-family:var(--font-display);font-size:13px;color:var(--muted-color)}
.source-stats strong{color:var(--text-color);font-weight:600}
.source-license{font-family:var(--font-display);font-size:12px;color:var(--muted-color);font-style:italic}

.source-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px;color:var(--muted-color);padding-top:8px;margin-top:auto}
.proposed-by{font-style:italic}
.proposed-by strong{color:var(--text-color);font-style:normal;font-weight:600}

.btn-top{font-family:var(--font-display);font-size:13px;font-weight:600;padding:6px 14px;background:var(--bg-color);color:var(--text-color);cursor:pointer;border-radius:99px;border:none;display:inline-flex;align-items:center;gap:8px;box-shadow: none;transition:box-shadow .2s}
.btn-top:hover{border-color: var(--accent); box-shadow: var(--card-shadow-hover, none), -6px -6px 14px rgba(255,255,255,.6))}
.btn-top.voted{box-shadow: none
.btn-top .top-count{font-variant-numeric:tabular-nums;font-weight:700;min-width:1.5em;text-align:right}

.source-links{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-display);font-size:13px}
.source-links a{padding:8px 14px;font-weight:500;color:var(--text-color);background:var(--bg-color);border-radius:var(--r,12px);box-shadow: none;border-bottom:none;text-decoration:none;transition:box-shadow .2s}
.source-links a:hover{border-color: var(--accent); box-shadow: var(--card-shadow-hover, none), -6px -6px 14px rgba(255,255,255,.6))}
.source-links a.primary{background:var(--text-color);color:var(--bg-color)}

/* CTA box pour le soutien global, dans le ton landing */
#soutien-global{text-align:left;padding:36px}
#soutien-global .label{font-family:var(--font-display);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-color);display:block;margin-bottom:8px}
#soutien-global p{font-family:var(--font-body);font-size:17px;line-height:1.7;color:var(--text-color);margin:0;max-width:75ch}

.empty{padding:60px 0;text-align:center;color:var(--muted-color);font-family:var(--font-display)}

