
:root{
  /* 🌿 PANA IDENTITY (override only brand) */
  --brand:#16a34a;
  --brand-strong:#15803d;
  --brand-soft:#f0fdf4;

  /* 📱 layout */
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --fab-size:58px;
  --fab-gap:10px;
  --panel-radius:14px;
  --panel-blur:10px;
  --footer-h:68px;

  /* Campaign profile context bar */
 --campaign-profile-bar-h:92px;
}
    *{box-sizing:border-box}
    html,body{height:100%}
    body{margin:0; background:var(--bg); color:var(--text); font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Ubuntu,"Helvetica Neue",Arial,sans-serif}

    /* Header fijo */
    .topbar{
      position:fixed; top:0; left:0; right:0; z-index:20; height:var(--header-h);
      display:flex; align-items:flex-start; justify-content:space-between;
      gap:8px;
      padding:8px 12px; background:linear-gradient(180deg,#eefcf2 0%,rgba(238,252,242,0) 100%);
    }
    .topbar-left,.topbar-right{display:flex;align-items:center;gap:8px}
    .btn{
      border:none; outline:none; cursor:pointer; touch-action:manipulation; background:var(--card); color:#111;
      min-width:44px; min-height:44px; padding:10px 12px; border-radius:14px; box-shadow:var(--shadow);
      display:inline-flex; align-items:center; justify-content:center; gap:6px; font-size:18px;
      transition:transform .04s ease, box-shadow .15s ease, background-color .15s ease
    }
    .btn:active{ transform:translateY(1px) }
    .btn[disabled]{ opacity:.5; pointer-events:none }
    .btn.primary{ background:var(--brand); color:#fff; border-radius:16px; font-weight:600 }
    .btn.mic,.btn.speaker{ background:var(--blue-soft) }
    .btn.speaking{ box-shadow:0 0 0 3px #11111122, var(--shadow) }
    .btn.recording{ box-shadow:0 0 0 3px #ff3b3022, var(--shadow) }

    /* Área de mensajes: scrollea entre header y footer */
    .viewport{
      position:fixed; top:calc(var(--header-h) + 32px); bottom:var(--footer-h); left:0; right:0; overflow:auto; padding:10px;
      -webkit-overflow-scrolling:touch;
    }
    .messages{ display:flex; flex-direction:column; gap:8px }
    .msg{ background:var(--card); border-radius:14px; box-shadow:var(--shadow); padding:14px 16px; max-width: min(720px, 94%);
; white-space:pre-wrap; word-wrap:break-word }
    .msg.user{
  align-self:flex-end;
  background:#ecfdf5; /* verde más suave */
  border:1px solid rgba(22,163,74,.12);
}

.pana-chat-link{
  color:#2563eb;
  font-weight:650;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
  overflow-wrap:anywhere;
  cursor:pointer;
}

.pana-chat-link:hover{
  color:#1d4ed8;
}

.pana-chat-link:focus-visible{
  outline:2px solid rgba(37,99,235,.35);
  outline-offset:2px;
  border-radius:4px;
}

.msg.assistant .msg-content .pana-chat-paragraph{
  margin:0 0 .7em;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.msg.assistant .msg-content .pana-chat-paragraph:last-child{margin-bottom:0}
.msg.assistant .msg-content .pana-chat-heading{font-weight:800}
.msg.assistant .msg-content .pana-chat-list{
  margin:.3em 0 .75em;
  padding-left:1.4em;
  white-space:normal;
}
.msg.assistant .msg-content .pana-chat-list li{margin:.24em 0;overflow-wrap:anywhere}
.msg.assistant .msg-content .pana-chat-table-wrap{
  max-width:100%;
  margin:12px 0 6px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  white-space:normal;
}
.msg.assistant .msg-content .pana-chat-table{
  width:100%;
  border-collapse:collapse;
  font-size:.88em;
  line-height:1.4;
}
.msg.assistant .msg-content .pana-chat-table th,
.msg.assistant .msg-content .pana-chat-table td{
  text-align:left;
  vertical-align:top;
  padding:9px 10px;
  border-bottom:1px solid #e2e8f0;
  overflow-wrap:anywhere;
}
.msg.assistant .msg-content .pana-chat-table th{
  background:#f1f5f9;
  color:#334155;
  font-weight:800;
}
.msg.assistant .msg-content code{
  font-size:.91em;
  overflow-wrap:anywhere;
  background:#f1f5f9;
  border-radius:4px;
  padding:1px 3px;
}
@media(max-width:600px){
  .msg.assistant .msg-content .pana-chat-table,
  .msg.assistant .msg-content .pana-chat-table tbody,
  .msg.assistant .msg-content .pana-chat-table tr,
  .msg.assistant .msg-content .pana-chat-table td{display:block}
  .msg.assistant .msg-content .pana-chat-table thead{display:none}
  .msg.assistant .msg-content .pana-chat-table tr{
    margin:0 0 10px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    overflow:hidden;
    background:#fff;
  }
  .msg.assistant .msg-content .pana-chat-table td{
    display:grid;
    grid-template-columns:minmax(84px,38%) minmax(0,1fr);
    gap:10px;
    padding:8px 10px;
  }
  .msg.assistant .msg-content .pana-chat-table td:last-child{border-bottom:0}
  .msg.assistant .msg-content .pana-chat-table td::before{
    content:attr(data-label);
    color:#475569;
    font-weight:800;
    overflow-wrap:anywhere;
  }
}

.msg.assistant{
  background:#ffffff;
  border:1px solid rgba(22,163,74,.08);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 12px 26px rgba(0,0,0,.06);

  line-height:1.45;
  font-size:15.5px;
}

/* =========================
   PREMIUM THINKING STATE
   ========================= */

.msg.assistant.thinking{
  width: fit-content;
  max-width: min(520px, 92%);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(240,253,244,.92) 100%);
  border:1px solid rgba(22,163,74,.14);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 14px 30px rgba(22,163,74,.10),
    0 8px 18px rgba(15,23,42,.05);
}

.msg.assistant.thinking .msg-content{
  display:flex;
  align-items:center;
  gap:10px;
  color:#065f46;
  font-weight:600;
  white-space:pre-line;
  line-height:1.35;
}

.msg.assistant.thinking .msg-content::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:999px;
  background:#16a34a;
  box-shadow:0 0 0 0 rgba(22,163,74,.35);
  animation:panaThinkingPulse 1.35s ease-in-out infinite;
}

.msg.assistant.thinking .msg-content::after{
  content:"";
  width:26px;
  height:8px;
  border-radius:999px;
  background:
    radial-gradient(circle, #16a34a 35%, transparent 38%) 0 50%/8px 8px repeat-x;
  opacity:.75;
  animation:panaThinkingDots 1.1s ease-in-out infinite;
}

.msg.assistant.thinking .msg-actions{
  display:none;
}

@keyframes panaThinkingPulse{
  0%{
    box-shadow:0 0 0 0 rgba(22,163,74,.35);
    transform:scale(1);
  }
  70%{
    box-shadow:0 0 0 8px rgba(22,163,74,0);
    transform:scale(1.08);
  }
  100%{
    box-shadow:0 0 0 0 rgba(22,163,74,0);
    transform:scale(1);
  }
}

@keyframes panaThinkingDots{
  0%, 100%{
    opacity:.35;
    transform:translateX(0);
  }
  50%{
    opacity:1;
    transform:translateX(3px);
  }
}

.msg-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
}

.msg-actions-left{
  display:flex;
  align-items:center;
  position:relative;
}

.msg-menu{
  position:absolute;
  top:-6px;
  left:calc(100% + 8px);

  background:#fff;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:10px;
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
  padding:6px 8px;

  display:flex;
  flex-direction:row;   /* 🔥 horizontal */
  align-items:center;
  gap:6px;
  white-space:nowrap;   /* 🔥 evita salto de línea */
  z-index:50;
}

.msg-menu button{
  border:none;
  background:transparent;
  padding:6px 10px;
  text-align:center;
  cursor:pointer;
  font-size:14px;
  border-radius:6px;
  white-space:nowrap;
}

.msg-menu button:hover{
  background:rgba(0,0,0,0.05);
}

.msg-actions-right{
  display:flex;
  gap:8px;
}

    /* Footer fijo con input ancho */
    .footer{
  position:fixed;
  left:0;
  right:0;
  bottom:0;

  min-height:var(--footer-h); /* 🔑 en vez de height */
  padding:10px 10px calc(10px + var(--safe-bottom));

  background:linear-gradient(180deg,
    rgba(243,253,246,0) 0%,
    #f3fdf6 45%,
    #f3fdf6 100%
  );
  z-index:19;
}

/* =========================
   📖 READING MODE UI
========================= */

body.reading-mode .footer{
  display:none;
}

/* En modo lectura ocultamos el chat normal.
   El documento vive en #readerPanel, no en #messages. */
body.reading-mode .viewport{
  display:none;
}

.reader-panel{
  position:fixed;
  top:var(--header-h);
  left:0;
  right:0;
  bottom:0;
  z-index:18;
  display:flex;
  flex-direction:column;
  background:#f8fafc;
}

.reader-panel.hidden{
  display:none !important;
}

.reader-audio-player{padding:12px;border-bottom:1px solid var(--line,#dce4e4);display:grid;gap:8px;background:var(--card,#fff)}
.reader-audio-player[hidden]{display:none!important}
.reader-audio-top{display:flex;justify-content:space-between;gap:12px}
.reader-audio-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.reader-audio-actions button,.reader-audio-actions select{min-height:36px;border:1px solid var(--line,#dce4e4);border-radius:9px;color:inherit;background:var(--card,#fff);padding:7px}
.reader-audio-actions select{min-width:130px;flex:1}
.reader-audio-actions select[hidden]{display:none!important}
.reader-audio-actions button{flex:1;min-width:0}
.reader-audio-current{outline:2px solid #2b7bbb;outline-offset:2px}
.reader-audio-player #readerAudioStatus{font-size:12px}
.reader-content{
  flex:1;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:18px 12px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.reader-content .msg{
  max-width:100% !important;
}

.reader-content .msg.assistant{
  width:min(860px, 100%);
  margin:0 auto;
  padding:22px 22px 18px;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.05);
  background:rgba(255,255,255,.96);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 18px 40px rgba(15,23,42,.06);
  line-height:1.62;
  font-size:18px;
}

.reader-content .msg-actions{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(15,23,42,.08);
  opacity:1;
}

.reader-content .msg-actions-right{
  gap:12px;
}

.reader-content .msg-btn{
  min-width:34px;
  min-height:34px;
  padding:4px;
  border-radius:10px;
  opacity:.78;
}

.reader-content .msg-btn:hover{
  background:rgba(15,23,42,.05);
  opacity:1;
  transform:none;
}

 .composer{
  position:relative;
  display:flex;
  align-items:flex-end;
  gap:8px;

  /* 🔑 CLAVE: padding inferior FIJO */
  padding:10px 10px 12px 10px;

  border-radius:20px;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.1) blur(10px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}

.history-card{
  background:#ffffff;
  border:1px solid rgba(0,0,0,0.06);
  box-shadow:0 6px 18px rgba(0,0,0,.05);
}



    /* ✅ Altura fija + scroll interno */
.input{
  flex:1;
  border:none;
  outline:none;
  background:transparent;
  font:inherit;

  padding:8px 6px;
  line-height:1.25;
  font-size:15px;

  resize:none;

  height:auto;
  min-height:40px;
  max-height:200px;
  overflow-y:auto;

  /* 🔑 CRECE SOLO HACIA ARRIBA */
  align-self:flex-end;
}

.msg-actions{
  display:flex;
  gap:8px;
  margin-top:8px;
  opacity:0.6;
}

.msg-actions:hover{
  opacity:1;
}

.msg-btn{
  border:none;
  background:transparent;   /* 🔥 clave */
  padding:2px;              /* 🔥 menos espacio */
  font-size:16px;
  cursor:pointer;

  display:flex;
  align-items:center;
  justify-content:center;

  opacity:0.5;              /* 🔥 sutil */
  transition:all .15s ease;
}

body.reading-mode .msg.assistant .msg-actions{
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(15,23,42,.08);
  opacity: 1;
}

body.reading-mode .msg.assistant .msg-actions-right{
  gap: 12px;
}

body.reading-mode .msg.assistant .msg-btn{
  min-width: 34px;
  min-height: 34px;
  padding: 4px;
  border-radius: 10px;
  opacity: .78;
}

body.reading-mode .msg.assistant .msg-btn:hover{
  background: rgba(15,23,42,.05);
  opacity: 1;
  transform: none;
}

.msg-btn:hover{
  opacity:1;
  transform:scale(1.1);
}

.msg-btn:active{
  transform:scale(.9);
}

/* ===============================
   FEATURE FLAGS — FRONT VISUAL
   =============================== */

body.tts-disabled .msg-play-btn{
  display:none !important;
}

 /* ===============================
   SETTINGS FULL SCREEN STABLE
   =============================== */

.overlay{
  position:fixed;
  inset:0;
  z-index:999;
  background:#ffffff;
  display:none;
}

.overlay.show{
  display:block;
}

.sheet{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;

  display:flex;
  flex-direction:column;

  background:#ffffff;
  padding:20px 16px 0 16px;
}

/* Scroll SOLO en contenido */
.sheet-content{
  flex:1;
  overflow-y:auto;
}

/* ===============================
   Apple-style Bottom Actions
   =============================== */

.sheet-actions{
  flex-shrink:0;
  padding:14px 16px calc(14px + var(--safe-bottom));
  display:flex;
  gap:12px;

  background:rgba(255,255,255,0.85);
  backdrop-filter: blur(14px) saturate(1.2);
  border-top:1px solid rgba(0,0,0,0.06);
}

/* Botones */
.sheet-actions .btn{
  flex:1;
  height:50px;
  border-radius:18px;
  font-weight:600;
  font-size:16px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
}

/* Cancel más suave */
.sheet-actions .btn.outline{
  background:#f2f2f5;
  border:none;
  color:#111;
}

/* Done más moderno */
.sheet-actions .btn.primary{
  background:linear-gradient(180deg,#22c55e 0%, #16a34a 100%);
  box-shadow:
    0 6px 18px rgba(22,163,74,.28),
    0 1px 0 rgba(255,255,255,.4) inset;
}


/* Animación simple */
@keyframes fadeIn{
  from{ opacity:0 }
  to{ opacity:1 }
}


    .sheet-title{
  text-align:center;
  font-size:22px;
  font-weight:800;
  letter-spacing:.3px;
  margin-bottom:6px;
}

    .sheet-sub{ text-align:center; color:var(--muted); font-size:12px; margin-bottom:12px }


/* ===============================
   Premium Settings Cards
   =============================== */

.settings-group{
  background:linear-gradient(
    180deg,
    rgba(34,197,94,0.08) 0%,
    rgba(34,197,94,0.04) 100%
  );

  border:1px solid rgba(34,197,94,0.15);
  border-radius:26px;
  padding:22px;
  margin:18px 0;

  box-shadow:
    0 12px 30px rgba(34,197,94,0.10),
    0 4px 12px rgba(0,0,0,.05);
}


/* ===============================
   Modern Settings Rows
   =============================== */

.settings-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 0;
}

/* Divisor más elegante */
.settings-row + .settings-row{
  border-top:1px solid rgba(0,0,0,0.06);
}

/* Título principal */
.settings-label{
  font-weight:600;
  font-size:16px;
  letter-spacing:.2px;
  color:#111827;
}

/* Texto secundario */
.muted{
  font-size:13px;
  color:#6b7280;
  margin-top:3px;
}

    .muted{
  font-size:13px;
  color:#6b7280;
}

/* ===============================
   UI LANGUAGE LOADING
   =============================== */

.ui-lang-loading{
  display:none;
  align-items:center;
  gap:7px;
  margin-top:7px;
  color:#64748b;
  font-size:12px;
  font-weight:600;
  line-height:1;
}

.ui-lang-loading.show{
  display:flex;
}

.ui-lang-spinner{
  width:13px;
  height:13px;
  border-radius:999px;
  border:2px solid rgba(100,116,139,.22);
  border-top-color:var(--brand);
  animation:uiLangSpin .75s linear infinite;
}

@keyframes uiLangSpin{
  to{
    transform:rotate(360deg);
  }
}

/* ===============================
   CAMPAIGN LANGUAGE FLOATING LOADER
   Visible while the selected language is loading.
   =============================== */
.campaign-language-loader{
  position:fixed;
  inset:0;
  z-index:11050;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:20px;
  background:rgba(248,250,252,.44);
  backdrop-filter:blur(3px);

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:opacity .16s ease, visibility .16s ease;
}

.campaign-language-loader.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.campaign-language-loader-card{
  width:112px;
  min-height:112px;
  padding:16px 12px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:11px;

  border-radius:999px;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(22,163,74,.18);

  box-shadow:
    0 22px 55px rgba(15,23,42,.18),
    0 1px 0 rgba(255,255,255,.95) inset;

  transform:scale(.92);
  transition:transform .16s ease;
}

.campaign-language-loader.show
.campaign-language-loader-card{
  transform:scale(1);
}

.campaign-language-loader-spinner{
  width:34px;
  height:34px;
  border-radius:999px;
  border:4px solid rgba(22,163,74,.16);
  border-top-color:#16a34a;
  animation:campaignLanguageSpin .72s linear infinite;
}

.campaign-language-loader-text{
  max-width:92px;
  color:#166534;
  font-size:11px;
  font-weight:900;
  line-height:1.18;
  text-align:center;
}

.campaign-language-loader-countdown{
  min-height:14px;
  max-width:96px;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  line-height:1.15;
  text-align:center;
}

@keyframes campaignLanguageSpin{
  to{
    transform:rotate(360deg);
  }
}

@media (prefers-reduced-motion:reduce){
  .campaign-language-loader,
  .campaign-language-loader-card{
    transition:none;
  }

  .campaign-language-loader-spinner{
    animation-duration:1.4s;
  }
}

    /* ===============================
   iOS Segmented Control – Premium
   =============================== */

.seg{
  display:flex;
  background:#f1f3f6;
  border-radius:14px;
  padding:4px;
  gap:4px;
}

.seg button{
  border:none;
  background:transparent;
  padding:8px 16px;
  border-radius:10px;
  font-weight:600;
  font-size:14px;
  color:#374151;
  cursor:pointer;
  transition:all .18s ease;
}

.seg button.active{
  background:linear-gradient(180deg,#22c55e 0%, #16a34a 100%);
  color:#ffffff;
  box-shadow:
    0 6px 16px rgba(22,163,74,.30),
    0 1px 0 rgba(255,255,255,.3) inset;
}


 select.slim{
  appearance:none;
  border:1px solid rgba(34,197,94,0.25);
  background:rgba(34,197,94,0.08);
  padding:8px 14px;
  border-radius:14px;
  font-size:14px;
  min-height:38px;
  font-weight:700;
  color:#166534;

  box-shadow:
    inset 0 1px 2px rgba(0,0,0,.04),
    0 4px 10px rgba(34,197,94,.12);

  transition:all .18s ease;
}

select.slim:focus{
  outline:none;
  border:1px solid rgba(34,197,94,0.6);
  box-shadow:
    0 0 0 3px rgba(34,197,94,0.15);
}


    .toggle{ position:relative; width:52px; height:30px; background:#e5e7eb; border-radius:999px; cursor:pointer }
/* Driving mode layout */


 /* ===============================
   Modern Toggle – Apple style
   =============================== */

.toggle{
  width:52px;
  height:30px;
  background:#d1d5db;
  border-radius:999px;
  position:relative;
  cursor:pointer;
  transition:all .25s ease;
}

.toggle::after{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  background:#ffffff;
  border-radius:50%;
  top:3px;
  left:3px;
  box-shadow:0 3px 8px rgba(0,0,0,.2);
  transition:all .25s ease;
}

.toggle.on{
  background:linear-gradient(180deg,#22c55e 0%, #16a34a 100%);
}

.toggle.on::after{
  transform:translateX(22px);
}

        .btn.outline{ background:#fff; border:1px solid #e4e7eb }


    @media (max-width:480px){
      .topbar-left,.topbar-right{display:flex;align-items:center;gap:8px}
    .btn{ min-width:40px; min-height:40px; font-size:18px }
      :root{ --fab-size:56px }
    }

   /* =========================
   MIC RECORDING — PREMIUM
   ========================= */

.btn.mic.recording{
  background: #ecfdf5;
  color:#15803d;
  border:1px solid rgba(22,163,74,.28);
  box-shadow:
    0 0 0 0 rgba(34,197,94,.32),
    inset 0 0 0 1px rgba(255,255,255,.65);
  animation: micBreath 1.4s ease-in-out infinite;
}

.btn.mic.recording svg{
  stroke:#15803d;
}

@keyframes micBreath{
  0%{
    box-shadow:
      0 0 0 0 rgba(34,197,94,.32),
      inset 0 0 0 1px rgba(255,255,255,.65);
  }
  70%{
    box-shadow:
      0 0 0 10px rgba(34,197,94,0),
      inset 0 0 0 1px rgba(255,255,255,.65);
  }
  100%{
    box-shadow:
      0 0 0 0 rgba(34,197,94,0),
      inset 0 0 0 1px rgba(255,255,255,.65);
  }
}


    .mic-wave{
      position:absolute; left:12px; right:12px; bottom:10px; height:6px; border-radius:3px;
      background:repeating-linear-gradient(90deg, rgba(22,163,74,.2) 0 10px, rgba(22,163,74,.5) 10px 20px, rgba(22,163,74,.2) 20px 30px);
      background-size:240px 100%;
      opacity:0; pointer-events:none; transition:opacity .15s ease;
    }
    .mic-wave.on{ opacity:1; animation:wave 1.2s linear infinite }
    @keyframes wave{ from{ background-position:0 0 } to{ background-position:240px 0 } }


/* Speaker 'playing' visual ring */
.btn.speaker{ position: relative }
.btn.speaker.playing::after{
  content:''; position:absolute; inset:-4px; border-radius:14px;
  border: 2px solid rgba(17,17,17,.12);
  animation: ring 1.2s ease-out infinite;
}
@keyframes ring{
  0%{ transform: scale(0.92); opacity: .75 }
  100%{ transform: scale(1.06); opacity: 0 }
}



    /* Panel de documentos (selector tipo menú desplegable) */
    .docbar{
      position:fixed;
      top:calc(var(--header-h) + 4px);
      left:8px;
      z-index:21;
      padding:8px 10px;
      background:var(--card);
      border-radius:14px;
      box-shadow:var(--shadow);
      font-size:12px;
      color:var(--muted);
      display:none;
      flex-direction:column;
      gap:8px;
      max-width:340px;
      width:min(340px, 90vw);
    }
    .docbar.show{
      display:flex;
    }

/* =====================================================
   MODO USUARIO FINAL
   Docs completamente ocultos (interruptor de seguridad)
   Aunque el JS o HTML cambien, NO se muestran
   ===================================================== */

/* #docBar,
#activeDocsBar{
  display: none !important;
} */

/* ===============================
   Compact History Button
   =============================== */

#clearChatBtn{
  padding:6px 12px;
  font-size:13px;
  font-weight:600;
  border-radius:12px;

  background:#f8fafc;
  border:1px solid rgba(0,0,0,0.08);
  color:#374151;

  min-height:auto;
  height:auto;
}

#clearChatBtn:hover{
  background:#f1f5f9;
}

/* Evita que Driving Mode se parta en dos líneas */
.settings-row .settings-label{
  white-space:nowrap;
}



/* =====================================================
   MODO USUARIO FINAL
   Botón "More" (⋯) oculto
   Actualmente no tiene función
   ===================================================== */

/* #moreBtn{
  display: none !important;
} */
    .docbar-title{
      font-weight:600;
      color:var(--ink);
      font-size:12px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:6px;
    }
.doc-list{
  display:flex;
  flex-direction:column;
  gap:5px;
  max-height:570px;
  overflow-y:auto;
  padding-right:3px;
}
.doc-pill{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:6px;

  padding:7px 9px;
  border-radius:14px;

  background:#ffffff;
  color:#111827;

  cursor:pointer;
  border:1px solid rgba(15,23,42,.08);
  width:100%;
  text-align:left;
  font-size:12.5px;
  line-height:1.22;

  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  transition:
    background .16s ease,
    border-color .16s ease,
    transform .06s ease,
    box-shadow .16s ease;
}

.doc-pill:hover{
  background:#f8fafc;
  border-color:rgba(15,23,42,.12);
}

.doc-pill:active{
  transform:scale(.992);
}
.doc-pill.active{
  background:#16a34a;
  color:#ffffff;
  border-color:#16a34a;
  font-weight:500;
  box-shadow:none;
}
    .doc-pill.mode-pill{
      background:#e5e7eb;
      color:#111827;
      border-color:#d1d5db;
      font-weight:500;
    }
    .doc-pill.mode-pill.active{
      background:#111827;
      color:#fff;
      border-color:#111827;
    }
.doc-pill span.label{
  flex:1;
  min-width:0;

  white-space:normal;
  overflow:visible;
  text-overflow:clip;

  font-weight:500;
  letter-spacing:0;
}

.doc-pill.changed {
  border:2px solid #22c55e;
  background:#ffffff;
  color:#111827;
  box-shadow:none;
}

.doc-pill.changed .label {
  font-weight:500;
}

/* Barra compacta para mostrar documentos activos al lado de Docs */
/* Objetivo: que NO se recorten a 2 líneas y que, si crecen, crezcan hacia ABAJO (no hacia arriba). */
.active-docs-bar{
  flex:1;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding-left:6px;
  font-size:11px;

  /* ✅ Mantener engrane visible dentro del flex */
  min-width:0;

  /* ✅ Las filas se apilan desde arriba (evita “subir” contenido) */
  align-content:flex-start;

  /* ✅ Crece hacia abajo y, si es demasiado, scroll interno */
  max-height: calc((22px + 6px) * 2.5);
  overflow-y: auto;

  overflow-x:hidden;
}

/* 🔧 FIX MOBILE: el contenido puede encogerse y el ⚙️ nunca se va */
/* 🔧 FIX MOBILE — HEADER LEGACY (NO MOCK) */
.topbar:not(.topbar-mock) .topbar-left{
  flex:1;
  min-width:0;
}
.topbar:not(.topbar-mock) .topbar-right{
  flex:0 0 auto;
}


/* Chip de documento activo */
.active-doc-chip{
  max-width:min(220px, 100%);
  padding:3px 8px;
  border-radius:999px;
  background:rgba(22,163,74,0.08);
  color:#065f46;
  font-size:11px;

  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.active-docs-empty{
  color:var(--muted);
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.btn.docs-off{
  background:#e5e7eb;
  color:#6b7280;
}

.docs-update-alert{
  background: #ecfdf5 !important;
  color: #15803d !important;
  border: 1px solid rgba(22,163,74,.22) !important;
  box-shadow:
    0 0 0 0 rgba(34,197,94,.28),
    0 8px 18px rgba(22,163,74,.10) !important;
  animation: docsUpdateBlink 1.4s ease-in-out infinite;
}

.docs-update-alert svg,
.docs-update-alert i{
  color:#15803d !important;
  stroke:#15803d !important;
}

@keyframes docsUpdateBlink{
  0%{
    transform: scale(1);
    box-shadow:
      0 0 0 0 rgba(34,197,94,.28),
      0 8px 18px rgba(22,163,74,.10);
  }
  70%{
    transform: scale(1.035);
    box-shadow:
      0 0 0 8px rgba(34,197,94,0),
      0 8px 18px rgba(22,163,74,.10);
  }
  100%{
    transform: scale(1);
    box-shadow:
      0 0 0 0 rgba(34,197,94,0),
      0 8px 18px rgba(22,163,74,.10);
  }
}

.docbar-modes{
  display:flex;
  gap:4px;
}


/* ===== Header redesign (non-breaking overrides) ===== */
:root{
  /*--header-h: 92px; */                /* taller, como mock */
  --dock-h: 46px;
}

.topbar{
  height: var(--header-h);
  background: linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.72) 50%, rgba(255,255,255,0) 100%);
  backdrop-filter: saturate(1.15) blur(8px);
  align-items: stretch;
  padding: 10px 12px 0;
}

.topbar-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
}

.topbar-left{ display:flex; align-items:center; gap:10px; min-width:0; flex:1; }
.topbar-right{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }

.btn.top-icon{
  min-width:44px; min-height:44px;
  border-radius: 16px;
  font-size: 20px;
}

.brand{
  display:flex;
  flex-direction:column;
  line-height: 1.05;
  min-width:0;
  user-select:none;
}
.brand-name{
  font-weight: 900;
  letter-spacing: .2px;
  font-size: 30px;
  color: var(--brand);
}
.brand-sub{
  display:flex;
  align-items:center;
  gap: 8px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 14px;
}
.status-dot{
  width: 12px; height: 12px;
  border-radius: 999px;
  background: var(--brand);
  box-shadow: 0 0 0 3px rgba(22,163,74,.12);
}

.docs-dock-row{
  padding: 0;
  flex: 1;                 /* ocupa el espacio vertical disponible */
  display: flex;
  align-items: center;     /* ✅ CENTRADO REAL */
  justify-content: center;
}

.active-docs-bar.dock{
  flex: 0 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
 padding: 0 12px;
  height: 64px;                 /* ⬅️ CLAVE */

  border-radius: 999px;
  background: rgba(255,255,255,.86);
  border: 1px solid #e8ecf2;
  box-shadow: 0 10px 26px rgba(0,0,0,.12);

  max-width: min(680px, calc(100vw - 24px));
  white-space: nowrap;
  margin: 0 auto;

  overflow: hidden;
}


.active-doc-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 14px 12px;
  border-radius: 12px;
  background: #f2f4f7;
  color:#111;
  font-size: 14px;
  border: 1px solid #e8ecf2;
  max-width: 240px;
}
/* FIX tamaño texto dock Docs (mobile) */
.active-docs-bar.dock .active-doc-chip{
  font-size: 12px;
  padding: 6px 10px;
  line-height: 1;
}


.active-doc-chip.doc{
  background: #fff;
}

.active-doc-chip.count{
  background: #eef2f7;
  font-weight: 700;
}

.active-doc-chip.state{
  background: rgba(22,163,74,.12);
  color: #065f46;
  font-weight: 800;
}

.active-doc-chip.state.off{
  background: #f1f5f9;
  color: #64748b;
}

.active-docs-empty{
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid #e8ecf2;
  background: #fff;
  color: var(--muted);
  font-size: 14px;
}

@media (max-width:480px){
  .brand-name{ font-size: 28px; }
  .brand-sub{ font-size: 13px; }
  .btn.top-icon{ min-width:42px; min-height:42px; font-size: 19px; }
}



/* ===== MOVED FROM BODY (was causing mobile blink) ===== */

  #update-toast[hidden]{ display:none }
  #update-toast{
    position: fixed; left: 0; right: 0; bottom: calc(14px + var(--safe-bottom, 0px));
    display: flex; justify-content: center; z-index: 60; padding: 0 12px;
  }
  #update-toast .ut-card{
    background: #ffffffee; backdrop-filter: saturate(1.2) blur(6px);
    border: 1px solid #e8ecf2; box-shadow: var(--shadow, 0 10px 30px rgba(0,0,0,.08));
    border-radius: 14px; padding: 12px 14px; max-width: 460px; width: 100%;
  }
  #update-toast .ut-title{ font-weight: 800; color: var(--ink,#111); margin-bottom: 2px }
  #update-toast .ut-sub{ color: var(--muted,#6b7280); font-size: 13px; margin-bottom: 10px }
  #update-toast .ut-actions{ display:flex; gap: 8px; justify-content: flex-end }
  #update-toast .ut-btn{
    border:none; cursor:pointer; padding: 8px 12px; border-radius: 12px; font: inherit;
    background:#eef2f7; color:#111; min-height:36px;
  }
  #update-toast .ut-btn.primary{
    background: var(--brand,#16a34a); color:#fff; font-weight: 700;
  }
@keyframes docPulse{


  0%{ box-shadow:0 0 0 0 rgba(220,38,38,.45) }   /* rojo */
  70%{ box-shadow:0 0 0 10px rgba(220,38,38,0) }
  100%{ box-shadow:0 0 0 0 rgba(220,38,38,0) }


}
.active-docs-bar.docs-on{
  animation: docPulse 1.25s ease-in-out infinite;
}

/* =========================
   HEADER MOCK SKIN (NO-TOUCH resto)
   Solo afecta la parte de arriba.
   ========================= */
:root{
  /* Header más alto: row1 + quick actions */
  --header-h: 122px;
}

/* Mantén tu header fijo y el layout de viewport/docbar seguirá funcionando */
.topbar.topbar-mock{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 20;
  height: var(--header-h);
  padding: 10px 12px 8px;

  background: linear-gradient(
    180deg,
    rgba(255,255,255,.96) 0%,
    rgba(255,255,255,.88) 60%,
    rgba(255,255,255,.75) 100%
  );

  backdrop-filter: blur(14px) saturate(1.15);

  border-bottom: 1px solid rgba(0,0,0,.06);

  box-shadow:
    0 6px 18px rgba(0,0,0,.05),
    0 1px 0 rgba(255,255,255,.9) inset;

  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.reading-mode .topbar.topbar-mock{
  background: linear-gradient(
    180deg,
    rgba(255,255,255,.82) 0%,
    rgba(255,255,255,.58) 60%,
    rgba(255,255,255,0) 100%
  );
  backdrop-filter: blur(10px) saturate(1.05);
  box-shadow: none;
  border-bottom: none;
}

body.reading-mode .topbar-mock .brand-mock-name{
  opacity: .82;
}

body.reading-mode .topbar-mock .brand-mock-status{
  opacity: .72;
}

body.reading-mode .topbar-mock .tags-wrap .active-doc-chip{
  background: rgba(255,255,255,.72);
}

body.reading-mode .topbar-mock .tag-folder,
body.reading-mode .topbar-mock .hbtn{
  opacity: .82;
}

body.reading-mode .msg-content {
  border-bottom: none !important;
}

body.reading-mode .msg-actions {
  border-top: none !important;
}

/* Row 1 */
.topbar-mock .topbar-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
}

/* ✅ FIX anti-swap mobile: keep header row 1 on one line */
.topbar-mock .topbar-main{
  flex-wrap: nowrap;
}
.topbar-mock .topbar-main-left{
  min-width: 0;
  overflow: hidden;
}
.topbar-mock .brand-mock{
  min-width: 0;
  overflow: hidden;
}
.topbar-mock .brand-mock-name,
.topbar-mock .brand-status{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.topbar-mock .topbar-main-right{
  flex: 0 0 auto;
}


.topbar-mock .topbar-main-left{
  display:flex;
  align-items:center;
  gap: 10px;
  min-width: 0;
}

.topbar-mock .topbar-main-right{
  display:flex;
  align-items:center;
  gap: 10px;
  flex: 0 0 auto;
}

/* Botones del header: sin tocar .btn global (para no afectar FAB/Panel) */
.topbar-mock .hbtn{
  background: transparent;
  box-shadow: none;
  border: none;
  min-width: 44px;
  min-height: 44px;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: 22px;
  color: #374151; /* gray-700 */
}
.topbar-mock .hbtn:active{
  transform: translateY(1px);
}

/* =========================
   INSTALL APP BUTTON
   ========================= */

.topbar-mock .install-app-btn{
  min-width:auto;
  min-height:36px;
  padding:6px 10px;
  gap:4px;
  border-radius:999px;
  background:rgba(22,163,74,.10);
  color:#15803d;
  font-size:13px;
  font-weight:800;
  letter-spacing:.3px;
  border:1px solid rgba(22,163,74,.18);
}

.topbar-mock .install-app-btn .install-app-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  line-height:1;
}

.topbar-mock .install-app-btn .install-app-icon svg{
  width:17px;
  height:17px;
  stroke-width:2.2;
}

.topbar-mock .install-app-btn .install-app-label{
  font-size:12px;
  line-height:1;
}

/* Branding */
.topbar-mock .brand-mock{
  display:flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.topbar-mock .brand-mock-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  min-width:0;
}

.topbar-mock .distributor-market-indicator{
  display:flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  font-size:9.75px;
  line-height:1.1;
  font-weight:850;
  color:#475569;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.topbar-mock .distributor-market-indicator[hidden]{display:none!important}
.topbar-mock .distributor-market-base{color:#64748b}

.topbar-mock .brand-mock-name{
  font-weight: 900;
  font-size: 24px;
  letter-spacing: .3px;

  background: linear-gradient(
    180deg,
    #16a34a 0%,
    #15803d 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


.topbar-mock .brand-mock-status{
  display:flex;
  align-items:center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: #059669;
  letter-spacing: .2px;
}

.topbar-mock .status-dot{
  box-shadow:
    0 0 0 4px rgba(16,185,129,.12),
    0 2px 6px rgba(16,185,129,.25);
}


.topbar-mock .status-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #10b981;
  box-shadow: 0 0 0 3px rgba(16,185,129,.18);
}

/* Row 2: tags */
.topbar-mock .topbar-tags{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
}

/* Folder button */
.topbar-mock .tag-folder{
  background: #f3f4f6;   /* gray-100 */
  box-shadow: none;
  border: none;
  min-width: 44px;
  min-height: 36px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 18px;
}

/* Wrapper donde tu JS pinta chips: lo convertimos a “tags” estilo mock */
.topbar-mock .tags-wrap{
  flex: 1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 2px;
  -webkit-overflow-scrolling: touch;
}

/* Tus chips actuales (renderActiveDocs) -> look tipo tag pill */
.topbar-mock .tags-wrap .active-doc-chip{
  background: #f3f4f6;   /* gray-100 */
  color: #111827;
  border: none;
  box-shadow: none;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 13px;
  white-space: nowrap;
  max-width: none;
}

/* Estado ACTIVE en verde tipo mock */
.topbar-mock .tags-wrap .active-doc-chip.state{
  background: rgba(16,185,129,.14);
  color: #047857;
  font-weight: 700;
}

/* OFF más neutro */
.topbar-mock .tags-wrap .active-doc-chip.state.off{
  background: #e5e7eb;
  color: #6b7280;
  font-weight: 700;
}

/* Ajuste: viewport debajo del header (tu CSS ya usa --header-h, esto lo alinea) */
.viewport{
  top:calc(var(--header-h) + 12px);
  transition:top .18s ease;
}

/* Cuando el usuario está explorando otro perfil,
   reservamos espacio real para la barra. */
body.campaign-profile-context-open .viewport{
  top:calc(
    var(--header-h) +
    var(--campaign-profile-bar-h) +
    18px
  );
}

/* docbar sigue anclado bajo header */
.docbar{
  top: calc(var(--header-h) + 4px);
}


/* =========================
   ACTIVE TEXT AWARENESS PULSE
   Solo cuando hay docs activos
   ========================= */

.docs-active-pulse{
  animation: activePulse 1.4s ease-in-out infinite;
  transform-origin: center;
}

@keyframes activePulse{
  0%{
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(220,38,38,.45);
  }
  55%{
    transform: scale(1.06);
    box-shadow: 0 0 0 6px rgba(220,38,38,0);
  }
  100%{
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(220,38,38,0);
  }
}

/* =========================
   DOCS ACTIVE AWARENESS SIGNAL
   Visual only – no logic
   ========================= */

.docs-active-signal{
  position: relative;
  width: 10px;
  height: 10px;
  margin-left: 6px;
  border-radius: 999px;
  background: #dc2626; /* red-600 */
  opacity: 0.85;
}

.docs-active-signal::before,
.docs-active-signal::after{
  content:'';
  position:absolute;
  inset: 0;
  border-radius: 999px;
  background: rgba(220,38,38,0.45);
  animation: docsPulse 1.6s ease-out infinite;
}

.docs-active-signal::after{
  animation-delay: .8s;
}

@keyframes docsPulse{
  0%{
    transform: scale(1);
    opacity: .75;
  }
  70%{
    transform: scale(2.6);
    opacity: 0;
  }
  100%{
    opacity: 0;
  }
}





/* =========================
   SEND FIXED — RIGHT SIDE
   ========================= */

/* Reservar espacio a la derecha del input */
.footer .composer{
  padding-right: 72px;
}

/* Botón send fijo */
.send-fixed{
  position: absolute;
  right: 12px;
  bottom: 12px;          /* 🔑 ANCLADO ABAJO */
  z-index: 42;

  min-width: 48px;
  min-height: 48px;
  border-radius: 16px;
}


/* Estado inactivo (sin texto) */
.send-fixed:disabled{
  opacity: .45;
}

/* ===== Bottom inline controls (modern) ===== */

.footer .btn.mic,
.footer .btn.speaker,
.footer .send-fixed{
  min-width:40px;
  min-height:40px;
  border-radius:999px;
  font-size:18px;
  box-shadow:none;
}

/* Speaker más silencioso visualmente */
.footer .btn.speaker{
  opacity:.65;
}
.footer .btn.speaker.playing,
.footer .btn.speaker.active{
  opacity:1;
}

/* Send como CTA, pero limpio */
.send-fixed{
  background:var(--brand);
  color:#fff;
}

.send-fixed:disabled{
  opacity:.35;
}


.btn.mic.recording svg{
  stroke: #fff;
}

/* ===== Modern SVG icons ===== */
.btn svg{
  width:20px;
  height:20px;
  stroke-width:2;
}

/* =========================
   FOCUS MODE — Input priority
   ========================= */

/* Estado escribiendo */
/* =========================
   FOCUS MODE — REAL INPUT EXPANSION
   ========================= */

.footer.typing .btn.mic,
.footer.typing .btn.speaker{
  width:0;
  min-width:0;
  margin:0;
  padding:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
}

.footer .btn.mic,
.footer .btn.speaker{
  transition:
    width .18s ease,
    opacity .18s ease;
}

.footer .btn.mic,
.footer .btn.speaker{
  align-self:flex-end;
}


/* Input gana espacio visual */
.footer.typing .input{
  font-size:16px;
}

/* Transiciones suaves */
.footer .btn.mic,
.footer .btn.speaker{
  transition: opacity .18s ease, transform .18s ease;
}

/* =========================
   Micro-feedback: focus premium
   ========================= */

.input{
  caret-color: var(--brand);
}

.footer.focused .composer{
  box-shadow: 0 0 0 3px rgba(22,163,74,.14), 0 8px 24px rgba(0,0,0,.08);
}

.footer.focused .composer{
  background: rgba(255,255,255,.92);
}

.composer{
  transition: box-shadow .18s ease, background .18s ease;
}

/* =========================
   INPUT EXPANSION — KEYBOARD vs MIC
   ========================= */

/* 🎤 Dictating: solo PLAY desaparece */
.footer.dictating .btn.speaker{
  width:0;
  min-width:0;
  margin:0;
  padding:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
}

/* ⌨️ Keyboard typing: MIC + PLAY desaparecen */
.footer.typing-keyboard .btn.speaker,
.footer.typing-keyboard .btn.mic{
  width:0;
  min-width:0;
  margin:0;
  padding:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
}

/* Transiciones suaves */
.footer .btn.speaker,
.footer .btn.mic{
  transition: width .18s ease, opacity .18s ease;
}


/* =========================
   PLAY loading indicator
   ========================= */

@keyframes spin {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes playPulse {
  0%   { box-shadow: 0 0 0 0 rgba(0,0,0,.12); }
  70%  { box-shadow: 0 0 0 8px rgba(0,0,0,0); }
  100% { box-shadow: 0 0 0 0 rgba(0,0,0,0); }
}

/* ✅ ESTE sí aplica al botón real de mensajes */
.msg-play-btn.loading{
  pointer-events:none;
  opacity:1;
  background:rgba(0,0,0,0.05);
  border-radius:999px;
  animation: playPulse 1.2s ease-out infinite;
}

/* ✅ girar un wrapper fijo, no depender del SVG interno de lucide */
.msg-play-btn.loading .spin-wrap{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  animation: spin .85s linear infinite;
}

.spin-wrap{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  animation: spin .85s linear infinite;
}

/* =========================
   MIC processing state
   ========================= */

.btn.mic.processing{
  background: #facc15; /* amarillo semáforo */
  color:#111;
  opacity:1;
  box-shadow: 0 0 0 3px rgba(250,204,21,.45), var(--shadow);
}

/* =========================
   MIC SENT — PREMIUM STATE
   ========================= */

.btn.mic.sent{
  background: linear-gradient(180deg,#22c55e 0%, #16a34a 100%);
  color:#fff;
  pointer-events:none;
  box-shadow:
    0 0 0 3px rgba(34,197,94,.25),
    0 8px 18px rgba(0,0,0,.08);
  animation: micSentPop .28s cubic-bezier(.2,.9,.2,1);
}

@keyframes micSentPop{
  0%{ transform:scale(.82); }
  60%{ transform:scale(1.08); }
  100%{ transform:scale(1); }
}

/* Estado suave mientras espera STT */
.btn.mic.waiting{
  background: #e8f7ee;
  color:#166534;
  pointer-events:none;
}


@keyframes micProcessingPulse{
  0%{
    box-shadow:
      0 0 0 0 rgba(250,204,21,.45),
      var(--shadow);
  }
  100%{
    box-shadow:
      0 0 0 10px rgba(250,204,21,0),
      var(--shadow);
  }
}

/* =========================
   ACCESS GATE
========================= */

.access-gate{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
  transition:opacity .25s ease;
}

.access-gate.hidden{
  opacity:0;
  pointer-events:none;
}

.access-card{
  background:#ffffff;
  width:92%;
  max-width:420px;
  padding:32px 28px;
  border-radius:18px;
  box-shadow:0 20px 50px rgba(0,0,0,.18);
  text-align:center;
  animation:gateIn .25s ease;
}

@keyframes gateIn{
  from{ transform:translateY(10px); opacity:0 }
  to{ transform:translateY(0); opacity:1 }
}

.access-title{
  font-size:20px;
  font-weight:600;
  margin-bottom:8px;
}

.access-sub{
  font-size:14px;
  color:#666;
  margin-bottom:20px;
}

#emailInput{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #e2e2e2;
  font-size:14px;
  outline:none;
  transition:border .2s, box-shadow .2s;
}

#emailInput:focus{
  border:1px solid #22c55e;
  box-shadow:0 0 0 3px rgba(34,197,94,.15);
}

#accessBtn{
  margin-top:14px;
  width:100%;
  padding:12px;
  border-radius:12px;
  border:none;
  background:#22c55e;
  color:white;
  font-weight:600;
  cursor:pointer;
  transition:background .2s, transform .05s;
}

#accessBtn:hover{
  background:#16a34a;
}

#accessBtn:active{
  transform:scale(.98);
}

#accessBtn:disabled{
  opacity:.68;
  cursor:wait;
  transform:none;
}

.access-error{
  margin-top:14px;
  font-size:13px;
  color:#dc2626;
  min-height:18px;
}

.access-error.is-info{
  color:#047857;
}

.access-error.is-status{
  color:#475569;
}

.access-message{
  margin-top:14px;
  font-size:14px;
  color:#444;
  line-height:1.4;
}

.access-billing{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(0,0,0,.08);
}

.access-billing-title{
  font-size:15px;
  font-weight:700;
  color:#111827;
  margin-bottom:6px;
}

.access-billing-sub{
  font-size:13px;
  color:#6b7280;
  line-height:1.4;
  margin-bottom:12px;
}

.access-billing-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.access-plan-btn{
  width:100%;
  border:none;
  border-radius:14px;
  padding:13px 14px;
  font-weight:700;
  cursor:pointer;
  color:#ffffff;
  box-shadow:0 8px 18px rgba(22,163,74,.18);
}

.access-plan-btn .plan-desc{
  display:block;
  margin-top:4px;
  font-size:12px;
  line-height:1.25;
  font-weight:500;
  opacity:.95;
}

.access-plan-btn.plan-lite{
  background:#16a34a;
  box-shadow:0 8px 18px rgba(22,163,74,.18);
}

.access-plan-btn.plan-plus{
  background:#0f766e;
  box-shadow:0 8px 18px rgba(15,118,110,.18);
}

.access-plan-btn.plan-pro{
  background:#14532d;
  box-shadow:0 8px 18px rgba(20,83,45,.22);
}

.access-plan-btn[disabled]{
  opacity:.65;
  cursor:not-allowed;
}

.access-billing-status{
  min-height:18px;
  margin-top:12px;
  font-size:13px;
  color:#374151;
}

.access-exit{
  margin-top:10px;
  background:none;
  border:none;
  color:#666;
  font-size:13px;
  cursor:pointer;
}

.access-exit{
  margin-top:10px;
  background:none;
  border:none;
  color:#666;
  font-size:13px;
  cursor:pointer;
}

/* =========================
   ACCOUNT / BILLING SETTINGS
========================= */
.account-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.account-action-btn{width:100%;min-height:46px;border:none;border-radius:15px;padding:11px 14px;font-weight:800;cursor:pointer}
.account-action-btn.primary{background:#16a34a;color:#fff}
.account-action-btn.secondary{background:#f1f5f9;color:#334155;border:1px solid rgba(15,23,42,.08)}
.account-status{font-size:13px;color:#475569;line-height:1.45;margin-top:6px}
.billing-awareness-banner{
  display:flex;gap:12px;align-items:flex-start;justify-content:space-between;
  width:min(860px,calc(100% - 24px));box-sizing:border-box;
  margin:10px auto 0;padding:13px 14px;border-radius:14px;
  border:1px solid rgba(37,99,235,.26);
  background:var(--panel,#fff);color:var(--text,#0f172a);
  box-shadow:0 4px 18px rgba(15,23,42,.06);
}
.billing-awareness-banner[hidden],.billing-awareness-notes[hidden]{display:none!important}
.billing-awareness-main{flex:1;min-width:0}
.billing-awareness-title{display:block;font-size:13px;font-weight:800;margin-bottom:4px}
.billing-awareness-copy{font-size:12.5px;line-height:1.5;white-space:normal}
.billing-awareness-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px}
.billing-awareness-actions button{width:auto;min-height:36px;font-size:12px;padding:7px 12px;border-radius:10px}
.billing-awareness-dismiss{
  border:0;background:transparent;color:inherit;cursor:pointer;
  font-size:20px;line-height:1;padding:2px 5px;border-radius:6px;
}
.billing-terms,.billing-awareness-notes{
  margin-top:10px;padding:11px 12px;border-radius:12px;
  border:1px solid rgba(100,116,139,.2);
  background:rgba(100,116,139,.055);
  font-size:12.5px;line-height:1.55;color:var(--text,#334155);
}
.billing-terms p,.billing-awareness-notes p{margin:5px 0}
.billing-terms p:first-child,.billing-awareness-notes p:first-child{margin-top:0}
.billing-terms p:last-child,.billing-awareness-notes p:last-child{margin-bottom:0}
.billing-awareness-notes ul{margin:6px 0 0;padding-left:18px}
.billing-awareness-notes li{margin:5px 0}


/* Settings navigation: keep profile, billing and partner tasks separate. */
.settings-home-card{display:flex;flex-direction:column;gap:14px}
.settings-menu-list{display:flex;flex-direction:column;gap:10px}
.settings-menu-launcher{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid rgba(15,23,42,.09);border-radius:16px;background:#fff;padding:14px;cursor:pointer;color:#0f172a}
.settings-menu-launcher:hover{border-color:rgba(22,163,74,.32);box-shadow:0 5px 16px rgba(15,23,42,.06)}
.settings-menu-launcher[hidden]{display:none!important}
.settings-menu-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:12px;background:rgba(22,163,74,.10);font-size:19px}
.settings-menu-copy{flex:1;min-width:0}
.settings-menu-title{font-size:15px;font-weight:900;line-height:1.25;color:#0f172a}
.settings-menu-sub{margin-top:3px;font-size:12px;line-height:1.4;color:#64748b}
.settings-menu-meta{display:block;margin-top:5px;font-size:11.5px;font-weight:800;line-height:1.35;color:#047857}
.settings-menu-meta[hidden]{display:none!important}
.settings-menu-arrow{flex:0 0 auto;font-size:22px;line-height:1;color:#94a3b8}
.settings-home-actions{display:flex;flex-direction:column;gap:10px;padding-top:4px}
.settings-view-back{width:auto;align-self:flex-start;min-height:38px;margin:0 0 2px;padding:8px 12px;border:none;border-radius:999px;background:#f1f5f9;color:#334155;font-weight:850;cursor:pointer}
.settings-view-head{display:flex;flex-direction:column;gap:4px;margin-bottom:2px}

/* PANA Settings Control Center V1 — visual-only modernization. */
#overlay{
  background:
    radial-gradient(circle at 92% 7%, rgba(34,197,94,.11), transparent 24%),
    linear-gradient(180deg,#fbfdfc 0%,#f5f9f6 100%);
}
#overlay .sheet{
  background:transparent;
  padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + var(--safe-bottom));
}
#overlay .sheet-content{
  width:min(100%,720px);
  margin:0 auto;
  padding:0 2px 34px;
  scrollbar-width:none;
}
#overlay .sheet-content::-webkit-scrollbar{display:none}
#overlay .sheet-title{
  text-align:left;
  margin:0;
  padding-right:54px;
  color:#0f172a;
  font-size:30px;
  font-weight:900;
  letter-spacing:-.8px;
  line-height:1.05;
}
#overlay .sheet-sub{
  text-align:left;
  margin:7px 0 18px;
  padding-right:54px;
  color:#64748b;
  font-size:13px;
  line-height:1.45;
}
#overlay .sheet-actions{
  position:absolute;
  z-index:4;
  top:calc(14px + env(safe-area-inset-top));
  right:16px;
  width:auto;
  padding:0;
  border:0;
  background:transparent;
  backdrop-filter:none;
}
#overlay .sheet-actions #doneBtn{display:none}
#overlay .sheet-actions #cancelBtn{
  display:grid;
  place-items:center;
  width:42px;
  min-width:42px;
  height:42px;
  min-height:42px;
  padding:0;
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  background:rgba(255,255,255,.88);
  color:#334155;
  box-shadow:0 8px 24px rgba(15,23,42,.07);
}
#overlay .sheet-actions #cancelBtn svg{width:19px;height:19px}

#overlay .settings-group{
  width:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#overlay .settings-home-card{gap:14px}
.settings-identity-card{
  display:flex;
  align-items:center;
  gap:13px;
  min-height:94px;
  padding:15px;
  border:1px solid rgba(15,23,42,.07);
  border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 34px rgba(15,23,42,.06);
}
.settings-identity-avatar{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(145deg,#dcfce7,#bbf7d0);
  color:#166534;
  font-size:21px;
  font-weight:950;
  letter-spacing:-.4px;
  box-shadow:inset 0 0 0 1px rgba(22,163,74,.10);
}
.settings-identity-copy{min-width:0;flex:1}
.settings-identity-name{
  color:#0f172a;
  font-size:17px;
  font-weight:950;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.settings-identity-meta{
  min-height:0;
  margin-top:3px;
  color:#64748b;
  font-size:11.5px;
  font-weight:650;
  line-height:1.3;
}
.settings-identity-meta:empty{display:none}
.settings-identity-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.settings-identity-chip{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:5px 9px;
  border-radius:999px;
  background:#ecfdf5;
  color:#047857;
  font-size:10.5px;
  font-weight:900;
  line-height:1;
}
.settings-identity-chip[hidden]{display:none!important}

#overlay .settings-menu-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
#overlay .settings-menu-launcher{
  position:relative;
  min-height:156px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:12px;
  padding:16px 15px 15px;
  border:1px solid rgba(15,23,42,.07);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  color:#0f172a;
  box-shadow:0 10px 28px rgba(15,23,42,.055);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
#overlay .settings-menu-launcher:hover{
  border-color:rgba(22,163,74,.22);
  box-shadow:0 14px 34px rgba(15,23,42,.075);
}
#overlay .settings-menu-launcher:active{transform:scale(.985)}
#overlay .settings-menu-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#ecfdf5;
  color:#15803d;
}
#overlay .settings-menu-icon svg{width:22px;height:22px;stroke-width:2}
#overlay .settings-menu-copy{display:block;width:100%;padding-right:20px}
#overlay .settings-menu-title{
  display:block;
  color:#0f172a;
  font-size:15.5px;
  font-weight:950;
  letter-spacing:-.18px;
  line-height:1.22;
}
#overlay .settings-menu-sub{
  display:block;
  margin-top:5px;
  color:#64748b;
  font-size:11.5px;
  line-height:1.42;
}
#overlay .settings-menu-meta{
  margin-top:7px;
  color:#047857;
  font-size:11px;
  font-weight:900;
}
#overlay .settings-menu-arrow{
  position:absolute;
  right:13px;
  bottom:13px;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#f8fafc;
  color:#64748b;
}
#overlay .settings-menu-arrow svg{width:16px;height:16px}
#overlay .settings-home-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding-top:0;
}
#overlay .settings-home-actions .account-action-btn{
  min-height:42px;
  border-radius:14px;
  background:rgba(255,255,255,.78);
  color:#475569;
  font-size:12px;
  font-weight:800;
  box-shadow:none;
}

#overlay .settings-view-back{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  margin:0 0 12px;
  padding:7px 11px;
  border:1px solid rgba(15,23,42,.07);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  color:#475569;
  font-size:12px;
  font-weight:850;
  box-shadow:none;
}
#overlay .settings-view-head,
#overlay .profile-settings-head{margin-bottom:12px}
#overlay .settings-view-head .settings-label,
#overlay .profile-settings-head .settings-label,
#overlay #accountTitle,
#overlay #partnerAccessTitle{
  color:#0f172a;
  font-size:23px;
  font-weight:950;
  letter-spacing:-.45px;
  line-height:1.12;
}
#overlay .settings-view-head .muted,
#overlay .profile-settings-head .muted,
#overlay #partnerAccessSub{
  margin-top:5px;
  color:#64748b;
  font-size:12.5px;
  line-height:1.45;
}

#overlay #mainSettingsCard .settings-row{
  min-height:78px;
  margin-bottom:10px;
  padding:14px;
  border:1px solid rgba(15,23,42,.07);
  border-radius:18px;
  background:rgba(255,255,255,.93);
  box-shadow:0 8px 24px rgba(15,23,42,.045);
}
#overlay #mainSettingsCard .settings-row + .settings-row{border-top:1px solid rgba(15,23,42,.07)}
#overlay #mainSettingsCard .settings-label{font-size:14px;font-weight:900;color:#0f172a}
#overlay #mainSettingsCard .muted{font-size:11.5px;color:#64748b}
#overlay .seg{
  border:1px solid rgba(15,23,42,.06);
  background:#f1f5f9;
  box-shadow:none;
}
#overlay .seg button{
  min-width:42px;
  padding:8px 11px;
  color:#475569;
}
#overlay .seg button.active{
  background:#fff;
  color:#15803d;
  box-shadow:0 3px 10px rgba(15,23,42,.08),inset 0 0 0 1px rgba(22,163,74,.32);
}
#overlay .settings-voice-seg svg{width:18px;height:18px}
#overlay .settings-native-voice-row{
  align-items:flex-start;
  gap:12px;
}
#overlay .settings-native-voice-copy{flex:1;min-width:0}
#overlay .settings-native-voice-controls{
  min-width:210px;
  max-width:260px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
#overlay .settings-native-voice-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
#overlay .settings-native-voice-actions .account-action-btn{
  min-height:34px;
  padding:7px 10px;
  font-size:11px;
}
#overlay .settings-native-voice-status{
  min-height:14px;
  color:#64748b;
  font-size:10.5px;
  line-height:1.25;
  text-align:right;
}
/* Preserve the two-column settings layout on wide screens only. */
@media(max-width:700px){
  #overlay #mainSettingsCard .settings-native-voice-row{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  #overlay #mainSettingsCard .settings-native-voice-copy,
  #overlay #mainSettingsCard .settings-native-voice-controls{
    width:100%;
    max-width:none;
    min-width:0;
    flex:none;
  }
  #overlay #mainSettingsCard .settings-native-voice-controls select{
    width:100%;
    max-width:100%;
    min-width:0;
    text-overflow:ellipsis;
  }
  #overlay #mainSettingsCard .settings-native-voice-actions{
    justify-content:stretch;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #overlay #mainSettingsCard .settings-native-voice-actions .account-action-btn{
    width:100%;
    min-width:0;
    min-height:44px;
  }
  #overlay #mainSettingsCard .settings-native-voice-status{
    text-align:left;
    overflow-wrap:anywhere;
  }
}

#overlay select.slim{
  min-height:40px;
  border:1px solid rgba(15,23,42,.08);
  background:#f8fafc;
  color:#166534;
  box-shadow:none;
}
.settings-driving-control{display:flex;align-items:center;gap:10px}
.settings-row-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#ecfdf5;
  color:#15803d;
}
.settings-row-icon svg{width:17px;height:17px}

#overlay .profile-settings-summary,
#overlay .profile-settings-fields{gap:10px}
#overlay .profile-settings-summary-item,
#overlay .profile-settings-field,
#overlay .profile-market-section,
#overlay .growth-authorization,
#overlay .client-invite-result,
#overlay .client-invite-pending-row,
#overlay .client-management-row{
  border:1px solid rgba(15,23,42,.07);
  border-radius:18px;
  background:rgba(255,255,255,.93);
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}
#overlay .profile-settings-summary-item{padding:13px}
#overlay .profile-market-section{margin-top:2px;padding:14px}
#overlay .profile-settings-input,
#overlay .client-invite-input,
#overlay .client-invite-url{
  border-color:rgba(15,23,42,.10);
  border-radius:14px;
  background:#f8fafc;
  box-shadow:none;
}
#overlay .account-action-btn{
  min-height:44px;
  border-radius:14px;
}
#overlay .account-action-btn.primary{
  background:linear-gradient(180deg,#22c55e,#16a34a);
  box-shadow:0 8px 20px rgba(22,163,74,.18);
}
#overlay .account-action-btn.secondary{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(15,23,42,.08);
}
#overlay #accountStatus{
  margin:0 0 12px;
  padding:13px 14px;
  border:1px solid rgba(22,163,74,.15);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(220,252,231,.78),rgba(255,255,255,.94));
  color:#166534;
  font-weight:800;
}
#overlay .growth-authorization{margin-top:10px;padding:14px}
#overlay .growth-billing-actions{gap:8px}
#overlay .account-actions{margin-top:10px}
#overlay #partnerAccessOwnerView,
#overlay #partnerAccessMemberView{margin-top:12px}
#overlay #partnerInvitationCreateSection,
#overlay #partnerInvitationPendingSection,
#overlay #partnerManagementSection{margin-top:10px}

/* Settings Control Center V1.1: deterministic identity + denser focused views. */
#overlay:not([data-settings-view="home"]) .sheet-title,
#overlay:not([data-settings-view="home"]) .sheet-sub{display:none}
#overlay:not([data-settings-view="home"]) .sheet-content{padding-top:4px}

.settings-identity-card.is-loading .settings-identity-avatar,
.settings-identity-card.is-loading .settings-identity-name{
  color:transparent;
  background:linear-gradient(90deg,#eef5f0 25%,#f7faf8 50%,#eef5f0 75%);
  background-size:200% 100%;
  animation:settingsIdentityPulse 1.15s ease-in-out infinite;
}
.settings-identity-card.is-loading .settings-identity-avatar{box-shadow:none}
.settings-identity-card.is-loading .settings-identity-name{
  width:128px;
  min-height:20px;
  border-radius:8px;
}
.settings-identity-card.is-loading .settings-identity-meta,
.settings-identity-card.is-loading .settings-identity-chips{visibility:hidden}
@keyframes settingsIdentityPulse{
  0%{background-position:100% 0}
  100%{background-position:-100% 0}
}

#overlay[data-settings-view="profile"] .profile-settings-summary{
  display:block;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.07);
  border-radius:20px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 28px rgba(15,23,42,.045);
}
#overlay[data-settings-view="profile"] .profile-settings-summary-item,
#overlay[data-settings-view="profile"] .profile-settings-summary-item.full{
  display:grid;
  grid-template-columns:minmax(112px,.78fr) minmax(0,1.22fr);
  align-items:center;
  gap:14px;
  min-height:61px;
  padding:12px 15px;
  border:0;
  border-bottom:1px solid rgba(15,23,42,.065);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#overlay[data-settings-view="profile"] .profile-settings-summary-item:last-child{border-bottom:0}
#overlay[data-settings-view="profile"] .profile-settings-summary-label{
  font-size:11.5px;
  line-height:1.3;
}
#overlay[data-settings-view="profile"] .profile-settings-summary-value{
  font-size:13.5px;
  line-height:1.35;
  text-align:right;
}
#overlay[data-settings-view="profile"] #editUserProfileBtn{margin-top:10px}

/* Profile edit mode uses the same compact visual language as read mode. */
#overlay[data-settings-view="profile"] .profile-settings-editor{
  gap:12px;
}

#overlay[data-settings-view="profile"] #userProfileFields{
  display:block;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.07);
  border-radius:20px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 28px rgba(15,23,42,.045);
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-field,
#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-field.full{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
  padding:12px 14px 13px;
  border:0;
  border-bottom:1px solid rgba(15,23,42,.065);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-field:last-child{
  border-bottom:0;
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-field-label{
  margin-bottom:6px;
  color:#475569;
  font-size:11.5px;
  font-weight:850;
  line-height:1.25;
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-input{
  width:100%;
  min-height:48px;
  padding:10px 12px;
  border:1px solid rgba(15,23,42,.09);
  border-radius:13px;
  background:#f8fafc;
  color:#172033;
  font-size:15px;
  line-height:1.3;
  box-shadow:none;
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-input:focus{
  border-color:rgba(22,163,74,.34);
  background:#fff;
  box-shadow:0 0 0 3px rgba(22,163,74,.08);
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-input:disabled{
  border-color:rgba(15,23,42,.06);
  background:#f1f5f9;
  color:#64748b;
}

#overlay[data-settings-view="profile"] #userProfileFields .profile-settings-help{
  margin-top:6px;
  color:#7b8794;
  font-size:10.8px;
  line-height:1.38;
}

#overlay[data-settings-view="profile"] .profile-settings-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:10px;
}

#overlay[data-settings-view="profile"] .profile-settings-actions .account-action-btn{
  min-height:48px;
  width:100%;
  margin:0;
}

@media(max-width:420px){
  #overlay[data-settings-view="profile"] #userProfileFields .profile-settings-field,
  #overlay[data-settings-view="profile"] #userProfileFields .profile-settings-field.full{
    padding:11px 12px 12px;
  }

  #overlay[data-settings-view="profile"] .profile-settings-actions{
    grid-template-columns:1fr 1fr;
  }
}

#overlay[data-settings-view="account"] #accountStatus{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(105px,1fr));
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}
#overlay .account-status-item{
  min-width:0;
  padding:12px 11px;
  border:1px solid rgba(22,163,74,.14);
  border-radius:17px;
  background:linear-gradient(145deg,rgba(236,253,245,.92),rgba(255,255,255,.96));
}
#overlay .account-status-label{
  display:block;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  line-height:1.2;
}
#overlay .account-status-value{
  display:block;
  margin-top:4px;
  color:#166534;
  font-size:13px;
  font-weight:950;
  line-height:1.25;
  overflow-wrap:anywhere;
}
#overlay[data-settings-view="account"] .growth-billing-card{
  margin-top:12px;
  padding:15px;
}
#overlay[data-settings-view="account"] .growth-billing-card .growth-authorization-status{
  margin-top:8px;
  color:#475569;
  font-size:12.5px;
}
#overlay[data-settings-view="account"] .account-actions{margin-top:12px}

@media(max-width:420px){
  #overlay .sheet{padding-left:12px;padding-right:12px}
  #overlay .settings-menu-list{gap:10px}
  #overlay .settings-menu-launcher{min-height:150px;padding:14px 13px}
  #overlay .settings-home-actions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  #overlay .settings-menu-launcher{transition:none}
}

/* Async refreshers may unhide their cards; the active settings route wins visually. */
#overlay[data-settings-view="home"] #mainSettingsCard,
#overlay[data-settings-view="home"] #userProfileSettingsCard,
#overlay[data-settings-view="home"] #accountSettingsCard,
#overlay[data-settings-view="home"] #partnerAccessCard{display:none!important}
#overlay[data-settings-view="preferences"] #settingsHomeCard,
#overlay[data-settings-view="preferences"] #userProfileSettingsCard,
#overlay[data-settings-view="preferences"] #accountSettingsCard,
#overlay[data-settings-view="preferences"] #partnerAccessCard,
#overlay[data-settings-view="preferences"] #historySettingsCard{display:none!important}
#overlay[data-settings-view="profile"] #settingsHomeCard,
#overlay[data-settings-view="profile"] #mainSettingsCard,
#overlay[data-settings-view="profile"] #accountSettingsCard,
#overlay[data-settings-view="profile"] #partnerAccessCard,
#overlay[data-settings-view="profile"] #historySettingsCard{display:none!important}
#overlay[data-settings-view="account"] #settingsHomeCard,
#overlay[data-settings-view="account"] #mainSettingsCard,
#overlay[data-settings-view="account"] #userProfileSettingsCard,
#overlay[data-settings-view="account"] #partnerAccessCard,
#overlay[data-settings-view="account"] #historySettingsCard{display:none!important}
#overlay[data-settings-view="partner"] #settingsHomeCard,
#overlay[data-settings-view="partner"] #mainSettingsCard,
#overlay[data-settings-view="partner"] #userProfileSettingsCard,
#overlay[data-settings-view="partner"] #accountSettingsCard,
#overlay[data-settings-view="partner"] #historySettingsCard{display:none!important}

.growth-billing-actions{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.growth-billing-actions[hidden]{display:none!important}
.growth-billing-card .growth-authorization-message{min-height:18px}
.growth-authorization{margin-top:16px;padding:15px;border-radius:18px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}
.growth-authorization[hidden]{display:none!important}
.growth-authorization-form[hidden],
#partnerInvitationCreateSection[hidden],
#partnerInvitationPendingSection[hidden],
#partnerManagementSection[hidden]{display:none!important}
.growth-authorization-title{font-size:14px;font-weight:900;color:#0f172a}
.growth-authorization-sub{margin-top:5px;font-size:12.5px;line-height:1.4;color:#64748b}
.growth-authorization-status{margin-top:10px;font-size:13px;font-weight:800;color:#475569}
.growth-authorization-form{display:flex;gap:8px;margin-top:12px}
.growth-distributor-input{flex:1;min-width:0;min-height:44px;padding:10px 12px;border-radius:14px;border:1px solid rgba(22,163,74,.28);background:#fff;color:#0f172a;font:inherit;font-size:15px;text-transform:uppercase;outline:none}
.growth-distributor-input:focus{border-color:rgba(22,163,74,.62);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.growth-distributor-claim{flex:0 0 auto;min-height:44px;border:none;border-radius:14px;padding:10px 14px;background:#16a34a;color:#fff;font-weight:850;cursor:pointer}
.growth-distributor-claim:disabled{opacity:.62;cursor:wait}
.growth-authorization-message{min-height:18px;margin-top:9px;font-size:12.5px;line-height:1.35;color:#475569}
.growth-authorization-message.error{color:#b91c1c}
.growth-authorization-message.success{color:#047857}
@media(max-width:480px){.growth-authorization-form{flex-direction:column}.growth-distributor-claim{width:100%}}
.access-language-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.access-language-row label{font-size:13px;font-weight:800;color:#475569}
#accessCodeInput{width:100%;margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid #e2e2e2;font-size:18px;letter-spacing:5px;text-align:center}
#accessCodeInput:focus{outline:none;border-color:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.15)}

.access-code-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:10px;
}

.access-code-actions[hidden]{
  display:none !important;
}

.access-resend-btn{
  border:none;
  background:transparent;
  color:#15803d;
  padding:7px 10px;
  border-radius:10px;
  font-size:13px;
  font-weight:750;
  cursor:pointer;
}

.access-resend-btn:hover:not(:disabled){
  background:rgba(22,163,74,.08);
}

.access-resend-btn:disabled{
  color:#94a3b8;
  cursor:default;
}
.reader-loader{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  z-index:10001;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}

.reader-loader.hidden{
  display:none;
}

.reader-loader-card{
  width:44px;
  height:44px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(15,23,42,.06);
}

body.reading-mode .reader-loader{
  bottom:20px;
}

/* =========================
   CAMPAIGN QUICK ACTIONS
   Visible after landing, inside header
========================= */

.campaign-chat-actions{
  display:none;
  align-items:center;
  gap:8px;

  width:100%;
  min-width:0;
  padding:0 2px;

  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.campaign-chat-actions::-webkit-scrollbar{
  display:none;
}

.campaign-dynamic-program-actions{
  display:contents;
}

body.campaign-compact-language .campaign-lang{
  position:relative;
  width:38px;
  min-width:38px;
  height:38px;
  padding:0;
  justify-content:center;
  overflow:hidden;
}

body.campaign-compact-language .campaign-lang-label{
  display:none;
}

body.campaign-compact-language .campaign-lang-select{
  position:absolute;
  inset:0;
  width:100%;
  max-width:none;
  min-height:100%;
  opacity:0;
  cursor:pointer;
}

.msg-campaign-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.msg-campaign-action{
  min-height:42px;
  border:0;
  border-radius:14px;
  padding:10px 14px;
  cursor:pointer;
  font:inherit;
  font-size:13px;
  font-weight:900;
  background:#f1f5f9;
  color:#334155;
  border:1px solid rgba(15,23,42,.08);
}

.msg-campaign-action.primary{
  background:linear-gradient(135deg,#22c55e,#047857);
  color:#fff;
  border-color:transparent;
}

.msg-campaign-action.secondary{
  background:linear-gradient(135deg,#3b82f6,#1d4ed8);
  color:#fff;
  border-color:transparent;
}

body.campaign-chat-active .campaign-chat-actions,
body.client-sponsor-profile-active .campaign-chat-actions{
  display:flex;
}

/* Do not expose a partially populated quick-action row while
   Campaign profiles are still loading. This prevents the header
   buttons from appearing once and then shifting when the profile
   program shortcut is added. */
body.campaign-chat-active:not(.campaign-quick-actions-ready) .campaign-chat-actions,
body.client-sponsor-profile-active:not(.campaign-quick-actions-ready) .campaign-chat-actions{
  visibility:hidden;
  pointer-events:none;
}

/* PANA Cliente conserva dos filas:
   encabezado y acciones del perfil. El acceso al Reader vive en
   la misma fila principal y reemplaza el librito separado. */
body.client-sponsor-profile-active{
  --header-h:122px;
}

body.client-sponsor-profile-active .campaign-chat-actions{
  flex:0 0 auto;
  min-height:36px;
}

body.client-sponsor-profile-active .topbar-tags{
  display:none !important;
}

body.campaign-landing-active .campaign-chat-actions,
body.reading-mode .campaign-chat-actions{
  display:none !important;
}
.campaign-chat-action{
  flex:0 0 auto;
  min-height:36px;
  border:none;
  cursor:pointer;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;

  padding:8px 12px;
  border-radius:999px;

  color:#ffffff;
  border:1px solid rgba(255,255,255,.36);
  background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);

  font-size:13px;
  font-weight:900;
  line-height:1;

  white-space:nowrap;

  box-shadow:
    0 8px 18px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.32);

  transition:
    transform .08s ease,
    box-shadow .16s ease,
    filter .16s ease;
}

.campaign-chat-action[hidden]{
  display:none !important;
}

.campaign-chat-action[data-campaign-action="team"]{
  display:none !important;
  background:linear-gradient(135deg,#f59e0b 0%,#ea580c 100%);
}

.campaign-chat-action[data-campaign-action="profile"]{
  background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);
}

.campaign-chat-action[data-campaign-action="shop"]{
  background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);
}

.campaign-chat-action[data-campaign-action="promotions"]{
  background:linear-gradient(135deg,#f97316 0%,#db2777 100%);
}

#clientReadBtn{
  background:linear-gradient(135deg,#f59e0b 0%,#b45309 100%);
}

/* Generic profile program shortcut.
   Its icon, label and action come from campaign_profiles.json. */
.campaign-chat-action[data-campaign-action="featured_program"]{
  background:linear-gradient(135deg,#14b8a6 0%,#0f766e 100%);
}

.campaign-chat-action[data-campaign-action="featured_program"][hidden]{
  display:none !important;
}

.campaign-chat-action[data-campaign-action="opportunity_program"],
.campaign-chat-action.primary{
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
}

#campaignProfileShareBtn,
#clientSponsorShareBtn{
  background:linear-gradient(135deg,#0ea5e9 0%,#0369a1 100%);
}

.campaign-chat-action:hover{
  filter:saturate(1.08) brightness(1.02);
  box-shadow:
    0 10px 22px rgba(15,23,42,.18),
    inset 0 1px 0 rgba(255,255,255,.36);
}

.campaign-chat-action:active{
  transform:translateY(1px) scale(.99);
}

body.campaign-chat-active .topbar-tags,
body.campaign-landing-active .topbar-tags{
  display:none !important;
}

.campaign-chat-action:active{
  transform:translateY(1px);
}

/* =========================
   CAMPAIGN INTERNAL ACTION HUBS
========================= */
.campaign-action-hub-card{
  width:min(520px,100%);
}

.campaign-action-hub-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.campaign-action-hub-item{
  width:100%;
  min-height:64px;
  border:none;
  border-radius:19px;
  padding:13px 14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
  background:#f8fafc;
  color:#0f172a;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 7px 18px rgba(15,23,42,.05);
}

.campaign-action-hub-item:active{
  transform:translateY(1px);
}

.campaign-action-hub-item:disabled{
  cursor:default;
  opacity:1;
  background:linear-gradient(135deg,#fff7ed 0%,#fffbeb 100%);
  border-color:rgba(245,158,11,.24);
  box-shadow:0 7px 18px rgba(245,158,11,.08);
}

.campaign-action-hub-item:disabled .campaign-action-hub-icon{
  background:#ffffff;
  border-color:rgba(245,158,11,.22);
}

.campaign-action-hub-item:disabled .campaign-action-hub-title{
  color:#9a3412;
}

.campaign-action-hub-item:disabled .campaign-action-hub-body,
.campaign-action-hub-item:disabled .campaign-action-hub-arrow{
  color:#b45309;
}

.campaign-action-hub-icon{
  flex:0 0 auto;
  width:42px;
  height:42px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.08);
  font-size:21px;
}

.campaign-action-hub-copy{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
}

.campaign-action-hub-title{
  display:block;
  width:100%;
  color:#0f172a;
  font-size:15px;
  font-weight:900;
  line-height:1.2;
}

.campaign-action-hub-body{
  display:block;
  width:100%;
  margin:0;
  color:#64748b;
  font-size:12.5px;
  font-weight:600;
  line-height:1.38;
}

.campaign-action-hub-arrow{
  flex:0 0 auto;
  color:#64748b;
  font-size:23px;
  font-weight:900;
}

@media (max-width:480px){
  #campaignExploreSheet,
  #campaignShopSheet{
    align-items:flex-start;
    padding:calc(var(--header-h) + 10px) 10px calc(14px + var(--safe-bottom));
  }

  #campaignExploreSheet .campaign-contact-card,
  #campaignShopSheet .campaign-contact-card{
    width:calc(100vw - 20px);
    max-height:calc(100dvh - var(--header-h) - 24px - var(--safe-bottom));
    padding:15px;
    border-radius:24px;
  }
}

/* =========================
   CAMPAIGN VISUAL GALLERY
   Generic, profile-driven media viewer
========================= */
.campaign-gallery-card{
  width:min(980px,100%);
  max-height:calc(100dvh - var(--header-h) - 36px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.campaign-gallery-stage{
  position:relative;
  flex:1;
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
  border-radius:20px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
}
.campaign-gallery-image{
  display:block;
  width:100%;
  height:auto;
  max-height:calc(100dvh - var(--header-h) - 230px);
  object-fit:contain;
}
.campaign-gallery-controls{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center;
  margin-top:12px;
}
.campaign-gallery-nav,
.campaign-gallery-open{
  min-height:44px;
  border:none;
  border-radius:16px;
  padding:10px 13px;
  cursor:pointer;
  font-weight:850;
}
.campaign-gallery-nav{background:#e2e8f0;color:#334155}
.campaign-gallery-nav:last-child{background:#0f766e;color:#fff}
.campaign-gallery-counter{text-align:center;color:#64748b;font-size:13px;font-weight:800}
.campaign-gallery-open{
  width:100%;
  margin-top:10px;
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid rgba(37,99,235,.14);
}
.campaign-gallery-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.campaign-gallery-actions[hidden]{display:none!important}
.campaign-gallery-actions .campaign-content-panel-action{min-height:46px}
@media(max-width:600px){
  #campaignGallerySheet{
    align-items:flex-start;
    padding:calc(var(--header-h) + 8px) 8px calc(10px + var(--safe-bottom));
  }
  #campaignGallerySheet .campaign-gallery-card{
    width:calc(100vw - 16px);
    max-height:calc(100dvh - var(--header-h) - 18px - var(--safe-bottom));
    padding:13px;
    border-radius:22px;
  }
  .campaign-gallery-image{max-height:calc(100dvh - var(--header-h) - 225px)}
  .campaign-gallery-controls{grid-template-columns:1fr 1fr}
  .campaign-gallery-counter{grid-column:1 / -1;grid-row:1}
}

/* =========================
   CAMPAIGN GENERIC APP DOWNLOAD PANEL
   Content and labels come from campaign_profiles.json
========================= */
.campaign-app-panel-card{
  width:min(460px,100%);
  text-align:center;
}
.campaign-app-panel-icon{
  width:62px;
  height:62px;
  margin:0 auto 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:linear-gradient(135deg,#ecfdf5 0%,#dbeafe 100%);
  border:1px solid rgba(15,118,110,.16);
  font-size:29px;
}
.campaign-app-panel-description{
  margin:-4px 2px 16px;
  color:#475569;
  font-size:14.5px;
  font-weight:600;
  line-height:1.46;
}
.campaign-app-panel-code-wrap{
  padding:15px;
  border-radius:20px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.09);
}
.campaign-app-panel-code-label{
  color:#64748b;
  font-size:12px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.campaign-app-panel-code{
  margin-top:7px;
  color:#0f172a;
  font-size:34px;
  font-weight:1000;
  letter-spacing:.12em;
  line-height:1.1;
  word-break:break-word;
}
.campaign-app-panel-action{
  width:100%;
  min-height:52px;
  margin-top:10px;
  border:none;
  border-radius:18px;
  padding:12px 14px;
  cursor:pointer;
  font-size:15px;
  font-weight:900;
}
.campaign-app-panel-action.copy{
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid rgba(37,99,235,.14);
}
.campaign-app-panel-action.open{
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
  color:#fff;
}
.campaign-app-panel-status{
  min-height:18px;
  margin-top:8px;
  color:#047857;
  font-size:13px;
  font-weight:800;
}

/* =========================
   CAMPAIGN CONTACT SHEET
   Global overlay, not header-bound
========================= */

.campaign-contact-sheet{
  position:fixed;
  inset:0;
  z-index:10050;

  display:none;
  align-items:center;
  justify-content:center;

  padding:
    calc(var(--header-h) + 16px)
    16px
    calc(var(--footer-h) + 20px + var(--safe-bottom));

  background:rgba(15,23,42,.28);
  backdrop-filter:blur(6px);
}

.campaign-contact-sheet.show{
  display:flex;
}

.campaign-contact-card{
  width:min(430px,100%);
  max-height:calc(100vh - var(--header-h) - var(--footer-h) - 72px);
  overflow:auto;

  background:#ffffff;
  border-radius:26px;
  padding:18px;

  box-shadow:0 24px 60px rgba(15,23,42,.24);
  border:1px solid rgba(15,23,42,.08);
}

/* =========================
   CAMPAIGN LOCATION DETAILS
========================= */
.campaign-location-card{
  width:min(470px,100%);
}

.campaign-location-profile{
  margin:-4px 0 15px;
  color:#0f172a;
  font-size:20px;
  font-weight:950;
  line-height:1.2;
  text-align:center;
}

.campaign-location-details{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.campaign-location-row{
  padding:13px 14px;
  border-radius:18px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  text-align:left;
}

.campaign-location-row[hidden]{
  display:none !important;
}

.campaign-location-label{
  color:#64748b;
  font-size:11.5px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.campaign-location-value{
  margin-top:5px;
  color:#0f172a;
  font-size:15px;
  font-weight:750;
  line-height:1.42;
  white-space:pre-line;
}

.campaign-location-map{
  width:100%;
  min-height:52px;
  margin-top:12px;
  border:none;
  border-radius:18px;
  padding:12px 14px;
  cursor:pointer;
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
  color:#ffffff;
  font-size:15px;
  font-weight:900;
  box-shadow:
    0 12px 26px rgba(4,120,87,.24),
    inset 0 1px 0 rgba(255,255,255,.34);
}

.campaign-location-map[hidden]{
  display:none !important;
}

/* =========================
   CAMPAIGN SAVE / SHARE
   Más alto para mostrar todo sin scroll
========================= */

#campaignSaveSheet{
  align-items:center;

  padding:
    10px
    14px
    calc(10px + var(--safe-bottom));
}

#campaignSaveSheet .campaign-save-card{
  width:min(460px, 100%);

  /* Usa prácticamente todo el alto visible del teléfono */
  max-height:calc(100dvh - 20px - var(--safe-bottom));

  padding:22px 20px;

  overflow-y:auto;
  overscroll-behavior:contain;
}

/* =========================
   CAMPAIGN TEAM SHEET
   Wider/taller only for locations/team
========================= */

#campaignProfilesSheet{
  padding:
    calc(var(--header-h) + 10px)
    10px
    calc(18px + var(--safe-bottom));
}

#campaignProfilesSheet .campaign-contact-card{
  width:min(720px, calc(100vw - 20px));
  max-height:calc(100vh - var(--header-h) - 34px - var(--safe-bottom));
  padding:18px;
  border-radius:28px;
}

#campaignProfilesSheet .campaign-profile-list{
  gap:14px;
}

#campaignProfilesSheet .campaign-profile-card{
  padding:16px;
}

/* =========================
   CAMPAIGN TEAM TOUR INTRO
========================= */

.campaign-team-intro{
  display:flex;
  align-items:flex-start;
  gap:12px;

  margin:0 0 12px;
  padding:14px;

  border-radius:20px;
  border:1px solid rgba(22,163,74,.16);

  background:
    linear-gradient(
      135deg,
      rgba(240,253,244,.98) 0%,
      rgba(248,250,252,.98) 100%
    );

  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 8px 20px rgba(15,23,42,.05);
}

.campaign-team-intro-icon{
  flex:0 0 auto;

  width:38px;
  height:38px;
  border-radius:999px;

  display:flex;
  align-items:center;
  justify-content:center;

  background:#ffffff;
  border:1px solid rgba(22,163,74,.16);

  font-size:19px;
}

.campaign-team-intro-copy{
  flex:1;
  min-width:0;
}

.campaign-team-intro-main{
  color:#0f172a;
  font-size:16px;
  font-weight:850;
  line-height:1.35;
}

.campaign-team-intro-sub{
  margin-top:8px;

  color:#475569;
  font-size:15px;
  font-weight:600;
  line-height:1.42;
}

.campaign-team-instruction{
  margin:0 2px 12px;

  color:#64748b;
  font-size:12.5px;
  font-weight:750;
  line-height:1.35;
  text-align:center;
}

.campaign-contact-title{
  text-align:center;
  font-size:16px;
  font-weight:950;
  color:#0f172a;
  margin:2px 0 14px;
}

.campaign-contact-subtitle{
  text-align:center;
  font-size:13px;
  line-height:1.35;
  color:#64748b;
  margin:-6px 0 14px;
}

.campaign-contact-option,
.campaign-contact-close{
  width:100%;
  min-height:52px;
  border:none;
  cursor:pointer;
  border-radius:18px;
  margin-top:10px;
  font-size:16px;
  font-weight:850;
}

.campaign-contact-option[hidden]{
  display:none !important;
}

.campaign-contact-option{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;

  color:#ffffff;
  border:1px solid rgba(255,255,255,.34);

  box-shadow:
    0 10px 22px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.32);

  transition:
    transform .08s ease,
    box-shadow .16s ease,
    filter .16s ease;
}

/* WhatsApp */
.campaign-contact-option[data-contact-action="whatsapp"]{
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
}

/* Business WhatsApp */
.campaign-contact-option[data-contact-action="business_whatsapp"]{
  background:linear-gradient(135deg,#10b981 0%,#0f766e 100%);
}

/* Text / SMS */
.campaign-contact-option[data-contact-action="sms"]{
  background:linear-gradient(135deg,#38bdf8 0%,#2563eb 100%);
}

/* Call selected contact */
.campaign-contact-option[data-contact-action="contact_call"]{
  background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);
}

/* Call selected location */
.campaign-contact-option[data-contact-action="location_call"]{
  background:linear-gradient(135deg,#14b8a6 0%,#0f766e 100%);
}

/* Contact options for the client who shared the coach Campaign.
   The same optional number can be used for WhatsApp, SMS, or a call. */
.campaign-contact-option[data-share-contact-action="whatsapp"]{
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
}

.campaign-contact-option[data-share-contact-action="sms"]{
  background:linear-gradient(135deg,#38bdf8 0%,#2563eb 100%);
}

.campaign-contact-option[data-share-contact-action="call"]{
  background:linear-gradient(135deg,#f97316 0%,#ea580c 100%);
}

/* Instagram */
.campaign-contact-option[data-social-action="instagram"],
.campaign-contact-option.primary[data-social-action="instagram"]{
  background:linear-gradient(135deg,#f97316 0%,#ec4899 45%,#8b5cf6 100%);
}

/* Facebook */
.campaign-contact-option[data-social-action="facebook"]{
  background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);
}

/* TikTok */
.campaign-contact-option[data-social-action="tiktok"]{
  background:linear-gradient(135deg,#111827 0%,#db2777 100%);
}

/* Website */
.campaign-contact-option[data-social-action="website"]{
  background:linear-gradient(135deg,#0ea5e9 0%,#2563eb 100%);
  color:#ffffff;
  border:1px solid rgba(255,255,255,.40);
  box-shadow:
    0 12px 26px rgba(37,99,235,.24),
    inset 0 1px 0 rgba(255,255,255,.36);
}

.campaign-contact-option[data-social-action="website"] span{
  color:#ffffff;
  opacity:1;
}

/* Inside / Virtual Tour */
.campaign-contact-option[data-social-action="virtualTour"]{
  background:linear-gradient(135deg,#14b8a6 0%,#0f766e 55%,#115e59 100%);
  color:#ffffff;
  border:1px solid rgba(255,255,255,.42);

  box-shadow:
    0 12px 26px rgba(15,118,110,.28),
    inset 0 1px 0 rgba(255,255,255,.38);
}

.campaign-contact-option[data-social-action="virtualTour"] span{
  color:#ffffff;
  opacity:1;
}

.campaign-contact-option.primary{
  color:#ffffff;
  border-color:rgba(255,255,255,.34);
}

#campaignOpportunityContinue{
  background:linear-gradient(135deg,#10b981 0%,#047857 100%);
  color:#ffffff;
  border:1px solid rgba(255,255,255,.40);

  box-shadow:
    0 12px 26px rgba(4,120,87,.28),
    inset 0 1px 0 rgba(255,255,255,.36);
}

#campaignOpportunityContinue span{
  color:#ffffff;
  opacity:1;
}


#campaignOpportunityRegister{
  background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);
  color:#ffffff;
  border:1px solid rgba(255,255,255,.40);
  box-shadow:
    0 12px 26px rgba(29,78,216,.24),
    inset 0 1px 0 rgba(255,255,255,.36);
}

#campaignOpportunityRegister span{
  color:#ffffff;
  opacity:1;
}

.campaign-registration-details{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:14px 0;
}

.campaign-registration-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px 13px;
  border-radius:17px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  text-align:left;
}

.campaign-registration-label{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:750;
  line-height:1.2;
}

.campaign-registration-value{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:16px;
  font-weight:950;
  line-height:1.2;
  word-break:break-word;
}

.campaign-registration-copy{
  min-width:76px;
  min-height:38px;
  border:none;
  border-radius:999px;
  padding:8px 11px;
  cursor:pointer;
  background:#e0f2fe;
  color:#1d4ed8;
  font-size:12px;
  font-weight:900;
}

.campaign-registration-notice{
  margin:12px 2px 8px;
  color:#475569;
  font-size:15px;
  font-weight:600;
  line-height:1.42;
  text-align:left;
}

#campaignRegistrationContinue{
  background:linear-gradient(135deg,#10b981 0%,#047857 100%);
}

.campaign-contact-option:hover{
  filter:saturate(1.08) brightness(1.02);
  box-shadow:
    0 12px 26px rgba(15,23,42,.18),
    inset 0 1px 0 rgba(255,255,255,.36);
}

.campaign-contact-option:active{
  transform:translateY(1px) scale(.99);
}

.campaign-contact-close{
  background:#f1f5f9;
  color:#475569;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:none;
}

/* =========================
   CAMPAIGN SAVE / SHARE
========================= */

.campaign-save-card{
  text-align:center;
}

.campaign-save-icon{
  width:58px;
  height:58px;
  margin:0 auto 12px;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:999px;

  background:rgba(22,163,74,.10);
  border:1px solid rgba(22,163,74,.16);

  font-size:27px;

  box-shadow:
    0 8px 20px rgba(22,163,74,.10),
    inset 0 1px 0 rgba(255,255,255,.9);
}

.campaign-save-description{
  margin:-4px 4px 16px;

  color:#475569;
  font-size:15px;
  font-weight:600;
  line-height:1.42;
}

.campaign-save-option{
  width:100%;
  min-height:52px;

  margin-top:10px;
  padding:12px 14px;

  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;

  border:none;
  border-radius:18px;
  cursor:pointer;

  background:#0f766e;
  color:#ffffff;

  font-size:15px;
  font-weight:900;

  box-shadow:
    0 10px 22px rgba(15,118,110,.18),
    inset 0 1px 0 rgba(255,255,255,.28);
}

.campaign-save-option.primary{
  background:linear-gradient(
    135deg,
    #22c55e 0%,
    #047857 100%
  );
}

.campaign-save-option.secondary{
  background:#f1f5f9;
  color:#334155;

  border:1px solid rgba(15,23,42,.07);
  box-shadow:none;
}

.campaign-save-option[hidden]{
  display:none !important;
}

.campaign-save-option:active{
  transform:translateY(1px);
}

.campaign-save-status{
  min-height:18px;
  margin-top:10px;

  color:#047857;
  font-size:13px;
  font-weight:750;
  line-height:1.3;
}

.campaign-save-view[hidden]{
  display:none !important;
}

.campaign-save-choice-note{
  margin:-4px 4px 14px;
  color:#64748b;
  font-size:14px;
  font-weight:600;
  line-height:1.4;
}

/* =========================
   APPLE PWA INSTALL GUIDE
   Universal: iPhone / iPad manual install
========================= */

.pana-apple-install-guide{
  margin:2px 0 10px;
  padding:14px;
  border:1px solid rgba(15,118,110,.14);
  border-radius:18px;
  background:linear-gradient(180deg,#f8fffb 0%,#f0fdf4 100%);
  color:#0f172a;
  text-align:left;
}

.pana-apple-install-guide[hidden]{
  display:none !important;
}

.pana-apple-install-guide-title{
  font-size:16px;
  font-weight:800;
  line-height:1.25;
}

.pana-apple-install-guide-description{
  margin-top:5px;
  color:#475569;
  font-size:13px;
  font-weight:600;
  line-height:1.4;
}

.pana-apple-install-steps{
  display:grid;
  gap:8px;
  margin-top:12px;
}

.pana-apple-install-step{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:8px 10px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(15,23,42,.06);
}

.pana-apple-install-step-number{
  width:28px;
  height:28px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#16a34a;
  color:#fff;
  font-size:13px;
  font-weight:800;
}

.pana-apple-install-step-text{
  color:#1e293b;
  font-size:13.5px;
  font-weight:700;
  line-height:1.35;
}

.pana-apple-install-guide-hint{
  margin-top:10px;
  color:#64748b;
  font-size:12.5px;
  font-weight:600;
  line-height:1.4;
}

#panaAppleInstallSheet{
  align-items:center;
  padding:14px;
}

#panaAppleInstallSheet .pana-apple-install-card{
  width:min(390px,100%);
  max-height:calc(100dvh - 28px - var(--safe-bottom));
  padding:20px 18px;
  overflow-y:auto;
  overscroll-behavior:contain;
}

#panaAppleInstallSheet .pana-apple-install-guide{
  margin:0 0 12px;
}

.campaign-share-back{
  width:auto;
  min-height:38px;
  margin:0 auto 10px 0;
  padding:8px 11px;
  border:none;
  border-radius:999px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#f1f5f9;
  color:#334155;
  font-size:13px;
  font-weight:850;
}

.campaign-share-personalize{
  margin:14px 0 4px;
  padding:14px;
  border-radius:18px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  text-align:left;
}

.campaign-copy-link-action{
  width:auto;
  min-height:38px;
  margin:10px auto 0;
  padding:8px 12px;
  border:none;
  background:transparent;
  color:#0f766e;
  font-size:14px;
  font-weight:850;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

.campaign-share-personalize-title{
  color:#0f172a;
  font-size:14px;
  font-weight:900;
  line-height:1.3;
}

.campaign-share-personalize-sub{
  margin-top:5px;
  color:#64748b;
  font-size:12.5px;
  line-height:1.35;
}

.campaign-share-name-input{
  width:100%;
  min-height:46px;
  margin-top:11px;
  padding:11px 13px;
  border-radius:14px;
  border:1px solid rgba(22,163,74,.24);
  background:#ffffff;
  color:#0f172a;
  font:inherit;
  font-size:15px;
  outline:none;
}

.campaign-share-name-input:focus{
  border-color:rgba(22,163,74,.58);
  box-shadow:0 0 0 3px rgba(22,163,74,.12);
}

.campaign-rewards-card{
  width:min(430px,100%);
}

.campaign-rewards-join-reward{
  margin:12px 0 4px;
  padding:16px;
  border-radius:20px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.09);
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  text-align:left;
}
.campaign-rewards-join-reward-head{display:flex;align-items:center;gap:10px}
.campaign-rewards-join-reward-icon{width:38px;height:38px;flex:0 0 38px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(15,23,42,.08);font-size:20px}
.campaign-rewards-join-reward strong{color:#0f172a;font-size:16px;font-weight:950;line-height:1.2}
.campaign-rewards-join-reward-badge{display:inline-flex;margin:11px 0 0;padding:5px 9px;border-radius:999px;background:#dcfce7;color:#166534;font-size:11px;font-weight:900}
.campaign-rewards-join-reward-description{display:block;margin-top:9px;color:#475569;font-size:13px;line-height:1.45}
.campaign-rewards-program-terms{margin:12px 2px 0;padding:12px 14px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);color:#475569;font-size:12px;line-height:1.45}
.campaign-rewards-program-terms strong{display:block;color:#334155;font-size:11px;font-weight:900;letter-spacing:.02em;text-transform:uppercase}
.campaign-rewards-program-terms span{display:block;margin-top:4px}

.campaign-rewards-form{
  margin:12px 0 2px;
  text-align:left;
}

.campaign-rewards-form .campaign-share-name-input{
  margin-top:9px;
}

.campaign-rewards-phone-hint{
  margin:6px 2px 0;
  color:#64748b;
  font-size:12px;
  line-height:1.35;
}

.campaign-rewards-consent-intro{
  margin:8px 2px 0;
  color:#475569;
  font-size:12.5px;
  line-height:1.45;
}

.campaign-rewards-contact-section{
  margin-top:12px;
}

.campaign-rewards-contact-section + .campaign-rewards-contact-section{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(120,53,15,.12);
}

.campaign-rewards-contact-section-title{
  display:block;
  margin-bottom:2px;
}

.campaign-rewards-consent{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:12px 2px 0;
  color:#475569;
  font-size:12.5px;
  font-weight:650;
  line-height:1.4;
}

.campaign-rewards-consent[hidden]{
  display:none !important;
}

.campaign-rewards-consent input{
  width:18px;
  height:18px;
  margin-top:1px;
  flex:0 0 auto;
}

.campaign-rewards-code-actions[hidden],
.campaign-rewards-view[hidden]{
  display:none !important;
}

.campaign-rewards-code-actions{
  margin-top:10px;
}

.campaign-rewards-member-meta{
  margin-top:6px;
  color:#64748b;
  font-size:12.5px;
  font-weight:650;
  word-break:break-word;
}

.campaign-rewards-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) repeat(2,minmax(0,.875fr));
  gap:9px;
  margin:16px 0;
}

.campaign-rewards-stat{
  min-width:0;
  padding:13px 8px;
  border-radius:16px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.07);
  text-align:center;
}

.campaign-rewards-stat strong{
  display:block;
  color:#0f172a;
  font-size:22px;
  line-height:1.1;
}

.campaign-rewards-stat span{
  display:block;
  margin-top:5px;
  color:#64748b;
  font-size:11.5px;
  font-weight:800;
  line-height:1.25;
}

.campaign-rewards-stat.is-primary{
  background:linear-gradient(180deg,#ecfdf5 0%,#f0fdf4 100%);
  border-color:rgba(16,185,129,.24);
  box-shadow:0 8px 22px rgba(16,185,129,.08);
}
.campaign-rewards-stat.is-primary strong{
  color:#047857;
  font-size:27px;
  font-weight:1000;
}

.campaign-rewards-install-note{
  margin:10px 0 2px;
  padding:12px;
  border-radius:16px;
  background:#f0fdf4;
  border:1px solid rgba(22,163,74,.14);
  color:#166534;
  font-size:12.5px;
  font-weight:700;
  line-height:1.4;
}

.campaign-rewards-visit-code{
  margin:12px 0 2px;
  padding:12px;
  border-radius:16px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
}
#campaignRewardsVisitCodePanel{
  padding:14px;
  background:linear-gradient(180deg,#f0fdf4 0%,#ecfdf5 100%);
  border-color:rgba(16,185,129,.26);
  box-shadow:0 10px 26px rgba(16,185,129,.09);
}
#campaignRewardsVisitCodePanel .campaign-rewards-visit-code-title{
  font-size:14px;
}

.campaign-rewards-visit-code-title{
  color:#0f172a;
  font-size:13px;
  font-weight:900;
}

.campaign-rewards-visit-code-help{
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  line-height:1.4;
}

.campaign-rewards-loading{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 12px;
  color:#475569;
  font-size:14px;
  font-weight:800;
  text-align:center;
}

.campaign-rewards-loading[hidden]{
  display:none !important;
}

.campaign-rewards-referral-panel{
  background:linear-gradient(180deg,#f0fdf4 0%,#ecfdf5 100%);
  border-color:rgba(22,163,74,.24);
  box-shadow:0 10px 26px rgba(22,163,74,.08);
}

.campaign-rewards-referral-promo{
  margin:0 0 12px;
  padding:14px 12px;
  border-radius:16px;
  background:#ffffff;
  border:1px solid rgba(22,163,74,.20);
  text-align:center;
}

.campaign-rewards-referral-promo[hidden]{
  display:none !important;
}

.campaign-rewards-referral-promo-title{
  color:#047857;
  font-size:13px;
  font-weight:950;
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.campaign-rewards-referral-promo-headline{
  margin-top:7px;
  color:#0f172a;
  font-size:20px;
  font-weight:1000;
  line-height:1.16;
  text-transform:uppercase;
}

.campaign-rewards-referral-promo-progress{
  margin-top:8px;
  color:#166534;
  font-size:12.5px;
  font-weight:850;
  line-height:1.3;
}

.campaign-rewards-visit-code-value{
  margin-top:10px;
  padding:12px;
  border-radius:14px;
  background:#ffffff;
  border:1px dashed rgba(22,163,74,.35);
  text-align:center;
}

.campaign-rewards-visit-code-value[hidden]{
  display:none !important;
}

.campaign-rewards-visit-code-value strong{
  display:block;
  color:#0f172a;
  font-size:26px;
  letter-spacing:.12em;
  line-height:1.1;
}

.campaign-rewards-visit-confirmed{
  position:fixed;
  inset:0;
  z-index:2147481200;
  overflow:auto;
  padding:calc(18px + env(safe-area-inset-top,0px)) 16px calc(26px + env(safe-area-inset-bottom,0px));
  background:
    radial-gradient(circle at 80% 0%,rgba(74,222,128,.18),transparent 32%),
    linear-gradient(180deg,#f8fffb 0%,#f0fdf4 52%,#ffffff 100%);
  animation:campaignRewardsVisitConfirmed .32s ease-out;
}

.campaign-rewards-visit-confirmed-shell{
  width:min(100%,560px);
  min-height:calc(100dvh - 44px);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:14px;
}

.campaign-rewards-visit-confirmed-close{
  position:fixed;
  top:calc(12px + env(safe-area-inset-top,0px));
  right:14px;
  z-index:2;
  width:42px;
  height:42px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#334155;
  font-size:24px;
  line-height:1;
  box-shadow:0 8px 24px rgba(15,23,42,.08);
}

.campaign-rewards-visit-voice-controls{
  display:flex;
  justify-content:center;
  margin-top:12px;
}

.campaign-rewards-visit-replay{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:9px 15px;
  border:1px solid rgba(5,150,105,.22);
  border-radius:999px;
  background:#ffffff;
  color:#047857;
  font-size:13px;
  font-weight:900;
}

.campaign-rewards-visit-opportunity{
  position:relative;
  overflow:hidden;
  padding:18px;
  border-radius:22px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 16px 38px rgba(15,23,42,.08);
}

.campaign-rewards-visit-opportunity-icon{
  font-size:31px;
  line-height:1;
}

.campaign-rewards-visit-opportunity-title{
  margin-top:10px;
  color:#0f172a;
  font-size:21px;
  font-weight:1000;
  line-height:1.15;
}

.campaign-rewards-visit-opportunity-body{
  margin-top:7px;
  color:#475569;
  font-size:14px;
  font-weight:650;
  line-height:1.5;
}

.campaign-rewards-visit-opportunity-actions{
  display:grid;
  gap:8px;
  margin-top:15px;
}

.campaign-rewards-visit-opportunity-actions .campaign-save-option{
  width:100%;
}

.campaign-rewards-visit-ask{
  background:#ffffff !important;
  color:#0f766e !important;
  border:1px solid rgba(13,148,136,.22) !important;
}

.campaign-rewards-visit-confirmed[hidden]{
  display:none !important;
}

.campaign-rewards-visit-confirmed-hero{
  position:relative;
  overflow:hidden;
  padding:15px;
  border-radius:20px;
  background:
    radial-gradient(circle at 88% 4%,rgba(74,222,128,.22),transparent 34%),
    linear-gradient(145deg,#f0fdf4 0%,#ecfdf5 54%,#f8fafc 100%);
  border:1px solid rgba(22,163,74,.24);
  text-align:center;
  box-shadow:0 14px 34px rgba(22,163,74,.12);
}

.campaign-rewards-visit-confirmed-hero::after{
  content:'';
  position:absolute;
  width:92px;
  height:92px;
  right:-48px;
  bottom:-54px;
  border-radius:999px;
  border:18px solid rgba(34,197,94,.08);
  pointer-events:none;
}

.campaign-rewards-visit-confirmed-icon{
  width:42px;
  height:42px;
  margin:0 auto 7px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:linear-gradient(145deg,#22c55e,#059669);
  color:#ffffff;
  font-size:23px;
  font-weight:1000;
  line-height:1;
  box-shadow:0 8px 18px rgba(22,163,74,.22);
  animation:campaignRewardsVisitIconPop .42s ease-out both;
}

.campaign-rewards-visit-confirmed-title{
  color:#14532d;
  font-size:19px;
  font-weight:1000;
  line-height:1.12;
}

.campaign-rewards-visit-confirmed-body{
  margin-top:4px;
  color:#166534;
  font-size:12px;
  font-weight:750;
  line-height:1.4;
}

.campaign-rewards-visit-confirmed-progress{
  position:relative;
  z-index:1;
  margin-top:11px;
  padding:13px 13px 12px;
  border-radius:17px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(22,163,74,.18);
  text-align:left;
  box-shadow:0 8px 20px rgba(15,23,42,.045);
}

.campaign-rewards-visit-confirmed-progress-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}

.campaign-rewards-visit-confirmed-progress-label{
  padding-bottom:3px;
  color:#64748b;
  font-size:10.5px;
  font-weight:950;
  line-height:1.2;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.campaign-rewards-visit-confirmed-progress-count{
  color:#065f46;
  font-size:27px;
  font-weight:1000;
  line-height:.95;
  letter-spacing:-.035em;
  white-space:nowrap;
}

.campaign-rewards-visit-confirmed-progress-reward{
  margin-top:7px;
  color:#0f172a;
  font-size:15px;
  font-weight:1000;
  line-height:1.25;
  animation:campaignRewardsRewardReveal .62s ease-out both;
}

.campaign-rewards-visit-confirmed-progress-remaining{
  margin-top:4px;
  color:#64748b;
  font-size:11.5px;
  font-weight:780;
  line-height:1.35;
}

.campaign-rewards-visit-progress-track{
  width:100%;
  height:11px;
  margin-top:10px;
  overflow:hidden;
  border-radius:999px;
  background:#dcfce7;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.06);
}

.campaign-rewards-visit-progress-fill{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#4ade80 0%,#16a34a 52%,#059669 100%);
  box-shadow:0 0 14px rgba(34,197,94,.24);
  transition:width .55s cubic-bezier(.2,.8,.2,1);
}

.campaign-rewards-visit-milestones{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(8px,1fr));
  gap:4px;
  margin-top:8px;
}

.campaign-rewards-visit-milestones[hidden]{
  display:none !important;
}

.campaign-rewards-visit-milestone{
  min-width:7px;
  height:7px;
  border-radius:999px;
  background:#dbe4df;
  border:1px solid rgba(22,163,74,.10);
  transition:transform .28s ease-out,background-color .28s ease-out,box-shadow .28s ease-out;
}

.campaign-rewards-visit-milestone.is-complete{
  background:#22c55e;
  border-color:#22c55e;
}

.campaign-rewards-visit-milestone.is-next{
  transform:scale(1.22);
  background:#ffffff;
  border-color:#16a34a;
  box-shadow:0 0 0 3px rgba(34,197,94,.13);
}

.campaign-rewards-visit-next{
  margin-top:14px;
}

.campaign-rewards-visit-next-label{
  margin:0 3px 8px;
  color:#334155;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.campaign-rewards-visit-actions{
  display:grid;
  gap:9px;
}

.campaign-rewards-visit-action{
  position:relative;
  overflow:hidden;
  margin:0;
  padding:14px;
  border-radius:18px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 10px 24px rgba(15,23,42,.06);
  animation:campaignRewardsActionEnter .38s ease-out both;
}

.campaign-rewards-visit-action:nth-child(2){
  animation-delay:.07s;
}

.campaign-rewards-visit-action[hidden]{
  display:none !important;
}

.campaign-rewards-visit-action::after{
  content:'';
  position:absolute;
  width:72px;
  height:72px;
  right:-30px;
  top:-34px;
  border-radius:999px;
  pointer-events:none;
}

.campaign-rewards-visit-action.is-referral{
  border-color:rgba(22,163,74,.24);
  background:linear-gradient(155deg,#ffffff 0%,#f0fdf4 100%);
}

.campaign-rewards-visit-action.is-referral::after{
  background:rgba(34,197,94,.10);
}

.campaign-rewards-visit-action.is-group{
  border-color:rgba(37,99,235,.19);
  background:linear-gradient(155deg,#ffffff 0%,#eff6ff 100%);
}

.campaign-rewards-visit-action.is-group::after{
  background:rgba(59,130,246,.09);
}

.campaign-rewards-visit-action-title{
  position:relative;
  z-index:1;
  max-width:88%;
  color:#0f172a;
  font-size:16px;
  font-weight:1000;
  line-height:1.18;
}

.campaign-rewards-visit-action-metric{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-top:9px;
}

.campaign-rewards-visit-action-metric[hidden]{
  display:none !important;
}

.campaign-rewards-visit-action-metric strong{
  color:#047857;
  font-size:29px;
  font-weight:1000;
  line-height:1;
  letter-spacing:-.04em;
}

.campaign-rewards-visit-action-metric span{
  color:#64748b;
  font-size:10.5px;
  font-weight:900;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.025em;
}

.campaign-rewards-visit-action-reward{
  margin-top:7px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(22,163,74,.12);
  color:#166534;
  font-size:12px;
  font-weight:950;
  line-height:1.35;
}

.campaign-rewards-visit-action-body{
  margin-top:7px;
  color:#475569;
  font-size:11.5px;
  font-weight:720;
  line-height:1.4;
  overflow:visible;
}

.campaign-rewards-visit-action-body[hidden]{
  display:none !important;
}

.campaign-rewards-visit-action-meta{
  margin-top:8px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.campaign-rewards-visit-action-meta:empty{
  display:none;
}

.campaign-rewards-visit-action-chip{
  max-width:100%;
  padding:6px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(15,23,42,.08);
  color:#334155;
  font-size:10.5px;
  font-weight:900;
  line-height:1.3;
  white-space:normal;
}

.campaign-rewards-visit-action.is-group .campaign-rewards-visit-action-meta{
  display:grid;
  grid-template-columns:1fr;
}

.campaign-rewards-visit-action.is-group .campaign-rewards-visit-action-chip{
  width:100%;
  border-radius:12px;
  padding:8px 9px;
}

.campaign-rewards-visit-action .campaign-save-option{
  min-height:46px;
  margin-top:10px;
  padding:11px 13px;
  border-radius:14px;
  font-size:13.5px;
  font-weight:950;
}

.campaign-rewards-visit-action-progress{
  height:8px;
  margin-top:8px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(22,163,74,.13);
}

.campaign-rewards-visit-action-progress[hidden]{
  display:none !important;
}

.campaign-rewards-visit-action-progress > span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#4ade80 0%,#16a34a 58%,#059669 100%);
  transition:width .55s cubic-bezier(.2,.8,.2,1);
}

@keyframes campaignRewardsVisitConfirmed{
  from{ opacity:0; transform:translateY(7px) scale(.985); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

@keyframes campaignRewardsVisitIconPop{
  0%{ opacity:0; transform:scale(.68) rotate(-7deg); }
  70%{ opacity:1; transform:scale(1.08) rotate(1deg); }
  100%{ opacity:1; transform:scale(1) rotate(0); }
}

@keyframes campaignRewardsRewardReveal{
  from{ opacity:.35; transform:translateY(3px); }
  to{ opacity:1; transform:translateY(0); }
}

@keyframes campaignRewardsActionEnter{
  from{ opacity:0; transform:translateY(7px); }
  to{ opacity:1; transform:translateY(0); }
}

@media (prefers-reduced-motion: reduce){
  .campaign-rewards-visit-confirmed,
  .campaign-rewards-visit-confirmed-icon,
  .campaign-rewards-visit-confirmed-progress-reward,
  .campaign-rewards-visit-action{ animation:none; }
  .campaign-rewards-visit-progress-fill,
  .campaign-rewards-visit-milestone,
  .campaign-rewards-visit-action-progress > span{ transition:none; }
}

.campaign-rewards-visit-code-value span{
  display:block;
  margin-top:6px;
  color:#64748b;
  font-size:11.5px;
  font-weight:700;
}

.pana-visit-qr-canvas{
  display:block;
  width:min(220px,100%)!important;
  max-width:220px;
  height:auto!important;
  aspect-ratio:1/1;
  margin:0 auto 10px;
  background:#fff;
  border:8px solid #fff;
  border-radius:14px;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
  image-rendering:pixelated;
}
.pana-visit-qr-canvas[hidden]{display:none!important}
.pana-visit-qr-manual{
  margin:2px 0 7px;
  color:#64748b;
  font-size:11px;
  font-weight:850;
  line-height:1.35;
}
.pana-visit-qr-status{
  min-height:16px;
  margin-top:6px;
  color:#64748b;
  font-size:11px;
  font-weight:750;
  line-height:1.35;
}
.pana-visit-qr-status.is-waiting{
  width:fit-content;
  max-width:100%;
  margin:9px auto 0;
  padding:7px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border-radius:999px;
  background:#f0fdf4;
  border:1px solid rgba(22,163,74,.18);
  color:#166534;
  font-weight:900;
}
.pana-visit-qr-status.is-waiting::before{
  content:'';
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:999px;
  background:#22c55e;
  box-shadow:0 0 0 0 rgba(34,197,94,.35);
  animation:campaignRewardsVisitWaitingPulse 1.4s ease-out infinite;
}
.pana-visit-qr-status.is-error{color:#b91c1c}
@keyframes campaignRewardsVisitWaitingPulse{
  0%{ box-shadow:0 0 0 0 rgba(34,197,94,.35); }
  70%{ box-shadow:0 0 0 7px rgba(34,197,94,0); }
  100%{ box-shadow:0 0 0 0 rgba(34,197,94,0); }
}
@media (prefers-reduced-motion: reduce){
  .pana-visit-qr-status.is-waiting::before{ animation:none; }
}

.campaign-rewards-list{
  display:grid;
  gap:9px;
  margin:12px 0 2px;
}

.campaign-reward-card{
  padding:12px;
  border-radius:16px;
  background:#fffbeb;
  border:1px solid rgba(217,119,6,.18);
  text-align:left;
}

.campaign-reward-card strong{
  display:block;
  color:#92400e;
  font-size:13px;
}

.campaign-reward-card span{
  display:block;
  margin-top:4px;
  color:#78350f;
  font-size:12px;
  line-height:1.4;
}

.campaign-reward-card.campaign-rewards-contact-preferences{
  margin:14px 0 2px;
  padding:0;
  overflow:hidden;
  background:#f8fafc;
  border-color:rgba(15,23,42,.09);
}
.campaign-rewards-contact-summary{
  list-style:none;
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:56px;
  padding:12px 42px 12px 14px;
  cursor:pointer;
  user-select:none;
}
.campaign-rewards-contact-summary::-webkit-details-marker{display:none}
.campaign-rewards-contact-summary::after{
  content:'›';
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%) rotate(0deg);
  color:#64748b;
  font-size:24px;
  font-weight:900;
  line-height:1;
  transition:transform .18s ease;
}
.campaign-rewards-contact-preferences[open] .campaign-rewards-contact-summary::after{
  transform:translateY(-50%) rotate(90deg);
}
.campaign-rewards-contact-summary-copy{min-width:0;display:block}
.campaign-rewards-contact-summary-copy strong{
  display:block;
  color:#0f172a;
  font-size:13px;
  font-weight:950;
}
.campaign-rewards-contact-summary-copy > span{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:11.5px;
  font-weight:750;
  line-height:1.3;
}
.campaign-rewards-contact-editor{
  padding:0 14px 14px;
  border-top:1px solid rgba(15,23,42,.07);
}
.campaign-rewards-contact-preferences:not([open]) .campaign-rewards-contact-editor{display:none}
.campaign-rewards-referral-rules{
  margin-top:8px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(22,163,74,.14);
}
.campaign-rewards-referral-rules[hidden]{display:none !important}
.campaign-rewards-referral-rules > summary{
  cursor:pointer;
  color:#166534;
  font-size:11.5px;
  font-weight:850;
}
.campaign-rewards-referral-rules .campaign-rewards-visit-code-help{
  margin-top:7px;
}

.campaign-loyalty-admin{
  grid-column:1 / -1;
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.09);
  background:#f8fafc;
}

.campaign-loyalty-admin-title{
  color:#0f172a;
  font-size:14px;
  font-weight:900;
}

.campaign-loyalty-admin-help{
  margin-top:5px;
  color:#64748b;
  font-size:12.5px;
  line-height:1.4;
}

.campaign-loyalty-admin-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  margin-top:12px;
}

.campaign-loyalty-admin-actions input{
  min-width:0;
}

.campaign-loyalty-admin-scan{
  grid-column:1 / -1;
  min-height:48px;
}
.campaign-loyalty-admin-manual-help{
  grid-column:1 / -1;
  color:#64748b;
  font-size:11.5px;
  font-weight:750;
  line-height:1.35;
}

.campaign-loyalty-admin-status{
  min-height:18px;
  margin-top:8px;
  color:#047857;
  font-size:12px;
  font-weight:750;
}

.campaign-loyalty-admin-status.is-error{
  color:#b91c1c;
}

.campaign-loyalty-admin-visitors{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:360px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:9px;
  margin:14px 0 18px;
  border:1px solid rgba(15,23,42,.07);
  border-radius:16px;
  background:#eef3f6;
  scrollbar-gutter:stable;
}
.campaign-loyalty-admin-section-title{
  font-weight:800;
  font-size:14px;
  margin-top:16px;
}
.campaign-loyalty-admin-acquisition-details{
  margin-top:16px;
}
.campaign-loyalty-admin-acquisition-details > summary{
  cursor:pointer;
  list-style:none;
  margin-top:0;
  padding:9px 11px;
  border-radius:12px;
  background:#eef3f6;
  color:#334155;
}
.campaign-loyalty-admin-acquisition-details > summary::-webkit-details-marker{display:none}
.campaign-loyalty-admin-acquisition-details > summary::after{
  content:'+';
  float:right;
  color:#64748b;
}
.campaign-loyalty-admin-acquisition-details[open] > summary::after{content:'−'}
.campaign-loyalty-admin-acquisition-details .campaign-loyalty-admin-visitors{
  margin:9px 0 0;
}
.campaign-loyalty-admin-member-origin{
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid rgba(15,23,42,.07);
}
.campaign-loyalty-admin-member-origin-title{
  color:#334155;
  font-size:11px;
  font-weight:900;
  margin-bottom:3px;
}
.campaign-loyalty-admin-member.is-acquisition-only{
  background:#f8fafc;
}
.campaign-loyalty-admin-visitor-branch{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:0;
  border:0;
  border-radius:16px;
  background:transparent;
}
.campaign-loyalty-admin-visitor{
  position:relative;
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  padding:11px 12px;
  background:#ffffff;
  box-shadow:0 4px 14px rgba(15,23,42,.04);
}
.campaign-loyalty-admin-visitor.is-descendant{
  margin-left:20px;
}
.campaign-loyalty-admin-visitor.is-descendant::before{
  content:'';
  position:absolute;
  left:-13px;
  top:-8px;
  width:10px;
  height:24px;
  border-left:2px solid rgba(16,185,129,.28);
  border-bottom:2px solid rgba(16,185,129,.28);
  border-bottom-left-radius:8px;
}
.campaign-loyalty-admin-visitor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.campaign-loyalty-admin-level{
  flex:0 0 auto;
  padding:3px 8px;
  border-radius:999px;
  background:#ecfdf5;
  color:#047857;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}

.campaign-loyalty-admin-ownership{
  margin-top:12px;
  padding:11px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:#ffffff;
}
.campaign-loyalty-admin-ownership-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  margin-top:8px;
}
.campaign-loyalty-admin-ownership-result{
  margin-top:8px;
  min-height:18px;
  color:#475569;
  font-size:11.5px;
  line-height:1.45;
}
.campaign-loyalty-admin-ownership-result.is-error{color:#b91c1c}
.campaign-loyalty-admin-ownership-result strong{color:#0f172a}

.campaign-loyalty-admin-members{
  display:grid;
  gap:9px;
  margin-top:12px;
}

.campaign-loyalty-admin-member{
  padding:11px;
  border-radius:14px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.07);
}

.campaign-loyalty-admin-member-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}

.campaign-loyalty-admin-member-name{
  color:#0f172a;
  font-size:13px;
  font-weight:900;
}

.campaign-loyalty-admin-member-meta{
  margin-top:3px;
  color:#64748b;
  font-size:11.5px;
}

.campaign-loyalty-admin-distributor{
  display:grid;
  gap:7px;
  margin-top:9px;
  padding:9px;
  border:1px solid rgba(15,23,42,.07);
  border-radius:12px;
  background:#f8fafc;
}

.campaign-loyalty-admin-distributor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.campaign-loyalty-admin-distributor-current{
  min-width:0;
  color:#334155;
  font-size:11.5px;
  font-weight:850;
}

.campaign-loyalty-admin-distributor-editor{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:7px;
  align-items:center;
}

.campaign-loyalty-admin-distributor-editor[hidden]{
  display:none !important;
}

.campaign-loyalty-admin-distributor-input{
  width:100%;
  min-width:0;
  min-height:38px;
  padding:9px 10px;
  border:1px solid rgba(15,23,42,.12);
  border-radius:10px;
  background:#fff;
  color:#0f172a;
  font:inherit;
  font-size:12px;
}

.campaign-loyalty-admin-distributor .pana-loyalty-action{
  min-height:34px;
  padding:8px 10px;
}

@media (max-width:480px){
  .campaign-loyalty-admin-distributor-editor{
    grid-template-columns:1fr 1fr;
  }

  .campaign-loyalty-admin-distributor-input{
    grid-column:1 / -1;
  }
}

.campaign-loyalty-admin-rewards{
  display:grid;
  gap:7px;
  margin-top:9px;
}

.campaign-loyalty-admin-reward{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:8px 9px;
  border-radius:12px;
  background:#fffbeb;
}

.campaign-loyalty-admin-reward-copy{
  min-width:0;
  color:#78350f;
  font-size:11.5px;
  font-weight:750;
}

.campaign-loyalty-admin-profile{
  margin-top:8px;
  padding:8px 11px;
  border-radius:12px;
  background:#ecfdf5;
  border:1px solid rgba(5,150,105,.14);
  color:#047857;
  font-size:12px;
  font-weight:850;
}

.campaign-loyalty-admin-profile[hidden]{
  display:none !important;
}

.pana-loyalty-action{
  min-height:38px;
  padding:9px 13px;
  border:1px solid transparent;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font:inherit;
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  transition:transform .14s ease, box-shadow .14s ease, background .14s ease;
}

.pana-loyalty-action:active{
  transform:translateY(1px);
}

.pana-loyalty-action:disabled{
  opacity:.58;
  cursor:wait;
}

.pana-loyalty-action.primary{
  background:linear-gradient(135deg,#22c55e 0%,#059669 100%);
  color:#fff;
  box-shadow:0 7px 16px rgba(5,150,105,.18);
}

.pana-loyalty-action.secondary{
  background:#fff;
  color:#475569;
  border-color:rgba(15,23,42,.10);
  box-shadow:0 4px 10px rgba(15,23,42,.05);
}

.pana-loyalty-action.warning{
  background:#fff7ed;
  color:#9a3412;
  border-color:rgba(234,88,12,.18);
  box-shadow:none;
}

.pana-loyalty-action.refresh::before{
  content:'↻';
  font-size:16px;
  line-height:1;
}

.campaign-referral-guest-action{
  width:100%;
  min-height:42px;
  margin-top:10px;
  padding:10px 15px;
  border:none;
  border-radius:14px;
  background:linear-gradient(135deg,#22c55e 0%,#059669 100%);
  color:#fff;
  box-shadow:0 8px 18px rgba(5,150,105,.18);
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}

.campaign-loyalty-admin-reward.is-redeemed{
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.06);
}

.campaign-loyalty-admin-reward.is-redeemed .campaign-loyalty-admin-reward-copy{
  color:#475569;
}

.campaign-loyalty-admin-redeemed-label{
  margin-top:10px;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.campaign-loyalty-confirm-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:14px;
}

.campaign-loyalty-confirm-actions .campaign-save-option{
  margin-top:0;
}

@media (max-width:640px){
  .campaign-loyalty-admin-actions{
    grid-template-columns:1fr;
  }
}

@media (max-width:480px){
  .campaign-save-description{
    font-size:14px;
  }

  .campaign-save-option{
    min-height:50px;
    font-size:14.5px;
  }
}

.campaign-profile-selector{
  margin:16px 0 8px;
  padding:14px;
  border-radius:22px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}

.campaign-profile-selector-label{
  font-size:13px;
  font-weight:900;
  color:#334155;
  margin-bottom:8px;
}

.campaign-profile-select{
  width:100%;
  min-height:46px;
  border-radius:16px;
  border:1px solid rgba(22,163,74,.24);
  background:#f8fafc;
  padding:0 12px;
  font-size:15px;
  font-weight:850;
  color:#0f172a;
  outline:none;
}

.campaign-profile-select:focus{
  border-color:rgba(22,163,74,.55);
  box-shadow:0 0 0 3px rgba(22,163,74,.12);
}

body.campaign-location-required .campaign-landing-dynamic,
body.campaign-location-required .campaign-selected-location-card{
  display:none !important;
}

body.campaign-location-required .campaign-profile-selector{
  margin-top:22px;
  padding:20px;
  border-radius:26px;
  border-color:rgba(22,163,74,.24);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 18px 38px rgba(22,163,74,.12);
}

body.campaign-location-required .campaign-profile-selector-label{
  font-size:18px;
  text-align:center;
  color:#0f172a;
}

body.campaign-location-required .campaign-profile-select{
  margin-top:8px;
  min-height:56px;
  font-size:17px;
  text-align:center;
}

.campaign-selected-location-card{
  margin:16px 0 4px;
  padding:16px;
  border-radius:22px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  color:#0f172a;
}

.campaign-selected-location-title{
  font-size:17px;
  font-weight:950;
  line-height:1.1;
}

.campaign-selected-location-meta{
  margin-top:5px;
  font-size:13px;
  font-weight:750;
  color:#64748b;
}

.campaign-selected-location-address{
  margin-top:2px;
  font-size:13px;
  font-weight:750;
  color:#64748b;
}

.campaign-selected-location-note{
  margin-top:8px;
  font-size:13px;
  line-height:1.35;
  color:#475569;
}

.campaign-selected-referrer{
  margin-top:10px;
  padding:9px 11px;
  border-radius:14px;
  background:#ecfdf5;
  border:1px solid rgba(5,150,105,.16);
  color:#047857;
  font-size:13px;
  font-weight:850;
  line-height:1.3;
}

.campaign-share-attribution-card{
  margin:14px 0 4px;
  padding:14px;
  border-radius:20px;
  background:#ecfdf5;
  border:1px solid rgba(5,150,105,.18);
  box-shadow:0 8px 20px rgba(5,150,105,.08);
}

.campaign-share-attribution-card[hidden]{
  display:none !important;
}

.campaign-share-attribution-text{
  color:#065f46;
  font-size:14px;
  font-weight:850;
  line-height:1.4;
  text-align:center;
}

.campaign-share-attribution-contact{
  width:100%;
  min-height:46px;
  margin-top:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:none;
  border-radius:16px;
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
  color:#ffffff;
  font:inherit;
  font-size:14px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 9px 20px rgba(4,120,87,.20);
}

.campaign-share-attribution-contact[hidden]{
  display:none !important;
}

.campaign-profile-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.campaign-profile-card{
  width:100%;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.10);
  background:#ffffff;
  padding:14px;
  text-align:left;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}

/* =========================
   CAMPAIGN PROFILE CONTEXT
========================= */

.campaign-profile-return-bar{
  position:fixed;
  left:50%;
  top:calc(var(--header-h) + 10px);
  transform:translateX(-50%);
  z-index:10020;

  width:min(720px, calc(100vw - 24px));
  min-height:64px;

display:flex;
align-items:flex-start;
justify-content:space-between;
gap:14px;

  padding:11px 14px;

  border-radius:20px;
  border:1px solid rgba(245,158,11,.28);

  background:rgba(255,251,235,.98);
  backdrop-filter:blur(12px) saturate(1.1);

  box-shadow:
    0 12px 28px rgba(15,23,42,.12),
    0 1px 0 rgba(255,255,255,.95) inset;
}

.campaign-profile-return-bar[hidden]{
  display:none !important;
}

.campaign-profile-return-copy{
  flex:1;
  min-width:0;
}

.campaign-profile-return-title{
  color:#92400e;
  font-size:14px;
  font-weight:950;
  line-height:1.2;

  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.campaign-profile-return-sub{
  margin-top:4px;

  color:#78350f;
  font-size:12px;
  font-weight:650;
  line-height:1.3;

  white-space:normal;
  overflow:visible;
  text-overflow:clip;

  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.campaign-profile-return-btn{
  flex:0 0 auto;

  min-height:38px;
  max-width:145px;

  border:none;
  border-radius:999px;
  padding:9px 13px;

  background:linear-gradient(
    135deg,
    #f59e0b 0%,
    #ea580c 100%
  );

  color:#ffffff;

  font-size:12px;
  font-weight:950;
  line-height:1.15;
  text-align:center;
  white-space:normal;

  cursor:pointer;

  box-shadow:
    0 8px 18px rgba(234,88,12,.20),
    inset 0 1px 0 rgba(255,255,255,.30);
}

.campaign-profile-return-btn:active{
  transform:translateY(1px);
}

.campaign-profile-badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}

.campaign-profile-badge{
  display:inline-flex;
  align-items:center;

  min-height:24px;
  padding:5px 9px;
  border-radius:999px;

  font-size:11px;
  font-weight:900;
  line-height:1;
}

.campaign-profile-badge.entry{
  background:#fff7ed;
  color:#c2410c;
  border:1px solid rgba(234,88,12,.18);
}

.campaign-profile-badge.active{
  background:#ecfdf5;
  color:#047857;
  border:1px solid rgba(5,150,105,.18);
}

@media (max-width:600px){
  :root{
    --campaign-profile-bar-h:86px;
  }

.campaign-profile-return-bar{
  top:calc(var(--header-h) + 6px);
  width:calc(100vw - 16px);
min-height:76px;

    align-items:center;
    gap:8px;

    padding:9px 10px;
    border-radius:17px;
  }

  .campaign-profile-return-copy{
    min-width:0;
  }

  .campaign-profile-return-title{
    font-size:13px;
    line-height:1.15;

    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

/* En móvil mostramos una explicación breve.
   El texto puede ocupar hasta dos líneas. */
.campaign-profile-return-sub{
  display:-webkit-box;

  margin-top:3px;

  font-size:10px;
  line-height:1.18;

  white-space:normal;
  overflow:hidden;

  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.campaign-profile-return-btn{
  min-height:36px;
  max-width:105px;

  padding:8px 9px;

  font-size:10.5px;
  line-height:1.1;
  white-space:normal;
}

  body.campaign-profile-context-open .viewport{
    top:calc(
      var(--header-h) +
      var(--campaign-profile-bar-h) +
      12px
    );
  }
}

.campaign-profile-card-title{
  font-size:16px;
  font-weight:950;
  color:#0f172a;
  line-height:1.15;
}

.campaign-profile-card-meta{
  margin-top:4px;
  font-size:13px;
  font-weight:750;
  color:#64748b;
}

.campaign-profile-card-method{
  margin-top:8px;
  font-size:13px;
  line-height:1.35;
  color:#475569;
}

.campaign-profile-card-actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.campaign-profile-mini-btn{
  border:none;
  cursor:pointer;
  min-height:34px;
  border-radius:999px;
  padding:7px 11px;
  background:#f1f5f9;
  color:#0f172a;
  font-size:12px;
  font-weight:900;
}

.campaign-profile-mini-btn.primary{
  background:#16a34a;
  color:#ffffff;
}

.campaign-profile-mini-btn.current,
.campaign-profile-mini-btn:disabled{
  background:#dcfce7;
  color:#166534;
  border:1px solid rgba(22,163,74,.18);
  cursor:default;
  opacity:1;
  box-shadow:none;
}

@media (max-width:480px){
  .campaign-contact-sheet{
    align-items:center;
    padding:
      calc(var(--header-h) + 12px)
      14px
      calc(var(--footer-h) + 18px + var(--safe-bottom));
  }

@media (max-width:480px){
  #campaignSaveSheet{
    align-items:center;

    padding:
      6px
      8px
      calc(6px + var(--safe-bottom));
  }

  #campaignSaveSheet .campaign-save-card{
    width:calc(100vw - 16px);

    max-height:calc(
      100dvh - 12px - var(--safe-bottom)
    );

    padding:20px 16px;
    border-radius:28px;
  }
}

  .campaign-contact-card{
    border-radius:24px;
    padding:16px;
  }

  .campaign-contact-option,
  .campaign-contact-close{
    min-height:50px;
    font-size:15px;
  }
}

@media (max-width:480px){
  #campaignProfilesSheet{
    align-items:flex-start;
    padding:
      calc(var(--header-h) + 8px)
      8px
      calc(12px + var(--safe-bottom));
  }

  #campaignProfilesSheet .campaign-contact-card{
    width:calc(100vw - 16px);
    max-height:calc(100vh - var(--header-h) - 20px - var(--safe-bottom));
    border-radius:24px;
    padding:14px;
  }

  #campaignProfilesSheet .campaign-contact-title{
    margin-bottom:12px;
  }

  #campaignProfilesSheet .campaign-contact-subtitle{
    font-size:12.5px;
    line-height:1.25;
  }

  #campaignProfilesSheet .campaign-team-intro{
    gap:9px;
    padding:11px;
    border-radius:17px;
  }

  #campaignProfilesSheet .campaign-team-intro-icon{
    width:32px;
    height:32px;
    font-size:16px;
  }

#campaignProfilesSheet .campaign-team-intro-main{
  font-size:15.5px;
  line-height:1.32;
}

#campaignProfilesSheet .campaign-team-intro-sub{
  margin-top:7px;
  font-size:14px;
  line-height:1.4;
}

  #campaignProfilesSheet .campaign-team-instruction{
    margin-bottom:10px;
    font-size:11.5px;
  }

#campaignProfilesSheet .campaign-profile-card{
  padding:13px 14px;
  border-radius:22px;
}

  #campaignProfilesSheet .campaign-profile-card-method{
    font-size:14px;
    line-height:1.35;
  }

#campaignProfilesSheet .campaign-profile-card-actions{
  margin-top:10px;
  gap:7px;
}

  #campaignProfilesSheet .campaign-profile-mini-btn{
    min-height:34px;
    padding:7px 11px;
  }
}

@media (max-width:480px){
  .campaign-chat-actions{
    gap:6px;
    padding:0 1px 2px;
  }

  .campaign-chat-action{
    min-height:32px;
    font-size:12px;
    padding:7px 9px;
    gap:4px;
  }
}

/* =========================
   PANA GO / CAMPAIGN LANDING
   Visible solo por JS en variant=campaign
========================= */

.campaign-landing{
  position:fixed;
  top:var(--header-h);
  left:0;
  right:0;
  bottom:0;
  z-index:18;
  display:none;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:18px 14px calc(96px + var(--safe-bottom));
  background:
    radial-gradient(circle at top right, rgba(34,197,94,.16), transparent 34%),
    linear-gradient(180deg,#f8fafc 0%,#eefcf2 100%);
}

body.campaign-landing-active .campaign-landing{
  display:block;
}

body.campaign-landing-active .viewport{
  display:none;
}

.pana-live{
  position:fixed;
  inset:0;
  z-index:2147481100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:calc(28px + var(--safe-top)) 22px calc(30px + var(--safe-bottom));
  background:
    radial-gradient(circle at 50% 34%,rgba(126,231,255,.34),transparent 24%),
    radial-gradient(circle at 50% 50%,rgba(79,140,255,.18),transparent 38%),
    linear-gradient(180deg,#f8fbff 0%,#eef4ff 52%,#f8fafc 100%);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
body.pana-live-open .pana-live{display:flex}
.pana-live[hidden]{display:none!important}
.pana-live-shell{
  width:min(100%,720px);
  min-height:min(78vh,760px);
  margin:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.pana-live-orbit{
  position:relative;
  width:min(94vw,560px);
  height:clamp(330px,92vw,440px);
  margin:0 auto 10px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.pana-live-orbit .pana-live-orb{
  z-index:2;
  margin:0;
}
.pana-live-nodes{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
}
.pana-live-nodes[hidden]{display:none!important}
.pana-live-node{
  position:absolute;
  width:clamp(82px,21vw,106px);
  height:clamp(82px,21vw,106px);
  border:1px solid rgba(255,255,255,.74);
  border-radius:999px;
  padding:11px;
  color:#fff;
  font:inherit;
  font-size:clamp(10.5px,2.7vw,13.5px);
  font-weight:850;
  line-height:1.08;
  text-align:center;
  overflow-wrap:break-word;
  hyphens:auto;
  box-shadow:0 16px 34px rgba(15,23,42,.20),inset 0 1px 0 rgba(255,255,255,.34);
  backdrop-filter:blur(12px);
  cursor:pointer;
  pointer-events:auto;
  overflow:hidden;
  display:grid;
  place-items:center;
  transition:transform .16s ease,filter .18s ease,box-shadow .18s ease;
  animation:panaLiveNodeFloat 6.4s ease-in-out infinite;
}
.pana-live-node:nth-child(1){
  left:0;
  top:16%;
  background:linear-gradient(145deg,#7c3aed,#4f46e5);
  animation-delay:-.8s;
}
.pana-live-node:nth-child(2){
  right:0;
  top:35%;
  background:linear-gradient(145deg,#059669,#10b981);
  animation-delay:-2.4s;
}
.pana-live-node:nth-child(3){
  left:11%;
  bottom:4%;
  background:linear-gradient(145deg,#ea580c,#f59e0b);
  animation-delay:-4s;
}
.pana-live-node:active{transform:scale(.96);filter:brightness(.92)}
.pana-live-node:focus-visible{outline:3px solid rgba(59,130,246,.42);outline-offset:3px}
.pana-live-node:disabled{cursor:default;filter:saturate(.82) brightness(.94);opacity:.78}
.pana-live-orb:disabled{cursor:default}

.pana-live-exit{
  position:fixed;
  top:calc(8px + var(--safe-top));
  right:12px;
  z-index:2;
  border:1px solid rgba(15,23,42,.1);
  background:rgba(255,255,255,.86);
  color:#0f172a;
  border-radius:999px;
  padding:10px 14px;
  font:inherit;
  font-size:13px;
  font-weight:800;
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  backdrop-filter:blur(16px);
  cursor:pointer;
}
.pana-live-audio-input-used{overflow-wrap:anywhere}
.pana-live-orb{
  position:relative;
  width:clamp(190px,48vw,330px);
  height:clamp(190px,48vw,330px);
  margin:0;
  border:0;
  border-radius:999px;
  display:grid;
  place-items:center;
  color:#fff;
  background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.42) 0 2%,#9bdfff 10%,#5c9afa 45%,#2c3584 100%);
  box-shadow:0 22px 56px rgba(79,140,255,.18),inset 0 0 30px rgba(255,255,255,.14);
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease;
}
.pana-live-orb-label{
  position:relative;
  z-index:1;
  font:900 clamp(22px,6vw,38px)/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.10em;
  text-indent:.10em;
  text-shadow:0 2px 14px rgba(15,23,42,.22);
  pointer-events:none;
  user-select:none;
}
.pana-live-orb::before,.pana-live-orb::after{
  content:'';
  position:absolute;
  inset:-14px;
  border:1px solid rgba(79,140,255,.18);
  border-radius:inherit;
  opacity:.52;
  pointer-events:none;
  transform-origin:center;
}
.pana-live-orb::after{inset:-30px;opacity:.20}
.pana-live-orb:active{transform:scale(.97)}
.pana-live[data-state="requesting"] .pana-live-orb,
.pana-live[data-state="listening"] .pana-live-orb{animation:panaLiveListen 1.15s ease-in-out infinite}
.pana-live[data-state="thinking"] .pana-live-orb::before{animation:panaLiveThinkHalo 1.8s ease-in-out infinite}
.pana-live[data-state="speaking"] .pana-live-orb{animation:panaLiveSpeak .58s ease-in-out infinite alternate}
.pana-live-title{font-weight:900;font-size:clamp(24px,5vw,36px);color:#0f172a;letter-spacing:-.02em}
.pana-live-status{margin-top:10px;font-size:clamp(15px,3.8vw,19px);line-height:1.4;color:#64748b;min-height:26px;max-width:560px}
.pana-live-transcript{margin:14px auto 0;max-width:560px;font-size:15px;line-height:1.5;color:#334155;min-height:22px}
.pana-live-float{
  position:fixed;
  right:18px;
  bottom:calc(102px + var(--safe-bottom));
  z-index:2147480000;
  width:50px;
  height:50px;
  border:0;
  border-radius:999px;
  background:transparent url('/assets/pana-distributor-live-symbol-hd.webp') center / contain no-repeat;
  box-shadow:none;
  cursor:pointer;
  display:none;
}
body.pana-live-available:not(.pana-live-open) .pana-live-float{display:block}
body.distributor-adaptive-home-open .pana-live-float{display:none!important}
body.campaign-landing-active .pana-live-float{display:none!important}
@keyframes panaLiveListen{0%,100%{box-shadow:0 30px 80px rgba(79,140,255,.28),0 0 0 0 rgba(79,140,255,.16)}50%{box-shadow:0 30px 80px rgba(79,140,255,.38),0 0 0 24px rgba(79,140,255,0)}}
@keyframes panaLiveThinkHalo{0%,100%{opacity:.28;transform:scale(.99)}50%{opacity:.46;transform:scale(1.035)}}
@keyframes panaLiveSpeak{from{transform:scale(.97)}to{transform:scale(1.035)}}
@keyframes panaLiveNodeFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-5px,0)}}
@media (max-width:560px){.pana-live{padding-left:18px;padding-right:18px}.pana-live-float{right:14px}}
@media (prefers-reduced-motion:reduce){.pana-live-orb,.pana-live-orb::before,.pana-live-node{animation:none!important;transition:none}}
body.campaign-landing-active .footer{
  display:none;
}

.campaign-landing-inner{
  width:min(920px,100%);
  margin:0 auto;
}

.campaign-hero{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(22,163,74,.12);
  border-radius:30px;
  padding:28px 22px 24px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 18px 44px rgba(15,23,42,.08);
}

.campaign-kicker{
  display:inline-flex;
  align-items:center;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(22,163,74,.10);
  color:#047857;
  margin-bottom:18px;
  border:1px solid rgba(22,163,74,.14);
}

.campaign-kicker-main{
  display:none;
}

.campaign-kicker-icon,
.campaign-kicker-brand{
  display:none;
}

.campaign-kicker-sub{
  padding:0;
  font-size:13px;
  font-weight:900;
  letter-spacing:.2px;
  color:#047857;
  line-height:1.15;
}

.campaign-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:16px;
}

.campaign-topline .campaign-kicker{
  margin-bottom:0;
}

.campaign-lang{
  display:flex;
  align-items:center;
  gap:7px;

  padding:5px 7px 5px 11px;
  border-radius:999px;

  background:#f1f5f9;
  border:1px solid rgba(15,23,42,.08);

  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 4px 12px rgba(15,23,42,.04);
}

.campaign-lang-icon{
  flex:0 0 auto;
  font-size:17px;
  line-height:1;
}

.campaign-lang-label{
  flex:0 0 auto;

  color:#475569;
  font-size:12px;
  font-weight:850;
  line-height:1;
  white-space:nowrap;
}

.campaign-lang-select{
  min-height:38px;
  max-width:190px;
  border:none;
  outline:none;
  cursor:pointer;

  padding:7px 32px 7px 12px;
  border-radius:999px;

  background:#ffffff;
  color:#334155;

  border:1px solid rgba(15,23,42,.10);

  font-size:13px;
  font-weight:850;
}

.campaign-lang-select:focus{
  border-color:rgba(22,163,74,.50);
  box-shadow:0 0 0 3px rgba(22,163,74,.12);
}

/* The chat reuses the exact Campaign language source/state without
   creating a second i18n system. Keep the control compact inside
   the horizontally scrollable Campaign action row. */
.campaign-chat-lang{
  display:none;
  flex:0 0 auto;
  padding:3px 5px 3px 8px;
  gap:5px;
  box-shadow:none;
}

body.campaign-chat-active .campaign-chat-lang{
  display:flex;
}

.campaign-chat-lang .campaign-lang-icon{
  font-size:15px;
}

.campaign-chat-lang .campaign-lang-select{
  min-height:34px;
  max-width:136px;
  padding:5px 28px 5px 9px;
  font-size:12px;
}

.campaign-return-chat-btn{
  display:none;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:40px;
  padding:8px 13px;
  border:none;
  border-radius:999px;
  cursor:pointer;
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
  color:#ffffff;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(5,150,105,.20);
}

body.campaign-landing-active.campaign-chat-started .campaign-return-chat-btn{
  display:inline-flex;
}

.campaign-return-chat-btn:active{
  transform:translateY(1px);
}

.campaign-i18n{
  display:none;
}

body.campaign-lang-en .campaign-i18n-en{
  display:block;
}

body.campaign-lang-es .campaign-i18n-es{
  display:block;
}

body.campaign-lang-en .campaign-i18n-inline-en{
  display:inline;
}

body.campaign-lang-es .campaign-i18n-inline-es{
  display:inline;
}

.campaign-title{
  margin:0;
  color:#0f172a;
  font-size:clamp(34px,8vw,58px);
  line-height:.95;
  letter-spacing:-1.8px;
  font-weight:950;
}

.campaign-title span{
  color:#16a34a;
}

.campaign-title-es{
  margin:10px 0 0;
  color:#0f172a;
  font-size:clamp(26px,5vw,38px);
  line-height:1.02;
  letter-spacing:-1px;
  font-weight:900;
}

.campaign-title-es span{
  color:#16a34a;
}

.campaign-subtitle{
  margin:16px 0 0;
  color:#334155;
  font-size:18px;
  line-height:1.45;
  max-width:720px;
}

.campaign-subtitle-es{
  margin-top:10px;
  color:#475569;
  font-size:16px;
}

.campaign-hero-media{
  margin:24px 0 0;
}

.campaign-hero-media-title{
  margin:0 0 10px;
  color:#0f172a;
  font-size:18px;
  line-height:1.2;
  font-weight:950;
}

.campaign-hero-media-frame{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border-radius:24px;
  background:#0f172a;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 14px 32px rgba(15,23,42,.12);
}

.campaign-hero-media-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

.campaign-hero-media-caption{
  margin:11px 2px 0;
  color:#475569;
  font-size:14px;
  line-height:1.45;
}

.campaign-hero-media-fallback{
  display:inline-flex;
  margin-top:9px;
  color:#047857;
  font-size:13px;
  font-weight:850;
  text-decoration:none;
}

.campaign-hero-media-fallback:hover{
  text-decoration:underline;
}

.campaign-cta-title{
  margin:26px 0 12px;
  color:#0f172a;
  font-size:clamp(24px,4vw,34px);
  line-height:1.05;
  letter-spacing:-.7px;
  font-weight:950;
  text-align:left;
}

.campaign-local-spotlight{
  margin-top:24px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  align-items:stretch;
}

.campaign-local-card,
.campaign-start-card{
  position:relative;
  overflow:hidden;

  border-radius:26px;
  padding:22px 20px;

  background:#ffffff;
  color:#0f172a;
  border:1.5px solid rgba(15,23,42,.14);

  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 8px 20px rgba(15,23,42,.05);

  transition:
    transform .12s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    background .18s ease;
}

.campaign-local-card::before,
.campaign-start-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(22,163,74,.025), rgba(255,255,255,0));
}

.campaign-local-card:hover,
.campaign-start-card:hover{
  transform:translateY(-1px);
  background:#ffffff;
  border-color:rgba(22,163,74,.26);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 10px 24px rgba(15,23,42,.07);
}

/* Estas tarjetas son informativas, no CTA:
   fondo blanco para no competir con los botones principales */
.campaign-local-spotlight > div:nth-child(1),
.campaign-local-spotlight > div:nth-child(2),
.campaign-local-spotlight > div:nth-child(3),
.campaign-local-spotlight > div:nth-child(4){
  background:#ffffff;
}

/* Contenido por encima del brillo */
.campaign-local-card strong,
.campaign-local-card span,
.campaign-start-card strong,
.campaign-start-card span{
  position:relative;
  z-index:1;
}

.campaign-local-card strong,
.campaign-start-card strong{
  display:block;
  font-size:22px;
  font-weight:950;
  line-height:1.08;
  margin-bottom:9px;
  letter-spacing:-.2px;
}

.campaign-local-card span,
.campaign-start-card span{
  display:block;
  font-size:14.4px;
  line-height:1.42;
  opacity:.97;
}

/* Mantiene un solo idioma visible dentro de las tarjetas */
.campaign-local-card .campaign-i18n,
.campaign-start-card .campaign-i18n{
  display:none;
}

body.campaign-lang-en .campaign-local-card .campaign-i18n-en,
body.campaign-lang-en .campaign-start-card .campaign-i18n-en{
  display:block;
}

body.campaign-lang-es .campaign-local-card .campaign-i18n-es,
body.campaign-lang-es .campaign-start-card .campaign-i18n-es{
  display:block;
}

.campaign-benefits{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:20px 0 0;
}

.campaign-benefit{
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.06);
  border-radius:18px;
  padding:14px;
}

.campaign-benefit strong{
  display:block;
  color:#111827;
  font-size:14px;
  margin-bottom:4px;
}

.campaign-benefit span{
  display:block;
  color:#64748b;
  font-size:13px;
  line-height:1.32;
}

.campaign-actions{
  margin-top:22px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
}

.campaign-option{
  position:relative;
  width:100%;
  min-height:66px;
  border:none;
  cursor:pointer;
  text-align:left;

  color:#ffffff;

  border-radius:20px;
  padding:16px 46px 16px 17px;

  font-size:14.5px;
  font-weight:900;
  line-height:1.16;

  border:1px solid rgba(255,255,255,.34);

  box-shadow:
    0 1px 0 rgba(255,255,255,.35) inset,
    0 12px 28px rgba(15,23,42,.16);

  text-shadow:0 1px 1px rgba(15,23,42,.18);

  transition:
    transform .08s ease,
    filter .16s ease,
    box-shadow .16s ease;
}

/* No sé por dónde empezar */
.campaign-option:nth-child(1){
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
}

/* Necesito más energía */
.campaign-option:nth-child(2){
  background:linear-gradient(135deg,#06b6d4 0%,#2563eb 100%);
}

/* Campaign option 3 */
.campaign-option:nth-child(3){
  background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);
}

/* Campaign option 4 */
.campaign-option:nth-child(4){
  background:linear-gradient(135deg,#f59e0b 0%,#f97316 100%);
}

/* Campaign option 5 */
.campaign-option:nth-child(5){
  background:linear-gradient(135deg,#14b8a6 0%,#0f766e 100%);
}

/* Campaign option 6 */
.campaign-option:nth-child(6){
  background:linear-gradient(135deg,#0ea5e9 0%,#1d4ed8 100%);
}

/* Campaign option 7 */
.campaign-option:nth-child(7){
  background:linear-gradient(135deg,#84cc16 0%,#15803d 100%);
}

/* Campaign option 8 */
.campaign-option:nth-child(8){
  background:linear-gradient(135deg,#ec4899 0%,#be185d 100%);
}

/* Campaign option 9 */
.campaign-option:nth-child(9){
  background:linear-gradient(135deg,#6366f1 0%,#4338ca 100%);
}

/* Campaign option 10 */
.campaign-option:nth-child(10){
  background:linear-gradient(135deg,#111827 0%,#374151 100%);
}





/* Campaign option 6 */
.campaign-option:nth-child(6){
  background:linear-gradient(135deg,#0ea5e9 0%,#1d4ed8 100%);
}

/* Campaign option 7 */
.campaign-option:nth-child(7){
  background:linear-gradient(135deg,#84cc16 0%,#15803d 100%);
}

/* Campaign option 8 */
.campaign-option:nth-child(8){
  background:linear-gradient(135deg,#ec4899 0%,#be185d 100%);
}

/* Campaign option 9 */
.campaign-option:nth-child(9){
  background:linear-gradient(135deg,#6366f1 0%,#4338ca 100%);
}

/* Campaign option 10 */
.campaign-option:nth-child(10){
  background:linear-gradient(135deg,#111827 0%,#374151 100%);
}

.campaign-option.campaign-option-external{
  background:linear-gradient(135deg,#0f172a 0%,#334155 100%);
}

.campaign-option::after{
  content:"›";
  position:absolute;
  right:17px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(255,255,255,.92);
  font-size:27px;
  font-weight:950;
  line-height:1;
  text-shadow:0 1px 2px rgba(15,23,42,.22);
}

.campaign-option:hover{
  filter:saturate(1.08) brightness(1.03);
  box-shadow:
    0 1px 0 rgba(255,255,255,.38) inset,
    0 15px 32px rgba(15,23,42,.20);
}

.campaign-option:active{
  transform:translateY(1px) scale(.99);
}

.campaign-note{
  margin:14px 4px 0;
  color:#64748b;
  font-size:12px;
  line-height:1.35;
}

@media (max-width:720px){
  .campaign-hero{
    padding:24px 18px 20px;
    border-radius:26px;
  }

  .campaign-local-spotlight{
    grid-template-columns:1fr;
  }

  .campaign-benefits{
    grid-template-columns:1fr;
  }

  .campaign-actions{
    grid-template-columns:1fr;
    gap:12px;
  }

.campaign-kicker{
  width:100%;
  justify-content:center;
}

.campaign-kicker-main,
.campaign-kicker-brand{
  display:none;
}

.campaign-kicker-sub{
  width:100%;
  text-align:center;
  padding:0;
}

  .campaign-option{
    min-height:66px;
    font-size:16px;
    padding:18px 46px 18px 18px;
    border-radius:22px;
  }
}


/* =========================
   CAMPAIGN PUBLIC PROGRAMS
========================= */
.campaign-programs{margin-top:26px}
.campaign-programs-head{margin-bottom:14px}
.campaign-programs-title{margin:0;color:#0f172a;font-size:clamp(24px,4vw,34px);line-height:1.05;font-weight:950;letter-spacing:-.7px}
.campaign-programs-intro{margin:8px 0 0;color:#475569;font-size:15px;line-height:1.45;max-width:760px}
.campaign-programs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.campaign-program-card{display:flex;flex-direction:column;min-height:230px;padding:20px;border-radius:26px;background:#fff;border:1px solid rgba(15,23,42,.10);box-shadow:0 10px 26px rgba(15,23,42,.07)}
.campaign-program-card[data-category="location"]{background:linear-gradient(180deg,#f0fdf4 0%,#fff 100%)}
.campaign-program-card[data-category="shop"]{background:linear-gradient(180deg,#eff6ff 0%,#fff 100%)}
.campaign-program-card[data-category="opportunity"]{background:linear-gradient(180deg,#fff7ed 0%,#fff 100%)}
.campaign-program-card[data-category="promotion"]{background:linear-gradient(180deg,#fdf2f8 0%,#fff 100%)}
.campaign-program-icon{width:44px;height:44px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(15,23,42,.08);font-size:23px;margin-bottom:13px}
.campaign-program-card h3{margin:0;color:#0f172a;font-size:20px;line-height:1.14;font-weight:950}
.campaign-program-card p{margin:9px 0 0;color:#475569;font-size:14px;line-height:1.45}
.campaign-program-terms{font-size:12px!important;color:#64748b!important}
.campaign-program-btn{margin-top:auto;width:100%;min-height:48px;border:0;border-radius:17px;padding:12px 14px;color:#fff;font:inherit;font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 9px 20px rgba(15,23,42,.14)}
.campaign-program-btn{background:linear-gradient(135deg,#64748b,#334155)}
.campaign-program-card[data-category="location"] .campaign-program-btn{background:linear-gradient(135deg,#22c55e,#047857)}
.campaign-program-card[data-category="shop"] .campaign-program-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.campaign-program-card[data-category="opportunity"] .campaign-program-btn{background:linear-gradient(135deg,#f59e0b,#ea580c)}
.campaign-program-card[data-category="promotion"] .campaign-program-btn{background:linear-gradient(135deg,#ec4899,#be185d)}
.campaign-program-btn:active{transform:translateY(1px)}
@media(max-width:720px){.campaign-programs-grid{grid-template-columns:1fr}.campaign-program-card{min-height:0}.campaign-program-btn{margin-top:16px}}


/* Landing-OFF direct entry first-visit benefit */
.campaign-direct-entry-benefit{
  display:none;
  width:min(calc(100% - 24px),720px);
  margin:14px auto 0;
  padding:12px 14px;
  border:1px solid rgba(16,185,129,.24);
  border-radius:18px;
  background:linear-gradient(
    135deg,
    rgba(236,253,245,.98),
    rgba(240,253,250,.98)
  );
  box-shadow:0 8px 20px rgba(5,150,105,.08);
  align-items:center;
  gap:12px;
}

body.campaign-chat-active
.campaign-direct-entry-benefit:not([hidden]){
  display:flex;
}

body.campaign-landing-active
.campaign-direct-entry-benefit{
  display:none!important;
}

.campaign-direct-entry-benefit-copy{
  flex:1 1 auto;
  min-width:0;
  color:#047857;
  font-size:13px;
  font-weight:900;
  line-height:1.35;
}

.campaign-direct-entry-benefit
.campaign-referral-guest-action{
  flex:0 0 auto;
  width:auto;
  min-height:38px;
  margin-top:0;
  padding:9px 13px;
  white-space:nowrap;
}

@media(max-width:640px){
  .campaign-direct-entry-benefit{
    align-items:stretch;
    flex-direction:column;
  }

  .campaign-direct-entry-benefit
  .campaign-referral-guest-action{
    width:100%;
  }
}

/* Campaign Client Discovery: visual layer only, not a second Profile. */
.campaign-client-home{
  /* Body-level sibling of the chat viewport: it must never be clipped by it. */
  position:fixed;
  inset:0;
  z-index:9000;
  display:none;
  height:100vh;
  height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
  padding:calc(14px + var(--safe-top,0px)) max(14px,env(safe-area-inset-left)) calc(22px + var(--safe-bottom,0px)) max(14px,env(safe-area-inset-right));
  background:linear-gradient(180deg,#f7fbfa 0%,#f8fafc 56%,#f3f7f5 100%);
  color:#0f172a;
}
body.campaign-client-home-open .campaign-client-home:not([hidden]){display:block}
body.campaign-client-home-open .topbar,
body.campaign-client-home-open .footer{display:none!important}
body.campaign-client-home-open .pana-live-float{display:none!important}
.campaign-client-home-shell{
  width:min(100%,780px);
  margin:0 auto;
  display:grid;
  gap:22px;
}
.campaign-client-home-header{
  display:flex;
  gap:16px;
  justify-content:space-between;
  align-items:center;
  min-height:48px;
}
.campaign-client-home-brand{display:flex;flex-direction:column;gap:1px;min-width:0}
.campaign-client-home-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.campaign-client-home-language{
  min-height:40px;display:inline-flex;align-items:center;gap:5px;
  padding:0 8px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;
}
.campaign-client-home-language svg{width:15px;height:15px;color:#64748b;flex:0 0 auto}
.campaign-client-home-language select{
  max-width:86px;min-width:55px;height:38px;border:0;background:transparent;
  color:#475569;font-family:inherit;font-size:12px;font-weight:700;line-height:1.2;cursor:pointer;
}
.campaign-client-home-logo{font-size:26px;line-height:1.05;letter-spacing:-.04em;font-weight:950;color:#138352}
.campaign-client-home-business{font-size:13px;line-height:1.4;color:#64748b;overflow-wrap:anywhere}
.campaign-client-home-rewards{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  flex:0 0 auto;min-height:44px;border:1px solid #b6ead0;border-radius:999px;
  padding:10px 14px;background:#eaf9f1;color:#067647;
  font-family:inherit;font-size:13px;font-weight:800;line-height:1.2;cursor:pointer;
}
.campaign-client-home-rewards[hidden],.campaign-client-home-offer[hidden]{display:none!important}
.campaign-client-home-rewards svg,.campaign-client-home-talk svg,.campaign-client-home-offer svg{width:18px;height:18px}
/* Published Landing ON is a compact, optional focus within the same Client Home.
   Reuses the canonical Landing renderers/actions; never redefines sales authority. */
.campaign-client-home-landing{
  padding:clamp(16px,3vw,24px);
  border:1px solid #d8eae2;
  border-radius:22px;
  background:linear-gradient(145deg,#effaf5 0%,#fff 90%);
  display:grid;gap:12px;
}
.campaign-client-home-landing[hidden]{display:none!important}
.campaign-client-home-landing-top{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;color:#087e5b;
}
.campaign-client-home-landing-eyebrow{
  font-size:11px;font-weight:850;letter-spacing:.07em;
  text-transform:uppercase;
}
.campaign-client-home-landing-top svg{width:19px;height:19px}
.campaign-client-home-landing-heading .campaign-title{
  margin:0;font-size:clamp(21px,3.6vw,28px);
  letter-spacing:-.035em;line-height:1.22;color:#102134;
}
.campaign-client-home-landing-heading .campaign-title span{color:#0b8e64}
.campaign-client-home-landing-intro .campaign-subtitle{
  margin:0;color:#506779;font-size:14px;line-height:1.45;
}
.campaign-client-home-landing-options .campaign-actions{
  display:grid;grid-template-columns:1fr;gap:8px;
  padding:0;margin:0;
}
.campaign-client-home-landing .campaign-option{
  width:100%;min-height:44px;
  padding:10px 34px 10px 14px;
  text-align:left;display:flex;align-items:center;
  background:#fff!important;color:#173e32!important;
  border:1px solid #cddfd8!important;
  border-radius:13px!important;
  font-family:inherit;font-size:13px;font-weight:800;line-height:1.35;
  box-shadow:none!important;transform:none!important;
}
.campaign-client-home-landing .campaign-option::after{
  color:#47695a;text-shadow:none;font-size:20px;right:11px;
}
.campaign-client-home-landing .campaign-option:hover,
.campaign-client-home-landing .campaign-option:focus-visible{
  border-color:#77b89b!important;background:#f6fffa!important;
}
.campaign-client-home-landing-more summary,
.campaign-client-home-landing-details summary{
  cursor:pointer;min-height:36px;padding:7px 2px;
  color:#167455;font-size:13px;line-height:1.45;
  font-weight:800;outline-offset:3px;
}
.campaign-client-home-landing-more[hidden],
.campaign-client-home-landing-details[hidden]{display:none!important}
.campaign-client-home-landing-more[open] .campaign-client-home-landing-options{
  margin-top:9px;
}
.campaign-client-home-landing-details[open] #campaignClientHomeLandingDetailContent{
  display:grid;gap:12px;margin-top:10px;border-top:1px solid #dcebe4;padding-top:14px;
}
.campaign-client-home-landing-details .campaign-title{
  font-size:17px;line-height:1.3;letter-spacing:0;
}
.campaign-client-home-landing-details .campaign-subtitle,
.campaign-client-home-landing-details .campaign-note{
  font-size:13px;line-height:1.5;color:#546577;
  margin:0;
}
.campaign-client-home-landing-details .campaign-programs-grid,
.campaign-client-home-landing-details .campaign-local-spotlight{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;
}
.campaign-client-home-landing-details .campaign-program-card,
.campaign-client-home-landing-details .campaign-local-card,
.campaign-client-home-landing-details .campaign-start-card{
  padding:13px;border:1px solid #e1eae6;border-radius:15px;
  background:#fff;box-shadow:none;
}
.campaign-client-home-landing-details .campaign-program-btn{
  background:#eaf8f1;color:#096d50;border-radius:11px;
  box-shadow:none;
}
@media(max-width:560px){
  .campaign-client-home-landing{padding:13px;gap:8px;border-radius:19px}
  .campaign-client-home-landing-heading .campaign-title{font-size:20px}
  .campaign-client-home-landing-intro .campaign-subtitle{font-size:12px}
  .campaign-client-home-landing .campaign-option{min-height:41px;font-size:12px}
}
.campaign-client-home-hero{
  display:flex;align-items:center;gap:26px;
  border:1px solid #e0e8e6;border-radius:26px;
  padding:clamp(18px,4vw,32px);
  background:#fff;box-shadow:0 12px 34px rgba(15,23,42,.055);
}
.campaign-client-home-orb{
  flex:0 0 auto;width:clamp(92px,21vw,152px);height:clamp(92px,21vw,152px);
  display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;
  background:radial-gradient(circle at 32% 26%,#d1f6ff 0,#8ac6ff 22%,#518fe8 58%,#385aa4 100%);
  box-shadow:0 13px 30px rgba(49,116,209,.17),inset 0 2px 12px rgba(255,255,255,.45);
  color:#fff;
}
.campaign-client-home-orb span{font-size:clamp(16px,3vw,23px);font-weight:950;letter-spacing:.1em}
.campaign-client-home-hero-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.campaign-client-home-hero-copy h1{font-size:clamp(24px,4vw,34px);font-weight:950;letter-spacing:-.04em;line-height:1.14;margin:0}
.campaign-client-home-hero-copy p{font-size:15px;line-height:1.5;color:#64748b;margin:0;max-width:440px}
.campaign-client-home-talk{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;margin-top:6px;border:0;border-radius:15px;padding:10px 18px;
  background:#147c62;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:800;line-height:1.2;
}
.campaign-client-home-secondary{
  display:flex;align-items:center;flex-wrap:wrap;
  justify-content:space-between;gap:6px 18px;width:100%;
}
.campaign-client-home-text{
  border:0;background:transparent;color:#475569;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:700;line-height:1.4;text-decoration:underline;text-underline-offset:3px;
  padding:3px 0;
}
.campaign-client-home-install{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  border:0;background:transparent;color:#08704e;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:750;line-height:1.4;
  padding:3px 0;
}
.campaign-client-home-install svg{width:16px;height:16px;flex:0 0 auto}
.campaign-client-home-install[hidden]{display:none!important}

/* Landing ON has one visual focus: the published offer, then a compact PANA
   conversation doorway. Explore cards stay available through View everything. */
.campaign-client-home-view-all-inline{
  border:0;background:transparent;color:#14644b;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:800;line-height:1.35;
  padding:5px 0;text-decoration:underline;text-underline-offset:3px;
}
.campaign-client-home-view-all-inline[hidden]{display:none!important}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-shell{
  gap:14px;
}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-hero{
  display:grid;grid-template-columns:60px minmax(0,1fr);
  gap:8px 12px;padding:14px 16px;border-radius:20px;
}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-orb{
  grid-column:1;grid-row:1;width:60px;height:60px;align-self:center;
}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-orb span{
  font-size:12px;
}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-hero-copy{
  display:contents;
}
body.campaign-client-home-open.campaign-client-landing-focus #campaignClientHomeTitle,
body.campaign-client-home-open.campaign-client-landing-focus #campaignClientHomeIntro,
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-explore-head,
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-categories{
  display:none!important;
}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-talk{
  grid-column:2;grid-row:1;width:100%;min-height:48px;
  padding:10px 12px;margin:0;
}
body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-secondary{
  grid-column:1 / -1;grid-row:2;display:flex;
  justify-content:space-between;align-items:center;gap:7px 15px;
}
@media(max-width:560px){
  body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-shell{
    gap:12px;
  }
  body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-hero{
    grid-template-columns:56px minmax(0,1fr);padding:12px;
  }
  body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-orb{
    width:56px;height:56px;
  }
  body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-talk{
    min-height:46px;
  }
  body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-secondary{
    justify-content:center;gap:4px 14px;
  }
  body.campaign-client-home-open.campaign-client-landing-focus .campaign-client-home-secondary button{
    font-size:12px;min-height:30px;
  }
}
.campaign-client-home-offer{
  display:grid;gap:9px;padding:18px 20px;
  border:1px solid #b9e8d3;border-radius:22px;background:#effbf5;
}
.campaign-client-home-offer-head{display:flex;align-items:center;gap:9px;color:#067647}
.campaign-client-home-offer-head strong{font-size:15px;font-weight:900}
.campaign-client-home-offer p{font-size:15px;line-height:1.45;margin:0;color:#175c44}
.campaign-client-home-offer button{
  width:max-content;max-width:100%;min-height:43px;border:0;border-radius:12px;
  padding:10px 18px;background:#0f8c60;color:#fff;font-family:inherit;font-size:13px;font-weight:800;line-height:1.2;cursor:pointer;
}
.campaign-client-home-benefits{display:grid;gap:9px}
.campaign-client-home-benefits[hidden]{display:none!important}
.campaign-client-home-benefits-title{
  color:#315d4c;font-size:12px;line-height:1.3;font-weight:800;
  letter-spacing:.02em;
}
.campaign-client-home-benefits-items{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
}
.campaign-client-home-benefit{
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  min-width:0;min-height:94px;padding:12px 13px;
  background:#fff;color:#1e3742;
  border:1px solid #dcebe4;border-radius:16px;
  font:inherit;text-align:left;cursor:pointer;
  box-shadow:0 4px 14px rgba(15,23,42,.025);
}
.campaign-client-home-benefit:hover,
.campaign-client-home-benefit:focus-visible{
  border-color:#8abda6;background:#f9fffc;
}
.campaign-client-home-benefit-kind{
  font-size:10px;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:#187459;
}
.campaign-client-home-benefit-reward{
  font-size:13px;font-weight:850;line-height:1.24;
  overflow-wrap:anywhere;
}
.campaign-client-home-benefit-condition{
  font-size:11px;line-height:1.35;color:#5e6d78;
  overflow-wrap:anywhere;
}
@keyframes campaignClientHomeOrbBreath{
  0%,100%{transform:scale(1)}
  45%{transform:scale(1.035)}
}
@keyframes campaignClientHomeVoiceNudge{
  0%,25%,100%{transform:scale(1)}
  45%,70%{transform:scale(1.13)}
}
body.campaign-client-home-open .campaign-client-home-orb{
  animation:campaignClientHomeOrbBreath 3.1s ease-in-out 1;
}
body.campaign-client-home-open .campaign-client-home-talk svg{
  transform-origin:center;
  animation:campaignClientHomeVoiceNudge 2.5s ease-in-out 1;
}
@media(max-width:360px){
  .campaign-client-home-benefits-items{grid-template-columns:1fr}
  .campaign-client-home-benefit{min-height:70px}
}
@media(prefers-reduced-motion:reduce){
  body.campaign-client-home-open .campaign-client-home-orb,
  body.campaign-client-home-open .campaign-client-home-talk svg{
    animation:none!important;
  }
}
.campaign-client-home-explore-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.campaign-client-home-explore-head h2{font-size:20px;line-height:1.3;letter-spacing:-.03em;margin:0;font-weight:900}
.campaign-client-home-explore-head button{
  border:0;background:transparent;color:#14644b;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:800;line-height:1.3;text-align:right;
}
.campaign-client-home-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.campaign-client-home-category{
  display:flex;flex-direction:column;align-items:flex-start;gap:9px;
  min-height:122px;padding:17px 18px;border:1px solid #e1e6e5;
  border-radius:20px;background:#fff;color:#152235;text-align:left;
  box-shadow:0 5px 18px rgba(15,23,42,.025);font:inherit;cursor:pointer;
}
.campaign-client-home-category svg{width:24px;height:24px;color:#64748b}
.campaign-client-home-category strong{font-size:15px;font-weight:850;line-height:1.2}
.campaign-client-home-category span{font-size:12px;line-height:1.45;color:#64748b}
.campaign-client-home-category:hover,.campaign-client-home-category:focus-visible{
  border-color:#86c8aa;box-shadow:0 8px 24px rgba(16,132,92,.1);
}
.campaign-client-home button:focus-visible{outline:3px solid #0f9874;outline-offset:3px}
body.campaign-client-ux-enabled .campaign-chat-action:not([hidden]){
  background:#f8fafc!important;color:#334155!important;
  border:1px solid #e2e8f0!important;box-shadow:none!important;
  font-weight:750;
}
body.campaign-client-ux-enabled .campaign-chat-action.primary:not([hidden]){
  background:#eaf8f1!important;color:#08704e!important;border-color:#b7e6ce!important;
}
body.campaign-client-ux-enabled .campaign-client-home-return:not([hidden]){
  display:inline-flex;background:#eaf8f1!important;color:#08704e!important;
  border-color:#b7e6ce!important;
}
.campaign-client-home-return[hidden]{display:none!important}
.campaign-client-home-return svg{width:16px;height:16px}
@media(max-width:560px){
  .campaign-client-home{
    padding:calc(10px + var(--safe-top,0px)) 12px calc(22px + var(--safe-bottom,0px));
  }
  .campaign-client-home-shell{gap:12px}
  .campaign-client-home-header{gap:8px;min-height:42px}
  .campaign-client-home-head-actions{gap:6px}
  .campaign-client-home-logo{font-size:23px}
  .campaign-client-home-business{font-size:12px}
  .campaign-client-home-language{padding:0 5px;gap:3px}
  .campaign-client-home-language select{min-width:44px;max-width:62px;font-size:11px}
  .campaign-client-home-rewards{padding:9px 10px;font-size:12px;min-height:40px}
  .campaign-client-home-hero{
    display:grid;
    grid-template-columns:68px minmax(0,1fr);
    gap:9px 12px;
    padding:14px;
    border-radius:20px;
  }
  .campaign-client-home-orb{
    grid-column:1;grid-row:1 / span 2;
    width:68px;height:68px;align-self:center;
  }
  .campaign-client-home-orb span{font-size:13px}
  .campaign-client-home-hero-copy{display:contents}
  .campaign-client-home-hero-copy h1{
    grid-column:2;grid-row:1;align-self:end;
    font-size:22px;
  }
  .campaign-client-home-hero-copy p{
    grid-column:2;grid-row:2;align-self:start;
    font-size:13px;line-height:1.4;
  }
  .campaign-client-home-talk{
    grid-column:1 / -1;grid-row:3;
    width:100%;min-height:42px;margin:1px 0 0;
  }
  .campaign-client-home-secondary{
    grid-column:1 / -1;grid-row:4;
    justify-content:center;gap:8px 17px;
  }
  .campaign-client-home-text,
  .campaign-client-home-install{font-size:12px;text-align:center}
  .campaign-client-home-offer{gap:7px;padding:12px 14px;border-radius:18px}
  .campaign-client-home-offer-head strong{font-size:14px}
  .campaign-client-home-offer p{font-size:13px;line-height:1.35}
  .campaign-client-home-offer button{min-height:40px}
  .campaign-client-home-explore-head h2{font-size:18px}
  .campaign-client-home-explore-head button{font-size:12px}
  .campaign-client-home-categories{gap:9px}
  .campaign-client-home-category{
    min-height:102px;padding:11px 12px;gap:5px;border-radius:16px;
  }
  .campaign-client-home-category svg{width:20px;height:20px}
  .campaign-client-home-category strong{font-size:14px}
  .campaign-client-home-category span{font-size:11px;line-height:1.35}
}
@media(max-width:360px){
  .campaign-client-home-header{flex-wrap:wrap}
  .campaign-client-home-head-actions{width:100%;justify-content:space-between}
}
@media(max-width:560px) and (max-height:690px){
  .campaign-client-home-shell{gap:10px}
  .campaign-client-home-hero{padding:12px}
  .campaign-client-home-category{min-height:92px}
}
@media(prefers-reduced-motion:reduce){.campaign-client-home button{transition:none!important}}

/* PANA Discovery Home — profile-driven visual discovery before chat */
.campaign-discovery-home{
  display:none;
  padding:18px 12px 10px;
  background:linear-gradient(180deg,rgba(248,250,252,.96),rgba(248,250,252,.72));
}
body.campaign-chat-active .campaign-discovery-home:not([hidden]){display:block}
body.campaign-landing-active .campaign-discovery-home{display:none!important}
.campaign-discovery-track{
  display:flex;
  flex-direction:column;
  gap:14px;
  height:clamp(430px,58dvh,560px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  scrollbar-width:none;
  touch-action:pan-y;
  overflow-anchor:none;
  padding:2px 4px 12px;
}
.campaign-discovery-track::-webkit-scrollbar{display:none}
.campaign-discovery-card{
  display:flex;
  flex:0 0 calc(100% - 56px);
  flex-direction:column;
  width:min(100%,680px);
  min-height:0;
  margin-inline:auto;
  border-radius:26px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(15,23,42,.09);
  box-shadow:0 14px 32px rgba(15,23,42,.10);
  cursor:pointer;
  outline:none;
}
.campaign-discovery-card:focus-visible{box-shadow:0 0 0 3px rgba(22,163,74,.20),0 14px 32px rgba(15,23,42,.10)}
.campaign-discovery-visual{
  min-height:126px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:linear-gradient(135deg,#ecfeff,#eef2ff);
}
.campaign-discovery-card[data-category="promotion"] .campaign-discovery-visual{background:linear-gradient(135deg,#fff1f2,#fdf2f8)}
.campaign-discovery-card[data-category="opportunity"] .campaign-discovery-visual{background:linear-gradient(135deg,#fff7ed,#fef3c7)}
.campaign-discovery-card[data-category="menu"] .campaign-discovery-visual{background:linear-gradient(135deg,#ecfeff,#f0fdf4)}
.campaign-discovery-card[data-category="shop"] .campaign-discovery-visual{background:linear-gradient(135deg,#eff6ff,#ecfeff)}
.campaign-discovery-card[data-category="coaching"] .campaign-discovery-visual,
.campaign-discovery-card[data-category="nwe_offer"] .campaign-discovery-visual{background:linear-gradient(135deg,#ecfdf5,#ecfeff)}
.campaign-discovery-visual img{width:100%;height:140px;object-fit:cover;display:block}
.campaign-discovery-visual{position:relative;isolation:isolate}
.campaign-discovery-visual[data-motion="subtle-motion"]::after{
  content:"";
  position:absolute;
  inset:-35% auto -35% -42%;
  width:34%;
  z-index:5;
  pointer-events:none;
  transform:skewX(-16deg) translateX(-220%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);
  animation:campaignDiscoverySheen 6.8s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-gallery{position:absolute;inset:0;background:#f8fafc}
.campaign-discovery-gallery img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  transform:scale(1.02);
  animation:campaignDiscoveryGalleryFrame 12s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-gallery img:nth-child(1){animation-delay:0s}
.campaign-discovery-gallery img:nth-child(2){animation-delay:4s}
.campaign-discovery-gallery img:nth-child(3){animation-delay:8s}
.campaign-discovery-network{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 50%,rgba(16,185,129,.20),transparent 28%),
    linear-gradient(135deg,#ecfdf5,#eff6ff);
}
.campaign-discovery-network::before{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border:1px solid rgba(16,185,129,.22);
  border-radius:50%;
}
.campaign-discovery-network-center,
.campaign-discovery-network-node{
  position:absolute;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(15,23,42,.14);
}
.campaign-discovery-network-center{
  left:50%;
  top:50%;
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  background:linear-gradient(135deg,#16a34a,#047857);
  color:#fff;
  font-size:30px;
  animation:campaignDiscoveryNetworkCenter 4.8s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-network-node{
  width:28px;
  height:28px;
  background:#fff;
  border:4px solid rgba(34,197,94,.36);
  animation:campaignDiscoveryNetworkNode 4.8s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-network-node.one{left:18%;top:25%;animation-delay:-.8s}
.campaign-discovery-network-node.two{right:16%;top:22%;animation-delay:-2.1s}
.campaign-discovery-network-node.three{right:23%;bottom:16%;animation-delay:-3.3s}
.campaign-discovery-progress{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12%;
  background:
    radial-gradient(circle at 82% 22%,rgba(59,130,246,.18),transparent 30%),
    linear-gradient(135deg,#eff6ff,#ecfdf5);
}
.campaign-discovery-progress-line{
  position:absolute;
  left:14%;
  right:14%;
  top:50%;
  height:4px;
  transform:translateY(-50%);
  border-radius:999px;
  background:linear-gradient(90deg,rgba(14,165,233,.25),rgba(34,197,94,.45));
}
.campaign-discovery-progress-step{
  position:relative;
  z-index:2;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:3px solid rgba(255,255,255,.9);
  background:#cbd5e1;
  color:#fff;
  box-shadow:0 6px 14px rgba(15,23,42,.12);
  font-size:16px;
  animation:campaignDiscoveryProgressStep 6s ease-in-out infinite;
  animation-delay:calc(var(--discovery-step) * .65s);
  animation-play-state:paused;
}
.campaign-discovery-card.is-discovery-active .campaign-discovery-visual[data-motion="subtle-motion"]::after,
.campaign-discovery-card.is-discovery-active .campaign-discovery-gallery img,
.campaign-discovery-card.is-discovery-active .campaign-discovery-network-center,
.campaign-discovery-card.is-discovery-active .campaign-discovery-network-node,
.campaign-discovery-card.is-discovery-active .campaign-discovery-progress-step{
  animation-play-state:running;
}
@keyframes campaignDiscoverySheen{
  0%,58%{transform:skewX(-16deg) translateX(-220%);opacity:0}
  64%{opacity:.7}
  80%{transform:skewX(-16deg) translateX(520%);opacity:0}
  100%{transform:skewX(-16deg) translateX(520%);opacity:0}
}
@keyframes campaignDiscoveryGalleryFrame{
  0%,28%{opacity:1;transform:scale(1.02)}
  34%,95%{opacity:0;transform:scale(1.07)}
  100%{opacity:1;transform:scale(1.02)}
}
@keyframes campaignDiscoveryNetworkCenter{
  0%,100%{transform:translate(-50%,-50%) scale(1);box-shadow:0 10px 24px rgba(15,23,42,.14)}
  50%{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 12px 28px rgba(5,150,105,.26)}
}
@keyframes campaignDiscoveryNetworkNode{
  0%,100%{transform:scale(.94);opacity:.62}
  50%{transform:scale(1.12);opacity:1}
}
@keyframes campaignDiscoveryProgressStep{
  0%,18%,100%{background:#cbd5e1;transform:scale(.92);box-shadow:0 6px 14px rgba(15,23,42,.10)}
  26%,42%{background:#16a34a;transform:scale(1.12);box-shadow:0 0 0 8px rgba(34,197,94,.12),0 8px 20px rgba(5,150,105,.24)}
  50%,92%{background:#94a3b8;transform:scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .campaign-discovery-visual[data-motion="subtle-motion"]::after,
  .campaign-discovery-gallery img,
  .campaign-discovery-network-center,
  .campaign-discovery-network-node,
  .campaign-discovery-progress-step{
    animation:none!important;
    transform:none;
  }
  .campaign-discovery-gallery img{opacity:0}
  .campaign-discovery-gallery img:first-child{opacity:1}
  .campaign-discovery-network-center{transform:translate(-50%,-50%)}
}
.campaign-discovery-icon{font-size:48px;line-height:1;filter:drop-shadow(0 7px 12px rgba(15,23,42,.12))}
.campaign-discovery-content{display:flex;flex:1;flex-direction:column;padding:18px}
.campaign-discovery-title{margin:0;color:#0f172a;font-size:20px;line-height:1.15;font-weight:950;letter-spacing:-.25px}
.campaign-discovery-body{
  margin:9px 0 0;
  color:#475569;
  font-size:14px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.campaign-discovery-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,42%);gap:9px;margin-top:auto;padding-top:16px}
.campaign-discovery-open,.campaign-discovery-ask{
  min-height:46px;
  border-radius:15px;
  padding:10px 13px;
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.campaign-discovery-open{border:0;color:#fff;background:linear-gradient(135deg,#16a34a,#047857);box-shadow:0 8px 18px rgba(5,150,105,.20)}
.campaign-discovery-ask{border:1px solid rgba(15,23,42,.12);background:#fff;color:#0f172a;white-space:normal;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.campaign-discovery-open:active,.campaign-discovery-ask:active{transform:translateY(1px)}
.campaign-discovery-bridge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding-top:2px}
.campaign-discovery-dots{display:flex;align-items:center;justify-content:center;gap:6px;min-height:20px}
.campaign-discovery-dot{width:5px;height:9px;border-radius:999px;background:#cbd5e1;transition:height .18s ease,background .18s ease}
.campaign-discovery-dot.is-active{height:18px;background:#16a34a}
.campaign-discovery-chat-jump{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:34px;
  padding:5px 12px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  box-shadow:0 5px 14px rgba(15,23,42,.07);
  color:#334155;
  font:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.campaign-discovery-chat-jump:hover{background:#fff;color:#0f172a;border-color:rgba(22,163,74,.22)}
.campaign-discovery-chat-jump:focus-visible{outline:2px solid rgba(22,163,74,.35);outline-offset:2px}
.campaign-discovery-chat-jump:active{transform:translateY(1px)}
.campaign-discovery-chat-jump-icon{font-size:14px;line-height:1}
.campaign-discovery-chat-jump-arrow{font-size:15px;line-height:1;transform:translateY(-1px)}
@media(max-width:520px){
  .campaign-discovery-home{padding:12px 10px 4px}
  .campaign-discovery-track{height:clamp(350px,46dvh,430px);gap:12px;padding:2px 3px 8px}
  .campaign-discovery-card{flex-basis:calc(100% - 92px);border-radius:22px}
  .campaign-discovery-visual{min-height:92px}
  .campaign-discovery-visual img{height:104px}
  .campaign-discovery-icon{font-size:40px}
  .campaign-discovery-content{padding:12px}
  .campaign-discovery-title{font-size:18px;line-height:1.12}
  .campaign-discovery-body{margin-top:6px;font-size:13px;line-height:1.35;-webkit-line-clamp:2}
  .campaign-discovery-actions{grid-template-columns:minmax(0,1fr) minmax(90px,40%);gap:7px;padding-top:9px}
  .campaign-discovery-open,.campaign-discovery-ask{min-height:38px;padding:7px 8px;border-radius:13px;font-size:12px}
  .campaign-discovery-bridge{gap:1px;padding-top:0}
  .campaign-discovery-chat-jump{min-height:30px;padding:4px 10px;font-size:11.5px}
}
@media(min-width:820px){
  .campaign-discovery-home{padding:22px max(18px,calc((100vw - 920px)/2)) 12px}
  .campaign-discovery-track{height:min(62dvh,620px)}
  .campaign-discovery-card{flex-basis:calc(100% - 72px)}
  .campaign-discovery-visual img{height:180px}
  .campaign-discovery-body{-webkit-line-clamp:4}
}


/* =========================
   CAMPAIGN DISCOVERY MOTION V2
   Premium visual balance + universal motion fallback
========================= */
.campaign-discovery-card{
  flex-basis:clamp(360px,calc(100% - 72px),500px);
}
.campaign-discovery-visual{
  flex:0 0 54%;
  min-height:0;
}
.campaign-discovery-visual img{
  height:100%;
}
.campaign-discovery-content{
  min-height:0;
  padding:14px 18px 16px;
}
.campaign-discovery-context{
  margin:0 0 6px;
  color:#047857;
  font-size:11px;
  line-height:1.2;
  font-weight:950;
  letter-spacing:.055em;
  text-transform:uppercase;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.campaign-discovery-body{
  margin-top:7px;
  -webkit-line-clamp:3;
}
.campaign-discovery-actions{
  padding-top:10px;
}
.campaign-discovery-hero,
.campaign-discovery-spotlight,
.campaign-discovery-ambient{
  position:absolute;
  inset:0;
  overflow:hidden;
}
.campaign-discovery-hero{
  background:#e2e8f0;
}
.campaign-discovery-hero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.035);
  animation:campaignDiscoveryHeroDrift 10s ease-in-out infinite alternate;
  animation-play-state:paused;
}
.campaign-discovery-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,.02),rgba(15,23,42,.10));
  pointer-events:none;
}
.campaign-discovery-spotlight{
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 45%,rgba(255,255,255,.98),rgba(236,253,245,.78) 42%,rgba(224,242,254,.88));
}
.campaign-discovery-spotlight-halo{
  position:absolute;
  width:58%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(34,197,94,.26),rgba(14,165,233,.08) 54%,transparent 72%);
  filter:blur(2px);
  animation:campaignDiscoverySpotlightHalo 5.5s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-spotlight-image{
  position:relative;
  z-index:2;
  width:74%!important;
  height:76%!important;
  object-fit:contain!important;
  filter:drop-shadow(0 18px 24px rgba(15,23,42,.18));
  animation:campaignDiscoverySpotlightFloat 5.5s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-ambient{
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 18% 28%,rgba(34,197,94,.20),transparent 25%),
    radial-gradient(circle at 82% 72%,rgba(14,165,233,.16),transparent 28%),
    linear-gradient(135deg,#ecfdf5,#eff6ff);
}
.campaign-discovery-ambient-icon{
  position:relative;
  z-index:2;
  width:82px;
  height:82px;
  display:grid;
  place-items:center;
  border-radius:28px;
  background:rgba(255,255,255,.88);
  box-shadow:0 18px 35px rgba(15,23,42,.13);
  font-size:40px;
  animation:campaignDiscoveryAmbientIcon 5.8s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-ambient-orb{
  position:absolute;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.82);
  box-shadow:0 8px 22px rgba(15,23,42,.08);
  animation:campaignDiscoveryAmbientOrb 7s ease-in-out infinite;
  animation-play-state:paused;
}
.campaign-discovery-ambient-orb.one{
  width:50px;
  height:50px;
  left:16%;
  top:20%;
  background:rgba(34,197,94,.18);
}
.campaign-discovery-ambient-orb.two{
  width:34px;
  height:34px;
  right:18%;
  top:26%;
  background:rgba(14,165,233,.16);
  animation-delay:-2.2s;
}
.campaign-discovery-ambient-orb.three{
  width:42px;
  height:42px;
  right:26%;
  bottom:15%;
  background:rgba(168,85,247,.12);
  animation-delay:-4.1s;
}
.campaign-discovery-motion-backdrop{
  position:absolute!important;
  inset:0;
  z-index:0;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  opacity:.28;
  filter:saturate(.9) contrast(.96);
}
.campaign-discovery-network::after,
.campaign-discovery-progress::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(236,253,245,.38),rgba(239,246,255,.58));
}
.campaign-discovery-network::before,
.campaign-discovery-network-center,
.campaign-discovery-network-node,
.campaign-discovery-progress-line,
.campaign-discovery-progress-step{
  z-index:2;
}
.campaign-discovery-card.is-discovery-active .campaign-discovery-hero img,
.campaign-discovery-card.is-discovery-active .campaign-discovery-spotlight-halo,
.campaign-discovery-card.is-discovery-active .campaign-discovery-spotlight-image,
.campaign-discovery-card.is-discovery-active .campaign-discovery-ambient-icon,
.campaign-discovery-card.is-discovery-active .campaign-discovery-ambient-orb{
  animation-play-state:running;
}
@keyframes campaignDiscoveryHeroDrift{
  0%{transform:scale(1.035) translate3d(-.8%,0,0)}
  100%{transform:scale(1.09) translate3d(.8%,-.6%,0)}
}
@keyframes campaignDiscoverySpotlightHalo{
  0%,100%{transform:scale(.94);opacity:.62}
  50%{transform:scale(1.08);opacity:1}
}
@keyframes campaignDiscoverySpotlightFloat{
  0%,100%{transform:translate3d(0,2px,0) scale(.98)}
  50%{transform:translate3d(0,-7px,0) scale(1.02)}
}
@keyframes campaignDiscoveryAmbientIcon{
  0%,100%{transform:translate3d(0,2px,0) rotate(-1deg)}
  50%{transform:translate3d(0,-6px,0) rotate(1deg)}
}
@keyframes campaignDiscoveryAmbientOrb{
  0%,100%{transform:translate3d(0,0,0) scale(.92);opacity:.54}
  50%{transform:translate3d(5px,-8px,0) scale(1.08);opacity:.9}
}
@media(prefers-reduced-motion:reduce){
  .campaign-discovery-hero img,
  .campaign-discovery-spotlight-halo,
  .campaign-discovery-spotlight-image,
  .campaign-discovery-ambient-icon,
  .campaign-discovery-ambient-orb{
    animation:none!important;
    transform:none!important;
  }
}
@media(max-width:520px){
  .campaign-discovery-card{
    flex-basis:clamp(310px,calc(100% - 86px),390px);
  }
  .campaign-discovery-visual{
    flex-basis:54%;
    min-height:0;
  }
  .campaign-discovery-visual img{
    height:100%;
  }
  .campaign-discovery-content{
    padding:11px 12px 12px;
  }
  .campaign-discovery-context{
    margin-bottom:4px;
    font-size:9.5px;
  }
  .campaign-discovery-title{
    font-size:18px;
  }
  .campaign-discovery-body{
    margin-top:5px;
    font-size:12.5px;
    line-height:1.32;
    -webkit-line-clamp:3;
  }
  .campaign-discovery-actions{
    gap:7px;
    padding-top:7px;
  }
}


/* =========================
   CAMPAIGN DISCOVERY LAYOUT BALANCE V3
   Controlled text-aware proportions; no runtime measurements.
========================= */
.campaign-discovery-card{
  flex-basis:clamp(390px,calc(100% - 56px),520px);
}
.campaign-discovery-content{
  overflow:hidden;
  flex:1 1 auto;
}
.campaign-discovery-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  flex:0 0 auto;
}
.campaign-discovery-body{
  min-height:0;
  flex:0 1 auto;
}
.campaign-discovery-actions{
  flex:0 0 auto;
  margin-top:auto;
}
.campaign-discovery-card[data-discovery-layout="visual-heavy"] .campaign-discovery-visual{
  flex-basis:46%;
}
.campaign-discovery-card[data-discovery-layout="balanced"] .campaign-discovery-visual{
  flex-basis:40%;
}
.campaign-discovery-card[data-discovery-layout="info-guided"] .campaign-discovery-visual{
  flex-basis:32%;
}
.campaign-discovery-card[data-discovery-layout="visual-heavy"] .campaign-discovery-body{
  -webkit-line-clamp:3;
}
.campaign-discovery-card[data-discovery-layout="balanced"] .campaign-discovery-body{
  -webkit-line-clamp:3;
}
.campaign-discovery-card[data-discovery-layout="info-guided"] .campaign-discovery-body{
  -webkit-line-clamp:4;
}
@media(max-width:520px){
  .campaign-discovery-card{
    flex-basis:clamp(320px,calc(100% - 56px),410px);
  }
  .campaign-discovery-card[data-discovery-layout="visual-heavy"] .campaign-discovery-visual{
    flex-basis:44%;
  }
  .campaign-discovery-card[data-discovery-layout="balanced"] .campaign-discovery-visual{
    flex-basis:38%;
  }
  .campaign-discovery-card[data-discovery-layout="info-guided"] .campaign-discovery-visual{
    flex-basis:30%;
  }
  .campaign-discovery-content{
    padding:10px 12px 11px;
  }
  .campaign-discovery-context{
    margin-bottom:3px;
  }
  .campaign-discovery-body{
    margin-top:4px;
  }
  .campaign-discovery-actions{
    padding-top:6px;
  }
}


/* =========================
   CAMPAIGN DISCOVERY DUAL MODE V4
   Compact teaser -> immersive vertical feed
========================= */
.campaign-discovery-immersive[hidden]{display:none!important}
.campaign-discovery-immersive{
  position:fixed;
  inset:0;
  z-index:70;
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(circle at 16% 8%,rgba(34,197,94,.08),transparent 24%),
    linear-gradient(180deg,#f8fafc 0%,#f0fdf4 100%);
  animation:campaignDiscoveryImmersiveEnter .22s ease-out;
}
.campaign-discovery-immersive-back{
  position:fixed;
  top:calc(10px + env(safe-area-inset-top,0px));
  left:12px;
  z-index:72;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 13px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#0f172a;
  box-shadow:0 8px 22px rgba(15,23,42,.12);
  backdrop-filter:blur(12px) saturate(1.1);
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.campaign-discovery-immersive-back:focus-visible{
  outline:3px solid rgba(22,163,74,.28);
  outline-offset:2px;
}
.campaign-discovery-immersive-track{
  flex:1;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  scrollbar-width:none;
  touch-action:pan-y;
  overflow-anchor:none;
  padding:
    calc(62px + env(safe-area-inset-top,0px))
    max(10px,calc((100vw - 800px)/2))
    calc(26px + env(safe-area-inset-bottom,0px));
}
.campaign-discovery-immersive-track::-webkit-scrollbar{display:none}
.campaign-discovery-card.campaign-discovery-immersive-card{
  width:min(100%,760px);
  min-height:calc(100dvh - 92px);
  flex:0 0 auto;
  margin:0 auto 16px;
  border-radius:28px;
  cursor:default;
  overflow:hidden;
}
.campaign-discovery-immersive-card .campaign-discovery-visual{
  flex:0 0 auto;
  min-height:clamp(260px,44dvh,520px);
}
.campaign-discovery-immersive-card .campaign-discovery-visual img,
.campaign-discovery-immersive-card .campaign-discovery-gallery img{
  width:100%;
  height:100%;
  object-fit:contain;
}
/* Visual discovery: preserve the full product pack shot, but give approved
   preparation/menu photography the edge-to-edge editorial treatment. */
.campaign-discovery-immersive-card .campaign-discovery-visual[data-visual="spotlight"] img{
  object-fit:contain;
}
.campaign-discovery-immersive-card .campaign-discovery-visual[data-visual="hero"] img,
.campaign-discovery-immersive-card .campaign-discovery-visual[data-visual="gallery"] img{
  object-fit:cover;
}
.campaign-discovery-immersive-card .campaign-discovery-gallery,
.campaign-discovery-immersive-card .campaign-discovery-hero{
  background:#f8fafc;
}
.campaign-discovery-immersive-card .campaign-discovery-content{
  flex:1 1 auto;
  min-height:0;
  overflow:visible;
  padding:20px 20px 24px;
}
.campaign-discovery-immersive-card .campaign-discovery-context{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  font-size:11px;
  line-height:1.35;
}
.campaign-discovery-immersive-card .campaign-discovery-title{
  display:block;
  overflow:visible;
  -webkit-line-clamp:unset;
  font-size:clamp(24px,5vw,34px);
  line-height:1.08;
}
.campaign-discovery-immersive-card .campaign-discovery-body{
  display:block;
  overflow:visible;
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
  margin-top:11px;
  color:#475569;
  font-size:16px;
  line-height:1.52;
}
.campaign-discovery-immersive-card .campaign-discovery-actions{
  flex:0 0 auto;
  margin-top:auto;
  padding-top:20px;
  grid-template-columns:minmax(0,1fr) minmax(120px,38%);
}
.campaign-discovery-immersive-card .campaign-discovery-open,
.campaign-discovery-immersive-card .campaign-discovery-ask{
  min-height:50px;
  font-size:14px;
}
body.campaign-discovery-immersive-open{
  overflow:hidden;
}
@keyframes campaignDiscoveryImmersiveEnter{
  from{opacity:0;transform:scale(.992)}
  to{opacity:1;transform:scale(1)}
}
@media(max-width:520px){
  .campaign-discovery-card.campaign-discovery-immersive-card{
    width:100%;
    min-height:calc(100dvh - 76px);
    margin-bottom:12px;
    border-radius:24px;
  }
  .campaign-discovery-immersive-track{
    padding:
      calc(58px + env(safe-area-inset-top,0px))
      8px
      calc(20px + env(safe-area-inset-bottom,0px));
  }
  .campaign-discovery-immersive-card .campaign-discovery-visual{
    flex:0 0 auto!important;
    min-height:clamp(230px,40dvh,360px);
  }
  .campaign-discovery-immersive-card .campaign-discovery-content{
    padding:16px 16px 19px;
  }
  .campaign-discovery-immersive-card .campaign-discovery-title{
    font-size:24px;
  }
  .campaign-discovery-immersive-card .campaign-discovery-body{
    margin-top:9px;
    font-size:15px;
    line-height:1.5;
  }
  .campaign-discovery-immersive-card .campaign-discovery-actions{
    gap:8px;
    padding-top:16px;
  }
}
@media(prefers-reduced-motion:reduce){
  .campaign-discovery-immersive{
    animation:none!important;
  }
}


/* =========================
   CAMPAIGN GENERIC CONTENT PANEL
========================= */
.campaign-content-panel-card{width:min(760px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:22px}
.campaign-panel-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:8px 11px;border:0;border-radius:12px;background:#f1f5f9;color:#334155;cursor:pointer;font:inherit;font-size:13px;font-weight:850}
.campaign-panel-back[hidden]{display:none!important}
#campaignRewardsReferralBenefit,#campaignRewardsReferralReward{white-space:pre-line}
.campaign-content-panel-header{text-align:center;margin-bottom:16px}
.campaign-content-panel-icon{width:60px;height:60px;margin:0 auto 12px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(22,163,74,.10);border:1px solid rgba(22,163,74,.18);font-size:28px}
.campaign-content-panel-title{margin:0;color:#0f172a;font-size:clamp(24px,4vw,34px);font-weight:950;line-height:1.08}
.campaign-content-panel-subtitle{margin:9px auto 0;max-width:640px;color:#475569;font-size:15px;font-weight:600;line-height:1.45}
.campaign-content-panel-featured-actions{display:flex;flex-direction:column;gap:10px;margin:0 0 16px}
.campaign-content-panel-featured-actions[hidden]{display:none!important}
.campaign-guided-lead{padding:20px;border-radius:24px;background:linear-gradient(135deg,#e7f8ed,#fff 75%);text-align:left;border:1px solid #d0e9d9}
.campaign-guided-kicker{display:block;color:#166534;font-size:13px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.campaign-guided-lead p{margin:9px 0 0;color:#334155;font-size:16px;line-height:1.5}
.campaign-content-panel-sections:has(.campaign-guided-stage){display:flex;flex-direction:column;gap:15px}
.campaign-guided-stage{position:relative;padding:20px 15px 17px 48px;border:1px solid #dfeae4;border-radius:22px;background:#fff;min-width:0}
.campaign-guided-stage-base{background:linear-gradient(140deg,#eafaf0,#fff 78%);border-color:#d0e8d8}
.campaign-guided-stage-number{position:absolute;top:18px;left:12px;background:#047857;color:white;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-size:14px;font-weight:850}
.campaign-guided-stage h3{font-size:19px;line-height:1.2;margin:0 0 7px;color:#0f172a;font-weight:900}
.campaign-guided-stage>p{font-size:14px;line-height:1.5;color:#475569;margin:0 0 13px}
.campaign-guided-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.campaign-guided-product{padding:9px;background:#fff;border:1px solid #ddeae1;border-radius:15px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:#163326}
.campaign-guided-product img{display:block;width:100%;height:116px;object-fit:contain}
.campaign-guided-product span{font-size:12px;font-weight:750;line-height:1.3;text-align:center}
.campaign-guided-recipes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.campaign-guided-recipe{min-width:0;overflow:hidden;border-radius:15px;border:1px solid #e2e8f0;padding:0;background:white;text-align:left;cursor:pointer}
.campaign-guided-recipe img{display:block;width:100%;aspect-ratio:1.15;object-fit:cover}
.campaign-guided-recipe span{display:block;padding:8px;font-size:12px;color:#334155;font-weight:800}
.campaign-guided-more{width:100%;margin-top:12px;padding:12px;border:1px solid #86cbb1;border-radius:14px;background:#f5fffa;color:#065f46;font:inherit;font-weight:800;cursor:pointer}
.campaign-guided-offer-list{display:flex;flex-direction:column;gap:10px}
.campaign-guided-offer-list .campaign-content-panel-offer-card{flex:none;min-width:0;width:100%;box-sizing:border-box}
@media(min-width:650px){.campaign-guided-products{grid-template-columns:repeat(4,minmax(0,1fr))}.campaign-guided-recipes{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:520px){.campaign-guided-stage{padding:18px 12px 15px 45px}.campaign-guided-stage h3{font-size:18px}.campaign-guided-product img{height:90px}}

.campaign-guided-product-story{padding:13px 15px 17px;text-align:center;border:1px solid #e3ece6;border-radius:20px;background:#f7fcf8}
.campaign-guided-product-story h4{margin:0 0 12px;font-size:13px;font-weight:850;color:#27674d}
.campaign-guided-product-story-row{display:flex;justify-content:center;gap:22px;align-items:end}
.campaign-guided-product-story-item{background:#fff;min-width:0;width:26%;max-width:102px;padding:8px;border-radius:12px}
.campaign-guided-product-story-item img{height:90px;width:100%;object-fit:contain}
/* Guided Campaign journey: editorial presentation, published offers remain authoritative. */
.campaign-guided-landing{position:relative;isolation:isolate;overflow:hidden;min-height:340px;border-radius:26px;background:linear-gradient(130deg,#ecfff0,#fff8ee);box-shadow:0 14px 32px rgba(11,66,40,.1)}
.campaign-guided-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.76}
.campaign-guided-landing:has(.campaign-guided-cover)::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(255,255,250,.97),rgba(255,255,250,.88) 42%,rgba(255,255,250,.24))}
.campaign-guided-landing-copy{position:relative;z-index:1;padding:30px 24px;max-width:420px}
.campaign-guided-landing-title{font-weight:950;color:#07513b;font-size:clamp(27px,5vw,39px);line-height:1.09;letter-spacing:-.03em;margin:14px 0}
.campaign-guided-landing-copy p{color:#28483e;font-size:15px;font-weight:550;line-height:1.55}
.campaign-guided-hero-cta{background:#00764f;color:white;border:0;border-radius:999px;padding:13px 20px;font:inherit;font-weight:900;cursor:pointer;margin-top:12px}
.campaign-guided-stage{padding:20px;background:#fff;border:1px solid #e0ebe5;border-radius:23px;box-shadow:0 4px 12px rgba(17,61,38,.035)}
.campaign-guided-stage-heading{display:flex;align-items:center;gap:12px;margin-bottom:9px}
.campaign-guided-stage-heading h3{font-size:21px;line-height:1.18;font-weight:900;letter-spacing:-.02em;color:#0f2930;margin:0}
.campaign-guided-stage-number{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:#007c55;color:#fff;font-size:17px;font-weight:900;position:static}
.campaign-guided-stage>p{color:#516477;font-size:14px;line-height:1.55;margin:0 0 15px}
.campaign-guided-recipes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.campaign-guided-recipe{overflow:hidden;border:1px solid #e5ece7;border-radius:17px;background:#fff;padding:0;text-align:left;cursor:pointer;min-width:0}
.campaign-guided-recipe img{display:block;width:100%;aspect-ratio:1.1;object-fit:cover}
.campaign-guided-recipe span{display:block;padding:10px 11px;font-size:12px;font-weight:850;color:#1b3931}
.campaign-guided-routine{background:linear-gradient(128deg,#effaf0,#fff8f0)}
.campaign-guided-routine-art{max-height:210px;overflow:hidden;border-radius:17px}
.campaign-guided-routine-art img{width:100%;max-height:210px;object-fit:cover}
.campaign-guided-choice{background:#fff;border:1px solid #dde9e2;border-radius:20px;padding:15px;box-shadow:0 6px 20px rgba(23,60,38,.045)}
.campaign-guided-choice-top{display:flex;gap:12px;align-items:center}
.campaign-guided-choice-top>img{width:88px;height:112px;object-fit:contain;flex:none;border-radius:14px;background:#f5faf6}
.campaign-guided-choice h4{font-size:19px;color:#113d32;font-weight:900;line-height:1.2;margin:0 0 6px}
.campaign-guided-choice-top p{font-size:13px;line-height:1.45;color:#475569;margin:0 0 7px}
.campaign-guided-choice-price{color:#006d47;font-size:18px;white-space:nowrap}
.campaign-guided-choice-details{margin-top:12px}
.campaign-guided-choice-details summary{display:block;list-style:none;text-align:center;border-radius:12px;background:#e9f7ef;border:1px solid #98d6b1;padding:13px;color:#065b3b;font-size:14px;font-weight:900;cursor:pointer}
.campaign-guided-choice-details summary::-webkit-details-marker{display:none}
.campaign-guided-choice-details .campaign-content-panel-offer-card{margin-top:10px;width:100%;box-sizing:border-box}
.campaign-guided-offer-list{display:grid;grid-template-columns:1fr;gap:13px}
@media(min-width:650px){.campaign-guided-recipes{grid-template-columns:repeat(4,minmax(0,1fr))}.campaign-guided-offer-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.campaign-guided-landing{min-height:300px}.campaign-guided-landing-copy{padding:24px 19px}.campaign-guided-landing-title{font-size:28px}.campaign-guided-stage{padding:16px}.campaign-guided-choice-top>img{width:75px;height:100px}}

/* Shape editorial art is CSS-only; all visible copy is localized by Campaign i18n. */
.campaign-guided-landing{min-height:0;border:1px solid #d4ece1;border-radius:26px;background:radial-gradient(circle at 88% 20%,rgba(251,210,123,.47) 0 14%,transparent 15%),radial-gradient(circle at 95% 85%,rgba(96,200,176,.37) 0 18%,transparent 19%),radial-gradient(circle at 10% 95%,rgba(180,223,199,.32) 0 24%,transparent 25%),linear-gradient(135deg,#f2fff6 0%,#e7faf5 52%,#fff5e7 100%);box-shadow:0 12px 30px rgba(9,85,58,.08)}
.campaign-guided-landing::before{content:'';pointer-events:none;position:absolute;right:-24px;top:-26px;width:168px;height:168px;opacity:.45;border-radius:34px;background:repeating-linear-gradient(90deg,transparent 0 15px,rgba(7,123,83,.17) 15px 23px,transparent 23px 32px);transform:rotate(28deg)}
.campaign-guided-landing-copy{position:relative;z-index:1;max-width:550px;padding:30px 26px 34px}
.campaign-guided-landing-copy p{max-width:46ch;margin:12px 0 0;line-height:1.56;color:#31544b}
.campaign-guided-landing-title{max-width:17ch;font-size:clamp(28px,4.7vw,40px)}
.campaign-guided-recipe img{aspect-ratio:1.25;object-position:center 62%}
.campaign-guided-recipe{box-shadow:0 7px 17px rgba(18,75,48,.06)}
.campaign-guided-recipe span{min-height:46px;display:flex;align-items:center}
.campaign-guided-recipe:focus-visible,.campaign-guided-more:focus-visible{outline:3px solid #007e58;outline-offset:3px}

/* Published preparation showcase — shared gallery, not a separate business app. */
#campaignGallerySheet.campaign-gallery-preparation{align-items:center;justify-content:center;padding:max(8px,env(safe-area-inset-top)) 8px calc(8px + var(--safe-bottom));background:rgba(5,34,28,.78);backdrop-filter:blur(14px)}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-card{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:min(760px,100%);height:calc(100dvh - 16px - var(--safe-bottom));max-height:880px;min-height:0;overflow:hidden;padding:clamp(16px,3.5vw,26px);border:1px solid rgba(255,255,255,.7);border-radius:28px;background:linear-gradient(170deg,#f0fbf3 0%,#ffffff 32%,#fffbf3 100%);box-shadow:0 30px 80px rgba(0,29,24,.35)}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-eyebrow{margin:0 58px 7px 1px;color:#08744e;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
#campaignGallerySheet.campaign-gallery-preparation .campaign-contact-title{margin:0 54px 7px 0;color:#104735;text-align:left;font-size:clamp(24px,5.8vw,35px);font-weight:950;line-height:1.09;letter-spacing:-.035em}
#campaignGallerySheet.campaign-gallery-preparation .campaign-contact-subtitle{flex:0 0 auto;margin:0 28px 13px 0;max-height:none;overflow:visible;color:#4b675c;text-align:left;font-size:clamp(13px,3.2vw,15px);font-weight:550;line-height:1.38}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-stage{position:relative;flex:1 1 auto;min-height:190px;width:100%;max-height:none;overflow:hidden;box-sizing:border-box;padding:0;border:0;border-radius:23px;background:#e3f0e8;box-shadow:0 12px 26px rgba(0,50,35,.13)}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-image{display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 57%;border-radius:0}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-visual-caption{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:46px 20px 19px;background:linear-gradient(0deg,rgba(4,36,27,.82),rgba(4,36,27,0));color:#fff;font-size:clamp(20px,5vw,28px);line-height:1.15;font-weight:900;letter-spacing:-.02em;text-align:left;pointer-events:none}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-progress{position:absolute;top:14px;left:14px;right:14px;z-index:2;display:flex;gap:5px;pointer-events:none}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-progress span{flex:1;height:4px;border-radius:99px;background:rgba(255,255,255,.45);box-shadow:0 1px 4px rgba(0,0,0,.18)}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-progress span.active{background:#fff}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-controls{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;gap:10px;align-items:center;flex:0 0 auto;margin-top:9px}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-nav{width:46px;min-width:46px;height:46px;min-height:46px;padding:0;border:1px solid #d6e7db;border-radius:50%;background:#fff;color:#0d6045;box-shadow:0 3px 9px rgba(10,60,43,.07);font-size:0;line-height:1}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-nav::before{content:'‹';font-size:36px;font-weight:500;line-height:1}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-nav:last-child{background:#05754f;border-color:#05754f;color:#fff}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-nav:last-child::before{content:'›'}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-counter{color:#42705e;font-size:14px;letter-spacing:.08em;font-weight:900;text-align:center}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-open{display:none}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;flex:0 0 auto;margin-top:9px}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-actions .campaign-content-panel-action{width:100%;min-width:0;min-height:48px;padding:10px 14px;border-radius:16px;font-size:14px;font-weight:900;line-height:1.25}
#campaignGallerySheet.campaign-gallery-preparation .campaign-contact-close{position:absolute;top:13px;right:13px;z-index:5;width:44px;height:44px;min-height:44px;margin:0;padding:0;border-radius:50%;border:1px solid #e0ece4;background:rgba(255,255,255,.96);color:#125640;box-shadow:0 3px 13px rgba(0,49,36,.1);font-size:0}
#campaignGallerySheet.campaign-gallery-preparation .campaign-contact-close::before{content:'×';font-size:30px;font-weight:450;line-height:1}
#campaignGallerySheet.campaign-gallery-preparation button:focus-visible{outline:3px solid #15a679;outline-offset:2px}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-nav:disabled{opacity:.45;cursor:default}
.campaign-gallery-eyebrow[hidden],.campaign-gallery-visual-caption[hidden],.campaign-gallery-progress[hidden]{display:none!important}
/* Guided route: invite discovery and highlight real, published offer choices. */
.campaign-guided-stage-offers{background:linear-gradient(170deg,#f8fef9,#fffaf3)}
.campaign-guided-choice{padding:17px;border-radius:22px;border-color:#d9e9df;box-shadow:0 7px 20px rgba(12,65,40,.06)}
.campaign-guided-choice-top{gap:14px;align-items:center}
.campaign-guided-choice-top>img{width:104px;height:125px;padding:5px;border-radius:17px;background:#f2f8f2}
.campaign-guided-choice h4{font-size:clamp(18px,4.4vw,22px);line-height:1.14}
.campaign-guided-choice-top p{font-size:14px;line-height:1.4}
.campaign-guided-choice-price{display:inline-block;margin-top:3px;font-size:clamp(18px,4.4vw,22px)}
.campaign-guided-choice-details summary{border:1px solid #8dc6a4;background:#eaf7ee;border-radius:14px;padding:14px}
.campaign-guided-routine{background:linear-gradient(135deg,#e8f9ec,#fff8ec)}
.campaign-guided-stage>p{font-size:15px;line-height:1.5}
@media(max-width:600px){
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-card{width:100%;height:calc(100dvh - 16px - var(--safe-bottom));max-height:none;padding:15px;border-radius:25px}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-stage{min-height:190px}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-visual-caption{padding:44px 18px 17px}
.campaign-guided-choice-top>img{width:90px;height:110px}
}
@media(max-height:590px){
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-card{overflow-y:auto}
#campaignGallerySheet.campaign-gallery-preparation .campaign-gallery-stage{flex:0 0 auto;height:44dvh;min-height:165px}
#campaignGallerySheet.campaign-gallery-preparation .campaign-contact-subtitle{margin-bottom:8px}
}

@media(prefers-reduced-motion:reduce){.campaign-guided-recipe img{transition:none}}
.campaign-commercial-hero{padding:16px;border-radius:23px;background:linear-gradient(135deg,#ecfdf5,#fff 62%,#eff6ff);border:1px solid rgba(16,185,129,.12);box-shadow:0 10px 28px rgba(15,23,42,.07)}
.campaign-commercial-hero-title{margin:0 0 12px;font-size:clamp(17px,3.5vw,23px);font-weight:900;line-height:1.2;color:#14532d}
.campaign-commercial-hero-products{display:flex;align-items:center;justify-content:center;gap:10px;min-height:125px;margin:0 0 13px}
.campaign-commercial-hero-products img{display:block;max-width:30%;width:auto;height:clamp(100px,18dvh,155px);object-fit:contain;filter:drop-shadow(0 8px 15px rgba(15,23,42,.12))}
.campaign-commercial-hero-cta{display:block;width:100%;min-height:46px;border:0;border-radius:14px;background:#047857;color:#fff;font:inherit;font-weight:850;font-size:14px;cursor:pointer;padding:11px 14px}
.campaign-commercial-hero-cta:focus-visible{outline:3px solid #16a34a;outline-offset:3px}
.campaign-preparation-preview-wrap{overflow:hidden;border-radius:24px;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 12px 32px rgba(15,23,42,.07)}
.campaign-preparation-preview{padding:16px 16px 8px;background:linear-gradient(160deg,#f0fdf4,#fff 65%)}
.campaign-preparation-preview-title{margin:0 0 12px;color:#14532d;font-size:clamp(18px,3.6vw,23px);font-weight:900;line-height:1.18}
.campaign-preparation-preview-tiles{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:7px;min-height:145px}
.campaign-preparation-preview-tile{min-width:0;min-height:130px;padding:0;border:0;border-radius:15px;background:#e2e8f0;overflow:hidden;cursor:pointer}
.campaign-preparation-preview-tile img{display:block;width:100%;height:100%;min-height:145px;object-fit:cover;transition:transform .2s ease}
.campaign-preparation-preview-tile:hover img{transform:scale(1.045)}
.campaign-preparation-preview-tile:focus-visible{outline:3px solid #16a34a;outline-offset:2px}
.campaign-preparation-preview-subtitle{margin:11px 0 5px;color:#475569;font-size:13px;line-height:1.5}
.campaign-preparation-preview-wrap > .campaign-action-hub-item{border:0;border-top:1px solid rgba(15,23,42,.07);border-radius:0;box-shadow:none}
@media(max-width:520px){.campaign-preparation-preview{padding:13px 12px 7px}.campaign-preparation-preview-tiles{gap:5px;min-height:115px}.campaign-preparation-preview-tile{min-height:115px}.campaign-preparation-preview-tile img{min-height:115px}}
.campaign-content-panel-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.campaign-content-panel-section{padding:17px;border-radius:22px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}
.campaign-content-panel-section-head{display:flex;align-items:center;gap:10px}
.campaign-content-panel-section-icon{font-size:23px}
.campaign-content-panel-section-title{margin:0;color:#0f172a;font-size:17px;font-weight:950;line-height:1.2}
.campaign-content-panel-badge{display:inline-flex;margin:10px 0 0;padding:5px 9px;border-radius:999px;background:#dcfce7;color:#166534;font-size:11px;font-weight:900}
.campaign-content-panel-body{margin:10px 0 0;color:#475569;font-size:14px;line-height:1.45}
.campaign-content-panel-list{margin:11px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.campaign-content-panel-list li{display:flex;gap:8px;color:#334155;font-size:13px;font-weight:650;line-height:1.38}
.campaign-content-panel-list li .item-icon{flex:0 0 auto}
.campaign-content-panel-note{margin:15px 2px 0;padding:13px 14px;border-radius:17px;background:#fff7ed;border:1px solid rgba(234,88,12,.14);color:#7c2d12;font-size:13px;font-weight:650;line-height:1.4}
.campaign-content-panel-terms{margin:12px 2px 0;padding:12px 14px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);color:#475569;font-size:12px;line-height:1.45}
.campaign-content-panel-terms strong{display:block;color:#334155;font-size:11px;font-weight:900;letter-spacing:.02em;text-transform:uppercase}
.campaign-content-panel-terms span{display:block;margin-top:4px}
.campaign-content-panel-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px}
.campaign-content-panel-action{flex:1 1 190px;min-height:50px;border:none;border-radius:17px;padding:12px 14px;cursor:pointer;font:inherit;font-size:14px;font-weight:900}
.campaign-content-panel-action.primary{background:linear-gradient(135deg,#22c55e,#047857);color:#fff}
.campaign-content-panel-action.secondary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}
.campaign-content-panel-action.neutral{background:#f1f5f9;color:#334155;border:1px solid rgba(15,23,42,.08)}
.campaign-content-panel-offer-card{flex:1 1 260px;min-width:min(100%,260px);padding:16px;border-radius:20px;background:#fff;border:1px solid rgba(15,23,42,.10);box-shadow:0 8px 22px rgba(15,23,42,.06);display:flex;flex-direction:column;gap:10px}
.campaign-content-panel-offer-title{margin:0;color:#0f172a;font-size:17px;font-weight:950;line-height:1.2}
.campaign-content-panel-offer-body{margin:0;color:#475569;font-size:13px;line-height:1.45}
.campaign-content-panel-offer-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px;margin:4px 0}
.campaign-content-panel-offer-product{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center;padding:13px;border-radius:18px;background:linear-gradient(150deg,#f8fafc,#fff);border:1px solid rgba(15,23,42,.08)}
.campaign-content-panel-offer-product.clickable{cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.campaign-content-panel-offer-product.clickable:hover{background:#fff;border-color:rgba(15,23,42,.14)}
.campaign-content-panel-offer-product.clickable:active{transform:translateY(1px)}
.campaign-content-panel-offer-product.clickable:focus-visible{outline:3px solid rgba(59,130,246,.26);outline-offset:2px}
.campaign-content-panel-offer-product.no-image{grid-template-columns:minmax(0,1fr)}
.campaign-content-panel-offer-product > img{width:76px;height:86px;object-fit:contain;border-radius:13px;background:#fff}
.campaign-content-panel-offer-product-name{display:block;color:#1e293b;font-size:12px;font-weight:850;line-height:1.3}
.campaign-content-panel-offer-product-meta{display:block;margin-top:2px;color:#64748b;font-size:11px;line-height:1.25}
.campaign-product-variant-mosaic{width:76px;height:86px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:4px;border-radius:13px;background:#fff;border:1px solid rgba(15,23,42,.06);overflow:hidden}
.campaign-product-variant-mosaic img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;background:#fff}
.campaign-product-variant-mosaic-more{display:flex;align-items:center;justify-content:center;background:#e2e8f0;color:#334155;font-size:9px;font-weight:950;line-height:1}
#campaignProductDetailSheet{z-index:10060}
.campaign-product-detail-card{width:min(520px,100%);padding:20px}
.campaign-product-detail-image-wrap{display:flex;align-items:center;justify-content:center;min-height:220px;margin:0 0 16px;padding:14px;border-radius:22px;background:#f8fafc;border:1px solid rgba(15,23,42,.07)}
.campaign-product-detail-image-wrap[hidden]{display:none!important}
.campaign-product-detail-image{display:block;max-width:100%;width:auto;max-height:min(320px,42dvh);object-fit:contain}
.campaign-product-detail-title{margin:0;text-align:center;color:#0f172a;font-size:clamp(22px,4vw,30px);font-weight:950;line-height:1.12}
.campaign-product-detail-meta{margin:8px 0 0;text-align:center;color:#64748b;font-size:13px;font-weight:700;line-height:1.35}
.campaign-product-detail-description{margin:16px 0 0;padding:14px 15px;border-radius:18px;background:#f8fafc;border:1px solid rgba(15,23,42,.07);color:#334155;font-size:14px;line-height:1.55}
.campaign-product-detail-variant{margin:12px 0 0;text-align:center;color:#64748b;font-size:12px;line-height:1.4}
.campaign-product-detail-variants-wrap{margin-top:18px;padding-top:16px;border-top:1px solid rgba(15,23,42,.08)}
.campaign-product-detail-variants-wrap[hidden]{display:none!important}
.campaign-product-detail-variants-title{margin:0 0 10px;color:#0f172a;font-size:15px;font-weight:950;line-height:1.25}
.campaign-product-detail-variants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.campaign-product-detail-variant-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.07);cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.campaign-product-detail-variant-card:hover{background:#fff;border-color:rgba(15,23,42,.14)}
.campaign-product-detail-variant-card:active{transform:translateY(1px)}
.campaign-product-detail-variant-card:focus-visible{outline:3px solid rgba(59,130,246,.26);outline-offset:2px}
.campaign-product-detail-variant-card.no-image{grid-template-columns:minmax(0,1fr)}
.campaign-product-detail-variant-image{display:block;width:72px;height:72px;object-fit:contain;border-radius:12px;background:#fff}
.campaign-product-detail-variant-name{margin:0;color:#1e293b;font-size:12px;font-weight:900;line-height:1.3}
.campaign-product-detail-variant-meta{margin:4px 0 0;color:#64748b;font-size:11px;line-height:1.3}
@media(max-width:560px){.campaign-product-detail-variants{grid-template-columns:1fr}}
.campaign-content-panel-offer-price{margin:0;color:#166534;font-size:12px;font-weight:850}
.campaign-content-panel-offer-cta{width:100%;min-height:46px;border:0;border-radius:14px;padding:11px 13px;background:linear-gradient(135deg,#22c55e,#047857);color:#fff;font:inherit;font-size:13px;font-weight:900;cursor:pointer}
.campaign-program-card[data-category="coaching"]{background:linear-gradient(180deg,#ecfeff 0%,#fff 100%)}
.campaign-program-card[data-category="coaching"] .campaign-program-btn{background:linear-gradient(135deg,#14b8a6,#0f766e)}
@media(max-width:720px){.campaign-content-panel-sections{grid-template-columns:1fr}.campaign-content-panel-card{padding:17px;max-height:calc(100dvh - 20px)}}

/* =========================
   D1.2.2 MAIN HAMBURGER MENU
========================= */
.main-menu-overlay{
  position:fixed;
  inset:0;
  z-index:10040;
  display:none;
  background:rgba(15,23,42,.34);
  backdrop-filter:blur(6px);
}
.main-menu-overlay.show{display:block}
.main-menu-panel{
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  width:min(420px,92vw);
  display:flex;
  flex-direction:column;
  background:#fff;
  box-shadow:18px 0 48px rgba(15,23,42,.20);
}
.main-menu-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 16px 12px;
  border-bottom:1px solid rgba(15,23,42,.08);
}
.main-menu-title{font-size:20px;font-weight:900;color:#0f172a}
.main-menu-close{
  width:42px;
  height:42px;
  border:none;
  border-radius:14px;
  background:#f1f5f9;
  color:#334155;
  font-size:22px;
  cursor:pointer;
}
.main-menu-content{
  flex:1;
  overflow-y:auto;
  padding:14px 14px calc(20px + var(--safe-bottom));
}
.main-menu-action{
  width:100%;
  min-height:52px;
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:12px;
  padding:12px 14px;
  border:none;
  border-radius:18px;
  background:#f8fafc;
  color:#0f172a;
  border:1px solid rgba(15,23,42,.08);
  font:inherit;
  font-weight:850;
  text-align:left;
  cursor:pointer;
}
.main-menu-action-icon{font-size:21px}
.main-menu-panel .client-invite-card{margin:0}

/* =========================
   GROWTH MENU SECTIONS
========================= */
.growth-menu-launcher{width:100%;min-height:74px;display:flex;align-items:center;gap:13px;margin-bottom:12px;padding:15px;border:none;border-radius:20px;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 8px 20px rgba(15,23,42,.05);text-align:left;cursor:pointer}
.growth-menu-launcher[hidden]{display:none!important}
.growth-menu-launcher-icon{flex:0 0 auto;width:44px;height:44px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:#ecfdf5;font-size:23px}
.growth-menu-launcher-copy{flex:1;min-width:0}
.growth-menu-launcher-title{font-size:15px;font-weight:950;color:#0f172a}
.growth-menu-launcher-sub{margin-top:4px;font-size:12.5px;line-height:1.35;color:#64748b}
.growth-menu-back{width:auto;min-height:38px;margin:0 0 12px;padding:8px 12px;border:none;border-radius:999px;background:#f1f5f9;color:#334155;font-weight:850;cursor:pointer}

.commercial-insights-card{display:flex;flex-direction:column;gap:14px}
.commercial-insights-card[hidden]{display:none!important}
.commercial-insights-head{display:flex;flex-direction:column;gap:5px}
.commercial-insights-title{font-size:20px;font-weight:950;color:#0f172a}
.commercial-insights-sub{font-size:13px;line-height:1.45;color:#64748b}
.commercial-insights-controls{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(120px,.6fr);gap:9px}
.commercial-insights-control{display:flex;flex-direction:column;gap:5px;min-width:0}
.commercial-insights-control-label{font-size:11px;font-weight:900;color:#475569;text-transform:uppercase;letter-spacing:.04em}
.commercial-insights-select{width:100%;min-height:42px;border:1px solid rgba(15,23,42,.12);border-radius:14px;padding:8px 10px;background:#fff;color:#0f172a;font:inherit;font-size:13px;font-weight:750;outline:none}
.commercial-insights-select:focus{border-color:rgba(22,163,74,.6);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.commercial-insights-actions{display:flex;gap:9px}
.commercial-insights-actions .account-action-btn{flex:1}
.commercial-insights-status{min-height:20px;font-size:12.5px;line-height:1.4;color:#475569}
.commercial-insights-status.error{color:#b91c1c}
.commercial-insights-status.success{color:#047857}
.operational-briefing{padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(22,163,74,.18);box-shadow:0 8px 20px rgba(15,23,42,.04)}
.operational-briefing[hidden]{display:none!important}
.operational-briefing-kicker{font-size:11px;font-weight:900;color:#15803d;text-transform:uppercase;letter-spacing:.05em}
.operational-briefing-title{margin-top:5px;font-size:15px;font-weight:950;color:#0f172a;line-height:1.3}
.operational-briefing-message{margin-top:6px;font-size:12.5px;line-height:1.45;color:#475569}
.operational-briefing-meta{margin-top:8px;font-size:11px;line-height:1.4;color:#64748b}
.commercial-insights-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.commercial-insights-metric{padding:13px;border-radius:17px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}
.commercial-insights-metric-value{font-size:20px;font-weight:950;color:#0f172a}
.commercial-insights-metric-label{margin-top:3px;font-size:11.5px;font-weight:850;color:#475569}
.commercial-insights-metric-help{margin-top:5px;font-size:10.5px;line-height:1.35;color:#94a3b8}
.commercial-insights-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.commercial-insights-identity-card{padding:11px 12px;border-radius:15px;background:#f8fafc;border:1px solid rgba(15,23,42,.07)}
.commercial-insights-identity-value{font-size:18px;font-weight:950;color:#0f172a}
.commercial-insights-identity-label{margin-top:3px;font-size:11px;font-weight:750;line-height:1.3;color:#64748b}
.commercial-insights-people{display:flex;flex-direction:column;gap:8px}
.commercial-insights-person{padding:11px 12px;border-radius:15px;background:#f8fafc;border:1px solid rgba(15,23,42,.07)}
.commercial-insights-person-name{font-size:12.5px;font-weight:950;color:#0f172a}
.commercial-insights-person-meta{margin-top:4px;font-size:11px;line-height:1.4;color:#64748b}
.commercial-insights-journey-identity{margin-top:5px;font-size:11px;font-weight:850;line-height:1.35;color:#047857}
.commercial-insights-journey-identity.anonymous{color:#94a3b8}

.commercial-insights-section{padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.commercial-insights-section-title{font-size:14px;font-weight:950;color:#0f172a;margin-bottom:9px}
.commercial-insights-list{display:flex;flex-direction:column;gap:8px}
.commercial-insights-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:12.5px;line-height:1.35}
.commercial-insights-row-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.commercial-insights-row-label{font-weight:850;color:#334155;overflow-wrap:anywhere}
.commercial-insights-row-sub{font-size:11px;color:#94a3b8;overflow-wrap:anywhere}
.commercial-insights-row-count{flex:0 0 auto;font-weight:900;color:#15803d}
.commercial-insights-empty{font-size:12.5px;color:#94a3b8}
.commercial-insights-funnel{display:flex;flex-direction:column;gap:8px}
.commercial-insights-funnel-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 10px;border-radius:14px;background:#f8fafc}
.commercial-insights-funnel-label{font-size:12.5px;font-weight:850;color:#334155}
.commercial-insights-funnel-count{font-size:14px;font-weight:950;color:#0f172a}
.commercial-insights-funnel-rate{min-width:48px;text-align:right;font-size:11.5px;font-weight:850;color:#64748b}
.commercial-insights-note,.commercial-insights-coverage,.commercial-insights-privacy{font-size:11.5px;line-height:1.45;color:#64748b}
.commercial-insights-note{margin-top:9px}
.commercial-insights-coverage.warning{padding:10px 12px;border-radius:14px;background:#fff7ed;color:#9a3412;border:1px solid rgba(234,88,12,.18)}
.commercial-insights-recent{display:flex;flex-direction:column;gap:9px;max-height:min(42vh,420px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:stable}
.commercial-insights-journey{padding:11px 12px;border-radius:15px;background:#f8fafc;border:1px solid rgba(15,23,42,.07)}
.commercial-insights-journey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.commercial-insights-journey-stage{font-size:12.5px;font-weight:950;color:#0f172a}
.commercial-insights-journey-time{font-size:10.75px;color:#94a3b8;text-align:right}
.commercial-insights-journey-detail{margin-top:5px;font-size:11.5px;line-height:1.4;color:#64748b;overflow-wrap:anywhere}
@media(max-width:620px){.commercial-insights-controls{grid-template-columns:1fr}.commercial-insights-actions{flex-direction:column}}

.developer-insights-card{display:flex;flex-direction:column;gap:14px}
.developer-insights-card[hidden]{display:none!important}
.developer-insights-head{display:flex;flex-direction:column;gap:5px}
.developer-insights-title{font-size:20px;font-weight:950;color:#0f172a}
.developer-insights-sub{font-size:13px;line-height:1.45;color:#64748b}
.developer-insights-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}
.developer-insights-control{display:flex;flex-direction:column;gap:5px;min-width:0}
.developer-insights-control-label{font-size:11px;font-weight:900;color:#475569;text-transform:uppercase;letter-spacing:.04em}
.developer-insights-select{width:100%;min-height:42px;border:1px solid rgba(15,23,42,.12);border-radius:14px;padding:8px 10px;background:#fff;color:#0f172a;font:inherit;font-size:13px;font-weight:750;outline:none}
.developer-insights-select:focus{border-color:rgba(22,163,74,.6);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.developer-insights-actions{display:flex;gap:9px}
.developer-insights-actions .account-action-btn{flex:1}
.developer-insights-status{min-height:20px;font-size:12.5px;line-height:1.4;color:#475569}
.developer-insights-status.error{color:#b91c1c}
.developer-insights-status.success{color:#047857}
.developer-insights-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.developer-insights-metric{padding:13px;border-radius:17px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}
.developer-insights-metric-value{font-size:20px;font-weight:950;color:#0f172a}
.developer-insights-metric-label{margin-top:3px;font-size:11.5px;font-weight:700;color:#64748b}
.developer-insights-section{padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.developer-insights-section-title{font-size:14px;font-weight:950;color:#0f172a;margin-bottom:9px}
.developer-insights-list{display:flex;flex-direction:column;gap:7px}
.developer-insights-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:12.5px;line-height:1.35}
.developer-insights-row-label{min-width:0;color:#334155;overflow-wrap:anywhere}
.developer-insights-row-count{flex:0 0 auto;font-weight:900;color:#15803d}
.developer-insights-empty{font-size:12.5px;color:#94a3b8}
.developer-insights-analysis{margin:0;min-height:120px;max-height:440px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border-radius:17px;background:#0f172a;color:#e2e8f0;font:500 13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.developer-insights-analysis[hidden]{display:none!important}
.developer-insights-privacy{font-size:11.5px;line-height:1.45;color:#64748b}
@media(max-width:620px){.developer-insights-controls{grid-template-columns:1fr}.developer-insights-actions{flex-direction:column}}

.training-center-card,.developer-training-card{display:flex;flex-direction:column;gap:14px}
.training-center-card[hidden],.developer-training-card[hidden]{display:none!important}
.training-center-head,.developer-training-head{display:flex;flex-direction:column;gap:5px}
.training-center-title,.developer-training-title{font-size:20px;font-weight:950;color:#0f172a}
.training-center-sub,.developer-training-sub{font-size:13px;line-height:1.45;color:#64748b}
.training-video-item{width:100%;min-height:76px;display:flex;align-items:center;gap:13px;padding:15px;border-radius:20px;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 8px 20px rgba(15,23,42,.05);text-align:left;cursor:pointer;color:#0f172a}
.training-video-item[hidden]{display:none!important}
.training-video-icon{flex:0 0 auto;width:44px;height:44px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:#ecfdf5;color:#15803d;font-size:19px;font-weight:950}
.training-video-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.training-video-title{font-size:15px;font-weight:950;color:#0f172a}
.training-video-sub{font-size:12.5px;line-height:1.35;color:#64748b}
.developer-training-section{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.developer-training-item-title{font-size:15px;font-weight:950;color:#0f172a}
.developer-training-key-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border-radius:13px;background:#f8fafc;border:1px solid rgba(15,23,42,.07)}
.developer-training-key-row code{font-size:12px;color:#0f172a;overflow-wrap:anywhere}
.developer-training-field{display:flex;flex-direction:column;gap:6px}
.developer-training-label{font-size:11.5px;font-weight:850;color:#475569}
.developer-training-input{width:100%;border:1px solid rgba(15,23,42,.14);border-radius:13px;padding:10px 11px;background:#fff;color:#0f172a;font:inherit;font-size:13.5px;outline:none}
.developer-training-input:focus{border-color:rgba(22,163,74,.55);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.developer-training-toggle{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;color:#334155}
.developer-training-toggle input{width:18px;height:18px}
.developer-training-status{min-height:18px;font-size:12.5px;font-weight:750;line-height:1.4;color:#475569}
.developer-training-status.error{color:#b91c1c}
.developer-training-status.success{color:#047857}
.training-video-list{display:flex;flex-direction:column;gap:10px}
.training-context-action{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;border:1px solid rgba(22,163,74,.22);border-radius:999px;background:#ecfdf5;color:#166534;font:inherit;font-size:12.5px;font-weight:900;cursor:pointer}
.training-context-action:hover{background:#dcfce7}
.training-context-action[hidden]{display:none!important}
.developer-training-group{display:flex;flex-direction:column;gap:10px}
.developer-training-group-title{padding:2px 2px 0;font-size:12px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;color:#64748b}

.campaign-config-card{display:flex;flex-direction:column;gap:14px}
.campaign-config-card[hidden]{display:none!important}
.operation-settings-card{display:flex;flex-direction:column;gap:14px}
.operation-settings-card[hidden]{display:none!important}
.operation-settings-head{display:flex;flex-direction:column;gap:4px}
.campaign-config-section{display:flex;flex-direction:column;gap:10px;padding:13px;border-radius:17px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}
.campaign-config-section-title{font-size:13.5px;font-weight:950;color:#0f172a}
.campaign-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.campaign-config-field{display:flex;flex-direction:column;gap:6px}
.campaign-config-field.full{grid-column:1/-1}
.campaign-config-label{font-size:11.5px;font-weight:850;color:#475569}
.campaign-config-input,.campaign-config-textarea{width:100%;border:1px solid rgba(15,23,42,.14);border-radius:13px;padding:10px 11px;background:#fff;color:#0f172a;font:inherit;font-size:13.5px;outline:none}
.campaign-config-textarea{min-height:78px;resize:vertical}
.campaign-config-input:focus,.campaign-config-textarea:focus{border-color:rgba(22,163,74,.55);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.campaign-config-actions{display:flex;flex-wrap:wrap;gap:9px}
.campaign-config-actions .account-action-btn{flex:1 1 145px}
.campaign-config-status{min-height:18px;font-size:12.5px;font-weight:750;line-height:1.4;color:#475569}
.campaign-config-status.is-error{color:#b91c1c}
.campaign-config-status.is-success{color:#047857}
.campaign-actor-contact-identity{font-size:13px;font-weight:850;color:#0f172a;padding:2px 0 4px}
.campaign-actor-contact-privacy{font-size:12px;line-height:1.45;color:#64748b}
.campaign-contact-options{display:flex;flex-direction:column;gap:10px}
.campaign-config-link{width:100%;min-height:66px;resize:none;border:1px solid rgba(15,23,42,.14);border-radius:13px;padding:10px;background:#fff;color:#0f172a;font:inherit;font-size:12px;overflow-wrap:anywhere}
.campaign-shared-operation{display:flex;flex-direction:column;gap:11px;padding:14px;border-radius:18px;background:#f8fafc;border:1px solid rgba(15,23,42,.09)}
.campaign-shared-operation[hidden]{display:none!important}
.campaign-shared-operation-title{font-size:15px;font-weight:950;color:#0f172a}
.campaign-shared-operation-copy{font-size:12.5px;line-height:1.45;color:#64748b}
.campaign-shared-operation-state{display:flex;flex-direction:column;gap:5px;padding:11px 12px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.campaign-shared-operation-name{font-size:14px;font-weight:950;color:#0f172a;overflow-wrap:anywhere}
.campaign-shared-operation-actions{display:flex;flex-wrap:wrap;gap:9px}
.campaign-shared-operation-actions button{flex:1 1 150px;min-height:42px}
.campaign-shared-operation-select{width:100%;min-height:44px;border:1px solid rgba(15,23,42,.14);border-radius:13px;padding:9px 11px;background:#fff;color:#0f172a;font:inherit;font-size:13px}
.campaign-shared-operation-note{font-size:11.5px;line-height:1.4;color:#64748b}
.campaign-shared-people{display:flex;flex-direction:column;gap:10px;padding-top:3px}
.campaign-shared-people-head{display:flex;flex-direction:column;gap:4px;padding-top:4px;border-top:1px solid rgba(15,23,42,.08)}
.campaign-shared-participant-list{display:flex;flex-direction:column;gap:8px}
.campaign-shared-participant-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,190px);gap:9px;align-items:center;padding:10px 11px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.campaign-shared-participant-identity{min-width:0;display:flex;flex-direction:column;gap:3px}
.campaign-shared-participant-name{font-size:12.5px;font-weight:900;color:#0f172a;overflow-wrap:anywhere}
.campaign-shared-participant-email{font-size:10.75px;line-height:1.3;color:#64748b;overflow-wrap:anywhere}
.campaign-shared-participant-meta{font-size:11.5px;font-weight:800;color:#475569}
.campaign-shared-participant-connection{font-size:11px;line-height:1.35;color:#64748b}
.campaign-shared-participant-select{width:100%;min-height:40px;border:1px solid rgba(15,23,42,.14);border-radius:12px;padding:8px 10px;background:#fff;color:#0f172a;font:inherit;font-size:12px}
.campaign-shared-participant-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}
.campaign-shared-participant-actions button{flex:1 1 118px;min-height:38px}
.campaign-shared-participant-form{display:flex;flex-direction:column;gap:8px;padding:11px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.08)}
@media(max-width:600px){.campaign-shared-participant-card{grid-template-columns:1fr}.campaign-shared-participant-select{grid-column:1/-1}}
.campaign-shared-field-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:7px;padding:2px 7px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:10px;font-weight:900;vertical-align:middle}
.campaign-shared-field.is-inherited{background:#f8fafc;border-color:rgba(15,23,42,.08)}
.campaign-shared-field.is-inherited input,.campaign-shared-field.is-inherited textarea,.campaign-shared-field.is-inherited select{background:#f1f5f9;color:#475569;cursor:not-allowed}
@media(max-width:600px){.campaign-config-grid{grid-template-columns:1fr}.campaign-config-field.full{grid-column:auto}}

/* =========================
   D1.2.1 CLIENT INVITATIONS
========================= */
.client-invite-card{display:flex;flex-direction:column;gap:12px}
.client-invite-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.client-invite-copy{min-width:0}
.client-invite-actions{display:flex;flex-wrap:wrap;gap:9px}
.client-invite-actions .account-action-btn{flex:1 1 140px}
.client-invite-result{display:flex;flex-direction:column;gap:9px;padding:12px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.09)}
.client-invite-url{width:100%;min-height:72px;resize:none;border:1px solid rgba(15,23,42,.14);border-radius:12px;padding:10px 11px;background:#fff;color:#0f172a;font:inherit;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.client-invite-meta{font-size:12px;line-height:1.4;color:#64748b}
.client-invite-status{min-height:18px;font-size:12px;font-weight:700;line-height:1.4;color:#475569}
.client-invite-status.is-error{color:#b91c1c}
.client-invite-status.is-success{color:#047857}
.client-invite-pending{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.client-invite-pending-title{font-size:13px;font-weight:850;color:#334155}
.client-invite-pending-list{display:flex;flex-direction:column;gap:8px}
.client-invite-pending-empty{font-size:12px;color:#64748b;padding:10px 2px}
.client-invite-pending-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.09)}
.client-invite-pending-meta{min-width:0;font-size:12px;line-height:1.4;color:#475569}
.client-invite-pending-meta strong{display:block;color:#0f172a;font-size:12.5px}
.client-invite-pending-revoke{min-height:36px;border:none;border-radius:11px;padding:8px 11px;background:#f1f5f9;color:#334155;font-weight:800;cursor:pointer}
.client-invite-pending-revoke:disabled{opacity:.55;cursor:default}
.client-owner-profile{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.09)}
.client-owner-profile-title{font-size:13px;font-weight:900;color:#0f172a}
.client-owner-profile-sub{font-size:12px;line-height:1.4;color:#64748b}
.client-invite-field{display:flex;flex-direction:column;gap:6px}
.client-invite-field-label{font-size:12px;font-weight:850;color:#334155}
.client-invite-input{width:100%;min-height:44px;border:1px solid rgba(15,23,42,.14);border-radius:13px;padding:10px 12px;background:#fff;color:#0f172a;font:inherit;font-size:14px;outline:none}
.client-invite-input:focus{border-color:rgba(22,163,74,.55);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.client-owner-profile-status{min-height:17px;font-size:12px;font-weight:750;color:#475569}
.client-owner-profile-status.is-error{color:#b91c1c}
.client-owner-profile-status.is-success{color:#047857}
.profile-settings-card{display:flex;flex-direction:column;gap:12px}
.profile-settings-head{display:flex;flex-direction:column;gap:4px}
.profile-settings-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.profile-settings-summary-item{display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 12px;border-radius:13px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.profile-settings-summary-item.full{grid-column:1/-1}
.profile-settings-summary-label{font-size:11px;font-weight:850;color:#64748b}
.profile-settings-summary-value{font-size:14px;font-weight:800;line-height:1.35;color:#0f172a;overflow-wrap:anywhere}
.profile-settings-editor{display:flex;flex-direction:column;gap:12px}
.profile-settings-summary[hidden],.profile-settings-editor[hidden],.profile-market-section[hidden]{display:none!important}
.profile-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.profile-settings-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.profile-settings-field.full{grid-column:1/-1}
.profile-settings-field-label{font-size:12px;font-weight:850;color:#334155}
.profile-settings-input{width:100%;min-height:44px;border:1px solid rgba(15,23,42,.14);border-radius:13px;padding:10px 12px;background:#fff;color:#0f172a;font:inherit;font-size:14px;outline:none}
.profile-settings-input:focus{border-color:rgba(22,163,74,.55);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.profile-settings-input:disabled{background:#f8fafc;color:#475569;cursor:not-allowed}
.profile-settings-help{font-size:11px;line-height:1.4;color:#64748b}
.profile-settings-actions{display:flex;gap:10px;flex-wrap:wrap}
.profile-settings-actions .account-action-btn{flex:1 1 160px}
.profile-market-section{display:flex;flex-direction:column;gap:9px;padding-top:4px;border-top:1px solid rgba(15,23,42,.08)}
.profile-market-title{font-size:13px;font-weight:900;color:#0f172a}
.profile-market-sub{font-size:11.5px;line-height:1.45;color:#64748b}
.profile-settings-note{font-size:12px;line-height:1.5;color:#475569;background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:13px;padding:10px 12px}
.profile-settings-status{min-height:18px;font-size:12px;font-weight:750;color:#475569}
.profile-settings-status.is-error{color:#b91c1c}
.profile-settings-status.is-success{color:#047857}
@media (max-width:640px){.profile-settings-summary,.profile-settings-fields{grid-template-columns:1fr}.profile-settings-summary-item.full,.profile-settings-field.full{grid-column:auto}}
.client-management{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.client-management-title{font-size:13px;font-weight:850;color:#334155}
.client-management-list{display:flex;flex-direction:column;gap:9px}
.client-management-empty{font-size:12px;color:#64748b;padding:10px 2px}
.client-management-row{display:flex;flex-direction:column;gap:9px;padding:12px;border-radius:15px;background:#fff;border:1px solid rgba(15,23,42,.09)}
.client-management-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.client-management-name{font-size:13.5px;font-weight:900;color:#0f172a;line-height:1.3}
.client-management-email{margin-top:2px;font-size:11.5px;color:#64748b;overflow-wrap:anywhere}
.client-management-status{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-size:10.5px;font-weight:900;text-transform:uppercase}
.client-management-status.suspended{background:#fef3c7;color:#92400e}
.client-management-status.revoked{background:#fee2e2;color:#991b1b}
.client-management-actions{display:flex;flex-wrap:wrap;gap:8px}
.client-management-btn{flex:1 1 120px;min-height:38px;border:none;border-radius:12px;padding:8px 10px;font:inherit;font-size:12px;font-weight:850;cursor:pointer;background:#f1f5f9;color:#334155}
.client-management-btn.primary{background:#16a34a;color:#fff}
.client-management-btn.danger{background:#fee2e2;color:#991b1b}
.client-management-btn:disabled{opacity:.55;cursor:default}
.client-relationship-card{display:flex;flex-direction:column;gap:11px;margin:0 0 12px}
.client-relationship-title{font-size:16px;font-weight:950;color:#0f172a}
.client-relationship-grid{display:flex;flex-direction:column;gap:9px}
.client-relationship-row{padding:10px 11px;border-radius:14px;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}
.client-relationship-label{font-size:11px;font-weight:850;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.client-relationship-value{margin-top:3px;font-size:14px;font-weight:850;color:#0f172a;overflow-wrap:anywhere}


.campaign-menu-admin{display:flex;flex-direction:column;gap:11px}
.campaign-menu-upload{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.campaign-menu-file{flex:1 1 220px;min-height:44px;padding:9px;border-radius:13px;border:1px solid rgba(15,23,42,.14);background:#fff;font:inherit;font-size:12px}
.campaign-menu-upload-btn{flex:0 0 auto;min-height:44px;border:none;border-radius:13px;padding:10px 14px;background:#0f766e;color:#fff;font-weight:900;cursor:pointer}
.campaign-menu-upload-btn:disabled{opacity:.55;cursor:wait}
.campaign-menu-image-list{display:flex;flex-direction:column;gap:9px}
.campaign-menu-image-empty{padding:12px;border-radius:14px;background:#fff;color:#64748b;font-size:12.5px;border:1px dashed rgba(15,23,42,.16)}
.campaign-menu-image-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px;border-radius:15px;background:#fff;border:1px solid rgba(15,23,42,.09)}
.campaign-menu-image-thumb{width:72px;height:54px;object-fit:cover;border-radius:10px;background:#f1f5f9}
.campaign-menu-image-name{min-width:0;color:#334155;font-size:12px;overflow-wrap:anywhere}
.campaign-menu-image-delete{min-height:36px;border:none;border-radius:11px;padding:8px 10px;background:#fee2e2;color:#991b1b;font-weight:850;cursor:pointer}
.campaign-menu-image-delete:disabled{opacity:.55;cursor:wait}
.campaign-menu-help{color:#64748b;font-size:12px;line-height:1.4}
@media(max-width:520px){.campaign-menu-image-row{grid-template-columns:62px minmax(0,1fr)}.campaign-menu-image-thumb{width:62px;height:48px}.campaign-menu-image-delete{grid-column:1/-1;width:100%}}



/* =========================
   CAMPAIGN SEQUENTIAL BUILDER
   Landing first, then the four internal Campaign buttons.
========================= */
.campaign-builder-home{display:flex;flex-direction:column;gap:11px}
.campaign-builder-step{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:14px;border-radius:19px;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 7px 18px rgba(15,23,42,.04)}
.campaign-builder-step-copy{min-width:0}
.campaign-builder-step-number{font-size:11px;font-weight:950;color:#16a34a;text-transform:uppercase;letter-spacing:.05em}
.campaign-builder-step-title{margin-top:4px;font-size:15px;font-weight:950;color:#0f172a;line-height:1.2;overflow-wrap:anywhere}
.campaign-builder-step-sub{margin-top:4px;font-size:12.5px;line-height:1.35;color:#64748b}
.campaign-builder-step-toggle{width:20px;height:20px;accent-color:#16a34a;cursor:pointer}
.campaign-builder-step-complete-indicator{width:20px;height:20px;border-radius:4px;display:inline-grid;place-items:center;background:#16a34a;color:#fff;font-size:15px;font-weight:950;line-height:1;visibility:hidden}
.campaign-builder-step-complete-indicator.is-visible{visibility:visible}
.campaign-builder-step-open{width:40px;height:40px;border:none;border-radius:13px;background:#f1f5f9;color:#334155;font-size:24px;font-weight:900;cursor:pointer}
.campaign-builder-step-open:active{transform:translateY(1px)}
.campaign-builder-view[hidden],.campaign-builder-home[hidden]{display:none!important}
.campaign-builder-view-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:2px}
.campaign-builder-back{flex:0 0 auto;min-height:38px;border:none;border-radius:999px;padding:8px 12px;background:#f1f5f9;color:#334155;font-weight:850;cursor:pointer}
.campaign-builder-view-copy{flex:1;min-width:0}
.campaign-builder-view-title{font-size:17px;font-weight:950;color:#0f172a;line-height:1.2}
.campaign-builder-view-sub{margin-top:4px;font-size:12.5px;line-height:1.4;color:#64748b}
.campaign-builder-module-note{padding:13px;border-radius:16px;background:#ecfdf5;border:1px solid rgba(22,163,74,.15);color:#166534;font-size:12.5px;line-height:1.45}
.campaign-builder-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0}
.campaign-builder-switch-row + .campaign-builder-switch-row{border-top:1px solid rgba(15,23,42,.07)}
.campaign-builder-switch-copy{min-width:0}
.campaign-builder-switch-title{font-size:13.5px;font-weight:900;color:#0f172a}
.campaign-builder-switch-sub{margin-top:3px;font-size:11.5px;line-height:1.35;color:#64748b}
.campaign-builder-switch-row input{width:20px;height:20px;accent-color:#16a34a;flex:0 0 auto}
.campaign-builder-disabled-note{display:none;padding:12px;border-radius:15px;background:#fff7ed;border:1px solid rgba(234,88,12,.14);color:#9a3412;font-size:12.5px;font-weight:750;line-height:1.4}
.campaign-builder-view.module-off .campaign-builder-disabled-note{display:block}
.campaign-builder-view.module-off .campaign-builder-module-content{opacity:.48;pointer-events:none;filter:grayscale(.12)}
@media(max-width:520px){.campaign-builder-step{grid-template-columns:minmax(0,1fr) auto auto;padding:12px}.campaign-builder-step-title{font-size:14px}.campaign-builder-view-head{flex-direction:column}.campaign-builder-back{align-self:flex-start}}


/* =========================
   CAMPAIGN NESTED CONFIGURATION
   Each visible Campaign button opens its own configuration screen.
========================= */
.campaign-nested-home{display:flex;flex-direction:column;gap:10px}
.campaign-nested-view[hidden],.campaign-nested-home[hidden]{display:none!important}
.campaign-nested-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 4px 4px 0;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 6px 16px rgba(15,23,42,.04)}
.campaign-nested-row>button{min-width:0;min-height:68px;border:none;background:transparent;padding:12px 8px 12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;color:#0f172a}
.campaign-nested-row>button span:first-child{display:flex;flex-direction:column;min-width:0}
.campaign-nested-row strong{font-size:14px;font-weight:950;line-height:1.2;overflow-wrap:anywhere}
.campaign-nested-row small{margin-top:4px;color:#64748b;font-size:11.5px;font-weight:600;line-height:1.35}
.campaign-nested-row>button span:last-child,.campaign-nested-state{font-size:23px;font-weight:900;color:#64748b}
.campaign-nested-row>input{width:21px;height:21px;margin-right:12px;accent-color:#16a34a;cursor:pointer}
.campaign-nested-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
.campaign-nested-head>button{flex:0 0 auto;min-height:38px;border:none;border-radius:999px;padding:8px 12px;background:#f1f5f9;color:#334155;font-weight:850;cursor:pointer}
.campaign-nested-head>div{display:flex;flex-direction:column;min-width:0}
.campaign-nested-head strong{font-size:16px;font-weight:950;color:#0f172a;line-height:1.2}
.campaign-nested-head small{margin-top:4px;font-size:12px;line-height:1.35;color:#64748b}
.campaign-builder-block-save{width:100%;min-height:46px;border:none;border-radius:15px;padding:11px 14px;background:#16a34a;color:#fff;font:inherit;font-size:13px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(22,163,74,.16)}
.campaign-builder-block-save:disabled{opacity:.58;cursor:wait}
@media(max-width:520px){.campaign-nested-head{flex-direction:column}.campaign-nested-head>button{align-self:flex-start}}


/* =========================
   CAMPAIGN BUILDER PHASE 13
   Landing first, sequential steps, final share only.
========================= */
.campaign-builder-work-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.campaign-builder-work-actions button{flex:1 1 145px;min-height:44px;border:none;border-radius:14px;padding:10px 12px;font-weight:900;cursor:pointer}
.campaign-builder-block-publish{background:#16a34a;color:#fff}
.campaign-builder-block-preview{background:#eff6ff;color:#1d4ed8;border:1px solid rgba(37,99,235,.14)!important}
.campaign-builder-block-next{background:#0f766e;color:#fff}
.campaign-builder-final-actions{display:flex;flex-direction:column;gap:11px;margin-top:8px;padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.09)}
.campaign-builder-final-title{font-size:15px;font-weight:950;color:#0f172a}
.campaign-builder-final-sub{font-size:12.5px;line-height:1.4;color:#64748b}
.campaign-builder-final-state{padding:11px 12px;border-radius:14px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);color:#475569;font-size:12.5px;font-weight:750;line-height:1.4}
.campaign-builder-final-state.is-pending{background:#fff7ed;border-color:rgba(234,88,12,.16);color:#9a3412}
.campaign-builder-final-state.is-current{background:#ecfdf5;border-color:rgba(22,163,74,.18);color:#047857}
.campaign-builder-pending-summary{padding:10px 12px;border-radius:14px;background:#fffaf5;border:1px solid rgba(234,88,12,.12);color:#7c2d12;font-size:12px;font-weight:800;line-height:1.4}
.campaign-builder-pending-summary[hidden]{display:none!important}
.campaign-builder-published-note{padding:10px 12px;border-radius:14px;background:#f0fdf4;border:1px solid rgba(22,163,74,.14);color:#166534;font-size:12px;font-weight:750;line-height:1.4}
.campaign-builder-published-note[hidden]{display:none!important}
.campaign-builder-commercial-notice{display:flex;flex-direction:column;gap:9px;padding:10px 12px;border-radius:14px;background:#fff7ed;border:1px solid rgba(234,88,12,.16);color:#9a3412;font-size:12px;font-weight:800;line-height:1.4}
.campaign-builder-commercial-notice[hidden]{display:none!important}
.campaign-builder-commercial-notice button{align-self:flex-start;border:none;border-radius:999px;padding:7px 11px;background:#fff;color:#9a3412;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 1px 0 rgba(15,23,42,.05)}
.campaign-builder-published-label{margin-bottom:7px;color:#047857;font-size:12px;font-weight:900;line-height:1.35}
.campaign-public-qr{display:flex;flex-direction:column;align-items:center;gap:9px;margin-top:12px;padding:14px;border-radius:17px;background:#f8fafc;border:1px solid rgba(15,23,42,.09);text-align:center}
.campaign-public-qr[hidden]{display:none!important}
.campaign-public-qr-title{font-size:13.5px;font-weight:950;color:#0f172a}
.campaign-public-qr-help{max-width:320px;font-size:11.5px;line-height:1.4;color:#64748b}
.campaign-public-qr-canvas{display:block;width:min(220px,calc(100% - 8px))!important;max-width:220px;height:auto!important;aspect-ratio:1/1;background:#fff;border:8px solid #fff;border-radius:14px;box-shadow:0 8px 22px rgba(15,23,42,.08);image-rendering:pixelated}
.campaign-public-qr-status{min-height:17px;font-size:11.5px;font-weight:750;line-height:1.35;color:#64748b}
.campaign-public-qr-status.is-error{color:#b91c1c}
.campaign-public-qr-download{width:100%;min-height:44px}
.campaign-final-publish{width:100%;min-height:48px}
#campaignConfigResult[hidden]{display:none!important}
.campaign-builder-step.is-complete{border-color:rgba(22,163,74,.34);background:linear-gradient(180deg,#f0fdf4,#fff)}
.campaign-builder-step.is-complete .campaign-builder-step-number{color:#047857}
.campaign-builder-step-status{font-size:11px;font-weight:900;color:#047857;margin-top:5px}

/* =========================
   CAMPAIGN BUILDER CLARITY PASS
   Clear typography, one-level navigation, simple actions.
========================= */
#campaignConfigCard{
  font-family:"Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  color:#0f172a;
}
#campaignConfigCard .settings-label,
#campaignConfigCard .campaign-builder-view-title,
#campaignConfigCard .campaign-nested-head strong{
  font-family:"Segoe UI Variable Display","Segoe UI Variable","Segoe UI",Inter,system-ui,sans-serif;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.16;
}
#campaignConfigCard .settings-label{font-size:20px}
#campaignConfigCard .campaign-builder-view-title{font-size:19px}
#campaignConfigCard .campaign-nested-head strong{font-size:17px}
#campaignConfigCard .campaign-builder-step-title,
#campaignConfigCard .campaign-nested-row strong,
#campaignConfigCard .campaign-config-section-title{font-weight:750;letter-spacing:-.01em}
#campaignConfigCard .campaign-builder-view-sub,
#campaignConfigCard .campaign-builder-step-sub,
#campaignConfigCard .campaign-nested-row small,
#campaignConfigCard .campaign-config-label,
#campaignConfigCard .muted{font-weight:500;line-height:1.45;color:#64748b}
#campaignConfigCard .campaign-config-input,
#campaignConfigCard .campaign-config-textarea{font-size:15px;line-height:1.45}
.campaign-builder-final-actions[hidden]{display:none!important}
.campaign-builder-view.nested-open > .campaign-builder-view-head{display:none!important}
.campaign-builder-view.nested-open > .campaign-builder-work-actions{display:none!important}
.campaign-builder-review-btn{
  flex:1 1 145px;min-height:44px;border:none;border-radius:14px;padding:10px 12px;
  background:#eff6ff;color:#1d4ed8;font:inherit;font-weight:900;cursor:pointer;
  border:1px solid rgba(37,99,235,.14);
}
.campaign-section-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.campaign-section-actions .campaign-builder-block-save,
.campaign-section-actions .campaign-builder-review-btn{flex:1 1 145px;width:auto}

.campaign-builder-collection{display:flex;flex-direction:column;gap:12px;grid-column:1 / -1}
.campaign-builder-collection-list{display:flex;flex-direction:column;gap:12px}
.campaign-builder-collection-item{padding:14px;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#f8fafc}
.campaign-builder-collection-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.campaign-builder-collection-title{font-size:13px;font-weight:850;color:#0f172a}
.campaign-builder-collection-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.campaign-builder-collection-actions button,.campaign-builder-collection-add{min-height:36px;border:1px solid rgba(15,23,42,.1);border-radius:11px;padding:7px 10px;background:#fff;color:#334155;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.campaign-builder-collection-actions button:disabled,.campaign-builder-collection-add:disabled{opacity:.45;cursor:not-allowed}
.campaign-builder-collection-item[hidden],.campaign-builder-collection-list[hidden],.campaign-builder-collection-add[hidden]{display:none!important}
.campaign-collection-group-home,.campaign-collection-group-workspace{display:flex;flex-direction:column;gap:12px}
.campaign-collection-group-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.campaign-collection-group-card{width:100%;min-height:112px;display:flex;align-items:flex-start;gap:10px;text-align:left;border:1px solid rgba(15,23,42,.1);border-radius:16px;padding:13px;background:#fff;color:#0f172a;font:inherit;cursor:pointer}
.campaign-collection-group-card:hover,.campaign-collection-group-card:focus-visible{border-color:rgba(4,120,87,.45);outline:2px solid rgba(4,120,87,.14);outline-offset:1px}
.campaign-collection-group-card.is-unassigned{grid-column:1 / -1;min-height:auto;background:#f8fafc}
.campaign-collection-group-icon{font-size:20px;line-height:1.1}
.campaign-collection-group-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}
.campaign-collection-group-title{font-size:14px;font-weight:900;color:#0f172a}
.campaign-collection-group-description{font-size:12px;line-height:1.4;color:#64748b}
.campaign-collection-group-count{flex:0 0 auto;min-width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:900}
.campaign-collection-group-workspace-head{display:flex;align-items:flex-start;gap:10px}
.campaign-collection-group-workspace-copy{min-width:0;flex:1}
.campaign-collection-group-workspace-title{margin:0;font-size:16px;font-weight:950;color:#0f172a}
.campaign-collection-group-workspace-description{margin:4px 0 0;color:#64748b;font-size:12.5px;line-height:1.45}
.campaign-collection-group-back{flex:0 0 auto;min-height:36px;border:none;border-radius:999px;padding:7px 11px;background:#f1f5f9;color:#334155;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.campaign-collection-group-visibility{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:13px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);font-size:12.5px;font-weight:800;color:#334155}
.campaign-collection-group-guidance{padding:12px;border-radius:14px;background:#ecfdf5;border:1px solid rgba(22,163,74,.16);color:#166534}
.campaign-collection-group-guidance p{margin:5px 0 0;font-size:12.5px;line-height:1.45}
.campaign-collection-group-empty{margin:0;padding:12px;border-radius:13px;background:#f8fafc;border:1px dashed rgba(15,23,42,.15);color:#64748b;font-size:12.5px}
.campaign-builder-collection-add{align-self:flex-start;background:#ecfdf5;color:#047857;border-color:rgba(22,163,74,.18)}
.campaign-builder-collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.campaign-builder-collection-grid .campaign-config-field.full,.campaign-builder-collection-grid .campaign-builder-switch-row.full{grid-column:1 / -1}
.campaign-builder-product-refs{grid-column:1 / -1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:11px;border-radius:13px;background:#fff;border:1px solid rgba(15,23,42,.08)}
.campaign-builder-product-refs-list{display:flex;flex-direction:column;gap:7px;max-height:min(20rem,55dvh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.campaign-builder-product-ref{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:11px;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}
.campaign-builder-product-choice{display:flex;align-items:flex-start;gap:9px;min-width:0;cursor:pointer}
.campaign-builder-product-choice input{flex:0 0 auto;margin-top:3px;width:17px;height:17px}
.campaign-builder-product-ref-copy{min-width:0;overflow-wrap:anywhere}
.campaign-builder-product-ref-name{display:block;color:#1e293b;font-size:13px;font-weight:750;line-height:1.4}
.campaign-builder-product-ref-meta{display:block;margin-top:3px;color:#64748b;font-size:11px;line-height:1.35}
.campaign-builder-product-quantity{display:flex;gap:7px;align-items:end;justify-content:flex-end}
.campaign-builder-product-quantity-label{display:flex;flex-direction:column;gap:3px;color:#475569;font-size:11px}
.campaign-builder-product-quantity input{box-sizing:border-box;width:66px;min-height:38px;text-align:center;border:1px solid #cbd5e1;border-radius:8px;font:inherit;font-size:14px;background:#fff}
.campaign-builder-product-quantity button{flex:0 0 auto;width:38px;min-height:38px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-size:18px;cursor:pointer}
.campaign-builder-product-quantity button:disabled{opacity:.4;cursor:default}
.campaign-builder-product-quantity input[aria-invalid="true"]{border-color:#b91c1c}
.campaign-builder-product-refs [hidden],.campaign-builder-collection [data-campaign-collection-field-wrapper][hidden]{display:none!important}
.campaign-builder-product-refs :focus-visible{outline:2px solid #16a34a;outline-offset:2px}
.campaign-content-panel-offer-quantity{display:inline-block;margin-top:4px;padding:2px 7px;border-radius:8px;background:#dcfce7;color:#166534;font-size:12px;font-weight:800}
@media(max-width:620px){.campaign-builder-collection-grid,.campaign-collection-group-navigation{grid-template-columns:1fr}.campaign-builder-collection-head{align-items:flex-start;flex-direction:column}.campaign-builder-collection-actions{justify-content:flex-start}.campaign-collection-group-card.is-unassigned{grid-column:auto}.campaign-collection-group-workspace-head{flex-direction:column}.campaign-collection-group-back{align-self:flex-start}}



/* Commercial editor hierarchy; scoped selectors do not restyle the platform. */
.campaign-builder-collection-item:has(.campaign-builder-product-refs){background:#edf7f5;border:1px solid #afd5cc;border-left:4px solid #21806b;padding:16px;box-shadow:0 3px 10px rgba(20,80,65,.04)}
.campaign-builder-collection-item:has(.campaign-builder-product-refs) .campaign-builder-collection-title{font-size:15px;color:#154b40}
.campaign-builder-product-ref{background:#fff;border:1px solid #dde5ea;padding:10px}
.campaign-builder-product-family{display:block;color:#36536c;font-size:11px;font-weight:800;margin-bottom:3px}
.campaign-builder-product-quantity{margin-top:-2px;align-items:center;gap:5px}
.campaign-builder-product-quantity-label{flex-direction:row;align-items:center;gap:7px}
.campaign-builder-product-quantity input{width:53px;min-height:34px}
.campaign-builder-product-quantity button{width:34px;min-height:34px}
.campaign-commercial-market-bar,.campaign-program-price-control{display:flex;flex-direction:column;gap:10px;padding:14px;background:#fff;border:1px solid #cbd5e1;border-radius:14px;margin:12px 0;min-width:0}
.campaign-program-price-control{grid-column:1 / -1;margin:0}
.campaign-commercial-market-bar label,.campaign-program-price-control label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13px}
.campaign-commercial-market-bar p,.campaign-program-price-control p{margin:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.campaign-commercial-market-actions{display:flex;flex-direction:column;gap:7px}
.campaign-commercial-market-actions button,.campaign-program-price-control button,.campaign-commercial-dialog button{min-height:42px;border-radius:10px;padding:9px 12px;background:#eff6ff;border:1px solid #b9ceeb;color:#173f72;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
.campaign-commercial-market-actions button:disabled,.campaign-program-price-control button:disabled{opacity:.5;cursor:not-allowed}
.campaign-commercial-market-actions .campaign-commercial-primary{background:#176855;color:white;border-color:#176855}
.campaign-commercial-dialog{max-width:min(420px,85vw);border:1px solid #cbd5e1;border-radius:18px;padding:24px;color:#102d3c}
.campaign-commercial-dialog::backdrop{background:rgba(10,20,35,.45)}
.campaign-commercial-dialog button{display:block;width:100%;margin-top:9px}
.campaign-commercial-public-context{padding:12px;background:#eff6ff;color:#224468;border:1px solid #c9dbf0;border-radius:12px}
.campaign-content-panel-offer-product-description{font-size:13px;line-height:1.5;color:#475569;margin:6px 0}
.campaign-preparation-gallery{margin-top:2px;padding-top:10px;border-top:1px solid rgba(15,23,42,.08)}
.campaign-preparation-gallery-title{margin:0;color:#0f172a;font-size:14px;font-weight:900;line-height:1.3}
.campaign-preparation-gallery-subtitle{margin:4px 0 8px;color:#64748b;font-size:11px;line-height:1.4}
.campaign-preparation-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.campaign-preparation-gallery-item{appearance:none;width:100%;min-width:0;padding:5px;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#f8fafc;color:#1e293b;font:inherit;cursor:pointer;text-align:center;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.campaign-preparation-gallery-item:hover{background:#fff;border-color:rgba(15,23,42,.16)}
.campaign-preparation-gallery-item:active{transform:translateY(1px)}
.campaign-preparation-gallery-item:focus-visible{outline:3px solid rgba(59,130,246,.26);outline-offset:2px}
.campaign-preparation-gallery-item img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:9px;background:#fff}
.campaign-preparation-gallery-item span{display:block;margin-top:5px;font-size:10px;font-weight:850;line-height:1.2}
.campaign-content-panel-offer-cta:disabled{opacity:.6;cursor:not-allowed}

/* =========================
   PANA DISTRIBUIDOR — HEADER QUICK ACTIONS
   Same visual language as Campaign: one horizontal row under the brand.
   ========================= */
:root{
  --distributor-actions-h:40px;
}

.distributor-mode-dock{
  display:none;
  align-items:center;
  gap:8px;

  width:100%;
  min-width:0;
  min-height:var(--distributor-actions-h);
  padding:0 2px;

  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.distributor-mode-dock::-webkit-scrollbar{
  display:none;
}

.distributor-mode-dock[hidden]{
  display:none !important;
}

body.distributor-mode-dock-active .distributor-mode-dock{
  display:flex;
}

.distributor-mode-btn{
  flex:0 0 auto;
  min-width:0;
  min-height:36px;
  border:none;
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;

  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:6px;

  color:#ffffff;
  border:1px solid rgba(255,255,255,.36);
  font:inherit;
  font-size:13px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;

  box-shadow:
    0 8px 18px rgba(15,23,42,.14),
    inset 0 1px 0 rgba(255,255,255,.32);

  transition:
    transform .08s ease,
    box-shadow .16s ease,
    filter .16s ease;
}

.distributor-mode-btn[data-distributor-mode="chat"]{
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
}

.distributor-mode-btn[data-distributor-mode="read"]{
  background:linear-gradient(135deg,#3b82f6 0%,#1d4ed8 100%);
}

.distributor-mode-btn[data-distributor-mode="strategies"]{
  background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);
}

.distributor-mode-btn[data-distributor-mode="interpreter"]{
  background:linear-gradient(135deg,#14b8a6 0%,#0f766e 100%);
}

.distributor-mode-btn[data-distributor-action="rewards"]{
  background:linear-gradient(135deg,#f59e0b 0%,#b45309 100%);
}

.distributor-mode-btn:hover{
  filter:saturate(1.08) brightness(1.02);
  box-shadow:
    0 10px 22px rgba(15,23,42,.18),
    inset 0 1px 0 rgba(255,255,255,.36);
}

.distributor-mode-btn:active{
  transform:translateY(1px) scale(.99);
}

.distributor-mode-btn.active{
  box-shadow:
    0 0 0 2px rgba(15,23,42,.12),
    0 10px 22px rgba(15,23,42,.18),
    inset 0 1px 0 rgba(255,255,255,.42);
}

.distributor-mode-btn[hidden]{
  display:none !important;
}

.distributor-mode-icon{
  font-size:14px;
  line-height:1;
}

.distributor-mode-label{
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.distributor-mode-dock-active{
  --header-h:114px;
}

body.distributor-mode-dock-active .topbar-tags{
  display:none !important;
}

body.distributor-mode-dock-active .viewport{
  top:calc(var(--header-h) + 12px);
  bottom:var(--footer-h);
}

body.distributor-mode-dock-active .topbar.topbar-mock{
  height:var(--header-h);
  padding-bottom:8px;
}

body.distributor-mode-dock-active.reading-mode .reader-panel{
  top:var(--header-h);
  bottom:0;
}

/* =========================
   PANA DISTRIBUTOR — MAIN CHAT VISUAL REFRESH V1
   Presentation only. Existing modes, handlers and routing stay unchanged.
   ========================= */
body.distributor-mode-dock-active{
  --header-h:108px;
  --footer-h:78px;
  background:#f6faf7;
}

body.distributor-mode-dock-active .topbar.topbar-mock{
  height:var(--header-h);
  padding:8px 14px 7px;
  gap:8px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px) saturate(1.08);
  border-bottom:1px solid rgba(15,23,42,.065);
  box-shadow:0 8px 24px rgba(15,23,42,.045);
}

body.distributor-mode-dock-active .topbar-mock .topbar-main{
  min-height:44px;
}

body.distributor-mode-dock-active .topbar-mock .topbar-main-left{
  gap:9px;
}

body.distributor-mode-dock-active .topbar-mock .hbtn{
  width:42px;
  min-width:42px;
  height:42px;
  min-height:42px;
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid rgba(15,23,42,.055);
  border-radius:13px;
  background:#fff;
  color:#334155;
}

body.distributor-mode-dock-active .topbar-mock .hbtn svg{
  width:22px;
  height:22px;
  stroke-width:2;
}

body.distributor-mode-dock-active .topbar-mock .brand-mock{
  gap:8px;
}

body.distributor-mode-dock-active .topbar-mock .brand-mock-name{
  font-size:25px;
  letter-spacing:.1px;
}

body.distributor-mode-dock-active .topbar-mock .brand-mock-status{
  gap:5px;
  font-size:11.5px;
  color:#15803d;
}

body.distributor-mode-dock-active .topbar-mock .status-dot{
  width:8px;
  height:8px;
  box-shadow:0 0 0 3px rgba(22,163,74,.10);
}

body.distributor-mode-dock-active .topbar-mock .distributor-market-indicator{
  margin-top:1px;
  font-size:9.5px;
  color:#64748b;
}

body.distributor-mode-dock-active .distributor-mode-dock{
  gap:7px;
  min-height:38px;
  padding:0;
}

body.distributor-mode-dock-active .distributor-mode-btn,
body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="chat"],
body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="read"],
body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="strategies"],
body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="interpreter"],
body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-action="rewards"]{
  min-height:38px;
  padding:6px 10px 6px 7px;
  gap:7px;
  border:1px solid rgba(15,23,42,.12);
  border-radius:14px;
  background:#fff;
  color:#334155;
  font-size:12px;
  font-weight:900;
  box-shadow:0 4px 12px rgba(15,23,42,.075);
  filter:none;
}

body.distributor-mode-dock-active .distributor-mode-btn:hover{
  border-color:rgba(22,163,74,.28);
  background:#fff;
  box-shadow:0 5px 14px rgba(15,23,42,.09);
  filter:none;
}

body.distributor-mode-dock-active .distributor-mode-btn.active{
  border-color:rgba(22,163,74,.42);
  background:#e8f9ef;
  color:#047857;
  box-shadow:
    0 5px 16px rgba(22,163,74,.14),
    inset 0 0 0 1px rgba(22,163,74,.08);
}

body.distributor-mode-dock-active .distributor-mode-icon{
  width:27px;
  height:27px;
  flex:0 0 27px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#f1f5f9;
  color:#475569;
  font-size:0;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.045);
}

body.distributor-mode-dock-active .distributor-mode-btn.active .distributor-mode-icon{
  background:#d1fae5;
  color:#15803d;
  box-shadow:inset 0 0 0 1px rgba(22,163,74,.13);
}

body.distributor-mode-dock-active .distributor-mode-icon svg{
  width:16px;
  height:16px;
  stroke-width:2;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .viewport{
  top:calc(var(--header-h) + 8px);
  bottom:var(--footer-h);
  padding:14px 12px 26px;
  background:
    radial-gradient(circle at 92% 0%, rgba(34,197,94,.055), transparent 28%),
    linear-gradient(180deg,#f8fbf9 0%,#f4f8f5 100%);
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .messages{
  width:min(820px,100%);
  margin:0 auto;
  gap:12px;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .msg{
  box-shadow:none;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .msg.assistant{
  width:min(760px,100%);
  max-width:100%;
  align-self:flex-start;
  padding:18px 18px 14px;
  border:1px solid rgba(15,23,42,.065);
  border-radius:22px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 30px rgba(15,23,42,.045);
  font-size:16px;
  line-height:1.58;
  color:#172033;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .msg.user{
  max-width:min(650px,86%);
  padding:11px 14px;
  border:1px solid rgba(22,163,74,.12);
  border-radius:20px 20px 7px 20px;
  background:#ecfdf5;
  box-shadow:none;
  font-size:15.5px;
  line-height:1.45;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .msg.assistant .msg-actions{
  margin-top:13px;
  padding-top:9px;
  border-top:1px solid rgba(15,23,42,.055);
  opacity:.5;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .msg.assistant:hover .msg-actions{
  opacity:.78;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .footer{
  min-height:var(--footer-h);
  padding:8px 12px calc(10px + var(--safe-bottom));
  background:linear-gradient(
    180deg,
    rgba(244,248,245,0) 0%,
    rgba(244,248,245,.92) 26%,
    #f4f8f5 100%
  );
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .footer .composer{
  width:min(820px,100%);
  min-height:60px;
  margin:0 auto;
  padding:7px 68px 7px 10px;
  gap:7px;
  border:1px solid rgba(15,23,42,.075);
  border-radius:22px;
  background:rgba(255,255,255,.97);
  box-shadow:0 12px 30px rgba(15,23,42,.07);
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .footer.focused .composer{
  border-color:rgba(22,163,74,.25);
  box-shadow:0 0 0 3px rgba(22,163,74,.08),0 12px 30px rgba(15,23,42,.07);
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .input{
  min-height:44px;
  padding:10px 7px 8px;
  font-size:16px;
  line-height:1.35;
  color:#172033;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .footer .btn.mic{
  width:42px;
  min-width:42px;
  height:42px;
  min-height:42px;
  padding:0;
  border-radius:14px;
  background:#f8fafc;
  color:#334155;
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .send-fixed{
  right:9px;
  bottom:8px;
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  padding:0;
  border-radius:15px;
  background:linear-gradient(180deg,#22c55e,#16a34a);
  box-shadow:0 7px 18px rgba(22,163,74,.22);
}

body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .send-fixed:disabled{
  background:#dbe5de;
  color:#7c8b81;
  box-shadow:none;
  opacity:1;
}

@media(max-width:520px){
  body.distributor-mode-dock-active{
    --header-h:106px;
    --footer-h:76px;
  }

  body.distributor-mode-dock-active .topbar.topbar-mock{
    padding-left:10px;
    padding-right:10px;
  }

  body.distributor-mode-dock-active .distributor-mode-dock{
    gap:6px;
  }

  body.distributor-mode-dock-active .distributor-mode-btn,
  body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="chat"],
  body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="read"],
  body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="strategies"],
  body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-mode="interpreter"],
  body.distributor-mode-dock-active .distributor-mode-btn[data-distributor-action="rewards"]{
    min-height:36px;
    padding:5px 9px 5px 6px;
    font-size:11.5px;
  }

  body.distributor-mode-dock-active .distributor-mode-icon{
    width:25px;
    height:25px;
    flex-basis:25px;
  }

  body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .viewport{
    padding-left:10px;
    padding-right:10px;
  }

  body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .msg.assistant{
    padding:16px 16px 13px;
    border-radius:20px;
    font-size:15.5px;
    line-height:1.56;
  }

  body.distributor-mode-dock-active:not(.distributor-hub-open):not(.reading-mode) .footer{
    padding-left:10px;
    padding-right:10px;
  }
}

/* =========================
   PANA DISTRIBUTOR — ADAPTIVE HOME V1
   Presentation-only layer over existing chat, memory and mode authorities.
   ========================= */
.distributor-adaptive-home{
  width:min(820px,100%);
  margin:0 auto;
  padding:2px 0 30px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.distributor-adaptive-home[hidden]{display:none!important}
.distributor-adaptive-hero{
  position:relative;
  padding:20px 64px 19px 19px;
  border:1px solid rgba(22,163,74,.14);
  border-radius:24px;
  background:
    radial-gradient(circle at 88% 18%,rgba(34,197,94,.12),transparent 28%),
    linear-gradient(145deg,#f0fdf4 0%,#ffffff 74%);
  box-shadow:0 10px 28px rgba(15,23,42,.045);
}
.distributor-adaptive-welcome-voice{
  position:absolute;
  top:16px;
  right:16px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(22,163,74,.16);
  border-radius:12px;
  background:rgba(255,255,255,.86);
  color:#15803d;
  box-shadow:0 6px 16px rgba(15,23,42,.06);
  backdrop-filter:blur(10px);
}
.distributor-adaptive-welcome-voice[hidden]{display:none!important}
.distributor-adaptive-welcome-toggle{
  position:absolute;top:62px;right:16px;max-width:86px;box-sizing:border-box;padding:6px 9px;
  border:1px solid rgba(22,163,74,.2);border-radius:999px;
  background:rgba(255,255,255,.9);color:#166534;
  font:inherit;font-size:11px;font-weight:700;cursor:pointer;
}
.distributor-adaptive-welcome-toggle[aria-pressed="false"]{color:#475569;border-color:#cbd5e1}
.distributor-adaptive-welcome-toggle[hidden]{display:none!important}
/* Reserve a right-side control rail while Auto is visible so long greetings
   never sit behind the speaker/Auto stack on mobile or desktop. */
.distributor-adaptive-hero:has(.distributor-adaptive-welcome-toggle:not([hidden])){
  padding-right:118px;
}
.distributor-adaptive-welcome-voice svg{width:18px;height:18px}
.pana-live-home{
  position:fixed;top:calc(8px + var(--safe-top));left:12px;z-index:2;
  display:flex;align-items:center;gap:7px;
  border:1px solid rgba(15,23,42,.1);background:rgba(255,255,255,.86);
  color:#0f172a;border-radius:999px;padding:10px 14px;
  font:inherit;font-size:13px;font-weight:800;
  box-shadow:0 10px 28px rgba(15,23,42,.08);backdrop-filter:blur(16px);cursor:pointer;
}
.pana-live-home[hidden]{display:none!important}
.pana-live-home svg{width:16px;height:16px}
/* Universal Live identity: one immersive layout and one approved PANA mark
   across authorized Distributor, Client and Campaign/Profile surfaces. */
.pana-live-controls{display:contents}
.pana-live-language-control{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;font-size:12px;color:#64748b}
.pana-live-language-control select{max-width:190px;min-height:35px;border:1px solid #cbd5e1;border-radius:9px;padding:6px 9px;background:#fff;color:#0f172a}
.pana-live-mic-retry{display:block;margin:7px auto;padding:9px 14px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#0f172a;font:inherit;font-size:12px;cursor:pointer}
.pana-live-mic-retry[hidden]{display:none!important}
body.pana-live-open .pana-live{
  padding:calc(24px + var(--safe-top)) 18px calc(22px + var(--safe-bottom));
}
body.pana-live-open .pana-live-shell{
  min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 46px);
  gap:14px;
}
body.pana-live-open .pana-live-orbit{
  width:min(92vw,430px);
  height:clamp(300px,85vw,390px);
  margin:0 auto;
}
body.pana-live-open .pana-live-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:16px;
  width:100%;
  margin:8px auto 12px;
}
body.pana-live-open .pana-live-home,
body.pana-live-open .pana-live-exit{
  position:static;
  top:auto;
  left:auto;
  right:auto;
  z-index:auto;
  min-height:46px;
  padding:11px 20px;
  font-size:14px;
}
/* The same HD mark replaces only the visual orb; access and voice stay unchanged. */
body.pana-live-open .pana-live-orb{
  width:clamp(210px,70vw,310px);
  height:clamp(250px,82vw,365px);
  border-radius:0;
  background:transparent url('/assets/pana-distributor-live-symbol-hd.webp') center / contain no-repeat;
  box-shadow:none;
  animation:panaDistributorMarkBreathe 4s ease-in-out infinite;
}
body.pana-live-open .pana-live-orb-label,
body.pana-live-open .pana-live-orb::before,
body.pana-live-open .pana-live-orb::after{
  display:none;
}
body.pana-live-open .pana-live-orb:active{
  transform:scale(.975);
}
body.pana-live-open .pana-live[data-state="requesting"] .pana-live-orb,
body.pana-live-open .pana-live[data-state="listening"] .pana-live-orb{
  animation:panaDistributorMarkListen 1.7s ease-in-out infinite;
}
body.pana-live-open .pana-live[data-state="thinking"] .pana-live-orb{
  animation:panaDistributorMarkBreathe 2.8s ease-in-out infinite;
}
body.pana-live-open .pana-live[data-state="speaking"] .pana-live-orb{
  animation:panaDistributorMarkSpeak 1.05s ease-in-out infinite alternate;
}
@keyframes panaDistributorMarkBreathe{0%,100%{transform:scale(.985)}50%{transform:scale(1.02)}}
@keyframes panaDistributorMarkListen{0%,100%{transform:scale(.98)}50%{transform:scale(1.035)}}
@keyframes panaDistributorMarkSpeak{from{transform:scale(.97)}to{transform:scale(1.045)}}
@media(prefers-reduced-motion:reduce){
  body.pana-live-open .pana-live-orb{animation:none!important}
}
/* Public PANA Live entry retains existing approved mark and control layout. */
#campaignLiveShareCard[hidden]{display:none!important}
.campaign-live-share-card{margin-top:22px;padding:18px;border:1px solid rgba(22,163,74,.23);background:linear-gradient(160deg,#f4fbf7,#fff);border-radius:18px;display:grid;gap:12px}
.campaign-live-share-card strong{font-size:20px;color:#166534}
.campaign-live-share-description{font-size:14px;line-height:1.45;color:#536174}
.campaign-live-share-card .campaign-config-link{width:100%;box-sizing:border-box;min-height:66px}
body.pana-live-public-entry .pana-live-title,body.pana-live-public-entry .pana-live-nodes{display:none!important}
body.pana-live-public-entry .pana-live-status{display:block!important;color:#334155;text-align:center;font-weight:750}
body.pana-live-public-entry .pana-live-transcript{display:block!important;color:#475569;text-align:center;min-height:24px}
.pana-live-language-hint[hidden]{display:none!important}
body.pana-live-public-entry .pana-live-language-hint{display:block;max-width:85vw;text-align:center;margin:0 auto;font-size:13px;font-weight:500;line-height:1.4;color:#64748b}
body.pana-live-public-entry .pana-live-shell{justify-content:center}
body.pana-live-public-entry .pana-live-orbit{height:clamp(340px,92vw,470px)}
body.pana-live-public-entry .pana-live-orb{width:clamp(245px,78vw,355px);height:clamp(290px,89vw,410px)}
body.pana-live-public-entry .pana-live-controls{position:absolute;bottom:calc(24px + var(--safe-bottom))}
body.pana-live-public-entry .pana-live-home,body.pana-live-public-entry .pana-live-exit{font-size:0;width:46px;padding:11px}
body.pana-live-public-entry .pana-live-exit::after{content:"×";font-size:25px;line-height:20px}
body.pana-live-public-entry .pana-live-home span{display:none}
body.pana-live-public-entry .pana-live-home svg{width:20px;height:20px}
body.pana-live-open .pana-live-title{margin-top:0}
body.pana-live-open .topbar,
body.pana-live-open .topbar-mock,
body.pana-live-open .footer{
  visibility:hidden;
  pointer-events:none;
}
body.pana-live-open .viewport{
  top:0;
  bottom:0;
  z-index:2147481099;
}
.distributor-adaptive-live-action{
  border-color:rgba(59,130,246,.16);
  background:linear-gradient(145deg,#f4f8ff,#ffffff);
}
.distributor-adaptive-live-action .distributor-adaptive-action-icon{
  background:#eef4ff;
  color:#3759c7;
  box-shadow:inset 0 0 0 1px rgba(59,130,246,.08);
}
.distributor-adaptive-eyebrow{
  display:flex;
  align-items:center;
  gap:7px;
  margin-bottom:10px;
  color:#047857;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.distributor-adaptive-status-dot{
  width:8px;height:8px;flex:0 0 8px;border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.10);
}
.distributor-adaptive-title{
  margin:0;
  color:#0f172a;
  font-size:clamp(27px,6.5vw,38px);
  font-weight:950;
  letter-spacing:-.9px;
  line-height:1.06;
}
.distributor-adaptive-sub{
  max-width:620px;
  margin:10px 0 0;
  color:#5b6878;
  font-size:14px;
  line-height:1.55;
}
.distributor-adaptive-continue{
  width:100%;
  min-height:92px;
  display:flex;
  align-items:center;
  gap:13px;
  padding:15px;
  border:1px solid rgba(4,120,87,.20);
  border-radius:21px;
  background:linear-gradient(135deg,#166534 0%,#047857 100%);
  color:#fff;
  text-align:left;
  box-shadow:0 12px 28px rgba(4,120,87,.16);
}
.distributor-adaptive-continue[hidden]{display:none!important}
.distributor-adaptive-continue-icon{
  width:44px;height:44px;flex:0 0 44px;
  display:grid;place-items:center;
  border-radius:14px;
  background:rgba(255,255,255,.13);
  color:#fff;
}
.distributor-adaptive-continue-icon svg{width:21px;height:21px}
.distributor-adaptive-continue-copy{
  min-width:0;flex:1;
  display:flex;flex-direction:column;gap:5px;
}
.distributor-adaptive-continue-label{
  font-size:12px;font-weight:900;letter-spacing:.04em;
  text-transform:uppercase;opacity:.80;
}
.distributor-adaptive-continue-preview{
  display:-webkit-box;
  overflow:hidden;
  color:#fff;
  font-size:15px;
  font-weight:850;
  line-height:1.35;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.distributor-adaptive-continue-arrow{
  width:34px;height:34px;flex:0 0 34px;
  display:grid;place-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}
.distributor-adaptive-continue-arrow svg{width:17px;height:17px}
.distributor-adaptive-section-head{
  padding:2px 2px 0;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.distributor-adaptive-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
.distributor-adaptive-action{
  position:relative;
  min-height:116px;
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:15px 14px;
  border:1px solid rgba(15,23,42,.09);
  border-radius:20px;
  background:#fff;
  color:#172033;
  text-align:left;
  box-shadow:0 7px 20px rgba(15,23,42,.05);
}
.distributor-adaptive-action[hidden]{display:none!important}
.distributor-adaptive-action-primary{
  grid-column:1/-1;
  min-height:106px;
  border-color:rgba(22,163,74,.22);
  background:linear-gradient(145deg,#ecfdf5,#ffffff);
}
.distributor-adaptive-action-icon{
  width:40px;height:40px;flex:0 0 40px;
  display:grid;place-items:center;
  border-radius:13px;
  background:#ecfdf5;
  color:#15803d;
  box-shadow:inset 0 0 0 1px rgba(22,163,74,.08);
}
.distributor-adaptive-action-icon svg{width:20px;height:20px}
.distributor-adaptive-action-copy{
  min-width:0;flex:1;
  display:flex;flex-direction:column;gap:5px;
  padding-right:13px;
}
.distributor-adaptive-action-copy strong{
  color:#0f172a;font-size:14.5px;font-weight:950;line-height:1.25;
}
.distributor-adaptive-action-copy span{
  color:#64748b;font-size:11.5px;font-weight:650;line-height:1.45;
}
.distributor-adaptive-action-arrow{
  position:absolute;
  right:13px;
  bottom:13px;
  width:17px;height:17px;
  color:#94a3b8;
}
.distributor-adaptive-action:active,
.distributor-adaptive-continue:active{transform:scale(.988)}
body.distributor-adaptive-home-open .messages{display:none!important}
body.distributor-adaptive-home-open:not(.distributor-hub-open):not(.reading-mode) .viewport{overflow-y:auto}
@media(max-width:520px){
  .distributor-adaptive-home{gap:12px;padding-bottom:24px}
  .distributor-adaptive-hero{padding:18px 58px 17px 16px;border-radius:21px}
  .distributor-adaptive-title{font-size:29px}
  .distributor-adaptive-sub{font-size:13px}
  .distributor-adaptive-continue{min-height:88px;padding:13px}
  .distributor-adaptive-actions{gap:9px}
  .distributor-adaptive-action{min-height:112px;padding:13px 12px;border-radius:18px}
  .distributor-adaptive-action-primary{min-height:102px}
  .distributor-adaptive-action-icon{width:37px;height:37px;flex-basis:37px}
}

/* =========================
   DISTRIBUTOR LEARNING / STRATEGY HUB
   ========================= */
.distributor-hub{
  position:fixed;
  left:50%;
  top:calc(var(--header-h) + 8px);
  bottom:calc(var(--footer-h) + 10px);
  transform:translateX(-50%);
  z-index:18;

  width:min(900px, calc(100vw - 12px));
  overflow:hidden;

  border-radius:26px;
  background:rgba(248,250,252,.98);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 20px 50px rgba(15,23,42,.14);
  backdrop-filter:blur(12px) saturate(1.08);
}

.distributor-hub[hidden]{
  display:none !important;
}

.distributor-hub-card{
  height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.distributor-hub-header{
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:16px 16px 12px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(15,23,42,.07);
}

.distributor-hub-back{
  flex:0 0 auto;
  min-width:40px;
  min-height:40px;
  border:none;
  border-radius:14px;
  background:#f1f5f9;
  color:#334155;
  cursor:pointer;
  font-size:19px;
  font-weight:900;
}

.distributor-hub-back[hidden]{
  display:none !important;
}

.distributor-hub-heading{
  flex:1;
  min-width:0;
}

.distributor-hub-title{
  color:#0f172a;
  font-size:20px;
  font-weight:950;
  line-height:1.18;
}

.distributor-hub-subtitle{
  margin-top:5px;
  color:#64748b;
  font-size:13px;
  font-weight:600;
  line-height:1.38;
}

.distributor-hub-content{
  flex:1;
  min-height:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:14px;
}

.distributor-hub-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.distributor-nav-item{
  width:100%;
  min-height:66px;
  border:none;
  border-radius:20px;
  padding:13px 14px;
  cursor:pointer;

  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;

  background:#ffffff;
  color:#0f172a;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 7px 18px rgba(15,23,42,.05);
}

.distributor-nav-item:active:not(:disabled){
  transform:translateY(1px);
}

.distributor-nav-item.priority{
  min-height:92px;
  border-color:rgba(22,163,74,.28);
  background:linear-gradient(135deg,#f0fdf4 0%,#ffffff 100%);
  box-shadow:0 10px 24px rgba(22,163,74,.10);
}

.distributor-nav-item:disabled,
.distributor-nav-item.placeholder{
  cursor:default;
  opacity:.72;
  background:#f8fafc;
}

.distributor-nav-icon{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border-radius:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.07);
  font-size:22px;
}

.distributor-nav-item.priority .distributor-nav-icon{
  width:50px;
  height:50px;
  background:#ffffff;
  border-color:rgba(22,163,74,.18);
}

.distributor-nav-copy{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.distributor-nav-title{
  display:block;
  width:100%;
  color:#0f172a;
  font-size:15px;
  font-weight:900;
  line-height:1.2;
}

.distributor-nav-item.priority .distributor-nav-title{
  color:#166534;
  font-size:11.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.distributor-nav-subtitle{
  display:block;
  width:100%;
  margin-top:4px;
  color:#475569;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}

.distributor-nav-item.priority .distributor-nav-subtitle{
  color:#0f172a;
  font-size:16px;
  font-weight:900;
  line-height:1.25;
}

.distributor-nav-description{
  display:block;
  width:100%;
  margin-top:5px;
  color:#64748b;
  font-size:12px;
  font-weight:600;
  line-height:1.38;
}

.distributor-nav-arrow{
  flex:0 0 auto;
  color:#94a3b8;
  font-size:21px;
  font-weight:900;
}

.distributor-nav-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  margin-top:7px;
  padding:5px 9px;
  border-radius:999px;
  background:#f1f5f9;
  color:#64748b;
  font-size:11px;
  font-weight:850;
}

.distributor-nav-badge.allowed{
  background:#ecfdf5;
  color:#047857;
}

.distributor-strategy-detail{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.distributor-strategy-hero{
  padding:18px;
  border-radius:22px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.08);
  text-align:center;
}

.distributor-strategy-hero-icon{
  width:58px;
  height:58px;
  margin:0 auto 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#ecfdf5;
  font-size:29px;
}

.distributor-strategy-hero-title{
  color:#0f172a;
  font-size:20px;
  font-weight:950;
}

.distributor-strategy-hero-subtitle{
  margin-top:6px;
  color:#64748b;
  font-size:13px;
  font-weight:650;
  line-height:1.4;
}

.distributor-strategy-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.distributor-strategy-action{
  min-height:58px;
  border:none;
  border-radius:18px;
  padding:12px 14px;
  cursor:pointer;
  font:inherit;
  font-size:14px;
  font-weight:900;
}

.distributor-strategy-action.primary{
  background:linear-gradient(135deg,#22c55e 0%,#047857 100%);
  color:#ffffff;
}

.distributor-strategy-action.secondary{
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid rgba(37,99,235,.14);
}

.distributor-strategy-access{
  padding:16px;
  border-radius:22px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.08);
}

.distributor-strategy-access-title{
  color:#0f172a;
  font-size:15px;
  font-weight:900;
}

.distributor-strategy-access-sub{
  margin-top:5px;
  color:#64748b;
  font-size:12.5px;
  line-height:1.4;
}

.distributor-strategy-id-form{
  display:flex;
  gap:8px;
  margin-top:12px;
}

.distributor-strategy-id-input{
  flex:1;
  min-width:0;
  min-height:46px;
  border-radius:15px;
  border:1px solid rgba(22,163,74,.28);
  padding:10px 12px;
  background:#ffffff;
  color:#0f172a;
  font:inherit;
  font-size:15px;
  text-transform:uppercase;
  outline:none;
}

.distributor-strategy-id-input:focus{
  border-color:rgba(22,163,74,.62);
  box-shadow:0 0 0 3px rgba(22,163,74,.12);
}

.distributor-strategy-id-btn{
  flex:0 0 auto;
  min-height:46px;
  border:none;
  border-radius:15px;
  padding:10px 14px;
  background:#16a34a;
  color:#ffffff;
  cursor:pointer;
  font-weight:900;
}

.distributor-strategy-id-btn:disabled{
  opacity:.62;
  cursor:wait;
}

.distributor-strategy-status{
  min-height:18px;
  margin-top:9px;
  color:#475569;
  font-size:12.5px;
  font-weight:700;
  line-height:1.35;
}

.distributor-strategy-status.error{
  color:#b91c1c;
}

.distributor-strategy-status.success{
  color:#047857;
}

.distributor-strategy-pin-btn{
  width:100%;
  min-height:42px;
  margin-top:10px;
  border:none;
  border-radius:14px;
  background:#f1f5f9;
  color:#475569;
  cursor:pointer;
  font:inherit;
  font-size:12.5px;
  font-weight:850;
}

body.distributor-hub-open .viewport{
  visibility:hidden;
  pointer-events:none;
}

body.distributor-hub-open .footer{
  display:none;
}

/* Read and Strategies are explicit PANA modes, not overlays on top of chat.
   The quick-action row stays in the header and the hub owns the workspace
   below it. */
body.distributor-hub-open .distributor-hub{
  top:calc(var(--header-h) + 6px);
  bottom:calc(8px + var(--safe-bottom));
}

@media(max-width:520px){
  .distributor-mode-dock{
    gap:6px;
    padding:0 1px;
  }

  .distributor-mode-btn{
    min-height:34px;
    padding:7px 10px;
    font-size:12px;
  }

  .distributor-mode-icon{
    font-size:13px;
  }

  .distributor-hub{
    width:calc(100vw - 8px);
    top:calc(var(--header-h) + 4px);
    border-radius:20px;
  }

  .distributor-hub-header{
    padding:13px 12px 10px;
  }

  .distributor-hub-content{
    padding:10px;
  }

  /* Document rows stay easy to tap on phones without consuming the whole screen.
     This applies to product libraries and strategy Reader lists only; the
     priority learning cards keep their larger hierarchy. */
  .distributor-document-list{
    gap:6px;
  }

  .distributor-document-list .distributor-nav-item{
    min-height:48px;
    padding:8px 10px;
    gap:8px;
    border-radius:15px;
  }

  .distributor-document-list .distributor-nav-icon{
    width:32px;
    height:32px;
    border-radius:10px;
    font-size:16px;
  }

  .distributor-document-list .distributor-nav-title{
    font-size:12.5px;
    line-height:1.22;
    font-weight:800;
  }

  .distributor-document-list .distributor-nav-arrow{
    font-size:18px;
  }

  .distributor-strategy-actions{
    grid-template-columns:1fr;
  }

  .distributor-strategy-id-form{
    flex-direction:column;
  }

  .distributor-strategy-id-btn{
    width:100%;
  }
}



/* =========================
   VISIT QR SCANNER
   Shared camera surface for PANA Pro and Staff Station.
========================= */
.pana-visit-scanner-sheet{
  position:fixed;
  inset:0;
  z-index:12100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:16px;
  background:rgba(15,23,42,.58);
  backdrop-filter:blur(8px);
}
.pana-visit-scanner-sheet.show{display:flex}
.pana-visit-scanner-card{
  width:min(520px,100%);
  max-height:calc(100vh - 32px);
  overflow:auto;
  padding:18px;
  border-radius:22px;
  background:#fff;
  box-shadow:0 22px 60px rgba(15,23,42,.28);
}
.pana-visit-scanner-title{font-size:18px;font-weight:950;color:#0f172a;text-align:center}
.pana-visit-scanner-help{margin:6px auto 14px;max-width:390px;color:#64748b;font-size:12.5px;line-height:1.45;text-align:center}
.pana-visit-scanner-preview{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:18px;
  background:#0f172a;
  border:1px solid rgba(15,23,42,.15);
}
.pana-visit-scanner-preview video{width:100%;height:100%;object-fit:cover;display:block}
.pana-visit-scanner-frame{
  position:absolute;
  inset:16%;
  border:3px solid rgba(74,222,128,.95);
  border-radius:22px;
  box-shadow:0 0 0 999px rgba(15,23,42,.20);
  pointer-events:none;
}
.pana-visit-scanner-status{min-height:20px;margin-top:10px;color:#475569;font-size:12.5px;font-weight:750;line-height:1.4;text-align:center}
.pana-visit-scanner-status.is-error{color:#b91c1c}
.pana-visit-scanner-cancel{width:100%;margin-top:10px}
.staff-station-duty{
  margin-top:8px;
  padding:10px 12px;
  border-radius:13px;
  background:#ecfdf5;
  border:1px solid rgba(22,163,74,.18);
  color:#166534;
  font-size:12.5px;
  font-weight:800;
  line-height:1.4;
}
.staff-station-duty.is-fallback{background:#fff7ed;border-color:rgba(234,88,12,.18);color:#9a3412}
.staff-station-scan{flex:1 1 100%!important}
.staff-station-manual-help{flex:1 1 100%;color:#64748b;font-size:11.5px;font-weight:750;line-height:1.35}

/* =========================
   STAFF STATION / VALIDATION AUTHORITY
========================= */
.staff-station-shell{
  position:fixed;
  inset:0;
  z-index:12000;
  display:none;
  overflow:auto;
  background:var(--bg,#f5f7fb);
  color:var(--text,#0f172a);
  padding:24px 16px 40px;
}
.staff-station-shell.show{display:block}
#staffStationConfirmSheet{z-index:12050;padding:16px}
#staffStationConfirmSheet .campaign-contact-card{max-height:calc(100vh - 32px)}
#campaignStaffStationRevokeSheet{z-index:12060;padding:16px}
#campaignStaffStationRevokeSheet .campaign-contact-card{max-height:calc(100vh - 32px)}
.staff-station-wrap{width:min(760px,100%);margin:0 auto}
.staff-station-card{
  background:var(--card,#fff);
  border:1px solid rgba(148,163,184,.28);
  border-radius:22px;
  box-shadow:0 14px 42px rgba(15,23,42,.12);
  padding:20px;
}
.staff-station-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.staff-station-brand-icon{font-size:34px;line-height:1}
.staff-station-title{font-size:24px;font-weight:800;line-height:1.15}
.staff-station-sub{font-size:14px;color:var(--muted,#64748b);margin-top:4px}
.staff-station-pair{display:grid;gap:12px}
.staff-station-pair[hidden]{display:none!important}
.staff-station-pair-code{
  text-transform:uppercase;
  letter-spacing:.18em;
  text-align:center;
  font-size:22px;
  font-weight:800;
}
.staff-station-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.staff-station-actions button{flex:1 1 160px;min-height:44px}
.staff-station-status{min-height:22px;margin-top:12px;font-size:14px;color:var(--muted,#64748b)}
.staff-station-status.is-error{color:#b91c1c}
.staff-station-status.is-success{color:#166534}
.staff-station-identity{
  border:1px solid rgba(148,163,184,.28);
  border-radius:16px;
  padding:12px 14px;
  margin:12px 0;
}
.staff-station-identity strong{display:block;font-size:17px}
.staff-station-identity span{display:block;font-size:13px;color:var(--muted,#64748b);margin-top:3px}
.staff-station-member-list{display:grid;gap:12px;margin-top:16px}
.staff-station-member{
  border:1px solid rgba(148,163,184,.28);
  border-radius:16px;
  padding:14px;
  background:rgba(255,255,255,.72);
}
.staff-station-member-name{font-size:16px;font-weight:800}
.staff-station-member-meta{font-size:13px;color:var(--muted,#64748b);margin-top:4px}
.staff-station-reward{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(148,163,184,.18)}
.staff-station-reward-copy{font-size:14px;min-width:0}
.staff-station-reward button{flex:0 0 auto}
.staff-station-manager{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(148,163,184,.24);
}
.staff-station-manager-list{display:grid;gap:10px;margin-top:10px}
.staff-station-manager-row{
  border:1px solid rgba(148,163,184,.25);
  border-radius:14px;
  padding:12px;
}
.staff-station-manager-row strong{display:block}
.staff-station-manager-meta{font-size:12px;color:var(--muted,#64748b);margin-top:3px}
.staff-station-url-card{
  margin-top:12px;
  border:1px solid rgba(59,130,246,.22);
  background:rgba(59,130,246,.06);
  border-radius:14px;
  padding:12px;
}
.staff-station-url-label{font-size:12px;font-weight:800;color:var(--text,#0f172a);margin-bottom:6px}
.staff-station-url-row{display:flex;align-items:center;gap:8px}
.staff-station-url-value{
  flex:1 1 auto;min-width:0;padding:10px 11px;border-radius:10px;
  border:1px solid rgba(148,163,184,.28);background:rgba(255,255,255,.78);
  font:600 12.5px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  overflow-wrap:anywhere;color:var(--text,#0f172a);
}
.staff-station-url-status{min-height:18px;margin-top:6px;font-size:12px;color:#166534}
.staff-station-pairing-banner{
  margin-top:12px;
  border:1px solid rgba(34,197,94,.28);
  background:rgba(34,197,94,.08);
  border-radius:14px;
  padding:12px;
}
.staff-station-pairing-code{font-size:24px;font-weight:900;letter-spacing:.16em;margin:6px 0}
@media (max-width:640px){
  .staff-station-shell{padding:12px 10px 28px}
  .staff-station-card{border-radius:18px;padding:16px}
  .staff-station-reward{align-items:flex-start;flex-direction:column}
  .staff-station-reward button{width:100%}
  .staff-station-url-row{align-items:stretch;flex-direction:column}
  .staff-station-url-row button{width:100%}
}

/* Billing V2 is presentation-only. All access, Stripe and entitlements stay unchanged. */
#accessGate.billing-choice-open{align-items:flex-start;justify-content:center;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:max(12px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom))}
#accessGate.billing-choice-open .access-card{margin:auto 0;max-width:560px;width:100%;padding:26px 20px}
#accessGate.billing-choice-open .access-billing-title{font-size:21px;line-height:1.25}
#accessGate.billing-choice-open .access-billing-sub{font-size:14px}
#accessGate.billing-choice-open .access-billing-actions{gap:12px}
#accessGate.billing-choice-open .access-plan-btn{display:flex;flex-direction:column;align-items:flex-start;text-align:start;padding:18px;border:1px solid #dbe7df;border-radius:16px;background:white;color:#183b2a;box-shadow:0 4px 14px rgba(0,0,0,.05);font:inherit;font-weight:700}
#accessGate.billing-choice-open .access-plan-btn span:first-child{font-size:17px}
#accessGate.billing-choice-open .access-plan-btn .plan-desc{font-size:13px;line-height:1.48;color:#4d6257;opacity:1;font-weight:450}
#accessGate.billing-choice-open .access-plan-btn.plan-plus{border-color:#0f766e;background:#f2fbf8}
#accessGate.billing-choice-open .access-plan-btn.plan-pro{border-color:#267349}
#accessGate.billing-choice-open .access-plan-btn:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
#billingGrowthPreview{margin:16px 0;background:#f0f8f3;border:1px solid #d5eadc;border-radius:15px;padding:15px;text-align:start}
#billingGrowthPreview h3{margin:0 0 8px;font-size:16px;color:#185333}
#billingGrowthPreview p{margin:6px 0;font-size:13px;line-height:1.5;color:#39594a}
#billingPlanComparison{margin:14px 0;padding:12px 14px;border:1px solid #dbe5df;border-radius:13px;text-align:start;color:#30483c}
#billingPlanComparison summary{font-size:14px;font-weight:700;cursor:pointer}
#billingPlanComparison .billing-compare-scroll{overflow-x:auto;max-width:100%;margin-top:12px}
#billingPlanComparison table{width:100%;min-width:315px;border-collapse:collapse;font-size:12px}
#billingPlanComparison th,#billingPlanComparison td{padding:9px 5px;border-bottom:1px solid #e0e9e3;text-align:center}
#billingPlanComparison th:first-child{text-align:start}
#billingPlanComparison .billing-compare-note{font-size:12px;line-height:1.45}
#accessGate.billing-choice-open #billingPlanDisclosure{text-align:start}
@media(max-width:420px){#accessGate.billing-choice-open{padding-inline:8px}#accessGate.billing-choice-open .access-card{padding:22px 16px}}

