:root{--bg:#f4f6f8;--card:#fff;--text:#17202a;--muted:#667085;--line:#e4e7ec;--accent:#2457d6;--accent2:#1948bd;--ok:#087443;--warn:#9a6700;--danger:#b42318;--shadow:0 10px 28px rgba(17,24,39,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.hidden{display:none!important}.setup-warning{padding:12px 18px;background:#fff5d6;border-bottom:1px solid #f2cf6b;color:#765b00}.setup-warning code{background:#fff;padding:2px 5px;border-radius:5px}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#e9efff,transparent 38%),var(--bg)}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 24px 70px rgba(17,24,39,.12)}
.brand{display:flex;align-items:center;gap:12px}.brand h1{margin:0;font-size:20px}.brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.brand-auth{margin-bottom:24px}.logo{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#2457d6,#6d8cf0);color:#fff;font-weight:800;font-size:20px;box-shadow:var(--shadow)}
.auth-form{display:grid;gap:14px}.auth-form label,.formgrid label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#475467}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:9px;padding:9px 10px;font:inherit;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid #dbe5ff;border-color:#7c9af0}
button{border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 12px;border-radius:9px;cursor:pointer;font-weight:650;font-size:13px}button:hover{background:#f8fafc}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent2)}.wide{width:100%}.link-button{border:0;background:transparent;color:var(--accent);padding:10px 0}.danger-solid{background:#d92d20;color:#fff;border-color:#d92d20}.danger-text{color:var(--danger)}
.message{margin-top:12px;padding:10px 12px;border-radius:9px;background:#eef3ff;color:#26488f;font-size:13px}.message.error{background:#fff0ef;color:#b42318}.message.success{background:#ecfdf3;color:#087443}.security-note{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:13px 20px}.subtitle{font-size:12px;color:var(--muted);margin-top:2px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-pill{display:flex;align-items:center;gap:8px;font-size:13px;padding-right:6px}
.layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 71px)}nav{background:#fff;border-right:1px solid var(--line);padding:14px 10px}.navbtn{display:block;width:100%;text-align:left;border:0;background:transparent;margin:2px 0;padding:11px 12px}.navbtn.active{background:#eef3ff;color:var(--accent);font-weight:750}main{padding:22px;overflow:auto}.page{display:none}.page.active{display:block}.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px}.pagehead h2{margin:0;font-size:24px}.pagehead p{margin:4px 0 0;color:var(--muted);font-size:13px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.card h3{font-size:14px;margin:0 0 12px}.kpi .label{font-size:12px;color:var(--muted)}.kpi .value{font-size:30px;font-weight:800;margin-top:4px}.kpi .hint{font-size:12px;color:var(--muted);margin-top:4px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.search{max-width:330px}.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;max-height:66vh}table{width:100%;border-collapse:collapse}th,td{padding:10px 9px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:top}th{position:sticky;top:0;background:#f9fafb;color:#475467;font-size:12px;z-index:1}tbody tr:hover{background:#fcfcfd}.actions-cell{white-space:nowrap;text-align:right}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:750}.badge.ok{background:#ecfdf3;color:#087443}.badge.warn{background:#fffaeb;color:#9a6700}.badge.no{background:#fff0ef;color:#b42318}.badge.info{background:#eef3ff;color:#2457d6}.badge.neutral{background:#f2f4f7;color:#475467}.muted{color:var(--muted)}.small{font-size:12px}.empty{padding:30px;text-align:center;color:var(--muted)}.listitem{padding:9px 0;border-bottom:1px solid var(--line)}.listitem:last-child{border-bottom:0}.role-help{font-size:13px;line-height:1.7;color:#475467}.users-table{margin-top:14px}.settings-card{max-width:720px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formgrid.onecol{grid-template-columns:1fr}.formgrid .full{grid-column:1/-1}dialog{border:0;padding:0;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.26);width:min(760px,95vw)}dialog::backdrop{background:rgba(15,23,42,.5)}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.modalbody{padding:18px}.modalfoot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--line)}.field-note{font-size:11px;color:var(--muted);font-weight:400}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:920px){.layout{grid-template-columns:1fr}nav{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px}.navbtn{min-width:max-content;width:auto}.grid2{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:10px;flex-direction:column}}@media(max-width:620px){main{padding:14px}.cards{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.pagehead{align-items:flex-start;flex-direction:column}.top-actions{width:100%}.user-pill{width:100%}}

.nav-group{margin:2px 0}.nav-parent{display:flex;align-items:center;justify-content:space-between}.nav-parent.active-parent{color:var(--accent);font-weight:750}.nav-chevron{font-size:11px;transition:transform .15s ease}.nav-group.collapsed .nav-chevron{transform:rotate(-90deg)}.nav-submenu{display:grid;gap:1px;margin:0 0 5px 13px;padding-left:8px;border-left:2px solid #eef1f5}.nav-group.collapsed .nav-submenu{display:none}.nav-sub{font-size:12px;padding:8px 10px}.archive-kpis{grid-template-columns:repeat(3,minmax(0,1fr));max-width:900px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.detail-item{padding:10px 0;border-bottom:1px solid var(--line)}.detail-item.full{grid-column:1/-1}.detail-label{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:4px}.detail-value{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.detail-dialog{width:min(900px,96vw)}.archive-note{padding:10px 12px;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:#f9fafb;color:var(--muted);font-size:12px}
@media(max-width:620px){.archive-kpis{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.detail-item.full{grid-column:auto}}

/* ============================================================
   CALM asbl — Accueil public premium
   ============================================================ */
:root{
  --calm-gold:#f1bd3b;
  --calm-gold-2:#ffd969;
  --calm-red:#e53a19;
  --calm-ink:#090b0e;
  --calm-charcoal:#12161b;
  --calm-cream:#f6f2e9;
}
html{scroll-behavior:smooth}
.public-site{min-height:100vh;background:var(--calm-cream);color:#17191d}
.public-site *{box-sizing:border-box}
.public-topbar{
  position:sticky;top:0;z-index:50;
  height:72px;padding:0 clamp(18px,4.2vw,68px);
  display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);
  align-items:center;gap:28px;
  background:rgba(8,10,13,.94);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,.09);
  box-shadow:0 10px 35px rgba(0,0,0,.16)
}
.public-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;justify-self:start}
.public-brand-text{display:flex;flex-direction:column;line-height:1.05}
.public-brand-text strong{font-size:22px;letter-spacing:.01em}.public-brand-text em{font-style:normal;font-size:13px;font-weight:550;margin-left:3px;color:#d7d8da}
.public-brand-text small{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#979ca4;margin-top:5px}
.public-gem{position:relative;display:inline-block;width:40px;height:32px;flex:0 0 auto;clip-path:polygon(14% 0,86% 0,100% 32%,50% 100%,0 32%);background:
 linear-gradient(145deg,transparent 0 23%,rgba(255,255,255,.9) 24% 26%,transparent 27%),
 linear-gradient(35deg,transparent 0 39%,rgba(20,20,20,.75) 40% 42%,transparent 43%),
 linear-gradient(135deg,#f8e000 0 25%,#ed361d 26% 49%,#ffe300 50% 66%,#e7361c 67% 100%);
 filter:drop-shadow(0 3px 8px rgba(241,189,59,.22))
}
.public-gem.small{width:30px;height:24px}
.public-nav{display:flex;gap:27px;align-items:center;justify-content:center}
.public-nav a{position:relative;color:#e6e7e9;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:800;padding:27px 0 25px}
.public-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:16px;height:2px;background:var(--calm-gold);transition:right .2s ease}
.public-nav a:hover,.public-nav a.active{color:var(--calm-gold-2)}.public-nav a:hover::after,.public-nav a.active::after{right:0}
.public-private-btn{justify-self:end;border:1px solid rgba(241,189,59,.75);background:transparent;color:#fff;border-radius:999px;padding:10px 17px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;cursor:pointer}
.public-private-btn:hover{background:var(--calm-gold);border-color:var(--calm-gold);color:#111}
.public-main{max-width:none;margin:0;padding:0}
.public-hero{
  position:relative;isolation:isolate;min-height:680px;
  background-image:url("assets/calm-hero.jpg");
  background-size:cover;background-position:center 48%;
  overflow:hidden;border-bottom:1px solid rgba(255,255,255,.1)
}
.public-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
 linear-gradient(90deg,rgba(4,6,8,.30),rgba(4,6,8,.04) 45%,rgba(4,6,8,.26)),
 linear-gradient(0deg,rgba(4,6,8,.90) 0%,rgba(4,6,8,.36) 28%,rgba(4,6,8,.02) 67%)}
.public-hero::after{content:"";position:absolute;right:-140px;top:-210px;width:590px;height:760px;z-index:-1;transform:rotate(28deg);border-left:1px solid rgba(241,189,59,.75);background:linear-gradient(135deg,rgba(241,189,59,.13),transparent 55%)}
.public-hero-shade{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 170px rgba(0,0,0,.2)}
.public-hero-content{position:relative;height:680px;max-width:1380px;margin:auto;padding:58px clamp(24px,5vw,76px) 62px;display:flex;flex-direction:column;color:#fff}
.public-hero-kicker{align-self:flex-start;background:rgba(7,9,12,.55);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(10px);border-radius:999px;padding:8px 13px;text-transform:uppercase;letter-spacing:.18em;font-size:10px;font-weight:800;color:#f5d277}
.public-hero-spacer{flex:1}
.public-hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);gap:38px;align-items:end}
.public-hero-tagline{display:grid;max-width:540px}
.public-hero-tagline strong{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-style:italic;font-size:clamp(31px,4.2vw,58px);line-height:.88;letter-spacing:-.03em;text-shadow:0 3px 18px rgba(0,0,0,.4)}
.public-hero-tagline strong:nth-child(2){margin-left:56px;color:#f5d277}
.public-hero-tagline strong:nth-child(3){margin-left:116px}
.public-hero-tagline span{margin-top:22px;font-size:11px;text-transform:uppercase;letter-spacing:.17em;color:#d2d3d5}
.public-hero-nextbox{background:rgba(5,7,10,.70);border:1px solid rgba(241,189,59,.45);backdrop-filter:blur(16px);border-radius:16px;padding:20px 22px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.public-hero-panel-label{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--calm-gold);font-weight:800;margin-bottom:10px}
.public-hero-next strong{display:block;font-size:20px;line-height:1.2;margin:5px 0 8px}.public-hero-next>div{font-size:12px;color:#d9dadd}.public-hero-next p{font-size:12px;color:#b9bcc2;line-height:1.5;margin:8px 0 0}.public-next-date{color:#fff!important;font-weight:800}
.public-feature-grid{position:relative;z-index:5;max-width:1380px;margin:-34px auto 0;padding:0 clamp(20px,3.5vw,50px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.public-feature-card{position:relative;min-height:226px;overflow:hidden;border:1px solid rgba(241,189,59,.42);border-radius:14px;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;text-align:left;color:#fff;text-decoration:none;background-color:#111;background-image:linear-gradient(0deg,rgba(5,6,8,.92),rgba(5,6,8,.12)),url("assets/calm-hero.jpg");background-size:420%;box-shadow:0 18px 45px rgba(12,15,19,.14);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.public-feature-card::before{content:"";position:absolute;left:20px;bottom:20px;top:62px;width:1px;background:linear-gradient(transparent,var(--calm-gold))}
.public-feature-card:hover{transform:translateY(-5px);border-color:var(--calm-gold);box-shadow:0 24px 58px rgba(12,15,19,.2)}
.feature-agenda{background-position:4% 55%}.feature-outings{background-position:38% 18%}.feature-expo{background-position:86% 54%}.feature-private{background-position:98% 90%}
.public-feature-icon{position:absolute;left:23px;top:22px;color:var(--calm-gold);font-size:26px;line-height:1}
.public-feature-copy{display:grid;padding-left:25px;position:relative;z-index:2}.public-feature-copy small{order:2;margin-top:10px;text-transform:uppercase;letter-spacing:.12em;line-height:1.55;font-size:9px;color:#d5d6d8}.public-feature-copy strong{order:1;font-family:Georgia,"Times New Roman",serif;font-size:27px;font-weight:400;line-height:1.05}
.public-feature-arrow{position:absolute;right:20px;bottom:19px;width:36px;height:36px;border:1px solid rgba(241,189,59,.7);border-radius:50%;display:grid;place-items:center;font-size:17px}
.public-section{max-width:1280px;margin:0 auto;padding:88px clamp(24px,4vw,56px)}
.public-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.public-section-head h2,.public-about h2,.public-expo-card h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,4vw,51px);font-weight:400;letter-spacing:-.035em;line-height:1.02;margin:8px 0 10px;color:#13161b}.public-section-head p,.public-about p{max-width:700px;color:#646a72;line-height:1.65;margin:0}
.public-eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:10px;font-weight:850;color:#a46b00}
.public-text-link{color:#17191d;text-decoration:none;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;border-bottom:1px solid #b58b33;padding-bottom:5px}
.public-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.public-stat{background:#fff;border:1px solid #ded8ca;border-radius:13px;padding:18px 20px;box-shadow:0 8px 26px rgba(25,20,12,.035)}.public-stat span{display:block;font-family:Georgia,"Times New Roman",serif;font-size:31px;line-height:1;font-weight:700}.public-stat small{display:block;margin-top:7px;text-transform:uppercase;letter-spacing:.08em;font-size:9px;color:#7b7f85}.public-stat-accent{background:#15191e;border-color:#15191e;color:#fff}.public-stat-accent small{color:#d5b768}
.public-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.public-event-card{position:relative;background:#fff;border:1px solid #ddd8cd;border-radius:14px;padding:21px;min-height:206px;box-shadow:0 10px 30px rgba(28,23,15,.045);overflow:hidden}.public-event-card::after{content:"";position:absolute;right:-38px;top:-50px;width:110px;height:110px;border:1px solid rgba(202,154,45,.22);transform:rotate(45deg)}.public-event-icon{font-size:24px;color:#b47b11;margin-bottom:24px}.public-event-date{font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:850;color:#9d6806}.public-event-card h3{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:400;line-height:1.15;margin:9px 0}.public-event-meta{font-size:11px;color:#72767d}.public-event-card p{font-size:13px;color:#555b63;line-height:1.55;margin:13px 0 0}
.public-full-agenda{margin-top:18px;background:#fff;border:1px solid #ddd8cd;border-radius:14px;overflow:hidden}.public-full-agenda summary{cursor:pointer;padding:16px 18px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.public-tablewrap{overflow:auto;border-top:1px solid #e3ded4}.public-tablewrap th{position:static;background:#f5f1e8;color:#52565d}.public-tablewrap td,.public-tablewrap th{border-bottom-color:#e7e2d8}
.public-section-dark{max-width:none;background:#0e1115;color:#fff;padding-left:max(clamp(24px,4vw,56px),calc((100vw - 1280px)/2 + 56px));padding-right:max(clamp(24px,4vw,56px),calc((100vw - 1280px)/2 + 56px))}
.public-section-dark .public-section-head h2{color:#fff}.public-section-dark .public-section-head p{color:#aeb2b8}.public-section-dark .public-eyebrow{color:var(--calm-gold)}
.public-timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-timeline-item{display:grid;grid-template-columns:108px 1fr;gap:20px;padding:20px;background:#171b20;border:1px solid #2b3037;border-radius:13px}.public-timeline-date{color:#f0c458;font-weight:850;font-size:12px}.public-timeline-item strong{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:19px}.public-section-dark .public-event-meta{color:#8d9299}.public-timeline-item p{font-size:12px;color:#b4b8bd;line-height:1.55;margin:8px 0 0}.public-empty{padding:24px;border:1px dashed #4a4f56;border-radius:13px;color:#9da2a8;background:rgba(255,255,255,.02)}
.public-expo-card{position:relative;overflow:hidden;min-height:320px;display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:40px;padding:45px 48px;border-radius:22px;color:#fff;background:
 linear-gradient(90deg,rgba(8,10,13,.97),rgba(8,10,13,.68) 58%,rgba(8,10,13,.23)),
 url("assets/calm-hero.jpg") right 54%/cover no-repeat;
 box-shadow:0 22px 60px rgba(15,13,9,.17)}
.public-expo-card h2{color:#fff}.public-expo-card .public-eyebrow{color:var(--calm-gold)}.public-expo-copy{position:relative;z-index:2;max-width:680px}.public-expo-copy p{color:#d1d3d6;line-height:1.6}.public-expo-gem{justify-self:center;width:170px;height:130px;clip-path:polygon(14% 0,86% 0,100% 32%,50% 100%,0 32%);border:1px solid var(--calm-gold);background:linear-gradient(135deg,rgba(241,189,59,.28),rgba(229,58,25,.18));box-shadow:0 0 70px rgba(241,189,59,.14);opacity:.85}
.public-about{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:55px;align-items:start}.public-pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.public-pill-row span{border:1px solid #d6cfbf;background:#fff;border-radius:999px;padding:8px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#565a60}
.public-about-card{background:#15191e;color:#fff;border-radius:18px;padding:28px;border:1px solid #282d34;box-shadow:0 18px 48px rgba(15,13,9,.13)}.public-about-card strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:400;margin:16px 0 8px}.public-about-card p{color:#b4b8bd;font-size:13px}.public-lock{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d5aa49;color:#edc45f;border-radius:50%}.public-gold-btn{margin-top:18px;border:1px solid var(--calm-gold);background:var(--calm-gold);color:#151515;border-radius:999px;padding:11px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:850;cursor:pointer}
.public-footer{min-height:110px;background:#080a0d;color:#d7d8da;padding:25px clamp(24px,4.2vw,68px);display:grid;grid-template-columns:1fr auto 1fr;gap:25px;align-items:center;border-top:1px solid #272a2e}.public-footer-brand{display:flex;align-items:center;gap:11px}.public-footer-brand div{display:grid}.public-footer-brand strong{color:#fff}.public-footer-brand span{font-size:10px;color:#858a91;margin-top:3px}.public-footer-note{text-transform:uppercase;letter-spacing:.13em;font-size:9px;color:#ac8e49}.public-footer>button{justify-self:end;background:transparent;color:#fff;border:1px solid #4b4f55;border-radius:999px;padding:9px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.archive-tablewrap{max-height:none!important;overflow-x:auto!important;overflow-y:visible!important}

/* Connexion privée harmonisée avec l'accueil */
.auth-shell{background:
 linear-gradient(rgba(5,7,10,.68),rgba(5,7,10,.88)),
 url("assets/calm-hero.jpg") center/cover fixed!important}
.auth-card{border:1px solid rgba(241,189,59,.32)!important;box-shadow:0 30px 90px rgba(0,0,0,.46)!important}
.brand-auth .logo{background:linear-gradient(145deg,#ffe100,#e3361c)!important;color:#111!important}

/* Responsive */
@media(max-width:1060px){
  .public-topbar{grid-template-columns:1fr auto}.public-nav{display:none}
  .public-feature-grid{grid-template-columns:repeat(2,1fr)}
  .public-hero{min-height:620px}.public-hero-content{height:620px}
  .public-event-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .public-topbar{height:64px;padding:0 16px}.public-brand-text small{display:none}.public-brand-text strong{font-size:18px}.public-private-btn{padding:9px 11px;font-size:9px}
  .public-hero{min-height:570px;background-position:center 44%}.public-hero-content{height:570px;padding:35px 18px 46px}
  .public-hero-bottom{grid-template-columns:1fr;gap:18px}.public-hero-tagline strong{font-size:38px}.public-hero-tagline strong:nth-child(2){margin-left:30px}.public-hero-tagline strong:nth-child(3){margin-left:60px}.public-hero-tagline span{display:none}
  .public-hero-nextbox{padding:15px 16px}
  .public-feature-grid{margin:-24px auto 0;padding:0 14px;grid-template-columns:1fr 1fr;gap:8px}.public-feature-card{min-height:180px;padding:16px;background-size:500%}.public-feature-copy{padding-left:16px}.public-feature-copy strong{font-size:20px}.public-feature-copy small{font-size:8px}.public-feature-card::before{left:15px;top:55px;bottom:15px}.public-feature-icon{left:17px;top:17px;font-size:21px}.public-feature-arrow{right:14px;bottom:14px;width:30px;height:30px}
  .public-section{padding:64px 18px}.public-section-head{align-items:start;flex-direction:column}.public-section-head h2,.public-about h2,.public-expo-card h2{font-size:36px}
  .public-stats{grid-template-columns:1fr}.public-event-grid{grid-template-columns:1fr}
  .public-section-dark{padding:64px 18px}.public-timeline{grid-template-columns:1fr}.public-timeline-item{grid-template-columns:1fr;gap:7px}
  .public-expo-card{grid-template-columns:1fr;padding:30px 24px;min-height:300px}.public-expo-gem{display:none}
  .public-about{grid-template-columns:1fr;gap:24px}
  .public-footer{grid-template-columns:1fr;gap:16px}.public-footer-note{display:none}.public-footer>button{justify-self:start}
}
@media(max-width:440px){
  .public-feature-grid{grid-template-columns:1fr}.public-feature-card{min-height:156px;background-size:390%}
  .public-hero-tagline strong{font-size:34px}
}


/* CALM — rôles, droits et espace membre */
.member-space-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.member-space-card{position:relative;overflow:hidden;min-height:245px}
.member-space-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#fff8df;color:#9b6b00;border:1px solid #ecd58c;font-size:22px;margin-bottom:16px}
.member-space-name{font-size:25px;font-weight:800;margin:8px 0 4px}.member-space-meta{font-size:12px;color:var(--muted);margin-bottom:18px}
.member-space-lines{display:grid;gap:8px;margin:15px 0}.member-space-lines span{display:flex;gap:10px;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:7px;font-size:12px}.member-space-lines strong{color:#475467}
.member-fee-status{display:inline-flex;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;margin:10px 0}.member-fee-status.paid{background:#ecfdf3;color:#087443}.member-fee-status.pending{background:#fff5e8;color:#a15c00}
.member-space-help{max-width:850px}.member-space-help p{color:var(--muted);line-height:1.65}
.rights-card{margin-top:14px}.rights-tablewrap{overflow:auto}.rights-table{min-width:720px}.rights-table th,.rights-table td{text-align:center}.rights-table th:first-child,.rights-table td:first-child{text-align:left;font-weight:700}
.member-link-required>span.field-note{color:#b54708;font-weight:650}
#usersBody select{max-width:220px}
@media(max-width:800px){.member-space-grid{grid-template-columns:1fr}}


/* CALM — matrice des droits modifiable */
.rights-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}
.rights-head h3{margin:0 0 5px}.rights-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.danger-outline{border:1px solid #d92d20!important;color:#b42318!important;background:#fff!important}
.danger-outline:hover{background:#fff2f0!important}
.rights-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 14px;margin:13px 0;background:#f8fafc;border:1px solid var(--line);border-radius:10px;font-size:11px;color:#667085}
.rights-table td{vertical-align:middle}.rights-table td:not(:first-child){min-width:145px}.permission-select{width:100%;min-width:125px}
.permission-locked{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef4ff;color:#1849a9;padding:7px 10px;font-size:11px;font-weight:800}
.rights-footnote{margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:#667085}
#rightsMessage{margin:12px 0}
@media(max-width:900px){.rights-head{flex-direction:column}.rights-actions{justify-content:flex-start}}


/* CALM — invitation utilisateur par sélection d'un membre */
#inviteMemberPicker{font-weight:700}
#inviteDisplayName[readonly]{background:#f8fafc;color:#475467}
.invite-member-summary{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto auto;
  gap:10px;
  align-items:center;
  padding:11px 13px;
  border:1px solid #dbe5f3;
  background:#f7faff;
  border-radius:10px;
  font-size:11px;
}
.invite-member-summary strong{font-size:12px;color:#172b4d}
.invite-member-summary span{color:#667085}
@media(max-width:720px){
  .invite-member-summary{grid-template-columns:1fr}
}


/* CALM — Accès & droits consultable en lecture */
.permission-readonly{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:88px;
  border-radius:999px;
  padding:7px 10px;
  background:#f2f4f7;
  color:#344054;
  font-size:11px;
  font-weight:750;
}
.message.info{
  background:#eff8ff;
  border:1px solid #b2ddff;
  color:#175cd3;
}


/* CALM — actions d'accès utilisateur */
.user-access-actions{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:190px;
}
.user-access-actions button{
  width:100%;
  white-space:nowrap;
  font-size:11px;
  padding:7px 10px;
}
.user-access-actions button:first-child{
  border-color:#b2ccff;
  background:#f5f8ff;
  color:#1849a9;
}
.user-access-actions button:last-child{
  border-color:#d0d5dd;
  background:#fff;
  color:#344054;
}
#userAccessMessage{
  margin:12px 0;
}
@media(max-width:900px){
  .user-access-actions{min-width:155px}
  .user-access-actions button{white-space:normal}
}


/* CALM — Comptabilité & bilan */
.accounting-head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.accounting-head-actions select{min-width:110px}
.accounting-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.accounting-kpis .kpi{min-height:130px}
.accounting-kpis .value{font-size:27px}
.link-button{border:0;background:transparent;padding:5px 0;color:#2458d3;font-size:11px;text-align:left}
.accounting-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:14px}
.accounting-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px 220px;gap:8px;margin-bottom:12px}
.accounting-tablewrap{max-height:620px}
.amount-income{font-weight:800;color:#087443;white-space:nowrap}
.amount-expense{font-weight:800;color:#b42318;white-space:nowrap}
.negative-value{color:#b42318!important}
.accounting-summary-card{align-self:start}
.accounting-summary-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.accounting-summary-row>span{font-weight:800;white-space:nowrap}
.accounting-note{margin-top:16px;padding:12px;border-radius:10px;background:#f8fafc;border:1px solid var(--line);font-size:11px;line-height:1.55;color:#667085}
#accountingDialog{width:min(760px,94vw)}
#openingBalanceDialog{width:min(520px,94vw)}
@media(max-width:1200px){
  .accounting-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .accounting-layout{grid-template-columns:1fr}
}
@media(max-width:800px){
  .accounting-kpis{grid-template-columns:1fr 1fr}
  .accounting-toolbar{grid-template-columns:1fr}
}


/* CALM — Archives comptables PDF */
.accounting-docs-card{margin-top:14px}
.accounting-docs-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}
.accounting-docs-head h3{margin:0 0 5px}
.accounting-docs-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.accounting-docs-actions select{min-width:210px}
.accounting-docs-tablewrap{max-height:520px}
#accountingDocDialog{width:min(700px,94vw)}
@media(max-width:850px){
  .accounting-docs-head{flex-direction:column}
  .accounting-docs-actions{width:100%}
  .accounting-docs-actions select,.accounting-docs-actions button{width:100%}
}


/* CALM — Mailing liste des membres actifs */
.pagehead-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
#mailingListDialog{width:min(850px,95vw)}
.mailing-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.mailing-controls label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#344054}
.mailing-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.mailing-stat{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.mailing-stat strong{display:block;font-size:22px;color:#101828}
.mailing-stat span{font-size:10px;color:#667085}
.mailing-textarea-label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#344054}
#mailingListText{width:100%;font-family:Consolas,"Courier New",monospace;font-size:12px;line-height:1.55;resize:vertical;background:#fbfcfe}
.mailing-warnings{display:grid;gap:7px;margin-top:12px;font-size:10px;color:#667085;line-height:1.45}
.mailing-warnings>div{padding:9px 10px;background:#fffaf0;border:1px solid #fedf89;border-radius:8px}
@media(max-width:760px){
  .mailing-controls{grid-template-columns:1fr}
  .mailing-summary{grid-template-columns:1fr 1fr}
  .pagehead-actions{width:100%}
  .pagehead-actions button{flex:1}
}


/* CALM — Extraits de compte PDF */
.accounting-statements-card{margin-top:14px}
.accounting-statements-tablewrap{max-height:560px}
#accountingStatementSearch{min-width:235px}
#accountingStatementDialog{width:min(760px,95vw)}
@media(max-width:850px){
  #accountingStatementSearch{width:100%;min-width:0}
}

/* =====================================================================
   CALM — HEADER PUBLIC V2
   Corrige le menu blanc et utilise le symbole CALM complet.
   ===================================================================== */
.public-site .public-topbar{
  height:86px!important;
  min-height:86px!important;
  padding:0 clamp(22px,3.4vw,58px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:28px!important;
  background:rgba(10,12,16,.97)!important;
  border-bottom:1px solid rgba(241,189,59,.20)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.24)!important;
  backdrop-filter:blur(18px)!important;
}

.public-site .public-brand{
  flex:0 0 auto!important;
  min-width:330px!important;
  display:flex!important;
  align-items:center!important;
  gap:15px!important;
  color:#fff!important;
  text-decoration:none!important;
}

.public-site .public-gem{
  width:62px!important;
  height:46px!important;
  flex:0 0 62px!important;
  clip-path:none!important;
  background:url("assets/calm-logo-mark.png") center/contain no-repeat!important;
  filter:drop-shadow(0 3px 10px rgba(241,189,59,.30))!important;
}

.public-site .public-gem.small{
  width:46px!important;
  height:34px!important;
  flex-basis:46px!important;
}

.public-site .public-brand-text{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  min-width:0!important;
  line-height:1!important;
}

.public-site .public-brand-text strong{
  color:#fff!important;
  font-size:29px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:.015em!important;
  white-space:nowrap!important;
}

.public-site .public-brand-text em{
  color:#d7d9de!important;
  font-style:normal!important;
  font-size:15px!important;
  font-weight:550!important;
  margin-left:4px!important;
}

.public-site .public-brand-text small{
  display:block!important;
  margin-top:7px!important;
  color:#aeb4bd!important;
  font-size:10px!important;
  line-height:1.2!important;
  letter-spacing:.10em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

/* Important : neutralise la règle générale "nav { background:#fff ... }"
   qui provoquait le grand rectangle blanc vu sur le site public. */
.public-site nav.public-nav{
  flex:1 1 auto!important;
  min-width:0!important;
  width:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(16px,2.1vw,31px)!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  border-right:0!important;
  border-bottom:0!important;
  padding:0!important;
  margin:0!important;
}

.public-site .public-nav a{
  position:relative!important;
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  min-height:86px!important;
  padding:3px 0 0!important;
  color:#f2f3f5!important;
  background:transparent!important;
  text-decoration:none!important;
  text-transform:uppercase!important;
  letter-spacing:.11em!important;
  font-size:10.5px!important;
  line-height:1!important;
  font-weight:780!important;
  white-space:nowrap!important;
  opacity:.92!important;
  transition:color .18s ease,opacity .18s ease!important;
}

.public-site .public-nav a::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:100%!important;
  bottom:17px!important;
  height:3px!important;
  border-radius:999px!important;
  background:var(--calm-gold)!important;
  transition:right .2s ease!important;
}

.public-site .public-nav a:hover{
  color:#fff!important;
  opacity:1!important;
}
.public-site .public-nav a:hover::after{
  right:48%!important;
}
.public-site .public-nav a.active{
  color:var(--calm-gold-2)!important;
  opacity:1!important;
}
.public-site .public-nav a.active::after{
  right:0!important;
}

.public-site .public-private-btn{
  flex:0 0 auto!important;
  justify-self:auto!important;
  margin-left:auto!important;
  border:1px solid rgba(241,189,59,.85)!important;
  background:rgba(255,255,255,.02)!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:11px 17px!important;
  font-size:10px!important;
  line-height:1!important;
  text-transform:uppercase!important;
  letter-spacing:.10em!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.public-site .public-private-btn:hover{
  color:#111!important;
  background:var(--calm-gold)!important;
  border-color:var(--calm-gold)!important;
}

/* Évite qu'une règle générale du back-office transforme le menu public. */
.public-site .public-topbar nav,
.public-site .public-topbar nav *{
  box-sizing:border-box!important;
}

@media(max-width:1300px){
  .public-site .public-topbar{gap:20px!important;padding-left:25px!important;padding-right:25px!important}
  .public-site .public-brand{min-width:275px!important;gap:12px!important}
  .public-site .public-gem{width:54px!important;height:41px!important;flex-basis:54px!important}
  .public-site .public-brand-text strong{font-size:24px!important}
  .public-site .public-brand-text em{font-size:13px!important}
  .public-site .public-brand-text small{font-size:8.5px!important;letter-spacing:.075em!important}
  .public-site nav.public-nav{gap:16px!important}
  .public-site .public-nav a{font-size:9.3px!important;letter-spacing:.09em!important}
  .public-site .public-private-btn{padding:10px 13px!important;font-size:9px!important}
}

@media(max-width:1060px){
  .public-site .public-topbar{
    height:72px!important;
    min-height:72px!important;
    padding:0 20px!important;
    gap:16px!important;
  }
  .public-site nav.public-nav{display:none!important}
  .public-site .public-brand{min-width:0!important}
  .public-site .public-gem{width:50px!important;height:37px!important;flex-basis:50px!important}
  .public-site .public-brand-text strong{font-size:22px!important}
  .public-site .public-brand-text small{font-size:8px!important}
}

@media(max-width:620px){
  .public-site .public-topbar{padding:0 14px!important}
  .public-site .public-brand{gap:9px!important}
  .public-site .public-gem{width:44px!important;height:33px!important;flex-basis:44px!important}
  .public-site .public-brand-text strong{font-size:19px!important}
  .public-site .public-brand-text small{display:none!important}
  .public-site .public-private-btn{padding:9px 10px!important;font-size:8.5px!important}
}
/* ====================== FIN HEADER PUBLIC V2 ====================== */

/* =====================================================================
   CALM — HEADER PUBLIC V3 — priorité maximale
   ===================================================================== */
body #publicView.public-site > header.public-topbar{
  height:86px!important;
  min-height:86px!important;
  padding:0 clamp(22px,3.4vw,58px)!important;
  display:grid!important;
  grid-template-columns:minmax(315px,1fr) auto minmax(180px,1fr)!important;
  align-items:center!important;
  gap:28px!important;
  background:#101317!important;
  border:0!important;
  border-bottom:1px solid rgba(241,189,59,.20)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.24)!important;
  overflow:visible!important;
}

body #publicView.public-site > header.public-topbar > a.public-brand{
  justify-self:start!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  min-width:0!important;
  color:#fff!important;
  background:transparent!important;
  text-decoration:none!important;
}

body #publicView .public-gem{
  width:62px!important;
  height:48px!important;
  min-width:62px!important;
  flex:0 0 62px!important;
  clip-path:none!important;
  background-image:url("assets/calm-logo-mark.png?v=20260924-2308")!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:contain!important;
  filter:drop-shadow(0 3px 9px rgba(241,189,59,.25))!important;
}

body #publicView .public-brand-text{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  min-width:0!important;
}

body #publicView .public-brand-text strong{
  color:#fff!important;
  font-size:29px!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:.015em!important;
  white-space:nowrap!important;
}

body #publicView .public-brand-text em{
  color:#d7d9de!important;
  font-style:normal!important;
  font-size:15px!important;
  font-weight:550!important;
  margin-left:4px!important;
}

body #publicView .public-brand-text small{
  display:block!important;
  margin-top:7px!important;
  color:#aeb4bd!important;
  font-size:10px!important;
  line-height:1.2!important;
  letter-spacing:.10em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

/* Neutralise définitivement le nav blanc du back-office. */
body #publicView.public-site > header.public-topbar > nav.public-nav{
  position:static!important;
  justify-self:center!important;
  align-self:stretch!important;
  width:auto!important;
  min-width:0!important;
  height:86px!important;
  min-height:86px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(18px,2.0vw,31px)!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  border-right:0!important;
  border-bottom:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}

body #publicView.public-site > header.public-topbar > nav.public-nav > a{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:auto!important;
  min-width:0!important;
  height:86px!important;
  min-height:86px!important;
  margin:0!important;
  padding:2px 0 0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#f0f1f3!important;
  text-decoration:none!important;
  text-transform:uppercase!important;
  letter-spacing:.11em!important;
  font-size:10.5px!important;
  line-height:1!important;
  font-weight:800!important;
  white-space:nowrap!important;
  opacity:.92!important;
}

body #publicView.public-site > header.public-topbar > nav.public-nav > a::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:100%!important;
  bottom:18px!important;
  height:3px!important;
  border-radius:999px!important;
  background:#f1bd3b!important;
  transition:right .18s ease!important;
}

body #publicView.public-site > header.public-topbar > nav.public-nav > a:hover{
  color:#fff!important;
  opacity:1!important;
}
body #publicView.public-site > header.public-topbar > nav.public-nav > a:hover::after{
  right:45%!important;
}
body #publicView.public-site > header.public-topbar > nav.public-nav > a.active{
  color:#ffd969!important;
  opacity:1!important;
}
body #publicView.public-site > header.public-topbar > nav.public-nav > a.active::after{
  right:0!important;
}

body #publicView.public-site > header.public-topbar > button.public-private-btn{
  justify-self:end!important;
  align-self:center!important;
  margin:0!important;
  border:1px solid rgba(241,189,59,.82)!important;
  background:transparent!important;
  color:#fff!important;
  border-radius:999px!important;
  padding:11px 18px!important;
  font-size:10px!important;
  line-height:1!important;
  text-transform:uppercase!important;
  letter-spacing:.10em!important;
  font-weight:800!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
body #publicView.public-site > header.public-topbar > button.public-private-btn:hover{
  background:#f1bd3b!important;
  color:#111!important;
}

@media(max-width:1250px){
  body #publicView.public-site > header.public-topbar{
    grid-template-columns:minmax(260px,1fr) auto minmax(150px,1fr)!important;
    gap:18px!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }
  body #publicView .public-gem{width:54px!important;height:42px!important;min-width:54px!important;flex-basis:54px!important}
  body #publicView .public-brand-text strong{font-size:24px!important}
  body #publicView .public-brand-text em{font-size:13px!important}
  body #publicView .public-brand-text small{font-size:8.5px!important;letter-spacing:.075em!important}
  body #publicView.public-site > header.public-topbar > nav.public-nav{gap:16px!important}
  body #publicView.public-site > header.public-topbar > nav.public-nav > a{font-size:9.3px!important;letter-spacing:.085em!important}
}

@media(max-width:1060px){
  body #publicView.public-site > header.public-topbar{
    height:72px!important;
    min-height:72px!important;
    grid-template-columns:1fr auto!important;
    padding:0 18px!important;
  }
  body #publicView.public-site > header.public-topbar > nav.public-nav{display:none!important}
  body #publicView .public-gem{width:50px!important;height:38px!important;min-width:50px!important;flex-basis:50px!important}
  body #publicView .public-brand-text strong{font-size:22px!important}
}

@media(max-width:620px){
  body #publicView.public-site > header.public-topbar{padding:0 13px!important}
  body #publicView .public-gem{width:44px!important;height:34px!important;min-width:44px!important;flex-basis:44px!important}
  body #publicView .public-brand-text strong{font-size:19px!important}
  body #publicView .public-brand-text small{display:none!important}
  body #publicView.public-site > header.public-topbar > button.public-private-btn{padding:9px 10px!important;font-size:8.5px!important}
}
/* ====================== FIN HEADER PUBLIC V3 ====================== */

/* CALM_MAIL_TOOLS_CSS_START */
.top-actions .top-mail-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:8px 12px;border:1px solid var(--line);
  border-radius:8px;background:#fff;color:var(--text);text-decoration:none;
  font-size:13px;font-weight:700;white-space:nowrap
}
.top-actions .top-mail-link:hover{border-color:var(--accent);color:var(--accent)}
.mail-dialog{width:min(860px,95vw);max-height:92vh}
.mail-dialog .modalbody{max-height:72vh;overflow:auto}
.mail-info-banner{padding:12px 14px;margin-bottom:14px;border:1px solid #e6cf84;border-left:4px solid #d7a72b;border-radius:9px;background:#fffaf0;line-height:1.5}
.mail-info-banner span{font-size:12px;color:var(--muted)}
.mail-grid{align-items:start}
.mail-recipient-summary{display:flex;flex-direction:column;justify-content:center;min-height:72px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.mail-recipient-summary strong{font-size:26px;line-height:1;color:var(--accent)}
.mail-recipient-summary>span{margin-top:4px;font-size:12px;font-weight:700}
.mail-event-summary{display:flex;flex-direction:column;gap:4px;padding:14px 16px;margin-bottom:14px;border:1px solid #ead28b;border-left:4px solid #d9a928;border-radius:10px;background:#fffaf0}
.mail-event-summary strong{font-size:17px}
.mail-event-summary span{font-size:13px;color:var(--muted)}
.mail-history{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.mail-history h4{margin:0 0 10px}
.mail-history-list{display:grid;gap:8px}
.mail-history-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.mail-history-item>div:nth-child(2){font-size:12px;color:var(--muted);white-space:nowrap}
@media(max-width:1050px){.top-actions{flex-wrap:wrap}}
@media(max-width:720px){.mail-history-item{grid-template-columns:1fr}.mail-dialog .modalfoot{flex-wrap:wrap}.top-actions .top-mail-link{width:100%}}
/* CALM_MAIL_TOOLS_CSS_END */

/* === CALM PREMIUM CARDS + RETURN HOME V3 START === */
/* ==========================================================================
   CALM — CARTES PREMIUM + RETOUR ACCUEIL V3
   ========================================================================== */

body #publicView .public-feature-grid.public-feature-grid-premium-v3{
  position:relative!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  width:100%!important;
  margin:0!important;
  padding:28px 32px 34px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 18% 15%,rgba(241,189,59,.11),transparent 28%),
    radial-gradient(circle at 84% 10%,rgba(50,151,160,.08),transparent 25%),
    linear-gradient(145deg,#14181c 0%,#0b0e11 50%,#15191d 100%)!important;
  border-top:1px solid rgba(241,189,59,.15)!important;
  border-bottom:1px solid rgba(241,189,59,.12)!important;
}

body #publicView .public-feature-card{
  position:relative!important;
  isolation:isolate!important;
  display:block!important;
  min-width:0!important;
  height:340px!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(241,189,59,.76)!important;
  border-radius:22px!important;
  text-align:left!important;
  text-decoration:none!important;
  color:#fff!important;
  background-color:#101317!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 16px 36px rgba(0,0,0,.30),inset 0 0 0 1px rgba(255,255,255,.025)!important;
  transform:translateY(0)!important;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,filter .28s ease,background-size .45s ease!important;
}

body #publicView button.public-feature-card{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  font:inherit!important;
  cursor:pointer!important;
}

body #publicView .public-feature-card.feature-agenda{
  background-image:url("assets/feature-agenda-v3.jpg")!important;
  background-position:50% 46%!important;
}
body #publicView .public-feature-card.feature-outings{
  background-image:url("assets/feature-outings-v3.jpg")!important;
  background-position:55% 45%!important;
}
body #publicView .public-feature-card.feature-expo{
  background-image:url("assets/feature-expo-v3.jpg")!important;
  background-position:52% 46%!important;
}
body #publicView .public-feature-card.feature-private{
  background-image:url("assets/feature-private-v3.jpg")!important;
  background-position:55% 46%!important;
  border-color:rgba(247,198,73,.94)!important;
  box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 28px rgba(241,189,59,.09),inset 0 0 0 1px rgba(255,255,255,.035)!important;
}

body #publicView .public-feature-card::before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  inset:0!important;
  pointer-events:none!important;
  background:
    linear-gradient(180deg,rgba(6,8,10,.08) 0%,rgba(6,8,10,.10) 28%,rgba(6,8,10,.58) 64%,rgba(4,6,8,.96) 100%),
    linear-gradient(90deg,rgba(6,8,10,.24) 0%,rgba(6,8,10,.02) 74%)!important;
}

body #publicView .public-feature-card::after{
  content:""!important;
  position:absolute!important;
  z-index:5!important;
  inset:0!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),inset 0 0 38px rgba(0,0,0,.09)!important;
}

body #publicView .public-feature-card:hover,
body #publicView .public-feature-card:focus-visible{
  transform:translateY(-6px)!important;
  background-size:106%!important;
  border-color:#f3c34d!important;
  filter:saturate(1.05) contrast(1.02)!important;
  box-shadow:0 24px 48px rgba(0,0,0,.40),0 0 32px rgba(241,189,59,.14)!important;
  outline:none!important;
}

body #publicView .public-feature-icon{
  position:absolute!important;
  z-index:3!important;
  top:29px!important;
  left:30px!important;
  width:31px!important;
  height:31px!important;
  display:grid!important;
  place-items:center!important;
  color:#efbd3e!important;
}
body #publicView .public-feature-icon svg{
  width:29px!important;
  height:29px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.6!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  filter:drop-shadow(0 2px 5px rgba(241,189,59,.20))!important;
}
body #publicView .public-feature-accent{
  position:absolute!important;
  z-index:3!important;
  top:75px!important;
  left:31px!important;
  width:1px!important;
  height:82px!important;
  background:linear-gradient(180deg,#efbd3e,rgba(239,189,62,.18))!important;
}
body #publicView .public-feature-content{
  position:absolute!important;
  z-index:4!important;
  left:30px!important;
  right:26px!important;
  bottom:27px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  color:#fff!important;
}
body #publicView .public-feature-content > strong{
  display:block!important;
  margin:0!important;
  color:#fff!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(30px,2.1vw,40px)!important;
  font-weight:500!important;
  line-height:1.02!important;
  letter-spacing:-.025em!important;
  text-shadow:0 3px 18px rgba(0,0,0,.50)!important;
}
body #publicView .public-feature-rule{
  display:block!important;
  width:28px!important;
  height:2px!important;
  margin:14px 0 11px!important;
  border-radius:999px!important;
  background:#efbd3e!important;
}
body #publicView .public-feature-content > small{
  display:block!important;
  min-height:29px!important;
  margin:0 0 15px!important;
  color:rgba(246,245,240,.82)!important;
  font-size:11px!important;
  font-weight:650!important;
  line-height:1.4!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  text-shadow:0 2px 12px rgba(0,0,0,.55)!important;
}
body #publicView .public-feature-cta{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  min-width:190px!important;
  height:50px!important;
  padding:0 8px 0 25px!important;
  border:1.5px solid rgba(241,189,59,.94)!important;
  border-radius:999px!important;
  background:rgba(7,9,11,.58)!important;
  color:#f7f3e9!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  font-size:10px!important;
  font-weight:750!important;
  letter-spacing:.24em!important;
  text-transform:uppercase!important;
  box-shadow:0 7px 20px rgba(0,0,0,.20)!important;
}
body #publicView .public-feature-cta > span{
  width:36px!important;
  height:36px!important;
  flex:0 0 36px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(241,189,59,.68)!important;
  border-radius:50%!important;
  color:#efbd3e!important;
  font-family:Arial,sans-serif!important;
  font-size:21px!important;
  line-height:1!important;
  letter-spacing:0!important;
  transition:transform .25s ease,background .25s ease,box-shadow .25s ease!important;
}
body #publicView .public-feature-card:hover .public-feature-cta > span,
body #publicView .public-feature-card:focus-visible .public-feature-cta > span{
  transform:translateX(2px)!important;
  background:rgba(241,189,59,.10)!important;
  box-shadow:0 0 17px rgba(241,189,59,.18)!important;
}

/* Retour Accueil dans la barre privée */
body #appView .return-home-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:42px!important;
  padding:0 14px!important;
  border:1px solid #d6a52d!important;
  border-radius:11px!important;
  background:linear-gradient(180deg,#fffefb 0%,#fff9e9 100%)!important;
  color:#97680d!important;
  font-size:14px!important;
  font-weight:750!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  box-shadow:0 2px 7px rgba(133,91,8,.07)!important;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease!important;
}
body #appView .return-home-btn:hover,
body #appView .return-home-btn:focus-visible{
  transform:translateY(-1px)!important;
  background:#fff6dc!important;
  box-shadow:0 5px 14px rgba(133,91,8,.13)!important;
  outline:none!important;
}
body #appView .return-home-btn .home-ico{
  font-size:16px!important;
  line-height:1!important;
}

@media (max-width:1180px){
  body #publicView .public-feature-grid.public-feature-grid-premium-v3{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body #publicView .public-feature-card{height:325px!important;}
}
@media (max-width:680px){
  body #publicView .public-feature-grid.public-feature-grid-premium-v3{grid-template-columns:1fr!important;gap:14px!important;padding:18px 16px 24px!important;}
  body #publicView .public-feature-card{height:310px!important;border-radius:18px!important;}
  body #publicView .public-feature-icon{top:24px!important;left:24px!important;}
  body #publicView .public-feature-accent{top:68px!important;left:25px!important;height:65px!important;}
  body #publicView .public-feature-content{left:24px!important;right:22px!important;bottom:23px!important;}
  body #publicView .public-feature-content > strong{font-size:34px!important;}
}
@media (max-width:1500px){
  body #appView .return-home-btn{padding:0 10px!important;font-size:12px!important;}
}
@media (prefers-reduced-motion:reduce){
  body #publicView .public-feature-card,
  body #publicView .public-feature-cta > span,
  body #appView .return-home-btn{transition:none!important;}
}

/* === CALM PREMIUM CARDS + RETURN HOME V3 END === */
