/* Dova UI core 20260904-7 */

:root {
  --dova-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --dova-color-brand: #2563eb;
  --dova-color-brand-hover: #1d4ed8;
  --dova-color-brand-text: #1d4ed8;
  --dova-color-text: #172033;
  --dova-color-muted: #5f6f83;
  --dova-color-surface: #ffffff;
  --dova-color-surface-subtle: #f4f7fb;
  --dova-color-selected: #edf3ff;
  --dova-color-border: #c7d3e2;
  --dova-color-danger: #b42318;
  --dova-color-danger-text: #b42318;
  --dova-color-success: #067647;
  --dova-focus-ring: #0b57d0;

  --dova-space-1: 4px;
  --dova-space-2: 8px;
  --dova-space-3: 12px;
  --dova-space-4: 16px;
  --dova-space-6: 24px;
  --dova-space-8: 32px;

  --dova-radius-sm: 4px;
  --dova-radius-md: 6px;
  --dova-radius-lg: 8px;
  --dova-radius-pill: 999px;

  --dova-control-compact: 32px;
  --dova-control-default: 40px;
  --dova-control-large: 48px;
  --dova-checkbox-size: 18px;
  --dova-grid-checkbox-size: 18px;
  --dova-checkbox-focus-width: 3px;
  --dova-grid-header-height: 32px;
  --dova-grid-row-height: 44px;
  --dova-sidebar-item-height: 44px;

  --dova-text-meta: 12px;
  --dova-text-control: 14px;
  --dova-text-body: 14px;
  --dova-text-title-sm: 18px;
  --dova-text-title-md: 22px;
  --dova-text-title-lg: 26px;
}

body[data-dova-density="90"] {
  --dova-density-scale: 0.9;
  --dova-space-2: 7px;
  --dova-space-3: 11px;
  --dova-space-4: 14px;
  --dova-space-6: 22px;
  --dova-space-8: 29px;
  --dova-control-compact: 29px;
  --dova-control-default: 36px;
  --dova-control-large: 43px;
  --dova-grid-header-height: 29px;
  --dova-grid-row-height: 40px;
  --dova-sidebar-item-height: 40px;
}

html[data-dova-theme="night"] {
  --dova-color-brand: #3867c7;
  --dova-color-brand-hover: #315bb4;
  --dova-color-brand-text: #9dbcf8;
  --dova-color-text: #dce5f1;
  --dova-color-muted: #aebdca;
  --dova-color-surface: #19222c;
  --dova-color-surface-subtle: #151d26;
  --dova-color-selected: #1d304f;
  --dova-color-border: #506173;
  --dova-color-danger: #c54f46;
  --dova-color-danger-text: #ff9189;
  --dova-color-success: #32b68e;
  --dova-focus-ring: #9dbcf8;
}

/* Account-scoped palettes keep semantic contrast while changing the product accent. */
html[data-dova-palette="ocean"] {
  --dova-color-brand: #0e7490;
  --dova-color-brand-hover: #155e75;
  --dova-color-brand-text: #0e5f76;
  --dova-color-selected: #e6f7fb;
  --dova-focus-ring: #0369a1;
}
html[data-dova-palette="emerald"] {
  --dova-color-brand: #087f5b;
  --dova-color-brand-hover: #066447;
  --dova-color-brand-text: #066447;
  --dova-color-selected: #e9f8f1;
  --dova-focus-ring: #047857;
}
html[data-dova-palette="violet"] {
  --dova-color-brand: #6d4acb;
  --dova-color-brand-hover: #5837b5;
  --dova-color-brand-text: #5736a3;
  --dova-color-selected: #f1edff;
  --dova-focus-ring: #6d28d9;
}
html[data-dova-theme="night"][data-dova-palette="ocean"] {
  --dova-color-brand: #0e7490;
  --dova-color-brand-hover: #155e75;
  --dova-color-brand-text: #7dd7e8;
  --dova-color-selected: #123946;
  --dova-focus-ring: #7dd7e8;
}
html[data-dova-theme="night"][data-dova-palette="emerald"] {
  --dova-color-brand: #087f5b;
  --dova-color-brand-hover: #066447;
  --dova-color-brand-text: #79ddb6;
  --dova-color-selected: #143b31;
  --dova-focus-ring: #79ddb6;
}
html[data-dova-theme="night"][data-dova-palette="violet"] {
  --dova-color-brand: #7c5fd2;
  --dova-color-brand-hover: #6d4acb;
  --dova-color-brand-text: #c4b5fd;
  --dova-color-selected: #30284c;
  --dova-focus-ring: #c4b5fd;
}

html,
button,
input,
select,
textarea {
  font-family: var(--dova-font-family);
}

input::placeholder,
textarea::placeholder {
  color: var(--dova-color-muted);
  opacity: 1;
}

:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--dova-focus-ring);
  outline-offset: 2px;
}

input[type="checkbox"]:focus {
  outline: 0 !important;
  outline-offset: 0 !important;
}

input[type="checkbox"]:focus-visible {
  box-shadow: inset 0 0 0 var(--dova-checkbox-focus-width, 3px) var(--dova-focus-ring) !important;
}

.DOVA_SKIP_LINK {
  position: fixed;
  z-index: 10000;
  inset-block-start: var(--dova-space-2);
  inset-inline-start: var(--dova-space-2);
  min-height: var(--dova-control-default);
  padding: 0 var(--dova-space-4);
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--dova-color-brand);
  border-radius: var(--dova-radius-md);
  background: var(--dova-color-surface);
  color: var(--dova-color-text);
  box-shadow: 0 8px 24px rgb(23 32 51 / 22%);
  font: 700 var(--dova-text-control)/1.2 var(--dova-font-family);
  text-decoration: none;
  transform: translateY(calc(-100% - var(--dova-space-4)));
  transition: transform 120ms ease;
}

