/*
 * SUBCULT // LIMINAL TTY
 * Palette source: /home/onnwee/.config/sway-theme/colors.toml
 * A near-black violet terminal surface with phosphor success, wisteria action,
 * amethyst focus, and amber/coral/rose state signals.
 */

gitea-theme-meta-info {
  --theme-display-name: "Subcult";
  --theme-color-scheme: "dark";
}

:root {
  --is-dark-theme: true;

  /* Theme identity and explicit semantic palette. */
  --color-brand: #b7f7c1;
  --color-brand-hover: #d2ffd7;
  --color-action-secondary: #caa7ff;
  --color-action-secondary-hover: #e7c6ff;
  --color-accent-selected: #d6a7ff;
  --color-focus: #b48cff;
  --color-link: #a9b8ff;
  --color-link-hover: #c5d1ff;
  --color-info: #a8f2e0;
  --color-info-hover: #c2fff0;
  --color-success: #b7f7c1;
  --color-success-hover: #d2ffd7;
  --color-merged: #caa7ff;
  --color-warning: #ffd98a;
  --color-error: #ff7e9d;
  --color-danger: #ff9e80;
  --color-danger-hover: #d95778;
  --color-neutral: #9b91b4;
  --color-disabled: #6f6785;
  --color-diff-moved-from: #ffd98a;
  --color-diff-moved-to: #a8f2e0;
  --color-diff-moved-from-row-bg: #ffd98a14;
  --color-diff-moved-to-row-bg: #a8f2e014;
  --color-issue-open: var(--color-success);
  --color-issue-closed: var(--color-error);
  --color-issue-merged: var(--color-merged);
  --color-issue-draft: var(--color-warning);
  --color-check-passed: var(--color-success);
  --color-check-failed: var(--color-error);
  --color-check-pending: var(--color-warning);
  --color-alert-info: var(--color-info);

  /* Theme identity and action scale. */
  --color-primary: var(--color-brand);
  --color-primary-contrast: #0c0b12;
  --color-primary-dark-1: var(--color-brand-hover);
  --color-primary-dark-2: #fbf7ff;
  --color-primary-dark-3: #fbf7ff;
  --color-primary-dark-4: #fbf7ff;
  --color-primary-dark-5: #fbf7ff;
  --color-primary-dark-6: #fbf7ff;
  --color-primary-dark-7: #fbf7ff;
  --color-primary-light-1: #8fd99c;
  --color-primary-light-2: #70b27d;
  --color-primary-light-3: #4e7956;
  --color-primary-light-4: #3a3352;
  --color-primary-light-5: #2b2340;
  --color-primary-light-6: #201b2f;
  --color-primary-light-7: #15131f;
  --color-primary-alpha-10: #b7f7c119;
  --color-primary-alpha-20: #b7f7c133;
  --color-primary-alpha-30: #b7f7c14d;
  --color-primary-alpha-40: #b7f7c166;
  --color-primary-alpha-50: #b7f7c180;
  --color-primary-alpha-60: #b7f7c199;
  --color-primary-alpha-70: #b7f7c1b3;
  --color-primary-alpha-80: #b7f7c1cc;
  --color-primary-alpha-90: #b7f7c1e6;
  --color-primary-hover: var(--color-brand-hover);
  --color-primary-active: var(--color-primary-light-2);

  /* Secondary action uses violet; Gitea's structural secondary token stays a surface neutral. */
  --color-secondary: #3a3352;
  --color-secondary-dark-1: #6f5f9f;
  --color-secondary-dark-2: #8f74d6;
  --color-secondary-dark-3: var(--color-action-secondary);
  --color-secondary-dark-4: var(--color-action-secondary);
  --color-secondary-dark-5: var(--color-accent-selected);
  --color-secondary-dark-6: var(--color-action-secondary-hover);
  --color-secondary-dark-7: #fbf7ff;
  --color-secondary-dark-8: #fbf7ff;
  --color-secondary-dark-9: #fbf7ff;
  --color-secondary-dark-10: #fbf7ff;
  --color-secondary-dark-11: #fbf7ff;
  --color-secondary-dark-12: #fbf7ff;
  --color-secondary-dark-13: #fbf7ff;
  --color-secondary-light-1: #2b2340;
  --color-secondary-light-2: #201b2f;
  --color-secondary-light-3: #1c1828;
  --color-secondary-light-4: #15131f;
  --color-secondary-alpha-10: #3a335219;
  --color-secondary-alpha-20: #3a335233;
  --color-secondary-alpha-30: #3a33524d;
  --color-secondary-alpha-40: #3a335266;
  --color-secondary-alpha-50: #3a335280;
  --color-secondary-alpha-60: #3a335299;
  --color-secondary-alpha-70: #3a3352b3;
  --color-secondary-alpha-80: #3a3352cc;
  --color-secondary-alpha-90: #3a3352e6;
  --color-secondary-button: var(--color-action-secondary);
  --color-secondary-hover: var(--color-action-secondary-hover);
  --color-secondary-active: var(--color-focus);

  /* Terminal and ANSI surfaces. */
  --color-console-fg: #ece6f4;
  --color-console-fg-subtle: #9b91b4;
  --color-console-bg: #11101a;
  --color-console-border: #3a3352;
  --color-console-hover-bg: #201b2f;
  --color-console-active-bg: #2b2340;
  --color-console-menu-bg: #15131f;
  --color-console-menu-border: #6f5f9f;
  --color-console-link: var(--color-link);
  --color-ansi-black: #0b0b12;
  --color-ansi-red: #ff7e9d;
  --color-ansi-green: #b7f7c1;
  --color-ansi-yellow: #ffd98a;
  --color-ansi-blue: #a9b8ff;
  --color-ansi-magenta: #d6a7ff;
  --color-ansi-cyan: #a8f2e0;
  --color-ansi-white: #ece6f4;
  --color-ansi-bright-black: #6f6785;
  --color-ansi-bright-red: #ffb3c7;
  --color-ansi-bright-green: #d2ffd7;
  --color-ansi-bright-yellow: #ffe9ad;
  --color-ansi-bright-blue: #c5d1ff;
  --color-ansi-bright-magenta: #e7c6ff;
  --color-ansi-bright-cyan: #c2fff0;
  --color-ansi-bright-white: #fbf7ff;

  /* Named tokens retained for components that do not use semantic states. */
  --color-red: var(--color-error);
  --color-orange: var(--color-danger);
  --color-yellow: var(--color-warning);
  --color-olive: var(--color-brand-hover);
  --color-green: var(--color-success);
  --color-teal: var(--color-info);
  --color-blue: var(--color-link);
  --color-violet: var(--color-focus);
  --color-purple: var(--color-merged);
  --color-pink: var(--color-error);
  --color-brown: var(--color-warning);
  --color-black: #0b0b12;
  --color-red-light: #ffb3c7;
  --color-orange-light: #ffd98a;
  --color-yellow-light: #ffe9ad;
  --color-olive-light: #d2ffd7;
  --color-green-light: #d2ffd7;
  --color-teal-light: #c2fff0;
  --color-blue-light: #c5d1ff;
  --color-violet-light: #caa7ff;
  --color-purple-light: #e7c6ff;
  --color-pink-light: #ffb3c7;
  --color-brown-light: #ffe9ad;
  --color-black-light: #15131f;
  --color-red-dark-1: var(--color-danger-hover);
  --color-orange-dark-1: var(--color-danger-hover);
  --color-yellow-dark-1: #d7ae58;
  --color-olive-dark-1: var(--color-success);
  --color-green-dark-1: var(--color-success);
  --color-teal-dark-1: var(--color-info);
  --color-blue-dark-1: var(--color-link);
  --color-violet-dark-1: #8f74d6;
  --color-purple-dark-1: #b48cff;
  --color-pink-dark-1: #ff7e9d;
  --color-brown-dark-1: #ff9e80;
  --color-black-dark-1: #11101a;
  --color-grey: #3a3352;
  --color-grey-light: #9b91b4;
  --color-gold: #ffd98a;
  --color-white: #fbf7ff;

  /* Diff, notice, and workflow semantics. */
  --color-diff-added-fg: #b7f7c1;
  --color-diff-added-linenum-bg: #b7f7c128;
  --color-diff-added-row-bg: #b7f7c114;
  --color-diff-added-row-border: #b7f7c14d;
  --color-diff-added-word-bg: #b7f7c154;
  --color-diff-moved-row-bg: #ffd98a28;
  --color-diff-moved-row-border: #ffd98a80;
  --color-diff-removed-fg: var(--color-error);
  --color-diff-removed-linenum-bg: #ff7e9d28;
  --color-diff-removed-row-bg: #ff7e9d14;
  --color-diff-removed-row-border: #ff7e9d4d;
  --color-diff-removed-word-bg: #ff7e9d54;
  --color-diff-inactive: #201b2f;
  --color-error-border: #ff7e9d80;
  --color-error-bg: #ff7e9d1f;
  --color-error-bg-active: #ff7e9d33;
  --color-error-bg-hover: #ff7e9d28;
  --color-error-text: var(--color-error);
  --color-success-border: #b7f7c180;
  --color-success-bg: #b7f7c11f;
  --color-success-text: var(--color-success);
  --color-warning-border: #ffd98a80;
  --color-warning-bg: #ffd98a1f;
  --color-warning-text: var(--color-warning);
  --color-info-border: #a8f2e080;
  --color-info-bg: #a8f2e01f;
  --color-info-text: var(--color-info);
  --color-priority-border: #caa7ff80;
  --color-priority-bg: #caa7ff1f;
  --color-priority-text: var(--color-merged);
  --color-red-badge: var(--color-error);
  --color-red-badge-bg: #ff7e9d1a;
  --color-red-badge-hover-bg: #ff7e9d4d;
  --color-green-badge: var(--color-success);
  --color-green-badge-bg: #b7f7c11a;
  --color-green-badge-hover-bg: #b7f7c14d;
  --color-yellow-badge: var(--color-warning);
  --color-yellow-badge-bg: #ffd98a1a;
  --color-yellow-badge-hover-bg: #ffd98a4d;
  --color-orange-badge: var(--color-danger);
  --color-orange-badge-bg: #ff9e801a;
  --color-orange-badge-hover-bg: #ff9e804d;
  --color-git: var(--color-danger);
  --color-logo: var(--color-brand);

  /* Main surfaces, typography, controls, and editor surfaces. */
  --color-body: #0c0b12;
  --color-box-header: #1c1828;
  --color-box-body: #15131f;
  --color-box-body-highlight: #282139;
  --color-text-dark: #fbf7ff;
  --color-text: #ece6f4;
  --color-text-light: #d6cfe1;
  --color-text-light-1: #b9b1c9;
  --color-text-light-2: var(--color-neutral);
  --color-text-light-3: var(--color-disabled);
  --color-footer: var(--color-nav-bg);
  --color-timeline: #3a3352;
  --color-input-text: #ece6f4;
  --color-input-background: #11101a;
  --color-input-toggle-background: #2b2340;
  --color-input-border: #6f5f9f;
  --color-light: #fbf7ff14;
  --color-light-border: #fbf7ff28;
  --color-hover: #caa7ff14;
  --color-hover-opaque: #201b2f;
  --color-active: #caa7ff24;
  --color-menu: #15131f;
  --color-card: #15131f;
  --color-markup-table-row: #caa7ff0f;
  --color-markup-code-block: #caa7ff12;
  --color-markup-code-inline: #caa7ff28;
  --color-button: #201b2f;
  --color-code-bg: #11101a;
  --color-shadow: #06060b;
  --color-shadow-opaque: #06060b;
  --color-secondary-bg: #201b2f;
  --color-expand-button: #2b2340;
  --color-placeholder-text: var(--color-neutral);
  --color-editor-line-highlight: #3a335266;
  --color-editor-selection: #b48cff66;
  --color-project-column-bg: #201b2f;
  --color-caret: #ece6f4;
  --color-reaction-bg: #caa7ff12;
  --color-reaction-hover-bg: #3a3352;
  --color-reaction-active-bg: #2b2340;
  --color-tooltip-text: #fbf7ff;
  --color-tooltip-bg: #06060bf2;
  --color-nav-bg: #11101a;
  --color-nav-hover-bg: #201b2f;
  --color-nav-text: #ece6f4;
  --color-secondary-nav-bg: #15131f;
  --color-label-text: #ece6f4;
  --color-label-bg: #3a3352;
  --color-label-hover-bg: #6f5f9f;
  --color-label-active-bg: var(--color-accent-selected);
  --color-accent: var(--color-focus);
  --color-small-accent: #6f5f9f;
  --color-highlight-fg: #ffd98a;
  --color-highlight-bg: #ffd98a28;
  --color-overlay-backdrop: #06060bcc;
  --color-transparency-grid-light: #3a3352;
  --color-transparency-grid-dark: #201b2f;
  --color-workflow-edge-hover: var(--color-action-secondary);

  /* Syntax tokens: high separation without competing with diff state. */
  --color-syntax-keyword: #caa7ff;
  --color-syntax-bool: #a8f2e0;
  --color-syntax-control: #ffd98a;
  --color-syntax-name: #b7f7c1;
  --color-syntax-type: #ff9e80;
  --color-syntax-number: #a9b8ff;
  --color-syntax-operator: #d6a7ff;
  --color-syntax-regexp: #b48cff;
  --color-syntax-string: #b7f7c1;
  --color-syntax-comment: #9b91b4;
  --color-syntax-invalid: #ff7e9d;
  --color-syntax-link: var(--color-link);
  --color-syntax-tag: #ff9e80;
  --color-syntax-attribute: #d6a7ff;
  --color-syntax-property: #a8f2e0;
  --color-syntax-variable: #ffd98a;
  --color-syntax-string-special: #ffd98a;
  --color-syntax-escape: #b48cff;
  --color-syntax-entity: #caa7ff;
  --color-syntax-preproc: #b7f7c1;
  --color-syntax-preproc-file: #a9b8ff;
  --color-syntax-decorator: #b7f7c1;
  --color-syntax-namespace: #ece6f4;
  --color-syntax-name-pseudo: #caa7ff;
  --color-syntax-comment-special: #b48cff;
  --color-syntax-text: #ece6f4;
  --color-syntax-text-alt: #b9b1c9;
  --color-syntax-punctuation: #d6cfe1;
  --color-syntax-whitespace: #6f6785;
  --color-syntax-diff-fg: #fbf7ff;
  --color-syntax-deleted-bg: #ff7e9d54;
  --color-syntax-inserted-bg: #b7f7c154;
  --color-syntax-emph: #ffd98a;
  --color-syntax-strong: #ff9e80;
  --color-syntax-heading: #d6a7ff;
  --color-syntax-subheading: #b7f7c1;
  --color-syntax-output: #9b91b4;
  --color-syntax-prompt: #b7f7c1;
  --color-syntax-traceback: #ff7e9d;
  --color-syntax-matching-bracket-bg: #a8f2e048;
  --color-syntax-nonmatching-bracket-bg: #ff7e9d48;

  --fonts-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
  accent-color: var(--color-accent);
  color-scheme: dark;
}

