/* ==========================================================================
   EVOTEC - Personalización de marca para el repositorio de código
   Paleta y tipografía tomadas de evotec.cl
   ========================================================================== */

:root {
	--evo-brand-50: #eff5ff;
	--evo-brand-100: #dbe7ff;
	--evo-brand-300: #91b5ff;
	--evo-brand-500: #3a66ff;
	--evo-brand-600: #0052cc;
	--evo-brand-700: #0042a6;
	--evo-brand-800: #003a8a;
	--evo-ink-400: #7e8da3;
	--evo-ink-900: #0f1626;
	--evo-ink-950: #070b16;
	--evo-font-display: "Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--evo-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Color primario de la interfaz (tema claro) */
	--color-primary: #0052cc;
	--color-primary-contrast: #ffffff;
	--color-primary-dark-1: #0049b8;
	--color-primary-dark-2: #0042a6;
	--color-primary-dark-3: #003a8a;
	--color-primary-dark-4: #003170;
	--color-primary-dark-5: #002152;
	--color-primary-dark-6: #001129;
	--color-primary-dark-7: #00060f;
	--color-primary-light-1: #1a63d1;
	--color-primary-light-2: #3d7ad9;
	--color-primary-light-3: #5e90e0;
	--color-primary-light-4: #80a7e6;
	--color-primary-light-5: #b3cbf0;
	--color-primary-light-6: #dbe7ff;
	--color-primary-light-7: #eff5ff;
	--color-primary-alpha-10: #0052cc19;
	--color-primary-alpha-20: #0052cc33;
	--color-primary-alpha-30: #0052cc4b;
	--color-primary-alpha-40: #0052cc66;
	--color-primary-alpha-50: #0052cc80;
	--color-primary-alpha-60: #0052cc99;
	--color-primary-alpha-70: #0052ccb3;
	--color-primary-alpha-80: #0052cccc;
	--color-primary-alpha-90: #0052cce1;
}

/* Color primario de la interfaz (tema oscuro) */
@media (prefers-color-scheme: dark) {
	:root[data-theme="gitea-auto"] {
		--color-primary: #5b8cff;
		--color-primary-dark-1: #7aa2ff;
		--color-primary-dark-2: #91b5ff;
		--color-primary-dark-3: #a9c4ff;
		--color-primary-dark-4: #bed3ff;
		--color-primary-dark-5: #dbe7ff;
		--color-primary-dark-6: #eff5ff;
		--color-primary-dark-7: #f7faff;
		--color-primary-light-1: #4a7ae6;
		--color-primary-light-2: #3d6acc;
		--color-primary-light-3: #3058b3;
		--color-primary-light-4: #244799;
		--color-primary-light-5: #183580;
		--color-primary-light-6: #0c2466;
		--color-primary-light-7: #061433;
		--color-primary-alpha-10: #5b8cff19;
		--color-primary-alpha-20: #5b8cff33;
		--color-primary-alpha-30: #5b8cff4b;
		--color-primary-alpha-40: #5b8cff66;
		--color-primary-alpha-50: #5b8cff80;
		--color-primary-alpha-60: #5b8cff99;
		--color-primary-alpha-70: #5b8cffb3;
		--color-primary-alpha-80: #5b8cffcc;
		--color-primary-alpha-90: #5b8cffe1;
	}
}

