/* ============================================================
   MI TEMA — emerald.dev (CLARO)
   Estilo: MINIMAL (inspirado en motion.dev)
   - Fondo blanco + grid de puntos sutil
   - Hairlines finas 1px, esquinas cuadradas, SIN sombras pesadas
   - Emerald #04D976 SOLO como acento (links, primario, foco)

   Autocontenido: NO importa el tema de fábrica de Gitea
   (antes: @import url("/assets/css/theme-gitea-light.css")).
   Desde Gitea 1.27 ese archivo se sirve con un nombre hasheado
   por Vite (ej. theme-gitea-light.XXXXXXXX.css) que cambia en cada
   build, así que la ruta fija siempre terminaba en 404 tarde o
   temprano — eso dejaba sin definir buena parte de la paleta base
   (heatmap, dropdowns, tooltips, diffs, sintaxis, labels...).
   La sección "PALETA BASE DE GITEA" de abajo es una copia fiel del
   :root de web_src/css/themes/theme-gitea-light.css (Gitea v1.27.2);
   la sección "OVERRIDES DE MARCA" la pisa con los valores propios.
   Contraste validado con a11y-contrast-test.mjs
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap");

gitea-theme-meta-info {
  --theme-display-name: "emerald (light)";
  --theme-color-scheme: "light";
}

:root {
  /* ============================================================
     PALETA BASE DE GITEA — copiada de theme-gitea-light.css (v1.27.2)
     ============================================================ */
  --is-dark-theme: false;
  --color-primary: #4183c4;
  --color-primary-contrast: #ffffff;
  --color-primary-dark-1: #3876b3;
  --color-primary-dark-2: #31699f;
  --color-primary-dark-3: #2b5c8b;
  --color-primary-dark-4: #254f77;
  --color-primary-dark-5: #193450;
  --color-primary-dark-6: #0c1a28;
  --color-primary-dark-7: #04080c;
  --color-primary-light-1: #548fca;
  --color-primary-light-2: #679cd0;
  --color-primary-light-3: #7aa8d6;
  --color-primary-light-4: #8db5dc;
  --color-primary-light-5: #b3cde7;
  --color-primary-light-6: #d9e6f3;
  --color-primary-light-7: #f4f8fb;
  --color-primary-alpha-10: #4183c419;
  --color-primary-alpha-20: #4183c433;
  --color-primary-alpha-30: #4183c44b;
  --color-primary-alpha-40: #4183c466;
  --color-primary-alpha-50: #4183c480;
  --color-primary-alpha-60: #4183c499;
  --color-primary-alpha-70: #4183c4b3;
  --color-primary-alpha-80: #4183c4cc;
  --color-primary-alpha-90: #4183c4e1;
  --color-primary-hover: var(--color-primary-dark-1);
  --color-primary-active: var(--color-primary-dark-2);
  --color-secondary: #d0d7de;
  --color-secondary-dark-1: #c7ced5;
  --color-secondary-dark-2: #b9c0c7;
  --color-secondary-dark-3: #99a0a7;
  --color-secondary-dark-4: #899097;
  --color-secondary-dark-5: #7a8188;
  --color-secondary-dark-6: #6a7178;
  --color-secondary-dark-7: #5b6269;
  --color-secondary-dark-8: #4b5259;
  --color-secondary-dark-9: #3c434a;
  --color-secondary-dark-10: #2c333a;
  --color-secondary-dark-11: #1d242b;
  --color-secondary-dark-12: #0d141b;
  --color-secondary-dark-13: #00040b;
  --color-secondary-light-1: #dee5ec;
  --color-secondary-light-2: #e4ebf2;
  --color-secondary-light-3: #ebf2f9;
  --color-secondary-light-4: #f1f8ff;
  --color-secondary-alpha-10: #d0d7de19;
  --color-secondary-alpha-20: #d0d7de33;
  --color-secondary-alpha-30: #d0d7de4b;
  --color-secondary-alpha-40: #d0d7de66;
  --color-secondary-alpha-50: #d0d7de80;
  --color-secondary-alpha-60: #d0d7de99;
  --color-secondary-alpha-70: #d0d7deb3;
  --color-secondary-alpha-80: #d0d7decc;
  --color-secondary-alpha-90: #d0d7dee1;
  --color-secondary-button: var(--color-secondary-dark-4);
  --color-secondary-hover: var(--color-secondary-dark-5);
  --color-secondary-active: var(--color-secondary-dark-6);
  /* console colors - used for actions console and console files */
  --color-console-fg: #0d1117;
  --color-console-fg-subtle: #40474d;
  --color-console-bg: #ffffff;
  --color-console-border: #d0d7de;
  --color-console-hover-bg: #f1f3f5;
  --color-console-active-bg: #d0d7de;
  --color-console-menu-bg: #f8f9fb;
  --color-console-menu-border: #d0d7de;
  --color-console-link: #5c656d;
  /* named colors */
  --color-red: #db2828;
  --color-orange: #f2711c;
  --color-yellow: #fbbd08;
  --color-olive: #b5cc18;
  --color-green: #21ba45;
  --color-teal: #00b5ad;
  --color-blue: #2185d0;
  --color-violet: #6435c9;
  --color-purple: #a333c8;
  --color-pink: #e03997;
  --color-brown: #a5673f;
  --color-black: #1d2328;
  /* light variants - produced via Sass scale-color(color, $lightness: +25%) */
  --color-red-light: #e45e5e;
  --color-orange-light: #f59555;
  --color-yellow-light: #fcce46;
  --color-olive-light: #d3e942;
  --color-green-light: #46de6a;
  --color-teal-light: #08fff4;
  --color-blue-light: #51a5e3;
  --color-violet-light: #8b67d7;
  --color-purple-light: #bb64d8;
  --color-pink-light: #e86bb1;
  --color-brown-light: #c58b66;
  --color-black-light: #4b5b68;
  /* dark 1 variants - produced via Sass scale-color(color, $lightness: -10%) */
  --color-red-dark-1: #c82121;
  --color-orange-dark-1: #e6630d;
  --color-yellow-dark-1: #e5ac04;
  --color-olive-dark-1: #a3b816;
  --color-green-dark-1: #1ea73e;
  --color-teal-dark-1: #00a39c;
  --color-blue-dark-1: #1e78bb;
  --color-violet-dark-1: #5a30b5;
  --color-purple-dark-1: #932eb4;
  --color-pink-dark-1: #db228a;
  --color-brown-dark-1: #955d39;
  --color-black-dark-1: #2c3339;
  /* dark 2 variants - produced via Sass scale-color(color, $lightness: -20%) */
  --color-red-dark-2: #b11e1e;
  --color-orange-dark-2: #cc580c;
  --color-yellow-dark-2: #cc9903;
  --color-olive-dark-2: #91a313;
  --color-green-dark-2: #1a9537;
  --color-teal-dark-2: #00918a;
  --color-blue-dark-2: #1a6aa6;
  --color-violet-dark-2: #502aa1;
  --color-purple-dark-2: #8229a0;
  --color-pink-dark-2: #c21e7b;
  --color-brown-dark-2: #845232;
  --color-black-dark-2: #131619;
  /* ansi colors used for actions console and console files */
  --color-ansi-black: #1e2327;
  --color-ansi-red: #cc4848;
  --color-ansi-green: #87ab63;
  --color-ansi-yellow: #cc9903;
  --color-ansi-blue: #3a8ac6;
  --color-ansi-magenta: #d22e8b;
  --color-ansi-cyan: #00918a;
  --color-ansi-white: var(--color-console-fg-subtle);
  --color-ansi-bright-black: #46494d;
  --color-ansi-bright-red: #d15a5a;
  --color-ansi-bright-green: #93b373;
  --color-ansi-bright-yellow: #eaaf03;
  --color-ansi-bright-blue: #4e96cc;
  --color-ansi-bright-magenta: #d74397;
  --color-ansi-bright-cyan: #00b6ad;
  --color-ansi-bright-white: var(--color-console-fg);
  /* 16-color series */
  --color-series-16-0: #7db233;
  --color-series-16-1: #499a37;
  --color-series-16-2: #ce4751;
  --color-series-16-3: #8f9121;
  --color-series-16-4: #ac32a6;
  --color-series-16-5: #7445e9;
  --color-series-16-6: #c67d28;
  --color-series-16-7: #4db392;
  --color-series-16-8: #aa4d30;
  --color-series-16-9: #2a6f84;
  --color-series-16-10: #c45327;
  --color-series-16-11: #3d965c;
  --color-series-16-12: #792a93;
  --color-series-16-13: #439d73;
  --color-series-16-14: #103aad;
  --color-series-16-15: #982e85;
  /* other colors */
  --color-grey: #697077;
  --color-grey-light: #7c838a;
  --color-gold: #a1882b;
  --color-white: #ffffff;
  --color-diff-added-fg: #177231;
  --color-diff-added-linenum-bg: #d1f8d9;
  --color-diff-added-row-bg: #e6ffed;
  --color-diff-added-row-border: #e6ffed;
  --color-diff-added-word-bg: #acf2bd;
  --color-diff-moved-row-bg: #f1f8d1;
  --color-diff-moved-row-border: #d0e27f;
  --color-diff-removed-fg: #c61f2b;
  --color-diff-removed-linenum-bg: #ffcecb;
  --color-diff-removed-row-bg: #ffeef0;
  --color-diff-removed-row-border: #f1c0c0;
  --color-diff-removed-word-bg: #fdb8c0;
  --color-diff-inactive: #f0f2f4;
  --color-error-border: #ff818266;
  --color-error-bg: #ffebe9;
  --color-error-bg-active: #ffcecb;
  --color-error-bg-hover: #ffdcd7;
  --color-error-text: #d1242f;
  --color-success-border: #4ac26b66;
  --color-success-bg: #dafbe1;
  --color-success-text: #1a7f37;
  --color-warning-border: #d4a72c66;
  --color-warning-bg: #fff8c5;
  --color-warning-text: #9a6700;
  --color-info-border: #54aeff66;
  --color-info-bg: #ddf4ff;
  --color-info-text: #0969da;
  --color-priority-border: #b9a1ff66;
  --color-priority-bg: #f3e7ff;
  --color-priority-text: #8250df;
  --color-red-badge: #db2828;
  --color-red-badge-bg: #db28281a;
  --color-red-badge-hover-bg: #db28284d;
  --color-green-badge: #21ba45;
  --color-green-badge-bg: #21ba451a;
  --color-green-badge-hover-bg: #21ba454d;
  --color-yellow-badge: #fbbd08;
  --color-yellow-badge-bg: #fbbd081a;
  --color-yellow-badge-hover-bg: #fbbd084d;
  --color-orange-badge: #f2711c;
  --color-orange-badge-bg: #f2711c1a;
  --color-orange-badge-hover-bg: #f2711c4d;
  --color-git: #f05133;
  --color-logo: #609926;
  /* target-based colors */
  --color-body: #ffffff;
  --color-box-header: #f1f3f5;
  --color-box-body: #ffffff;
  --color-box-body-highlight: #ecf5fd;
  --color-text-dark: #01050a;
  --color-text: #181c21;
  --color-text-light: #30363b;
  --color-text-light-1: #40474d;
  --color-text-light-2: #5b6167;
  --color-text-light-3: #747c84;
  --color-footer: var(--color-nav-bg);
  --color-timeline: #d0d7de;
  --color-input-text: var(--color-text-dark);
  --color-input-background: #fff;
  --color-input-toggle-background: #d0d7de;
  --color-input-border: var(--color-secondary-dark-1);
  --color-light: #00001706;
  --color-light-border: #0000171d;
  --color-hover: #00001708;
  --color-hover-opaque: #f1f3f5;
  --color-active: #00001714;
  --color-menu: #f8f9fb;
  --color-card: #f8f9fb;
  --color-markup-table-row: #0030600a;
  --color-markup-code-block: #00306010;
  --color-markup-code-inline: #00306012;
  --color-button: #f8f9fb;
  --color-code-bg: #fafdff;
  --color-shadow: #00001726;
  --color-shadow-opaque: #c7ced5;
  --color-secondary-bg: #f2f5f8;
  --color-expand-button: #cfe8fa;
  --color-placeholder-text: var(--color-text-light-3);
  --color-editor-line-highlight: var(--color-secondary-alpha-30);
  --color-editor-selection: var(--color-primary-alpha-30);
  --color-project-column-bg: var(--color-secondary-light-4);
  --color-caret: var(--color-text-dark);
  --color-reaction-bg: #0000170a;
  --color-reaction-hover-bg: var(--color-primary-light-5);
  --color-reaction-active-bg: var(--color-primary-light-6);
  --color-tooltip-text: #fbfdff;
  --color-tooltip-bg: #000017f0;
  --color-nav-bg: #f6f7fa;
  --color-nav-hover-bg: var(--color-secondary-light-1);
  --color-nav-text: var(--color-text);
  --color-secondary-nav-bg: #f9fafb;
  --color-label-text: var(--color-text);
  --color-label-bg: #949da64b;
  --color-label-hover-bg: #949da6a0;
  --color-label-active-bg: #949da6ff;
  --color-accent: var(--color-primary-light-1);
  --color-small-accent: var(--color-primary-light-6);
  --color-highlight-fg: #eed200;
  --color-highlight-bg: #f5efc5;
  --color-overlay-backdrop: #080808c0;
  --color-danger: var(--color-red);
  --color-transparency-grid-light: #fafafa;
  --color-transparency-grid-dark: #e2e2e2;
  --color-workflow-edge-hover: #b1b7bd;
  --color-syntax-keyword: #a73a00;
  --color-syntax-bool: #076872;
  --color-syntax-control: #7d5700;
  --color-syntax-name: #785900;
  --color-syntax-type: #ae2368;
  --color-syntax-number: #105ead;
  --color-syntax-operator: #a73a00;
  --color-syntax-regexp: #773dc5;
  --color-syntax-string: #456800;
  --color-syntax-comment: #506070;
  --color-syntax-invalid: #c00000;
  --color-syntax-link: var(--color-primary);
  --color-syntax-tag: #a73a00;
  --color-syntax-attribute: #6f41c5;
  --color-syntax-property: #2060a0;
  --color-syntax-variable: #944a00;
  --color-syntax-string-special: #7d5700;
  --color-syntax-escape: #785900;
  --color-syntax-entity: #6f41c5;
  --color-syntax-preproc: #2d6a4b;
  --color-syntax-preproc-file: #105ead;
  --color-syntax-decorator: #2d6a4b;
  --color-syntax-namespace: #555555;
  --color-syntax-name-pseudo: #6f41c5;
  --color-syntax-comment-special: #773dc5;
  --color-syntax-text: inherit;
  --color-syntax-text-alt: #47525b;
  --color-syntax-punctuation: inherit;
  --color-syntax-whitespace: #bbbbbb;
  --color-syntax-diff-fg: #000000;
  --color-syntax-deleted-bg: #ffdddd;
  --color-syntax-inserted-bg: #ddffdd;
  --color-syntax-emph: #8b5000;
  --color-syntax-strong: inherit;
  --color-syntax-heading: #7d5700;
  --color-syntax-subheading: #456800;
  --color-syntax-output: #506070;
  --color-syntax-prompt: #944a00;
  --color-syntax-traceback: #c00000;
  --color-syntax-matching-bracket-bg: #00b5ad38;
  --color-syntax-nonmatching-bracket-bg: #db282838;
  accent-color: var(--color-accent);
  color-scheme: light;

  /* ============================================================
     OVERRIDES DE MARCA — emerald.dev (pisa lo de arriba)
     ============================================================ */
  --is-dark-theme: false;

  /* Tipografía (DS). Overused Grotesk (cuerpo) no está en Google Fonts
     -> sustituido por Space Grotesk. Reemplazar en prod. */
  --fonts-proportional: "Space Grotesk", -apple-system, "Segoe UI", system-ui, Roboto, Arial;
  --fonts-monospace: "Space Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Primario = emerald */
  --color-primary: #04d976;
  --color-primary-contrast: #16201b;   /* ink sobre esmeralda */
  --color-primary-hover: #04b463;
  --color-primary-active: #038a4c;
  --color-primary-dark-1: #04b463;
  --color-primary-dark-2: #038a4c;
  --color-primary-dark-3: #036338;
  --color-primary-dark-4: #023f24;
  --color-primary-dark-5: #023f24;
  --color-primary-dark-6: #012f1b;
  --color-primary-dark-7: #012414;
  --color-primary-light-1: #46e592;
  --color-primary-light-2: #84efb6;
  --color-primary-light-3: #b9f7d6;
  --color-primary-light-4: #e3fcef;
  --color-primary-light-5: #eefdf4;
  --color-primary-light-6: #f5fef9;
  --color-primary-light-7: #fafffc;
  --color-primary-alpha-10: rgba(4, 217, 118, .10);
  --color-primary-alpha-20: rgba(4, 217, 118, .20);
  --color-primary-alpha-30: rgba(4, 217, 118, .30);
  --color-primary-alpha-40: rgba(4, 217, 118, .40);
  --color-primary-alpha-50: rgba(4, 217, 118, .50);
  --color-primary-alpha-60: rgba(4, 217, 118, .60);
  --color-primary-alpha-70: rgba(4, 217, 118, .70);
  --color-primary-alpha-80: rgba(4, 217, 118, .80);
  --color-primary-alpha-90: rgba(4, 217, 118, .90);

  /* Superficies y texto (rampa Carbon) */
  --color-body: #ffffff;
  --color-text: #262626;
  --color-text-light: #6f6f6f;
  --color-text-light-1: #6f6f6f;
  --color-text-light-2: #8d8d8d;
  --color-text-light-3: #a8a8a8;
  --color-box-body: #ffffff;
  --color-box-header: #f4f4f4;
  --color-light: #f4f4f4;
  --color-hover: #f4f4f4;
  --color-active: #e0e0e0;
  --color-secondary: #e0e0e0;          /* borde hairline */
  --color-secondary-alpha-50: rgba(224, 224, 224, .5);
  --color-secondary-alpha-60: rgba(224, 224, 224, .6); /* heatmap: celda sin contribuciones */
  --color-tooltip-bg: #16201b;         /* tooltips (ej. hover del heatmap) */
  --color-tooltip-text: #f4f4f4;

  /* Navegación (ink oscuro del DS) */
  --color-nav-bg: #16201b;
  --color-nav-hover-bg: #1f2a24;
  --color-nav-text: #f4f4f4;
  --color-footer: #ffffff;

  /* Forma minimal */
  --border-radius: 0;
  --border-radius-medium: 0;
  --border-radius-full: 9999px;

  /* Grid de puntos (fondo) */
  --dot-color: rgba(22, 32, 27, .06);
}

