/*! bootstrap-shadcn v0.1.0 | MIT License | Load after Bootstrap 5.3.8 CSS */
/* Bootstrap shadcn theme source.
   Import after Bootstrap 5.3.8 CSS. Bootstrap JavaScript needs no changes. */

:root,
[data-bs-theme="light"] {
  color-scheme: light;

  --sh-radius: 0.625rem;
  --sh-radius-sm: calc(var(--sh-radius) - 4px);
  --sh-radius-md: calc(var(--sh-radius) - 2px);
  --sh-radius-lg: var(--sh-radius);
  --sh-radius-xl: calc(var(--sh-radius) + 4px);

  --sh-background: #ffffff;
  --sh-foreground: #09090b;
  --sh-card: #ffffff;
  --sh-card-foreground: #09090b;
  --sh-popover: #ffffff;
  --sh-popover-foreground: #09090b;
  --sh-primary: #18181b;
  --sh-primary-hover: #27272a;
  --sh-primary-foreground: #fafafa;
  --sh-secondary: #f4f4f5;
  --sh-secondary-hover: #e4e4e7;
  --sh-secondary-foreground: #18181b;
  --sh-muted: #f4f4f5;
  --sh-muted-foreground: #71717a;
  --sh-accent: #f4f4f5;
  --sh-accent-hover: #e4e4e7;
  --sh-accent-foreground: #18181b;
  --sh-destructive: #dc2626;
  --sh-destructive-hover: #b91c1c;
  --sh-destructive-foreground: #fef2f2;
  --sh-border: #e4e4e7;
  --sh-input: #e4e4e7;
  --sh-ring: #a1a1aa;
  --sh-success: #16a34a;
  --sh-success-hover: #15803d;
  --sh-warning: #d97706;
  --sh-warning-hover: #b45309;
  --sh-info: #0284c7;
  --sh-info-hover: #0369a1;

  --sh-background-rgb: 255, 255, 255;
  --sh-foreground-rgb: 9, 9, 11;
  --sh-card-rgb: 255, 255, 255;
  --sh-popover-rgb: 255, 255, 255;
  --sh-primary-rgb: 24, 24, 27;
  --sh-secondary-rgb: 244, 244, 245;
  --sh-muted-rgb: 244, 244, 245;
  --sh-accent-rgb: 244, 244, 245;
  --sh-destructive-rgb: 220, 38, 38;
  --sh-border-rgb: 228, 228, 231;
  --sh-input-rgb: 228, 228, 231;
  --sh-ring-rgb: 161, 161, 170;
  --sh-success-rgb: 22, 163, 74;
  --sh-warning-rgb: 217, 119, 6;
  --sh-info-rgb: 2, 132, 199;

  --sh-chart-1: #e76e50;
  --sh-chart-2: #2a9d90;
  --sh-chart-3: #264653;
  --sh-chart-4: #e9c46a;
  --sh-chart-5: #f4a261;

  --sh-sidebar: #ffffff;
  --sh-sidebar-foreground: #09090b;
  --sh-sidebar-primary: #18181b;
  --sh-sidebar-primary-foreground: #fafafa;
  --sh-sidebar-accent: #f4f4f5;
  --sh-sidebar-accent-foreground: #18181b;
  --sh-sidebar-border: #d4d4d8;
  --sh-sidebar-ring: #a1a1aa;

  --bs-font-sans-serif: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-font-monospace: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 0.9375rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;
  --bs-body-color: var(--sh-foreground);
  --bs-body-color-rgb: var(--sh-foreground-rgb);
  --bs-body-bg: var(--sh-background);
  --bs-body-bg-rgb: var(--sh-background-rgb);
  --bs-emphasis-color: var(--sh-foreground);
  --bs-emphasis-color-rgb: var(--sh-foreground-rgb);
  --bs-secondary-color: var(--sh-muted-foreground);
  --bs-secondary-color-rgb: 113, 113, 122;
  --bs-secondary-bg: var(--sh-secondary);
  --bs-secondary-bg-rgb: var(--sh-secondary-rgb);
  --bs-tertiary-color: var(--sh-muted-foreground);
  --bs-tertiary-color-rgb: 113, 113, 122;
  --bs-tertiary-bg: #fafafa;
  --bs-tertiary-bg-rgb: 250, 250, 250;
  --bs-heading-color: var(--sh-foreground);
  --bs-link-color: var(--sh-primary);
  --bs-link-color-rgb: var(--sh-primary-rgb);
  --bs-link-hover-color: var(--sh-primary-hover);
  --bs-link-hover-color-rgb: 39, 39, 42;
  --bs-code-color: var(--sh-destructive);
  --bs-highlight-color: var(--sh-foreground);
  --bs-highlight-bg: #fef3c7;

  --bs-border-color: var(--sh-border);
  --bs-border-color-translucent: rgba(var(--sh-border-rgb), 0.72);
  --bs-border-width: 1px;
  --bs-border-radius: var(--sh-radius-md);
  --bs-border-radius-sm: var(--sh-radius-sm);
  --bs-border-radius-lg: var(--sh-radius-lg);
  --bs-border-radius-xl: var(--sh-radius-xl);
  --bs-border-radius-xxl: calc(var(--sh-radius) + 8px);
  --bs-border-radius-pill: 9999px;

  --bs-primary: var(--sh-primary);
  --bs-primary-rgb: var(--sh-primary-rgb);
  --bs-primary-text-emphasis: var(--sh-primary);
  --bs-primary-bg-subtle: #f4f4f5;
  --bs-primary-border-subtle: #d4d4d8;
  --bs-secondary: var(--sh-secondary);
  --bs-secondary-rgb: var(--sh-secondary-rgb);
  --bs-secondary-text-emphasis: var(--sh-secondary-foreground);
  --bs-secondary-bg-subtle: #fafafa;
  --bs-secondary-border-subtle: var(--sh-border);
  --bs-success: var(--sh-success);
  --bs-success-rgb: var(--sh-success-rgb);
  --bs-success-text-emphasis: #166534;
  --bs-success-bg-subtle: #dcfce7;
  --bs-success-border-subtle: #bbf7d0;
  --bs-info: var(--sh-info);
  --bs-info-rgb: var(--sh-info-rgb);
  --bs-info-text-emphasis: #075985;
  --bs-info-bg-subtle: #e0f2fe;
  --bs-info-border-subtle: #bae6fd;
  --bs-warning: var(--sh-warning);
  --bs-warning-rgb: var(--sh-warning-rgb);
  --bs-warning-text-emphasis: #92400e;
  --bs-warning-bg-subtle: #fef3c7;
  --bs-warning-border-subtle: #fde68a;
  --bs-danger: var(--sh-destructive);
  --bs-danger-rgb: var(--sh-destructive-rgb);
  --bs-danger-text-emphasis: #991b1b;
  --bs-danger-bg-subtle: #fee2e2;
  --bs-danger-border-subtle: #fecaca;
  --bs-light: #fafafa;
  --bs-light-rgb: 250, 250, 250;
  --bs-dark: #18181b;
  --bs-dark-rgb: 24, 24, 27;

  --bs-focus-ring-width: 2px;
  --bs-focus-ring-opacity: 1;
  --bs-focus-ring-color: rgba(var(--sh-ring-rgb), 0.5);
  --bs-box-shadow: none;
  --bs-box-shadow-sm: none;
  --bs-box-shadow-lg: none;
  --bs-box-shadow-inset: none;
}

