/*
 * git.burakssen — Radicle Explorer inspired Gitea shell.
 * Source-layout reference: radicle-dev/radicle-explorer (GPL-3.0).
 * This stylesheet is an independent Gitea adaptation; it does not include
 * Radicle brand assets.
 */

gitea-theme-meta-info {
  --theme-display-name: "git.burakssen";
}

:root {
  --is-dark-theme: true;

  --rad-ink: #0a0b0d;
  --rad-bg: #0d0f12;
  --rad-panel: #111318;
  --rad-panel-2: #15181e;
  --rad-hover: #191d24;
  --rad-active: #1e222b;
  --rad-border: #272b33;
  --rad-border-strong: #343945;
  --rad-text: #e7e7ea;
  --rad-muted: #969aa4;
  --rad-dim: #686d78;
  --rad-accent: #a78bfa;
  --rad-accent-strong: #b8a3ff;
  --rad-accent-soft: rgba(167, 139, 250, .12);
  --rad-red: #f07178;
  --rad-green: #7ec699;
  --rad-yellow: #d7ba7d;

  --rad-rail-width: 58px;
  --rad-repo-sidebar-width: 252px;

  --color-body: var(--rad-bg);
  --color-body-transparent: rgba(13, 15, 18, 0);
  --color-box-header: var(--rad-panel);
  --color-box-body: var(--rad-panel);
  --color-box-header-highlight: var(--rad-panel-2);
  --color-secondary-bg: var(--rad-panel);
  --color-secondary: var(--rad-muted);
  --color-secondary-dark-1: var(--rad-text);
  --color-secondary-dark-2: var(--rad-text);
  --color-secondary-hover: var(--rad-hover);
  --color-secondary-active: var(--rad-active);
  --color-menu: var(--rad-panel);
  --color-card: var(--rad-panel);
  --color-text: var(--rad-text);
  --color-text-light: var(--rad-muted);
  --color-text-light-1: var(--rad-muted);
  --color-text-light-2: var(--rad-dim);
  --color-text-light-3: var(--rad-dim);
  --color-primary: var(--rad-accent);
  --color-primary-hover: var(--rad-accent-strong);
  --color-primary-active: var(--rad-accent-strong);
  --color-primary-light-1: var(--rad-accent-soft);
  --color-primary-light-2: var(--rad-accent-soft);
  --color-light: var(--rad-panel);
  --color-light-border: var(--rad-border);
  --color-input-background: var(--rad-ink);
  --color-input-border: var(--rad-border);
  --color-navbar: var(--rad-ink);
  --color-footer: var(--rad-bg);
  --color-markup-code-block: var(--rad-panel);

  --fonts-proportional: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fonts-monospace: "SFMono-Regular", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

html,
body {
  background: var(--rad-bg) !important;
  color: var(--rad-text) !important;
}

body {
  padding-left: var(--rad-rail-width);
  letter-spacing: -0.006em;
}

a { color: var(--rad-text); }
a:hover { color: var(--rad-accent-strong); }

/* --- Radicle-like global icon rail -------------------------------------- */
/* Keep Gitea's stock navbar intact in the template graph, but hide it on desktop.
 * The custom rail is injected through custom/body_inner_pre.tmpl, which avoids
 * coupling this theme to Gitea's private navbar partials. */
#navbar { display: none !important; }

.rad-global-rail {
  position: fixed !important;
  inset: 0 auto 0 0;
  z-index: 1100;
  width: var(--rad-rail-width) !important;
  min-width: var(--rad-rail-width) !important;
  height: 100vh !important;
  min-height: 100vh !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  background: var(--rad-ink) !important;
  border: 0 !important;
  border-right: 1px solid var(--rad-border) !important;
  box-shadow: none !important;
}

.rad-rail-brand {
  width: 100%;
  height: 58px;
  display: grid;
  place-items: center;
  border-bottom: 1px solid var(--rad-border);
}

.rad-rail-mark {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--rad-border-strong);
  border-radius: 2px;
  color: var(--rad-text);
  background: var(--rad-panel);
  font: 700 11px/1 var(--fonts-monospace);
  letter-spacing: -.08em;
}

.rad-rail-main,
.rad-rail-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  padding: 8px 7px;
}

.rad-rail-footer {
  margin-top: auto;
  border-top: 1px solid var(--rad-border);
}

.rad-rail-item {
  position: relative;
  height: 42px;
  display: grid;
  place-items: center;
  color: var(--rad-dim) !important;
  border-radius: 2px;
}

.rad-rail-item > span:not(.avatar) { display: none; }
.rad-rail-item svg { width: 18px; height: 18px; }
.rad-rail-item:hover { background: var(--rad-hover); color: var(--rad-text) !important; }
.rad-rail-item.active { background: var(--rad-active); color: var(--rad-accent) !important; }
.rad-rail-avatar img { width: 24px !important; height: 24px !important; border-radius: 2px !important; }