/* ============================================================
   NIVEL 2 — minimal (hairlines + grid, SIN sombras)
   ============================================================ */

/* Fondo con grid de puntos sutil, estilo motion.dev */
body {
  background-color: var(--color-body);
  background-image: radial-gradient(var(--dot-color) 1px, transparent 1px);
  background-size: 22px 22px;
}

/* Link emerald oscuro (contraste AA sobre blanco) */
.link,
a:not(.ui):not(.button):not(.label):not(.item) {
  color: #036338;
}

/* Cajas/segmentos/menús: hairline 1px, cuadrado, sin sombra */
.ui.card,
.ui.segment,
.ui.attached.segment,
.repository .ui.segment,
.ui.menu,
.ui.dropdown .menu,
.ui.box,
.issue.list > .item {
  border: 1px solid var(--color-secondary) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Botones: cuadrados, hairline, sin sombra; primario emerald */
.ui.button {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.ui.basic.button,
.ui.secondary.button {
  border: 1px solid #16201b !important;
}

/* Inputs de texto cuadrados, hairline. Los radios y checkboxes tienen
   indicadores propios de Gitea; no pisarlos o se pierde el estado checked. */
.ui.input > input:not([type="checkbox"], [type="radio"]),
.ui.form input:not([type="checkbox"], [type="radio"]),
.ui.selection.dropdown {
  border-radius: 0 !important;
  border: 1px solid var(--color-secondary) !important;
}
.ui.input > input:not([type="checkbox"], [type="radio"]):focus,
.ui.form input:not([type="checkbox"], [type="radio"]):focus {
  border-color: #16201b !important;
}

/* SEGURIDAD A11Y: el hover/activo nunca tapa el texto
   (fondo sutil + texto de cuerpo, contraste alto garantizado) */
.ui.menu .item:hover,
.ui.dropdown .menu > .item:hover,
.ui.list .item:hover {
  background: var(--color-hover) !important;
  color: var(--color-text) !important;
}
.ui.dropdown .menu > .active.item,
.ui.dropdown .menu > .selected.item {
  background: var(--color-active) !important;
  color: var(--color-text) !important;
}

/* SEGURIDAD A11Y (navbar): el navbar es ink oscuro, así que sus
   ítems en hover/activo/selected deben usar fondo OSCURO + texto
   claro. Sin esto, Gitea aplica el hover gris del cuerpo y queda
   texto blanco sobre gris claro (ilegible). */
#navbar .item:hover,
#navbar .item.active,
#navbar .item:focus,
#navbar .active.item,
#navbar .dropdown .item:hover {
  background: var(--color-nav-hover-bg) !important;
  color: var(--color-nav-text) !important;
}

/* Fondo opaco explícito del menú desplegable: no depender del --color-menu
   heredado del tema base de Gitea, que puede cambiar entre versiones. */
.ui.dropdown .menu {
  background-color: var(--color-box-body) !important;
}

/* Código: en el tema CLARO NO forzamos fondo oscuro; el código va
   sobre fondo claro con syntax highlighting nativo de gitea-light
   (consistente con el resto de la interfaz). El fondo oscuro tipo
   terminal se reserva para el tema oscuro. */

/* ============================================================
   FOOTER BRANDED — logotipo emerald.dev (IZQUIERDA) + "it from bit" (CENTRO)
   Quita "Powered by Gitea". Frase en fuente de píxeles Pixelify Sans.
   ============================================================ */
footer.page-footer {
  position: relative;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;                 /* centra la frase (::after) */
}
footer.page-footer .left-links { display: none; }   /* fuera "Powered by Gitea…" */

/* Logotipo alineado a la IZQUIERDA */
footer.page-footer::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 132px;
  height: 22px;
  background: url("/assets/img/footer-logo-on-light.svg") no-repeat left center;
  background-size: auto 22px;
}

/* "it from bit" CENTRADO, fuente de píxeles */
footer.page-footer::after {
  content: "it from bit";
  font-family: "Pixelify Sans", monospace;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .5px;
  color: var(--color-text-light);
}

/* English / Licenses / API a la derecha */
footer.page-footer .right-links {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}
