/* MediaWiki (Vector 2022 + OOUI) color remap via Infinito.Nexus palette
   - Keep changes scoped and variable-driven
   - Prefer variables over hard values
   - Avoid !important unless an inline style or strong OOUI rule requires it
*/

/* ---------- App-scoped variables (derived from global color scale) ---------- */
:root {
  /* Brand & accents */
  --mw-primary:                var(--color-01-60);
  --mw-primary-contrast:       var(--color-01-99);
  --mw-secondary:              var(--color-01-85);
  --mw-accent:                 var(--color-01-50);

  /* Surfaces */
  --mw-surface:                var(--color-01-92);
  --mw-surface-variant:        var(--color-01-90);
  --mw-surface-muted:          var(--color-01-95);

  /* Text */
  --mw-text:                   var(--color-01-20);
  --mw-text-muted:             var(--color-01-45);
  --mw-heading:                var(--color-01-15);
  --mw-link:                   var(--color-01-55);
  --mw-link-hover:             var(--color-01-60);
  --mw-link-visited:           var(--color-01-45);

  /* Lines / borders / focus */
  --mw-border:                 var(--color-01-85);
  --mw-divider:                var(--color-01-87);
  --mw-focus:                  rgba(var(--color-01-rgb-65), .35);

  /* Status */
  --mw-success:                var(--bs-success);
  --mw-warning:                var(--bs-warning);
  --mw-danger:                 var(--bs-danger);
}

/* ---------- Global shell ---------- */
body.skin-vector,
.skin-vector .mw-page-container {
  background-color: var(--mw-surface);
  background-image: linear-gradient({{ CSS_GRADIENT_ANGLE }}deg,
    var(--mw-surface),
    var(--mw-surface-variant),
    var(--mw-surface-muted),
    var(--mw-surface)
  );
  color: var(--mw-text);
}

/* ---------- Header / site chrome ---------- */
.skin-vector .vector-header,
.skin-vector .vector-header-container,
.skin-vector .mw-header {
  background-color: var(--color-01-80);
  background-image: linear-gradient({{ CSS_GRADIENT_ANGLE }}deg,
    var(--color-01-75), var(--color-01-80), var(--color-01-81), var(--color-01-85)
  );
  color: var(--color-01-17);
  border-bottom: 1px solid var(--mw-divider);
}

/* Logo & title area often inherits link styles—keep readable */
.skin-vector .mw-logo a,
.skin-vector .mw-logo svg,
.skin-vector .vector-header a {
  color: var(--mw-heading);
  fill: currentColor;
}

/* ---------- Sidebar / menus ---------- */
.skin-vector .vector-sidebar,
.skin-vector .mw-portlet,
.skin-vector .vector-menu-content {
  background-color: var(--mw-surface-variant);
  border-color: var(--mw-border);
}

.skin-vector .vector-sidebar .vector-menu-heading,
.skin-vector .vector-menu-heading {
  color: var(--mw-heading);
  border-bottom: 1px solid var(--mw-divider);
}

/* ---------- Table of Contents ---------- */
.skin-vector .vector-toc,
.skin-vector .vector-toc .vector-toc-contents {
  background-color: var(--mw-surface-muted);
  border: 1px solid var(--mw-border);
}

.skin-vector .vector-toc .vector-toc-text {
  color: var(--mw-text);
}

/* ---------- Content area ---------- */
.skin-vector .mw-content-container,
.skin-vector .mw-content-ltr,
.skin-vector .mw-body,
.skin-vector .mw-parser-output {
  color: var(--mw-text);
}

.skin-vector .mw-parser-output h1,
.skin-vector .mw-parser-output h2,
.skin-vector .mw-parser-output h3,
.skin-vector .mw-parser-output h4,
.skin-vector .mw-parser-output h5,
.skin-vector .mw-parser-output h6 {
  color: var(--mw-heading);
}

/* Links */
.skin-vector .mw-parser-output a { color: var(--mw-link); }
.skin-vector .mw-parser-output a:visited { color: var(--mw-link-visited); }
.skin-vector .mw-parser-output a:hover,
.skin-vector .mw-parser-output a:focus { color: var(--mw-link-hover); }