/* Keep native UI typography readable; reserve JetBrains Mono for code surfaces. */
code,
kbd,
pre,
samp,
.monospace,
.code-view,
.file-view,
.diff-file-box,
.code-editor,
.commit-list .sha {
  font-family: var(--fonts-monospace);
}

::selection {
  color: #0c0b12;
  background: #b48cff99;
}

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  box-shadow: 3px 3px 0 var(--color-shadow-opaque);
}

a:not(.ui.button):not(.label) {
  color: var(--color-link);
}

a:not(.ui.button):not(.label):hover {
  color: var(--color-link-hover);
}

#navbar a,
.page-footer a,
.repository .repo-header a,
.repository .header-wrapper a {
  color: var(--color-link);
}

#navbar a:hover,
.page-footer a:hover,
.repository .repo-header a:hover,
.repository .header-wrapper a:hover {
  color: var(--color-link-hover);
}

/* Hard terminal lines around the global chrome and quiet glass on containers. */
#navbar,
.page-footer {
  background: var(--color-nav-bg);
  border-color: #6f5f9f;
}

#navbar {
  border-bottom: 1px solid #6f5f9f;
}

.page-footer {
  border-top: 1px solid #3a3352;
}

#navbar .item:hover,
#navbar .item:focus-visible {
  background: #201b2f;
}

