/* ==========================================================================
   Globalfinanz Colaboradores — estilos de la zona de colaboradores
   --------------------------------------------------------------------------
   Los tokens (--gf-*) y los estilos base de elementos viven en design-base.css.
   Aquí: cabecera, pie, home de acceso, panel, menú lateral, tarjetas de
   producto, iframe de tarificador, perfil y SMS. Prefijo de clases: gfc-.
   Los componentes de tarjeta/formulario (.gf-card, .gf-field, .gf-btn) se
   reproducen aquí para no depender del theme de tarificadores.
   ========================================================================== */

:root {
	--gfc-hdr-h: 68px;
	--gfc-side-w: 280px;
	--gfc-shadow-card: 0 8px 26px rgba(0, 0, 60, .08);
}

body { background: #f5f6fb; }
.gfc-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.gfc-site { min-height: calc(100vh - var(--gfc-hdr-h)); }
.gfc-kicker {
	margin: 0 0 8px;
	font-family: var(--gf-font-head);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gf-green);
}

/* ── Cabecera ─────────────────────────────────────────────────────────────── */

.gfc-hdr {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid var(--gf-line);
	box-shadow: 0 2px 12px rgba(0, 0, 60, .05);
}
.gfc-hdr__in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: var(--gfc-hdr-h);
}
.gfc-hdr__logo { display: inline-flex; align-items: center; line-height: 0; }
.gfc-hdr__logo img { width: 210px; height: auto; }

