:root{--navy:#123a63;--navy2:#0b2948;--blue:#1f6fa8;--orange:#f47b20;--bg:#f5f7fa;--card:#fff;--text:#182433;--muted:#657383;--line:#dfe6ee;--success:#1e7d57;--warn:#a66300;--danger:#a53a3a;--radius:18px;--shadow:0 10px 30px rgba(20,49,77,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);line-height:1.6}a{color:var(--navy);text-decoration:none}img{max-width:100%}button,input,textarea,select{font:inherit}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:14px;color:var(--text)}.brand img{width:150px;height:52px;object-fit:contain}.brand span{display:flex;flex-direction:column;line-height:1.2}.brand small{color:var(--muted)}.mainnav{display:flex;gap:8px;align-items:center}.mainnav a{padding:10px 12px;border-radius:10px}.mainnav a:hover{background:var(--bg)}.navtoggle{display:none;border:0;background:none;font-size:24px}.shell{max-width:1240px;margin:0 auto;padding:34px 24px 70px}.content{min-width:0}.hero{background:linear-gradient(120deg,var(--navy2),var(--navy));color:#fff;border-radius:26px;padding:42px;display:grid;grid-template-columns:1.5fr .8fr;gap:28px;align-items:center;box-shadow:var(--shadow);overflow:hidden}.hero h1{font-size:clamp(34px,5vw,58px);line-height:1.03;margin:4px 0 14px}.hero p{max-width:760px;color:#dbe7f3}.eyebrow{font-size:.77rem;letter-spacing:.15em;font-weight:800;color:var(--blue);margin:0 0 8px}.hero .eyebrow{color:#bcd2e6}.hero-emergency{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:22px;border-radius:18px;display:flex;flex-direction:column}.hero-emergency a{font-size:30px;font-weight:800;color:#fff}.hero-emergency small{color:#dbe7f3}.section-head{display:flex;justify-content:space-between;align-items:end;margin:42px 0 18px}.section-head h2,h1{margin:.1em 0}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.nav-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-height:180px;box-shadow:0 3px 14px rgba(20,49,77,.04);transition:.2s}.nav-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c6d4e3}.nav-card h3{margin:18px 0 8px}.nav-card p{margin:0;color:var(--muted);font-size:.94rem}.icon-dot{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eaf2f9;color:var(--navy);font-weight:900}.page-list-section{scroll-margin-top:100px}.list-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.content-link{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px}.content-link p{margin:4px 0 0;color:var(--muted);font-size:.92rem}.content-link>span{font-size:30px}.recent-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.recent-list a{display:flex;justify-content:space-between;gap:20px;padding:16px 20px;border-bottom:1px solid var(--line)}.recent-list a:last-child{border-bottom:0}.recent-list small{color:var(--muted)}.alert-card{margin:18px 0;background:#fff;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center}.alert-card.warning{border-left-color:#e28b12}.alert-card.success{border-left-color:var(--success)}.alert-card p{margin:3px 0 0;color:var(--muted)}.article{max-width:900px;margin:0 auto}.breadcrumbs{font-size:.9rem;color:var(--muted);margin-bottom:26px}.article h1{font-size:clamp(36px,5vw,58px);line-height:1.06}.lead{font-size:1.18rem;color:var(--muted);max-width:760px}.article-body{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,4vw,44px);box-shadow:0 4px 20px rgba(20,49,77,.04)}.article-body h2{margin-top:1.7em;color:var(--navy)}.article-body blockquote{margin:24px 0;padding:14px 20px;border-left:4px solid var(--orange);background:#fff8f1}.article-body img{border-radius:14px}.article-meta{margin-top:16px;color:var(--muted);font-size:.9rem}.read-badge{color:var(--success)}.timeline{position:relative;margin-top:34px}.timeline:before{content:"";position:absolute;left:128px;top:0;bottom:0;width:2px;background:#cbd8e6}.timeline-item{display:grid;grid-template-columns:105px 1fr;gap:46px;position:relative;margin-bottom:24px}.timeline-item:after{content:"";position:absolute;left:121px;top:24px;width:14px;height:14px;background:var(--orange);border:4px solid var(--bg);border-radius:50%}.timeline-date{font-weight:800;color:var(--navy);padding-top:17px;text-align:right}.timeline-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 24px}.timeline-card h2{margin:0}.timeline-card .article-body{border:0;box-shadow:none;padding:0;margin:10px 0 0}.doc-list h2{margin-top:30px}.doc-row{background:#fff;border:1px solid var(--line);padding:16px 20px;display:flex;justify-content:space-between;gap:20px;border-radius:14px;margin-bottom:10px}.doc-row p{margin:3px 0 0;color:var(--muted)}footer{border-top:1px solid var(--line);padding:26px max(24px,calc((100vw - 1240px)/2));display:flex;justify-content:space-between;color:var(--muted);font-size:.88rem;background:#fff}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#dce9f5,transparent 40%),linear-gradient(145deg,#f7f9fb,#eef3f7)}.login-card{background:#fff;width:min(470px,100%);padding:42px;border-radius:26px;box-shadow:0 24px 70px rgba(14,45,72,.16);border:1px solid var(--line)}.login-logo{height:76px;width:auto;display:block;margin-bottom:26px}.login-card h1{font-size:42px}.login-help{font-size:.86rem;color:var(--muted);margin-bottom:0}.stack{display:flex;flex-direction:column;gap:16px}.stack label,.form-grid label,.editor-form>label{display:flex;flex-direction:column;gap:6px;font-weight:650}.stack input,.form-grid input,.form-grid select,.stack textarea,.editor-form textarea,.editor-form select{width:100%;padding:11px 12px;border:1px solid #cdd8e3;border-radius:10px;background:#fff;color:var(--text)}.btn{display:inline-flex;justify-content:center;align-items:center;gap:7px;border:1px solid #cbd6e1;background:#fff;color:var(--navy);padding:10px 15px;border-radius:10px;font-weight:700;cursor:pointer}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.small{padding:7px 11px;font-size:.9rem}.flash{padding:13px 16px;border-radius:11px;margin:0 0 16px;background:#eaf2f9}.flash.success{background:#e7f5ee;color:#176346}.flash.error{background:#fff0f0;color:#8a3131}.admin-shell{max-width:1440px;display:grid;grid-template-columns:230px 1fr;gap:30px}.sidebar{position:sticky;top:100px;align-self:start;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.sidebar strong{padding:10px}.sidebar a{padding:9px 10px;border-radius:8px}.sidebar a:hover{background:var(--bg)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0 30px}.stats-grid>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px}.stats-grid b{font-size:36px;display:block;color:var(--navy)}.stats-grid span{color:var(--muted)}.admin-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.admin-cards a{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;display:flex;flex-direction:column}.admin-cards span{color:var(--muted)}.admin-title{display:flex;justify-content:space-between;align-items:end}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;margin-top:18px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}td small{display:block;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;margin:18px 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.checks{display:flex;gap:20px;margin:14px 0}.form-actions{display:flex;gap:10px;margin-top:16px}.editor-form{display:flex;flex-direction:column;gap:14px}.editor-toolbar{display:flex;gap:6px;flex-wrap:wrap;background:#edf2f7;border:1px solid var(--line);border-bottom:0;padding:8px;border-radius:12px 12px 0 0}.editor-toolbar button{border:1px solid #cad5df;background:#fff;border-radius:7px;padding:6px 9px;cursor:pointer}.rich-editor{min-height:380px;background:#fff;border:1px solid var(--line);padding:24px;border-radius:0 0 12px 12px;outline:none}.timeline-admin,.admin-list{display:flex;flex-direction:column;gap:9px}.timeline-admin>div,.admin-list>div{display:grid;grid-template-columns:110px 220px 1fr;gap:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.admin-list>div{grid-template-columns:20px 1fr auto}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);margin-top:7px}.status-dot.warning{background:#e28b12}.status-dot.success{background:var(--success)}.user-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.user-grid form label{display:block;margin:7px 0}.muted{color:var(--muted)}
@media(max-width:950px){.card-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.admin-shell{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:repeat(3,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.topbar{height:auto;min-height:70px;padding:10px 16px}.brand img{width:120px}.brand span{display:none}.navtoggle{display:block}.mainnav{display:none;position:absolute;top:70px;left:12px;right:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.mainnav.open{display:flex}.shell{padding:22px 14px 54px}.hero{padding:26px 20px;border-radius:20px}.card-grid,.list-grid,.form-grid,.admin-cards,.user-grid{grid-template-columns:1fr}.recent-list a,footer{flex-direction:column}.timeline:before{left:8px}.timeline-item{grid-template-columns:1fr;gap:7px;padding-left:30px}.timeline-item:after{left:1px;top:14px}.timeline-date{text-align:left;padding:0}.stats-grid{grid-template-columns:repeat(2,1fr)}.sidebar{grid-template-columns:repeat(2,1fr)}.timeline-admin>div{grid-template-columns:1fr}.login-card{padding:28px 22px}.article-body{padding:20px}}

/* Contenus importés depuis WordPress */
.article-body figure{margin:0 0 28px;text-align:center}
.article-body figure img{display:block;width:auto;max-width:100%;height:auto;margin:0 auto;border-radius:16px}
.article-body figcaption{margin-top:9px;color:var(--muted);font-size:.9rem;text-align:center}
.article-body .wp-block-image{margin-left:auto;margin-right:auto}
.article-body p:first-child{margin-top:0}
.article-body img[src=""]{display:none}

/* Historique — affichage compact, illustré et navigable */
.history-page{max-width:1050px;margin:0 auto}.history-hero{max-width:820px}.history-hero h1{font-size:clamp(38px,5vw,58px);line-height:1.05;margin:.12em 0}.history-years{position:sticky;top:90px;z-index:20;display:flex;gap:8px;overflow:auto;padding:10px;margin:28px 0 34px;background:rgba(245,247,250,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px}.history-years a{flex:0 0 auto;background:#fff;border:1px solid var(--line);padding:7px 11px;border-radius:999px;font-weight:750;font-size:.9rem}.history-years a:hover{background:var(--navy);border-color:var(--navy);color:#fff}.history-year{scroll-margin-top:150px;display:grid;grid-template-columns:120px minmax(0,1fr);gap:26px;margin-bottom:42px}.history-year-heading{position:sticky;top:150px;align-self:start;display:flex;flex-direction:column}.history-year-heading span{font-size:2.2rem;line-height:1;font-weight:900;color:var(--navy)}.history-year-heading small{color:var(--muted);margin-top:8px}.history-list{position:relative;display:flex;flex-direction:column;gap:16px}.history-list:before{content:"";position:absolute;left:10px;top:20px;bottom:20px;width:2px;background:#d9e3ed}.history-card{position:relative;margin-left:36px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 18px rgba(20,49,77,.045);overflow:hidden;display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr)}.history-card:not(:has(.history-image-wrap)){grid-template-columns:1fr}.history-marker{position:absolute;left:-32px;top:25px;width:14px;height:14px;border-radius:50%;background:var(--orange);border:4px solid var(--bg);box-shadow:0 0 0 2px #d9e3ed}.history-image-wrap{min-height:160px;background:#f2f5f8;border-right:1px solid var(--line);display:grid;place-items:center}.history-image{display:block;width:100%;height:100%;min-height:160px;max-height:230px;object-fit:contain;padding:18px}.history-card-main{padding:20px 24px}.history-date{display:inline-flex;font-size:.8rem;font-weight:800;color:var(--blue);background:#eef5fb;padding:4px 8px;border-radius:999px}.history-card h2{font-size:1.25rem;line-height:1.25;margin:10px 0 8px}.history-summary{color:var(--muted);margin:0}.history-body.article-body{margin:10px 0 0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}.history-body p:last-child{margin-bottom:0}.history-details{margin-top:2px}.history-details summary{cursor:pointer;list-style:none;outline:none}.history-details summary::-webkit-details-marker{display:none}.history-preview{display:block;color:var(--muted);font-weight:400;line-height:1.65;margin:0 0 12px}.history-toggle-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:8px 12px 8px 15px;border:1px solid #cbd8e6;border-radius:12px;background:#f7fafc;color:var(--navy);font-weight:800;line-height:1;transition:.18s ease}.history-details summary:hover .history-toggle-button{background:#eef5fb;border-color:#afc5d9}.history-details summary:focus-visible .history-toggle-button{outline:3px solid rgba(31,111,168,.2);outline-offset:2px}.history-toggle-text{white-space:nowrap}.history-toggle-less{display:none}.history-toggle-icon{position:relative;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--navy)}.history-toggle-icon:before,.history-toggle-icon:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:#fff;border-radius:2px;transform:translate(-50%,-50%)}.history-toggle-icon:after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .18s ease,opacity .18s ease}.history-details[open] .history-preview,.history-details[open] .history-toggle-more{display:none}.history-details[open] .history-toggle-less{display:inline}.history-details[open] .history-toggle-icon:after{opacity:0;transform:translate(-50%,-50%) rotate(0)}.history-details[open] .history-body{margin-top:12px;padding-top:0}.timeline-admin-cards{margin-top:18px}.timeline-admin-row{grid-template-columns:64px 110px minmax(0,1fr) auto!important;align-items:center}.timeline-admin-row img,.timeline-admin-noimg{width:54px;height:54px;border-radius:10px;object-fit:contain;background:#f2f5f8;border:1px solid var(--line);display:grid;place-items:center}.timeline-admin-row div{display:flex;flex-direction:column;min-width:0}.timeline-admin-row div span{color:var(--muted);font-size:.9rem}
@media(max-width:760px){.history-years{top:78px;margin:18px 0 28px}.history-year{grid-template-columns:1fr;gap:12px}.history-year-heading{position:static;flex-direction:row;align-items:baseline;gap:10px}.history-year-heading span{font-size:1.8rem}.history-list:before{left:7px}.history-card{margin-left:28px;grid-template-columns:1fr}.history-marker{left:-27px}.history-image-wrap{min-height:0;border-right:0;border-bottom:1px solid var(--line);max-height:220px}.history-image{min-height:0;max-height:220px}.history-card-main{padding:18px}.history-toggle-button{width:100%;min-height:50px;justify-content:space-between;padding:10px 11px 10px 16px;border-radius:14px;background:#f3f7fb}.history-toggle-icon{width:32px;height:32px;flex-basis:32px}.history-toggle-icon:before,.history-toggle-icon:after{width:14px}.history-details[open] .history-body{margin-top:16px}.timeline-admin-row{grid-template-columns:54px 1fr auto!important}.timeline-admin-row time{grid-column:2}.timeline-admin-row div{grid-column:1/-1}.timeline-admin-row .btn{grid-column:3;grid-row:1/3}}


/* Logo UDPS 90 — en-tête */
.brand img{width:118px;height:64px;object-fit:contain;object-position:left center;flex:0 0 auto}
@media(max-width:680px){.brand img{width:104px;height:58px}.topbar{min-height:76px}.mainnav{top:76px}}


/* Accueil — ergonomie smartphone */
.home-hero{position:relative}.home-wave{display:inline-block;font-size:.82em}.home-emergency{text-decoration:none;color:#fff;transition:transform .18s ease,background .18s ease}.home-emergency:hover{transform:translateY(-2px);background:rgba(255,255,255,.14)}.home-emergency strong{font-size:1.75rem;line-height:1.15;color:#fff}.home-emergency-label{font-weight:750}.home-quick-actions{display:none}.home-section-card{display:flex;flex-direction:column}.home-section-card-copy{min-width:0}.home-section-card h3{line-height:1.25}.home-top-link{display:none}.home-content-link>span{flex:0 0 auto}

@media(max-width:760px){
  .shell{padding:16px 12px 48px}
  .home-hero{display:block;padding:22px 18px 18px;border-radius:20px;margin:0 -2px;box-shadow:0 8px 24px rgba(20,49,77,.09)}
  .home-hero .eyebrow{font-size:.68rem;margin-bottom:7px}
  .home-hero h1{font-size:clamp(2rem,10vw,2.75rem);line-height:1.04;margin:0 0 10px;letter-spacing:-.025em}
  .home-hero-copy>p:last-child{font-size:.95rem;line-height:1.55;margin:0;color:#e0eaf4}
  .home-emergency{margin-top:18px;padding:13px 15px;border-radius:15px;display:grid;grid-template-columns:1fr auto;gap:1px 12px;align-items:center;background:rgba(255,255,255,.11)}
  .home-emergency-label{font-size:.8rem;grid-column:1}
  .home-emergency strong{font-size:1.22rem;grid-column:2;grid-row:1/3}
  .home-emergency small{font-size:.72rem;grid-column:1}

  .home-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 4px}
  .home-quick-action{min-width:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;box-shadow:0 2px 9px rgba(20,49,77,.035)}
  .home-quick-action:active{transform:scale(.98)}
  .home-quick-icon{width:34px;height:34px;border-radius:11px;background:#eaf2f9;display:grid;place-items:center;color:var(--navy);font-weight:900;font-size:1.05rem}
  .home-quick-action strong{display:block;font-size:.78rem;line-height:1.2}
  .home-quick-action small{display:none}
  .home-quick-call .home-quick-icon{background:#eef7f2;color:var(--success)}

  .home-alert{margin:12px 0;padding:14px;border-radius:14px;align-items:flex-start;gap:10px}
  .home-alert p{font-size:.9rem;line-height:1.45}
  .home-alert .btn{flex:0 0 auto}

  .home-section-head{margin:28px 2px 12px}
  .home-section-head h2{font-size:1.45rem;line-height:1.15}
  .home-section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .home-section-card{min-height:0;padding:14px 12px;border-radius:15px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center}
  .home-section-card .icon-dot{width:34px;height:34px;border-radius:11px;grid-row:1}
  .home-section-card h3{font-size:.94rem;margin:0;line-height:1.2}
  .home-section-card p{display:none}
  .home-section-card:hover{transform:none}

  .home-content-sections{margin-top:26px}
  .home-page-section{scroll-margin-top:90px;margin-top:28px}
  .home-page-section:first-child{margin-top:0}
  .home-page-section-head{margin:0 2px 10px;align-items:center}
  .home-page-section-head .eyebrow{font-size:.66rem;margin-bottom:3px}
  .home-page-section-head h2{font-size:1.28rem;line-height:1.2}
  .home-top-link{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:900}
  .home-link-grid{gap:7px}
  .home-content-link{min-height:52px;padding:12px 13px;border-radius:13px;box-shadow:none}
  .home-content-link strong{font-size:.94rem;line-height:1.25}
  .home-content-link p{display:none}
  .home-content-link>span{font-size:24px;line-height:1;color:var(--blue)}
}

@media(max-width:390px){
  .home-quick-actions{gap:6px}
  .home-quick-action{padding:10px 5px}
  .home-section-grid{gap:7px}
  .home-section-card{padding:12px 10px;grid-template-columns:30px minmax(0,1fr);gap:8px}
  .home-section-card .icon-dot{width:30px;height:30px}
  .home-section-card h3{font-size:.88rem}
}


/* Accueil V3 — cockpit bénévole */
.cockpit-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);
  gap:26px;
  align-items:center;
  padding:38px 40px;
  border-radius:24px;
  color:#fff;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.12),transparent 24%),
    linear-gradient(120deg,var(--navy2),var(--navy));
  box-shadow:var(--shadow)
}
.cockpit-hero h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.02;margin:3px 0 13px;letter-spacing:-.035em}
.cockpit-hero-copy>p:last-of-type{max-width:720px;margin:0;color:#e2edf7;font-size:1.02rem}
.cockpit-hero .eyebrow{color:#bcd2e6}
.cockpit-hero-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.cockpit-hero-links a{color:#fff;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);padding:8px 12px;border-radius:999px;font-weight:700;font-size:.86rem}
.cockpit-hero-links a:hover{background:rgba(255,255,255,.15)}
.cockpit-emergency{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:14px;
  padding:17px 18px;
  border-radius:18px;
  color:#fff;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.2);
  transition:.18s ease
}
.cockpit-emergency:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}
.cockpit-emergency-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#fff;color:var(--navy);font-size:1.25rem;font-weight:900}
.cockpit-emergency-copy{display:flex;min-width:0;flex-direction:column;line-height:1.25}
.cockpit-emergency-copy small{color:#d9e8f5;font-weight:700}
.cockpit-emergency-copy strong{font-size:1.35rem;color:#fff}
.cockpit-emergency-copy em{font-size:.74rem;color:#cbdceb;font-style:normal}
.cockpit-emergency-arrow{font-size:2rem;line-height:1}

.cockpit-block{margin-top:34px}
.cockpit-title{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:14px}
.cockpit-title h2{font-size:1.7rem;line-height:1.15;margin:0}
.cockpit-title .eyebrow{margin-bottom:4px}
.cockpit-title-help{max-width:420px;margin:0;color:var(--muted);font-size:.9rem;text-align:right}

.cockpit-alert-list{display:grid;gap:10px}
.cockpit-alert{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:13px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:15px 16px
}
.cockpit-alert-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px #e9f3fa}
.cockpit-alert.warning .cockpit-alert-dot{background:#e28b12;box-shadow:0 0 0 5px #fff2dd}
.cockpit-alert.success .cockpit-alert-dot{background:var(--success);box-shadow:0 0 0 5px #e6f5ee}
.cockpit-alert-copy strong{display:block}
.cockpit-alert-copy p{margin:2px 0 0;color:var(--muted);font-size:.9rem;line-height:1.45}
.cockpit-alert>a{font-weight:800;white-space:nowrap}

.need-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.need-card{
  position:relative;
  min-height:138px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
  padding:18px;
  border-radius:18px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  box-shadow:0 3px 14px rgba(20,49,77,.035);
  transition:.18s ease
}
.need-card:hover{transform:translateY(-2px);border-color:#c5d6e6;box-shadow:var(--shadow)}
.need-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#eaf2f9;color:var(--navy);font-size:1.05rem;font-weight:900}
.need-copy{display:flex;flex-direction:column}
.need-copy strong{font-size:1rem;line-height:1.2}
.need-copy small{margin-top:5px;color:var(--muted);font-size:.82rem;line-height:1.35}
.need-arrow{position:absolute;right:15px;top:17px;font-size:1.65rem;color:#87a2ba}

.portal-accordion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.portal-group{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 3px 14px rgba(20,49,77,.03)}
.portal-group summary{
  list-style:none;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto 30px;
  align-items:center;
  gap:12px;
  min-height:84px;
  padding:14px 16px;
  cursor:pointer;
  user-select:none
}
.portal-group summary::-webkit-details-marker{display:none}
.portal-group-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eaf2f9;color:var(--navy);font-weight:900}
.portal-group-copy{display:flex;min-width:0;flex-direction:column;line-height:1.25}
.portal-group-copy strong{font-size:1rem}
.portal-group-copy small{margin-top:3px;color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-group-count{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:.78rem;font-weight:800}
.portal-group-toggle{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#f1f5f8;color:var(--navy);font-size:1.1rem;font-weight:800}
.portal-group[open] .portal-group-toggle{font-size:0}
.portal-group[open] .portal-group-toggle:after{content:"−";font-size:1.1rem}
.portal-links{border-top:1px solid var(--line);padding:7px}
.portal-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 10px;border-radius:10px;color:var(--text)}
.portal-links a:hover{background:var(--bg);color:var(--navy)}
.portal-links a span:last-child{font-size:1.35rem;color:var(--blue)}

.mobile-dock{display:none}

@media(max-width:900px){
  .cockpit-hero{grid-template-columns:1fr;padding:30px}
  .cockpit-emergency{max-width:520px}
  .need-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:680px){
  body.has-mobile-dock{padding-bottom:84px}
  body.has-mobile-dock footer{padding-bottom:30px}
  .shell{padding:14px 12px 38px}

  .cockpit-hero{display:block;margin:0 -2px;padding:22px 18px 18px;border-radius:19px}
  .cockpit-hero h1{font-size:clamp(2rem,10.5vw,2.75rem);margin-bottom:9px}
  .cockpit-hero-copy>p:last-of-type{font-size:.92rem;line-height:1.5}
  .cockpit-hero-links{gap:7px;margin-top:17px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:none}
  .cockpit-hero-links::-webkit-scrollbar{display:none}
  .cockpit-hero-links a{flex:0 0 auto;padding:7px 10px;font-size:.78rem}

  .cockpit-emergency{margin-top:16px;padding:12px 13px;border-radius:15px;grid-template-columns:40px 1fr auto;gap:10px}
  .cockpit-emergency-icon{width:40px;height:40px;border-radius:12px;font-size:1rem}
  .cockpit-emergency-copy small{font-size:.71rem}
  .cockpit-emergency-copy strong{font-size:1.08rem}
  .cockpit-emergency-copy em{display:none}
  .cockpit-emergency-arrow{font-size:1.65rem}

  .cockpit-block{margin-top:27px}
  .cockpit-title{display:block;margin:0 2px 11px}
  .cockpit-title h2{font-size:1.38rem}
  .cockpit-title .eyebrow{font-size:.66rem}
  .cockpit-title-help{display:none}

  .cockpit-alert{grid-template-columns:auto minmax(0,1fr);gap:10px;padding:13px}
  .cockpit-alert>a{grid-column:2;justify-self:start;font-size:.85rem}
  .cockpit-alert-copy p{font-size:.84rem}

  .need-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .need-card{min-height:124px;padding:14px;border-radius:15px;gap:10px}
  .need-icon{width:36px;height:36px;border-radius:11px;font-size:.95rem}
  .need-copy strong{font-size:.9rem}
  .need-copy small{display:none}
  .need-arrow{right:12px;top:13px;font-size:1.4rem}

  .portal-accordion{grid-template-columns:1fr;gap:8px}
  .portal-group{border-radius:14px}
  .portal-group summary{grid-template-columns:36px minmax(0,1fr) auto 28px;gap:9px;min-height:68px;padding:10px 11px}
  .portal-group-icon{width:36px;height:36px;border-radius:11px}
  .portal-group-copy strong{font-size:.92rem}
  .portal-group-copy small{font-size:.75rem}
  .portal-group-count{min-width:25px;height:25px;font-size:.7rem}
  .portal-group-toggle{width:28px;height:28px}
  .portal-links{padding:5px}
  .portal-links a{min-height:46px;padding:9px 10px;font-size:.9rem}

  .mobile-dock{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:70;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    align-items:end;
    min-height:72px;
    padding:8px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    background:rgba(255,255,255,.96);
    border-top:1px solid var(--line);
    box-shadow:0 -8px 28px rgba(20,49,77,.1);
    backdrop-filter:blur(14px)
  }
  .mobile-dock-item{
    position:relative;
    min-width:0;
    min-height:52px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    padding:2px 2px;
    border:0;
    background:transparent;
    color:var(--muted);
    font:inherit;
    cursor:pointer
  }
  .mobile-dock-item>span{font-size:1.15rem;line-height:1.2;font-weight:800}
  .mobile-dock-item>small{font-size:.62rem;line-height:1.1;font-weight:750}
  .mobile-dock-emergency{color:#fff;transform:translateY(-12px)}
  .mobile-dock-emergency:before{
    content:"";
    position:absolute;
    z-index:-1;
    width:54px;height:54px;
    border-radius:18px;
    background:var(--navy);
    box-shadow:0 7px 18px rgba(11,41,72,.25)
  }
  .mobile-dock-emergency>small{position:absolute;top:51px;color:var(--navy)}
  .mobile-dock-emergency>span{font-size:1.25rem}

  .mainnav{
    position:fixed;
    top:auto;
    left:12px;
    right:12px;
    bottom:84px;
    z-index:80;
    padding:10px;
    border-radius:17px;
    box-shadow:0 18px 50px rgba(11,41,72,.22)
  }
  .mainnav a{padding:12px 13px}
}

@media(max-width:380px){
  .need-card{min-height:116px;padding:12px}
  .need-copy strong{font-size:.84rem}
  .mobile-dock-item>small{font-size:.58rem}
}


/* Carte d'accès importée depuis WordPress */
.legacy-map-card{margin:26px 0 8px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 6px 24px rgba(20,49,77,.06)}
.legacy-leaflet-map{height:min(500px,62vh);min-height:360px;background:#eaf0f5;z-index:0}
.legacy-map-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border-top:1px solid var(--line)}
.map-place-list{display:flex;flex-wrap:wrap;gap:7px}
.map-place{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font:inherit;font-size:.8rem;font-weight:750;cursor:pointer}
.map-place:hover{background:var(--bg);border-color:#c1d2e2}
.map-place-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px #e5f1f9}
.map-directions{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:10px 13px;border-radius:12px;background:var(--navy);color:#fff;font-weight:800;font-size:.86rem}
.map-directions:hover{color:#fff;background:var(--navy2)}
.map-unavailable{display:grid;place-items:center;height:100%;padding:30px;text-align:center;color:var(--muted);font-weight:700}
.article-body .leaflet-container{font-family:inherit}
.article-body .leaflet-popup-content{font-size:.86rem;font-weight:700}
.article-body .leaflet-control-attribution{font-size:10px}

@media(max-width:680px){
  .legacy-map-card{margin:20px -4px 6px;border-radius:15px}
  .legacy-leaflet-map{height:48vh;min-height:300px;max-height:420px}
  .legacy-map-footer{display:block;padding:10px}
  .map-place-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .map-place{min-height:42px;border-radius:11px;padding:7px 9px;text-align:left;font-size:.73rem}
  .map-directions{display:flex;justify-content:center;width:100%;min-height:46px;margin-top:9px}
}

.map-place-icon{width:18px;height:18px;object-fit:contain;flex:0 0 18px}
@media(max-width:680px){.map-place-icon{width:16px;height:16px;flex-basis:16px}}


/* Connexion / biométrie */
.login-wrap{
  min-height:100dvh;
  width:100%;
  padding:max(16px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  overflow-x:hidden
}
.login-card{width:min(460px,100%);max-width:100%;min-width:0}
.login-card>*{min-width:0}
.login-logo{max-width:min(250px,78vw);height:auto;max-height:94px;object-fit:contain}
.login-intro{margin-top:-2px}
.login-form input{min-width:0;max-width:100%;font-size:16px}
.login-submit{min-height:48px}
.passkey-login{margin:22px 0 0}
.passkey-main{
  width:100%;
  min-height:66px;
  justify-content:flex-start;
  text-align:left;
  padding:11px 14px;
  border-color:#bfd0df;
  background:#f6f9fc
}
.passkey-main:hover{background:#eef5fa;border-color:#a8c2d8}
.passkey-main>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.passkey-main strong{font-size:.93rem;line-height:1.25}
.passkey-main small{color:var(--muted);font-size:.76rem;font-weight:600;margin-top:2px}
.passkey-symbol,.security-icon{
  display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:13px;background:var(--navy);color:#fff;font-size:1.35rem;font-weight:900
}
.passkey-status{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#edf4f9;color:var(--navy);font-size:.82rem}
.passkey-unsupported .passkey-main{display:none}
.login-separator{display:flex;align-items:center;gap:10px;margin:21px 0;color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.login-separator:before,.login-separator:after{content:"";height:1px;flex:1;background:var(--line)}
.login-help{line-height:1.45}

.security-page{max-width:980px;margin:0 auto}
.security-head h1{font-size:clamp(34px,5vw,54px);line-height:1.05}
.security-onboarding{margin:22px 0;padding:17px 18px;border:1px solid #b9d6ea;border-radius:15px;background:#eef7fc}
.security-onboarding p{margin:4px 0 0;color:var(--muted)}
.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:22px}
.passkey-enroll-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.passkey-enroll-card h2{margin:1px 0 5px}
.passkey-enroll-card p{margin:0;color:var(--muted)}
.passkey-register-btn,.passkey-enroll-card .passkey-status{grid-column:1/-1}
.passkey-register-btn{min-height:48px}
.passkey-list{display:flex;flex-direction:column;gap:9px}
.passkey-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:12px}
.passkey-row>div{min-width:0}
.passkey-row strong{display:block}
.passkey-row small{display:block;margin-top:2px;color:var(--muted);font-size:.76rem}
.security-note{margin-top:15px;padding:15px 17px;border-radius:14px;background:#eef2f6;color:var(--text)}
.security-note p{margin:4px 0 0;color:var(--muted);font-size:.88rem}

@media(max-width:680px){
  .login-wrap{place-items:start center;padding-top:max(18px,env(safe-area-inset-top))}
  .login-card{margin:auto 0;padding:24px 17px;border-radius:20px}
  .login-logo{max-width:210px;margin:0 auto 20px}
  .login-card .eyebrow{text-align:center}
  .login-card h1{text-align:center;font-size:34px;line-height:1.05;margin:.15em 0 .35em}
  .login-intro{text-align:center;font-size:.9rem;line-height:1.45}
  .passkey-main{min-height:64px;padding:10px 12px}
  .stack{gap:13px}
  .stack input{padding:12px;border-radius:11px}
  .login-help{text-align:center;font-size:.76rem}
  .security-grid{grid-template-columns:1fr}
  .passkey-enroll-card{grid-template-columns:42px 1fr}
  .passkey-row{align-items:flex-start;flex-direction:column}
  .passkey-row form,.passkey-row button{width:100%}
}


/* Ajustements UX connexion : eANPS d'abord, clé d'accès ensuite */
.passkey-login{margin:0}
.passkey-secondary{
  width:100%;
  min-height:62px;
  justify-content:flex-start;
  text-align:left;
  padding:10px 13px;
  border:1px solid #bfd0df;
  background:#fff;
  color:var(--text)
}
.passkey-secondary:hover{background:#f6f9fc;border-color:#9fbcd4}
.passkey-secondary>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.passkey-secondary strong{font-size:.9rem;line-height:1.25}
.passkey-secondary small{margin-top:2px;color:var(--muted);font-size:.75rem;font-weight:600}
.login-separator{margin:22px 0 14px}
.login-separator span{text-align:center;white-space:normal}
@media(max-width:680px){
  .passkey-secondary{min-height:60px;padding:10px 11px}
  .passkey-secondary strong{font-size:.86rem}
  .passkey-secondary small{font-size:.71rem}
}


/* Connexion mobile compacte : tient dans la hauteur utile sans scroll */
@media (max-width:680px){
  html,body{min-height:100%;overflow-x:hidden}
  body:has(.login-wrap){overflow-y:auto;background:#eef3f7}

  .login-wrap{
    min-height:100svh;
    display:grid;
    place-items:center;
    padding:
      max(8px,env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left));
  }

  .login-card{
    width:min(100%,430px);
    margin:0;
    padding:16px 15px 14px;
    border-radius:18px;
  }

  .login-logo{
    display:block;
    width:auto;
    max-width:min(180px,52vw);
    max-height:72px;
    margin:0 auto 10px;
  }

  .login-card .eyebrow{
    margin:0 0 4px;
    font-size:.62rem;
    letter-spacing:.16em;
    text-align:center;
  }

  .login-card h1{
    margin:0 0 5px;
    font-size:clamp(1.9rem,8vw,2.35rem);
    line-height:1;
  }

  .login-intro{
    margin:0 0 12px;
    font-size:.82rem;
    line-height:1.32;
  }

  .login-form{gap:9px}
  .login-form label>span{
    display:block;
    margin-bottom:4px;
    font-size:.84rem;
    font-weight:750;
  }

  .login-form input{
    height:46px;
    min-height:46px;
    padding:9px 11px;
    font-size:16px;
    border-radius:10px;
  }

  .login-submit{
    min-height:46px;
    padding:9px 12px;
    font-size:.91rem;
    border-radius:11px;
  }

  .login-separator{
    margin:12px 0 9px;
    gap:7px;
    font-size:.62rem;
    letter-spacing:.045em;
  }

  .login-separator span{
    max-width:78%;
    line-height:1.18;
  }

  .passkey-secondary{
    min-height:54px;
    padding:8px 10px;
    border-radius:11px;
  }

  .passkey-symbol{
    width:36px;
    height:36px;
    border-radius:11px;
    font-size:1.05rem;
  }

  .passkey-secondary strong{
    font-size:.78rem;
    line-height:1.12;
  }

  .passkey-secondary small{
    margin-top:2px;
    font-size:.66rem;
    line-height:1.15;
  }

  .login-help{
    margin:10px 3px 0;
    font-size:.67rem;
    line-height:1.28;
  }

  .flash{margin-bottom:9px;padding:9px 10px;font-size:.78rem}
}

/* Téléphones bas / petite hauteur : compacter encore */
@media (max-width:680px) and (max-height:760px){
  .login-wrap{place-items:start center}
  .login-card{padding:12px 13px 11px}
  .login-logo{max-width:150px;max-height:58px;margin-bottom:7px}
  .login-card h1{font-size:1.8rem;margin-bottom:3px}
  .login-intro{font-size:.76rem;margin-bottom:9px}
  .login-form{gap:7px}
  .login-form input{height:42px;min-height:42px}
  .login-submit{min-height:43px}
  .login-separator{margin:9px 0 7px}
  .passkey-secondary{min-height:50px}
  .login-help{font-size:.62rem;line-height:1.22;margin-top:7px}
}


/* Sécurité & biométrie : version mobile compacte */
@media (max-width:680px){
  .security-page{
    max-width:none;
    margin:0;
  }

  .security-page .breadcrumbs{
    margin:0 0 14px;
    font-size:.8rem;
  }

  .security-head{
    margin:0;
  }

  .security-head .eyebrow{
    margin:0 0 4px;
    font-size:.62rem;
    letter-spacing:.15em;
  }

  .security-head h1{
    margin:0 0 8px;
    font-size:clamp(2rem,9vw,2.55rem);
    line-height:1.03;
    letter-spacing:-.025em;
  }

  .security-head .lead{
    margin:0;
    font-size:.9rem;
    line-height:1.48;
  }

  .security-onboarding{
    margin:15px 0 13px;
    padding:13px 14px;
    border-radius:13px;
  }

  .security-onboarding strong{
    font-size:.9rem;
  }

  .security-onboarding p{
    margin:3px 0 0;
    font-size:.79rem;
    line-height:1.4;
  }

  .security-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:0;
  }

  .security-grid .panel{
    padding:14px;
    border-radius:15px;
  }

  .passkey-enroll-card{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:10px 11px;
    align-items:start;
  }

  .passkey-enroll-card .security-icon{
    width:38px;
    height:38px;
    border-radius:11px;
    font-size:1rem;
  }

  .passkey-enroll-card h2{
    margin:0 0 3px;
    font-size:1.05rem;
    line-height:1.15;
  }

  .passkey-enroll-card p{
    margin:0;
    font-size:.78rem;
    line-height:1.35;
  }

  .passkey-register-btn{
    grid-column:1/-1;
    min-height:46px;
    margin-top:2px;
    padding:10px 12px;
    font-size:.88rem;
    border-radius:11px;
  }

  .passkey-enroll-card .passkey-status{
    grid-column:1/-1;
    margin-top:0;
  }

  .security-grid .panel>h2{
    margin:0 0 10px;
    font-size:1rem;
  }

  .passkey-list{
    gap:7px;
  }

  .passkey-row{
    padding:10px;
    border-radius:11px;
    gap:9px;
  }

  .passkey-row strong{
    font-size:.86rem;
  }

  .passkey-row small{
    margin-top:2px;
    font-size:.68rem;
    line-height:1.3;
  }

  .passkey-row form,
  .passkey-row button{
    width:100%;
  }

  .passkey-row button{
    min-height:40px;
  }

  .security-note{
    margin-top:10px;
    padding:12px 13px;
    border-radius:12px;
  }

  .security-note strong{
    font-size:.85rem;
  }

  .security-note p{
    margin:3px 0 0;
    font-size:.74rem;
    line-height:1.35;
  }

  /* Évite que la barre du bas masque les actions */
  .security-page{
    padding-bottom:8px;
  }
}

/* Petits écrans en hauteur : tout resserrer encore */
@media (max-width:680px) and (max-height:760px){
  .security-page .breadcrumbs{
    margin-bottom:10px;
  }

  .security-head h1{
    font-size:1.9rem;
    margin-bottom:5px;
  }

  .security-head .lead{
    font-size:.82rem;
    line-height:1.38;
  }

  .security-onboarding{
    margin:10px 0;
    padding:10px 12px;
  }

  .security-onboarding p{
    font-size:.73rem;
  }

  .security-grid{
    gap:8px;
  }

  .security-grid .panel{
    padding:12px;
  }

  .passkey-enroll-card{
    grid-template-columns:34px minmax(0,1fr);
    gap:8px 9px;
  }

  .passkey-enroll-card .security-icon{
    width:34px;
    height:34px;
  }

  .passkey-enroll-card h2{
    font-size:.96rem;
  }

  .passkey-enroll-card p{
    font-size:.72rem;
    line-height:1.3;
  }

  .passkey-register-btn{
    min-height:42px;
    font-size:.82rem;
  }

  .security-note{
    padding:10px 11px;
  }
}


/* ===== Portail V4 technique ===== */
.home-command{margin-top:18px}
.home-search{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px 9px;box-shadow:0 4px 18px rgba(20,49,77,.04)}
.home-search>span{font-size:1.35rem;color:var(--navy);padding-left:5px}
.home-search input{border:0;background:transparent;min-width:0;padding:10px 2px;font-size:.95rem;outline:none}
.home-search button{border:0;border-radius:11px;background:var(--navy);color:#fff;padding:10px 14px;font-weight:800}
.favorite-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.favorite-mini-grid a{position:relative;display:flex;flex-direction:column;gap:3px;padding:13px 38px 13px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--text)}
.favorite-mini-grid small{font-size:.62rem;color:var(--muted);letter-spacing:.08em}.favorite-mini-grid span{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--blue)}

.favorite-form{display:inline-flex;margin:0}.favorite-btn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#8597a8;font-size:1.35rem;cursor:pointer}.favorite-btn.is-favorite{color:#d69700;background:#fff8e6;border-color:#ecd49a}
.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.page-title-row h1{margin-top:0}
.required-read{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:16px;border-radius:14px;border:1px solid #e5c36d;background:#fff8e4}.required-read.is-read{display:block;border-color:#b7d9c7;background:#edf8f2}.required-read p{margin:2px 0 0;color:var(--muted)}

.empty-state{padding:28px;border:1px dashed #bfcbd6;border-radius:17px;background:rgba(255,255,255,.55);text-align:center}.empty-state strong{font-size:1.05rem}.empty-state p{margin:5px 0 0;color:var(--muted)}
.search-page-form{display:grid;grid-template-columns:1fr auto;gap:9px;margin:20px 0}.search-page-form input{min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;font-size:16px}.search-count{color:var(--muted)}
.search-results,.favorite-list{display:flex;flex-direction:column;gap:8px}.search-result{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--text)}.search-result p{margin:3px 0 0;color:var(--muted);font-size:.82rem}.result-type{display:inline-flex;padding:5px 7px;border-radius:999px;background:#eaf2f9;color:var(--navy);font-size:.62rem;font-weight:850;text-transform:uppercase}
.favorite-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px}.favorite-row>a{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;min-width:0;color:var(--text)}.favorite-row>a small{grid-column:2;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contact-card{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px}.contact-card img,.contact-avatar{width:62px;height:62px;border-radius:16px;object-fit:cover}.contact-avatar{display:grid;place-items:center;background:var(--navy);color:#fff;font-size:1.5rem;font-weight:900}.contact-card h2{font-size:.95rem;margin:2px 0}.contact-card p{margin:0;color:var(--muted);font-size:.8rem}.contact-actions{display:flex;gap:7px;margin-top:10px}.contact-actions a,.topic-contact a{padding:7px 9px;border-radius:9px;background:#eef4f8;font-size:.75rem;font-weight:800}
.topic-list{display:grid;gap:9px}.topic-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.topic-card summary{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;padding:13px;cursor:pointer;list-style:none}.topic-card summary::-webkit-details-marker{display:none}.topic-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eaf2f9;color:var(--navy);font-weight:900}.topic-card summary small{display:block;margin-top:2px;color:var(--muted)}.topic-contacts{padding:0 13px 13px}.topic-contact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border-radius:11px;background:var(--bg);margin-top:6px}.topic-contact small{display:block;color:var(--muted)}
.procedure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.procedure-card{display:flex;flex-direction:column;min-height:190px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px}.procedure-card-head{display:flex;justify-content:space-between;align-items:center}.procedure-card-head>span{font-size:.65rem;font-weight:850;text-transform:uppercase;color:var(--blue)}.procedure-card h2{font-size:1.05rem;margin:12px 0 6px}.procedure-card p{margin:0;color:var(--muted);font-size:.84rem}.procedure-card>a{margin-top:auto;padding-top:15px;font-weight:800}.importance-urgent{border-top:4px solid #c93b3b}.importance-important{border-top:4px solid #d8981b}.procedure-help{display:block;margin:20px 0;padding:13px;border-radius:12px;background:#edf5fa;font-weight:800}
.checklist-list{display:grid;gap:12px}.checklist-card{padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px}.checklist-card>p{color:var(--muted)}.check-item button{width:100%;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;border:0;background:transparent;text-align:left;padding:8px 0;cursor:pointer}.check-item button>span{display:grid;place-items:center;width:30px;height:30px;border:2px solid #c9d4dd;border-radius:9px}.check-item.checked button>span{background:var(--navy);color:#fff;border-color:var(--navy)}.check-item small{display:block;color:var(--muted);margin-top:2px}
.tools-groups>h2,.faq-list>h2{margin-top:26px}.tool-row{display:flex;align-items:center;gap:9px;margin:7px 0}.tool-row>a{flex:1;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:11px;background:#fff;border:1px solid var(--line);border-radius:13px;color:var(--text)}.tool-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#eaf2f9}.tool-row small{display:block;color:var(--muted)}
.faq-item{position:relative;background:#fff;border:1px solid var(--line);border-radius:13px;margin:7px 0;overflow:hidden}.faq-item summary{display:flex;justify-content:space-between;gap:12px;padding:14px;cursor:pointer;font-weight:800;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-answer{padding:0 14px 14px;color:var(--text)}.faq-fav{position:absolute;right:46px;top:7px}
.progress-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:15px;margin:18px 0}.progress-card>strong{font-size:1.6rem;color:var(--navy)}.progress-bar{height:8px;background:#e6edf2;border-radius:999px;overflow:hidden;margin-top:6px}.progress-bar i{display:block;height:100%;background:var(--blue);border-radius:999px}.onboarding-list{display:flex;flex-direction:column;gap:8px}.onboarding-step{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:13px;background:#fff;border:1px solid var(--line);border-radius:14px}.step-status{display:grid;place-items:center;width:34px;height:34px;border:2px solid #cbd6df;border-radius:11px}.onboarding-step.completed .step-status{background:var(--navy);color:#fff;border-color:var(--navy)}.onboarding-step p{margin:2px 0;color:var(--muted);font-size:.82rem}
.report-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:15px}.report-form input,.report-form select,.report-form textarea,.admin-two input,.admin-two select,.admin-two textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}.my-report{padding:10px 0;border-bottom:1px solid var(--line)}.my-report small{display:block;color:var(--muted)}
.doc-actions{display:flex;align-items:center;gap:8px}

.sidebar-label{display:block;margin:13px 11px 4px;font-size:.61rem;font-weight:900;color:#8ba0b3;text-transform:uppercase;letter-spacing:.11em}
.admin-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:15px;align-items:start}.admin-list{display:flex;flex-direction:column;gap:6px}.admin-list>a,.admin-list>div{display:flex;flex-direction:column;padding:11px 12px;background:#fff;border:1px solid var(--line);border-radius:11px;color:var(--text)}.admin-list small{color:var(--muted);margin-top:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-two label{display:block;font-weight:750;font-size:.82rem}.admin-two label input,.admin-two label select,.admin-two label textarea{margin-top:5px}.admin-two .check{display:flex;gap:8px;align-items:center}.admin-two .check input{width:auto;margin:0}.analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.report-admin-description{padding:12px;border-radius:10px;background:var(--bg)}

@media(max-width:900px){.procedure-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.favorite-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr}.admin-two{grid-template-columns:1fr}}
@media(max-width:680px){
  .home-search{grid-template-columns:auto 1fr;padding:7px}.home-search button{grid-column:1/-1;width:100%;padding:9px}.favorite-mini-grid{grid-template-columns:1fr 1fr}
  .page-title-row{align-items:flex-start}.favorite-btn{width:36px;height:36px}
  .required-read{display:block}.required-read form{margin-top:10px}.required-read .btn{width:100%}
  .search-page-form{grid-template-columns:1fr}.search-page-form .btn{width:100%}.search-result{grid-template-columns:1fr auto}.search-result .result-type{grid-column:1/-1;justify-self:start}
  .contact-grid,.procedure-grid{grid-template-columns:1fr}.contact-card{grid-template-columns:50px 1fr}.contact-card img,.contact-avatar{width:50px;height:50px}
  .topic-contact{display:block}.topic-contact>div:last-child{display:flex;gap:6px;margin-top:8px}
  .report-layout{grid-template-columns:1fr}.onboarding-step{grid-template-columns:34px 1fr}.onboarding-step form{grid-column:2}.onboarding-step form .btn{width:100%}
  .form-grid{grid-template-columns:1fr}.doc-row{align-items:flex-start}.doc-actions{flex-direction:column;align-items:stretch}.doc-actions .favorite-form,.doc-actions .favorite-btn{width:100%}
  .favorite-row>a{grid-template-columns:1fr}.favorite-row>a small{grid-column:1}
}


/* ===== Menu responsive V5 ===== */

/* Barre PC : seulement les accès les plus utiles */
.topbar-actions{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.desktop-quicknav{
  display:flex;
  align-items:center;
  gap:3px;
}
.desktop-quicknav a{
  padding:8px 10px;
  border-radius:9px;
  color:var(--text);
  font-size:.86rem;
  font-weight:700;
  white-space:nowrap;
}
.desktop-quicknav a:hover{
  background:var(--bg);
  color:var(--navy);
}
.navtoggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:40px;
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--navy);
  font-size:1rem;
  font-weight:800;
  cursor:pointer;
}
.navtoggle:hover{background:var(--bg)}
.navtoggle>span:first-child{font-size:1.2rem;line-height:1}

/* Le panneau est indépendant de la page : il scrolle lui-même */
.mainnav{
  position:fixed !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:0 !important;
  top:88px !important;
  right:max(18px,calc((100vw - 1240px)/2)) !important;
  left:auto !important;
  bottom:auto !important;
  width:min(620px,calc(100vw - 36px)) !important;
  max-height:min(690px,calc(100dvh - 108px)) !important;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:18px !important;
  background:#fff !important;
  box-shadow:0 22px 65px rgba(11,41,72,.22) !important;
  overflow:hidden !important;
  z-index:101 !important;

  opacity:0;
  visibility:hidden;
  transform:translateY(-8px) scale(.985);
  transform-origin:top right;
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
.mainnav.open{
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}
.mainnav-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px 16px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.mainnav-head>div{display:flex;flex-direction:column;line-height:1.2}
.mainnav-head strong{font-size:1rem}
.mainnav-head small{margin-top:2px;color:var(--muted);font-size:.72rem}
.mainnav-close{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  padding:0;
  border:0;
  border-radius:10px;
  background:var(--bg);
  color:var(--navy);
  font-size:1.45rem;
  line-height:1;
  cursor:pointer;
}
.mainnav-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:12px;
  scrollbar-width:thin;
}
.mainnav-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.mainnav-link{
  min-width:0;
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:10px !important;
  border-radius:11px !important;
  color:var(--text) !important;
  background:#fff;
  border:1px solid transparent;
  font-size:.86rem;
  font-weight:750;
}
.mainnav-link:hover{
  background:var(--bg) !important;
  border-color:var(--line);
}
.mainnav-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:#eaf2f9;
  color:var(--navy);
  font-size:.9rem;
  font-weight:900;
}
.mainnav-link>b{color:#8ca2b5;font-size:1.2rem}
.mainnav-section{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.mainnav-section-title{
  grid-column:1/-1;
  padding:0 4px 2px;
  color:var(--muted);
  font-size:.64rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.11em;
}
.mainnav-logout{color:#9a3434 !important}
.mainnav-logout .mainnav-icon{background:#fff0f0;color:#9a3434}

.nav-backdrop{
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(9,25,40,.26);
  opacity:0;
  transition:opacity .16s ease;
}
.nav-backdrop.open{opacity:1}
html.nav-is-open,
body.nav-is-open{
  overflow:hidden !important;
  overscroll-behavior:none;
}

/* Écrans intermédiaires : on réduit la barre avant qu'elle ne casse */
@media(max-width:1040px){
  .desktop-quicknav a:nth-child(4){display:none}
}
@media(max-width:900px){
  .desktop-quicknav{display:none}
  .navtoggle-label{display:none}
  .navtoggle{width:42px;height:42px;padding:0}
}

/* Smartphone : vrai drawer pleine hauteur, seul le menu défile */
@media(max-width:680px){
  .topbar{
    height:72px;
    padding:0 14px;
  }
  .brand img{
    width:155px;
    height:58px;
  }

  .mainnav{
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    left:auto !important;
    width:min(88vw,360px) !important;
    height:100dvh !important;
    max-height:100dvh !important;
    border:0 !important;
    border-left:1px solid var(--line) !important;
    border-radius:0 !important;
    transform:translateX(102%) !important;
    transform-origin:right center;
    box-shadow:-14px 0 45px rgba(11,41,72,.2) !important;
  }
  .mainnav.open{
    transform:translateX(0) !important;
  }

  .mainnav-head{
    min-height:70px;
    padding:
      max(12px,env(safe-area-inset-top))
      13px
      11px;
  }
  .mainnav-head strong{font-size:1.02rem}
  .mainnav-close{width:38px;height:38px}

  .mainnav-scroll{
    padding:9px 10px calc(18px + env(safe-area-inset-bottom));
  }
  .mainnav-grid,
  .mainnav-section{
    grid-template-columns:1fr;
    gap:5px;
  }
  .mainnav-link{
    min-height:52px;
    grid-template-columns:38px minmax(0,1fr) auto;
    padding:7px 9px !important;
    border-radius:11px !important;
    font-size:.88rem;
  }
  .mainnav-icon{
    width:38px;
    height:38px;
  }

  .nav-backdrop{
    background:rgba(9,25,40,.45);
  }

  /* le bouton Menu du dock ouvre le même drawer sans déplacer la page */
  .mobile-dock{z-index:90}
  .mobile-dock .navtoggle{display:flex}
}

/* Très petits téléphones */
@media(max-width:380px){
  .mainnav{width:92vw !important}
  .brand img{width:142px}
}


/* Correctif menu mobile : ne pas réserver une colonne d'icône vide */
.mainnav-link{
  grid-template-columns:minmax(0,1fr) auto !important;
}
.mainnav-link.has-icon{
  grid-template-columns:34px minmax(0,1fr) auto !important;
}
.mainnav-link>span:not(.mainnav-icon){
  min-width:0;
}
.mainnav-link>b{
  justify-self:end;
}

/* Les intitulés du menu restent sur une ligne sur smartphone */
@media(max-width:680px){
  .mainnav{
    width:min(94vw,390px) !important;
  }

  .mainnav-link{
    grid-template-columns:minmax(0,1fr) auto !important;
    min-height:48px;
    padding:7px 10px !important;
  }

  .mainnav-link.has-icon{
    grid-template-columns:36px minmax(0,1fr) auto !important;
  }

  .mainnav-link>span:not(.mainnav-icon){
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .mainnav-icon{
    width:36px;
    height:36px;
  }
}

@media(max-width:360px){
  .mainnav{
    width:96vw !important;
  }
  .mainnav-link{
    font-size:.84rem;
  }
}


/* ===== Bandeau d'installation PWA mobile ===== */
.pwa-install-banner{
  display:none;
}

@media(max-width:760px){
  .pwa-install-banner:not([hidden]){
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    margin:10px 0 12px;
    padding:11px 12px;
    border:1px solid #bdd2e2;
    border-radius:14px;
    background:#edf6fb;
    box-shadow:0 3px 12px rgba(15,58,89,.05);
  }

  .pwa-install-icon{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#fff;
    overflow:hidden;
    border:1px solid rgba(15,58,89,.08);
  }

  .pwa-install-icon img{
    width:36px;
    height:36px;
    object-fit:contain;
  }

  .pwa-install-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
  }

  .pwa-install-copy strong{
    color:var(--navy);
    font-size:.84rem;
    line-height:1.15;
  }

  .pwa-install-copy>span{
    color:var(--muted);
    font-size:.69rem;
    line-height:1.28;
  }

  .pwa-install-ios-help{
    margin-top:5px;
    padding-top:5px;
    border-top:1px solid rgba(15,58,89,.12);
    color:var(--text) !important;
  }

  .pwa-install-action{
    min-height:38px;
    padding:7px 10px;
    border:0;
    border-radius:10px;
    background:var(--navy);
    color:#fff;
    font-size:.72rem;
    font-weight:850;
    white-space:nowrap;
    cursor:pointer;
  }
}

@media(max-width:390px){
  .pwa-install-banner:not([hidden]){
    grid-template-columns:38px minmax(0,1fr);
  }

  .pwa-install-icon{
    width:38px;
    height:38px;
  }

  .pwa-install-icon img{
    width:32px;
    height:32px;
  }

  .pwa-install-action{
    grid-column:1/-1;
    width:100%;
    min-height:40px;
  }
}

/* ===== Remplissage : Organisation / Qui contacter ? ===== */
.org-section{margin-top:28px}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:12px}
.section-kicker{font-size:.65rem;font-weight:900;letter-spacing:.13em;color:var(--blue)}
.section-heading h2{margin:3px 0 0}
.org-bureau{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.org-ca-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.org-card{display:grid;grid-template-columns:54px 1fr;gap:13px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:16px}
.org-card-bureau{border-top:4px solid var(--navy)}
.org-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:#eaf2f9;color:var(--navy);font-weight:900}
.org-person{min-width:0}
.org-role{display:inline-flex;margin-bottom:5px;padding:4px 7px;border-radius:999px;background:var(--navy);color:#fff;font-size:.61rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.org-person h3{margin:0;font-size:1rem}
.org-person p{margin:3px 0 0;color:var(--muted);font-size:.82rem}
.org-person small{display:block;margin-top:3px;color:var(--blue);font-weight:750}
.org-actions{display:flex;flex-direction:column;gap:5px;margin-top:11px}
.org-actions a{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 8px;border-radius:9px;background:var(--bg);font-size:.7rem;font-weight:750;color:var(--text)}
.org-actions.compact{flex-direction:row;flex-wrap:wrap}.org-actions.compact a{max-width:100%}

.contact-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.contact-help-card{padding:15px;background:#fff;border:1px solid var(--line);border-radius:16px}
.contact-help-title{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start}
.contact-help-title h2{margin:0;font-size:1.02rem}
.contact-help-title p{margin:3px 0 0;color:var(--muted);font-size:.79rem;line-height:1.4}
.contact-help-people{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.contact-help-person{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}
.contact-help-person+ .contact-help-person{border-top:1px dashed var(--line)}
.contact-help-person strong{display:block;font-size:.9rem}
.contact-help-person small{display:block;margin-top:2px;color:var(--muted);font-size:.72rem}
.contact-help-actions{display:flex;gap:6px;flex:0 0 auto}
.contact-help-actions a{display:inline-flex;align-items:center;gap:5px;min-height:38px;padding:7px 9px;border-radius:10px;background:#edf4f9;color:var(--navy);font-size:.72rem;font-weight:850}
.contact-help-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--navy);color:#fff}
.contact-help-footer a{padding:8px 11px;border-radius:9px;background:#fff;color:var(--navy);font-weight:850;font-size:.78rem}

@media(max-width:900px){
  .org-bureau,.org-ca-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .org-bureau,.org-ca-grid,.contact-help-grid{grid-template-columns:1fr}
  .org-card{grid-template-columns:46px 1fr;padding:12px}.org-avatar{width:46px;height:46px;border-radius:13px}
  .contact-help-card{padding:13px}
  .contact-help-person{align-items:flex-start;flex-direction:column}
  .contact-help-actions{width:100%}.contact-help-actions a{flex:1;justify-content:center;min-height:42px}
  .contact-help-footer{align-items:flex-start;flex-direction:column}.contact-help-footer a{width:100%;text-align:center}
}

/* Adresses collectives / pôles */
.org-group-mail{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 10px;
  border-radius:10px;
  background:#edf4f9;
  color:var(--navy);
  font-size:.75rem;
  font-weight:850;
}
.contact-group-mail{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  margin-top:12px;
  padding:10px 11px;
  border-radius:11px;
  background:#edf4f9;
  color:var(--navy);
}
.contact-group-mail>span{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:#fff;
}
.contact-group-mail strong{display:block;font-size:.82rem}
.contact-group-mail small{display:block;margin-top:1px;color:var(--muted);font-size:.7rem}
.contact-group-mail>b{font-size:1.2rem}
@media(max-width:680px){
  .section-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .org-group-mail{width:100%;justify-content:center}
}

/* build: organisation-contact-procedures-20260927 */


/* ===== Accès caserne directement sur l'accueil ===== */
.door-home-card{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
  margin:12px 0;
  padding:14px 15px;
  border:1px solid #b9d1e3;
  border-radius:16px;
  background:linear-gradient(135deg,#ffffff 0%,#f0f7fb 100%);
  box-shadow:0 4px 18px rgba(20,49,77,.05);
  scroll-margin-top:100px;
}
.door-home-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:14px;
  background:var(--navy);
  color:#fff;
  font-size:1.35rem;
  font-weight:900;
}
.door-home-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.door-home-kicker{
  margin-bottom:2px;
  color:var(--blue);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.11em;
}
.door-home-copy>strong{
  color:var(--text);
  font-size:.98rem;
  line-height:1.2;
}
.door-home-copy>small{
  margin-top:3px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.3;
}
.door-code{
  margin:5px 0 2px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--navy);
  font-size:1.65rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.15em;
  cursor:pointer;
}
.door-code.copied{
  font-size:.9rem;
  letter-spacing:0;
  color:var(--success);
}
.door-home-status{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  color:var(--success);
}
.door-home-status>span{
  display:grid;
  place-items:center;
  width:37px;
  height:37px;
  border-radius:50%;
  background:#e7f6ee;
  font-weight:900;
}
.door-home-status small{
  font-size:.64rem;
  font-weight:800;
}
.door-generate-form{margin:0}
.door-generate-btn{
  min-height:44px;
  padding:9px 13px;
  border:0;
  border-radius:11px;
  background:var(--navy);
  color:#fff;
  font-size:.8rem;
  font-weight:850;
  cursor:pointer;
  white-space:nowrap;
}
.door-home-unavailable{
  padding:8px 10px;
  border-radius:10px;
  background:#eef1f4;
  color:var(--muted);
  font-size:.72rem;
  font-weight:750;
}
.door-home-note{
  grid-column:2/-1;
  margin:0;
  padding-top:8px;
  border-top:1px solid rgba(18,58,99,.10);
  color:var(--muted);
  font-size:.66rem;
  line-height:1.25;
}

@media(max-width:680px){
  .door-home-card{
    grid-template-columns:42px minmax(0,1fr);
    gap:10px;
    padding:12px;
    border-radius:14px;
  }
  .door-home-icon{
    width:42px;
    height:42px;
    border-radius:12px;
  }
  .door-code{
    font-size:1.45rem;
  }
  .door-home-status,
  .door-generate-form,
  .door-home-unavailable{
    grid-column:1/-1;
    width:100%;
  }
  .door-home-status{
    flex-direction:row;
    justify-content:center;
    padding:7px;
    border-radius:10px;
    background:#e7f6ee;
  }
  .door-home-status>span{
    width:auto;
    height:auto;
    background:transparent;
  }
  .door-generate-btn{
    width:100%;
    min-height:44px;
  }
  .door-home-unavailable{text-align:center}
  .door-home-note{
    grid-column:1/-1;
    padding-top:7px;
    text-align:center;
  }
}


/* ===== Backend façon CMS ===== */
body.is-admin{
  background:#f3f5f7;
}
body.is-admin footer{
  display:none;
}
.admin-workspace{
  min-height:100dvh;
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
}
.admin-sidebar{
  position:sticky;
  top:0;
  height:100dvh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#172b3e;
  color:#fff;
  z-index:130;
}
.admin-sidebar-brand{
  flex:0 0 auto;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 13px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.admin-sidebar-brand>a{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  color:#fff;
}
.admin-sidebar-brand img{
  width:48px;
  height:48px;
  object-fit:contain;
  background:#fff;
  border-radius:11px;
  padding:4px;
}
.admin-sidebar-brand span{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.admin-sidebar-brand strong{
  font-size:.9rem;
}
.admin-sidebar-brand small{
  color:#9db0c1;
  font-size:.68rem;
  margin-top:1px;
}
.admin-sidebar-brand button{
  display:none;
  width:36px;
  height:36px;
  border:0;
  border-radius:9px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.3rem;
}
.admin-sidebar-nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:11px 9px 18px;
  scrollbar-width:thin;
  scrollbar-color:#516679 transparent;
}
.admin-nav-dashboard,
.admin-sidebar-nav details a{
  display:flex;
  align-items:center;
  min-height:38px;
  padding:7px 10px;
  border-radius:8px;
  color:#c9d4dd;
  font-size:.78rem;
  font-weight:680;
}
.admin-nav-dashboard{
  gap:9px;
  margin-bottom:9px;
  color:#fff;
  background:rgba(255,255,255,.04);
}
.admin-nav-icon{
  width:23px;
  text-align:center;
  color:#a9bfd1;
}
.admin-sidebar-nav a:hover{
  background:rgba(255,255,255,.07);
  color:#fff;
}
.admin-sidebar-nav a.active{
  background:#fff;
  color:#17364e;
  font-weight:850;
}
.admin-sidebar-nav details{
  margin:3px 0 8px;
}
.admin-sidebar-nav details summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 10px 5px;
  color:#8097aa;
  font-size:.62rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.09em;
  cursor:pointer;
  list-style:none;
}
.admin-sidebar-nav details summary::-webkit-details-marker{display:none}
.admin-sidebar-nav details summary span{
  transition:transform .15s ease;
}
.admin-sidebar-nav details:not([open]) summary span{
  transform:rotate(-90deg);
}
.admin-sidebar-nav details>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.admin-sidebar-footer{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
  padding:10px;
  border-top:1px solid rgba(255,255,255,.1);
  background:#132536;
}
.admin-sidebar-footer a{
  padding:8px 7px;
  border-radius:7px;
  text-align:center;
  color:#b8c7d3;
  font-size:.68rem;
  font-weight:750;
  background:rgba(255,255,255,.04);
}
.admin-sidebar-footer a:first-child{
  grid-column:1/-1;
}

.admin-main{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.admin-topbar{
  position:sticky;
  top:0;
  z-index:80;
  height:66px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 22px;
  background:#fff;
  border-bottom:1px solid #dfe5ea;
}
.admin-menu-button{
  display:none;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--navy);
  font-size:1.15rem;
}
.admin-topbar-title{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.admin-topbar-title strong{
  font-size:.93rem;
}
.admin-topbar-title small{
  color:var(--muted);
  font-size:.66rem;
}
.admin-user{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.admin-user>span{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:#eaf1f7;
  color:var(--navy);
  font-weight:900;
}
.admin-user>div{
  display:flex;
  flex-direction:column;
  max-width:230px;
}
.admin-user strong{
  font-size:.76rem;
}
.admin-user small{
  color:var(--muted);
  font-size:.62rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-content{
  width:100%;
  max-width:1500px;
  margin:0 auto;
  padding:24px 26px 40px;
}

.admin-page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.admin-page-head h1{
  margin:2px 0 4px;
}
.admin-page-head p:last-child{
  margin:0;
  color:var(--muted);
}

.admin-tabs{
  display:flex;
  gap:3px;
  margin-bottom:14px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  width:max-content;
}
.admin-tabs a{
  padding:8px 13px;
  border-radius:8px;
  color:var(--muted);
  font-size:.78rem;
  font-weight:800;
}
.admin-tabs a.active{
  background:var(--navy);
  color:#fff;
}

.admin-filterbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto auto;
  align-items:end;
  gap:9px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.admin-filterbar label{
  display:flex;
  flex-direction:column;
  gap:4px;
  color:var(--muted);
  font-size:.68rem;
  font-weight:800;
}
.admin-filterbar input,
.admin-filterbar select{
  width:100%;
  min-height:40px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  font:inherit;
  color:var(--text);
}
.admin-log-summary{
  display:flex;
  align-items:baseline;
  gap:5px;
  margin:13px 2px 8px;
  color:var(--muted);
  font-size:.75rem;
}
.admin-log-summary strong{
  color:var(--text);
  font-size:1.05rem;
}
.admin-log-table-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.admin-log-table{
  width:100%;
  min-width:850px;
  border-collapse:collapse;
}
.admin-log-table th{
  padding:10px 12px;
  background:#f7f9fb;
  border-bottom:1px solid var(--line);
  color:#64788b;
  text-align:left;
  font-size:.65rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.admin-log-table td{
  padding:11px 12px;
  border-bottom:1px solid #edf0f3;
  vertical-align:top;
  font-size:.76rem;
}
.admin-log-table tr:last-child td{
  border-bottom:0;
}
.admin-log-table td small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.65rem;
}
.log-date{
  white-space:nowrap;
}
.log-details{
  max-width:520px;
  line-height:1.4;
}
.log-action,
.login-result{
  display:inline-flex;
  padding:5px 7px;
  border-radius:7px;
  background:#edf3f8;
  color:#315875;
  font-size:.66rem;
  font-weight:850;
  white-space:nowrap;
}
.log-action-door_code_created{
  background:#e7f6ee;
  color:#247349;
}
.log-action-door_code_error,
.login-result.failed{
  background:#fff0f0;
  color:#a53a3a;
}
.login-result.success{
  background:#e7f6ee;
  color:#247349;
}
.admin-log-empty{
  padding:30px !important;
  text-align:center;
  color:var(--muted);
}
.admin-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:14px;
  font-size:.75rem;
}
.admin-pagination a{
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  font-weight:800;
}

.admin-sidebar-backdrop{
  display:none;
}

@media(max-width:900px){
  .admin-workspace{
    display:block;
  }
  .admin-sidebar{
    position:fixed;
    inset:0 auto 0 0;
    width:min(84vw,300px);
    transform:translateX(-102%);
    transition:transform .18s ease;
    box-shadow:18px 0 55px rgba(5,20,34,.25);
  }
  .admin-sidebar.open{
    transform:translateX(0);
  }
  .admin-sidebar-brand button{
    display:grid;
    place-items:center;
  }
  .admin-sidebar-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:120;
    background:rgba(5,20,34,.43);
    opacity:0;
    transition:opacity .18s ease;
  }
  .admin-sidebar-backdrop.open{
    opacity:1;
  }
  html.admin-menu-open,
  body.admin-menu-open{
    overflow:hidden;
  }
  .admin-menu-button{
    display:grid;
    place-items:center;
  }
  .admin-content{
    padding:18px 14px 32px;
  }
  .admin-user>div{
    display:none;
  }
  .admin-filterbar{
    grid-template-columns:1fr 1fr;
  }
  .admin-filterbar .admin-search-field{
    grid-column:1/-1;
  }
}

@media(max-width:560px){
  .admin-topbar{
    height:60px;
    padding:0 11px;
  }
  .admin-topbar-title small{
    display:none;
  }
  .admin-filterbar{
    grid-template-columns:1fr;
  }
  .admin-filterbar .admin-search-field{
    grid-column:auto;
  }
  .admin-filterbar .btn{
    width:100%;
  }
  .admin-tabs{
    width:100%;
  }
  .admin-tabs a{
    flex:1;
    text-align:center;
  }
}


/* ===== Historique : upload direct & optimisation WebP ===== */
.history-admin-title{
  align-items:center;
}
.history-optimize-form{
  margin:0;
}
.history-image-warning{
  margin:0 0 14px;
  padding:11px 13px;
  border:1px solid #e6c77a;
  border-radius:11px;
  background:#fff8e5;
  color:#775500;
  font-size:.78rem;
}
.history-edit-form{
  gap:16px;
}
.history-image-editor{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:18px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#f8fafc;
}
.history-image-preview{
  min-height:145px;
}
.history-image-preview img,
.history-image-placeholder{
  width:100%;
  height:145px;
  border-radius:11px;
}
.history-image-preview img{
  display:block;
  object-fit:cover;
  background:#e9eef2;
}
.history-image-placeholder{
  display:grid;
  place-items:center;
  border:1px dashed #bdcbd6;
  background:#fff;
  color:var(--muted);
  font-size:.78rem;
}
.history-image-controls{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:11px;
  min-width:0;
}
.history-file-label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-weight:800;
}
.history-file-label input[type=file]{
  width:100%;
  padding:10px;
  border:1px dashed #afbfcc;
  border-radius:10px;
  background:#fff;
}
.history-file-label small{
  color:var(--muted);
  font-size:.68rem;
  font-weight:500;
  line-height:1.35;
}
.history-remove-image{
  display:flex;
  align-items:center;
  gap:7px;
  color:#8b3535;
  font-size:.74rem;
  font-weight:750;
}
.history-image-advanced{
  border-top:1px solid var(--line);
  padding-top:9px;
}
.history-image-advanced summary{
  color:var(--muted);
  cursor:pointer;
  font-size:.72rem;
  font-weight:750;
}
.history-image-advanced label{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-top:9px;
  font-size:.72rem;
}
.history-image-advanced input{
  width:100%;
}
.history-published-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  font-weight:800;
}
@media(max-width:760px){
  .history-admin-title{
    align-items:stretch;
    flex-direction:column;
  }
  .history-optimize-form,
  .history-optimize-form .btn{
    width:100%;
  }
  .history-image-editor{
    grid-template-columns:1fr;
  }
  .history-image-preview{
    min-height:180px;
  }
  .history-image-preview img,
  .history-image-placeholder{
    height:180px;
  }
}


/* ===== Médiathèque & migration WordPress ===== */
.media-status-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:15px;
}
.media-status-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.media-status-card strong{
  font-size:1.45rem;
  color:var(--navy);
}
.media-status-card span{
  color:var(--muted);
  font-size:.72rem;
}
.media-status-card.ok{
  border-color:#b9dfca;
  background:#f4fbf7;
}
.media-status-card.warning{
  border-color:#ead49a;
  background:#fffaf0;
}
.media-status-card.danger{
  border-color:#efbaba;
  background:#fff6f6;
}
.media-clean-ok{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:15px;
  padding:13px 15px;
  border:1px solid #b9dfca;
  border-radius:13px;
  background:#f4fbf7;
  color:#246b45;
}
.media-clean-ok span{
  font-size:.75rem;
}
.media-upload-form{
  display:flex;
  gap:10px;
  align-items:center;
}
.media-upload-form input[type=file]{
  flex:1;
  min-width:0;
  padding:9px;
  border:1px dashed #afbfcc;
  border-radius:10px;
  background:#fff;
}
.media-legacy-list{
  margin-top:20px;
}
.media-legacy-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:7px;
  padding:11px 13px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}
.media-legacy-item>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.media-legacy-item code{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#587085;
  font-size:.65rem;
}
.media-legacy-item small{
  color:var(--muted);
  font-size:.66rem;
}
.media-legacy-item>span{
  flex:0 0 auto;
  padding:5px 7px;
  border-radius:7px;
  background:#e7f6ee;
  color:#247349;
  font-size:.64rem;
  font-weight:850;
}
.media-legacy-item.missing{
  border-color:#efc4c4;
}
.media-legacy-item.missing>span{
  background:#fff0f0;
  color:#a53a3a;
}
.media-library{
  margin-top:22px;
}
.media-library-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.media-library-head h2{
  margin:0;
}
.media-library-head small{
  color:var(--muted);
}
.media-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:11px;
}
.media-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.media-card>img{
  width:100%;
  height:135px;
  display:block;
  object-fit:cover;
  background:#eef2f5;
}
.media-card>div{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:10px;
}
.media-card strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.74rem;
}
.media-card small{
  color:var(--muted);
  font-size:.64rem;
}
.media-card .btn{
  margin-top:3px;
  align-self:flex-start;
}
@media(max-width:760px){
  .media-status-grid{
    grid-template-columns:1fr;
  }
  .media-upload-form{
    flex-direction:column;
    align-items:stretch;
  }
  .media-upload-form .btn{
    width:100%;
  }
  .media-legacy-item{
    align-items:flex-start;
    flex-direction:column;
  }
  .media-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:430px){
  .media-grid{
    grid-template-columns:1fr;
  }
}


/* ===== Médiathèque : suppression et utilisation ===== */
.media-card-body{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:10px;
}
.media-card-body>strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.74rem;
}
.media-usage{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-top:4px;
  padding:7px 8px;
  border-radius:8px;
  background:#eef5fb;
  color:#315875;
}
.media-usage span{
  font-size:.65rem;
  font-weight:850;
}
.media-usage small{
  display:-webkit-box;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  color:#61798d;
  line-height:1.3;
}
.media-unused{
  margin-top:4px;
  padding:6px 8px;
  border-radius:8px;
  background:#f2f5f6;
  color:#6c7c89;
  font-size:.64rem;
  font-weight:800;
}
.media-card-actions{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:4px;
}
.media-card-actions form{
  margin:0;
}
.btn.danger{
  border-color:#e0aaaa;
  color:#9f3333;
  background:#fff7f7;
}
.btn.danger:hover:not(:disabled){
  background:#a63b3b;
  border-color:#a63b3b;
  color:#fff;
}
.btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}


/* ===== Listes réordonnables du backend ===== */
.admin-sort-section{
  margin:18px 0;
}
.admin-sort-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:8px;
}
.admin-sort-heading h2{
  margin:0 0 2px;
  font-size:1rem;
}
.admin-sort-heading small{
  color:var(--muted);
  font-size:.68rem;
}
.sort-save-state{
  min-width:120px;
  text-align:right;
  color:var(--muted);
  font-size:.68rem;
  font-weight:800;
}
.sort-save-state.saved{color:#247349}
.sort-save-state.error{color:#a53a3a}

.admin-sort-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.admin-sort-item{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-height:54px;
  padding:7px 9px 7px 6px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  box-shadow:0 1px 0 rgba(20,49,77,.02);
  transition:box-shadow .12s ease,transform .12s ease,border-color .12s ease;
}
.admin-sort-item.is-sorting{
  z-index:5;
  transform:scale(1.01);
  border-color:#77a8cc;
  box-shadow:0 10px 25px rgba(20,49,77,.16);
}
.drag-handle{
  width:34px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:8px;
  background:#eef4f8;
  color:#55738b;
  font-size:1rem;
  font-weight:900;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.drag-handle:active{cursor:grabbing}
.admin-is-sorting{
  user-select:none;
}
.admin-sort-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
  color:var(--text);
}
a.admin-sort-main:hover strong{color:var(--blue)}
.admin-sort-main strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.78rem;
}
.admin-sort-main small{
  display:-webkit-box;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  color:var(--muted);
  font-size:.66rem;
  line-height:1.3;
}
.admin-sort-status{
  padding:5px 7px;
  border-radius:7px;
  background:#eef3f7;
  color:#60798d;
  font-size:.61rem;
  font-weight:800;
  white-space:nowrap;
}
.admin-sort-badges{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.admin-sort-groups{
  display:flex;
  flex-direction:column;
  gap:15px;
}
.admin-sort-groups>section>h3{
  margin:0 0 7px;
  color:#61788c;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.onboarding-linked-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
@media(max-width:650px){
  .admin-sort-item{
    grid-template-columns:38px minmax(0,1fr);
  }
  .admin-sort-status,
  .admin-sort-badges{
    grid-column:2;
    justify-self:start;
  }
  .admin-sort-heading{
    align-items:flex-start;
    flex-direction:column;
  }
  .sort-save-state{
    min-width:0;
    text-align:left;
  }
}


/* ===== Documents : zone de glisser-déposer ===== */
.document-upload-form{
  gap:16px;
}

.document-dropzone{
  position:relative;
  min-height:150px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:center;
  gap:15px;
  padding:20px;
  border:2px dashed #b7c8d6;
  border-radius:14px;
  background:#f8fbfd;
  cursor:pointer;
  outline:none;
  transition:
    border-color .15s ease,
    background .15s ease,
    box-shadow .15s ease,
    transform .15s ease;
}

.document-dropzone:hover,
.document-dropzone:focus-visible{
  border-color:#6c9fc4;
  background:#f2f8fc;
}

.document-dropzone.is-dragover{
  border-color:#1f6fa5;
  background:#eaf5fc;
  box-shadow:0 0 0 4px rgba(31,111,165,.10);
  transform:scale(1.003);
}

.document-dropzone-icon{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:14px;
  background:#e7f0f7;
  color:var(--navy);
  font-size:1.45rem;
  font-weight:900;
}

.document-dropzone-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.document-dropzone-copy strong{
  color:var(--text);
  font-size:.92rem;
}

.document-dropzone-copy span{
  color:#41647f;
  font-size:.76rem;
}

.document-dropzone-copy small{
  margin-top:4px;
  color:var(--muted);
  font-size:.68rem;
}

.document-selected-file{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 34px;
  align-items:center;
  gap:9px;
  padding:10px 11px;
  border:1px solid #bad9c8;
  border-radius:11px;
  background:#f2fbf6;
}

.document-selected-file[hidden]{
  display:none;
}

.document-selected-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:#dff2e7;
  color:#27734b;
  font-weight:900;
}

.document-selected-file>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.document-selected-file strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.76rem;
}

.document-selected-file small{
  color:var(--muted);
  font-size:.65rem;
}

.document-file-remove{
  width:32px;
  height:32px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#8a4a4a;
  font-size:1.1rem;
  cursor:pointer;
}

.document-file-remove:hover{
  background:#f8eaea;
}

.document-dropzone.has-file .document-dropzone-icon,
.document-dropzone.has-file .document-dropzone-copy{
  opacity:.55;
}

.document-submit{
  min-height:48px;
}

.document-empty{
  padding:28px !important;
  text-align:center;
  color:var(--muted);
}

@media(max-width:650px){
  .document-dropzone{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    padding:18px 14px;
  }

  .document-selected-file{
    width:100%;
    text-align:left;
  }
}


/* ===== Documents : modification / suppression ===== */
.document-current-file{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 13px;
  border:1px solid #cbd9e3;
  border-radius:11px;
  background:#f7fafc;
}
.document-current-file>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.document-current-file span{
  color:var(--muted);
  font-size:.62rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.document-current-file strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.78rem;
}
.document-current-file small{
  color:var(--muted);
  font-size:.65rem;
}
.document-table-description{
  display:block;
  max-width:500px;
  margin-top:3px;
  color:var(--muted);
  font-size:.66rem;
  font-weight:400;
  line-height:1.3;
}
.document-actions-col{
  min-width:245px;
}
.document-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.document-row-actions form{
  margin:0;
}
.document-publish-state{
  display:inline-flex;
  padding:5px 7px;
  border-radius:7px;
  font-size:.62rem;
  font-weight:850;
}
.document-publish-state.published{
  background:#e7f6ee;
  color:#247349;
}
.document-publish-state.draft{
  background:#fff3d8;
  color:#966300;
}
.document-table-wrap tr.is-current td{
  background:#f3f8fc;
}
@media(max-width:760px){
  .document-current-file{
    align-items:stretch;
    flex-direction:column;
  }
  .document-current-file .btn{
    width:100%;
  }
  .document-row-actions{
    justify-content:flex-start;
  }
}


/* ===== Documents : alignement des boutons d’action ===== */
.document-row-actions{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  align-items:stretch;
}
.document-row-actions .btn,
.document-row-actions form,
.document-row-actions form .btn{
  width:100%;
}
.document-row-actions .btn{
  justify-content:center;
  text-align:center;
}
.document-row-actions form{
  margin:0;
}
.document-row-actions form .btn{
  min-height:40px;
}

@media(max-width:900px){
  .document-row-actions{
    grid-template-columns:1fr;
  }
}

/* ===== WYSIWYG : médiathèque intégrée ===== */
.editor-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:7px;border:1px solid var(--line);border-bottom:0;border-radius:11px 11px 0 0;background:#f6f8fa}
.editor-toolbar button{min-height:34px;padding:6px 9px;border:1px solid #d2dce4;border-radius:7px;background:#fff;color:var(--text);font:inherit;font-size:.7rem;font-weight:750;cursor:pointer}
.editor-toolbar button:hover{border-color:#8eb1ca;background:#f1f7fb}.editor-media-button{margin-left:auto;color:var(--navy)!important;background:#eaf3f9!important}
.rich-editor{min-height:300px;padding:16px;border:1px solid var(--line);border-radius:0 0 11px 11px;background:#fff;outline:none;line-height:1.55}
.rich-editor:focus{border-color:#8eb1ca;box-shadow:0 0 0 3px rgba(49,112,157,.08)}
.content-image{margin:1.15rem 0}.content-image img{display:block;max-width:100%;height:auto;border-radius:8px}
.media-picker-modal[hidden]{display:none}.media-picker-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px}
.media-picker-backdrop{position:absolute;inset:0;background:rgba(8,27,43,.58);backdrop-filter:blur(2px)}
.media-picker-dialog{position:relative;z-index:1;width:min(960px,96vw);max-height:min(780px,92dvh);display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:#fff;box-shadow:0 28px 80px rgba(8,27,43,.32)}
.media-picker-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 17px;border-bottom:1px solid var(--line)}
.media-picker-header>div{display:flex;flex-direction:column;gap:2px}.media-picker-header small{color:var(--muted);font-size:.68rem}
.media-picker-close{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:9px;background:#eef3f6;color:var(--navy);font-size:1.35rem;cursor:pointer}
.media-picker-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 17px 0}
.media-picker-tools label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:.66rem;font-weight:800}
.media-picker-tools input{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);font:inherit}
.media-picker-upload{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 17px;padding:11px 13px;border:1px dashed #aabfce;border-radius:11px;background:#f7fafc;cursor:pointer}
.media-picker-upload.is-dragover{border-color:#347eae;background:#eaf5fc}.media-picker-upload>div{display:flex;flex-direction:column;gap:2px}.media-picker-upload span{color:var(--muted);font-size:.66rem}
.media-picker-message{margin:0 17px 10px;padding:8px 10px;border-radius:9px;font-size:.7rem;font-weight:750}.media-picker-message.success{background:#e7f6ee;color:#247349}.media-picker-message.error{background:#fff0f0;color:#a53a3a}.media-picker-message.loading,.media-picker-message.info{background:#eef5fb;color:#315875}
.media-picker-grid{min-height:220px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;padding:6px 17px 18px}
.media-picker-card{min-width:0;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left;cursor:pointer}.media-picker-card:hover{border-color:#75a9cc;box-shadow:0 5px 16px rgba(20,49,77,.10)}
.media-picker-thumb{display:block;height:105px;background:#eef2f5}.media-picker-thumb img{width:100%;height:100%;display:block;object-fit:cover}.media-picker-card-name{display:block;overflow:hidden;padding:8px 9px;color:var(--text);font-size:.65rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.media-picker-loading,.media-picker-empty{grid-column:1/-1;padding:35px 10px;text-align:center;color:var(--muted);font-size:.75rem}
html.media-picker-open,body.media-picker-open{overflow:hidden}
@media(max-width:650px){.editor-media-button{margin-left:0}.media-picker-modal{padding:0}.media-picker-dialog{width:100%;height:100dvh;max-height:none;border-radius:0}.media-picker-tools{grid-template-columns:1fr}.media-picker-upload{align-items:stretch;flex-direction:column}.media-picker-upload .btn{width:100%}.media-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ===== Images au milieu du texte ===== */
.content-image{
  position:relative;
  max-width:100%;
  margin:1.2rem 0;
}
.content-image img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  border-radius:9px;
}
.content-image figcaption{
  margin-top:6px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.35;
  text-align:center;
}
.content-image.image-size-small{width:min(260px,42%)}
.content-image.image-size-medium{width:min(520px,68%)}
.content-image.image-size-large{width:min(860px,100%)}

.content-image.image-center{
  clear:both;
  margin-left:auto;
  margin-right:auto;
}
.content-image.image-full{
  clear:both;
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.content-image.image-left{
  float:left;
  margin:.35rem 1.25rem .8rem 0;
}
.content-image.image-right{
  float:right;
  margin:.35rem 0 .8rem 1.25rem;
}

.page-content::after,
.rich-editor::after{
  content:"";
  display:block;
  clear:both;
}

.rich-editor .content-image{
  cursor:pointer;
  outline:2px solid transparent;
  outline-offset:3px;
}
.rich-editor .content-image:hover{
  outline-color:#b5cee0;
}
.rich-editor .content-image.image-selected{
  outline-color:#347eae;
}
.rich-editor .content-image.image-selected::after{
  content:"Image sélectionnée";
  position:absolute;
  top:6px;
  right:6px;
  padding:3px 6px;
  border-radius:6px;
  background:rgba(13,52,79,.88);
  color:#fff;
  font-size:.58rem;
  font-weight:800;
}

.image-editor-toolbar{
  position:fixed;
  z-index:1300;
  width:max-content;
  max-width:calc(100vw - 20px);
  padding:6px;
  border:1px solid #c9d7e1;
  border-radius:11px;
  background:#fff;
  box-shadow:0 10px 28px rgba(17,44,64,.18);
}
.image-editor-toolbar[hidden]{display:none}
.image-editor-toolbar-row{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.image-editor-toolbar-row + .image-editor-toolbar-row{
  margin-top:4px;
}
.image-editor-toolbar button{
  min-height:32px;
  padding:5px 8px;
  border:1px solid #d6e0e7;
  border-radius:7px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:.65rem;
  font-weight:750;
  cursor:pointer;
}
.image-editor-toolbar button:hover{
  background:#f1f7fb;
  border-color:#8eb1ca;
}
.image-editor-toolbar button.danger{
  color:#a23a3a;
  background:#fff8f8;
}

@media(max-width:680px){
  .content-image.image-left,
  .content-image.image-right{
    float:none;
    width:min(520px,100%);
    margin:1rem auto;
  }
  .content-image.image-size-small,
  .content-image.image-size-medium,
  .content-image.image-size-large{
    max-width:100%;
  }
  .image-editor-toolbar{
    left:10px!important;
    right:10px;
    top:auto!important;
    bottom:10px;
    width:auto;
  }
  .image-editor-toolbar-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .image-editor-toolbar button{width:100%}
}


/* ===== Documents : affichage mobile plus compact ===== */
@media(max-width:680px){
  .doc-groups h2{
    margin:24px 0 10px;
    font-size:1.45rem;
  }
  .doc-list{
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .doc-row{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:16px;
    border-radius:15px;
  }
  .doc-row>div:first-child strong{
    display:block;
    font-size:1rem;
    line-height:1.3;
  }
  .doc-row>div:first-child p{
    margin:6px 0;
    font-size:.82rem;
    line-height:1.45;
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .doc-row>div:first-child small{
    font-size:.72rem;
  }
  .doc-actions{
    display:grid;
    grid-template-columns:auto 1fr 1fr;
    width:100%;
    gap:7px;
  }
  .doc-actions .btn{
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8px 9px;
  }
}

/* ===== Liseuse PDF applicative ===== */
.pdf-app-reader[hidden]{display:none}
.pdf-app-reader{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  width:100%;
  height:100dvh;
  background:#20252a;
  color:#fff;
}
html.pdf-reader-open,
body.pdf-reader-open{
  overflow:hidden!important;
  overscroll-behavior:none;
}
.pdf-app-toolbar{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-height:58px;
  padding:7px max(8px,env(safe-area-inset-right)) 7px max(8px,env(safe-area-inset-left));
  padding-top:max(7px,env(safe-area-inset-top));
  background:#123a63;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.pdf-app-back,
.pdf-app-tools button,
.pdf-app-tools a{
  display:grid;
  place-items:center;
  min-width:38px;
  height:38px;
  padding:0 7px;
  border:0;
  border-radius:9px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font:inherit;
  font-size:.8rem;
  font-weight:800;
  cursor:pointer;
}
.pdf-app-back{
  font-size:1.25rem;
}
.pdf-app-title{
  min-width:0;
  display:flex;
  flex-direction:column;
  line-height:1.2;
}
.pdf-app-title strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.82rem;
}
.pdf-app-title small{
  margin-top:2px;
  color:#c8d8e4;
  font-size:.62rem;
}
.pdf-app-tools{
  display:flex;
  gap:4px;
}
.pdf-app-offline{
  min-height:27px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:4px 10px;
  background:#29333b;
  color:#bac8d1;
  font-size:.61rem;
  text-align:center;
}
.pdf-app-offline.success{
  background:#214737;
  color:#d9f2e4;
}
.pdf-app-offline.error{
  background:#5a3030;
  color:#ffe4e4;
}
.pdf-app-stage{
  position:relative;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:12px 8px calc(18px + env(safe-area-inset-bottom));
  background:#30363b;
}
.pdf-app-pages{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  min-width:max-content;
}
.pdf-app-page{
  flex:0 0 auto;
  background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
}
.pdf-app-page canvas{
  display:block;
}
.pdf-app-loading{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:30px;
  background:#30363b;
  text-align:center;
}
.pdf-app-loading[hidden]{display:none}
.pdf-app-loading strong{
  font-size:.9rem;
}
.pdf-app-loading small{
  max-width:350px;
  color:#c1cbd2;
  font-size:.68rem;
}
.pdf-app-loading .btn{
  margin-top:8px;
}
.pdf-app-spinner{
  width:34px;
  height:34px;
  border:3px solid rgba(255,255,255,.2);
  border-top-color:#fff;
  border-radius:50%;
  animation:pdfspin .8s linear infinite;
}
@keyframes pdfspin{to{transform:rotate(360deg)}}

/* L'ancien lecteur de navigateur devient seulement un fallback desktop. */
.pdf-reader-standalone{
  padding:20px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.pdf-reader-standalone p{
  margin-top:0;
}

@media(max-width:680px){
  .pdf-app-toolbar{
    grid-template-columns:40px minmax(0,1fr) auto;
    min-height:54px;
  }
  .pdf-app-tools [data-pdf-zoom-reset]{
    display:none;
  }
  .pdf-app-tools button,
  .pdf-app-tools a{
    min-width:34px;
    height:36px;
    padding:0 5px;
  }
  .pdf-app-stage{
    padding-left:6px;
    padding-right:6px;
  }
}


/* ===== Utilisateurs backend : liste dépliable ===== */
.users-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.user-row{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.user-row>summary{
  display:grid;
  grid-template-columns:minmax(280px,1fr) auto 28px;
  align-items:center;
  gap:14px;
  min-height:68px;
  padding:10px 13px;
  cursor:pointer;
  list-style:none;
}
.user-row>summary::-webkit-details-marker{display:none}
.user-row>summary:hover{background:#f8fafc}
.user-row[open]>summary{
  border-bottom:1px solid var(--line);
  background:#f8fafc;
}
.user-row-identity{
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
}
.user-row-avatar{
  flex:0 0 38px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eaf1f7;
  color:var(--navy);
  font-weight:900;
}
.user-row-identity>div{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.user-row-identity strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.81rem;
}
.user-row-identity small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:.67rem;
}
.user-row-roles{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:5px;
}
.user-row-roles span{
  padding:4px 7px;
  border-radius:7px;
  background:#eef3f7;
  color:#526c80;
  font-size:.61rem;
  font-weight:800;
  white-space:nowrap;
}
.user-row-chevron{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  color:#688094;
  font-size:1rem;
  transition:transform .15s ease;
}
.user-row[open] .user-row-chevron{transform:rotate(180deg)}

.user-row-editor{
  padding:14px;
}
.user-role-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.user-role-option{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-height:68px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.user-role-option:has(input:checked){
  border-color:#8eb3cd;
  background:#f1f7fb;
}
.user-role-option.locked{
  background:#f5f6f7;
  color:#6f7c86;
  cursor:default;
}
.user-role-option input{
  margin-top:3px;
}
.user-role-option>span{
  display:flex;
  flex-direction:column;
  line-height:1.25;
}
.user-role-option strong{
  font-size:.72rem;
}
.user-role-option small{
  margin-top:3px;
  color:var(--muted);
  font-size:.61rem;
}
.user-row-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:11px;
}

@media(max-width:800px){
  .user-row>summary{
    grid-template-columns:minmax(0,1fr) 28px;
  }
  .user-row-roles{
    grid-column:1;
    justify-content:flex-start;
    padding-left:49px;
  }
  .user-row-chevron{
    grid-column:2;
    grid-row:1 / span 2;
  }
  .user-role-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:500px){
  .user-row>summary{
    padding:9px 10px;
  }
  .user-row-roles{
    padding-left:49px;
  }
  .user-role-grid{
    grid-template-columns:1fr;
  }
  .user-row-actions .btn{
    width:100%;
  }
}

.user-row.is-blocked{border-color:#e3c99a}.user-row.is-blocked>summary{background:#fffaf0}.user-state.blocked{background:#fff0dc!important;color:#976000!important}
.user-account-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border-top:1px solid var(--line);background:#fafbfc}.user-account-actions>div:first-child{display:flex;flex-direction:column;gap:2px}.user-account-actions strong{font-size:.72rem}.user-account-actions small{color:var(--muted);font-size:.64rem}.user-account-buttons{display:flex;gap:7px}.user-account-buttons form{margin:0}.btn.warning{border-color:#e4c174;background:#fff9eb;color:#8a5c00}.btn.warning:hover{background:#8a5c00;color:#fff}.user-self-note{padding:10px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:.65rem}
.deleted-users-section{margin-top:22px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}.deleted-users-section>summary{display:flex;gap:8px;padding:12px 14px;cursor:pointer;font-size:.75rem;font-weight:850}.deleted-users-section>summary span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#edf1f4;font-size:.62rem}.deleted-users-list{border-top:1px solid var(--line)}.deleted-user-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;border-bottom:1px solid #edf0f2}.deleted-user-row:last-child{border-bottom:0}.deleted-user-row>div{display:flex;flex-direction:column}.deleted-user-row strong{font-size:.74rem}.deleted-user-row small{color:var(--muted);font-size:.63rem}
@media(max-width:650px){.user-account-actions{align-items:stretch;flex-direction:column}.user-account-buttons{display:grid;grid-template-columns:1fr}.user-account-buttons .btn,.user-account-buttons form{width:100%}.deleted-user-row{align-items:stretch;flex-direction:column}.deleted-user-row .btn{width:100%}}


/* ===== Générateur de signature mail ===== */
.signature-page{display:flex;flex-direction:column;gap:18px}
.signature-head h1{margin:.2rem 0}.signature-head>div>p:not(.eyebrow){max-width:760px;color:var(--muted)}
.signature-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(520px,1.2fr);gap:16px;align-items:start}
.signature-settings h2{margin:0 0 3px}
.signature-identity-card{display:flex;flex-direction:column;gap:2px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#f7fafc}
.signature-identity-card strong{font-size:.8rem}.signature-identity-card span{color:var(--muted);font-size:.68rem}
.signature-functions{display:flex;flex-direction:column;gap:6px;padding:0;border:0}
.signature-functions legend{margin-bottom:6px;font-size:.72rem;font-weight:850}
.signature-functions label,.signature-option{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:.72rem;cursor:pointer}
.signature-functions label:has(input:checked),.signature-option:has(input:checked){border-color:#8eb3cd;background:#f1f7fb}
.signature-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.signature-help{margin:0;color:var(--muted);font-size:.66rem;line-height:1.4}.signature-help.success{color:#247349}.signature-help.error{color:#a53a3a}
.signature-preview-panel{padding:0!important;overflow:hidden}
.signature-preview-title{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border-bottom:1px solid var(--line);background:#f7f9fb}
.signature-preview-title span{font-size:.75rem;font-weight:850}.signature-preview-title small{color:var(--muted);font-size:.62rem}
.signature-preview{min-height:235px;display:flex;align-items:center;justify-content:center;padding:28px;background:#fff}
.signature-preview table{max-width:100%}
@media(max-width:920px){.signature-layout{grid-template-columns:1fr}.signature-preview{justify-content:flex-start;overflow:auto}}
@media(max-width:560px){.signature-actions{grid-template-columns:1fr}.signature-preview{padding:18px 12px}.signature-preview-title{align-items:flex-start;flex-direction:column}}

.signature-option small{
  margin-left:4px;
  color:var(--muted);
  font-size:.62rem;
  font-weight:500;
}


/* ===== Signature mail : code HTML ===== */
.signature-actions-3{
  grid-template-columns:1fr 1fr 1fr;
}
.signature-html-panel{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f7f9fb;
}
.signature-html-panel[hidden]{
  display:none;
}
.signature-html-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 11px;
  border-bottom:1px solid var(--line);
}
.signature-html-head>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.signature-html-head strong{
  font-size:.72rem;
}
.signature-html-head small{
  color:var(--muted);
  font-size:.61rem;
  line-height:1.35;
}
.signature-html-code{
  width:100%;
  min-height:220px;
  display:block;
  resize:vertical;
  padding:12px;
  border:0;
  outline:0;
  background:#0f1b24;
  color:#d8e6ef;
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  font-size:.64rem;
  line-height:1.45;
  white-space:pre;
  overflow:auto;
}
@media(max-width:700px){
  .signature-actions-3{
    grid-template-columns:1fr;
  }
  .signature-html-head{
    align-items:stretch;
    flex-direction:column;
  }
  .signature-html-head .btn{
    width:100%;
  }
}


/* ===== Revues & publications ===== */
.magazines-head{margin-bottom:24px}.magazines-head h1{margin:.15rem 0 .35rem}.magazines-head>p:last-child{color:var(--muted);max-width:760px}
.magazine-publication{margin:28px 0}.magazine-publication-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}.magazine-publication-head h2{margin:0}.magazine-publication-head p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.magazine-logo-wrap{flex:0 0 66px;width:66px;height:66px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.magazine-logo-wrap img{max-width:88%;max-height:88%;object-fit:contain}.magazine-logo-wrap span{font-size:1.5rem;color:#668197}
.magazine-issues{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.magazine-issue-card{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fff}.magazine-issue-cover{flex:0 0 58px;width:58px;height:76px;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#eef2f5;color:#718596;font-size:.72rem;font-weight:900}.magazine-issue-cover img{width:100%;height:100%;object-fit:contain;padding:5px}.magazine-issue-copy{min-width:0;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:4px}.magazine-issue-copy strong{font-size:.78rem}.magazine-issue-copy small{color:var(--muted);font-size:.63rem}.magazine-issue-copy .btn{margin-top:4px}.magazine-empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.75rem}
.publications-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.publication-auto-settings{padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.publication-auto-settings summary{cursor:pointer;font-size:.74rem;font-weight:850}.publication-auto-settings[open] summary{margin-bottom:10px}.publication-auto-settings small{display:block;margin-top:4px;color:var(--muted);font-size:.62rem}
.publication-pdf-dropzone{min-height:135px;display:flex;align-items:center;justify-content:center;gap:14px;padding:18px;border:2px dashed #b6c8d5;border-radius:13px;background:#f8fbfd;cursor:pointer;text-align:left;transition:.15s ease}.publication-pdf-dropzone.is-dragover{border-color:#2c78aa;background:#eaf5fc}.publication-drop-icon{display:grid;place-items:center;width:54px;height:66px;border-radius:8px;background:#e4e9ed;color:#607484;font-size:.72rem;font-weight:900}.publication-pdf-dropzone>div{display:flex;flex-direction:column;gap:3px}.publication-pdf-dropzone small{color:var(--muted);font-size:.66rem}.publication-pdf-dropzone b{margin-top:5px;color:#247349;font-size:.66rem}
.publication-admin-list,.publication-issue-admin-list{display:flex;flex-direction:column;gap:6px}.publication-admin-list>a,.publication-issue-admin-list>article{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}.publication-admin-list>a>div,.publication-issue-admin-list>article>div{min-width:0;display:flex;flex:1;flex-direction:column}.publication-admin-list strong,.publication-issue-admin-list strong{font-size:.74rem}.publication-admin-list small,.publication-issue-admin-list small{overflow:hidden;color:var(--muted);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.publication-admin-logo{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#eef3f6}.publication-admin-logo img{width:100%;height:100%;object-fit:contain;padding:3px}.publication-issue-admin-list form{margin:0}
@media(max-width:800px){.publications-admin-grid{grid-template-columns:1fr}.magazine-issues{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.magazine-issues{grid-template-columns:1fr}.magazine-publication-head{align-items:flex-start}.publication-pdf-dropzone{align-items:center;flex-direction:column;text-align:center}}

/* Backend mobile : hamburger fiable au tactile */
@media(max-width:900px){.admin-topbar{z-index:900}.admin-menu-button{position:relative;z-index:905;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.admin-sidebar{z-index:1001;will-change:transform}.admin-sidebar-backdrop{z-index:1000;touch-action:none}.admin-sidebar-brand button{touch-action:manipulation}.admin-sidebar.open{visibility:visible}}


/* ===== Revues : import multiple ===== */
.publication-import-help{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f7fafc;
}
.publication-import-help strong{font-size:.72rem}
.publication-import-help p{margin:.3rem 0 0;color:var(--muted);font-size:.66rem;line-height:1.45}
.publication-import-help code{
  padding:2px 5px;
  border-radius:5px;
  background:#eaf1f5;
  color:var(--navy);
}
.publication-selected-files{
  max-height:180px;
  overflow:auto;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}
.publication-selected-files div{
  padding:4px 0;
  border-bottom:1px solid #edf1f4;
  font-size:.66rem;
  word-break:break-all;
}
.publication-selected-files div:last-child{border-bottom:0}
.publication-pdf-dropzone.is-dragover{
  border-color:#5d91b6;
  background:#eef7fc;
}
\n\n/* ===== Revues backend : affichage compact ===== */
.publication-library-heading{align-items:end;gap:16px}
.publication-issue-search{min-width:240px;max-width:320px;margin:0}
.publication-issue-search span{display:block;margin-bottom:4px;font-size:.62rem;font-weight:800;color:var(--muted)}
.publication-issue-search input{width:100%;margin:0}
.publication-library-groups{display:flex;flex-direction:column;gap:8px}
.publication-library-group{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.publication-library-group[hidden]{display:none}
.publication-library-group>summary{list-style:none;display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;user-select:none}
.publication-library-group>summary::-webkit-details-marker{display:none}
.publication-library-group[open]>summary{border-bottom:1px solid var(--line);background:#f8fafc}
.publication-library-group .publication-admin-logo{width:34px;height:34px}
.publication-library-group-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.publication-library-group-copy strong{font-size:.72rem}.publication-library-group-copy small{font-size:.6rem;color:var(--muted)}
.publication-library-chevron{justify-self:end;color:#5d7487;transition:transform .15s ease}
.publication-library-group[open]>summary .publication-library-chevron,.publication-exclusions[open]>summary .publication-library-chevron{transform:rotate(180deg)}
.publication-issue-compact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:7px;padding:10px}
.publication-issue-compact{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:8px;min-height:48px;padding:7px 8px;border:1px solid #e4ebf0;border-radius:9px;background:#fff}
.publication-issue-compact[hidden]{display:none}
.publication-issue-compact-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.publication-issue-compact-copy strong{font-size:.68rem;color:var(--navy)}
.publication-issue-compact-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.56rem}
.publication-issue-delete{width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid #efb5b5;border-radius:8px;background:#fff;color:#b42323;font-size:1rem;line-height:1;cursor:pointer}
.publication-issue-delete:hover{background:#fff1f1;border-color:#df8e8e}
.publication-group-empty{padding:14px;text-align:center;color:var(--muted);font-size:.66rem}
.publication-exclusions{overflow:hidden}
.publication-exclusions>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}
.publication-exclusions>summary::-webkit-details-marker{display:none}
.publication-exclusions>.publication-issue-admin-list{padding-top:8px}
@media(max-width:700px){.publication-library-heading{align-items:stretch;flex-direction:column}.publication-issue-search{min-width:0;max-width:none;width:100%}.publication-issue-compact-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.publication-issue-compact-grid{grid-template-columns:1fr}.publication-library-group>summary{grid-template-columns:34px 1fr 20px;padding:8px 10px}}


/* ===== Dropzone revues v4 ===== */
.publication-pdf-dropzone{
  position:relative;
  cursor:pointer;
  user-select:none;
}
.publication-file-input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
  opacity:0!important;
}
.publication-pdf-dropzone.is-dragover{
  outline:2px solid var(--blue);
  outline-offset:2px;
}
.publication-import-progress{
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f7fafc;
}
.publication-import-progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.publication-import-progress progress{width:100%;height:10px}
.publication-import-results{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-top:10px;
  max-height:220px;
  overflow:auto;
}
.publication-import-results>div{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  padding:6px 8px;
  border-radius:7px;
  background:#fff;
  font-size:.64rem;
}
.publication-import-results .is-ok{border-left:3px solid var(--success)}
.publication-import-results .is-skipped{border-left:3px solid var(--warn)}
.publication-import-results .is-error{border-left:3px solid var(--danger)}


/* ===== Backend mobile : hamburger robuste ===== */
@media(max-width:900px){
  .admin-topbar{
    position:sticky;
    z-index:200;
  }

  .admin-menu-button{
    position:relative;
    z-index:205;
    display:grid;
    place-items:center;
    pointer-events:auto;
    touch-action:manipulation;
    cursor:pointer;
  }

  .admin-sidebar{
    z-index:240;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(-102%,0,0);
    will-change:transform;
  }

  .admin-sidebar.open,
  .admin-sidebar.is-open{
    visibility:visible;
    pointer-events:auto;
    transform:translate3d(0,0,0);
  }

  .admin-sidebar-backdrop{
    z-index:230;
    pointer-events:none;
  }

  .admin-sidebar-backdrop.open,
  .admin-sidebar-backdrop.is-open{
    pointer-events:auto;
    opacity:1;
  }

  .admin-sidebar-brand button{
    cursor:pointer;
    touch-action:manipulation;
    pointer-events:auto;
  }
}


/* ===== Backend : barre supérieure fixe ===== */
body.is-admin .admin-topbar{
  position:fixed;
  top:0;
  left:250px;
  right:0;
  z-index:220;
  width:auto;
}

body.is-admin .admin-main{
  padding-top:66px;
}

@media(max-width:900px){
  body.is-admin .admin-topbar{
    left:0;
  }
}

@media(max-width:560px){
  body.is-admin .admin-main{
    padding-top:60px;
  }
}


/* ===== Revues frontend : bibliothèque compacte ===== */
.magazines-page{max-width:1320px;margin:0 auto}
.magazine-browser{display:flex;flex-direction:column;gap:14px}
.magazine-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:3px 1px 7px;
  scrollbar-width:thin;
}
.magazine-tab{
  flex:0 0 auto;
  min-width:190px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.magazine-tab.is-active{
  border-color:#7fa8c6;
  background:#edf5fb;
  box-shadow:0 0 0 1px rgba(31,111,168,.08);
}
.magazine-tab-logo{
  width:42px;height:42px;
  display:grid;place-items:center;
  overflow:hidden;
  border-radius:8px;
  background:#f1f4f6;
}
.magazine-tab-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
.magazine-tab-copy{display:flex;flex-direction:column;min-width:0}
.magazine-tab-copy strong{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.magazine-tab-copy small{color:var(--muted);font-size:.61rem}

.magazine-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.magazine-search{display:flex;flex-direction:column;gap:4px;min-width:220px;max-width:360px;width:100%}
.magazine-search span{font-size:.62rem;font-weight:800;color:var(--muted)}
.magazine-search input{
  width:100%;
  padding:9px 11px;
  border:1px solid #cdd8e3;
  border-radius:9px;
  background:#fff;
}
.magazine-result-count{flex:0 0 auto;color:var(--muted);font-size:.67rem;font-weight:700}

.magazine-panel{
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  overflow:hidden;
}
.magazine-panel[hidden]{display:none}
.magazine-panel-head{
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  align-items:center;
  gap:11px;
  padding:13px 15px;
  border-bottom:1px solid var(--line);
  background:#f8fafc;
}
.magazine-panel-logo{
  width:50px;height:50px;
  display:grid;place-items:center;
  overflow:hidden;
  border-radius:9px;
  background:#fff;
  border:1px solid #e1e8ee;
}
.magazine-panel-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.magazine-panel-head h2{margin:0;font-size:1.08rem}
.magazine-panel-head p{margin:2px 0 0;color:var(--muted);font-size:.68rem}

.magazine-number-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(145px,1fr));
  gap:7px;
  padding:12px;
}
.magazine-number-card{
  min-height:70px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  gap:2px 8px;
  padding:10px 11px;
  border:1px solid #e0e7ed;
  border-radius:10px;
  background:#fff;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:.12s ease;
}
.magazine-number-card:hover{
  border-color:#8eafc6;
  background:#f7fbfe;
  transform:translateY(-1px);
}
.magazine-number-card[hidden]{display:none}
.magazine-number-card.is-latest{
  border-color:#8eb4cf;
  background:#eef6fb;
}
.magazine-number-main{display:flex;flex-direction:column;min-width:0}
.magazine-number-main strong{font-size:.78rem;color:var(--navy)}
.magazine-number-main em{
  margin-top:2px;
  color:var(--blue);
  font-size:.55rem;
  font-style:normal;
  font-weight:800;
}
.magazine-number-card>small{
  grid-column:1;
  color:var(--muted);
  font-size:.57rem;
}
.magazine-number-open{
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  color:var(--navy);
  font-size:.63rem;
  font-weight:850;
  white-space:nowrap;
}
.magazine-more-wrap{
  display:flex;
  justify-content:center;
  padding:0 12px 13px;
}
.magazine-no-result{
  margin:12px;
  padding:18px;
  border:1px dashed var(--line);
  border-radius:10px;
  color:var(--muted);
  text-align:center;
  font-size:.72rem;
}

@media(max-width:680px){
  .magazine-tabs{margin:0 -2px}
  .magazine-tab{min-width:165px}
  .magazine-toolbar{align-items:stretch;flex-direction:column}
  .magazine-search{max-width:none}
  .magazine-result-count{align-self:flex-end}
  .magazine-number-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:9px}
  .magazine-number-card{min-height:64px;padding:8px 9px}
  .magazine-panel-head{padding:11px}
}

@media(max-width:390px){
  .magazine-number-grid{grid-template-columns:1fr}
}


/* Correction définitive affichage bouton "Afficher plus" */
.magazine-more-wrap[hidden]{
  display:none !important;
}


/* ===== Revues frontend : logos plus lisibles ===== */
.magazine-tab{
  grid-template-columns:56px minmax(0,1fr);
  min-width:205px;
  padding:9px 12px;
}
.magazine-tab-logo{
  width:56px;
  height:56px;
  border-radius:11px;
}
.magazine-tab-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:2px;
}

.magazine-panel-head{
  grid-template-columns:66px minmax(0,1fr);
  gap:13px;
  padding:14px 16px;
}
.magazine-panel-logo{
  width:66px;
  height:66px;
  border-radius:12px;
}
.magazine-panel-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:3px;
}

@media(max-width:680px){
  .magazine-tab{
    grid-template-columns:50px minmax(0,1fr);
    min-width:180px;
  }
  .magazine-tab-logo{
    width:50px;
    height:50px;
  }
  .magazine-panel-head{
    grid-template-columns:58px minmax(0,1fr);
  }
  .magazine-panel-logo{
    width:58px;
    height:58px;
  }
}


/* ==========================================================
   THÈMES SAISONNIERS AUTOMATIQUES — PORTAIL UTILISATEUR
   ========================================================== */

body[class*="season-"]:not(.is-admin){
  --season-accent:var(--blue);
  --season-soft:#eef5fb;
  --season-border:var(--line);
  --season-deco:"";
}

body[class*="season-"]:not(.is-admin) .topbar{
  position:relative;
  border-bottom-color:var(--season-border);
}

body[class*="season-"]:not(.is-admin) .eyebrow{
  color:var(--season-accent);
}

body[class*="season-"]:not(.is-admin) .need-card:hover,
body[class*="season-"]:not(.is-admin) .portal-group:hover,
body[class*="season-"]:not(.is-admin) .magazine-tab.is-active{
  border-color:var(--season-accent);
}

body[class*="season-"]:not(.is-admin) .topbar::after{
  content:var(--season-deco);
  position:absolute;
  right:18px;
  bottom:-1px;
  transform:translateY(50%);
  display:grid;
  place-items:center;
  min-width:28px;
  height:28px;
  padding:0 7px;
  border:1px solid var(--season-border);
  border-radius:999px;
  background:#fff;
  font-size:15px;
  line-height:1;
  z-index:2;
}

/* Halloween */
body.season-halloween:not(.is-admin){
  --season-accent:#c76616;
  --season-border:#e7c09d;
  --season-deco:"🎃";
  background:
    radial-gradient(circle at 10% 0%,rgba(199,102,22,.07),transparent 26%),
    var(--bg);
}
body.season-halloween:not(.is-admin) .btn.primary{
  background:#7d3f11;
  border-color:#7d3f11;
}

/* Noël */
body.season-christmas:not(.is-admin){
  --season-accent:#a7232b;
  --season-border:#e4b9bc;
  --season-deco:"🎄";
  background:
    radial-gradient(circle at 12% 0%,rgba(167,35,43,.06),transparent 28%),
    radial-gradient(circle at 90% 8%,rgba(29,111,72,.05),transparent 24%),
    var(--bg);
}
body.season-christmas:not(.is-admin) .btn.primary{
  background:#8e1f26;
  border-color:#8e1f26;
}
body.season-christmas:not(.is-admin) .topbar::after{
  content:"🎄";
  min-width:42px;
  height:42px;
  padding:0 10px;
  background:rgba(255,255,255,.96);
  border-color:#e6c59a;
  box-shadow:0 8px 24px rgba(9,20,40,.18);
  font-size:22px;
  line-height:1;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
}

/* Nouvel an */
body.season-newyear:not(.is-admin){
  --season-accent:#8a6b20;
  --season-border:#ddc98f;
  --season-deco:"✦";
  background:
    radial-gradient(circle at 12% 0%,rgba(174,139,44,.08),transparent 26%),
    radial-gradient(circle at 86% 8%,rgba(37,73,116,.05),transparent 24%),
    var(--bg);
}
body.season-newyear:not(.is-admin) .btn.primary{
  background:#6e571a;
  border-color:#6e571a;
}

/* Pâques */
body.season-easter:not(.is-admin){
  --season-accent:#8a4ed1;
  --season-border:#d5bdf1;
  --season-deco:"🥚";
  background:
    radial-gradient(circle at 10% 0%,rgba(123,91,179,.07),transparent 27%),
    radial-gradient(circle at 90% 8%,rgba(100,170,108,.05),transparent 24%),
    var(--bg);
}
body.season-easter:not(.is-admin) .btn.primary{
  background:#674996;
  border-color:#674996;
}

/* Été */
body.season-summer:not(.is-admin){
  --season-accent:#167f9d;
  --season-border:#b8dce5;
  --season-deco:"☀";
  background:
    radial-gradient(circle at 12% 0%,rgba(243,184,55,.09),transparent 27%),
    radial-gradient(circle at 90% 7%,rgba(22,127,157,.05),transparent 24%),
    var(--bg);
}
body.season-summer:not(.is-admin) .btn.primary{
  background:#126d86;
  border-color:#126d86;
}

@media(max-width:680px){
  body[class*="season-"]:not(.is-admin) .topbar::after{
    right:10px;
    min-width:25px;
    width:25px;
    height:25px;
    padding:0;
    font-size:13px;
  }
}


/* ===== Aperçu administrateur des thèmes saisonniers ===== */
.admin-season-preview{
  grid-column:1/-1;
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-bottom:5px;
  padding:8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:8px;
  background:rgba(255,255,255,.04);
}
.admin-season-preview>label{
  color:#d6e0e8;
  font-size:.62rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.admin-season-preview>div{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  gap:5px;
}
.admin-season-preview select{
  min-width:0;
  width:100%;
  height:34px;
  padding:0 7px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:7px;
  background:#21394f;
  color:#fff;
  font-size:.68rem;
}
.admin-season-preview button{
  height:34px;
  border:0;
  border-radius:7px;
  background:#fff;
  color:#17364e;
  font-size:.66rem;
  font-weight:900;
  cursor:pointer;
}
.admin-season-preview small{
  color:#91a7b9;
  font-size:.56rem;
  line-height:1.25;
}

.season-preview-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 9px;
  border:1px solid #d5a43d;
  border-radius:999px;
  background:#fff9e8;
  color:#715313;
  font-size:.64rem;
  font-weight:850;
  white-space:nowrap;
}

@media(max-width:760px){
  .season-preview-badge{
    position:absolute;
    left:50%;
    bottom:-13px;
    transform:translateX(-50%);
    min-height:26px;
    padding:3px 8px;
    font-size:.58rem;
    z-index:3;
  }
}


/* =====================================================================
   THÈMES SAISONNIERS V2 — version immersive
   Les effets forts sont concentrés sur l'accueil ; le reste du portail
   conserve les accents de saison sans sacrifier la lisibilité.
   ===================================================================== */

body[class*="season-"]:not(.is-admin){
  --season-card:#fff;
  --season-card-2:#f8fbfd;
  --season-text:var(--text);
  --season-muted:var(--muted);
  --season-pill:var(--navy);
  --season-pill-text:#fff;
  --season-icon-bg:#eaf2f9;
  --season-icon-text:var(--navy);
  overflow-x:hidden;
}
body[class*="season-"]:not(.is-admin) .shell,
body[class*="season-"]:not(.is-admin) footer{position:relative;z-index:2}
.season-fx{position:fixed;inset:78px 0 0;pointer-events:none;overflow:hidden;z-index:1}
body[class*="season-"]:not(.is-admin) .season-preview-badge{
  position:relative;z-index:3;
  border-color:var(--season-accent);
  color:var(--season-accent);
  background:color-mix(in srgb,var(--season-soft) 88%,#fff);
}
body[class*="season-"]:not(.is-admin) .cockpit-hero-links a,
body[class*="season-"]:not(.is-admin) .home-search button,
body[class*="season-"]:not(.is-admin) .door-home-action,
body[class*="season-"]:not(.is-admin) .btn.primary{
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
body[class*="season-"]:not(.is-admin) .cockpit-hero-links a:hover,
body[class*="season-"]:not(.is-admin) .home-search button:hover,
body[class*="season-"]:not(.is-admin) .door-home-action:hover,
body[class*="season-"]:not(.is-admin) .btn.primary:hover{
  transform:translateY(-1px);
  filter:brightness(1.04);
}
body[class*="season-"]:not(.is-admin) .need-icon,
body[class*="season-"]:not(.is-admin) .portal-group-icon,
body[class*="season-"]:not(.is-admin) .result-type{
  background:var(--season-icon-bg);
  color:var(--season-icon-text);
}
body[class*="season-"]:not(.is-admin) .portal-group-count{
  background:var(--season-soft);
  color:var(--season-accent);
}
body[class*="season-"]:not(.is-admin) .favorite-mini-grid span,
body[class*="season-"]:not(.is-admin) .need-arrow,
body[class*="season-"]:not(.is-admin) .portal-links a span:last-child{
  color:var(--season-accent);
}

/* ------------------------- HALLOWEEN ------------------------- */
body.season-halloween:not(.is-admin){
  --season-accent:#ff7a00;
  --season-soft:#fff0df;
  --season-border:#9b5221;
  --season-icon-bg:#3a203d;
  --season-icon-text:#ff9a36;
  --season-deco:"🎃";
}
body.season-halloween.page-home:not(.is-admin){
  color:#f6f2fa;
  background:
    radial-gradient(circle at 84% 14%,rgba(255,118,18,.24),transparent 17rem),
    radial-gradient(circle at 12% 38%,rgba(110,53,132,.18),transparent 22rem),
    linear-gradient(180deg,#161020 0%,#0e0c16 48%,#0a0910 100%);
}
body.season-halloween.page-home:not(.is-admin) .topbar{
  background:rgba(255,255,255,.97);
  border-bottom-color:#e7a56e;
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero{
  border:1px solid #b55b1d;
  background:
    radial-gradient(circle at 74% 72%,rgba(255,105,0,.24),transparent 15rem),
    radial-gradient(circle at 25% 10%,rgba(96,41,113,.22),transparent 20rem),
    linear-gradient(120deg,#09090f,#181020 58%,#24100c);
  box-shadow:0 16px 42px rgba(0,0,0,.35),0 0 0 1px rgba(255,122,0,.08);
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(135deg,transparent 0 48%,rgba(255,122,0,.07) 49% 50%,transparent 51%),
    radial-gradient(circle at 92% 16%,rgba(255,158,57,.16),transparent 22%);
  pointer-events:none;
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero .eyebrow,
body.season-halloween.page-home:not(.is-admin) .cockpit-title .eyebrow{color:#ff861c}
body.season-halloween.page-home:not(.is-admin) .cockpit-title h2,
body.season-halloween.page-home:not(.is-admin) .cockpit-title>a,
body.season-halloween.page-home:not(.is-admin) .cockpit-title-help{color:#f6f2fa}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(1){
  background:linear-gradient(135deg,#d25b00,#ff8500);border-color:#ff9c3c
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(2){
  background:#24162b;border-color:#8d50a0
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(3){
  background:#311830;border-color:#b14c87
}
body.season-halloween.page-home:not(.is-admin) .cockpit-emergency{
  background:linear-gradient(135deg,rgba(255,119,17,.22),rgba(83,35,78,.28));
  border-color:rgba(255,143,47,.48);
  box-shadow:0 0 26px rgba(255,103,0,.10)
}
body.season-halloween.page-home:not(.is-admin) .cockpit-emergency-icon{
  background:#ff7a00;color:#190d1d
}
body.season-halloween.page-home:not(.is-admin) .door-home-card,
body.season-halloween.page-home:not(.is-admin) .home-search,
body.season-halloween.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-halloween.page-home:not(.is-admin) .need-card,
body.season-halloween.page-home:not(.is-admin) .portal-group,
body.season-halloween.page-home:not(.is-admin) .cockpit-alert{
  color:#f9f4fb;
  background:rgba(25,20,31,.90);
  border-color:#5f3a65;
  box-shadow:0 7px 22px rgba(0,0,0,.20);
}
body.season-halloween.page-home:not(.is-admin) .door-home-card{background:linear-gradient(135deg,rgba(24,18,29,.97),rgba(40,19,29,.94));border-color:#a85b28}
body.season-halloween.page-home:not(.is-admin) .door-home-icon{background:#3a203d;color:#ff912d;box-shadow:0 0 0 1px #7b3a62}
body.season-halloween.page-home:not(.is-admin) .door-home-kicker{color:#ff861c}
body.season-halloween.page-home:not(.is-admin) .door-home-copy>strong,
body.season-halloween.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-halloween.page-home:not(.is-admin) .need-card,
body.season-halloween.page-home:not(.is-admin) .portal-group summary{color:#fff}
body.season-halloween.page-home:not(.is-admin) .door-home-copy>small,
body.season-halloween.page-home:not(.is-admin) .favorite-mini-grid small,
body.season-halloween.page-home:not(.is-admin) .need-copy small,
body.season-halloween.page-home:not(.is-admin) .portal-group-copy small,
body.season-halloween.page-home:not(.is-admin) .cockpit-alert-copy p{color:#c9bfd1}
body.season-halloween.page-home:not(.is-admin) .home-search input{color:#fff}
body.season-halloween.page-home:not(.is-admin) .home-search input::placeholder{color:#aaa0b2}
body.season-halloween.page-home:not(.is-admin) .home-search button{background:linear-gradient(135deg,#6e337b,#ff7200);box-shadow:0 0 0 1px rgba(255,145,45,.35)}
body.season-halloween.page-home:not(.is-admin) .portal-links{border-top-color:#4f3a57}
body.season-halloween.page-home:not(.is-admin) .portal-links a{color:#f6f1f8}
body.season-halloween.page-home:not(.is-admin) .portal-links a:hover{background:#2f2037;color:#ff9738}
.h-eye-pair{position:absolute;left:var(--x);top:var(--y);display:flex;gap:7px;opacity:0;animation:hEyes 12s var(--delay) infinite}
.h-eye-pair i{width:8px;height:5px;border-radius:70% 70% 50% 50%;background:#ff8a00;box-shadow:0 0 8px #ff6800,0 0 16px rgba(255,105,0,.75);transform:rotate(-8deg)}
.h-eye-pair i+ i{transform:rotate(8deg)}
@keyframes hEyes{0%,10%,26%,100%{opacity:0}13%,21%{opacity:1}17%{opacity:.18}}
.season-halloween-moon{position:absolute;right:5vw;top:3vh;font-size:7rem;color:#ff8c25;opacity:.18;filter:drop-shadow(0 0 18px #ff6b00)}
.season-halloween-bats{position:absolute;right:14vw;top:14vh;font-size:1.7rem;opacity:.55;animation:hBats 9s ease-in-out infinite}
@keyframes hBats{50%{transform:translate(-40px,18px) rotate(-4deg)}}
.h-pumpkin{position:absolute;font-size:3.4rem;filter:drop-shadow(0 0 14px rgba(255,105,0,.45));opacity:.78}
.h-pumpkin-left{left:1vw;bottom:8vh;transform:rotate(-8deg)}
.h-pumpkin-right{right:1vw;bottom:4vh;transform:rotate(8deg)}

/* --------------------------- NOËL ---------------------------- */
body.season-christmas:not(.is-admin){
  --season-accent:#b20e22;
  --season-soft:#fff0f2;
  --season-border:#d8a7ad;
  --season-icon-bg:#e9f6ed;
  --season-icon-text:#11602e;
  --season-deco:"❄";
}
body.season-christmas.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 8% 14%,rgba(201,30,44,.08),transparent 18rem),
    radial-gradient(circle at 92% 20%,rgba(20,111,59,.10),transparent 22rem),
    linear-gradient(180deg,#edf5fb,#f8fbfd 52%,#eef4f8);
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero{
  border:1px solid rgba(255,255,255,.40);
  background:
    radial-gradient(circle at 82% 15%,rgba(255,212,83,.18),transparent 18rem),
    linear-gradient(120deg,#930e1d,#bd1025 65%,#831119);
  box-shadow:0 15px 40px rgba(117,13,27,.18),inset 0 0 0 1px rgba(255,255,255,.08)
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero::after{
  content:"❄  ·  ✦  ·  ❄";
  position:absolute;right:24px;top:14px;color:rgba(255,255,255,.65);font-size:1.35rem;letter-spacing:.75rem
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero .eyebrow{color:#ffd477}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(1){background:#b60e24;border-color:#ff9ea9}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(2){background:#126137;border-color:#7bc796}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(3){background:#0d7340;border-color:#8dd4a4}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency{background:rgba(91,0,12,.28);border-color:rgba(255,255,255,.34)}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-icon{color:#b20e22}
body.season-christmas.page-home:not(.is-admin) .door-home-icon{background:#b20e22}
body.season-christmas.page-home:not(.is-admin) .door-home-kicker,
body.season-christmas.page-home:not(.is-admin) .cockpit-title .eyebrow{color:#b20e22}
body.season-christmas.page-home:not(.is-admin) .home-search button,
body.season-christmas.page-home:not(.is-admin) .door-home-action{background:#b20e22!important;border-color:#b20e22!important}
body.season-christmas.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-christmas.page-home:not(.is-admin) .need-card,
body.season-christmas.page-home:not(.is-admin) .portal-group{border-color:#d7e5dc}
.snow-layer{position:absolute;inset:0}
.snow-layer i{position:absolute;top:-8vh;width:8px;height:8px;border-radius:50%;background:#fff;opacity:.84;filter:drop-shadow(0 0 4px rgba(255,255,255,.7));animation:snowFall linear infinite}
.snow-layer i:nth-child(1){left:3%;animation-duration:10s;animation-delay:-2s}.snow-layer i:nth-child(2){left:8%;animation-duration:14s;animation-delay:-7s;width:5px;height:5px}.snow-layer i:nth-child(3){left:13%;animation-duration:11s;animation-delay:-4s}.snow-layer i:nth-child(4){left:18%;animation-duration:16s;animation-delay:-11s;width:6px;height:6px}.snow-layer i:nth-child(5){left:23%;animation-duration:12s;animation-delay:-6s}.snow-layer i:nth-child(6){left:28%;animation-duration:17s;animation-delay:-10s;width:4px;height:4px}.snow-layer i:nth-child(7){left:33%;animation-duration:13s;animation-delay:-2s}.snow-layer i:nth-child(8){left:38%;animation-duration:19s;animation-delay:-15s;width:5px;height:5px}.snow-layer i:nth-child(9){left:43%;animation-duration:10s;animation-delay:-4s}.snow-layer i:nth-child(10){left:48%;animation-duration:15s;animation-delay:-8s;width:6px;height:6px}.snow-layer i:nth-child(11){left:53%;animation-duration:12s;animation-delay:-9s}.snow-layer i:nth-child(12){left:58%;animation-duration:18s;animation-delay:-14s;width:5px;height:5px}.snow-layer i:nth-child(13){left:63%;animation-duration:11s;animation-delay:-3s}.snow-layer i:nth-child(14){left:68%;animation-duration:16s;animation-delay:-12s;width:4px;height:4px}.snow-layer i:nth-child(15){left:73%;animation-duration:14s;animation-delay:-5s}.snow-layer i:nth-child(16){left:78%;animation-duration:20s;animation-delay:-18s;width:6px;height:6px}.snow-layer i:nth-child(17){left:83%;animation-duration:12s;animation-delay:-7s}.snow-layer i:nth-child(18){left:88%;animation-duration:17s;animation-delay:-9s;width:4px;height:4px}.snow-layer i:nth-child(19){left:93%;animation-duration:13s;animation-delay:-11s}.snow-layer i:nth-child(20){left:97%;animation-duration:18s;animation-delay:-4s;width:5px;height:5px}.snow-layer i:nth-child(21){left:6%;animation-duration:18s;animation-delay:-16s;width:3px;height:3px}.snow-layer i:nth-child(22){left:16%;animation-duration:21s;animation-delay:-8s;width:7px;height:7px}.snow-layer i:nth-child(23){left:31%;animation-duration:15s;animation-delay:-13s;width:3px;height:3px}.snow-layer i:nth-child(24){left:46%;animation-duration:22s;animation-delay:-7s;width:7px;height:7px}.snow-layer i:nth-child(25){left:61%;animation-duration:18s;animation-delay:-12s;width:3px;height:3px}.snow-layer i:nth-child(26){left:76%;animation-duration:21s;animation-delay:-17s;width:7px;height:7px}.snow-layer i:nth-child(27){left:86%;animation-duration:16s;animation-delay:-14s;width:3px;height:3px}.snow-layer i:nth-child(28){left:96%;animation-duration:22s;animation-delay:-10s;width:7px;height:7px}
@keyframes snowFall{0%{transform:translate3d(0,-8vh,0) rotate(0);opacity:0}10%{opacity:.9}100%{transform:translate3d(45px,110vh,0) rotate(360deg);opacity:.4}}
.xmas-corner{position:absolute;font-size:4rem;opacity:.55;filter:drop-shadow(0 5px 9px rgba(0,0,0,.15))}
.xmas-corner-left{left:-8px;top:3vh;transform:rotate(-9deg)}.xmas-corner-right{right:4px;bottom:7vh;transform:rotate(7deg)}

/* ------------------------ NOUVEL AN -------------------------- */
body.season-newyear:not(.is-admin){
  --season-accent:#b98217;
  --season-soft:#fff7df;
  --season-border:#d8b865;
  --season-icon-bg:#fff3cf;
  --season-icon-text:#8b630e;
  --season-deco:"✦";
}
body.season-newyear.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 8% 16%,rgba(231,180,58,.13),transparent 18rem),
    radial-gradient(circle at 90% 20%,rgba(246,205,92,.11),transparent 24rem),
    linear-gradient(180deg,#faf7ef,#fff 48%,#f7f2e7);
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 85% 22%,rgba(244,194,64,.23),transparent 16rem),
    linear-gradient(120deg,#071b33,#0c294a 64%,#171b2a);
  border:1px solid #b88b2d;
  box-shadow:0 16px 42px rgba(40,31,11,.16),inset 0 0 22px rgba(255,209,97,.06)
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::after{
  content:"✦   ✧   ✦";
  position:absolute;right:27px;top:14px;color:#f6cf70;font-size:1.4rem;letter-spacing:.65rem;text-shadow:0 0 12px #d69d27
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero .eyebrow,
body.season-newyear.page-home:not(.is-admin) .cockpit-title .eyebrow{color:#d69d27}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero-links a{border-color:#c79a3d}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(1){background:linear-gradient(135deg,#e2b850,#9f6b0b);color:#101725}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(2),
body.season-newyear.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(3){background:rgba(6,24,45,.74)}
body.season-newyear.page-home:not(.is-admin) .cockpit-emergency{border-color:rgba(225,183,78,.55);background:linear-gradient(135deg,rgba(205,157,49,.17),rgba(0,0,0,.16))}
body.season-newyear.page-home:not(.is-admin) .cockpit-emergency-icon{background:#fff6d7;color:#8a620d}
body.season-newyear.page-home:not(.is-admin) .home-search button,
body.season-newyear.page-home:not(.is-admin) .door-home-action{background:linear-gradient(135deg,#be8c25,#80580b)!important}
body.season-newyear.page-home:not(.is-admin) .door-home-icon{background:#0a2745;color:#f1c963}
body.season-newyear.page-home:not(.is-admin) .door-home-kicker{color:#a87311}
.confetti-layer{position:absolute;inset:0}
.confetti-layer i{position:absolute;top:-8vh;width:9px;height:18px;background:#d5a02c;opacity:.8;animation:confettiFall linear infinite}
.confetti-layer i:nth-child(3n){background:#f4d777;width:6px;height:13px}.confetti-layer i:nth-child(4n){background:#122f53}.confetti-layer i:nth-child(5n){background:#fff;width:5px}
.confetti-layer i:nth-child(1){left:3%;animation-duration:8s;animation-delay:-4s}.confetti-layer i:nth-child(2){left:8%;animation-duration:11s;animation-delay:-7s}.confetti-layer i:nth-child(3){left:13%;animation-duration:9s;animation-delay:-2s}.confetti-layer i:nth-child(4){left:18%;animation-duration:13s;animation-delay:-9s}.confetti-layer i:nth-child(5){left:23%;animation-duration:10s;animation-delay:-5s}.confetti-layer i:nth-child(6){left:28%;animation-duration:12s;animation-delay:-8s}.confetti-layer i:nth-child(7){left:33%;animation-duration:9s;animation-delay:-6s}.confetti-layer i:nth-child(8){left:38%;animation-duration:14s;animation-delay:-11s}.confetti-layer i:nth-child(9){left:43%;animation-duration:10s;animation-delay:-3s}.confetti-layer i:nth-child(10){left:48%;animation-duration:12s;animation-delay:-7s}.confetti-layer i:nth-child(11){left:53%;animation-duration:9s;animation-delay:-1s}.confetti-layer i:nth-child(12){left:58%;animation-duration:13s;animation-delay:-9s}.confetti-layer i:nth-child(13){left:63%;animation-duration:11s;animation-delay:-5s}.confetti-layer i:nth-child(14){left:68%;animation-duration:15s;animation-delay:-12s}.confetti-layer i:nth-child(15){left:73%;animation-duration:10s;animation-delay:-2s}.confetti-layer i:nth-child(16){left:78%;animation-duration:13s;animation-delay:-8s}.confetti-layer i:nth-child(17){left:83%;animation-duration:9s;animation-delay:-4s}.confetti-layer i:nth-child(18){left:88%;animation-duration:14s;animation-delay:-10s}.confetti-layer i:nth-child(19){left:93%;animation-duration:11s;animation-delay:-6s}.confetti-layer i:nth-child(20){left:97%;animation-duration:13s;animation-delay:-3s}.confetti-layer i:nth-child(21){left:16%;animation-duration:15s;animation-delay:-13s}.confetti-layer i:nth-child(22){left:36%;animation-duration:10s;animation-delay:-6s}.confetti-layer i:nth-child(23){left:56%;animation-duration:14s;animation-delay:-8s}.confetti-layer i:nth-child(24){left:76%;animation-duration:12s;animation-delay:-10s}
@keyframes confettiFall{0%{transform:translate3d(0,-8vh,0) rotate(0deg);opacity:0}8%{opacity:.9}100%{transform:translate3d(45px,110vh,0) rotate(720deg);opacity:.3}}
.newyear-spark{position:absolute;color:#dcae42;text-shadow:0 0 14px #f8d479;animation:sparkPulse 2.4s ease-in-out infinite}
.newyear-spark-left{left:3vw;top:15vh;font-size:4rem}.newyear-spark-right{right:4vw;top:9vh;font-size:5rem;animation-delay:1.1s}
@keyframes sparkPulse{50%{opacity:.3;transform:scale(.72) rotate(18deg)}}

/* --------------------------- PÂQUES --------------------------- */
body.season-easter:not(.is-admin){
  --season-accent:#8a4ed1;
  --season-soft:#f5ebff;
  --season-border:#d5bdf1;
  --season-icon-bg:#f0e3ff;
  --season-icon-text:#7b3fc4;
  --season-deco:"🥚";
}
body.season-easter.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 10% 8%,rgba(255,200,229,.27),transparent 20rem),
    radial-gradient(circle at 90% 12%,rgba(194,236,185,.28),transparent 22rem),
    linear-gradient(180deg,#fbf8ff,#f5f8ff 52%,#f9fbf6);
}
body.season-easter.page-home:not(.is-admin) .cockpit-hero{
  color:#17243c;
  background:
    radial-gradient(circle at 90% 22%,rgba(161,235,176,.55),transparent 18rem),
    radial-gradient(circle at 10% 75%,rgba(255,211,122,.38),transparent 18rem),
    linear-gradient(120deg,#ead7ff,#f6dcf3 56%,#e8f8dd);
  border:1px solid #d5baf2;
  box-shadow:0 15px 40px rgba(109,71,151,.12)
}
body.season-easter.page-home:not(.is-admin) .cockpit-hero-copy>p:last-of-type{color:#4c4b62}
body.season-easter.page-home:not(.is-admin) .cockpit-hero .eyebrow,
body.season-easter.page-home:not(.is-admin) .cockpit-title .eyebrow{color:#8a4ed1}
body.season-easter.page-home:not(.is-admin) .cockpit-hero-links a{color:#17243c;border-color:rgba(81,55,101,.14)}
body.season-easter.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(1){background:#a867ea;color:#fff}
body.season-easter.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(2){background:#ffe69a}
body.season-easter.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(3){background:#bfe9ca}
body.season-easter.page-home:not(.is-admin) .cockpit-emergency{color:#6d36ad;background:rgba(255,255,255,.55);border-color:#c9aceb}
body.season-easter.page-home:not(.is-admin) .cockpit-emergency-copy strong{color:#6f35ae}
body.season-easter.page-home:not(.is-admin) .cockpit-emergency-copy small,
body.season-easter.page-home:not(.is-admin) .cockpit-emergency-copy em{color:#8b62b3}
body.season-easter.page-home:not(.is-admin) .cockpit-emergency-icon{background:#8f4bd7;color:#fff}
body.season-easter.page-home:not(.is-admin) .door-home-icon{background:#9050d3}
body.season-easter.page-home:not(.is-admin) .door-home-kicker{color:#8a4ed1}
body.season-easter.page-home:not(.is-admin) .home-search button,
body.season-easter.page-home:not(.is-admin) .door-home-action{background:#8d4bd2!important;border-color:#8d4bd2!important}
body.season-easter.page-home:not(.is-admin) .need-card:nth-child(4n+1) .need-icon{background:#efe1ff;color:#8842cc}
body.season-easter.page-home:not(.is-admin) .need-card:nth-child(4n+2) .need-icon{background:#fff0bf;color:#9a6b00}
body.season-easter.page-home:not(.is-admin) .need-card:nth-child(4n+3) .need-icon{background:#dff3e3;color:#287446}
body.season-easter.page-home:not(.is-admin) .need-card:nth-child(4n) .need-icon{background:#ffe0e9;color:#af486a}
.easter-eggs i{position:absolute;display:block;width:46px;height:62px;border-radius:52% 52% 47% 47%;box-shadow:0 7px 14px rgba(60,35,79,.10);opacity:.86}
.egg-1{left:1.8vw;top:23vh;background:repeating-linear-gradient(25deg,#ad73e5 0 9px,#f8d8ff 9px 15px,#ffd768 15px 23px)}
.egg-2{right:2vw;top:17vh;background:radial-gradient(circle at 30% 32%,#fff 0 3px,transparent 4px),radial-gradient(circle at 68% 58%,#fff 0 3px,transparent 4px),#f2b7cf;transform:rotate(12deg)}
.egg-3{left:4vw;bottom:8vh;background:repeating-linear-gradient(0deg,#8dd5ad 0 11px,#eaffd8 11px 17px,#ffe187 17px 25px);transform:rotate(-15deg)}
.egg-4{right:5vw;bottom:10vh;background:repeating-radial-gradient(circle,#ffd75d 0 5px,#fff0b3 6px 10px,#ef87b1 11px 15px);transform:rotate(9deg)}
.egg-5{left:12vw;top:8vh;width:34px!important;height:46px!important;background:linear-gradient(135deg,#91d9c8 0 35%,#fff 35% 43%,#a579dd 43% 70%,#ffe085 70%);transform:rotate(15deg)}
.egg-6{right:13vw;top:5vh;width:34px!important;height:46px!important;background:repeating-linear-gradient(-35deg,#ffc0d8 0 8px,#fff 8px 12px,#9bd8a9 12px 19px)}
.easter-sprig{position:absolute;font-size:3.5rem;opacity:.65}.easter-sprig-left{left:-4px;top:42vh}.easter-sprig-right{right:3px;top:36vh}

/* ---------------------------- ÉTÉ ----------------------------- */
body.season-summer:not(.is-admin){
  --season-accent:#00a7c7;
  --season-soft:#e8fbff;
  --season-border:#9ddde8;
  --season-icon-bg:#dcf7fb;
  --season-icon-text:#008ba7;
  --season-deco:"☀";
}
body.season-summer.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 88% 2%,rgba(255,207,79,.37),transparent 17rem),
    linear-gradient(180deg,#e8f9ff 0%,#f3fbff 34%,#fff8e5 66%,#fff1cf 100%);
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 88% 12%,rgba(255,237,160,.44),transparent 14rem),
    linear-gradient(120deg,#00a8c8,#10bdd1 58%,#58d1c2);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 16px 40px rgba(0,125,154,.14)
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero::after{
  content:"〰  〰  〰";
  position:absolute;right:25px;bottom:14px;color:rgba(255,255,255,.60);font-size:1.6rem;letter-spacing:.25rem
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero .eyebrow{color:#fff26a}
body.season-summer.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(1){background:#ff765f;border-color:#ffb2a4}
body.season-summer.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(2){background:#008fab;border-color:#88e6f3}
body.season-summer.page-home:not(.is-admin) .cockpit-hero-links a:nth-child(3){background:#ffc74b;color:#16344c;border-color:#ffe398}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency{color:#15364c;background:rgba(255,255,255,.62);border-color:rgba(255,255,255,.78)}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy strong{color:#15364c}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy small,
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy em{color:#4b6b7d}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-icon{background:#fff;color:#00a0bf}
body.season-summer.page-home:not(.is-admin) .door-home-card{background:linear-gradient(135deg,#fff,#fff8e9);border-color:#9fdde8}
body.season-summer.page-home:not(.is-admin) .door-home-icon{background:#00a9c8}
body.season-summer.page-home:not(.is-admin) .door-home-kicker,
body.season-summer.page-home:not(.is-admin) .cockpit-title .eyebrow{color:#008fac}
body.season-summer.page-home:not(.is-admin) .home-search button,
body.season-summer.page-home:not(.is-admin) .door-home-action{background:#00a9c8!important;border-color:#00a9c8!important}
body.season-summer.page-home:not(.is-admin) .need-card:nth-child(4n+1) .need-icon{background:#d9f7fb;color:#008aa6}
body.season-summer.page-home:not(.is-admin) .need-card:nth-child(4n+2) .need-icon{background:#fff1b8;color:#a56b00}
body.season-summer.page-home:not(.is-admin) .need-card:nth-child(4n+3) .need-icon{background:#ffe0da;color:#c6523b}
body.season-summer.page-home:not(.is-admin) .need-card:nth-child(4n) .need-icon{background:#dcf2eb;color:#26755f}
.summer-sun{position:absolute;right:3vw;top:1vh;font-size:6rem;color:#ffc945;opacity:.45;filter:drop-shadow(0 0 24px rgba(255,193,46,.45));animation:sunPulse 6s ease-in-out infinite}
@keyframes sunPulse{50%{transform:scale(1.08);opacity:.62}}
.summer-palm{position:absolute;font-size:4.3rem;opacity:.50}.summer-palm-left{left:-10px;top:8vh;transform:rotate(19deg)}.summer-palm-right{right:-8px;bottom:11vh;transform:scaleX(-1) rotate(17deg)}
.summer-shell{position:absolute;right:7vw;bottom:4vh;font-size:2.8rem;color:#ff855e;opacity:.52;transform:rotate(12deg)}
.summer-waves{position:absolute;left:-5%;right:-5%;bottom:0;height:22vh;opacity:.18;background:repeating-radial-gradient(ellipse at 50% 0,transparent 0 42px,#00a6c5 43px 47px,transparent 48px 86px);transform:translateY(45%)}

/* Seasonal cards/bubbles on non-home pages: visible but restrained. */
body[class*="season-"]:not(.is-admin):not(.page-home) .btn.primary,
body[class*="season-"]:not(.is-admin):not(.page-home) .home-search button{
  background:var(--season-accent);
  border-color:var(--season-accent);
}
body[class*="season-"]:not(.is-admin):not(.page-home) .nav-card,
body[class*="season-"]:not(.is-admin):not(.page-home) .content-link,
body[class*="season-"]:not(.is-admin):not(.page-home) .article-body{
  border-color:color-mix(in srgb,var(--season-accent) 24%,var(--line));
}

/* Effets décoratifs moins envahissants sur petits écrans. */
@media(max-width:760px){
  .season-fx{inset:70px 0 0}
  .h-pumpkin{font-size:2.3rem;opacity:.52}
  .season-halloween-moon{font-size:4.3rem}
  .season-halloween-bats{font-size:1.15rem}
  .xmas-corner{font-size:2.5rem;opacity:.38}
  .easter-eggs i{transform:scale(.72)}
  .easter-sprig{font-size:2.3rem;opacity:.42}
  .summer-palm{font-size:2.8rem;opacity:.35}
  .summer-sun{font-size:4rem;opacity:.34}
  .confetti-layer i:nth-child(even),.snow-layer i:nth-child(even){display:none}
}
@media(prefers-reduced-motion:reduce){
  .snow-layer i,.confetti-layer i,.h-eye-pair,.season-halloween-bats,
  .newyear-spark,.summer-sun{animation:none!important}
  .h-eye-pair{opacity:.55}
}

body[class*="season-"]:not(.is-admin) .topbar::after{
  z-index:4;
  box-shadow:0 4px 12px rgba(20,49,77,.08);
}


/* =====================================================================
   THÈMES SAISONNIERS V3 — arrière-plans enrichis (inspirés des maquettes)
   ===================================================================== */

/* Base home layout layering */
body.page-home[class*="season-"]:not(.is-admin){position:relative;isolation:isolate}
body.page-home[class*="season-"]:not(.is-admin) main,
body.page-home[class*="season-"]:not(.is-admin) .shell{position:relative;z-index:2}
body.page-home[class*="season-"]:not(.is-admin) .season-fx{z-index:0;opacity:1}
body.page-home[class*="season-"]:not(.is-admin) .cockpit-hero,
body.page-home[class*="season-"]:not(.is-admin) .door-home-card,
body.page-home[class*="season-"]:not(.is-admin) .home-search,
body.page-home[class*="season-"]:not(.is-admin) .favorite-mini-grid a,
body.page-home[class*="season-"]:not(.is-admin) .need-card,
body.page-home[class*="season-"]:not(.is-admin) .portal-group,
body.page-home[class*="season-"]:not(.is-admin) .cockpit-alert{
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* HALLOWEEN */
body.season-halloween.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 80% 16%, rgba(255,122,0,.14), transparent 14rem),
    radial-gradient(circle at 20% 24%, rgba(117,69,160,.18), transparent 18rem),
    radial-gradient(ellipse at center bottom, rgba(56,35,65,.38), transparent 38rem),
    linear-gradient(180deg,#120d1a 0%,#0d0b14 52%,#09080d 100%);
}
body.season-halloween.page-home:not(.is-admin) .season-fx::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 84% 7%, rgba(255,162,78,.12), transparent 9rem),
    linear-gradient(to top, rgba(255,122,0,.08), transparent 20%),
    radial-gradient(ellipse at 50% 110%, rgba(194,93,17,.20), transparent 36%);
}
body.season-halloween.page-home:not(.is-admin) .season-fx::after{
  content:"";position:absolute;left:-8%;right:-8%;bottom:-2vh;height:30vh;
  background:
    radial-gradient(circle at 5% 100%, #161019 0 18%, transparent 19%),
    radial-gradient(circle at 18% 100%, #0e0b14 0 13%, transparent 14%),
    radial-gradient(circle at 28% 100%, #17111b 0 16%, transparent 17%),
    radial-gradient(circle at 41% 100%, #0d0a13 0 12%, transparent 13%),
    radial-gradient(circle at 55% 100%, #17111c 0 16%, transparent 17%),
    radial-gradient(circle at 69% 100%, #0f0b15 0 14%, transparent 15%),
    radial-gradient(circle at 82% 100%, #17111c 0 17%, transparent 18%),
    radial-gradient(circle at 96% 100%, #0f0a14 0 15%, transparent 16%);
  opacity:.95;
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 82% 18%, rgba(255,141,45,.16), transparent 10rem),
    radial-gradient(circle at 18% 12%, rgba(119,62,147,.22), transparent 14rem),
    linear-gradient(135deg, rgba(255,255,255,.02), rgba(255,255,255,0) 26%),
    linear-gradient(118deg,#090a10 0%,#17101f 56%,#27120f 100%);
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero::after{
  content:"";position:absolute;inset:auto 0 0 0;height:34%;pointer-events:none;
  background:linear-gradient(to top, rgba(255,122,0,.07), transparent),
             repeating-linear-gradient(90deg, transparent 0 8%, rgba(255,145,45,.03) 8% 8.8%, transparent 8.8% 15.5%);
  border-radius:0 0 28px 28px;
}

/* CHRISTMAS */
body.season-christmas.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 50% -10%, rgba(255,255,255,.85), transparent 18rem),
    radial-gradient(circle at 14% 18%, rgba(190,23,42,.10), transparent 22rem),
    radial-gradient(circle at 88% 20%, rgba(20,111,59,.10), transparent 22rem),
    linear-gradient(180deg,#ecf6fb 0%,#f4f9fc 54%,#edf5f9 100%);
}
body.season-christmas.page-home:not(.is-admin) .season-fx::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 15% 12%, rgba(255,255,255,.42), transparent 12rem),
    radial-gradient(circle at 84% 10%, rgba(255,255,255,.38), transparent 12rem);
}
body.season-christmas.page-home:not(.is-admin) .season-fx::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:19vh;
  background:
    radial-gradient(ellipse at 10% 100%, rgba(255,255,255,.98) 0 18%, transparent 19%),
    radial-gradient(ellipse at 28% 100%, rgba(255,255,255,.98) 0 15%, transparent 16%),
    radial-gradient(ellipse at 45% 100%, rgba(255,255,255,.98) 0 18%, transparent 19%),
    radial-gradient(ellipse at 62% 100%, rgba(255,255,255,.98) 0 16%, transparent 17%),
    radial-gradient(ellipse at 80% 100%, rgba(255,255,255,.98) 0 18%, transparent 19%),
    radial-gradient(ellipse at 96% 100%, rgba(255,255,255,.98) 0 14%, transparent 15%);
  opacity:.95;
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 84% 16%, rgba(255,214,120,.18), transparent 12rem),
    linear-gradient(135deg, rgba(255,255,255,.09), transparent 24%),
    linear-gradient(120deg,#a20f21 0%,#c81229 60%,#87111a 100%);
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 13% 78%, rgba(255,255,255,.10), transparent 10rem),
    repeating-linear-gradient(90deg, transparent 0 10%, rgba(255,255,255,.04) 10% 10.6%, transparent 10.6% 21%);
}

/* NEW YEAR */
body.season-newyear.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 50% -12%, rgba(255,225,134,.18), transparent 18rem),
    radial-gradient(circle at 14% 16%, rgba(255,205,82,.12), transparent 18rem),
    radial-gradient(circle at 87% 18%, rgba(255,205,82,.12), transparent 18rem),
    linear-gradient(180deg,#f8f5eb 0%,#faf8f0 48%,#f5f1e4 100%);
}
body.season-newyear.page-home:not(.is-admin) .season-fx::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 15% 10%, rgba(214,157,39,.18), transparent 7rem),
    radial-gradient(circle at 50% 6%, rgba(255,230,155,.14), transparent 7rem),
    radial-gradient(circle at 85% 12%, rgba(214,157,39,.18), transparent 7rem);
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 83% 18%, rgba(241,196,84,.26), transparent 10rem),
    radial-gradient(circle at 15% 18%, rgba(255,255,255,.07), transparent 9rem),
    linear-gradient(120deg,#07182e 0%,#0c2b4b 56%,#1b1d2c 100%);
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::before,
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;opacity:.7;
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::before{
  width:8rem;height:8rem;right:2.5rem;top:1rem;
  background:radial-gradient(circle, rgba(251,219,121,.55) 0 2%, transparent 3%),
             radial-gradient(circle, transparent 48%, rgba(251,219,121,.35) 49% 51%, transparent 52%),
             radial-gradient(circle, transparent 63%, rgba(251,219,121,.24) 64% 66%, transparent 67%);
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::after{
  width:6rem;height:6rem;left:58%;top:2rem;
  background:radial-gradient(circle, rgba(251,219,121,.52) 0 2%, transparent 3%),
             radial-gradient(circle, transparent 44%, rgba(251,219,121,.30) 45% 47%, transparent 48%),
             radial-gradient(circle, transparent 59%, rgba(251,219,121,.18) 60% 62%, transparent 63%);
}

/* EASTER */
body.season-easter.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 12% 10%, rgba(255,208,229,.40), transparent 18rem),
    radial-gradient(circle at 88% 10%, rgba(191,236,194,.42), transparent 18rem),
    linear-gradient(180deg,#fbf8ff 0%,#f6f9ff 60%,#eef8ea 100%);
}
body.season-easter.page-home:not(.is-admin) .season-fx::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:24vh;
  background:
    radial-gradient(ellipse at 8% 100%, rgba(186,236,177,.85) 0 20%, transparent 21%),
    radial-gradient(ellipse at 22% 100%, rgba(163,226,153,.92) 0 16%, transparent 17%),
    radial-gradient(ellipse at 38% 100%, rgba(194,240,187,.9) 0 18%, transparent 19%),
    radial-gradient(ellipse at 55% 100%, rgba(163,226,153,.92) 0 17%, transparent 18%),
    radial-gradient(ellipse at 73% 100%, rgba(194,240,187,.9) 0 18%, transparent 19%),
    radial-gradient(ellipse at 90% 100%, rgba(163,226,153,.92) 0 16%, transparent 17%);
}
body.season-easter.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.26), transparent 10rem),
    radial-gradient(circle at 13% 75%, rgba(255,236,150,.50), transparent 9rem),
    linear-gradient(135deg, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(120deg,#e5d4ff 0%,#f7dcf2 57%,#e1f6d7 100%);
}
body.season-easter.page-home:not(.is-admin) .cockpit-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg, transparent 0 12%, rgba(255,255,255,.12) 12% 12.6%, transparent 12.6% 24%);
}

/* SUMMER */
body.season-summer.page-home:not(.is-admin){
  background:
    radial-gradient(circle at 86% 8%, rgba(255,215,103,.46), transparent 13rem),
    linear-gradient(180deg,#dff8ff 0%,#eafbff 42%,#fff7da 72%,#ffe7af 100%);
}
body.season-summer.page-home:not(.is-admin) .season-fx::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 88% 6%, rgba(255,255,255,.32), transparent 7rem),
    linear-gradient(to bottom, rgba(255,255,255,.18), transparent 25%);
}
body.season-summer.page-home:not(.is-admin) .season-fx::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:24vh;
  background:
    linear-gradient(to top, rgba(255,229,154,.72), rgba(255,229,154,0) 46%),
    repeating-radial-gradient(ellipse at 50% 102%, transparent 0 34px, rgba(0,168,200,.16) 35px 38px, transparent 39px 72px);
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 86% 14%, rgba(255,246,171,.42), transparent 10rem),
    linear-gradient(135deg, rgba(255,255,255,.18), transparent 26%),
    linear-gradient(120deg,#00a3c3 0%,#12bdd0 52%,#5fd3bf 100%);
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:34%;pointer-events:none;
  background:
    linear-gradient(to top, rgba(255,255,255,.10), transparent),
    repeating-linear-gradient(90deg, transparent 0 10%, rgba(255,255,255,.08) 10% 10.5%, transparent 10.5% 20%);
  border-radius:0 0 28px 28px;
}

@media (max-width: 760px){
  body.page-home[class*="season-"]:not(.is-admin) .season-fx::after{height:18vh}
  body.page-home[class*="season-"]:not(.is-admin) .cockpit-hero::before,
  body.page-home[class*="season-"]:not(.is-admin) .cockpit-hero::after{opacity:.8}
}


/* =====================================================================
   THÈMES SAISONNIERS V4 — décors illustrés réels du site
   ===================================================================== */
body.page-home[class*="season-"]:not(.is-admin){
  background-color:var(--bg);
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  background-attachment:fixed;
}
body.page-home.season-halloween:not(.is-admin){background-image:linear-gradient(rgba(6,5,10,.10),rgba(6,5,10,.20)),url('/public/assets/seasons/halloween.svg')}
body.page-home.season-christmas:not(.is-admin){background-image:linear-gradient(rgba(255,255,255,.03),rgba(255,255,255,.12)),url('/public/assets/seasons/christmas-bg.webp')}
body.page-home.season-newyear:not(.is-admin){background-image:linear-gradient(rgba(5,15,28,.12),rgba(5,15,28,.28)),url('/public/assets/seasons/newyear-bg.webp')}
body.page-home.season-easter:not(.is-admin){background-image:linear-gradient(rgba(255,255,255,.06),rgba(255,255,255,.16)),url('/public/assets/seasons/easter-bg.webp')}
body.page-home.season-summer:not(.is-admin){background-image:linear-gradient(rgba(255,255,255,.03),rgba(255,255,255,.08)),url('/public/assets/seasons/summer-bg.webp')}

/* Le décor principal vient maintenant des SVG, on évite les anciens fonds CSS concurrents. */
body.page-home[class*="season-"]:not(.is-admin) .season-fx::before,
body.page-home[class*="season-"]:not(.is-admin) .season-fx::after{display:none!important}

/* Hero semi-transparent pour laisser voir le décor, comme dans les maquettes. */
body.season-halloween.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(110deg,rgba(8,7,13,.96) 0%,rgba(19,12,27,.91) 58%,rgba(35,14,10,.82) 100%);
  border-color:#c55b17;box-shadow:0 18px 55px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,122,0,.08)
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(110deg,rgba(141,11,28,.94),rgba(189,17,38,.90) 62%,rgba(110,17,25,.86));
  box-shadow:0 18px 50px rgba(100,13,28,.22)
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(110deg,rgba(4,18,34,.96),rgba(8,39,68,.91) 63%,rgba(17,22,35,.90));
  box-shadow:0 18px 55px rgba(0,0,0,.28),0 0 0 1px rgba(214,174,66,.18)
}
body.season-easter.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(110deg,rgba(238,224,255,.92),rgba(250,225,244,.88) 58%,rgba(228,248,218,.86));
  box-shadow:0 18px 48px rgba(116,76,151,.14)
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(110deg,rgba(0,154,192,.94),rgba(15,185,208,.90) 58%,rgba(73,200,183,.86));
  box-shadow:0 18px 48px rgba(0,111,151,.18)
}

/* Les cartes flottent au-dessus du décor, mais gardent la palette de saison. */
body.season-halloween.page-home:not(.is-admin) .door-home-card,
body.season-halloween.page-home:not(.is-admin) .home-search,
body.season-halloween.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-halloween.page-home:not(.is-admin) .need-card,
body.season-halloween.page-home:not(.is-admin) .portal-group,
body.season-halloween.page-home:not(.is-admin) .cockpit-alert{background:rgba(17,14,23,.91)}
body.season-christmas.page-home:not(.is-admin) .door-home-card,
body.season-christmas.page-home:not(.is-admin) .home-search,
body.season-christmas.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-christmas.page-home:not(.is-admin) .need-card,
body.season-christmas.page-home:not(.is-admin) .portal-group,
body.season-christmas.page-home:not(.is-admin) .cockpit-alert{background:rgba(255,255,255,.92)}
body.season-newyear.page-home:not(.is-admin) .door-home-card,
body.season-newyear.page-home:not(.is-admin) .home-search,
body.season-newyear.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-newyear.page-home:not(.is-admin) .need-card,
body.season-newyear.page-home:not(.is-admin) .portal-group,
body.season-newyear.page-home:not(.is-admin) .cockpit-alert{background:rgba(7,20,35,.88);color:#f8f4e6;border-color:rgba(205,158,44,.48)}
body.season-easter.page-home:not(.is-admin) .door-home-card,
body.season-easter.page-home:not(.is-admin) .home-search,
body.season-easter.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-easter.page-home:not(.is-admin) .need-card,
body.season-easter.page-home:not(.is-admin) .portal-group,
body.season-easter.page-home:not(.is-admin) .cockpit-alert{background:rgba(255,255,255,.90)}
body.season-summer.page-home:not(.is-admin) .door-home-card,
body.season-summer.page-home:not(.is-admin) .home-search,
body.season-summer.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-summer.page-home:not(.is-admin) .need-card,
body.season-summer.page-home:not(.is-admin) .portal-group,
body.season-summer.page-home:not(.is-admin) .cockpit-alert{background:rgba(255,255,255,.90)}

/* Nouvel an : texte clair dans les cartes sombres. */
body.season-newyear.page-home:not(.is-admin) .door-home-copy>strong,
body.season-newyear.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-newyear.page-home:not(.is-admin) .need-card,
body.season-newyear.page-home:not(.is-admin) .portal-group summary,
body.season-newyear.page-home:not(.is-admin) .cockpit-title h2,
body.season-newyear.page-home:not(.is-admin) .cockpit-title>a,
body.season-newyear.page-home:not(.is-admin) .cockpit-title-help{color:#fff}
body.season-newyear.page-home:not(.is-admin) .door-home-copy>small,
body.season-newyear.page-home:not(.is-admin) .favorite-mini-grid small,
body.season-newyear.page-home:not(.is-admin) .need-copy small,
body.season-newyear.page-home:not(.is-admin) .portal-group-copy small{color:#d5d2c6}
body.season-newyear.page-home:not(.is-admin) .home-search input{color:#fff}
body.season-newyear.page-home:not(.is-admin) .home-search input::placeholder{color:#c4c1b8}

@media(max-width:900px){
  body.page-home[class*="season-"]:not(.is-admin){background-attachment:scroll;background-position:center top}
}
@media(max-width:680px){
  body.page-home.season-halloween:not(.is-admin){background-position:62% top}
  body.page-home.season-christmas:not(.is-admin){background-position:55% top}
  body.page-home.season-newyear:not(.is-admin){background-position:60% top}
  body.page-home.season-easter:not(.is-admin){background-position:54% top}
  body.page-home.season-summer:not(.is-admin){background-position:52% top}
}


/* =====================================================================
   HALLOWEEN — fond réaliste dédié
   ===================================================================== */
body.season-halloween.page-home:not(.is-admin){
  background-color:#09080d;
  background-image:
    linear-gradient(rgba(7,6,12,.16),rgba(7,6,12,.34)),
    url('/public/assets/seasons/halloween-bg.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* On laisse le vrai fond visible derrière les éléments du portail. */
body.season-halloween.page-home:not(.is-admin) .season-fx::before,
body.season-halloween.page-home:not(.is-admin) .season-fx::after{
  display:none!important;
}

body.season-halloween.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(110deg,rgba(8,8,14,.94),rgba(18,11,26,.86) 58%,rgba(38,15,12,.72));
  border-color:rgba(255,122,0,.74);
  box-shadow:0 16px 42px rgba(0,0,0,.40),0 0 0 1px rgba(255,122,0,.10);
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero::before{
  background:
    radial-gradient(circle at 88% 14%,rgba(255,133,32,.12),transparent 24%),
    linear-gradient(135deg,rgba(255,255,255,.025),transparent 32%);
}
body.season-halloween.page-home:not(.is-admin) .cockpit-hero::after{display:none!important}

body.season-halloween.page-home:not(.is-admin) .door-home-card,
body.season-halloween.page-home:not(.is-admin) .home-search,
body.season-halloween.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-halloween.page-home:not(.is-admin) .need-card,
body.season-halloween.page-home:not(.is-admin) .portal-group,
body.season-halloween.page-home:not(.is-admin) .cockpit-alert{
  background:rgba(18,15,24,.86);
  border-color:rgba(187,83,33,.70);
  box-shadow:0 8px 24px rgba(0,0,0,.30);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

body.season-halloween.page-home:not(.is-admin) .home-search{
  background:rgba(17,14,23,.91);
}

/* Les yeux et éléments animés restent au-dessus du décor. */
body.season-halloween.page-home:not(.is-admin) .season-fx{
  z-index:1;
}
body.season-halloween.page-home:not(.is-admin) .shell{
  z-index:2;
}

@media(max-width:900px){
  body.season-halloween.page-home:not(.is-admin){
    background-attachment:scroll;
    background-position:62% top;
  }
}

@media(max-width:680px){
  body.season-halloween.page-home:not(.is-admin){
    background-position:68% top;
  }
}


/* Halloween cleanup: remove bats and pumpkins, keep glowing eyes */
body.season-halloween.page-home:not(.is-admin) .season-halloween-bats,
body.season-halloween.page-home:not(.is-admin) .h-pumpkin{display:none!important}


/* =====================================================================
   HALLOWEEN V3 — thème étendu à tout le portail utilisateur
   ===================================================================== */

/* Suppression définitive des décorations jugées trop cartoon. */
body.season-halloween:not(.is-admin) .season-halloween-moon,
body.season-halloween:not(.is-admin) .season-halloween-bats,
body.season-halloween:not(.is-admin) .h-pumpkin{display:none!important}

/* Le fond réaliste devient le fond général du portail, pas seulement l'accueil. */
body.season-halloween:not(.is-admin){
  --bg:#09080d;
  --card:#15111a;
  --text:#f5f2f7;
  --muted:#c8bdce;
  --line:rgba(188,92,42,.48);
  --navy:#ff7a00;
  --navy2:#6c2d10;
  --blue:#c75cff;
  --orange:#ff7a00;
  color:var(--text);
  background-color:#09080d;
  background-image:
    linear-gradient(rgba(7,6,12,.22),rgba(7,6,12,.50)),
    url('/public/assets/seasons/halloween-bg.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* L'effet des yeux reste présent sur toutes les pages. */
body.season-halloween:not(.is-admin) .season-fx{
  z-index:1;
}
body.season-halloween:not(.is-admin) .season-fx::before,
body.season-halloween:not(.is-admin) .season-fx::after{display:none!important}
body.season-halloween:not(.is-admin) .shell,
body.season-halloween:not(.is-admin) footer{position:relative;z-index:2}

/* Barre de navigation : sombre et premium. */
body.season-halloween:not(.is-admin) .topbar{
  background:rgba(10,8,15,.93);
  border-bottom-color:rgba(255,122,0,.48);
  box-shadow:0 8px 28px rgba(0,0,0,.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
body.season-halloween:not(.is-admin) .brand,
body.season-halloween:not(.is-admin) .desktop-quicknav a,
body.season-halloween:not(.is-admin) .navtoggle{color:#fff}
body.season-halloween:not(.is-admin) .brand small{color:#c8bdce}
body.season-halloween:not(.is-admin) .desktop-quicknav a:hover{background:rgba(255,122,0,.11);color:#ff9a3d}
body.season-halloween:not(.is-admin) .navtoggle{border-color:rgba(255,122,0,.42);background:rgba(22,15,27,.76)}

/* Menu principal / tiroir mobile. */
body.season-halloween:not(.is-admin) .mainnav{
  background:rgba(13,10,18,.97);
  border-color:rgba(255,122,0,.38);
  color:#fff;
}
body.season-halloween:not(.is-admin) .mainnav a{color:#f6f2f8}
body.season-halloween:not(.is-admin) .mainnav a:hover,
body.season-halloween:not(.is-admin) .mainnav a.active{background:rgba(255,122,0,.12);color:#ff9a3d}
body.season-halloween:not(.is-admin) .mainnav small{color:#bcaec4}

/* Cartes génériques et panneaux : translucides pour conserver le décor. */
body.season-halloween:not(.is-admin) .panel,
body.season-halloween:not(.is-admin) .article-body,
body.season-halloween:not(.is-admin) .recent-list,
body.season-halloween:not(.is-admin) .doc-row,
body.season-halloween:not(.is-admin) .nav-card,
body.season-halloween:not(.is-admin) .content-link,
body.season-halloween:not(.is-admin) .alert-card,
body.season-halloween:not(.is-admin) .timeline-card,
body.season-halloween:not(.is-admin) .search-result,
body.season-halloween:not(.is-admin) .favorite-row,
body.season-halloween:not(.is-admin) .empty-state,
body.season-halloween:not(.is-admin) .required-read,
body.season-halloween:not(.is-admin) .table-wrap,
body.season-halloween:not(.is-admin) .tools-grid>a,
body.season-halloween:not(.is-admin) .tool-card,
body.season-halloween:not(.is-admin) .faq-group,
body.season-halloween:not(.is-admin) details.faq-item,
body.season-halloween:not(.is-admin) .history-card,
body.season-halloween:not(.is-admin) .signature-preview,
body.season-halloween:not(.is-admin) .magazine-panel,
body.season-halloween:not(.is-admin) .magazine-search,
body.season-halloween:not(.is-admin) .magazine-issue,
body.season-halloween:not(.is-admin) .magazine-tab,
body.season-halloween:not(.is-admin) .document-card{
  background:rgba(16,13,21,.88)!important;
  color:#f7f3f8;
  border-color:rgba(185,83,34,.56)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.24);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* Titres, liens et textes secondaires. */
body.season-halloween:not(.is-admin) h1,
body.season-halloween:not(.is-admin) h2,
body.season-halloween:not(.is-admin) h3,
body.season-halloween:not(.is-admin) h4,
body.season-halloween:not(.is-admin) strong{color:#fff}
body.season-halloween:not(.is-admin) .lead,
body.season-halloween:not(.is-admin) .breadcrumbs,
body.season-halloween:not(.is-admin) .article-meta,
body.season-halloween:not(.is-admin) .muted,
body.season-halloween:not(.is-admin) .doc-row p,
body.season-halloween:not(.is-admin) .nav-card p,
body.season-halloween:not(.is-admin) .content-link p,
body.season-halloween:not(.is-admin) .search-result p,
body.season-halloween:not(.is-admin) .history-summary,
body.season-halloween:not(.is-admin) .history-preview,
body.season-halloween:not(.is-admin) .cockpit-title-help{color:#c8bdce!important}
body.season-halloween:not(.is-admin) a{color:#ff9a3d}
body.season-halloween:not(.is-admin) .eyebrow{color:#ff861c}

/* Champs de formulaire et recherche. */
body.season-halloween:not(.is-admin) input,
body.season-halloween:not(.is-admin) textarea,
body.season-halloween:not(.is-admin) select{
  color:#fff;
  background:rgba(12,10,17,.84);
  border-color:rgba(185,83,34,.52);
}
body.season-halloween:not(.is-admin) input::placeholder,
body.season-halloween:not(.is-admin) textarea::placeholder{color:#9f94a7}
body.season-halloween:not(.is-admin) input:focus,
body.season-halloween:not(.is-admin) textarea:focus,
body.season-halloween:not(.is-admin) select:focus{
  outline:none;
  border-color:#ff7a00;
  box-shadow:0 0 0 3px rgba(255,122,0,.14);
}

/* Boutons génériques. */
body.season-halloween:not(.is-admin) .btn,
body.season-halloween:not(.is-admin) button:not(.navtoggle):not(.mainnav-close){
  border-color:rgba(255,122,0,.48);
}
body.season-halloween:not(.is-admin) .btn.primary{
  color:#171019;
  background:linear-gradient(135deg,#ff9b31,#ff6d00);
  border-color:#ff8b20;
}
body.season-halloween:not(.is-admin) .btn:not(.primary){background:rgba(24,17,29,.88);color:#f7f2f8}

/* Pages de contenu : article lisible, mais intégré au thème. */
body.season-halloween:not(.is-admin) .article-body h2,
body.season-halloween:not(.is-admin) .article-body h3{color:#ff9a3d}
body.season-halloween:not(.is-admin) .article-body blockquote{
  color:#f6f1f7;
  background:rgba(67,30,28,.62);
  border-left-color:#ff7a00;
}
body.season-halloween:not(.is-admin) .article-body a{text-decoration-color:rgba(255,154,61,.65)}
body.season-halloween:not(.is-admin) .article-body hr{border-color:rgba(185,83,34,.42)}

/* Documents / tableaux. */
body.season-halloween:not(.is-admin) table{color:#f7f3f8}
body.season-halloween:not(.is-admin) th{color:#ffab5c;border-bottom-color:rgba(185,83,34,.45)}
body.season-halloween:not(.is-admin) td{border-bottom-color:rgba(185,83,34,.30)}

/* Revues : onglets cohérents avec le thème. */
body.season-halloween:not(.is-admin) .magazine-tab.is-active{
  background:rgba(95,42,29,.82)!important;
  border-color:#ff7a00!important;
}
body.season-halloween:not(.is-admin) .magazine-issue:hover,
body.season-halloween:not(.is-admin) .content-link:hover,
body.season-halloween:not(.is-admin) .nav-card:hover{
  border-color:#ff7a00!important;
  box-shadow:0 10px 30px rgba(255,94,0,.10);
}

/* Historique / badges. */
body.season-halloween:not(.is-admin) .history-years{
  background:rgba(10,8,15,.90);
  border-color:rgba(185,83,34,.46);
}
body.season-halloween:not(.is-admin) .history-years a{background:rgba(30,19,34,.88);color:#f4eff6;border-color:rgba(185,83,34,.38)}
body.season-halloween:not(.is-admin) .history-years a:hover{background:#7c3315;color:#fff}
body.season-halloween:not(.is-admin) .history-date,
body.season-halloween:not(.is-admin) .result-type{background:rgba(255,122,0,.14);color:#ffac60}

/* Footer sombre pour finir le thème proprement. */
body.season-halloween:not(.is-admin) footer{
  color:#bbaec2;
  background:rgba(9,7,13,.94);
  border-top-color:rgba(185,83,34,.42);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Mobile : fond scroll pour éviter les problèmes WebKit / PWA. */
@media(max-width:900px){
  body.season-halloween:not(.is-admin){
    background-attachment:scroll;
    background-position:62% top;
  }
}
@media(max-width:680px){
  body.season-halloween:not(.is-admin){background-position:68% top}
  body.season-halloween:not(.is-admin) .article-body,
  body.season-halloween:not(.is-admin) .panel{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
}


/* ==========================================================
   HALLOWEEN — barre de navigation sombre sur tout le portail
   ========================================================== */
body.season-halloween:not(.is-admin) .topbar{
  background:rgba(9,7,13,.96)!important;
  border-bottom:1px solid rgba(255,122,0,.42)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.22);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

body.season-halloween:not(.is-admin) .brand{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .brand b{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .brand small{
  color:#b9afc0!important;
}
body.season-halloween:not(.is-admin) .brand img{
  object-fit:contain;
}

/* Navigation desktop */
body.season-halloween:not(.is-admin) .desktop-quicknav a,
body.season-halloween:not(.is-admin) .topbar-actions a{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .desktop-quicknav a:hover,
body.season-halloween:not(.is-admin) .topbar-actions a:hover{
  color:#ff9a3d!important;
  background:rgba(255,122,0,.08)!important;
}

/* Bouton Menu */
body.season-halloween:not(.is-admin) .navtoggle{
  color:#fff!important;
  background:rgba(255,255,255,.04)!important;
  border:1px solid rgba(255,122,0,.44)!important;
  border-radius:12px;
}
body.season-halloween:not(.is-admin) .navtoggle:hover{
  background:rgba(255,122,0,.10)!important;
  border-color:#ff7a00!important;
}

/* Badge aperçu admin dans la barre sombre */
body.season-halloween:not(.is-admin) .season-preview-badge{
  color:#ff9a3d!important;
  background:rgba(31,18,24,.92)!important;
  border-color:#ff7a00!important;
}

/* Drawer / menu mobile cohérent avec la barre */
body.season-halloween:not(.is-admin) .mainnav{
  background:rgba(10,8,14,.98)!important;
  border-color:rgba(255,122,0,.40)!important;
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .mainnav-head{
  border-bottom-color:rgba(255,122,0,.30)!important;
}
body.season-halloween:not(.is-admin) .mainnav-head strong{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .mainnav-head small{
  color:#b9afc0!important;
}
body.season-halloween:not(.is-admin) .mainnav a{
  color:#f7f2f8!important;
}
body.season-halloween:not(.is-admin) .mainnav a:hover,
body.season-halloween:not(.is-admin) .mainnav a.active{
  color:#ff9a3d!important;
  background:rgba(255,122,0,.10)!important;
}
body.season-halloween:not(.is-admin) .mainnav-close{
  color:#fff!important;
  border-color:rgba(255,122,0,.36)!important;
  background:rgba(255,255,255,.04)!important;
}

/* Logo blanc : dimensions adaptées sans halo blanc */
body.season-halloween:not(.is-admin) .topbar .brand img{
  width:150px;
  height:52px;
  filter:none!important;
}
body.season-halloween:not(.is-admin) .mainnav img{
  filter:none!important;
}

@media(max-width:680px){
  body.season-halloween:not(.is-admin) .topbar{
    background:rgba(9,7,13,.98)!important;
  }
}


/* =====================================================================
   HALLOWEEN V6 — finition des composants encore clairs
   ===================================================================== */

/* Menu principal : les tuiles héritaient encore du fond blanc standard. */
body.season-halloween:not(.is-admin) .mainnav-head{
  background:rgba(13,10,18,.98)!important;
  border-bottom-color:rgba(255,122,0,.28)!important;
}
body.season-halloween:not(.is-admin) .mainnav-link{
  background:rgba(28,21,33,.96)!important;
  color:#f7f2f8!important;
  border-color:rgba(255,122,0,.14)!important;
}
body.season-halloween:not(.is-admin) .mainnav-link:hover,
body.season-halloween:not(.is-admin) .mainnav-link.active{
  background:rgba(70,34,42,.92)!important;
  color:#fff!important;
  border-color:rgba(255,122,0,.45)!important;
}
body.season-halloween:not(.is-admin) .mainnav-link>b{
  color:#ff9a3d!important;
}
body.season-halloween:not(.is-admin) .mainnav-icon{
  background:rgba(255,122,0,.13)!important;
  color:#ff9a3d!important;
}
body.season-halloween:not(.is-admin) .mainnav-section{
  border-top-color:rgba(255,122,0,.20)!important;
}
body.season-halloween:not(.is-admin) .mainnav-section-title{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .mainnav-logout{
  color:#ff938f!important;
}
body.season-halloween:not(.is-admin) .mainnav-logout .mainnav-icon{
  background:rgba(194,57,57,.15)!important;
  color:#ff938f!important;
}

/* Outils */
body.season-halloween:not(.is-admin) .tool-row>a{
  background:rgba(18,14,23,.91)!important;
  border-color:rgba(255,122,0,.44)!important;
  color:#f8f4f9!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-halloween:not(.is-admin) .tool-row>a:hover{
  background:rgba(44,25,35,.94)!important;
  border-color:#ff7a00!important;
}
body.season-halloween:not(.is-admin) .tool-icon{
  background:rgba(255,122,0,.12)!important;
  color:#ff9a3d!important;
}
body.season-halloween:not(.is-admin) .tool-row small{
  color:#c8bdce!important;
}

/* Procédures / checklists */
body.season-halloween:not(.is-admin) .procedure-card,
body.season-halloween:not(.is-admin) .checklist-card,
body.season-halloween:not(.is-admin) .procedure-help{
  background:rgba(18,14,23,.91)!important;
  color:#f8f4f9!important;
  border-color:rgba(255,122,0,.38)!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-halloween:not(.is-admin) .procedure-card h2,
body.season-halloween:not(.is-admin) .procedure-card>a{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .procedure-card p,
body.season-halloween:not(.is-admin) .checklist-card>p,
body.season-halloween:not(.is-admin) .check-item small{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .procedure-card-head>span{
  color:#c95cff!important;
}
body.season-halloween:not(.is-admin) .importance-urgent{
  border-top-color:#df4b52!important;
}
body.season-halloween:not(.is-admin) .importance-important{
  border-top-color:#e5a11e!important;
}
body.season-halloween:not(.is-admin) .check-item button>span{
  border-color:rgba(255,154,61,.48)!important;
}
body.season-halloween:not(.is-admin) .check-item.checked button>span{
  background:#ff7a00!important;
  border-color:#ff7a00!important;
  color:#171019!important;
}

/* Organisation */
body.season-halloween:not(.is-admin) .org-card{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(255,122,0,.42)!important;
  color:#f8f4f9!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-halloween:not(.is-admin) .org-card-bureau{
  border-top-color:#ff7a00!important;
}
body.season-halloween:not(.is-admin) .org-avatar{
  background:rgba(255,122,0,.13)!important;
  color:#ff9a3d!important;
}
body.season-halloween:not(.is-admin) .org-role{
  background:#ff7a00!important;
  color:#171019!important;
}
body.season-halloween:not(.is-admin) .org-person p{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .org-person small{
  color:#c75cff!important;
}
body.season-halloween:not(.is-admin) .org-actions a{
  background:rgba(7,6,11,.86)!important;
  color:#ffad63!important;
  border:1px solid rgba(255,122,0,.16);
}
body.season-halloween:not(.is-admin) .org-group-mail{
  background:rgba(18,14,23,.92)!important;
  color:#ff9a3d!important;
  border:1px solid rgba(255,122,0,.32);
}

/* Qui contacter ? */
body.season-halloween:not(.is-admin) .contact-help-card,
body.season-halloween:not(.is-admin) .contact-card,
body.season-halloween:not(.is-admin) .topic-card{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(255,122,0,.42)!important;
  color:#f8f4f9!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-halloween:not(.is-admin) .contact-help-title p,
body.season-halloween:not(.is-admin) .contact-help-person small,
body.season-halloween:not(.is-admin) .contact-card p,
body.season-halloween:not(.is-admin) .topic-card summary small,
body.season-halloween:not(.is-admin) .topic-contact small{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .contact-help-people,
body.season-halloween:not(.is-admin) .contact-help-person+ .contact-help-person{
  border-color:rgba(255,122,0,.25)!important;
}
body.season-halloween:not(.is-admin) .contact-help-actions a,
body.season-halloween:not(.is-admin) .contact-actions a,
body.season-halloween:not(.is-admin) .topic-contact a{
  background:rgba(255,122,0,.12)!important;
  color:#ffad63!important;
  border:1px solid rgba(255,122,0,.18);
}
body.season-halloween:not(.is-admin) .topic-contact{
  background:rgba(9,7,13,.72)!important;
}
body.season-halloween:not(.is-admin) .topic-icon{
  background:rgba(255,122,0,.12)!important;
  color:#ff9a3d!important;
}

/* Revues : barre de recherche, panneau et numéros */
body.season-halloween:not(.is-admin) .magazine-toolbar,
body.season-halloween:not(.is-admin) .magazine-panel-head{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(255,122,0,.42)!important;
  color:#f8f4f9!important;
}
body.season-halloween:not(.is-admin) .magazine-toolbar{
  box-shadow:0 7px 22px rgba(0,0,0,.16);
}
body.season-halloween:not(.is-admin) .magazine-search span,
body.season-halloween:not(.is-admin) .magazine-result-count,
body.season-halloween:not(.is-admin) .magazine-panel-head p,
body.season-halloween:not(.is-admin) .magazine-tab-copy small{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .magazine-number-card{
  background:rgba(18,14,23,.90)!important;
  color:#f8f4f9!important;
  border-color:rgba(255,122,0,.32)!important;
}
body.season-halloween:not(.is-admin) .magazine-number-card:hover,
body.season-halloween:not(.is-admin) .magazine-number-card.is-latest{
  background:rgba(69,34,37,.90)!important;
  border-color:#ff7a00!important;
}
body.season-halloween:not(.is-admin) .magazine-number-main strong{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .magazine-number-main em{
  color:#c75cff!important;
}
body.season-halloween:not(.is-admin) .magazine-number-card>small{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .magazine-number-open{
  color:#ff9a3d!important;
}
body.season-halloween:not(.is-admin) .magazine-tab-logo,
body.season-halloween:not(.is-admin) .magazine-panel-logo{
  background:#fff!important;
}

/* Sécurité & biométrie */
body.season-halloween:not(.is-admin) .security-onboarding,
body.season-halloween:not(.is-admin) .security-note,
body.season-halloween:not(.is-admin) .passkey-row{
  background:rgba(18,14,23,.92)!important;
  border:1px solid rgba(255,122,0,.38)!important;
  color:#f8f4f9!important;
}
body.season-halloween:not(.is-admin) .security-onboarding p,
body.season-halloween:not(.is-admin) .security-note p,
body.season-halloween:not(.is-admin) .passkey-row small,
body.season-halloween:not(.is-admin) .passkey-enroll-card p{
  color:#c8bdce!important;
}
body.season-halloween:not(.is-admin) .security-icon,
body.season-halloween:not(.is-admin) .passkey-symbol{
  background:#ff7a00!important;
  color:#171019!important;
}
body.season-halloween:not(.is-admin) .passkey-register-btn{
  background:linear-gradient(135deg,#ff9b31,#ff6d00)!important;
  color:#171019!important;
  border-color:#ff8b20!important;
}
body.season-halloween:not(.is-admin) .passkey-row button{
  background:rgba(42,24,32,.92)!important;
  color:#fff!important;
  border-color:rgba(255,122,0,.50)!important;
}

/* Recherche / favoris / progression / onboarding */
body.season-halloween:not(.is-admin) .progress-card,
body.season-halloween:not(.is-admin) .onboarding-step{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(255,122,0,.38)!important;
  color:#f8f4f9!important;
}
body.season-halloween:not(.is-admin) .progress-card>strong{
  color:#ff9a3d!important;
}
body.season-halloween:not(.is-admin) .progress-bar{
  background:rgba(255,255,255,.10)!important;
}
body.season-halloween:not(.is-admin) .progress-bar i{
  background:#ff7a00!important;
}
body.season-halloween:not(.is-admin) .onboarding-step p,
body.season-halloween:not(.is-admin) .favorite-row>a small{
  color:#c8bdce!important;
}

/* Boutons de favoris : éviter les blocs blancs isolés. */
body.season-halloween:not(.is-admin) .favorite-btn{
  background:rgba(18,14,23,.92)!important;
  color:#a9bdcd!important;
  border-color:rgba(255,122,0,.35)!important;
}
body.season-halloween:not(.is-admin) .favorite-btn.is-favorite{
  color:#ffb221!important;
  background:rgba(255,154,0,.13)!important;
  border-color:#ff9a20!important;
}

/* Les petits contrôles / badges qui restaient gris clair. */
body.season-halloween:not(.is-admin) .icon-dot,
body.season-halloween:not(.is-admin) .contact-avatar{
  background:rgba(255,122,0,.13)!important;
  color:#ff9a3d!important;
}


/* =====================================================================
   LAYOUT — footer toujours en bas de la fenêtre sur les pages courtes
   ===================================================================== */
body:not(.is-admin){
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}
body:not(.is-admin)>.topbar{
  flex:0 0 auto;
}
body:not(.is-admin)>.shell{
  width:100%;
  flex:1 0 auto;
}
body:not(.is-admin)>footer{
  flex:0 0 auto;
  margin-top:auto;
  position:relative;
  z-index:3;
}

/* Le dock mobile ne doit pas perturber la hauteur utile de la page. */
@media(max-width:680px){
  body.has-mobile-dock:not(.is-admin){
    min-height:100dvh;
  }
}

/* =====================================================================
   HALLOWEEN V8 — finition de la page "Qui contacter ?"
   ===================================================================== */
body.season-halloween:not(.is-admin) .contact-help-card{
  background:rgba(15,12,20,.94)!important;
  border:1px solid rgba(255,122,0,.48)!important;
  box-shadow:0 10px 26px rgba(0,0,0,.20)!important;
}
body.season-halloween:not(.is-admin) .contact-help-title h2,
body.season-halloween:not(.is-admin) .contact-help-person strong{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .contact-help-title p,
body.season-halloween:not(.is-admin) .contact-help-person small{
  color:#c9bfd1!important;
}
body.season-halloween:not(.is-admin) .contact-help-title .topic-icon{
  background:rgba(255,122,0,.14)!important;
  color:#ff9a3d!important;
  border:1px solid rgba(255,122,0,.18)!important;
}
body.season-halloween:not(.is-admin) .contact-help-people,
body.season-halloween:not(.is-admin) .contact-help-person + .contact-help-person{
  border-color:rgba(255,122,0,.26)!important;
}

/* Adresse de pôle : suppression du pavé blanc résiduel */
body.season-halloween:not(.is-admin) .contact-group-mail{
  background:rgba(31,22,36,.96)!important;
  color:#f8f4f9!important;
  border:1px solid rgba(255,122,0,.36)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.12)!important;
}
body.season-halloween:not(.is-admin) .contact-group-mail:hover{
  background:rgba(55,29,39,.98)!important;
  border-color:#ff7a00!important;
}
body.season-halloween:not(.is-admin) .contact-group-mail>span{
  background:rgba(255,122,0,.13)!important;
  color:#ff9a3d!important;
  border:1px solid rgba(255,122,0,.16)!important;
}
body.season-halloween:not(.is-admin) .contact-group-mail strong{
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .contact-group-mail small{
  color:#c9bfd1!important;
}
body.season-halloween:not(.is-admin) .contact-group-mail>b{
  color:#ff9a3d!important;
}

/* Actions téléphone / e-mail */
body.season-halloween:not(.is-admin) .contact-help-actions a{
  background:rgba(77,40,25,.92)!important;
  color:#ffb36c!important;
  border:1px solid rgba(255,122,0,.28)!important;
}
body.season-halloween:not(.is-admin) .contact-help-actions a:hover{
  background:rgba(108,50,23,.96)!important;
  border-color:#ff7a00!important;
  color:#fff!important;
}

/* Pied de la page "Qui contacter ?" */
body.season-halloween:not(.is-admin) .contact-help-footer{
  background:rgba(15,12,20,.94)!important;
  border:1px solid rgba(255,122,0,.42)!important;
  color:#fff!important;
}
body.season-halloween:not(.is-admin) .contact-help-footer a{
  background:rgba(255,122,0,.13)!important;
  color:#ffad63!important;
  border:1px solid rgba(255,122,0,.25)!important;
}
body.season-halloween:not(.is-admin) .contact-help-footer a:hover{
  background:#ff7a00!important;
  color:#171019!important;
}

/* =====================================================================
   NOËL V2 — thème étendu à tout le portail utilisateur
   ===================================================================== */

body.season-christmas:not(.is-admin){
  --bg:#07111d;
  --card:rgba(8,17,30,.84);
  --card-strong:rgba(7,14,25,.92);
  --text:#f5f8fd;
  --muted:#c8d6e6;
  --line:rgba(174,213,255,.24);
  --accent:#d9b15f;
  --accent-2:#9bc8ff;
  --accent-3:#b23a48;
  color:var(--text);
  background-color:#07111d;
  background-image:
    linear-gradient(rgba(4,10,18,.30),rgba(4,10,18,.62)),
    url('/public/assets/seasons/christmas-bg.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
body.season-christmas:not(.is-admin) .season-fx{
  z-index:1;
}
body.season-christmas:not(.is-admin) .season-fx::before,
body.season-christmas:not(.is-admin) .season-fx::after{display:none!important}
body.season-christmas:not(.is-admin) .shell,
body.season-christmas:not(.is-admin) footer{position:relative;z-index:2}

/* Barre de navigation : froide, sombre et élégante. */
body.season-christmas:not(.is-admin) .topbar{
  background:rgba(7,13,24,.92);
  border-bottom-color:rgba(197,227,255,.20);
  box-shadow:0 10px 30px rgba(1,6,12,.30);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
body.season-christmas:not(.is-admin) .brand,
body.season-christmas:not(.is-admin) .desktop-quicknav a,
body.season-christmas:not(.is-admin) .navtoggle{color:#f7fbff}
body.season-christmas:not(.is-admin) .brand small{color:#cad7e6}
body.season-christmas:not(.is-admin) .desktop-quicknav a:hover{
  background:rgba(155,200,255,.10);
  color:#fff;
}
body.season-christmas:not(.is-admin) .navtoggle{
  border-color:rgba(217,177,95,.42);
  background:rgba(11,19,33,.78);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
body.season-christmas:not(.is-admin) .season-preview-badge{
  color:#fff;
  border-color:rgba(217,177,95,.58);
  background:rgba(18,30,47,.74);
}

/* Menu principal / tiroir mobile. */
body.season-christmas:not(.is-admin) .mainnav{
  background:rgba(8,14,25,.96);
  border-color:rgba(174,213,255,.26);
  color:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.30);
}
body.season-christmas:not(.is-admin) .mainnav a{color:#f7fbff}
body.season-christmas:not(.is-admin) .mainnav a:hover,
body.season-christmas:not(.is-admin) .mainnav a.active{
  background:rgba(155,200,255,.10);
  color:#fff;
}
body.season-christmas:not(.is-admin) .mainnav small,
body.season-christmas:not(.is-admin) .mainnav-section-title{color:#c8d6e6}
body.season-christmas:not(.is-admin) .nav-backdrop{background:rgba(4,8,16,.48)}

/* Panneaux et cartes : effet verre givré. */
body.season-christmas:not(.is-admin) .panel,
body.season-christmas:not(.is-admin) .article-body,
body.season-christmas:not(.is-admin) .recent-list,
body.season-christmas:not(.is-admin) .doc-row,
body.season-christmas:not(.is-admin) .nav-card,
body.season-christmas:not(.is-admin) .content-link,
body.season-christmas:not(.is-admin) .alert-card,
body.season-christmas:not(.is-admin) .timeline-card,
body.season-christmas:not(.is-admin) .search-result,
body.season-christmas:not(.is-admin) .favorite-row,
body.season-christmas:not(.is-admin) .empty-state,
body.season-christmas:not(.is-admin) .required-read,
body.season-christmas:not(.is-admin) .table-wrap,
body.season-christmas:not(.is-admin) .tools-grid>a,
body.season-christmas:not(.is-admin) .tool-card,
body.season-christmas:not(.is-admin) .faq-group,
body.season-christmas:not(.is-admin) details.faq-item,
body.season-christmas:not(.is-admin) .history-card,
body.season-christmas:not(.is-admin) .signature-preview,
body.season-christmas:not(.is-admin) .magazine-panel,
body.season-christmas:not(.is-admin) .magazine-search,
body.season-christmas:not(.is-admin) .magazine-issue,
body.season-christmas:not(.is-admin) .magazine-tab,
body.season-christmas:not(.is-admin) .document-card,
body.season-christmas:not(.is-admin) .contact-topic,
body.season-christmas:not(.is-admin) .contact-card,
body.season-christmas:not(.is-admin) .contact-topic-card,
body.season-christmas:not(.is-admin) .security-card,
body.season-christmas:not(.is-admin) .security-device,
body.season-christmas:not(.is-admin) .bio-card,
body.season-christmas:not(.is-admin) .tool-row,
body.season-christmas:not(.is-admin) .profile-card,
body.season-christmas:not(.is-admin) .portal-group,
body.season-christmas:not(.is-admin) .need-card,
body.season-christmas:not(.is-admin) .door-home-card,
body.season-christmas:not(.is-admin) .home-search,
body.season-christmas:not(.is-admin) .favorite-mini-grid a,
body.season-christmas:not(.is-admin) .cockpit-alert{
  background:linear-gradient(180deg,rgba(9,18,32,.90),rgba(6,14,25,.86))!important;
  color:#f7fbff;
  border-color:rgba(190,224,255,.28)!important;
  box-shadow:0 12px 34px rgba(1,5,12,.28);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* Titres et textes */
body.season-christmas:not(.is-admin) h1,
body.season-christmas:not(.is-admin) h2,
body.season-christmas:not(.is-admin) h3,
body.season-christmas:not(.is-admin) h4,
body.season-christmas:not(.is-admin) strong{color:#fff}
body.season-christmas:not(.is-admin) .lead,
body.season-christmas:not(.is-admin) .breadcrumbs,
body.season-christmas:not(.is-admin) .article-meta,
body.season-christmas:not(.is-admin) .muted,
body.season-christmas:not(.is-admin) .doc-row p,
body.season-christmas:not(.is-admin) .nav-card p,
body.season-christmas:not(.is-admin) .content-link p,
body.season-christmas:not(.is-admin) .search-result p,
body.season-christmas:not(.is-admin) .history-summary,
body.season-christmas:not(.is-admin) .history-preview,
body.season-christmas:not(.is-admin) .cockpit-title-help,
body.season-christmas:not(.is-admin) .panel small,
body.season-christmas:not(.is-admin) .tool-card small,
body.season-christmas:not(.is-admin) .portal-group-copy small,
body.season-christmas:not(.is-admin) .need-copy small{color:#c8d6e6!important}
body.season-christmas:not(.is-admin) a{color:#d9b15f}
body.season-christmas:not(.is-admin) .eyebrow{color:#d9b15f}
body.season-christmas:not(.is-admin) .door-home-kicker,
body.season-christmas:not(.is-admin) .section-title-overline,
body.season-christmas:not(.is-admin) .portal-group summary,
body.season-christmas:not(.is-admin) .portal-group-copy strong,
body.season-christmas:not(.is-admin) .favorite-mini-grid strong,
body.season-christmas:not(.is-admin) .need-copy strong{color:#fff}

/* Formulaires */
body.season-christmas:not(.is-admin) input,
body.season-christmas:not(.is-admin) textarea,
body.season-christmas:not(.is-admin) select{
  color:#f7fbff;
  background:rgba(7,14,25,.78);
  border-color:rgba(174,213,255,.32);
}
body.season-christmas:not(.is-admin) input::placeholder,
body.season-christmas:not(.is-admin) textarea::placeholder{color:#a5b9cf}
body.season-christmas:not(.is-admin) input:focus,
body.season-christmas:not(.is-admin) textarea:focus,
body.season-christmas:not(.is-admin) select:focus{
  outline:none;
  border-color:#d9b15f;
  box-shadow:0 0 0 3px rgba(217,177,95,.12);
}

/* Boutons et badges */
body.season-christmas:not(.is-admin) .btn,
body.season-christmas:not(.is-admin) button:not(.navtoggle):not(.mainnav-close){
  border-color:rgba(217,177,95,.42);
}
body.season-christmas:not(.is-admin) .btn.primary,
body.season-christmas:not(.is-admin) .home-search button,
body.season-christmas:not(.is-admin) .door-home-action,
body.season-christmas:not(.is-admin) .cockpit-emergency,
body.season-christmas:not(.is-admin) .quick-action-primary{
  color:#0d1626;
  background:linear-gradient(135deg,#f4e3b0,#d9b15f)!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .btn:not(.primary){
  background:rgba(9,18,32,.88);
  color:#f7fbff;
}
body.season-christmas:not(.is-admin) .tag,
body.season-christmas:not(.is-admin) .pill,
body.season-christmas:not(.is-admin) .result-type,
body.season-christmas:not(.is-admin) .history-date{
  background:rgba(155,200,255,.12);
  color:#dff0ff;
  border-color:rgba(174,213,255,.24);
}

/* Articles et blocs de contenu */
body.season-christmas:not(.is-admin) .article-body h2,
body.season-christmas:not(.is-admin) .article-body h3{color:#d9b15f}
body.season-christmas:not(.is-admin) .article-body blockquote{
  color:#f7fbff;
  background:rgba(12,23,39,.72);
  border-left-color:#d9b15f;
}
body.season-christmas:not(.is-admin) .article-body a{text-decoration-color:rgba(217,177,95,.55)}
body.season-christmas:not(.is-admin) .article-body hr{border-color:rgba(174,213,255,.24)}

/* Tableaux */
body.season-christmas:not(.is-admin) table{color:#f7fbff}
body.season-christmas:not(.is-admin) th{color:#f4e3b0;border-bottom-color:rgba(174,213,255,.34)}
body.season-christmas:not(.is-admin) td{border-bottom-color:rgba(174,213,255,.22)}

/* Eléments spécifiques visibles sur plusieurs écrans */
body.season-christmas:not(.is-admin) .magazine-tab.is-active,
body.season-christmas:not(.is-admin) .history-years a:hover,
body.season-christmas:not(.is-admin) .favorite-star.is-active,
body.season-christmas:not(.is-admin) .favorite-toggle.is-active{
  background:rgba(217,177,95,.16)!important;
  border-color:#d9b15f!important;
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .magazine-issue:hover,
body.season-christmas:not(.is-admin) .content-link:hover,
body.season-christmas:not(.is-admin) .nav-card:hover,
body.season-christmas:not(.is-admin) .tool-card:hover,
body.season-christmas:not(.is-admin) .tools-grid>a:hover{
  border-color:#d9b15f!important;
  box-shadow:0 12px 30px rgba(217,177,95,.08);
}
body.season-christmas:not(.is-admin) .history-years{
  background:rgba(7,13,24,.90);
  border-color:rgba(174,213,255,.24);
}
body.season-christmas:not(.is-admin) .history-years a{
  background:rgba(12,23,39,.88);
  color:#f7fbff;
  border-color:rgba(174,213,255,.18);
}
body.season-christmas:not(.is-admin) .magazine-search input,
body.season-christmas:not(.is-admin) .searchbar input,
body.season-christmas:not(.is-admin) .home-search input{color:#fff}
body.season-christmas:not(.is-admin) .favorite-mini-grid a,
body.season-christmas:not(.is-admin) .need-card,
body.season-christmas:not(.is-admin) .portal-group{border-color:rgba(190,224,255,.28)!important}
body.season-christmas:not(.is-admin) .door-home-icon,
body.season-christmas:not(.is-admin) .mainnav-icon,
body.season-christmas:not(.is-admin) .tool-badge,
body.season-christmas:not(.is-admin) .contact-topic-icon{
  background:rgba(155,200,255,.12);
  color:#f4e3b0;
  box-shadow:0 0 0 1px rgba(174,213,255,.18);
}
body.season-christmas:not(.is-admin) .contact-topic-mail,
body.season-christmas:not(.is-admin) .contact-topic-phone,
body.season-christmas:not(.is-admin) .contact-inline-action,
body.season-christmas:not(.is-admin) .contact-actions a,
body.season-christmas:not(.is-admin) .contact-actions button,
body.season-christmas:not(.is-admin) .bio-card .btn,
body.season-christmas:not(.is-admin) .security-device .btn{
  background:rgba(12,23,39,.82)!important;
  color:#f4e3b0!important;
  border-color:rgba(217,177,95,.34)!important;
}
body.season-christmas:not(.is-admin) .contact-topic hr,
body.season-christmas:not(.is-admin) .contact-topic-sep,
body.season-christmas:not(.is-admin) .panel hr,
body.season-christmas:not(.is-admin) .tool-card hr{border-color:rgba(174,213,255,.18)}

/* Accueil */
body.season-christmas.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(135deg,rgba(10,24,42,.90),rgba(18,40,67,.74))!important;
  border-color:rgba(190,224,255,.28)!important;
  box-shadow:0 18px 40px rgba(2,8,16,.30);
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(217,177,95,.10) 100%);
  pointer-events:none;
}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-icon{
  color:#d9b15f;
  background:rgba(255,255,255,.92);
}

/* Footer */
body.season-christmas:not(.is-admin) footer{
  color:#c8d6e6;
  background:rgba(6,12,22,.94);
  border-top-color:rgba(174,213,255,.20);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Neige : deux couches pour plus de profondeur */
body.season-christmas:not(.is-admin) .snow-layer{
  position:absolute;
  inset:0;
  overflow:hidden;
}
body.season-christmas:not(.is-admin) .snow-layer-back{opacity:.55;filter:blur(.3px)}
body.season-christmas:not(.is-admin) .snow-layer-front{opacity:.9}
body.season-christmas:not(.is-admin) .snow-layer i{
  position:absolute;
  top:-10vh;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  filter:drop-shadow(0 0 5px rgba(255,255,255,.45));
  animation-name:snowFall,snowDrift;
  animation-timing-function:linear,ease-in-out;
  animation-iteration-count:infinite,infinite;
}
body.season-christmas:not(.is-admin) .snow-layer-back i{width:3px;height:3px;opacity:.62}
body.season-christmas:not(.is-admin) .snow-layer-front i{width:6px;height:6px;opacity:.9}

body.season-christmas:not(.is-admin) .snow-layer i:nth-child(1){left:2%;animation-duration:15s,5s;animation-delay:-8s,-1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(2){left:6%;animation-duration:18s,6s;animation-delay:-2s,-3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(3){left:10%;animation-duration:12s,4.5s;animation-delay:-4s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(4){left:14%;animation-duration:20s,7s;animation-delay:-10s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5){left:18%;animation-duration:16s,5.2s;animation-delay:-6s,-1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(6){left:22%;animation-duration:21s,6.5s;animation-delay:-11s,-2.5s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(7){left:26%;animation-duration:13s,4s;animation-delay:-3s,-3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(8){left:30%;animation-duration:18s,6.4s;animation-delay:-8s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(9){left:34%;animation-duration:15s,5.3s;animation-delay:-7s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(10){left:38%;animation-duration:22s,7.3s;animation-delay:-12s,-1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(11){left:42%;animation-duration:14s,4.8s;animation-delay:-2s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(12){left:46%;animation-duration:19s,6.1s;animation-delay:-6s,-3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(13){left:50%;animation-duration:16s,5.4s;animation-delay:-1s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(14){left:54%;animation-duration:23s,7.5s;animation-delay:-13s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(15){left:58%;animation-duration:15s,5s;animation-delay:-9s,-1.5s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(16){left:62%;animation-duration:20s,6.2s;animation-delay:-5s,-2.2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(17){left:66%;animation-duration:14s,4.9s;animation-delay:-7s,-3.7s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(18){left:70%;animation-duration:18s,5.8s;animation-delay:-10s,-2.8s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(19){left:74%;animation-duration:13s,4.4s;animation-delay:-4s,-1.2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(20){left:78%;animation-duration:21s,6.8s;animation-delay:-14s,-2.6s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(21){left:82%;animation-duration:16s,5.7s;animation-delay:-6s,-3.3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(22){left:86%;animation-duration:19s,6.4s;animation-delay:-11s,-1.8s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(23){left:90%;animation-duration:14s,4.6s;animation-delay:-2s,-3.4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(24){left:94%;animation-duration:18s,6s;animation-delay:-9s,-2.1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(25){left:4%;animation-duration:24s,7.9s;animation-delay:-15s,-2.7s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(26){left:12%;animation-duration:17s,5.5s;animation-delay:-12s,-1.9s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(27){left:20%;animation-duration:22s,7.2s;animation-delay:-3s,-4.4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(28){left:28%;animation-duration:16s,5.9s;animation-delay:-7s,-2.6s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(29){left:36%;animation-duration:21s,6.8s;animation-delay:-14s,-3.1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(30){left:44%;animation-duration:18s,5.6s;animation-delay:-5s,-1.7s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(31){left:52%;animation-duration:23s,7.1s;animation-delay:-13s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(32){left:60%;animation-duration:17s,5.3s;animation-delay:-8s,-2.2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(33){left:72%;animation-duration:20s,6.6s;animation-delay:-4s,-3.5s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(34){left:88%;animation-duration:22s,7.4s;animation-delay:-11s,-1.4s}

@keyframes snowDrift{
  0%{transform:translateX(0)}
  25%{transform:translateX(10px)}
  50%{transform:translateX(-8px)}
  75%{transform:translateX(6px)}
  100%{transform:translateX(0)}
}

/* Mobile */
@media(max-width:900px){
  body.season-christmas:not(.is-admin){
    background-attachment:scroll;
    background-position:58% top;
  }
}
@media(max-width:680px){
  body.season-christmas:not(.is-admin){background-position:62% top}
  body.season-christmas:not(.is-admin) .article-body,
  body.season-christmas:not(.is-admin) .panel{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  body.season-christmas:not(.is-admin) .snow-layer-back i:nth-child(odd),
  body.season-christmas:not(.is-admin) .snow-layer-front i:nth-child(odd){display:none}
}


/* ===== NOËL V3 — reprise complète des finitions Halloween ===== */
/* =====================================================================
   NOËL V3 — thème étendu à tout le portail utilisateur
   ===================================================================== */

/* Suppression définitive des décorations jugées trop cartoon. */
body.season-christmas:not(.is-admin) .season-christmas-moon,
body.season-christmas:not(.is-admin) .season-christmas-bats,
body.season-christmas:not(.is-admin) .h-pumpkin{display:none!important}

/* Le fond réaliste devient le fond général du portail, pas seulement l'accueil. */
body.season-christmas:not(.is-admin){
  --bg:#07111d;
  --card:#0b1728;
  --text:#f7fbff;
  --muted:#c8d6e6;
  --line:rgba(174,213,255,.34);
  --navy:#d9b15f;
  --navy2:#173a5d;
  --blue:#9bc8ff;
  --orange:#d9b15f;
  color:var(--text);
  background-color:#07111d;
  background-image:
    linear-gradient(rgba(7,6,12,.22),rgba(7,6,12,.50)),
    url('/public/assets/seasons/christmas-bg.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* L'effet des yeux reste présent sur toutes les pages. */
body.season-christmas:not(.is-admin) .season-fx{
  z-index:1;
}
body.season-christmas:not(.is-admin) .season-fx::before,
body.season-christmas:not(.is-admin) .season-fx::after{display:none!important}
body.season-christmas:not(.is-admin) .shell,
body.season-christmas:not(.is-admin) footer{position:relative;z-index:2}

/* Barre de navigation : sombre et premium. */
body.season-christmas:not(.is-admin) .topbar{
  background:rgba(7,13,24,.94);
  border-bottom-color:rgba(217,177,95,.44);
  box-shadow:0 8px 28px rgba(0,0,0,.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
body.season-christmas:not(.is-admin) .brand,
body.season-christmas:not(.is-admin) .desktop-quicknav a,
body.season-christmas:not(.is-admin) .navtoggle{color:#fff}
body.season-christmas:not(.is-admin) .brand small{color:#c8d6e6}
body.season-christmas:not(.is-admin) .desktop-quicknav a:hover{background:rgba(155,200,255,.10);color:#f2d28a}
body.season-christmas:not(.is-admin) .navtoggle{border-color:rgba(217,177,95,.38);background:rgba(22,15,27,.76)}

/* Menu principal / tiroir mobile. */
body.season-christmas:not(.is-admin) .mainnav{
  background:rgba(8,14,25,.97);
  border-color:rgba(255,122,0,.38);
  color:#fff;
}
body.season-christmas:not(.is-admin) .mainnav a{color:#f7fbff}
body.season-christmas:not(.is-admin) .mainnav a:hover,
body.season-christmas:not(.is-admin) .mainnav a.active{background:rgba(155,200,255,.12);color:#f2d28a}
body.season-christmas:not(.is-admin) .mainnav small{color:#bdcde0}

/* Cartes génériques et panneaux : translucides pour conserver le décor. */
body.season-christmas:not(.is-admin) .panel,
body.season-christmas:not(.is-admin) .article-body,
body.season-christmas:not(.is-admin) .recent-list,
body.season-christmas:not(.is-admin) .doc-row,
body.season-christmas:not(.is-admin) .nav-card,
body.season-christmas:not(.is-admin) .content-link,
body.season-christmas:not(.is-admin) .alert-card,
body.season-christmas:not(.is-admin) .timeline-card,
body.season-christmas:not(.is-admin) .search-result,
body.season-christmas:not(.is-admin) .favorite-row,
body.season-christmas:not(.is-admin) .empty-state,
body.season-christmas:not(.is-admin) .required-read,
body.season-christmas:not(.is-admin) .table-wrap,
body.season-christmas:not(.is-admin) .tools-grid>a,
body.season-christmas:not(.is-admin) .tool-card,
body.season-christmas:not(.is-admin) .faq-group,
body.season-christmas:not(.is-admin) details.faq-item,
body.season-christmas:not(.is-admin) .history-card,
body.season-christmas:not(.is-admin) .signature-preview,
body.season-christmas:not(.is-admin) .magazine-panel,
body.season-christmas:not(.is-admin) .magazine-search,
body.season-christmas:not(.is-admin) .magazine-issue,
body.season-christmas:not(.is-admin) .magazine-tab,
body.season-christmas:not(.is-admin) .document-card{
  background:rgba(8,17,30,.88)!important;
  color:#f7f3f8;
  border-color:rgba(174,213,255,.30)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.24);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* Titres, liens et textes secondaires. */
body.season-christmas:not(.is-admin) h1,
body.season-christmas:not(.is-admin) h2,
body.season-christmas:not(.is-admin) h3,
body.season-christmas:not(.is-admin) h4,
body.season-christmas:not(.is-admin) strong{color:#fff}
body.season-christmas:not(.is-admin) .lead,
body.season-christmas:not(.is-admin) .breadcrumbs,
body.season-christmas:not(.is-admin) .article-meta,
body.season-christmas:not(.is-admin) .muted,
body.season-christmas:not(.is-admin) .doc-row p,
body.season-christmas:not(.is-admin) .nav-card p,
body.season-christmas:not(.is-admin) .content-link p,
body.season-christmas:not(.is-admin) .search-result p,
body.season-christmas:not(.is-admin) .history-summary,
body.season-christmas:not(.is-admin) .history-preview,
body.season-christmas:not(.is-admin) .cockpit-title-help{color:#c8d6e6!important}
body.season-christmas:not(.is-admin) a{color:#f2d28a}
body.season-christmas:not(.is-admin) .eyebrow{color:#d9b15f}

/* Champs de formulaire et recherche. */
body.season-christmas:not(.is-admin) input,
body.season-christmas:not(.is-admin) textarea,
body.season-christmas:not(.is-admin) select{
  color:#fff;
  background:rgba(12,10,17,.84);
  border-color:rgba(174,213,255,.30);
}
body.season-christmas:not(.is-admin) input::placeholder,
body.season-christmas:not(.is-admin) textarea::placeholder{color:#9eafc2}
body.season-christmas:not(.is-admin) input:focus,
body.season-christmas:not(.is-admin) textarea:focus,
body.season-christmas:not(.is-admin) select:focus{
  outline:none;
  border-color:#d9b15f;
  box-shadow:0 0 0 3px rgba(155,200,255,.14);
}

/* Boutons génériques. */
body.season-christmas:not(.is-admin) .btn,
body.season-christmas:not(.is-admin) button:not(.navtoggle):not(.mainnav-close){
  border-color:rgba(217,177,95,.44);
}
body.season-christmas:not(.is-admin) .btn.primary{
  color:#101827;
  background:linear-gradient(135deg,#f4e3b0,#c99a45);
  border-color:#d9b15f;
}
body.season-christmas:not(.is-admin) .btn:not(.primary){background:rgba(11,22,38,.88);color:#f7fbff}

/* Pages de contenu : article lisible, mais intégré au thème. */
body.season-christmas:not(.is-admin) .article-body h2,
body.season-christmas:not(.is-admin) .article-body h3{color:#f2d28a}
body.season-christmas:not(.is-admin) .article-body blockquote{
  color:#f6f1f7;
  background:rgba(18,36,58,.68);
  border-left-color:#d9b15f;
}
body.season-christmas:not(.is-admin) .article-body a{text-decoration-color:rgba(217,177,95,.58)}
body.season-christmas:not(.is-admin) .article-body hr{border-color:rgba(174,213,255,.24)}

/* Documents / tableaux. */
body.season-christmas:not(.is-admin) table{color:#f7f3f8}
body.season-christmas:not(.is-admin) th{color:#f2d28a;border-bottom-color:rgba(174,213,255,.28)}
body.season-christmas:not(.is-admin) td{border-bottom-color:rgba(174,213,255,.18)}

/* Revues : onglets cohérents avec le thème. */
body.season-christmas:not(.is-admin) .magazine-tab.is-active{
  background:rgba(95,42,29,.82)!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .magazine-issue:hover,
body.season-christmas:not(.is-admin) .content-link:hover,
body.season-christmas:not(.is-admin) .nav-card:hover{
  border-color:#d9b15f!important;
  box-shadow:0 10px 30px rgba(155,200,255,.10);
}

/* Historique / badges. */
body.season-christmas:not(.is-admin) .history-years{
  background:rgba(10,8,15,.90);
  border-color:rgba(174,213,255,.28);
}
body.season-christmas:not(.is-admin) .history-years a{background:rgba(12,25,43,.88);color:#f4eff6;border-color:rgba(174,213,255,.22)}
body.season-christmas:not(.is-admin) .history-years a:hover{background:#284b6d;color:#fff}
body.season-christmas:not(.is-admin) .history-date,
body.season-christmas:not(.is-admin) .result-type{background:rgba(155,200,255,.14);color:#e6c77f}

/* Footer sombre pour finir le thème proprement. */
body.season-christmas:not(.is-admin) footer{
  color:#bdcde0;
  background:rgba(6,12,22,.95);
  border-top-color:rgba(174,213,255,.24);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Mobile : fond scroll pour éviter les problèmes WebKit / PWA. */
@media(max-width:900px){
  body.season-christmas:not(.is-admin){
    background-attachment:scroll;
    background-position:62% top;
  }
}
@media(max-width:680px){
  body.season-christmas:not(.is-admin){background-position:68% top}
  body.season-christmas:not(.is-admin) .article-body,
  body.season-christmas:not(.is-admin) .panel{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
}


/* ==========================================================
   NOËL — barre de navigation sombre sur tout le portail
   ========================================================== */
body.season-christmas:not(.is-admin) .topbar{
  background:rgba(9,7,13,.96)!important;
  border-bottom:1px solid rgba(217,177,95,.38)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.22);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

body.season-christmas:not(.is-admin) .brand{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .brand b{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .brand small{
  color:#b9afc0!important;
}
body.season-christmas:not(.is-admin) .brand img{
  object-fit:contain;
}

/* Navigation desktop */
body.season-christmas:not(.is-admin) .desktop-quicknav a,
body.season-christmas:not(.is-admin) .topbar-actions a{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .desktop-quicknav a:hover,
body.season-christmas:not(.is-admin) .topbar-actions a:hover{
  color:#f2d28a!important;
  background:rgba(255,122,0,.08)!important;
}

/* Bouton Menu */
body.season-christmas:not(.is-admin) .navtoggle{
  color:#fff!important;
  background:rgba(255,255,255,.04)!important;
  border:1px solid rgba(255,122,0,.44)!important;
  border-radius:12px;
}
body.season-christmas:not(.is-admin) .navtoggle:hover{
  background:rgba(155,200,255,.10)!important;
  border-color:#d9b15f!important;
}

/* Badge aperçu admin dans la barre sombre */
body.season-christmas:not(.is-admin) .season-preview-badge{
  color:#f2d28a!important;
  background:rgba(31,18,24,.92)!important;
  border-color:#d9b15f!important;
}

/* Drawer / menu mobile cohérent avec la barre */
body.season-christmas:not(.is-admin) .mainnav{
  background:rgba(10,8,14,.98)!important;
  border-color:rgba(255,122,0,.40)!important;
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .mainnav-head{
  border-bottom-color:rgba(255,122,0,.30)!important;
}
body.season-christmas:not(.is-admin) .mainnav-head strong{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .mainnav-head small{
  color:#b9afc0!important;
}
body.season-christmas:not(.is-admin) .mainnav a{
  color:#f7fbff!important;
}
body.season-christmas:not(.is-admin) .mainnav a:hover,
body.season-christmas:not(.is-admin) .mainnav a.active{
  color:#f2d28a!important;
  background:rgba(155,200,255,.10)!important;
}
body.season-christmas:not(.is-admin) .mainnav-close{
  color:#fff!important;
  border-color:rgba(255,122,0,.36)!important;
  background:rgba(255,255,255,.04)!important;
}

/* Logo blanc : dimensions adaptées sans halo blanc */
body.season-christmas:not(.is-admin) .topbar .brand img{
  width:150px;
  height:52px;
  filter:none!important;
}
body.season-christmas:not(.is-admin) .mainnav img{
  filter:none!important;
}

@media(max-width:680px){
  body.season-christmas:not(.is-admin) .topbar{
    background:rgba(9,7,13,.98)!important;
  }
}


/* =====================================================================
   NOËL V6 — finition des composants encore clairs
   ===================================================================== */

/* Menu principal : les tuiles héritaient encore du fond blanc standard. */
body.season-christmas:not(.is-admin) .mainnav-head{
  background:rgba(13,10,18,.98)!important;
  border-bottom-color:rgba(255,122,0,.28)!important;
}
body.season-christmas:not(.is-admin) .mainnav-link{
  background:rgba(28,21,33,.96)!important;
  color:#f7fbff!important;
  border-color:rgba(155,200,255,.14)!important;
}
body.season-christmas:not(.is-admin) .mainnav-link:hover,
body.season-christmas:not(.is-admin) .mainnav-link.active{
  background:rgba(70,34,42,.92)!important;
  color:#fff!important;
  border-color:rgba(255,122,0,.45)!important;
}
body.season-christmas:not(.is-admin) .mainnav-link>b{
  color:#f2d28a!important;
}
body.season-christmas:not(.is-admin) .mainnav-icon{
  background:rgba(155,200,255,.14)!important;
  color:#f2d28a!important;
}
body.season-christmas:not(.is-admin) .mainnav-section{
  border-top-color:rgba(255,122,0,.20)!important;
}
body.season-christmas:not(.is-admin) .mainnav-section-title{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .mainnav-logout{
  color:#ff938f!important;
}
body.season-christmas:not(.is-admin) .mainnav-logout .mainnav-icon{
  background:rgba(194,57,57,.15)!important;
  color:#ff938f!important;
}

/* Outils */
body.season-christmas:not(.is-admin) .tool-row>a{
  background:rgba(18,14,23,.91)!important;
  border-color:rgba(255,122,0,.44)!important;
  color:#f8f4f9!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-christmas:not(.is-admin) .tool-row>a:hover{
  background:rgba(44,25,35,.94)!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .tool-icon{
  background:rgba(155,200,255,.12)!important;
  color:#f2d28a!important;
}
body.season-christmas:not(.is-admin) .tool-row small{
  color:#c8d6e6!important;
}

/* Procédures / checklists */
body.season-christmas:not(.is-admin) .procedure-card,
body.season-christmas:not(.is-admin) .checklist-card,
body.season-christmas:not(.is-admin) .procedure-help{
  background:rgba(18,14,23,.91)!important;
  color:#f8f4f9!important;
  border-color:rgba(255,122,0,.38)!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-christmas:not(.is-admin) .procedure-card h2,
body.season-christmas:not(.is-admin) .procedure-card>a{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .procedure-card p,
body.season-christmas:not(.is-admin) .checklist-card>p,
body.season-christmas:not(.is-admin) .check-item small{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .procedure-card-head>span{
  color:#c95cff!important;
}
body.season-christmas:not(.is-admin) .importance-urgent{
  border-top-color:#df4b52!important;
}
body.season-christmas:not(.is-admin) .importance-important{
  border-top-color:#e5a11e!important;
}
body.season-christmas:not(.is-admin) .check-item button>span{
  border-color:rgba(255,154,61,.48)!important;
}
body.season-christmas:not(.is-admin) .check-item.checked button>span{
  background:#d9b15f!important;
  border-color:#d9b15f!important;
  color:#101827!important;
}

/* Organisation */
body.season-christmas:not(.is-admin) .org-card{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(217,177,95,.38)!important;
  color:#f8f4f9!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-christmas:not(.is-admin) .org-card-bureau{
  border-top-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .org-avatar{
  background:rgba(155,200,255,.14)!important;
  color:#f2d28a!important;
}
body.season-christmas:not(.is-admin) .org-role{
  background:#d9b15f!important;
  color:#101827!important;
}
body.season-christmas:not(.is-admin) .org-person p{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .org-person small{
  color:#9bc8ff!important;
}
body.season-christmas:not(.is-admin) .org-actions a{
  background:rgba(7,6,11,.86)!important;
  color:#f2d28a!important;
  border:1px solid rgba(255,122,0,.16);
}
body.season-christmas:not(.is-admin) .org-group-mail{
  background:rgba(18,14,23,.92)!important;
  color:#f2d28a!important;
  border:1px solid rgba(255,122,0,.32);
}

/* Qui contacter ? */
body.season-christmas:not(.is-admin) .contact-help-card,
body.season-christmas:not(.is-admin) .contact-card,
body.season-christmas:not(.is-admin) .topic-card{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(217,177,95,.38)!important;
  color:#f8f4f9!important;
  box-shadow:0 7px 22px rgba(0,0,0,.18);
}
body.season-christmas:not(.is-admin) .contact-help-title p,
body.season-christmas:not(.is-admin) .contact-help-person small,
body.season-christmas:not(.is-admin) .contact-card p,
body.season-christmas:not(.is-admin) .topic-card summary small,
body.season-christmas:not(.is-admin) .topic-contact small{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .contact-help-people,
body.season-christmas:not(.is-admin) .contact-help-person+ .contact-help-person{
  border-color:rgba(255,122,0,.25)!important;
}
body.season-christmas:not(.is-admin) .contact-help-actions a,
body.season-christmas:not(.is-admin) .contact-actions a,
body.season-christmas:not(.is-admin) .topic-contact a{
  background:rgba(155,200,255,.12)!important;
  color:#f2d28a!important;
  border:1px solid rgba(255,122,0,.18);
}
body.season-christmas:not(.is-admin) .topic-contact{
  background:rgba(9,7,13,.72)!important;
}
body.season-christmas:not(.is-admin) .topic-icon{
  background:rgba(155,200,255,.12)!important;
  color:#f2d28a!important;
}

/* Revues : barre de recherche, panneau et numéros */
body.season-christmas:not(.is-admin) .magazine-toolbar,
body.season-christmas:not(.is-admin) .magazine-panel-head{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(217,177,95,.38)!important;
  color:#f8f4f9!important;
}
body.season-christmas:not(.is-admin) .magazine-toolbar{
  box-shadow:0 7px 22px rgba(0,0,0,.16);
}
body.season-christmas:not(.is-admin) .magazine-search span,
body.season-christmas:not(.is-admin) .magazine-result-count,
body.season-christmas:not(.is-admin) .magazine-panel-head p,
body.season-christmas:not(.is-admin) .magazine-tab-copy small{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .magazine-number-card{
  background:rgba(18,14,23,.90)!important;
  color:#f8f4f9!important;
  border-color:rgba(255,122,0,.32)!important;
}
body.season-christmas:not(.is-admin) .magazine-number-card:hover,
body.season-christmas:not(.is-admin) .magazine-number-card.is-latest{
  background:rgba(69,34,37,.90)!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .magazine-number-main strong{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .magazine-number-main em{
  color:#9bc8ff!important;
}
body.season-christmas:not(.is-admin) .magazine-number-card>small{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .magazine-number-open{
  color:#f2d28a!important;
}
body.season-christmas:not(.is-admin) .magazine-tab-logo,
body.season-christmas:not(.is-admin) .magazine-panel-logo{
  background:#fff!important;
}

/* Sécurité & biométrie */
body.season-christmas:not(.is-admin) .security-onboarding,
body.season-christmas:not(.is-admin) .security-note,
body.season-christmas:not(.is-admin) .passkey-row{
  background:rgba(18,14,23,.92)!important;
  border:1px solid rgba(255,122,0,.38)!important;
  color:#f8f4f9!important;
}
body.season-christmas:not(.is-admin) .security-onboarding p,
body.season-christmas:not(.is-admin) .security-note p,
body.season-christmas:not(.is-admin) .passkey-row small,
body.season-christmas:not(.is-admin) .passkey-enroll-card p{
  color:#c8d6e6!important;
}
body.season-christmas:not(.is-admin) .security-icon,
body.season-christmas:not(.is-admin) .passkey-symbol{
  background:#d9b15f!important;
  color:#101827!important;
}
body.season-christmas:not(.is-admin) .passkey-register-btn{
  background:linear-gradient(135deg,#f4e3b0,#c99a45)!important;
  color:#101827!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .passkey-row button{
  background:rgba(42,24,32,.92)!important;
  color:#fff!important;
  border-color:rgba(255,122,0,.50)!important;
}

/* Recherche / favoris / progression / onboarding */
body.season-christmas:not(.is-admin) .progress-card,
body.season-christmas:not(.is-admin) .onboarding-step{
  background:rgba(18,14,23,.92)!important;
  border-color:rgba(255,122,0,.38)!important;
  color:#f8f4f9!important;
}
body.season-christmas:not(.is-admin) .progress-card>strong{
  color:#f2d28a!important;
}
body.season-christmas:not(.is-admin) .progress-bar{
  background:rgba(255,255,255,.10)!important;
}
body.season-christmas:not(.is-admin) .progress-bar i{
  background:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .onboarding-step p,
body.season-christmas:not(.is-admin) .favorite-row>a small{
  color:#c8d6e6!important;
}

/* Boutons de favoris : éviter les blocs blancs isolés. */
body.season-christmas:not(.is-admin) .favorite-btn{
  background:rgba(18,14,23,.92)!important;
  color:#a9bdcd!important;
  border-color:rgba(255,122,0,.35)!important;
}
body.season-christmas:not(.is-admin) .favorite-btn.is-favorite{
  color:#f4d46f!important;
  background:rgba(217,177,95,.14)!important;
  border-color:#d9b15f!important;
}

/* Les petits contrôles / badges qui restaient gris clair. */
body.season-christmas:not(.is-admin) .icon-dot,
body.season-christmas:not(.is-admin) .contact-avatar{
  background:rgba(155,200,255,.14)!important;
  color:#f2d28a!important;
}


/* =====================================================================
   LAYOUT — footer toujours en bas de la fenêtre sur les pages courtes
   ===================================================================== */
body:not(.is-admin){
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}
body:not(.is-admin)>.topbar{
  flex:0 0 auto;
}
body:not(.is-admin)>.shell{
  width:100%;
  flex:1 0 auto;
}
body:not(.is-admin)>footer{
  flex:0 0 auto;
  margin-top:auto;
  position:relative;
  z-index:3;
}

/* Le dock mobile ne doit pas perturber la hauteur utile de la page. */
@media(max-width:680px){
  body.has-mobile-dock:not(.is-admin){
    min-height:100dvh;
  }
}

/* =====================================================================
   NOËL V8 — finition de la page "Qui contacter ?"
   ===================================================================== */
body.season-christmas:not(.is-admin) .contact-help-card{
  background:rgba(15,12,20,.94)!important;
  border:1px solid rgba(217,177,95,.44)!important;
  box-shadow:0 10px 26px rgba(0,0,0,.20)!important;
}
body.season-christmas:not(.is-admin) .contact-help-title h2,
body.season-christmas:not(.is-admin) .contact-help-person strong{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .contact-help-title p,
body.season-christmas:not(.is-admin) .contact-help-person small{
  color:#c9bfd1!important;
}
body.season-christmas:not(.is-admin) .contact-help-title .topic-icon{
  background:rgba(155,200,255,.14)!important;
  color:#f2d28a!important;
  border:1px solid rgba(255,122,0,.18)!important;
}
body.season-christmas:not(.is-admin) .contact-help-people,
body.season-christmas:not(.is-admin) .contact-help-person + .contact-help-person{
  border-color:rgba(255,122,0,.26)!important;
}

/* Adresse de pôle : suppression du pavé blanc résiduel */
body.season-christmas:not(.is-admin) .contact-group-mail{
  background:rgba(31,22,36,.96)!important;
  color:#f8f4f9!important;
  border:1px solid rgba(255,122,0,.36)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.12)!important;
}
body.season-christmas:not(.is-admin) .contact-group-mail:hover{
  background:rgba(55,29,39,.98)!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .contact-group-mail>span{
  background:rgba(155,200,255,.14)!important;
  color:#f2d28a!important;
  border:1px solid rgba(255,122,0,.16)!important;
}
body.season-christmas:not(.is-admin) .contact-group-mail strong{
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .contact-group-mail small{
  color:#c9bfd1!important;
}
body.season-christmas:not(.is-admin) .contact-group-mail>b{
  color:#f2d28a!important;
}

/* Actions téléphone / e-mail */
body.season-christmas:not(.is-admin) .contact-help-actions a{
  background:rgba(77,40,25,.92)!important;
  color:#ffb36c!important;
  border:1px solid rgba(255,122,0,.28)!important;
}
body.season-christmas:not(.is-admin) .contact-help-actions a:hover{
  background:rgba(108,50,23,.96)!important;
  border-color:#d9b15f!important;
  color:#fff!important;
}

/* Pied de la page "Qui contacter ?" */
body.season-christmas:not(.is-admin) .contact-help-footer{
  background:rgba(15,12,20,.94)!important;
  border:1px solid rgba(217,177,95,.38)!important;
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .contact-help-footer a{
  background:rgba(155,200,255,.14)!important;
  color:#f2d28a!important;
  border:1px solid rgba(255,122,0,.25)!important;
}
body.season-christmas:not(.is-admin) .contact-help-footer a:hover{
  background:#d9b15f!important;
  color:#101827!important;
}

/* =====================================================================
   NOËL V2 — thème étendu à tout le portail utilisateur
   ===================================================================== */

body.season-christmas:not(.is-admin){
  --bg:#07111d;
  --card:rgba(8,17,30,.84);
  --card-strong:rgba(7,14,25,.92);
  --text:#f5f8fd;
  --muted:#c8d6e6;
  --line:rgba(174,213,255,.24);
  --accent:#d9b15f;
  --accent-2:#9bc8ff;
  --accent-3:#b23a48;
  color:var(--text);
  background-color:#07111d;
  background-image:
    linear-gradient(rgba(4,10,18,.30),rgba(4,10,18,.62)),
    url('/public/assets/seasons/christmas-bg.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
body.season-christmas:not(.is-admin) .season-fx{
  z-index:1;
}
body.season-christmas:not(.is-admin) .season-fx::before,
body.season-christmas:not(.is-admin) .season-fx::after{display:none!important}
body.season-christmas:not(.is-admin) .shell,
body.season-christmas:not(.is-admin) footer{position:relative;z-index:2}

/* Barre de navigation : froide, sombre et élégante. */
body.season-christmas:not(.is-admin) .topbar{
  background:rgba(7,13,24,.92);
  border-bottom-color:rgba(197,227,255,.20);
  box-shadow:0 10px 30px rgba(1,6,12,.30);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
body.season-christmas:not(.is-admin) .brand,
body.season-christmas:not(.is-admin) .desktop-quicknav a,
body.season-christmas:not(.is-admin) .navtoggle{color:#f7fbff}
body.season-christmas:not(.is-admin) .brand small{color:#cad7e6}
body.season-christmas:not(.is-admin) .desktop-quicknav a:hover{
  background:rgba(155,200,255,.10);
  color:#fff;
}
body.season-christmas:not(.is-admin) .navtoggle{
  border-color:rgba(217,177,95,.42);
  background:rgba(11,19,33,.78);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
body.season-christmas:not(.is-admin) .season-preview-badge{
  color:#fff;
  border-color:rgba(217,177,95,.58);
  background:rgba(18,30,47,.74);
}

/* Menu principal / tiroir mobile. */
body.season-christmas:not(.is-admin) .mainnav{
  background:rgba(8,14,25,.96);
  border-color:rgba(174,213,255,.26);
  color:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.30);
}
body.season-christmas:not(.is-admin) .mainnav a{color:#f7fbff}
body.season-christmas:not(.is-admin) .mainnav a:hover,
body.season-christmas:not(.is-admin) .mainnav a.active{
  background:rgba(155,200,255,.10);
  color:#fff;
}
body.season-christmas:not(.is-admin) .mainnav small,
body.season-christmas:not(.is-admin) .mainnav-section-title{color:#c8d6e6}
body.season-christmas:not(.is-admin) .nav-backdrop{background:rgba(4,8,16,.48)}

/* Panneaux et cartes : effet verre givré. */
body.season-christmas:not(.is-admin) .panel,
body.season-christmas:not(.is-admin) .article-body,
body.season-christmas:not(.is-admin) .recent-list,
body.season-christmas:not(.is-admin) .doc-row,
body.season-christmas:not(.is-admin) .nav-card,
body.season-christmas:not(.is-admin) .content-link,
body.season-christmas:not(.is-admin) .alert-card,
body.season-christmas:not(.is-admin) .timeline-card,
body.season-christmas:not(.is-admin) .search-result,
body.season-christmas:not(.is-admin) .favorite-row,
body.season-christmas:not(.is-admin) .empty-state,
body.season-christmas:not(.is-admin) .required-read,
body.season-christmas:not(.is-admin) .table-wrap,
body.season-christmas:not(.is-admin) .tools-grid>a,
body.season-christmas:not(.is-admin) .tool-card,
body.season-christmas:not(.is-admin) .faq-group,
body.season-christmas:not(.is-admin) details.faq-item,
body.season-christmas:not(.is-admin) .history-card,
body.season-christmas:not(.is-admin) .signature-preview,
body.season-christmas:not(.is-admin) .magazine-panel,
body.season-christmas:not(.is-admin) .magazine-search,
body.season-christmas:not(.is-admin) .magazine-issue,
body.season-christmas:not(.is-admin) .magazine-tab,
body.season-christmas:not(.is-admin) .document-card,
body.season-christmas:not(.is-admin) .contact-topic,
body.season-christmas:not(.is-admin) .contact-card,
body.season-christmas:not(.is-admin) .contact-topic-card,
body.season-christmas:not(.is-admin) .security-card,
body.season-christmas:not(.is-admin) .security-device,
body.season-christmas:not(.is-admin) .bio-card,
body.season-christmas:not(.is-admin) .tool-row,
body.season-christmas:not(.is-admin) .profile-card,
body.season-christmas:not(.is-admin) .portal-group,
body.season-christmas:not(.is-admin) .need-card,
body.season-christmas:not(.is-admin) .door-home-card,
body.season-christmas:not(.is-admin) .home-search,
body.season-christmas:not(.is-admin) .favorite-mini-grid a,
body.season-christmas:not(.is-admin) .cockpit-alert{
  background:linear-gradient(180deg,rgba(9,18,32,.90),rgba(6,14,25,.86))!important;
  color:#f7fbff;
  border-color:rgba(190,224,255,.28)!important;
  box-shadow:0 12px 34px rgba(1,5,12,.28);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* Titres et textes */
body.season-christmas:not(.is-admin) h1,
body.season-christmas:not(.is-admin) h2,
body.season-christmas:not(.is-admin) h3,
body.season-christmas:not(.is-admin) h4,
body.season-christmas:not(.is-admin) strong{color:#fff}
body.season-christmas:not(.is-admin) .lead,
body.season-christmas:not(.is-admin) .breadcrumbs,
body.season-christmas:not(.is-admin) .article-meta,
body.season-christmas:not(.is-admin) .muted,
body.season-christmas:not(.is-admin) .doc-row p,
body.season-christmas:not(.is-admin) .nav-card p,
body.season-christmas:not(.is-admin) .content-link p,
body.season-christmas:not(.is-admin) .search-result p,
body.season-christmas:not(.is-admin) .history-summary,
body.season-christmas:not(.is-admin) .history-preview,
body.season-christmas:not(.is-admin) .cockpit-title-help,
body.season-christmas:not(.is-admin) .panel small,
body.season-christmas:not(.is-admin) .tool-card small,
body.season-christmas:not(.is-admin) .portal-group-copy small,
body.season-christmas:not(.is-admin) .need-copy small{color:#c8d6e6!important}
body.season-christmas:not(.is-admin) a{color:#d9b15f}
body.season-christmas:not(.is-admin) .eyebrow{color:#d9b15f}
body.season-christmas:not(.is-admin) .door-home-kicker,
body.season-christmas:not(.is-admin) .section-title-overline,
body.season-christmas:not(.is-admin) .portal-group summary,
body.season-christmas:not(.is-admin) .portal-group-copy strong,
body.season-christmas:not(.is-admin) .favorite-mini-grid strong,
body.season-christmas:not(.is-admin) .need-copy strong{color:#fff}

/* Formulaires */
body.season-christmas:not(.is-admin) input,
body.season-christmas:not(.is-admin) textarea,
body.season-christmas:not(.is-admin) select{
  color:#f7fbff;
  background:rgba(7,14,25,.78);
  border-color:rgba(174,213,255,.32);
}
body.season-christmas:not(.is-admin) input::placeholder,
body.season-christmas:not(.is-admin) textarea::placeholder{color:#a5b9cf}
body.season-christmas:not(.is-admin) input:focus,
body.season-christmas:not(.is-admin) textarea:focus,
body.season-christmas:not(.is-admin) select:focus{
  outline:none;
  border-color:#d9b15f;
  box-shadow:0 0 0 3px rgba(217,177,95,.12);
}

/* Boutons et badges */
body.season-christmas:not(.is-admin) .btn,
body.season-christmas:not(.is-admin) button:not(.navtoggle):not(.mainnav-close){
  border-color:rgba(217,177,95,.42);
}
body.season-christmas:not(.is-admin) .btn.primary,
body.season-christmas:not(.is-admin) .home-search button,
body.season-christmas:not(.is-admin) .door-home-action,
body.season-christmas:not(.is-admin) .cockpit-emergency,
body.season-christmas:not(.is-admin) .quick-action-primary{
  color:#0d1626;
  background:linear-gradient(135deg,#f4e3b0,#d9b15f)!important;
  border-color:#d9b15f!important;
}
body.season-christmas:not(.is-admin) .btn:not(.primary){
  background:rgba(9,18,32,.88);
  color:#f7fbff;
}
body.season-christmas:not(.is-admin) .tag,
body.season-christmas:not(.is-admin) .pill,
body.season-christmas:not(.is-admin) .result-type,
body.season-christmas:not(.is-admin) .history-date{
  background:rgba(155,200,255,.12);
  color:#dff0ff;
  border-color:rgba(174,213,255,.24);
}

/* Articles et blocs de contenu */
body.season-christmas:not(.is-admin) .article-body h2,
body.season-christmas:not(.is-admin) .article-body h3{color:#d9b15f}
body.season-christmas:not(.is-admin) .article-body blockquote{
  color:#f7fbff;
  background:rgba(12,23,39,.72);
  border-left-color:#d9b15f;
}
body.season-christmas:not(.is-admin) .article-body a{text-decoration-color:rgba(217,177,95,.55)}
body.season-christmas:not(.is-admin) .article-body hr{border-color:rgba(174,213,255,.24)}

/* Tableaux */
body.season-christmas:not(.is-admin) table{color:#f7fbff}
body.season-christmas:not(.is-admin) th{color:#f4e3b0;border-bottom-color:rgba(174,213,255,.34)}
body.season-christmas:not(.is-admin) td{border-bottom-color:rgba(174,213,255,.22)}

/* Eléments spécifiques visibles sur plusieurs écrans */
body.season-christmas:not(.is-admin) .magazine-tab.is-active,
body.season-christmas:not(.is-admin) .history-years a:hover,
body.season-christmas:not(.is-admin) .favorite-star.is-active,
body.season-christmas:not(.is-admin) .favorite-toggle.is-active{
  background:rgba(217,177,95,.16)!important;
  border-color:#d9b15f!important;
  color:#fff!important;
}
body.season-christmas:not(.is-admin) .magazine-issue:hover,
body.season-christmas:not(.is-admin) .content-link:hover,
body.season-christmas:not(.is-admin) .nav-card:hover,
body.season-christmas:not(.is-admin) .tool-card:hover,
body.season-christmas:not(.is-admin) .tools-grid>a:hover{
  border-color:#d9b15f!important;
  box-shadow:0 12px 30px rgba(217,177,95,.08);
}
body.season-christmas:not(.is-admin) .history-years{
  background:rgba(7,13,24,.90);
  border-color:rgba(174,213,255,.24);
}
body.season-christmas:not(.is-admin) .history-years a{
  background:rgba(12,23,39,.88);
  color:#f7fbff;
  border-color:rgba(174,213,255,.18);
}
body.season-christmas:not(.is-admin) .magazine-search input,
body.season-christmas:not(.is-admin) .searchbar input,
body.season-christmas:not(.is-admin) .home-search input{color:#fff}
body.season-christmas:not(.is-admin) .favorite-mini-grid a,
body.season-christmas:not(.is-admin) .need-card,
body.season-christmas:not(.is-admin) .portal-group{border-color:rgba(190,224,255,.28)!important}
body.season-christmas:not(.is-admin) .door-home-icon,
body.season-christmas:not(.is-admin) .mainnav-icon,
body.season-christmas:not(.is-admin) .tool-badge,
body.season-christmas:not(.is-admin) .contact-topic-icon{
  background:rgba(155,200,255,.12);
  color:#f4e3b0;
  box-shadow:0 0 0 1px rgba(174,213,255,.18);
}
body.season-christmas:not(.is-admin) .contact-topic-mail,
body.season-christmas:not(.is-admin) .contact-topic-phone,
body.season-christmas:not(.is-admin) .contact-inline-action,
body.season-christmas:not(.is-admin) .contact-actions a,
body.season-christmas:not(.is-admin) .contact-actions button,
body.season-christmas:not(.is-admin) .bio-card .btn,
body.season-christmas:not(.is-admin) .security-device .btn{
  background:rgba(12,23,39,.82)!important;
  color:#f4e3b0!important;
  border-color:rgba(217,177,95,.34)!important;
}
body.season-christmas:not(.is-admin) .contact-topic hr,
body.season-christmas:not(.is-admin) .contact-topic-sep,
body.season-christmas:not(.is-admin) .panel hr,
body.season-christmas:not(.is-admin) .tool-card hr{border-color:rgba(174,213,255,.18)}

/* Accueil */
body.season-christmas.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(135deg,rgba(10,24,42,.90),rgba(18,40,67,.74))!important;
  border-color:rgba(190,224,255,.28)!important;
  box-shadow:0 18px 40px rgba(2,8,16,.30);
}
body.season-christmas.page-home:not(.is-admin) .cockpit-hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(217,177,95,.10) 100%);
  pointer-events:none;
}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-icon{
  color:#d9b15f;
  background:rgba(255,255,255,.92);
}

/* Footer */
body.season-christmas:not(.is-admin) footer{
  color:#c8d6e6;
  background:rgba(6,12,22,.94);
  border-top-color:rgba(174,213,255,.20);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Neige : deux couches pour plus de profondeur */
body.season-christmas:not(.is-admin) .snow-layer{
  position:absolute;
  inset:0;
  overflow:hidden;
}
body.season-christmas:not(.is-admin) .snow-layer-back{opacity:.55;filter:blur(.3px)}
body.season-christmas:not(.is-admin) .snow-layer-front{opacity:.9}
body.season-christmas:not(.is-admin) .snow-layer i{
  position:absolute;
  top:-10vh;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  filter:drop-shadow(0 0 5px rgba(255,255,255,.45));
  animation-name:snowFall,snowDrift;
  animation-timing-function:linear,ease-in-out;
  animation-iteration-count:infinite,infinite;
}
body.season-christmas:not(.is-admin) .snow-layer-back i{width:3px;height:3px;opacity:.62}
body.season-christmas:not(.is-admin) .snow-layer-front i{width:6px;height:6px;opacity:.9}

body.season-christmas:not(.is-admin) .snow-layer i:nth-child(1){left:2%;animation-duration:15s,5s;animation-delay:-8s,-1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(2){left:6%;animation-duration:18s,6s;animation-delay:-2s,-3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(3){left:10%;animation-duration:12s,4.5s;animation-delay:-4s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(4){left:14%;animation-duration:20s,7s;animation-delay:-10s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5){left:18%;animation-duration:16s,5.2s;animation-delay:-6s,-1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(6){left:22%;animation-duration:21s,6.5s;animation-delay:-11s,-2.5s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(7){left:26%;animation-duration:13s,4s;animation-delay:-3s,-3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(8){left:30%;animation-duration:18s,6.4s;animation-delay:-8s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(9){left:34%;animation-duration:15s,5.3s;animation-delay:-7s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(10){left:38%;animation-duration:22s,7.3s;animation-delay:-12s,-1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(11){left:42%;animation-duration:14s,4.8s;animation-delay:-2s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(12){left:46%;animation-duration:19s,6.1s;animation-delay:-6s,-3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(13){left:50%;animation-duration:16s,5.4s;animation-delay:-1s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(14){left:54%;animation-duration:23s,7.5s;animation-delay:-13s,-2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(15){left:58%;animation-duration:15s,5s;animation-delay:-9s,-1.5s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(16){left:62%;animation-duration:20s,6.2s;animation-delay:-5s,-2.2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(17){left:66%;animation-duration:14s,4.9s;animation-delay:-7s,-3.7s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(18){left:70%;animation-duration:18s,5.8s;animation-delay:-10s,-2.8s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(19){left:74%;animation-duration:13s,4.4s;animation-delay:-4s,-1.2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(20){left:78%;animation-duration:21s,6.8s;animation-delay:-14s,-2.6s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(21){left:82%;animation-duration:16s,5.7s;animation-delay:-6s,-3.3s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(22){left:86%;animation-duration:19s,6.4s;animation-delay:-11s,-1.8s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(23){left:90%;animation-duration:14s,4.6s;animation-delay:-2s,-3.4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(24){left:94%;animation-duration:18s,6s;animation-delay:-9s,-2.1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(25){left:4%;animation-duration:24s,7.9s;animation-delay:-15s,-2.7s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(26){left:12%;animation-duration:17s,5.5s;animation-delay:-12s,-1.9s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(27){left:20%;animation-duration:22s,7.2s;animation-delay:-3s,-4.4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(28){left:28%;animation-duration:16s,5.9s;animation-delay:-7s,-2.6s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(29){left:36%;animation-duration:21s,6.8s;animation-delay:-14s,-3.1s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(30){left:44%;animation-duration:18s,5.6s;animation-delay:-5s,-1.7s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(31){left:52%;animation-duration:23s,7.1s;animation-delay:-13s,-4s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(32){left:60%;animation-duration:17s,5.3s;animation-delay:-8s,-2.2s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(33){left:72%;animation-duration:20s,6.6s;animation-delay:-4s,-3.5s}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(34){left:88%;animation-duration:22s,7.4s;animation-delay:-11s,-1.4s}

@keyframes snowDrift{
  0%{transform:translateX(0)}
  25%{transform:translateX(10px)}
  50%{transform:translateX(-8px)}
  75%{transform:translateX(6px)}
  100%{transform:translateX(0)}
}

/* Mobile */
@media(max-width:900px){
  body.season-christmas:not(.is-admin){
    background-attachment:scroll;
    background-position:58% top;
  }
}
@media(max-width:680px){
  body.season-christmas:not(.is-admin){background-position:62% top}
  body.season-christmas:not(.is-admin) .article-body,
  body.season-christmas:not(.is-admin) .panel{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  body.season-christmas:not(.is-admin) .snow-layer-back i:nth-child(odd),
  body.season-christmas:not(.is-admin) .snow-layer-front i:nth-child(odd){display:none}
}

/* Christmas cleanup: no Halloween-style decorative glyphs. */
body.season-christmas:not(.is-admin) .season-christmas-moon,
body.season-christmas:not(.is-admin) .season-christmas-bats,
body.season-christmas:not(.is-admin) .h-pumpkin,
body.season-christmas:not(.is-admin) .h-eye-pair{display:none!important}
\n\n/* =====================================================================\n   NOËL V3 FINAL — règles autoritaires\n   ===================================================================== */\nbody.season-christmas:not(.is-admin),\nbody.season-christmas.page-home:not(.is-admin){\n  background-color:#07111d!important;\n  background-image:linear-gradient(rgba(4,10,18,.28),rgba(4,10,18,.56)),url('/public/assets/seasons/christmas-bg.webp')!important;\n  background-size:cover!important;\n  background-position:center top!important;\n  background-repeat:no-repeat!important;\n  background-attachment:fixed!important;\n}\n\n/* Home: cancel old red/green seasonal bubbles. */\nbody.season-christmas.page-home:not(.is-admin) .cockpit-hero{\n  background:linear-gradient(135deg,rgba(8,20,35,.91),rgba(20,42,68,.78))!important;\n  border:1px solid rgba(190,224,255,.30)!important;\n}\nbody.season-christmas.page-home:not(.is-admin) .cockpit-hero::after{display:none!important}\nbody.season-christmas.page-home:not(.is-admin) .cockpit-hero-links a{\n  background:rgba(8,18,31,.76)!important;\n  border-color:rgba(217,177,95,.42)!important;\n  color:#fff!important;\n}\nbody.season-christmas.page-home:not(.is-admin) .cockpit-hero-links a:first-child{\n  background:linear-gradient(135deg,#f4e3b0,#d9b15f)!important;\n  color:#101827!important;\n}\nbody.season-christmas.page-home:not(.is-admin) .cockpit-emergency{\n  color:#fff!important;\n  background:rgba(7,15,27,.72)!important;\n  border-color:rgba(217,177,95,.42)!important;\n}\nbody.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy strong,\nbody.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy small,\nbody.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy em{color:#fff!important}\n\n/* Exact component selectors observed in the portal. */\nbody.season-christmas:not(.is-admin) .tool-row>a,\nbody.season-christmas:not(.is-admin) .procedure-card,\nbody.season-christmas:not(.is-admin) .procedure-help,\nbody.season-christmas:not(.is-admin) .org-card,\nbody.season-christmas:not(.is-admin) .contact-help-card,\nbody.season-christmas:not(.is-admin) .security-onboarding,\nbody.season-christmas:not(.is-admin) .passkey-enroll-card,\nbody.season-christmas:not(.is-admin) .passkey-row,\nbody.season-christmas:not(.is-admin) .security-note,\nbody.season-christmas:not(.is-admin) .magazine-toolbar,\nbody.season-christmas:not(.is-admin) .magazine-panel,\nbody.season-christmas:not(.is-admin) .magazine-panel-head,\nbody.season-christmas:not(.is-admin) .magazine-number-card,\nbody.season-christmas:not(.is-admin) .favorite-row,\nbody.season-christmas:not(.is-admin) .mainnav-link{\n  background:linear-gradient(180deg,rgba(9,18,32,.94),rgba(6,14,25,.91))!important;\n  color:#f7fbff!important;\n  border-color:rgba(190,224,255,.28)!important;\n}\nbody.season-christmas:not(.is-admin) .tool-row small,\nbody.season-christmas:not(.is-admin) .procedure-card p,\nbody.season-christmas:not(.is-admin) .org-person p,\nbody.season-christmas:not(.is-admin) .contact-help-title p,\nbody.season-christmas:not(.is-admin) .contact-help-person small,\nbody.season-christmas:not(.is-admin) .security-onboarding p,\nbody.season-christmas:not(.is-admin) .passkey-enroll-card p,\nbody.season-christmas:not(.is-admin) .passkey-row small,\nbody.season-christmas:not(.is-admin) .security-note p,\nbody.season-christmas:not(.is-admin) .magazine-panel-head p,\nbody.season-christmas:not(.is-admin) .magazine-result-count{color:#c8d6e6!important}\n\nbody.season-christmas:not(.is-admin) .tool-icon,\nbody.season-christmas:not(.is-admin) .org-avatar,\nbody.season-christmas:not(.is-admin) .topic-icon,\nbody.season-christmas:not(.is-admin) .security-icon,\nbody.season-christmas:not(.is-admin) .passkey-symbol,\nbody.season-christmas:not(.is-admin) .mainnav-icon{\n  background:rgba(155,200,255,.12)!important;\n  color:#f2d28a!important;\n}\nbody.season-christmas:not(.is-admin) .org-role{background:#d9b15f!important;color:#101827!important}\nbody.season-christmas:not(.is-admin) .org-actions a,\nbody.season-christmas:not(.is-admin) .contact-help-actions a,\nbody.season-christmas:not(.is-admin) .contact-group-mail,\nbody.season-christmas:not(.is-admin) .org-group-mail{\n  background:rgba(8,18,31,.84)!important;\n  color:#f2d28a!important;\n  border-color:rgba(217,177,95,.34)!important;\n}\n\n/* Magazine logos remain on a neutral light tile for legibility. */\nbody.season-christmas:not(.is-admin) .magazine-tab-logo,\nbody.season-christmas:not(.is-admin) .magazine-panel-logo,\nbody.season-christmas:not(.is-admin) .magazine-logo-wrap{background:#fff!important}\n\n/* Snow must be above content, but never intercept clicks. */\nbody.season-christmas:not(.is-admin) .season-fx{z-index:20!important;pointer-events:none!important;overflow:hidden!important}\nbody.season-christmas:not(.is-admin) .snow-layer{position:absolute!important;inset:0!important;overflow:hidden!important;pointer-events:none!important}\nbody.season-christmas:not(.is-admin) .snow-layer i{\n  position:absolute!important;\n  top:-12vh!important;\n  display:block!important;\n  border-radius:50%!important;\n  background:rgba(255,255,255,.95)!important;\n  box-shadow:0 0 5px rgba(255,255,255,.55)!important;\n  animation-name:snowFallChristmas!important;\n  animation-timing-function:linear!important;\n  animation-iteration-count:infinite!important;\n}\nbody.season-christmas:not(.is-admin) .snow-layer-back i{width:3px!important;height:3px!important;opacity:.60!important}\nbody.season-christmas:not(.is-admin) .snow-layer-front i{width:7px!important;height:7px!important;opacity:.92!important}\n@keyframes snowFallChristmas{\n  0%{transform:translate3d(-10px,-12vh,0);opacity:0}\n  8%{opacity:.9}\n  45%{transform:translate3d(15px,48vh,0)}\n  75%{transform:translate3d(-8px,82vh,0)}\n  100%{transform:translate3d(12px,112vh,0);opacity:.38}\n}\n\n@media(max-width:900px){\n  body.season-christmas:not(.is-admin),body.season-christmas.page-home:not(.is-admin){background-attachment:scroll!important;background-position:58% top!important}\n}\n@media(max-width:680px){\n  body.season-christmas:not(.is-admin),body.season-christmas.page-home:not(.is-admin){background-position:62% top!important}\n  body.season-christmas:not(.is-admin) .snow-layer-back i:nth-child(2n){display:none!important}\n}\n@media(prefers-reduced-motion:reduce){\n  body.season-christmas:not(.is-admin) .snow-layer i{animation-duration:24s!important}\n}\n
/* =====================================================================
   NOËL V4 — lisibilité hero, titres et neige forcée
   ===================================================================== */

/* Permanence opérationnelle : texte foncé sur le bouton doré. */
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency{
  color:#142033!important;
  background:linear-gradient(135deg,#f3dfaa,#e3bb61)!important;
  border-color:rgba(255,245,210,.65)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.42)!important;
}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy small,
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy strong,
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy em,
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-arrow{
  color:#142033!important;
  text-shadow:none!important;
}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-copy strong{font-weight:900}
body.season-christmas.page-home:not(.is-admin) .cockpit-emergency-icon{
  background:rgba(255,255,255,.88)!important;
  color:#8e6817!important;
}

/* Petits titres de section : contour blanc léger pour ressortir sur la photo. */
body.season-christmas:not(.is-admin) .eyebrow,
body.season-christmas:not(.is-admin) .door-home-kicker,
body.season-christmas:not(.is-admin) .section-title-overline,
body.season-christmas:not(.is-admin) .cockpit-title .eyebrow{
  color:#b62035!important;
  -webkit-text-stroke:.28px rgba(255,255,255,.90);
  text-shadow:
    -1px -1px 0 rgba(255,255,255,.55),
     1px -1px 0 rgba(255,255,255,.55),
    -1px  1px 0 rgba(255,255,255,.55),
     1px  1px 0 rgba(255,255,255,.55),
     0 2px 5px rgba(0,0,0,.32)!important;
}

/* Neige : couche plein écran réellement visible sur toutes les pages. */
body.season-christmas:not(.is-admin) .season-fx{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  overflow:hidden!important;
  pointer-events:none!important;
  z-index:999!important;
}
body.season-christmas:not(.is-admin) .snow-layer{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
  pointer-events:none!important;
}
body.season-christmas:not(.is-admin) .snow-layer i{
  position:absolute!important;
  top:-24px!important;
  display:block!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:0 0 6px rgba(255,255,255,.72)!important;
  will-change:transform,opacity!important;
  animation-name:snowFallChristmasV4!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
}
body.season-christmas:not(.is-admin) .snow-layer-back i{
  width:4px!important;
  height:4px!important;
  opacity:.62!important;
}
body.season-christmas:not(.is-admin) .snow-layer-front i{
  width:8px!important;
  height:8px!important;
  opacity:.94!important;
}
@keyframes snowFallChristmasV4{
  0%{transform:translate3d(-12px,-30px,0);opacity:0}
  5%{opacity:.95}
  30%{transform:translate3d(12px,30vh,0)}
  60%{transform:translate3d(-10px,63vh,0)}
  85%{opacity:.85}
  100%{transform:translate3d(16px,108vh,0);opacity:.20}
}

/* Durées individuelles : une seule animation, donc aucune collision de transform. */
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(4n+1){animation-duration:12s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(4n+2){animation-duration:16s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(4n+3){animation-duration:20s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(4n){animation-duration:14s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5n+1){animation-delay:-3s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5n+2){animation-delay:-7s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5n+3){animation-delay:-11s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5n+4){animation-delay:-14s!important}
body.season-christmas:not(.is-admin) .snow-layer i:nth-child(5n){animation-delay:-18s!important}

/* Même avec « réduire les animations », garder une neige lente plutôt que la supprimer. */
@media(prefers-reduced-motion:reduce){
  body.season-christmas:not(.is-admin) .snow-layer i{
    animation-name:snowFallChristmasV4!important;
    animation-duration:28s!important;
    animation-timing-function:linear!important;
    animation-iteration-count:infinite!important;
  }
}

@media(max-width:680px){
  body.season-christmas:not(.is-admin) .snow-layer-front i{width:6px!important;height:6px!important}
  body.season-christmas:not(.is-admin) .snow-layer-back i{width:3px!important;height:3px!important}
}


/* =====================================================================
   NOUVEL AN — thème festif global (fond réaliste + confettis conservés)
   ===================================================================== */
body.season-newyear:not(.is-admin){
  --bg:#06111d;
  --card:#0b1728;
  --text:#f7f5ef;
  --muted:#d8d2c4;
  --line:rgba(236,201,117,.24);
  --navy:#e1b24a;
  --navy2:#173554;
  --blue:#f2d27a;
  color:#f7f5ef;
  background-color:#06111d;
  background-image:
    linear-gradient(rgba(3,10,18,.42),rgba(3,10,18,.66)),
    url('/public/assets/seasons/newyear-bg.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
body.season-newyear:not(.is-admin) .season-fx{
  z-index:1;
}
body.season-newyear:not(.is-admin) .shell,
body.season-newyear:not(.is-admin) footer{position:relative;z-index:2}

body.season-newyear:not(.is-admin) .topbar{
  background:rgba(4,14,26,.88);
  border-bottom-color:rgba(236,201,117,.22);
  box-shadow:0 10px 30px rgba(0,0,0,.34);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
body.season-newyear:not(.is-admin) .brand,
body.season-newyear:not(.is-admin) .desktop-quicknav a,
body.season-newyear:not(.is-admin) .navtoggle{color:#fff8e8}
body.season-newyear:not(.is-admin) .brand small{color:#ddd7ca}
body.season-newyear:not(.is-admin) .desktop-quicknav a:hover{
  background:rgba(225,178,74,.11);
  color:#fff;
}
body.season-newyear:not(.is-admin) .navtoggle{
  border-color:rgba(225,178,74,.42);
  background:rgba(8,22,40,.78);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
body.season-newyear:not(.is-admin) .season-preview-badge{
  color:#fff6dc;
  border-color:rgba(225,178,74,.52);
  background:rgba(14,29,49,.72);
}

body.season-newyear:not(.is-admin) .mainnav{
  background:rgba(6,15,28,.95);
  border-color:rgba(236,201,117,.20);
  color:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.34);
}
body.season-newyear:not(.is-admin) .mainnav a{color:#fff8ea}
body.season-newyear:not(.is-admin) .mainnav a:hover,
body.season-newyear:not(.is-admin) .mainnav a.active{
  background:rgba(225,178,74,.10);
  color:#fff;
}
body.season-newyear:not(.is-admin) .mainnav small,
body.season-newyear:not(.is-admin) .mainnav-section-title{color:#d8d2c4}
body.season-newyear:not(.is-admin) .nav-backdrop{background:rgba(4,9,18,.54)}

body.season-newyear:not(.is-admin) .panel,
body.season-newyear:not(.is-admin) .article-body,
body.season-newyear:not(.is-admin) .recent-list,
body.season-newyear:not(.is-admin) .doc-row,
body.season-newyear:not(.is-admin) .nav-card,
body.season-newyear:not(.is-admin) .content-link,
body.season-newyear:not(.is-admin) .alert-card,
body.season-newyear:not(.is-admin) .timeline-card,
body.season-newyear:not(.is-admin) .search-result,
body.season-newyear:not(.is-admin) .favorite-row,
body.season-newyear:not(.is-admin) .empty-state,
body.season-newyear:not(.is-admin) .required-read,
body.season-newyear:not(.is-admin) .table-wrap,
body.season-newyear:not(.is-admin) .tools-grid>a,
body.season-newyear:not(.is-admin) .tool-card,
body.season-newyear:not(.is-admin) .faq-group,
body.season-newyear:not(.is-admin) details.faq-item,
body.season-newyear:not(.is-admin) .history-card,
body.season-newyear:not(.is-admin) .signature-preview,
body.season-newyear:not(.is-admin) .magazine-panel,
body.season-newyear:not(.is-admin) .magazine-search,
body.season-newyear:not(.is-admin) .magazine-issue,
body.season-newyear:not(.is-admin) .magazine-tab,
body.season-newyear:not(.is-admin) .document-card,
body.season-newyear:not(.is-admin) .contact-topic,
body.season-newyear:not(.is-admin) .contact-card,
body.season-newyear:not(.is-admin) .contact-topic-card,
body.season-newyear:not(.is-admin) .security-card,
body.season-newyear:not(.is-admin) .security-device,
body.season-newyear:not(.is-admin) .bio-card,
body.season-newyear:not(.is-admin) .tool-row,
body.season-newyear:not(.is-admin) .profile-card,
body.season-newyear:not(.is-admin) .portal-group,
body.season-newyear:not(.is-admin) .need-card,
body.season-newyear:not(.is-admin) .door-home-card,
body.season-newyear:not(.is-admin) .home-search,
body.season-newyear:not(.is-admin) .favorite-mini-grid a,
body.season-newyear:not(.is-admin) .cockpit-alert{
  background:linear-gradient(180deg,rgba(7,18,32,.90),rgba(6,13,24,.82))!important;
  color:#fff8ea;
  border-color:rgba(236,201,117,.24)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.24);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
body.season-newyear:not(.is-admin) .favorite-mini-grid a,
body.season-newyear:not(.is-admin) .need-card,
body.season-newyear:not(.is-admin) .portal-group{border-color:rgba(236,201,117,.24)!important}

body.season-newyear:not(.is-admin) h1,
body.season-newyear:not(.is-admin) h2,
body.season-newyear:not(.is-admin) h3,
body.season-newyear:not(.is-admin) h4,
body.season-newyear:not(.is-admin) strong{color:#fff}
body.season-newyear:not(.is-admin) .lead,
body.season-newyear:not(.is-admin) .breadcrumbs,
body.season-newyear:not(.is-admin) .article-meta,
body.season-newyear:not(.is-admin) .muted,
body.season-newyear:not(.is-admin) .doc-row p,
body.season-newyear:not(.is-admin) .nav-card p,
body.season-newyear:not(.is-admin) .content-link p,
body.season-newyear:not(.is-admin) .search-result p,
body.season-newyear:not(.is-admin) .history-summary,
body.season-newyear:not(.is-admin) .history-preview,
body.season-newyear:not(.is-admin) .cockpit-title-help,
body.season-newyear:not(.is-admin) .panel small,
body.season-newyear:not(.is-admin) .tool-card small,
body.season-newyear:not(.is-admin) .portal-group-copy small,
body.season-newyear:not(.is-admin) .need-copy small,
body.season-newyear:not(.is-admin) .article-body,
body.season-newyear:not(.is-admin) .contact-topic p,
body.season-newyear:not(.is-admin) .contact-role,
body.season-newyear:not(.is-admin) .contact-subtitle{color:#d8d2c4!important}
body.season-newyear:not(.is-admin) a{color:#f0cf77}
body.season-newyear:not(.is-admin) .eyebrow,
body.season-newyear:not(.is-admin) .door-home-kicker,
body.season-newyear:not(.is-admin) .section-title-overline{color:#f0cf77}
body.season-newyear:not(.is-admin) .portal-group summary,
body.season-newyear:not(.is-admin) .portal-group-copy strong,
body.season-newyear:not(.is-admin) .favorite-mini-grid strong,
body.season-newyear:not(.is-admin) .need-copy strong,
body.season-newyear:not(.is-admin) .door-home-copy>strong{color:#fff}

body.season-newyear:not(.is-admin) input,
body.season-newyear:not(.is-admin) textarea,
body.season-newyear:not(.is-admin) select{
  color:#fff8ea;
  background:rgba(5,15,28,.76);
  border-color:rgba(236,201,117,.26);
}
body.season-newyear:not(.is-admin) input::placeholder,
body.season-newyear:not(.is-admin) textarea::placeholder{color:#bfb8aa}
body.season-newyear:not(.is-admin) input:focus,
body.season-newyear:not(.is-admin) textarea:focus,
body.season-newyear:not(.is-admin) select:focus{
  outline:none;
  border-color:#f0cf77;
  box-shadow:0 0 0 3px rgba(240,207,119,.12);
}

body.season-newyear:not(.is-admin) .btn,
body.season-newyear:not(.is-admin) button:not(.navtoggle):not(.mainnav-close){
  border-color:rgba(225,178,74,.42);
}
body.season-newyear:not(.is-admin) .btn.primary,
body.season-newyear:not(.is-admin) .home-search button,
body.season-newyear:not(.is-admin) .door-home-action,
body.season-newyear:not(.is-admin) .quick-action-primary{
  color:#101725!important;
  background:linear-gradient(135deg,#f5de9e,#d19b2b)!important;
  border-color:#d19b2b!important;
}
body.season-newyear:not(.is-admin) .cockpit-emergency,
body.season-newyear:not(.is-admin) .contact-topic-phone,
body.season-newyear:not(.is-admin) .contact-inline-action.phone,
body.season-newyear:not(.is-admin) .contact-actions .contact-topic-phone,
body.season-newyear:not(.is-admin) .contact-actions .contact-inline-action.phone{
  color:#101725!important;
  background:linear-gradient(135deg,#f4dfa7,#d5a33a)!important;
  border-color:#d19b2b!important;
  box-shadow:0 10px 24px rgba(209,155,43,.16);
}
body.season-newyear:not(.is-admin) .cockpit-emergency-copy small,
body.season-newyear:not(.is-admin) .cockpit-emergency-copy em,
body.season-newyear:not(.is-admin) .contact-topic-phone small,
body.season-newyear:not(.is-admin) .contact-inline-action.phone small{color:rgba(16,23,37,.78)!important}
body.season-newyear:not(.is-admin) .cockpit-emergency-copy strong,
body.season-newyear:not(.is-admin) .contact-topic-phone strong,
body.season-newyear:not(.is-admin) .contact-inline-action.phone strong{color:#101725!important}
body.season-newyear:not(.is-admin) .btn:not(.primary),
body.season-newyear:not(.is-admin) .contact-topic-mail,
body.season-newyear:not(.is-admin) .contact-inline-action,
body.season-newyear:not(.is-admin) .contact-actions a,
body.season-newyear:not(.is-admin) .contact-actions button,
body.season-newyear:not(.is-admin) .bio-card .btn,
body.season-newyear:not(.is-admin) .security-device .btn{
  background:rgba(10,23,39,.82)!important;
  color:#f0cf77!important;
  border-color:rgba(225,178,74,.30)!important;
}
body.season-newyear:not(.is-admin) .tag,
body.season-newyear:not(.is-admin) .pill,
body.season-newyear:not(.is-admin) .result-type,
body.season-newyear:not(.is-admin) .history-date{
  background:rgba(225,178,74,.12);
  color:#ffe7aa;
  border-color:rgba(236,201,117,.20);
}

body.season-newyear:not(.is-admin) .article-body h2,
body.season-newyear:not(.is-admin) .article-body h3{color:#f0cf77}
body.season-newyear:not(.is-admin) .article-body blockquote{
  color:#fff8ea;
  background:rgba(10,22,38,.74);
  border-left-color:#f0cf77;
}
body.season-newyear:not(.is-admin) .article-body a{text-decoration-color:rgba(240,207,119,.55)}
body.season-newyear:not(.is-admin) .article-body hr,
body.season-newyear:not(.is-admin) .contact-topic hr,
body.season-newyear:not(.is-admin) .contact-topic-sep,
body.season-newyear:not(.is-admin) .panel hr,
body.season-newyear:not(.is-admin) .tool-card hr{border-color:rgba(236,201,117,.16)}

body.season-newyear:not(.is-admin) table{color:#fff8ea}
body.season-newyear:not(.is-admin) th{color:#f6de9b;border-bottom-color:rgba(236,201,117,.30)}
body.season-newyear:not(.is-admin) td{border-bottom-color:rgba(236,201,117,.16)}

body.season-newyear:not(.is-admin) .magazine-tab.is-active,
body.season-newyear:not(.is-admin) .history-years a:hover,
body.season-newyear:not(.is-admin) .favorite-star.is-active,
body.season-newyear:not(.is-admin) .favorite-toggle.is-active{
  background:rgba(225,178,74,.14)!important;
  border-color:#d19b2b!important;
  color:#fff!important;
}
body.season-newyear:not(.is-admin) .magazine-issue:hover,
body.season-newyear:not(.is-admin) .content-link:hover,
body.season-newyear:not(.is-admin) .nav-card:hover,
body.season-newyear:not(.is-admin) .tool-card:hover,
body.season-newyear:not(.is-admin) .tools-grid>a:hover{
  border-color:#d19b2b!important;
  box-shadow:0 12px 30px rgba(209,155,43,.10);
}
body.season-newyear:not(.is-admin) .history-years{
  background:rgba(6,14,25,.88);
  border-color:rgba(236,201,117,.18);
}
body.season-newyear:not(.is-admin) .history-years a{
  background:rgba(10,22,38,.86);
  color:#fff8ea;
  border-color:rgba(236,201,117,.14);
}
body.season-newyear:not(.is-admin) .magazine-search input,
body.season-newyear:not(.is-admin) .searchbar input,
body.season-newyear:not(.is-admin) .home-search input{color:#fff}
body.season-newyear:not(.is-admin) .door-home-icon,
body.season-newyear:not(.is-admin) .mainnav-icon,
body.season-newyear:not(.is-admin) .tool-badge,
body.season-newyear:not(.is-admin) .contact-topic-icon,
body.season-newyear:not(.is-admin) .need-icon,
body.season-newyear:not(.is-admin) .portal-group-icon{
  background:rgba(225,178,74,.14);
  color:#f5d583;
  box-shadow:0 0 0 1px rgba(236,201,117,.16);
}

body.season-newyear.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(115deg,rgba(5,19,35,.96),rgba(8,39,67,.90) 62%,rgba(20,17,33,.88))!important;
  border-color:rgba(236,201,117,.28)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.02);
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 45%,rgba(236,201,117,.10) 100%);
  pointer-events:none;
}
body.season-newyear.page-home:not(.is-admin) .cockpit-hero::after{
  content:'✦  ✧  ✦';
  position:absolute;
  right:24px;
  top:14px;
  color:#f4d57d;
  font-size:1.35rem;
  letter-spacing:.45rem;
  text-shadow:0 0 14px rgba(240,207,119,.45);
}
body.season-newyear:not(.is-admin) .cockpit-hero .eyebrow,
body.season-newyear:not(.is-admin) .cockpit-title .eyebrow{color:#f0cf77}
body.season-newyear:not(.is-admin) .cockpit-hero-copy>p:last-of-type{color:#d8d2c4}
body.season-newyear:not(.is-admin) .cockpit-emergency-icon{
  color:#8a620d;
  background:rgba(255,250,238,.96);
}

body.season-newyear:not(.is-admin) footer{
  color:#d8d2c4;
  background:rgba(6,12,22,.90);
  border-top-color:rgba(236,201,117,.16);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Confettis conservés et renforcés pour le thème du Nouvel An. */
body.season-newyear:not(.is-admin) .confetti-layer{
  position:absolute;
  inset:0;
  overflow:hidden;
}
body.season-newyear:not(.is-admin) .confetti-layer i{
  position:absolute;
  top:-10vh;
  width:9px;
  height:18px;
  border-radius:999px;
  opacity:.88;
  box-shadow:0 0 8px rgba(255,255,255,.12);
  animation:confettiFallNewYear linear infinite;
}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(4n+1){background:#f1c75a}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(4n+2){background:#fff3ce;width:6px;height:12px}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(4n+3){background:#d892ff;width:7px;height:14px}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(4n){background:#83c6ff;width:6px;height:13px}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(1){left:3%;animation-duration:9s;animation-delay:-4s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(2){left:8%;animation-duration:11s;animation-delay:-7s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(3){left:13%;animation-duration:10s;animation-delay:-2s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(4){left:18%;animation-duration:13s;animation-delay:-9s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(5){left:23%;animation-duration:9s;animation-delay:-5s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(6){left:28%;animation-duration:12s;animation-delay:-8s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(7){left:33%;animation-duration:10s;animation-delay:-6s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(8){left:38%;animation-duration:14s;animation-delay:-11s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(9){left:43%;animation-duration:10s;animation-delay:-3s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(10){left:48%;animation-duration:12s;animation-delay:-7s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(11){left:53%;animation-duration:9s;animation-delay:-1s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(12){left:58%;animation-duration:13s;animation-delay:-9s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(13){left:63%;animation-duration:11s;animation-delay:-5s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(14){left:68%;animation-duration:15s;animation-delay:-12s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(15){left:73%;animation-duration:10s;animation-delay:-2s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(16){left:78%;animation-duration:13s;animation-delay:-8s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(17){left:83%;animation-duration:9s;animation-delay:-4s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(18){left:88%;animation-duration:14s;animation-delay:-10s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(19){left:93%;animation-duration:11s;animation-delay:-6s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(20){left:97%;animation-duration:13s;animation-delay:-3s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(21){left:16%;animation-duration:15s;animation-delay:-13s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(22){left:36%;animation-duration:10s;animation-delay:-6s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(23){left:56%;animation-duration:14s;animation-delay:-8s}
body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(24){left:76%;animation-duration:12s;animation-delay:-10s}
@keyframes confettiFallNewYear{
  0%{transform:translate3d(0,-10vh,0) rotate(0deg);opacity:0}
  8%{opacity:.92}
  100%{transform:translate3d(54px,110vh,0) rotate(760deg);opacity:.22}
}
body.season-newyear:not(.is-admin) .newyear-spark{
  color:#f4d57d;
  text-shadow:0 0 14px rgba(244,213,125,.65),0 0 30px rgba(255,255,255,.18);
}

@media(max-width:900px){
  body.season-newyear:not(.is-admin){
    background-attachment:scroll;
    background-position:58% top;
  }
}
@media(max-width:680px){
  body.season-newyear:not(.is-admin){background-position:62% top}
  body.season-newyear:not(.is-admin) .panel,
  body.season-newyear:not(.is-admin) .article-body{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  body.season-newyear:not(.is-admin) .confetti-layer i:nth-child(odd){display:none}
  body.season-newyear.page-home:not(.is-admin) .cockpit-hero::after{font-size:1rem;right:18px;top:12px;letter-spacing:.25rem}
}
@media(prefers-reduced-motion:reduce){
  body.season-newyear:not(.is-admin) .confetti-layer i{animation-duration:22s!important}
}


/* =====================================================================
   NOUVEL AN V2 FINAL — correctifs visuels renforcés
   ===================================================================== */
body.season-newyear:not(.is-admin),
body.season-newyear.page-home:not(.is-admin){
  background-color:#07111d!important;
  background-image:linear-gradient(rgba(3,10,18,.34),rgba(3,10,18,.64)),url('/public/assets/seasons/newyear-bg.webp')!important;
  background-size:cover!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
  background-attachment:fixed!important;
}

/* Emoji festif discret en haut à droite. */
body.season-newyear:not(.is-admin) .topbar-season-emoji{
  position:relative;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:40px;
  height:40px;
  margin-left:4px;
  border-radius:999px;
  border:1px solid rgba(240,207,119,.38);
  background:linear-gradient(180deg,rgba(18,31,49,.92),rgba(8,18,32,.90));
  color:#f5d583;
  font-size:1.2rem;
  line-height:1;
  box-shadow:0 8px 24px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.03);
}
body.season-newyear:not(.is-admin) .topbar-season-emoji::after{
  content:'';
  position:absolute;
  width:18px;
  height:18px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.26) 0,rgba(255,255,255,0) 72%);
  transform:translate(8px,-8px);
  pointer-events:none;
}

/* Menu : version "autoritaire" pour s'assurer que tous les éléments passent bien en thème Nouvel An. */
body.season-newyear:not(.is-admin) .mainnav{
  background:linear-gradient(180deg,rgba(9,18,32,.97),rgba(6,13,24,.95))!important;
  border-color:rgba(236,201,117,.22)!important;
  color:#fff8ea!important;
  box-shadow:0 18px 60px rgba(0,0,0,.36)!important;
}
body.season-newyear:not(.is-admin) .mainnav-head{
  background:rgba(8,18,31,.94)!important;
  border-bottom-color:rgba(236,201,117,.16)!important;
}
body.season-newyear:not(.is-admin) .mainnav-head strong{color:#fff!important}
body.season-newyear:not(.is-admin) .mainnav-head small{color:#d8d2c4!important}
body.season-newyear:not(.is-admin) .mainnav-close{
  background:rgba(6,17,30,.96)!important;
  color:#f0cf77!important;
  border:1px solid rgba(236,201,117,.22)!important;
}
body.season-newyear:not(.is-admin) .mainnav-grid,
body.season-newyear:not(.is-admin) .mainnav-section{gap:8px!important}
body.season-newyear:not(.is-admin) .mainnav-section{
  border-top-color:rgba(236,201,117,.16)!important;
}
body.season-newyear:not(.is-admin) .mainnav-section-title{color:#d8d2c4!important}
body.season-newyear:not(.is-admin) .mainnav-link,
body.season-newyear:not(.is-admin) .tool-row>a,
body.season-newyear:not(.is-admin) .procedure-card,
body.season-newyear:not(.is-admin) .procedure-help,
body.season-newyear:not(.is-admin) .org-card,
body.season-newyear:not(.is-admin) .contact-help-card,
body.season-newyear:not(.is-admin) .security-onboarding,
body.season-newyear:not(.is-admin) .passkey-enroll-card,
body.season-newyear:not(.is-admin) .passkey-row,
body.season-newyear:not(.is-admin) .security-note,
body.season-newyear:not(.is-admin) .magazine-toolbar,
body.season-newyear:not(.is-admin) .magazine-panel,
body.season-newyear:not(.is-admin) .magazine-panel-head,
body.season-newyear:not(.is-admin) .magazine-number-card,
body.season-newyear:not(.is-admin) .favorite-row{
  background:linear-gradient(180deg,rgba(10,21,37,.95),rgba(7,15,28,.92))!important;
  color:#fff8ea!important;
  border-color:rgba(236,201,117,.22)!important;
}
body.season-newyear:not(.is-admin) .mainnav-link:hover,
body.season-newyear:not(.is-admin) .mainnav-link.active,
body.season-newyear:not(.is-admin) .tool-row>a:hover,
body.season-newyear:not(.is-admin) .magazine-number-card:hover,
body.season-newyear:not(.is-admin) .magazine-number-card.is-latest{
  background:linear-gradient(180deg,rgba(15,28,46,.98),rgba(8,18,32,.94))!important;
  border-color:#d19b2b!important;
}
body.season-newyear:not(.is-admin) .mainnav-link>b{color:#f0cf77!important}
body.season-newyear:not(.is-admin) .mainnav-icon,
body.season-newyear:not(.is-admin) .tool-icon,
body.season-newyear:not(.is-admin) .org-avatar,
body.season-newyear:not(.is-admin) .topic-icon,
body.season-newyear:not(.is-admin) .security-icon,
body.season-newyear:not(.is-admin) .passkey-symbol{
  background:rgba(225,178,74,.14)!important;
  color:#f5d583!important;
  box-shadow:0 0 0 1px rgba(236,201,117,.16)!important;
}
body.season-newyear:not(.is-admin) .mainnav-link span,
body.season-newyear:not(.is-admin) .mainnav-link strong,
body.season-newyear:not(.is-admin) .tool-row>a span,
body.season-newyear:not(.is-admin) .procedure-card h2,
body.season-newyear:not(.is-admin) .org-person strong,
body.season-newyear:not(.is-admin) .contact-help-title h2,
body.season-newyear:not(.is-admin) .security-onboarding strong,
body.season-newyear:not(.is-admin) .magazine-number-main strong{color:#fff!important}
body.season-newyear:not(.is-admin) .tool-row small,
body.season-newyear:not(.is-admin) .procedure-card p,
body.season-newyear:not(.is-admin) .checklist-card>p,
body.season-newyear:not(.is-admin) .check-item small,
body.season-newyear:not(.is-admin) .org-person p,
body.season-newyear:not(.is-admin) .org-person small,
body.season-newyear:not(.is-admin) .contact-help-title p,
body.season-newyear:not(.is-admin) .contact-help-person small,
body.season-newyear:not(.is-admin) .security-onboarding p,
body.season-newyear:not(.is-admin) .passkey-enroll-card p,
body.season-newyear:not(.is-admin) .passkey-row small,
body.season-newyear:not(.is-admin) .security-note p,
body.season-newyear:not(.is-admin) .magazine-panel-head p,
body.season-newyear:not(.is-admin) .magazine-result-count,
body.season-newyear:not(.is-admin) .magazine-number-main em,
body.season-newyear:not(.is-admin) .favorite-row>a small{color:#d8d2c4!important}
body.season-newyear:not(.is-admin) .org-role,
body.season-newyear:not(.is-admin) .importance-important,
body.season-newyear:not(.is-admin) .importance-urgent{
  background:linear-gradient(135deg,#f5de9e,#d19b2b)!important;
  color:#101725!important;
  border-color:#d19b2b!important;
}
body.season-newyear:not(.is-admin) .org-actions a,
body.season-newyear:not(.is-admin) .contact-help-actions a,
body.season-newyear:not(.is-admin) .contact-group-mail,
body.season-newyear:not(.is-admin) .org-group-mail,
body.season-newyear:not(.is-admin) .passkey-register-btn,
body.season-newyear:not(.is-admin) .passkey-row button{
  background:rgba(10,23,39,.84)!important;
  color:#f0cf77!important;
  border-color:rgba(225,178,74,.30)!important;
}
body.season-newyear:not(.is-admin) .mainnav-logout{color:#ffb5b0!important}
body.season-newyear:not(.is-admin) .mainnav-logout .mainnav-icon{
  background:rgba(166,33,44,.14)!important;
  color:#ffb5b0!important;
}

/* Les logos des revues gardent un fond clair pour rester lisibles. */
body.season-newyear:not(.is-admin) .magazine-tab-logo,
body.season-newyear:not(.is-admin) .magazine-panel-logo,
body.season-newyear:not(.is-admin) .magazine-logo-wrap{background:#fff!important}

/* Les effets doivent rester visibles sans bloquer l'interface. */
body.season-newyear:not(.is-admin) .season-fx{z-index:20!important;pointer-events:none!important;overflow:hidden!important}
body.season-newyear:not(.is-admin) .confetti-layer,
body.season-newyear:not(.is-admin) .newyear-spark{pointer-events:none!important}

@media(max-width:900px){
  body.season-newyear:not(.is-admin),body.season-newyear.page-home:not(.is-admin){
    background-attachment:scroll!important;
    background-position:58% top!important;
  }
}
@media(max-width:680px){
  body.season-newyear:not(.is-admin),body.season-newyear.page-home:not(.is-admin){
    background-position:62% top!important;
  }
  body.season-newyear:not(.is-admin) .topbar-season-emoji{
    width:36px;
    height:36px;
    font-size:1.05rem;
    margin-left:2px;
  }
}
@media(prefers-reduced-motion:reduce){
  body.season-newyear:not(.is-admin) .topbar-season-emoji{transition:none!important}
}


/* =====================================================================
   NOUVEL AN V3 — emoji dans l'emplacement saisonnier existant
   ===================================================================== */
/* On réutilise la pastille native .topbar::after au lieu d'ajouter un
   élément dans le flux de la barre. */
body.season-newyear:not(.is-admin){
  --season-deco:"🎉";
}
body.season-newyear:not(.is-admin) .topbar::after{
  content:"🎉"!important;
  min-width:42px!important;
  height:42px!important;
  padding:0 10px!important;
  background:rgba(255,255,255,.96)!important;
  border-color:rgba(225,178,74,.58)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.20)!important;
  color:#101725!important;
  font-size:22px!important;
  line-height:1!important;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif!important;
}

/* Désactivation de l'ancienne pastille ajoutée dans le flux si un cache
   HTML la conserve momentanément. */
body.season-newyear:not(.is-admin) .topbar-season-emoji{display:none!important}


/* =====================================================================
   NOUVEL AN V4 — procédures : cartes sombres + niveaux d'urgence lisibles
   ===================================================================== */
body.season-newyear:not(.is-admin) .procedure-card,
body.season-newyear:not(.is-admin) .procedure-card.importance-urgent,
body.season-newyear:not(.is-admin) .procedure-card.importance-important{
  background:linear-gradient(180deg,rgba(9,20,35,.96),rgba(6,14,26,.94))!important;
  color:#fff8ea!important;
  border-left:1px solid rgba(236,201,117,.20)!important;
  border-right:1px solid rgba(236,201,117,.20)!important;
  border-bottom:1px solid rgba(236,201,117,.20)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.24)!important;
}
body.season-newyear:not(.is-admin) .procedure-card.importance-urgent{
  border-top:4px solid #d65a54!important;
}
body.season-newyear:not(.is-admin) .procedure-card.importance-important{
  border-top:4px solid #d9a63a!important;
}
body.season-newyear:not(.is-admin) .procedure-card:not(.importance-urgent):not(.importance-important){
  border-top:1px solid rgba(236,201,117,.30)!important;
}
body.season-newyear:not(.is-admin) .procedure-card h2{
  color:#fff!important;
}
body.season-newyear:not(.is-admin) .procedure-card p{
  color:#d8d2c4!important;
}
body.season-newyear:not(.is-admin) .procedure-card>a{
  color:#f3cd70!important;
}
body.season-newyear:not(.is-admin) .procedure-card>a:hover{
  color:#ffe6a6!important;
}
body.season-newyear:not(.is-admin) .procedure-card-head>span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  font-size:.62rem;
  letter-spacing:.04em;
  line-height:1;
  background:rgba(225,178,74,.12)!important;
  color:#f1ce79!important;
  border:1px solid rgba(236,201,117,.18)!important;
}
body.season-newyear:not(.is-admin) .procedure-card.importance-urgent .procedure-card-head>span{
  background:rgba(214,90,84,.13)!important;
  color:#ffb7b2!important;
  border-color:rgba(214,90,84,.28)!important;
}
body.season-newyear:not(.is-admin) .procedure-card.importance-important .procedure-card-head>span{
  background:rgba(217,166,58,.14)!important;
  color:#f5d98f!important;
  border-color:rgba(217,166,58,.28)!important;
}
body.season-newyear:not(.is-admin) .procedure-card .favorite-btn{
  background:rgba(255,255,255,.06)!important;
  color:#c5d5e4!important;
  border-color:rgba(236,201,117,.22)!important;
}
body.season-newyear:not(.is-admin) .procedure-card .favorite-btn:hover,
body.season-newyear:not(.is-admin) .procedure-card .favorite-btn.is-favorite{
  background:rgba(225,178,74,.14)!important;
  color:#f6ce68!important;
  border-color:#d19b2b!important;
}
body.season-newyear:not(.is-admin) .procedure-card:hover{
  background:linear-gradient(180deg,rgba(12,25,43,.98),rgba(7,17,30,.96))!important;
  border-left-color:rgba(240,207,119,.38)!important;
  border-right-color:rgba(240,207,119,.38)!important;
  border-bottom-color:rgba(240,207,119,.38)!important;
  transform:translateY(-1px);
}


/* =====================================================================
   PÂQUES V2 — fond global, titres plus lisibles, décor allégé
   ===================================================================== */
body.season-easter:not(.is-admin){
  --season-accent:#8f2f77;
  --season-soft:#fff4fb;
  --season-border:#e8d6c4;
  --season-icon-bg:#f8ecf5;
  --season-icon-text:#8f2f77;
  --season-deco:"🐣";
  background-color:#f7f2e8;
  background-image:
    linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.18)),
    url('/public/assets/seasons/easter-bg.webp');
  background-repeat:no-repeat;
  background-position:center top;
  background-size:cover;
  background-attachment:fixed;
}
body.season-easter:not(.is-admin) .season-fx,
body.season-easter:not(.is-admin) .easter-sprig,
body.season-easter:not(.is-admin) .easter-eggs{display:none!important}
body.season-easter:not(.is-admin) .topbar{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom-color:rgba(143,47,119,.18);
}
body.season-easter:not(.is-admin) .shell,
body.season-easter:not(.is-admin) footer{
  position:relative;
}
body.season-easter:not(.is-admin) footer{
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
body.season-easter:not(.is-admin) .eyebrow,
body.season-easter:not(.is-admin) .section-kicker,
body.season-easter:not(.is-admin) .cockpit-title .eyebrow,
body.season-easter:not(.is-admin) .home-page-section-head .eyebrow,
body.season-easter:not(.is-admin) .hero .eyebrow{
  color:#8f2f77!important;
  text-shadow:0 1px 0 rgba(255,255,255,.96),0 0 12px rgba(255,255,255,.55);
}
body.season-easter:not(.is-admin) .hero h1,
body.season-easter:not(.is-admin) .article h1,
body.season-easter:not(.is-admin) .section-head h2,
body.season-easter:not(.is-admin) .content>h1,
body.season-easter:not(.is-admin) .content>h2,
body.season-easter:not(.is-admin) .cockpit-title h2,
body.season-easter:not(.is-admin) .home-hero-title,
body.season-easter:not(.is-admin) .home-need-title{
  text-shadow:0 2px 12px rgba(255,255,255,.52);
}
body.season-easter:not(.is-admin) .hero,
body.season-easter:not(.is-admin) .article-body,
body.season-easter:not(.is-admin) .nav-card,
body.season-easter:not(.is-admin) .content-link,
body.season-easter:not(.is-admin) .recent-list,
body.season-easter:not(.is-admin) .doc-row,
body.season-easter:not(.is-admin) .timeline-card,
body.season-easter:not(.is-admin) .panel,
body.season-easter:not(.is-admin) .table-wrap,
body.season-easter:not(.is-admin) .sidebar,
body.season-easter:not(.is-admin) .alert-card,
body.season-easter:not(.is-admin) .stats-grid>div,
body.season-easter:not(.is-admin) .admin-cards a,
body.season-easter:not(.is-admin) .timeline-admin>div,
body.season-easter:not(.is-admin) .admin-list>div{
  background:rgba(255,255,255,.88);
  border-color:rgba(143,47,119,.14);
  box-shadow:0 10px 28px rgba(74,56,84,.08);
}
body.season-easter:not(.is-admin) .content-link:hover,
body.season-easter:not(.is-admin) .nav-card:hover{
  border-color:rgba(143,47,119,.35);
}
body.season-easter:not(.is-admin) .btn.primary,
body.season-easter:not(.is-admin) .home-search button,
body.season-easter:not(.is-admin) .door-home-action{
  background:#8f2f77!important;
  border-color:#8f2f77!important;
}
@media(max-width:900px){
  body.season-easter:not(.is-admin){
    background-attachment:scroll;
    background-position:58% top;
  }
}

/* =====================================================================
   PÂQUES V3 — contraste renforcé des titres et sous-titres
   ===================================================================== */
body.season-easter:not(.is-admin) .breadcrumbs,
body.season-easter:not(.is-admin) .eyebrow,
body.season-easter:not(.is-admin) .section-kicker,
body.season-easter:not(.is-admin) .cockpit-title .eyebrow,
body.season-easter:not(.is-admin) .home-page-section-head .eyebrow,
body.season-easter:not(.is-admin) .hero .eyebrow{
  color:#70245f!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    0 0 3px rgba(255,255,255,.98),
    0 0 8px rgba(255,255,255,.82),
    0 1px 12px rgba(65,35,45,.20)!important;
}
body.season-easter:not(.is-admin) .breadcrumbs a{
  color:#5d3a28!important;
  text-shadow:0 1px 0 rgba(255,255,255,.98),0 0 5px rgba(255,255,255,.9)!important;
}
body.season-easter:not(.is-admin) h1,
body.season-easter:not(.is-admin) h2,
body.season-easter:not(.is-admin) h3,
body.season-easter:not(.is-admin) .cockpit-title h2,
body.season-easter:not(.is-admin) .home-need-title{
  color:#17243c!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    0 0 4px rgba(255,255,255,.96),
    0 2px 12px rgba(255,255,255,.76),
    0 2px 18px rgba(43,37,31,.16)!important;
}
body.season-easter:not(.is-admin) .lead,
body.season-easter:not(.is-admin) .cockpit-title-help,
body.season-easter:not(.is-admin) .article-meta,
body.season-easter:not(.is-admin) .page-intro,
body.season-easter:not(.is-admin) .hero p{
  color:#3d4654!important;
  text-shadow:0 1px 0 rgba(255,255,255,.96),0 0 6px rgba(255,255,255,.92)!important;
}

/* Petits fonds translucides uniquement derrière les textes courts exposés au décor. */
body.season-easter:not(.is-admin) .breadcrumbs,
body.season-easter:not(.is-admin) .section-kicker,
body.season-easter:not(.is-admin) .eyebrow{
  width:max-content;
  max-width:100%;
  padding:2px 6px;
  margin-left:-6px;
  border-radius:7px;
  background:rgba(255,255,255,.48);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
body.season-easter:not(.is-admin) .lead{
  display:block;
  width:max-content;
  max-width:min(100%,820px);
  padding:5px 9px;
  margin-left:-9px;
  border-radius:9px;
  background:rgba(255,255,255,.42);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}


/* ================================================================
   THÈME ÉTÉ V1 — fond plage / cocotiers + palette vacances
   ================================================================ */
body.season-summer:not(.is-admin){
  --season-accent:#00a8c8;
  --season-accent-2:#ff8a4c;
  --season-soft:#eefbff;
  --season-border:#9edfe9;
  --season-icon-bg:#ddf8fb;
  --season-icon-text:#0087a3;
  --season-deco:"☀";
}
body.season-summer:not(.is-admin){
  background-image:
    linear-gradient(rgba(5,19,38,.12),rgba(5,19,38,.18)),
    url('/public/assets/seasons/summer-bg.webp');
  background-size:cover;
  background-position:center top;
  background-attachment:fixed;
}
body.season-summer:not(.is-admin) .shell,
body.season-summer:not(.is-admin) main{
  position:relative;
  z-index:2;
}
body.season-summer:not(.is-admin) .season-fx::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(5,19,38,.16), rgba(5,19,38,.04) 24%, rgba(255,180,86,.06) 70%, rgba(5,19,38,.14) 100%),
    radial-gradient(circle at 84% 10%, rgba(255,214,94,.18), transparent 14rem);
  pointer-events:none;
}
body.season-summer:not(.is-admin) .topbar{
  background:linear-gradient(180deg,rgba(4,15,33,.94),rgba(4,15,33,.88));
  border-bottom-color:rgba(255,255,255,.12);
}
body.season-summer:not(.is-admin) .brand span,
body.season-summer:not(.is-admin) .desktop-quicknav a,
body.season-summer:not(.is-admin) .navtoggle,
body.season-summer:not(.is-admin) .navtoggle-label{color:#fff}
body.season-summer:not(.is-admin) .desktop-quicknav a:hover,
body.season-summer:not(.is-admin) .desktop-quicknav a:focus-visible{color:#8eeaff}
body.season-summer:not(.is-admin) .navtoggle,
body.season-summer:not(.is-admin) .season-preview-badge{
  border-color:rgba(255,201,92,.50);
  background:rgba(9,28,50,.56);
}
body.season-summer:not(.is-admin) .season-preview-badge{color:#ffd66d}

/* Global content containers */
body.season-summer:not(.is-admin) .home-search,
body.season-summer:not(.is-admin) .favorite-mini-grid a,
body.season-summer:not(.is-admin) .need-card,
body.season-summer:not(.is-admin) .portal-group,
body.season-summer:not(.is-admin) .cockpit-alert,
body.season-summer:not(.is-admin) .content-link,
body.season-summer:not(.is-admin) .nav-card,
body.season-summer:not(.is-admin) .article-body,
body.season-summer:not(.is-admin) .doc-card,
body.season-summer:not(.is-admin) .faq-item,
body.season-summer:not(.is-admin) .contact-card,
body.season-summer:not(.is-admin) .person-card,
body.season-summer:not(.is-admin) .member-card,
body.season-summer:not(.is-admin) .hero-card,
body.season-summer:not(.is-admin) .box,
body.season-summer:not(.is-admin) .card,
body.season-summer:not(.is-admin) .panel,
body.season-summer:not(.is-admin) .list-card,
body.season-summer:not(.is-admin) .tool-card{
  background:rgba(255,255,255,.88);
  border-color:rgba(119,199,214,.55);
  box-shadow:0 14px 38px rgba(6,37,63,.12);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
body.season-summer:not(.is-admin) .mainnav,
body.season-summer:not(.is-admin) .mainnav-link,
body.season-summer:not(.is-admin) .mainnav-section,
body.season-summer:not(.is-admin) .mainnav-head{
  background:rgba(7,20,37,.92);
  color:#fff;
  border-color:rgba(255,191,96,.26);
}
body.season-summer:not(.is-admin) .mainnav-link{background:rgba(255,255,255,.04)}
body.season-summer:not(.is-admin) .mainnav-link span,
body.season-summer:not(.is-admin) .mainnav-head strong,
body.season-summer:not(.is-admin) .mainnav-section-title{color:#fff}
body.season-summer:not(.is-admin) .mainnav-head small,
body.season-summer:not(.is-admin) .mainnav-icon{color:#bdefff}
body.season-summer:not(.is-admin) .mainnav-link b{color:#ffd168}

/* Typography */
body.season-summer:not(.is-admin) .page-eyebrow,
body.season-summer:not(.is-admin) .section-kicker,
body.season-summer:not(.is-admin) .eyebrow,
body.season-summer:not(.is-admin) .cockpit-title .eyebrow,
body.season-summer:not(.is-admin) .door-home-kicker{
  color:#005f79;
  text-shadow:0 1px 0 rgba(255,255,255,.72);
}
body.season-summer:not(.is-admin) h1,
body.season-summer:not(.is-admin) h2,
body.season-summer:not(.is-admin) h3,
body.season-summer:not(.is-admin) .page-title,
body.season-summer:not(.is-admin) .cockpit-hero-copy h1,
body.season-summer:not(.is-admin) .cockpit-title h2,
body.season-summer:not(.is-admin) .portal-group summary,
body.season-summer:not(.is-admin) .favorite-mini-grid strong,
body.season-summer:not(.is-admin) .need-copy strong,
body.season-summer:not(.is-admin) .content-link strong,
body.season-summer:not(.is-admin) .nav-card strong{
  color:#0a2744;
}
body.season-summer:not(.is-admin) p,
body.season-summer:not(.is-admin) small,
body.season-summer:not(.is-admin) .muted,
body.season-summer:not(.is-admin) .content-link small,
body.season-summer:not(.is-admin) .need-copy small,
body.season-summer:not(.is-admin) .portal-group-copy small{color:#49667a}
body.season-summer:not(.is-admin) a{color:#007da0}
body.season-summer:not(.is-admin) a:hover{color:#005f79}

/* Buttons and chips */
body.season-summer:not(.is-admin) .btn.primary,
body.season-summer:not(.is-admin) .home-search button,
body.season-summer:not(.is-admin) .door-home-action,
body.season-summer:not(.is-admin) .cockpit-hero-links a:nth-child(2){
  background:#00a8c8!important;
  border-color:#00a8c8!important;
  color:#fff!important;
}
body.season-summer:not(.is-admin) .cockpit-hero-links a:nth-child(1){
  background:#ff8750;
  border-color:#ffb799;
  color:#fff;
}
body.season-summer:not(.is-admin) .cockpit-hero-links a:nth-child(3){
  background:#ffd56e;
  border-color:#ffe29b;
  color:#16324c;
}
body.season-summer:not(.is-admin) .tag,
body.season-summer:not(.is-admin) .chip,
body.season-summer:not(.is-admin) .pill,
body.season-summer:not(.is-admin) .badge{
  background:rgba(255,255,255,.72);
  border-color:rgba(0,168,200,.30);
  color:#0a4760;
}

/* Homepage hero */
body.season-summer.page-home:not(.is-admin){
  background-image:
    linear-gradient(rgba(5,19,38,.10),rgba(5,19,38,.16)),
    url('/public/assets/seasons/summer-bg.webp');
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero{
  background:
    radial-gradient(circle at 84% 14%, rgba(255,234,146,.30), transparent 11rem),
    linear-gradient(120deg, rgba(0,168,200,.90), rgba(0,129,170,.86) 50%, rgba(255,137,80,.82));
  border-color:rgba(255,255,255,.36);
  box-shadow:0 20px 48px rgba(5,40,68,.16);
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero .eyebrow,
body.season-summer.page-home:not(.is-admin) .cockpit-hero-copy h1,
body.season-summer.page-home:not(.is-admin) .cockpit-hero-copy p{color:#fff}
body.season-summer.page-home:not(.is-admin) .cockpit-hero::after{
  content:"";
  position:absolute;inset:auto 0 0 0;height:34%;pointer-events:none;
  background:linear-gradient(to top, rgba(255,255,255,.06), transparent),
             repeating-linear-gradient(90deg, transparent 0 9%, rgba(255,255,255,.04) 9% 9.7%, transparent 9.7% 18%);
  border-radius:0 0 28px 28px;
}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency{
  background:rgba(255,245,214,.88);
  border-color:rgba(255,222,145,.86);
  color:#16324c;
}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy strong{color:#16324c}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy small,
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy em{color:#5c6f7c}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-icon{background:#fff;color:#ff8750}
body.season-summer.page-home:not(.is-admin) .door-home-card,
body.season-summer.page-home:not(.is-admin) .home-search,
body.season-summer.page-home:not(.is-admin) .favorite-mini-grid a,
body.season-summer.page-home:not(.is-admin) .need-card,
body.season-summer.page-home:not(.is-admin) .portal-group,
body.season-summer.page-home:not(.is-admin) .cockpit-alert{
  background:rgba(255,255,255,.90);
}

/* Decorative layer */
.summer-sun{
  position:absolute;right:3vw;top:1.2vh;font-size:5.6rem;color:#ffd252;opacity:.46;
  filter:drop-shadow(0 0 24px rgba(255,205,82,.42));animation:sunPulse 6s ease-in-out infinite;
}
.summer-palm{position:absolute;font-size:4rem;opacity:.44}
.summer-palm-left{left:-4px;top:10vh;transform:rotate(16deg)}
.summer-palm-right{right:-2px;bottom:12vh;transform:scaleX(-1) rotate(14deg)}
.summer-shell{position:absolute;right:8vw;bottom:4vh;font-size:2.4rem;color:#ff9168;opacity:.48;transform:rotate(12deg)}
.summer-waves{position:absolute;left:-5%;right:-5%;bottom:0;height:18vh;opacity:.12;background:repeating-radial-gradient(ellipse at 50% 0,transparent 0 42px,#00a7c7 43px 47px,transparent 48px 86px);transform:translateY(46%)}

@media(max-width:760px){
  body.season-summer:not(.is-admin){background-attachment:scroll;background-position:58% top}
  .summer-palm{font-size:2.8rem;opacity:.33}
  .summer-sun{font-size:4rem;opacity:.30}
}


/* =====================================================================
   ÉTÉ V2 FINAL — couverture complète + suppression des emojis décoratifs
   ===================================================================== */
body.season-summer:not(.is-admin),
body.season-summer.page-home:not(.is-admin){
  background-color:#0a2a46!important;
  background-image:linear-gradient(rgba(8,25,43,.18),rgba(8,25,43,.24)),url('/public/assets/seasons/summer-bg.webp')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-attachment:fixed!important;
}
body.page-home.season-summer:not(.is-admin){
  background-image:linear-gradient(rgba(8,25,43,.10),rgba(8,25,43,.18)),url('/public/assets/seasons/summer-bg.webp')!important;
}

/* Suppression explicite des décorations ajoutées au-dessus du fond. */
body.season-summer:not(.is-admin) .summer-sun,
body.season-summer:not(.is-admin) .summer-palm,
body.season-summer:not(.is-admin) .summer-shell,
body.season-summer:not(.is-admin) .summer-waves{display:none!important}
body.season-summer:not(.is-admin) .season-fx{pointer-events:none!important;z-index:0!important}

/* Barre haute */
body.season-summer:not(.is-admin) .topbar{
  background:linear-gradient(180deg,rgba(6,21,39,.95),rgba(6,21,39,.90))!important;
  border-bottom-color:rgba(255,255,255,.12)!important;
}
body.season-summer:not(.is-admin) .brand,
body.season-summer:not(.is-admin) .brand span,
body.season-summer:not(.is-admin) .mainnav>a,
body.season-summer:not(.is-admin) .navtoggle,
body.season-summer:not(.is-admin) .navtoggle-label{color:#f8fcff!important}
body.season-summer:not(.is-admin) .season-preview-badge{
  background:rgba(7,26,46,.68)!important;
  border-color:rgba(255,208,107,.55)!important;
  color:#ffd46f!important;
}
body.season-summer:not(.is-admin) .desktop-quicknav a:hover,
body.season-summer:not(.is-admin) .desktop-quicknav a:focus-visible{color:#93ecff!important}

/* Cartes globales observées dans le portail */
body.season-summer:not(.is-admin) .tool-row>a,
body.season-summer:not(.is-admin) .procedure-card,
body.season-summer:not(.is-admin) .procedure-help,
body.season-summer:not(.is-admin) .org-card,
body.season-summer:not(.is-admin) .contact-help-card,
body.season-summer:not(.is-admin) .security-onboarding,
body.season-summer:not(.is-admin) .passkey-enroll-card,
body.season-summer:not(.is-admin) .passkey-row,
body.season-summer:not(.is-admin) .security-note,
body.season-summer:not(.is-admin) .magazine-toolbar,
body.season-summer:not(.is-admin) .magazine-panel,
body.season-summer:not(.is-admin) .magazine-panel-head,
body.season-summer:not(.is-admin) .magazine-number-card,
body.season-summer:not(.is-admin) .favorite-row,
body.season-summer:not(.is-admin) .door-home-card,
body.season-summer:not(.is-admin) .home-search,
body.season-summer:not(.is-admin) .portal-group,
body.season-summer:not(.is-admin) .content-link,
body.season-summer:not(.is-admin) .article-body,
body.season-summer:not(.is-admin) .search-page-form input,
body.season-summer:not(.is-admin) .search-result,
body.season-summer:not(.is-admin) .faq-item,
body.season-summer:not(.is-admin) .doc-row,
body.season-summer:not(.is-admin) .panel,
body.season-summer:not(.is-admin) .table-wrap{
  background:rgba(255,255,255,.90)!important;
  color:#143149!important;
  border-color:rgba(82,190,208,.42)!important;
  box-shadow:0 16px 40px rgba(7,34,56,.12)!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
body.season-summer:not(.is-admin) .tool-row>a:hover,
body.season-summer:not(.is-admin) .favorite-row:hover,
body.season-summer:not(.is-admin) .content-link:hover,
body.season-summer:not(.is-admin) .search-result:hover,
body.season-summer:not(.is-admin) .procedure-card:hover{
  border-color:rgba(0,168,200,.58)!important;
  box-shadow:0 18px 42px rgba(7,34,56,.18)!important;
}

/* Typographie */
body.season-summer:not(.is-admin) h1,
body.season-summer:not(.is-admin) h2,
body.season-summer:not(.is-admin) h3,
body.season-summer:not(.is-admin) .page-title,
body.season-summer:not(.is-admin) .favorite-mini-grid strong,
body.season-summer:not(.is-admin) .need-copy strong,
body.season-summer:not(.is-admin) .portal-group-copy strong,
body.season-summer:not(.is-admin) .content-link strong,
body.season-summer:not(.is-admin) .procedure-card h2,
body.season-summer:not(.is-admin) .org-person strong,
body.season-summer:not(.is-admin) .contact-help-person strong,
body.season-summer:not(.is-admin) .tool-row>a span,
body.season-summer:not(.is-admin) .favorite-row>a{color:#143149!important}
body.season-summer:not(.is-admin) p,
body.season-summer:not(.is-admin) small,
body.season-summer:not(.is-admin) .muted,
body.season-summer:not(.is-admin) .search-count,
body.season-summer:not(.is-admin) .favorite-row>a small,
body.season-summer:not(.is-admin) .procedure-card p,
body.season-summer:not(.is-admin) .tool-row small,
body.season-summer:not(.is-admin) .portal-group-copy small,
body.season-summer:not(.is-admin) .contact-help-title p,
body.season-summer:not(.is-admin) .contact-help-person small,
body.season-summer:not(.is-admin) .org-person p{color:#49667a!important}
body.season-summer:not(.is-admin) .eyebrow,
body.season-summer:not(.is-admin) .page-eyebrow,
body.season-summer:not(.is-admin) .section-kicker,
body.season-summer:not(.is-admin) .door-home-kicker,
body.season-summer:not(.is-admin) .cockpit-title .eyebrow,
body.season-summer:not(.is-admin) .procedure-card-head>span{
  color:#007e9d!important;
  text-shadow:0 1px 0 rgba(255,255,255,.85)!important;
}
body.season-summer:not(.is-admin) a{color:#007e9d}
body.season-summer:not(.is-admin) a:hover{color:#005f79}

/* Icônes / badges */
body.season-summer:not(.is-admin) .tool-icon,
body.season-summer:not(.is-admin) .org-avatar,
body.season-summer:not(.is-admin) .topic-icon,
body.season-summer:not(.is-admin) .security-icon,
body.season-summer:not(.is-admin) .passkey-symbol,
body.season-summer:not(.is-admin) .portal-group-icon,
body.season-summer:not(.is-admin) .mainnav-icon,
body.season-summer:not(.is-admin) .icon-dot{
  background:#dcf7fb!important;
  color:#008aa6!important;
}
body.season-summer:not(.is-admin) .org-role,
body.season-summer:not(.is-admin) .result-type,
body.season-summer:not(.is-admin) .badge,
body.season-summer:not(.is-admin) .tag,
body.season-summer:not(.is-admin) .chip,
body.season-summer:not(.is-admin) .pill{
  background:rgba(255,247,218,.92)!important;
  border-color:rgba(255,206,107,.56)!important;
  color:#7a5600!important;
}
body.season-summer:not(.is-admin) .portal-group-count,
body.season-summer:not(.is-admin) .portal-group-toggle{
  background:#f0fbfd!important;
  color:#007e9d!important;
}

/* Formulaires / recherche */
body.season-summer:not(.is-admin) .home-search input,
body.season-summer:not(.is-admin) .search-page-form input,
body.season-summer:not(.is-admin) input,
body.season-summer:not(.is-admin) textarea,
body.season-summer:not(.is-admin) select{
  color:#143149!important;
}
body.season-summer:not(.is-admin) .home-search input::placeholder,
body.season-summer:not(.is-admin) .search-page-form input::placeholder,
body.season-summer:not(.is-admin) input::placeholder,
body.season-summer:not(.is-admin) textarea::placeholder{color:#668295!important}
body.season-summer:not(.is-admin) .home-search button,
body.season-summer:not(.is-admin) .btn.primary,
body.season-summer:not(.is-admin) .door-home-action,
body.season-summer:not(.is-admin) .cockpit-hero-links a:nth-child(2){
  background:#00a8c8!important;
  border-color:#00a8c8!important;
  color:#fff!important;
}
body.season-summer:not(.is-admin) .cockpit-hero-links a:nth-child(1){
  background:#ff8750!important;
  border-color:#ffb799!important;
  color:#fff!important;
}
body.season-summer:not(.is-admin) .cockpit-hero-links a:nth-child(3){
  background:#ffd56e!important;
  border-color:#ffe29b!important;
  color:#16324c!important;
}

/* Hero page d'accueil */
body.season-summer.page-home:not(.is-admin) .cockpit-hero{
  background:linear-gradient(125deg,rgba(0,150,182,.90),rgba(0,126,157,.86) 48%,rgba(255,143,92,.83))!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:0 24px 52px rgba(5,40,68,.18)!important;
}
body.season-summer.page-home:not(.is-admin) .cockpit-hero::before,
body.season-summer.page-home:not(.is-admin) .cockpit-hero::after{display:none!important}
body.season-summer.page-home:not(.is-admin) .cockpit-hero .eyebrow,
body.season-summer.page-home:not(.is-admin) .cockpit-hero-copy h1,
body.season-summer.page-home:not(.is-admin) .cockpit-hero-copy p{color:#fff!important;text-shadow:none!important}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency{
  background:rgba(255,248,226,.92)!important;
  border-color:rgba(255,219,133,.88)!important;
  color:#15364c!important;
}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy strong{color:#15364c!important}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy small,
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-copy em{color:#4b6b7d!important}
body.season-summer.page-home:not(.is-admin) .cockpit-emergency-icon{background:#fff!important;color:#ff8750!important}

/* Menu plein écran / mobile */
body.season-summer:not(.is-admin) .mainnav{
  background:linear-gradient(180deg,rgba(8,27,47,.96),rgba(8,27,47,.94))!important;
  border-color:rgba(255,208,107,.26)!important;
}
body.season-summer:not(.is-admin) .mainnav-head{
  background:transparent!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.10)!important;
}
body.season-summer:not(.is-admin) .mainnav-head strong{color:#fff!important}
body.season-summer:not(.is-admin) .mainnav-head small,
body.season-summer:not(.is-admin) .mainnav-section-title{color:#cbe9f3!important}
body.season-summer:not(.is-admin) .mainnav-close{
  background:#fff!important;
  color:#143149!important;
  border-color:rgba(255,208,107,.44)!important;
}
body.season-summer:not(.is-admin) .mainnav-grid,
body.season-summer:not(.is-admin) .mainnav-section{gap:8px!important}
body.season-summer:not(.is-admin) .mainnav-link,
body.season-summer:not(.is-admin) .mainnav-logout,
body.season-summer:not(.is-admin) .tool-row>a,
body.season-summer:not(.is-admin) .favorite-row{
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(249,253,255,.90))!important;
  border:1px solid rgba(255,208,107,.42)!important;
  color:#143149!important;
}
body.season-summer:not(.is-admin) .mainnav-link span,
body.season-summer:not(.is-admin) .mainnav-link strong,
body.season-summer:not(.is-admin) .mainnav-link small,
body.season-summer:not(.is-admin) .mainnav-logout,
body.season-summer:not(.is-admin) .mainnav-logout span{color:#143149!important}
body.season-summer:not(.is-admin) .mainnav-link>b,
body.season-summer:not(.is-admin) .mainnav-logout>b{color:#ffb347!important}
body.season-summer:not(.is-admin) .mainnav-link:hover,
body.season-summer:not(.is-admin) .mainnav-link.active,
body.season-summer:not(.is-admin) .mainnav-logout:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,252,255,.96))!important;
  border-color:rgba(0,168,200,.45)!important;
}

/* Procédures */
body.season-summer:not(.is-admin) .procedure-card,
body.season-summer:not(.is-admin) .procedure-card.importance-urgent,
body.season-summer:not(.is-admin) .procedure-card.importance-important{
  border-top-width:4px!important;
}
body.season-summer:not(.is-admin) .procedure-card.importance-urgent{border-top-color:#f06a4a!important}
body.season-summer:not(.is-admin) .procedure-card.importance-important{border-top-color:#ffbf47!important}
body.season-summer:not(.is-admin) .procedure-card:not(.importance-urgent):not(.importance-important){border-top-color:#00a8c8!important}
body.season-summer:not(.is-admin) .procedure-card>a{color:#007e9d!important}
body.season-summer:not(.is-admin) .procedure-card>a:hover{color:#005f79!important}
body.season-summer:not(.is-admin) .procedure-card .favorite-btn{
  background:#fff!important;
  border-color:rgba(82,190,208,.44)!important;
  color:#7a94a5!important;
}
body.season-summer:not(.is-admin) .procedure-card .favorite-btn:hover,
body.season-summer:not(.is-admin) .procedure-card .favorite-btn.is-favorite{
  background:#fff5dc!important;
  border-color:#ffd56e!important;
  color:#d08a00!important;
}

/* Logos de revues sur support neutre */
body.season-summer:not(.is-admin) .magazine-tab-logo,
body.season-summer:not(.is-admin) .magazine-panel-logo,
body.season-summer:not(.is-admin) .magazine-logo-wrap{background:#fff!important}

@media(max-width:900px){
  body.season-summer:not(.is-admin),body.season-summer.page-home:not(.is-admin){background-attachment:scroll!important;background-position:58% center!important}
}
@media(max-width:680px){
  body.season-summer:not(.is-admin),body.season-summer.page-home:not(.is-admin){background-position:64% center!important}
}


/* =====================================================================
   ÉTÉ V3 — contraste renforcé + logo blanc
   ===================================================================== */
body.season-summer:not(.is-admin) .brand img,
body.season-summer:not(.is-admin) .topbar .brand img{
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.18));
}

/* Meilleure lisibilité des textes posés directement sur le décor. */
body.season-summer:not(.is-admin) .breadcrumbs,
body.season-summer:not(.is-admin) .eyebrow,
body.season-summer:not(.is-admin) .section-kicker,
body.season-summer:not(.is-admin) .page-eyebrow,
body.season-summer:not(.is-admin) .door-home-kicker,
body.season-summer:not(.is-admin) .cockpit-title .eyebrow,
body.season-summer:not(.is-admin) .home-page-section-head .eyebrow{
  color:#0c6f8f!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    0 0 4px rgba(255,255,255,.96),
    0 0 10px rgba(255,255,255,.80),
    0 1px 12px rgba(7,34,56,.16)!important;
}
body.season-summer:not(.is-admin) .breadcrumbs,
body.season-summer:not(.is-admin) .eyebrow,
body.season-summer:not(.is-admin) .section-kicker,
body.season-summer:not(.is-admin) .page-eyebrow,
body.season-summer:not(.is-admin) .door-home-kicker{
  width:max-content;
  max-width:100%;
  padding:2px 7px;
  margin-left:-7px;
  border-radius:8px;
  background:rgba(255,255,255,.42);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
body.season-summer:not(.is-admin) .breadcrumbs,
body.season-summer:not(.is-admin) .breadcrumbs a{
  color:#11415a!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    0 0 5px rgba(255,255,255,.95)!important;
}

body.season-summer:not(.is-admin) .article h1,
body.season-summer:not(.is-admin) .page-title-row h1,
body.season-summer:not(.is-admin) .content > h1,
body.season-summer:not(.is-admin) .page-title,
body.season-summer:not(.is-admin) .article > h1:first-of-type{
  color:#143149!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    0 0 4px rgba(255,255,255,.96),
    0 2px 10px rgba(255,255,255,.76),
    0 2px 18px rgba(7,34,56,.14)!important;
}
body.season-summer:not(.is-admin) .article h1,
body.season-summer:not(.is-admin) .page-title-row h1,
body.season-summer:not(.is-admin) .content > h1,
body.season-summer:not(.is-admin) .article > h1:first-of-type{
  display:inline-block;
  max-width:100%;
  padding:4px 10px 6px;
  margin-left:-10px;
  border-radius:14px;
  background:rgba(255,255,255,.30);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
body.season-summer:not(.is-admin) .lead,
body.season-summer:not(.is-admin) .page-intro,
body.season-summer:not(.is-admin) .cockpit-title-help,
body.season-summer:not(.is-admin) .article-meta{
  color:#33556b!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.96),
    0 0 6px rgba(255,255,255,.92)!important;
}
body.season-summer:not(.is-admin) .lead,
body.season-summer:not(.is-admin) .page-intro{
  display:block;
  width:max-content;
  max-width:min(100%,840px);
  padding:5px 9px;
  margin-left:-9px;
  border-radius:10px;
  background:rgba(255,255,255,.34);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}

/* Ajustement spécifique du menu et des textes de page exposés. */
body.season-summer:not(.is-admin) .mainnav-link span,
body.season-summer:not(.is-admin) .mainnav-link strong,
body.season-summer:not(.is-admin) .mainnav-link small,
body.season-summer:not(.is-admin) .mainnav-logout,
body.season-summer:not(.is-admin) .mainnav-logout span,
body.season-summer:not(.is-admin) .tool-row>a,
body.season-summer:not(.is-admin) .tool-row>a span,
body.season-summer:not(.is-admin) .tool-row small,
body.season-summer:not(.is-admin) .favorite-row>a,
body.season-summer:not(.is-admin) .favorite-row>a small{
  color:#143149!important;
}

/* UDPS90_LOGIN_SEASONAL_CONTRAST_V1_START */

/* =====================================================================
   LOGIN + THÈMES SAISONNIERS — contraste, lisibilité, fond plein écran
   ===================================================================== */

/* Le login ne doit plus recréer un panneau gris au-dessus du background. */
body:has(.login-wrap){
  min-height:100vh!important;
  background-color:#0a1728;
  overflow-x:hidden;
}
body:has(.login-wrap) .login-wrap{
  position:fixed!important;
  inset:0!important;
  z-index:1!important;
  width:100vw!important;
  max-width:none!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))!important;
  display:grid!important;
  place-items:center!important;
  background:transparent!important;
  background-image:none!important;
  overflow:auto!important;
}

/* Carte commune : fond clair mais légèrement translucide pour conserver le décor. */
body:has(.login-wrap) .login-card{
  width:min(460px,calc(100vw - 32px))!important;
  max-width:460px!important;
  margin:auto!important;
  background:rgba(255,255,255,.955)!important;
  color:#132c43!important;
  border:1px solid rgba(255,255,255,.76)!important;
  box-shadow:0 26px 80px rgba(2,12,24,.38)!important;
  backdrop-filter:blur(12px) saturate(1.06)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.06)!important;
}
body:has(.login-wrap) .login-card .login-logo{
  filter:none!important;
}
body:has(.login-wrap) .login-card h1,
body:has(.login-wrap) .login-card label,
body:has(.login-wrap) .login-card label>span,
body:has(.login-wrap) .login-card strong{
  color:#132c43!important;
  text-shadow:none!important;
}
body:has(.login-wrap) .login-card .login-intro,
body:has(.login-wrap) .login-card .login-help,
body:has(.login-wrap) .login-card .muted,
body:has(.login-wrap) .login-card .passkey-secondary small,
body:has(.login-wrap) .login-card .passkey-status{
  color:#5a7184!important;
  text-shadow:none!important;
}
body:has(.login-wrap) .login-card .eyebrow{
  color:#0c6282!important;
  text-shadow:none!important;
  background:none!important;
  padding:0!important;
  margin-left:0!important;
}

/* Champs : toujours clairs et lisibles, même quand le thème global est sombre. */
body:has(.login-wrap) .login-card input,
body:has(.login-wrap) .login-card input[type="text"],
body:has(.login-wrap) .login-card input[type="password"]{
  background:#fff!important;
  color:#132c43!important;
  border:1px solid #b8c8d5!important;
  box-shadow:inset 0 1px 2px rgba(8,31,50,.04)!important;
  -webkit-text-fill-color:#132c43!important;
}
body:has(.login-wrap) .login-card input:focus{
  outline:none!important;
  border-color:#2f789d!important;
  box-shadow:0 0 0 3px rgba(47,120,157,.15)!important;
}
body:has(.login-wrap) .login-card input:-webkit-autofill,
body:has(.login-wrap) .login-card input:-webkit-autofill:hover,
body:has(.login-wrap) .login-card input:-webkit-autofill:focus{
  -webkit-text-fill-color:#132c43!important;
  box-shadow:0 0 0 1000px #fff inset!important;
  transition:background-color 9999s ease-out 0s!important;
}

/* Séparateur */
body:has(.login-wrap) .login-card .login-separator{
  color:#73889a!important;
  text-shadow:none!important;
}
body:has(.login-wrap) .login-card .login-separator:before,
body:has(.login-wrap) .login-card .login-separator:after{
  background:#ccd7df!important;
}

/* Clé d'accès / biométrie : fond clair et texte foncé. */
body:has(.login-wrap) .login-card .passkey-secondary{
  background:#f3f7fa!important;
  color:#132c43!important;
  border:1px solid #bed0dd!important;
  box-shadow:none!important;
}
body:has(.login-wrap) .login-card .passkey-secondary:hover{
  background:#eaf2f7!important;
  border-color:#8fadc1!important;
}
body:has(.login-wrap) .login-card .passkey-symbol{
  background:#123a63!important;
  color:#fff!important;
}

/* HALLOWEEN */
body.season-halloween:has(.login-wrap) .login-card{
  border-color:rgba(255,127,38,.58)!important;
  box-shadow:0 28px 86px rgba(0,0,0,.52),0 0 0 1px rgba(255,122,24,.08)!important;
}
body.season-halloween:has(.login-wrap) .login-card .eyebrow{color:#d95b00!important}
body.season-halloween:has(.login-wrap) .login-submit{
  background:#f36b00!important;
  border-color:#f36b00!important;
  color:#fff!important;
}
body.season-halloween:has(.login-wrap) .login-submit:hover{background:#d95d00!important}
body.season-halloween:has(.login-wrap) .login-card input:focus{
  border-color:#e96a16!important;
  box-shadow:0 0 0 3px rgba(233,106,22,.16)!important;
}
body.season-halloween:has(.login-wrap) .login-card .passkey-symbol{
  background:#f36b00!important;
  color:#fff!important;
}

/* NOËL */
body.season-christmas:has(.login-wrap) .login-card{
  border-color:rgba(217,177,95,.58)!important;
  box-shadow:0 28px 86px rgba(0,10,24,.48),0 0 0 1px rgba(217,177,95,.08)!important;
}
body.season-christmas:has(.login-wrap) .login-card .eyebrow{color:#8b171f!important}
body.season-christmas:has(.login-wrap) .login-submit{
  background:#a91422!important;
  border-color:#a91422!important;
  color:#fff!important;
}
body.season-christmas:has(.login-wrap) .login-submit:hover{background:#88111b!important}
body.season-christmas:has(.login-wrap) .login-card .passkey-symbol{background:#123a63!important}

/* NOUVEL AN */
body.season-newyear:has(.login-wrap) .login-card{
  border-color:rgba(210,164,65,.66)!important;
  box-shadow:0 28px 86px rgba(0,8,20,.52),0 0 0 1px rgba(210,164,65,.10)!important;
}
body.season-newyear:has(.login-wrap) .login-card .eyebrow{color:#8a650b!important}
body.season-newyear:has(.login-wrap) .login-submit{
  background:#0c2b4b!important;
  border-color:#0c2b4b!important;
  color:#fff!important;
}
body.season-newyear:has(.login-wrap) .login-submit:hover{background:#071d34!important}
body.season-newyear:has(.login-wrap) .login-card .passkey-symbol{
  background:#d1a33a!important;
  color:#13202f!important;
}

/* PÂQUES */
body.season-easter:has(.login-wrap) .login-card{
  border-color:rgba(143,75,210,.45)!important;
  box-shadow:0 26px 80px rgba(64,39,84,.28)!important;
}
body.season-easter:has(.login-wrap) .login-card .eyebrow{color:#762460!important}
body.season-easter:has(.login-wrap) .login-submit{
  background:#8f2f77!important;
  border-color:#8f2f77!important;
  color:#fff!important;
}
body.season-easter:has(.login-wrap) .login-submit:hover{background:#72245f!important}
body.season-easter:has(.login-wrap) .login-card .passkey-symbol{background:#8f2f77!important}

/* ÉTÉ */
body.season-summer:has(.login-wrap) .login-card{
  border-color:rgba(0,168,200,.50)!important;
  box-shadow:0 28px 84px rgba(2,45,67,.34)!important;
}
body.season-summer:has(.login-wrap) .login-card .eyebrow{color:#007e9d!important}
body.season-summer:has(.login-wrap) .login-submit{
  background:#00a8c8!important;
  border-color:#00a8c8!important;
  color:#fff!important;
}
body.season-summer:has(.login-wrap) .login-submit:hover{background:#008da9!important}
body.season-summer:has(.login-wrap) .login-card .passkey-symbol{background:#008faa!important}

/* Desktop large : légère transparence supplémentaire pour mieux voir le décor. */
@media(min-width:900px){
  body:has(.login-wrap) .login-card{background:rgba(255,255,255,.945)!important}
}

/* Mobile : aucune zone grise et carte qui tient dans l'écran. */
@media(max-width:680px){
  body:has(.login-wrap){background-color:#0a1728!important}
  body:has(.login-wrap) .login-wrap{
    position:fixed!important;
    inset:0!important;
    place-items:center!important;
    background:transparent!important;
    padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important;
  }
  body:has(.login-wrap) .login-card{
    width:min(430px,calc(100vw - 20px))!important;
    margin:auto!important;
  }
}

/* UDPS90_LOGIN_SEASONAL_CONTRAST_V1_END */

/* LOGIN HISTORY USERS V1 */
.user-last-login{display:block;margin-top:2px;color:#66798a!important;font-size:.74rem}
.user-login-history{margin:14px 0 2px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;overflow:hidden}
.user-login-history>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;cursor:pointer;font-weight:800;color:var(--navy);list-style:none}
.user-login-history>summary::-webkit-details-marker{display:none}.user-login-history>summary small{color:var(--muted);font-weight:600}
.user-login-history-list{border-top:1px solid var(--line);background:#fff}.user-login-entry{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:10px 13px;border-bottom:1px solid var(--line)}
.user-login-entry:last-child{border-bottom:0}.user-login-entry div{display:flex;flex-direction:column;line-height:1.3}.user-login-entry small{color:var(--muted)}.user-login-entry time{font-size:.78rem;color:var(--muted);white-space:nowrap}
.user-login-dot{width:8px;height:8px;border-radius:50%;background:#1e7d57}.user-login-entry.failure .user-login-dot{background:#b54242}.user-login-entry.failure strong{color:#943737}.user-login-empty{padding:12px 13px;color:var(--muted);font-size:.86rem}
@media(max-width:680px){.user-login-entry{grid-template-columns:10px 1fr}.user-login-entry time{grid-column:2;white-space:normal}.user-login-history>summary{align-items:flex-start;flex-direction:column;gap:2px}}
/* EXPENSES_MOBILE_DRAWER_FIX_V4 */
@media (max-width: 680px){
  .mainnav[data-nav], .mainnav{
    position:fixed !important;
    top:max(76px, env(safe-area-inset-top)) !important;
    right:0 !important;
    bottom:calc(76px + env(safe-area-inset-bottom)) !important;
    left:auto !important;
    width:min(92vw, 660px) !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(26px + env(safe-area-inset-bottom)) !important;
    scroll-padding-bottom:40px;
  }
  .mainnav.open{display:flex !important;}
  .mainnav .mainnav-account{padding-bottom:18px !important;}
  .mainnav::-webkit-scrollbar{width:5px}
  .mainnav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
}

/* MOBILE_DRAWER_REAL_FIX_V5 */
@media (max-width:680px){
  /* La topbar crée son propre contexte d'empilement : lorsqu'un menu est ouvert,
     elle doit passer au-dessus du dock mobile. */
  html.nav-is-open .topbar,
  body.nav-is-open .topbar{
    z-index:220 !important;
  }
  html.nav-is-open .nav-backdrop,
  body.nav-is-open .nav-backdrop{
    z-index:221 !important;
  }
  html.nav-is-open .mainnav,
  body.nav-is-open .mainnav{
    z-index:222 !important;
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:100dvh !important;
    max-height:100dvh !important;
    overflow:hidden !important;
  }
  /* C'est CE bloc qui doit défiler, pas .mainnav. */
  .mainnav .mainnav-scroll{
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior-y:contain !important;
    padding-bottom:calc(42px + env(safe-area-inset-bottom)) !important;
    scroll-padding-bottom:calc(42px + env(safe-area-inset-bottom)) !important;
  }
  .mainnav .mainnav-section:last-child{
    margin-bottom:18px !important;
  }
  /* Le dock reste derrière le drawer quand celui-ci est ouvert. */
  html.nav-is-open .mobile-dock,
  body.nav-is-open .mobile-dock{
    z-index:80 !important;
    pointer-events:none !important;
  }
}