.ui.segment,
.ui.card,
.ui.message,
.ui.modal,
.ui.menu,
.ui.dropdown .menu,
.ui.table thead,
.repository .header-wrapper,
.repo-header {
  background-color: #15131f;
  border-color: #3a3352;
  box-shadow: 4px 4px 0 var(--color-shadow-opaque);
}

.ui.segment.secondary,
.ui.card .content,
.ui.table thead,
.ui.table tfoot,
.ui.menu .item.active,
.ui.menu .item:hover {
  background-color: #1c1828;
}

.ui.button {
  color: var(--color-text);
  background: var(--color-button);
  border-color: #6f5f9f;
}

.ui.button:hover,
.ui.button:focus-visible {
  color: #fbf7ff;
  background: #2b2340;
  border-color: #caa7ff;
}

.ui.primary.button,
.ui.primary.buttons .button {
  color: #0c0b12;
  background: var(--color-brand);
  border-color: var(--color-brand);
}

.ui.primary.button:hover,
.ui.primary.button:focus-visible,
.ui.primary.buttons .button:hover,
.ui.primary.buttons .button:focus-visible {
  color: #0c0b12;
  background: var(--color-brand-hover);
  border-color: var(--color-brand-hover);
}

.ui.primary.button:active,
.ui.primary.buttons .button:active {
  color: #0c0b12;
  background: var(--color-focus);
  box-shadow: 3px 3px 0 var(--color-action-secondary);
}

