.neo-page,
.neo-page * { box-sizing:border-box; }
.neo-page {
  --neo-bg:#f3f7fa;
  --neo-surface:#fff;
  --neo-surface-soft:#f7fafc;
  --neo-border:#dce6ed;
  --neo-border-strong:#c9d8e2;
  --neo-text:#183449;
  --neo-title:#102f46;
  --neo-muted:#667d8e;
  --neo-accent:#2F6F89;
  --neo-accent-hover:#25596E;
  --neo-accent-soft:#EAF3F7;
  --neo-accent-line:#A7C3D0;
  --neo-green:#269552;
  --neo-yellow:#e1a400;
  --neo-red:#cf3d3d;
  --neo-shadow:0 12px 34px rgba(31,58,78,.075);
  width:100%;max-width:1680px;margin:0 auto;padding:clamp(12px,2vw,30px);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--neo-text);background:var(--neo-bg);font-size:16px;line-height:1.45;
  display:grid;gap:16px;position:relative;isolation:isolate;
}
.neo-page button,.neo-page input,.neo-page select { font:inherit; }
.neo-page button { cursor:pointer; }
.neo-page__hero,.neo-card { background:var(--neo-surface);border:1px solid var(--neo-border);border-radius:16px;box-shadow:var(--neo-shadow); }
.neo-page__hero {
  padding:clamp(18px,2.3vw,28px);display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:clamp(18px,3vw,34px);align-items:center;position:relative;overflow:hidden;
  background:linear-gradient(120deg,#fff 0%,#f7fbfc 62%,#eef5f7 100%);
}
.neo-page__hero::before { content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--neo-accent); }
.neo-page__hero::after { content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-140px;top:-185px;border:56px solid rgba(47,111,137,.05);pointer-events:none; }
.neo-page__hero>* { position:relative;z-index:1; }
.neo-page__mascot-wrap { min-height:190px;display:grid;place-items:end center;position:relative;border:1px solid #dce8ed;border-radius:14px;background:var(--neo-accent-soft);overflow:hidden; }
.neo-page__mascot-wrap::before { content:"";position:absolute;inset:auto -20% -48% -20%;height:75%;border-radius:50% 50% 0 0;background:rgba(255,255,255,.72); }
.neo-page__mascot-image { width:100%;max-width:205px;max-height:235px;height:auto;object-fit:contain;display:block;position:relative;z-index:1;filter:drop-shadow(0 12px 22px rgba(31,58,78,.15)); }
.neo-page__eyebrow,.neo-card__eyebrow { color:var(--neo-accent);font-weight:850;font-size:11px;letter-spacing:.09em;text-transform:uppercase; }
.neo-page__title { margin:5px 0 8px;color:var(--neo-title);font-size:clamp(25px,3vw,38px);line-height:1.08;letter-spacing:-.035em; }
.neo-page__lead { margin:0;max-width:850px;color:var(--neo-muted);font-size:15px;line-height:1.62; }
.neo-page__search { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px;background:#fff;border:1px solid var(--neo-border);border-radius:14px;box-shadow:0 6px 20px rgba(31,58,78,.045); }
.neo-page__input { width:100%;min-width:0;min-height:48px;border:1px solid var(--neo-border-strong);border-radius:10px;padding:0 14px;font-size:14px;color:var(--neo-text);outline:0;background:#fff; }
.neo-page__input:focus { border-color:var(--neo-accent-line);box-shadow:0 0 0 3px rgba(47,111,137,.10); }
.neo-page__button { min-width:180px;min-height:48px;border:1px solid var(--neo-accent);border-radius:10px;padding:0 18px;background:var(--neo-accent);color:#fff;font-weight:780;font-size:14px;transition:.15s; }
.neo-page__button:hover { background:var(--neo-accent-hover);border-color:var(--neo-accent-hover); }
.neo-page__examples { display:flex;gap:6px;flex-wrap:wrap; }
.neo-page__result { min-height:220px; }
.neo-page__placeholder { padding:24px;background:#fff;border:1px dashed var(--neo-border-strong);border-radius:14px;color:var(--neo-muted);text-align:center; }
.neo-analysis { display:grid;gap:14px; }
.neo-grid { display:grid;gap:12px; }
.neo-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.neo-card { padding:clamp(16px,2vw,23px);box-shadow:0 8px 24px rgba(31,58,78,.055); }
.neo-card__title { margin:5px 0 7px;color:var(--neo-title);font-size:clamp(1.08rem,1.5vw,1.35rem);font-weight:830;letter-spacing:-.02em; }
.neo-card--recommendation { position:relative;overflow:hidden;background:#fff; }
.neo-card--recommendation::before { content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--neo-accent);pointer-events:none; }
.neo-card--recommendation::after { content:none; }
.neo-card--happy { background:linear-gradient(120deg,#fff,#f6fbf8); }
.neo-card--happy::before { background:var(--neo-green); }
.neo-card--sad { background:linear-gradient(120deg,#fff,#fff8f7); }
.neo-card--sad::before { background:var(--neo-red); }
.neo-card--worried { background:linear-gradient(120deg,#fff,#fffaf0); }
.neo-card--worried::before { background:var(--neo-yellow); }
.neo-reco { position:relative;display:grid;grid-template-columns:minmax(180px,235px) minmax(0,1fr);gap:24px;align-items:center;z-index:1; }
.neo-reco__media { display:flex;justify-content:center;align-items:end;min-height:245px;border-radius:13px;background:var(--neo-accent-soft);border:1px solid #dbe7ec;overflow:hidden; }
.neo-reco__mascot,.neo-reco__placeholder { width:min(100%,225px);max-height:255px;object-fit:contain; }
.neo-reco__mascot { display:block;background:transparent;filter:drop-shadow(0 12px 22px rgba(31,58,78,.14)); }
.neo-reco__placeholder { min-height:180px;display:grid;place-items:center;font-size:64px;background:#f4f8fb; }
.neo-reco__content p { margin:10px 0 0; }
.neo-reco__text { color:#294a60;font-size:16px;line-height:1.62;font-weight:620; }
.neo-reco__note { color:var(--neo-muted);font-size:13px; }
.neo-kpis { display:flex;gap:7px;flex-wrap:wrap;margin-top:10px; }
.neo-pill { padding:6px 9px;border:1px solid var(--neo-border);border-radius:999px;background:#f7fafc;font-size:12px;color:#506c7d;font-weight:650; }
.neo-decision { display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:790;border:1px solid transparent; }
.neo-decision--favorable { background:#e9f7ef;color:#287649;border-color:#ccebd8; }
.neo-decision--acceptable { background:var(--neo-accent-soft);color:var(--neo-accent-hover);border-color:#cfe0e6; }
.neo-decision--a_surveiller { background:#fff6df;color:#8c6500;border-color:#f0df9c; }
.neo-decision--deconseille { background:#fff0ed;color:#a8442c;border-color:#f0c7bd; }
.neo-slots { display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr)); }
.neo-slot { background:var(--neo-surface-soft);border:1px solid var(--neo-border);border-radius:12px;padding:13px; }
.neo-slot__title { font-size:11px;color:var(--neo-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em;font-weight:730; }
.neo-slot__value { color:var(--neo-title);font-size:17px;font-weight:820; }
.neo-hours { display:grid;gap:7px; }
.neo-hour { display:grid;grid-template-columns:66px minmax(0,1fr) 70px 70px 70px;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--neo-border);border-radius:11px;background:#fff; }
.neo-hour:nth-child(even) { background:#fafcfd; }
.neo-hour__time { font-weight:800;color:#365970; }
.neo-hour__meta { color:var(--neo-muted);font-size:12px; }
.neo-hour strong { font-size:.95rem;color:var(--neo-title); }
.neo-insights { margin:8px 0 0;padding-left:18px;color:#36566a; }
.neo-insights li { margin-bottom:7px;line-height:1.55; }
.neo-route-map { width:100%;height:380px;border-radius:13px;overflow:hidden;background:#dfeaf0;border:1px solid var(--neo-border); }
.neo-hours--route .neo-hour { grid-template-columns:82px minmax(150px,1.4fr) repeat(3,minmax(76px,105px)); }
.neo-analysis--route .neo-card__title { max-width:880px; }
.neo-hour__icon { font-size:1.8rem;line-height:1;display:flex;align-items:center;justify-content:center;min-width:64px;min-height:64px;background:transparent; }
.neo-weather-svg { display:block;width:clamp(48px,3vw,62px);height:clamp(48px,3vw,62px);object-fit:contain; }
.neo-hour--route .neo-weather-svg { width:clamp(43px,2.6vw,55px);height:clamp(43px,2.6vw,55px); }
.neo-tag { border:1px solid var(--neo-border);background:#fff;color:#4f6c7d;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap;transition:.15s; }
.neo-tag:hover { border-color:var(--neo-accent-line);background:var(--neo-accent-soft);color:var(--neo-accent-hover); }
.neo-page [hidden] { display:none!important; }
@media (max-width:900px) {
  .neo-grid--3,.neo-slots,.neo-reco { grid-template-columns:1fr; }
  .neo-reco__media { min-height:210px;justify-content:center; }
  .neo-hours--route .neo-hour { grid-template-columns:75px 1.3fr repeat(2,minmax(70px,1fr)); }
}
@media (max-width:700px) {
  .neo-page { padding:10px;gap:12px; }
  .neo-page__hero { grid-template-columns:1fr;padding:16px; }
  .neo-page__mascot-wrap { min-height:145px;max-height:165px;place-items:end center; }
  .neo-page__mascot-image { max-width:155px;max-height:175px; }
  .neo-page__search { grid-template-columns:1fr;padding:7px; }
  .neo-page__button { min-width:0;min-height:46px; }
  .neo-hour,.neo-hours--route .neo-hour { grid-template-columns:1fr 1fr;gap:7px; }
  .neo-route-map { height:300px; }
}

/* Météo360 1.8.0 — boutons publics alignés sur Horizon360 / Radar. */
.neo-page {
  --neo-accent:#2F6F89 !important;
  --neo-accent-hover:#25596E !important;
  --neo-accent-soft:#EAF3F7 !important;
  --neo-accent-line:#A7C3D0 !important;
}
.neo-page .neo-page__button {
  background:#2F6F89 !important;
  background-color:#2F6F89 !important;
  border-color:#2F6F89 !important;
  color:#fff !important;
  box-shadow:none !important;
}
.neo-page .neo-page__button:hover,
.neo-page .neo-page__button:focus-visible {
  background:#25596E !important;
  background-color:#25596E !important;
  border-color:#25596E !important;
  color:#fff !important;
}

/* Néo 1.8 — fusion, comparaisons, créneaux et actions Météo360 */
.neo-card--source{border-color:#cbdde4;background:linear-gradient(180deg,#fff,#f8fbfc)}
.neo-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.neo-source-grid>div{padding:14px 16px;border:1px solid #dce7eb;background:#f4f8fa;border-radius:12px}
.neo-source-grid strong{display:block;color:#234858;font-size:14px;margin-bottom:5px}
.neo-source-grid span{display:block;color:#667c87;font-size:13px;line-height:1.55}
.neo-actionbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.neo-actionbar__btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border-radius:10px;background:#2F6F89!important;color:#fff!important;text-decoration:none!important;font-weight:800;font-size:13px;box-shadow:0 8px 18px rgba(47,111,137,.15)}
.neo-actionbar__btn:hover{background:#25596E!important;color:#fff!important}
.neo-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:14px}
.neo-compare-grid--large{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.neo-compare-item{position:relative;padding:17px;border:1px solid #d8e5ea;background:#f7fafb;border-radius:14px;display:flex;flex-direction:column;gap:6px}
.neo-compare-item.is-best{border-color:#7faabc;background:#edf5f7;box-shadow:inset 0 0 0 1px rgba(47,111,137,.08)}
.neo-compare-item strong{font-size:16px;color:#244451}
.neo-compare-item>span{font-size:25px;font-weight:850;letter-spacing:-.03em;color:#2F6F89}
.neo-compare-item small{color:#6a7f89;font-size:12px;line-height:1.45}
.neo-compare-item p{margin:5px 0 0;color:#536b76;font-size:13px;line-height:1.55}
.neo-compare-rank{align-self:flex-start;padding:5px 8px;border-radius:999px;background:#dcecf1;color:#2F6F89;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:680px){.neo-source-grid{grid-template-columns:1fr}.neo-actionbar{display:grid;grid-template-columns:1fr}.neo-actionbar__btn{width:100%}.neo-compare-grid,.neo-compare-grid--large{grid-template-columns:1fr}}

/* Néo 1.10 — Météo360 Intelligence, chronologie, fiabilité vérifiée et feedback */
.neo-intel-next{border-left:4px solid #2F6F89;background:linear-gradient(135deg,#fff,#f1f7f9)}
.neo-intel-next p,.neo-intel-card p,.neo-feedback-card p{margin:7px 0 0;color:#5d737e;line-height:1.55}
.neo-intel-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:13px}
.neo-intel-kpis>div{padding:13px;border:1px solid #d8e5ea;background:#f7fafb;border-radius:12px;display:flex;flex-direction:column;gap:4px}
.neo-intel-kpis strong{font-size:20px;color:#2F6F89}.neo-intel-kpis span{font-size:12px;color:#637985;line-height:1.45}
.neo-unified-timeline{display:grid;gap:7px;margin-top:13px}.neo-unified-event{display:grid;grid-template-columns:90px minmax(130px,1fr) minmax(120px,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid #dce7eb;border-radius:10px;background:#fff}.neo-unified-event time{font-size:12px;font-weight:800;color:#2F6F89}.neo-unified-event strong{font-size:13px;color:#294955}.neo-unified-event span{font-size:12px;color:#687e88}
.neo-intel-alerts{display:grid;gap:8px;margin-top:12px}.neo-intel-alerts>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dce7eb;border-radius:10px}.neo-intel-alerts strong{color:#314e5a}.neo-intel-alerts span{color:#6c8089;font-size:12px;text-align:right}
.neo-feedback-card{display:flex;align-items:center;justify-content:space-between;gap:14px}.neo-feedback-actions{display:flex;gap:8px}.neo-feedback-actions button{border:1px solid #a7c3d0!important;background:#fff!important;color:#2F6F89!important;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.neo-feedback-actions button:hover{background:#eaf3f7!important;border-color:#2F6F89!important}.neo-feedback-card.is-error{border-color:#d9a7a0}
@media(max-width:760px){.neo-intel-kpis{grid-template-columns:1fr}.neo-unified-event{grid-template-columns:75px 1fr}.neo-unified-event span{grid-column:2}.neo-feedback-card{align-items:flex-start;flex-direction:column}.neo-intel-alerts>div{flex-direction:column}.neo-intel-alerts span{text-align:left}}
