/* Progetto Ombra Chatbot Fymera – UI
   Palette (from logo):
   - Primary green: #0AA25D
   - Dark green:    #08784A
   - Accent yellow: #FFF402
   - Ink:           #0B0B0B
   - Gray:          #232724
   - White:         #FFFFFF
   - Warm white:    #F5F6F4
*/

#ncf-chatbot-root{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:999999;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;

  /* Brand tokens */
  --ncf-primary:#0AA25D;
  --ncf-primary-dark:#08784A;
  --ncf-primary-rgb:10,162,93;

  --ncf-secondary:#FFF402;
  --ncf-secondary-rgb:255,244,2;

  --ncf-ink:#0B0B0B;
  --ncf-gray:#232724;
  --ncf-white:#FFFFFF;
  --ncf-warm:#F5F6F4;

  /* Back-compat (plugin rules reference these) */
  --ncf-red:var(--ncf-primary);
  --ncf-red-dark:var(--ncf-primary-dark);

  /* Layout */
  --ncf-panel-w:440px;
  --ncf-panel-h:640px;
  --ncf-font:15px;
  --ncf-font-sm:13px;

  --ncf-fab-size:86px;
  --ncf-fab-icon:38px;

  /* Surfaces */
  --ncf-panel-bg:var(--ncf-warm);
  --ncf-border:rgba(11,11,11,.10);
  --ncf-shadow:0 22px 70px rgba(0,0,0,.26);
  --ncf-soft-shadow:0 12px 36px rgba(0,0,0,.18);
  --ncf-radius:20px;

  /* Teaser scale */
  --ncf-teaser-gap:14px;
  --ncf-teaser-maxw:340px;
  --ncf-teaser-font:13px;
}

/* --- Floating action button --- */
.ncf-fab-wrap{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.ncf-fab{
  position:relative;
  width:var(--ncf-fab-size);
  height:var(--ncf-fab-size);
  border:0;
  border-radius:999px;
  background:var(--ncf-primary);
  color:var(--ncf-white);
  cursor:pointer;
  box-shadow:0 22px 60px rgba(0,0,0,.34);
  display:grid;
  place-items:center;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
}

/* ring per leggibilità su sfondi complessi */
.ncf-fab::before{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.28);
  pointer-events:none;
}

.ncf-fab:hover{
  background:var(--ncf-primary-dark);
  transform:translateY(-1px);
  box-shadow:0 26px 70px rgba(0,0,0,.36);
}
.ncf-fab:active{
  transform:translateY(0);
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.ncf-fab svg{
  width:var(--ncf-fab-icon);
  height:var(--ncf-fab-icon);
  display:block;
}

/* subtle pulse */
.ncf-fab::after{
  content:"";
  position:absolute;
  width:var(--ncf-fab-size);
  height:var(--ncf-fab-size);
  border-radius:999px;
  background:rgba(var(--ncf-primary-rgb),.18);
  transform:scale(1);
  opacity:0;
  pointer-events:none;
}
.ncf-fab.pulse::after{animation:ncfPulse 1.8s ease-out 1}
@keyframes ncfPulse{
  0%{transform:scale(1);opacity:0}
  15%{opacity:.9}
  100%{transform:scale(1.55);opacity:0}
}

/* =========================
   TEASER BUBBLE
   - centrata sul FAB
   - multilinea (no ellissi)
   - dot giallo brand
   ========================= */
.ncf-fab-bubble{
  position:absolute;

  right: calc(var(--ncf-fab-size) + var(--ncf-teaser-gap));
  top: 50%;
  bottom:auto;

  max-width: min(var(--ncf-teaser-maxw), calc(100vw - var(--ncf-fab-size) - 44px));
  min-width: 240px;
  padding: 12px 14px 12px 42px;

  background: var(--ncf-white);
  color: var(--ncf-ink);
  border: 1px solid rgba(var(--ncf-primary-rgb),.22);
  border-radius: 18px;

  font-size: var(--ncf-teaser-font);
  font-weight: 900;
  line-height: 1.25;

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

  box-shadow: 0 14px 38px rgba(0,0,0,.18);

  transform: translateY(calc(-50% + 6px));
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.ncf-fab-bubble.show{
  opacity: 1;
  transform: translateY(-50%);
}

/* Dot brand (giallo tenda) */
.ncf-fab-bubble::before{
  content:"";
  position:absolute;
  left: 14px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--ncf-secondary);
  transform: translateY(-50%);
  box-shadow:
    0 0 0 6px rgba(var(--ncf-secondary-rgb),.14),
    0 6px 14px rgba(0,0,0,.12);
}

/* Arrow verso il FAB */
.ncf-fab-bubble::after{
  content:"";
  position:absolute;
  right:-7px;
  top: 50%;
  width: 14px;
  height: 14px;
  background: var(--ncf-white);
  transform: translateY(-50%) rotate(45deg);
  border-radius: 4px;
  border-right: 1px solid rgba(11,11,11,.10);
  border-bottom: 1px solid rgba(11,11,11,.10);
}

/* --- Panel --- */
.ncf-panel{
  width:var(--ncf-panel-w);
  max-width:94vw;
  height:var(--ncf-panel-h);
  max-height:84vh;
  background:var(--ncf-panel-bg);
  border-radius:var(--ncf-radius);
  box-shadow:var(--ncf-shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid var(--ncf-border);
  transform-origin:bottom right;
  animation:ncfPanelIn .18s ease-out;
}
@keyframes ncfPanelIn{
  from{transform:scale(.98);opacity:0}
  to{transform:scale(1);opacity:1}
}

.ncf-head{
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--ncf-white);
  border-bottom:1px solid var(--ncf-border);
  position:relative;
}

/* Header accent line */
.ncf-head::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:linear-gradient(
    90deg,
    rgba(var(--ncf-primary-rgb),0),
    rgba(var(--ncf-primary-rgb),.70),
    rgba(var(--ncf-secondary-rgb),.65),
    rgba(var(--ncf-primary-rgb),0)
  );
  pointer-events:none;
}