.dark,
[data-bs-theme="dark"] {
  color-scheme: dark;

  --sh-background: #09090b;
  --sh-foreground: #fafafa;
  --sh-card: #18181b;
  --sh-card-foreground: #fafafa;
  --sh-popover: #18181b;
  --sh-popover-foreground: #fafafa;
  --sh-primary: #fafafa;
  --sh-primary-hover: #e4e4e7;
  --sh-primary-foreground: #18181b;
  --sh-secondary: #27272a;
  --sh-secondary-hover: #3f3f46;
  --sh-secondary-foreground: #fafafa;
  --sh-muted: #27272a;
  --sh-muted-foreground: #a1a1aa;
  --sh-accent: #27272a;
  --sh-accent-hover: #3f3f46;
  --sh-accent-foreground: #fafafa;
  --sh-destructive: #f87171;
  --sh-destructive-hover: #ef4444;
  --sh-destructive-foreground: #450a0a;
  --sh-border: rgba(255, 255, 255, 0.1);
  --sh-input: rgba(255, 255, 255, 0.15);
  --sh-ring: #71717a;
  --sh-success: #4ade80;
  --sh-success-hover: #22c55e;
  --sh-warning: #fbbf24;
  --sh-warning-hover: #f59e0b;
  --sh-info: #38bdf8;
  --sh-info-hover: #0ea5e9;

  --sh-background-rgb: 9, 9, 11;
  --sh-foreground-rgb: 250, 250, 250;
  --sh-card-rgb: 24, 24, 27;
  --sh-popover-rgb: 24, 24, 27;
  --sh-primary-rgb: 250, 250, 250;
  --sh-secondary-rgb: 39, 39, 42;
  --sh-muted-rgb: 39, 39, 42;
  --sh-accent-rgb: 39, 39, 42;
  --sh-destructive-rgb: 248, 113, 113;
  --sh-border-rgb: 255, 255, 255;
  --sh-input-rgb: 255, 255, 255;
  --sh-ring-rgb: 113, 113, 122;
  --sh-success-rgb: 74, 222, 128;
  --sh-warning-rgb: 251, 191, 36;
  --sh-info-rgb: 56, 189, 248;

  --sh-chart-1: #8b5cf6;
  --sh-chart-2: #10b981;
  --sh-chart-3: #f59e0b;
  --sh-chart-4: #d946ef;
  --sh-chart-5: #f43f5e;

  --sh-sidebar: #ffffff;
  --sh-sidebar-foreground: #09090b;
  --sh-sidebar-primary: #8b5cf6;
  --sh-sidebar-primary-foreground: #fafafa;
  --sh-sidebar-accent: #f4f4f5;
  --sh-sidebar-accent-foreground: #18181b;
  --sh-sidebar-border: #d4d4d8;
  --sh-sidebar-ring: #71717a;

  --bs-body-color: var(--sh-foreground);
  --bs-body-color-rgb: var(--sh-foreground-rgb);
  --bs-body-bg: var(--sh-background);
  --bs-body-bg-rgb: var(--sh-background-rgb);
  --bs-emphasis-color: var(--sh-foreground);
  --bs-emphasis-color-rgb: var(--sh-foreground-rgb);
  --bs-secondary-color: var(--sh-muted-foreground);
  --bs-secondary-color-rgb: 161, 161, 170;
  --bs-secondary-bg: var(--sh-secondary);
  --bs-secondary-bg-rgb: var(--sh-secondary-rgb);
  --bs-tertiary-color: var(--sh-muted-foreground);
  --bs-tertiary-color-rgb: 161, 161, 170;
  --bs-tertiary-bg: #18181b;
  --bs-tertiary-bg-rgb: 24, 24, 27;
  --bs-heading-color: var(--sh-foreground);
  --bs-link-color: var(--sh-primary);
  --bs-link-color-rgb: var(--sh-primary-rgb);
  --bs-link-hover-color: var(--sh-primary-hover);
  --bs-link-hover-color-rgb: 228, 228, 231;
  --bs-code-color: #fda4af;
  --bs-highlight-color: #fef3c7;
  --bs-highlight-bg: #713f12;

  --bs-border-color: var(--sh-border);
  --bs-border-color-translucent: rgba(var(--sh-border-rgb), 0.12);

  --bs-primary: var(--sh-primary);
  --bs-primary-rgb: var(--sh-primary-rgb);
  --bs-primary-text-emphasis: var(--sh-primary);
  --bs-primary-bg-subtle: #27272a;
  --bs-primary-border-subtle: #3f3f46;
  --bs-secondary: var(--sh-secondary);
  --bs-secondary-rgb: var(--sh-secondary-rgb);
  --bs-secondary-text-emphasis: var(--sh-secondary-foreground);
  --bs-secondary-bg-subtle: #18181b;
  --bs-secondary-border-subtle: rgba(255, 255, 255, 0.1);
  --bs-success: var(--sh-success);
  --bs-success-rgb: var(--sh-success-rgb);
  --bs-success-text-emphasis: #bbf7d0;
  --bs-success-bg-subtle: rgba(var(--sh-success-rgb), 0.12);
  --bs-success-border-subtle: rgba(var(--sh-success-rgb), 0.28);
  --bs-info: var(--sh-info);
  --bs-info-rgb: var(--sh-info-rgb);
  --bs-info-text-emphasis: #bae6fd;
  --bs-info-bg-subtle: rgba(var(--sh-info-rgb), 0.12);
  --bs-info-border-subtle: rgba(var(--sh-info-rgb), 0.28);
  --bs-warning: var(--sh-warning);
  --bs-warning-rgb: var(--sh-warning-rgb);
  --bs-warning-text-emphasis: #fde68a;
  --bs-warning-bg-subtle: rgba(var(--sh-warning-rgb), 0.12);
  --bs-warning-border-subtle: rgba(var(--sh-warning-rgb), 0.28);
  --bs-danger: var(--sh-destructive);
  --bs-danger-rgb: var(--sh-destructive-rgb);
  --bs-danger-text-emphasis: #fecaca;
  --bs-danger-bg-subtle: rgba(var(--sh-destructive-rgb), 0.12);
  --bs-danger-border-subtle: rgba(var(--sh-destructive-rgb), 0.28);
  --bs-light: #27272a;
  --bs-light-rgb: 39, 39, 42;
  --bs-dark: #fafafa;
  --bs-dark-rgb: 250, 250, 250;
  --bs-focus-ring-color: rgba(var(--sh-ring-rgb), 0.58);
}

* {
  border-color: var(--bs-border-color);
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-feature-settings: "rlig" 1, "calt" 1;
}

::selection {
  background: rgba(var(--sh-primary-rgb), 0.16);
  color: var(--sh-foreground);
}

a {
  text-underline-offset: 0.22em;
  text-decoration-thickness: 0.08em;
}

a:hover {
  text-decoration-color: currentColor;
}

hr {
  border-color: var(--bs-border-color);
  opacity: 1;
}

code,
kbd,
pre,
samp {
  font-family: var(--bs-font-monospace);
}

code {
  border-radius: var(--sh-radius-sm);
  background: var(--sh-muted);
  padding: 0.125rem 0.25rem;
  font-size: 0.875em;
}

kbd,
.kbd {
  border: 1px solid var(--sh-border);
  border-bottom-width: 2px;
  border-radius: var(--sh-radius-sm);
  background: var(--sh-muted);
  color: var(--sh-foreground);
  box-shadow: none;
  font-size: 0.75rem;
  font-weight: 500;
}

pre {
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-lg);
  background: var(--sh-muted);
  color: var(--sh-foreground);
  padding: 1rem;
}

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

.focus-ring:focus,
.focus-ring:focus-visible {
  --bs-focus-ring-color: rgba(var(--sh-ring-rgb), 0.45);
}

.btn {
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: 0.5rem;
  --bs-btn-font-family: var(--bs-body-font-family);
  --bs-btn-font-size: 0.875rem;
  --bs-btn-font-weight: 500;
  --bs-btn-line-height: 1.25rem;
  --bs-btn-border-width: 1px;
  --bs-btn-border-radius: var(--sh-radius-md);
  --bs-btn-box-shadow: none;
  --bs-btn-focus-box-shadow: none;
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, opacity 150ms ease;
}

.btn:hover,
.btn:focus-visible {
  text-decoration: none;
}

.btn:focus-visible {
  outline: 2px solid rgb(var(--sh-ring-rgb));
  outline-offset: 2px;
  box-shadow: none;
}

.btn:active,
.btn.active {
  transform: translateY(0);
}

.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
  pointer-events: none;
  opacity: 0.5;
}

.btn-sm {
  --bs-btn-padding-x: 0.75rem;
  --bs-btn-padding-y: 0.375rem;
  --bs-btn-font-size: 0.8125rem;
  --bs-btn-border-radius: var(--sh-radius-sm);
  min-height: 2.25rem;
}

.btn-lg {
  --bs-btn-padding-x: 1.25rem;
  --bs-btn-padding-y: 0.625rem;
  --bs-btn-font-size: 1rem;
  --bs-btn-border-radius: var(--sh-radius-lg);
  min-height: 2.75rem;
}

.btn-primary {
  --bs-btn-color: var(--sh-primary-foreground);
  --bs-btn-bg: var(--sh-primary);
  --bs-btn-border-color: var(--sh-primary);
  --bs-btn-hover-color: var(--sh-primary-foreground);
  --bs-btn-hover-bg: var(--sh-primary-hover);
  --bs-btn-hover-border-color: var(--sh-primary-hover);
  --bs-btn-active-color: var(--sh-primary-foreground);
  --bs-btn-active-bg: var(--sh-primary-hover);
  --bs-btn-active-border-color: var(--sh-primary-hover);
  --bs-btn-disabled-color: var(--sh-primary-foreground);
  --bs-btn-disabled-bg: var(--sh-primary);
  --bs-btn-disabled-border-color: var(--sh-primary);
}

.btn-secondary,
.btn-light {
  --bs-btn-color: var(--sh-secondary-foreground);
  --bs-btn-bg: var(--sh-secondary);
  --bs-btn-border-color: var(--sh-secondary);
  --bs-btn-hover-color: var(--sh-secondary-foreground);
  --bs-btn-hover-bg: var(--sh-secondary-hover);
  --bs-btn-hover-border-color: var(--sh-secondary-hover);
  --bs-btn-active-color: var(--sh-secondary-foreground);
  --bs-btn-active-bg: var(--sh-secondary-hover);
  --bs-btn-active-border-color: var(--sh-secondary-hover);
  --bs-btn-disabled-color: var(--sh-secondary-foreground);
  --bs-btn-disabled-bg: var(--sh-secondary);
  --bs-btn-disabled-border-color: var(--sh-secondary);
}

.btn-success {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--sh-success);
  --bs-btn-border-color: var(--sh-success);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--sh-success-hover);
  --bs-btn-hover-border-color: var(--sh-success-hover);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--sh-success-hover);
  --bs-btn-active-border-color: var(--sh-success-hover);
}

.btn-info {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--sh-info);
  --bs-btn-border-color: var(--sh-info);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--sh-info-hover);
  --bs-btn-hover-border-color: var(--sh-info-hover);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--sh-info-hover);
  --bs-btn-active-border-color: var(--sh-info-hover);
}

