.cfdai-wrapper {
  --cfdai-bg: #f5f8fc;
  --cfdai-surface: #ffffff;
  --cfdai-surface-muted: #f8fafc;
  --cfdai-border: #d7dee9;
  --cfdai-border-strong: #c5cfdb;
  --cfdai-text: #18212f;
  --cfdai-text-muted: #5a6678;
  --cfdai-accent: #1f6feb;
  --cfdai-accent-strong: #1559be;
  --cfdai-accent-soft: #edf4ff;
  --cfdai-success-bg: #ecfaf3;
  --cfdai-success-border: #98d0ad;
  --cfdai-warning-bg: #fff7e7;
  --cfdai-warning-border: #e4bf69;
  --cfdai-danger-bg: #fff0f0;
  --cfdai-danger-border: #ef9a9a;
  --cfdai-info-bg: #eef7ff;
  --cfdai-info-border: #a5c8f0;
  --cfdai-shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.08);
  --cfdai-shadow-card: 0 18px 40px rgba(15, 23, 42, 0.1);
  --cfdai-radius-lg: 22px;
  --cfdai-radius-md: 16px;
  --cfdai-radius-sm: 12px;
  --cfdai-ring: 0 0 0 3px rgba(31, 111, 235, 0.18);
  max-width: 920px;
  margin: 2rem auto;
  color: var(--cfdai-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Helvetica, Arial, sans-serif;
}

.cfdai-wrapper a {
  color: var(--cfdai-accent-strong);
  text-underline-offset: 2px;
}

.cfdai-wrapper a:hover,
.cfdai-wrapper a:focus-visible {
  color: var(--cfdai-accent);
}

.cfdai-card {
  border: 1px solid var(--cfdai-border);
  border-radius: var(--cfdai-radius-lg);
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  padding: 1.45rem 1.45rem 1.35rem;
  margin-bottom: 1.35rem;
  box-shadow: var(--cfdai-shadow-soft);
}

.cfdai-card > :first-child {
  margin-top: 0;
}

.cfdai-card > :last-child {
  margin-bottom: 0;
}

.cfdai-card h2,
.cfdai-card h3 {
  margin-top: 0;
  margin-bottom: .7rem;
  color: var(--cfdai-text);
  line-height: 1.2;
  letter-spacing: -.02em;
}

.cfdai-card h2 {
  font-size: clamp(1.55rem, 2.2vw, 1.95rem);
}

.cfdai-card h3 {
  font-size: 1.2rem;
}

.cfdai-card p,
.cfdai-card li,
.cfdai-card dt,
.cfdai-card dd {
  color: var(--cfdai-text);
  line-height: 1.65;
}

.cfdai-card p {
  margin: 0 0 1rem;
}

.cfdai-card form,
.cfdai-card .cfdai-grid-two,
.cfdai-card .cfdai-grid-three,
.cfdai-card .cfdai-grid-four {
  margin-top: 0;
}

.cfdai-muted {
  color: var(--cfdai-text-muted);
  font-size: .97rem;
}

.cfdai-grid-two,
.cfdai-grid-three,
.cfdai-grid-four {
  display: grid;
  gap: 1rem 1.1rem;
}

