/* Nivis 5 — UI événementielle native
 * Page dédiée, desktop et mobile séparés par media queries.
 * Cette feuille ne modifie pas les autres onglets.
 */
.events-native,
.event-detail-native {
  --event-warm: #d93845;
  --event-warm-deep: #a82b35;
  --event-warm-soft: #fff0ef;
  --event-cold: #277dc7;
  --event-cold-deep: #1c639f;
  --event-cold-soft: #eaf4fd;
  --event-neutral: #6d7785;
  --event-neutral-soft: #f0f3f6;
  --event-green: #1f9b5f;
  --event-green-soft: #eaf8ef;
  --event-night: #7557b7;
  --event-day: #e38222;
  --event-amplitude: #7354a6;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
}

.events-page-heading {
  margin: 0 0 22px;
  padding: 4px 2px 0;
}
.events-eyebrow,
.events-section-heading > span,
.event-section-header > span,
.event-documentation-card > header > span {
  display: block;
  margin-bottom: 7px;
  color: #24718e;
  font-size: .72rem;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .085em;
  text-transform: uppercase;
}
.events-page-heading h1 {
  margin: 0;
  font-size: clamp(2.35rem, 5vw, 3.35rem);
  line-height: 1;
  letter-spacing: -.045em;
}
.events-page-heading p { max-width: 760px; margin: 10px 0 0; color: var(--ink-soft); }

.events-importance-tabs,
.events-view-tabs,
.event-detail-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #e5eef4;
}
.events-importance-tabs { margin-bottom: 12px; }
.events-importance-tabs button,
.events-view-tabs button,
.event-detail-tabs button {
  min-height: 42px;
  padding: 0 17px;
  border: 0;
  border-radius: 11px;
  color: #536c7b;
  background: transparent;
  font-weight: 800;
  cursor: pointer;
  transition: background .16s ease, color .16s ease, box-shadow .16s ease;
}
.events-importance-tabs button.active,
.events-view-tabs button.active,
.event-detail-tabs button.active {
  color: #fff;
  background: #2178d1;
  box-shadow: 0 7px 16px rgba(33,120,209,.22);
}

