/* Nivis 5.0.0-rc.1 — Phase 5 G30
 * Composants CSS transversaux canoniques.
 * Propriétaire unique des KPI/records partagés, composants Migration B,
 * modales de classement, sélecteurs temporels et micro-interactions communes.
 * Aucun seuil ni calcul météorologique.
 */
/* NIVIS_PHASE4_LOT3_RANKINGS — Classements & Records */
:root{--nivis-rank-navy: #0b3556;
  --nivis-rank-blue: #15648a;
  --nivis-rank-line: #d3e1ea;
  --nivis-rank-soft: #f5f9fc;
  --nivis-rank-gold: #b9882f;
  --nivis-rank-silver: #70869a;
  --nivis-rank-bronze: #a56742;}
/* NIVIS_PHASE4_MIGRATION_B */
.nivis-mb-legacy-hidden{display:none!important}
.mb-root{--blue:#176ac1;--red:#d62935;--green:#13884d;--cyan:#168fa8;--ink:#14394f;--muted:#657c89;--border:#c9d8e3;--panel:#fff;margin-top:1rem;color:var(--ink)}
.mb-root button,.mb-root input{font:inherit}
.mb-tabs,.mb-segment,.mb-step{display:inline-flex;gap:3px;background:#e9f0f4;border-radius:11px;padding:3px}
.mb-tabs button,.mb-segment button,.mb-step button{border:0;background:transparent;border-radius:8px;padding:.48rem .72rem;color:#536b79;font-weight:850;cursor:pointer}
.mb-tabs button.active,.mb-segment button.active,.mb-step button.active{background:#fff;color:#0d4b70;box-shadow:0 2px 7px rgba(18,57,80,.13)}
.mb-date-nav{display:flex;align-items:center;gap:.35rem}
.mb-date-nav button,.mb-date-nav input{border:1px solid #bdd0dd;background:#fff;border-radius:9px;padding:.45rem .62rem;color:#194e6d;font-weight:800}
.mb-date-nav button{cursor:pointer}
.mb-anomaly-toolbar{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;padding:.7rem .9rem;background:#fff;border:1px solid var(--border);border-radius:13px;margin:.7rem 0}
.mb-anomaly-toolbar>span{font-weight:850}
.mb-anomaly-toolbar small{color:var(--muted)}
.mb-event-banner{display:flex;gap:.45rem;flex-wrap:wrap;margin:.7rem 0}
.mb-event-banner>a{display:flex;align-items:center;gap:.45rem;text-decoration:none;color:var(--ink);padding:.45rem .6rem;border-radius:12px;border:1px solid var(--border);background:#fff}
.mb-event-banner>a.warm{border-left:5px solid var(--red)}
.mb-event-banner>a.cold{border-left:5px solid var(--blue)}
.mb-event-banner img{width:34px;height:34px}
.mb-event-banner strong,.mb-event-banner small{display:block}
.mb-event-banner small{color:var(--muted)}
.mb-summary{display:grid;gap:.6rem;margin:.7rem 0 1rem}
.mb-summary.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.mb-kpi{background:#fff;border:1px solid var(--border);border-top:5px solid #61798a;border-radius:14px;padding:.75rem .8rem;min-width:0}
.mb-kpi.tn{border-top-color:var(--blue)}
.mb-kpi.tm{border-top-color:var(--green)}
.mb-kpi.tx{border-top-color:var(--red)}
.mb-kpi.rain{border-top-color:var(--cyan)}
.mb-kpi.wind{border-top-color:#7c5aaa}
.mb-kpi>img{width:27px;height:27px;float:right}
.mb-kpi>span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;font-weight:900;color:#637987}
.mb-kpi>strong{display:block;margin:.18rem 0;font-size:1.15rem}
.mb-kpi>small{display:block;color:var(--muted);font-size:.7rem}
.mb-kpi small.positive{color:#c62631}
.mb-kpi small.negative{color:#1469b0}
.mb-record-cell{display:grid;grid-template-columns:34px minmax(62px,1fr) 34px;align-items:center;width:100%;margin-top:.12rem}
.mb-record-cell>strong{text-align:center;font-size:1.15rem}
.mb-record-cell .slot{display:flex;justify-content:center;align-items:center;min-width:34px}
.mb-record{width:29px;height:29px;padding:0;border:0;background:transparent;cursor:pointer}
.mb-record img{width:28px;height:28px;object-fit:contain}
.mb-panel{background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:0 6px 18px rgba(25,61,82,.05);overflow:hidden}
.mb-panel-head{padding:.8rem .95rem}
.mb-panel-head>span,.mb-section-head>span{font-size:.65rem;letter-spacing:.06em;font-weight:900;color:#1a6489}
.mb-panel-head h2,.mb-section-head h2{margin:.12rem 0;color:#103b56}
.mb-panel-head p,.mb-section-head p{margin:.12rem 0;color:var(--muted);font-size:.76rem}
.mb-panel-head.split{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.mb-panel-head a{color:#155d88;text-decoration:none;font-weight:800;font-size:.76rem}
.mb-step{margin:.3rem 0 .55rem}
.mb-table-wrap{overflow:auto}
.mb-section-head{padding:.8rem 0}
.mb-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.mb-chart-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:.75rem;min-width:0}
.mb-chart-card.full{grid-column:1/-1}
.mb-chart-card header h3{margin:.05rem 0;color:#103b56}
.mb-chart-card header p{margin:.05rem 0;color:var(--muted);font-size:.72rem}
.mb-chart{min-height:260px}
.mb-chart-controls{display:flex;justify-content:space-between;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.15rem 0 .35rem}
.mb-chart-legend,.mb-chart-stats{display:flex;gap:.35rem;flex-wrap:wrap}
.mb-chart-legend button{border:1px solid #c8d6df;background:#fff;border-radius:999px;padding:.28rem .5rem;font-size:.67rem;font-weight:800;color:#405a69;cursor:pointer}
.mb-chart-legend button.off{opacity:.42}
.mb-chart-legend i{display:inline-block;width:10px;height:3px;background:var(--c);margin-right:4px;vertical-align:middle}
.mb-stat{display:inline-flex;align-items:center;gap:.22rem;padding:.28rem .45rem;border-radius:999px;background:#f3f7f9;color:#405a69;font-size:.66rem}
.mb-stat i{width:7px;height:7px;border-radius:50%;background:var(--c)}
.mb-stat b{font-weight:900}
.mb-chart-wrap{position:relative}
.mb-chart-wrap svg{width:100%;height:auto;display:block;overflow:visible}
.mb-chart-wrap .grid line{stroke:#d8e3e9;stroke-width:1}
.mb-chart-wrap .grid line.vertical{stroke-dasharray:3 4}
.mb-chart-wrap .grid text{fill:#6a7f8c;font-size:11px}
.mb-chart-wrap .hit{fill:transparent;pointer-events:all}
.mb-chart-wrap .hover{stroke:#405d6e;stroke-width:1.4;stroke-dasharray:4 4}
.mb-chart-wrap .wind-dir text{fill:#294d63;font-size:14px;font-weight:900}
.mb-tooltip{position:absolute;width:205px;background:#102f43;color:#fff;border-radius:9px;padding:.6rem .65rem;box-shadow:0 8px 28px rgba(9,33,48,.28);font-size:.7rem;pointer-events:none;z-index:10}
.mb-tooltip strong{display:block;margin-bottom:.3rem}
.mb-tooltip span{display:flex;justify-content:space-between;gap:.5rem;margin:.1rem 0}
.mb-tooltip i{width:8px;height:8px;border-radius:50%;margin-right:3px}
.mb-tooltip b{font-weight:900}
.mb-warning{margin:.7rem 0;padding:.7rem .9rem;border-radius:10px;background:#fff0d7;color:#7b5518;font-weight:750}
.conditions dl{margin:0}
.conditions dl>div{display:flex;justify-content:space-between;gap:.5rem;padding:.58rem .95rem;border-top:1px solid #e5edf1}
.conditions dt{color:#5c7280}
.conditions dd{margin:0;font-weight:900;color:#14394f}
.mb-event-fallback{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#eef3f5}
.mb-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:18px}
.mb-modal[hidden]{display:none!important}
.mb-modal .backdrop{position:absolute;inset:0;background:rgba(8,27,39,.46)}
.mb-modal .dialog{position:relative;width:min(680px,calc(100vw - 34px));max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 18px 65px rgba(8,30,44,.25)}
.mb-modal header{position:sticky;top:0;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid #dce6ec}
.mb-modal header small{font-size:.65rem;font-weight:900;color:#1a6489}
.mb-modal header h2{margin:.12rem 0;color:#103b56}
.mb-modal header p{margin:0;color:var(--muted);font-size:.73rem}
.mb-modal header button{width:36px;height:36px;border-radius:50%;border:1px solid #cbd9e2;background:#fff;cursor:pointer;font-size:1.15rem}
.mb-modal .body{padding:.65rem}
.mb-rank-row{display:grid;grid-template-columns:48px 1fr 120px;gap:.55rem;align-items:center;padding:.58rem;border-bottom:1px solid #e7edf1;color:#14394f;text-decoration:none}
.mb-rank-row.current{background:#e9f4fb;border-radius:9px}
.mb-rank-row>strong{color:#9d6b18}
.mb-rank-row>b{text-align:right}
.mb-rank-row small{display:block;color:var(--muted);font-size:.66rem}
@media (max-width:980px){.mb-summary.five{grid-template-columns:repeat(2,minmax(0,1fr))}
.mb-chart-grid{grid-template-columns:1fr}
.mb-chart-card.full{grid-column:auto}}
@media (max-width:620px){.mb-summary.five{grid-template-columns:1fr}
.mb-panel-head.split{flex-direction:column}
.mb-date-nav{flex-wrap:wrap}}
body.nivis-vivid-design .mb-root{--blue:var(--nivis-vivid-blue);
  --red:var(--nivis-vivid-red);
  --green:var(--nivis-vivid-green);
  --cyan:var(--nivis-vivid-cyan);
  --ink:var(--nivis-vivid-ink);
  --muted:var(--nivis-vivid-muted);
  --border:var(--nivis-vivid-border);}
/* Cartes et panneaux : découpage plus net. Les variantes Données quotidiennes
   sont désormais possédées par daily.css (P5 G27). */
body.nivis-vivid-design :is(.mb-kpi,.mb-panel,.mb-chart-card){background:#fff!important;
  border-color:#bfd2e0!important;
  box-shadow:var(--nivis-vivid-shadow)!important;}
body.nivis-vivid-design .mb-kpi{border-top-width:5px!important;}
/* Onglets : actif très identifiable. */
body.nivis-vivid-design :is(.mb-tabs,.mb-segment,.mb-step){background:#e6eef5!important;
  border:1px solid #d3e1eb!important;}
body.nivis-vivid-design :is(.mb-tabs button.active,.mb-segment button.active,.mb-step button.active){background:#126ed1!important;
  color:#fff!important;
  box-shadow:0 4px 10px rgba(19,111,214,.22)!important;}
body.nivis-vivid-design .mb-kpi.tn{border-top-color:#126bd0!important}
body.nivis-vivid-design .mb-kpi.tm{border-top-color:#109757!important}
body.nivis-vivid-design .mb-kpi.tx{border-top-color:#df3039!important}
body.nivis-vivid-design .mb-kpi.rain{border-top-color:#119cbe!important}
body.nivis-vivid-design .mb-kpi.wind{border-top-color:#7449a8!important}
/* NIVIS_PHASE4_TRANSVERSAL_2
 * Harmonisation Observations + KPI + densité des tableaux
 */
/* -------------------------------------------------------------------------
   Largeur analytique commune : dense sur grand écran, fluide sur petit écran.
   ------------------------------------------------------------------------- */
.nivis-observation-root{width:min(1240px,calc(100% - 40px))!important;
  max-width:1240px!important;
  margin-inline:auto!important;
  box-sizing:border-box!important;}
@media (max-width:900px){.nivis-observation-root{width:calc(100% - 20px)!important}}
/* -------------------------------------------------------------------------
   Système KPI Nivis commun
   ------------------------------------------------------------------------- */
.nivis-kpi-grid{display:grid!important;
  gap:.7rem!important;}
.nivis-kpi-card{position:relative!important;
  min-width:0!important;
  background:#fff!important;
  border:1px solid #cbdce7!important;
  border-top:5px solid #718795!important;
  border-radius:15px!important;
  padding:.78rem .85rem!important;
  box-sizing:border-box!important;
  overflow:hidden!important;}
.nivis-kpi-card.tn{border-top-color:#176fd1!important}
.nivis-kpi-card.tm{border-top-color:#159a54!important}
.nivis-kpi-card.tx{border-top-color:#e62f3d!important}
.nivis-kpi-card.rain{border-top-color:#16a0bd!important}
.nivis-kpi-card.wind{border-top-color:#7c4db2!important}
.nivis-kpi-card.days{border-top-color:#a7bdcc!important}
.nivis-kpi-card>header{display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:.55rem!important;
  min-height:34px!important;}
.nivis-kpi-card>header>span,.nivis-kpi-card>header>small{display:block!important;
  color:#60798a!important;
  font-size:.7rem!important;
  font-weight:900!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;}
.nivis-kpi-card>header>img{width:31px!important;
  height:31px!important;
  flex:0 0 31px!important;
  object-fit:contain!important;}
.nivis-kpi-value{display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.32rem!important;
  min-height:43px!important;
  margin:.06rem 0 .22rem!important;
  text-align:left!important;}
.nivis-kpi-value>strong{color:#082f50!important;
  font-size:1.52rem!important;
  line-height:1!important;
  font-weight:950!important;
  white-space:nowrap!important;}
.nivis-kpi-secondary{display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-height:29px!important;
  margin-top:.1rem!important;}
.nivis-kpi-anomaly,.mb-summary-anomaly{display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  padding:.2rem .56rem!important;
  border-radius:999px!important;
  font-size:.72rem!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;}
.nivis-kpi-anomaly.positive,.mb-summary-anomaly.positive{color:#c51e2b!important;background:#ffe2df!important;border:1px solid #ffb9b2!important;}
.nivis-kpi-anomaly.negative,.mb-summary-anomaly.negative{color:#1267af!important;background:#dfefff!important;border:1px solid #b6d7f3!important;}
.nivis-kpi-anomaly.neutral,.mb-summary-anomaly.neutral{color:#526b7d!important;background:#edf3f6!important;border:1px solid #d3e0e7!important;}
.nivis-kpi-plain-secondary{color:#60798a!important;
  font-size:.79rem!important;
  font-weight:850!important;
  cursor:help!important;}
.nivis-kpi-actions,.nivis-kpi-records{display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.38rem!important;
  min-height:31px!important;
  margin-top:.25rem!important;}
.nivis-kpi-records.empty{visibility:hidden!important}
.nivis-kpi-records .mb-record{width:31px!important;height:31px!important;min-width:31px!important;padding:0!important;}
.nivis-kpi-records img{width:29px!important;height:29px!important;object-fit:contain!important}
.nivis-kpi-card .mb-estimate-symbol,.nivis-kpi-card .mb-provisional-symbol{position:static!important;
  margin-left:.12rem!important;}
/* -------------------------------------------------------------------------
   Entêtes de tableaux communs
   ------------------------------------------------------------------------- */
.nivis-data-table{border-collapse:separate!important;
  border-spacing:0!important;
  table-layout:fixed!important;}
.nivis-table-head-inner{display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.2rem!important;
  min-height:57px!important;
  line-height:1.08!important;}
.nivis-table-head-inner>img{width:25px!important;
  height:25px!important;
  object-fit:contain!important;}
.nivis-table-head-inner>strong{color:inherit!important;
  font-size:.67rem!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
  text-align:center!important;}
.nivis-table-head-inner>small{color:inherit!important;
  opacity:.9!important;
  font-size:.58rem!important;
  font-weight:800!important;
  text-transform:none!important;}
.nivis-table-head-symbol{width:25px!important;height:25px!important;
  display:grid!important;place-items:center!important;
  border-radius:50%!important;background:rgba(255,255,255,.88)!important;
  color:#315b76!important;font-size:.78rem!important;font-weight:950!important;}
.nivis-data-table thead th:first-child{border-top-left-radius:14px!important}
.nivis-data-table thead th:last-child{border-top-right-radius:14px!important}
/* ==========================================================================
   Alignement des titres sur la largeur analytique
   ========================================================================== */
.nivis-observation-heading{width:min(1240px,calc(100% - 40px))!important;
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;}
.nivis-observation-heading h1{margin-left:0!important;
  margin-right:0!important;}
/* ==========================================================================
   Bandeau d'entête commun aux grands tableaux
   ========================================================================== */
.nivis-data-table thead{position:relative!important;
  filter:drop-shadow(0 5px 5px rgba(20,59,79,.12))!important;}
.nivis-data-table thead th{border-top:1px solid rgba(255,255,255,.38)!important;
  border-bottom:2px solid rgba(15,50,73,.25)!important;}
.nivis-data-table thead th:first-child{border-left:1px solid rgba(15,50,73,.22)!important;}
.nivis-data-table thead th:last-child{border-right:1px solid rgba(15,50,73,.22)!important;}
.nivis-data-table thead tr{outline:1px solid rgba(38,83,112,.18)!important;
  outline-offset:-1px!important;}
/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1100px){.nivis-observation-heading{width:calc(100% - 20px)!important}}
/* ------------------------------------------------------------------
   MOBILE — sélecteur Nivis année / mois / jour.
   ------------------------------------------------------------------ */
#nivis-t7-picker[hidden]{display:none!important}
#nivis-t7-picker{position:fixed;inset:0;z-index:18000;display:grid;place-items:center;padding:16px}
#nivis-t7-picker .nivis-t7-picker-backdrop{position:absolute;inset:0;background:rgba(8,31,46,.48);backdrop-filter:blur(2px)}
#nivis-t7-picker .nivis-t7-picker-dialog{position:relative;width:min(440px,calc(100vw - 28px));max-height:min(720px,calc(100vh - 28px));overflow:auto;background:#fff;border:1px solid #bfd1dc;border-radius:20px;box-shadow:0 18px 58px rgba(10,39,57,.28);padding:1rem}
#nivis-t7-picker h2{margin:.1rem 0 .85rem;text-align:center;color:#103b56}
#nivis-t7-picker .nivis-t7-picker-selects{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.8rem}
#nivis-t7-picker select{width:100%;border:1px solid #bed1dc;border-radius:11px;background:#fff;padding:.7rem;color:#153e57;font-weight:800;font-size:1rem}
#nivis-t7-picker .nivis-t7-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}
#nivis-t7-picker .nivis-t7-month-grid button,#nivis-t7-picker .nivis-t7-day-grid button{border:1px solid #c6d7e1;background:#f8fbfd;color:#214d66;border-radius:10px;padding:.65rem .25rem;font-weight:800}
#nivis-t7-picker .nivis-t7-month-grid button.active,#nivis-t7-picker .nivis-t7-day-grid button.active{background:#1976d2;color:#fff;border-color:#1976d2}
#nivis-t7-picker .nivis-t7-day-head,#nivis-t7-picker .nivis-t7-day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center}
#nivis-t7-picker .nivis-t7-day-head{color:#6b808c;font-size:.78rem;font-weight:900;margin:.4rem 0}
#nivis-t7-picker .nivis-t7-day-grid .blank{visibility:hidden}
#nivis-t7-picker .nivis-t7-picker-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}
#nivis-t7-picker .nivis-t7-picker-actions button{border:1px solid #bdd1dd;border-radius:11px;background:#fff;padding:.65rem .85rem;color:#174e6e;font-weight:850}
#nivis-t7-picker .nivis-t7-picker-actions button.primary{background:#1976d2;color:#fff;border-color:#1976d2}
#nivis-t7-record-popup[hidden]{display:none!important}
#nivis-t7-record-popup .nivis-t7-picker-backdrop{position:absolute;inset:0;background:rgba(8,31,46,.48);backdrop-filter:blur(2px)}
#nivis-t7-record-popup .nivis-t7-picker-dialog{position:relative;width:min(420px,calc(100vw - 28px));max-height:calc(100vh - 32px);overflow:auto;background:#fff;border:1px solid #bfd1dc;border-radius:18px;padding:1rem;box-shadow:0 18px 58px rgba(10,39,57,.28)}
#nivis-t7-record-popup h2{text-align:center;margin:.1rem 0 .8rem;color:#103b56}
#nivis-t7-record-popup .nivis-t7-record-popup-body{display:grid;gap:.4rem}
#nivis-t7-record-popup .nivis-t7-record-popup-body button{border:1px solid #c7d8e2;background:#f8fbfd;border-radius:10px;padding:.7rem;text-align:left;color:#16445f;font-weight:800}
#nivis-t7-record-popup .nivis-t7-picker-actions{display:flex;justify-content:flex-end;margin-top:.8rem}
#nivis-t7-record-popup .nivis-t7-picker-actions button{border:1px solid #bdd1dd;background:#fff;border-radius:10px;padding:.6rem .8rem;color:#174e6e;font-weight:850}
/* NIVIS_P5_G11_DIRECT_DATE_PICKER */
#nivis-t7-picker button:disabled,#nivis-t7-picker option:disabled{opacity:.38!important;cursor:not-allowed!important}
@media (max-width:700px){#nivis-t7-picker .nivis-t7-picker-dialog{width:min(460px,calc(100dvw - 24px))!important}
#nivis-t7-picker .nivis-t7-picker-selects{position:sticky;top:0;z-index:2;background:#fff;padding-bottom:.35rem}}
/* -------------------------------------------------------------------------
   Compatibilité de l'ancien overlay d'en-tête.
   Le nœud reste neutralisé plus bas, mais conserve sa géométrie historique
   tant que finishing.js sait encore le créer.
   ------------------------------------------------------------------------- */
.nivis-frozen-header-overlay{position:fixed;z-index:39;overflow:hidden;border-radius:16px 16px 0 0;
  box-shadow:0 6px 16px rgba(20,60,82,.16);pointer-events:auto;background:#fff;}
.nivis-frozen-header-overlay[hidden]{display:none!important}
.nivis-frozen-header-overlay table{margin:0!important;border-collapse:separate!important;border-spacing:0!important;table-layout:fixed!important}
.nivis-frozen-header-overlay th{position:static!important;box-sizing:border-box!important}
@media (max-width:1179px){.nivis-frozen-header-overlay{display:none!important}}
@media (min-width:701px){.nivis-frozen-header-overlay th[data-nivis-tooltip]{position:relative!important;cursor:help}
.nivis-frozen-header-overlay th[data-nivis-tooltip]::after{content:attr(data-nivis-tooltip);position:absolute;left:50%;top:calc(100% + 7px);z-index:95;
    width:max-content;max-width:290px;transform:translateX(-50%) translateY(4px);padding:8px 10px;
    border-radius:9px;background:#103f5c;color:#fff;font-size:.68rem;font-weight:650;line-height:1.35;
    text-transform:none;letter-spacing:0;white-space:normal;opacity:0;pointer-events:none;
    box-shadow:0 8px 24px rgba(12,47,68,.22);transition:opacity .14s ease,transform .14s ease;}
.nivis-frozen-header-overlay th[data-nivis-tooltip]:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}}
/* -------------------------------------------------------------------------
   Anomalies et interactions partagées
   ------------------------------------------------------------------------- */
.nivis-kpi-anomaly.rain-excess{background:#dceffc!important;border-color:#9bc8e7!important;color:#14618f!important}
.nivis-kpi-anomaly.rain-deficit{background:#fff0bd!important;border-color:#e7ca6e!important;color:#7b5b08!important}
.nivis-kpi-anomaly.rain-neutral{background:#eef3f6!important;border-color:#d7e1e7!important;color:#536d7b!important}
.nivis-anomaly-hover-line[hidden]{display:none!important}
.nivis-anomaly-hover-line:not([hidden]){display:block!important;stroke:#315e7b!important;stroke-width:1.35px!important;
  stroke-dasharray:5 5!important;opacity:.82!important;pointer-events:none!important;}
/* -------------------------------------------------------------------------
   Classements / Top 10 partagés
   ------------------------------------------------------------------------- */
.nivis-rank-bubble{display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;
  border:1px solid #c5d7e2!important;border-radius:50%!important;background:#f7fbfd!important;
  color:#214d67!important;font-size:.78rem!important;font-weight:900!important;line-height:1!important;}
.mb-rank-row>.nivis-rank-bubble{justify-self:center}
.mb-rank-row .mb-record-ranking-picto{display:flex;align-items:center;justify-content:center}
.mb-rank-row .nivis-ranking-picto{display:block;width:38px;height:38px;object-fit:contain}
/* -------------------------------------------------------------------------
   Infobulles KPI communes
   ------------------------------------------------------------------------- */
[data-nivis-kpi-tooltip]{position:relative}
[data-nivis-kpi-tooltip]::after{content:attr(data-nivis-kpi-tooltip);position:absolute;z-index:80;left:50%;bottom:calc(100% + 9px);
  transform:translate(-50%,4px);width:max-content;max-width:min(240px,80vw);padding:.42rem .58rem;
  border-radius:8px;background:#12364c;color:#fff;font-size:.67rem;font-weight:750;line-height:1.25;
  box-shadow:0 8px 24px rgba(10,37,55,.22);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease;text-align:center;}
[data-nivis-kpi-tooltip]::before{content:"";position:absolute;z-index:81;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#12364c;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .12s ease,visibility .12s ease;}
@media (hover:hover){[data-nivis-kpi-tooltip]:hover::after,[data-nivis-kpi-tooltip]:focus-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
[data-nivis-kpi-tooltip]:hover::before,[data-nivis-kpi-tooltip]:focus-visible::before{opacity:1;visibility:visible}}
/* -------------------------------------------------------------------------
   Modale Migration B : affinages canoniques
   ------------------------------------------------------------------------- */
#nivis-mb-modal .dialog{width:min(640px,calc(100vw - 28px))!important}
#nivis-mb-modal .mb-rank-row{grid-template-columns:48px minmax(0,1fr) max-content!important;column-gap:.75rem!important}
@media (max-width:700px){#nivis-mb-modal{box-sizing:border-box!important;padding:10px 12px!important}
#nivis-mb-modal .dialog{box-sizing:border-box!important;width:100%!important;max-width:calc(100dvw - 24px)!important;
    margin-inline:auto!important;left:auto!important;right:auto!important;transform:none!important;}
#nivis-mb-modal [data-mb-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;border-radius:50%!important;
    display:grid!important;place-items:center!important;line-height:1!important;}}
/* -------------------------------------------------------------------------
   Navigation temporelle : feedback tactile commun
   ------------------------------------------------------------------------- */
.nivis-t7-date-button{transition:transform .08s ease,box-shadow .08s ease,background-color .08s ease!important;
  touch-action:manipulation;}
.nivis-t7-date-button:active{transform:translateY(2px) scale(.97)!important;
  box-shadow:inset 0 2px 7px rgba(19,67,96,.18)!important;
  background:#dceaf4!important;}
/* -------------------------------------------------------------------------
   Ancienne copie flottante d'en-tête
   G9 a remplacé ce mécanisme par le sticky natif. finishing.js peut encore
   créer le nœud pour compatibilité, mais il reste explicitement neutralisé.
   ------------------------------------------------------------------------- */
.nivis-frozen-header-overlay{display:none!important}
