:root {
  --llv-primary: #12519e;
  --llv-primary-600: #0c3b74;
  --llv-primary-soft: #eaf2fa;
  --llv-accent-green: #2fbf8f;
  --llv-accent-amber: #f59e0b;
  --llv-accent-purple: #7c3aed;
  --llv-accent-cyan: #0891b2;
  --llv-danger: #dc3545;
  --llv-text: #24364b;
  --llv-muted: #64748b;
  --llv-border: #d8e4f1;
  --llv-bg-canvas: #f5f8fc;
  --llv-bg-surface: #ffffff;
  --llv-bg-subtle: #eef5fb;
  --llv-bg-tint-blue: #eaf2fa;
  --llv-bg-tint-green: #eef9f3;
}

.llv-icon {
  width: 1.25em;
  height: 1.25em;
  display: inline-block;
  vertical-align: -0.18em;
  flex: 0 0 auto;
  color: currentColor;
}

.llv-icon-xs { width: 0.875rem; height: 0.875rem; }
.llv-icon-sm { width: 1rem; height: 1rem; }
.llv-icon-md { width: 1.5rem; height: 1.5rem; }
.llv-icon-lg { width: 2.5rem; height: 2.5rem; }
.llv-icon-xl { width: 3.5rem; height: 3.5rem; }

.llv-icon-primary { color: var(--llv-primary); }
.llv-icon-success { color: var(--llv-accent-green); }
.llv-icon-warning { color: var(--llv-accent-amber); }
.llv-icon-purple { color: var(--llv-accent-purple); }
.llv-icon-cyan { color: var(--llv-accent-cyan); }
.llv-icon-danger { color: var(--llv-danger); }
.llv-icon-muted { color: var(--llv-muted); }

.llv-icon-tile {
  width: 48px;
  height: 48px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--llv-primary);
  background: var(--llv-primary-soft);
  border: 1px solid var(--llv-border);
}

.llv-icon-tile .llv-icon {
  width: 24px;
  height: 24px;
}

.llv-icon-tile-success {
  color: var(--llv-accent-green);
  background: var(--llv-bg-tint-green);
}

.llv-icon-tile-warning {
  color: var(--llv-accent-amber);
  background: #fff7e6;
}

.llv-icon-tile-purple {
  color: var(--llv-accent-purple);
  background: #f4f0ff;
}

.llv-icon-tile-cyan {
  color: var(--llv-accent-cyan);
  background: #e7f8fb;
}

.llv-logo {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.llv-logo img,
img.llv-logo-img {
  display: block;
  height: 44px;
  width: auto;
  max-width: 100%;
}

.llv-page-canvas {
  background: var(--llv-bg-canvas);
}

.llv-surface {
  background: var(--llv-bg-surface);
  border: 1px solid var(--llv-border);
  border-radius: 8px;
}

.llv-soft-band {
  background: var(--llv-bg-subtle);
}

.llv-btn-icon {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.llv-step-icon {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--llv-primary);
  background: var(--llv-primary-soft);
}

.llv-question-complete {
  color: var(--llv-accent-green);
  background: var(--llv-bg-tint-green);
  border-color: rgba(47, 191, 143, 0.35);
}

@media (prefers-reduced-motion: reduce) {
  .llv-icon,
  .llv-icon-tile,
  .llv-surface {
    transition: none !important;
  }
}