.gfc-hdr__nav { display: flex; align-items: center; gap: 4px; }
.gfc-hdr__nav a {
	font-family: var(--gf-font-head);
	font-size: 14px;
	font-weight: 600;
	color: var(--gf-ink);
	text-decoration: none;
	padding: 9px 13px;
	border-radius: var(--gf-radius-btn);
	transition: background .15s ease, color .15s ease;
	white-space: nowrap;
}
.gfc-hdr__nav a:hover { background: var(--gf-blue-softer); color: var(--gf-navy); }
.gfc-hdr__nav a.is-current { color: var(--gf-navy); background: var(--gf-blue-softer); }
.gfc-hdr__nav a.gfc-nav-user {
	color: var(--gf-muted);
	font-weight: 500;
	cursor: default;
	max-width: 220px;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gfc-hdr__nav a.gfc-nav-user:hover { background: none; color: var(--gf-muted); }
.gfc-hdr__nav a.gfc-nav-btn {
	background: var(--gf-navy);
	color: #fff;
	margin-left: 6px;
}
.gfc-hdr__nav a.gfc-nav-btn:hover { background: var(--gf-navy-hover); color: #fff; }
.gfc-hdr__nav a.gfc-nav-btn--ghost {
	background: none;
	color: var(--gf-navy);
	border: 1.5px solid var(--gf-navy);
	padding: 7.5px 13px;
}
.gfc-hdr__nav a.gfc-nav-btn--ghost:hover { background: var(--gf-navy); color: #fff; }
.gfc-hdr__tel { color: var(--gf-navy) !important; }

.gfc-burger {
	display: none;
	width: 42px;
	height: 42px;
	border: 1px solid var(--gf-line);
	border-radius: var(--gf-radius-btn);
	background: #fff;
	cursor: pointer;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
}
.gfc-burger span { display: block; width: 20px; height: 2px; background: var(--gf-navy); border-radius: 2px; }

@media (max-width: 900px) {
	.gfc-hdr__logo img { width: 170px; }
	.gfc-burger { display: flex; }
	.gfc-hdr__nav:not(.gfc-hdr__nav--public) {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
		background: #fff;
		border-bottom: 1px solid var(--gf-line);
		padding: 10px 16px 16px;
		box-shadow: 0 16px 30px rgba(0, 0, 60, .12);
	}
	.gfc-hdr__nav.is-open { display: flex; }
	.gfc-hdr__nav a.gfc-nav-btn { margin: 6px 0 0; text-align: center; }
	.gfc-hdr__nav a.gfc-nav-user { max-width: none; }
	.gfc-hdr__nav--public a:not(.gfc-hdr__tel) { display: none; }
}

/* ── Pie ──────────────────────────────────────────────────────────────────── */

.gfc-ftr {
	background: #0b0b2a;
	color: rgba(255, 255, 255, .72);
	padding: 44px 0 36px;
	margin-top: 60px;
	font-size: 12.5px;
	line-height: 1.7;
}
.gfc-ftr__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.gfc-ftr__top img { width: 190px; height: auto; }
.gfc-ftr__links { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.gfc-ftr__links a, .gfc-ftr a {
	color: #fff;
	text-decoration: none;
	font-weight: 500;
}
.gfc-ftr a:hover { text-decoration: underline; }
.gfc-ftr p { margin: 0 0 10px; color: rgba(255, 255, 255, .72); }
.gfc-logged .gfc-ftr { margin-top: 0; }

/* ── Componentes compartidos: tarjeta, campos, botón, avisos ───────────────── */

.gf-card {
	position: relative;
	width: 100%;
	background: #fff;
	border-radius: var(--gf-radius);
	box-shadow: var(--gfc-shadow-card);
	padding: 34px 32px 30px;
	overflow: hidden;
}
.gf-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--gf-red);
}
.gf-card__title {
	margin: 0 0 4px;
	font-family: var(--gf-font-head);
	font-weight: 700;
	font-size: 22px;
	color: var(--gf-navy);
	letter-spacing: -.01em;
	line-height: 1.25;
}
.gf-card__subtitle { margin: 0 0 22px; font-size: 13.5px; color: var(--gf-muted); }

.gf-login { display: flex; flex-direction: column; gap: 16px; }
.gf-field { display: flex; flex-direction: column; gap: 6px; }
.gf-field label {
	font-family: var(--gf-font-head);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--gf-muted);
}
.gf-field input, .gf-field select, .gf-field textarea {
	font-family: var(--gf-font-body);
	font-size: 15px;
	color: var(--gf-ink);
	background: #fff;
	border: 1px solid var(--gf-line);
	border-radius: var(--gf-radius-btn);
	padding: 12px 14px;
	width: 100%;
	line-height: 1.4;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.gf-field textarea { min-height: 120px; resize: vertical; }
.gf-field input:focus, .gf-field select:focus, .gf-field textarea:focus {
	outline: none;
	border-color: var(--gf-navy);
	box-shadow: 0 0 0 3px rgba(0, 0, 143, .14);
}
.gf-field input[readonly] { background: #f5f6fb; color: var(--gf-muted); }
.gf-field__hint { font-size: 12px; color: var(--gf-muted); margin: 0; line-height: 1.5; }
.gf-field.is-error input { border-color: var(--gf-red); }
.gf-field__error { font-size: 12.5px; color: var(--gf-red); margin: 0; }
.gfc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .gfc-grid-2 { grid-template-columns: 1fr; } }

.gfc-check { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--gf-muted); cursor: pointer; }
.gfc-check input { margin: 4px 0 0; accent-color: var(--gf-navy); flex: none; }
/* Checks/radios dentro de un .gf-field no heredan el estilo de label/input de texto. */
.gf-field .gfc-check {
	font-family: var(--gf-font-body);
	font-size: 13.5px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	margin-top: 2px;
	align-items: center;
}
.gf-field input[type="checkbox"], .gf-field input[type="radio"] {
	width: 25px;
	height: 25px;
	padding: 0;
	margin: 0;
	flex: none;
}

.gf-btn {
	display: inline-block;
	margin-top: 6px;
	font-family: var(--gf-font-head);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .02em;
	color: #fff;
	background: var(--gf-navy);
	border: 0;
	border-radius: var(--gf-radius-btn);
	padding: 13px 18px;
	width: 100%;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	transition: background .15s ease, transform .05s ease;
}
.gf-btn:hover { background: var(--gf-navy-hover); color: #fff; }
.gf-btn:active { transform: translateY(1px); }
.gf-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(248, 38, 47, .35); }
.gf-btn[disabled] { opacity: .55; cursor: not-allowed; }
.gf-btn--inline { width: auto; padding: 11px 22px; font-size: 14px; }
.gf-btn--ghost { background: #fff; color: var(--gf-navy); border: 1.5px solid var(--gf-navy); }
.gf-btn--ghost:hover { background: var(--gf-blue-softer); color: var(--gf-navy); }
.gf-btn--green { background: var(--gf-green); }
.gf-btn--green:hover { background: #1e8f4a; }
.gfc-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 8px; }
.gfc-actions .gf-btn { margin-top: 0; }

.gfc-notice {
	border-radius: var(--gf-radius-btn);
	padding: 12px 14px;
	font-size: 14px;
	line-height: 1.5;
	margin: 0 0 18px;
	border: 1px solid transparent;
}
.gfc-notice--error { background: #fff1f2; border-color: #ffc9cc; color: #b3121a; }
.gfc-notice--ok { background: #eefaf2; border-color: #bfe9cf; color: #146c37; }
.gfc-notice--info { background: var(--gf-blue-softer); border-color: var(--gf-blue-soft); color: var(--gf-navy); }

/* ── Home de acceso ───────────────────────────────────────────────────────── */

.gfc-hero {
	background: radial-gradient(1200px 600px at 50% -10%, #1a1ad0 0%, var(--gf-navy) 42%, var(--gf-navy-dark) 100%);
	color: #fff;
	min-height: calc(100vh - var(--gfc-hdr-h));
	display: flex;
	align-items: center;
	padding: 56px 0;
}
.gfc-anon .gfc-site { min-height: 0; }
.gfc-hero__in {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 420px);
	gap: 56px;
	align-items: center;
}
.gfc-hero .gfc-kicker { color: #8ef0b4; }
.gfc-hero h1 {
	color: #fff;
	font-size: clamp(28px, 3.4vw, 42px);
	line-height: 1.15;
	margin: 0 0 18px;
	font-weight: 800;
	letter-spacing: -.02em;
}
.gfc-hero__lead { font-size: 17px; line-height: 1.7; color: rgba(255, 255, 255, .86); margin: 0 0 18px; }
.gfc-hero__help { font-size: 14px; color: rgba(255, 255, 255, .72); margin: 0; }
.gfc-hero__help a { color: #fff; font-weight: 600; }
.gfc-login-card { box-shadow: var(--gf-shadow); }
.gfc-login-card .gf-btn { margin-top: 4px; }

@media (max-width: 900px) {
	.gfc-hero { padding: 36px 0 48px; min-height: 0; }
	.gfc-hero__in { grid-template-columns: 1fr; gap: 30px; }
	.gfc-hero__text { text-align: center; }
}
@media (max-width: 460px) { .gf-card { padding: 28px 22px 24px; } }

/* ── Layout del panel (lateral + contenido) ───────────────────────────────── */

.gfc-panel {
	display: grid;
	grid-template-columns: var(--gfc-side-w) minmax(0, 1fr);
	gap: 28px;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 28px 20px 40px;
	align-items: start;
}
/* Páginas con tarificador/SMS: mismo esquema lateral + contenido, algo más ancho. */
.gfc-panel--wide { max-width: 1480px; }

/* 1.0.12: menú entero visible, sin barra de scroll propia (Carlos 12/10/2026): ni sticky ni max-height. */
.gfc-side { position: static; }
.gfc-side__toggle { display: none; }
.gfc-side__nav {
	background: #fff;
	border-radius: var(--gf-radius);
	box-shadow: var(--gfc-shadow-card);
	padding: 10px 0;
	overflow: hidden;
}
.gfc-side__group { padding: 6px 0; }
.gfc-side__group + .gfc-side__group { border-top: 1px solid var(--gf-line); }
.gfc-side__group summary, .gfc-side__group-title {
	display: block;
	padding: 8px 18px 6px;
	font-family: var(--gf-font-head);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--gf-muted);
	list-style: none;
	cursor: pointer;
	margin: 0;
}
.gfc-side__group summary::-webkit-details-marker { display: none; }
.gfc-side__group summary::after {
	content: "";
	float: right;
	width: 7px;
	height: 7px;
	margin: 5px 2px 0 0;
	border-right: 2px solid var(--gf-muted);
	border-bottom: 2px solid var(--gf-muted);
	transform: rotate(45deg);
	transition: transform .15s ease;
}
.gfc-side__group[open] summary::after { transform: rotate(-135deg); margin-top: 8px; }
.gfc-side__nav a {
	display: block;
	padding: 8px 18px 8px 22px;
	font-size: 14px;
	font-weight: 500;
	color: var(--gf-ink);
	text-decoration: none;
	border-left: 3px solid transparent;
	line-height: 1.4;
	transition: background .12s ease, color .12s ease;
}
.gfc-side__nav a:hover { background: var(--gf-blue-softer); color: var(--gf-navy); }
.gfc-side__nav a.is-current {
	background: var(--gf-blue-softer);
	color: var(--gf-navy);
	font-weight: 700;
	border-left-color: var(--gf-red);
}
.gfc-side__nav a.gfc-side__hidden-link { color: var(--gf-muted); font-size: 13px; }

@media (max-width: 1000px) {
	.gfc-panel { grid-template-columns: 1fr; gap: 18px; padding: 18px 16px 32px; }
	.gfc-side { position: static; }
	.gfc-side__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		background: #fff;
		border: 1px solid var(--gf-line);
		border-radius: var(--gf-radius-btn);
		padding: 12px 16px;
		font-family: var(--gf-font-head);
		font-weight: 700;
		font-size: 14px;
		color: var(--gf-navy);
		cursor: pointer;
	}
	.gfc-side__toggle::after {
		content: "";
		width: 8px;
		height: 8px;
		border-right: 2px solid var(--gf-navy);
		border-bottom: 2px solid var(--gf-navy);
		transform: rotate(45deg);
	}
	.gfc-side__nav { display: none; margin-top: 8px; max-height: none; }
	.gfc-side__nav.is-open { display: block; }
}

/* ── Contenido del panel ──────────────────────────────────────────────────── */

.gfc-main { min-width: 0; }
.gfc-welcome {
	background: linear-gradient(120deg, var(--gf-navy) 0%, #1a1ad0 100%);
	color: #fff;
	border-radius: var(--gf-radius);
	padding: 32px 34px;
	margin-bottom: 24px;
	box-shadow: var(--gfc-shadow-card);
}
.gfc-welcome .gfc-kicker { color: #8ef0b4; }
.gfc-welcome h1 { color: #fff; margin: 0 0 8px; font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; }
.gfc-welcome p { margin: 0; color: rgba(255, 255, 255, .85); font-size: 15px; max-width: 760px; }

.gfc-section { margin-bottom: 30px; }
.gfc-section__title {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 14px;
	font-size: 18px;
	font-weight: 700;
	color: var(--gf-navy);
}
.gfc-section__title small { font-size: 13px; font-weight: 500; color: var(--gf-muted); }

.gfc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.gfc-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: #fff;
	border-radius: var(--gf-radius);
	padding: 20px 20px 18px;
	box-shadow: var(--gfc-shadow-card);
	text-decoration: none;
	color: var(--gf-ink);
	border: 1px solid transparent;
	transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
	min-height: 108px;
}
.gfc-tile::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: var(--gf-navy);
	border-radius: var(--gf-radius) var(--gf-radius) 0 0;
	opacity: .9;
}
.gfc-tile--rc::before { background: var(--gf-green); }
.gfc-tile--otros::before { background: var(--gf-red); }
.gfc-tile--hidden::before { background: var(--gf-line); }
.gfc-tile:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(0, 0, 60, .13); border-color: var(--gf-blue-soft); }
.gfc-tile__name { font-family: var(--gf-font-head); font-weight: 700; font-size: 15px; color: var(--gf-navy); line-height: 1.3; }
.gfc-tile__desc { font-size: 13px; color: var(--gf-muted); line-height: 1.5; }
.gfc-tile__tag {
	margin-top: auto;
	align-self: flex-start;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--gf-muted);
	background: #f1f2f8;
	padding: 2px 8px;
	border-radius: 20px;
}
details.gfc-hidden-block { margin-top: 10px; }
details.gfc-hidden-block > summary {
	cursor: pointer;
	font-size: 13.5px;
	color: var(--gf-muted);
	font-weight: 600;
	padding: 8px 0;
	list-style: none;
}
details.gfc-hidden-block > summary::-webkit-details-marker { display: none; }
details.gfc-hidden-block > summary::before { content: "+ "; color: var(--gf-navy); }
details.gfc-hidden-block[open] > summary::before { content: "− "; }
details.gfc-hidden-block .gfc-cards { margin-top: 10px; }

/* ── Página de producto (iframe / PDF / enlaces / formulario) ─────────────── */

.gfc-product__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}
.gfc-product__head h1 { margin: 0; font-size: clamp(22px, 2.4vw, 28px); color: var(--gf-navy); }
.gfc-product__head p { margin: 4px 0 0; color: var(--gf-muted); font-size: 14px; }
.gfc-product__tools { display: flex; gap: 8px; flex-wrap: wrap; }
.gfc-product__tools a {
	font-family: var(--gf-font-head);
	font-size: 13px;
	font-weight: 600;
	color: var(--gf-navy);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--gf-line);
	border-radius: var(--gf-radius-btn);
	padding: 8px 12px;
}
.gfc-product__tools a:hover { border-color: var(--gf-navy); }

.gfc-frame {
	background: #fff;
	border-radius: var(--gf-radius);
	box-shadow: var(--gfc-shadow-card);
	overflow: hidden;
}
.gfc-frame iframe { display: block; width: 100%; border: 0; }
.gfc-frame--pdf iframe { min-height: 80vh; }

.gfc-card-body { padding: 30px 32px; }
.gfc-card-body h2 { margin-top: 0; font-size: 20px; }
.gfc-linklist { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 10px; }
.gfc-linklist a {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border: 1px solid var(--gf-line);
	border-radius: var(--gf-radius-btn);
	text-decoration: none;
	color: var(--gf-ink);
	font-weight: 600;
	transition: border-color .12s ease, background .12s ease;
}
.gfc-linklist a:hover { border-color: var(--gf-navy); background: var(--gf-blue-softer); }
.gfc-linklist a::before {
	content: "PDF";
	flex: none;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .06em;
	color: #fff;
	background: var(--gf-red);
	border-radius: 5px;
	padding: 4px 6px;
}
.gfc-linklist a.gfc-link--web::before { content: "WEB"; background: var(--gf-navy); }
.gfc-callout {
	background: var(--gf-blue-softer);
	border-left: 4px solid var(--gf-navy);
	border-radius: 0 var(--gf-radius-btn) var(--gf-radius-btn) 0;
	padding: 14px 18px;
	font-size: 14.5px;
	line-height: 1.6;
}
.gfc-callout a { font-weight: 600; }

.gfc-form { display: grid; gap: 16px; }
.gfc-form fieldset { border: 1px solid var(--gf-line); border-radius: var(--gf-radius); padding: 18px 20px 20px; margin: 0; display: grid; gap: 14px; }
.gfc-form legend { font-family: var(--gf-font-head); font-weight: 700; color: var(--gf-navy); padding: 0 8px; font-size: 15px; }
.gfc-radios { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; }
.gfc-radios label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.gfc-radios input { accent-color: var(--gf-navy); }

/* ── Perfil ───────────────────────────────────────────────────────────────── */

.gfc-profile { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; align-items: start; }
.gfc-dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; font-size: 14px; margin: 0; }
.gfc-dl dt { color: var(--gf-muted); font-weight: 600; }
.gfc-dl dd { margin: 0; word-break: break-word; }
.gfc-pill {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gf-navy);
	background: var(--gf-blue-soft);
	border-radius: 20px;
	padding: 3px 10px;
}