:root[data-theme="gitea-dark"] {
	--color-primary: #5b8cff;
	--color-primary-dark-1: #7aa2ff;
	--color-primary-dark-2: #91b5ff;
	--color-primary-dark-3: #a9c4ff;
	--color-primary-dark-4: #bed3ff;
	--color-primary-dark-5: #dbe7ff;
	--color-primary-dark-6: #eff5ff;
	--color-primary-dark-7: #f7faff;
	--color-primary-light-1: #4a7ae6;
	--color-primary-light-2: #3d6acc;
	--color-primary-light-3: #3058b3;
	--color-primary-light-4: #244799;
	--color-primary-light-5: #183580;
	--color-primary-light-6: #0c2466;
	--color-primary-light-7: #061433;
	--color-primary-alpha-10: #5b8cff19;
	--color-primary-alpha-20: #5b8cff33;
	--color-primary-alpha-30: #5b8cff4b;
	--color-primary-alpha-40: #5b8cff66;
	--color-primary-alpha-50: #5b8cff80;
	--color-primary-alpha-60: #5b8cff99;
	--color-primary-alpha-70: #5b8cffb3;
	--color-primary-alpha-80: #5b8cffcc;
	--color-primary-alpha-90: #5b8cffe1;
}

/* Oculta el enlace "Ayuda" a la documentación de Gitea en la barra de visitantes */
#navbar a.item[href="https://docs.gitea.com"] {
	display: none !important;
}

/* ==========================================================================
   Página de inicio
   ========================================================================== */

.page-content.evo-home {
	padding: 0 !important;
	margin: 0 !important;
	font-family: var(--evo-font-sans);
}

.evo-home a {
	text-decoration: none;
}

