:root {
  --ink: #111827;
  --muted: #667085;
  --paper: #ffffff;
  --line: rgba(17, 24, 39, 0.12);
  --soft: #f6f7f4;
  --navy: #101c35;
  --teal: #00a99d;
  --lime: #b6e642;
  --amber: #f6a400;
  --red: #ef4e3a;
  --blue: #4f6df5;
  --violet: #8b5cf6;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--soft);
}

a {
  color: inherit;
  text-decoration: none;
}

.hub,
.site {
  min-height: 100vh;
}

.hub {
  padding: 28px;
  background:
    linear-gradient(135deg, rgba(0, 169, 157, 0.14), transparent 34%),
    linear-gradient(35deg, rgba(246, 164, 0, 0.13), transparent 42%),
    #f6f7f4;
}

.wrap {
  width: min(1440px, calc(100vw - 56px));
  margin: 0 auto;
}

.hero {
  min-height: 430px;
  padding: 34px;
  border-radius: 8px;
  color: white;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 28px;
  align-items: stretch;
  overflow: hidden;
  position: relative;
  background:
    linear-gradient(115deg, rgba(16, 28, 53, 0.98), rgba(0, 82, 89, 0.94)),
    linear-gradient(35deg, rgba(246, 164, 0, 0.24), transparent 55%);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(90deg, transparent, black 30%, black 75%, transparent);
  pointer-events: none;
}

.hero-copy,
.hero-card,
.site-nav,
.panel,
.card,
.tile,
.proof,
.route-card,
.screen {
  position: relative;
  z-index: 1;
}