.ncf-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.ncf-mark{
  width:12px;
  height:12px;
  border-radius:999px;
  background:var(--ncf-secondary);
  box-shadow:0 0 0 6px rgba(var(--ncf-secondary-rgb),.10);
}
.ncf-title{
  font-size:14px;
  font-weight:800;
  color:var(--ncf-ink);
  letter-spacing:.2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.ncf-head-actions{display:flex;align-items:center;gap:10px}

.ncf-icon-btn{
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid var(--ncf-border);
  background:var(--ncf-white);
  color:var(--ncf-ink);
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:transform .15s ease, border-color .15s ease, background .15s ease;
}
.ncf-icon-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(var(--ncf-primary-rgb),.35);
}

.ncf-reset{
  border:1px solid var(--ncf-border);
  background:var(--ncf-white);
  border-radius:999px;
  padding:7px 10px;
  cursor:pointer;
  font-size:12px;
  color:var(--ncf-ink);
  transition:border-color .15s ease, background .15s ease;
}
.ncf-reset:hover{border-color:rgba(var(--ncf-primary-rgb),.35)}

.ncf-body{flex:1;overflow:auto;padding:14px 14px 98px}

/* Messages */
.ncf-msg{margin:12px 0;display:flex;animation:ncfMsgIn .12s ease-out}
@keyframes ncfMsgIn{
  from{transform:translateY(2px);opacity:0}
  to{transform:translateY(0);opacity:1}
}

.ncf-msg .b{
  padding:11px 14px;
  border-radius:16px;
  max-width:85%;
  font-size:var(--ncf-font);
  line-height:1.42;
}

.ncf-msg.user{justify-content:flex-end}
.ncf-msg.user .b{
  background:var(--ncf-primary);
  color:var(--ncf-white);
  border-bottom-right-radius:8px;
}

.ncf-msg.bot .b{
  background:var(--ncf-white);
  color:var(--ncf-ink);
  border:1px solid var(--ncf-border);
  border-bottom-left-radius:8px;
}
.ncf-msg.bot .b a{
  color:var(--ncf-primary-dark);
  text-decoration:underline;
  text-underline-offset:2px;
}

/* Footer / input */
.ncf-foot{
  border-top:1px solid var(--ncf-border);
  padding:12px;
  display:grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap:8px;
  background:var(--ncf-white);
  align-items:end;
  box-shadow:0 -12px 30px rgba(0,0,0,.06);
}

.ncf-powered{
  grid-column:1 / -1;
  margin-top:2px;
  text-align:center;
  font-size:11px;
  letter-spacing:.2px;
  color:rgba(11,11,11,.68);
  user-select:none;
  line-height:1.25;
}
.ncf-powered a{
  color:var(--ncf-primary);
  text-decoration:none;
  font-weight:800;
}
.ncf-powered a:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}

