/* depotra.in AMOLED theme — Serenity-inspired palette on pure black */
/* Privacy: no external fonts. No @import from Google or other CDNs - system stack only. */
:root {
  --fonts-proportional: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  --fonts-monospace: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace !important;
  --fonts-emoji: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  --fonts-override: unset !important;

  /* AMOLED-Serenity base scale (pure-black depotra variant) */
  --color-base-00: #000000;
  --color-base-05: #080808;
  --color-base-10: #111111;
  --color-base-20: #1a1a1a;
  --color-base-25: #222222;
  --color-base-30: #2e2e2e;
  --color-base-35: #363636;
  --color-base-40: #484848;
  --color-base-50: #666666;
  --color-base-60: #999999;
  --color-base-70: #bbbbbb;
  --color-base-80: #dddddd;
  --color-base-90: #eeeeee;
  --color-base-100: #ffffff;

  /* Backgrounds */
  --background-primary: var(--color-base-00);
  --background-secondary: var(--color-base-05);
  --background-elevated: var(--color-base-10);
  --background-hover: var(--color-base-25);

  /* Subtle Serenity accents (desaturated, no rainbow headings) */
  --accent-green_x: 130, 160, 115;
  --accent-green: rgb(var(--accent-green_x));
  --accent-red_x: 175, 95, 100;
  --accent-red: rgb(var(--accent-red_x));
  --accent-blue_x: 110, 155, 195;
  --accent-blue: rgb(var(--accent-blue_x));
  --accent-frost_x: 120, 165, 165;
  --accent-frost: rgb(var(--accent-frost_x));
  --accent-muted_x: 140, 140, 150;
  --accent-muted: rgb(var(--accent-muted_x));

  /* Text */
  --text-primary: var(--color-base-80);
  --text-secondary: var(--color-base-60);
  --text-muted: var(--color-base-50);
  --text-error: var(--accent-red);
  --text-success: var(--accent-green);
  --text-link: #7eb8ff;

  /* Focus & selection */
  --focus-border: var(--color-base-40);
  --selection-background: rgba(var(--accent-green_x), 0.25);

  /* Forgejo compat mapping */
  --color-body: var(--color-base-00);
  --color-box-body: var(--color-base-10);
  --color-box-header: var(--color-base-10);
  --color-menu: var(--color-base-00);
  --color-input-background: var(--color-base-05);
  --color-secondary-bg: var(--color-base-05);
  --color-secondary-nav: var(--color-base-00);
  --color-hover: var(--color-base-25);
  --color-active: var(--color-base-20);
  --color-text: var(--text-primary);
  --color-text-light: var(--text-muted);
  --color-border: var(--color-base-10);
  --color-border-light: var(--color-base-30);
}

/* ── Base surfaces ───────────────────────────────────────── */
html,
body {
  background-color: var(--background-primary) !important;
  color: var(--text-primary) !important;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  line-height: 1.6;
}

::selection {
  background: var(--selection-background);
  color: var(--color-base-100);
}

/* No Google Fonts - system UI stack only (monospace preserved for code) */
body *:not(code):not(pre):not(kbd):not(samp):not(.code):not(.CodeMirror):not(.cm-editor):not(.cm-line) {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.ui.container,
.page-content,
.repository,
.dashboard,
.navbar,
footer,
.ui.menu,
.ui.segment,
.ui.card,
.ui.message,
.ui.table,
.ui.form input,
.ui.form textarea,
.ui.form select,
.ui.dropdown .menu,
.ui.modal,
.ui.attached.segment,
.ui.list,
.ui.items > .item,
.ui.stacked.segment,
.ui.top.attached.segment,
.ui.bottom.attached.segment,
.ui.tab.segment,
.ui.vertical.menu,
.ui.horizontal.segments,
.ui.grid > .row,
.ui.grid > .column,
.full.height,
#navbar,
#navbar .item,
#navbar .menu,
.repo-header,
.repo-buttons,
.repo-view,
.file-view,
.diff-file-box,
.diff-file-header,
.code-view,
.commit-list,
.issue-list,
.pull-list,
.milestone-list,
.project-list,
.org-teams,
.user.profile,
.settings,
.admin,
.explore,
.install,
.ui.feed > .event,
.ui.comments .comment,
.ui.thread,
.ui.progress,
.ui.label,
.ui.basic.label,
.ui.floating.label,
.ui.breadcrumb,
.ui.steps,
.ui.accordion,
.ui.divider,
.ui.placeholder,
.ui.search > .results,
.ui.search > .prompt,
.ui.action.input > input,
.ui.labeled.input > input,
.ui.selection.dropdown,
.ui.multiple.selection.dropdown,
.ui.fluid.selection.dropdown,
.ui.toggle.checkbox label::before,
.ui.checkbox label::before,
.ui.radio.checkbox label::before,
.ui.pagination.menu,
.ui.pagination.menu .item,
.ui.vertical.tabular.menu .item,
.ui.tabular.menu .item,
.ui.secondary.menu .item,
.ui.pointing.secondary.menu .item,
.ui.inverted.menu,
.ui.inverted.segment,
.ui.inverted.button,
.ui.inverted.header,
.ui.inverted.dimmer,
.ui.inverted.dimmer > .content,
.ui.inverted.list .item,
.ui.inverted.list .item .header,
.ui.inverted.list .item .description,
.ui.inverted.statistic .value,
.ui.inverted.statistic .label,
.ui.inverted.table,
.ui.inverted.table thead th,
.ui.inverted.table tbody tr,
.ui.inverted.table tfoot th,
.ui.inverted.table tfoot tr,
.ui.inverted.table tfoot tr > th,
.ui.inverted.table tfoot tr > td,
.ui.inverted.table tfoot tr > th:first-child,
.ui.inverted.table tfoot tr > td:first-child,
.ui.inverted.table tfoot tr > th:last-child,
.ui.inverted.table tfoot tr > td:last-child,
.ui.inverted.table tfoot tr > th:only-child,
.ui.inverted.table tfoot tr > td:only-child,
.ui.inverted.table tfoot tr > th:not(:first-child):not(:last-child),
.ui.inverted.table tfoot tr > td:not(:first-child):not(:last-child),
.ui.inverted.table tfoot tr > th:not(:first-child),
.ui.inverted.table tfoot tr > td:not(:first-child),
.ui.inverted.table tfoot tr > th:not(:last-child),
.ui.inverted.table tfoot tr > td:not(:last-child),
.ui.inverted.table tfoot tr > th:first-child:not(:last-child),
.ui.inverted.table tfoot tr > td:first-child:not(:last-child),
.ui.inverted.table tfoot tr > th:last-child:not(:first-child),
.ui.inverted.table tfoot tr > td:last-child:not(:first-child),
.ui.inverted.table tfoot tr > th:only-child,
.ui.inverted.table tfoot tr > td:only-child,
.ui.inverted.table tfoot tr > th:not(:first-child):not(:last-child),
.ui.inverted.table tfoot tr > td:not(:first-child):not(:last-child),
.ui.inverted.table tfoot tr > th:not(:first-child),
.ui.inverted.table tfoot tr > td:not(:first-child),
.ui.inverted.table tfoot tr > th:not(:last-child),
.ui.inverted.table tfoot tr > td:not(:last-child),
.ui.inverted.table tfoot tr > th:first-child:not(:last-child),
.ui.inverted.table tfoot tr > td:first-child:not(:last-child),
.ui.inverted.table tfoot tr > th:last-child:not(:first-child),
.ui.inverted.table tfoot tr > td:last-child:not(:first-child),
.ui.inverted.table tfoot tr > th:only-child,
.ui.inverted.table tfoot tr > td:only-child {
  background-color: var(--color-base-00) !important;
  border-color: var(--color-border) !important;
  color: var(--color-text);
}

.ui.segment,
.ui.card,
.ui.message,
.ui.table,
.ui.modal > .content,
.ui.modal > .header,
.ui.modal > .actions,
.ui.dropdown .menu,
.ui.form input,
.ui.form textarea,
.ui.form select,
.ui.search > .results,
.ui.feed > .event,
.ui.comments .comment,
.diff-file-box,
.diff-file-header,
.file-view,
.code-view,
.commit-list .item,
.issue-list .item,
.pull-list .item,
.ui.list .item,
.ui.items > .item,
.ui.vertical.menu .item,
.ui.tab.segment,
.ui.stacked.segment,
.ui.attached.segment,
.ui.placeholder,
.ui.progress,
.ui.label,
.ui.basic.label,
.ui.breadcrumb .section,
.ui.steps .step,
.ui.accordion .title,
.ui.accordion .content,
.ui.action.input > input,
.ui.labeled.input > input,
.ui.selection.dropdown,
.ui.multiple.selection.dropdown,
.ui.fluid.selection.dropdown,
.ui.toggle.checkbox label::before,
.ui.checkbox label::before,
.ui.radio.checkbox label::before,
.ui.pagination.menu,
.ui.pagination.menu .item,
.ui.vertical.tabular.menu .item,
.ui.tabular.menu .item,
.ui.secondary.menu .item,
.ui.pointing.secondary.menu .item,
.ui.inverted.menu,
.ui.inverted.segment,
.ui.inverted.button,
.ui.inverted.header,
.ui.inverted.dimmer,
.ui.inverted.dimmer > .content,
.ui.inverted.list .item,
.ui.inverted.list .item .header,
.ui.inverted.list .item .description,
.ui.inverted.statistic .value,
.ui.inverted.statistic .label,
.ui.inverted.table,
.ui.inverted.table thead th,
.ui.inverted.table tbody tr,
.ui.inverted.table tfoot th,
.ui.inverted.table tfoot tr,
.ui.inverted.table tfoot tr > th,
.ui.inverted.table tfoot tr > td {
  background-color: var(--color-box-body) !important;
}

.ui.menu,
.navbar,
#navbar,
footer {
  background-color: var(--color-base-00) !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--color-border) !important;
}

