/* ONGit / ONHOST: GitHub-inspired layout density, original ONHOST identity.
   Target: Forgejo v15 LTS. No elements are hidden; tests required on upgrades. */
:root {
  --ongit-purple: #8b5cf6;
  --ongit-purple-bright: #a78bfa;
  --ongit-magenta: #ed65e7;
  --ongit-github-dark: #0d1117;
  --ongit-surface: #161b22;
  --ongit-border: #30363d;
  --ongit-radius: 10px;
  --ongit-shadow: 0 10px 30px rgba(0,0,0,.14);
}
/* Forgejo theme tokens: color variables map to native controls without replacing templates. */
.theme-forgejo-dark, [data-theme="forgejo-dark"], [data-theme="gitea-dark"], .theme-arc-green {
  --color-primary: #8b5cf6;
  --color-primary-dark-1: #7c3aed;
  --color-primary-dark-2: #6d28d9;
  --color-primary-light-1: #a78bfa;
  --color-primary-light-2: #c4b5fd;
  --color-body: #0d1117;
  --color-box-header: #161b22;
  --color-box-body: #0d1117;
  --color-secondary: #161b22;
  --color-secondary-dark-1: #21262d;
  --color-light: #21262d;
  --color-text: #e6edf3;
  --color-text-light: #aeb8c7;
  --color-border: #30363d;
  --color-input-background: #0d1117;
}
[data-theme="forgejo-light"], .theme-forgejo-light, [data-theme="gitea-light"] {
  --color-primary: #6d28d9;
  --color-primary-dark-1: #5b21b6;
  --color-primary-light-1: #8b5cf6;
  --color-border: #d8dee7;
}
body { font-feature-settings: "kern"; }
/* Brand accent, keeping top navigation controls accessible. */
.ui.top.menu, .navbar, header .menu {
  border-bottom: 1px solid var(--ongit-border) !important;
}
.ui.top.menu::after, .navbar::after {
  content: "";
  pointer-events: none;
  display: block;
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ongit-purple), var(--ongit-magenta), transparent 88%);
  opacity: .55;
}
.ui.top.menu .item, .navbar .item { transition: color .15s ease, background .15s ease; }
.ui.top.menu .item:hover, .navbar .item:hover { color: var(--ongit-purple-bright) !important; }
.ui.primary.button, .ui.green.button, .ui.positive.button, button.primary {
  background: linear-gradient(135deg, #7c3aed, #a855f7) !important;
  color: #fff !important;
  border-color: #7c3aed !important;
  border-radius: 8px !important;
}
.ui.primary.button:hover, .ui.green.button:hover, .ui.positive.button:hover {
  filter: brightness(1.1);
}
.ui.segment, .ui.card, .ui.cards > .card, .ui.table, .ui.message {
  border-radius: var(--ongit-radius);
}
.ui.menu, .ui.segment, .ui.table { border-color: var(--color-border, var(--ongit-border)); }
.ui.table thead th { font-weight: 650; }
.ui.label { border-radius: 6px; }
.ui.basic.label { border-color: var(--color-border, var(--ongit-border)); }
.ui.tabular.menu .active.item, .ui.secondary.pointing.menu .active.item {
  border-color: var(--ongit-purple) !important;
}
a { text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 1px; }
pre, code, .code-view, .file-view, .monospace, .diff-file-box {
  font-variant-ligatures: none;
}
.ui.input > input, .ui.form input, .ui.form textarea, .ui.selection.dropdown {
  border-radius: 8px;
}
.ui.input > input:focus, .ui.form input:focus, .ui.form textarea:focus, .ui.selection.dropdown:focus {
  border-color: var(--ongit-purple) !important;
  outline-offset: 2px;
}
/* ONGit small brand mark, does not replace navigation interactions. */
.ui.top.menu .brand .item::before, .navbar .brand::before {
  content: "";
  width: 20px; height: 20px;
  display: inline-block; vertical-align: middle;
  margin-inline-end: 8px;
  background-image: url('/assets/img/ongit-symbol.svg');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
/* Compact, GitHub-like table and repository lists without hiding controls. */
.repository .ui.table td, .repository .ui.table th,
.dashboard .ui.table td, .dashboard .ui.table th { padding-block: .7rem; }
.repo-header .ui.menu, .repo-header .ui.secondary.menu { gap: .15rem; }
.ui.menu .item, .ui.button { font-weight: 570; }
@media (max-width: 720px) {
  .ui.table td, .ui.table th { overflow-wrap: anywhere; }
  .ui.segment { border-radius: 7px; }
  .ui.top.menu::after, .navbar::after { opacity: .35; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
