/* =================================================================
   jorge/forge — Dark neutral + Cyan accent
   Surfaces: pure near-black grays (no purple tint)
   Accent: Dracula Cyan #8be9fd
   ================================================================= */

:root,
[data-theme="jorgeforge"] {
  color-scheme: dark;
  --is-dark-theme: true;

  accent-color: #8be9fd;

  /* Primary: Cyan */
  --color-primary: #8be9fd;
  --color-primary-contrast: #0d0d0d;
  --color-primary-hover: #a4eefe;
  --color-primary-dark-1: #76e5fc;
  --color-primary-dark-2: #61e1fb;
  --color-primary-dark-3: #4cddfa;
  --color-primary-dark-4: #37d9f9;
  --color-primary-dark-5: #22d5f8;
  --color-primary-dark-6: #0dd1f7;
  --color-primary-dark-7: #07bde0;
  --color-primary-light-1: #a4eefe;
  --color-primary-light-2: #bdf2fe;
  --color-primary-light-3: #d6f7ff;
  --color-primary-light-4: #e8fbff;
  --color-primary-light-5: #f4fdff;
  --color-primary-light-6: #f9feff;
  --color-primary-light-7: #fdffff;
  --color-primary-alpha-10: rgba(139, 233, 253, 0.1);
  --color-primary-alpha-20: rgba(139, 233, 253, 0.2);
  --color-primary-alpha-30: rgba(139, 233, 253, 0.3);
  --color-primary-alpha-40: rgba(139, 233, 253, 0.4);
  --color-primary-alpha-50: rgba(139, 233, 253, 0.5);
  --color-primary-alpha-60: rgba(139, 233, 253, 0.6);
  --color-primary-alpha-70: rgba(139, 233, 253, 0.7);
  --color-primary-alpha-80: rgba(139, 233, 253, 0.8);
  --color-primary-alpha-90: rgba(139, 233, 253, 0.9);

  /* Secondary: neutral gray */
  --color-secondary: #2e2e2e;
  --color-secondary-dark-1: #3a3a3a;
  --color-secondary-dark-2: #444444;
  --color-secondary-dark-3: #505050;
  --color-secondary-dark-4: #5c5c5c;
  --color-secondary-dark-5: #686868;
  --color-secondary-dark-6: #747474;
  --color-secondary-dark-7: #808080;
  --color-secondary-dark-8: #8c8c8c;
  --color-secondary-dark-9: #989898;
  --color-secondary-dark-10: #a4a4a4;
  --color-secondary-dark-11: #b0b0b0;
  --color-secondary-dark-12: #bcbcbc;
  --color-secondary-dark-13: #c8c8c8;
  --color-secondary-light-1: #242424;
  --color-secondary-light-2: #1a1a1a;
  --color-secondary-light-3: #141414;
  --color-secondary-light-4: #0f0f0f;
  --color-secondary-alpha-10: rgba(46, 46, 46, 0.1);
  --color-secondary-alpha-20: rgba(46, 46, 46, 0.2);
  --color-secondary-alpha-30: rgba(46, 46, 46, 0.3);
  --color-secondary-alpha-40: rgba(46, 46, 46, 0.4);
  --color-secondary-alpha-50: rgba(46, 46, 46, 0.5);
  --color-secondary-alpha-60: rgba(46, 46, 46, 0.6);
  --color-secondary-alpha-70: rgba(46, 46, 46, 0.7);
  --color-secondary-alpha-80: rgba(46, 46, 46, 0.8);
  --color-secondary-alpha-90: rgba(46, 46, 46, 0.9);

  /* Semantic colours — Dracula-inspired, no purple tint on surfaces */
  --color-red:    #ff5555;
  --color-orange: #ffb86c;
  --color-yellow: #f1fa8c;
  --color-olive:  #50fa7b;
  --color-green:  #50fa7b;
  --color-teal:   #8be9fd;
  --color-blue:   #6272a4;
  --color-violet: #bd93f9;
  --color-purple: #bd93f9;
  --color-pink:   #ff79c6;
  --color-brown:  #ffb86c;
  --color-grey:   #888888;
  --color-black:  #141414;

  --color-red-light:    #ff7777;
  --color-orange-light: #ffc98f;
  --color-yellow-light: #f5fc9f;
  --color-green-light:  #7afba0;
  --color-olive-light:  #7afba0;
  --color-teal-light:   #a4eefe;
  --color-blue-light:   #7d8fb8;
  --color-violet-light: #caaffc;
  --color-purple-light: #caaffc;
  --color-pink-light:   #ff9fd8;
  --color-brown-light:  #ffc98f;
  --color-grey-light:   #aaaaaa;
  --color-black-light:  #1a1a1a;
  --color-red-dark-1:   #ff7777;
  --color-orange-dark-1:#ffc98f;
  --color-yellow-dark-1:#f5fc9f;
  --color-green-dark-1: #7afba0;
  --color-olive-dark-1: #7afba0;
  --color-teal-dark-1:  #a4eefe;
  --color-blue-dark-1:  #7d8fb8;
  --color-violet-dark-1:#caaffc;
  --color-purple-dark-1:#caaffc;
  --color-pink-dark-1:  #ff9fd8;
  --color-brown-dark-1: #ffc98f;
  --color-black-dark-1: #0d0d0d;
  --color-red-dark-2:   #ff3333;
  --color-orange-dark-2:#ffa044;
  --color-yellow-dark-2:#eef860;
  --color-green-dark-2: #28f75a;
  --color-olive-dark-2: #28f75a;
  --color-teal-dark-2:  #61e1fb;
  --color-blue-dark-2:  #4a5e98;
  --color-violet-dark-2:#9e6ff6;
  --color-purple-dark-2:#9e6ff6;
  --color-pink-dark-2:  #ff4db4;
  --color-brown-dark-2: #ff9044;

  --color-gold: #f1fa8c;
  --color-white: #f0f0f0;
  --color-diff-removed-word-bg: rgba(255, 85, 85, 0.2);
  --color-diff-added-word-bg:   rgba(80, 250, 123, 0.2);
  --color-diff-removed-row-bg:  rgba(255, 85, 85, 0.08);
  --color-diff-moved-row-bg:    rgba(241, 250, 140, 0.08);
  --color-diff-added-row-bg:    rgba(80, 250, 123, 0.08);
  --color-diff-removed-row-border: rgba(255, 85, 85, 0.1);
  --color-diff-moved-row-border:   rgba(241, 250, 140, 0.1);
  --color-diff-added-row-border:   rgba(80, 250, 123, 0.1);
  --color-diff-inactive: #555555;

  --color-error-border:    #ff5555;
  --color-error-bg:        #ff5555;
  --color-error-bg-active: #ff3333;
  --color-error-bg-hover:  #ff1111;
  --color-error-text:      #0d0d0d;
  --color-danger-bg:       rgba(255, 85, 85, 0.08);
  --color-thin-red:        #ff5555;
  --color-success-border:  #50fa7b;
  --color-success-bg:      #50fa7b;
  --color-success-text:    #0d0d0d;
  --color-warning-border:  #f1fa8c;
  --color-warning-bg:      #f1fa8c;
  --color-warning-text:    #0d0d0d;
  --color-info-border:     #444444;
  --color-info-bg:         #141414;
  --color-info-text:       #f0f0f0;

  --color-red-badge:           #ff5555;
  --color-red-badge-bg:        #1a1a1a;
  --color-red-badge-hover-bg:  #ff7777;
  --color-green-badge:         #50fa7b;
  --color-green-badge-bg:      #50fa7b;
  --color-green-badge-hover-bg:#7afba0;
  --color-yellow-badge:        #f1fa8c;
  --color-yellow-badge-bg:     #1a1a1a;
  --color-yellow-badge-hover-bg:#f5fc9f;
  --color-orange-badge:        #ffb86c;
  --color-orange-badge-bg:     #1a1a1a;
  --color-orange-badge-hover-bg:#ffc98f;
  --color-git: #ffb86c;
  --color-highlight-bg: rgba(241, 250, 140, 0.12);

  /* Surface / structural tokens — pure near-black, no tint */
  --color-body:               #0d0d0d;
  --color-box-header:         #141414;
  --color-box-body:           #1a1a1a;
  --color-box-body-highlight: #242424;
  --color-text-dark:          #888888;
  --color-text:               #f0f0f0;
  --color-text-light:         #cccccc;
  --color-text-light-1:       #cccccc;
  --color-text-light-2:       #aaaaaa;
  --color-text-light-3:       #888888;
  --color-footer:             #141414;
  --color-timeline:           #2e2e2e;
  --color-input-text:         #f0f0f0;
  --color-input-background:   #242424;
  --color-input-toggle-background: #2e2e2e;
  --color-input-border:       #3a3a3a;
  --color-input-border-hover: #8be9fd;
  --color-nav-bg:             #141414;
  --color-nav-hover-bg:       var(--color-hover);
  --color-navbar:             #141414;
  --color-navbar-transparent: rgba(20, 20, 20, 0);
  --color-light:              rgba(60, 60, 60, 0.4);
  --color-light-mimic-enabled: rgba(0,0,0,calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
  --color-light-border:       #3a3a3a;
  --color-hover:              rgba(255, 255, 255, 0.06);
  --color-active:             rgba(255, 255, 255, 0.1);
  --color-menu:               #242424;
  --color-card:               #242424;
  --color-markup-table-row:   rgba(255, 255, 255, 0.02);
  --color-markup-code-block:  rgba(255, 255, 255, 0.04);
  --color-markup-code-inline: #242424;
  --color-button:             #2e2e2e;
  --color-code-bg:            #141414;
  --color-code-sidebar-bg:    #1a1a1a;
  --color-shadow:             rgba(0, 0, 0, 0.4);
  --color-tooltip-bg:         #2e2e2e;
  --color-tooltip-text:       var(--color-text);
  --color-secondary-bg:       #2e2e2e;
  --color-text-focus:         #f0f0f0;
  --color-expand-button:      #3a3a3a;
  --color-placeholder-text:   #666666;
  --color-editor-line-highlight: var(--color-primary-light-5);
  --color-project-board-bg:   var(--color-secondary-light-2);
  --color-caret:              var(--color-text);
  --color-reaction-bg:        rgba(255, 255, 255, 0.05);
  --color-reaction-active-bg: var(--color-primary-alpha-30);
  --color-header-wrapper:     #141414;
  --color-header-wrapper-transparent: rgba(20, 20, 20, 0);
  --color-label-text:         #0d0d0d;
  --color-label-bg:           #8be9fd;
  --color-label-hover-bg:     #61e1fb;
  --color-label-active-bg:    #76e5fc;
  --color-accent:             var(--color-primary-light-1);
  --color-small-accent:       var(--color-primary-light-5);
  --color-active-line:        #2e2e2e;

  /* Console / Actions log pane */
  --color-console-bg:         #141414;
  --color-console-fg:         #f0f0f0;
  --color-console-fg-subtle:  #888888;
  --color-console-active-bg:  #1e3a4a;
  --color-console-hover-bg:   #1a2a35;

  /* jorge/forge homepage aliases */
  --jf-accent:  #8be9fd;
  --jf-surface: #1a1a1a;
  --jf-border:  #2e2e2e;
  --jf-text:    #f0f0f0;
  --jf-muted:   #888888;
  --jf-green:   #50fa7b;
  --jf-amber:   #f1fa8c;
  --jf-red:     #ff5555;
  --jf-purple:  #bd93f9;
  --jf-orange:  #ffb86c;
  --jf-teal:    #8be9fd;
  --jf-pink:    #ff79c6;
}

/* =================================================================
   BUTTON / MODAL FIXUPS
   ================================================================= */

.emoji[aria-label="check mark"], .emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"], .emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"], .emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"], .emoji[aria-label=copyright],
.emoji[aria-label=registered], .emoji[aria-label="trade mark"],
.emoji[aria-label=multiply], .emoji[aria-label=plus],
.emoji[aria-label=minus], .emoji[aria-label=divide],
.emoji[aria-label="curly loop"], .emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"], .emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"], .emoji[aria-label="musical notes"] {
  filter: invert(100%) hue-rotate(180deg);
}

