/* IMCYC · Manual de Identidad Gráfica, 2004. Gitea 28.1.0. */
:root {
  --imcyc-blue: #006581;
  --imcyc-gray: #b4b5b3;
  --imcyc-ink: #193645;
  --imcyc-muted: #586f7a;
  --imcyc-line: #dce5e9;
  --imcyc-paper: #ffffff;
  --imcyc-canvas: #f4f7f8;
  --imcyc-tint: #eaf3f5;
  --imcyc-shadow: 0 18px 60px #163a4910, 0 2px 6px #163a4905;
  --font-family: Frutiger, "Frutiger Linotype", "Segoe UI", Arial, sans-serif;
  --fonts-proportional: Frutiger, "Frutiger Linotype", "Segoe UI", Arial, sans-serif;
  --color-primary: #006581;
  --color-primary-contrast: #ffffff;
  --color-primary-dark-1: #005970;
  --color-primary-dark-2: #004e63;
  --color-primary-dark-3: #004252;
  --color-primary-dark-4: #003644;
  --color-primary-dark-5: #002a35;
  --color-primary-dark-6: #001e26;
  --color-primary-dark-7: #001117;
  --color-primary-light-1: #1a748e;
  --color-primary-light-2: #33849a;
  --color-primary-light-3: #599aae;
  --color-primary-light-4: #80b2c0;
  --color-primary-light-5: #b3d1d9;
  --color-primary-light-6: #d9e8ec;
  --color-primary-light-7: #f0f6f8;
  --color-primary-alpha-10: #00658119;
  --color-primary-alpha-20: #00658133;
  --color-primary-alpha-30: #0065814b;
  --color-primary-alpha-40: #00658166;
  --color-primary-alpha-50: #00658180;
  --color-primary-alpha-60: #00658199;
  --color-primary-alpha-70: #006581b3;
  --color-primary-alpha-80: #006581cc;
  --color-primary-alpha-90: #006581e1;
  --color-primary-hover: var(--color-primary-dark-1);
  --color-primary-active: var(--color-primary-dark-2);
}

html[data-theme^="gitea-light"], html[data-theme^="gitea-auto"] {
  --color-body: #f4f7f8;
  --color-box-header: #f1f6f7;
  --color-box-body: #ffffff;
  --color-box-body-highlight: #eaf3f5;
  --color-menu: #ffffff;
  --color-text-dark: #193645;
  --color-text: #2c434f;
  --color-text-light: #425b68;
  --color-text-light-1: #4f6571;
  --color-text-light-2: #5d727d;
  --color-secondary: #dce5e9;
}

body { font-family: var(--font-family); }

#navbar {
  min-height: 84px;
  padding: 0 max(28px, calc((100vw - 1360px) / 2));
  border-top: 4px solid var(--imcyc-blue);
  border-bottom: 1px solid var(--imcyc-line);
  background: var(--imcyc-paper);
  box-shadow: 0 1px 0 #19364503;
}

#navbar .navbar-left { align-items: center; gap: 5px; }
#navbar .navbar-right { align-items: center; }
#navbar .item { border-radius: 7px; }
#navbar a.item.active { color: var(--color-primary); background: var(--imcyc-tint); }
#navbar #navbar-logo { display: flex; align-items: center; gap: 21px; padding: 10px 22px 10px 0; margin-right: 12px; background: transparent; }
#navbar #navbar-logo:hover { background: transparent; }
#navbar #navbar-logo img { width: 76px; height: 50px; object-fit: contain; padding: 0; margin: 0; background: white; }
.imcyc-nav-name { display: flex; flex-direction: column; gap: 5px; border-left: 1px solid var(--imcyc-line); padding-left: 21px; }
.imcyc-nav-name strong { color: var(--imcyc-ink); font-size: 19px; font-weight: 650; line-height: 1; letter-spacing: -.3px; }
.imcyc-nav-name small { color: var(--imcyc-muted); font-size: 9px; font-weight: 600; letter-spacing: 1.25px; line-height: 1.4; text-transform: uppercase; }

