/* LFIHM — déclinaison ENT de la charte visuelle du site public */
:root{
  --lfihm-navy:#071d49;
  --lfihm-navy-2:#0b2f63;
  --lfihm-blue:#2048a0;
  --lfihm-cyan:#83d8e7;
  --lfihm-gold:#d4ad4f;
  --lfihm-ink:#111b2d;
  --lfihm-muted:#637083;
  --lfihm-bg:#f3f5f7;
  --lfihm-line:#dce3eb;
  --brand-ink:var(--lfihm-navy)!important;
  --brand-violet:var(--lfihm-navy-2)!important;
  --brand-violet-2:#174d89!important;
  --brand-blue:var(--lfihm-blue)!important;
  --brand-sky:var(--lfihm-cyan)!important;
  --brand-gold:var(--lfihm-gold)!important;
  --bg:var(--lfihm-bg)!important;
  --text:var(--lfihm-ink)!important;
  --muted:var(--lfihm-muted)!important;
  --focus:rgba(32,72,160,.18)!important;
  --grad:linear-gradient(115deg,#071d49 0%,#0a2b5d 62%,#174d89 100%)!important;

  --navy:#071d49!important;--navy-2:#174d89!important;--blue:#2048a0!important;
  --violet:#174d89!important;--violet-2:#0b2f63!important;--violet-3:#071d49!important;
  --gold:#d4ad4f!important;--gold-soft:#faf3df!important;--slate:#32435b!important;
  --soft-violet-2:#f5f8fb!important;

  --dash-bg:#f3f5f7!important;--dash-surface:#fff!important;--dash-surface-soft:#f8fafb!important;
  --dash-border:#dce3eb!important;--dash-border-strong:#cbd6e2!important;--dash-text:#26354a!important;
  --dash-title:#071d49!important;--dash-muted:#637083!important;--dash-primary:#071d49!important;
  --dash-primary-2:#0b2f63!important;--dash-primary-3:#174d89!important;--dash-lilac:#eaf5f7!important;
  --dash-lilac-strong:#d6eef2!important;--dash-success:#147461!important;--dash-shadow:0 15px 38px rgba(7,29,73,.08)!important;

  --navy-950:#071d49!important;--navy-900:#0b2f63!important;--navy-800:#174d89!important;--navy-700:#286697!important;
  --gold-500:#d4ad4f!important;--gold-100:#faf3df!important;

  --profile-edit-bg:#f3f5f7!important;--profile-edit-surface:#fff!important;--profile-edit-surface-soft:#f8fafb!important;--profile-edit-border:#dce3eb!important;--profile-edit-border-strong:#cbd6e2!important;--profile-edit-text:#26354a!important;--profile-edit-muted:#637083!important;--profile-edit-title:#071d49!important;--profile-edit-primary:#2048a0!important;--profile-edit-accent:#edf7f9!important;
  --prof-admin-bg:#f3f5f7!important;--prof-admin-surface:#fff!important;--prof-admin-surface-soft:#f8fafb!important;--prof-admin-border:#dce3eb!important;--prof-admin-border-strong:#cbd6e2!important;--prof-admin-text:#26354a!important;--prof-admin-muted:#637083!important;--prof-admin-title:#071d49!important;--prof-admin-primary:#2048a0!important;--prof-admin-accent:#edf7f9!important;
  --edit-bg:#f3f5f7!important;--edit-surface:#fff!important;--edit-surface-soft:#f8fafb!important;--edit-border:#dce3eb!important;--edit-border-strong:#cbd6e2!important;--edit-text:#26354a!important;--edit-muted:#637083!important;--edit-title:#071d49!important;--edit-primary:#2048a0!important;--edit-accent:#edf7f9!important;
  --users-bg:#f3f5f7!important;--users-surface:#fff!important;--users-surface-soft:#f8fafb!important;--users-border:#dce3eb!important;--users-border-strong:#cbd6e2!important;--users-text:#26354a!important;--users-muted:#637083!important;--users-title:#071d49!important;--users-primary:#2048a0!important;--users-accent:#edf7f9!important;
  --staff-bg:#f3f5f7!important;--staff-surface:#fff!important;--staff-surface-soft:#f8fafb!important;--staff-border:#dce3eb!important;--staff-border-strong:#cbd6e2!important;--staff-text:#26354a!important;--staff-muted:#637083!important;--staff-title:#071d49!important;--staff-primary:#2048a0!important;--staff-accent:#edf7f9!important;
  --pw-bg:#f3f5f7!important;--pw-surface:#fff!important;--pw-surface-soft:#f8fafb!important;--pw-border:#dce3eb!important;--pw-border-strong:#cbd6e2!important;--pw-text:#26354a!important;--pw-muted:#637083!important;--pw-title:#071d49!important;--pw-primary:#2048a0!important;--pw-accent:#edf7f9!important;
  --delete-bg:#f3f5f7!important;--delete-surface:#fff!important;--delete-surface-soft:#f8fafb!important;--delete-border:#dce3eb!important;--delete-border-strong:#cbd6e2!important;--delete-text:#26354a!important;--delete-muted:#637083!important;--delete-title:#071d49!important;--delete-primary:#2048a0!important;
}

body{background:linear-gradient(180deg,#fff 0,#f5f7f8 230px,#f1f4f6 100%)!important;color:var(--lfihm-ink)}
h1,h2,h3,.hero-title,.showcase-title,.section-title,.surface-head h2{font-family:Georgia,"Times New Roman",serif!important}

/* Accueil de l’ENT */
.ent-shell{max-width:1240px!important;margin-top:1.55rem!important}
.ent-shell>.hero{max-width:none!important;min-height:250px;padding:2rem 2.15rem!important;border-radius:4px!important;background:linear-gradient(90deg,rgba(7,29,73,.98) 0%,rgba(7,29,73,.92) 54%,rgba(23,77,137,.89) 100%)!important;border:0!important;box-shadow:0 22px 50px rgba(7,29,73,.20)!important}
.ent-shell>.hero::before{background:linear-gradient(90deg,transparent 0 68%,rgba(131,216,231,.12) 68% 69%,transparent 69%),radial-gradient(circle at 86% 25%,rgba(212,173,79,.22),transparent 0 19%,transparent 20%)!important}
.ent-shell>.hero .hero-layout{position:relative;z-index:1;display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:1.2rem;align-items:end}
.ent-shell .hero-title{display:block!important;color:#fff!important;font-size:clamp(1.8rem,3vw,2.8rem)!important;line-height:1.08!important}
.ent-shell .hero-title em{display:block;color:var(--lfihm-cyan)!important;font-weight:700}
.ent-shell .hero-sub{display:flex!important;flex-wrap:wrap;gap:.48rem;margin-top:.8rem}
.ent-shell .hello{font-size:1rem!important;max-width:660px!important;color:#e9f0f8!important}
.ent-shell .chip{display:inline-flex!important;align-items:center;gap:.35rem;padding:.32rem .7rem;border:1px solid rgba(255,255,255,.24)!important;border-radius:3px!important;background:rgba(255,255,255,.09)!important;color:#fff!important;font-size:.84rem;font-weight:800}
.ent-shell .hero-aside{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.ent-shell .hero-stat{display:flex;flex-direction:column;padding:.82rem .88rem;background:rgba(255,255,255,.09)!important;color:#fff;border:1px solid rgba(255,255,255,.18)!important;border-radius:3px!important}
.ent-shell .hero-stat-label{color:rgba(255,255,255,.72);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ent-shell .hero-stat-value{margin-top:.25rem;color:#fff;font-size:1.3rem;font-weight:900}.ent-shell .hero-stat-sub{color:rgba(255,255,255,.78);font-size:.78rem}
.ent-shell .card{padding:1.15rem!important;border-radius:8px!important;border:1px solid var(--lfihm-line)!important;border-top:3px solid var(--lfihm-blue)!important;box-shadow:0 14px 34px rgba(7,29,73,.07)!important}
.ent-shell .section-title{color:var(--lfihm-navy)!important;font-size:1.3rem!important}
.ent-shell .section-title i{border-radius:50%!important;background:#eaf5f7!important;color:var(--lfihm-blue)!important;border-color:#d6e8ed!important}
.ent-shell .section-kicker{border-radius:3px!important;background:#edf7f9!important;border-color:#d6e8ed!important;color:#174d67!important}
.ent-shell .link-card,.ent-shell .resource-card{border-radius:6px!important;border-color:var(--lfihm-line)!important;background:#fff!important;box-shadow:0 8px 22px rgba(7,29,73,.06)!important}
.ent-shell .link-card::after{background:var(--lfihm-gold)!important;box-shadow:0 0 0 5px rgba(212,173,79,.12)!important}
.ent-shell .link-icon-fallback,.ent-shell .resource-list li i{color:var(--lfihm-blue)!important}
.ent-shell .resource-icon{border-radius:50%!important;background:var(--lfihm-blue)!important;box-shadow:none!important}
.ent-shell .resource-title{color:var(--lfihm-navy)!important}
.ent-shell .resource-link,.ent-shell .btn-chip{border-radius:4px!important;color:#153354!important;background:#fff!important;border-color:#cfd9e4!important}
.ent-shell .resource-link:hover,.ent-shell .btn-chip:hover{background:#edf7f9!important;border-color:#9ecdd6!important}
.ent-shell .btn-chip--accent{background:#faf3df!important;border-color:#ead49c!important}
.ent-shell .notif-badge{background:#b83242!important}
.ent-shell .institution-strip{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;max-width:none!important}
.ent-shell .institution-card{position:relative;overflow:hidden;padding:1rem!important;border-radius:6px!important;border:1px solid var(--lfihm-line)!important;background:#fff!important;box-shadow:0 9px 24px rgba(7,29,73,.05)!important}
.ent-shell .institution-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--lfihm-cyan)}
.ent-shell .institution-label{color:#286697!important}.ent-shell .institution-value{color:var(--lfihm-navy)!important;font-family:Georgia,"Times New Roman",serif}
.ent-shell .links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}

/* Tableau de bord */
.dashboard-shell{max-width:1240px!important}
.dashboard-hero{border-radius:4px!important;background:linear-gradient(115deg,#071d49 0%,#0a2b5d 60%,#174d89 100%)!important;border:0!important;box-shadow:0 24px 52px rgba(7,29,73,.20)!important}
.dashboard-hero::before{background:rgba(131,216,231,.13)!important}.dashboard-hero::after{background:rgba(212,173,79,.16)!important}
.dashboard-hero .hero-title{font-size:clamp(2rem,3vw,3.25rem)!important;font-weight:700!important}
.dashboard-hero .meta-chip,.dashboard-hero .hero-panel,.dashboard-hero .stat-card{border-radius:4px!important}
.dashboard-hero .hero-button{border-radius:4px!important}
.dashboard-hero .hero-button-primary{color:#071d49!important}
.dashboard-grid .surface{border-radius:8px!important;border:1px solid var(--lfihm-line)!important;border-top:3px solid var(--lfihm-blue)!important;box-shadow:0 14px 34px rgba(7,29,73,.07)!important}
.dashboard-grid .surface-kicker{color:#286697!important}
.dashboard-grid .surface-pill,.dashboard-grid .class-summary-count{background:#eaf5f7!important;border-color:#cfe5ea!important;color:#174d67!important}
.dashboard-grid .guide-card,.dashboard-grid .resource-item,.dashboard-grid .space-card,.dashboard-grid .class-summary li{border-radius:6px!important;border-color:var(--lfihm-line)!important;background:#fff!important}
.dashboard-grid .guide-icon,.dashboard-grid .space-card-icon{border-radius:50%!important;background:var(--lfihm-blue)!important}
.dashboard-grid .resource-icon{border-radius:50%!important;background:#eaf5f7!important;color:var(--lfihm-blue)!important}
.dashboard-grid .resource-title:hover{color:var(--lfihm-blue)!important}

/* Connexion */
.login-layout{border-radius:4px!important;border:1px solid #d9e1e9!important;box-shadow:0 30px 80px rgba(7,29,73,.14)!important}
.login-showcase{background:linear-gradient(145deg,rgba(7,29,73,.98),rgba(11,47,99,.96))!important}
.login-showcase::before{background:linear-gradient(rgba(131,216,231,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(131,216,231,.08) 1px,transparent 1px)!important}
.login-showcase::after{background:radial-gradient(circle,rgba(212,173,79,.28),transparent 66%)!important}
.showcase-title{font-size:clamp(2.7rem,4vw,4.8rem)!important}
.showcase-title::after{content:" S’ouvrir au monde.";display:block;color:var(--lfihm-cyan);font-style:italic}
.login-card{border-radius:6px!important;border-top:3px solid var(--lfihm-blue)!important}
.role-hint,.form-row input,.btn-primary{border-radius:5px!important}
.btn-primary{background:var(--lfihm-blue)!important;box-shadow:0 14px 28px rgba(32,72,160,.20)!important}
.login-head .mini,.link-min{color:var(--lfihm-blue)!important}

/* Composants généraux des pages internes */
.section-encadre,.card,.panel,.surface{border-color:var(--lfihm-line);box-shadow:0 12px 32px rgba(7,29,73,.07)}
.section-ribbon,.ruban-titre,.card-head,.banner{background:linear-gradient(115deg,#071d49,#0b2f63 68%,#174d89)!important}
button,.btn,.btn-ent,.btn-admin,.btn-chip,.btn-cta,.btn-link{border-radius:5px}
.btn-cta{background:var(--lfihm-blue)!important}
.badge{background:#eaf5f7!important;color:#174d67!important;border-color:#cfe5ea!important}
input[type=text],input[type=password],input[type=email],input[type=file],select,textarea{border-radius:5px;border-color:#cbd6e2}
input:focus,select:focus,textarea:focus{border-color:var(--lfihm-blue)!important;box-shadow:0 0 0 4px rgba(32,72,160,.14)!important}
thead th{background:var(--lfihm-navy)!important;color:#fff!important}
tbody tr:hover{background:#f0f8fa!important}

/* Footer, inspiré de la structure du site public */
.app-footer{margin-top:auto;background:#071d49;color:#e7edf7;border-top:5px solid #83d8e7}
.footer-main{max-width:1240px;margin:0 auto;padding:2.25rem 1.6rem;display:grid;grid-template-columns:1.5fr 1fr .85fr .8fr;gap:2rem}
.footer-identity{display:flex;align-items:flex-start;gap:1rem}.footer-identity img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}
.footer-identity strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;color:#fff;line-height:1.3}.footer-identity p{margin:.45rem 0 0;color:#aebbd0;font-size:.88rem;line-height:1.55}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:.58rem}.footer-column h2{margin:0 0 .45rem;color:#fff;font:700 1rem Georgia,"Times New Roman",serif}.footer-column a{color:#b9c5d8;font-size:.83rem;text-decoration:none}.footer-column a:hover{color:#83d8e7}.footer-column a i{width:18px;color:#83d8e7}
.footer-social{display:flex;gap:.45rem}.footer-social a{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:#fff}.footer-social a:hover{background:#2048a0;color:#fff}
.footer-bottom{padding:.75rem 1.6rem;background:#051637;border-top:1px solid rgba(255,255,255,.10);display:flex;justify-content:space-between;gap:1rem;color:#94a4bd;font-size:.74rem}

@media(max-width:900px){.footer-main{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr!important}.ent-shell>.hero{min-height:auto}.bottom-panels{grid-template-columns:1fr!important}}
@media(max-width:620px){.ent-shell .institution-strip{grid-template-columns:1fr!important}.footer-main{grid-template-columns:1fr;padding:1.6rem 1rem}.footer-bottom{flex-direction:column}.ent-shell>.hero{padding:1.4rem!important}.ent-shell .hero-layout{grid-template-columns:1fr!important}.ent-shell .hero-aside{grid-template-columns:1fr 1fr}.showcase-title::after{font-size:.78em}.login-layout{border-radius:0!important}}
