gitea-theme-meta-info {
  --theme-display-name: "Robotail";
}

/* =========================================================
   Robotail Gitea Theme
   ========================================================= */

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

  --robotail-primary: #5d83ea;
  --robotail-primary-hover: #7396ff;
  --robotail-primary-dark: #4168d4;

  --robotail-bg: #0f141b;
  --robotail-bg-deep: #0b1017;
  --robotail-bg-soft: #151b24;
  --robotail-bg-card: #181f29;

  --robotail-border: #273244;
  --robotail-text: #dce5f5;
  --robotail-text-muted: #8d9bb0;

  --rt-radius-xs: 8px;
  --rt-radius-sm: 10px;
  --rt-radius-md: 12px;
  --rt-radius-lg: 16px;
  --rt-radius-xl: 20px;
  --rt-radius-hero: 28px;

  --color-primary: var(--robotail-primary);
  --color-primary-dark-1: #4d73d8;
  --color-primary-dark-2: #3f61bd;
  --color-primary-light-1: #7396ff;
  --color-primary-light-2: #8aabff;

  --color-body: var(--robotail-bg);
  --color-navbar: var(--robotail-bg-deep);
  --color-footer: var(--robotail-bg-deep);

  --color-box-header: var(--robotail-bg-soft);
  --color-box-body: var(--robotail-bg-card);
  --color-menu: var(--robotail-bg-soft);

  --color-secondary: var(--robotail-border);
  --color-secondary-alpha-40: rgba(93, 131, 234, 0.16);

  --color-text: var(--robotail-text);
  --color-text-light: var(--robotail-text-muted);
  --color-text-light-1: #a9b6c8;
  --color-text-light-2: #7f8da1;

  --color-input-background: #101722;
  --color-input-border: #2b374a;

  --color-button: #202a38;
  --color-button-hover: #28364a;
  --color-button-text: var(--robotail-text);

  --border-radius: var(--rt-radius-md);

  --fonts-proportional: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fonts-monospace: "JetBrains Mono", Consolas, "Liberation Mono", monospace;
}

/* =========================================================
   Base
   ========================================================= */

body {
  background:
    radial-gradient(circle at top left, rgba(93, 131, 234, 0.12), transparent 32rem),
    var(--color-body);
}

.page-content {
  padding-top: 28px;
}

.ui.container {
  width: min(1320px, calc(100% - 40px)) !important;
}

.ui.header,
h1,
h2,
h3,
h4 {
  color: var(--robotail-text);
}

a {
  color: var(--robotail-primary-hover);
}

a:hover {
  color: #9ab5ff;
}

/* =========================================================
   Top menu
   ========================================================= */

.ui.top.menu {
  min-height: 56px;
  border-bottom: 1px solid var(--robotail-border);
  border-radius: 0 !important;
  background: rgba(11, 16, 23, 0.96);
}

.ui.top.menu .item.brand {
  font-weight: 700;
}

/* =========================================================
   Buttons / forms
   ========================================================= */

.ui.button,
.ui.buttons .button,
.ui.labeled.icon.button,
.ui.icon.button,
.ui.basic.button,
.ui.primary.button,
.ui.compact.button,
button {
  border-radius: var(--rt-radius-md) !important;
}

.ui.button {
  background: var(--color-button);
  color: var(--color-button-text);
  border: 1px solid var(--robotail-border);
}

.ui.button:hover {
  background: var(--color-button-hover);
  color: #ffffff;
}

.ui.primary.button,
.ui.primary.buttons .button {
  background: var(--robotail-primary);
  border-color: var(--robotail-primary);
  color: #ffffff;
  font-weight: 600;
}

.ui.primary.button:hover,
.ui.primary.buttons .button:hover {
  background: var(--robotail-primary-hover);
  border-color: var(--robotail-primary-hover);
}

input,
textarea,
select,
.ui.input input,
.ui.form input,
.ui.form textarea,
.ui.dropdown {
  border-radius: var(--rt-radius-sm) !important;
}

/* =========================================================
   Cards / segments / tables
   ========================================================= */

.ui.segment,
.ui.attached.segment,
.ui.top.attached.segment,
.ui.bottom.attached.segment,
.ui.raised.segment,
.ui.segments,
.ui.card,
.ui.cards > .card,
.issue.list,
.feeds .list ul li,
.user.profile .ui.card,
.organization.profile .ui.card,
.repository .header-wrapper {
  border: 1px solid var(--robotail-border);
  border-radius: var(--rt-radius-lg) !important;
  background: var(--robotail-bg-card);
}

