/*
 * morphism.me — Forgejo custom skin
 * Target: Forgejo 16.x
 *
 * Dark green / charcoal base,
 * muted botanical green accents.
 */

/* ============================================================
 * COLOR SYSTEM
 * ========================================================== */

:root {
  --morphism-bg: #0d1410;
  --morphism-bg-raised: #111a15;

  --morphism-surface: #141e18;
  --morphism-surface-2: #1a2720;
  --morphism-surface-3: #223229;

  --morphism-border: #2b3c32;
  --morphism-border-strong: #3a5042;

  --morphism-green: #719b7d;
  --morphism-green-hover: #86b091;
  --morphism-green-active: #52705c;

  --morphism-text: #dfe8e2;
  --morphism-text-soft: #b4c3b9;
  --morphism-text-muted: #83978a;
  --morphism-text-dim: #66776c;

  --morphism-danger: #d86c6c;

  /*
   * Forgejo theme variables.
   *
   * The nav-specific variables are important:
   * Forgejo's built-in dark theme otherwise keeps the blue-black navbar.
   */
  --color-primary: var(--morphism-green) !important;
  --color-primary-hover: var(--morphism-green-hover) !important;
  --color-primary-active: var(--morphism-green-active) !important;

  --color-body: var(--morphism-bg) !important;

  --color-box-header: var(--morphism-surface) !important;
  --color-box-body: var(--morphism-surface) !important;

  --color-secondary: var(--morphism-surface-2) !important;
  --color-secondary-hover: var(--morphism-surface-3) !important;
  --color-secondary-active: #293b30 !important;

  --color-border: var(--morphism-border) !important;

  --color-text: var(--morphism-text) !important;
  --color-text-light: var(--morphism-text-soft) !important;
  --color-text-light-2: var(--morphism-text-muted) !important;
  --color-text-light-3: var(--morphism-text-dim) !important;

  --color-menu: var(--morphism-surface) !important;
  --color-card: var(--morphism-surface) !important;

  --color-input-background: #17221b !important;
  --color-input-border: var(--morphism-border-strong) !important;

  --color-nav-bg: #111b15 !important;
  --color-nav-hover-bg: #1b2a21 !important;
  --color-nav-text: var(--morphism-text-soft) !important;

  --color-secondary-nav-bg: #0f1712 !important;
  --color-footer: #0f1712 !important;
}


/* ============================================================
 * GLOBAL
 * ========================================================== */

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

body {
  background:
    radial-gradient(
      circle at 50% -220px,
      #1a2c21 0,
      #111a15 260px,
      var(--morphism-bg) 620px
    ) !important;
}

a {
  color: var(--morphism-green);
}

a:hover {
  color: var(--morphism-green-hover);
}

::selection {
  background: rgba(113, 155, 125, 0.35);
  color: #fff;
}


/* ============================================================
 * TOP NAVIGATION
 * ========================================================== */

/*
 * Multiple selectors are intentional here.
 * They make the override tolerant of small Forgejo DOM changes.
 */

#navbar,
nav#navbar,
.full.height > .ui.menu:first-child {
  background:
    linear-gradient(
      90deg,
      #0f1712 0%,
      #121e17 52%,
      #16251c 100%
    ) !important;

  border-bottom: 1px solid var(--morphism-border) !important;

  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.018),
    0 5px 20px rgba(0, 0, 0, 0.18) !important;
}

#navbar .item,
nav#navbar .item {
  color: var(--morphism-text-soft) !important;
}

#navbar .item:hover,
nav#navbar .item:hover {
  color: var(--morphism-text) !important;
  background: rgba(113, 155, 125, 0.09) !important;
}

#navbar svg,
nav#navbar svg {
  color: #b7c5bc !important;
}

#navbar .item:hover svg,
nav#navbar .item:hover svg {
  color: #e3ebe6 !important;
}


/* ============================================================
 * SECONDARY NAVIGATION
 * ========================================================== */

.secondary-nav,
.page-header,
.dashboard-navbar {
  background: #0f1712 !important;
  border-color: var(--morphism-border) !important;
}


/* ============================================================
 * CARDS / PANELS / SEGMENTS
 * ========================================================== */

.ui.segment,
.ui.segments,
.ui.card,
.ui.cards > .card {
  background: var(--morphism-surface) !important;
  border-color: var(--morphism-border) !important;
  box-shadow: none !important;
}

.ui.segment:hover,
.ui.card:hover {
  border-color: var(--morphism-border-strong) !important;
}


/* ============================================================
 * MENUS / TABS
 * ========================================================== */

.ui.menu {
  border-color: var(--morphism-border) !important;
}

.ui.menu .item {
  color: var(--morphism-text-soft) !important;
}

.ui.menu .item:hover {
  color: var(--morphism-text) !important;
}

.ui.menu .active.item {
  color: var(--morphism-text) !important;
}

.ui.secondary.pointing.menu .active.item {
  border-color: var(--morphism-green) !important;
}

.ui.tabular.menu .active.item,
.ui.menu .active.item {
  background: #293a31 !important;
}


/* ============================================================
 * BUTTONS
 * ========================================================== */

.ui.button {
  background: var(--morphism-surface-2) !important;
  color: var(--morphism-text) !important;
  border-color: var(--morphism-border-strong) !important;
  box-shadow: none !important;
}

.ui.button:hover {
  background: var(--morphism-surface-3) !important;
}

