@import "./theme-forgejo-dark.css";

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

:root {
  color-scheme: dark;

  /* Primary ramps stay bright enough for links and dark button lettering. */
  --color-primary: #5B9BFF;
  --color-primary-contrast: #031026;
  --color-primary-dark-1: #5999FD;
  --color-primary-dark-2: #5797FB;
  --color-primary-dark-3: #5595F9;
  --color-primary-dark-4: #5393F7;
  --color-primary-dark-5: #5191F5;
  --color-primary-dark-6: #4F8FF3;
  --color-primary-dark-7: #4D8DF1;
  --color-primary-light-1: #6BA5FF;
  --color-primary-light-2: #7BAFFF;
  --color-primary-light-3: #8BB9FF;
  --color-primary-light-4: #9BC3FF;
  --color-primary-light-5: #ABCDFF;
  --color-primary-light-6: #BBD7FF;
  --color-primary-light-7: #CBE1FF;
  --color-primary-alpha-10: rgba(91, 155, 255, .1);
  --color-primary-alpha-20: rgba(91, 155, 255, .2);
  --color-primary-alpha-30: rgba(91, 155, 255, .3);
  --color-primary-alpha-40: rgba(91, 155, 255, .4);
  --color-primary-alpha-50: rgba(91, 155, 255, .5);
  --color-primary-alpha-60: rgba(91, 155, 255, .6);
  --color-primary-alpha-70: rgba(91, 155, 255, .7);
  --color-primary-alpha-80: rgba(91, 155, 255, .8);
  --color-primary-alpha-90: rgba(91, 155, 255, .9);
  --color-accent: #38D9FF;

  /* Forgejo text utilities use these base/light colors directly on dark surfaces.
     Solid colored controls need dark contrast text with this brighter palette. */
  --color-red: #FF7A8A;
  --color-red-light: #FF9AA6;
  --color-red-contrast: #031026;
  --color-orange: #FFC266;
  --color-orange-light: #FFD08A;
  --color-orange-contrast: #031026;
  --color-yellow: #FFE08A;
  --color-yellow-light: #FFEAA8;
  --color-yellow-contrast: #031026;
  --color-olive: #C1D66B;
  --color-olive-light: #D5E593;
  --color-olive-contrast: #031026;
  --color-green: #4ADE9A;
  --color-green-light: #80E8B6;
  --color-green-contrast: #031026;
  --color-teal: #38D9FF;
  --color-teal-light: #7AE7FF;
  --color-teal-contrast: #031026;
  --color-blue: #5B9BFF;
  --color-blue-light: #8DBAFF;
  --color-blue-contrast: #031026;
  --color-violet: #B6A0FF;
  --color-violet-light: #CDBEFF;
  --color-violet-contrast: #031026;
  --color-purple: #D69CFF;
  --color-purple-light: #E4BEFF;
  --color-purple-contrast: #031026;
  --color-pink: #FF94CE;
  --color-pink-light: #FFB5DD;
  --color-pink-contrast: #031026;
  --color-brown: #D6AB85;
  --color-brown-light: #E5C6AA;
  --color-brown-contrast: #031026;
  --color-black: #9AA9CC;
  --color-black-light: #B8C5E0;
  --color-black-contrast: #031026;
  --color-grey: #9AA9CC;
  --color-grey-light: #B8C5E0;
  --color-grey-contrast: #031026;

  /* Opaque portal/admin surfaces keep text contrast independent of layering. */
  --color-body: #04060D;
  --color-box-body: #0B1226;
  --color-box-header: #111C38;
  --color-card: #0B1226;
  --color-menu: #0B1226;
  --color-nav-bg: #04060D;
  --color-header-bar: #0B1226;
  --color-footer: #04060D;
  --color-text: #E8EEFF;
  --color-text-dark: #E8EEFF;
  --color-text-dark-1: #E8EEFF;
  --color-text-dark-2: #E8EEFF;
  --color-text-dark-3: #E8EEFF;
  --color-text-light: #9AA9CC;
  --color-text-light-1: #9AA9CC;
  --color-text-light-2: #9AA9CC;
  --color-text-light-3: #9AA9CC;
  --color-input-text: #E8EEFF;
  --color-input-background: #04060D;
  --color-input-border: #536C96;
  --color-input-border-hover: #5B9BFF;
  --color-button: #111C38;
  --color-hover: #15213C;
  --color-active: #18243C;

  /* Secondary borders/overlays; retain light lettering on secondary controls. */
  --color-secondary: rgba(91, 155, 255, .18);
  --color-secondary-contrast: #E8EEFF;
  --color-secondary-dark-1: rgba(91, 155, 255, .22);
  --color-secondary-dark-2: rgba(91, 155, 255, .26);
  --color-secondary-dark-3: rgba(91, 155, 255, .30);
  --color-secondary-dark-4: rgba(91, 155, 255, .34);
  --color-secondary-dark-5: rgba(91, 155, 255, .38);
  --color-secondary-dark-6: rgba(91, 155, 255, .42);
  --color-secondary-dark-7: rgba(91, 155, 255, .46);
  --color-secondary-dark-8: rgba(91, 155, 255, .50);
  --color-secondary-dark-9: rgba(91, 155, 255, .54);
  --color-secondary-dark-10: rgba(91, 155, 255, .58);
  --color-secondary-dark-11: rgba(91, 155, 255, .62);
  --color-secondary-dark-12: rgba(91, 155, 255, .66);
  --color-secondary-dark-13: rgba(91, 155, 255, .70);
  --color-secondary-light-1: rgba(91, 155, 255, .14);
  --color-secondary-light-2: rgba(91, 155, 255, .10);
  --color-secondary-light-3: rgba(91, 155, 255, .06);
  --color-secondary-light-4: rgba(91, 155, 255, .03);
  --color-secondary-alpha-10: rgba(91, 155, 255, .1);
  --color-secondary-alpha-20: rgba(91, 155, 255, .2);
  --color-secondary-alpha-30: rgba(91, 155, 255, .3);
  --color-secondary-alpha-40: rgba(91, 155, 255, .4);
  --color-secondary-alpha-50: rgba(91, 155, 255, .5);
  --color-secondary-alpha-60: rgba(91, 155, 255, .6);
  --color-secondary-alpha-70: rgba(91, 155, 255, .7);
  --color-secondary-alpha-80: rgba(91, 155, 255, .8);
  --color-secondary-alpha-90: rgba(91, 155, 255, .9);

  /* Code, markup and Actions logs; unused compatibility aliases are harmless. */
  --color-code-bg: #080F20;
  --color-code-text: #E8EEFF;
  --color-markup-code-block: #080F20;
  --color-markup-code-inline: #111C38;
  --color-console-bg: #02040A;
  --color-console-fg: #CFE3FF;

  /* Diff rows/words differ in luminance as well as hue, including in grayscale. */
  --color-diff-added-row-bg: #102C24;
  --color-diff-added-row-border: #4ADE9A;
  --color-diff-added-word-bg: #21513A;
  --color-diff-added-linenum-bg: #173C2D;
  --color-diff-added-linenum-text: #BDDCCA;
  --color-diff-removed-row-bg: #572E38;
  --color-diff-removed-row-border: #FF7A8A;
  --color-diff-removed-word-bg: #945466;
  --color-diff-removed-linenum-bg: #663D48;
  --color-diff-removed-linenum-text: #FFCAD1;
  --color-diff-inactive: #0B1226;

  /* Semantic messages use the admin palette with opaque, readable surfaces. */
  --color-success: #4ADE9A;
  --color-success-bg: #102C24;
  --color-success-border: #33805E;
  --color-success-text: #4ADE9A;
  --color-error: #FF7A8A;
  --color-error-bg: #38202C;
  --color-error-border: #B85870;
  --color-error-text: #FF7A8A;
  --color-warning: #FFC266;
  --color-warning-bg: #322719;
  --color-warning-border: #99743D;
  --color-warning-text: #FFC266;

  /* Local decoration tokens, also read by the offline contrast test. */
  --aeterflow-gradient-start: #4D8DFF;
  --aeterflow-gradient-end: #22D3EE;
}