.ui.table,
.ui.celled.table {
  border-radius: var(--rt-radius-lg) !important;
  overflow: hidden;
}

.ui.vertical.menu {
  border-radius: var(--rt-radius-lg) !important;
  overflow: hidden;
}

.ui.menu .active.item,
.ui.tabular.menu .active.item {
  color: #ffffff;
  border-color: var(--robotail-primary);
}

.ui.small.menu,
.ui.secondary.menu,
.ui.tabular.menu {
  border-radius: var(--rt-radius-md) !important;
}

.ui.avatar.image,
.ui.avatar img,
img.ui.avatar {
  border-radius: var(--rt-radius-sm) !important;
}

/* =========================================================
   Attached blocks
   ========================================================= */

.ui.top.attached.header,
.ui.attached.header,
.ui.top.attached.menu,
.ui.attached.menu {
  border-radius: var(--rt-radius-lg) var(--rt-radius-lg) 0 0 !important;
  border-color: var(--robotail-border) !important;
  background: var(--robotail-bg-soft) !important;
  overflow: hidden !important;
}

.ui.top.attached.header + .ui.attached.segment,
.ui.attached.header + .ui.attached.segment,
.ui.top.attached.menu + .ui.attached.segment,
.ui.attached.menu + .ui.attached.segment {
  border-radius: 0 0 var(--rt-radius-lg) var(--rt-radius-lg) !important;
  overflow: hidden !important;
}

.ui.top.attached.header:last-child,
.ui.attached.header:last-child,
.ui.top.attached.menu:last-child,
.ui.attached.menu:last-child {
  border-radius: var(--rt-radius-lg) !important;
}

.ui.bottom.attached.segment {
  margin-top: 12px !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  border-radius: var(--rt-radius-lg) !important;
  border-top: 1px solid var(--robotail-border) !important;
}

.ui.attached.segment + .ui.bottom.attached.segment {
  margin-top: 12px !important;
}

/* =========================================================
   Home page
   ========================================================= */

.robotail-home-page {
  padding-top: 40px;
  padding-bottom: 56px;
}

.robotail-home-hero {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto 32px auto;
}

.robotail-home-card {
  display: flex;
  align-items: center;
  gap: 44px;
  padding: 48px;
  border: 1px solid var(--robotail-border);
  border-radius: var(--rt-radius-hero);
  background:
    radial-gradient(circle at top right, rgba(93, 131, 234, 0.18), transparent 30rem),
    var(--robotail-bg-card);
  box-shadow: 0 20px 70px rgba(0, 0, 0, 0.18);
}

.robotail-home-logo {
  width: 180px;
  height: auto;
  flex: 0 0 auto;
}

.robotail-home-content {
  flex: 1;
}

.robotail-home-content h1 {
  margin: 0 0 14px 0;
  font-size: 48px;
  line-height: 1.05;
  letter-spacing: -0.8px;
}

.robotail-home-subtitle {
  max-width: 680px;
  margin: 0 0 28px 0;
  font-size: 18px;
  line-height: 1.55;
  color: var(--robotail-text-muted);
}

.robotail-home-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.robotail-home-grid {
  margin-top: 28px;
}

.robotail-home-grid .ui.card {
  border-radius: var(--rt-radius-xl) !important;
  background: var(--robotail-bg-card);
  border: 1px solid var(--robotail-border);
}

.robotail-home-grid .ui.card .header {
  color: var(--robotail-text);
  margin-bottom: 10px;
}

.robotail-home-grid .ui.card .description {
  color: var(--robotail-text-muted);
  line-height: 1.5;
}

/* =========================================================
   Repository page
   ========================================================= */

/*
  Важно:
  .page-content.repository.file.list — это контейнер всей страницы репозитория.
  Его можно оформлять как карточку, но нельзя смешивать с обычными .ui.segment.
*/

.page-content.repository.file.list {
  display: block !important;

  width: fit-content !important;
  min-width: 920px !important;
  max-width: calc(100% - 48px) !important;

  margin: 32px auto 0 auto !important;
  padding: 28px !important;

  box-sizing: border-box;
  border: 1px solid var(--robotail-border) !important;
  border-radius: var(--rt-radius-xl) !important;
  background: var(--robotail-bg-card) !important;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.14);
}

