:root {
  /* PRIMARY COLORS - Base Palette */
  --color-white: #FFFFFF;
  --color-light-gray: #F3F4F6;
  --color-medium-gray: #D1D5DB;
  --color-dark-gray: #1F2937;
  --color-black: #000000;

  /* ACCENT COLORS - Green */
  --color-green-100: #D1FAE5;
  --color-green-500: #10B981;
  --color-green-600: #059669;
  --color-green-700: #047857;

  /* SEMANTIC COLORS */
  --color-success: #10B981;
  --color-warning: #F59E0B;
  --color-error: #EF4444;
  --color-info: #3B82F6;
  --color-neutral: #6B7280;

  /* TEXT COLORS */
  --text-primary: #1F2937;
  --text-secondary: #6B7280;
  --text-disabled: #9CA3AF;
  --text-light: #D1D5DB;

  /* SPACING SCALE (base: 4px) */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-2xl: 48px;

  /* SHADOWS */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
  --shadow-green: 0 4px 12px rgba(16, 185, 129, 0.15);

  /* TRANSITIONS */
  --transition-standard: all 200ms ease-in-out;

  /* MkDocs Material Theme Variables (for compatibility) */
  --md-primary-fg-color: #000000;
  --md-primary-bg-color: #ffffff;
  --md-accent-fg-color: #10B981;
  --md-accent-bg-color: #f0fdf4;
}

/* DARK MODE OVERRIDES - using data attribute for mkdocs-material */
[data-md-color-scheme="slate"] {
  --color-white: #0F172A;
  --color-light-gray: #1E293B;
  --color-black: #FFFFFF;
  --text-primary: #F1F5F9;
  --text-secondary: #CBD5E1;
  --color-medium-gray: #475569;
}

[data-md-color-scheme="slate"] .md-typeset strong {
  color: #FFFFFF !important;
}

[data-md-color-scheme="slate"] .md-typeset h1,
[data-md-color-scheme="slate"] .md-typeset h2,
[data-md-color-scheme="slate"] .md-typeset h3,
[data-md-color-scheme="slate"] .md-typeset h4,
[data-md-color-scheme="slate"] .md-typeset h5,
[data-md-color-scheme="slate"] .md-typeset h6 {
  color: #FFFFFF !important;
}

[data-md-color-scheme="slate"] .md-typeset {
  color: #F1F5F9 !important;
}

[data-md-color-scheme="slate"] .md-typeset a {
  color: #10B981 !important;
}

[data-md-color-scheme="slate"] .md-typeset dt {
  color: #FFFFFF !important;
}

/* Dark mode variables scoped to slate scheme only - never override :root */

/* CONTENT LINKS - scoped to article content only */
.md-typeset a:not(.md-nav__link):not(.md-source):not(.md-header__button) {
  color: var(--color-green-500);
  text-decoration: none;
  transition: var(--transition-standard);
}

.md-typeset a:not(.md-nav__link):hover {
  color: var(--color-green-600);
  text-decoration: underline;
}

.md-typeset a:not(.md-nav__link):visited {
  color: var(--color-green-600);
}

.md-typeset a:not(.md-nav__link):active {
  color: var(--color-green-700);
}

/* HEADINGS */
.md-typeset h1 {
  color: var(--color-black);
  font-weight: 700;
  font-size: 32px;
  margin-top: var(--spacing-lg);
  margin-bottom: var(--spacing-md);
}

.md-typeset h2 {
  color: var(--text-primary);
  font-weight: 700;
  font-size: 24px;
  margin-top: var(--spacing-xl);
  margin-bottom: var(--spacing-md);
  border-bottom: 2px solid var(--color-light-gray);
  padding-bottom: var(--spacing-sm);
}

.md-typeset h3 {
  color: var(--text-primary);
  font-weight: 600;
  font-size: 20px;
  margin-top: var(--spacing-lg);
  margin-bottom: var(--spacing-sm);
}

/* BODY TEXT */
.md-typeset {
  color: var(--text-primary);
  line-height: 1.6;
}

.md-typeset p {
  margin-bottom: var(--spacing-md);
}

/* SECONDARY TEXT */
.md-typeset small,
.md-typeset .footnote {
  color: var(--text-secondary);
  font-size: 12px;
}

/* STRONG/EMPHASIS */
.md-typeset strong {
  color: var(--color-black);
  font-weight: 600;
}

.md-typeset em {
  color: var(--text-primary);
  font-style: italic;
}

/* TABLES */
.md-typeset table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--spacing-lg);
  border: 1px solid var(--color-medium-gray);
  border-radius: 6px;
  overflow: hidden;
}