/* --- Repository shell: the structural change stock Gitea lacks ---------- */
.page-content.repository {
  position: relative;
  min-height: 100vh;
  padding-left: var(--rad-repo-sidebar-width) !important;
  background: var(--rad-bg) !important;
}

.rad-repo-sidebar {
  position: fixed;
  z-index: 900;
  top: 0;
  bottom: 0;
  left: var(--rad-rail-width);
  width: var(--rad-repo-sidebar-width);
  display: flex;
  flex-direction: column;
  background: var(--rad-panel);
  border-right: 1px solid var(--rad-border);
  overflow: auto;
}

.rad-repo-identity {
  padding: 20px 16px 17px;
  border-bottom: 1px solid var(--rad-border);
}

.rad-repo-kicker {
  display: flex;
  gap: 5px;
  align-items: center;
  margin-bottom: 4px;
  color: var(--rad-dim);
  font: 11px/1.3 var(--fonts-monospace);
}

.rad-repo-kicker a { color: var(--rad-muted) !important; }

.rad-repo-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--rad-text) !important;
  font: 600 17px/1.25 var(--fonts-monospace);
}

.rad-repo-description {
  margin: 11px 0 0;
  color: var(--rad-muted);
  font-size: 12px;
  line-height: 1.5;
}

.rad-repo-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px; }
.rad-badge {
  padding: 2px 6px;
  color: var(--rad-muted);
  background: var(--rad-bg);
  border: 1px solid var(--rad-border);
  border-radius: 2px;
  font: 10px/1.4 var(--fonts-monospace);
  text-transform: lowercase;
}

.rad-repo-nav { padding: 10px 8px; }
.rad-repo-sidebar-footer { margin-top: auto; padding: 8px; border-top: 1px solid var(--rad-border); }

.rad-repo-nav-item {
  min-height: 36px;
  padding: 0 9px;
  display: grid;
  grid-template-columns: 18px minmax(0,1fr) auto;
  gap: 9px;
  align-items: center;
  color: var(--rad-muted) !important;
  border-radius: 2px;
  font-size: 12px;
}

.rad-repo-nav-item:hover { background: var(--rad-hover); color: var(--rad-text) !important; }
.rad-repo-nav-item.active { background: var(--rad-active); color: var(--rad-text) !important; }
.rad-repo-nav-item.active svg { color: var(--rad-accent); }
.rad-count { color: var(--rad-dim); font: 10px/1 var(--fonts-monospace); }

/* --- Main repository surface -------------------------------------------- */
.rad-repo-main { min-width: 0; min-height: 100vh; }

.rad-context-bar {
  position: sticky;
  top: 0;
  z-index: 30;
  height: 48px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: color-mix(in srgb, var(--rad-bg) 94%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--rad-border);
}

.rad-context-title { display: flex; align-items: center; gap: 7px; min-width: 0; }
.rad-context-section { color: var(--rad-text); font: 600 12px/1 var(--fonts-monospace); }
.rad-context-separator { color: var(--rad-dim); }
.rad-context-ref { color: var(--rad-muted); font: 11px/1 var(--fonts-monospace); overflow: hidden; text-overflow: ellipsis; }
.rad-context-meta { color: var(--rad-dim); font: 10px/1 var(--fonts-monospace); }

.rad-repo-content { width: min(100%, 1480px); margin: 0 auto; padding: 18px 22px 64px; }
.rad-source-pane { min-width: 0; }

/* Repository metadata is secondary, as in Explorer. */
.rad-repo-details {
  margin-top: 28px;
  padding-top: 16px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px;
  border-top: 1px solid var(--rad-border);
}

/* --- Flatten the GitHub/Gitea card language ------------------------------ */
.ui.segment,
.ui.segments,
.ui.menu,
.ui.card,
.ui.cards > .card,
.ui.message,
.ui.button,
.ui.label,
.ui.input > input,
.ui.form input,
.ui.form textarea,
.ui.dropdown,
.ui.selection.dropdown {
  box-shadow: none !important;
  border-radius: 2px !important;
}

.ui.segment,
.ui.segments,
.ui.menu,
.ui.card,
.ui.cards > .card {
  background: var(--rad-panel) !important;
  border-color: var(--rad-border) !important;
}

.ui.button {
  background: var(--rad-panel-2) !important;
  color: var(--rad-text) !important;
  border: 1px solid var(--rad-border) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}