.events-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 220px) minmax(160px, 200px) 1fr;
  gap: 12px;
  align-items: end;
  padding: 13px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 7px 22px rgba(40,68,84,.04);
}
.events-toolbar label { display: grid; gap: 5px; }
.events-toolbar label > span { color: var(--ink-soft); font-size: .72rem; font-weight: 800; }
.events-toolbar select {
  width: 100%; min-height: 42px; padding: 0 36px 0 12px;
  border: 1px solid var(--line-strong); border-radius: 11px;
  color: var(--ink); background: #fff; font-weight: 700;
}
.events-view-tabs { justify-self: end; }
.events-reference-line { margin: 10px 2px 14px; color: var(--ink-soft); font-size: .78rem; }
.events-native-message { margin: 14px 0; padding: 14px 16px; border: 1px solid #edc1c5; border-radius: 13px; background: #fff3f4; color: #803b43; }
.events-list-heading { margin: 0 0 9px; font-size: 1.08rem; }
.events-list { display: grid; gap: 12px; }

.event-list-card {
  position: relative;
  display: grid;
  grid-template-columns: 110px minmax(260px, 1fr) minmax(360px, 450px) 92px;
  gap: 18px;
  align-items: center;
  min-height: 132px;
  padding: 14px 15px 14px 18px;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 8px 24px rgba(40,68,84,.05);
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.event-list-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--event-neutral); }
.event-list-card.tone-warm::before { background: var(--event-warm); }
.event-list-card.tone-cold::before { background: var(--event-cold); }
.event-list-card:hover { transform: translateY(-2px); border-color: #aac7d9; box-shadow: 0 13px 30px rgba(40,68,84,.09); }
.event-list-icon { width: 96px; height: 96px; display: grid; place-items: center; }
.event-list-icon img { width: 94px; height: 94px; object-fit: contain; filter: drop-shadow(0 7px 9px rgba(35,69,86,.10)); }
.event-list-main { min-width: 0; }
.event-list-title { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.event-list-title h3 { margin: 0; font-size: 1.16rem; letter-spacing: -.025em; }
.event-list-main p { margin: 5px 0 0; color: var(--ink-soft); font-size: .83rem; }
.event-status { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; background: #eef3f6; color: #607583; font-size: .64rem; font-weight: 850; text-transform: uppercase; }
.event-status.status-ongoing { background: #e4f5e9; color: #2d7d50; }
.event-list-metrics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.event-list-metrics > span { min-width: 0; min-height: 74px; display: grid; align-content: center; padding: 9px 11px; border-radius: 12px; background: #f4f7f9; }
.event-list-metrics small { color: #6c818e; font-size: .64rem; font-weight: 850; text-transform: uppercase; }
.event-list-metrics strong { margin-top: 1px; overflow-wrap: anywhere; font-size: 1.02rem; line-height: 1.1; }
.event-list-metrics em { margin-top: 4px; color: #1f668b; font-size: .68rem; font-style: normal; font-weight: 800; }
.event-list-open { justify-self: end; display: inline-flex; align-items: center; gap: 5px; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: 10px; color: #1c5c7d; background: #fff; font-size: .78rem; white-space: nowrap; }

.events-section-card,
.event-section {
  margin-bottom: 18px;
  padding: 24px;
  border: 1px solid var(--line-strong);
  border-radius: 19px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 9px 27px rgba(40,68,84,.045);
}
.events-section-heading h2,
.event-section-header h2 { margin: 0; font-size: 1.48rem; letter-spacing: -.025em; }
.events-section-heading p,
.event-section-intro { margin: 6px 0 0; color: var(--ink-soft); line-height: 1.45; }
.events-bubble-chart,
.event-history-chart,
.event-main-line-chart { margin-top: 18px; min-height: 340px; }
.event-chart-empty { padding: 50px 20px; text-align: center; color: var(--ink-faint); }
.event-bubble-wrap,
.event-line-wrap { position: relative; width: 100%; overflow: hidden; }
.event-bubble-wrap svg,
.event-line-wrap svg { display: block; width: 100%; height: auto; overflow: visible; }
.event-chart-grid line { stroke: #d6e1e8; stroke-width: 1; }
.event-chart-grid .x-grid { stroke-dasharray: 2 5; opacity: .75; }
.event-chart-grid text { fill: #6b7e89; font-size: 11px; }
.event-axis-title { fill: #546d7b; font-size: 11px; font-weight: 750; }
.event-bubble-node { cursor: pointer; transition: opacity .16s ease, filter .16s ease; outline: none; }
.event-bubble-node circle { fill: #7b8791; fill-opacity: .16; stroke: #697682; stroke-width: 1.5; transition: fill-opacity .16s ease, stroke-width .16s ease, filter .16s ease; }
.event-bubble-node.tone-warm circle { fill: #ef7d3f; stroke: #ef7d3f; }
.event-bubble-node.tone-cold circle { fill: #448dd0; stroke: #448dd0; }
.event-bubble-node text { fill: #17384c; font-size: 10px; font-weight: 800; pointer-events: none; }
.event-bubble-node.active circle,
.event-bubble-node:focus circle { fill-opacity: .30; stroke-width: 3; filter: drop-shadow(0 4px 5px rgba(33,66,85,.15)); }
.event-bubble-node.current circle { fill: #fff7ed; fill-opacity: 1; stroke: #103d61; stroke-width: 4; }
.event-bubble-node.dimmed { opacity: .28; }
.event-chart-tooltip {
  position: absolute; z-index: 5; display: grid; gap: 4px; min-width: 205px; max-width: 260px;
  padding: 11px 13px; border-radius: 12px; color: #fff; background: rgba(20,53,73,.96); box-shadow: 0 9px 24px rgba(20,53,73,.22);
  font-size: .74rem; pointer-events: none;
}
.event-chart-tooltip strong { font-size: .82rem; }
.event-chart-tooltip span { display: flex; justify-content: space-between; gap: 12px; }
.event-chart-tooltip[hidden] { display: none; }
.event-chart-legend { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.event-chart-legend button { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--ink-soft); font-weight: 750; cursor: pointer; }
.event-chart-legend button.off { opacity: .42; }
.event-chart-legend i { width: 19px; height: 3px; border-radius: 99px; background: var(--series); }
.event-period-band { opacity: .11; }
.event-period-band.tone-warm { fill: var(--event-warm); }
.event-period-band.tone-cold { fill: var(--event-cold); }
.event-period-band.tone-neutral { fill: var(--event-neutral); }
.event-hover-line { stroke: #546b78; stroke-width: 1.3; stroke-dasharray: 5 5; pointer-events: none; }
.event-chart-hit { fill: transparent; cursor: crosshair; }

.events-doc-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; margin-top: 18px; }
.event-doc-family { display: grid; grid-template-columns: 64px 1fr; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: #fbfdfe; }
.event-doc-family-icon img { width: 58px; height: 58px; object-fit: contain; }
.event-doc-family span { color: #6a808d; font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.event-doc-family h3 { margin: 3px 0 7px; font-size: 1rem; }
.event-doc-family p { margin: 0 0 9px; color: var(--ink-soft); font-size: .78rem; line-height: 1.45; }
.event-doc-family strong { color: var(--ink); font-size: .74rem; }

/* Fiche dédiée */
.event-back-link { display: inline-flex; margin: 0 0 12px 2px; color: #176591; text-decoration: none; font-size: .78rem; font-weight: 800; }
.event-back-link:hover { text-decoration: underline; }
.event-detail-hero {
  display: grid;
  grid-template-columns: 118px minmax(0,1fr);
  gap: 22px;
  align-items: center;
  min-height: 158px;
  margin-bottom: 12px;
  padding: 20px 26px;
  border-radius: 20px;
  color: #fff;
  background: linear-gradient(125deg,#526c7d,#718697);
  box-shadow: 0 12px 28px rgba(42,69,86,.09);
}
.event-detail-hero.event-tone-warm { background: linear-gradient(125deg,#922732,#b7313c); }
.event-detail-hero.event-tone-cold { background: linear-gradient(125deg,#215d93,#2d80c2); }
.event-detail-icon { width: 110px; height: 110px; display: grid; place-items: center; }
.event-detail-icon img { width: 108px; height: 108px; object-fit: contain; filter: drop-shadow(0 7px 11px rgba(0,0,0,.12)); }
.event-detail-identity .events-eyebrow { color: rgba(255,255,255,.86); }
.event-detail-identity h1 { margin: 0; color: #fff; font-size: clamp(2rem,4vw,3rem); letter-spacing: -.045em; }
.event-detail-identity p { margin: 6px 0 0; color: rgba(255,255,255,.84); }
.event-detail-tabs { margin-bottom: 16px; }
.event-detail-panel[hidden] { display: none; }

.event-kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.event-kpi { position: relative; min-width: 0; min-height: 112px; display: grid; align-content: center; padding: 16px; border: 1px solid var(--line-strong); border-radius: 16px; background: #fff; }
.event-kpi::before { content: ''; position: absolute; inset: 0 0 auto; height: 5px; border-radius: 16px 16px 0 0; background: #ccd9e1; }
.event-kpi.tone-warm::before { background: var(--event-warm); }
.event-kpi.tone-cold::before { background: var(--event-cold); }
.event-kpi.tone-neutral::before { background: var(--event-neutral); }
.event-kpi > img { position: absolute; width: 34px; height: 34px; right: 14px; top: 13px; object-fit: contain; }
.event-kpi small { color: #647b89; font-size: .69rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.event-kpi strong { margin-top: 5px; overflow-wrap: anywhere; font-size: 1.55rem; line-height: 1.08; letter-spacing: -.035em; }
.event-kpi em { margin-top: 5px; color: var(--ink-soft); font-size: .72rem; font-style: normal; }
.event-kpi-link { margin-top: 8px; color: #176591; font-size: .72rem; font-weight: 800; text-decoration: none; }
.event-rank-button,
.event-rank-static {
  width: max-content; max-width: 100%; margin-top: 9px; padding: 6px 9px;
  border: 1px solid #9fc7de; border-radius: 10px; color: #176185; background: #f5fbff;
  font-size: .7rem; font-weight: 850; text-decoration: none; cursor: pointer;
}
.event-rank-button:hover { background: #eaf6fd; }

.event-section-header { margin-bottom: 17px; }
.event-section-header h2 { margin: 0; font-size: 1.36rem; }
.event-remarkable-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.event-remarkable { position: relative; min-height: 150px; display: grid; align-content: center; padding: 17px 18px 15px; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 16px; background: #fff; }
.event-remarkable-band { position: absolute; inset: 0 0 auto; height: 6px; background: #8aa0af; }
.event-remarkable.tone-tn { background: #f2f7fd; }
.event-remarkable.tone-tn .event-remarkable-band { background: #2579ce; }
.event-remarkable.tone-tm { background: #f1fbf6; }
.event-remarkable.tone-tm .event-remarkable-band { background: #19a05d; }
.event-remarkable.tone-tx { background: #fff4f2; }
.event-remarkable.tone-tx .event-remarkable-band { background: #e53643; }
.event-remarkable.tone-warm { background: #fff5f1; }
.event-remarkable.tone-warm .event-remarkable-band { background: #ee7139; }
.event-remarkable.tone-cold { background: #f1f7fd; }
.event-remarkable.tone-cold .event-remarkable-band { background: #287bc5; }
.event-remarkable.tone-night { background: #f7f3ff; }
.event-remarkable.tone-night .event-remarkable-band { background: var(--event-night); }
.event-remarkable.tone-day { background: #fff7ec; }
.event-remarkable.tone-day .event-remarkable-band { background: var(--event-day); }
.event-remarkable.tone-amplitude { background: #f8f5ff; }
.event-remarkable.tone-amplitude .event-remarkable-band { background: var(--event-amplitude); }
.event-remarkable > img { position: absolute; width: 35px; height: 35px; top: 18px; right: 16px; object-fit: contain; }
.event-remarkable > small { padding-right: 42px; color: #637b8a; font-size: .69rem; font-weight: 850; text-transform: uppercase; }
.event-remarkable-value { position: relative; display: flex; align-items: center; justify-content: center; min-height: 54px; padding: 5px 44px; }
.event-remarkable-value strong { font-size: 1.65rem; letter-spacing: -.035em; white-space: nowrap; }
.event-record-marks { position: absolute; right: 0; top: 50%; display: inline-flex; align-items: center; gap: 2px; transform: translateY(-50%); }
.event-record-mark-trigger { display: inline-grid; place-items: center; border-radius: 50%; cursor: pointer; transition: transform .16s ease, filter .16s ease, box-shadow .16s ease; }
.event-record-mark-trigger:hover, .event-record-mark-trigger:focus-visible { transform: translateY(-2px) scale(1.06); filter: saturate(1.08); outline: none; box-shadow: 0 5px 15px rgba(20,65,91,.18); }
.event-record-marks img { width: 34px; height: 34px; object-fit: contain; }
.event-record-marks small { margin-left: -5px; padding: 2px 5px; border-radius: 999px; color: #18445d; background: #eef5f8; font-size: .62rem; font-weight: 900; }
.event-remarkable > a { width: max-content; margin-top: 5px; color: #176591; font-size: .75rem; font-weight: 800; text-decoration: none; }
.event-remarkable > em { margin-top: 6px; color: #718693; font-size: .68rem; font-style: normal; }

.event-metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; }
.event-metric-grid .event-kpi { min-height: 120px; }
.event-metric-grid .event-wide { grid-column: 1 / -1; min-height: 84px; }
.event-threshold-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.event-threshold-grid > article,
.event-record-counts > article,
.event-change-grid > article,
.event-validation-summary > article {
  min-width: 0; padding: 16px; border: 1px solid var(--line-strong); border-radius: 14px; background: #fbfdfe;
}
.event-threshold-grid small,
.event-record-counts small,
.event-change-grid small,
.event-validation-summary small { color: #647c89; font-size: .7rem; font-weight: 800; }
.event-threshold-grid strong,
.event-record-counts strong { display: block; margin-top: 7px; font-size: 1.35rem; }
.event-record-counts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.event-associated-records { display: grid; gap: 8px; margin-top: 12px; }
.event-associated-records a { display: grid; grid-template-columns: 1fr auto auto auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; text-decoration: none; }
.event-associated-records small { color: var(--ink-faint); }
.event-chronology-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.event-chronology-grid article { padding: 15px; border: 1px solid #e8c993; border-radius: 14px; background: #fff9ee; }
.event-chronology-grid strong { font-size: .78rem; }
.event-chronology-grid p { margin: 7px 0; color: #6d6559; font-size: .74rem; line-height: 1.4; }
.event-chronology-grid small { color: #956d28; font-weight: 800; }
.event-nature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.event-nature-grid article { position: relative; display: grid; padding: 15px; border: 1px solid var(--line-strong); border-radius: 14px; background: #fff; overflow: hidden; }
.event-nature-grid article::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: #7d60ae; }
.event-nature-grid article.tx::before { background: #e23b44; }
.event-nature-grid article.tn::before { background: #2b7dca; }
.event-nature-grid small { color: #657d8b; font-size: .68rem; font-weight: 800; }
.event-nature-grid strong { margin-top: 5px; font-size: 1.35rem; }
.event-nature-grid em { margin-top: 3px; color: var(--ink-soft); font-size: .7rem; font-style: normal; }

.event-transition { display: grid; grid-template-columns: minmax(0,1fr) 110px minmax(0,1fr); gap: 14px; align-items: center; }
.event-transition > article { min-height: 104px; display: grid; place-content: center; text-align: center; padding: 14px; border-radius: 15px; background: #f4f7f9; }
.event-transition article small { color: #657d8a; }
.event-transition article strong { margin-top: 3px; font-size: 1.45rem; }
.event-transition article em { margin-top: 5px; color: #778c98; font-size: .7rem; font-style: italic; }
.event-transition-arrow { display: grid; justify-items: center; gap: 2px; font-weight: 850; }
.event-transition-arrow b { font-size: 2rem; line-height: 1; }
.event-transition-arrow strong { font-size: .92rem; }
.event-transition-arrow.warming { color: #df3542; }
.event-transition-arrow.cooling { color: #277bc6; }
.event-inline-metrics { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.event-inline-metrics span { padding: 7px 10px; border-radius: 999px; background: #eff4f7; color: #5e7482; font-size: .72rem; }
.event-inline-metrics b { color: var(--ink); }

.event-reading-layout { display: grid; gap: 13px; }
.event-reading-block { padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: #fbfdfe; }
.event-reading-block h3 { margin: 0 0 8px; font-size: 1rem; }
.event-reading-block > p { margin: 0 0 11px; color: var(--ink-soft); font-size: .78rem; line-height: 1.45; }
.event-threshold-chips { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 12px; }
.event-threshold-chips span { padding: 6px 9px; border-radius: 999px; background: #edf4f8; color: #245d7a; font-size: .69rem; font-weight: 800; }
.event-reading-days { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.event-reading-day { display: grid; gap: 3px; min-height: 126px; padding: 13px; border: 1px solid var(--line-strong); border-radius: 12px; background: #fff; }
.event-reading-day.entry-hit { border-color: #70c88c; background: var(--event-green-soft); }
.event-reading-day.strong-warm { border-color: #f27878; border-left: 5px solid #e53a44; background: #fff0ee; }
.event-reading-day.strong-cold { border-color: #6ba7da; border-left: 5px solid #277cc6; background: #eef7ff; }
.event-reading-day.exit { background: #fff; }
.event-reading-day small { color: #607887; }
.event-reading-day strong { font-size: 1.06rem; }
.event-reading-day span { font-size: .72rem; color: #536b7a; }
.event-reading-day b { margin-top: 3px; font-size: .72rem; color: #154c68; }
.event-muted { color: var(--ink-faint); font-size: .78rem; }

.event-rapid-pair-block h3 { margin: 12px 0 9px; font-size: .96rem; }
.event-change-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.event-change-grid article { display: grid; gap: 4px; }
.event-change-grid strong { margin-top: 5px; font-size: 1.25rem; }
.event-change-grid > article > b { font-size: .82rem; }
.event-change-grid p { margin: 5px 0; color: var(--ink-soft); font-size: .72rem; line-height: 1.4; }
.event-change-grid em { margin-top: auto; padding: 5px 8px; border-radius: 999px; color: #1b6083; background: #eaf5fb; font-size: .68rem; font-style: normal; font-weight: 800; text-align: center; }
.event-validation-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-bottom: 11px; }
.event-validation-summary article { display: grid; gap: 6px; }
.event-validation-summary strong { font-size: 1.12rem; }
.event-validation-summary p { margin: 0; color: var(--ink-soft); font-size: .74rem; }
.event-check { width: max-content; max-width: 100%; padding: 5px 8px; border-radius: 999px; background: #f0f3f5; color: #6c7f89; font-size: .68rem; font-weight: 800; }
.event-check.ok { color: #286f47; background: #e7f5eb; }
.event-validation-days { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.event-validation-days article { display: grid; gap: 3px; padding: 12px; border: 1px solid var(--line-strong); border-radius: 12px; background: #fff; }
.event-validation-days article.warming { border-color: #f08a86; background: #fff1ef; }
.event-validation-days article.cooling { border-color: #77aada; background: #eef7ff; }
.event-validation-days small, .event-validation-days span, .event-validation-days b { font-size: .7rem; }

/* Détail journalier */
.event-days-desktop { display: block; margin-top: 16px; }
.event-days-mobile { display: none; }
.event-table-wrap { overflow-x: auto; border: 1px solid var(--line-strong); border-radius: 15px; }
@media(min-width:701px){
  .event-days-desktop .event-table-wrap{overflow:visible;clip-path:none}
  .event-days-table thead{position:static}
  .event-days-table thead th{position:sticky!important;top:var(--nivis-sticky-top,0px)!important;z-index:18!important}
  .nivis-shared-event-root .event-days-table thead th{top:0!important}
  .event-days-table thead th:first-child{border-top-left-radius:14px}
  .event-days-table thead th:last-child{border-top-right-radius:14px}
}
.event-days-table { width: 100%; min-width: 920px; border-collapse: separate; border-spacing: 0; background: #fff; }
.event-days-table th,
.event-days-table td { padding: 12px 10px; border-right: 1px solid #d7e1e7; border-bottom: 1px solid #d7e1e7; text-align: center; }
.event-days-table thead th { position: sticky; top: 0; z-index: 1; color: #fff; background: #1c4867; font-size: .72rem; text-transform: uppercase; }
.event-days-table thead th:first-child { text-align: left; }
.event-days-table tbody th { min-width: 130px; text-align: left; background: #f7fafc; }
.event-days-table tbody th a { font-weight: 800; text-decoration: none; }
.event-days-table tbody th small { display: block; color: #9b6926; font-size: .64rem; }
.event-days-table tr.out-event { opacity: .48; }
.event-days-table tr.in-event.tone-warm td { background: rgba(255,242,240,.55); }
.event-days-table tr.in-event.tone-cold td { background: rgba(239,247,254,.64); }
.event-day-value { position: relative; min-width: 70px; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 6px 34px 6px 8px; border-radius: 9px; }
.event-day-value.cell-tn { background: #eaf4fd; }
.event-day-value.cell-tm { background: #ebf8f1; }
.event-day-value.cell-tx { background: #fff0f1; }
.event-day-value.cell-night { background: #f4effd; }
.event-day-value.cell-day { background: #fff4e7; }
.event-day-value.cell-amplitude { background: #f3effa; }
.event-day-value.tone-neutral { background: #f2f5f7; }
.event-day-value.tone-warm-1 { background: #ffe9e5; }
.event-day-value.tone-warm-2 { background: #ffcfc7; }
.event-day-value.tone-warm-3 { color: #742029; background: #f79e99; }
.event-day-value.tone-warm-4 { color: #fff; background: #dd4a52; }
.event-day-value.tone-cold-1 { background: #e7f1fb; }
.event-day-value.tone-cold-2 { background: #cde4f7; }
.event-day-value.tone-cold-3 { color: #164b72; background: #94c5e9; }
.event-day-value.tone-cold-4 { color: #fff; background: #347fc0; }
.event-day-value .event-record-marks { right: 3px; }
.event-day-value .event-record-marks img { width: 29px; height: 29px; }
.event-day-summary-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.event-day-summary-kpis .event-kpi { min-height: 100px; }
.event-day-stage { padding: 4px 7px; border-radius: 999px; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.event-day-stage.context { color: #778892; background: #edf1f3; }
.event-day-stage.entry { color: #8a651f; background: #fff2cf; }
.event-day-stage.peak { color: #a02834; background: #ffe2e5; }
.event-day-stage.active { color: #9a3440; background: #fde9eb; }

/* Documentation */
.event-documentation-card { position: relative; padding: 26px; border: 1px solid var(--line-strong); border-top: 6px solid #7b8791; border-radius: 19px; background: #fff; }
.event-documentation-card.tone-warm { border-top-color: var(--event-warm); }
.event-documentation-card.tone-cold { border-top-color: var(--event-cold); }
.event-documentation-card > header { position: relative; min-height: 86px; padding-right: 120px; }
.event-documentation-card > header > div { position: absolute; right: 0; top: -12px; }
.event-documentation-card > header img { width: 94px; height: 94px; object-fit: contain; }
.event-documentation-card > header h2 { margin: 0; font-size: 1.65rem; }
.event-documentation-card > header p { margin: 6px 0 0; color: var(--ink-soft); }
.event-doc-desktop { margin-top: 18px; }
.event-doc-desktop section { padding: 17px 0; border-top: 1px solid var(--line); }
.event-doc-desktop h3 { margin: 0 0 8px; font-size: 1.02rem; }
.event-doc-desktop p,
.event-doc-desktop li { color: var(--ink-soft); line-height: 1.55; }
.event-doc-mobile { display: none; }

/* Ranking */
.event-record-ranking-medal { width: 36px; height: 36px; object-fit: contain; vertical-align: middle; }
.event-ranking-modal[hidden] { display: none; }
.event-ranking-modal:not([hidden]) { position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 22px; }
.event-ranking-backdrop { position: absolute; inset: 0; background: rgba(17,39,54,.45); backdrop-filter: blur(5px); }
.event-ranking-dialog { position: relative; width: min(760px,100%); max-height: min(760px,88vh); display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border-radius: 19px; background: #fff; box-shadow: 0 25px 70px rgba(20,43,58,.25); }
.event-ranking-dialog > header { display: flex; justify-content: space-between; gap: 16px; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.event-ranking-dialog header span { color: #2b708e; font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.event-ranking-dialog h2 { margin: 3px 0 0; }
.event-ranking-dialog p { margin: 4px 0 0; color: var(--ink-soft); font-size: .76rem; }
.event-ranking-close { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 1.5rem; cursor: pointer; }
.event-ranking-body { overflow: auto; padding: 12px; }
.event-ranking-row { display: grid; grid-template-columns: 54px 1fr auto auto; gap: 12px; align-items: center; padding: 11px 12px; border-bottom: 1px solid var(--line); text-decoration: none; }
.event-ranking-row.current { border-radius: 11px; background: #edf6fc; }
.event-ranking-row > strong { font-size: 1.1rem; }
.event-ranking-row span { display: grid; }
.event-ranking-row small { color: var(--ink-faint); }
.event-ranking-row em { color: var(--ink-soft); font-style: normal; }
body.event-ranking-open { overflow: hidden; }

.events-mobile-comparison { display: grid; gap: 8px; }
.events-mobile-comparison-row { width: 100%; display: grid; grid-template-columns: 48px 1fr auto; gap: 9px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 13px; background: #fff; text-align: left; color: var(--ink); }
.events-mobile-comparison-row.current { border: 2px solid #2b7198; background: #f2f9fd; }
.events-mobile-comparison-row .rank { font-weight: 850; color: #1c6185; }
.events-mobile-comparison-row .main { display: grid; min-width: 0; }
.events-mobile-comparison-row .main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.events-mobile-comparison-row .main small { color: var(--ink-soft); font-size: .67rem; }
.events-mobile-comparison-row .metric { display: grid; text-align: right; }
.events-mobile-comparison-row .metric small { color: var(--ink-faint); font-size: .62rem; }

@media (max-width: 1050px) {
  .event-list-card { grid-template-columns: 92px minmax(220px,1fr) minmax(330px,400px); }
  .event-list-icon { width: 80px; height: 80px; }
  .event-list-icon img { width: 80px; height: 80px; }
  .event-list-open { display: none; }
  .event-remarkable-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-validation-days { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  body[data-page="events"] .container { padding-left: 18px; padding-right: 18px; padding-top: 26px; }
  .events-native,
  .event-detail-native { width: 100%; max-width: none; }
  .events-page-heading { text-align: center; margin-bottom: 18px; }
  .events-page-heading h1 { font-size: 2.3rem; }
  .events-page-heading p { margin-left: auto; margin-right: auto; font-size: .84rem; }
  .events-importance-tabs { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .events-importance-tabs button { min-width: 0; padding: 0 8px; font-size: .86rem; }
  .events-toolbar { grid-template-columns: 1fr 1fr; padding: 12px; }
  .events-toolbar label > span { text-align: left; }
  .events-view-tabs { grid-column: 1 / -1; justify-self: stretch; display: grid; grid-template-columns: repeat(3,1fr); width: 100%; }
  .events-view-tabs button { min-width: 0; padding: 0 6px; font-size: .82rem; }
  .events-reference-line { font-size: .72rem; text-align: center; }

  .event-list-card {
    grid-template-columns: 104px minmax(0,1fr);
    grid-template-areas: "icon main" "icon metrics";
    gap: 7px 12px;
    min-height: 178px;
    padding: 13px 13px 13px 19px;
  }
  .event-list-icon { grid-area: icon; width: 94px; height: 94px; align-self: center; }
  .event-list-icon img { width: 92px; height: 92px; }
  .event-list-main { grid-area: main; align-self: end; }
  .event-list-title { align-items: flex-start; }
  .event-list-title h3 { flex: 1 1 140px; font-size: 1rem; line-height: 1.12; }
  .event-status { min-height: 21px; padding: 0 7px; font-size: .58rem; }
  .event-list-main p { font-size: .72rem; }
  .event-list-metrics { grid-area: metrics; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; align-self: start; }
  .event-list-metrics > span { min-height: 63px; padding: 7px; }
  .event-list-metrics small { font-size: .55rem; }
  .event-list-metrics strong { font-size: .88rem; }
  .event-list-metrics em { font-size: .57rem; }
  .event-class-metric strong { font-size: .78rem; line-height: 1; overflow-wrap: anywhere; }

  .events-section-card,
  .event-section { padding: 17px; border-radius: 17px; }
  .events-section-heading h2,
  .event-section-header h2 { font-size: 1.28rem; }
  .events-doc-grid { grid-template-columns: 1fr; }
  .event-doc-family { grid-template-columns: 56px 1fr; }
  .events-bubble-chart,
  .event-history-chart { min-height: 0; }

  .event-back-link { margin-bottom: 10px; }
  .event-detail-hero {
    grid-template-columns: 130px minmax(0,1fr);
    gap: 14px;
    min-height: 168px;
    padding: 16px;
    border: 1px solid var(--line-strong);
    border-radius: 17px;
    color: var(--ink);
    background: #fff !important;
    box-shadow: 0 8px 24px rgba(40,68,84,.05);
  }
  .event-detail-icon { width: 124px; height: 124px; }
  .event-detail-icon img { width: 120px; height: 120px; }
  .event-detail-identity .events-eyebrow { color: #2b738f; font-size: .67rem; }
  .event-detail-identity h1 { color: var(--ink); font-size: clamp(1.7rem,8vw,2.25rem); line-height: 1.05; }
  .event-detail-identity p { color: var(--ink-soft); font-size: .76rem; line-height: 1.35; }
  .event-detail-tabs { position: sticky; top: 0; z-index: 16; display: grid; grid-template-columns: repeat(4,1fr); width: calc(100% + 36px); margin-left: -18px; margin-bottom: 14px; border-radius: 0; border-left: 0; border-right: 0; }
  .event-detail-tabs button { min-width: 0; min-height: 47px; padding: 0 5px; font-size: .76rem; }

  .event-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .event-kpi { min-height: 126px; padding: 14px; }
  .event-kpi strong { font-size: 1.5rem; }
  .event-kpi > img { width: 32px; height: 32px; }
  .event-rank-button { font-size: .66rem; }
  .event-remarkable-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .event-remarkable { min-height: 166px; padding: 15px 12px; }
  .event-remarkable > img { width: 31px; height: 31px; right: 10px; top: 13px; }
  .event-remarkable > small { padding-right: 31px; font-size: .62rem; }
  .event-remarkable-value { justify-content: flex-start; padding: 5px 36px 5px 0; }
  .event-remarkable-value strong { font-size: 1.34rem; }
  .event-record-marks { right: 0; }
  .event-record-marks img { width: 29px; height: 29px; }
  .event-remarkable > a { font-size: .68rem; }

  .event-metric-grid,
  .event-threshold-grid,
  .event-record-counts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-metric-grid .event-wide { grid-column: 1 / -1; }
  .event-chronology-grid,
  .event-nature-grid { grid-template-columns: 1fr; }
  .event-transition { grid-template-columns: minmax(0,1fr) 64px minmax(0,1fr); gap: 8px; }
  .event-transition > article { min-height: 132px; padding: 10px; }
  .event-transition article strong { font-size: 1.2rem; }
  .event-transition article em { font-size: .63rem; }
  .event-transition-arrow b { font-size: 1.8rem; }
  .event-transition-arrow strong { font-size: .76rem; text-align: center; }
  .event-inline-metrics { gap: 5px; }
  .event-inline-metrics span { padding: 6px 8px; font-size: .66rem; }
  .event-reading-days { grid-template-columns: 1fr; }
  .event-reading-day { min-height: 112px; }
  .event-change-grid { grid-template-columns: 1fr; }
  .event-validation-summary { grid-template-columns: 1fr; }
  .event-validation-days { grid-template-columns: 1fr; }

  .event-days-desktop { display: none; }
  .event-days-mobile { display: grid; gap: 9px; margin-top: 14px; }
  .event-day-card { padding: 13px; border: 1px solid var(--line-strong); border-radius: 14px; background: #fff; }
  .event-day-card.out-event { opacity: .54; background: #f2f4f5; }
  .event-day-card > header { display: flex; justify-content: space-between; gap: 8px; align-items: center; margin-bottom: 10px; }
  .event-day-card > header a { font-weight: 850; text-decoration: none; }
  .event-day-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  .event-day-card-grid > div { min-width: 0; display: grid; gap: 3px; }
  .event-day-card-grid > div > small { color: #677e8b; font-size: .61rem; font-weight: 800; text-transform: uppercase; }
  .event-day-value { width: 100%; min-height: 56px; justify-content: center; padding: 7px 35px 7px 7px; }
  .event-day-value b { font-size: .96rem; }
  .event-day-value .event-record-marks img { width: 28px; height: 28px; }
  .event-day-summary-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }

  .event-main-line-chart { margin: 10px -7px 0; min-height: 360px; overflow-x: auto; overflow-y: hidden; padding-bottom: 4px; }
  .event-main-line-chart .event-line-wrap { min-width: 520px; }
  .event-main-line-chart .event-chart-legend { position: sticky; left: 0; width: calc(100vw - 50px); }
  .event-line-tooltip { position: sticky; left: 50% !important; }
  .event-chart-grid text { font-size: 10px; }
  .event-chart-legend button { font-size: .7rem; }

  .event-documentation-card { padding: 18px; }
  .event-documentation-card > header { min-height: 120px; padding-right: 90px; }
  .event-documentation-card > header > div { right: -4px; top: -4px; }
  .event-documentation-card > header img { width: 82px; height: 82px; }
  .event-documentation-card > header h2 { font-size: 1.45rem; }
  .event-doc-desktop { display: none; }
  .event-doc-mobile { display: grid; gap: 8px; margin-top: 14px; }
  .event-doc-detail-block { border: 1px solid var(--line); border-radius: 12px; background: #fbfdfe; overflow: hidden; }
  .event-doc-detail-block summary { display: flex; justify-content: space-between; gap: 10px; padding: 13px; cursor: pointer; font-weight: 800; list-style: none; }
  .event-doc-detail-block summary::-webkit-details-marker { display: none; }
  .event-doc-detail-block > div { padding: 0 13px 13px; color: var(--ink-soft); font-size: .78rem; line-height: 1.5; }
  .event-doc-detail-block p { margin-bottom: 0; }
  .event-doc-detail-block li { margin-bottom: 5px; }

  .event-ranking-modal { padding: 10px; }
  .event-ranking-dialog { max-height: 86vh; }
  .event-ranking-row { grid-template-columns: 42px 1fr auto; }
  .event-ranking-row em { display: none; }
}

@media (orientation: landscape) and (max-height: 600px) and (max-width: 980px) {
  body[data-page="events"] .container { padding-top: 18px; }
  .events-page-heading { text-align: left; }
  .events-page-heading h1 { font-size: 2rem; }
  .event-detail-hero { min-height: 126px; grid-template-columns: 96px 1fr; }
  .event-detail-icon,
  .event-detail-icon img { width: 90px; height: 90px; }
  .event-detail-tabs { position: sticky; top: 0; }
  .event-list-card { min-height: 132px; grid-template-columns: 90px 1fr minmax(320px,390px); grid-template-areas: none; }
  .event-list-icon { grid-area: auto; width: 78px; height: 78px; }
  .event-list-icon img { width: 76px; height: 76px; }
  .event-list-main { grid-area: auto; }
  .event-list-metrics { grid-area: auto; }
}

/* Fiche contextuelle : utilisée uniquement lorsque l'on arrive depuis une vue
   d'observation avec ?event=. Les cartes de /evenements ouvrent, elles, une
   vraie page /evenements/{id}. */
.event-context-dialog {
  width: min(1180px, calc(100vw - 48px));
  height: min(900px, calc(100dvh - 48px));
  padding: 0;
  border: 1px solid #bfd1dc;
  border-radius: 24px;
  overflow: hidden;
  background: #f5f9fc;
  box-shadow: 0 28px 80px rgba(13, 56, 79, .28);
}
.event-context-dialog::backdrop { background: rgba(16, 42, 57, .42); backdrop-filter: blur(3px); }
.event-context-dialog[open] { display: block; }
.event-context-dialog iframe { width: 100%; height: 100%; border: 0; background: #f5f9fc; }
.event-context-close {
  position: absolute; z-index: 5; top: 14px; right: 16px;
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid #bfd1dc;
  background: rgba(255,255,255,.94); color: #123f58; font: 700 28px/1 sans-serif;
  box-shadow: 0 4px 14px rgba(13,56,79,.12); cursor: pointer;
}
body.event-context-open { overflow: hidden; }
.event-embed-body { margin: 0; min-width: 0; background: #f5f9fc; }
.event-embed-main { width: 100%; padding: 16px; box-sizing: border-box; }
.event-detail-native-embedded { margin: 0 auto; }
.event-detail-native-embedded .event-back-link { display: none; }

@media (max-width: 720px) {
  .event-context-dialog {
    width: 100vw; height: 100dvh; max-width: none; max-height: none;
    border: 0; border-radius: 0; margin: 0;
  }
  .event-context-close { top: 10px; right: 10px; width: 40px; height: 40px; }
  .event-embed-main { padding: 0; }
}

/* Mobile : les Top 3 des KPI événementiels suivent le composant des KPI
   horaires (ligne dédiée sous la valeur), jamais en surimpression. */
@media (max-width: 720px) {
  .event-detail-native .event-remarkable-value {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;
    min-height: 72px;
    padding: 5px 0;
  }
  .event-detail-native .event-remarkable-value > .event-record-marks {
    position: static;
    right: auto;
    top: auto;
    transform: none;
    min-height: 31px;
    margin: 0;
  }
  .event-detail-native .event-remarkable-value > .event-record-marks img {
    width: 29px;
    height: 29px;
  }
  .event-detail-native .event-remarkable-value > .event-record-marks small {
    margin-left: 3px;
  }
  /* Le détail journalier garde son badge compact à droite de la valeur. */
  .event-detail-native .event-day-value > .event-record-marks {
    position: absolute;
    right: 3px;
    top: 50%;
    transform: translateY(-50%);
  }
}


/* NIVIS_PHASE4_EVENTS_AUDIT_R4 — parité métier 4.5 + langage visuel 5.0 */
@media (min-width: 1101px) {
  .event-list-card { grid-template-columns: 110px minmax(300px,1.2fr) minmax(510px,600px) 96px; gap: 18px; padding: 15px 16px; }
  .event-list-metrics { gap: 10px; }
  .event-list-metrics > span { min-height: 84px; padding: 13px 14px; border-radius: 13px; align-content: center; }
  .event-list-metrics small { font-size: .64rem; }
  .event-list-metrics strong { margin-top: 3px; font-size: 1.03rem; }
  .event-list-metrics em { margin-top: 4px; font-size: .66rem; }
}
.event-kpi { overflow: hidden; padding-top: 18px; }
.event-kpi::before { height: 3px; border-radius: 15px 15px 0 0; }
.event-remarkable-band { height: 4px; }
.event-series-context { display: grid; gap: 11px; }
.event-series-context-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.event-series-context-row.derived .event-kpi { background: #f8f5ff; }
.event-felt-persistence { grid-template-columns: repeat(2,minmax(0,1fr)); }

/* Détail desktop : densité et codage des colonnes inspirés des Données quotidiennes. */
.event-day-summary-kpis { margin: 0 0 14px; }
.event-days-table th,.event-days-table td { padding: 8px 8px; }
.event-days-table thead th { background: #214b66; border-right-color: rgba(255,255,255,.35); font-size: .67rem; letter-spacing: .015em; }
.event-days-table thead th.head-day { background: #204c69; }
.event-days-table thead th.head-tn { background: #2d73bf; }
.event-days-table thead th.head-tm { background: #24935c; }
.event-days-table thead th.head-tx { background: #d9303e; }
.event-days-table thead th.head-night { background: #6c4eba; }
.event-days-table thead th.head-diurnal { background: #d9861e; }
.event-days-table thead th.head-anomaly { background: #e47b11; }
.event-days-table thead th.head-z { background: #687987; }
.event-days-table thead th.head-percentile { background: #7447b4; }
.event-days-table thead th.head-amplitude { background: #6e56a4; }
.event-days-table thead th.head-felt-warm { background: #e66b2b; }
.event-days-table thead th.head-felt-cold { background: #287bc5; }
.event-days-table thead th.head-score-warm { background: #d93643; }
.event-days-table thead th.head-score-cold { background: #287bc5; }
.event-days-table thead th.head-score-neutral { background: #6e56a4; }
.event-days-table thead th.head-neutral { background: #607789; }
.event-days-desktop .event-day-value { min-height: 32px; padding: 4px 28px 4px 8px; border-radius: 8px; }
.event-days-desktop .event-day-value b { font-size: .82rem; }
.event-days-table tr.out-event { opacity: .62; }
.event-days-table tr.in-event > th { font-weight: 900; background: #fff; }

/* Réchauffement/refroidissement : trois phases lisibles sans éteindre la couleur d'anomalie. */
.profile-rapid .event-days-table tr.out-event { opacity: 1; }
.profile-rapid .event-days-table tr.role-acclimatation > th,
.profile-rapid .event-days-table tr.role-acclimatation > td { background: #f1f4f6; }
.profile-rapid .event-days-table tr.role-transition > th,
.profile-rapid .event-days-table tr.role-transition > td { background: #faf6eb; }
.profile-rapid .event-days-table tr.role-transition:first-of-type > * { border-top: 2px solid #c5a04f; }
.profile-rapid .event-days-table tr.role-event:first-of-type > * { border-top: 2px solid #7053a5; }
.profile-rapid .event-days-table .event-day-value[class*="tone-warm"],
.profile-rapid .event-days-table .event-day-value[class*="tone-cold"] { opacity: 1; }

/* Graphique événement : une zone continue, seuils annotés, lecture légère. */
.event-main-line-chart { border: 1px solid #d4e1e9; border-radius: 16px; background: #fff; padding: 10px 12px 4px; }
.event-chart-legend { justify-content: center; margin-bottom: 2px; }
.event-chart-main-label { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 13px; border: 1px solid #c9d9e3; border-radius: 999px; color: #456276; font-weight: 850; }
.event-chart-main-label i { width: 23px; height: 3px; border-radius: 99px; background: var(--series); }
.event-period-band { opacity: .075; }
.event-period-band.tone-warm { fill: #d93643; }
.event-period-band.tone-cold { fill: #287bc5; }
.event-period-band.tone-neutral { fill: #7352a5; }
.event-period-boundary { stroke: #6f8390; stroke-width: 1; stroke-dasharray: 4 5; opacity: .65; }
.event-series-line { stroke-linecap: round; stroke-linejoin: round; }
.event-series-point.peak { stroke: #fff; stroke-width: 2.5; }
.event-threshold-label { font-size: 10.5px; font-weight: 850; paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.event-chart-grid line { stroke: #dbe5eb; }

@media (max-width: 900px) {
  .event-series-context-row { grid-template-columns: 1fr; }
  .event-felt-persistence { grid-template-columns: 1fr; }
}
/* KPI thermiques/ressentis : même grammaire que les cartes horaires/quotidiennes. */
@media (min-width: 721px) {
  .event-remarkable { align-content: start; }
  .event-remarkable-value { justify-content: flex-start; padding: 12px 48px 5px 0; min-height: 60px; }
  .event-remarkable > a,.event-remarkable > em { justify-self: start; }
}

/* NIVIS_PHASE4_R5 — finition desktop, rangs et modales */
@media (min-width: 721px) {
  /* Desktop assumé : valeurs de base intégrées au tableau, capsules réservées aux indicateurs analytiques. */
  .event-days-table th,.event-days-table td { padding: 7px 9px; }
  .event-days-table tbody tr { height: 43px; }
  .event-days-desktop .event-day-value.desktop-compact { min-width: 64px; min-height: 29px; padding: 3px 8px; border-radius: 8px; }
  .event-days-desktop .event-day-value.desktop-compact b { font-size: .82rem; }
  .event-day-plain { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 58px; min-height: 28px; position: relative; font-weight: 760; }
  .event-day-plain .event-record-marks { position: static; transform: none; display: inline-flex; gap: 1px; }
  .event-day-plain .event-record-marks img { width: 27px; height: 27px; }
  .event-day-cell.cell-tn { background: rgba(45,115,191,.035); }
  .event-day-cell.cell-tm { background: rgba(36,147,92,.035); }
  .event-day-cell.cell-tx { background: rgba(217,48,62,.035); }
  .event-day-cell.cell-night { background: rgba(108,78,186,.035); }
  .event-day-cell.cell-diurnal { background: rgba(217,134,30,.035); }
  .event-day-cell.cell-amplitude { background: rgba(110,86,164,.035); }
  .event-day-cell.cell-percentile { background: rgba(116,71,180,.025); }
  .event-day-cell.cell-neutral { background: rgba(96,119,137,.025); }
}

/* Les médailles Top 3 sont une information secondaire en bas de carte, comme dans les KPI horaires. */
.event-remarkable-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; min-height: 36px; margin-top: 5px; }
.event-remarkable-footer > a { align-self: center; }
.event-remarkable-footer .event-record-marks { position: static; right: auto; top: auto; transform: none; margin-left: auto; }
.event-remarkable-footer .event-record-marks img { width: 34px; height: 34px; }
.event-remarkable-value { padding-right: 0; }

/* Singularité saisonnière : rangs 4.5 restaurés, compteurs sigma nettement séparés. */
.event-seasonal-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.event-seasonal-kpi { min-height: 145px; align-content: start; }
.event-seasonal-kpi > strong { margin-top: 13px; }
.event-seasonal-ranks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 12px; }
.event-seasonal-ranks .event-rank-button { font-size: .67rem; padding: 5px 8px; }
.event-seasonal-ranks .secondary-seasonal-rank { background: #eef3f6; border-color: #c8d5dd; color: #395a6d; }
.event-sigma-days-card { grid-column: 1 / -1; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.event-sigma-days-card > small { display: block; color: var(--ink-soft); font-weight: 850; text-transform: uppercase; }
.event-sigma-days-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 10px; }
.event-sigma-days-grid > span { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid #d7e2e8; border-radius: 12px; background: #f7fafc; }
.event-sigma-days-grid em { color: var(--ink-soft); font-size: .75rem; font-style: normal; font-weight: 800; }
.event-sigma-days-grid strong { font-size: 1.15rem; }
.event-record-counts > article { align-content: start; }
.event-record-counts .event-seasonal-ranks { margin-top: 9px; padding-top: 0; }
.event-date-link { width: fit-content; }

/* Modales de classement : même grille compacte pour durée, sévérité, seuils, acclimatation et autres métriques. */
.event-ranking-dialog { width: min(680px,calc(100vw - 32px)); }
.event-ranking-body { padding: 8px 14px 14px; }
.event-ranking-row { grid-template-columns: 48px minmax(260px,1fr) minmax(145px,175px); gap: 10px; padding: 10px 8px; }
.event-ranking-period { min-width: 0; }
.event-ranking-result { display: grid; justify-items: end; align-content: center; gap: 2px; white-space: nowrap; }
.event-ranking-result b { font-size: 1rem; }
.event-ranking-result em { color: var(--ink-soft); font-size: .72rem; font-style: normal; font-weight: 720; }
.event-record-ranking-medal { width: 36px; height: 36px; object-fit: contain; }

.event-chart-error { margin: 28px; padding: 18px; border: 1px solid #e5c8c8; border-radius: 12px; color: #8a3434; background: #fff7f7; }

@media (max-width: 720px) {
  .event-seasonal-grid { grid-template-columns: 1fr; }
  .event-sigma-days-card { grid-column: auto; }
  .event-sigma-days-grid { grid-template-columns: 1fr; }
  .event-ranking-dialog { width: min(100%,calc(100vw - 18px)); }
  .event-ranking-row { grid-template-columns: 40px minmax(0,1fr); }
  .event-ranking-result { grid-column: 2; justify-items: start; margin-top: 4px; }
  .event-remarkable-footer .event-record-marks img { width: 29px; height: 29px; }
}

/* NIVIS_PHASE4_R6 — clôture mise en forme desktop + passe mobile */

/* Détail journalier desktop : reprendre strictement la cellule Records des Données quotidiennes. */
@media (min-width: 761px) {
  .event-days-desktop .event-day-record-cell{
    display:grid!important;
    grid-template-columns:minmax(34px,1fr) auto minmax(34px,1fr)!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
  }
  .event-days-desktop .event-day-record-slot{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .event-days-desktop .event-day-record-value{
    min-width:66px!important;
    text-align:center!important;
  }
  .event-days-desktop .event-day-record-slot .event-record-mark-trigger{
    display:grid!important;
    place-items:center!important;
    width:30px!important;
    height:30px!important;
  }
  .event-days-desktop .event-day-record-slot img{
    width:28px!important;
    height:28px!important;
    object-fit:contain!important;
  }
  /* La cellule desktop ne doit plus accumuler de badges hors des deux emplacements dédiés. */
  .event-days-desktop .event-day-plain>.event-record-marks{display:none!important}

  /* Le contexte doit être immédiatement distinct de l'événement. */
  .event-days-table tr.out-event>th,
  .event-days-table tr.out-event>td{
    background:#edf1f4!important;
    color:#677d8c!important;
  }
  .event-days-table tr.in-event.tone-warm>th,
  .event-days-table tr.in-event.tone-warm>td{background:#fff5f3!important}
  .event-days-table tr.in-event.tone-cold>th,
  .event-days-table tr.in-event.tone-cold>td{background:#f1f7fd!important}
  .event-days-table tr.in-event.tone-neutral>th,
  .event-days-table tr.in-event.tone-neutral>td{background:#f7f4fb!important}
  .event-days-table tr.in-event:first-child>*{border-top-width:2px!important}
  .event-days-table tr.in-event.tone-warm:first-child>*{border-top-color:#e24b51!important}
  .event-days-table tr.in-event.tone-cold:first-child>*{border-top-color:#367fc1!important}
  .event-days-table tr.in-event.tone-neutral:first-child>*{border-top-color:#7658a6!important}
}

/* Valeurs des KPI du détail journalier : même code couleur que le reste de Nivis. */
.event-day-summary-kpis .event-kpi.value-tn>strong{color:#176fcf!important}
.event-day-summary-kpis .event-kpi.value-tm>strong{color:#138d52!important}
.event-day-summary-kpis .event-kpi.value-tx>strong{color:#d92e38!important}
.event-day-summary-kpis .event-kpi.value-night>strong{color:#674bb1!important}
.event-day-summary-kpis .event-kpi.value-day>strong{color:#d57b16!important}
.event-day-summary-kpis .event-kpi.value-felt-warm>strong{color:#df5c24!important}
.event-day-summary-kpis .event-kpi.value-felt-cold>strong{color:#287bc5!important}
.event-day-summary-kpis .event-kpi.value-amplitude>strong{color:#6f52a5!important}

/* Les limites de période restent lisibles mais ne peuvent pas être confondues avec le curseur de survol. */
.event-period-boundary{
  stroke-dasharray:none!important;
  stroke-width:1px!important;
  opacity:.38!important;
}
.event-hover-line{
  stroke:#315e7b!important;
  stroke-width:1.35px!important;
  stroke-dasharray:5 5!important;
  opacity:.82!important;
  pointer-events:none!important;
}
.event-hover-line[hidden]{display:none!important}

@media (max-width: 760px) {
  /* Événements : Famille puis Année sur deux lignes complètes. */
  .events-toolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .events-toolbar>label{
    width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:5px!important;
  }
  .events-toolbar>label select{
    width:100%!important;
    min-width:0!important;
  }
  .events-view-tabs{grid-column:1!important;width:100%!important}

  /* Graphique principal réellement responsive : pas de canevas 520 px à faire défiler. */
  .event-main-line-chart{
    margin:10px 0 0!important;
    min-height:0!important;
    overflow:visible!important;
    padding:8px 6px 2px!important;
  }
  .event-main-line-chart .event-line-wrap{
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .event-main-line-chart svg{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
  }
  .event-main-line-chart .event-chart-legend{
    position:static!important;
    width:auto!important;
    margin-inline:auto!important;
  }
  .event-threshold-label{
    font-size:8.5px!important;
    stroke-width:3px!important;
  }
  .event-line-tooltip{
    position:absolute!important;
    left:50%!important;
    width:calc(100% - 22px)!important;
    max-width:330px!important;
    transform:translateX(-50%)!important;
    pointer-events:none!important;
  }

  /* Comparaison historique mobile : liste classée + barre de valeur visible. */
  .event-history-chart{
    min-height:0!important;
    display:block!important;
  }
  .events-mobile-comparison{
    display:grid!important;
    gap:8px!important;
    width:100%!important;
    margin-top:8px!important;
  }
  .events-mobile-comparison-row{
    position:relative!important;
    overflow:hidden!important;
    isolation:isolate!important;
    grid-template-columns:38px minmax(0,1fr) auto!important;
    min-height:70px!important;
    padding:10px 11px!important;
    background:#fff!important;
  }
  .events-mobile-comparison-row::before{
    content:"";
    position:absolute;
    z-index:-1;
    left:0;bottom:0;
    width:var(--event-mobile-bar,0%);
    height:5px;
    background:#78a9c7;
    opacity:.75;
  }
  .events-mobile-comparison-row.current::before{background:#287fc5!important;height:6px!important;opacity:1!important}
  .events-mobile-comparison-row .main strong{white-space:normal!important;line-height:1.15!important}
  .events-mobile-comparison-row .metric{min-width:72px!important}
}

/* NIVIS_PHASE4_R7 — finitions validation desktop/mobile */

/* KPI du détail : valeur neutre, couleur portée par le liseré supérieur. */
.event-day-summary-kpis .event-kpi>strong{color:#0b3551!important}
.event-day-summary-kpis .event-kpi.value-tn::before{background:#2576ce!important}
.event-day-summary-kpis .event-kpi.value-tm::before{background:#1e9b59!important}
.event-day-summary-kpis .event-kpi.value-tx::before{background:#e33a45!important}
.event-day-summary-kpis .event-kpi.value-night::before{background:#6c4eba!important}
.event-day-summary-kpis .event-kpi.value-day::before{background:#d9861e!important}
.event-day-summary-kpis .event-kpi.value-felt-warm::before{background:#e66b2b!important}
.event-day-summary-kpis .event-kpi.value-felt-cold::before{background:#287bc5!important}
.event-day-summary-kpis .event-kpi.value-amplitude::before{background:#6e56a4!important}

/* Crosshair : totalement absent au repos, visible uniquement pendant hover/toucher actif. */
.event-hover-line{opacity:0!important;visibility:hidden!important;display:block!important;transition:opacity .06s linear!important}
.event-hover-line.is-visible{opacity:.82!important;visibility:visible!important}

@media (min-width:761px){
  /* Tableau événement = même grammaire que Données quotidiennes. */
  .event-days-table thead th.head-day{text-align:center!important}
  .event-days-table tbody th{text-align:left!important}

  /* Contexte adjacent uniforme et clairement grisé. */
  .event-days-table tr.out-event>th,
  .event-days-table tr.out-event>td{background:#edf1f4!important;color:#778b98!important}

  /* Journées de l'événement : chaque variable reprend doucement sa couleur d'entête. */
  .event-days-table tr.in-event>th{background:#fff!important;color:#0b3551!important}
  .event-days-table tr.in-event>td.cell-tn{background:#edf6ff!important}
  .event-days-table tr.in-event>td.cell-tm{background:#edf9f2!important}
  .event-days-table tr.in-event>td.cell-tx{background:#fff0f1!important}
  .event-days-table tr.in-event>td.cell-night{background:#f4effd!important}
  .event-days-table tr.in-event>td.cell-diurnal{background:#fff4e7!important}
  .event-days-table tr.in-event>td.cell-amplitude{background:#f3effa!important}
  .event-days-table tr.in-event>td.cell-felt-warm{background:#fff2ec!important}
  .event-days-table tr.in-event>td.cell-felt-cold{background:#edf6ff!important}
  .event-days-table tr.in-event>td.cell-percentile{background:#f7f2fc!important}
  .event-days-table tr.in-event>td.cell-neutral{background:#f8fafb!important}

  /* Sévérité porte la polarité chaud/froid. Score neutre reste violet. */
  .event-days-table tr.in-event>td.cell-score-warm{background:#ffe2df!important;color:#8e2830!important}
  .event-days-table tr.in-event>td.cell-score-cold{background:#dfeeff!important;color:#1f5e94!important}
  .event-days-table tr.in-event>td.cell-score-neutral{background:#eee8f8!important;color:#554078!important}

  /* Les cellules analytiques gardent leur capsule interne, sans aplat de ligne parasite. */
  .event-days-table tr.in-event>td.cell-anomaly,
  .event-days-table tr.in-event>td.cell-z{background:#fff!important}
}

@media (max-width:760px){
  /* La comparaison historique mobile doit toujours posséder une vraie zone de rendu. */
  .event-history-chart{width:100%!important;min-height:84px!important;overflow:visible!important}
  .events-mobile-comparison{visibility:visible!important;opacity:1!important}
}

/* NIVIS_PHASE4_R8 — finitions tableau desktop + renderer partagé */
@media (min-width:761px){
  /* Anomalie et sigma : plus aucune capsule mobile, la couleur appartient à la cellule entière. */
  .event-days-table tr.in-event>td.cell-anomaly.tone-neutral,
  .event-days-table tr.in-event>td.cell-z.tone-neutral{background:#f6f8fa!important;color:#526b7a!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-1,
  .event-days-table tr.in-event>td.cell-z.tone-warm-1{background:#ffe9e5!important;color:#8d3e43!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-2,
  .event-days-table tr.in-event>td.cell-z.tone-warm-2{background:#ffcfc7!important;color:#873239!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-3,
  .event-days-table tr.in-event>td.cell-z.tone-warm-3{background:#f79e99!important;color:#742029!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-4,
  .event-days-table tr.in-event>td.cell-z.tone-warm-4{background:#dd4a52!important;color:#fff!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-1,
  .event-days-table tr.in-event>td.cell-z.tone-cold-1{background:#e7f1fb!important;color:#315f80!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-2,
  .event-days-table tr.in-event>td.cell-z.tone-cold-2{background:#cde4f7!important;color:#24577d!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-3,
  .event-days-table tr.in-event>td.cell-z.tone-cold-3{background:#94c5e9!important;color:#164b72!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-4,
  .event-days-table tr.in-event>td.cell-z.tone-cold-4{background:#347fc0!important;color:#fff!important}
  .event-days-desktop .event-day-plain{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:32px!important;padding:0!important;background:transparent!important;border-radius:0!important}
  .event-days-desktop .event-day-plain b{font-size:.82rem!important;color:inherit!important}
}

/* Une vraie fiche native dans la modale quotidienne, sans iframe. */
.nivis-shared-event-modal[hidden]{display:none!important}
.nivis-shared-event-modal{position:fixed;inset:0;z-index:21000;display:grid;place-items:center;padding:14px}
.nivis-shared-event-backdrop{position:absolute;inset:0;background:rgba(12,37,52,.48);backdrop-filter:blur(4px)}
.nivis-shared-event-dialog{position:relative;width:min(1280px,calc(100vw - 28px));height:min(94vh,1050px);overflow:hidden;border:1px solid #bfd2de;border-radius:24px;background:#eef5fa;box-shadow:0 24px 70px rgba(9,39,58,.28)}
.nivis-shared-event-sticky-head{position:absolute;z-index:22;top:12px;right:12px;display:flex;justify-content:flex-end;pointer-events:none}
.nivis-shared-event-scroll{height:100%;overflow:auto;padding:18px 18px 28px;overscroll-behavior:contain}
.nivis-shared-event-root{max-width:none!important;margin:0!important}
.nivis-shared-event-close{position:relative;z-index:1;width:44px;height:44px;border:1px solid #c8d9e3;border-radius:50%;background:rgba(255,255,255,.98);color:#0b3551;font-size:1.45rem;line-height:1;cursor:pointer;box-shadow:0 4px 16px rgba(11,53,81,.12);pointer-events:auto}
body.nivis-shared-event-open{overflow:hidden!important}
.events-loading,.event-chart-loading{padding:20px;color:#607789;text-align:center}
@media(max-width:760px){
  .nivis-shared-event-modal{padding:4px}
  .nivis-shared-event-dialog{width:calc(100vw - 8px);height:97dvh;border-radius:16px;display:grid;grid-template-rows:52px minmax(0,1fr)}
  .nivis-shared-event-sticky-head{position:relative;inset:auto;z-index:30;min-height:52px;padding:6px 8px;align-items:center;background:#eef5fa;border-bottom:1px solid #d1e0e8;box-shadow:0 3px 10px rgba(22,61,83,.06)}
  .nivis-shared-event-scroll{height:auto;min-height:0;padding:0 8px 22px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .nivis-shared-event-root>.event-detail-hero{margin-top:8px}
  .nivis-shared-event-root .event-detail-tabs{top:0!important;width:calc(100% + 16px)!important;margin-left:-8px!important;background:#e5eef4!important;box-shadow:0 4px 10px rgba(23,63,84,.08)}
  .nivis-shared-event-close{top:auto!important;right:auto!important;width:38px;height:38px}
}


/* NIVIS_PHASE4_R9 — empilement modal, fermeture mobile et KPI/table desktop */
/* Le classement est un modal global au-dessus de la fiche événement partagée. */
.event-ranking-modal{z-index:23000!important}
.event-ranking-close,
.nivis-shared-event-close{
  box-sizing:border-box!important;
  flex:0 0 42px!important;
  width:42px!important;height:42px!important;
  min-width:42px!important;min-height:42px!important;
  max-width:42px!important;max-height:42px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  display:grid!important;place-items:center!important;
  line-height:1!important;
  border-radius:50%!important;
}
/* Les valeurs restent bleu nuit : le code couleur est porté par le bandeau supérieur. */
.event-day-summary-kpis .event-kpi[class*="value-"]>strong{color:var(--ink)!important}
@media (max-width:760px){
  .event-ranking-close,.nivis-shared-event-close{
    flex-basis:38px!important;width:38px!important;height:38px!important;
    min-width:38px!important;min-height:38px!important;max-width:38px!important;max-height:38px!important;
  }
}
@media (min-width:761px){
  /* Aucun reliquat de capsule mobile dans Anomalie / sigma sur desktop. */
  .event-days-desktop td.cell-anomaly .event-day-plain,
  .event-days-desktop td.cell-z .event-day-plain{
    width:100%!important;min-width:0!important;min-height:100%!important;
    padding:0!important;margin:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important;
  }
}

/* NIVIS_PHASE4_R10 — comparaison historique mobile + classes acclimatation + modales rang */
.event-acclimatation-section{position:relative!important}
.event-acclimatation-class{
  position:absolute;top:20px;right:22px;z-index:2;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:28px;padding:4px 10px;border-radius:999px;
  background:#edf4f8;color:#1a5d7e;font-size:.72rem;font-weight:850;
  box-shadow:inset 0 0 0 1px #d6e4ec;
}
.event-history-intro-mobile{display:none!important}
.event-ranking-rank-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;min-width:38px;min-height:38px;
  border:1px solid #c5d7e2;border-radius:50%;background:#f7fbfd;
  color:#214d67;font-size:.78rem;font-weight:900;line-height:1;
}
/* Portal global : le classement doit rester interactif au-dessus d'une fiche événement popup.
   IMPORTANT : ne jamais forcer display sur un modal [hidden]. */
.event-ranking-modal:not([hidden]){
  z-index:2147483000!important;
  box-sizing:border-box!important;
  width:100dvw!important;height:100dvh!important;
  max-width:none!important;max-height:none!important;
  padding:22px!important;
  display:grid!important;place-items:center!important;
  pointer-events:auto!important;
}
.event-ranking-dialog{
  box-sizing:border-box!important;
  width:100%!important;max-width:680px!important;
  margin-inline:auto!important;
  transform:none!important;left:auto!important;right:auto!important;
}
.event-ranking-close,
.nivis-shared-event-close{
  -webkit-appearance:none!important;appearance:none!important;
  box-sizing:border-box!important;
  inline-size:42px!important;block-size:42px!important;
  width:42px!important;height:42px!important;
  min-width:42px!important;min-height:42px!important;
  max-width:42px!important;max-height:42px!important;
  flex:0 0 42px!important;aspect-ratio:1/1!important;
  padding:0!important;margin:0!important;border-radius:999px!important;
  display:grid!important;place-items:center!important;line-height:1!important;
}
@media(max-width:760px){
  .event-history-intro-desktop{display:none!important}
  .event-history-intro-mobile{display:block!important}
  .event-acclimatation-class{top:14px;right:14px;min-height:25px;padding:3px 8px;font-size:.66rem}
  .event-acclimatation-section .event-section-header{padding-right:92px}
  .event-ranking-modal{
    width:100dvw!important;height:100dvh!important;
    padding:10px 12px!important;
  }
  .event-ranking-dialog{
    width:100%!important;max-width:calc(100dvw - 24px)!important;
    margin-left:auto!important;margin-right:auto!important;
  }
  .event-ranking-close,.nivis-shared-event-close{
    inline-size:38px!important;block-size:38px!important;
    width:38px!important;height:38px!important;
    min-width:38px!important;min-height:38px!important;
    max-width:38px!important;max-height:38px!important;
    flex-basis:38px!important;
  }
  .event-ranking-rank-badge{width:34px;height:34px;min-width:34px;min-height:34px;font-size:.72rem}
}
.events-compare-intro-mobile{display:none!important}
@media(max-width:760px){
  .events-compare-intro-desktop{display:none!important}
  .events-compare-intro-mobile{display:block!important}
}


/* NIVIS_PHASE4_R10_1 — autorité absolue de l’état hidden (desktop + mobile).
   R10 forçait display:grid!important sur event-ranking-modal, ce qui rendait
   les classements vides visibles et empêchait leur fermeture. */
.event-ranking-modal[hidden]{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Phase 5 G4 — retour visuel explicite pendant une fiche événementielle à froid. */
.event-detail-loading{
  width:min(720px,100%);
  margin:18px auto;
  padding:22px 24px;
  border:1px solid #cbdce7;
  border-radius:18px;
  background:rgba(255,255,255,.84);
  box-shadow:0 8px 24px rgba(25,70,96,.08);
  color:#173f59;
}
.event-detail-loading-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.event-detail-loading-head strong{font-size:1rem;color:#0b3551}
.event-detail-loading-head span{flex:0 0 auto;font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:800;color:#617b8c}
.event-detail-loading-track{position:relative;height:8px;overflow:hidden;border-radius:999px;background:#dfeaf1}
.event-detail-loading-track span{position:absolute;inset:0 auto 0 0;width:38%;border-radius:inherit;background:linear-gradient(90deg,#2685df,#44a7ef,#2685df);animation:nivis-event-loading 1.25s ease-in-out infinite}
.event-detail-loading p{margin:12px 0 0;font-size:.86rem;line-height:1.45;color:#607789;text-align:center}
@keyframes nivis-event-loading{0%{transform:translateX(-115%)}100%{transform:translateX(365%)}}
@media (prefers-reduced-motion:reduce){.event-detail-loading-track span{animation-duration:2.8s}}
@media (max-width:520px){.event-detail-loading{margin:12px auto;padding:18px 16px;border-radius:15px}.event-detail-loading-head{align-items:flex-start}.event-detail-loading-head strong{font-size:.94rem}}


/* Détail journalier mobile : la Sévérité/Score est le KPI analytique principal. */
@media(max-width:760px){
  .event-day-card.in-event.tone-warm .event-day-card-grid .metric-severity .event-day-value{
    background:#d93643!important;color:#fff!important;border:1px solid #c92d3a!important;box-shadow:0 4px 12px rgba(188,39,52,.14)
  }
  .event-day-card.in-event.tone-cold .event-day-card-grid .metric-severity .event-day-value{
    background:#287bc5!important;color:#fff!important;border:1px solid #2169aa!important;box-shadow:0 4px 12px rgba(33,105,170,.14)
  }
  .event-day-card-grid .metric-severity .event-day-value b{font-size:1.04rem!important;font-weight:950!important}
  .event-day-card.in-event.tone-warm .metric-anomaly .event-day-value[class*="tone-warm-"]{background:#f8d9d6!important;color:#7e3238!important}
  .event-day-card.in-event.tone-warm .metric-z .event-day-value[class*="tone-warm-"]{background:#fbe9e6!important;color:#875057!important}
  .event-day-card.in-event.tone-cold .metric-anomaly .event-day-value[class*="tone-cold-"]{background:#dcecf9!important;color:#285b7d!important}
  .event-day-card.in-event.tone-cold .metric-z .event-day-value[class*="tone-cold-"]{background:#edf5fb!important;color:#4b6d83!important}
  .event-day-card.tone-cold .event-day-stage.peak{color:#1d6299;background:#e3f1fd}
  .event-day-stage.peak{white-space:nowrap}
}

/* ==========================================================================
   G11 — détail journalier : hiérarchie Sévérité/Score et popup desktop
   ========================================================================== */
@media(min-width:761px){
  /* Vue directe Événements inchangée ; seul le contexte popup compense son padding de scroll. */
  .nivis-shared-event-modal .event-days-table thead th{
    top:-18px!important;
    box-shadow:0 -18px 0 #eef5fa!important;
  }
  /* Anomalie / sigma restent informatifs mais ne concurrencent plus la Sévérité. */
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-1,
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-2,
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-3,
  .event-days-table tr.in-event>td.cell-anomaly.tone-warm-4{background:#f8ddda!important;color:#7a3940!important}
  .event-days-table tr.in-event>td.cell-z.tone-warm-1,
  .event-days-table tr.in-event>td.cell-z.tone-warm-2,
  .event-days-table tr.in-event>td.cell-z.tone-warm-3,
  .event-days-table tr.in-event>td.cell-z.tone-warm-4{background:#fbeae7!important;color:#835158!important}
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-1,
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-2,
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-3,
  .event-days-table tr.in-event>td.cell-anomaly.tone-cold-4{background:#dcecf9!important;color:#285b7d!important}
  .event-days-table tr.in-event>td.cell-z.tone-cold-1,
  .event-days-table tr.in-event>td.cell-z.tone-cold-2,
  .event-days-table tr.in-event>td.cell-z.tone-cold-3,
  .event-days-table tr.in-event>td.cell-z.tone-cold-4{background:#edf5fb!important;color:#4b6d83!important}
}

/* Intensité du Score = classes métier existantes : <1,5 / <2,5 / <3,5 / <5 / >=5. */
.event-days-table tr.in-event>td.cell-score-warm.severity-warm-1{background:#fdeceb!important;color:#7e3b40!important}
.event-days-table tr.in-event>td.cell-score-warm.severity-warm-2{background:#f8cbc8!important;color:#7f3037!important}
.event-days-table tr.in-event>td.cell-score-warm.severity-warm-3{background:#f39a95!important;color:#74232c!important}
.event-days-table tr.in-event>td.cell-score-warm.severity-warm-4{background:#e85c64!important;color:#fff!important}
.event-days-table tr.in-event>td.cell-score-warm.severity-warm-5{background:#bd2636!important;color:#fff!important}
.event-days-table tr.in-event>td.cell-score-cold.severity-cold-1{background:#edf5fb!important;color:#3f6781!important}
.event-days-table tr.in-event>td.cell-score-cold.severity-cold-2{background:#d7e9f7!important;color:#2b5d7f!important}
.event-days-table tr.in-event>td.cell-score-cold.severity-cold-3{background:#a8d0ec!important;color:#174e74!important}
.event-days-table tr.in-event>td.cell-score-cold.severity-cold-4{background:#579bd1!important;color:#fff!important}
.event-days-table tr.in-event>td.cell-score-cold.severity-cold-5{background:#2169aa!important;color:#fff!important}
.event-days-table tr.in-event>td.cell-score-neutral.severity-neutral-1{background:#f5f1fa!important}.event-days-table tr.in-event>td.cell-score-neutral.severity-neutral-2{background:#e8dff3!important}.event-days-table tr.in-event>td.cell-score-neutral.severity-neutral-3{background:#d3c0e6!important}.event-days-table tr.in-event>td.cell-score-neutral.severity-neutral-4{background:#9976bd!important;color:#fff!important}.event-days-table tr.in-event>td.cell-score-neutral.severity-neutral-5{background:#704a99!important;color:#fff!important}

@media(max-width:760px){
  .event-day-card-grid .metric-severity .event-day-value{border:1px solid transparent!important;box-shadow:0 4px 12px rgba(30,62,82,.09)!important}
  .event-day-card.in-event.tone-warm .event-day-card-grid .metric-severity.severity-warm-1 .event-day-value{background:#fdeceb!important;color:#7e3b40!important}
  .event-day-card.in-event.tone-warm .event-day-card-grid .metric-severity.severity-warm-2 .event-day-value{background:#f8cbc8!important;color:#7f3037!important}
  .event-day-card.in-event.tone-warm .event-day-card-grid .metric-severity.severity-warm-3 .event-day-value{background:#f39a95!important;color:#74232c!important}
  .event-day-card.in-event.tone-warm .event-day-card-grid .metric-severity.severity-warm-4 .event-day-value{background:#e85c64!important;color:#fff!important}
  .event-day-card.in-event.tone-warm .event-day-card-grid .metric-severity.severity-warm-5 .event-day-value{background:#bd2636!important;color:#fff!important}
  .event-day-card.in-event.tone-cold .event-day-card-grid .metric-severity.severity-cold-1 .event-day-value{background:#edf5fb!important;color:#3f6781!important}
  .event-day-card.in-event.tone-cold .event-day-card-grid .metric-severity.severity-cold-2 .event-day-value{background:#d7e9f7!important;color:#2b5d7f!important}
  .event-day-card.in-event.tone-cold .event-day-card-grid .metric-severity.severity-cold-3 .event-day-value{background:#a8d0ec!important;color:#174e74!important}
  .event-day-card.in-event.tone-cold .event-day-card-grid .metric-severity.severity-cold-4 .event-day-value{background:#579bd1!important;color:#fff!important}
  .event-day-card.in-event.tone-cold .event-day-card-grid .metric-severity.severity-cold-5 .event-day-value{background:#2169aa!important;color:#fff!important}
}


/* G12 — Top 3 mobile : badges dans l'en-tête, jamais superposés aux valeurs. */
@media(max-width:760px){
  .event-day-card>header{align-items:flex-start!important;flex-wrap:wrap!important}
  .event-day-card-header-meta{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:70%}
  .event-day-header-records{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
  .event-day-header-record-group{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
  .event-day-header-record-group>em{font-style:normal;font-size:.66rem;color:#486778;font-weight:850}
  .event-day-header-record-group .event-record-marks{display:inline-flex;gap:2px;position:static!important;transform:none!important}
  .event-day-header-record-group .event-record-mark-trigger{margin:0!important}
  .event-day-header-record-group .event-record-mark-trigger img{width:28px!important;height:28px!important;object-fit:contain!important}
  .event-day-card-grid .event-day-value>.event-record-marks{display:none!important}
}

/* ==========================================================================
   G13 — mobile : aucune médaille ne peut se détacher de sa carte
   ========================================================================== */
@media(max-width:760px){
  .event-detail-native .event-kpi,
  .event-detail-native .event-remarkable{
    overflow:hidden!important;
    position:relative!important;
  }
  .event-detail-native .event-kpi .event-record-marks,
  .event-detail-native .event-remarkable .event-record-marks{
    position:static!important;
    inset:auto!important;
    right:auto!important;
    top:auto!important;
    transform:none!important;
  }
  .event-detail-native .event-remarkable-footer .event-record-marks{
    margin-left:auto!important;
  }
  .event-detail-native .event-day-header-record-group .event-record-marks{
    position:static!important;
    transform:none!important;
  }
}

/* ==========================================================================
   Phase 5 G29 — propriétaire canonique des correctifs Événements actifs/candidats
   Migré depuis finishing.css sans changement de rendu.
   Le scope :where(body:not(.event-embed-body)) préserve le rendu G28 de l'iframe
   événementielle, qui ne chargeait historiquement pas finishing.css.
   ========================================================================== */
:where(body:not(.event-embed-body)) .event-list-card.is-candidate{border-style:dashed}
:where(body:not(.event-embed-body)) .event-candidate-list-metrics span:nth-child(2) strong{font-size:.76rem;line-height:1.2;max-width:210px}
:where(body:not(.event-embed-body)) .event-candidate-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
:where(body:not(.event-embed-body)) .event-candidate-progress article{padding:14px;border:1px solid #dbe7ed;border-radius:13px;background:#f7fafc}
:where(body:not(.event-embed-body)) .event-candidate-progress small{display:block;color:#6d8491;font-size:.66rem;text-transform:uppercase;font-weight:850;letter-spacing:.04em}
:where(body:not(.event-embed-body)) .event-candidate-progress strong{display:block;margin-top:6px;color:#123f59;font-size:.95rem}
:where(body:not(.event-embed-body)) .event-candidate-reason{margin:0 0 12px;color:#375c70;line-height:1.55}
:where(body:not(.event-embed-body)) .event-chronology-explanation{margin-bottom:10px!important}

@media(max-width:700px){
  :where(body:not(.event-embed-body)) .event-candidate-progress{grid-template-columns:1fr}
}


/* R1.4 — fiche candidat : aucun KPI/rang d'événement confirmé. */
:where(body:not(.event-embed-body)) .event-candidate-confirmation{padding:22px 24px;border:1px solid #e6bf6b;border-radius:18px;background:#fff7df}
:where(body:not(.event-embed-body)) .event-candidate-confirmation>small{display:block;color:#21659a;font-size:.68rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
:where(body:not(.event-embed-body)) .event-candidate-confirmation>strong{display:block;margin:8px 0 12px;color:#714800;font-size:1.9rem;line-height:1}
:where(body:not(.event-embed-body)) .event-candidate-confirmation-bar{height:14px;border-radius:999px;background:#e9e0c8;overflow:hidden}
:where(body:not(.event-embed-body)) .event-candidate-confirmation-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e69b17,#d85439)}
:where(body:not(.event-embed-body)) .event-candidate-confirmation p{margin:13px 0 0;color:#163f58;font-weight:800;line-height:1.45}
:where(body:not(.event-embed-body)) .event-candidate-thresholds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
:where(body:not(.event-embed-body)) .event-candidate-thresholds article{padding:14px;border:1px solid #dbe7ed;border-radius:13px;background:#fff}
:where(body:not(.event-embed-body)) .event-candidate-thresholds small{display:block;color:#6d8491;font-size:.66rem;text-transform:uppercase;font-weight:850}
:where(body:not(.event-embed-body)) .event-candidate-thresholds strong{display:block;margin-top:6px;color:#123f59;font-size:.95rem}
:where(body:not(.event-embed-body)) .event-candidate-days{display:grid;gap:8px;margin-top:12px}
:where(body:not(.event-embed-body)) .event-candidate-day{display:grid;grid-template-columns:140px 120px minmax(0,1fr);gap:12px;align-items:center;padding:10px 12px;border:1px solid #dfe8ed;border-radius:10px;background:#f7fafc;color:#234f68}
:where(body:not(.event-embed-body)) .event-candidate-day strong{color:#123f59}:where(body:not(.event-embed-body)) .event-candidate-day em{font-style:normal;color:#527080}

@media(max-width:700px){:where(body:not(.event-embed-body)) .event-candidate-thresholds{grid-template-columns:1fr}:where(body:not(.event-embed-body)) .event-candidate-day{grid-template-columns:1fr;gap:4px}}