.page-content.repository.file.list > .ui.container {
  width: fit-content !important;
  min-width: 860px !important;
  max-width: 100% !important;

  margin-left: auto !important;
  margin-right: auto !important;

  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Не даём внутренним таблицам ломать ширину карточки */
.page-content.repository.file.list table {
  max-width: 100% !important;
}

/* Файловая таблица остаётся нормальной ширины внутри карточки */
.page-content.repository.file.list .ui.table {
  width: 100% !important;
}

/* Боковой блок описания внутри репозитория */
.page-content.repository.file.list .repository-summary,
.page-content.repository.file.list .repo-description,
.page-content.repository.file.list .repo-summary {
  max-width: 320px;
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 1100px) {
  .page-content.repository.file.list {
    width: calc(100% - 24px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 24px) !important;

    margin-top: 20px !important;
    padding: 16px !important;
  }

  .page-content.repository.file.list > .ui.container {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* Icon-only repository actions on phones. */
@media (max-width: 768px) {
  .repository .repo-buttons button > span[aria-hidden="true"],
  .repository .repo-buttons .button > .text,
  .repository .js-btn-clone-panel > span {
    display: none !important;
  }

  .repository .repo-buttons .ui.compact.button,
  .repository .js-btn-clone-panel,
  .repository .repo-button-row a[href*="/find/"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0 !important;
  }

  /* "Go to file" has no icon in Gitea's template. */
  .repository .repo-button-row a[href*="/find/"] {
    font-size: 0 !important;
  }

  .repository .repo-button-row a[href*="/find/"]::before {
    content: "\2315";
    font-size: 22px;
    line-height: 1;
  }

  /* "Add file" contains an unwrapped text node, so collapse its font only. */
  .repository .repo-button-row .ui.dropdown.jump.button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0 !important;
    font-size: 0 !important;
  }

  .repository .repo-button-row .ui.dropdown.jump.button::before {
    content: "+";
    font-size: 24px;
    line-height: 1;
  }

  .repository .repo-button-row .ui.dropdown.jump.button > .svg,
  .repository .repo-button-row .ui.dropdown.jump.button > .menu {
    font-size: 14px !important;
  }
}

@media (max-width: 768px) {
  .robotail-home-card {
    flex-direction: column;
    text-align: center;
    padding: 32px 24px;
  }

  .robotail-home-logo {
    width: 140px;
  }

  .robotail-home-content h1 {
    font-size: 36px;
  }

  .robotail-home-actions {
    justify-content: center;
  }
}

/* =========================================================
   Repository page visual cleanup
   ========================================================= */

/* Не делаем всю страницу репозитория огромной карточкой */
.page-content.repository.file.list {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  padding: 0 !important;
  margin: 32px auto 0 auto !important;

  width: fit-content !important;
  min-width: 920px !important;
  max-width: calc(100% - 48px) !important;
}

/* Внутренний контейнер репозитория */
.page-content.repository.file.list > .ui.container {
  width: fit-content !important;
  min-width: 860px !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Основной блок с файлами делаем аккуратной карточкой */
.page-content.repository.file.list .repository.file.list,
.page-content.repository.file.list .repo-files,
.page-content.repository.file.list .file.list,
.page-content.repository.file.list table {
  border-radius: var(--rt-radius-lg) !important;
  overflow: hidden !important;
}

/* Правая колонка описания без огромного визуального растягивания */
.page-content.repository.file.list .repository-summary,
.page-content.repository.file.list .repo-description,
.page-content.repository.file.list .repo-summary {
  background: transparent !important;
  box-shadow: none !important;
}

/* Верхние кнопки: следить / избранное / форкнуть */
.page-content.repository.file.list .repo-buttons .ui.button,
.page-content.repository.file.list .repo-buttons .ui.labeled.button,
.page-content.repository.file.list .repo-buttons .ui.icon.button,
.page-content.repository.file.list .repo-buttons .ui.basic.button {
  border-radius: var(--rt-radius-md) !important;
}

/* Счётчики рядом с кнопками */
.page-content.repository.file.list .repo-buttons .ui.label,
.page-content.repository.file.list .repo-buttons .ui.basic.label {
  border-radius: var(--rt-radius-md) !important;
  background: var(--robotail-bg-soft) !important;
  border-color: var(--robotail-border) !important;
}

/* Чуть больше воздуха между верхними кнопками */
.page-content.repository.file.list .repo-buttons {
  gap: 8px !important;
}

/* =========================================================
   Robotail global background fix
   ========================================================= */

/* Убираем повторение фонового градиента при прокрутке */
html {
  background: var(--robotail-bg) !important;
}

body {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(93, 131, 234, 0.12), transparent 32rem),
    var(--robotail-bg) !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  background-size: 100vw 100vh !important;
}

/* =========================================================
   Repository card restore
   ========================================================= */

/* Карточку репозитория оставляем */
.page-content.repository.file.list {
  display: block !important;

  width: fit-content !important;
  min-width: 920px !important;
  max-width: calc(100% - 48px) !important;

  margin: 32px auto 0 auto !important;
  padding: 28px !important;

  box-sizing: border-box;
  border: 1px solid var(--robotail-border) !important;
  border-radius: var(--rt-radius-xl) !important;
  background: var(--robotail-bg-card) !important;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.14) !important;
}

/* =========================================================
   Robotail dropdown menus fix
   ========================================================= */

/* Выпадающие меню: Exact / Fuzzy / Regexp и похожие */
.ui.dropdown .menu,
.ui.selection.dropdown .menu,
.ui.floating.dropdown .menu {
  z-index: 9999 !important;

  background: var(--robotail-bg-soft) !important;
  border: 1px solid var(--robotail-border) !important;
  border-radius: var(--rt-radius-md) !important;

  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35) !important;
  overflow: hidden !important;
}