/* Forgejo solid labels can hard-code white text instead of using *-contrast.
   Pin both colors, including hover, so dark text always has a bright background.
   Basic/outline labels keep their transparent background and colored text. */
.ui.red.label:not(.basic),
.ui.red.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-red) !important;
  color: var(--color-red-contrast) !important;
}
.ui.orange.label:not(.basic),
.ui.orange.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-orange) !important;
  color: var(--color-orange-contrast) !important;
}
.ui.yellow.label:not(.basic),
.ui.yellow.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-yellow) !important;
  color: var(--color-yellow-contrast) !important;
}
.ui.olive.label:not(.basic),
.ui.olive.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-olive) !important;
  color: var(--color-olive-contrast) !important;
}
.ui.green.label:not(.basic),
.ui.green.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-green) !important;
  color: var(--color-green-contrast) !important;
}
.ui.teal.label:not(.basic),
.ui.teal.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-teal) !important;
  color: var(--color-teal-contrast) !important;
}
.ui.blue.label:not(.basic),
.ui.blue.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-blue) !important;
  color: var(--color-blue-contrast) !important;
}
.ui.violet.label:not(.basic),
.ui.violet.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-violet) !important;
  color: var(--color-violet-contrast) !important;
}
.ui.purple.label:not(.basic),
.ui.purple.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-purple) !important;
  color: var(--color-purple-contrast) !important;
}
.ui.pink.label:not(.basic),
.ui.pink.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-pink) !important;
  color: var(--color-pink-contrast) !important;
}
.ui.brown.label:not(.basic),
.ui.brown.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-brown) !important;
  color: var(--color-brown-contrast) !important;
}
.ui.black.label:not(.basic),
.ui.black.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-black) !important;
  color: var(--color-black-contrast) !important;
}
.ui.grey.label:not(.basic),
.ui.grey.labels:not(.basic) .label:not(.basic) {
  background-color: var(--color-grey) !important;
  color: var(--color-grey-contrast) !important;
}