.ui.secondary.button,
.ui.secondary.buttons .button,
.ui.purple.button,
.ui.purple.buttons .button {
  color: #0c0b12;
  background: var(--color-action-secondary);
  border-color: var(--color-action-secondary);
}

.ui.secondary.button:hover,
.ui.secondary.button:focus-visible,
.ui.secondary.buttons .button:hover,
.ui.secondary.buttons .button:focus-visible,
.ui.purple.button:hover,
.ui.purple.button:focus-visible,
.ui.purple.buttons .button:hover,
.ui.purple.buttons .button:focus-visible {
  color: #0c0b12;
  background: var(--color-action-secondary-hover);
  border-color: var(--color-action-secondary-hover);
}

.ui.positive.button,
.ui.green.button,
.ui.green.label,
.ui.positive.label {
  color: #0c0b12;
  background: var(--color-success);
  border-color: var(--color-success);
}

.ui.positive.button:hover,
.ui.green.button:hover,
.ui.green.label:hover,
.ui.positive.label:hover {
  background: var(--color-success-hover);
  border-color: var(--color-success-hover);
}

.ui.red.button,
.ui.negative.button,
.ui.danger.button,
.ui.delete.button {
  color: #0c0b12;
  background: var(--color-danger);
  border-color: var(--color-danger);
}

.ui.red.button:hover,
.ui.red.button:focus-visible,
.ui.negative.button:hover,
.ui.negative.button:focus-visible,
.ui.danger.button:hover,
.ui.danger.button:focus-visible,
.ui.delete.button:hover,
.ui.delete.button:focus-visible {
  color: #0c0b12;
  background: var(--color-danger-hover);
  border-color: var(--color-danger-hover);
}