/* ── SMS ──────────────────────────────────────────────────────────────────── */

.gfc-sms { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
@media (max-width: 960px) { .gfc-sms { grid-template-columns: 1fr; } }
.gfc-sms__steps { display: grid; gap: 20px; }
.gfc-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--gf-navy);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	margin-right: 10px;
	vertical-align: middle;
}
.gfc-templates { display: grid; gap: 10px; }
.gfc-template {
	display: block;
	position: relative;
	border: 1.5px solid var(--gf-line);
	border-radius: var(--gf-radius-btn);
	padding: 14px 16px 14px 56px;
	cursor: pointer;
	transition: border-color .12s ease, background .12s ease;
}
.gfc-template input { position: absolute; left: 16px; top: 14px; accent-color: var(--gf-navy); }
.gfc-template:hover { border-color: var(--gf-navy-hover); }
.gfc-template.is-selected { border-color: var(--gf-navy); background: var(--gf-blue-softer); }
.gfc-template__title { display: block; font-family: var(--gf-font-head); font-weight: 700; font-size: 14px; color: var(--gf-navy); margin: 0 0 4px; }
.gfc-template__text { font-size: 13px; color: var(--gf-muted); margin: 0; line-height: 1.5; }

.gfc-phone {
	position: sticky;
	top: calc(var(--gfc-hdr-h) + 20px);
	background: #fff;
	border-radius: var(--gf-radius);
	box-shadow: var(--gfc-shadow-card);
	padding: 24px;
}
.gfc-phone__screen {
	background: #f1f2f8;
	border-radius: 18px;
	padding: 18px 16px;
	min-height: 180px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.gfc-phone__from { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gf-muted); text-align: center; }