.ui.primary.button { border-radius: 7px; font-weight: 600; }
.ui.primary.button:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }
.ui.tabular.menu .active.item { border-top-color: var(--color-primary); }
.ui.secondary.pointing.menu .active.item { border-color: var(--color-primary); color: var(--color-primary); }
.ui.segment, .ui.table { border-color: var(--imcyc-line); }
.repository .header-wrapper { background: var(--imcyc-paper); border-bottom: 1px solid var(--imcyc-line); }
.dashboard .secondary.menu { background: transparent; }

.imcyc-signin.page-content { display: flex; padding: 48px 32px 56px; align-items: center; }
.imcyc-login-layout { width: min(1176px, 100%); margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) 448px; gap: 92px; align-items: center; }
.imcyc-story { padding: 12px 0; }
.imcyc-eyebrow { display: flex; align-items: center; gap: 10px; color: var(--imcyc-blue); font-size: 10px; font-weight: 700; letter-spacing: 1.8px; line-height: 1.6; margin: 0 0 26px; }
.imcyc-eyebrow > span { display: inline-block; width: 24px; height: 2px; background: var(--imcyc-blue); }
.imcyc-story h1 { color: var(--imcyc-ink); font-size: clamp(42px, 4.5vw, 65px); font-weight: 700; line-height: 1.1; letter-spacing: -2.6px; margin: 0 0 26px; }
.imcyc-story h1 span { color: var(--imcyc-blue); }
.imcyc-story-lead { color: var(--imcyc-muted); font-size: 18px; line-height: 1.7; margin: 0; }
.imcyc-branch-graphic { margin: 32px 0 14px; max-width: 490px; }
.imcyc-branch-graphic svg { display: block; width: 100%; height: auto; overflow: visible; }
.imcyc-diagram-grid { stroke: var(--imcyc-line); stroke-width: .6; stroke-dasharray: 2 5; }
.imcyc-diagram-line { stroke: var(--imcyc-gray); stroke-width: 2; }
.imcyc-diagram-main { stroke: var(--imcyc-blue); stroke-width: 2; }
.imcyc-diagram-node { fill: var(--imcyc-canvas); stroke: var(--imcyc-blue); stroke-width: 2.2; }
.imcyc-values { display: grid; grid-template-columns: 1fr 1fr 1fr; max-width: 490px; border-top: 1px solid var(--imcyc-line); padding-top: 22px; gap: 12px; }
.imcyc-values > div { display: flex; gap: 10px; align-items: flex-start; color: var(--imcyc-muted); font-size: 12px; line-height: 1.6; }
.imcyc-values .svg { flex-shrink: 0; margin-top: 3px; color: var(--imcyc-blue); }
.imcyc-values strong { color: var(--imcyc-ink); font-weight: 600; }