.ui.red.label,
.ui.negative.label {
  color: #0c0b12;
  background: var(--color-error);
  border-color: var(--color-error);
}

.ui.red.label:hover,
.ui.negative.label:hover {
  color: #0c0b12;
  background: var(--color-error);
}

.ui.orange.button,
.ui.orange.label,
.ui.yellow.button,
.ui.yellow.label {
  color: #0c0b12;
  background: var(--color-warning);
  border-color: var(--color-warning);
}

.ui.orange.label:hover,
.ui.yellow.label:hover {
  color: #0c0b12;
  background: var(--color-warning);
}

.ui.blue.button,
.ui.blue.label {
  color: #0c0b12;
  background: var(--color-link);
  border-color: var(--color-link);
}

.ui.teal.button,
.ui.teal.label {
  color: #0c0b12;
  background: var(--color-info);
  border-color: var(--color-info);
}

.ui.violet.button,
.ui.violet.label {
  color: #0c0b12;
  background: var(--color-focus);
  border-color: var(--color-focus);
}

.ui.purple.label {
  color: #0c0b12;
  background: var(--color-merged);
  border-color: var(--color-merged);
}

.ui.blue.button:hover,
.ui.blue.button:focus-visible,
.ui.blue.label:hover {
  color: #0c0b12;
  background: var(--color-link-hover);
  border-color: var(--color-link-hover);
}

.ui.teal.button:hover,
.ui.teal.button:focus-visible,
.ui.teal.label:hover {
  color: #0c0b12;
  background: var(--color-info-hover);
  border-color: var(--color-info-hover);
}

.ui.violet.button:hover,
.ui.violet.button:focus-visible,
.ui.violet.label:hover {
  color: #0c0b12;
  background: var(--color-accent-selected);
  border-color: var(--color-accent-selected);
}

.ui.purple.label:hover {
  color: #0c0b12;
  background: var(--color-action-secondary-hover);
  border-color: var(--color-action-secondary-hover);
}

.ui.form input:not([type]),
.ui.form input[type="text"],
.ui.form input[type="email"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="url"],
.ui.form textarea,
.ui.form select,
.ui.input > input,
select,
textarea {
  color: var(--color-input-text);
  background: var(--color-input-background);
  border-color: var(--color-input-border);
}

.ui.form input:focus,
.ui.form textarea:focus,
.ui.form select:focus,
.ui.input > input:focus,
select:focus,
textarea:focus {
  border-color: var(--color-accent);
  box-shadow: 3px 3px 0 var(--color-shadow-opaque);
}

::placeholder {
  color: var(--color-placeholder-text);
  opacity: 1;
}

.ui.menu .item,
.ui.dropdown .menu > .item,
.ui.dropdown .menu > .item:hover,
.ui.dropdown .menu > .item.active,
.ui.dropdown .menu > .item.selected {
  color: var(--color-text);
}

.ui.menu .item:hover,
.ui.menu .item.active,
.ui.dropdown .menu > .item:hover,
.ui.dropdown .menu > .item.active,
.ui.dropdown .menu > .item.selected {
  background: #282139;
  color: #fbf7ff;
}

.ui.tabular.menu {
  border-color: #3a3352;
}

.ui.tabular.menu .item {
  color: #9b91b4;
  border-color: transparent;
}

.ui.tabular.menu .item:hover,
.ui.tabular.menu .active.item {
  color: #ece6f4;
  background: #1c1828;
  border-color: #6f5f9f;
  border-bottom-color: #caa7ff;
}

.ui.label {
  color: var(--color-label-text);
  background: var(--color-label-bg);
  border: 1px solid #6f5f9f;
}

.ui.label:hover,
.ui.label.active {
  color: #fbf7ff;
  background: var(--color-label-hover-bg);
}

/* Colored labels keep their semantic fill on hover instead of inheriting neutral label chrome. */
.ui.green.label:hover,
.ui.positive.label:hover {
  color: #0c0b12;
  background: var(--color-success-hover);
  border-color: var(--color-success-hover);
}

.ui.red.label:hover,
.ui.negative.label:hover {
  color: #0c0b12;
  background: var(--color-error);
  border-color: var(--color-error);
}

.ui.orange.label:hover,
.ui.yellow.label:hover {
  color: #0c0b12;
  background: var(--color-warning);
  border-color: var(--color-warning);
}

.ui.blue.label:hover {
  color: #0c0b12;
  background: var(--color-link-hover);
  border-color: var(--color-link-hover);
}

.ui.teal.label:hover {
  color: #0c0b12;
  background: var(--color-info-hover);
  border-color: var(--color-info-hover);
}

.ui.violet.label:hover {
  color: #0c0b12;
  background: var(--color-accent-selected);
  border-color: var(--color-accent-selected);
}

.ui.purple.label:hover {
  color: #0c0b12;
  background: var(--color-action-secondary-hover);
  border-color: var(--color-action-secondary-hover);
}