.btn-warning {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--sh-warning);
  --bs-btn-border-color: var(--sh-warning);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--sh-warning-hover);
  --bs-btn-hover-border-color: var(--sh-warning-hover);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--sh-warning-hover);
  --bs-btn-active-border-color: var(--sh-warning-hover);
}

.btn-danger {
  --bs-btn-color: var(--sh-destructive-foreground);
  --bs-btn-bg: var(--sh-destructive);
  --bs-btn-border-color: var(--sh-destructive);
  --bs-btn-hover-color: var(--sh-destructive-foreground);
  --bs-btn-hover-bg: var(--sh-destructive-hover);
  --bs-btn-hover-border-color: var(--sh-destructive-hover);
  --bs-btn-active-color: var(--sh-destructive-foreground);
  --bs-btn-active-bg: var(--sh-destructive-hover);
  --bs-btn-active-border-color: var(--sh-destructive-hover);
}

.btn-dark {
  --bs-btn-color: var(--sh-primary-foreground);
  --bs-btn-bg: var(--sh-primary);
  --bs-btn-border-color: var(--sh-primary);
  --bs-btn-hover-color: var(--sh-primary-foreground);
  --bs-btn-hover-bg: var(--sh-primary-hover);
  --bs-btn-hover-border-color: var(--sh-primary-hover);
}

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-danger,
.btn-outline-light,
.btn-outline-dark {
  --bs-btn-color: var(--sh-foreground);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--sh-input);
  --bs-btn-hover-color: var(--sh-accent-foreground);
  --bs-btn-hover-bg: var(--sh-accent);
  --bs-btn-hover-border-color: var(--sh-input);
  --bs-btn-active-color: var(--sh-accent-foreground);
  --bs-btn-active-bg: var(--sh-accent-hover);
  --bs-btn-active-border-color: var(--sh-input);
  --bs-btn-disabled-color: var(--sh-muted-foreground);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--sh-input);
}

.btn-outline-danger {
  --bs-btn-color: var(--sh-destructive);
  --bs-btn-hover-color: var(--sh-destructive);
  --bs-btn-hover-bg: rgba(var(--sh-destructive-rgb), 0.10);
  --bs-btn-active-color: var(--sh-destructive);
  --bs-btn-active-bg: rgba(var(--sh-destructive-rgb), 0.14);
}

.btn-link {
  --bs-btn-color: var(--sh-foreground);
  --bs-btn-hover-color: var(--sh-foreground);
  --bs-btn-active-color: var(--sh-foreground);
  --bs-btn-disabled-color: var(--sh-muted-foreground);
  min-height: auto;
  padding-right: 0;
  padding-left: 0;
  border: 0;
  text-decoration: underline;
  text-underline-offset: 0.22em;
}

.btn-group,
.btn-group-vertical {
  border-radius: var(--sh-radius-md);
}

.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn.dropdown-toggle-split:first-child,
.btn-group > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.btn-group > .btn:nth-child(n + 3),
.btn-group > :not(.btn-check) + .btn,
.btn-group > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.btn-check:focus-visible + .btn,
.btn-check:checked + .btn:focus-visible {
  outline: 2px solid rgb(var(--sh-ring-rgb));
  outline-offset: 2px;
  box-shadow: none;
}

.btn-check:checked + .btn,
.btn-check:active + .btn,
.btn.show,
.btn:first-child:active {
  color: var(--sh-primary-foreground);
  background-color: var(--sh-primary);
  border-color: var(--sh-primary);
}

.badge {
  --bs-badge-padding-x: 0.625rem;
  --bs-badge-padding-y: 0.25rem;
  --bs-badge-font-size: 0.75rem;
  --bs-badge-font-weight: 500;
  --bs-badge-border-radius: var(--sh-radius-sm);
  border: 1px solid transparent;
  line-height: 1rem;
}

.text-bg-primary {
  color: var(--sh-primary-foreground) !important;
  background-color: var(--sh-primary) !important;
}

.text-bg-secondary,
.text-bg-light {
  color: var(--sh-secondary-foreground) !important;
  background-color: var(--sh-secondary) !important;
  border-color: var(--sh-border);
}

.text-bg-dark {
  color: var(--sh-primary-foreground) !important;
  background-color: var(--sh-primary) !important;
}

.text-bg-danger {
  color: var(--sh-destructive-foreground) !important;
  background-color: var(--sh-destructive) !important;
}

.alert {
  --bs-alert-border-radius: var(--sh-radius-lg);
  --bs-alert-border-width: 1px;
  display: flex;
  gap: 0.75rem;
  border-color: var(--bs-alert-border-color);
  box-shadow: none;
}

.alert-heading {
  color: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
}

.alert-primary {
  --bs-alert-color: var(--sh-foreground);
  --bs-alert-bg: var(--sh-muted);
  --bs-alert-border-color: var(--sh-border);
  --bs-alert-link-color: var(--sh-foreground);
}

.alert-secondary,
.alert-light {
  --bs-alert-color: var(--sh-foreground);
  --bs-alert-bg: var(--sh-secondary);
  --bs-alert-border-color: var(--sh-border);
  --bs-alert-link-color: var(--sh-foreground);
}

.alert-success {
  --bs-alert-color: var(--bs-success-text-emphasis);
  --bs-alert-bg: var(--bs-success-bg-subtle);
  --bs-alert-border-color: var(--bs-success-border-subtle);
  --bs-alert-link-color: var(--bs-success-text-emphasis);
}

.alert-info {
  --bs-alert-color: var(--bs-info-text-emphasis);
  --bs-alert-bg: var(--bs-info-bg-subtle);
  --bs-alert-border-color: var(--bs-info-border-subtle);
  --bs-alert-link-color: var(--bs-info-text-emphasis);
}

.alert-warning {
  --bs-alert-color: var(--bs-warning-text-emphasis);
  --bs-alert-bg: var(--bs-warning-bg-subtle);
  --bs-alert-border-color: var(--bs-warning-border-subtle);
  --bs-alert-link-color: var(--bs-warning-text-emphasis);
}

.alert-danger {
  --bs-alert-color: var(--bs-danger-text-emphasis);
  --bs-alert-bg: var(--bs-danger-bg-subtle);
  --bs-alert-border-color: var(--bs-danger-border-subtle);
  --bs-alert-link-color: var(--bs-danger-text-emphasis);
}

.form-label,
.col-form-label {
  margin-bottom: 0.5rem;
  color: var(--sh-foreground);
  font-size: 0.875rem;
  font-weight: 500;
}

.form-text {
  color: var(--sh-muted-foreground);
  font-size: 0.8125rem;
}

.form-control,
.form-select {
  min-height: 2.5rem;
  border-color: var(--sh-input);
  border-radius: var(--sh-radius-md);
  background-color: transparent;
  color: var(--sh-foreground);
  font-size: 0.875rem;
  line-height: 1.5;
  box-shadow: none;
  transition: border-color 150ms ease, background-color 150ms ease;
}

.form-control::placeholder {
  color: var(--sh-muted-foreground);
  opacity: 1;
}

.form-control:hover,
.form-select:hover {
  border-color: rgb(var(--sh-ring-rgb));
}

.form-control:focus,
.form-select:focus {
  border-color: rgb(var(--sh-ring-rgb));
  background-color: transparent;
  color: var(--sh-foreground);
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
  background-color: var(--sh-muted);
  color: var(--sh-muted-foreground);
  opacity: 0.6;
}

.form-control-sm,
.form-select-sm {
  min-height: 2.25rem;
  border-radius: var(--sh-radius-sm);
  font-size: 0.8125rem;
}

.form-control-lg,
.form-select-lg {
  min-height: 2.75rem;
  border-radius: var(--sh-radius-lg);
  font-size: 1rem;
}

textarea.form-control {
  min-height: 5rem;
}

.form-control-color {
  width: 2.5rem;
  padding: 0.25rem;
}

.form-control[type="file"]::file-selector-button {
  margin: -0.375rem 0.75rem -0.375rem -0.75rem;
  border: 0;
  border-right: 1px solid var(--sh-input);
  background: var(--sh-muted);
  color: var(--sh-foreground);
  font-weight: 500;
}

.input-group-text {
  border-color: var(--sh-input);
  background-color: var(--sh-muted);
  color: var(--sh-muted-foreground);
  font-size: 0.875rem;
}

.input-group > .form-control:not(:focus),
.input-group > .form-select:not(:focus),
.input-group > .input-group-text {
  box-shadow: none;
}

.form-check {
  min-height: 1.25rem;
}

.form-check-label {
  color: var(--sh-foreground);
  font-size: 0.875rem;
}

.form-check-input {
  width: 1rem;
  height: 1rem;
  margin-top: 0.25rem;
  border-color: var(--sh-input);
  background-color: transparent;
  box-shadow: none;
}

.form-check-input:focus {
  border-color: rgb(var(--sh-ring-rgb));
}

.form-check-input:checked {
  border-color: var(--sh-primary);
  background-color: var(--sh-primary);
}

.form-check-input:disabled {
  opacity: 0.5;
}

.form-switch .form-check-input {
  width: 2.25rem;
  height: 1.25rem;
  border-radius: 9999px;
  background-color: var(--sh-input);
  background-image: none;
}

.form-switch .form-check-input::before {
  display: block;
  width: 1rem;
  height: 1rem;
  margin: 0.0625rem;
  border-radius: 9999px;
  background: var(--sh-background);
  content: "";
  transition: transform 150ms ease;
}

.form-switch .form-check-input:checked::before {
  transform: translateX(1rem);
}