.DOVA_SKIP_LINK:focus-visible {
  transform: translateY(0);
}

[data-boot-state]:not([data-boot-state="ready"]) > .DOVA_SKIP_LINK {
  visibility: hidden;
}

.DOVA_BUTTON {
  box-sizing: border-box;
  display: inline-flex;
  min-height: var(--dova-control-default);
  align-items: center;
  justify-content: center;
  gap: var(--dova-space-2);
  margin: 0;
  padding: 0 var(--dova-space-4);
  border: 1px solid var(--dova-color-border);
  border-radius: var(--dova-radius-md);
  appearance: none;
  background: var(--dova-color-surface);
  color: var(--dova-color-text);
  font: 700 var(--dova-text-control)/1.2 var(--dova-font-family);
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.DOVA_BUTTON[hidden] {
  display: none !important;
}

.DOVA_BUTTON svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.DOVA_BUTTON--compact {
  min-height: var(--dova-control-compact);
  padding-inline: var(--dova-space-3);
}

.DOVA_BUTTON--default {
  min-height: var(--dova-control-default);
}

.DOVA_BUTTON--large {
  min-height: var(--dova-control-large);
  padding-inline: var(--dova-space-6);
}

.DOVA_BUTTON--icon-only {
  width: var(--dova-control-default);
  padding: 0;
}

.DOVA_BUTTON--compact.DOVA_BUTTON--icon-only {
  width: var(--dova-control-compact);
}

.DOVA_BUTTON--large.DOVA_BUTTON--icon-only {
  width: var(--dova-control-large);
}

.DOVA_BUTTON--primary {
  border-color: var(--dova-color-brand);
  background: var(--dova-color-brand);
  color: #ffffff;
}

.DOVA_BUTTON--primary:hover:not(:disabled):not([aria-disabled="true"]) {
  border-color: var(--dova-color-brand-hover);
  background: var(--dova-color-brand-hover);
}

.DOVA_BUTTON--secondary {
  border-color: var(--dova-color-border);
  background: var(--dova-color-surface);
  color: var(--dova-color-text);
}

.DOVA_BUTTON--secondary:hover:not(:disabled):not([aria-disabled="true"]) {
  border-color: var(--dova-color-brand);
  background: var(--dova-color-surface-subtle);
  color: var(--dova-color-text);
}

.DOVA_BUTTON--danger {
  border-color: var(--dova-color-danger);
  background: var(--dova-color-danger);
  color: #ffffff;
}

.DOVA_BUTTON--danger:hover:not(:disabled):not([aria-disabled="true"]) {
  border-color: #8f1c13;
  background: #8f1c13;
}

html[data-dova-theme="night"] .DOVA_BUTTON--danger:hover:not(:disabled):not([aria-disabled="true"]) {
  border-color: #df6f66;
  background: #9e3e37;
}

.DOVA_BUTTON--ghost {
  border-color: transparent;
  background: transparent;
  color: var(--dova-color-text);
}

.DOVA_BUTTON--ghost:hover:not(:disabled):not([aria-disabled="true"]) {
  border-color: var(--dova-color-border);
  background: var(--dova-color-surface-subtle);
}

.DOVA_BUTTON:disabled,
.DOVA_BUTTON[aria-disabled="true"] {
  opacity: 1;
  cursor: not-allowed;
}

.DOVA_BUTTON--primary:disabled,
.DOVA_BUTTON--primary[aria-disabled="true"] {
  border-color: #5d6f8d;
  background: #5d6f8d;
  color: #ffffff;
}

.DOVA_BUTTON--secondary:disabled,
.DOVA_BUTTON--secondary[aria-disabled="true"],
.DOVA_BUTTON--ghost:disabled,
.DOVA_BUTTON--ghost[aria-disabled="true"] {
  border-color: #aebaca;
  background: #eef2f6;
  color: #526174;
}

.DOVA_BUTTON--danger:disabled,
.DOVA_BUTTON--danger[aria-disabled="true"] {
  border-color: #7d3731;
  background: #7d3731;
  color: #ffffff;
}

html[data-dova-theme="night"] .DOVA_BUTTON--primary:disabled,
html[data-dova-theme="night"] .DOVA_BUTTON--primary[aria-disabled="true"] {
  border-color: #516584;
  background: #516584;
  color: #ffffff;
}

html[data-dova-theme="night"] :is(.DOVA_BUTTON--secondary, .DOVA_BUTTON--ghost):is(:disabled, [aria-disabled="true"]) {
  border-color: #596a7c;
  background: #263440;
  color: #d4deea;
}

html[data-dova-theme="night"] .DOVA_BUTTON--danger:disabled,
html[data-dova-theme="night"] .DOVA_BUTTON--danger[aria-disabled="true"] {
  border-color: #813b36;
  background: #813b36;
  color: #ffffff;
}

.DOVA_BUTTON[aria-busy="true"] {
  pointer-events: none;
  cursor: progress;
}

/* Keep account controls reachable in compact windows and browser zoom. */
.workspaceAccountMenu,
.adminAccountMenu {
  max-height: calc(100vh - 112px);
  max-height: calc(100dvh - 112px - env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding-block: 8px;
}

@media (max-width: 820px) {
  .workspaceAccountMenu {
    max-height: calc(100vh - 76px);
    max-height: calc(100dvh - 76px - env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .DOVA_BUTTON,
  .DOVA_SKIP_LINK {
    transition: none;
  }
}
