/* ─────────────────────────────────────────
   theme-forgejo-odyssey.css
   odyssey linux · code.odysseylinux.org
   coerente con odysseylinux.org/forum
   ───────────────────────────────────────── */

/* font locale (offline mode) */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/JetBrainsMono-Light.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/JetBrainsMono-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/JetBrainsMono-Medium.woff2') format('woff2');
}

/* ── PALETTE ODYSSEY ── */
:root,
:root.theme-forgejo-odyssey {
  /* odyssey accents */
  --odyssey-red: #e8192c;
  --odyssey-text: #e8e4e0;
  --odyssey-bg: #000;
  --odyssey-bg-elev: #050505;
  --odyssey-border: #111;
  --odyssey-border-soft: #0a0a0a;
  --odyssey-muted: #555;
  --odyssey-faint: #333;
  --odyssey-very-faint: #222;

  /* override forgejo css vars */
  --is-dark-theme: true;

  --color-primary:        var(--odyssey-red);
  --color-primary-dark-1: #c2152a;
  --color-primary-dark-2: #a01225;
  --color-primary-dark-3: #800f1e;
  --color-primary-dark-4: #5c0916;
  --color-primary-dark-5: #3d050e;
  --color-primary-dark-6: #2a0309;
  --color-primary-dark-7: #1a0205;
  --color-primary-light-1: #ed3a4b;
  --color-primary-light-2: #f15868;
  --color-primary-light-3: #f57788;
  --color-primary-light-4: #f896a4;
  --color-primary-light-5: #fcc6cf;
  --color-primary-light-6: #fee0e5;
  --color-primary-light-7: #fff0f2;
  --color-primary-alpha-10: #e8192c1a;
  --color-primary-alpha-20: #e8192c33;
  --color-primary-alpha-30: #e8192c4d;
  --color-primary-alpha-40: #e8192c66;
  --color-primary-alpha-50: #e8192c80;
  --color-primary-alpha-60: #e8192c99;
  --color-primary-alpha-70: #e8192cb3;
  --color-primary-alpha-80: #e8192ccc;
  --color-primary-alpha-90: #e8192ce6;
  --color-primary-contrast: #fff;
  --color-primary-contrast-dark-1: #fff;
  --color-primary-contrast-dark-2: #fff;
  --color-primary-hover: var(--odyssey-red);

  /* sfondi */
  --color-body:       var(--odyssey-bg);
  --color-box-body:   var(--odyssey-bg-elev);
  --color-box-body-highlight: #0a0a0a;
  --color-box-header: var(--odyssey-bg-elev);
  --color-menu:       var(--odyssey-bg);
  --color-card:       var(--odyssey-bg-elev);
  --color-markup-code-block: #050505;
  --color-markup-table-row: #050505;
  --color-markup-table-row-alt: #030303;
  --color-secondary:        #0a0a0a;
  --color-secondary-bg:     #050505;
  --color-secondary-dark-1: #0a0a0a;
  --color-secondary-dark-2: #111;
  --color-secondary-dark-3: #1a1a1a;
  --color-secondary-dark-4: #222;
  --color-secondary-dark-5: #2a2a2a;
  --color-secondary-dark-6: #333;
  --color-secondary-dark-7: #3a3a3a;
  --color-secondary-dark-8: #444;
  --color-secondary-dark-9: #555;
  --color-secondary-dark-10: #666;
  --color-secondary-dark-11: #777;
  --color-secondary-dark-12: #888;
  --color-secondary-dark-13: #999;
  --color-secondary-light-1: #0e0e0e;
  --color-secondary-light-2: #131313;
  --color-secondary-light-3: #1a1a1a;
  --color-secondary-light-4: #222;
  --color-secondary-alpha-30: #11111180;
  --color-secondary-alpha-40: #1a1a1a99;
  --color-secondary-alpha-50: #1a1a1ab3;
  --color-secondary-alpha-60: #1a1a1acc;
  --color-secondary-alpha-70: #222e6;
  --color-secondary-button: var(--odyssey-bg-elev);
  --color-secondary-hover: #0e0e0e;

  /* testo */
  --color-text:           var(--odyssey-text);
  --color-text-light:     #ccc;
  --color-text-light-1:   #aaa;
  --color-text-light-2:   #888;
  --color-text-light-3:   #666;
  --color-text-dark:      var(--odyssey-text);
  --color-text-light-emphasis: var(--odyssey-text);
  --color-placeholder-text: var(--odyssey-faint);

  /* link */
  --color-link:        var(--odyssey-red);
  --color-link-hover:  var(--odyssey-text);
  --color-link-active: var(--odyssey-red);

  /* bordi */
  --color-light-border: var(--odyssey-border);
  --color-light:        var(--odyssey-border);
  --color-light-mimic-enabled: var(--odyssey-border);
  --color-border:       var(--odyssey-border);
  --color-input-border: var(--odyssey-border);
  --color-input-border-hover: var(--odyssey-red);

  /* form */
  --color-input-background: var(--odyssey-bg-elev);
  --color-input-text:       var(--odyssey-text);
  --color-input-toggle-background: var(--odyssey-bg-elev);

  /* ui generici */
  --color-active:       #0e0e0e;
  --color-hover:        #0a0a0a;
  --color-focus:        #0e0e0e;
  --color-active-line:  var(--odyssey-red);
  --color-header-wrapper: var(--odyssey-bg);
  --color-header-wrapper-transparent: rgba(0,0,0,0.85);
  --color-footer:       var(--odyssey-bg);
  --color-timeline:     #0a0a0a;
  --color-shadow:       rgba(0,0,0,0.6);

  /* labels e badge */
  --color-label-bg: #0a0a0a;
  --color-label-hover-bg: #0e0e0e;
  --color-label-active-bg: #111;
  --color-label-text: var(--odyssey-text);

  /* scrollbar */
  --color-nav-bg: var(--odyssey-bg);
  --color-nav-hover-bg: #0a0a0a;
  --color-nav-text: var(--odyssey-muted);
}