.imcyc-login-panel { padding: 35px 36px 24px; border: 1px solid var(--imcyc-line); border-radius: 18px; background: var(--imcyc-paper); box-shadow: var(--imcyc-shadow); }
.imcyc-access-mark { width: 60px; height: 60px; display: grid; place-items: center; margin-bottom: 24px; padding: 8px; background: #fff; border: 1px solid #e3e8ea; border-radius: 12px; }
.imcyc-access-mark img { display: block; width: 44px; height: 44px; }
.imcyc-access-heading .imcyc-eyebrow { font-size: 9px; letter-spacing: 1.6px; margin-bottom: 9px; }
.imcyc-access-heading h2 { font-size: 27px; font-weight: 650; line-height: 1.2; letter-spacing: -.65px; color: var(--imcyc-ink); margin: 0 0 10px; }
.imcyc-access-heading > p:last-child { font-size: 13px; line-height: 1.6; color: var(--imcyc-muted); margin: 0 0 27px; }
.imcyc-login-panel > .ui.container { width: 100% !important; margin: 0 !important; }
.imcyc-login-panel > .ui.container > h4.ui.header { display: none; }
.imcyc-login-panel .ui.attached.segment { border: 0; box-shadow: none; padding: 0; background: transparent; margin: 0; width: 100%; }
.imcyc-login-panel .ui.form .field { margin: 0 0 19px; }
.imcyc-login-panel .ui.form .field > label, .imcyc-login-panel .ui.form .field .tw-flex > label { color: var(--imcyc-ink); font-size: 12px; line-height: 1.5; font-weight: 600; margin-bottom: 7px; }
.imcyc-login-panel .ui.form .field .tw-flex > label { margin-bottom: 3px; }
.imcyc-login-panel .ui.form input:not([type="checkbox"],[type="radio"]) { min-height: 47px; border: 1px solid var(--imcyc-line); border-radius: 7px; padding: 11px 13px; font-family: var(--font-family); font-size: 16px; line-height: 1.4; background: var(--color-input-background); color: var(--color-input-text); }
.imcyc-login-panel .ui.form input:not([type="checkbox"],[type="radio"]):focus { border-color: var(--imcyc-blue); box-shadow: 0 0 0 3px #00658113; }
.imcyc-login-panel .ui.form a[href$="forgot_password"] { font-size: 11px; line-height: 1.6; }
.imcyc-login-panel .ui.checkbox label { font-size: 12px; color: var(--imcyc-muted); padding-left: 24px; }
.imcyc-login-panel .ui.form .primary.button { min-height: 47px; padding: 13px 20px; font-family: var(--font-family); font-size: 14px; line-height: 1.5; letter-spacing: .1px; }
.imcyc-login-panel .ui.form .field:last-child { margin-bottom: 0; }
.imcyc-login-panel > .ui.container + .ui.container { margin-top: 19px !important; }
.imcyc-login-panel .signin-passkey { display: inline-flex; align-items: center; justify-content: center; min-height: 35px; padding: 6px 12px; font-size: 12px; }
.imcyc-login-panel .ui.message { font-size: 13px; margin-bottom: 20px; }
.imcyc-access-note { margin: 18px 0 0; border-top: 1px solid var(--imcyc-line); padding-top: 17px; color: var(--imcyc-muted); font-size: 11px; line-height: 1.7; text-align: center; }

.imcyc-empty-workspace { text-align: center; padding: 44px 22px; }
.imcyc-workspace-symbol { width: 70px; height: 70px; display: grid; place-items: center; border: 1px solid var(--imcyc-line); border-radius: 18px; background: var(--imcyc-paper); color: var(--imcyc-blue); margin: 0 auto 24px; }
.imcyc-empty-workspace .imcyc-eyebrow { justify-content: center; margin-bottom: 12px; }
.imcyc-empty-workspace h2 { color: var(--imcyc-ink); font-size: 29px; font-weight: 650; letter-spacing: -.7px; line-height: 1.25; margin: 0 0 16px; }
.imcyc-empty-workspace > p:not(.imcyc-eyebrow) { color: var(--imcyc-muted); font-size: 15px; line-height: 1.7; margin-bottom: 28px; }
.imcyc-workspace-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.imcyc-workspace-actions .button { margin: 0; display: inline-flex; gap: 8px; align-items: center; justify-content: center; min-height: 42px; }

.page-footer { background: var(--imcyc-paper); border-top: 1px solid var(--imcyc-line); padding: 20px max(28px, calc((100vw - 1360px) / 2)); gap: 16px; }
.page-footer .left-links { gap: 20px; }
.imcyc-footer-identity { display: flex; flex-direction: column; gap: 5px; }
.imcyc-footer-identity strong { color: var(--imcyc-ink); font-size: 12px; font-weight: 650; letter-spacing: .15px; }
.imcyc-footer-identity small { color: var(--imcyc-muted); font-size: 10px; line-height: 1.5; }
.page-footer .imcyc-powered-by { font-size: 10px; color: var(--imcyc-muted); }
.page-footer .right-links { font-size: 11px; }

html[data-theme^="gitea-dark"] {
  --imcyc-ink: #e2edf1;
  --imcyc-muted: #a8bdc7;
  --imcyc-line: #344850;
  --imcyc-paper: #17252c;
  --imcyc-canvas: #111d23;
  --imcyc-tint: #213b46;
  --imcyc-shadow: 0 18px 60px #00000020;
  --color-body: #111d23;
  --color-box-header: #1c2d35;
  --color-box-body: #17252c;
  --color-menu: #17252c;
  --color-primary: #77c6dc;
  --color-primary-contrast: #102c36;
  --color-primary-hover: #99d5e5;
  --color-primary-active: #bae3ed;
  --color-text-dark: #e2edf1;
  --color-text: #d0e0e6;
  --color-secondary: #344850;
}
html[data-theme^="gitea-dark"] .imcyc-eyebrow,
html[data-theme^="gitea-dark"] .imcyc-story h1 span,
html[data-theme^="gitea-dark"] .imcyc-values .svg,
html[data-theme^="gitea-dark"] .imcyc-workspace-symbol { color: var(--color-primary); }
html[data-theme^="gitea-dark"] #navbar #navbar-logo img { padding: 7px; box-sizing: content-box; border-radius: 4px; }

@media (prefers-color-scheme: dark) {
  html[data-theme^="gitea-auto"] {
    --imcyc-ink: #e2edf1;
    --imcyc-muted: #a8bdc7;
    --imcyc-line: #344850;
    --imcyc-paper: #17252c;
    --imcyc-canvas: #111d23;
    --imcyc-tint: #213b46;
    --imcyc-shadow: 0 18px 60px #00000020;
    --color-body: #111d23;
    --color-box-header: #1c2d35;
    --color-box-body: #17252c;
    --color-menu: #17252c;
    --color-primary: #77c6dc;
    --color-primary-contrast: #102c36;
    --color-primary-hover: #99d5e5;
    --color-primary-active: #bae3ed;
    --color-text-dark: #e2edf1;
    --color-text: #d0e0e6;
    --color-secondary: #344850;
  }
  html[data-theme^="gitea-auto"] .imcyc-eyebrow,
  html[data-theme^="gitea-auto"] .imcyc-story h1 span,
  html[data-theme^="gitea-auto"] .imcyc-values .svg,
  html[data-theme^="gitea-auto"] .imcyc-workspace-symbol { color: var(--color-primary); }
  html[data-theme^="gitea-auto"] #navbar #navbar-logo img { padding: 7px; box-sizing: content-box; border-radius: 4px; }
}

@media (max-width: 1100px) {
  .imcyc-login-layout { gap: 48px; grid-template-columns: minmax(0, 1fr) 410px; }
  .imcyc-story h1 { font-size: 50px; }
  .imcyc-login-panel { padding: 30px 30px 22px; }
  .imcyc-access-heading h2 { font-size: 25px; }
  .imcyc-values > div { gap: 7px; font-size: 11px; }
  .page-footer .left-links { flex-wrap: wrap; gap: 10px 20px; }
}

@media (max-width: 880px) and (min-width: 768px) {
  .imcyc-login-layout { grid-template-columns: minmax(0, 1fr) 370px; gap: 30px; }
  .imcyc-signin.page-content { padding: 36px 24px 44px; }
  .imcyc-story h1 { font-size: 41px; letter-spacing: -1.8px; }
  .imcyc-story-lead { font-size: 15px; }
  .imcyc-login-panel { padding: 27px 24px 20px; }
  .imcyc-access-heading h2 { font-size: 23px; }
  .imcyc-values { gap: 6px; }
  .imcyc-values > div { flex-direction: column; }
  #navbar { padding-left: 20px; padding-right: 20px; }
  #navbar #navbar-logo { gap: 14px; padding-right: 12px; margin-right: 4px; }
  .imcyc-nav-name { padding-left: 14px; }
}

@media (max-width: 767.98px) {
  #navbar { min-height: 76px; padding: 0 18px; }
  #navbar .navbar-left { align-items: stretch; gap: 0; width: 100%; min-width: 0; }
  #navbar #navbar-logo { gap: 15px; padding: 11px 0; margin-right: 0; min-width: 0; flex-shrink: 1; }
  #navbar #navbar-logo img { width: 65px; height: 43px; }
  .imcyc-nav-name { padding-left: 15px; gap: 5px; }
  .imcyc-nav-name strong { font-size: 17px; }
  .imcyc-nav-name small { font-size: 8px; letter-spacing: 1px; }
  #navbar .navbar-mobile-right { align-items: center; margin-left: auto; flex-shrink: 0; }
  #navbar .navbar-mobile-right .item { margin: 0; min-width: 44px; min-height: 44px; justify-content: center; }
  #navbar #navbar-expand-toggle { width: 44px; height: 44px; box-sizing: border-box; padding: 10px; }
  .imcyc-signin.page-content { padding: 27px 20px 36px; display: block; }
  .imcyc-login-layout { max-width: 480px; grid-template-columns: 1fr; gap: 26px; }
  .imcyc-story { padding: 0 3px; }
  .imcyc-story .imcyc-eyebrow { font-size: 9px; letter-spacing: 1.3px; margin-bottom: 13px; }
  .imcyc-story h1 { font-size: 38px; line-height: 1.12; letter-spacing: -1.45px; margin-bottom: 13px; }
  .imcyc-story h1 br { display: none; }
  .imcyc-story-lead { font-size: 14px; line-height: 1.6; }
  .imcyc-wide-break { display: none; }
  .imcyc-branch-graphic, .imcyc-values { display: none; }
  .imcyc-login-panel { padding: 25px 25px 21px; border-radius: 14px; }
  .imcyc-access-mark { width: 50px; height: 50px; padding: 5px; border-radius: 10px; margin-bottom: 18px; }
  .imcyc-access-mark img { width: 38px; height: 38px; }
  .imcyc-access-heading h2 { font-size: 25px; }
  .imcyc-access-heading > p:last-child { font-size: 12px; margin-bottom: 24px; }
  .imcyc-login-panel .ui.form .field { margin-bottom: 17px; }
  .imcyc-access-note { font-size: 10px; }
  .page-footer { padding: 20px; flex-direction: column; align-items: flex-start; gap: 15px; }
  .page-footer .left-links { flex-direction: column; align-items: flex-start; gap: 10px; }
  .page-footer .right-links { flex-wrap: wrap; gap: 12px; }
  .imcyc-empty-workspace { padding: 30px 12px; }
  .imcyc-empty-workspace h2 { font-size: 25px; }
  .imcyc-empty-workspace > p:not(.imcyc-eyebrow) { font-size: 14px; }
  .imcyc-workspace-actions { flex-direction: column; }
}

@media (max-width: 359px) {
  .imcyc-nav-name small { font-size: 7px; letter-spacing: .5px; }
  .imcyc-signin.page-content { padding-left: 14px; padding-right: 14px; }
  .imcyc-story h1 { font-size: 33px; }
  .imcyc-login-panel { padding-left: 19px; padding-right: 19px; }
  .imcyc-access-heading h2 { font-size: 23px; }
  .imcyc-login-panel .ui.form a[href$="forgot_password"] { font-size: 10px; }
}

@media (max-width: 380px) {
  .imcyc-nav-name small { display: none; }
  .imcyc-nav-name strong { line-height: 1.2; }
}

@media (max-width: 767.98px) {
  .imcyc-login-panel .ui.form a[href$="forgot_password"] { font-size: 12px; padding-block: 4px; margin-block: -4px; }
  .ui.input > input,
  .ui.form input:not([type="hidden"],[type="checkbox"],[type="radio"]),
  .ui.form textarea,
  .ui.form select,
  .ui.dropdown > input.search { font-size: 16px !important; }
  /* Conserva el área táctil sobre los tamaños compactos de Gitea. */
  form .ui.button[type="submit"] { min-height: 44px !important; min-width: 44px; }
  .clone-panel-popup .ui.input { display: flex; width: 100%; min-width: 0; }
  .clone-panel-popup .ui.input > input.repo-clone-url { flex: 1 1 0%; min-width: 0; width: 0; }
  .clone-panel-popup .ui.input > .button { display: flex; align-items: center; justify-content: center; flex: 0 0 44px; min-width: 44px; min-height: 44px; }
}