/* Пункты внутри dropdown */
.ui.dropdown .menu > .item,
.ui.selection.dropdown .menu > .item,
.ui.floating.dropdown .menu > .item {
  background: var(--robotail-bg-soft) !important;
  color: var(--robotail-text) !important;

  border-top: 1px solid rgba(255, 255, 255, 0.04) !important;
  padding: 10px 14px !important;
}

/* Первый пункт без верхней линии */
.ui.dropdown .menu > .item:first-child,
.ui.selection.dropdown .menu > .item:first-child,
.ui.floating.dropdown .menu > .item:first-child {
  border-top: 0 !important;
}

/* Наведение */
.ui.dropdown .menu > .item:hover,
.ui.selection.dropdown .menu > .item:hover,
.ui.floating.dropdown .menu > .item:hover {
  background: rgba(93, 131, 234, 0.18) !important;
  color: #ffffff !important;
}

/* Активный выбранный пункт */
.ui.dropdown .menu > .active.item,
.ui.selection.dropdown .menu > .active.item,
.ui.floating.dropdown .menu > .active.item {
  background: rgba(93, 131, 234, 0.24) !important;
  color: #ffffff !important;
}

/* Само поле dropdown */
.ui.selection.dropdown,
.ui.dropdown.selection {
  background: var(--robotail-bg-soft) !important;
  border-color: var(--robotail-border) !important;
  color: var(--robotail-text) !important;
  border-radius: var(--rt-radius-md) !important;
}

/* =========================================================
   Robotail dropdown layer / overflow fix
   ========================================================= */

/* Разрешаем выпадающим меню выходить за пределы карточек и форм */
.page-content.repository.file.list,
.page-content.repository.file.list > .ui.container,
.page-content.repository.file.list .ui.form,
.page-content.repository.file.list .field,
.page-content.repository.file.list .fields,
.page-content.repository.file.list .inline.field,
.page-content.repository.file.list .ui.segment,
.page-content.repository.file.list .ui.attached.segment {
  overflow: visible !important;
}

/* Сам dropdown должен быть выше соседних элементов */
.page-content.repository.file.list .ui.dropdown,
.page-content.repository.file.list .ui.selection.dropdown,
.page-content.repository.file.list .ui.search.dropdown {
  position: relative !important;
  z-index: 30000 !important;
}

/* Принудительно поднимаем открытое меню */
body .ui.dropdown.visible .menu,
body .ui.dropdown.active .menu,
body .ui.dropdown .menu.transition.visible,
body .ui.selection.dropdown.visible .menu,
body .ui.selection.dropdown.active .menu,
body .ui.selection.dropdown .menu.transition.visible {
  z-index: 40000 !important;

  background: var(--robotail-bg-soft) !important;
  border: 1px solid var(--robotail-primary) !important;
  border-radius: var(--rt-radius-md) !important;

  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55) !important;

  opacity: 1 !important;
  visibility: visible !important;
  overflow: hidden !important;
}