/* ── BASE ── */
body {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-weight: 400;
  letter-spacing: 0.3px;
  background: var(--odyssey-bg) !important;
  color: var(--odyssey-text);
  -webkit-font-smoothing: antialiased;
}

* {
  font-family: inherit;
}

/* override delle font heading di forgejo */
h1, h2, h3, h4, h5, h6 {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-weight: 300;
  letter-spacing: -0.5px;
  color: var(--odyssey-text);
}

/* ── NAVBAR ── */
.full.height > .ui.top.menu,
#navbar {
  background: var(--odyssey-bg) !important;
  border-bottom: 1px solid var(--odyssey-border-soft) !important;
  box-shadow: none !important;
}

#navbar .item,
.ui.menu .item {
  font-size: 11px !important;
  letter-spacing: 2px !important;
  color: var(--odyssey-muted) !important;
  text-transform: lowercase;
  transition: color .2s;
}

#navbar .item:hover,
.ui.menu .item:hover {
  color: var(--odyssey-text) !important;
  background: transparent !important;
}

#navbar .item.active,
.ui.menu .item.active {
  color: var(--odyssey-text) !important;
  background: transparent !important;
}

/* logo nel nav: spazio coerente */
#navbar .item .logo {
  height: 22px;
  margin-right: .5rem;
}

/* ── BOTTONI ── */
.ui.button,
.ui.basic.button {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  letter-spacing: 2px !important;
  text-transform: lowercase;
  border-radius: 0 !important;
  font-weight: 400;
  transition: all .2s;
}

.ui.primary.button,
.ui.primary.buttons .button {
  background: var(--odyssey-red) !important;
  color: #fff !important;
  border: 1px solid var(--odyssey-red) !important;
}
.ui.primary.button:hover {
  background: #fff !important;
  color: var(--odyssey-red) !important;
}