/* State labels stay legible on the dark surface while retaining Gitea's vocabulary. */
.issue-state.open,
.issue-state.reopened,
.issue-state-open,
.ui.green.label.issue-state,
.ui.positive.label.issue-state {
  color: #0c0b12;
  background: var(--color-success);
  border-color: var(--color-success);
}

.issue-state.closed,
.issue-state-closed,
.ui.red.label.issue-state,
.ui.negative.label.issue-state {
  color: #0c0b12;
  background: var(--color-error);
  border-color: var(--color-error);
}

.issue-state.pending,
.issue-state.locked,
.issue-state.draft,
.issue-state-pending,
.issue-state-draft,
.ui.orange.label.issue-state,
.ui.yellow.label.issue-state {
  color: #0c0b12;
  background: var(--color-warning);
  border-color: var(--color-warning);
}

.issue-state.merged,
.issue-state-merged,
.ui.purple.label.issue-state,
.ui.violet.label.issue-state {
  color: #0c0b12;
  background: var(--color-merged);
  border-color: var(--color-merged);
}

/* PR/issue row state hooks used across recent Gitea templates. */
.issue-item.state-open .issue-state,
.pull-request.state-open .issue-state,
.issue-list .state-open .issue-state,
.pull-request-list .state-open .issue-state {
  color: #0c0b12;
  background: var(--color-success);
  border-color: var(--color-success);
}

.issue-item.state-closed .issue-state,
.pull-request.state-closed .issue-state,
.issue-list .state-closed .issue-state,
.pull-request-list .state-closed .issue-state {
  color: #0c0b12;
  background: var(--color-error);
  border-color: var(--color-error);
}

.issue-item.state-merged .issue-state,
.pull-request.state-merged .issue-state,
.issue-list .state-merged .issue-state,
.pull-request-list .state-merged .issue-state {
  color: #0c0b12;
  background: var(--color-merged);
  border-color: var(--color-merged);
}

.issue-item.state-draft .issue-state,
.pull-request.state-draft .issue-state,
.issue-list .state-draft .issue-state,
.pull-request-list .state-draft .issue-state {
  color: #0c0b12;
  background: var(--color-warning);
  border-color: var(--color-warning);
}

/* Checks use success/error/warning rather than the action palette. */
.commit-status.success,
.commit-status.passed,
.commit-status.success .dot,
.commit-status.passed .dot,
.commit-statuses .success .dot,
.commit-statuses .passed .dot,
.status-state.success,
.status-state.passed,
.ci-status.success,
.ci-status.passed {
  color: var(--color-success);
  background-color: var(--color-success-bg);
  border-color: var(--color-success-border);
}

.commit-status.failure,
.commit-status.failed,
.commit-status.error,
.commit-status.failure .dot,
.commit-status.failed .dot,
.commit-status.error .dot,
.commit-statuses .failure .dot,
.commit-statuses .failed .dot,
.commit-statuses .error .dot,
.status-state.failure,
.status-state.failed,
.status-state.error,
.ci-status.failure,
.ci-status.failed {
  color: var(--color-error);
  background-color: var(--color-error-bg);
  border-color: var(--color-error-border);
}

.commit-status.pending,
.commit-status.running,
.commit-status.pending .dot,
.commit-status.running .dot,
.commit-statuses .pending .dot,
.commit-statuses .running .dot,
.status-state.pending,
.status-state.running,
.ci-status.pending,
.ci-status.running {
  color: var(--color-warning);
  background-color: var(--color-warning-bg);
  border-color: var(--color-warning-border);
}

.commit-status.success .dot,
.commit-status.passed .dot,
.commit-statuses .success .dot,
.commit-statuses .passed .dot {
  background-color: var(--color-check-passed);
}

.commit-status.failure .dot,
.commit-status.failed .dot,
.commit-status.error .dot,
.commit-statuses .failure .dot,
.commit-statuses .failed .dot,
.commit-statuses .error .dot {
  background-color: var(--color-check-failed);
}

.commit-status.pending .dot,
.commit-status.running .dot,
.commit-statuses .pending .dot,
.commit-statuses .running .dot {
  background-color: var(--color-check-pending);
}

/* Compact badge aliases cover both Semantic UI and newer gt-* markup. */
.badge-success,
.badge-passed,
.gt-badge-success,
.gt-badge-passed {
  color: #0c0b12;
  background: var(--color-success);
  border-color: var(--color-success);
}

.badge-warning,
.badge-pending,
.gt-badge-warning,
.gt-badge-pending {
  color: #0c0b12;
  background: var(--color-warning);
  border-color: var(--color-warning);
}

.badge-danger,
.badge-error,
.badge-failed,
.gt-badge-danger,
.gt-badge-error,
.gt-badge-failed {
  color: #0c0b12;
  background: var(--color-error);
  border-color: var(--color-error);
}

.badge-info,
.gt-badge-info {
  color: #0c0b12;
  background: var(--color-info);
  border-color: var(--color-info);
}