.ui.button:hover { background: var(--rad-hover) !important; border-color: var(--rad-border-strong) !important; }
.ui.primary.button { background: var(--rad-accent) !important; color: #101014 !important; border-color: var(--rad-accent) !important; }

.ui.input > input,
.ui.form input,
.ui.form textarea,
.ui.selection.dropdown {
  background: var(--rad-ink) !important;
  color: var(--rad-text) !important;
  border-color: var(--rad-border) !important;
}
.ui.input > input:focus,
.ui.form input:focus,
.ui.form textarea:focus { border-color: var(--rad-accent) !important; box-shadow: 0 0 0 1px var(--rad-accent-soft) !important; }

.ui.header { color: var(--rad-text) !important; }
.ui.label { background: var(--rad-panel-2) !important; color: var(--rad-muted) !important; border: 1px solid var(--rad-border) !important; }

/* --- File browser --------------------------------------------------------- */
.repository.file.list .repo-file-list,
.repo-file-list {
  background: var(--rad-panel) !important;
  border: 1px solid var(--rad-border) !important;
  border-radius: 2px !important;
  overflow: hidden;
}

.repo-file-list tr { background: transparent !important; }
.repo-file-list tr:hover { background: var(--rad-hover) !important; }
.repo-file-list td { height: 34px !important; padding-top: 5px !important; padding-bottom: 5px !important; border-color: var(--rad-border) !important; font-size: 12px; }
.repo-file-list a { color: var(--rad-text) !important; }
.repo-file-list .commit-summary { color: var(--rad-muted) !important; }

/* Make the repository controls read as a toolbar rather than a GitHub card. */
.repository.file.list .repo-button-row,
.repository.file.list .file-header,
.repository.file.list .list-header {
  background: var(--rad-panel) !important;
  border-color: var(--rad-border) !important;
  box-shadow: none !important;
}

.repository.file.list .branch-dropdown .text,
.repository.file.list .breadcrumb,
.repository.file.list .commit-id,
.repository.file.list .sha {
  font-family: var(--fonts-monospace) !important;
}

/* Hide/flatten the old secondary-nav if a stock fragment leaks through. */
.repository > .secondary-nav { display: none !important; }
.repository .ui.tabs.divider { display: none !important; }

/* --- README and source viewer -------------------------------------------- */
#readme,
.non-diff-file-content,
.file-view-container {
  border-color: var(--rad-border) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

.file-header {
  background: var(--rad-panel) !important;
  border-color: var(--rad-border) !important;
  min-height: 40px;
}

.file-view-container,
.file-view,
.code-view,
.lines-code,
.lines-num { background: var(--rad-bg) !important; }

.lines-num { color: var(--rad-dim) !important; border-right: 1px solid var(--rad-border) !important; }
.code-inner, code, pre, .sha, .commit-id { font-family: var(--fonts-monospace) !important; }

.markup { color: var(--rad-text) !important; max-width: 980px; }
.markup h1, .markup h2, .markup h3, .markup h4 { color: var(--rad-text) !important; border-color: var(--rad-border) !important; letter-spacing: -.02em; }
.markup a { color: var(--rad-accent-strong) !important; }
.markup code { background: var(--rad-panel-2) !important; color: var(--rad-text) !important; border-radius: 2px !important; }
.markup pre { background: var(--rad-panel) !important; border: 1px solid var(--rad-border) !important; border-radius: 2px !important; }
.markup blockquote { color: var(--rad-muted) !important; border-color: var(--rad-border-strong) !important; }
.markup hr { border-color: var(--rad-border) !important; }

/* --- Dropdowns ------------------------------------------------------------ */
.ui.dropdown .menu {
  background: var(--rad-panel) !important;
  color: var(--rad-text) !important;
  border: 1px solid var(--rad-border) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.28) !important;
}
.ui.dropdown .menu > .item { color: var(--rad-text) !important; }
.ui.dropdown .menu > .item:hover { background: var(--rad-hover) !important; }

/* --- Footer --------------------------------------------------------------- */
.page-footer {
  margin-left: 0 !important;
  background: var(--rad-bg) !important;
  color: var(--rad-dim) !important;
  border-top: 1px solid var(--rad-border) !important;
  font-size: 11px !important;
}

/* --- Non-repository pages retain the rail but lose GitHub-like width ------- */
body > .full.height > .page-content:not(.repository),
.page-content:not(.repository) {
  background: var(--rad-bg) !important;
}

.ui.container { width: min(1220px, calc(100% - 40px)); max-width: none; }
.rad-repo-page .ui.container { width: 100%; margin: 0; }

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 900px) {
  :root { --rad-rail-width: 0px; --rad-repo-sidebar-width: 0px; }
  body { padding-left: 0; }
  .rad-global-rail { display: none !important; }
  #navbar { display: flex !important; }
  .page-content.repository { padding-left: 0 !important; }
  .rad-repo-sidebar { position: static; width: 100%; max-height: none; border-right: 0; border-bottom: 1px solid var(--rad-border); }
  .rad-repo-nav { display: flex; overflow-x: auto; gap: 4px; }
  .rad-repo-nav-item { grid-template-columns: 16px auto auto; flex: 0 0 auto; }
  .rad-repo-sidebar-footer { display: none; }
  .rad-repo-content { padding: 14px 12px 48px; }
  .rad-repo-details { grid-template-columns: 1fr; }
}