.gfc-phone__bubble {
	align-self: flex-start;
	background: #fff;
	border-radius: 16px 16px 16px 4px;
	padding: 12px 14px;
	font-size: 14px;
	line-height: 1.5;
	white-space: pre-wrap;
	word-break: break-word;
	box-shadow: 0 2px 6px rgba(0, 0, 60, .08);
	max-width: 100%;
}
.gfc-phone__meta { margin: 12px 0 0; font-size: 12.5px; color: var(--gf-muted); display: flex; justify-content: space-between; }
.gfc-phone__meta .is-over { color: var(--gf-red); font-weight: 700; }
.gfc-sms__result { margin-top: 14px; }

.gfc-table { width: 100%; border-collapse: collapse; font-size: 13.5px; background: #fff; border-radius: var(--gf-radius); overflow: hidden; box-shadow: var(--gfc-shadow-card); }
.gfc-table th, .gfc-table td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--gf-line); vertical-align: top; }
.gfc-table th { font-family: var(--gf-font-head); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--gf-muted); background: #fafbff; }
.gfc-table tr:last-child td { border-bottom: 0; }
.gfc-table__wrap { overflow-x: auto; }
.gfc-status { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 20px; }
.gfc-status--ok { background: #eefaf2; color: #146c37; }
.gfc-status--ko { background: #fff1f2; color: #b3121a; }
.gfc-status--na { background: #f1f2f8; color: var(--gf-muted); }

/* ── Páginas sueltas / 404 ────────────────────────────────────────────────── */

.gfc-page { padding: 40px 20px 20px; max-width: 860px; }
.gfc-404 { text-align: center; padding-top: 80px; padding-bottom: 60px; }

/* ── Complementos plantillas plugin ─────────────────────────────────────── */
.gfc-welcome__note{margin-top:.6rem;font-size:.9rem;color:var(--gf-muted)}
.gfc-template--custom{display:block}
.gfc-template__custom{display:block;width:100%;margin-top:.5rem;padding:.6rem .75rem;border:1px solid var(--gf-line);border-radius:var(--gf-radius-btn);font:inherit;font-size:.9rem;color:var(--gf-ink);resize:vertical}
.gfc-template__custom:focus{outline:none;border-color:var(--gf-navy);box-shadow:0 0 0 3px var(--gf-blue-soft)}
.gfc-phone__bubble.is-empty{color:var(--gf-muted);font-style:italic}
.gfc-table__empty td{text-align:center;color:var(--gf-muted);padding:1.4rem}
.gfc-sms__result{margin-top:1rem}
.gfc-sms__result[hidden]{display:none}
.gfc-check.is-error{color:var(--gf-red)}
.gf-field input:disabled{background:#f4f4f8;color:var(--gf-muted)}

/* ── Tarificadores nativos (gft) ─────────────────────────────────────────── */
.gft .gft-h1{font-family:var(--gf-font-head);font-size:1.25rem;line-height:1.3;color:var(--gf-navy);margin:0 0 .6rem}
.gft-intro{margin-bottom:1.4rem;color:var(--gf-ink)}
.gft-intro p{margin:0 0 .6rem}
.gft-intro p:last-child{margin-bottom:0}
.gft-section-text{margin:-.2rem 0 .9rem;font-size:.92rem;color:var(--gf-muted)}
.gft-grid .gft-full{grid-column:1 / -1}
.gft-money{position:relative}
.gft-money input{padding-right:2.2rem}
.gft-money span{position:absolute;right:.85rem;top:50%;transform:translateY(-50%);color:var(--gf-muted);pointer-events:none}
.gft-form fieldset[hidden],.gft-form .gf-field[hidden]{display:none}
.gft-result__title{font-family:var(--gf-font-head);font-size:1.35rem;color:var(--gf-navy);margin:0 0 1rem}
.gft-prima{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;background:var(--gf-blue-softer);border:1px solid var(--gf-blue-soft);border-radius:var(--gf-radius);padding:1.1rem 1.4rem;margin:0 0 1.2rem}
.gft-prima__label{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gf-muted)}
.gft-prima__value{font-family:var(--gf-font-head);font-size:2.1rem;font-weight:800;color:var(--gf-navy);line-height:1.1}
.gft-prima__note{font-size:.85rem;color:var(--gf-muted)}
.gft-nota{font-size:.92rem;margin:0 0 .8rem}
.gft-nocalc{margin-bottom:1.2rem}
.gft-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem 2rem;margin-bottom:1.2rem}
.gft-block h3{font-family:var(--gf-font-head);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gf-navy);margin:0 0 .5rem;padding-bottom:.35rem;border-bottom:2px solid var(--gf-blue-soft)}
.gft-dl{display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;margin:0;font-size:.92rem}
.gft-dl dt{color:var(--gf-muted);margin:0}
.gft-dl dd{margin:0;font-weight:600;text-align:right;color:var(--gf-ink)}
.gft-list{margin:0;padding-left:1.1rem;font-size:.92rem}
.gft-list li{margin:0 0 .3rem}
.gft-actions{flex-wrap:wrap;gap:.6rem}
.gft-contratar{margin-top:1rem}
.gft-contratar[hidden]{display:none}
.gft-meta{margin:1.2rem 0 0;font-size:.82rem;color:var(--gf-muted)}
.gft-form .gfc-radios{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
@media (max-width:640px){.gft-dl{grid-template-columns:1fr}.gft-dl dd{text-align:left;margin-bottom:.35rem}}

/* ── Comparadores nativos (páginas con shortcode) y Mis tarificaciones ── */
.gfc-main--tool .gfc-product__head{margin-bottom:1rem}
.gfc-tool{min-width:0;overflow-x:hidden}
.gfc-tool>*{max-width:100%}
.gfc-tool img{max-width:100%;height:auto}
.gf-btn--sm{padding:6px 12px;font-size:12.5px;line-height:1.2}
.gfc-table td small{display:block;color:var(--gf-muted);font-size:12px;margin-top:2px}
.gfc-table td a{color:var(--gf-navy)}
.gfc-table__num{white-space:nowrap}
.gfc-pager{display:flex;gap:.6rem;align-items:center;justify-content:center;margin:1.2rem 0 0;font-size:13.5px;color:var(--gf-muted)}
.gfc-pager a{color:var(--gf-navy);font-weight:600}
@media (max-width:640px){.gfc-table{font-size:12.5px}.gfc-table th,.gfc-table td{padding:8px 10px}}

/* 1.0.7: enlace "¿Has olvidado tu contraseña?" y páginas de recuperación */
.gfc-login-card__links { margin: 10px 0 0; font-size: 13.5px; text-align: center; }
.gfc-login-card__links a { color: var(--gf-navy); font-weight: 600; }

/* 1.0.8: ver/ocultar contraseña (colab.js añade .gfc-pass + .gfc-eye a cada input password) */
.gfc-pass { position: relative; }
.gfc-pass input { padding-right: 46px; }
.gfc-eye { position: absolute; top: 50%; right: 6px; transform: translateY(-50%); width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--gf-muted); border-radius: var(--gf-radius-btn); cursor: pointer; padding: 0; }
.gfc-eye:hover, .gfc-eye:focus-visible { color: var(--gf-navy); background: var(--gf-blue-softer); outline: none; }
.gfc-eye .gfc-eye__hide { display: none; }
.gfc-pass.is-visible .gfc-eye__show { display: none; }
.gfc-pass.is-visible .gfc-eye__hide { display: block; }
.gfc-hint { margin: -4px 0 12px; font-size: 12.5px; color: var(--gf-muted); }

/* 1.0.9 (gf-colaboradores 1.10.0, bloque 3): filtros, estado de seguimiento y notas en /mis-tarificaciones/ */
.gfc-filters { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin-bottom: 1rem; }
.gfc-filters .gf-field { margin: 0; flex: 1 1 130px; max-width: 220px; }
.gfc-filters .gfc-filters__q { flex: 2 1 220px; max-width: 320px; }
.gfc-filters .gf-field label { font-size: 12.5px; margin-bottom: 4px; }
.gfc-filters .gf-field input, .gfc-filters .gf-field select { padding: 8px 10px; font-size: 14px; }
.gfc-filters__actions { flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gfc-filters__count { margin-left: auto; font-size: 13px; color: var(--gf-muted); }
.gfc-pill--nueva { background: #eef2ff; color: #3b4a8a; }
.gfc-pill--gestion { background: #fff4e0; color: #8a5a00; }
.gfc-pill--contratada { background: #e6f7ec; color: #1d6b3a; }
.gfc-pill--descartada { background: #f1f1f4; color: #6b6b7a; }
.gfc-seg__notas-prev { display: block; color: var(--gf-muted); font-size: 12px; margin-top: 4px; max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gfc-seg__acts { white-space: nowrap; }
.gfc-seg__acts .gf-btn + .gf-btn { margin-left: 4px; }
.gfc-seg__toggle[aria-expanded="true"] { background: var(--gf-blue-softer, #eef4fb); }
tr.gfc-seg td { background: #fafbff; border-top: 0; padding-top: 6px; }
tr.is-ok td { background: #f3faf5; }
.gfc-seg__form { display: grid; grid-template-columns: 180px 1fr auto; gap: 12px; align-items: end; }
.gfc-seg__form .gf-field { margin: 0; }
.gfc-seg__form .gf-field label { font-size: 12.5px; margin-bottom: 4px; }
.gfc-seg__form select, .gfc-seg__form textarea { padding: 8px 10px; font-size: 14px; }
.gfc-seg__form textarea { resize: vertical; min-height: 44px; }
.gfc-seg__save { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.gfc-seg__save small { font-size: 11.5px; color: var(--gf-muted); white-space: nowrap; }
@media (max-width: 760px) { .gfc-seg__form { grid-template-columns: 1fr; } .gfc-filters .gf-field, .gfc-filters .gfc-filters__q { max-width: none; } }

/* 1.0.10 (gf-colaboradores 1.11.0, bloque 4): avisos del admin en el panel y marca "Nuevo" en herramientas */
.gfc-avisos { display: grid; gap: 12px; margin: 0 0 18px; }
.gfc-aviso { border: 1px solid var(--gf-blue-soft); border-left: 5px solid var(--gf-navy); background: var(--gf-blue-softer); border-radius: var(--gf-radius); padding: 14px 18px; }
.gfc-aviso--importante { border-color: #ffd9a8; border-left-color: #d97706; background: #fff7ea; }
.gfc-aviso__title { margin: 0 0 6px; font-size: 16px; color: var(--gf-navy); }
.gfc-aviso--importante .gfc-aviso__title { color: #92400e; }
.gfc-aviso__body { font-size: 14.5px; color: var(--gf-ink); }
.gfc-aviso__body p { margin: 0 0 8px; }
.gfc-aviso__body p:last-child { margin-bottom: 0; }
.gfc-aviso__body a { color: var(--gf-navy); font-weight: 600; }
.gfc-aviso__meta { margin: 8px 0 0; font-size: 12px; color: var(--gf-muted); }
.gfc-tile { position: relative; }
.gfc-tile__new, .gfc-side__new { display: inline-block; background: #16a34a; color: #fff; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 2px 7px; border-radius: 999px; line-height: 1.4; }
.gfc-tile__new { position: absolute; top: 10px; right: 10px; }
.gfc-side__new { margin-left: 6px; vertical-align: 1px; }

/* ── 1.0.11: banner "entrar como" + verificación en dos pasos (gf-colaboradores 1.12.0) ── */
.gfc-suplanta { background: #7c2d12; color: #fff; text-align: center; font-size: 14px; padding: 9px 16px; line-height: 1.4; }
.gfc-suplanta a { color: #fff; font-weight: 700; text-decoration: underline; margin-left: 8px; white-space: nowrap; }
.gfc-otp { font-size: 22px; letter-spacing: .3em; text-align: center; font-variant-numeric: tabular-nums; }