footer {
  border-top: 1px solid var(--color-border) !important;
}

footer .ui.container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

footer .ui.left,
footer .ui.right {
  float: none !important;
}

footer .footer-links,
footer .ui.right.footer-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem 0.5rem;
}

footer .footer-link,
footer .footer-links a.item,
footer .ui.right a.item,
.invite-gate-footer .footer-link {
  color: var(--text-link) !important;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

footer .footer-link:hover,
footer .footer-link:focus-visible,
footer .footer-links a.item:hover,
footer .ui.right a.item:hover,
.invite-gate-footer .footer-link:hover,
.invite-gate-footer .footer-link:focus-visible {
  color: var(--color-base-100) !important;
  text-decoration: underline;
  text-decoration-color: var(--color-base-50);
  text-underline-offset: 0.15em;
}

footer .footer-sep,
.invite-gate-footer .footer-sep,
.depot-landing .depot-footer .footer-sep,
.policy-nav .footer-sep {
  color: var(--color-base-50);
  font-size: 0.875rem;
  line-height: 1;
  user-select: none;
  pointer-events: none;
}

footer .footer-forgejo-release {
  font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace !important;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--color-base-50) !important;
  letter-spacing: 0.02em;
}

footer .footer-forgejo-release:hover,
footer .footer-forgejo-release:focus-visible {
  color: var(--color-base-60) !important;
  text-decoration-color: var(--color-base-40);
}

.invite-gate-footer {
  margin-top: 2.75rem;
  padding: 1.25rem 1rem 2rem;
  border-top: 1px solid var(--color-border);
  text-align: center;
}

.invite-gate-footer .footer-links {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
}

/* Static policy page nav (privacy.html, legal.html) */
.policy-nav {
  margin-top: 2rem;
  font-size: 0.9rem;
  color: var(--color-base-50);
}

