/* Pandor Git (Forgejo at pandor.pl/git) — the Niveus look of pandor.pl.
   Forgejo's own dark theme provides the layout; this file maps its colour variables to the Niveus tokens the
   website already serves (so the forge follows any change to the site's palette, fonts or radii) and gives lists,
   forms and the file table Niveus surfaces.
   Installed to /opt/forgejo/data/gitea/public/assets/css/theme-pandor.css by deploy/git/install-git.sh. */
@import url("./theme-forgejo-dark.css");
@import url("/web/shared/niveus/niveus/fonts.css");
@import url("/web/shared/niveus/niveus/tokens/color.css");
@import url("/web/shared/niveus/niveus/tokens/typography.css");
@import url("/web/shared/niveus/niveus/tokens/spacing.css");
@import url("/web/shared/niveus/niveus/tokens/radius.css");
@import url("/web/shared/niveus/niveus/tokens/elevation.css");
/* The semantic colours are light-dark() pairs: both sides must exist, or every colour resolves to nothing. */
@import url("/web/shared/niveus/niveus/themes/light.css");
@import url("/web/shared/niveus/niveus/themes/dark.css");

:root {
  color-scheme: dark;
  --nv-brand: #0891b2;
  --brand-2: #4338ca;
  --is-dark-theme: true;

  --fonts-proportional: var(--nv-font-family-sans);
  --fonts-monospace: var(--nv-font-family-mono);
  --border-radius: var(--nv-radius-md);
  --border-radius-medium: var(--nv-radius-lg);

  --color-primary: var(--nv-color-accent);
  --color-primary-contrast: var(--nv-color-on-accent);
  --color-primary-hover: var(--nv-color-accent-hover);
  --color-primary-active: var(--nv-color-accent-active);
  --color-primary-dark-1: var(--nv-color-accent-hover);
  --color-primary-dark-2: var(--nv-color-accent-active);
  --color-primary-light-1: var(--nv-color-accent-text);
  --color-primary-light-2: var(--nv-color-accent-text);
  --color-primary-alpha-10: color-mix(in srgb, var(--nv-color-accent) 10%, transparent);
  --color-primary-alpha-20: color-mix(in srgb, var(--nv-color-accent) 20%, transparent);
  --color-primary-alpha-30: color-mix(in srgb, var(--nv-color-accent) 30%, transparent);
  --color-primary-alpha-40: color-mix(in srgb, var(--nv-color-accent) 40%, transparent);
  --color-primary-alpha-50: color-mix(in srgb, var(--nv-color-accent) 50%, transparent);
  --color-accent: var(--nv-color-accent);
  --color-small-accent: color-mix(in srgb, var(--nv-color-accent) 25%, transparent);

  --color-body: var(--nv-color-background);
  --color-box-body: var(--nv-color-surface);
  --color-box-body-highlight: var(--nv-color-surface-elevated);
  --color-box-header: var(--nv-color-surface-inset);
  --color-header-wrapper: transparent;
  --color-nav-bg: color-mix(in srgb, var(--nv-color-background) 80%, transparent);
  --color-nav-hover-bg: var(--nv-color-surface);
  --color-secondary-nav-bg: var(--nv-color-surface-inset);
  --color-menu: var(--nv-color-surface-elevated);
  --color-card: var(--nv-color-surface);
  --color-input-background: var(--nv-color-surface-inset);
  --color-input-border: var(--nv-color-border);
  --color-input-border-hover: var(--nv-color-border-strong);
  --color-input-text: var(--nv-color-text-primary);
  --color-light: color-mix(in srgb, var(--nv-color-surface) 60%, transparent);
  --color-hover: color-mix(in srgb, var(--nv-color-text-primary) 5%, transparent);
  --color-active: color-mix(in srgb, var(--nv-color-text-primary) 9%, transparent);
  --color-markup-table-row: color-mix(in srgb, var(--nv-color-text-primary) 3%, transparent);
  --color-markup-code-block: var(--nv-color-surface-inset);
  --color-markup-code-inline: var(--nv-color-surface-inset);
  --color-code-bg: var(--nv-color-surface-inset);
  --color-footer: transparent;
  --color-timeline: var(--nv-color-border);
  --color-label-bg: var(--nv-color-surface-elevated);
  --color-button: var(--nv-color-surface-elevated);

  --color-text: var(--nv-color-text-primary);
  --color-text-dark: var(--nv-color-text-primary);
  --color-text-light: var(--nv-color-text-secondary);
  --color-text-light-1: var(--nv-color-text-secondary);
  --color-text-light-2: var(--nv-color-text-tertiary);
  --color-text-light-3: var(--nv-color-text-tertiary);
  --color-placeholder-text: var(--nv-color-text-tertiary);
  --color-secondary: var(--nv-color-border);
  --color-secondary-dark-1: var(--nv-color-border-strong);
  --color-secondary-dark-2: var(--nv-color-border-strong);
  --color-secondary-alpha-50: color-mix(in srgb, var(--nv-color-border) 50%, transparent);
  --color-light-border: var(--nv-color-border-subtle);

  --color-green: var(--nv-color-success);
  --color-red: var(--nv-color-danger);
  --color-yellow: var(--nv-color-warning);
  --color-orange: #f97316;
  --color-purple: var(--brand-2);
}