/* ---------- Search ---------- */
.skin-vector .vector-search-box input,
.skin-vector .vector-search-box .vector-search-input {
  background-color: var(--mw-surface);
  border: 1px solid var(--mw-border);
  color: var(--mw-text);
}

.skin-vector .vector-search-box input:focus {
  outline: 0;
  box-shadow: 0 0 0 3px var(--mw-focus);
  border-color: var(--mw-link);
}

/* ---------- Buttons (MediaWiki UI + OOUI) ---------- */
/* MediaWiki UI */
.mw-ui-button,
.mw-ui-button:visited {
  background-color: var(--mw-surface-muted);
  color: var(--mw-text);
  border: 1px solid var(--mw-border);
}

.mw-ui-button:hover,
.mw-ui-button:focus {
  background-color: var(--mw-surface-variant);
  color: var(--mw-text);
  border-color: var(--mw-link);
  box-shadow: 0 0 0 3px var(--mw-focus);
}

.mw-ui-progressive,
.mw-ui-primary {
  background-color: var(--mw-primary);
  color: var(--mw-primary-contrast);
  border-color: var(--mw-primary);
}

.mw-ui-progressive:hover,
.mw-ui-primary:hover {
  filter: brightness(0.95);
}

/* OOUI (covers most modern UI widgets) */
.oo-ui-buttonElement-button {
  background-color: var(--mw-surface-muted);
  color: var(--mw-text);
  border: 1px solid var(--mw-border);
}

.oo-ui-buttonElement-button:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px var(--mw-focus);
  border-color: var(--mw-link);
}

.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button,
.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
  background-color: var(--mw-primary);
  color: var(--mw-primary-contrast);
  border-color: var(--mw-primary);
}

/* Inputs */
.mw-ui-input,
.oo-ui-inputWidget-input {
  background-color: var(--mw-surface);
  color: var(--mw-text);
  border: 1px solid var(--mw-border);
}

.oo-ui-inputWidget-input:focus,
.mw-ui-input:focus {
  outline: 0;
  box-shadow: 0 0 0 3px var(--mw-focus);
  border-color: var(--mw-link);
}

/* ---------- Tables / infoboxes ---------- */
table.wikitable,
.mw-parser-output table.infobox,
.mw-parser-output table.prettytable {
  background-color: var(--color-01-99);
  border: 1px solid var(--mw-border);
  color: var(--mw-text);
}

table.wikitable > * > tr > th,
table.wikitable > * > tr > td {
  border: 1px solid var(--mw-border);
}

table.wikitable > * > tr > th {
  background-color: var(--color-01-80);
  background-image: linear-gradient({{ CSS_GRADIENT_ANGLE }}deg,
    var(--color-01-75), var(--color-01-80), var(--color-01-81), var(--color-01-85)
  );
  color: var(--mw-heading);
}

/* ---------- Notices / boxes ---------- */
.mw-notification,
.mw-message-box,
.mw-message-box-notice {
  background-color: var(--mw-surface-muted);
  border-color: var(--mw-border);
  color: var(--mw-text);
}

.mw-message-box-warning {
  border-left: 4px solid var(--mw-warning);
}

.mw-message-box-error {
  border-left: 4px solid var(--mw-danger);
}

.mw-message-box-success {
  border-left: 4px solid var(--mw-success);
}

/* ---------- Footer ---------- */
.skin-vector .mw-footer {
  background-color: var(--mw-surface-variant);
  border-top: 1px solid var(--mw-divider);
  color: var(--mw-text-muted);
}

/* ---------- Dark-mode helpers (for browser extensions honoring vars) ---------- */
@media (prefers-color-scheme: dark) {
  :root {
    /* Nudge contrast a bit in dark environments */
    --mw-text:         var(--color-01-90);
    --mw-text-muted:   var(--color-01-80);
    --mw-heading:      var(--color-01-95);
  }
}