.policy-nav a {
  color: var(--text-link) !important;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.policy-nav a:hover,
.policy-nav a:focus-visible {
  color: var(--color-base-100) !important;
  text-decoration: underline;
  text-decoration-color: var(--color-base-50);
  text-underline-offset: 0.15em;
}

/* ── Typography & links ──────────────────────────────────── */
a,
.ui.menu .item,
.ui.breadcrumb a,
.ui.list .item a,
.ui.items .item a {
  color: var(--color-base-70) !important;
}

a:hover,
.ui.menu .item:hover,
.ui.breadcrumb a:hover,
.ui.list .item a:hover {
  color: var(--color-base-100) !important;
}

h1, h2, h3, h4, h5, h6,
.ui.header {
  color: var(--color-base-90) !important;
}

.text.light,
.text.grey,
.text.muted {
  color: var(--color-text-light) !important;
}

/* ── Buttons ───────────────────────────────────────────────── */
.ui.button,
.ui.basic.button,
.ui.labeled.button,
.ui.icon.button,
.ui.floating.button,
.ui.compact.button,
.ui.mini.button,
.ui.tiny.button,
.ui.small.button,
.ui.large.button,
.ui.big.button,
.ui.huge.button,
.ui.massive.button,
.ui.primary.button,
.ui.secondary.button,
.ui.positive.button,
.ui.negative.button,
.ui.approve.button,
.ui.deny.button,
.ui.cancel.button,
.ui.toggle.buttons .button,
.ui.buttons .button {
  background-color: var(--color-base-10) !important;
  border: 1px solid var(--color-border-light) !important;
  color: var(--text-primary) !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ui.primary.button,
.ui.green.button,
.ui.positive.button,
.ui.approve.button {
  background-color: var(--color-base-20) !important;
  border-color: var(--color-base-35) !important;
  color: var(--color-base-100) !important;
}

.ui.red.button,
.ui.negative.button,
.ui.deny.button {
  background-color: rgba(var(--accent-red_x), 0.12) !important;
  border-color: rgba(var(--accent-red_x), 0.35) !important;
  color: var(--accent-red) !important;
}

.ui.button:hover,
.ui.basic.button:hover,
.ui.primary.button:hover,
.ui.green.button:hover,
.ui.positive.button:hover,
.ui.red.button:hover,
.ui.negative.button:hover {
  background-color: var(--color-hover) !important;
  color: var(--color-base-100) !important;
}

.ui.button.active,
.ui.button:active,
.ui.toggle.buttons .active.button {
  background-color: var(--color-base-30) !important;
}

.ui.disabled.button,
.ui.button:disabled {
  background-color: var(--color-base-05) !important;
  color: var(--color-base-50) !important;
  opacity: 0.6;
}

/* ── Forms & inputs ────────────────────────────────────────── */
.ui.form input:focus,
.ui.form textarea:focus,
.ui.form select:focus,
.ui.input input:focus,
.ui.selection.dropdown:focus,
.ui.selection.active.dropdown,
.ui.selection.active.dropdown .menu,
.ui.selection.active.dropdown:hover,
.ui.selection.active.dropdown:hover .menu {
  border-color: var(--focus-border) !important;
  background-color: var(--color-input-background) !important;
}

.ui.form .field > label,
.ui.form .inline.fields > label {
  color: var(--color-base-70) !important;
}

.ui.form .error.message,
.ui.error.message,
.ui.negative.message {
  background-color: rgba(var(--accent-red_x), 0.1) !important;
  border-color: rgba(var(--accent-red_x), 0.3) !important;
  color: var(--text-error) !important;
}

.ui.success.message,
.ui.positive.message {
  background-color: rgba(var(--accent-green_x), 0.1) !important;
  border-color: rgba(var(--accent-green_x), 0.3) !important;
  color: var(--text-success) !important;
}

.ui.info.message,
.ui.warning.message {
  background-color: rgba(var(--accent-blue_x), 0.08) !important;
  border-color: rgba(var(--accent-blue_x), 0.25) !important;
  color: var(--color-base-70) !important;
}

/* ── Login / signup / auth ─────────────────────────────────── */
.user.signin,
.user.signup,
.user.activate,
.user.forgot_password,
.user.reset_password,
.user.oauth2,
.user.settings,
.user.settings .ui.segment,
.user.settings .ui.form,
.user.settings .ui.menu,
.user.settings .ui.tab.segment,
.user.settings .ui.vertical.menu .item,
.user.settings .ui.vertical.menu .item.active,
.user.settings .ui.vertical.menu .item:hover {
  background-color: #000000 !important;
}

.user.signin .ui.segment,
.user.signup .ui.segment,
.user.activate .ui.segment,
.user.forgot_password .ui.segment,
.user.reset_password .ui.segment {
  background-color: #0a0a0a !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

.user.signin .ui.header,
.user.signup .ui.header {
  color: #ffffff !important;
}

.user.signin .ui.divider,
.user.signup .ui.divider {
  color: #444444 !important;
}

.user.signin .ui.checkbox label,
.user.signup .ui.checkbox label {
  color: #aaaaaa !important;
}

/* ── Dashboard ─────────────────────────────────────────────── */
.dashboard .ui.segment,
.dashboard .ui.card,
.dashboard .ui.feed,
.dashboard .ui.list,
.dashboard .ui.table,
.dashboard .ui.menu,
.dashboard .ui.vertical.menu,
.dashboard .ui.tab.segment,
.dashboard .ui.attached.segment,
.dashboard .ui.stacked.segment,
.dashboard .ui.grid .column,
.dashboard .ui.grid .row,
.dashboard .ui.items > .item,
.dashboard .ui.feed > .event,
.dashboard .ui.comments .comment,
.dashboard .ui.thread,
.dashboard .ui.progress,
.dashboard .ui.label,
.dashboard .ui.basic.label,
.dashboard .ui.floating.label,
.dashboard .ui.breadcrumb,
.dashboard .ui.steps,
.dashboard .ui.accordion,
.dashboard .ui.divider,
.dashboard .ui.placeholder,
.dashboard .ui.search > .results,
.dashboard .ui.search > .prompt,
.dashboard .ui.action.input > input,
.dashboard .ui.labeled.input > input,
.dashboard .ui.selection.dropdown,
.dashboard .ui.multiple.selection.dropdown,
.dashboard .ui.fluid.selection.dropdown {
  background-color: #0a0a0a !important;
  border-color: var(--color-border) !important;
}

.dashboard .ui.card .content,
.dashboard .ui.card .extra,
.dashboard .ui.card .header,
.dashboard .ui.card .meta,
.dashboard .ui.card .description {
  background-color: transparent !important;
  color: var(--color-text) !important;
}

.dashboard .ui.vertical.menu .item.active {
  background-color: #151515 !important;
  border-left: 2px solid #444444 !important;
}

/* ── Repository views ──────────────────────────────────────── */
.repository .repo-header,
.repository .repo-buttons,
.repository .ui.menu,
.repository .ui.segment,
.repository .ui.tab.segment,
.repository .ui.attached.segment,
.repository .ui.vertical.menu,
.repository .ui.table,
.repository .ui.list,
.repository .ui.feed,
.repository .ui.comments,
.repository .ui.thread,
.repository .ui.progress,
.repository .ui.label,
.repository .ui.basic.label,
.repository .ui.floating.label,
.repository .ui.breadcrumb,
.repository .ui.steps,
.repository .ui.accordion,
.repository .ui.divider,
.repository .ui.placeholder,
.repository .ui.search > .results,
.repository .ui.search > .prompt,
.repository .ui.action.input > input,
.repository .ui.labeled.input > input,
.repository .ui.selection.dropdown,
.repository .ui.multiple.selection.dropdown,
.repository .ui.fluid.selection.dropdown,
.repository .file-view,
.repository .code-view,
.repository .commit-list,
.repository .issue-list,
.repository .pull-list,
.repository .milestone-list,
.repository .project-list,
.repository .org-teams,
.repository .user.profile,
.repository .settings,
.repository .admin,
.repository .explore,
.repository .install,
.repository .ui.feed > .event,
.repository .ui.comments .comment,
.repository .ui.thread,
.repository .ui.progress,
.repository .ui.label,
.repository .ui.basic.label,
.repository .ui.floating.label,
.repository .ui.breadcrumb,
.repository .ui.steps,
.repository .ui.accordion,
.repository .ui.divider,
.repository .ui.placeholder,
.repository .ui.search > .results,
.repository .ui.search > .prompt,
.repository .ui.action.input > input,
.repository .ui.labeled.input > input,
.repository .ui.selection.dropdown,
.repository .ui.multiple.selection.dropdown,
.repository .ui.fluid.selection.dropdown {
  background-color: #0a0a0a !important;
  border-color: var(--color-border) !important;
}

.repository .repo-header,
.repository .navbar,
.repository .ui.secondary.menu,
.repository .ui.pointing.secondary.menu,
.repository .ui.tabular.menu {
  background-color: #000000 !important;
}

.repository .ui.tabular.menu .active.item,
.repository .ui.secondary.menu .active.item,
.repository .ui.pointing.secondary.menu .active.item,
.repository .ui.vertical.tabular.menu .active.item {
  background-color: #111111 !important;
  border-color: #333333 !important;
  color: #ffffff !important;
}

.repository .file-list .item,
.repository .commit-list .item,
.repository .issue-list .item,
.repository .pull-list .item {
  border-bottom: 1px solid var(--color-border) !important;
}

.repository .file-list .item:hover,
.repository .commit-list .item:hover,
.repository .issue-list .item:hover,
.repository .pull-list .item:hover {
  background-color: #111111 !important;
}

/* ── Code blocks & diffs ───────────────────────────────────── */
code,
pre,
.ui.code,
.chroma,
.highlight,
.highlight pre,
.highlight code,
.file-view pre,
.file-view code,
.code-view pre,
.code-view code,
.diff-file-box pre,
.diff-file-box code,
.diff-file-box .chroma,
.diff-file-box .highlight,
.diff-file-box .highlight pre,
.diff-file-box .highlight code,
.diff-file-box .file-code,
.diff-file-box .lines-code,
.diff-file-box .lines-num,
.diff-file-box .lines-escape,
.diff-file-box .lines-commit,
.diff-file-box .lines-blame,
.diff-file-box .lines-history,
.diff-file-box .lines-annotate,
.diff-file-box .lines-skip,
.diff-file-box .lines-expand,
.diff-file-box .lines-collapse,
.diff-file-box .lines-toggle,
.diff-file-box .lines-context,
.diff-file-box .lines-add,
.diff-file-box .lines-del,
.diff-file-box .lines-equal,
.diff-file-box .lines-old,
.diff-file-box .lines-new,
.diff-file-box .lines-old .chroma,
.diff-file-box .lines-new .chroma,
.diff-file-box .lines-old .highlight,
.diff-file-box .lines-new .highlight,
.diff-file-box .lines-old .highlight pre,
.diff-file-box .lines-new .highlight pre,
.diff-file-box .lines-old .highlight code,
.diff-file-box .lines-new .highlight code,
.diff-file-box .lines-old .file-code,
.diff-file-box .lines-new .file-code,
.diff-file-box .lines-old .lines-code,
.diff-file-box .lines-new .lines-code,
.diff-file-box .lines-old .lines-num,
.diff-file-box .lines-new .lines-num {
  background-color: #050505 !important;
  color: #d4d4d4 !important;
  border-color: var(--color-border) !important;
}

.diff-file-header,
.diff-file-box .file-header,
.file-view .file-header,
.code-view .file-header {
  background-color: #0a0a0a !important;
  border: 1px solid var(--color-border) !important;
  color: #cccccc !important;
}

.lines-num,
.lines-num span,
.diff-file-box .lines-num,
.diff-file-box .lines-num span {
  background-color: #000000 !important;
  color: #555555 !important;
  border-right: 1px solid var(--color-border) !important;
}

.lines-code,
.diff-file-box .lines-code {
  background-color: #050505 !important;
}

/* Syntax highlight tokens - keep readable on black */.chroma .k, .chroma .kd, .chroma .kn { color: #c586c0; }
.chroma .s, .chroma .s1, .chroma .s2 { color: #ce9178; }
.chroma .c, .chroma .c1, .chroma .cm { color: #6a9955; }
.chroma .n, .chroma .na, .chroma .nb { color: #9cdcfe; }
.chroma .o, .chroma .p { color: #d4d4d4; }
.chroma .m, .chroma .mi, .chroma .mf { color: #b5cea8; }

/* ── Cards, tables, modals ─────────────────────────────────── */
.ui.card,
.ui.cards > .card {
  box-shadow: none !important;
  border: 1px solid var(--color-border) !important;
}

.ui.table thead th {
  background-color: #0a0a0a !important;
  color: #cccccc !important;
}

.ui.table tbody tr:hover {
  background-color: #111111 !important;
}

.ui.modal {
  background-color: #0a0a0a !important;
  border: 1px solid var(--color-border-light) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8) !important;
}

.ui.modal > .header {
  border-bottom: 1px solid var(--color-border) !important;
}

.ui.modal > .actions {
  border-top: 1px solid var(--color-border) !important;
  background-color: #000000 !important;
}

.ui.dropdown .menu .item:hover,
.ui.dropdown .menu .selected.item,
.ui.vertical.menu .item:hover,
.ui.menu .dropdown.item .menu .item:hover {
  background-color: #111111 !important;
}

/* ── Labels & badges ───────────────────────────────────────── */
.ui.label,
.ui.basic.label {
  background-color: var(--color-base-20) !important;
  border: 1px solid var(--color-base-35) !important;
  color: var(--color-base-70) !important;
}

.ui.green.label { background-color: rgba(var(--accent-green_x), 0.12) !important; color: var(--accent-green) !important; border-color: rgba(var(--accent-green_x), 0.3) !important; }
.ui.red.label { background-color: rgba(var(--accent-red_x), 0.12) !important; color: var(--accent-red) !important; border-color: rgba(var(--accent-red_x), 0.3) !important; }
.ui.blue.label { background-color: rgba(var(--accent-blue_x), 0.12) !important; color: var(--accent-blue) !important; border-color: rgba(var(--accent-blue_x), 0.3) !important; }
.ui.orange.label { background-color: rgba(var(--accent-muted_x), 0.12) !important; color: var(--color-base-70) !important; border-color: rgba(var(--accent-muted_x), 0.3) !important; }

/* ── Navbar extras ─────────────────────────────────────────── */
#navbar .menu .item,
#navbar a.item,
#navbar .item {
  color: var(--text-link) !important;
  font-weight: 500 !important;
  opacity: 1 !important;
  transition: color 0.15s ease, background-color 0.15s ease;
}

#navbar .menu .item:hover,
#navbar a.item:hover,
#navbar .item:hover {
  color: var(--color-base-100) !important;
  background-color: var(--background-hover) !important;
}

#navbar .item.active,
.ui.menu .item.active {
  background-color: #111111 !important;
  color: #ffffff !important;
}

/* ── Toast (donate.js) ─────────────────────────────────────── */
.depot-toast {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 10000;
  padding: 0.75rem 1.25rem;
  background: var(--color-base-20);
  border: 1px solid var(--color-base-35);
  border-radius: 6px;
  color: var(--text-primary);
  font-size: 0.9rem;
  opacity: 0;
  transform: translateY(0.5rem);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}

.depot-toast.show {
  opacity: 1;
  transform: translateY(0);
}

/* ── Smooth anchor scroll ──────────────────────────────────── */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* ── Custom landing page ───────────────────────────────────── */
.page-content.depot-landing,
.ui.container .page-content.depot-landing {
  background: var(--background-primary) !important;
  text-align: left !important;
}

.depot-landing {
  --section-gap: 2.5rem;
  --hero-gap: 3.25rem;
  --block-padding: 1.75rem 1.625rem;
  --text-max: 58ch;
  --layout-max: 52rem;
  width: 100%;
  max-width: var(--layout-max);
  margin: 0 auto 4.5rem;
  padding: 0 1.75rem;
  color: var(--text-primary);
  line-height: 1.7;
  box-sizing: border-box;
}

.depot-landing #donate,
.depot-landing #policy {
  scroll-margin-top: 5rem;
}

/* ── Hero: logo left, copy + integrated CTA right ─────────── */
.depot-landing .depot-hero {
  padding: 2.75rem 0 0;
  margin-bottom: var(--hero-gap);
  border-bottom: 1px solid var(--color-base-10);
}

.depot-landing .depot-hero-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 2.25rem;
  width: 100%;
  max-width: none;
  margin: 0;
}

.depot-landing .depot-hero-logo {
  flex: 0 0 auto;
  display: flex !important;
  align-items: flex-start;
  justify-content: center;
  padding-top: 0.35rem;
}

.depot-landing .depot-hero-logo img {
  display: block !important;
  width: 4.5rem !important;
  height: 4.5rem !important;
  max-width: none !important;
  border-radius: 12px;
}

.depot-landing .depot-hero-text {
  flex: 1 1 auto;
  min-width: 0;
}

.depot-landing h1 {
  font-size: clamp(1.875rem, 4.5vw, 2.375rem);
  font-weight: 700;
  margin: 0 0 0.5rem;
  color: var(--color-base-100);
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.depot-landing .tagline {
  color: var(--text-secondary);
  margin: 0;
  max-width: var(--text-max);
  font-size: 1.0625rem;
  line-height: 1.65;
}

.depot-landing .hero-cta-panel {
  margin-top: 1.5rem;
  padding: 1.25rem 1.375rem;
  background: var(--background-secondary);
  border: 1px solid var(--color-base-20);
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}

.depot-landing .hero-note {
  margin: 0;
  max-width: none;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-base-60);
}

.depot-landing .depot-hero-text .hero-cta {
  margin-top: 1.125rem;
}

.depot-landing h2 {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 1.125rem;
  padding-bottom: 0.625rem;
  color: var(--color-base-70);
  text-transform: lowercase;
  letter-spacing: 0.05em;
  line-height: 1.3;
  border-bottom: 1px solid var(--color-base-20);
}

.depot-landing h3 {
  font-size: 0.875rem;
  font-weight: 600;
  margin: 1.75rem 0 0.65rem;
  color: var(--color-base-80);
  letter-spacing: 0.02em;
  line-height: 1.35;
}

.depot-landing .policy > h3:first-of-type {
  margin-top: 1.25rem;
}

.depot-landing p {
  color: var(--color-base-70);
  margin: 0 0 1rem;
  max-width: var(--text-max);
  line-height: 1.7;
}

.depot-landing p:last-child {
  margin-bottom: 0;
}

.depot-landing a:not(.btn) {
  color: var(--color-base-60) !important;
  text-decoration: underline;
  text-decoration-color: var(--color-base-30);
  text-underline-offset: 0.15em;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.depot-landing a:not(.btn):hover {
  color: var(--color-base-100) !important;
  text-decoration-color: var(--color-base-50);
}

.depot-landing ul {
  padding-left: 1.25rem;
  margin: 0 0 1rem;
  max-width: var(--text-max);
}

.depot-landing li {
  margin-bottom: 0.5rem;
  color: var(--color-base-80);
  line-height: 1.65;
}

.depot-landing li:last-child {
  margin-bottom: 0;
}

.depot-landing .section-card {
  width: 100%;
  background: var(--background-elevated);
  border: 1px solid var(--color-base-20);
  border-radius: 12px;
  padding: var(--block-padding);
  margin-top: var(--section-gap);
  box-sizing: border-box;
}

.depot-landing .about.section-card {
  margin-top: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.depot-landing .policy.section-card {
  background: var(--background-elevated);
  border-color: var(--color-base-25);
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.depot-landing .donate-block.section-card {
  background: var(--background-secondary);
  border-color: var(--color-base-20);
}

.depot-landing .section-card > p:last-of-type,
.depot-landing .section-card > .btn-row:last-child,
.depot-landing .section-card > .donate-rows:last-child {
  margin-bottom: 0;
}

.depot-landing .btn-row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 0;
}

.depot-landing .btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.625rem;
  padding: 0.5625rem 1.25rem;
  background: var(--color-base-10);
  border: 1px solid var(--color-base-35);
  border-radius: 6px;
  color: var(--color-base-90);
  text-decoration: none !important;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.depot-landing .btn:hover {
  background: var(--background-hover) !important;
  border-color: var(--color-base-40) !important;
  color: var(--color-base-100) !important;
}

.depot-landing .btn-primary {
  background: linear-gradient(180deg, var(--color-base-25) 0%, var(--color-base-20) 100%);
  border-color: var(--color-base-40);
  color: var(--color-base-100);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
}

.depot-landing .btn-primary:hover {
  background: linear-gradient(180deg, var(--color-base-30) 0%, var(--color-base-25) 100%) !important;
  border-color: var(--color-base-50) !important;
  color: var(--color-base-100) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}

.depot-landing .btn-ghost {
  background: transparent;
  border-color: var(--color-base-25);
  color: var(--color-base-60);
}

.depot-landing .btn-ghost:hover {
  background: var(--color-base-05) !important;
  border-color: var(--color-base-35) !important;
  color: var(--color-base-80) !important;
}

.depot-landing .donate-rows {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-top: 1.25rem;
}

.depot-landing .donate-row {
  display: grid;
  grid-template-columns: 5.25rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.5625rem 0.6875rem;
  background: var(--background-primary);
  border: 1px solid var(--color-base-10);
  border-radius: 7px;
}

.depot-landing .donate-row .coin {
  font-weight: 600;
  color: var(--color-base-60);
  font-size: 0.8125rem;
  line-height: 1.3;
  white-space: nowrap;
}

.depot-landing .donate-row .addr {
  min-width: 0;
  font-family: var(--fonts-monospace);
  font-size: 0.75rem;
  line-height: 1.45;
  letter-spacing: 0.015em;
  word-break: break-all;
  color: var(--color-base-60);
  background: transparent;
  padding: 0.25rem 0;
  border: none;
}

.depot-landing .donate-row button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.125rem;
  min-width: 4.25rem;
  padding: 0.4375rem 0.875rem;
  background: var(--color-base-10);
  border: 1px solid var(--color-base-35);
  border-radius: 5px;
  color: var(--color-base-80);
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 500;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.depot-landing .donate-row button:hover:not(:disabled) {
  background: var(--background-hover) !important;
  border-color: var(--color-base-40) !important;
  color: var(--color-base-100) !important;
}

.depot-landing .donate-row button:disabled {
  background: rgba(var(--accent-green_x), 0.08);
  border-color: rgba(var(--accent-green_x), 0.25);
  color: var(--accent-green);
  cursor: default;
}

.depot-landing .depot-footer {
  margin-top: 2.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-base-10);
  color: var(--color-base-50);
  font-size: 0.875rem;
  line-height: 1.55;
  text-align: center;
}

.depot-landing .depot-footer a {
  color: var(--color-base-60) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--color-base-30);
  padding-bottom: 0.0625rem;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.depot-landing .depot-footer a:hover {
  color: var(--color-base-90) !important;
  border-bottom-color: var(--color-base-50);
}

@media (max-width: 768px) {
  .depot-landing {
    --section-gap: 2rem;
    --hero-gap: 2.5rem;
    --block-padding: 1.5rem 1.25rem;
    margin: 0 auto 3.5rem;
    padding: 0 1.125rem;
  }

  .depot-landing .depot-hero {
    padding: 2rem 0 0;
  }

  .depot-landing .depot-hero-inner {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center;
    gap: 1.5rem;
  }

  .depot-landing .depot-hero-logo {
    padding-top: 0;
  }

  .depot-landing .depot-hero-logo img {
    width: 4rem !important;
    height: 4rem !important;
  }

  .depot-landing h1 {
    font-size: 1.75rem;
  }

  .depot-landing .tagline,
  .depot-landing .hero-note {
    max-width: none;
  }

  .depot-landing .tagline {
    font-size: 1rem;
    line-height: 1.7;
  }

  .depot-landing .hero-cta-panel {
    text-align: left;
    width: 100%;
  }

  .depot-landing .btn-row {
    flex-direction: column;
  }

  .depot-landing .btn {
    width: 100%;
    white-space: normal;
  }

  .depot-landing .donate-row {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 0.4375rem 0.625rem;
  }

  .depot-landing .donate-row .coin {
    grid-column: 1 / -1;
  }

  .depot-landing .donate-row .addr {
    grid-column: 1;
    font-size: 0.703125rem;
  }

  .depot-landing .donate-row button {
    grid-column: 2;
    align-self: stretch;
  }

  .depot-landing #donate,
  .depot-landing #policy {
    scroll-margin-top: 4rem;
  }
}

@media (max-width: 480px) {
  .depot-landing {
    --hero-gap: 2rem;
    --block-padding: 1.25rem 1rem;
    padding: 0 1rem;
  }

  .depot-landing .depot-hero {
    padding: 1.5rem 0 0;
  }

  .depot-landing .hero-cta-panel {
    padding: 1rem 1.125rem;
  }

  .depot-landing .donate-row {
    grid-template-columns: 1fr;
  }

  .depot-landing .donate-row .coin,
  .depot-landing .donate-row .addr,
  .depot-landing .donate-row button {
    grid-column: 1;
  }

  .depot-landing .donate-row button {
    width: 100%;
    min-height: 2.375rem;
  }

  .depot-landing .donate-row .addr {
    font-size: 0.65625rem;
  }
}

/* ── Standalone static landing (/welcome — nginx alias, no Forgejo index.css) ─ */
.depot-static-body {
  --layout-max: 52rem;
  margin: 0;
  min-height: 100vh;
  background: var(--background-primary);
  color: var(--text-primary);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.depot-static-body *,
.depot-static-body *::before,
.depot-static-body *::after {
  box-sizing: border-box;
}

.depot-static-body .page-content.depot-landing {
  width: 100%;
  max-width: var(--layout-max);
  margin-left: auto;
  margin-right: auto;
}

.depot-static-body footer {
  margin-top: 0;
}

.depot-static-body footer .ui.container {
  width: 100%;
  max-width: var(--layout-max);
  margin: 0 auto;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
  box-sizing: border-box;
}

@media (max-width: 768px) {
  .depot-static-body footer .ui.container {
    padding-left: 1.125rem;
    padding-right: 1.125rem;
  }
}

@media (max-width: 480px) {
  .depot-static-body footer .ui.container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ── Invite gate pages ─────────────────────────────────────── */
.invite-gate-body {
  background: var(--background-primary);
  color: var(--text-primary);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  min-height: 100vh;
}

.invite-page {
  margin: 0 auto;
  padding: 2rem 1.25rem 3rem;
  box-sizing: border-box;
}

.invite-admin-login {
  max-width: 420px;
  margin-top: 4rem;
}

.invite-admin-dashboard {
  max-width: 920px;
  padding-top: 1.5rem;
}

.invite-card {
  background: var(--color-base-20);
  border: 1px solid var(--color-base-35);
  border-radius: 8px;
  padding: 1.25rem 1.35rem;
  margin-bottom: 1.25rem;
}

.invite-login-card {
  padding: 1.75rem 1.5rem;
}

.invite-card-title {
  margin: 0 0 0.65rem;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
}

.invite-admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--color-border-light);
}

.invite-admin-header h1 {
  margin: 0;
  font-size: 1.35rem;
  color: #fff;
}

.invite-logout {
  color: #888;
  font-size: 0.875rem;
  text-decoration: none;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--color-border-light);
  border-radius: 4px;
  transition: color 0.15s, border-color 0.15s;
}

.invite-logout:hover,
.invite-logout:focus-visible {
  color: #ccc;
  border-color: #333;
}

.invite-login-sub {
  margin-bottom: 1.25rem !important;
}

.invite-flash {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border-radius: 6px;
  font-size: 0.9rem;
  line-height: 1.45;
}

.invite-flash-error {
  color: var(--text-error);
  background: rgba(var(--accent-red_x), 0.1);
  border: 1px solid rgba(var(--accent-red_x), 0.3);
}

.invite-flash-success {
  color: var(--text-success);
  background: rgba(var(--accent-green_x), 0.1);
  border: 1px solid rgba(var(--accent-green_x), 0.3);
}

.invite-empty {
  margin: 0;
  color: #666;
  font-size: 0.9rem;
}

.invite-login-form,
.invite-create-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.invite-login-form .field,
.invite-create-form .field,
.invite-expiry-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.invite-login-form label,
.invite-create-form label,
.invite-expiry-field label {
  font-size: 0.85rem;
  font-weight: 500;
  color: #aaa;
}

.invite-page input[type="text"],
.invite-page input[type="password"],
.invite-page select,
.invite-settings select,
.invite-create-form select,
.invite-login-form input {
  width: 100%;
  padding: 0.65rem 0.75rem;
  background: var(--color-base-05);
  border: 1px solid var(--color-base-40);
  border-radius: 6px;
  color: var(--color-base-90);
  margin: 0;
  box-sizing: border-box;
  font-size: 0.95rem;
}

.invite-page input:focus,
.invite-page select:focus,
.invite-settings select:focus {
  outline: none;
  border-color: var(--focus-border);
}

.btn-primary,
.invite-page .btn-primary {
  width: 100%;
  padding: 0.7rem 1rem;
  margin-top: 0.15rem;
  background: linear-gradient(180deg, var(--color-base-25) 0%, var(--color-base-20) 100%);
  border: 1px solid var(--color-base-40);
  border-radius: 6px;
  color: var(--color-base-100);
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 500;
  transition: background 0.15s, border-color 0.15s;
}

.btn-primary:hover {
  background: linear-gradient(180deg, var(--color-base-30) 0%, var(--color-base-25) 100%);
  border-color: var(--color-base-50);
}

.invite-create-form .btn-primary {
  width: auto;
  align-self: flex-start;
  min-width: 7rem;
}

.btn-small {
  display: inline-block;
  padding: 0.28rem 0.55rem;
  font-size: 0.75rem;
  line-height: 1.3;
  border-radius: 4px;
  border: 1px solid #333;
  background: #141414;
  color: #ccc;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.btn-small:hover {
  background: #1f1f1f;
  color: #eee;
}

.btn-danger {
  border-color: rgba(200, 80, 80, 0.35);
  color: #c88;
}

.btn-danger:hover {
  background: rgba(80, 20, 20, 0.35);
  border-color: rgba(200, 80, 80, 0.5);
  color: #faa;
}

.invite-page h1 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
  color: #fff;
}

.invite-login-card h1 {
  margin-bottom: 0.35rem;
}

.invite-page form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.invite-page button:not(.btn-small) {
  width: 100%;
  padding: 0.75rem;
  margin-top: 0.25rem;
  background: #222;
  border: 1px solid #444;
  border-radius: 4px;
  color: #fff;
  cursor: pointer;
  font-size: 0.95rem;
}

.invite-page button:not(.btn-small):hover {
  background: #333;
  border-color: #555;
}

.invite-page .error {
  color: #f66;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  padding: 0.5rem 0.75rem;
  background: rgba(255, 80, 80, 0.08);
  border: 1px solid rgba(255, 80, 80, 0.25);
  border-radius: 4px;
}

.invite-page .success {
  color: #6f6;
  margin-bottom: 1rem;
}

.invite-code-cell code {
  font-size: 0.78rem;
  word-break: break-all;
}

.copy-code {
  cursor: pointer;
  color: #ccc;
  transition: color 0.15s;
}

.copy-code:hover,
.copy-code:focus-visible {
  color: #fff;
  outline: none;
}

.copy-code-done {
  color: #8c8 !important;
}

.invite-note-cell {
  max-width: 10rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #888;
}

.invite-actions-cell {
  text-align: right;
  white-space: nowrap;
  width: 1%;
}

.invite-badge,
.invite-status {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.22rem 0.5rem;
  border-radius: 4px;
  white-space: nowrap;
}

.invite-status-unused,
.invite-status-active {
  background: rgba(var(--accent-green_x), 0.14);
  color: var(--accent-green);
  border: 1px solid rgba(var(--accent-green_x), 0.35);
}

.invite-status-used {
  background: rgba(var(--accent-blue_x), 0.14);
  color: var(--accent-blue);
  border: 1px solid rgba(var(--accent-blue_x), 0.35);
}

.invite-status-revoked,
.invite-status-expired {
  background: rgba(var(--accent-red_x), 0.14);
  color: var(--accent-red);
  border: 1px solid rgba(var(--accent-red_x), 0.35);
}

.invite-revoke-form {
  display: inline;
  margin: 0;
}

.invite-revoke-btn {
  width: auto !important;
  padding: 0.25rem 0.55rem !important;
  font-size: 0.75rem !important;
}

.invite-admin table,
.invite-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}

.invite-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.invite-admin th,
.invite-admin td,
.invite-table th,
.invite-table td {
  padding: 0.6rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: middle;
}

.invite-admin th,
.invite-table th {
  color: #888;
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.invite-row-used td,
.invite-row-revoked td,
.invite-row-expired td {
  color: #666;
}

.invite-row-revoked .invite-code-cell code {
  text-decoration: line-through;
}

.invite-admin-table {
  margin-top: 0.25rem;
}

.invite-admin .revoked {
  color: #666;
  text-decoration: line-through;
}

.invite-settings.page-content {
  margin: 0;
  padding: 2rem 1.5rem 3rem;
}

.invite-settings .flex-container {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  max-width: 960px;
  margin: 0 auto;
}

.invite-settings .flex-container-nav {
  flex: 0 0 15rem;
  min-width: 13rem;
}

.invite-settings .flex-container-main {
  flex: 1;
  min-width: 0;
  max-width: 42rem;
}

.invite-settings .ui.vertical.menu .item.active {
  background-color: #151515 !important;
  color: #fff !important;
}

.invite-settings .user-setting-content .ui.top.attached.header {
  margin: 0;
  border-radius: 6px 6px 0 0;
  background: #0a0a0a !important;
  border: 1px solid var(--color-border) !important;
  border-bottom: none !important;
  padding: 0.85rem 1rem;
  font-weight: 600;
  color: #eee !important;
}

.invite-settings .user-setting-content .ui.attached.segment {
  border-radius: 0 0 6px 6px;
  margin-bottom: 1.25rem;
  padding: 1rem 1.1rem;
}

.invite-settings .invite-meta,
.invite-settings .invite-hint {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  line-height: 1.5;
}

.invite-settings .invite-flash {
  margin: 0 0 0.75rem !important;
  padding: 0.65rem 0.85rem !important;
  font-size: 0.9rem;
}

.invite-settings .invite-create-form {
  max-width: 28rem;
}

.invite-settings .invite-create-form .field {
  max-width: 16rem;
  margin-bottom: 1rem;
}

.invite-settings .invite-create-form .field label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #bbb !important;
}

.invite-settings .invite-create-form select,
.invite-settings .invite-create-form .invite-expiry-select,
.invite-settings .ui.form select {
  width: 100%;
  padding: 0.65rem 0.75rem;
  background: var(--invite-input-bg) !important;
  border: 1px solid var(--invite-input-border) !important;
  border-radius: 6px;
  color: var(--color-base-90);
  font-size: 0.9375rem;
  appearance: auto;
}

.invite-settings .invite-create-form select:focus,
.invite-settings .invite-create-form .invite-expiry-select:focus,
.invite-settings .ui.form select:focus {
  outline: none;
  border-color: var(--invite-input-focus) !important;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.invite-create-form .ui.primary.button,
.invite-settings .ui.primary.button {
  width: auto;
  min-width: 10rem;
}

.invite-my table.invite-codes,
.invite-my .invite-codes {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
  margin-top: 0.5rem;
}

.invite-my .invite-codes th,
.invite-my .invite-codes td {
  padding: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}

.invite-my .copy-code {
  cursor: pointer;
  color: #ccc;
}

.invite-my .copy-code:hover {
  color: #fff;
}

.invite-my tr.used td,
.invite-my tr.revoked td {
  color: #666;
}

.invite-my tr.revoked td {
  text-decoration: line-through;
}

/* ── Invite settings page (standalone PHP — no Forgejo base CSS) ─ */
.invite-settings-body {
  --invite-panel-bg: var(--color-base-20);
  --invite-panel-border: var(--color-base-35);
  --invite-input-bg: var(--color-base-05);
  --invite-input-border: var(--color-base-40);
  --invite-input-focus: var(--color-base-50);
  --invite-stat-bg: var(--color-base-25);
  --invite-stat-border: var(--color-base-40);
  --invite-stat-text: var(--color-base-80);
  --invite-badge-bg: var(--color-base-25);
  --invite-badge-border: var(--color-base-40);
  background: var(--background-primary) !important;
  color: var(--text-primary);
  margin: 0;
  min-height: 100vh;
  box-sizing: border-box;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.invite-settings-body *,
.invite-settings-body *::before,
.invite-settings-body *::after {
  box-sizing: border-box;
}

.invite-settings-body .ui.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.invite-settings-body #navbar.ui.secondary.menu {
  display: flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
  min-height: 3rem;
  border-bottom: 1px solid var(--color-border) !important;
}

.invite-settings-body #navbar .navbar-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.invite-settings-body #navbar .item {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1rem;
  color: #bbb !important;
  text-decoration: none;
  border: none;
  background: transparent !important;
  font-size: 0.95rem;
  line-height: 1.4;
}

.invite-settings-body #navbar .item.brand {
  color: #eee !important;
  font-weight: 600;
}