.form-range::-webkit-slider-runnable-track {
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--sh-muted);
}

.form-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  border: 1px solid var(--sh-primary);
  background-color: var(--sh-background);
}

.form-range::-moz-range-track {
  height: 0.5rem;
  border-radius: 9999px;
  background-color: var(--sh-muted);
}

.form-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  border: 1px solid var(--sh-primary);
  background-color: var(--sh-background);
}

.valid-feedback,
.valid-tooltip {
  color: var(--sh-success);
}

.invalid-feedback,
.invalid-tooltip {
  color: var(--sh-destructive);
}

.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated .form-select:valid,
.form-select.is-valid {
  border-color: var(--sh-success);
  box-shadow: none;
}

.was-validated .form-control:valid:focus,
.form-control.is-valid:focus,
.was-validated .form-select:valid:focus,
.form-select.is-valid:focus {
  border-color: var(--sh-success);
}

.was-validated .form-control:invalid,
.form-control.is-invalid,
.was-validated .form-select:invalid,
.form-select.is-invalid {
  border-color: var(--sh-destructive);
  box-shadow: none;
}

.was-validated .form-control:invalid:focus,
.form-control.is-invalid:focus,
.was-validated .form-select:invalid:focus,
.form-select.is-invalid:focus {
  border-color: var(--sh-destructive);
}

.form-floating > label {
  color: var(--sh-muted-foreground);
  font-size: 0.875rem;
}

.card {
  --bs-card-spacer-y: 1.5rem;
  --bs-card-spacer-x: 1.5rem;
  --bs-card-title-spacer-y: 0.375rem;
  --bs-card-border-width: 1px;
  --bs-card-border-color: var(--sh-border);
  --bs-card-border-radius: var(--sh-radius-lg);
  --bs-card-inner-border-radius: calc(var(--sh-radius-lg) - 1px);
  --bs-card-cap-padding-y: 1rem;
  --bs-card-cap-padding-x: 1.5rem;
  --bs-card-cap-bg: transparent;
  --bs-card-cap-color: var(--sh-card-foreground);
  --bs-card-color: var(--sh-card-foreground);
  --bs-card-bg: var(--sh-card);
  --bs-card-box-shadow: none;
  box-shadow: none;
}

.shadow-sm,
.shadow,
.shadow-lg {
  box-shadow: none !important;
}

.card-header {
  border-bottom-color: var(--sh-border);
}

.card-footer {
  border-top-color: var(--sh-border);
}

.card-title {
  margin-bottom: 0.375rem;
  color: var(--sh-card-foreground);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.card-subtitle,
.card-text.text-body-secondary {
  color: var(--sh-muted-foreground) !important;
}

.list-group {
  --bs-list-group-color: var(--sh-card-foreground);
  --bs-list-group-bg: var(--sh-card);
  --bs-list-group-border-color: var(--sh-border);
  --bs-list-group-border-width: 1px;
  --bs-list-group-border-radius: var(--sh-radius-lg);
  --bs-list-group-item-padding-x: 1rem;
  --bs-list-group-item-padding-y: 0.75rem;
  --bs-list-group-action-color: var(--sh-foreground);
  --bs-list-group-action-hover-color: var(--sh-accent-foreground);
  --bs-list-group-action-hover-bg: var(--sh-accent);
  --bs-list-group-action-active-color: var(--sh-accent-foreground);
  --bs-list-group-action-active-bg: var(--sh-accent-hover);
  --bs-list-group-disabled-color: var(--sh-muted-foreground);
  --bs-list-group-disabled-bg: var(--sh-card);
  --bs-list-group-active-color: var(--sh-primary-foreground);
  --bs-list-group-active-bg: var(--sh-primary);
  --bs-list-group-active-border-color: var(--sh-primary);
}

.list-group-item {
  transition: color 150ms ease, background-color 150ms ease;
}

.dropdown-menu {
  --bs-dropdown-zindex: 1000;
  --bs-dropdown-min-width: 12rem;
  --bs-dropdown-padding-x: 0.25rem;
  --bs-dropdown-padding-y: 0.25rem;
  --bs-dropdown-spacer: 0.25rem;
  --bs-dropdown-font-size: 0.875rem;
  --bs-dropdown-color: var(--sh-popover-foreground);
  --bs-dropdown-bg: var(--sh-popover);
  --bs-dropdown-border-color: var(--sh-border);
  --bs-dropdown-border-radius: var(--sh-radius-md);
  --bs-dropdown-border-width: 1px;
  --bs-dropdown-inner-border-radius: calc(var(--sh-radius-md) - 1px);
  --bs-dropdown-divider-bg: var(--sh-border);
  --bs-dropdown-divider-margin-y: 0.25rem;
  --bs-dropdown-link-color: var(--sh-popover-foreground);
  --bs-dropdown-link-hover-color: var(--sh-accent-foreground);
  --bs-dropdown-link-hover-bg: var(--sh-accent);
  --bs-dropdown-link-active-color: var(--sh-primary-foreground);
  --bs-dropdown-link-active-bg: var(--sh-primary);
  --bs-dropdown-link-disabled-color: var(--sh-muted-foreground);
}

.dropdown-item {
  border-radius: var(--sh-radius-sm);
  line-height: 1.25rem;
}

.dropdown-item:focus-visible {
  outline: 2px solid rgb(var(--sh-ring-rgb));
  outline-offset: -2px;
}

.dropdown-header {
  color: var(--sh-muted-foreground);
  font-size: 0.75rem;
  font-weight: 600;
}

.dropdown-toggle::after {
  margin-left: 0.35rem;
  vertical-align: 0.12em;
}

.nav {
  --bs-nav-link-padding-x: 0.75rem;
  --bs-nav-link-padding-y: 0.5rem;
  --bs-nav-link-font-size: 0.875rem;
  --bs-nav-link-font-weight: 500;
  --bs-nav-link-color: var(--sh-muted-foreground);
  --bs-nav-link-hover-color: var(--sh-foreground);
  --bs-nav-link-disabled-color: var(--sh-muted-foreground);
}

.nav-link {
  border-radius: var(--sh-radius-md);
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

.nav-link:focus-visible {
  outline: 2px solid rgb(var(--sh-ring-rgb));
  outline-offset: 2px;
  box-shadow: none;
}

.nav-tabs {
  --bs-nav-tabs-border-color: var(--sh-border);
  --bs-nav-tabs-border-width: 1px;
  --bs-nav-tabs-border-radius: var(--sh-radius-md);
  --bs-nav-tabs-link-hover-border-color: transparent transparent var(--sh-border);
  --bs-nav-tabs-link-active-color: var(--sh-foreground);
  --bs-nav-tabs-link-active-bg: var(--sh-background);
  --bs-nav-tabs-link-active-border-color: var(--sh-border) var(--sh-border) var(--sh-background);
}

.nav-tabs .nav-link {
  border-radius: var(--sh-radius-md) var(--sh-radius-md) 0 0;
}

.nav-pills {
  gap: 0.25rem;
  padding: 0.25rem;
  border-radius: var(--sh-radius-lg);
  background: var(--sh-muted);
}

.nav-pills .nav-link {
  color: var(--sh-muted-foreground);
}

.nav-pills .nav-link:hover {
  background: rgba(var(--sh-background-rgb), 0.72);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: var(--sh-foreground);
  background-color: var(--sh-background);
}

.navbar {
  --bs-navbar-padding-y: 0.75rem;
  --bs-navbar-color: var(--sh-muted-foreground);
  --bs-navbar-hover-color: var(--sh-foreground);
  --bs-navbar-disabled-color: var(--sh-muted-foreground);
  --bs-navbar-active-color: var(--sh-foreground);
  --bs-navbar-brand-color: var(--sh-foreground);
  --bs-navbar-brand-hover-color: var(--sh-foreground);
  --bs-navbar-toggler-border-color: var(--sh-border);
  --bs-navbar-toggler-border-radius: var(--sh-radius-md);
}

.navbar-brand {
  font-weight: 650;
  letter-spacing: 0;
}

.navbar-toggler {
  box-shadow: none;
}

.breadcrumb {
  --bs-breadcrumb-font-size: 0.875rem;
  --bs-breadcrumb-divider-color: var(--sh-muted-foreground);
  --bs-breadcrumb-item-active-color: var(--sh-muted-foreground);
}

.breadcrumb a {
  color: var(--sh-muted-foreground);
  text-decoration: none;
}

.breadcrumb a:hover {
  color: var(--sh-foreground);
}

.pagination {
  --bs-pagination-padding-x: 0.75rem;
  --bs-pagination-padding-y: 0.5rem;
  --bs-pagination-font-size: 0.875rem;
  --bs-pagination-color: var(--sh-foreground);
  --bs-pagination-bg: transparent;
  --bs-pagination-border-width: 1px;
  --bs-pagination-border-color: var(--sh-input);
  --bs-pagination-border-radius: var(--sh-radius-md);
  --bs-pagination-hover-color: var(--sh-accent-foreground);
  --bs-pagination-hover-bg: var(--sh-accent);
  --bs-pagination-hover-border-color: var(--sh-input);
  --bs-pagination-focus-color: var(--sh-accent-foreground);
  --bs-pagination-focus-bg: var(--sh-accent);
  --bs-pagination-active-color: var(--sh-primary-foreground);
  --bs-pagination-active-bg: var(--sh-primary);
  --bs-pagination-active-border-color: var(--sh-primary);
  --bs-pagination-disabled-color: var(--sh-muted-foreground);
  --bs-pagination-disabled-bg: transparent;
  --bs-pagination-disabled-border-color: var(--sh-input);
  gap: 0.25rem;
}

.page-link {
  min-width: 2.5rem;
  border-radius: var(--sh-radius-md);
  text-align: center;
}

.table {
  --bs-table-color: var(--sh-foreground);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--sh-border);
  --bs-table-accent-bg: transparent;
  --bs-table-striped-color: var(--sh-foreground);
  --bs-table-striped-bg: rgba(var(--sh-muted-rgb), 0.52);
  --bs-table-active-color: var(--sh-foreground);
  --bs-table-active-bg: var(--sh-accent);
  --bs-table-hover-color: var(--sh-foreground);
  --bs-table-hover-bg: rgba(var(--sh-accent-rgb), 0.72);
  margin-bottom: 0;
  font-size: 0.875rem;
}

.table > :not(caption) > * > * {
  padding: 0.75rem;
  border-bottom-color: var(--sh-border);
}

.table thead th {
  color: var(--sh-muted-foreground);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: uppercase;
}

.table col.table-check-col {
  width: 3rem;
}

.table > :not(caption) > * > .table-check-cell {
  width: 3rem;
  min-width: 3rem;
  max-width: 3rem;
  padding-right: 0.5rem;
  padding-left: 0.75rem;
  text-align: center;
}

.table > :not(caption) > * > .table-check-cell .form-check-input,
.table > :not(caption) > * > * > .form-check-input:only-child {
  margin-top: 0;
  vertical-align: middle;
}

.table .table-sort-button {
  min-height: 1.25rem;
  padding: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-transform: inherit;
}

.table .table-sort-button:hover,
.table .table-sort-button:focus-visible {
  color: var(--sh-foreground);
}

.table .sort-indicator {
  display: inline-flex;
  width: 0.75rem;
  height: 0.75rem;
  align-items: center;
  justify-content: center;
  color: var(--sh-muted-foreground);
}

.table .sort-indicator::before {
  display: block;
  width: 0;
  height: 0;
  border-right: 0.25rem solid transparent;
  border-left: 0.25rem solid transparent;
  content: "";
  opacity: 0;
}

.table .sort-indicator-asc::before {
  border-bottom: 0.35rem solid currentColor;
  opacity: 1;
}

.table .sort-indicator-desc::before {
  border-top: 0.35rem solid currentColor;
  opacity: 1;
}

.table caption {
  color: var(--sh-muted-foreground);
}

.table-responsive {
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-lg);
}