body { background-color: var(--nv-color-background); }
/* The faint teal-and-indigo glow at the top of pandor.pl. */
body::before {
  content: ""; position: fixed; inset: 0 0 auto; block-size: 28rem; pointer-events: none; z-index: -1;
  background: radial-gradient(60rem 22rem at 15% -6rem, color-mix(in srgb, var(--nv-brand) 14%, transparent), transparent 70%),
              radial-gradient(50rem 20rem at 90% -8rem, color-mix(in srgb, var(--brand-2) 12%, transparent), transparent 70%);
}
#navbar { backdrop-filter: blur(14px); border-block-end: 1px solid var(--nv-color-border-subtle); }
.page-footer { border-block-start: 1px solid var(--nv-color-border-subtle); color: var(--nv-color-text-tertiary); }

/* Surfaces: segments, menus and the boxes around the file table are Niveus cards. */
.ui.segment, .ui.attached.segment, .ui.attached.header, .ui.table, #repo-files-table, .repository .diff-file-box, .ui.menu:not(.secondary) {
  border-color: var(--nv-color-border-subtle);
}
.ui.segment:not(.attached), .ui.menu:not(.secondary):not(.attached), .ui.cards > .card, .ui.card, #repo-files-table { border-radius: var(--nv-radius-lg); }
.ui.attached.header:first-child, .ui.top.attached.header { border-radius: var(--nv-radius-lg) var(--nv-radius-lg) 0 0; }
.ui.bottom.attached.segment, .ui.attached.segment:last-child { border-radius: 0 0 var(--nv-radius-lg) var(--nv-radius-lg); }
.ui.segment, .ui.attached.segment, #repo-files-table { box-shadow: var(--nv-elevation-1); }
#repo-files-table .repo-file-item, #repo-files-table .repo-file-line { border-color: var(--nv-color-border-subtle); }

/* Repository, user and organisation lists: one card per entry instead of rows floating on the page. */
.flex-list > .flex-item {
  padding: var(--nv-space-4) var(--nv-space-5); margin-block-end: var(--nv-space-3);
  border: 1px solid var(--nv-color-border-subtle); border-radius: var(--nv-radius-lg);
  background-color: var(--nv-color-surface); box-shadow: var(--nv-elevation-1);
  transition: border-color 0.15s, transform 0.15s;
}
.flex-list > .flex-item + .flex-item { border-block-start: 1px solid var(--nv-color-border-subtle); }
.flex-list > .flex-item:hover { border-color: color-mix(in srgb, var(--nv-color-accent) 45%, var(--nv-color-border)); transform: translateY(-1px); }
.flex-item-title a { font-weight: 600; }

/* Sign-in and other single forms: centred on a card. */
.page-content.user.signin .ui.container, .page-content.user.link-account .ui.container { max-inline-size: 30rem; }
.page-content.user.signin .ui.attached.segment, .page-content.user.signin .ui.attached.header { background-color: var(--nv-color-surface); }

/* Controls: wells for fields, bevelled keys for buttons. */
input:not([type="checkbox"]):not([type="radio"]), textarea, .ui.input > input, .ui.form input:not([type]), .ui.form input[type="text"], .ui.form input[type="password"], .ui.selection.dropdown {
  border-radius: var(--nv-radius-md) !important;
  box-shadow: inset 0 1px 2px rgb(0 0 0 / 0.35);
}
input:focus, textarea:focus, .ui.form input:focus { border-color: var(--nv-color-accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv-color-accent) 25%, transparent) !important; }
.ui.button { border-radius: var(--nv-radius-md); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.06), var(--nv-elevation-1); }
.ui.primary.button, .ui.primary.buttons .button {
  background: linear-gradient(180deg, var(--nv-color-accent-hover), var(--nv-color-accent));
  color: var(--nv-color-on-accent);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.25), var(--nv-elevation-1);
}
.ui.label, .ui.basic.label { border-radius: var(--nv-radius-full); }
.ui.tabular.menu .active.item, .ui.secondary.pointing.menu .active.item { border-color: var(--nv-color-accent); color: var(--nv-color-text-primary); }
.repository .repo-header .repo-title, .ui.header, h1, h2, h3 { letter-spacing: -0.01em; }
.repository .repo-header .flex-text-block > .ui.basic.label { font-family: var(--nv-font-family-mono); }
.markup { font-size: 15px; line-height: 1.65; }
/* "owner / name": the owner stays quiet, the repository name carries the accent. */
.flex-item-title a:first-child:not(:last-child), .repo-header .repo-title a:first-child { color: var(--nv-color-text-secondary); font-weight: 500; }
