:root {
  --theme-primary: #0ea5e9;
  --theme-secondary: #64748b;
  --theme-accent: #a78bfa;
  --theme-bg: #f0f9ff;
  --theme-surface: #e0f2fe;
  --theme-text: #0c4a6e;
  --theme-text-muted: #64748b;
  --theme-border: #bae6fd;
  --theme-success: #22c55e;
  --theme-warning: #f59e0b;
  --theme-danger: #ef4444;
  --theme-font-family: "Source Sans 3", system-ui, sans-serif;
  --theme-heading-font-family: inherit;
  --theme-font-size: 16px;
  --theme-line-height: 1.6;
  --theme-heading-line-height: 1.2;
  --theme-spacing-unit: 8px;
  --theme-space-0: 2px;
  --theme-space-1: 4px;
  --theme-space-2: 8px;
  --theme-space-3: 12px;
  --theme-space-4: 16px;
  --theme-space-5: 24px;
  --theme-space-6: 32px;
  --theme-space-7: 48px;
  --theme-space-8: 64px;
  --theme-border-radius: 8px;
  --theme-border-width: 1px;
  --theme-border-color: #bae6fd;
}

:root {
  color-scheme: light dark;
}

html[data-page-theme="light"] {
  --theme-primary: #0ea5e9;
  --theme-secondary: #64748b;
  --theme-accent: #a78bfa;
  --theme-bg: #f0f9ff;
  --theme-surface: #e0f2fe;
  --theme-text: #0c4a6e;
  --theme-text-muted: #64748b;
  --theme-border: #bae6fd;
  --theme-success: #22c55e;
  --theme-warning: #f59e0b;
  --theme-danger: #ef4444;
  --theme-font-family: "Source Sans 3", system-ui, sans-serif;
  --theme-heading-font-family: inherit;
  --theme-font-size: 16px;
  --theme-line-height: 1.6;
  --theme-heading-line-height: 1.2;
  --theme-spacing-unit: 8px;
  --theme-space-0: 2px;
  --theme-space-1: 4px;
  --theme-space-2: 8px;
  --theme-space-3: 12px;
  --theme-space-4: 16px;
  --theme-space-5: 24px;
  --theme-space-6: 32px;
  --theme-space-7: 48px;
  --theme-space-8: 64px;
  --theme-border-radius: 8px;
  --theme-border-width: 1px;
  --theme-border-color: #bae6fd;
}

html[data-page-theme="dark"] {
  --theme-primary: #0ea5e9;
  --theme-secondary: #64748b;
  --theme-accent: #a78bfa;
  --theme-bg: #f0f9ff;
  --theme-surface: #e0f2fe;
  --theme-text: #0c4a6e;
  --theme-text-muted: #64748b;
  --theme-border: #bae6fd;
  --theme-success: #22c55e;
  --theme-warning: #f59e0b;
  --theme-danger: #ef4444;
  --theme-font-family: "Source Sans 3", system-ui, sans-serif;
  --theme-heading-font-family: inherit;
  --theme-font-size: 16px;
  --theme-line-height: 1.6;
  --theme-heading-line-height: 1.2;
  --theme-spacing-unit: 8px;
  --theme-space-0: 2px;
  --theme-space-1: 4px;
  --theme-space-2: 8px;
  --theme-space-3: 12px;
  --theme-space-4: 16px;
  --theme-space-5: 24px;
  --theme-space-6: 32px;
  --theme-space-7: 48px;
  --theme-space-8: 64px;
  --theme-border-radius: 8px;
  --theme-border-width: 1px;
  --theme-border-color: #bae6fd;
}

@media (prefers-color-scheme: dark) {
  html:not([data-page-theme]), html[data-page-theme="device"] {
    --theme-primary: #0ea5e9;
    --theme-secondary: #64748b;
    --theme-accent: #a78bfa;
    --theme-bg: #f0f9ff;
    --theme-surface: #e0f2fe;
    --theme-text: #0c4a6e;
    --theme-text-muted: #64748b;
    --theme-border: #bae6fd;
    --theme-success: #22c55e;
    --theme-warning: #f59e0b;
    --theme-danger: #ef4444;
    --theme-font-family: "Source Sans 3", system-ui, sans-serif;
    --theme-heading-font-family: inherit;
    --theme-font-size: 16px;
    --theme-line-height: 1.6;
    --theme-heading-line-height: 1.2;
    --theme-spacing-unit: 8px;
    --theme-space-0: 2px;
    --theme-space-1: 4px;
    --theme-space-2: 8px;
    --theme-space-3: 12px;
    --theme-space-4: 16px;
    --theme-space-5: 24px;
    --theme-space-6: 32px;
    --theme-space-7: 48px;
    --theme-space-8: 64px;
    --theme-border-radius: 8px;
    --theme-border-width: 1px;
    --theme-border-color: #bae6fd;
  }
}