/* --- Hero --- */
.evo-hero {
	position: relative;
	overflow: hidden;
	color: #fff;
	background:
		radial-gradient(60rem 30rem at 85% -10%, #0052cc8c 0%, transparent 60%),
		radial-gradient(40rem 25rem at -5% 110%, #3a66ff40 0%, transparent 60%),
		linear-gradient(180deg, var(--evo-ink-950) 0%, var(--evo-ink-900) 100%);
	margin-top: 0 !important;
	padding: clamp(3.5rem, 9vw, 7rem) 1.5rem clamp(4rem, 10vw, 7.5rem);
}

.evo-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(#ffffff0b 1px, transparent 1px),
		linear-gradient(90deg, #ffffff0b 1px, transparent 1px);
	background-size: 48px 48px;
	mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%);
	pointer-events: none;
}

.evo-hero__inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.evo-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .35rem .85rem;
	border: 1px solid #ffffff24;
	border-radius: 999px;
	background: #ffffff0a;
	color: #ffffffd9;
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: .02em;
}

.evo-eyebrow__dot {
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: #22c55e;
	box-shadow: 0 0 0 4px #22c55e2e;
}

.evo-hero h1 {
	margin: 1.25rem 0 0;
	font-family: var(--evo-font-display);
	font-size: clamp(2.2rem, 4.8vw, 3.6rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.025em;
	color: #fff;
}

.evo-hero h1 em {
	font-style: normal;
	background: linear-gradient(90deg, var(--evo-brand-300), #fff);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.evo-hero__lead {
	margin: 1.25rem 0 0;
	max-width: 34rem;
	font-size: 1.1rem;
	line-height: 1.625;
	color: #ffffffb3;
}

.evo-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: 2rem;
}

.evo-btn {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .8rem 1.35rem;
	border-radius: .625rem;
	font-weight: 600;
	font-size: .95rem;
	transition: background .15s, box-shadow .15s, transform .15s, border-color .15s;
}

.evo-btn--primary {
	color: #fff !important;
	background: linear-gradient(180deg, #1a63d9 0%, var(--evo-brand-600) 60%, var(--evo-brand-700) 100%);
	box-shadow: inset 0 1px #ffffff47, 0 8px 24px -8px #0052cc99;
}

.evo-btn--primary:hover {
	background: linear-gradient(180deg, #1159c9 0%, #004ab8 60%, var(--evo-brand-700) 100%);
	transform: translateY(-1px);
}

.evo-btn--ghost {
	color: #fff !important;
	border: 1px solid #ffffff40;
	background: #ffffff0a;
}

.evo-btn--ghost:hover {
	background: #ffffff1a;
	border-color: #ffffff8c;
}

.evo-btn .svg {
	transition: transform .15s;
}

.evo-btn:hover .svg {
	transform: translateX(3px);
}

.evo-hero__note {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-top: 1.5rem;
	font-size: .85rem;
	color: #ffffff8c;
}

/* Tarjeta de marca a la derecha del hero */
.evo-brandcard {
	position: relative;
	padding: clamp(2rem, 4vw, 3rem);
	border: 1px solid #ffffff14;
	border-radius: 1rem;
	background: linear-gradient(160deg, #ffffff12 0%, #ffffff05 100%);
	backdrop-filter: blur(8px);
	box-shadow: 0 30px 80px -30px #000000b3;
}

.evo-wordmark {
	display: block;
	width: 100%;
	max-width: 22rem;
	height: auto;
	color: #fff;
}

.evo-brandcard__tagline {
	margin: 1.5rem 0 0;
	font-family: var(--evo-font-display);
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.4;
	color: #ffffffd9;
}

.evo-brandcard__tagline strong {
	color: var(--evo-brand-300);
	font-weight: 700;
}

.evo-terminal {
	margin-top: 1.75rem;
	padding: 1rem 1.15rem;
	border-radius: .625rem;
	background: #070b16d9;
	border: 1px solid #ffffff14;
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	font-size: .8rem;
	line-height: 1.8;
	color: #ffffffb3;
	overflow-x: auto;
	white-space: nowrap;
}

.evo-terminal__dots {
	display: flex;
	gap: .4rem;
	margin-bottom: .6rem;
}

.evo-terminal__dots span {
	width: .6rem;
	height: .6rem;
	border-radius: 50%;
	background: #ffffff24;
}

.evo-terminal .p { color: var(--evo-brand-300); }
.evo-terminal .ok { color: #4ade80; }

/* --- Pilares --- */
.evo-section {
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(3rem, 7vw, 5rem) 1.5rem;
}

.evo-section__head {
	max-width: 42rem;
	margin: 0 auto 2.75rem;
	text-align: center;
}

.evo-kicker {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--color-primary);
}

.evo-section__head h2 {
	margin: .6rem 0 0;
	font-family: var(--evo-font-display);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.2;
	color: var(--color-text);
}

.evo-section__head p {
	margin: .9rem 0 0;
	font-size: 1.02rem;
	line-height: 1.625;
	color: var(--color-text-light-2);
}

.evo-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
}

.evo-card {
	position: relative;
	padding: 1.6rem 1.5rem;
	border: 1px solid var(--color-secondary);
	border-radius: 1rem;
	background: var(--color-box-body);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}

.evo-card:hover {
	border-color: var(--color-primary-alpha-50);
	box-shadow: 0 18px 40px -24px var(--color-primary-alpha-60);
	transform: translateY(-2px);
}

.evo-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: .625rem;
	color: var(--color-primary);
	background: var(--color-primary-alpha-10);
}

.evo-card h3 {
	margin: 1.1rem 0 0;
	font-family: var(--evo-font-display);
	font-size: 1.08rem;
	font-weight: 700;
	color: var(--color-text);
}

.evo-card p {
	margin: .5rem 0 0;
	font-size: .93rem;
	line-height: 1.6;
	color: var(--color-text-light-2);
}

/* --- Franja final --- */
.evo-cta {
	max-width: 1200px;
	margin: 0 auto clamp(3rem, 7vw, 5rem);
	padding: 0 1.5rem;
}

.evo-cta__box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: clamp(1.75rem, 4vw, 2.5rem);
	border-radius: 1rem;
	color: #fff;
	background:
		radial-gradient(30rem 15rem at 100% 0%, #3a66ff66 0%, transparent 60%),
		linear-gradient(120deg, var(--evo-brand-700) 0%, var(--evo-brand-600) 100%);
}

.evo-cta__box h2 {
	margin: 0;
	font-family: var(--evo-font-display);
	font-size: clamp(1.3rem, 2.4vw, 1.7rem);
	font-weight: 800;
	letter-spacing: -.015em;
	color: #fff;
}

.evo-cta__box p {
	margin: .4rem 0 0;
	color: #ffffffc7;
}

.evo-cta .evo-btn--light {
	color: var(--evo-brand-700) !important;
	background: #fff;
}

.evo-cta .evo-btn--light:hover {
	background: var(--evo-brand-50);
}

@media (max-width: 1024px) {
	.evo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 860px) {
	.evo-hero__inner {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 560px) {
	.evo-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.evo-actions .evo-btn {
		flex: 1 1 100%;
		justify-content: center;
	}
}

/* ==========================================================================
   Página de inicio de sesión
   ========================================================================== */

.page-content.evo-auth {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: clamp(1.5rem, 5vw, 4rem) 1rem !important;
	font-family: var(--evo-font-sans);
	background:
		radial-gradient(50rem 25rem at 100% 0%, var(--color-primary-alpha-10) 0%, transparent 60%),
		var(--color-body);
}

.evo-auth__shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	width: 100%;
	max-width: 1040px;
	border: 1px solid var(--color-secondary);
	border-radius: 1rem;
	overflow: hidden;
	background: var(--color-box-body);
	box-shadow: 0 30px 80px -40px #0f162680;
}

/* --- Panel de marca --- */
.evo-auth__brand {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2.5rem;
	padding: clamp(2rem, 4vw, 3rem);
	color: #fff;
	background:
		radial-gradient(40rem 22rem at 100% -10%, #0052cc8c 0%, transparent 60%),
		radial-gradient(30rem 20rem at -10% 110%, #3a66ff40 0%, transparent 60%),
		linear-gradient(180deg, var(--evo-ink-950) 0%, var(--evo-ink-900) 100%);
}

.evo-auth__brand::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(#ffffff0b 1px, transparent 1px),
		linear-gradient(90deg, #ffffff0b 1px, transparent 1px);
	background-size: 40px 40px;
	mask-image: radial-gradient(ellipse at 30% 40%, #000 25%, transparent 75%);
	pointer-events: none;
}

.evo-auth__brand > * {
	position: relative;
}

.evo-auth__logo .evo-wordmark {
	max-width: 11rem;
}

.evo-auth__intro h1 {
	margin: 1.1rem 0 0;
	font-family: var(--evo-font-display);
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
	color: #fff;
}

.evo-auth__intro > p {
	margin: .9rem 0 0;
	line-height: 1.625;
	color: #ffffffb3;
}

.evo-auth__points {
	display: grid;
	gap: .75rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.evo-auth__points li {
	display: flex;
	align-items: center;
	gap: .7rem;
	color: #ffffffd9;
	font-size: .93rem;
}

.evo-auth__points .svg {
	flex: none;
	padding: .35rem;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: .5rem;
	color: var(--evo-brand-300);
	background: #ffffff12;
	border: 1px solid #ffffff14;
}

.evo-auth__brand .evo-hero__note {
	margin: 0;
}

/* --- Panel del formulario --- */
.evo-auth__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 4vw, 3.25rem);
}

.evo-auth__panel-head {
	margin-bottom: 1.75rem;
}

.evo-auth__mark {
	display: block;
	width: 44px;
	height: 44px;
	margin-bottom: 1.25rem;
}

.evo-auth__panel-head h2 {
	margin: 0;
	font-family: var(--evo-font-display);
	font-size: 1.6rem;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--color-text);
}

.evo-auth__panel-head p {
	margin: .4rem 0 0;
	color: var(--color-text-light-2);
}

/* El formulario original de Gitea se reestiliza sin modificar su estructura */
.evo-auth__form .ui.container {
	width: 100% !important;
	margin: 0 !important;
}

.evo-auth__form .ui.top.attached.header {
	display: none;
}

.evo-auth__form .ui.attached.segment {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.evo-auth__form .ui.form .field > label {
	font-weight: 600;
	font-size: .88rem;
	color: var(--color-text);
}

.evo-auth__form .ui.form input[type="text"],
.evo-auth__form .ui.form input[type="password"],
.evo-auth__form .ui.form input[type="email"] {
	height: 2.9rem;
	padding: 0 .95rem;
	border-radius: .625rem;
	font-size: .95rem;
	transition: border-color .15s, box-shadow .15s;
}

.evo-auth__form .ui.form input:focus {
	border-color: var(--color-primary) !important;
	box-shadow: 0 0 0 3px var(--color-primary-alpha-20) !important;
}

.evo-auth__form .ui.form .field + .field {
	margin-top: 1.1rem;
}

.evo-auth__form .ui.primary.button {
	width: 100%;
	height: 2.9rem;
	margin-top: .5rem;
	border-radius: .625rem;
	font-size: .95rem;
	font-weight: 600;
	color: #fff;
	background: linear-gradient(180deg, #1a63d9 0%, var(--evo-brand-600) 60%, var(--evo-brand-700) 100%);
	box-shadow: inset 0 1px #ffffff47, 0 8px 24px -10px #0052cc99;
	transition: background .15s, transform .15s;
}

.evo-auth__form .ui.primary.button:hover {
	background: linear-gradient(180deg, #1159c9 0%, #004ab8 60%, var(--evo-brand-700) 100%);
	transform: translateY(-1px);
}

/* Bloque inferior opcional (passkey / registro) */
.evo-auth__form .ui.container + .ui.container {
	margin-top: 1.25rem !important;
}

.evo-auth__form .ui.container + .ui.container .ui.attached.segment {
	padding: .9rem 0 0;
	border-top: 1px solid var(--color-secondary);
	border-radius: 0;
	font-weight: 500;
}

/* Pasos numerados (recuperación de contraseña) */
.evo-auth__steps {
	display: grid;
	gap: .85rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.evo-auth__steps li {
	display: flex;
	align-items: center;
	gap: .75rem;
	color: #ffffffd9;
	font-size: .93rem;
}

.evo-auth__steps li span {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	font-family: var(--evo-font-display);
	font-weight: 700;
	font-size: .85rem;
	color: var(--evo-brand-300);
	background: #ffffff12;
	border: 1px solid #ffffff24;
}

/* Mensajes informativos dentro del formulario */
.evo-auth__notice {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	margin: 0;
	padding: 1rem 1.1rem;
	border-radius: .625rem;
	line-height: 1.55;
	color: var(--color-text);
	background: var(--color-primary-alpha-10);
	border: 1px solid var(--color-primary-alpha-20);
}

.evo-auth__notice > .svg {
	flex: none;
	margin-top: .1rem;
	color: var(--color-primary);
}

.evo-auth__form .ui.form input[disabled] {
	opacity: 1;
	color: var(--color-text-light-2);
	background: var(--color-secondary-bg);
}

.evo-auth__alt-link {
	display: block;
	margin-top: .85rem;
	text-align: center;
	font-size: .88rem;
}

@media (max-width: 860px) {
	.evo-auth__steps {
		display: none;
	}
}

.evo-auth__back {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	align-self: flex-start;
	margin-top: 1.75rem;
	font-size: .88rem;
	color: var(--color-text-light-2) !important;
}

.evo-auth__back:hover {
	color: var(--color-primary) !important;
}

@media (max-width: 860px) {
	.evo-auth__shell {
		grid-template-columns: minmax(0, 1fr);
	}

	.evo-auth__brand {
		gap: 1.25rem;
	}

	.evo-auth__intro > p,
	.evo-auth__points,
	.evo-auth__brand .evo-hero__note,
	.evo-auth__mark {
		display: none;
	}

	.evo-auth__intro h1 {
		font-size: 1.4rem;
	}
}

/* --- Pie de página --- */
.page-footer .evo-footer-brand {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	color: var(--color-text-light-2);
}

.page-footer .evo-footer-brand img {
	width: 18px;
	height: 18px;
}
