:root {
  --cad-bg-0: #0b1118;
  --cad-bg-1: #111a24;
  --cad-bg-2: #162231;
  --cad-border: #23384d;
  --cad-text: #e4eef8;
  --cad-muted: #93a9bf;
  --cad-primary: #2d8cff;
  --cad-primary-strong: #1f7ef5;
  --cad-accent: #22d3ee;
  --cad-success: #1ec88f;
  --cad-warning: #f59e0b;
  --cad-danger: #f87171;
  --cad-outline-border: #3f5e80;
  --cad-outline-hover-bg: #203347;
  --cad-outline-hover-border: #4d7096;
  --cad-badge-border: #335272;
  --cad-badge-bg: #1a2a3a;
  --cad-input-bg: #0f1822;
  --cad-input-border: #2e465f;
  --cad-success-border: #1d6f57;
  --cad-success-bg: #0f2b24;
  --cad-success-text: #baf2dd;
  --cad-error-border: #7a3030;
  --cad-error-bg: #311718;
  --cad-error-text: #ffd0d0;
}

[data-theme="nord"] {
  --cad-bg-0: #edf2f7;
  --cad-bg-1: #f8fbff;
  --cad-bg-2: #e3ebf5;
  --cad-border: #b6c7db;
  --cad-text: #1b2a3e;
  --cad-muted: #5c708a;
  --cad-primary: #4c75b8;
  --cad-primary-strong: #3b5d96;
  --cad-accent: #5b8ea9;
  --cad-outline-border: #8ea6c2;
  --cad-outline-hover-bg: #dce7f3;
  --cad-outline-hover-border: #7690af;
  --cad-badge-border: #9eb4cc;
  --cad-badge-bg: #e5edf6;
  --cad-input-bg: #ffffff;
  --cad-input-border: #b2c4d9;
  --cad-success-border: #3c7f67;
  --cad-success-bg: #e6f4ee;
  --cad-success-text: #1f5d47;
  --cad-error-border: #b96b6b;
  --cad-error-bg: #fbeeee;
  --cad-error-text: #7a3030;
}

[data-theme="corporate"] {
  --cad-bg-0: #f4f7fb;
  --cad-bg-1: #ffffff;
  --cad-bg-2: #edf2f8;
  --cad-border: #c5d1de;
  --cad-text: #1d2a3a;
  --cad-muted: #5d7088;
  --cad-primary: #2f6fed;
  --cad-primary-strong: #2459c9;
  --cad-accent: #0ea5a8;
  --cad-outline-border: #9fb2c8;
  --cad-outline-hover-bg: #dde7f2;
  --cad-outline-hover-border: #8199b4;
  --cad-badge-border: #a9bbd0;
  --cad-badge-bg: #e7eef6;
  --cad-input-bg: #ffffff;
  --cad-input-border: #b7c6d7;
  --cad-success-border: #2d8c68;
  --cad-success-bg: #e7f7ef;
  --cad-success-text: #1f5e45;
  --cad-error-border: #c15f5f;
  --cad-error-bg: #fdeceb;
  --cad-error-text: #7a2d2d;
}

[data-theme="emerald"] {
  --cad-bg-0: #eef7f2;
  --cad-bg-1: #ffffff;
  --cad-bg-2: #e5f3ec;
  --cad-border: #bad8c6;
  --cad-text: #173a2a;
  --cad-muted: #4f7a67;
  --cad-primary: #1f9d72;
  --cad-primary-strong: #167d5a;
  --cad-accent: #0ea5a8;
  --cad-outline-border: #91b6a2;
  --cad-outline-hover-bg: #dbeee4;
  --cad-outline-hover-border: #749b86;
  --cad-badge-border: #a4cab6;
  --cad-badge-bg: #e2f0e8;
  --cad-input-bg: #ffffff;
  --cad-input-border: #b5d2c2;
  --cad-success-border: #2b9067;
  --cad-success-bg: #e4f8ec;
  --cad-success-text: #1a6747;
  --cad-error-border: #c46565;
  --cad-error-bg: #fceeed;
  --cad-error-text: #7b3030;
}

[data-theme="sunset"] {
  --cad-bg-0: #1a1220;
  --cad-bg-1: #26182e;
  --cad-bg-2: #311d3b;
  --cad-border: #5c3b6d;
  --cad-text: #f6eaf8;
  --cad-muted: #c7a7cf;
  --cad-primary: #ff7b54;
  --cad-primary-strong: #e35c31;
  --cad-accent: #ffb347;
  --cad-outline-border: #8b5aa1;
  --cad-outline-hover-bg: #3b2350;
  --cad-outline-hover-border: #a06fba;
  --cad-badge-border: #805196;
  --cad-badge-bg: #3a2548;
  --cad-input-bg: #26172f;
  --cad-input-border: #69457c;
}

