/* ============================================================
   theme-pax — git.pax.moe gitea theme
   green-on-black terminal aesthetic, matches pax.moe parent
   ============================================================ */

/* ── §0. fonts ───────────────────────────────────────── */

@font-face {
  font-family: 'Terminess Nerd Font Propo';
  src: url('/assets/fonts/TerminessNerdFontPropo-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Terminess Nerd Font Propo';
  src: url('/assets/fonts/TerminessNerdFontPropo-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ── §1. palette vars ────────────────────────────────── */

:root,
:root.theme-pax {
  --pax-bg:           #000;
  --pax-bg-raise:     #050705;
  --pax-fg:           #00ff00;
  --pax-fg-dim:       #9fc19f;
  --pax-fg-faint:     #5a7a5a;
  --pax-fg-ghost:     #2f4a2f;
  --pax-border:       #1a3a1a;
  --pax-border-live:  #00ff00;
  --pax-accent-block: #003300;
  --pax-panel-hover:  rgba(0, 255, 0, 0.025);
  --pax-err:          #ff5555;
  --pax-warn:         #f1c40f;
  --pax-font-mono:    'Terminess Nerd Font Propo', 'Terminess Nerd Font Mono',
                      'JetBrains Mono', 'Menlo', 'Consolas', monospace;

  /* remap gitea/fomantic vars so cascading widgets pick up the palette */
  --color-primary:              #00ff00;
  --color-primary-dark-1:       #00e600;
  --color-primary-dark-2:       #00cc00;
  --color-primary-dark-3:       #00b300;
  --color-primary-dark-4:       #009900;
  --color-primary-dark-5:       #008000;
  --color-primary-dark-6:       #006600;
  --color-primary-dark-7:       #004d00;
  --color-primary-light-1:      #1aff1a;
  --color-primary-light-2:      #33ff33;
  --color-primary-light-3:      #4dff4d;
  --color-primary-light-4:      #66ff66;
  --color-primary-light-5:      #80ff80;
  --color-primary-light-6:      #99ff99;
  --color-primary-light-7:      #b3ffb3;
  --color-primary-alpha-10:     rgba(0, 255, 0, 0.10);
  --color-primary-alpha-20:     rgba(0, 255, 0, 0.20);
  --color-primary-alpha-30:     rgba(0, 255, 0, 0.30);
  --color-primary-alpha-40:     rgba(0, 255, 0, 0.40);
  --color-primary-alpha-50:     rgba(0, 255, 0, 0.50);
  --color-primary-alpha-60:     rgba(0, 255, 0, 0.60);
  --color-primary-alpha-70:     rgba(0, 255, 0, 0.70);
  --color-primary-alpha-80:     rgba(0, 255, 0, 0.80);
  --color-primary-alpha-90:     rgba(0, 255, 0, 0.90);
  --color-primary-contrast:     #000;
  --color-primary-contrast-dark-1: #000;

  --color-body:              #000;
  --color-box-body:          #000;
  --color-box-body-highlight:#050705;
  --color-box-header:        #050705;
  --color-text:              #00ff00;
  --color-text-light:        #9fc19f;
  --color-text-light-1:      #9fc19f;
  --color-text-light-2:      #5a7a5a;
  --color-text-light-3:      #5a7a5a;
  --color-footer:            #000;
  --color-timeline:          #1a3a1a;
  --color-input-text:        #00ff00;
  --color-input-background:  #000;
  --color-input-toggle-background: #000;
  --color-input-border:      #1a3a1a;
  --color-input-border-hover:#00ff00;
  --color-light:             #050705;
  --color-light-mimic-enabled: #050705;
  --color-light-border:      #1a3a1a;
  --color-hover:             rgba(0, 255, 0, 0.06);
  --color-active:             rgba(0, 255, 0, 0.10);
  --color-menu:              #000;
  --color-card:              #000;
  --color-markup-table-row:  rgba(0, 255, 0, 0.03);
  --color-markup-code-block: rgba(0, 255, 0, 0.06);
  --color-button:            #000;
  --color-code-bg:           rgba(0, 255, 0, 0.06);
  --color-code-sidebar-bg:   #050705;
  --color-shadow:            transparent;
  --color-secondary:         #1a3a1a;
  --color-secondary-dark-1:  #1a3a1a;
  --color-secondary-dark-2:  #1a3a1a;
  --color-secondary-dark-3:  #2f4a2f;
  --color-secondary-dark-4:  #2f4a2f;
  --color-secondary-dark-5:  #2f4a2f;
  --color-secondary-dark-6:  #5a7a5a;
  --color-secondary-dark-7:  #5a7a5a;
  --color-secondary-dark-8:  #9fc19f;
  --color-secondary-dark-9:  #9fc19f;
  --color-secondary-dark-10: #9fc19f;
  --color-secondary-dark-11: #00ff00;
  --color-secondary-dark-12: #00ff00;
  --color-secondary-dark-13: #00ff00;
  --color-secondary-light-1: #1a3a1a;
  --color-secondary-light-2: #1a3a1a;
  --color-secondary-light-3: #1a3a1a;
  --color-secondary-light-4: #1a3a1a;
  --color-secondary-alpha-10: rgba(0, 255, 0, 0.05);
  --color-secondary-alpha-20: rgba(0, 255, 0, 0.10);
  --color-secondary-alpha-30: rgba(0, 255, 0, 0.12);
  --color-secondary-alpha-40: rgba(0, 255, 0, 0.15);
  --color-secondary-alpha-50: rgba(0, 255, 0, 0.20);
  --color-secondary-alpha-60: rgba(0, 255, 0, 0.25);
  --color-secondary-alpha-70: rgba(0, 255, 0, 0.30);
  --color-secondary-alpha-80: rgba(0, 255, 0, 0.35);
  --color-secondary-alpha-90: rgba(0, 255, 0, 0.40);

  --color-nav-bg:            #000;
  --color-nav-hover-bg:      rgba(0, 255, 0, 0.06);
  --color-sub-nav-bg:        #050705;

  --color-red:               #ff5555;
  --color-orange:            #ffa500;
  --color-yellow:             #ffff55;
  --color-olive:             #9fc19f;
  --color-green:             #00ff00;
  --color-teal:              #00ffcc;
  --color-blue:              #55aaff;
  --color-violet:            #c080ff;
  --color-purple:            #c080ff;
  --color-pink:              #ff55ff;
  --color-brown:             #c0a080;
  --color-black:             #050705;
  --color-grey:              #5a7a5a;
  --color-grey-light:        #9fc19f;
  --color-gold:              #ffcc00;
  --color-white:             #e8ffe8;

  --color-red-dark-1:        #ff4444;
  --color-red-light-1:        #ff8888;
  --color-green-dark-1:      #00e600;
  --color-green-light-1:      #33ff33;
  --color-green-badge:        #003300;
  --color-green-badge-hover:  #004400;

  --color-diff-removed-word-bg: rgba(255, 85, 85, 0.35);
  --color-diff-added-word-bg:   rgba(0, 255, 0, 0.30);
  --color-diff-removed-row-bg:  rgba(255, 85, 85, 0.10);
  --color-diff-added-row-bg:    rgba(0, 255, 0, 0.07);
  --color-diff-removed-row-border: rgba(255, 85, 85, 0.30);
  --color-diff-added-row-border:   rgba(0, 255, 0, 0.30);

  --color-error-bg:          rgba(255, 85, 85, 0.1);
  --color-error-border:      #ff5555;
  --color-error-text:        #ff5555;
  --color-success-bg:        rgba(0, 255, 0, 0.07);
  --color-success-border:    #00ff00;
  --color-success-text:      #00ff00;
  --color-warning-bg:        rgba(255, 204, 0, 0.1);
  --color-warning-border:    #ffcc00;
  --color-warning-text:      #ffcc00;
  --color-info-bg:           rgba(85, 170, 255, 0.1);
  --color-info-border:       #55aaff;
  --color-info-text:         #55aaff;

  --color-label-bg:          #1a3a1a;
  --color-label-text:        #00ff00;
  --color-label-hover-bg:    #2f4a2f;
  --color-label-active-bg:   #003300;

  --color-caret:             #00ff00;
  --color-placeholder-text:  #2f4a2f;
  --color-placeholder-border:#1a3a1a;
  --color-highlight-fg:      #00ff00;
  --color-highlight-bg:      rgba(0, 255, 0, 0.15);

  --color-reaction-bg:       rgba(0, 255, 0, 0.08);
  --color-reaction-hover-bg: rgba(0, 255, 0, 0.15);
  --color-reaction-active-bg: rgba(0, 255, 0, 0.25);

  --color-small-accent:      #1a3a1a;
  --color-expand-button:     #1a3a1a;
  --color-link:              #00ff00;
  --color-link-hover:        #66ff66;

  --fonts-monospace: 'Terminess Nerd Font Propo', 'Terminess Nerd Font Mono',
                     'JetBrains Mono', 'Menlo', 'Consolas', monospace;
  --fonts-regular:   'Terminess Nerd Font Propo', 'Terminess Nerd Font Mono',
                     'JetBrains Mono', 'Menlo', 'Consolas', monospace;
  --fonts-emoji:     'Terminess Nerd Font Propo', 'Noto Color Emoji', 'Apple Color Emoji', sans-serif;

  --border-radius: 0;
  --border-radius-medium: 0;
  --border-radius-full: 0;
  color-scheme: dark;
}

/* ── §2. base ────────────────────────────────────────── */

html, body {
  background: var(--pax-bg) !important;
  color: var(--pax-fg);
  font-family: var(--pax-font-mono) !important;
  font-size: 14px;
  line-height: 1.55;
  accent-color: var(--pax-fg);
}

body {
  background: var(--pax-bg) !important;
}

* { box-sizing: border-box; }

::selection { background: var(--pax-fg); color: var(--pax-bg); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--pax-bg); }
::-webkit-scrollbar-thumb { background: var(--pax-border); }
::-webkit-scrollbar-thumb:hover { background: var(--pax-fg); }

a { color: var(--pax-fg); text-decoration: none; }
a:hover { color: var(--pax-fg); text-shadow: 0 0 6px rgba(0,255,0,0.35); }

hr, .ui.divider { border-color: var(--pax-border) !important; }

/* flatten rounding + shadows globally */
.ui,
.ui.segment,
.ui.menu,
.ui.card,
.ui.cards > .card,
.ui.button,
.ui.buttons .button,
.ui.input input,
.ui.input > input,
.ui.selection.dropdown,
.ui.dropdown .menu,
.ui.tabular.menu .item,
.ui.modal,
.ui.label,
.ui.list,
.ui.message,
.ui.table,
.ui.header,
.repository .file-header,
.repo-header,
.tippy-box,
pre, code, kbd, .chroma {
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ── §3. navbar ──────────────────────────────────────── */

#navbar,
.full.height > .navbar,
.ui.top.menu,
.ui.secondary.menu {
  background: var(--pax-bg) !important;
  border: none !important;
  border-bottom: 1px solid var(--pax-border) !important;
}

#navbar .item,
.ui.secondary.menu .item {
  color: var(--pax-fg-dim) !important;
  border-radius: 0 !important;
}
#navbar .item:hover,
.ui.secondary.menu .item:hover {
  color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}
#navbar .item.active,
.ui.secondary.menu .item.active {
  color: var(--pax-fg) !important;
  background: transparent !important;
  border-bottom: 2px solid var(--pax-fg) !important;
}
#navbar .logo {
  filter: brightness(1.2);
}

/* ── §4. buttons ─────────────────────────────────────── */

.ui.button,
.ui.buttons .button {
  background: transparent !important;
  color: var(--pax-fg) !important;
  font-family: var(--pax-font-mono) !important;
  border: 1px solid var(--pax-border) !important;
  padding: 9px 16px !important;
  letter-spacing: 0.04em;
  transition: border-color 0.14s, background 0.14s, text-shadow 0.14s !important;
  text-transform: none !important;
  font-weight: normal !important;
}
.ui.button:hover,
.ui.buttons .button:hover {
  background: var(--pax-panel-hover) !important;
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
  text-shadow: 0 0 6px rgba(0, 255, 0, 0.4);
}
.ui.button:focus,
.ui.buttons .button:focus {
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
}

.ui.primary.button,
.ui.primary.buttons .button {
  background: transparent !important;
  color: var(--pax-fg) !important;
  border: 1px solid var(--pax-fg) !important;
}
.ui.primary.button:hover,
.ui.primary.buttons .button:hover {
  background: var(--pax-panel-hover) !important;
  color: var(--pax-fg) !important;
  border-color: var(--pax-fg) !important;
  text-shadow: 0 0 8px rgba(0, 255, 0, 0.5);
}

.ui.basic.button,
.ui.basic.buttons .button {
  background: transparent !important;
  color: var(--pax-fg-dim) !important;
  border: 1px solid var(--pax-border) !important;
  box-shadow: none !important;
}
.ui.basic.button:hover,
.ui.basic.buttons .button:hover {
  color: var(--pax-fg) !important;
  border-color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}

.ui.negative.button,
.ui.red.button {
  background: transparent !important;
  color: var(--pax-err) !important;
  border: 1px solid var(--pax-err) !important;
}
.ui.negative.button:hover,
.ui.red.button:hover {
  background: rgba(255, 85, 85, 0.08) !important;
  color: var(--pax-err) !important;
}

.ui.positive.button,
.ui.green.button {
  background: transparent !important;
  color: var(--pax-fg) !important;
  border: 1px solid var(--pax-fg) !important;
}

/* ── §5. inputs ──────────────────────────────────────── */

.ui.input > input,
.ui.input input,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="url"],
textarea,
.ui.form textarea,
.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 input[type="number"] {
  background: var(--pax-bg) !important;
  color: var(--pax-fg) !important;
  font-family: var(--pax-font-mono) !important;
  border: none !important;
  border-bottom: 1px solid var(--pax-border) !important;
  padding: 6px 10px !important;
  outline: none !important;
  caret-color: var(--pax-fg) !important;
  border-radius: 0 !important;
  transition: border-color 0.14s !important;
  box-shadow: none !important;
}

/* icon-inputs (search fields with a leading magnifier, etc.) need
   extra padding so the icon doesn't overlap placeholder/content */
.ui.icon.input > input,
.ui.icon.input input {
  padding-right: 38px !important;
}
.ui.left.icon.input > input,
.ui.left.icon.input input {
  padding-left: 38px !important;
  padding-right: 10px !important;
}
.ui.icon.input > i.icon {
  color: var(--pax-fg-faint) !important;
  opacity: 1 !important;
}
.ui.icon.input > i.icon:hover {
  color: var(--pax-fg) !important;
}
.ui.input > input:hover,
input[type="text"]:hover,
input[type="email"]:hover,
input[type="password"]:hover,
input[type="search"]:hover,
textarea:hover { border-bottom-color: var(--pax-fg-faint) !important; }

.ui.input > input:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
textarea:focus { border-bottom-color: var(--pax-fg) !important; }

::placeholder { color: var(--pax-fg-ghost) !important; }

/* selection/dropdown */
.ui.selection.dropdown,
.ui.dropdown {
  background: var(--pax-bg) !important;
  color: var(--pax-fg) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
}
.ui.selection.dropdown:hover { border-color: var(--pax-fg-faint) !important; }
.ui.selection.dropdown.active { border-color: var(--pax-fg) !important; }
.ui.dropdown .menu {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  margin-top: 4px !important;
}
.ui.dropdown .menu > .item {
  color: var(--pax-fg-dim) !important;
  border-bottom: none !important;
}
.ui.dropdown .menu > .item:hover {
  background: var(--pax-panel-hover) !important;
  color: var(--pax-fg) !important;
}
.ui.dropdown .menu > .item.selected,
.ui.dropdown .menu > .item.active {
  background: var(--pax-accent-block) !important;
  color: var(--pax-fg) !important;
}

/* checkbox/radio */
.ui.checkbox input[type="checkbox"],
.ui.checkbox input[type="radio"] { accent-color: var(--pax-fg) !important; }
.ui.checkbox label { color: var(--pax-fg-dim) !important; }
.ui.checkbox input:checked ~ label { color: var(--pax-fg) !important; }

/* ── §6. panels, cards, segments ─────────────────────── */

.ui.segment,
.ui.segments,
.ui.card,
.ui.cards > .card,
.ui.basic.segment,
.repository .file-header,
.repo-header {
  background: var(--pax-bg) !important;
  color: var(--pax-fg) !important;
  border: 1px solid var(--pax-border) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.ui.card:hover,
.ui.cards > .card:hover {
  border-color: var(--pax-border-live) !important;
  background: var(--pax-panel-hover) !important;
  box-shadow: none !important;
}

.ui.segment.secondary { background: var(--pax-bg-raise) !important; }

.ui.divided.list > .item,
.ui.divided.items > .item,
.ui.divider,
.repository .file-list > .item {
  border-color: var(--pax-border) !important;
}

/* ── §7. headings ────────────────────────────────────── */

h1, h2, h3, h4, h5, h6,
.ui.header {
  color: var(--pax-fg) !important;
  font-family: var(--pax-font-mono) !important;
  font-weight: normal !important;
  letter-spacing: 0.02em;
  border: none !important;
}

.ui.dividing.header {
  border-bottom: 1px dotted var(--pax-fg-faint) !important;
  padding-bottom: 8px !important;
}

/* ── §8. tabs / secondary menu ───────────────────────── */

.ui.tabular.menu {
  border-bottom: 1px solid var(--pax-border) !important;
  background: transparent !important;
}
.ui.tabular.menu .item {
  color: var(--pax-fg-dim) !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  margin-right: 4px;
  padding: 10px 14px !important;
}
.ui.tabular.menu .item:hover {
  color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}
.ui.tabular.menu .item.active {
  color: var(--pax-fg) !important;
  background: transparent !important;
  border-bottom: 2px solid var(--pax-fg) !important;
  font-weight: normal !important;
}

.ui.secondary.pointing.menu .item.active {
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
}

/* repository nav */
.repository .navbar {
  background: var(--pax-bg) !important;
  border: none !important;
  border-bottom: 1px solid var(--pax-border) !important;
  box-shadow: none !important;
}

/* ── §9. labels, chips, tags ─────────────────────────── */

.ui.label {
  background: var(--pax-bg-raise) !important;
  color: var(--pax-fg-dim) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  font-weight: normal !important;
}
.ui.label:hover {
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
}
.ui.basic.label {
  background: transparent !important;
  border: 1px solid var(--pax-border) !important;
  color: var(--pax-fg-dim) !important;
}

/* issue state labels — keep their semantic colors */
.ui.green.label, .ui.green.labels .label { background: var(--pax-accent-block) !important; color: #00ff00 !important; border-color: #00ff00 !important; }
.ui.red.label, .ui.red.labels .label     { background: rgba(255,85,85,0.1) !important; color: #ff5555 !important; border-color: #ff5555 !important; }
.ui.yellow.label, .ui.yellow.labels .label { background: rgba(255,204,0,0.1) !important; color: #ffcc00 !important; border-color: #ffcc00 !important; }
.ui.blue.label, .ui.blue.labels .label   { background: rgba(85,170,255,0.1) !important; color: #55aaff !important; border-color: #55aaff !important; }
.ui.purple.label, .ui.violet.label        { background: rgba(192,128,255,0.1) !important; color: #c080ff !important; border-color: #c080ff !important; }

/* ── §10. tables ─────────────────────────────────────── */

.ui.table,
.ui.table thead th,
.ui.table tbody td {
  background: var(--pax-bg) !important;
  color: var(--pax-fg-dim) !important;
  border-color: var(--pax-border) !important;
}
.ui.table thead th { color: var(--pax-fg) !important; font-weight: normal !important; }
.ui.table tbody tr:hover { background: var(--pax-panel-hover) !important; }

/* ── §11. code / chroma (preserve syntax) ────────────── */

code, kbd, .monospace {
  font-family: var(--pax-font-mono) !important;
  border-radius: 0 !important;
}

/* inline code only — not inside <pre> or chroma code viewer */
.markup :not(pre) > code,
.markdown-body :not(pre) > code,
p > code,
li > code,
td > code:not(.code-inner),
h1 > code, h2 > code, h3 > code, h4 > code, h5 > code, h6 > code {
  background: rgba(0, 255, 0, 0.08) !important;
  color: var(--pax-fg) !important;
  padding: 1px 4px !important;
}

.markup pre,
.markdown-body pre,
.ui.segment pre,
.file-view pre {
  background: var(--pax-bg-raise) !important;
  border: 1px solid var(--pax-border) !important;
  padding: 12px 14px !important;
  border-radius: 0 !important;
}

/* chroma token palette — built-in themes bundle this; pax2 needs it
   ported or every token falls back to the inherited code-element color.
   Values copied from gitea-dark for good contrast on black. */
.chroma .bp{color:#fabd2f}
.chroma .c, .chroma .c1, .chroma .ch, .chroma .cm{color:#777e94}
.chroma .cp{color:#8ec07c}
.chroma .cpf{color:#649bc4}
.chroma .cs{color:#9075cd}
.chroma .dl{color:#649bc4}
.chroma .gd{color:#fff;background-color:#5f3737}
.chroma .ge{color:#ddee30}
.chroma .gh{color:#ffaa10}
.chroma .gi{color:#fff;background-color:#3a523a}
.chroma .go{color:#777e94}
.chroma .gp{color:#ebdbb2}
.chroma .gr{color:#ff4433}
.chroma .gs{color:#ebdbb2}
.chroma .gt{color:#ff7540}
.chroma .gu{color:#b8bb26}
.chroma .il{color:#649bc4}
.chroma .k{color:#ff7540}
.chroma .kc{color:#649bc4}
.chroma .kd{color:#ff7540}
.chroma .kn{color:#ffaa10}
.chroma .kp{color:#5f8700}
.chroma .kr{color:#ff7540}
.chroma .kt{color:#ff7b72}
.chroma .m, .chroma .mb, .chroma .mf, .chroma .mh, .chroma .mi, .chroma .mo{color:#649bc4}
.chroma .n{color:#c9d1d9}
.chroma .na, .chroma .nb{color:#fabd2f}
.chroma .nc{color:#ffaa10}
.chroma .nd{color:#8ec07c}
.chroma .ne{color:#ff7540}
.chroma .nf, .chroma .ni{color:#fabd2f}
.chroma .nl{color:#ff7540}
.chroma .nn{color:#c9d1d9}
.chroma .no{color:#649bc4}
.chroma .nt{color:#ff7540}
.chroma .nv{color:#ebdbb2}
.chroma .nx{color:#b6bac5}
.chroma .o{color:#ff7540}
.chroma .ow{color:#5f8700}
.chroma .p{color:#d2d4db}
.chroma .s, .chroma .s1, .chroma .s2{color:#b8bb26}
.chroma .sa{color:#ffaa10}
.chroma .sb{color:#b8bb26}
.chroma .sc{color:#ffaa10}
.chroma .sd{color:#b8bb26}
.chroma .se{color:#ff8540}
.chroma .sh{color:#b8bb26}
.chroma .si{color:#ffaa10}
.chroma .sr{color:#9075cd}
.chroma .ss{color:#ff8540}
.chroma .sx{color:#ffaa10}
.chroma .vc, .chroma .vg, .chroma .vi{color:#649bee}
.chroma .w{color:#7f8699}
.chroma .hl{display:block;width:100%;background:rgba(0,255,0,0.07)}

/* ── §11b. CodeMirror / EasyMDE (markdown editor) ────── */

.CodeMirror {
  font-family: var(--pax-font-mono) !important;
  background: var(--pax-bg) !important;
  color: var(--pax-fg-dim) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  height: auto;
  min-height: 300px;
}
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-lines,
.CodeMirror-code,
.CodeMirror-line,
.CodeMirror-line > span {
  background: transparent !important;
  color: var(--pax-fg-dim) !important;
}
.CodeMirror-gutters {
  background: var(--pax-bg) !important;
  border-right: 1px solid var(--pax-border) !important;
}
.CodeMirror-linenumber, .CodeMirror-guttermarker-subtle {
  color: var(--pax-fg-faint) !important;
}
.CodeMirror-cursor {
  border-left: 1px solid var(--pax-fg) !important;
}
.CodeMirror-selected, .CodeMirror-focused .CodeMirror-selected {
  background: rgba(0, 255, 0, 0.18) !important;
}
.CodeMirror-activeline-background {
  background: rgba(0, 255, 0, 0.04) !important;
}
.CodeMirror-matchingbracket {
  color: var(--pax-fg) !important;
  background: rgba(0, 255, 0, 0.15) !important;
}

/* CM syntax tokens (easyMDE markdown highlighting) */
.cm-s-default .cm-header,
.cm-s-easymde .cm-header { color: var(--pax-fg) !important; }
.cm-s-default .cm-quote,
.cm-s-easymde .cm-quote { color: var(--pax-fg-faint) !important; font-style: italic; }
.cm-s-default .cm-keyword,
.cm-s-easymde .cm-keyword { color: #55aaff !important; }
.cm-s-default .cm-atom,
.cm-s-easymde .cm-atom { color: #c080ff !important; }
.cm-s-default .cm-number,
.cm-s-easymde .cm-number { color: #ffcc00 !important; }
.cm-s-default .cm-string,
.cm-s-easymde .cm-string { color: #ffa500 !important; }
.cm-s-default .cm-comment,
.cm-s-easymde .cm-comment { color: var(--pax-fg-faint) !important; }
.cm-s-default .cm-variable,
.cm-s-easymde .cm-variable { color: var(--pax-fg-dim) !important; }
.cm-s-default .cm-def,
.cm-s-easymde .cm-def { color: var(--pax-fg) !important; }
.cm-s-default .cm-link,
.cm-s-easymde .cm-link { color: var(--pax-fg) !important; }
.cm-s-default .cm-url,
.cm-s-easymde .cm-url { color: var(--pax-fg-dim) !important; }
.cm-s-default .cm-tag,
.cm-s-easymde .cm-tag { color: #55aaff !important; }
.cm-s-default .cm-attribute,
.cm-s-easymde .cm-attribute { color: #ffcc00 !important; }
.cm-s-default .cm-formatting,
.cm-s-easymde .cm-formatting { color: var(--pax-fg-faint) !important; }

.EasyMDEContainer,
.editor-toolbar {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
}
.editor-toolbar button {
  color: var(--pax-fg-dim) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}
.editor-toolbar button:hover,
.editor-toolbar button.active {
  background: var(--pax-panel-hover) !important;
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
}
.editor-toolbar i.separator {
  border-left: 1px solid var(--pax-border) !important;
  border-right: none !important;
}
.editor-statusbar {
  color: var(--pax-fg-faint) !important;
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  border-top: none !important;
}
.editor-preview, .editor-preview-side {
  background: var(--pax-bg-raise) !important;
  color: var(--pax-fg-dim) !important;
  border: 1px solid var(--pax-border) !important;
}

/* ── §11c. Monaco editor (file code editor) ──────────── */

.monaco-editor,
.monaco-editor .overflow-guard,
.monaco-editor-background,
.monaco-editor .margin,
.monaco-editor .monaco-scrollable-element,
.monaco-editor .view-overlays .current-line,
.monaco-editor .view-line {
  background-color: var(--pax-bg) !important;
}
.monaco-editor .view-line span { color: inherit !important; }
.monaco-editor .margin-view-overlays .line-numbers {
  color: var(--pax-fg-faint) !important;
}
.monaco-editor .current-line {
  border: none !important;
  background: rgba(0, 255, 0, 0.04) !important;
}
.monaco-editor .cursor,
.monaco-editor .cursors-layer > .cursor {
  background-color: var(--pax-fg) !important;
  border-color: var(--pax-fg) !important;
  color: var(--pax-bg) !important;
}
.monaco-editor .selected-text,
.monaco-editor .focused .selected-text {
  background: rgba(0, 255, 0, 0.18) !important;
}
.monaco-editor .bracket-match {
  background: rgba(0, 255, 0, 0.12) !important;
  border: 1px solid var(--pax-fg-faint) !important;
}

/* guard: reset any stray currentColor bleed in editors */
.CodeMirror *,
.monaco-editor * {
  caret-color: var(--pax-fg);
}

/* ── §12. diff view (gitea 1.23 row classes) ─────────── */

/* context (unchanged) rows — no highlight */
.diff-file-body tr.same-code td,
.diff-file-body tr.same-code .lines-code,
.diff-file-body tr.same-code .lines-num,
.diff-file-body tr.same-code .lines-type-marker {
  background: var(--pax-bg) !important;
  color: var(--pax-fg-dim) !important;
}

/* deletion rows — red tint */
.diff-file-body tr.del-code,
.diff-file-body tr.del-code td,
.diff-file-body tr.del-code .lines-code,
.diff-file-body tr.del-code .lines-type-marker {
  background: rgba(255, 85, 85, 0.10) !important;
}
.diff-file-body tr.del-code .lines-num {
  background: rgba(255, 85, 85, 0.18) !important;
  color: var(--pax-fg-dim) !important;
}
.diff-file-body tr.del-code .lines-type-marker {
  color: #ff5555 !important;
  font-weight: bold;
}

/* addition rows — green tint */
.diff-file-body tr.add-code,
.diff-file-body tr.add-code td,
.diff-file-body tr.add-code .lines-code,
.diff-file-body tr.add-code .lines-type-marker {
  background: rgba(0, 255, 0, 0.09) !important;
}
.diff-file-body tr.add-code .lines-num {
  background: rgba(0, 255, 0, 0.16) !important;
  color: var(--pax-fg-dim) !important;
}
.diff-file-body tr.add-code .lines-type-marker {
  color: var(--pax-fg) !important;
  font-weight: bold;
}

/* hunk boundary (tag-code) — raised bg */
.diff-file-body tr.tag-code td,
.diff-file-body tr.tag-code .lines-code {
  background: var(--pax-bg-raise) !important;
  color: var(--pax-fg-faint) !important;
}

/* drop green tint bleed from markup-code-block var on diff bodies */
.diff-file-body .code-inner,
.diff-file-body pre {
  background: transparent !important;
}

.file-header,
.diff-file-box .header {
  background: var(--pax-bg-raise) !important;
  border-color: var(--pax-border) !important;
}

/* ── §12b. diff stats bars ───────────────────────────── */

.diff-stats-bar {
  background: rgba(255, 85, 85, 0.25) !important;
  display: inline-block;
  height: 10px;
  width: 60px;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  overflow: hidden;
}
.diff-stats-add-bar {
  background: var(--pax-fg) !important;
  height: 100%;
}

/* ── §12c. file / diff file header ────────────────────── */

.file-view,
.file-view.code-view,
.non-diff-file-content,
.diff-file-box {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.diff-file-header,
.diff-file-header.sticky-2nd-row,
.file-header,
.repo-file-header {
  background: var(--pax-bg-raise) !important;
  border: none !important;
  border-bottom: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.diff-file-name,
.diff-file-name a,
.diff-file-name .muted {
  color: var(--pax-fg-dim) !important;
}
.fold-file, .interact-bg {
  background: transparent !important;
}
.fold-file:hover, .interact-bg:hover {
  background: var(--pax-panel-hover) !important;
}

/* ── §15b. issue view (comments timeline) ─────────────── */

.issue-title-header .issue-title h1 {
  color: var(--pax-fg) !important;
  font-size: 24px !important;
  font-weight: normal !important;
}
.issue-title-header .issue-title h1 .index {
  color: var(--pax-fg-faint) !important;
  font-weight: normal !important;
  margin-left: 8px;
}

.issue-content {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 24px;
}

.issue-content-left.comment-list {
  min-width: 0;
}
.issue-content-right.ui.segment {
  background: transparent !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  padding: 14px 16px !important;
  box-shadow: none !important;
}
.issue-content-right .divider {
  border-color: var(--pax-border) !important;
}

/* comments: flat bordered cards, raised header */
.timeline-item.comment,
.timeline-item.comment.first {
  background: transparent !important;
  margin-bottom: 16px !important;
  padding: 0 !important;
}
.timeline-item.comment .timeline-avatar {
  border-radius: 0 !important;
}
.timeline-item.comment .timeline-avatar img {
  border-radius: 0 !important;
  border: 1px solid var(--pax-border) !important;
}
.timeline-item.comment .content.comment-container {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  overflow: hidden;
}
.timeline-item.comment .ui.attached.header.comment-header {
  background: var(--pax-bg-raise) !important;
  border: none !important;
  border-bottom: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  padding: 8px 14px !important;
}
.timeline-item.comment .comment-header .author,
.timeline-item.comment .comment-header a.author {
  color: var(--pax-fg) !important;
}
.timeline-item.comment .comment-header .text.grey,
.timeline-item.comment .comment-header .muted-links,
.timeline-item.comment .comment-header relative-time {
  color: var(--pax-fg-dim) !important;
}
.timeline-item.comment .comment-header .inline-timeline-avatar img {
  border-radius: 0 !important;
  border: 1px solid var(--pax-border) !important;
}
.timeline-item.comment .comment-body,
.timeline-item.comment .render-content {
  background: var(--pax-bg) !important;
  padding: 14px !important;
}
.timeline-item.comment .render-content.markup {
  color: var(--pax-fg-dim) !important;
}

/* comment reaction + actions buttons */
.comment-reaction-button,
.delete-comment,
.item.context {
  color: var(--pax-fg-faint) !important;
  background: transparent !important;
}
.comment-reaction-button:hover,
.delete-comment:hover,
.item.context:hover {
  color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}

/* issue number + status label ("Open"/"Closed") */
.issue-state-label.open,
.ui.label.green.issue-open {
  background: transparent !important;
  border: 1px solid var(--pax-fg) !important;
  color: var(--pax-fg) !important;
}
.issue-state-label.closed,
.ui.label.red.issue-closed {
  background: transparent !important;
  border: 1px solid var(--pax-err) !important;
  color: var(--pax-err) !important;
}

/* timeline non-comment events (label added, closed, etc.) */
.timeline-item:not(.comment) {
  color: var(--pax-fg-faint) !important;
  padding: 4px 0 !important;
  border-left: 1px dotted var(--pax-fg-ghost);
  margin-left: 20px;
  padding-left: 16px !important;
}
.timeline-item:not(.comment) a {
  color: var(--pax-fg-dim) !important;
}
.timeline-item:not(.comment) a:hover {
  color: var(--pax-fg) !important;
}

@media (max-width: 860px) {
  .issue-content { grid-template-columns: 1fr; }
}

/* ── §16b. releases ──────────────────────────────────── */

.release-entry {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px dotted var(--pax-fg-ghost) !important;
  padding: 18px 0 28px !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.release-entry:last-child {
  border-bottom: none !important;
}
.release-entry:hover {
  background: transparent !important;
  border-color: var(--pax-fg-ghost) !important;
}
.release-list-title {
  color: var(--pax-fg) !important;
}
.release-list-title a {
  color: var(--pax-fg) !important;
}
.release-list-title a:hover {
  text-shadow: 0 0 6px rgba(0, 255, 0, 0.35);
}
.download {
  background: transparent !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
}
.download:hover {
  border-color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}

/* ── §12d. repo header + summary panel ──────────────── */

.repo-header {
  padding: 10px 0 !important;
  border: none !important;
  background: transparent !important;
}
.repo-header .flex-item,
.repo-header > .flex-item {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.repo-header .flex-item:hover,
.repo-header > .flex-item:hover {
  background: transparent !important;
  border: none !important;
}
.repo-header .flex-item-title a {
  color: var(--pax-fg) !important;
}
.repo-buttons {
  display: flex;
  gap: 6px;
  align-items: center;
}
.repo-buttons .ui.button,
.repo-button-row .ui.button {
  background: transparent !important;
  border: 1px solid var(--pax-border) !important;
  color: var(--pax-fg-dim) !important;
  border-radius: 0 !important;
}
.repo-buttons .ui.button:hover,
.repo-button-row .ui.button:hover {
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
}
.repo-buttons .ui.primary.button,
.repo-button-row .ui.primary.button {
  background: transparent !important;
  color: var(--pax-fg) !important;
  border: 1px solid var(--pax-fg) !important;
}
.ui.segments.repository-summary {
  border: 1px solid var(--pax-border) !important;
  background: var(--pax-bg) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.ui.segments.repository-summary > .ui.segment {
  border: none !important;
  border-bottom: 1px solid var(--pax-border) !important;
}
.ui.segments.repository-summary > .ui.segment:last-child {
  border-bottom: none !important;
}

/* branch selector dropdown */
.branch-selector-dropdown {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  color: var(--pax-fg-dim) !important;
  border-radius: 0 !important;
}
.branch-selector-dropdown:hover {
  border-color: var(--pax-fg) !important;
}

/* clone panel popup */
.clone-panel-popup {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
}
.clone-panel-tab {
  background: transparent !important;
  color: var(--pax-fg-dim) !important;
}
.clone-panel-tab.active {
  color: var(--pax-fg) !important;
  border-bottom: 2px solid var(--pax-fg) !important;
}
.clone-panel-field .ui.input input,
.clone-panel-field input {
  background: var(--pax-bg-raise) !important;
  color: var(--pax-fg) !important;
  border: 1px solid var(--pax-border) !important;
}

/* ── §12e. repo source file tree rows ───────────────── */

.latest-commit {
  background: transparent !important;
  border: none !important;
}
.latest-commit .commit-summary,
.latest-commit .grey.commit-summary {
  background: transparent !important;
  border: none !important;
  color: var(--pax-fg-dim) !important;
  padding: 0 !important;
}
.latest-commit .commit-summary a,
.latest-commit .commit-summary a:hover {
  color: var(--pax-fg) !important;
}
.repo-file-item,
.repo-file-line {
  background: var(--pax-bg) !important;
  border-top: 1px solid var(--pax-border) !important;
}
.repo-file-item:hover {
  background: var(--pax-panel-hover) !important;
}
.repo-file-cell.name a {
  color: var(--pax-fg-dim) !important;
}
.repo-file-cell.name a:hover {
  color: var(--pax-fg) !important;
  text-shadow: 0 0 6px rgba(0, 255, 0, 0.35);
}
.repo-file-cell.age,
.repo-file-cell.message {
  color: var(--pax-fg-faint) !important;
}

/* ── §13. repository file list ───────────────────────── */

.repository.file.list #repo-files-table,
.repository #repo-files-table {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
}
.repository.file.list #repo-files-table tr,
.repository #repo-files-table tr {
  background: transparent !important;
  border-color: var(--pax-border) !important;
}
.repository.file.list #repo-files-table tr:hover,
.repository #repo-files-table tr:hover {
  background: var(--pax-panel-hover) !important;
}
.repository .sub-menu,
.ui.segment.sub-menu.repository-menu {
  background: transparent !important;
  border-bottom: 1px solid var(--pax-border) !important;
}
.repository .repo-buttons .ui.button,
.repository .repo-button-row .ui.button {
  border-color: var(--pax-border) !important;
}

/* ── §14. flex-list items (explore, issues, users, orgs) ────
   Gitea 1.23 standardized on .flex-list / .flex-item across repo
   explore, issue list, user explore, org list, etc. Style uniformly. */

/* Boxed-card layout only on list pages — not dashboard/activity feed */
.page-content.explore .flex-list,
.page-content.repository.issue-list .flex-list,
.page-content.repository.pulls .flex-list,
.page-content.dashboard.issues .flex-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 0 !important;
}
.page-content.explore .flex-list > .flex-item,
.page-content.repository.issue-list .flex-list > .flex-item,
.page-content.repository.pulls .flex-list > .flex-item,
.page-content.dashboard.issues .flex-list > .flex-item {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  padding: 18px 22px !important;
  transition: border-color 0.14s, background 0.14s !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
.page-content.explore .flex-list > .flex-item:hover,
.page-content.repository.issue-list .flex-list > .flex-item:hover,
.page-content.repository.pulls .flex-list > .flex-item:hover,
.page-content.dashboard.issues .flex-list > .flex-item:hover {
  border-color: var(--pax-border-live) !important;
  background: var(--pax-panel-hover) !important;
}
.page-content .flex-item-leading img.avatar,
.page-content .flex-item-leading .ui.avatar {
  border-radius: 0 !important;
  border: 1px solid var(--pax-border) !important;
}
.page-content .flex-item-title {
  color: var(--pax-fg) !important;
  font-weight: normal !important;
}
.page-content.explore .flex-item-title::before {
  content: '▸ ';
  color: var(--pax-fg);
}
.page-content .flex-item-title a.text.primary.name,
.page-content .flex-item-title a {
  color: var(--pax-fg) !important;
}
.page-content .flex-item-title a:hover {
  text-shadow: 0 0 6px rgba(0, 255, 0, 0.35);
}
.page-content .flex-item-body {
  color: var(--pax-fg-dim) !important;
}
.page-content .flex-item-trailing,
.page-content .flex-item-trailing a,
.page-content .flex-item-trailing span {
  color: var(--pax-fg-faint) !important;
}
.page-content .flex-item-trailing a:hover {
  color: var(--pax-fg) !important;
}

/* topic chips: borderless, // joined (explore pages only) */
.page-content.explore .label-list .ui.label {
  background: transparent !important;
  border: none !important;
  color: var(--pax-fg-dim) !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 12px !important;
}
.page-content.explore .label-list .ui.label::after {
  content: ' // ';
  color: var(--pax-fg-ghost);
}
.page-content.explore .label-list .ui.label:last-child::after { content: ''; }
.page-content.explore .label-list .ui.label:hover {
  color: var(--pax-fg) !important;
}

/* ── §14b. vertical menu (settings sidebar, etc.) ───── */

.ui.fluid.vertical.menu,
.ui.vertical.menu {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.ui.vertical.menu .item {
  color: var(--pax-fg-dim) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 10px 14px !important;
}
.ui.vertical.menu .item::before {
  background: var(--pax-border) !important;
}
.ui.vertical.menu .item:hover {
  color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}
.ui.vertical.menu .item.active,
.ui.vertical.menu a.active.item {
  color: var(--pax-fg) !important;
  background: transparent !important;
  border-left: 2px solid var(--pax-fg) !important;
  padding-left: 12px !important;
}
.ui.vertical.menu .header.item {
  color: var(--pax-fg) !important;
  background: var(--pax-bg-raise) !important;
  font-size: 12px !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: normal !important;
}
.ui.vertical.menu .header.item::before { content: '# '; color: var(--pax-fg); }
.ui.vertical.menu details.toggleable-item summary {
  color: var(--pax-fg-dim) !important;
  padding: 10px 14px !important;
  cursor: pointer;
}
.ui.vertical.menu details.toggleable-item summary:hover {
  color: var(--pax-fg) !important;
  background: var(--pax-panel-hover) !important;
}
.ui.vertical.menu details.toggleable-item .menu {
  background: transparent !important;
  border: none !important;
  padding-left: 14px !important;
}

/* settings two-col layout wrapper */
.flex-container-nav {
  padding: 0 !important;
}

/* ── §15. login / signup / forms ─────────────────────── */

.page-content.user.signin,
.page-content.user.signup,
.page-content.user.activate,
.page-content.user.forgot_password {
  max-width: 480px;
  margin: 0 auto !important;
}

.user.signin form,
.user.signup form,
.user.activate form,
.user.forgot_password form {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.user.signin .ui.form .field label,
.user.signup .ui.form .field label {
  color: var(--pax-fg) !important;
  font-size: 12px !important;
}
.user.signin .ui.form .field label::before,
.user.signup .ui.form .field label::before {
  content: '> ';
  color: var(--pax-fg-dim);
}

/* general form field labels (user settings, repo settings) */
.page-content .ui.form .field > label,
.page-content .ui.form .inline.field > label {
  color: var(--pax-fg) !important;
  font-weight: normal !important;
}
.page-content .ui.form .field .help,
.page-content .ui.form p.help {
  color: var(--pax-fg-faint) !important;
  font-size: 12px;
}

/* ── §16. flash / messages ───────────────────────────── */

.ui.message,
.ui.info.message,
.ui.positive.message,
.ui.success.message,
.ui.warning.message,
.ui.negative.message,
.ui.error.message {
  background: var(--pax-bg) !important;
  border: 1px solid var(--pax-border) !important;
  color: var(--pax-fg-dim) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.ui.positive.message, .ui.success.message {
  border-color: var(--pax-fg) !important;
  color: var(--pax-fg) !important;
  background: rgba(0, 255, 0, 0.05) !important;
}
.ui.negative.message, .ui.error.message {
  border-color: var(--pax-err) !important;
  color: var(--pax-err) !important;
  background: rgba(255, 85, 85, 0.05) !important;
}
.ui.warning.message {
  border-color: #ffcc00 !important;
  color: #ffcc00 !important;
  background: rgba(255, 204, 0, 0.05) !important;
}

/* ── §17. footer ─────────────────────────────────────── */

.page-footer,
footer,
.footer {
  background: var(--pax-bg) !important;
  border-top: 1px solid var(--pax-border) !important;
  color: var(--pax-fg-faint) !important;
}
.page-footer a, footer a, .footer a {
  color: var(--pax-fg-faint) !important;
}
.page-footer a:hover, footer a:hover, .footer a:hover {
  color: var(--pax-fg) !important;
}

/* gitea 1.23 default footer:
    .page-footer > .left-links (Powered by / Version / Page timing)
                 > .right-links (language dropdown, Licenses, API)
   Hide everything, inject pax-style footer via ::before.           */

.page-footer {
  position: relative;
  min-height: 40px;
}
.page-footer .left-links,
.page-footer .right-links {
  visibility: hidden !important;
}
.page-footer::before {
  content: 'git.pax.moe ~ / · gitea 1.23 · no registration · no tracking';
  visibility: visible;
  position: absolute;
  left: 0;
  right: 0;
  top: 14px;
  text-align: center;
  color: var(--pax-fg-faint);
  font-size: 12px;
  font-family: var(--pax-font-mono);
  letter-spacing: 0.02em;
}

/* ── §17b. contribution heatmap ──────────────────────── */

/* Gitea's ActivityHeatmap sets fill via inline style with CSS vars, not
   the `fill=` attribute. Palette (by activity index 0→6):
     0: --color-secondary-alpha-60  (empty)
     1: --color-secondary-alpha-60  (duplicate, no distinct "low")
     2: --color-primary-light-4
     3: --color-primary-light-2
     4: --color-primary
     5: --color-primary-dark-2
     6: --color-primary-dark-4      (max)
   Direction: index 0=empty (dark), index 6=max activity (bright).
   Target each by [style*=...] substring match on the CSS var name. */

/* 7-step ladder as rgba over black — smooth linear contrast.
   Grid cells have class .vch__day__square; legend cells are naked
   <rect> inside .vch__legend__wrapper. Target both. */
.vch__day__square[style*="color-secondary-alpha-60"],
.vch__legend__wrapper rect[style*="color-secondary-alpha-60"] { fill: rgba(0, 255, 0, 0.05) !important; }

.vch__day__square[style*="color-primary-light-4"],
.vch__legend__wrapper rect[style*="color-primary-light-4"] { fill: rgba(0, 255, 0, 0.18) !important; }

.vch__day__square[style*="color-primary-light-2"],
.vch__legend__wrapper rect[style*="color-primary-light-2"] { fill: rgba(0, 255, 0, 0.35) !important; }

.vch__day__square[style*="color-primary)"],
.vch__legend__wrapper rect[style*="color-primary)"] { fill: rgba(0, 255, 0, 0.55) !important; }

.vch__day__square[style*="color-primary-dark-2"],
.vch__legend__wrapper rect[style*="color-primary-dark-2"] { fill: rgba(0, 255, 0, 0.75) !important; }

.vch__day__square[style*="color-primary-dark-4"],
.vch__legend__wrapper rect[style*="color-primary-dark-4"] { fill: rgba(0, 255, 0, 1.00) !important; }


/* heatmap text labels (days, months, total) */
heatmap text,
heatmap .total-contributions {
  fill: var(--pax-fg-dim) !important;
  color: var(--pax-fg-dim) !important;
}
heatmap .total-contributions { color: var(--pax-fg) !important; }

/* hover outline */
heatmap .vch__day__square:hover,
.vch__day__square:hover {
  outline: 1.5px solid var(--pax-fg) !important;
}

/* ── §18. CI status icons (preserved) ────────────────── */

.commit-status.success, .ci-status.success, .ci.success { color: #00ff00 !important; }
.commit-status.failure, .ci-status.failure, .ci.failure { color: #ff5555 !important; }
.commit-status.pending, .ci-status.pending, .ci.pending { color: #ffcc00 !important; }

/* ── §19. markdown rendered ──────────────────────────── */

.markup,
.markup.markdown,
.markdown-body {
  background: transparent !important;
  color: var(--pax-fg-dim) !important;
  font-family: var(--pax-font-mono) !important;
}
.markup h1, .markup h2, .markup h3, .markup h4,
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4 {
  color: var(--pax-fg) !important;
  border-bottom: 1px dotted var(--pax-fg-faint) !important;
  padding-bottom: 6px !important;
}
.markup a, .markdown-body a { color: var(--pax-fg) !important; }
.markup code, .markdown-body code {
  background: rgba(0, 255, 0, 0.08) !important;
  color: var(--pax-fg) !important;
  padding: 1px 4px !important;
}
.markup pre, .markdown-body pre {
  background: var(--pax-bg-raise) !important;
  border: 1px solid var(--pax-border) !important;
}
.markup blockquote, .markdown-body blockquote {
  border-left: 2px solid var(--pax-fg-faint) !important;
  color: var(--pax-fg-dim) !important;
  background: transparent !important;
  padding-left: 12px !important;
}
.markup table, .markdown-body table {
  border-color: var(--pax-border) !important;
}

/* ── §20. pax-* template additions (integration.md §6.4) ─ */

.pax-wrap a,
.pax-wrap a:hover,
.pax-wrap a:focus,
.pax-wrap a:visited {
  text-decoration: none !important;
}

.pax-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 26px 72px 60px;
}

.pax-path {
  color: var(--pax-fg);
  font-size: 13px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--pax-border);
  margin-bottom: 46px;
}
.pax-path a { color: var(--pax-fg); text-decoration: none; }
.pax-path a:hover { text-shadow: 0 0 6px rgba(0, 255, 0, 0.35); }
.pax-tilde { color: var(--pax-fg-dim); }
.pax-q     { color: var(--pax-err); }

/* hero: mirror of pax.moe homepage layout */
.pax-hero {
  margin: 40px 0 56px;
}
.pax-identity {
  padding-left: 0;
}
.pax-prompt-line {
  color: var(--pax-fg-faint);
  font-size: 12px;
  margin-bottom: 14px;
  letter-spacing: 0.04em;
}
.pax-title-row {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 18px;
}
.pax-logo {
  height: clamp(48px, 9vw, 100px);
  width: auto;
  display: block;
  flex-shrink: 0;
  transform: translateY(8%);
}
.pax-word {
  font-size: clamp(56px, 10vw, 112px);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: var(--pax-fg);
  margin: 0;
}
.pax-caret {
  display: inline-block;
  width: 0.45em;
  height: 0.85em;
  background: var(--pax-fg);
  vertical-align: baseline;
  margin-left: 4px;
  animation: pax-blink 1.2s ease-in-out infinite;
}
@keyframes pax-blink { 50% { opacity: 0; } }

.pax-tagline {
  font-size: 15px;
  color: var(--pax-fg-dim);
  letter-spacing: 0.01em;
}
.pax-sep {
  color: var(--pax-fg-faint);
  margin: 0 8px;
}

.pax-section { margin-top: 82px; }
.pax-section h2 {
  color: var(--pax-fg);
  font-size: 15px;
  font-weight: normal;
  margin: 0 0 14px;
  letter-spacing: 0.02em;
}
.pax-section h2::before { content: '# '; color: var(--pax-fg); }
.pax-rule {
  border-top: 1px dotted var(--pax-fg-faint);
  margin-bottom: 30px;
}

.pax-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.pax-node,
.pax-node:hover,
.pax-node:focus,
.pax-node *,
.pax-node:hover * {
  text-decoration: none !important;
}
.pax-node {
  border: 1px solid var(--pax-border);
  padding: 18px 22px 20px;
  color: inherit;
  transition: border-color 0.14s, background 0.14s;
  display: block;
}
.pax-node:hover {
  border-color: var(--pax-border-live);
  background: var(--pax-panel-hover);
}
.pax-node-name {
  color: var(--pax-fg);
  font-size: 14px;
  margin: 0 0 10px;
}
.pax-node-name::before { content: '▸ '; color: var(--pax-fg); }
.pax-node:hover .pax-node-name { text-shadow: 0 0 8px rgba(0, 255, 0, 0.4); }
.pax-node-desc { color: var(--pax-fg-dim); font-size: 12px; margin: 0; }

pre.pax-tree {
  font-family: var(--pax-font-mono);
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
  color: var(--pax-fg-dim);
  white-space: pre;
  overflow-x: auto;
}
pre.pax-tree .branch { color: var(--pax-fg-faint); }
pre.pax-tree .dir    { color: var(--pax-fg); }
pre.pax-tree .file   { color: var(--pax-fg-dim); }
pre.pax-tree .meta   { color: var(--pax-fg-faint); }
pre.pax-tree a { color: inherit; text-decoration: none; }
pre.pax-tree a:hover .file {
  color: var(--pax-fg);
  text-shadow: 0 0 6px rgba(0, 255, 0, 0.35);
}

.pax-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13px;
}
.pax-links a { color: var(--pax-fg); text-decoration: none; }
.pax-links a::before { content: '> '; color: var(--pax-fg-dim); }
.pax-links a:hover { text-shadow: 0 0 8px rgba(0, 255, 0, 0.4); }
.pax-target { color: var(--pax-fg-dim); }

/* 404-specific */
.pax-shell { margin: 0 0 52px; }
.pax-line { font-size: 13px; margin: 0 0 6px; white-space: pre-wrap; word-break: break-all; }
.pax-cmd::before { content: '> '; color: var(--pax-fg); }
.pax-cmd { color: var(--pax-fg-dim); }
.pax-out { color: var(--pax-err); }
.pax-out .pax-bin { color: var(--pax-fg-dim); }

.pax-body { color: var(--pax-fg-dim); font-size: 13px; max-width: 66ch; margin: 0 0 12px; }

.pax-foot {
  margin-top: 96px;
  padding-top: 14px;
  border-top: 1px solid var(--pax-border);
  color: var(--pax-fg-faint);
  font-size: 12px;
}
.pax-fsep { color: var(--pax-fg-ghost); margin: 0 8px; }

/* when pax templates render, drop gitea footer to avoid doubling */
.page-content.home ~ .page-footer,
.page-content.status-page-404 ~ .page-footer,
body:has(.pax-wrap) > .page-footer {
  display: none !important;
}

/* ── §21. responsive ─────────────────────────────────── */

@media (max-width: 780px) {
  .pax-wrap { padding: 20px 24px 40px; }
  .pax-grid { grid-template-columns: 1fr; gap: 14px; }
  .pax-title-row { gap: 14px; }
  .pax-section { margin-top: 56px; }
}
