/* Priorité 13: correctif critique allégé. Les !important restants protègent les états de modale et le mouvement réduit. */
/* Correctif critique lisibilité portail — chargé en dernier */
html, body {
    min-height: 100%;
    background: #0b1220;
    color: #f8fafc;
}
body.ux-shell-bg,
body {
    background:
        radial-gradient(circle at 12% -8%, rgba(37,99,235,.22), transparent 32rem),
        radial-gradient(circle at 88% 0%, rgba(14,165,233,.12), transparent 30rem),
        linear-gradient(180deg, #07111f 0%, #0f172a 48%, #08111f 100%);
}
.container,
.portal-hero-panel,
.glass-section,
.portal-disclosure,
.portal-tool-button,
.glass-card,
.portal-modal-panel,
.ux-bento {
    color: #f8fafc;
}
.portal-hero-panel,
.glass-section,
.portal-disclosure,
.portal-tool-button,
.glass-card,
.portal-modal-panel,
.ux-bento {
    background: rgba(15, 23, 42, .92);
    border: 1px solid rgba(148, 163, 184, .28);
    box-shadow: 0 16px 48px rgba(2, 6, 23, .38);
}
.portal-hero-panel {
    background: linear-gradient(135deg, rgba(14,165,233,.16), rgba(30,41,59,.86));
}
.portal-disclosure summary {
    background: rgba(15, 23, 42, .96);
}
.portal-disclosure-body {
    background: rgba(2, 6, 23, .25);
}
.text-slate-100, .text-white { color: #f8fafc; }
.text-slate-200, .text-slate-300 { color: #e2e8f0; }
.text-slate-400 { color: #cbd5e1; }
.text-slate-500, .text-slate-600 { color: #94a3b8; }
.bg-white\/5, .bg-white\/10 {
    background-color: rgba(15, 23, 42, .72);
}
.border-white\/10 {
    border-color: rgba(148, 163, 184, .22);
}
.login-input,
.portal-modal-body input,
.portal-modal-body select,
.portal-modal-body textarea {
    background: #020617;
    color: #f8fafc;
    border-color: #334155;
}
.portal-modal-backdrop.is-open { display: flex !important; }
.portal-modal-backdrop:not(.is-open) { display: none !important; }
@media (prefers-reduced-motion: reduce) {
    .portal-tool-button:hover, .glass-card:hover { transform: none !important; }
}
/* Désactivation des aplats jaunes trop agressifs sur le portail élève */
.seb-alert-card {
    background: rgba(15, 23, 42, .94);
    border-color: rgba(245, 158, 11, .38);
}
.seb-alert-card .bg-yellow-400,
.seb-alert-card .bg-yellow-400\/15 {
    background-color: rgba(245, 158, 11, .14);
    color: #fde68a;
}
.seb-alert-card a.bg-yellow-400 {
    background: rgba(245, 158, 11, .18);
    border: 1px solid rgba(245, 158, 11, .45);
    color: #fef3c7;
}
.seb-alert-card a.bg-yellow-400:hover {
    background: rgba(245, 158, 11, .28);
}

/* Priorité 16 — focus trap visuel pour les modales du portail élève */
.portal-modal-backdrop[role="dialog"]:focus {
    outline: none;
}
.portal-modal-backdrop .portal-modal-panel:focus-within {
    box-shadow: 0 30px 90px rgba(0, 0, 0, .55), 0 0 0 1px rgba(56, 189, 248, .18);
}
.portal-modal-backdrop button:focus-visible,
.portal-modal-backdrop a:focus-visible,
.portal-modal-backdrop input:focus-visible,
.portal-modal-backdrop select:focus-visible,
.portal-modal-backdrop textarea:focus-visible {
    outline: 3px solid rgba(56, 189, 248, .42);
    outline-offset: 3px;
}