.accordion {
  --bs-accordion-color: var(--sh-foreground);
  --bs-accordion-bg: var(--sh-card);
  --bs-accordion-transition: color 150ms ease, background-color 150ms ease;
  --bs-accordion-border-color: var(--sh-border);
  --bs-accordion-border-width: 1px;
  --bs-accordion-border-radius: var(--sh-radius-lg);
  --bs-accordion-inner-border-radius: calc(var(--sh-radius-lg) - 1px);
  --bs-accordion-btn-padding-x: 1rem;
  --bs-accordion-btn-padding-y: 1rem;
  --bs-accordion-btn-color: var(--sh-foreground);
  --bs-accordion-btn-bg: var(--sh-card);
  --bs-accordion-btn-focus-border-color: var(--sh-ring);
  --bs-accordion-body-padding-x: 1rem;
  --bs-accordion-body-padding-y: 1rem;
  --bs-accordion-active-color: var(--sh-foreground);
  --bs-accordion-active-bg: var(--sh-muted);
}

.accordion-button {
  font-size: 0.9375rem;
  font-weight: 500;
}

.accordion-body {
  color: var(--sh-muted-foreground);
}

.modal {
  --bs-modal-zindex: 1055;
  --bs-modal-width: 32rem;
  --bs-modal-padding: 1.5rem;
  --bs-modal-margin: 1rem;
  --bs-modal-color: var(--sh-card-foreground);
  --bs-modal-bg: var(--sh-card);
  --bs-modal-border-color: var(--sh-border);
  --bs-modal-border-width: 1px;
  --bs-modal-border-radius: var(--sh-radius-lg);
  --bs-modal-inner-border-radius: calc(var(--sh-radius-lg) - 1px);
  --bs-modal-header-padding-x: 1.5rem;
  --bs-modal-header-padding-y: 1.25rem;
  --bs-modal-header-padding: 1.25rem 1.5rem;
  --bs-modal-header-border-color: var(--sh-border);
  --bs-modal-header-border-width: 1px;
  --bs-modal-title-line-height: 1.25;
  --bs-modal-footer-gap: 0.5rem;
  --bs-modal-footer-bg: transparent;
  --bs-modal-footer-border-color: var(--sh-border);
  --bs-modal-footer-border-width: 1px;
}

.modal-title {
  font-size: 1.125rem;
  font-weight: 600;
}

.modal-backdrop {
  --bs-backdrop-bg: #000000;
  --bs-backdrop-opacity: 0.78;
}

.offcanvas {
  --bs-offcanvas-zindex: 1045;
  --bs-offcanvas-width: 24rem;
  --bs-offcanvas-height: 30vh;
  --bs-offcanvas-padding-x: 1.25rem;
  --bs-offcanvas-padding-y: 1.25rem;
  --bs-offcanvas-color: var(--sh-card-foreground);
  --bs-offcanvas-bg: var(--sh-card);
  --bs-offcanvas-border-color: var(--sh-border);
}

.offcanvas-title {
  font-size: 1rem;
  font-weight: 600;
}

.popover {
  --bs-popover-zindex: 1070;
  --bs-popover-max-width: 18rem;
  --bs-popover-font-size: 0.875rem;
  --bs-popover-bg: var(--sh-popover);
  --bs-popover-border-width: 1px;
  --bs-popover-border-color: var(--sh-border);
  --bs-popover-border-radius: var(--sh-radius-lg);
  --bs-popover-inner-border-radius: calc(var(--sh-radius-lg) - 1px);
  --bs-popover-header-padding-x: 1rem;
  --bs-popover-header-padding-y: 0.75rem;
  --bs-popover-header-font-size: 0.875rem;
  --bs-popover-header-color: var(--sh-popover-foreground);
  --bs-popover-header-bg: transparent;
  --bs-popover-body-padding-x: 1rem;
  --bs-popover-body-padding-y: 0.75rem;
  --bs-popover-body-color: var(--sh-muted-foreground);
}

.tooltip {
  --bs-tooltip-zindex: 1080;
  --bs-tooltip-max-width: 14rem;
  --bs-tooltip-padding-x: 0.625rem;
  --bs-tooltip-padding-y: 0.375rem;
  --bs-tooltip-margin: 0;
  --bs-tooltip-font-size: 0.8125rem;
  --bs-tooltip-color: var(--sh-primary-foreground);
  --bs-tooltip-bg: var(--sh-primary);
  --bs-tooltip-border-radius: var(--sh-radius-sm);
  --bs-tooltip-opacity: 1;
}

.toast {
  --bs-toast-zindex: 1090;
  --bs-toast-padding-x: 1rem;
  --bs-toast-padding-y: 0.75rem;
  --bs-toast-spacing: 1.5rem;
  --bs-toast-max-width: 22rem;
  --bs-toast-font-size: 0.875rem;
  --bs-toast-color: var(--sh-card-foreground);
  --bs-toast-bg: rgba(var(--sh-card-rgb), 0.96);
  --bs-toast-border-width: 1px;
  --bs-toast-border-color: var(--sh-border);
  --bs-toast-border-radius: var(--sh-radius-lg);
  --bs-toast-header-color: var(--sh-foreground);
  --bs-toast-header-bg: transparent;
  --bs-toast-header-border-color: var(--sh-border);
  backdrop-filter: blur(12px);
}

.toast-header {
  font-weight: 600;
}

.progress {
  --bs-progress-height: 0.5rem;
  --bs-progress-font-size: 0.75rem;
  --bs-progress-bg: var(--sh-muted);
  --bs-progress-border-radius: 9999px;
  --bs-progress-box-shadow: none;
  --bs-progress-bar-color: var(--sh-primary-foreground);
  --bs-progress-bar-bg: var(--sh-primary);
}

.progress-lg {
  --bs-progress-height: 1.875rem;
}

.progress-bar {
  font-weight: 600;
  border-radius: inherit;
}

.spinner-border,
.spinner-grow {
  color: var(--sh-primary);
}

.placeholder {
  background-color: var(--sh-muted);
  opacity: 1;
}

.placeholder-glow .placeholder {
  animation-duration: 1.4s;
}

.btn-close {
  width: 0.75rem;
  height: 0.75rem;
  padding: 0.625rem;
  border-radius: var(--sh-radius-sm);
  opacity: 0.72;
  transition: opacity 150ms ease, background-color 150ms ease;
}

.btn-close:hover {
  background-color: var(--sh-accent);
  opacity: 1;
}