[data-theme="business"] {
  --cad-bg-0: #0f172a;
  --cad-bg-1: #162237;
  --cad-bg-2: #1c2b44;
  --cad-border: #2f4669;
  --cad-text: #dfe9f7;
  --cad-muted: #9db0cc;
  --cad-primary: #3b82f6;
  --cad-primary-strong: #2563eb;
  --cad-accent: #22c1ff;
}

body {
  color: var(--cad-text);
}

.app-bg {
  background:
    radial-gradient(1000px 520px at 8% -20%, color-mix(in srgb, var(--cad-primary) 26%, transparent) 0%, transparent 55%),
    radial-gradient(920px 460px at 90% -15%, color-mix(in srgb, var(--cad-accent) 22%, transparent) 0%, transparent 50%),
    linear-gradient(180deg, var(--cad-bg-0) 0%, var(--cad-bg-1) 100%);
}

.navbar,
.card {
  border-color: var(--cad-border) !important;
  background: linear-gradient(180deg, var(--cad-bg-2) 0%, var(--cad-bg-1) 100%) !important;
  color: var(--cad-text) !important;
}

.btn {
  border-color: var(--cad-border);
}

.btn.btn-primary {
  background: linear-gradient(180deg, var(--cad-primary) 0%, var(--cad-primary-strong) 100%);
  border-color: #3f93ff;
  color: #f7fbff;
}

.btn.btn-primary:hover {
  background: linear-gradient(180deg, #57a5ff 0%, var(--cad-primary) 100%);
}

.btn.btn-outline {
  border-color: var(--cad-outline-border);
  color: var(--cad-text);
}

.btn.btn-outline:hover {
  background: var(--cad-outline-hover-bg);
  border-color: var(--cad-outline-hover-border);
}

.badge {
  border-color: var(--cad-badge-border);
  color: var(--cad-text);
  background: var(--cad-badge-bg);
}

.badge.badge-accent {
  border-color: #208fa1;
  color: #c6f8ff;
  background: #11353c;
}

.input.input-bordered {
  border-color: var(--cad-input-border);
  background: var(--cad-input-bg);
  color: var(--cad-text);
}

.input.input-bordered:focus {
  outline: none;
  border-color: var(--cad-primary);
  box-shadow: 0 0 0 2px rgba(45, 140, 255, 0.25);
}

.text-base-content\/70,
.text-base-content\/80 {
  color: var(--cad-muted) !important;
}

.alert.alert-success {
  border: 1px solid var(--cad-success-border);
  background: var(--cad-success-bg);
  color: var(--cad-success-text);
}

.alert.alert-error {
  border: 1px solid var(--cad-error-border);
  background: var(--cad-error-bg);
  color: var(--cad-error-text);
}

.svg-viewer-content svg {
  display: block;
  overflow: visible;
}

[data-svg-viewer-target="viewport"] {
  user-select: none;
}

.cq-preview-hit {
  opacity: 1 !important;
  stroke-opacity: 1 !important;
  fill-opacity: 1 !important;
  transition: filter 120ms ease, stroke-width 120ms ease;
}

.cq-preview-hidden {
  display: none !important;
}

.cq-help-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: 9999px;
  border: 1px solid var(--cad-outline-border);
  background: var(--cad-input-bg);
  color: var(--cad-muted);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.cq-help-trigger:hover {
  border-color: var(--cad-primary);
  color: var(--cad-text);
}

.cq-help-panel {
  width: 18rem;
  transform: none;
  max-width: min(18rem, calc(100vw - 1rem));
}

.cq-help-panel--right {
  left: calc(100% + 0.45rem);
  top: -0.15rem;
}

.cq-help-panel--left {
  right: calc(100% + 0.45rem);
  top: -0.15rem;
}

.cq-label-help {
  position: relative;
}

.cq-label-help-text {
  cursor: help;
  text-decoration: underline dotted currentColor;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.cq-hover-help-panel {
  position: fixed !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  text-transform: none;
  transition:
    opacity 120ms ease,
    visibility 0s linear 500ms;
}

.cq-label-help:hover .cq-hover-help-panel,
.cq-label-help:focus-within .cq-hover-help-panel,
.cq-label-help:focus .cq-hover-help-panel {
  position: absolute !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

@media (max-width: 640px) {
  .cq-label-help:hover .cq-hover-help-panel,
  .cq-label-help:focus-within .cq-hover-help-panel,
  .cq-label-help:focus .cq-hover-help-panel {
    position: fixed !important;
    right: 0.75rem !important;
    bottom: 1rem !important;
    left: 0.75rem !important;
    top: auto !important;
    width: auto;
    max-width: none;
  }
}

input.no-spinner[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

input.no-spinner[type="number"]::-webkit-outer-spin-button,
input.no-spinner[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

[data-section-segments-list].flex-col-reverse > [data-segment-row]:last-child [data-segment-add-above] {
  display: none;
}