.md-typeset thead {
  background-color: var(--color-light-gray);
}

.md-typeset th {
  color: var(--color-black);
  font-weight: 600;
  padding: var(--spacing-md);
  text-align: left;
  border-bottom: 2px solid var(--color-medium-gray);
}

.md-typeset td {
  padding: var(--spacing-md);
  border-bottom: 1px solid var(--color-medium-gray);
  color: var(--text-primary);
}

.md-typeset tr:hover {
  background-color: var(--color-light-gray);
}

/* STRIPED TABLE ROWS */
.md-typeset tbody tr:nth-child(even) {
  background-color: #FAFBFC;
}

[data-md-color-scheme="slate"] .md-typeset tbody tr:nth-child(even) {
  background-color: #1E293B;
}

[data-md-color-scheme="slate"] .md-typeset tbody tr:nth-child(odd) {
  background-color: #0F172A;
}

[data-md-color-scheme="slate"] .md-typeset tr:hover {
  background-color: #334155;
}

[data-md-color-scheme="slate"] .md-typeset td {
  color: #F1F5F9;
}

[data-md-color-scheme="slate"] .md-typeset th {
  color: #FFFFFF;
}

/* LISTS */
.md-typeset ul,
.md-typeset ol {
  margin-bottom: var(--spacing-lg);
  padding-left: var(--spacing-lg);
}

.md-typeset li {
  margin-bottom: var(--spacing-sm);
  color: var(--text-primary);
  line-height: 1.6;
}

.md-typeset ul li::marker {
  color: var(--color-green-500);
}

.md-typeset ol li::marker {
  color: var(--color-green-500);
  font-weight: 600;
}

/* DEFINITION LIST */
.md-typeset dt {
  font-weight: 600;
  color: var(--color-black);
  margin-top: var(--spacing-md);
}

.md-typeset dd {
  margin-left: var(--spacing-lg);
  color: var(--text-secondary);
  margin-bottom: var(--spacing-sm);
}

/* INPUT FIELDS */
.md-typeset input[type="text"],
.md-typeset input[type="email"],
.md-typeset input[type="search"],
.md-typeset textarea {
  border: 1px solid var(--color-medium-gray);
  background-color: var(--color-white);
  color: var(--text-primary);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 6px;
  font-size: 14px;
  transition: var(--transition-standard);
  width: 100%;
  max-width: 100%;
}

.md-typeset input:focus,
.md-typeset textarea:focus {
  border-color: var(--color-green-500);
  outline: none;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}

.md-typeset input:disabled,
.md-typeset textarea:disabled {
  background-color: var(--color-light-gray);
  color: var(--text-disabled);
  cursor: not-allowed;
}

/* LABELS */
.md-typeset label {
  display: block;
  color: var(--text-primary);
  font-weight: 600;
  font-size: 14px;
  margin-bottom: var(--spacing-xs);
}

/* HELPER TEXT */
.md-typeset .form-help,
.md-typeset .hint {
  color: var(--text-secondary);
  font-size: 12px;
  margin-top: var(--spacing-xs);
}

/* ERROR STATE */
.md-typeset input.error,
.md-typeset textarea.error {
  border-color: var(--color-error);
  background-color: #FEF2F2;
}

.md-typeset .error-message {
  color: var(--color-error);
  font-size: 12px;
  margin-top: var(--spacing-xs);
}

/* CHECKBOXES & RADIO */
.md-typeset input[type="checkbox"],
.md-typeset input[type="radio"] {
  accent-color: var(--color-green-500);
  cursor: pointer;
}

/* BADGES AND TAGS */
.md-typeset .badge,
.md-typeset span.label {
  display: inline-block;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid;
  margin-right: var(--spacing-xs);
}

/* SUCCESS BADGE */
.md-typeset .badge.success {
  background-color: var(--color-green-100);
  color: var(--color-green-700);
  border-color: var(--color-green-500);
}

/* WARNING BADGE */
.md-typeset .badge.warning {
  background-color: #FEF3C7;
  color: #92400E;
  border-color: var(--color-warning);
}

/* ERROR BADGE */
.md-typeset .badge.error {
  background-color: #FEE2E2;
  color: #991B1B;
  border-color: var(--color-error);
}

/* INFO BADGE */
.md-typeset .badge.info {
  background-color: #DBEAFE;
  color: #1E40AF;
  border-color: var(--color-info);
}

/* DEFAULT BADGE */
.md-typeset .badge {
  background-color: var(--color-light-gray);
  color: var(--text-primary);
  border-color: var(--color-medium-gray);
}