.cfdai-grid-two {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.cfdai-grid-three {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.cfdai-grid-four {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.cfdai-card label {
  display: block;
  color: var(--cfdai-text);
  font-weight: 600;
}

.cfdai-card input[type="text"],
.cfdai-card input[type="email"],
.cfdai-card input[type="url"],
.cfdai-card input[type="date"],
.cfdai-card input[type="time"],
.cfdai-card input[type="number"],
.cfdai-card input[type="search"],
.cfdai-card select,
.cfdai-card textarea {
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  margin-top: .45rem;
  padding: 11px 14px;
  border: 1px solid var(--cfdai-border-strong);
  border-radius: 14px;
  background: #fff;
  color: var(--cfdai-text);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.cfdai-card textarea {
  min-height: 120px;
  resize: vertical;
}

.cfdai-card input[type="checkbox"],
.cfdai-card input[type="radio"] {
  margin-right: .45rem;
}

.cfdai-card input[type="text"]:focus,
.cfdai-card input[type="email"]:focus,
.cfdai-card input[type="url"]:focus,
.cfdai-card input[type="date"]:focus,
.cfdai-card input[type="time"]:focus,
.cfdai-card input[type="number"]:focus,
.cfdai-card input[type="search"]:focus,
.cfdai-card select:focus,
.cfdai-card textarea:focus,
.cfdai-card input[type="checkbox"]:focus,
.cfdai-card input[type="radio"]:focus,
.cfdai-wrapper button:focus,
.cfdai-wrapper .button:focus,
.cfdai-wrapper a.button:focus {
  border-color: var(--cfdai-accent);
  box-shadow: var(--cfdai-ring);
  outline: none;
}

.cfdai-wrapper .button,
.cfdai-wrapper button,
.cfdai-wrapper input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid var(--cfdai-border-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--cfdai-text);
  font-size: .98rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background-color .16s ease;
}

.cfdai-wrapper .button:hover,
.cfdai-wrapper button:hover,
.cfdai-wrapper input[type="submit"]:hover {
  border-color: var(--cfdai-accent);
  color: var(--cfdai-accent-strong);
  background: #fff;
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(31, 111, 235, 0.12);
}

.cfdai-wrapper .button.button-primary,
.cfdai-wrapper button.button-primary,
.cfdai-wrapper input[type="submit"].button-primary,
.cfdai-wrapper .button-large.button-primary {
  border-color: var(--cfdai-accent);
  background: linear-gradient(180deg, #2b7cff 0%, #1f6feb 100%);
  color: #fff;
}

.cfdai-wrapper .button.button-primary:hover,
.cfdai-wrapper button.button-primary:hover,
.cfdai-wrapper input[type="submit"].button-primary:hover,
.cfdai-wrapper .button-large.button-primary:hover {
  border-color: var(--cfdai-accent-strong);
  background: linear-gradient(180deg, #2471eb 0%, #1559be 100%);
  color: #fff;
}

.cfdai-wrapper .button-large {
  min-height: 50px;
  padding: 0 22px;
}

.cfdai-wrapper button[disabled],
.cfdai-wrapper .button[disabled],
.cfdai-wrapper input[type="submit"][disabled] {
  cursor: not-allowed;
  opacity: .7;
  transform: none;
}

.cfdai-service-summary,
.cfdai-slot-status {
  margin: .3rem 0 1rem;
  padding: .9rem 1rem;
  border: 1px solid var(--cfdai-border);
  border-radius: 14px;
  background: var(--cfdai-surface-muted);
  color: var(--cfdai-text);
  line-height: 1.55;
}

.cfdai-service-summary strong {
  font-size: 1rem;
}

.cfdai-slot-status a {
  font-weight: 650;
}

.cfdai-alert {
  border-radius: 16px;
  padding: 1rem 1.05rem;
  margin: 0 0 1rem;
  border: 1px solid transparent;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
}

.cfdai-alert-success {
  background: var(--cfdai-success-bg);
  border-color: var(--cfdai-success-border);
}

.cfdai-alert-warning {
  background: var(--cfdai-warning-bg);
  border-color: var(--cfdai-warning-border);
}

.cfdai-alert-error {
  background: var(--cfdai-danger-bg);
  border-color: var(--cfdai-danger-border);
}

.cfdai-alert-info {
  background: var(--cfdai-info-bg);
  border-color: var(--cfdai-info-border);
}

.cfdai-honeypot {
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.cfdai-inline-check {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  margin: .25rem .75rem .25rem 0;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: var(--cfdai-surface-muted);
  border: 1px solid var(--cfdai-border);
}

.cfdai-inline-form {
  display: inline-flex;
  margin-right: .5rem;
}

.cfdai-manage-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin: 1rem 0;
}

.cfdai-danger-button {
  border-color: #d63638 !important;
  color: #d63638 !important;
  background: #fff7f7 !important;
}

.cfdai-danger-button:hover {
  background: #fff0f0 !important;
}

.cfdai-details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: .85rem;
  margin: 0 0 1rem;
}

.cfdai-details > div {
  padding: .85rem .95rem;
  background: var(--cfdai-surface-muted);
  border: 1px solid var(--cfdai-border);
  border-radius: 14px;
}

.cfdai-details dt {
  font-weight: 700;
  color: var(--cfdai-text-muted);
}

.cfdai-details dd {
  margin: .25rem 0 0;
}

.cfdai-wrapper table.widefat {
  width: 100%;
  margin: .75rem 0 0;
  border: 1px solid var(--cfdai-border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.cfdai-wrapper table.widefat thead th {
  background: var(--cfdai-surface-muted);
  color: var(--cfdai-text-muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: .9rem;
}

.cfdai-wrapper table.widefat tbody td {
  padding: .9rem;
  line-height: 1.55;
}

.cfdai-wrapper table.widefat tbody tr:nth-child(even) td {
  background: #fcfdff;
}

.cfdai-wrapper table.widefat tbody tr:hover td {
  background: #f5f9ff;
}

.cfdai-prom-form .cfdai-prom-question {
  padding: 1rem 1rem .25rem;
  margin-bottom: .9rem;
  border: 1px solid var(--cfdai-border);
  border-radius: 16px;
  background: var(--cfdai-surface-muted);
}

.cfdai-prom-form .cfdai-prom-question strong {
  display: block;
  line-height: 1.5;
}

.cfdai-chat-card {
  overflow: hidden;
}

.cfdai-chat-log {
  border: 1px solid var(--cfdai-border);
  border-radius: 18px;
  min-height: 240px;
  max-height: 460px;
  overflow-y: auto;
  padding: 1rem;
  background: linear-gradient(180deg, #f7faff 0%, #f3f7fb 100%);
  margin-bottom: .9rem;
}

.cfdai-chat-bubble {
  max-width: 82%;
  padding: .8rem .95rem;
  border-radius: 18px;
  margin-bottom: .6rem;
  line-height: 1.55;
  box-shadow: 0 8px 16px rgba(15, 23, 42, 0.05);
}

.cfdai-chat-user {
  margin-left: auto;
  background: linear-gradient(180deg, #dceeff 0%, #cfe5ff 100%);
}

.cfdai-chat-assistant {
  margin-right: auto;
  background: #ffffff;
  border: 1px solid var(--cfdai-border);
}

.cfdai-chat-controls {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .8rem;
  align-items: start;
}

.cfdai-chat-controls textarea {
  min-height: 96px;
}

.cfdai-wrapper hr {
  border: none;
  border-top: 1px solid var(--cfdai-border);
  margin: 1.35rem 0;
}

.cfdai-wrapper details {
  background: var(--cfdai-surface-muted);
  border: 1px solid var(--cfdai-border);
  border-radius: 14px;
  padding: .75rem .85rem;
}

.cfdai-wrapper details summary {
  cursor: pointer;
  font-weight: 650;
}

.cfdai-wrapper .cfdai-is-submitting {
  opacity: .88;
}

.cfdai-wrapper .cfdai-is-submitting button[type="submit"],
.cfdai-wrapper .cfdai-is-submitting .button[type="submit"],
.cfdai-wrapper .cfdai-is-submitting input[type="submit"] {
  position: relative;
}

.cfdai-wrapper .cfdai-is-submitting button[type="submit"]::after,
.cfdai-wrapper .cfdai-is-submitting .button[type="submit"]::after,
.cfdai-wrapper .cfdai-is-submitting input[type="submit"]::after {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  margin-left: 8px;
  animation: cfdai-spin .8s linear infinite;
}

@keyframes cfdai-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 720px) {
  .cfdai-wrapper {
    margin: 1.25rem auto;
  }

  .cfdai-card {
    padding: 1.1rem 1rem;
    border-radius: 18px;
  }

  .cfdai-chat-controls {
    grid-template-columns: 1fr;
  }

  .cfdai-wrapper table.widefat {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }

  .cfdai-wrapper table.widefat td,
  .cfdai-wrapper table.widefat th {
    white-space: normal;
    min-width: 140px;
  }
}