.dark .btn-close,
[data-bs-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.carousel {
  border-radius: var(--sh-radius-lg);
}

.carousel-indicators [data-bs-target] {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
}

.carousel-control-prev,
.carousel-control-next {
  opacity: 0.82;
}

.breadcrumb,
.pagination,
.dropdown-menu,
.modal,
.offcanvas,
.popover,
.toast {
  font-feature-settings: "rlig" 1, "calt" 1;
}

.text-body-secondary,
.text-muted {
  color: var(--sh-muted-foreground) !important;
}

.bg-body,
.bg-white {
  background-color: var(--sh-background) !important;
}

.bg-body-tertiary,
.bg-light {
  background-color: var(--sh-muted) !important;
}

.border,
.border-top,
.border-end,
.border-bottom,
.border-start {
  border-color: var(--sh-border) !important;
}

.rounded,
.rounded-2 {
  border-radius: var(--sh-radius-md) !important;
}

.rounded-3,
.rounded-4 {
  border-radius: var(--sh-radius-lg) !important;
}

.shadcn-app {
  min-height: 100vh;
  background: var(--sh-background);
  color: var(--sh-foreground);
}

.shadcn-surface {
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-lg);
  background: var(--sh-card);
  color: var(--sh-card-foreground);
}

.shadcn-muted {
  color: var(--sh-muted-foreground);
}

.shadcn-sidebar {
  border-right: 1px solid var(--sh-sidebar-border);
  background: var(--sh-sidebar);
  color: var(--sh-sidebar-foreground);
}

.shadcn-sidebar .nav-link {
  color: var(--sh-muted-foreground);
}

.shadcn-sidebar .nav-link:hover,
.shadcn-sidebar .nav-link.active {
  color: var(--sh-sidebar-accent-foreground);
  background: var(--sh-sidebar-accent);
}

.shadcn-sidebar .nav-link.active {
  font-weight: 600;
}

.shadcn-command {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid var(--sh-input);
  border-radius: var(--sh-radius-md);
  background: var(--sh-background);
  color: var(--sh-muted-foreground);
  padding: 0 0.75rem;
  font-size: 0.875rem;
}

.shadcn-command:focus-within {
  border-color: rgb(var(--sh-ring-rgb));
}

.shadcn-command input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--sh-foreground);
}

.shadcn-command input::placeholder {
  color: var(--sh-muted-foreground);
}

.shadcn-separator {
  height: 1px;
  background: var(--sh-border);
}

.shadcn-chart-1 {
  color: var(--sh-chart-1);
}

.shadcn-chart-2 {
  color: var(--sh-chart-2);
}

.shadcn-chart-3 {
  color: var(--sh-chart-3);
}

.shadcn-chart-4 {
  color: var(--sh-chart-4);
}

.shadcn-chart-5 {
  color: var(--sh-chart-5);
}

.header {
  --bs-header-margin-bottom: 2rem;
  --bs-header-spacing-y: 1.5rem;
  margin-bottom: var(--bs-header-margin-bottom);
  color: var(--sh-foreground);
}

.header-body {
  border-bottom: 1px solid var(--sh-border);
  padding-top: var(--bs-header-spacing-y);
  padding-bottom: var(--bs-header-spacing-y);
}

.header-footer {
  padding-top: var(--bs-header-spacing-y);
  padding-bottom: var(--bs-header-spacing-y);
}

.header-pretitle {
  margin-bottom: 0.375rem;
  color: var(--sh-muted-foreground);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.header-title {
  margin-bottom: 0;
  color: var(--sh-foreground);
  font-weight: 650;
}

.header-subtitle {
  margin-top: 0.375rem;
  margin-bottom: 0;
  color: var(--sh-muted-foreground);
}

.header-tabs {
  margin-bottom: calc(var(--bs-header-spacing-y) * -1 - 1px);
  border-bottom-width: 0;
}

.header-tabs .nav-link {
  padding-top: var(--bs-header-spacing-y);
  padding-bottom: var(--bs-header-spacing-y);
}

.navbar-vertical {
  width: 15.625rem;
  min-height: 100vh;
  align-items: stretch;
  border-right: 1px solid var(--sh-sidebar-border);
  background: var(--sh-sidebar);
  color: var(--sh-sidebar-foreground);
  padding: 1rem;
}

.navbar-vertical .navbar-brand {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  margin-right: 0;
  margin-bottom: 1rem;
}

.navbar-vertical .navbar-nav {
  flex-direction: column;
  gap: 0.125rem;
}

.navbar-vertical .nav-link {
  color: var(--sh-muted-foreground);
}

.navbar-vertical .nav-link:hover,
.navbar-vertical .nav-link:focus,
.navbar-vertical .nav-link.active {
  color: var(--sh-sidebar-accent-foreground);
  background: var(--sh-sidebar-accent);
}

.navbar-brand-img {
  width: auto;
  max-height: 2rem;
}

.navbar-heading {
  margin: 1.25rem 0 0.5rem;
  color: var(--sh-muted-foreground);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.navbar-divider {
  width: 100%;
  margin: 1rem 0;
  border-top: 1px solid var(--sh-sidebar-border);
}

.navbar-overflow {
  min-height: 0;
  overflow-y: auto;
}

.navbar-breadcrumb {
  --bs-breadcrumb-margin-bottom: 0;
}

.navbar-user,
.navbar-user-link {
  display: flex;
  align-items: center;
}

.main-content {
  min-width: 0;
}

.card-sm {
  --bs-card-spacer-y: 1rem;
  --bs-card-spacer-x: 1rem;
  --bs-card-cap-padding-y: 0.75rem;
  --bs-card-cap-padding-x: 1rem;
}

.card-flush {
  border-width: 0;
  box-shadow: none;
}

.card-header-flush,
.card-footer-boxed {
  padding-right: 0;
  padding-left: 0;
}

.card-header-title {
  margin-bottom: 0;
  color: var(--sh-card-foreground);
  font-size: 1rem;
  font-weight: 600;
}

.card-divider {
  height: 1px;
  margin: 0;
  background: var(--sh-border);
}

.card-table {
  overflow: hidden;
}

.card-table .table-responsive {
  border: 0;
  border-radius: 0;
}

.card-table .table {
  margin-bottom: 0;
}

.card-fill,
.card-fill-xs,
.card-fill-sm,
.card-fill-md,
.card-fill-lg,
.card-fill-xl,
.card-fill-xxl {
  height: 100%;
}

.card-inactive {
  background: var(--sh-muted);
  color: var(--sh-muted-foreground);
  opacity: 0.78;
}

.card-link {
  color: var(--sh-foreground);
  font-weight: 500;
  text-decoration: none;
}

.card-link:hover {
  color: var(--sh-foreground);
  text-decoration: underline;
  text-underline-offset: 0.22em;
}

.site-category-list {
  display: grid;
  gap: 0.75rem;
}

.site-category-row {
  margin-bottom: 0 !important;
  padding: 1rem;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-lg);
  background: var(--sh-card);
  transition: border-color 150ms ease, background-color 150ms ease;
}

.site-category-row:hover {
  border-color: var(--sh-input);
  background: rgba(var(--sh-muted-rgb), 0.36);
}

.site-category-row > [class*="col-"] {
  min-width: 0;
}

.site-category-row h3,
.site-category-title {
  margin-bottom: 0;
  color: var(--sh-card-foreground);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
}

.site-category-row a.text-reset {
  text-decoration: none;
}

.site-category-row a.text-reset:hover h3,
.site-category-row a.text-reset:focus-visible h3 {
  text-decoration: underline;
  text-underline-offset: 0.22em;
}

.site-category-row p,
.site-category-description {
  margin: 0.25rem 0 0;
  color: var(--sh-muted-foreground);
  font-size: 0.875rem;
}

.site-category-progress .progress,
.site-category-row .progress {
  min-width: 8rem;
  border: 1px solid var(--sh-border);
  background: var(--sh-muted);
}

.site-category-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
}

.insight-indicator {
  display: inline-flex !important;
  width: 2.25rem;
  height: 2.25rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--sh-primary-rgb), 0.24);
  border-radius: 9999px;
  background: rgba(var(--sh-primary-rgb), 0.1);
  color: var(--sh-primary);
  vertical-align: middle;
}

