    #xclo-campaign-builder .group {
      margin-bottom: 30px;
      padding: 20px;
      border: 1px solid #ddd;
      border-radius: 6px;
      background-color: #fafafa;
    }

   #xclo-campaign-builder .group h3 {
      margin-top: 0;
      color: #444;
    }

  #xclo-campaign-builder label {
      display: block;
      margin-top: 15px;
      margin-bottom: 5px;
      font-weight: bold;
      color: #555;
    }

   #xclo-campaign-builder input[type="text"],
  #xclo-campaign-builder input[type="url"],
   #xclo-campaign-builder select,
  #xclo-campaign-builder textarea {
      width: 100%;
      padding: 10px;
      font-size: 14px;
      border: 1px solid #ccc;
      border-radius: 4px;
      box-sizing: border-box;
      margin-bottom: 10px;
    }

   #xclo-campaign-builder input[type="checkbox"] {
      margin-right: 6px;
    }
   #xclo-campaign-builder .multi-select {
      display: flex;
      align-items: center;
      margin-bottom: 10px;
    }
   #xclo-campaign-builder .multi-select select {
      flex: 1;
    }
  #xclo-campaign-builder .multi-select button {
      margin-left: 10px;
      padding: 8px 14px;
      background-color: #28a745;
      color: #fff;
      border: none;
      border-radius: 4px;
      cursor: pointer;
    }
   #xclo-campaign-builder .multi-select button:hover {
      background-color: #218838;
    }
   #xclo-campaign-builder .custom-input {
      display: none;
      margin-top: 5px;
    }
   #xclo-campaign-builder .selected-items {
      margin-top: 8px;
    }
  #xclo-campaign-builder .selected-item {
      display: inline-block;
      background-color: #007bff;
      color: #fff;
      padding: 6px 12px;
      border-radius: 15px;
      margin: 4px 4px 0 0;
      font-size: 13px;
    }
   #xclo-campaign-builder .selected-item button {
      background: none;
      border: none;
      color: #fff;
      margin-left: 6px;
      font-weight: bold;
      cursor: pointer;
    }
   #xclo-campaign-builder .selected-item button:hover {
      color: #ddd;
    }
   #xclo-campaign-builder button[type="submit"] {
      width: 100%;
      padding: 12px;
      background-color: #007bff;
      color: white;
      font-size: 16px;
      border: none;
      border-radius: 5px;
      cursor: pointer;
    }
   #xclo-campaign-builder button[type="submit"]:hover {
      background-color: #0056b3;
    }

/* ===== XCLO Modal (Responsive) ===== */
.xclo-modal { position: fixed; inset: 0; display: none; z-index: 9999; }
.xclo-modal.is-open { display: block; }

.xclo-modal__backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,0.5);
}

.xclo-modal__dialog {
  position: relative; margin: 5vh auto; background: #fff; border-radius: 10px;
  width: min(900px, 92vw); max-height: 88vh; display: flex; flex-direction: column;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}

.xclo-modal__header, .xclo-modal__footer {
  padding: 14px 16px; border-bottom: 1px solid #eee;
}
.xclo-modal__footer { border-top: 1px solid #eee; border-bottom: 0; display: flex; gap: 10px; justify-content: flex-end; }

.xclo-modal__title { margin: 0; font-size: clamp(16px, 2.2vw, 20px); }
.xclo-modal__close {
  position: absolute; right: 10px; top: 8px; border: 0; background: transparent; font-size: 24px; cursor: pointer;
}

.xclo-modal__body { padding: 12px 16px; overflow: hidden; }
.xclo-code {
  width: 100%; height: clamp(40vh, 56vh, 65vh); resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px; line-height: 1.5; background: #0f172a; color: #e2e8f0; border: 1px solid #334155; border-radius: 8px; padding: 12px;
  white-space: pre; overflow: auto;
}

/* Buttons */
.xclo-btn { padding: 10px 14px; border: 1px solid #e2e8f0; background: #f8fafc; border-radius: 8px; cursor: pointer; }
.xclo-btn:hover { background: #f1f5f9; }
.xclo-btn--primary { background: #0ea5e9; color: #fff; border-color: #0ea5e9; }
.xclo-btn--primary:hover { background: #0284c7; }

/* Mobile tweaks */
@media (max-width: 480px) {
  .xclo-modal__dialog { margin: 4vh auto; border-radius: 8px; }
  .xclo-modal__header, .xclo-modal__footer { padding: 10px 12px; }
  .xclo-code { font-size: 11px; }
}

.tooltip {
  position: relative;
  display: inline-block;
  cursor: pointer;
  margin-left: 6px;
}

.tooltip .tooltip-text {
  visibility: hidden;
  width: 220px;
  background-color: #333;
  color: #fff;
  text-align: left;
  border-radius: 6px;
  padding: 8px;
  position: absolute;
  z-index: 1;
  top: -5px;
  left: 105%;
  opacity: 0;
  transition: opacity 0.3s;
  font-size: 13px;
}

.tooltip:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* 1) Trigger di mobile: bukan hanya hover */
.tooltip:focus-within .tooltip-text,
.tooltip:active .tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* Biar elemen ❓ bisa difokuskan di mobile (kalau pakai <span>) */
.tooltip { outline: none; }
.tooltip[tabindex] { outline: none; } /* optional */

/* 2) Posisi khusus mobile — aman dari overflow kanan */
@media (max-width: 480px) {
  .tooltip .tooltip-text {
    top: auto;               /* reset posisi atas */
    bottom: calc(100% + 10px);/* tampil di ATAS ikon */
    left: 50%;
    transform: translateX(-50%);
    width: auto;             /* jangan fixed 220px */
    max-width: 88vw;         /* batasi mengikuti layar */
    white-space: normal;
    word-break: break-word;
    z-index: 9999;
    pointer-events: none;    /* biar gak "nempel" area sentuh */
  }
  .tooltip .tooltip-text::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
  }
}

/* ===== Fix tooltip khusus mobile ===== */
@media (max-width: 600px){
  .tooltip { position: relative; }

  .tooltip .tooltip-text{
    /* pastikan horizontal & boleh melipat normal */
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    letter-spacing: normal !important;

    /* ukuran & posisi aman */
    width: auto !important;
    min-width: 220px !important;         /* biar ga jadi 1–2 karakter lebar */
    max-width: 88vw !important;
    padding: 10px 12px !important;

    /* tampil DI ATAS & di tengah ikon */
    top: auto !important;
    bottom: calc(100% + 10px) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 9999 !important;
  }

  .tooltip .tooltip-text::after{
    content: "" !important;
    position: absolute !important;
    top: 100% !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    border: 6px solid transparent !important;
    border-top-color: #333 !important;
  }

  /* biar bisa muncul via tap, bukan hanya hover */
  .tooltip:focus-within .tooltip-text,
  .tooltip:active .tooltip-text{
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* supaya :focus-within bisa jalan saat di-tap */
.tooltip[tabindex] { outline: none; }