/* PRIMARY BUTTON */
.md-button {
  background-color: var(--color-green-500);
  color: var(--color-white);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 6px;
  border: none;
  font-weight: 500;
  transition: var(--transition-standard);
  cursor: pointer;
}

.md-button:hover {
  background-color: var(--color-green-600);
  box-shadow: var(--shadow-green);
}

.md-button:active {
  background-color: var(--color-green-700);
  transform: scale(0.98);
}

.md-button:disabled {
  background-color: var(--color-medium-gray);
  color: var(--text-disabled);
  cursor: not-allowed;
  opacity: 0.6;
}

/* BUTTON FOCUS STATE */
.md-button:focus {
  outline: 2px solid var(--color-green-500);
  outline-offset: 2px;
}

/* DEFAULT CARD - only apply to admonitions and special blocks, not all content */

/* ADMONITION (NOTE/WARNING/TIP) CARDS */
.md-typeset .admonition {
  background-color: var(--color-light-gray);
  border-left: 4px solid var(--color-green-500);
  padding: var(--spacing-lg);
  border-radius: 6px;
  margin-bottom: var(--spacing-lg);
}

/* HIGHLIGHTED/FEATURED CARDS */
.md-typeset .admonition.note {
  background-color: var(--color-green-100);
  border-left-color: var(--color-green-500);
}

/* CODE BLOCK */
.md-typeset code {
  background-color: var(--color-light-gray);
  color: var(--color-green-500);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 4px;
}

.md-typeset pre {
  background-color: #0F172A;
  border: 1px solid var(--color-medium-gray);
  border-radius: 6px;
  padding: var(--spacing-lg);
}

.md-typeset pre code {
  background-color: transparent;
  color: var(--color-green-100);
  padding: 0;
}

/* NAVIGATION ITEMS - Unselected */
.md-nav__link {
  color: var(--text-primary) !important;
  transition: var(--transition-standard);
}

.md-nav__link:hover {
  color: var(--color-green-500) !important;
  background-color: rgba(16, 185, 129, 0.1);
}

/* NAVIGATION ITEMS - Selected/Active */
.md-nav__link--active {
  color: var(--color-green-500) !important;
  font-weight: 600;
  background-color: rgba(16, 185, 129, 0.1);
  border-left: 3px solid var(--color-green-500);
  padding-left: 9px;
}

/* TABLE OF CONTENTS - Unselected */
.md-nav--secondary .md-nav__link {
  color: var(--text-secondary) !important;
  transition: var(--transition-standard);
}

.md-nav--secondary .md-nav__link:hover {
  color: var(--text-primary) !important;
}

/* TABLE OF CONTENTS - Active/Selected */
.md-nav--secondary .md-nav__link--active {
  color: var(--color-green-500) !important;
  font-weight: 600;
}

/* SIDEBAR ITEMS - Unselected */
.md-sidebar__scrollwrap a {
  color: var(--text-primary) !important;
  transition: var(--transition-standard);
}

.md-sidebar__scrollwrap a:hover {
  color: var(--color-green-500) !important;
  background-color: rgba(16, 185, 129, 0.1);
}

/* ACTIVE/SELECTED NAV ITEM */
.md-nav__item--active > .md-nav__link {
  color: var(--color-green-500) !important;
}

/* DARK MODE NAV OVERRIDES */
[data-md-color-scheme="slate"] .md-nav__link {
  color: #CBD5E1;
}

[data-md-color-scheme="slate"] .md-nav__link:hover {
  color: #10B981;
}

[data-md-color-scheme="slate"] .md-nav__link--active {
  color: #10B981 !important;
}

[data-md-color-scheme="slate"] .md-nav--secondary .md-nav__link {
  color: #94A3B8;
}

[data-md-color-scheme="slate"] .md-nav--secondary .md-nav__link:hover {
  color: #E2E8F0;
}

[data-md-color-scheme="slate"] .md-nav--secondary .md-nav__link--active {
  color: #10B981 !important;
}

[data-md-color-scheme="slate"] .md-sidebar__scrollwrap a {
  color: #CBD5E1;
}

[data-md-color-scheme="slate"] .md-sidebar__scrollwrap a:hover {
  color: #10B981;
}

/* HEADER - Move theme toggle to the end (after repo link) */
.md-header__inner {
  display: flex;
  align-items: center;
}

.md-header__option[data-md-component="palette"] {
  order: 10;
  margin-left: 0.4rem;
}

.md-header__source {
  order: 9;
}