.invite-settings-body #navbar .item:hover {
  color: #fff !important;
  background: #111 !important;
}

.invite-settings-body #navbar .right.menu {
  display: flex;
  align-items: center;
  margin-left: auto;
}

.invite-settings-body .ui.vertical.menu {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  overflow: hidden;
  background: #0a0a0a !important;
}

.invite-settings-body .ui.vertical.menu .header.item {
  display: block;
  padding: 0.75rem 1rem;
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #888 !important;
  background: #000 !important;
  border-bottom: 1px solid var(--color-border);
  cursor: default;
}

.invite-settings-body .ui.vertical.menu .item {
  display: block;
  padding: 0.65rem 1rem;
  color: #bbb !important;
  text-decoration: none;
  border: none;
  border-bottom: 1px solid var(--color-border);
  background: transparent !important;
  font-size: 0.9rem;
  line-height: 1.45;
  transition: background 0.12s, color 0.12s;
}

.invite-settings-body .ui.vertical.menu .item:last-child {
  border-bottom: none;
}

.invite-settings-body .ui.vertical.menu a.item:hover {
  color: #fff !important;
  background: #111 !important;
}

.invite-settings-body .ui.vertical.menu .item.active {
  background: #151515 !important;
  border-left: 2px solid #444 !important;
  color: #fff !important;
  padding-left: calc(1rem - 2px);
}