.ui.ui.ui.button:not(.inverted,.basic).primary,
.ui.ui.ui.button:not(.inverted,.basic).green,
.ui.ui.ui.button:not(.inverted,.basic).red,
.ui.ui.ui.button:not(.inverted,.basic).teal,
.ui.ui.ui.label:not(.inverted,.basic).primary,
.ui.ui.ui.label:not(.inverted,.basic).green,
.ui.ui.ui.label:not(.inverted,.basic).red,
.ui.ui.ui.label:not(.inverted,.basic).teal { color: #0d0d0d; }

.ui.basic.modal { background-color: #1a1a1a; }
.ui.basic.modal, .ui.basic.modal > .header,
.ui.inverted.button { color: #f0f0f0 !important; }
.ui.sha.isSigned.isVerified .shortsha { color: #0d0d0d; }
.ui.sha.isSigned.isVerified svg.gitea-lock { fill: #0d0d0d; }
blockquote.attention-tip    { border-left-color: #50fa7b; }
blockquote.attention-warning{ border-left-color: #f1fa8c; }
svg.attention-tip,   strong.attention-tip    { color: #50fa7b; }
svg.attention-warning,strong.attention-warning { color: #f1fa8c; }
::selection { background: rgba(139, 233, 253, 0.25) !important; }

/* =================================================================
   SYNTAX HIGHLIGHTING
   ================================================================= */

.chroma .c,.chroma .c1,.chroma .ch,.chroma .cm,.chroma .cs { color: #555555; }
.chroma .cp,.chroma .cpf { color: #ff79c6; }
.chroma .dl { color: #f1fa8c; }
.chroma .gd { color: #f0f0f0; background-color: rgba(255,85,85,0.15); }
.chroma .ge { font-style: italic; }
.chroma .gh,.chroma .gu { color: #8be9fd; }
.chroma .gi { color: #f0f0f0; background-color: rgba(80,250,123,0.15); }
.chroma .go { color: #ffb86c; }
.chroma .gp { color: #666666; font-weight: bold; }
.chroma .gr,.chroma .gt { color: #ff5555; }
.chroma .gs { font-weight: bold; }
.chroma .il,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo { color: #bd93f9; }
.chroma .k,.chroma .kd,.chroma .kp,.chroma .kr { color: #ff79c6; }
.chroma .kc,.chroma .kn,.chroma .kt { color: #8be9fd; }
.chroma .n { color: #f0f0f0; }
.chroma .na { color: #50fa7b; }
.chroma .nb,.chroma .nv,.chroma .nx { color: #8be9fd; }
.chroma .nc { color: #50fa7b; }
.chroma .nd { color: #50fa7b; }
.chroma .ne { color: #ff5555; }
.chroma .nf { color: #50fa7b; }
.chroma .nl,.chroma .nn { color: #f0f0f0; }
.chroma .no { color: #bd93f9; }
.chroma .nt { color: #ff79c6; }
.chroma .o,.chroma .ow { color: #ff79c6; }
.chroma .p { color: #f0f0f0; }
.chroma .s,.chroma .s1,.chroma .s2,.chroma .sa,.chroma .sb,.chroma .sc,
.chroma .sd,.chroma .sh,.chroma .si,.chroma .ss,.chroma .sx { color: #f1fa8c; }
.chroma .se,.chroma .sr { color: #ff79c6; }
.chroma .vc,.chroma .vg,.chroma .vi { color: #8be9fd; }
.chroma .w { color: #3a3a3a; }

/* CodeMirror */
.CodeMirror .cm-keyword   { color: #ff79c6; }
.CodeMirror .cm-atom      { color: #bd93f9; }
.CodeMirror .cm-number    { color: #bd93f9; }
.CodeMirror .cm-string,.CodeMirror .cm-string-2 { color: #f1fa8c; }
.CodeMirror .cm-comment   { color: #555555; }
.CodeMirror .cm-variable-2 { color: #8be9fd; }
.CodeMirror .cm-variable-3 { color: #50fa7b; }
.CodeMirror .cm-url,.CodeMirror .cm-link { color: #8be9fd; }
.CodeMirror .cm-error     { color: #ff5555; }
.CodeMirror .cm-tag       { color: #ff79c6; }
.CodeMirror .cm-attribute { color: #50fa7b; }
.CodeMirror .cm-meta      { color: #ff79c6; }
.CodeMirror .cm-def       { color: #50fa7b; }
.CodeMirror .cm-quote     { color: #f1fa8c; }

/* =================================================================
   ISSUE / PR / CI STATE ICONS
   ================================================================= */

svg.octicon-issue-opened            { color: #50fa7b  !important; }
svg.octicon-issue-closed            { color: #ff5555  !important; }
svg.octicon-git-pull-request        { color: #50fa7b  !important; }
svg.octicon-git-merge               { color: #bd93f9  !important; }
svg.octicon-git-pull-request-closed { color: #ff5555  !important; }
svg.octicon-git-pull-request-draft  { color: #888888  !important; }
svg.octicon-check-circle-fill,
svg.octicon-check-circle            { color: #50fa7b  !important; }
svg.octicon-x-circle-fill,
svg.octicon-x-circle                { color: #ff5555  !important; }
svg.octicon-dot-fill,
svg.octicon-hourglass               { color: #f1fa8c  !important; }
svg.octicon-skip-fill               { color: #888888  !important; }
svg.octicon-check                   { color: #50fa7b  !important; }
svg.octicon-star                    { color: #f1fa8c  !important; }
svg.octicon-repo-forked             { color: #8be9fd  !important; }

.commit-status.success  { color: #50fa7b !important; }
.commit-status.failure,
.commit-status.error    { color: #ff5555 !important; }
.commit-status.pending,
.commit-status.warning  { color: #f1fa8c !important; }

.text-green  { color: #50fa7b !important; }
.text-red    { color: #ff5555 !important; }
.text-yellow { color: #f1fa8c !important; }
.text-purple { color: #bd93f9 !important; }
.text-teal   { color: #8be9fd !important; }

.notification_count,
.item .notification_count,
#navbar .notification_count {
  background-color: #ffb86c !important;
  border-color: transparent !important;
  color: #0d0d0d !important;
}

.ui.progress .bar,
.milestone-progress-bar { background-color: #50fa7b !important; }

/* =================================================================
   BODY
   ================================================================= */

body { background: #0d0d0d; }

/* =================================================================
   HOMEPAGE — jorge/forge
   ================================================================= */

.jf-hero {
  border-bottom: 1px solid var(--jf-border);
  padding: 3.35rem 2rem 2.15rem;
  text-align: center;
}
.jf-wordmark {
  font-family: var(--fonts-monospace);
  font-size: clamp(3.9rem, 10.8vw, 6.8rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 0.95;
  color: var(--jf-text);
}
.jf-wordmark .jf-slash { color: var(--jf-accent); }
.jf-eyebrow {
  font-family: var(--fonts-monospace);
  font-size: 0.8rem;
  color: var(--jf-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.jf-tagline {
  margin-top: 0.8rem;
  font-size: 0.95rem;
  color: var(--color-text-light);
}
.jf-cards {
  max-width: 1120px;
  margin: 1.05rem auto 1.3rem;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 980px) { .jf-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .jf-cards { grid-template-columns: 1fr; } }

.jf-card {
  border: 1px solid var(--jf-border);
  border-radius: 6px;
  padding: 1.2rem 1.35rem;
  background: var(--jf-surface);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.jf-card:hover { transform: translateY(-2px); }
.jf-card.jf-card-repos:hover  { border-color: rgba(139,233,253,0.65); box-shadow: 0 0 18px rgba(139,233,253,0.12); }
.jf-card.jf-card-auto:hover   { border-color: rgba(80,250,123,0.65);  box-shadow: 0 0 18px rgba(80,250,123,0.12); }
.jf-card.jf-card-runs:hover   { border-color: rgba(241,250,140,0.65); box-shadow: 0 0 18px rgba(241,250,140,0.12); }
.jf-card.jf-card-peak:hover   { border-color: rgba(255,85,85,0.65);   box-shadow: 0 0 18px rgba(255,85,85,0.12); }
.jf-card.jf-card-rhythm:hover { border-color: rgba(255,184,108,0.65); box-shadow: 0 0 18px rgba(255,184,108,0.12); }
.jf-card.jf-card-prs:hover    { border-color: rgba(189,147,249,0.65); box-shadow: 0 0 18px rgba(189,147,249,0.12); }

.jf-card h3 {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--jf-text);
}
.jf-badge {
  width: 1.9rem; height: 1.9rem;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 0.4rem; font-size: 1.15rem; line-height: 1;
  border: 1px solid transparent;
}
.jf-badge.repos  { background: rgba(139,233,253,0.12); border-color: rgba(139,233,253,0.3); }
.jf-badge.auto   { background: rgba(80,250,123,0.12);  border-color: rgba(80,250,123,0.3); }
.jf-badge.runs   { background: rgba(241,250,140,0.12); border-color: rgba(241,250,140,0.32); }
.jf-badge.peak   { background: rgba(255,85,85,0.12);   border-color: rgba(255,85,85,0.3); }
.jf-badge.rhythm { background: rgba(255,184,108,0.12); border-color: rgba(255,184,108,0.3); }
.jf-badge.prs    { background: rgba(189,147,249,0.12); border-color: rgba(189,147,249,0.3); font-size: 1.45rem; }

.jf-card p {
  margin: 0; font-size: 0.875rem; line-height: 1.65;
  color: var(--color-text-light);
}
.jf-card a { color: var(--jf-accent); }

.jf-stat-num {
  font-family: var(--fonts-monospace);
  font-size: 1.9rem; font-weight: 700;
  display: block; margin: 0.35rem 0 0.5rem; line-height: 1;
}
.jf-card-repos  .jf-stat-num { color: #8be9fd; }
.jf-card-auto   .jf-stat-num { color: #50fa7b; }
.jf-card-runs   .jf-stat-num { color: #f1fa8c; }
.jf-card-peak   .jf-stat-num { color: #ff5555; }
.jf-card-rhythm .jf-stat-num { color: #ffb86c; }
.jf-card-prs    .jf-stat-num { color: #bd93f9; }

@keyframes jf-signin-glow {
  0%, 100% { box-shadow: 0 0 6px rgba(139,233,253,0.1); }
  50%       { box-shadow: 0 0 16px rgba(139,233,253,0.3); }
}

/* hide "Powered by Forgejo" footer on all authenticated pages */
.page-footer {
  display: none !important;
}