.ncf-input{
  grid-column:1;
  flex:1;
  border:1px solid var(--ncf-border);
  border-radius:16px;
  padding:12px 14px;
  font-size:var(--ncf-font);
  outline:none;
  background:var(--ncf-white);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.ncf-input:focus{
  border-color:rgba(var(--ncf-primary-rgb),.45);
  box-shadow:0 0 0 4px rgba(var(--ncf-primary-rgb),.10);
}

.ncf-btn{border:0;border-radius:14px;padding:11px 12px;cursor:pointer;font-weight:700}
.ncf-send{
  grid-column:2;
  background:var(--ncf-primary);
  color:var(--ncf-white);
  min-width:48px;
  min-height:48px;
  border-radius:16px;
}
.ncf-send:hover{background:var(--ncf-primary-dark)}

/* Cart bar + cart */
.ncf-cartbar{
  padding:10px 14px;
  border-bottom:1px solid var(--ncf-border);
  background:var(--ncf-white);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ncf-cartbar .left{display:flex;align-items:center;gap:10px;min-width:0}
.ncf-cartbar .title{
  font-size:13px;
  letter-spacing:.2px;
  text-transform:uppercase;
  color:rgba(11,11,11,.72);
  white-space:nowrap;
}
.ncf-cartbar .pill{
  font-size:13px;
  padding:5px 10px;
  border:1px solid var(--ncf-border);
  border-radius:999px;
  background:var(--ncf-warm);
  white-space:nowrap;
  color:var(--ncf-ink);
}
.ncf-cartbar button{
  background:var(--ncf-white);
  border:1px solid var(--ncf-border);
  border-radius:999px;
  padding:7px 10px;
  cursor:pointer;
  color:var(--ncf-ink);
}
.ncf-cartbar button:hover{border-color:rgba(var(--ncf-primary-rgb),.35)}

.ncf-cart{
  padding:12px 14px;
  border-bottom:1px solid var(--ncf-border);
  background:var(--ncf-white);
}
.ncf-cart[hidden]{display:none !important;}

.ncf-cart-actions{display:flex;gap:8px;margin-top:10px}
.ncf-cart-actions button{
  background:var(--ncf-white);
  border:1px solid var(--ncf-border);
  border-radius:999px;
  padding:8px 10px;
  cursor:pointer;
  color:var(--ncf-ink);
}
.ncf-cart-actions button:hover{border-color:rgba(var(--ncf-primary-rgb),.35)}

.ncf-cart-list{display:flex;flex-direction:column;gap:12px}

.ncf-cart-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-top:1px solid rgba(11,11,11,.08);
}
.ncf-cart-item:first-child{border-top:none}

.ncf-cart-item .meta{min-width:0}
.ncf-cart-item .p{font-weight:800;color:var(--ncf-ink);font-size:13px}
.ncf-cart-item .s{font-size:12px;color:rgba(11,11,11,.70);margin-top:3px}

.ncf-cart-item .dims{margin-top:8px}
.ncf-cart-item .dims button{
  border:1px solid rgba(var(--ncf-primary-rgb),.25);
  background:rgba(var(--ncf-primary-rgb),.06);
  color:var(--ncf-primary-dark);
  border-radius:999px;
  padding:6px 10px;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
}
.ncf-cart-item .dims button:hover{
  background:rgba(var(--ncf-primary-rgb),.10);
  border-color:rgba(var(--ncf-primary-rgb),.35);
}

.ncf-cart-item .dimslist{
  margin-top:8px;
  padding:10px;
  border:1px solid var(--ncf-border);
  background:var(--ncf-warm);
  border-radius:14px;
  font-size:12px;
  color:rgba(11,11,11,.78);
}

.ncf-cart-item .acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ncf-cart-item .acts button{
  border:1px solid var(--ncf-border);
  background:var(--ncf-white);
  border-radius:999px;
  padding:7px 10px;
  cursor:pointer;
  font-size:12px;
  color:var(--ncf-ink);
}
.ncf-cart-item .acts button:hover{border-color:rgba(var(--ncf-primary-rgb),.35)}

/* Quick replies */
.ncf-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ncf-quick button{
  background:var(--ncf-white);
  border:1px solid rgba(var(--ncf-primary-rgb),.32);
  color:var(--ncf-primary-dark);
  border-radius:999px;
  padding:9px 12px;
  cursor:pointer;
  font-weight:800;
  font-size:var(--ncf-font-sm);
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.ncf-quick button:hover{
  background:var(--ncf-primary);
  border-color:var(--ncf-primary);
  color:var(--ncf-white);
}

/* Inline edit (kept minimal, consistent) */
.ncf-edit{
  margin-top:10px;
  padding:12px;
  border:1px solid var(--ncf-border);
  border-radius:16px;
  background:var(--ncf-warm);
}
.ncf-edit .row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ncf-edit label{font-size:12px;color:rgba(11,11,11,.78);display:flex;flex-direction:column;gap:6px}
.ncf-edit input,.ncf-edit select{
  padding:9px 10px;
  border:1px solid var(--ncf-border);
  border-radius:12px;
  background:var(--ncf-white);
}
.ncf-edit .btns{display:flex;gap:8px;margin-top:8px}
.ncf-edit .btns button{
  border:1px solid var(--ncf-border);
  background:var(--ncf-white);
  border-radius:999px;
  padding:8px 10px;
  cursor:pointer;
  font-size:12px;
  font-weight:800;
  color:var(--ncf-ink);
}
.ncf-edit .btns .primary{
  background:var(--ncf-primary);
  color:var(--ncf-white);
  border-color:var(--ncf-primary);
}

/* Debug */
.ncf-debug{font-size:11px;color:rgba(11,11,11,.60);padding:6px 0}

/* --- Typing indicator --- */
.ncf-typing .b{display:inline-flex;align-items:center;gap:6px}
.ncf-dots{display:inline-flex;gap:6px;align-items:center}
.ncf-dots i{
  width:6px;height:6px;border-radius:999px;
  background: rgba(11,11,11,.65);
  display:inline-block;
  animation:ncfDot 1.2s infinite ease-in-out;
}
.ncf-dots i:nth-child(2){ animation-delay:.15s; }
.ncf-dots i:nth-child(3){ animation-delay:.30s; }
@keyframes ncfDot{
  0%, 80%, 100%{ transform: translateY(0); opacity: .35; }
  40%{ transform: translateY(-4px); opacity: 1; }
}

/* --- Mobile sizing --- */
@media (max-width:420px){
  #ncf-chatbot-root{right:12px;bottom:12px}
  #ncf-chatbot-root{
    --ncf-panel-w:94vw;
    --ncf-panel-h:76vh;
    --ncf-fab-size:62px;
    --ncf-fab-icon:28px;
  }
  .ncf-fab-bubble{
    min-width:0;
    max-width: calc(100vw - var(--ncf-fab-size) - 34px);
    font-size: 12.5px;
  }
}

/* --- Mobile: full-screen chat + keyboard-safe --- */
@media (max-width: 768px){
  #ncf-chatbot-root{ right:12px; bottom:12px; }

  .ncf-panel{
    position:fixed;
    left:0; right:0;
    top: var(--ncf-vv-top, 0px);
    height: var(--ncf-vv-h, 100dvh);
    max-height: var(--ncf-vv-h, 100dvh);
    width:100vw;
    max-width:100vw;
    border-radius:0;
  }

  .ncf-body{
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: calc(110px + env(safe-area-inset-bottom));
  }

  .ncf-foot{
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }

  /* iOS: evita zoom quando focus su input */
  .ncf-input{ font-size:16px; }
}

/* --- Modal (V2) --- */
html.ncf-modal-open, body.ncf-modal-open{overflow:hidden !important;}

.ncf-modal-overlay{
  position:fixed;
  inset:0;
  z-index:2147483646;

  /* ensure palette vars exist even outside #ncf-chatbot-root */
  --ncf-primary:#0AA25D;
  --ncf-primary-dark:#08784A;
  --ncf-primary-rgb:10,162,93;

  --ncf-secondary:#FFF402;
  --ncf-secondary-rgb:255,244,2;

  --ncf-ink:#0B0B0B;
  --ncf-gray:#232724;
  --ncf-white:#FFFFFF;
  --ncf-warm:#F5F6F4;

  --ncf-red:var(--ncf-primary);
  --ncf-red-dark:var(--ncf-primary-dark);

  background:rgba(11,11,11,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}

.ncf-modal{
  width:720px;
  max-width:100%;
  background:var(--ncf-white);
  border-radius:22px;
  box-shadow:0 26px 90px rgba(0,0,0,.35);
  border:1px solid rgba(11,11,11,.12);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  max-height:92vh;
}

.ncf-modal-head{
  background:var(--ncf-white);
  position:sticky;
  top:0;
  z-index:2;
  padding:14px 16px;
  border-bottom:1px solid rgba(11,11,11,.10);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.ncf-modal-title{font-weight:900;color:var(--ncf-ink);letter-spacing:.2px;}

.ncf-modal-x{
  width:38px;height:38px;border-radius:999px;
  border:1px solid rgba(11,11,11,.12);
  background:var(--ncf-white);
  cursor:pointer;
  font-size:22px;
  line-height:1;
  color:rgba(11,11,11,.75);
}
.ncf-modal-x:hover{
  border-color:rgba(var(--ncf-primary-rgb),.35);
  color:var(--ncf-ink);
}

.ncf-stepper{display:flex;gap:6px;align-items:center;}
.ncf-step-dot{width:8px;height:8px;border-radius:999px;background:rgba(11,11,11,.18);}
.ncf-step-dot.active{background:rgba(var(--ncf-primary-rgb),.85);}
.ncf-step-dot.done{background:rgba(var(--ncf-primary-rgb),.35);}

.ncf-modal-body{background:var(--ncf-white);padding:16px;overflow:auto;}
.ncf-modal-foot{
  background:var(--ncf-white);
  position:sticky;
  bottom:0;
  box-shadow:0 -12px 30px rgba(0,0,0,.06);
  flex-wrap:wrap;
  padding:14px 16px;
  border-top:1px solid rgba(11,11,11,.10);
  display:flex;
  gap:10px;
  justify-content:flex-end;
}

.ncf-modal-section{
  padding:12px;
  border:1px solid rgba(11,11,11,.10);
  border-radius:16px;
  background:var(--ncf-warm);
  margin:10px 0;
}
.ncf-modal-section-title{
  font-weight:900;
  color:var(--ncf-ink);
  margin-bottom:10px;
  letter-spacing:.2px;
}

.ncf-modal-lead{font-size:13px;color:rgba(11,11,11,.72);margin-bottom:14px;}
.ncf-modal-error{
  margin-bottom:12px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(var(--ncf-primary-rgb),.06);
  border:1px solid rgba(var(--ncf-primary-rgb),.20);
  color:var(--ncf-primary-dark);
  font-size:13px;
}

.ncf-modal-field{margin-bottom:12px;}
.ncf-modal-label{font-size:12px;color:rgba(11,11,11,.72);margin-bottom:7px;font-weight:700;}

.ncf-modal-field input,.ncf-modal-field textarea{
  width:100%;
  border:1px solid rgba(11,11,11,.12);
  border-radius:14px;
  padding:11px 12px;
  font-size:14px;
  outline:none;
}
.ncf-modal-field input:focus,.ncf-modal-field textarea:focus{
  border-color:rgba(var(--ncf-primary-rgb),.45);
  box-shadow:0 0 0 4px rgba(var(--ncf-primary-rgb),.10);
}

.ncf-modal-pill{
  display:inline-block;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(var(--ncf-secondary-rgb),.14);
  border:1px solid rgba(var(--ncf-secondary-rgb),.35);
  color:var(--ncf-ink);
  font-weight:900;
  font-size:12px;
  margin-bottom:12px;
}

.ncf-modal-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:12px;
  color:rgba(11,11,11,.72);
  margin-top:10px;
  line-height:1.35;
}
.ncf-modal-consent input{margin-top:2px;}
.ncf-modal-consent a{
  color:var(--ncf-primary-dark);
  font-weight:900;
  text-decoration:none;
}
.ncf-modal-consent a:hover{text-decoration:underline;text-underline-offset:2px;}

.ncf-modal-btn{
  border:1px solid rgba(11,11,11,.12);
  background:var(--ncf-white);
  border-radius:999px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:900;
  color:var(--ncf-ink);
}
.ncf-modal-btn:hover{border-color:rgba(var(--ncf-primary-rgb),.35);}
.ncf-modal-btn.primary{
  background:var(--ncf-primary);
  border-color:var(--ncf-primary);
  color:var(--ncf-white);
}
.ncf-modal-btn.primary:hover{
  background:var(--ncf-primary-dark);
  border-color:var(--ncf-primary-dark);
}

/* =========================
   MODAL PATCH (checkbox + select)
   ========================= */
.ncf-modal, .ncf-modal *{ box-sizing:border-box; }

.ncf-modal .ncf-modal-check,
.ncf-modal .ncf-modal-consent{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:100%;
  cursor:pointer;
  user-select:none;
}
.ncf-modal .ncf-modal-check{ margin:10px 0 12px; }
.ncf-modal .ncf-modal-consent{ margin-top:10px; }

.ncf-modal .ncf-modal-check input[type="checkbox"],
.ncf-modal .ncf-modal-consent input[type="checkbox"]{
  flex:0 0 18px;
  width:18px;
  height:18px;
  margin:3px 0 0 !important;
  accent-color:var(--ncf-primary);
}
.ncf-modal .ncf-modal-check span,
.ncf-modal .ncf-modal-consent span{
  flex:1 1 auto;
  min-width:0;
  text-align:left !important;
  line-height:1.35;
}

.ncf-modal .ncf-modal-field select{
  width:100%;
  min-height:48px;
  padding:12px 48px 12px 12px;
  font-size:14px;
  line-height:1.2;
  font-family:inherit;

  border-radius:14px;
  border:1px solid rgba(11,11,11,.12);
  background-color:var(--ncf-white);
  color:var(--ncf-ink);

  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230B0B0B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px 16px;

  text-overflow:ellipsis;
}
.ncf-modal .ncf-modal-field select:focus{
  outline:none;
  border-color:rgba(var(--ncf-primary-rgb),.45);
  box-shadow:0 0 0 4px rgba(var(--ncf-primary-rgb),.10);
}
.ncf-modal .ncf-modal-field select option{ padding:8px 10px; }

@media (max-width: 520px){
  .ncf-modal .ncf-modal-field select{
    min-height:50px;
    padding:13px 52px 13px 12px;
  }
}

/* =========================
   MOBILE (chat chiusa): teaser perfetta
   - bubble = toast sopra al FAB
   - sempre in viewport
   - safe-area iOS
   ========================= */

@media (max-width: 768px){

  /* Root: dimensioni FAB più sensate su mobile */
  #ncf-chatbot-root{
    right:12px;
    bottom:12px;
    --ncf-fab-size:64px;
    --ncf-fab-icon:28px;
    --ncf-teaser-gap:12px;
  }

  /* Il wrap deve “stare” davvero in basso a destra, safe-area inclusa */
  #ncf-chatbot-root .ncf-fab-wrap{
    position:fixed;
    right:12px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    z-index:999999;
  }

  /* Bubble: da tooltip laterale a toast sopra il FAB */
  #ncf-chatbot-root .ncf-fab-bubble{
    top:auto;                 /* kill desktop positioning */
    bottom:calc(var(--ncf-fab-size) + 12px);
    right:0;                  /* allinea al bottone */
    left:auto;

    width:min(92vw, 360px);
    max-width:min(92vw, 360px);
    min-width:0;

    padding:12px 14px 12px 42px;
    border-radius:16px;

    /* animazione: “sale” senza spostamenti strani */
    transform:translateY(8px);
    opacity:0;
  }

  #ncf-chatbot-root .ncf-fab-bubble.show{
    transform:translateY(0);
    opacity:1;
  }

  /* Dot: meglio fisso in alto a sinistra, non al 50% (evita layout che balla) */
  #ncf-chatbot-root .ncf-fab-bubble::before{
    left:14px;
    top:14px;
    transform:none;
  }

  /* Freccina: punta verso il FAB (sotto), non laterale */
  #ncf-chatbot-root .ncf-fab-bubble::after{
    right:22px;
    top:auto;
    bottom:-7px;
    transform:rotate(45deg);
  }
}

@media (max-width: 420px){
  #ncf-chatbot-root{ right:10px; bottom:10px; }
  #ncf-chatbot-root .ncf-fab-wrap{
    right:10px;
    bottom:calc(10px + env(safe-area-inset-bottom));
  }
  #ncf-chatbot-root .ncf-fab-bubble{
    width:min(94vw, 340px);
    max-width:min(94vw, 340px);
    font-size:12.5px;
    line-height:1.22;
  }
}

/* Se lo schermo è microscopico, meglio niente teaser che un overlay brutto */
@media (max-width: 360px){
  #ncf-chatbot-root .ncf-fab-bubble{ display:none !important; }
}