.invite-settings-body .ui.basic.label {
  display: inline-block;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--invite-badge-border);
  border-radius: 4px;
  font-size: 0.8rem;
  color: var(--color-base-70);
  background: var(--invite-badge-bg) !important;
}

.invite-settings .invite-stats .invite-stat-badge,
.invite-settings-body .invite-stats .invite-stat-badge {
  background: var(--invite-stat-bg) !important;
  border: 1px solid var(--invite-stat-border) !important;
  border-radius: 999px;
  color: var(--invite-stat-text) !important;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: lowercase;
}

.invite-settings-body .ui.primary.button,
.invite-settings .invite-create-form .ui.primary.button {
  display: inline-block;
  padding: 0.65rem 1.25rem;
  border: 1px solid var(--color-base-40);
  border-radius: 6px;
  background: linear-gradient(180deg, var(--color-base-25) 0%, var(--color-base-20) 100%) !important;
  color: var(--color-base-100) !important;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.invite-settings-body .ui.primary.button:hover,
.invite-settings .invite-create-form .ui.primary.button:hover {
  background: linear-gradient(180deg, var(--color-base-30) 0%, var(--color-base-25) 100%) !important;
  border-color: var(--color-base-50);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}

.invite-settings-body .ui.form {
  margin: 0;
}

.invite-settings-body .ui.form .field {
  margin-bottom: 1rem;
}

.invite-settings-body .ui.form .field label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #bbb !important;
}