.eyebrow {
  color: #c8fff8;
  font-weight: 900;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1 {
  max-width: 940px;
  margin-top: 14px;
  font-size: clamp(2.9rem, 6.5vw, 7.1rem);
  line-height: 0.9;
  letter-spacing: 0;
}

.hero-copy p,
.page-title p {
  max-width: 780px;
  margin-top: 22px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1.08rem;
  line-height: 1.58;
}

.hero-card {
  padding: 22px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(18px);
  display: grid;
  align-content: space-between;
}

.hero-card strong {
  font-size: 1.25rem;
}

.mini-metrics {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.mini-metrics span {
  min-height: 48px;
  padding: 12px;
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  background: rgba(255, 255, 255, 0.12);
  color: white;
  font-weight: 850;
}

.cta-row {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.button {
  min-height: 44px;
  padding: 0 16px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: white;
  color: var(--navy);
  font-weight: 950;
}

.button.dark {
  background: var(--navy);
  color: white;
}

.button.ghost {
  background: rgba(255, 255, 255, 0.08);
  color: white;
}

.template-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.template-card {
  min-height: 430px;
  padding: 22px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 20px 52px rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.template-card h2 {
  color: var(--navy);
  font-size: 1.3rem;
}

.template-card p,
.card p,
.tile p,
.panel p,
.proof p,
.route-card p {
  margin-top: 8px;
  color: var(--muted);
  line-height: 1.5;
}

.preview {
  height: 180px;
  margin: 22px 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}

.preview-orbit {
  background: #061522;
}

.preview-orbit::before,
.preview-orbit::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  border: 2px solid rgba(0, 217, 204, 0.42);
}

.preview-orbit::before {
  inset: 32px 72px;
}

.preview-orbit::after {
  width: 78px;
  height: 78px;
  left: calc(50% - 39px);
  top: calc(50% - 39px);
  background: rgba(0, 217, 204, 0.12);
}

.preview-pulse {
  background: #fffdfa;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 14px;
}

.preview-pulse span {
  border-radius: 8px;
  background: #111827;
}

.preview-pulse span:nth-child(2) {
  background: #f6a400;
}

.preview-pulse span:nth-child(3) {
  background: #00a99d;
}

.preview-pulse span:nth-child(4) {
  background: #ef4e3a;
}

.preview-factory {
  background:
    linear-gradient(90deg, rgba(79, 109, 245, 0.14), transparent),
    #f7fafc;
}

.preview-factory::before {
  content: "";
  position: absolute;
  left: 26px;
  right: 26px;
  bottom: 34px;
  height: 72px;
  background:
    linear-gradient(90deg, #101c35 0 18%, transparent 18% 24%, #00a99d 24% 44%, transparent 44% 50%, #f6a400 50% 68%, transparent 68% 75%, #ef4e3a 75% 100%);
  border-radius: 8px;
}

.site.orbit {
  color: #eafffb;
  background: #06111d;
}

.site.pulse {
  background: #fbfaf7;
}

.site.factory {
  background: #f4f7fb;
}

.site-nav {
  min-height: 68px;
  width: min(1440px, calc(100vw - 56px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.brand {
  font-weight: 1000;
  letter-spacing: 0;
}

.nav-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.nav-links a {
  min-height: 38px;
  padding: 0 12px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: inherit;
  font-weight: 850;
}

.pulse .nav-links a,
.factory .nav-links a {
  border-color: rgba(17, 24, 39, 0.12);
  background: rgba(255, 255, 255, 0.66);
}

.page-hero {
  width: min(1440px, calc(100vw - 56px));
  margin: 0 auto;
  min-height: 520px;
  border-radius: 8px;
  padding: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 520px;
  gap: 28px;
  align-items: center;
  overflow: hidden;
  position: relative;
}

.orbit .page-hero {
  background:
    radial-gradient(circle at 72% 48%, rgba(0, 217, 204, 0.24), transparent 0 24%, transparent 45%),
    linear-gradient(118deg, #071522, #0b2c36);
}

.pulse .page-hero {
  color: #111827;
  background:
    linear-gradient(118deg, #fff8e7, #eaf8f5);
}

.factory .page-hero {
  color: #111827;
  background:
    linear-gradient(118deg, #eaf0ff, #f7fbfb);
}

.page-title h1 {
  color: inherit;
}

.pulse .page-title p,
.factory .page-title p {
  color: #475467;
}

.visual-orbit,
.visual-pulse,
.visual-factory {
  min-height: 390px;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}

.visual-orbit {
  border: 1px solid rgba(0, 217, 204, 0.22);
  background:
    linear-gradient(rgba(0, 217, 204, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 217, 204, 0.08) 1px, transparent 1px),
    rgba(255, 255, 255, 0.03);
  background-size: 42px 42px;
}

.ring {
  position: absolute;
  border: 1px solid rgba(0, 217, 204, 0.48);
  border-radius: 999px;
  animation: spin 24s linear infinite;
}

.ring.one {
  inset: 52px;
}

.ring.two {
  inset: 96px;
  animation-direction: reverse;
}

.planet {
  position: absolute;
  width: 118px;
  min-height: 58px;
  padding: 10px;
  border-radius: 8px;
  background: rgba(7, 21, 34, 0.92);
  border: 1px solid rgba(0, 217, 204, 0.3);
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.24);
  font-weight: 900;
}

.planet small {
  display: block;
  margin-top: 4px;
  color: #9adbd6;
}

.p1 { left: 32px; top: 70px; }
.p2 { right: 44px; top: 56px; }
.p3 { left: 68px; bottom: 52px; }
.p4 { right: 64px; bottom: 70px; }

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.section {
  width: min(1440px, calc(100vw - 56px));
  margin: 20px auto 0;
}

.grid-3,
.grid-2,
.route-grid {
  display: grid;
  gap: 16px;
}

.grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.panel,
.card,
.tile,
.proof,
.route-card,
.screen {
  border: 1px solid rgba(17, 24, 39, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 46px rgba(15, 23, 42, 0.08);
  padding: 20px;
}

.orbit .panel,
.orbit .card,
.orbit .tile,
.orbit .proof,
.orbit .screen {
  border-color: rgba(0, 217, 204, 0.16);
  background: rgba(255, 255, 255, 0.055);
  box-shadow: 0 18px 52px rgba(0, 0, 0, 0.2);
}

.orbit .panel p,
.orbit .card p,
.orbit .tile p,
.orbit .proof p {
  color: #a7c8cc;
}

.number {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: var(--teal);
  color: white;
  font-weight: 1000;
}

.site h2 {
  font-size: 1.25rem;
  color: inherit;
}

.flow {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.flow span {
  min-height: 44px;
  padding: 11px 12px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: rgba(255, 255, 255, 0.08);
  font-weight: 850;
}

.pulse .flow span,
.factory .flow span {
  background: #f3f6f5;
}

.visual-pulse {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.pulse-tile {
  min-height: 180px;
  padding: 18px;
  border-radius: 8px;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  position: relative;
}

.pulse-tile::after {
  content: "";
  position: absolute;
  width: 130px;
  height: 130px;
  right: -36px;
  bottom: -46px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
}

.pulse-tile.black { background: #111827; }
.pulse-tile.teal { background: #008b83; }
.pulse-tile.amber { background: #d88200; }
.pulse-tile.red { background: #cf3b29; }

.visual-factory {
  background:
    linear-gradient(rgba(79, 109, 245, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(79, 109, 245, 0.08) 1px, transparent 1px),
    white;
  background-size: 42px 42px;
  border: 1px solid rgba(79, 109, 245, 0.15);
}

.line-map {
  position: absolute;
  inset: 40px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  align-items: end;
}

.machine {
  min-height: 110px;
  padding: 14px;
  border-radius: 8px;
  color: white;
  background: var(--navy);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.machine:nth-child(2) { min-height: 170px; background: var(--teal); }
.machine:nth-child(3) { min-height: 220px; background: var(--amber); }
.machine:nth-child(4) { min-height: 145px; background: var(--red); }

.route-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.route-card {
  min-height: 180px;
}

.route-card strong {
  color: var(--navy);
}

.orbit .route-card strong {
  color: white;
}

.kpi-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.kpi {
  min-height: 120px;
  padding: 16px;
  border-radius: 8px;
  color: white;
  background: var(--navy);
}

.kpi strong {
  display: block;
  margin-top: 10px;
  font-size: 1.7rem;
}

.evidence-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.evidence-list span {
  padding: 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  display: block;
  line-height: 1.45;
}

.pulse .evidence-list span,
.factory .evidence-list span {
  background: #f3f6f5;
}

.footer-space {
  height: 36px;
}

@media (max-width: 1150px) {
  .hero,
  .page-hero,
  .template-grid,
  .grid-3,
  .grid-2,
  .route-grid {
    grid-template-columns: 1fr;
  }

  .kpi-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .hub {
    padding: 16px;
  }

  .wrap,
  .site-nav,
  .page-hero,
  .section {
    width: calc(100vw - 32px);
  }

  .hero,
  .page-hero {
    padding: 24px;
  }

  h1 {
    font-size: 3rem;
  }

  .kpi-row {
    grid-template-columns: 1fr;
  }

  .site-nav {
    flex-direction: column;
    align-items: stretch;
    padding: 12px 0;
  }
}

.pulse-next {
  background:
    linear-gradient(135deg, rgba(0, 169, 157, 0.12), transparent 34%),
    linear-gradient(35deg, rgba(246, 164, 0, 0.1), transparent 42%),
    #fbfaf7;
}

.pulse-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  width: min(1440px, calc(100vw - 32px));
  min-height: 76px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  backdrop-filter: blur(18px);
  padding: 10px 0;
}

.pulse-brand,
.pulse-menu-panel {
  border: 1px solid rgba(17, 24, 39, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}

.pulse-brand {
  min-height: 54px;
  padding: 8px 16px 8px 10px;
  display: grid;
  grid-template-columns: 38px auto;
  grid-template-rows: auto auto;
  column-gap: 10px;
  align-items: center;
  gap: 10px;
  color: #101c35;
  font-weight: 1000;
}

.pulse-brand > span {
  grid-row: span 2;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #00a99d;
  box-shadow: 0 0 0 8px rgba(0, 169, 157, 0.13);
}

.pulse-brand strong,
.pulse-brand small {
  display: block;
  line-height: 1;
}

.pulse-brand small {
  margin-top: 3px;
  color: #667085;
  font-size: 0.76rem;
  font-weight: 900;
}

.pulse-menu-panel {
  min-height: 54px;
  padding: 5px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.pulse-nav-center,
.pulse-nav-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.pulse-nav-center a,
.pulse-nav-actions a,
.pulse-nav-actions span {
  min-height: 42px;
  padding: 0 12px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  color: #101c35;
  font-size: 0.9rem;
  font-weight: 900;
}

.pulse-nav-center a:hover,
.pulse-nav-actions a:hover {
  background: #101c35;
  color: white;
}

.pulse-nav-actions span {
  color: #00786f;
  background: #e9f7f4;
}

.pulse-menu-toggle,
.pulse-menu-button {
  display: none;
}

.pulse-menu-button {
  width: 54px;
  height: 54px;
  border: 1px solid rgba(17, 24, 39, 0.1);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}

.pulse-menu-button span {
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: #101c35;
}

.pulse-landing,
.pulse-band,
.pulse-scroll-story,
.pulse-proof-wall,
.pulse-final-cta,
.pulse-internal-hero,
.pulse-investigation,
.pulse-next-panel,
.pulse-evidence-board,
.pulse-decision-hero,
.decision-lanes,
.pulse-action-strip {
  width: min(1440px, calc(100vw - 56px));
  margin: 0 auto;
}

.pulse-landing {
  min-height: calc(100vh - 90px);
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(460px, 1.06fr);
  gap: 28px;
  align-items: center;
  padding: 34px 0 46px;
}

.pulse-kicker {
  color: #00786f;
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
}

.pulse-landing h1,
.pulse-internal-hero h1,
.pulse-decision-hero h1 {
  margin-top: 14px;
  color: #101c35;
  font-size: clamp(3rem, 6vw, 6.8rem);
  line-height: 0.9;
  letter-spacing: 0;
}

.infopilot-title {
  display: inline-block;
  color: #00786f;
  position: relative;
}

.infopilot-title::after {
  content: "";
  position: absolute;
  left: 0.06em;
  right: 0.03em;
  bottom: 0.04em;
  height: 0.12em;
  border-radius: 999px;
  background: rgba(246, 164, 0, 0.36);
  z-index: -1;
}

.pulse-light-orbit {
  min-height: 620px;
  border: 1px solid rgba(17, 24, 39, 0.1);
  background:
    linear-gradient(rgba(16, 28, 53, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 28, 53, 0.055) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(0, 169, 157, 0.14), transparent 0 18%, transparent 44%),
    #ffffff;
  background-size: 44px 44px, 44px 44px, auto, auto;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.1);
}

.pulse-light-orbit .ring {
  border-color: rgba(0, 120, 111, 0.42);
}

.infopilot-core {
  position: absolute;
  z-index: 6;
  left: calc(50% - 88px);
  top: calc(50% - 88px);
  width: 176px;
  height: 176px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  color: white;
  background:
    linear-gradient(135deg, #101c35, #00786f);
  box-shadow:
    0 0 0 24px rgba(0, 169, 157, 0.12),
    0 0 0 66px rgba(246, 164, 0, 0.09);
}

.infopilot-core span,
.infopilot-core small {
  display: block;
}

.infopilot-core span {
  font-size: 1.55rem;
  font-weight: 1000;
  line-height: 1;
}

.infopilot-core small {
  margin-top: 8px;
  max-width: 112px;
  color: rgba(255, 255, 255, 0.78);
  font-weight: 850;
  line-height: 1.15;
}

.pulse-light-orbit .planet {
  z-index: 7;
  width: 158px;
  color: #101c35;
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(0, 120, 111, 0.2);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.12);
}

.pulse-light-orbit .planet small {
  color: #667085;
}

.pulse-light-orbit .p1 {
  left: 44px;
  top: 72px;
}

.pulse-light-orbit .p2 {
  right: 44px;
  top: 72px;
}

.pulse-light-orbit .p3 {
  left: 74px;
  bottom: 74px;
}

.pulse-light-orbit .p4 {
  right: 74px;
  bottom: 74px;
}

.pulse-landing p,
.pulse-internal-hero p,
.pulse-decision-hero p {
  max-width: 760px;
  margin-top: 22px;
  color: #475467;
  font-size: 1.08rem;
  line-height: 1.58;
}

.pulse-live {
  min-height: 620px;
  border: 1px solid rgba(17, 24, 39, 0.1);
  border-radius: 8px;
  background:
    linear-gradient(rgba(17, 24, 39, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17, 24, 39, 0.045) 1px, transparent 1px),
    #ffffff;
  background-size: 44px 44px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.1);
  position: relative;
  overflow: hidden;
}

.pulse-live::after {
  content: "";
  position: absolute;
  inset: 32px;
  border-radius: 8px;
  border: 1px solid rgba(0, 169, 157, 0.2);
}

.pulse-orb {
  position: absolute;
  left: calc(50% - 74px);
  top: calc(50% - 74px);
  width: 148px;
  height: 148px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: white;
  background: #101c35;
  font-size: 2rem;
  font-weight: 1000;
  box-shadow:
    0 0 0 32px rgba(0, 169, 157, 0.1),
    0 0 0 78px rgba(246, 164, 0, 0.08);
  z-index: 3;
}

.pulse-node {
  position: absolute;
  z-index: 4;
  width: 155px;
  min-height: 92px;
  padding: 14px;
  border-radius: 8px;
  color: white;
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.18);
}

.pulse-node strong,
.pulse-node span {
  display: block;
}

.pulse-node span {
  margin-top: 8px;
  font-size: 1.2rem;
  font-weight: 1000;
}

.node-a { left: 44px; top: 70px; background: #101c35; }
.node-b { right: 54px; top: 78px; background: #ef4e3a; }
.node-c { left: 78px; bottom: 78px; background: #d88200; }
.node-d { right: 72px; bottom: 88px; background: #00786f; }

.pulse-link {
  position: absolute;
  height: 3px;
  background: rgba(16, 28, 53, 0.34);
  transform-origin: left;
  z-index: 2;
}

.link-a { width: 260px; left: 190px; top: 142px; transform: rotate(35deg); }
.link-b { width: 245px; right: 190px; top: 150px; transform: rotate(145deg); }
.link-c { width: 236px; left: 222px; bottom: 156px; transform: rotate(-28deg); }
.link-d { width: 232px; right: 226px; bottom: 170px; transform: rotate(208deg); }

.pulse-band,
.pulse-proof-wall,
.pulse-final-cta,
.pulse-next-panel,
.pulse-action-strip,
.pulse-action-plan {
  margin-top: 28px;
  padding: 26px;
  border: 1px solid rgba(17, 24, 39, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 20px 52px rgba(15, 23, 42, 0.08);
}

.pulse-action-plan {
  width: min(1440px, calc(100vw - 56px));
  margin-left: auto;
  margin-right: auto;
  background:
    linear-gradient(115deg, rgba(16, 28, 53, 0.96), rgba(0, 120, 111, 0.92));
}

.pulse-action-plan .pulse-section-title h2,
.pulse-action-plan .pulse-section-title p {
  color: white;
}

.pulse-action-plan .pulse-section-title span {
  background: white;
  color: #101c35;
}

.action-plan-board {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.action-column {
  min-height: 250px;
  padding: 20px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.action-column span,
.action-column strong,
.action-column p,
.action-column small {
  display: block;
}

.action-column span {
  color: #bdf7ef;
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.action-column strong {
  margin-top: 18px;
  font-size: 2rem;
  line-height: 1;
}

.action-column p {
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.5;
}

.action-column small {
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.82);
  font-weight: 850;
}

.pulse-section-title {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  column-gap: 18px;
  row-gap: 8px;
  align-items: start;
}

.pulse-section-title span {
  grid-row: span 2;
  min-height: 54px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: white;
  background: #101c35;
  font-weight: 1000;
}

.pulse-section-title h2 {
  color: #101c35;
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  line-height: 1;
}

.pulse-section-title p {
  max-width: 840px;
  color: #475467;
  line-height: 1.55;
}

.pulse-scoreboard {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.pulse-scoreboard article {
  min-height: 150px;
  padding: 18px;
  border-radius: 8px;
  background: #f4f7f6;
}

.pulse-scoreboard span,
.pulse-scoreboard small {
  display: block;
  color: #667085;
  font-weight: 900;
}

.pulse-scoreboard strong {
  display: block;
  margin-top: 14px;
  color: #101c35;
  font-size: 2rem;
}

.pulse-scroll-story {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.pulse-sticky-card {
  position: sticky;
  top: 86px;
  min-height: 420px;
  padding: 24px;
  border-radius: 8px;
  color: white;
  background: #101c35;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pulse-sticky-card h2 {
  margin-top: 14px;
  font-size: 2.3rem;
  line-height: 1;
}

.pulse-sticky-card p {
  margin-top: 16px;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.55;
}

.pulse-story-steps {
  display: grid;
  gap: 18px;
}

.pulse-story-steps article {
  min-height: 320px;
  padding: 28px;
  border-radius: 8px;
  background: white;
  border: 1px solid rgba(17, 24, 39, 0.1);
  box-shadow: 0 20px 52px rgba(15, 23, 42, 0.08);
}

.pulse-story-steps span,
.pulse-story-steps strong,
.pulse-story-steps p {
  display: block;
}

.pulse-story-steps span {
  color: #00786f;
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.pulse-story-steps strong {
  max-width: 760px;
  margin-top: 18px;
  color: #101c35;
  font-size: clamp(1.6rem, 3vw, 3.4rem);
  line-height: 1;
}

.pulse-story-steps p {
  max-width: 660px;
  margin-top: 16px;
  color: #475467;
  line-height: 1.55;
}

.pulse-proof-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.pulse-proof-card {
  min-height: 210px;
  padding: 18px;
  border-radius: 8px;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  position: relative;
}

.pulse-proof-card::after,
.decision-lane::after,
.evidence-tile::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  right: -48px;
  bottom: -58px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}

.pulse-proof-card span,
.pulse-proof-card strong,
.pulse-proof-card p {
  position: relative;
  z-index: 1;
}

.pulse-proof-card span {
  font-weight: 1000;
}

.pulse-proof-card strong {
  font-size: 1.8rem;
}

.pulse-proof-card p {
  color: rgba(255, 255, 255, 0.78);
}

.pulse-proof-card.finance { background: #101c35; }
.pulse-proof-card.client { background: #ef4e3a; }
.pulse-proof-card.market { background: #00786f; }
.pulse-proof-card.decision { background: #d88200; }

.pulse-final-cta {
  min-height: 240px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.pulse-final-cta h2 {
  max-width: 780px;
  color: #101c35;
  font-size: clamp(2rem, 4vw, 4.4rem);
  line-height: 0.95;
}

.pulse-internal-hero,
.pulse-decision-hero {
  margin-top: 18px;
  min-height: 420px;
  padding: 32px;
  border-radius: 8px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 24px;
  align-items: center;
  background:
    linear-gradient(118deg, #fff8e7, #eaf8f5);
  border: 1px solid rgba(17, 24, 39, 0.1);
  box-shadow: 0 20px 52px rgba(15, 23, 42, 0.08);
}

.story-mode {
  background:
    linear-gradient(118deg, #101c35, #073f45);
  color: white;
}

.story-mode h1,
.story-mode p {
  color: white;
}

.proof-mode {
  background:
    linear-gradient(118deg, #fff, #f3f8f7);
}

.pulse-case-file,
.pulse-signal-meter {
  min-height: 250px;
  padding: 22px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: grid;
  align-content: center;
  gap: 10px;
}

.pulse-signal-meter {
  background: #101c35;
  color: white;
}

.pulse-case-file strong,
.pulse-signal-meter strong {
  font-size: 2.4rem;
  line-height: 1;
}

.pulse-case-file span,
.pulse-signal-meter span,
.pulse-signal-meter small {
  display: block;
  line-height: 1.4;
}

.pulse-investigation,
.pulse-evidence-board,
.decision-lanes {
  margin-top: 28px;
}

.pulse-investigation {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.investigation-step {
  min-height: 420px;
  padding: 22px;
  border-radius: 8px;
  background: white;
  border: 1px solid rgba(17, 24, 39, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.investigation-step span {
  color: #00786f;
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.investigation-step h2 {
  color: #101c35;
  font-size: 2rem;
  line-height: 1;
}

.investigation-step p {
  color: #475467;
  line-height: 1.55;
}

.investigation-step.hot,
.investigation-step.dark,
.investigation-step.final {
  color: white;
}

.investigation-step.hot { background: #ef4e3a; }
.investigation-step.dark { background: #101c35; }
.investigation-step.final { background: #00786f; }
.investigation-step.hot h2,
.investigation-step.dark h2,
.investigation-step.final h2,
.investigation-step.hot p,
.investigation-step.dark p,
.investigation-step.final p,
.investigation-step.hot span,
.investigation-step.dark span,
.investigation-step.final span {
  color: white;
}

.pulse-evidence-board {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap: 12px;
}

.evidence-tile {
  min-height: 240px;
  padding: 22px;
  border-radius: 8px;
  color: white;
  background: #101c35;
  position: relative;
  overflow: hidden;
}

.evidence-tile.big {
  grid-row: span 2;
  min-height: 492px;
}

.evidence-tile span,
.evidence-tile strong,
.evidence-tile p {
  display: block;
  position: relative;
  z-index: 1;
}

.evidence-tile span {
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.evidence-tile strong {
  margin-top: 20px;
  font-size: clamp(2rem, 4vw, 4.6rem);
  line-height: 0.95;
}

.evidence-tile p {
  max-width: 420px;
  margin-top: 20px;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.5;
}

.evidence-tile.red { background: #ef4e3a; }
.evidence-tile.amber { background: #d88200; }
.evidence-tile.teal { background: #00786f; }
.evidence-tile.dark { background: #101c35; }

.pulse-decision-hero {
  grid-template-columns: 1fr;
  min-height: 390px;
  color: white;
  background:
    linear-gradient(118deg, #101c35, #073f45);
}

.pulse-decision-hero h1,
.pulse-decision-hero p {
  color: white;
}

.decision-lanes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.decision-lane {
  min-height: 440px;
  padding: 24px;
  border-radius: 8px;
  color: white;
  background: #00786f;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.decision-lane.priority { background: #ef4e3a; }
.decision-lane.dark { background: #101c35; }

.decision-lane span,
.decision-lane h2,
.decision-lane p,
.decision-lane strong {
  position: relative;
  z-index: 1;
}

.decision-lane span {
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.decision-lane h2 {
  font-size: clamp(2rem, 3.4vw, 4rem);
  line-height: 0.95;
}

.decision-lane p {
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.55;
}

.decision-lane strong {
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.pulse-action-strip {
  min-height: 170px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}

.pulse-action-strip span,
.pulse-action-strip strong {
  display: block;
}

.pulse-action-strip span {
  color: #00786f;
  font-weight: 1000;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.pulse-action-strip strong {
  max-width: 880px;
  margin-top: 8px;
  color: #101c35;
  font-size: clamp(1.5rem, 2.4vw, 2.8rem);
  line-height: 1;
}

@media (max-width: 1150px) {
  .pulse-nav,
  .pulse-landing,
  .pulse-internal-hero,
  .pulse-scroll-story,
  .pulse-decision-hero,
  .pulse-final-cta,
  .pulse-action-strip {
    grid-template-columns: 1fr;
  }

  .pulse-scoreboard,
  .pulse-proof-grid,
  .pulse-investigation,
  .decision-lanes,
  .action-plan-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pulse-evidence-board {
    grid-template-columns: 1fr;
  }

  .evidence-tile.big {
    min-height: 300px;
  }

  .pulse-nav {
    grid-template-columns: auto 54px;
    align-items: start;
  }

  .pulse-menu-button {
    display: flex;
    justify-self: end;
  }

  .pulse-menu-panel {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
    border-radius: 8px;
    padding: 10px;
    display: none;
  }

  .pulse-menu-toggle:checked ~ .pulse-menu-panel {
    display: grid;
  }

  .pulse-menu-toggle:checked + .pulse-menu-button span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .pulse-menu-toggle:checked + .pulse-menu-button span:nth-child(2) {
    opacity: 0;
  }

  .pulse-menu-toggle:checked + .pulse-menu-button span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .pulse-menu-button span {
    transition: transform 0.18s ease, opacity 0.18s ease;
  }

  .pulse-nav-center,
  .pulse-nav-actions {
    justify-content: stretch;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .pulse-nav-center a,
  .pulse-nav-actions a,
  .pulse-nav-actions span {
    min-height: 48px;
    justify-content: center;
    border-radius: 8px;
    background: #f4f7f6;
  }
}

@media (max-width: 720px) {
  .pulse-landing,
  .pulse-band,
  .pulse-action-plan,
  .pulse-scroll-story,
  .pulse-proof-wall,
  .pulse-final-cta,
  .pulse-internal-hero,
  .pulse-investigation,
  .pulse-next-panel,
  .pulse-evidence-board,
  .pulse-decision-hero,
  .decision-lanes,
  .pulse-action-strip {
    width: calc(100vw - 32px);
  }

  .pulse-scoreboard,
  .pulse-proof-grid,
  .pulse-investigation,
  .decision-lanes,
  .action-plan-board {
    grid-template-columns: 1fr;
  }

  .pulse-live {
    min-height: 520px;
  }

  .pulse-nav {
    width: calc(100vw - 24px);
    padding-top: 8px;
  }

  .pulse-brand {
    min-width: 0;
    padding-right: 12px;
  }

  .pulse-brand strong {
    font-size: 0.96rem;
  }

  .pulse-nav-center,
  .pulse-nav-actions {
    grid-template-columns: 1fr;
  }

  .pulse-landing {
    min-height: auto;
    padding-top: 18px;
  }

  .pulse-landing h1,
  .pulse-internal-hero h1,
  .pulse-decision-hero h1 {
    font-size: clamp(2.35rem, 13vw, 3.25rem);
    line-height: 0.96;
  }

  .pulse-landing p,
  .pulse-internal-hero p,
  .pulse-decision-hero p {
    font-size: 1rem;
  }

  .pulse-light-orbit {
    min-height: 470px;
  }

  .infopilot-core {
    width: 136px;
    height: 136px;
    left: calc(50% - 68px);
    top: calc(50% - 68px);
    box-shadow:
      0 0 0 18px rgba(0, 169, 157, 0.12),
      0 0 0 44px rgba(246, 164, 0, 0.08);
  }

  .infopilot-core span {
    font-size: 1.2rem;
  }

  .pulse-node {
    width: 132px;
  }

  .node-a { left: 16px; top: 38px; }
  .node-b { right: 16px; top: 48px; }
  .node-c { left: 18px; bottom: 44px; }
  .node-d { right: 18px; bottom: 58px; }

  .pulse-link {
    display: none;
  }

  .pulse-section-title {
    grid-template-columns: 1fr;
  }

  .pulse-section-title span {
    width: 58px;
  }

  .pulse-light-orbit .planet {
    width: 122px;
    min-height: 56px;
    padding: 9px;
    font-size: 0.86rem;
  }

  .pulse-light-orbit .planet small {
    font-size: 0.72rem;
  }

  .pulse-light-orbit .p1 {
    left: 12px;
    top: 28px;
  }

  .pulse-light-orbit .p2 {
    right: 12px;
    top: 28px;
  }

  .pulse-light-orbit .p3 {
    left: 14px;
    bottom: 30px;
  }

  .pulse-light-orbit .p4 {
    right: 14px;
    bottom: 30px;
  }

  .ring.one {
    inset: 70px 28px;
  }

  .ring.two {
    inset: 118px 68px;
  }

  .pulse-band,
  .pulse-proof-wall,
  .pulse-action-plan,
  .pulse-final-cta,
  .pulse-next-panel,
  .pulse-action-strip,
  .pulse-internal-hero,
  .pulse-decision-hero {
    padding: 18px;
  }

  .pulse-story-steps article,
  .investigation-step,
  .decision-lane {
    min-height: 300px;
  }

  .evidence-tile,
  .evidence-tile.big {
    min-height: 260px;
  }

  .pulse-final-cta,
  .pulse-action-strip {
    display: grid;
  }
}

/* ══════════════════════════════════════════════════
   APP-SPECIFIC ADDITIONS
   ══════════════════════════════════════════════════ */

/* Variables de compatibilité pour les composants app */
:root {
  --blue:        #4f6df5;
  --blue-dark:   #2d4db5;
  --blue-light:  rgba(79,109,245,0.12);
  --navy:        #101c35;
  --slate:       #667085;
  --slate-light: #f6f7f4;
  --white:       #ffffff;
  --border:      rgba(17,24,39,0.12);
  --shadow:      0 18px 46px rgba(15,23,42,0.07);
  --shadow-md:   0 20px 52px rgba(15,23,42,0.1);
  --radius:      8px;
  --green:       #00a99d;
  --green-light: rgba(0,169,157,0.14);
  --red:         #ef4e3a;
  --red-light:   rgba(239,78,58,0.12);
  --amber:       #f6a400;
  --amber-light: rgba(246,164,0,0.12);
}

/* Nav — état actif */
.pulse-nav-center a.active {
  background: #101c35;
  color: white;
}

/* Proof cards — variantes app */
.pulse-proof-card.ia       { background: #00786f; }
.pulse-proof-card.mensuel  { background: #4f6df5; }
.pulse-proof-card.locked   {
  background: #cbd5e1;
  color: #64748b;
  pointer-events: none;
  cursor: default;
}
.pulse-proof-card.locked p  { color: rgba(100,116,139,0.78); }
.pulse-proof-card.locked strong { color: #475467; }

/* Dashboard content wrapper */
.dashboard-content {
  width: min(1440px, calc(100vw - 56px));
  margin: 0 auto;
  padding: 28px 0 48px;
}

/* ══ KPI CARDS ══ */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.kpi-card {
  background: rgba(255,255,255,0.9);
  border-radius: 8px;
  padding: 20px;
  border: 1px solid rgba(17,24,39,0.1);
  box-shadow: 0 18px 46px rgba(15,23,42,0.07);
}
.kpi-label {
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #667085;
  margin-bottom: 8px;
}
.kpi-value {
  font-size: 26px;
  font-weight: 900;
  color: #101c35;
  line-height: 1;
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}
.kpi-value.negative { color: #ef4e3a; }
.kpi-sub { display: flex; align-items: center; gap: 8px; }
.kpi-pct { font-size: 12px; font-weight: 700; color: #667085; }
.kpi-delta {
  font-size: 11px; font-weight: 900;
  padding: 2px 7px; border-radius: 999px;
}
.kpi-delta.up   { background: rgba(0,169,157,0.14); color: #00786f; }
.kpi-delta.down { background: rgba(239,78,58,0.12);  color: #ef4e3a; }
.kpi-delta.flat { background: rgba(17,24,39,0.07);   color: #667085; }
.kpi-sparkline-wrap { position: relative; height: 40px; margin-top: 10px; }
.kpi-sparkline { position: absolute; top:0; left:0; width:100%!important; height:100%!important; }

/* ══ CHARTS ROW ══ */
.charts-row {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 12px;
  margin-bottom: 20px;
}
.chart-card {
  background: rgba(255,255,255,0.9);
  border-radius: 8px;
  padding: 20px;
  border: 1px solid rgba(17,24,39,0.1);
  box-shadow: 0 18px 46px rgba(15,23,42,0.07);
}
.chart-card-title {
  font-size: 13px; font-weight: 900; color: #101c35; margin-bottom: 4px;
}
.chart-card-sub {
  font-size: 11px; color: #667085; margin-bottom: 16px;
}
.chart-container { position: relative; }

/* ══ TABLE CARD ══ */
.table-card {
  background: rgba(255,255,255,0.9);
  border-radius: 8px;
  border: 1px solid rgba(17,24,39,0.1);
  box-shadow: 0 18px 46px rgba(15,23,42,0.07);
  overflow: hidden;
  margin-bottom: 20px;
}
.table-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid rgba(17,24,39,0.1);
}
.table-card-title { font-size: 15px; font-weight: 900; color: #101c35; }

/* ══ P&L TABLE ══ */
.pl-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pl-table th {
  padding: 10px 16px; text-align: right;
  font-size: 12px; font-weight: 900;
  color: white; background: #101c35;
  border-bottom: 2px solid #00a99d;
  white-space: nowrap;
}
.pl-table th:first-child { text-align: left; padding-left: 24px; width: 52%; }
.pl-table th.col-compte { width: 80px; text-align: center; color: rgba(255,255,255,0.55); font-weight: 700; }

.pl-section-row td {
  background: #101c35; color: white;
  font-weight: 900; font-size: 12.5px;
  padding: 9px 16px;
  cursor: pointer; user-select: none; letter-spacing: .3px;
}
.pl-section-row td:first-child { padding-left: 24px; }
.pl-section-row:hover td { background: #1a2e4a; }
.section-toggle { float: right; font-size: 14px; transition: transform .2s; }
.section-toggle.collapsed { transform: rotate(-90deg); }

.pl-detail-row td { padding: 8px 16px; border-bottom: 1px solid rgba(17,24,39,0.06); color: #334155; }
.pl-detail-row td:first-child { padding-left: 36px; color: #667085; }
.pl-detail-row:hover td { background: rgba(0,169,157,0.04); }
.pl-detail-row.hidden { display: none; }
.pl-detail-row td.num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.pl-detail-row td.compte-cell { text-align: center; font-size: 11px; color: #94a3b8; font-family: monospace; }

.pl-subtotal-row td {
  padding: 9px 16px;
  background: rgba(0,169,157,0.07);
  font-weight: 900;
  border-top: 2px solid rgba(0,169,157,0.3);
  border-bottom: 1px solid rgba(17,24,39,0.08);
}
.pl-subtotal-row td:first-child { padding-left: 24px; color: #00786f; }
.pl-subtotal-row td.num { text-align: right; color: #101c35; font-variant-numeric: tabular-nums; }

.pl-kpi-row td {
  padding: 13px 16px; font-weight: 900; font-size: 14px;
  border-top: 2px solid; border-bottom: 3px double;
}
.pl-kpi-row td:first-child { padding-left: 24px; }
.pl-kpi-row td.num { text-align: right; font-variant-numeric: tabular-nums; }
.pl-kpi-row.kpi-mb  td { background: rgba(0,169,157,0.12); border-color: #00a99d; color: #00786f; }
.pl-kpi-row.kpi-ebe td { background: rgba(246,164,0,0.12);  border-color: #f6a400; color: #a06000; }
.pl-kpi-row.kpi-rex td { background: rgba(79,109,245,0.1);  border-color: #4f6df5; color: #2d4db5; }
.pl-kpi-row.kpi-rex.negative td { background: rgba(239,78,58,0.1); border-color: #ef4e3a; color: #b73120; }

.pl-pct-row td {
  padding: 4px 16px 8px; font-size: 11px; font-style: italic;
  color: #667085; border-bottom: 1px solid rgba(17,24,39,0.08);
}
.pl-pct-row td.num { text-align: right; }
.pl-pct-row td:first-child { padding-left: 24px; }

.val-positive { color: #00786f; }
.val-negative { color: #ef4e3a; }

/* ══ PAGE HERO (annuel / mensuel) ══ */
.page-hero {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 12px;
  margin-bottom: 20px;
  align-items: stretch;
}
.hero-card {
  background: linear-gradient(135deg, #101c35 0%, #073f45 50%, #00786f 100%);
  border-radius: 8px;
  padding: 28px 32px 24px;
  color: white;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 160px;
}
.hero-eyebrow {
  font-size: 11px; font-weight: 900; text-transform: uppercase;
  letter-spacing: 1.4px; color: rgba(255,255,255,.6); margin-bottom: 10px;
}
.hero-title { font-size: 32px; font-weight: 900; line-height: 1.1; margin-bottom: 10px; }
.hero-subtitle { font-size: 13px; color: rgba(255,255,255,.72); line-height: 1.5; max-width: 440px; }

/* Select card */
.select-card {
  background: rgba(255,255,255,0.9);
  border-radius: 8px;
  border: 1px solid rgba(17,24,39,0.1);
  box-shadow: 0 18px 46px rgba(15,23,42,0.07);
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 12px;
}
.select-card-header { display: flex; align-items: center; justify-content: space-between; }
.select-card-title { font-size: 13px; font-weight: 900; color: #101c35; }
.select-sublabel {
  font-size: 10px; font-weight: 900; text-transform: uppercase;
  letter-spacing: .07em; color: #667085; margin-bottom: 6px;
}
.reset-btn {
  font-size: 11px; color: #00786f; background: none;
  border: 1px solid rgba(0,169,157,0.25); cursor: pointer;
  font-weight: 900; padding: 4px 10px; border-radius: 8px; transition: all .15s;
}
.reset-btn:hover { background: rgba(0,169,157,0.1); }

.year-pills-row { display: flex; gap: 5px; flex-wrap: wrap; }
.year-pill, .a-year-pill {
  padding: 5px 11px; border-radius: 999px;
  border: 1.5px solid rgba(17,24,39,0.14);
  background: transparent; font-size: 12px; font-weight: 900;
  color: #667085; cursor: pointer; transition: all .15s;
}
.year-pill:hover, .a-year-pill:hover { border-color: #00a99d; color: #00786f; }
.year-pill.selected, .a-year-pill.selected { background: #101c35; border-color: #101c35; color: white; }
.a-year-pills { display: flex; gap: 5px; flex-wrap: wrap; }

.month-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; user-select: none; -webkit-user-select: none; }
.month-pill {
  padding: 7px 4px; border-radius: 7px;
  border: 1.5px solid rgba(17,24,39,0.12);
  background: white; font-size: 11.5px; font-weight: 900;
  color: #667085; cursor: pointer; text-align: center; transition: all .1s;
}
.month-pill:hover { border-color: #00a99d; color: #00786f; }
.month-pill.selected { background: #101c35; border-color: #101c35; color: white; }
.month-pill.drag-over { background: rgba(0,169,157,0.12); border-color: #00a99d; color: #00786f; }

.presets-row { display: flex; gap: 4px; flex-wrap: wrap; }
.preset-btn {
  padding: 4px 9px; border-radius: 999px;
  border: 1.5px solid rgba(17,24,39,0.12);
  background: rgba(17,24,39,0.04);
  font-size: 10.5px; font-weight: 900; color: #667085; cursor: pointer; transition: all .15s;
}
.preset-btn:hover { border-color: #00a99d; color: #00786f; background: rgba(0,169,157,0.08); }

/* ══ MONTHLY KPIs ══ */
.m-kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 16px; }
.m-kpi-card {
  background: rgba(255,255,255,0.9); border-radius: 8px; padding: 16px 20px;
  border: 1px solid rgba(17,24,39,0.1); box-shadow: 0 18px 46px rgba(15,23,42,0.07);
}
.m-kpi-label { font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; color: #667085; margin-bottom: 6px; }
.m-kpi-value { font-size: 22px; font-weight: 900; color: #101c35; line-height: 1; }
.m-kpi-sub { font-size: 12px; color: #667085; margin-top: 4px; display: flex; align-items: center; gap: 6px; }
.m-kpi-badge { font-size: 11px; font-weight: 900; padding: 2px 7px; border-radius: 999px; }
.m-kpi-badge.up   { background: rgba(0,169,157,0.14); color: #00786f; }
.m-kpi-badge.down { background: rgba(239,78,58,0.12);  color: #ef4e3a; }
.m-kpi-badge.flat { background: rgba(17,24,39,0.07);   color: #667085; }

.m-charts-row { display: grid; grid-template-columns: 1.3fr 1fr; gap: 12px; margin-bottom: 16px; }

/* Monthly table */
.m-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.m-table th {
  padding: 8px 12px; text-align: right; font-size: 11px; font-weight: 900;
  color: white; background: #101c35;
  border-bottom: 2px solid #00a99d; white-space: nowrap;
}
.m-table th:first-child { text-align: left; padding-left: 20px; min-width: 200px; }
.m-table th.m-th-month { text-align: center; min-width: 90px; }
.m-month-col { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.m-month-n { font-size: 12px; font-weight: 700; color: #101c35; }
.m-month-var { font-size: 10px; font-weight: 900; padding: 1px 5px; border-radius: 8px; }
.m-month-var.up   { background: rgba(0,169,157,0.14); color: #00786f; }
.m-month-var.down { background: rgba(239,78,58,0.12);  color: #ef4e3a; }
.m-month-var.flat { background: rgba(17,24,39,0.07);   color: #667085; }
.m-section-row td {
  background: #101c35; color: white; font-weight: 900; font-size: 12px;
  padding: 8px 12px; cursor: pointer;
}
.m-section-row td:first-child { padding-left: 20px; }
.m-section-row:hover td { background: #1a2e4a; }
.m-detail-row td { padding: 6px 12px; border-bottom: 1px solid rgba(17,24,39,0.06); color: #334155; }
.m-detail-row td:first-child { padding-left: 28px; color: #667085; font-size: 11px; }
.m-detail-row.hidden { display: none; }
.m-detail-row:hover td { background: rgba(0,169,157,0.04); }
.m-detail-row td.m-num { text-align: right; font-variant-numeric: tabular-nums; }
.m-subtotal-row td {
  padding: 7px 12px; background: rgba(0,169,157,0.07); font-weight: 900;
  border-top: 2px solid rgba(0,169,157,0.3); border-bottom: 1px solid rgba(17,24,39,0.08);
}
.m-subtotal-row td:first-child { padding-left: 20px; color: #00786f; }
.m-subtotal-row td.m-num { text-align: right; color: #101c35; font-variant-numeric: tabular-nums; }
.m-kpi-row-mb td  { background: rgba(0,169,157,0.12); font-weight:900; font-size:13px; border-top:2px solid #00a99d; color:#00786f; padding:10px 12px; }
.m-kpi-row-ebe td { background: rgba(246,164,0,0.12);  font-weight:900; font-size:13px; border-top:2px solid #f6a400; color:#a06000; padding:10px 12px; }
.m-kpi-row-rex td { background: rgba(79,109,245,0.1);  font-weight:900; font-size:13px; border-top:2px solid #4f6df5; color:#2d4db5; padding:10px 12px; border-bottom:3px double #4f6df5; }
.m-kpi-row-mb td:first-child, .m-kpi-row-ebe td:first-child, .m-kpi-row-rex td:first-child { padding-left:20px; }
.m-kpi-row-mb td.m-num, .m-kpi-row-ebe td.m-num, .m-kpi-row-rex td.m-num { text-align:right; font-variant-numeric:tabular-nums; }
.m-total-col { background: rgba(17,24,39,0.04); font-weight:900; border-left:2px solid rgba(17,24,39,0.12); }

/* ══ LOADING / ERROR ══ */
.loading-overlay {
  position: fixed; inset: 0;
  background: rgba(16,28,53,0.4);
  display: flex; align-items: center; justify-content: center;
  z-index: 999; backdrop-filter: blur(4px);
}
.loading-spinner {
  background: white;
  border-radius: 8px; padding: 32px 48px;
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  box-shadow: 0 20px 52px rgba(15,23,42,0.15);
  border: 1px solid rgba(17,24,39,0.1);
}
.spinner {
  width: 36px; height: 36px;
  border: 3px solid rgba(17,24,39,0.1);
  border-top-color: #00a99d;
  border-radius: 50%; animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.loading-text { font-size: 14px; font-weight: 900; color: #101c35; }

.error-banner {
  background: rgba(239,78,58,0.1);
  border: 1px solid rgba(239,78,58,0.25);
  border-radius: 8px; padding: 16px 20px;
  color: #b73120; font-size: 13px; font-weight: 700;
  margin-bottom: 16px; display: none;
}

/* ══ PAGE HEADER ══ */
.page-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  margin-bottom: 20px; flex-wrap: wrap; gap: 16px;
}
.page-title { font-size: 24px; font-weight: 900; color: #101c35; }
.page-subtitle { font-size: 13px; color: #667085; margin-top: 3px; }

/* ══ ANIMATIONS ══ */
@keyframes fadeIn {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
.fade-in   { animation: fadeIn .3s ease-out both; }
.fade-in-1 { animation-delay: .05s; }
.fade-in-2 { animation-delay: .10s; }
.fade-in-3 { animation-delay: .15s; }
.fade-in-4 { animation-delay: .20s; }

/* ══ RESPONSIVE — DASHBOARD ══ */
@media (max-width: 1100px) {
  .kpi-grid { grid-template-columns: repeat(2,1fr); }
  .charts-row { grid-template-columns: 1fr 1fr; }
  .charts-row .chart-card:first-child { grid-column: span 2; }
  .page-hero { grid-template-columns: 1fr; }
  .m-kpi-grid { grid-template-columns: repeat(2,1fr); }
  .m-charts-row { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .dashboard-content { width: calc(100vw - 32px); padding: 16px 0 32px; }
  .kpi-grid { grid-template-columns: repeat(2,1fr); }
  .charts-row { grid-template-columns: 1fr; }
  .charts-row .chart-card:first-child { grid-column: span 1; }
  .m-kpi-grid { grid-template-columns: repeat(2,1fr); }
}

/* ══════════════════════════════════════════════════
   PAGE ANALYSE — STYLES SPÉCIFIQUES
   ══════════════════════════════════════════════════ */

/* ── Layout ──────────────────────────────────────────── */
.analyse-layout {
  display:flex; flex-direction:column;
  height:calc(100vh - 76px); overflow:hidden;
}

/* ── Hero ────────────────────────────────────────────── */
.a-hero {
  background: linear-gradient(135deg, #0F3D4A 0%, #0E5548 60%, #14724E 100%);
  padding: 13px 28px;
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0; gap:20px; border-bottom:1px solid rgba(0,0,0,.15);
}
.a-hero-left { display:flex; align-items:center; gap:14px; }
.a-hero-icon { font-size:26px; }
.a-hero-eyebrow { font-size:9.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.2px; color:rgba(255,255,255,.45); margin-bottom:3px; }
.a-hero-title { font-size:19px; font-weight:800; color:white; letter-spacing:-0.3px; line-height:1.1; }
.a-hero-sub { font-size:11px; color:rgba(255,255,255,.55); margin-top:3px; }
.a-hero-right { display:flex; align-items:center; gap:12px; }

/* ── FAB scroll top ──────────────────────────────────── */
.scroll-top-fab {
  position:fixed; bottom:108px; right:22px; z-index:50;
  width:36px; height:36px; border-radius:50%;
  background:var(--navy); color:white; border:none;
  cursor:pointer; font-size:14px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.25); transition:all .15s; opacity:.7;
}
.scroll-top-fab:hover { opacity:1; transform:translateY(-2px); }

/* ── Boutons hero ────────────────────────────────────── */
.btn-hero {
  padding:5px 13px; border-radius:8px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.1); color:rgba(255,255,255,.85); font-size:12px;
  cursor:pointer; transition:all .15s; white-space:nowrap;
}
.btn-hero:hover { background:rgba(255,255,255,.2); color:white; }
.hero-counter { font-size:11px; color:rgba(255,255,255,.45); white-space:nowrap; }

/* ── Zone messages ───────────────────────────────────── */
.messages-area {
  flex:1; overflow-y:auto; padding:24px 28px;
  display:flex; flex-direction:column; gap:26px; scroll-behavior:smooth;
}

/* ── Chat turns ──────────────────────────────────────── */
.chat-turn { display:flex; flex-direction:column; gap:6px; }
.chat-turn--user { align-items:flex-end; }
.chat-turn--ai   { align-items:flex-start; width:100%; }
.chat-meta { display:flex; align-items:center; gap:8px; padding:0 4px; }
.chat-meta--user { flex-direction:row-reverse; }
.chat-avatar { font-size:15px; }
.chat-sender { font-size:11px; font-weight:700;
  letter-spacing:.3px; color:var(--slate);
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; }
.chat-sender--ai { color:var(--blue-dark); }
.chat-time { font-size:10px; color:#94A3B8; }
.chat-divider { flex:1; height:1px; background:var(--border); }

/* ── Bulle utilisateur ───────────────────────────────── */
.msg-user {
  max-width:640px;
  background: linear-gradient(135deg, #2563EB 0%, #1E40AF 100%);
  color:white; padding:13px 19px;
  border-radius:20px 20px 4px 20px;
  font-size:14px; line-height:1.55;
  box-shadow:0 2px 10px rgba(37,99,235,.35);
}

/* ── Bloc assistant ──────────────────────────────────── */
.msg-assistant { align-self:flex-start; width:100%; max-width:960px; }

/* ── Stepper ─────────────────────────────────────────── */
.stepper {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius) var(--radius) 0 0;
  border-left:3px solid #0E5548;
  padding:10px 16px; display:flex; flex-direction:column; gap:4px;
}
.step-row { display:flex; align-items:center; gap:9px; font-size:12.5px; min-height:22px; }
.step-icon {
  width:18px; height:18px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:9px;
}
.step-icon.waiting { background:var(--slate-light); border:1.5px solid var(--border); }
.step-icon.running {
  background:var(--amber-light); border:1.5px solid var(--amber);
  animation:pulse-ring 1.2s ease-in-out infinite;
}
.step-icon.done { background:var(--green-light); border:1.5px solid var(--green); }
@keyframes pulse-ring {
  0%,100% { box-shadow:0 0 0 0 rgba(245,158,11,.4); }
  50%      { box-shadow:0 0 0 4px rgba(245,158,11,0); }
}
.step-label { flex:1; color:var(--navy); }
.step-label.running { font-weight:600; color:var(--blue-dark); }
.step-label.waiting { color:#94A3B8; }
.step-label--sql { cursor:pointer; user-select:none; }
.step-label--sql:hover { color:var(--blue); }
.step-sql-toggle { font-size:10px; color:var(--blue); margin-left:4px; font-weight:700; }
.step-timer { font-size:11px; color:var(--amber); font-weight:600; font-variant-numeric:tabular-nums; }
.step-done-time { font-size:11px; color:var(--slate); font-variant-numeric:tabular-nums; }
.step-total {
  display:flex; align-items:center; justify-content:space-between; gap:6px;
  font-size:11px; font-weight:600; color:var(--navy);
  padding-top:5px; border-top:1px dashed var(--border); margin-top:2px;
  font-variant-numeric:tabular-nums;
}
.step-total-label { color:var(--slate); font-weight:400; }
.step-total-time  { display:flex; align-items:center; gap:6px; }
.step-cost { font-size:10.5px; color:var(--slate); font-weight:400;
  background:var(--slate-light); border-radius:5px; padding:2px 7px; }

/* ── Stepper archivé réduit ──────────────────────────── */
.step-summary {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:4px 0; cursor:pointer; user-select:none;
}
.step-summary:hover .step-toggle-btn { color:var(--blue); }
.step-toggle-btn { font-size:10px; color:var(--slate); font-weight:600; white-space:nowrap; flex-shrink:0; }
.step-summary-left { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:600; color:var(--navy); font-variant-numeric:tabular-nums; }
.step-detail { border-top:1px dashed var(--border); margin-top:5px; padding-top:5px; }

/* ── Ishikawa ─────────────────────────────────────────── */
.ishikawa-wrap { margin:4px 0 8px; }
.ishikawa-title { font-size:15px; font-weight:700; margin:12px 0 6px; color:var(--navy);
  padding-bottom:4px; border-bottom:2px solid var(--border); display:flex; align-items:center; gap:6px; }
.ishikawa-svg-container { width:100%; overflow:visible; }

/* ── SQL Detail ──────────────────────────────────────── */
.sql-detail {
  background:#0D1B2A; border-radius:6px;
  margin:3px 0 3px 27px; padding:9px 13px;
  overflow-x:auto; border-left:2px solid #2563EB;
}
.sql-num { font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:.7px; color:#5BA4CF; margin-bottom:4px; }
.sql-code { font-family:'Menlo','Monaco','Consolas',monospace;
  font-size:10.5px; color:#A8D8B9; line-height:1.7;
  white-space:pre-wrap; word-break:break-all; }
.sql-sep { border:none; border-top:1px solid #1E3348; margin:7px 0; }

/* ── Dots animation ──────────────────────────────────── */
.dots { display:inline-flex; gap:3px; align-items:center; }
.dots span {
  width:4px; height:4px; border-radius:50%; background:var(--amber);
  animation:bounce-dot 1.2s ease-in-out infinite;
}
.dots span:nth-child(2) { animation-delay:.2s; }
.dots span:nth-child(3) { animation-delay:.4s; }
@keyframes bounce-dot {
  0%,80%,100% { transform:scale(.6); opacity:.4; }
  40%          { transform:scale(1);  opacity:1; }
}

/* ── Bulle réponse ───────────────────────────────────── */
.response-bubble {
  background:var(--white); border:1px solid var(--border); border-top:none;
  border-radius:0 0 var(--radius) var(--radius);
  padding:16px 22px; display:flex; flex-direction:column; gap:10px;
}

/* ── TOC ─────────────────────────────────────────────── */
.toc-box {
  background:var(--slate-light); border-radius:10px;
  padding:10px 14px; display:flex; flex-direction:column; gap:5px;
}
.toc-label { font-size:10px; font-weight:800; text-transform:uppercase;
  letter-spacing:.6px; color:var(--slate); margin-bottom:2px; }
.toc-link {
  display:flex; align-items:center; gap:8px; padding:5px 8px;
  border-radius:6px; font-size:13px; color:var(--navy);
  cursor:pointer; transition:all .12s; user-select:none;
}
.toc-link:hover { background:var(--white); color:var(--blue); }
.toc-link.primary   { border-left:3px solid var(--red); }
.toc-link.secondary { border-left:3px solid var(--amber); }
.toc-link.constat   { border-left:3px solid #0E5548; }
.toc-link .toc-n { font-size:10px; color:var(--slate); min-width:14px; }

/* ── Section constat (📊) ────────────────────────────── */
.rtext h2[data-type="constat"] {
  color: #0E5548; border-bottom-color: #0E5548;
}

/* ── Questions de suivi par chapitre ─────────────────── */
.chapter-question {
  display:flex; justify-content:flex-end; margin-top:8px;
}
.chapter-q-chip {
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 13px; border-radius:18px;
  border:1.5px solid #0E5548; background:rgba(14,85,72,.06);
  color:#0E5548; font-size:12px; cursor:pointer; transition:all .15s;
  font-style:italic; max-width:460px; text-align:right;
}
.chapter-q-chip:hover { background:#0E5548; color:white; border-color:#0E5548; }

/* ── Texte narratif ──────────────────────────────────── */
.rtext { font-size:14px; line-height:1.8; color:var(--navy); }
.rtext h2 { font-size:15px; font-weight:700; margin:12px 0 4px; color:var(--navy);
  padding-bottom:4px; border-bottom:2px solid var(--border); display:block; }
.rtext h3 { font-size:13px; font-weight:700; margin:6px 0 3px; }
.rtext strong { font-weight:700; }
.rtext hr { border:none; border-top:1px dashed var(--border); margin:6px 0; }
.rtext .md-table { border-collapse:collapse; margin:8px 0 12px; font-size:13px; width:100%; }
.rtext .md-table th, .rtext .md-table td { border:1px solid var(--border); padding:5px 10px; text-align:left; }
.rtext .md-table th { background:var(--light-bg,#f5f6fa); font-weight:600; color:var(--navy); }
.rtext .md-table tr:nth-child(even) td { background:#f9f9fb; }
.rtext .md-table td:first-child { font-weight:500; }

/* ── Charts ──────────────────────────────────────────── */
.chart-wrap { position:relative; height:280px; margin:4px 0; }

/* ── Tables ──────────────────────────────────────────── */
.tbl-wrap { overflow-x:auto; }
.tbl-title { font-size:11px; font-weight:700; color:var(--slate);
  text-transform:uppercase; letter-spacing:.4px; margin-bottom:7px; }
.dtable { width:100%; border-collapse:collapse; font-size:12.5px; }
.dtable th { background:var(--slate-light); padding:7px 11px; text-align:left;
  font-weight:700; color:var(--navy); border-bottom:2px solid var(--border); white-space:nowrap; }
.dtable td { padding:6px 11px; border-bottom:1px solid var(--border); }
.dtable tr:last-child td { border-bottom:none; }
.dtable tr:hover td { background:var(--slate-light); }

/* ── Bloc erreur ─────────────────────────────────────── */
.error-block {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:10px 14px; border-radius:8px;
  background:#FEF2F2; border:1px solid #FECACA;
}
.error-icon { font-size:16px; flex-shrink:0; }
.error-msg { flex:1; font-size:13px; color:#991B1B; line-height:1.5; min-width:180px; }
.error-retry {
  padding:5px 13px; border-radius:8px; border:1.5px solid #EF4444;
  background:white; color:#EF4444; font-size:12px; font-weight:600;
  cursor:pointer; transition:all .15s; white-space:nowrap; flex-shrink:0;
}
.error-retry:hover { background:#EF4444; color:white; }

/* ── Follow-ups ──────────────────────────────────────── */
.fu-section { border-top:1px solid var(--border); padding-top:10px; }
.fu-label { font-size:10px; font-weight:800; text-transform:uppercase;
  letter-spacing:.5px; color:var(--slate); margin-bottom:7px; }
.fu-list { display:flex; flex-direction:column; gap:5px; }
.fu-chip {
  display:inline-flex; align-items:center; gap:5px; padding:6px 12px;
  border-radius:18px; border:1px solid var(--blue-light); background:var(--blue-light);
  color:var(--blue-dark); font-size:12.5px; cursor:pointer; transition:all .15s;
  text-align:left; width:fit-content;
}
.fu-chip:hover { background:var(--blue); color:white; border-color:var(--blue); }

/* ── Zone de saisie ──────────────────────────────────── */
.input-area {
  padding:12px 28px 16px; background:white;
  border-top:1px solid rgba(17,24,39,0.1); flex-shrink:0;
}
.input-row { display:flex; gap:9px; align-items:flex-end; }
.qinput {
  flex:1; border:1.5px solid var(--border); border-radius:12px;
  padding:10px 14px; font-size:14px; font-family:inherit; resize:none;
  outline:none; transition:border-color .15s; color:var(--navy);
  background:#f6f7f4; min-height:46px; max-height:130px;
}
.qinput:focus { border-color:#00a99d; background:white; }
.qinput::placeholder { color:var(--slate); }
.send-btn {
  padding:10px 20px; background:#101c35; color:white; border:none;
  border-radius:12px; font-size:14px; font-weight:700; cursor:pointer;
  transition:all .15s; height:46px; display:flex; align-items:center; gap:5px;
}
.send-btn:hover:not(:disabled) { background:#1a2e4a; }
.send-btn:disabled { opacity:.5; cursor:not-allowed; }

/* ── Panneau de clarification ────────────────────────── */
.clarif-panel {
  background: linear-gradient(135deg, #EFF6FF 0%, #F0FDF4 100%);
  border: 1px solid #BFDBFE; border-radius: 10px;
  padding: 16px 18px; display: flex; flex-direction: column; gap: 14px;
}
.clarif-header { font-size: 13.5px; font-weight: 700; color: var(--navy); }
.clarif-sub { font-size: 12px; color: var(--slate); margin-top: 4px; }
.clarif-q { display: flex; flex-direction: column; gap: 7px; }
.clarif-q-text { font-size: 13px; color: var(--navy); font-weight: 600; }
.clarif-options { display: flex; flex-wrap: wrap; gap: 6px; }
.clarif-opt {
  padding: 5px 13px; border-radius: 20px;
  border: 1.5px solid var(--border); background: white;
  color: var(--navy); font-size: 12px; cursor: pointer; transition: all .12s;
}
.clarif-opt:hover:not(:disabled) { border-color: var(--blue); color: var(--blue); }
.clarif-opt.selected { background: var(--blue); color: white; border-color: var(--blue); font-weight: 600; }
.clarif-opt:disabled { cursor: not-allowed; opacity: .65; }
.clarif-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-top: 4px; }
.clarif-launch {
  padding: 8px 18px; background: var(--blue); color: white;
  border: none; border-radius: 9px; font-size: 13px;
  font-weight: 600; cursor: pointer; transition: all .15s;
}
.clarif-launch:hover { background: var(--blue-dark); }
.clarif-skip { background: none; border: none; color: var(--slate); font-size: 12px;
  cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.clarif-done { font-size: 12px; color: var(--green); font-weight: 600; padding-top: 4px; }

/* ── Welcome ─────────────────────────────────────────── */
.welcome { display:flex; flex-direction:column; align-items:center;
  justify-content:center; flex:1; gap:18px; padding:40px; text-align:center; }
.welcome-title { font-size:20px; font-weight:700; color:var(--navy); }
.welcome-sub { font-size:13.5px; color:var(--slate); max-width:460px; line-height:1.65; }
.welcome-chips { display:flex; flex-direction:column; gap:7px; width:100%; max-width:540px; margin-top:6px; }
.wchip {
  padding:10px 16px; border:1.5px solid rgba(17,24,39,0.18); border-radius:10px;
  background:white; color:#101c35; font-size:13px; font-weight:600;
  cursor:pointer; transition:all .15s; text-align:left;
  display:flex; align-items:center; gap:9px;
  box-shadow:0 2px 8px rgba(15,23,42,0.06);
}
.wchip:hover { border-color:#00a99d; background:rgba(0,169,157,0.06); color:#00786f; }
