/* Theme: Dark modern with teal accent */
:root {
  --background: #0f1211;
  --foreground: #e7eceb;
  --foreground-rgb: 231, 236, 235;
  --primary: #78fcd6;
  --primary-dark: #00ffb6;
  --primary-light: hsl(160 48% 87%);

  --muted-bg: #27272a;
  --accent: #3f3f42;

  --border-primary: rgba(255, 255, 255, 0.08);
  --border-light: rgba(16, 24, 40, 0.10);
  --border-dark: rgba(16, 24, 40, 0.05);

  --radius: 8px; /* 0.5rem */

  /* Typography scale */
  --fs-theme-xs: 11px; --lh-theme-xs: 14px;
  --fs-theme-sm: 12px; --lh-theme-sm: 16px;
  --fs-theme-base: 13px; --lh-theme-base: 18px;
  --fs-theme-lg: 14px; --lh-theme-lg: 20px;
  --fs-theme-xl: 16px; --lh-theme-xl: 22px;
  --fs-theme-2xl: 18px; --lh-theme-2xl: 24px;
  --fs-theme-3xl: 20px; --lh-theme-3xl: 26px;
}

/* Base */
body.theme-body {
  background-color: var(--background);
  color: rgba(var(--foreground-rgb), 0.85);
  font-family: "Geist", "SF Pro Display", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
  font-size: var(--fs-theme-base);
  line-height: var(--lh-theme-base);
}

.theme-sidebar {
  background: var(--background);
  border-right: 1px solid var(--border-primary);
}

.theme-card {
  
  border: 1px solid var(--border-primary);
  border-radius: var(--radius);
}

/* Navigation */
.theme-nav-item {
  color: rgba(var(--foreground-rgb), 0.70);
}
.theme-nav-item:hover {
  color: rgba(var(--foreground-rgb), 0.90);
  background: rgba(var(--foreground-rgb), 0.05);
}
.theme-nav-item-active {
  color: var(--primary);
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  border-right: 2px solid var(--primary);
}
.theme-nav-section {
  color: rgba(var(--foreground-rgb), 0.50);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Buttons */
.theme-button-ghost {
  color: rgba(var(--foreground-rgb), 0.70);
  background: transparent;
  border: 1px solid var(--border-primary);
}
.theme-button-ghost:hover {
  background: rgba(var(--foreground-rgb), 0.05);
  color: rgba(var(--foreground-rgb), 0.90);
}

:root { --primary-foreground: #0f1211; }
.theme-button-primary {
  background: var(--primary);
  color: var(--primary-foreground);
}
.theme-button-primary:hover {
  background: var(--primary-dark);
}

/* Text hierarchy */
.theme-text-primary { color: rgba(var(--foreground-rgb), 0.85); }
.theme-text-secondary { color: rgba(var(--foreground-rgb), 0.70); }
.theme-text-muted { color: rgba(var(--foreground-rgb), 0.60); }
.theme-text-subtle { color: rgba(var(--foreground-rgb), 0.50); }

/* Font-size utilities */
.text-theme-xs { font-size: var(--fs-theme-xs); line-height: var(--lh-theme-xs); }
.text-theme-sm { font-size: var(--fs-theme-sm); line-height: var(--lh-theme-sm); }
.text-theme-base { font-size: var(--fs-theme-base); line-height: var(--lh-theme-base); }
.text-theme-lg { font-size: var(--fs-theme-lg); line-height: var(--lh-theme-lg); }
.text-theme-xl { font-size: var(--fs-theme-xl); line-height: var(--lh-theme-xl); }
.text-theme-2xl { font-size: var(--fs-theme-2xl); line-height: var(--lh-theme-2xl); }
.text-theme-3xl { font-size: var(--fs-theme-3xl); line-height: var(--lh-theme-3xl); }

/* Containers & spacing */
.container-2xl {
  max-width: 1400px;
  padding-left: 2rem;
  padding-right: 2rem;
  margin-left: auto;
  margin-right: auto;
}

/* Subtle borders */
.border-border { border-color: var(--border-primary) !important; }
.bg-card { background: var(--muted-bg) !important; }
.bg-background { background: var(--background) !important; }

/* Glass effect helper */
.glass {
  background: color-mix(in srgb, var(--background) 80%, transparent);
  backdrop-filter: blur(12px);
  border: 1px solid var(--border-primary);
}

/* Assistant form compaction helpers */
.assist-compact .section-header { padding: 8px 0; }
.assist-compact .section-title { font-size: var(--fs-theme-xl); line-height: var(--lh-theme-xl); }
.assist-compact .section-subtitle { font-size: var(--fs-theme-sm); line-height: var(--lh-theme-sm); color: rgba(var(--foreground-rgb), 0.60); }
.assist-compact .field-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { .assist-compact .field-grid.md-2 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .assist-compact .field-grid.lg-3 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