.insight-indicator svg {
  display: block;
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

@media (max-width: 767.98px) {
  .site-category-row {
    row-gap: 0.75rem;
  }

  .site-category-row > .col-6,
  .site-category-row > .col-3 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .site-category-actions {
    justify-content: flex-start;
  }
}

.card-avatar,
.card-avatar-top {
  display: flex;
  justify-content: center;
}

.card-avatar-top {
  margin-top: -2rem;
}

.card-pagination {
  border-top: 1px solid var(--sh-border);
  padding: 0.75rem 1rem;
}

.btn-white {
  --bs-btn-color: var(--sh-foreground);
  --bs-btn-bg: var(--sh-card);
  --bs-btn-border-color: var(--sh-input);
  --bs-btn-hover-color: var(--sh-accent-foreground);
  --bs-btn-hover-bg: var(--sh-accent);
  --bs-btn-hover-border-color: var(--sh-input);
  --bs-btn-active-color: var(--sh-accent-foreground);
  --bs-btn-active-bg: var(--sh-accent-hover);
  --bs-btn-active-border-color: var(--sh-input);
  --bs-btn-disabled-color: var(--sh-muted-foreground);
  --bs-btn-disabled-bg: var(--sh-card);
  --bs-btn-disabled-border-color: var(--sh-input);
}

.btn-rounded-circle {
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border-radius: 9999px;
}

.btn-rounded-circle.btn-sm,
.btn-group-sm > .btn-rounded-circle.btn {
  width: 2.25rem;
  height: 2.25rem;
}

.btn-rounded-circle.btn-lg,
.btn-group-lg > .btn-rounded-circle.btn {
  width: 2.75rem;
  height: 2.75rem;
}

.form-group {
  margin-bottom: 1rem;
}

.form-control-auto {
  width: auto;
}

.form-control-flush,
.form-select-flush {
  padding-right: 0;
  padding-left: 0;
  border-width: 0 0 1px;
  border-radius: 0;
  background-color: transparent;
}

.form-control-rounded,
.form-select-rounded {
  border-radius: 9999px;
}

.form-control-plaintext {
  color: var(--sh-foreground);
}

.form-check-circle .form-check-input {
  border-radius: 9999px;
}

.input-group-flush > .form-control,
.input-group-flush > .form-select,
.input-group-flush > .input-group-text {
  border-width: 0 0 1px;
  border-radius: 0;
  background: transparent;
}

.input-group-merge > .form-control:not(:first-child),
.input-group-merge > .form-select:not(:first-child) {
  border-left-width: 0;
}

.input-group-merge > .form-control:not(:last-child),
.input-group-merge > .form-select:not(:last-child) {
  border-right-width: 0;
}

.input-group-merge > .input-group-text {
  background: transparent;
}

.input-group-rounded > .form-control,
.input-group-rounded > .form-select,
.input-group-rounded > .input-group-text {
  border-radius: 9999px;
}

.input-group-reverse {
  flex-direction: row-reverse;
}

.table-nowrap > :not(caption) > * > * {
  white-space: nowrap;
}

.nav-sm {
  --bs-nav-link-padding-x: 0.625rem;
  --bs-nav-link-padding-y: 0.375rem;
  --bs-nav-link-font-size: 0.8125rem;
}

.nav-tabs-sm {
  --bs-nav-link-padding-x: 0.625rem;
  --bs-nav-link-padding-y: 0.375rem;
  --bs-nav-link-font-size: 0.8125rem;
}

.nav-underline {
  gap: 0.75rem;
  border-bottom: 1px solid var(--sh-border);
}

.nav-underline .nav-link {
  padding-right: 0;
  padding-left: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--sh-muted-foreground);
}

.nav-underline .nav-link:hover,
.nav-underline .nav-link.active,
.nav-underline .show > .nav-link {
  border-bottom-color: var(--sh-primary);
  color: var(--sh-foreground);
  background: transparent;
}

.nav-overflow {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}

.breadcrumb-sm {
  --bs-breadcrumb-font-size: 0.8125rem;
}

.breadcrumb-overflow {
  flex-wrap: nowrap;
  overflow-x: auto;
  white-space: nowrap;
}

.pagination-sm {
  --bs-pagination-padding-x: 0.625rem;
  --bs-pagination-padding-y: 0.375rem;
  --bs-pagination-font-size: 0.8125rem;
}

.pagination-lg {
  --bs-pagination-padding-x: 1rem;
  --bs-pagination-padding-y: 0.625rem;
  --bs-pagination-font-size: 1rem;
}

.pagination-overflow,
.list-pagination {
  flex-wrap: nowrap;
  overflow-x: auto;
}

.pagination-tabs {
  gap: 0;
  border-bottom: 1px solid var(--sh-border);
}

.pagination-tabs .page-link {
  border-width: 0 0 2px;
  border-radius: 0;
  border-bottom-color: transparent;
  background: transparent;
}

.pagination-tabs .active .page-link,
.pagination-tabs .page-link.active {
  color: var(--sh-foreground);
  border-bottom-color: var(--sh-primary);
  background: transparent;
}

.workspace-pagination {
  margin-bottom: 0;
  align-items: center;
  --workspace-pagination-size: 2.25rem;
}