body {
  font-family: var(--theme-font-family);
  font-size: var(--theme-font-size);
  line-height: var(--theme-line-height);
  color: var(--theme-text);
  background-color: var(--theme-bg);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--theme-heading-font-family);
  line-height: var(--theme-heading-line-height);
}

/* Component Theme Overrides */
.card, .card-header, .card-body, .card-footer {
  background-color: var(--theme-surface);
  border-color: var(--theme-border);
  color: var(--theme-text);
}
.card-title, .card-text, .pricing-card-title, .list-unstyled, .list-unstyled li {
  color: inherit;
}
.accordion, .accordion-item, .accordion-body {
  background-color: var(--theme-surface);
  border-color: var(--theme-border);
  color: var(--theme-text);
}
.accordion-button {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  border-color: var(--theme-border);
  box-shadow: none;
}
.accordion-button:not(.collapsed) {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  box-shadow: inset 0 calc(-1 * var(--theme-border-width)) 0 var(--theme-border);
}
.accordion-button:focus {
  border-color: var(--theme-border);
  box-shadow: none;
}
.bg-light {
  background-color: var(--theme-surface) !important;
}
.text-body-emphasis {
  color: var(--theme-text) !important;
}
.text-muted {
  color: var(--theme-text-muted) !important;
}
.border-top, .border {
  border-color: var(--theme-border) !important;
}
.btn-primary {
  background-color: var(--theme-primary);
  border-color: var(--theme-primary);
  color: #fff;
}
.btn-primary:hover, .btn-primary:focus {
  background-color: var(--theme-primary);
  border-color: var(--theme-primary);
  filter: brightness(0.9);
}
.btn-outline-primary {
  color: var(--theme-primary);
  border-color: var(--theme-primary);
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
  background-color: var(--theme-primary);
  color: #fff;
}
.blockquote {
  color: inherit;
}
.blockquote-footer {
  color: var(--theme-text-muted);
}
.form-control, .form-select {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  border-color: var(--theme-border);
}
.form-control::placeholder {
  color: var(--theme-text-muted);
}
.form-control:focus, .form-select:focus {
  background-color: var(--theme-surface);
  color: var(--theme-text);
  border-color: var(--theme-primary);
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
}
.page-link {
  background-color: var(--theme-surface);
  color: var(--theme-primary);
  border-color: var(--theme-border);
}
.page-link:hover, .page-link:focus {
  background-color: var(--theme-primary);
  color: #fff;
  border-color: var(--theme-primary);
}
.page-item.active .page-link {
  background-color: var(--theme-primary);
  color: #fff;
  border-color: var(--theme-primary);
}

/* Navbar Theme Variants */
.navbar-theme-light {
  background-color: var(--theme-surface);
  color: var(--theme-text);
}
.navbar-theme-light .navbar-brand, .navbar-theme-light .nav-link {
  color: inherit;
}
.navbar-theme-light .nav-link:hover, .navbar-theme-light .nav-link:focus {
  color: var(--theme-primary);
}
.navbar-theme-light .navbar-toggler {
  color: inherit;
  border-color: currentColor;
  opacity: 0.5;
}
.navbar-theme-light .navbar-toggler-icon {
  background-image: none;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='black' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='black' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: 100%;
  -webkit-mask-size: 100%;
}
.navbar-theme-dark {
  background-color: #212529;
  color: #fff;
}
.navbar-theme-dark .navbar-brand, .navbar-theme-dark .nav-link {
  color: inherit;
  opacity: 0.85;
}
.navbar-theme-dark .nav-link:hover, .navbar-theme-dark .nav-link:focus {
  opacity: 1;
}
.navbar-theme-dark .navbar-toggler {
  color: inherit;
  border-color: currentColor;
  opacity: 0.2;
}
.navbar-theme-dark .navbar-toggler-icon {
  background-image: none;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='black' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='black' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: 100%;
  -webkit-mask-size: 100%;
}
.navbar-theme-primary {
  background-color: var(--theme-primary);
  color: #fff;
}
.navbar-theme-primary .navbar-brand, .navbar-theme-primary .nav-link {
  color: inherit;
  opacity: 0.85;
}
.navbar-theme-primary .nav-link:hover, .navbar-theme-primary .nav-link:focus {
  opacity: 1;
}
.navbar-theme-primary .navbar-toggler {
  color: inherit;
  border-color: currentColor;
  opacity: 0.2;
}
.navbar-theme-primary .navbar-toggler-icon {
  background-image: none;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='black' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='black' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: 100%;
  -webkit-mask-size: 100%;
}
.x-1wccidj { color: var(--theme-text); }
.x-1l4p8q7 { color: var(--theme-text-muted); margin-left: auto; margin-right: auto; max-width: 60ch; }
.x-2ld13c { background-color: var(--theme-surface); padding-bottom: calc(var(--theme-spacing-unit) * 8); padding-top: calc(var(--theme-spacing-unit) * 8); }