.invite-settings-body .ui.attached.segment,
.invite-settings-body .invite-panel {
  background: var(--invite-panel-bg) !important;
  border: 1px solid var(--invite-panel-border) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}

.invite-settings-body .page-content.user.settings {
  padding: 1.5rem 0 3rem;
}

.invite-settings-body .flex-container {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

.invite-settings-body .flex-container-nav {
  flex: 0 0 220px;
  min-width: 180px;
}

.invite-settings-body .flex-container-main {
  flex: 1 1 auto;
  min-width: 0;
}

.invite-settings-body .user-setting-content .ui.top.attached.header {
  background: var(--invite-panel-bg) !important;
  border: 1px solid var(--invite-panel-border) !important;
  border-bottom: none !important;
  border-radius: 8px 8px 0 0 !important;
  color: #f0f0f0 !important;
  font-weight: 600;
  padding: 0.85rem 1.25rem;
  margin: 0;
}

.invite-panel {
  border-radius: 0 0 8px 8px !important;
  padding: 1.25rem !important;
}

.invite-meta,
.invite-hint {
  color: #888;
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0 0 0.75rem;
}

.invite-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1rem;
}

.invite-settings .invite-flash {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 6px;
  font-size: 0.9rem;
}

.invite-settings .invite-flash-error {
  background: rgba(var(--accent-red_x), 0.1);
  border: 1px solid rgba(var(--accent-red_x), 0.3);
  color: var(--text-error);
}