.repository .header-wrapper,
.repo-header {
  border-top: 1px solid #6f5f9f;
  border-bottom: 1px solid #3a3352;
}

.repository .header-wrapper .ui.menu,
.repo-header .ui.menu {
  background: transparent;
  box-shadow: none;
}

.repository .repo-header .repo-title,
.repository .header-wrapper .repo-title {
  color: #fbf7ff;
}

/* Refs are informative; timestamps, authors, and hashes are quiet metadata. */
.branch-name,
.tag-name,
.ref-name,
.repo-ref,
.branch-dropdown-button,
.tag-dropdown-button {
  color: var(--color-info);
}

.commit-list .sha,
.commit-list .sha a,
.commit-list .commit-link,
.commit-list .commit-link a {
  color: var(--color-link);
}

.commit-list .time,
.commit-list .author,
.commit-list .author-name,
.issue-list .meta,
.pull-request-list .meta,
.discussion .comment .meta,
.timeline-item .meta,
.text-muted,
.muted {
  color: var(--color-neutral);
}

:disabled,
.disabled,
.ui.disabled,
[aria-disabled="true"] {
  color: var(--color-disabled) !important;
}

.issue-list .item,
.pull-request-list .item,
.discussion .comment,
.timeline-item {
  border-color: #3a3352;
}

.issue-list .item:hover,
.pull-request-list .item:hover,
.discussion .comment:hover {
  background: #caa7ff0a;
}

pre,
code,
.markdown pre,
.markdown code,
.file-view,
.code-view,
.diff-file-box,
.code-editor {
  color: #ece6f4;
  background-color: #11101a;
  border-color: #3a3352;
}

.markdown code,
:not(pre) > code {
  background: #caa7ff28;
  color: #e7c6ff;
}

.diff-file-box .file-header,
.diff-file-box .file-body,
.diff-file-box .lines-num,
.diff-file-box .lines-code {
  border-color: #3a3352;
}

.diff-file-box .code-view .add-code,
.diff-file-box .code-view .lines-code.add-code,
.diff-file-box .code-diff .add-code,
.diff-file-box .code-diff .add-code td {
  color: var(--color-diff-added-fg);
  background: var(--color-diff-added-row-bg);
  border-color: var(--color-diff-added-row-border);
}

.diff-file-box .code-view .del-code,
.diff-file-box .code-view .lines-code.del-code,
.diff-file-box .code-diff .del-code,
.diff-file-box .code-diff .del-code td {
  color: var(--color-diff-removed-fg);
  background: var(--color-diff-removed-row-bg);
  border-color: var(--color-diff-removed-row-border);
}

.diff-file-box .added-code {
  color: var(--color-diff-added-fg);
  background: var(--color-diff-added-word-bg);
}

.diff-file-box .removed-code {
  color: var(--color-diff-removed-fg);
  background: var(--color-diff-removed-word-bg);
}

/* Moved lines are deliberately quieter than add/remove, but keep direction clear. */
.diff-file-box .code-diff .moved,
.diff-file-box .code-diff [data-line-type="move"],
.diff-file-box .code-diff [data-line-type="moved"],
.diff-file-box .moved {
  color: var(--color-diff-moved-from);
  background: var(--color-diff-moved-from-row-bg);
  border-color: #ffd98a4d;
}

.diff-file-box .code-view .move-from,
.diff-file-box .code-view .lines-code.move-from,
.diff-file-box .code-view .move-code.del-code,
.diff-file-box .code-view .lines-code.move-code.del-code,
.diff-file-box .code-diff .moved-from,
.diff-file-box .code-diff .del-code.moved,
.diff-file-box .code-diff [data-move="from"] {
  color: var(--color-diff-moved-from);
  background: var(--color-diff-moved-from-row-bg);
  border-color: #ffd98a4d;
}

.diff-file-box .code-view .move-to,
.diff-file-box .code-view .lines-code.move-to,
.diff-file-box .code-view .move-code.add-code,
.diff-file-box .code-view .lines-code.move-code.add-code,
.diff-file-box .code-diff .moved-to,
.diff-file-box .code-diff .add-code.moved,
.diff-file-box .code-diff [data-move="to"] {
  color: var(--color-diff-moved-to);
  background: var(--color-diff-moved-to-row-bg);
  border-color: #a8f2e04d;
}

.ui.message.success,
.ui.message.positive {
  color: var(--color-success);
  background: var(--color-success-bg);
  border-color: var(--color-success-border);
}

.ui.message.warning,
.ui.message.yellow {
  color: var(--color-warning);
  background: var(--color-warning-bg);
  border-color: var(--color-warning-border);
}

.ui.message.error,
.ui.message.negative,
.ui.message.red {
  color: var(--color-error);
  background: var(--color-error-bg);
  border-color: var(--color-error-border);
}

.ui.message.info,
.ui.message.blue,
.ui.message.notice {
  color: var(--color-info);
  background: var(--color-info-bg);
  border-color: var(--color-info-border);
}