.workspace-pagination .page-link {
  min-width: var(--workspace-pagination-size);
  min-height: var(--workspace-pagination-size);
  padding-top: 0;
  padding-bottom: 0;
  border-radius: var(--sh-radius-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  line-height: 1;
}

.workspace-pagination-icon {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.dropdown-ellipses .dropdown-toggle::after {
  display: none;
}

.dropdown-menu-card {
  padding: 0;
  overflow: hidden;
}

.dropdown-menu-card .card {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.dropdown-menu-sm {
  --bs-dropdown-min-width: 8rem;
  --bs-dropdown-font-size: 0.8125rem;
}

.modal-card {
  margin-bottom: 0;
}

.modal-card .card-body {
  max-height: var(--bs-modal-card-body-max-height, 22rem);
  overflow-y: auto;
}

.modal-header-tabs {
  margin-top: -1rem;
  margin-bottom: calc(-1rem - 1px);
}

.popover-body-indicator {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.25rem;
  border-radius: 9999px;
  background: currentColor;
}

.popover-lg {
  --bs-popover-max-width: 20rem;
}

.progress-sm {
  --bs-progress-height: 0.25rem;
}

.text-bg-primary-subtle {
  color: var(--bs-primary-text-emphasis) !important;
  background-color: var(--bs-primary-bg-subtle) !important;
}

.text-bg-secondary-subtle {
  color: var(--bs-secondary-text-emphasis) !important;
  background-color: var(--bs-secondary-bg-subtle) !important;
}

.text-bg-success-subtle {
  color: var(--bs-success-text-emphasis) !important;
  background-color: var(--bs-success-bg-subtle) !important;
}

.text-bg-info-subtle {
  color: var(--bs-info-text-emphasis) !important;
  background-color: var(--bs-info-bg-subtle) !important;
}

.text-bg-warning-subtle {
  color: var(--bs-warning-text-emphasis) !important;
  background-color: var(--bs-warning-bg-subtle) !important;
}

.text-bg-danger-subtle {
  color: var(--bs-danger-text-emphasis) !important;
  background-color: var(--bs-danger-bg-subtle) !important;
}

.text-bg-light-subtle {
  color: var(--sh-foreground) !important;
  background-color: var(--sh-muted) !important;
}

.text-bg-dark-subtle {
  color: var(--sh-foreground) !important;
  background-color: rgba(var(--sh-foreground-rgb), 0.08) !important;
}

.avatar {
  --bs-avatar-size: 3rem;
  --bs-avatar-title-bg: var(--sh-muted);
  --bs-avatar-title-color: var(--sh-foreground);
  position: relative;
  display: inline-block;
  width: var(--bs-avatar-size);
  height: var(--bs-avatar-size);
  flex: 0 0 var(--bs-avatar-size);
  border-radius: 9999px;
  font-size: calc(var(--bs-avatar-size) / 3);
}

.avatar-img,
.avatar-title {
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.avatar-img {
  object-fit: cover;
}

.avatar-title {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-avatar-title-bg);
  color: var(--bs-avatar-title-color);
  font-weight: 600;
  line-height: 1;
}

.avatar-online::before,
.avatar-offline::before {
  position: absolute;
  right: 5%;
  bottom: 5%;
  width: 22%;
  height: 22%;
  border: 2px solid var(--sh-background);
  border-radius: 9999px;
  content: "";
}

.avatar-online::before {
  background: var(--sh-success);
}

.avatar-offline::before {
  background: var(--sh-muted-foreground);
}

.avatar-xs {
  --bs-avatar-size: 1.625rem;
}

.avatar-sm {
  --bs-avatar-size: 2.25rem;
}

.avatar-lg {
  --bs-avatar-size: 4rem;
}

.avatar-xl {
  --bs-avatar-size: 5.125rem;
}

.avatar-xxl {
  --bs-avatar-size: 6.5rem;
}

.avatar-4by3 {
  width: calc(var(--bs-avatar-size) * 4 / 3);
  border-radius: var(--sh-radius-md);
}

.avatar-group {
  display: inline-flex;
  align-items: center;
}

.avatar-group .avatar + .avatar {
  margin-left: calc(var(--bs-avatar-size) * -0.25);
}

.chart {
  --bs-chart-height: 18.75rem;
  --bs-chart-sparkline-width: 4.75rem;
  --bs-chart-sparkline-height: 2.25rem;
  position: relative;
  min-height: var(--bs-chart-height);
}

.chart-sm {
  --bs-chart-height: 14rem;
}

.chart-sparkline {
  width: var(--bs-chart-sparkline-width);
  min-height: var(--bs-chart-sparkline-height);
}

.chart-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin-top: 1.5rem;
  color: var(--sh-muted-foreground);
  font-size: 0.875rem;
}

.chart-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.chart-legend-indicator {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background: currentColor;
}

.choices {
  position: relative;
}

.choices:focus {
  outline: 0;
}

.choices > .form-control,
.choices > .form-select {
  cursor: pointer;
}

.choices > .dropdown-menu {
  width: 100%;
  max-height: 16rem;
  overflow: auto;
}

.choices > .dropdown-menu .form-control {
  width: calc(100% - 1rem);
  margin: 0.5rem;
}

.choices.is-open > .form-control,
.choices.is-open > .form-select {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.choices.is-open > .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}

.choices__placeholder {
  color: var(--sh-muted-foreground);
  opacity: 1;
}

.choices__list--multiple {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.choices__list--multiple > .choices__item {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-sm);
  background: var(--sh-secondary);
  color: var(--sh-secondary-foreground);
  padding: 0.125rem 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
}

.choices__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.75rem;
  height: 0.75rem;
  border: 0;
  background: transparent;
  color: inherit;
  opacity: 0.6;
}

.choices__button:hover {
  opacity: 1;
}

.choices__button::before {
  content: "x";
  font-size: 0.75rem;
  line-height: 1;
}

.dropzone {
  --bs-dropzone-bg: var(--sh-card);
  --bs-dropzone-border-color: var(--sh-input);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  position: relative;
}

.dz-message {
  order: -1;
  border: 1px dashed var(--bs-dropzone-border-color);
  border-radius: var(--sh-radius-lg);
  background: var(--bs-dropzone-bg);
  color: var(--sh-muted-foreground);
  padding: 2.5rem 1rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

.dz-message:hover,
.dz-drag-hover .dz-message {
  border-color: rgb(var(--sh-ring-rgb));
  background: var(--sh-accent);
  color: var(--sh-accent-foreground);
}

.dz-button {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}

.dropzone-multiple .dz-message {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.dropzone-single.dz-max-files-reached .dz-message {
  opacity: 0;
}

.dropzone-single.dz-max-files-reached .dz-message:hover {
  opacity: 1;
}

.dz-preview-cover,
.dz-preview-single {
  position: absolute;
  inset: 0;
  border-radius: var(--sh-radius-lg);
}

.dz-preview-img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

.dz-preview-multiple .list-group-item:last-child {
  border-bottom: 0;
}

.flatpickr-calendar {
  border: 1px solid var(--sh-border) !important;
  border-radius: var(--sh-radius-lg) !important;
  background: var(--sh-popover) !important;
  color: var(--sh-popover-foreground) !important;
}

.flatpickr-calendar * {
  color: inherit !important;
}

.flatpickr-calendar.arrowTop::before {
  border-bottom-color: var(--sh-border) !important;
}

.flatpickr-calendar.arrowTop::after {
  border-bottom-color: var(--sh-popover) !important;
}

.flatpickr-months {
  padding: 0.5rem 0.5rem 0;
}

.flatpickr-current-month {
  font-size: 1rem !important;
  font-weight: 600 !important;
}

.flatpickr-weekday {
  color: var(--sh-muted-foreground) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
}

.flatpickr-day {
  border-radius: var(--sh-radius-sm) !important;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
  border-color: var(--sh-accent) !important;
  background: var(--sh-accent) !important;
  color: var(--sh-accent-foreground) !important;
}

.flatpickr-day.today {
  border-color: rgb(var(--sh-ring-rgb)) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  border-color: var(--sh-primary) !important;
  background: var(--sh-primary) !important;
  color: var(--sh-primary-foreground) !important;
}

.flatpickr-day.inRange {
  border-color: var(--sh-accent) !important;
  background: var(--sh-accent) !important;
}

.ql-container {
  font-family: var(--bs-font-sans-serif);
}

.ql-toolbar {
  border: 1px solid var(--sh-input);
  border-radius: var(--sh-radius-md) var(--sh-radius-md) 0 0;
  background: var(--sh-card);
  color: var(--sh-card-foreground);
  padding: 0.5rem 0.75rem;
}

.ql-toolbar + .ql-container {
  margin-top: -1px;
}

.ql-toolbar button {
  border: 0;
  border-radius: var(--sh-radius-sm);
  background: transparent;
  color: var(--sh-foreground);
  padding: 0.25rem;
  transition: color 150ms ease, background-color 150ms ease;
}

.ql-toolbar button:hover,
.ql-toolbar .ql-active {
  background: var(--sh-accent);
  color: var(--sh-accent-foreground);
}

.ql-toolbar .ql-stroke {
  stroke: currentColor;
}

.ql-toolbar .ql-fill {
  fill: currentColor;
}

.ql-editor {
  display: block;
  width: 100%;
  min-height: 6rem;
  border: 1px solid var(--sh-input);
  border-radius: var(--sh-radius-md);
  background: transparent;
  color: var(--sh-foreground);
  padding: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  transition: border-color 150ms ease;
}

.ql-toolbar + .ql-container .ql-editor {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.ql-editor:focus {
  border-color: rgb(var(--sh-ring-rgb));
}

.ql-editor.ql-blank::before {
  color: var(--sh-muted-foreground);
  font-style: normal;
}

.ql-tooltip {
  border: 1px solid var(--sh-border) !important;
  border-radius: var(--sh-radius-md) !important;
  background: var(--sh-popover) !important;
  color: var(--sh-popover-foreground) !important;
  padding: 0.5rem 0.75rem !important;
}

.comment {
  --bs-comment-body-bg: var(--sh-muted);
  margin-bottom: 1rem;
}

.comment-body {
  display: inline-block;
  border-radius: var(--sh-radius-lg);
  background: var(--bs-comment-body-bg);
  color: var(--sh-foreground);
  padding: 1rem 1.25rem;
}

.comment-time {
  display: block;
  margin-bottom: 0.375rem;
  color: var(--sh-muted-foreground);
  font-size: 0.75rem;
}

.comment-text:last-child {
  margin-bottom: 0;
}

.checklist {
  outline: 0;
}

.checklist .form-check + .form-check {
  margin-top: 0.75rem;
}

.checklist .form-check-input:checked + .form-check-label {
  color: var(--sh-muted-foreground);
  text-decoration: line-through;
}

.kanban-container {
  min-height: 16rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.kanban-container > .row {
  flex-wrap: nowrap;
}

.kanban-container > .row > [class*="col"] {
  max-width: 23rem;
}

.kanban-category {
  min-height: 1rem;
}

.kanban-item {
  outline: 0;
  user-select: none;
}

.kanban-item > .card[data-bs-toggle="modal"] {
  cursor: pointer;
}

.kanban-item.draggable-source--is-dragging {
  opacity: 0.35;
}

.kanban-item.draggable-mirror {
  z-index: 1030;
}

.map,
.leaflet-container {
  border-radius: var(--sh-radius-lg);
  background: var(--sh-muted);
  color: var(--sh-foreground);
}

.leaflet-bar {
  border: 1px solid var(--sh-border) !important;
  border-radius: var(--sh-radius-md) !important;
  overflow: hidden;
}

.leaflet-bar a {
  border-bottom-color: var(--sh-border) !important;
  background: var(--sh-card) !important;
  color: var(--sh-card-foreground) !important;
}

.leaflet-bar a:hover {
  background: var(--sh-accent) !important;
  color: var(--sh-accent-foreground) !important;
}

.leaflet-popup-content-wrapper {
  border: 1px solid var(--sh-border);
  border-radius: var(--sh-radius-lg);
  background: var(--sh-popover);
  color: var(--sh-popover-foreground);
}

.leaflet-popup-tip {
  background: var(--sh-popover);
}

.list-alert {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  z-index: 1030;
  min-width: min(22rem, calc(100vw - 2rem));
  margin-bottom: 0;
  transform: translateX(-50%);
}

.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.icon.active {
  position: relative;
}

.icon.active::after {
  position: absolute;
  top: 10%;
  right: 10%;
  width: 0.45em;
  height: 0.45em;
  border-radius: 9999px;
  background: var(--sh-primary);
  content: "";
}

.workspace-table-shell {
  border: 1px solid rgba(var(--sh-border-rgb), 0.72);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.95);
  overflow: hidden;
}

.workspace-page-full-width .workspace-panel {
  border-radius: 0.5rem;
}

.workspace-data-table {
  margin-bottom: 0;
  width: 100%;
  table-layout: fixed;
  font-size: 0.875rem;
}

.workspace-data-table thead th {
  padding: 1rem 1.2rem;
  background: rgba(var(--sh-muted-rgb), 0.7);
  border-bottom-width: 1px;
  border-bottom-color: rgba(var(--sh-border-rgb), 0.8);
  color: var(--sh-muted-foreground);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.workspace-data-table tbody td {
  padding: 1.15rem 1.2rem;
  vertical-align: middle;
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(var(--sh-border-rgb), 0.55);
  overflow-wrap: anywhere;
}

.workspace-data-table tbody tr:last-child td {
  border-bottom: 0;
}

.workspace-data-table tbody tr:hover td,
.workspace-data-table tbody tr:focus-within td {
  background: rgba(var(--sh-primary-rgb), 0.09);
}

.workspace-data-table thead th:first-child,
.workspace-data-table tbody td:first-child {
  padding-left: 4.6rem;
}

.workspace-data-table thead th:first-child .workspace-sort-link,
.workspace-data-table tbody td:first-child .workspace-row-link {
  display: inline-block;
  padding-left: 0.85rem;
}

.workspace-data-table thead th:last-child,
.workspace-data-table tbody td:last-child {
  padding-right: 4.6rem;
}

.workspace-sort-link {
  color: inherit;
  text-decoration: none;
}

.workspace-sort-link:hover {
  color: var(--sh-foreground);
}

.workspace-row-link {
  color: inherit;
  text-decoration: none;
}

.workspace-row-title {
  display: block;
  color: var(--sh-foreground);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.35;
}

.workspace-data-table .workspace-row-title,
.workspace-data-table .workspace-row-link {
  font-weight: 400;
}

.workspace-row-subtitle {
  display: block;
  margin-top: 0.2rem;
  color: var(--sh-muted-foreground);
  font-size: 0.875rem;
  line-height: 1.5;
}

.workspace-inline-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.45rem;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  background: rgba(var(--sh-primary-rgb), 0.1);
  color: var(--sh-foreground);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
}

.workspace-inline-badge-soft {
  background: rgba(15, 23, 42, 0.06);
}

.workspace-data-table tbody td:last-child .workspace-inline-badge {
  display: inline-flex;
  width: fit-content;
  margin-right: 0.6rem;
}

.workspace-data-table tbody td:last-child .workspace-inline-badge + .workspace-inline-badge {
  margin-top: 0.55rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