.invite-settings .invite-flash-success {
  background: rgba(var(--accent-green_x), 0.1);
  border: 1px solid rgba(var(--accent-green_x), 0.3);
  color: var(--text-success);
}

.invite-settings .invite-codes,
.invite-settings .invite-codes th,
.invite-settings .invite-codes td {
  padding: 0.55rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.85rem;
}

@media (max-width: 768px) {
  .invite-admin-dashboard {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .invite-admin-header {
    flex-wrap: wrap;
  }

  .invite-note-cell {
    max-width: 6rem;
  }
}

@media (max-width: 768px) {
  .invite-settings-body .flex-container {
    flex-direction: column;
  }

  .invite-settings-body .flex-container-nav {
    width: 100%;
    flex: none;
  }
}

@media (max-width: 768px) {
  .invite-settings .flex-container {
    flex-direction: column;
  }

  .invite-settings .flex-container-nav {
    width: 100%;
    flex: none;
  }
}

/* ── Mobile responsive (global) ──────────────────────────────── */
@media (max-width: 768px) {
  footer .ui.container {
    flex-direction: column !important;
    text-align: center;
    gap: 0.5rem;
  }

  footer .ui.left,
  footer .ui.right {
    float: none !important;
    width: 100%;
    text-align: center;
  }

  .depot-toast {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    text-align: center;
  }

  .repository .ui.tabular.menu {
    overflow-x: auto;
    flex-wrap: nowrap;
  }
}

/* Explore is disabled in app.ini — hide dead nav link for signed-in users */
#navbar a.item[href$="/explore"] {
  display: none !important;
}