.ui.primary.button,
.ui.green.button {
  background: var(--morphism-green) !important;
  border-color: var(--morphism-green) !important;
  color: #0b110d !important;
}

.ui.primary.button:hover,
.ui.green.button:hover {
  background: var(--morphism-green-hover) !important;
  border-color: var(--morphism-green-hover) !important;
}


/* ============================================================
 * INPUTS
 * ========================================================== */

input,
textarea,
select,
.ui.input > input {
  background: #17221b !important;
  color: var(--morphism-text) !important;
  border-color: var(--morphism-border-strong) !important;
}

input:focus,
textarea:focus,
select:focus,
.ui.input > input:focus {
  border-color: var(--morphism-green) !important;

  box-shadow:
    0 0 0 1px rgba(113, 155, 125, 0.18) !important;
}

input::placeholder,
textarea::placeholder {
  color: var(--morphism-text-muted) !important;
}


/* ============================================================
 * LABELS
 * ========================================================== */

.ui.label {
  background: #33463a !important;
  color: var(--morphism-text) !important;
  border-color: #415648 !important;
}

.ui.basic.label {
  background: transparent !important;
}


/* ============================================================
 * REPOSITORY / DASHBOARD LISTS
 * ========================================================== */

.repository.list,
.repo-list,
.dashboard-repos {
  background: transparent !important;
}

.repository.list .item,
.repo-list .item {
  border-color: rgba(113, 155, 125, 0.12) !important;
}

.repository.list .item:hover,
.repo-list .item:hover {
  background: rgba(113, 155, 125, 0.035) !important;
}

.repo-title a,
.repository.list a.name {
  color: var(--morphism-text) !important;
}

.repo-title a:hover,
.repository.list a.name:hover {
  color: var(--morphism-green-hover) !important;
}


/* ============================================================
 * ACTIVITY FEED
 * ========================================================== */

.feeds .news,
.dashboard.feeds .news {
  border-color: rgba(113, 155, 125, 0.12) !important;
}

.feeds .news:hover {
  background: rgba(113, 155, 125, 0.025) !important;
}

.feeds a {
  color: var(--morphism-green) !important;
}

.feeds a:hover {
  color: var(--morphism-green-hover) !important;
}


/* ============================================================
 * DROPDOWNS
 * ========================================================== */

.ui.dropdown .menu {
  background: var(--morphism-surface-2) !important;
  border-color: var(--morphism-border) !important;

  box-shadow:
    0 10px 35px rgba(0, 0, 0, 0.38) !important;
}

.ui.dropdown .menu > .item {
  color: var(--morphism-text-soft) !important;
}

.ui.dropdown .menu > .item:hover {
  background: var(--morphism-surface-3) !important;
  color: var(--morphism-text) !important;
}


/* ============================================================
 * TABLES
 * ========================================================== */

.ui.table {
  background: var(--morphism-surface) !important;
  color: var(--morphism-text) !important;
  border-color: var(--morphism-border) !important;
}

.ui.table thead th {
  background: var(--morphism-surface-2) !important;
  color: var(--morphism-text-soft) !important;
  border-color: var(--morphism-border) !important;
}

.ui.table tr td {
  border-color: rgba(113, 155, 125, 0.1) !important;
}


/* ============================================================
 * CODE
 * ========================================================== */

code,
pre,
.markup code {
  background: #0d1510 !important;
  border-color: var(--morphism-border) !important;
}


/* ============================================================
 * FOOTER
 * ========================================================== */

footer {
  background: #0f1712 !important;
  color: var(--morphism-text-muted) !important;
  border-color: var(--morphism-border) !important;
}

footer a {
  color: var(--morphism-text-muted) !important;
}

footer a:hover {
  color: var(--morphism-green-hover) !important;
}


/* ============================================================
 * SCROLLBAR
 * ========================================================== */

* {
  scrollbar-color: #3e5446 #0d1410;
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: #0d1410;
}

::-webkit-scrollbar-thumb {
  background: #3e5446;
  border: 2px solid #0d1410;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: #526b5a;
}


/* ============================================================
 * RESPONSIVE
 * ========================================================== */

@media (max-width: 767px) {
  #navbar,
  nav#navbar {
    min-height: 50px;
  }


/* ============================================================
 * MORPHISM TEXT BRAND
 * ========================================================== */

#navbar-logo {
  padding-left: 20px !important;
  padding-right: 24px !important;
  text-decoration: none !important;
}

.morphism-navbar-brand {
  display: inline-flex;
  align-items: baseline;

  white-space: nowrap;

  font-family:
    ui-monospace,
    "Cascadia Code",
    "SFMono-Regular",
    "Roboto Mono",
    "Liberation Mono",
    Menlo,
    Consolas,
    monospace;

  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.035em;

  color: #dfe8e2;
}

.morphism-navbar-service {
  margin-left: 0.28rem;

  font-size: 0.78rem;
  font-weight: 450;
  letter-spacing: 0.02em;

  color: #71897d;
}

#navbar-logo:hover .morphism-navbar-brand {
  color: #ffffff;
}

#navbar-logo:hover .morphism-navbar-service {
  color: #8fb39a;
}

@media (max-width: 600px) {
  #navbar-logo {
    padding-left: 14px !important;
    padding-right: 12px !important;
  }

  .morphism-navbar-brand {
    font-size: 0.84rem;
  }

  .morphism-navbar-service {
    display: none;
  }
}