.ui.basic.button {
  background: transparent !important;
  border: 1px solid var(--odyssey-border) !important;
  color: var(--odyssey-muted) !important;
  box-shadow: none !important;
}
.ui.basic.button:hover {
  border-color: var(--odyssey-red) !important;
  color: var(--odyssey-text) !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* ── INPUT / FORM ── */
.ui.input input,
.ui.form input[type="text"],
.ui.form input[type="email"],
.ui.form input[type="password"],
.ui.form input[type="url"],
.ui.form textarea,
.ui.selection.dropdown,
.ui.dropdown .menu {
  background: var(--odyssey-bg-elev) !important;
  border: 1px solid var(--odyssey-border) !important;
  color: var(--odyssey-text) !important;
  border-radius: 0 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 12px !important;
  letter-spacing: .5px;
}

.ui.input input:focus,
.ui.form input:focus,
.ui.form textarea:focus,
.ui.selection.dropdown:focus {
  border-color: var(--odyssey-red) !important;
  outline: none !important;
}

.ui.form .field > label {
  font-size: 10px !important;
  letter-spacing: 2px !important;
  text-transform: lowercase;
  color: var(--odyssey-muted) !important;
  font-weight: 400 !important;
}

/* ── CARD / REPO LIST ── */
.ui.card,
.ui.cards > .card,
.ui.segment,
.ui.attached.segment {
  background: var(--odyssey-bg-elev) !important;
  border: 1px solid var(--odyssey-border-soft) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.ui.repository.list .item,
.flex-item {
  border-bottom: 1px solid var(--odyssey-border-soft) !important;
  padding: 1rem 0 !important;
  transition: background .15s;
}
.ui.repository.list .item:hover,
.flex-item:hover {
  background: #030303 !important;
}

/* prompt $ davanti ai nomi repo */
.ui.repository.list .item .header::before,
.flex-item-title::before {
  content: '$ ';
  color: var(--odyssey-red);
  font-size: 11px;
  margin-right: .3rem;
  opacity: .6;
}

.ui.header,
.flex-item-title {
  font-family: 'JetBrains Mono', monospace !important;
  font-weight: 300 !important;
  letter-spacing: 0 !important;
  color: var(--odyssey-text) !important;
}

/* ── REPO / CODE PAGE ── */
.repository .header-wrapper,
.repo-header {
  background: var(--odyssey-bg) !important;
  border-bottom: 1px solid var(--odyssey-border-soft) !important;
}

.repository .ui.tabular.menu .item,
.ui.tabular.menu .item {
  font-size: 11px !important;
  letter-spacing: 2px !important;
  text-transform: lowercase;
  color: var(--odyssey-muted) !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
}
.repository .ui.tabular.menu .item.active,
.ui.tabular.menu .item.active {
  color: var(--odyssey-text) !important;
  border-bottom-color: var(--odyssey-red) !important;
  background: transparent !important;
}

/* file list */
.repository.file.list #repo-files-table tr {
  background: var(--odyssey-bg) !important;
  border-bottom: 1px solid var(--odyssey-border-soft);
}
.repository.file.list #repo-files-table tr:hover {
  background: #030303 !important;
}
.repository.file.list #repo-files-table td {
  border: none !important;
  padding: .8rem !important;
  font-size: 12px;
}

/* code block / blob */
.file-view,
.markup,
.code-view,
pre, code {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 12px !important;
  background: var(--odyssey-bg-elev) !important;
  color: var(--odyssey-text) !important;
}

/* ── ISSUES / PR ── */
.issue.list .item,
.issue-list .item {
  border-bottom: 1px solid var(--odyssey-border-soft) !important;
  padding: 1rem 0 !important;
}

.issue.list .item:hover,
.issue-list .item:hover {
  background: #030303 !important;
}

.issue-title-meta::before,
.issue.list .item .title::before {
  content: '$ ';
  color: var(--odyssey-red);
  opacity: .6;
}

/* status pill */
.ui.label,
.ui.basic.label,
.ui.green.label, .ui.red.label, .ui.blue.label,
.ui.yellow.label, .ui.purple.label, .ui.grey.label {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 9px !important;
  letter-spacing: 2px !important;
  text-transform: lowercase;
  border-radius: 0 !important;
  font-weight: 400 !important;
}

/* ── FOOTER ── */
.page-footer,
footer.ui.container {
  background: var(--odyssey-bg) !important;
  border-top: 1px solid var(--odyssey-border-soft) !important;
  color: var(--odyssey-very-faint);
  font-size: 10px;
  letter-spacing: 2px;
  padding: 2rem 2.5rem !important;
}
.page-footer a,
footer.ui.container a {
  color: var(--odyssey-faint) !important;
  transition: color .2s;
}
.page-footer a:hover,
footer.ui.container a:hover {
  color: var(--odyssey-red) !important;
}

/* ── DASHBOARD HEADERS ── */
.dashboard-navbar .ui.dropdown .text,
.dashboard .ui.header {
  letter-spacing: 0 !important;
  font-weight: 300 !important;
}

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--odyssey-bg); }
::-webkit-scrollbar-thumb { background: #1a1a1a; }
::-webkit-scrollbar-thumb:hover { background: var(--odyssey-red); }

/* ── DETAILS / SIDEBAR ── */
.repository .filter.menu .item,
.ui.vertical.menu .item {
  font-size: 11px !important;
  letter-spacing: 1px !important;
  color: var(--odyssey-muted) !important;
  background: transparent !important;
}
.repository .filter.menu .item:hover,
.ui.vertical.menu .item:hover {
  color: var(--odyssey-text) !important;
}

/* ── SELEZIONE TESTO ── */
::selection {
  background: var(--odyssey-red);
  color: #fff;
}

/* ── EXPLORE PAGE ── */
.explore .ui.menu {
  background: transparent !important;
  border: none !important;
}

/* ── ADMIN PANEL ── */
.admin .ui.attached.header {
  background: var(--odyssey-bg-elev) !important;
  color: var(--odyssey-red) !important;
  border: 1px solid var(--odyssey-border-soft) !important;
  font-size: 10px !important;
  letter-spacing: 3px !important;
  text-transform: lowercase;
}