/* Background paint only: preserve the navbar's dimensions and positioning. */
#navbar {
  background-image: linear-gradient(90deg, var(--aeterflow-gradient-start), var(--aeterflow-gradient-end));
  background-size: 100% 1px;
  background-position: bottom;
  background-repeat: no-repeat;
}

.ui.primary.button,
.ui.primary.buttons .button {
  background: linear-gradient(90deg, var(--aeterflow-gradient-start), var(--aeterflow-gradient-end)) !important;
  color: var(--color-primary-contrast) !important;
}

.ui.primary.button:hover,
.ui.primary.button:focus-visible,
.ui.primary.buttons .button:hover,
.ui.primary.buttons .button:focus-visible {
  box-shadow: 0 0 10px rgba(56, 217, 255, .18);
}

:focus-visible,
.ui.input > input:focus-visible,
.ui.form input:focus-visible,
.ui.form textarea:focus-visible,
.ui.dropdown:focus-visible {
  outline: 2px solid var(--color-accent) !important;
  outline-offset: 2px;
}

.ui.card,
.ui.cards > .card,
.ui.segment,
.ui.segments {
  border-color: rgba(91, 155, 255, .18);
  /* Cards can use a shadow border; keep the rim without changing dimensions. */
  box-shadow: 0 0 0 1px rgba(91, 155, 255, .18), 0 4px 12px -8px rgba(30, 90, 255, .28);
}

/* Only short hover/focus paint transitions; no animation or layout changes. */
@media (prefers-reduced-motion: no-preference) {
  .ui.primary.button,
  .ui.primary.buttons .button {
    transition: box-shadow 120ms ease-out;
  }
}