/* Пункты внутри выпадающего меню */
body .ui.dropdown .menu > .item,
body .ui.selection.dropdown .menu > .item {
  background: var(--robotail-bg-soft) !important;
  color: var(--robotail-text) !important;

  border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 10px 14px !important;
}

/* Наведение и активный пункт */
body .ui.dropdown .menu > .item:hover,
body .ui.selection.dropdown .menu > .item:hover,
body .ui.dropdown .menu > .active.item,
body .ui.selection.dropdown .menu > .active.item {
  background: rgba(93, 131, 234, 0.22) !important;
  color: #ffffff !important;
}

/* =========================================================
   Repository clone panel ("Code" button)
   ========================================================= */

/*
 * Gitea 1.23 renders this panel through Tippy, not as a .ui.dropdown.
 * Keep an explicit opaque background on both the popup and its Tippy shell
 * so repository content cannot show through while the panel is open.
 */
.tippy-box:has(.clone-panel-popup),
.tippy-content:has(> .clone-panel-popup),
.clone-panel-popup {
  background-color: var(--robotail-bg-soft) !important;
}

.tippy-box:has(.clone-panel-popup) {
  border-color: var(--robotail-border) !important;
  border-radius: var(--rt-radius-md) !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55) !important;
  opacity: 1 !important;
}

.clone-panel-popup {
  border-radius: inherit;
}

/*
 * The repository file list creates its own stacking contexts.  Keep Tippy
 * popups above them; otherwise commit dates are painted over the clone panel
 * and make it look transparent.
 */
body [data-tippy-root] {
  z-index: 50000 !important;
}

body [data-tippy-root] > .tippy-box,
body [data-tippy-root] > .tippy-box > .tippy-content {
  background-color: var(--robotail-bg-soft) !important;
  opacity: 1 !important;
}

/* =========================================================
   Repository layout width stability
   ========================================================= */

/*
 * Do not derive the repository width from README/file-list content.  A
 * fit-content page can become narrower on small repositories, forcing the
 * Settings tab into the overflow button and placing it over Activity.
 */
@media (min-width: 1101px) {
  .page-content.repository.file.list {
    width: calc(100% - 48px) !important;
    max-width: calc(100% - 48px) !important;
  }

  .page-content.repository.file.list > .ui.container,
  .page-content.repository.file.list .header-wrapper > .ui.container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .page-content.repository.file.list overflow-menu,
  .page-content.repository.file.list .overflow-menu-items {
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================
   Mobile repository navigation
   ========================================================= */

@media (max-width: 1100px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  /*
   * This block intentionally lives after the desktop "card restore" rules.
   * Those rules set min-width: 920px and otherwise win over the earlier
   * responsive section, producing a desktop-width repository on phones.
   */
  .page-content.repository.file.list {
    width: calc(100% - 16px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 16px) !important;
    margin: 12px auto 0 !important;
    padding: 12px !important;
    box-sizing: border-box !important;
  }

  .page-content.repository.file.list > .ui.container,
  .repository .secondary-nav,
  .repository .secondary-nav > .ui.container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .page-content.repository.file.list table,
  .page-content.repository.file.list .repo-home-filelist,
  .page-content.repository.file.list .repo-grid-filelist-sidebar,
  .page-content.repository.file.list .repo-grid-filelist-only {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /*
   * A compact width makes Gitea's native overflow-menu move every repository
   * section into its accessible popup instead of leaving a horizontal row.
   */
  .repository .secondary-nav overflow-menu {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    min-height: 44px;
    margin-left: auto !important;
    border-bottom: 0 !important;
  }

  .repository .secondary-nav .overflow-menu-items {
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    overflow: hidden !important;
  }

  .repository .secondary-nav .overflow-menu-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0 !important;
    color: var(--robotail-text) !important;
    background: var(--robotail-bg-soft) !important;
    border: 1px solid var(--robotail-border) !important;
    border-radius: var(--rt-radius-sm) !important;
  }

  .repository .secondary-nav .overflow-menu-button svg {
    display: none;
  }

  .repository .secondary-nav .overflow-menu-button::before {
    content: "\2630";
    font-size: 24px;
    line-height: 1;
  }
}