/* Gitea flash alerts are separate from Semantic UI messages in some releases. */
.flash-success,
.flash.flash-success {
  color: var(--color-success);
  background: var(--color-success-bg);
  border-color: var(--color-success-border);
}

.flash-warning,
.flash.flash-warning {
  color: var(--color-warning);
  background: var(--color-warning-bg);
  border-color: var(--color-warning-border);
}

.flash-error,
.flash.flash-error {
  color: var(--color-error);
  background: var(--color-error-bg);
  border-color: var(--color-error-border);
}

.flash-info,
.flash.flash-info {
  color: var(--color-info);
  background: var(--color-info-bg);
  border-color: var(--color-info-border);
}

hr,
.divider,
.ui.divider,
.ui.table,
.ui.table td,
.ui.table th {
  border-color: #3a3352;
}

/*
 * LIMINAL TTY geometry pass.
 * Gitea's current Semantic UI skin supplies rounded corners and blurred
 * elevation after this theme is loaded, so keep this reset late and explicit.
 * The small circular exceptions below are status indicators, not decoration.
 */
*,
*::before,
*::after {
  border-radius: 0 !important;
}

.status-dot,
.gt-status-dot,
.commit-status .dot,
.commit-statuses .dot,
.ui.status.dot {
  border-radius: 50% !important;
}

/* Void-offset depth: no blur, no glow. */
.ui.segment,
.ui.segments,
.ui.card,
.ui.message,
.ui.modal,
.ui.menu,
.ui.dropdown .menu,
.ui.popup,
.ui.tooltip,
.repository .header-wrapper,
.repo-header {
  box-shadow: 4px 4px 0 var(--color-shadow-opaque);
}

.ui.button,
.ui.buttons .button {
  box-shadow: 2px 2px 0 var(--color-shadow-opaque);
}

.ui.button:hover,
.ui.button:focus-visible,
.ui.buttons .button:hover,
.ui.buttons .button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-shadow-opaque);
}

/* Complementary shadows identify interaction without repainting every item. */
.ui.primary.button:hover,
.ui.primary.button:focus-visible,
.ui.primary.buttons .button:hover,
.ui.primary.buttons .button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-action-secondary);
}

.ui.secondary.button:hover,
.ui.secondary.button:focus-visible,
.ui.secondary.buttons .button:hover,
.ui.secondary.buttons .button:focus-visible,
.ui.purple.button:hover,
.ui.purple.button:focus-visible,
.ui.purple.buttons .button:hover,
.ui.purple.buttons .button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-info);
}

.ui.positive.button:hover,
.ui.positive.button:focus-visible,
.ui.green.button:hover,
.ui.green.button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-focus);
}

.ui.red.button:hover,
.ui.red.button:focus-visible,
.ui.negative.button:hover,
.ui.negative.button:focus-visible,
.ui.danger.button:hover,
.ui.danger.button:focus-visible,
.ui.delete.button:hover,
.ui.delete.button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-warning);
}

.ui.orange.button:hover,
.ui.orange.button:focus-visible,
.ui.yellow.button:hover,
.ui.yellow.button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-error);
}

.ui.blue.button:hover,
.ui.blue.button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-accent-selected);
}

.ui.teal.button:hover,
.ui.teal.button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-success);
}

.ui.violet.button:hover,
.ui.violet.button:focus-visible {
  box-shadow: 3px 3px 0 var(--color-success);
}

.ui.menu,
.ui.dropdown .menu,
.ui.popup,
.ui.tooltip {
  border-color: #6f5f9f;
}

.ui.menu .item.active,
.ui.menu .item:hover,
.ui.dropdown .menu > .item.active,
.ui.dropdown .menu > .item:hover {
  border-inline-start: 2px solid var(--color-brand);
}

.ui.tabular.menu .item:hover,
.ui.tabular.menu .active.item {
  border-inline-start: 0;
  box-shadow: 0 3px 0 var(--color-brand);
}

/* Keep editor and diff boundaries stronger than their surrounding cards. */
pre,
.markdown pre,
.file-view,
.code-view,
.diff-file-box,
.code-editor {
  box-shadow: 3px 3px 0 var(--color-shadow-opaque);
}

.ui.form input:not([type]),
.ui.form input[type="text"],
.ui.form input[type="email"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="url"],
.ui.form textarea,
.ui.form select,
.ui.input > input,
select,
textarea {
  border-style: solid;
  border-color: #6f5f9f;
  box-shadow: none;
}

/* State colors remain the signal: cyan is informational, rose is error, coral is action. */
.ui.message.success,
.ui.message.positive {
  border-inline-start: 3px solid var(--color-success);
}

.ui.message.warning,
.ui.message.yellow {
  border-inline-start: 3px solid var(--color-warning);
}

.ui.message.error,
.ui.message.negative,
.ui.message.red {
  border-inline-start: 3px solid var(--color-error);
}

.ui.message.info,
.ui.message.blue,
.ui.message.notice {
  border-inline-start: 3px solid var(--color-info);
}

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