/* ==========================================================================
   Guía Construcción · Estilos frontend v1.0.0
   Paleta: #ff7438 (primario) · #1f1f1f (oscuro) · #ffffff
   ========================================================================== */

:root {
	--gc-primary: #ff7438;
	--gc-primary-dark: #e85f24;
	--gc-primary-soft: #fff1ea;
	--gc-dark: #1f1f1f;
	--gc-dark-2: #2a2a2a;
	--gc-white: #ffffff;
	--gc-light-bg: #f6f7f9;
	--gc-border: #e7e8ec;
	--gc-text: #23262b;
	--gc-text-soft: #6b7280;
	--gc-ok: #16a34a;
	--gc-ok-soft: #e8f7ee;
	--gc-warn: #d97706;
	--gc-warn-soft: #fef3e2;
	--gc-danger: #dc2626;
	--gc-danger-soft: #fdecec;
	--gc-info: #2563eb;
	--gc-info-soft: #e8effd;
	--gc-radius: 14px;
	--gc-radius-sm: 9px;
	--gc-shadow: 0 1px 2px rgba(16,24,40,.05), 0 8px 24px -12px rgba(16,24,40,.12);
	--gc-font-display: 'Sora', system-ui, sans-serif;
	--gc-font-body: 'Inter', system-ui, sans-serif;
}

/* ---- Base ---- */
.gc-auth, .gc-app, .gc-public {
	font-family: var(--gc-font-body);
	color: var(--gc-text);
	line-height: 1.55;
	box-sizing: border-box;
}
.gc-auth *, .gc-app *, .gc-public * { box-sizing: border-box; }
.gc-auth h1, .gc-auth h2, .gc-app h1, .gc-app h2, .gc-app h3, .gc-public h1, .gc-public h2, .gc-public h3 {
	font-family: var(--gc-font-display);
	color: var(--gc-dark);
	margin: 0 0 .35em;
	line-height: 1.2;
}
.gc-auth svg, .gc-app svg, .gc-public svg { width: 18px; height: 18px; flex: none; vertical-align: -3px; }

/* ---- Logo ---- */
.gc-logo-mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 12px;
	background: linear-gradient(135deg, var(--gc-primary), var(--gc-primary-dark));
	color: #fff; font: 800 22px/1 var(--gc-font-display);
	box-shadow: 0 6px 18px -6px rgba(255,116,56,.55);
}
.gc-logo-mark--xl { width: 72px; height: 72px; border-radius: 20px; font-size: 40px; }
.gc-logo-text { font: 600 18px/1 var(--gc-font-display); color: var(--gc-dark); letter-spacing: -.01em; }
.gc-logo-text strong { color: var(--gc-primary); font-weight: 800; }

/* ==========================================================================
   AUTH (login / registros) — split screen
   ========================================================================== */
.gc-auth {
	display: grid;
	grid-template-columns: minmax(380px, 480px) 1fr;
	min-height: 88vh;
	background: var(--gc-white);
	border-radius: var(--gc-radius);
	overflow: hidden;
	box-shadow: var(--gc-shadow);
}
.gc-auth--registro { grid-template-columns: 1fr; max-width: 760px; margin: 0 auto; }
.gc-auth__form {
	padding: 56px 48px;
	display: flex; flex-direction: column; justify-content: center;
}
.gc-auth__form-inner { width: 100%; }
.gc-auth__form--wide { max-width: 680px; margin: 0 auto; width: 100%; }
.gc-auth__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 40px; }
.gc-auth__title { font-size: 30px; font-weight: 800; letter-spacing: -.02em; }
.gc-auth__subtitle { color: var(--gc-text-soft); margin: 0 0 26px; }
.gc-auth__footer { margin-top: 28px; font-size: 14px; color: var(--gc-text-soft); }
.gc-auth__footer a { color: var(--gc-primary); font-weight: 600; text-decoration: none; }
.gc-auth__footer a:hover { text-decoration: underline; }
.gc-auth__links { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
.gc-auth__links a { display: inline-flex; align-items: center; gap: 6px; }
.gc-auth__options {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; flex-wrap: wrap;
}
.gc-auth__forgot {
	color: var(--gc-primary); font-size: 13.5px; font-weight: 600;
	text-decoration: none;
}
.gc-auth__forgot:hover { color: var(--gc-primary-dark); text-decoration: underline; }

/* Panel visual derecho (idea de referencia) */
.gc-auth__visual {
	position: relative;
	background:
		radial-gradient(900px 500px at 110% -10%, rgba(255,116,56,.35), transparent 60%),
		radial-gradient(700px 500px at -20% 110%, rgba(255,116,56,.22), transparent 55%),
		linear-gradient(160deg, #232323 0%, var(--gc-dark) 60%, #161616 100%);
	display: flex; align-items: center; justify-content: center;
	padding: 60px;
	overflow: hidden;
}
.gc-auth__visual::before {
	content: "";
	position: absolute; inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: 44px 44px;
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
}
.gc-auth__visual-inner { position: relative; max-width: 460px; color: #e8e8e8; }
.gc-auth__visual-inner h2 { color: #fff; font-size: 30px; font-weight: 800; letter-spacing: -.02em; margin: 26px 0 12px; }
.gc-auth__visual-inner p { color: #b9bcc2; font-size: 15.5px; }
.gc-auth__bullets { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 12px; }
.gc-auth__bullets li {
	display: flex; align-items: center; gap: 12px;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.09);
	border-radius: var(--gc-radius-sm);
	padding: 11px 14px; font-size: 14.5px; color: #e3e4e8;
	backdrop-filter: blur(4px);
}
.gc-auth__bullets svg { color: var(--gc-primary); }

/* ==========================================================================
   Formularios
   ========================================================================== */
.gc-form { display: flex; flex-direction: column; gap: 16px; }
.gc-field { display: flex; flex-direction: column; gap: 6px; }
.gc-field label { font-size: 13.5px; font-weight: 600; color: var(--gc-dark); }
.gc-field label small { font-weight: 400; color: var(--gc-text-soft); }
.gc-field input[type="text"], .gc-field input[type="email"], .gc-field input[type="password"],
.gc-field input[type="tel"], .gc-field input[type="url"], .gc-field select, .gc-field textarea {
	width: 100%;
	font: 400 15px/1.4 var(--gc-font-body);
	color: var(--gc-text);
	background: var(--gc-white);
	border: 1.5px solid var(--gc-border);
	border-radius: var(--gc-radius-sm);
	padding: 11px 14px;
	transition: border-color .15s, box-shadow .15s;
	outline: none;
}
.gc-field input:focus, .gc-field select:focus, .gc-field textarea:focus {
	border-color: var(--gc-primary);
	box-shadow: 0 0 0 3px rgba(255,116,56,.18);
}
.gc-field input[type="file"] { font-size: 14px; padding: 9px 0; border: 0; }
.gc-field textarea { resize: vertical; }
.gc-input-icon { position: relative; }
.gc-input-icon > svg {
	position: absolute; left: 14px; top: 50%; z-index: 2;
	transform: translateY(-50%); color: var(--gc-text-soft);
	pointer-events: none;
}
/*
 * La especificidad es intencional: evita que el padding general del campo
 * (o los estilos globales de Elementor) coloque el texto encima del icono.
 */
.gc-auth .gc-field .gc-input-icon input[type="email"],
.gc-auth .gc-field .gc-input-icon input[type="password"],
.gc-auth .gc-field .gc-input-icon input[type="text"] {
	min-height: 48px;
	padding: 12px 48px 12px 44px !important;
}
.gc-auth .gc-field .gc-input-icon:not(.gc-input-icon--password) input {
	padding-right: 14px !important;
}
.gc-password-toggle {
	position: absolute; right: 6px; top: 50%; z-index: 3;
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; padding: 0;
	transform: translateY(-50%);
	border: 0; border-radius: 7px;
	background: transparent; color: var(--gc-text-soft);
	cursor: pointer;
}
.gc-password-toggle:hover { background: var(--gc-light-bg); color: var(--gc-dark); }
.gc-password-toggle:focus-visible {
	outline: 2px solid var(--gc-primary);
	outline-offset: 1px;
}
.gc-password-toggle svg { width: 17px; height: 17px; }
.gc-password-toggle__hide { display: none; }
.gc-password-toggle.is-visible .gc-password-toggle__show { display: none; }
.gc-password-toggle.is-visible .gc-password-toggle__hide { display: block; }
.gc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gc-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gc-grid-2--stretch { align-items: stretch; }
.gc-check { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--gc-text-soft); cursor: pointer; }
.gc-check input { accent-color: var(--gc-primary); width: 16px; height: 16px; }

/* ==========================================================================
   Página de acceso independiente (sin header/footer del tema o Elementor)
   ========================================================================== */
body.gc-auth-page--standalone {
	margin: 0;
	min-width: 320px;
	background: var(--gc-white);
	overflow-x: hidden;
}
.gc-auth-shell {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
}
.gc-auth-shell > .gc-auth {
	grid-template-columns: minmax(440px, 42%) 1fr;
	min-height: 100vh;
	min-height: 100svh;
	border-radius: 0;
	box-shadow: none;
}
.gc-auth-shell .gc-auth__form {
	padding: 72px clamp(42px, 6vw, 92px);
}
.gc-auth-shell .gc-auth__form-inner {
	width: 100%;
	max-width: 440px;
	margin: 0 auto;
}
.gc-auth-shell .gc-auth__visual {
	padding: clamp(48px, 7vw, 110px);
}
.gc-auth-back {
	position: absolute; top: 28px; left: clamp(24px, 3vw, 48px); z-index: 10;
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--gc-text-soft); font: 600 13.5px/1.2 var(--gc-font-body);
	text-decoration: none;
}
.gc-auth-back:hover { color: var(--gc-primary); }
.gc-auth-back:focus-visible {
	outline: 2px solid var(--gc-primary);
	outline-offset: 5px;
	border-radius: 3px;
}
.gc-auth-back svg { width: 16px; height: 16px; }
.gc-skip-link {
	position: fixed; top: 8px; left: 8px; z-index: 99999;
	padding: 10px 14px;
	background: var(--gc-dark); color: #fff;
	border-radius: 6px;
	transform: translateY(-150%);
	transition: transform .15s;
}
.gc-skip-link:focus { transform: translateY(0); }
.gc-form__section {
	font-size: 16px; font-weight: 700; margin: 14px 0 0;
	padding-bottom: 8px; border-bottom: 1.5px solid var(--gc-border);
}
.gc-form__actions { margin-top: 10px; display: flex; gap: 12px; }
.gc-hint { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--gc-text-soft); margin: 0; }
.gc-hint--warn { color: var(--gc-warn); }
.gc-hint a { color: var(--gc-primary); }

/* Chips / checkboxes con estilo */
.gc-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.gc-chip-check { cursor: pointer; }
.gc-chip-check input { position: absolute; opacity: 0; pointer-events: none; }
.gc-chip-check span {
	display: inline-block; padding: 7px 13px;
	border: 1.5px solid var(--gc-border); border-radius: 99px;
	font-size: 13.5px; color: var(--gc-text-soft);
	transition: all .15s; user-select: none;
}
.gc-chip-check input:checked + span {
	background: var(--gc-primary-soft); border-color: var(--gc-primary);
	color: var(--gc-primary-dark); font-weight: 600;
}
.gc-services { display: grid; gap: 10px; }
.gc-services__group {
	border: 1.5px solid var(--gc-border); border-radius: var(--gc-radius-sm);
	padding: 0 14px;
}
.gc-services__group summary {
	cursor: pointer; font-weight: 600; font-size: 14.5px;
	padding: 12px 0; list-style: none; color: var(--gc-dark);
}
.gc-services__group summary::-webkit-details-marker { display: none; }
.gc-services__group summary::before { content: "▸ "; color: var(--gc-primary); }
.gc-services__group[open] summary::before { content: "▾ "; }
.gc-services__group .gc-choices { padding: 4px 0 14px; }

/* ==========================================================================
   Botones
   ========================================================================== */
.gc-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	background: var(--gc-primary); color: #fff !important;
	font: 600 14.5px/1 var(--gc-font-body);
	border: 1.5px solid var(--gc-primary);
	border-radius: var(--gc-radius-sm);
	padding: 12px 20px;
	cursor: pointer; text-decoration: none !important;
	transition: background .15s, transform .1s, box-shadow .15s;
	box-shadow: 0 4px 14px -6px rgba(255,116,56,.6);
}
.gc-button:hover { background: var(--gc-primary-dark); border-color: var(--gc-primary-dark); transform: translateY(-1px); }
.gc-button--block { width: 100%; padding: 14px 20px; }
.gc-btn-outline {
	background: transparent; color: var(--gc-dark) !important;
	border-color: var(--gc-border); box-shadow: none;
}
.gc-btn-outline:hover { background: var(--gc-light-bg); border-color: var(--gc-dark); transform: none; }
.gc-btn-ghost { background: transparent; border-color: transparent; color: var(--gc-text-soft) !important; box-shadow: none; }
.gc-btn-ghost:hover { background: var(--gc-light-bg); color: var(--gc-dark) !important; transform: none; }
.gc-btn-sm { padding: 8px 14px; font-size: 13.5px; }
.gc-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; border-radius: 8px;
	border: 1.5px solid var(--gc-border); background: #fff; color: var(--gc-text-soft);
	cursor: pointer; transition: all .15s; text-decoration: none;
}
.gc-icon-btn:hover { border-color: var(--gc-primary); color: var(--gc-primary); }
.gc-icon-btn--danger:hover { border-color: var(--gc-danger); color: var(--gc-danger); }
.gc-inline-form { display: inline-flex; margin: 0; }
.gc-select-sm {
	font: 500 13px/1.2 var(--gc-font-body); color: var(--gc-text);
	border: 1.5px solid var(--gc-border); border-radius: 8px;
	padding: 6px 10px; background: #fff; cursor: pointer;
}

/* ==========================================================================
   App layout (sidebar + main)
   ========================================================================== */
.gc-app {
	display: grid; grid-template-columns: 262px 1fr;
	min-height: 80vh;
	background: var(--gc-light-bg);
	border-radius: var(--gc-radius);
	overflow: hidden;
	box-shadow: var(--gc-shadow);
}
.gc-sidebar {
	background: var(--gc-dark);
	color: #cfd1d6;
	display: flex; flex-direction: column;
	padding: 22px 14px;
	gap: 8px;
}
.gc-sidebar__brand { display: flex; align-items: center; gap: 10px; padding: 4px 10px 18px; }
.gc-sidebar__brand .gc-logo-text { color: #fff; font-size: 15.5px; }
.gc-sidebar__nav { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.gc-sidebar__link {
	display: flex; align-items: center; gap: 11px;
	padding: 11px 12px; border-radius: 10px;
	color: #b9bcc2; font: 500 14px/1 var(--gc-font-body);
	text-decoration: none; transition: all .15s;
}
.gc-sidebar__link:hover { background: rgba(255,255,255,.07); color: #fff; }
.gc-sidebar__link.is-active {
	background: var(--gc-primary); color: #fff;
	box-shadow: 0 6px 16px -6px rgba(255,116,56,.55);
}
.gc-sidebar__footer { border-top: 1px solid rgba(255,255,255,.09); padding-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.gc-sidebar__user { display: flex; align-items: center; gap: 10px; padding: 6px 10px; }
.gc-sidebar__username { font-size: 13.5px; color: #e7e8ea; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gc-sidebar__logout:hover { color: #ff9c73; }
.gc-sidebar-toggle { display: none; }

.gc-main { padding: 30px 34px; min-width: 0; }
.gc-main__header {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 18px; flex-wrap: wrap; margin-bottom: 22px;
}
.gc-main__header h1 { font-size: 25px; font-weight: 800; letter-spacing: -.02em; }
.gc-main__header p { margin: 0; color: var(--gc-text-soft); font-size: 14.5px; }

/* Cards / sections */
.gc-card {
	background: var(--gc-white);
	border: 1px solid var(--gc-border);
	border-radius: var(--gc-radius);
	padding: 22px;
	box-shadow: 0 1px 2px rgba(16,24,40,.04);
}
.gc-section { margin-bottom: 18px; }
.gc-section h2 { font-size: 17px; font-weight: 700; }
.gc-section__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.gc-section__head a { color: var(--gc-primary); font: 600 13.5px var(--gc-font-body); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.gc-section__head a svg { width: 15px; height: 15px; }

/* Stats */
.gc-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-bottom: 18px; }
.gc-stat { display: flex; align-items: center; gap: 14px; }
.gc-stat__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 12px;
	background: var(--gc-primary-soft); color: var(--gc-primary);
}
.gc-stat strong { display: block; font: 800 22px var(--gc-font-display); color: var(--gc-dark); }
.gc-stat span { font-size: 13px; color: var(--gc-text-soft); }
.gc-stat--actions { flex-wrap: wrap; gap: 10px; }

/* Tablas de datos */
.gc-table-wrap {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scrollbar-width: thin;
	scrollbar-color: #cfd3d8 transparent;
}
.gc-table-wrap:focus-visible {
	outline: 3px solid rgba(255, 116, 56, .22);
	outline-offset: 3px;
	border-radius: 10px;
}
.gc-table-card {
	padding: 0;
	overflow: hidden;
}
.gc-table-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 20px 22px 17px;
	border-bottom: 1px solid var(--gc-border);
	background: linear-gradient(180deg, #fff 0%, #fdfdfd 100%);
}
.gc-table-card__head h2 {
	margin: 0;
	color: var(--gc-dark);
	font: 700 17px/1.25 var(--gc-font-display);
	letter-spacing: -.01em;
}
.gc-table-card__head p {
	margin: 4px 0 0;
	color: var(--gc-text-soft);
	font-size: 13.5px;
}
.gc-table,
.gcd-table.gc-data-table {
	width: 100%;
	min-width: 620px;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	font: 400 14px/1.45 var(--gc-font-body);
}
.gc-data-table th,
.gcd-table.gc-data-table th {
	padding: 11px 16px;
	text-align: left;
	color: #747b84;
	background: #f7f8fa;
	border: 0;
	border-bottom: 1px solid var(--gc-border);
	font: 700 11.5px/1.35 var(--gc-font-body);
	text-transform: uppercase;
	letter-spacing: .065em;
	white-space: nowrap;
}
.gc-data-table td,
.gcd-table.gc-data-table td {
	padding: 15px 16px;
	color: var(--gc-text);
	background: #fff;
	border: 0;
	border-bottom: 1px solid #eceef1;
	vertical-align: middle;
	transition: background-color .15s ease;
}
.gc-data-table tbody tr:last-child td { border-bottom: 0; }
.gc-data-table tbody tr:hover td { background: #fffbf8; }
.gc-data-table a {
	color: var(--gc-dark);
	font-weight: 650;
	text-decoration: none;
}
.gc-data-table a:hover { color: var(--gc-primary); }
.gc-data-table__primary {
	color: var(--gc-dark) !important;
	font-weight: 650;
}
.gc-data-table td small {
	display: inline-block;
	margin-top: 3px;
	color: var(--gc-text-soft);
	font-size: 12px;
	line-height: 1.4;
}
.gc-data-table__row--muted td { opacity: .58; }
.gc-data-table__row--muted:hover td { opacity: .78; }
.gc-table__actions,
.gc-data-table .gcd-table__actions {
	text-align: right;
	white-space: nowrap;
}
.gc-data-table .gcd-table__actions { display: table-cell; }
.gc-table__actions .gc-inline-form { margin-left: 6px; }
.gc-icon-btn__label { display: none; }

/* Badges de estado */
.gc-badge {
	display: inline-block; padding: 4.5px 11px; border-radius: 99px;
	font: 600 12.5px/1.2 var(--gc-font-body); white-space: nowrap;
}
.gc-badge--publicado, .gc-badge--aceptada { background: var(--gc-ok-soft); color: var(--gc-ok); }
.gc-badge--pausado, .gc-badge--en_revision { background: var(--gc-warn-soft); color: var(--gc-warn); }
.gc-badge--cerrado, .gc-badge--rechazada { background: var(--gc-danger-soft); color: var(--gc-danger); }
.gc-badge--borrador { background: #eef0f3; color: var(--gc-text-soft); }
.gc-badge--enviada { background: var(--gc-info-soft); color: var(--gc-info); }
.gc-badge--vista { background: #f3e8fd; color: #7c3aed; }

/* Alerts */
.gc-alert {
	display: flex; align-items: center; gap: 10px;
	padding: 13px 16px; border-radius: var(--gc-radius-sm);
	font-size: 14px; margin-bottom: 18px;
}
.gc-alert--ok { background: var(--gc-ok-soft); color: #14532d; border: 1px solid #bbe7cd; }
.gc-alert--ok svg { color: var(--gc-ok); }
.gc-alert--error { background: var(--gc-danger-soft); color: #7f1d1d; border: 1px solid #f5c6c6; }
.gc-alert--error svg { color: var(--gc-danger); }
.gc-alert a { color: inherit; font-weight: 600; }

/* Empty states */
.gc-empty {
	text-align: center; padding: 56px 24px;
	background: var(--gc-white); border: 1.5px dashed var(--gc-border);
	border-radius: var(--gc-radius);
	font-family: var(--gc-font-body); color: var(--gc-text);
}
.gc-empty svg { width: 42px; height: 42px; color: var(--gc-primary); margin-bottom: 10px; }
.gc-empty h3 { font: 700 19px var(--gc-font-display); margin: 0 0 6px; color: var(--gc-dark); }
.gc-empty p { color: var(--gc-text-soft); margin: 0 0 18px; }
.gc-empty__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.gc-empty--inline { padding: 22px; border: 0; }
.gc-empty--inline svg { width: 26px; height: 26px; margin: 0 0 4px; }
.gc-empty--inline p { margin: 0; font-size: 14px; }
.gc-empty--inline a { color: var(--gc-primary); font-weight: 600; }

/* Mini list (panel) */
.gc-mini-list { list-style: none; margin: 0; padding: 0; }
.gc-mini-list li {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 11px 0; border-bottom: 1px solid var(--gc-border); font-size: 14px;
}
.gc-mini-list li:last-child { border-bottom: 0; }
.gc-mini-list a { color: var(--gc-dark); font-weight: 600; text-decoration: none; }
.gc-mini-list a:hover { color: var(--gc-primary); }

/* Avatares */
.gc-avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: none; }
.gc-avatar--sm { width: 34px; height: 34px; }
.gc-avatar--lg { width: 84px; height: 84px; }
.gc-avatar--xl { width: 108px; height: 108px; }
.gc-avatar--square { border-radius: 18px; }
.gc-avatar--placeholder {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--gc-primary-soft); color: var(--gc-primary);
}
.gc-avatar--placeholder svg { width: 45%; height: 45%; }
.gc-banner-preview { width: 100%; max-height: 120px; object-fit: cover; border-radius: var(--gc-radius-sm); }
.gc-file-chip {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; border-radius: 99px;
	background: var(--gc-primary-soft); color: var(--gc-primary-dark) !important;
	font: 600 13.5px var(--gc-font-body); text-decoration: none !important;
	width: fit-content;
}

/* ==========================================================================
   Vistas públicas
   ========================================================================== */
.gc-public { max-width: 980px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.gc-public-wrap { padding: 40px 20px; background: var(--gc-light-bg); }
.gc-profile__head, .gc-company__head { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.gc-profile__id { flex: 1; min-width: 220px; }
.gc-profile__id h1 { font-size: 26px; font-weight: 800; letter-spacing: -.02em; }
.gc-profile__role { display: flex; align-items: center; gap: 7px; color: var(--gc-primary-dark); font-weight: 600; margin: 2px 0; }
.gc-profile__tagline { color: var(--gc-text); margin: 4px 0; }
.gc-profile__meta { display: flex; align-items: center; gap: 7px; color: var(--gc-text-soft); font-size: 14px; margin: 2px 0 0; }
.gc-company__banner {
	height: 190px; border-radius: var(--gc-radius);
	background: linear-gradient(120deg, var(--gc-dark), #3a3a3a) center/cover no-repeat;
}
.gc-company__contact { display: flex; gap: 10px; flex-wrap: wrap; }
.gc-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.gc-tag {
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--gc-primary-soft); color: var(--gc-primary-dark);
	border-radius: 99px; padding: 6.5px 13px; font: 600 13px var(--gc-font-body);
}
.gc-tag--soft { background: var(--gc-light-bg); color: var(--gc-text); }
.gc-tag svg { width: 14px; height: 14px; }
.gc-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14.5px; }
.gc-contact-list li { display: flex; align-items: center; gap: 10px; }
.gc-contact-list svg { color: var(--gc-primary); }
.gc-contact-list a { color: var(--gc-text); text-decoration: none; }
.gc-contact-list a:hover { color: var(--gc-primary); }

/* Empleos: feed y tarjetas */
.gc-feed__header { text-align: center; margin-bottom: 8px; }
.gc-feed__header h1 { font-size: 30px; font-weight: 800; letter-spacing: -.02em; }
.gc-feed__header p { color: var(--gc-text-soft); margin: 0; }
.gc-jobs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.gc-job-card { display: flex; flex-direction: column; gap: 12px; transition: transform .15s, box-shadow .15s; }
.gc-job-card:hover { transform: translateY(-2px); box-shadow: var(--gc-shadow); }
.gc-job-card h3 { font-size: 16.5px; margin: 0; }
.gc-job-card h3 a { color: var(--gc-dark); text-decoration: none; }
.gc-job-card h3 a:hover { color: var(--gc-primary); }
.gc-job-card__company { display: flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--gc-text-soft); margin: 5px 0 0; }
.gc-job-card__company a { color: var(--gc-text-soft); text-decoration: none; font-weight: 600; }
.gc-job-card__company a:hover { color: var(--gc-primary); }
.gc-job-card__company svg { width: 15px; height: 15px; }
.gc-job-card__meta { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13px; color: var(--gc-text-soft); }
.gc-job-card__meta span { display: inline-flex; align-items: center; gap: 5px; }
.gc-job-card__meta svg { width: 14px; height: 14px; color: var(--gc-primary); }
.gc-job-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; flex-wrap: wrap; }
.gc-job-card__date { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--gc-text-soft); }
.gc-job-card__date svg { width: 13px; height: 13px; }
.gc-job-card__actions { display: flex; gap: 8px; }

/* Bolsa laboral profesional: buscador, filtros y navegador de empleos */
.gc-jobs-feed {
	width: min(100%, 1240px);
	margin-inline: auto;
	padding: 8px 0 36px;
}
.gc-jobs-hero {
	position: relative;
	overflow: hidden;
	margin-bottom: 20px;
	padding: 34px clamp(22px, 4vw, 48px);
	border-radius: 18px;
	background:
		radial-gradient(circle at 88% 10%, rgba(255,116,56,.36), transparent 34%),
		linear-gradient(135deg, #1f1f1f 0%, #2e2e2e 100%);
	color: #fff;
}
.gc-jobs-hero::after {
	content: "";
	position: absolute;
	right: -40px;
	bottom: -95px;
	width: 260px;
	height: 260px;
	border: 46px solid rgba(255,255,255,.045);
	border-radius: 50%;
}
.gc-jobs-hero__eyebrow {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	margin-bottom: 8px;
	color: #ffb392;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.gc-jobs-hero h1 {
	position: relative;
	z-index: 1;
	max-width: 780px;
	margin-bottom: 8px !important;
	color: #fff !important;
	font-size: clamp(26px, 4vw, 40px);
	letter-spacing: -.035em;
}
.gc-jobs-hero p {
	position: relative;
	z-index: 1;
	max-width: 680px;
	margin: 0;
	color: rgba(255,255,255,.76);
	font-size: 15px;
}
.gc-job-search {
	position: relative;
	z-index: 2;
	margin: -2px 0 18px;
	padding: 16px;
	border: 1px solid var(--gc-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 14px 34px -22px rgba(31,31,31,.35);
}
.gc-job-search__primary {
	display: grid;
	grid-template-columns: minmax(230px, 1.35fr) minmax(180px, .9fr) minmax(170px, .8fr) auto;
	gap: 10px;
	align-items: end;
}
.gc-job-search__field { min-width: 0; }
.gc-job-search__field label {
	display: block;
	margin: 0 0 6px;
	color: var(--gc-dark);
	font-size: 12px;
	font-weight: 700;
}
.gc-job-search__control {
	position: relative;
	display: block;
}
.gc-job-search__control > svg {
	position: absolute;
	top: 50%;
	left: 13px;
	z-index: 1;
	width: 17px;
	height: 17px;
	color: #737984;
	transform: translateY(-50%);
	pointer-events: none;
}
.gc-job-search__control input,
.gc-job-search__control select {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 38px;
	border: 1.5px solid #dfe2e7;
	border-radius: 10px;
	background: #fff;
	color: var(--gc-text);
	font: 500 14px/1.2 var(--gc-font-body);
	outline: none;
	box-shadow: none;
}
.gc-job-search__control select {
	padding-right: 30px;
	text-overflow: ellipsis;
}
.gc-job-search__control input:hover,
.gc-job-search__control select:hover { border-color: #c9cdd4; }
.gc-job-search__control input:focus,
.gc-job-search__control select:focus {
	border-color: var(--gc-primary);
	box-shadow: 0 0 0 3px rgba(255,116,56,.13);
}
.gc-job-search__control select:disabled {
	background: #f4f5f7;
	color: #9a9fa8;
	cursor: not-allowed;
}
.gc-job-search__submit {
	min-height: 48px;
	padding-inline: 19px;
	white-space: nowrap;
}
.gc-job-search__secondary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-top: 10px;
}
.gc-job-filters { flex: 1; min-width: 0; }
.gc-job-filters summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 0;
	color: var(--gc-dark);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.gc-job-filters summary::-webkit-details-marker { display: none; }
.gc-job-filters summary span { display: inline-flex; align-items: center; gap: 7px; }
.gc-job-filters summary svg { width: 16px; height: 16px; color: var(--gc-primary); }
.gc-job-filters summary::after {
	content: "";
	width: 7px;
	height: 7px;
	margin: -3px 3px 0 2px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform .15s ease;
}
.gc-job-filters[open] summary::after { margin-top: 3px; transform: rotate(225deg); }
.gc-job-filters summary strong {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 21px;
	height: 21px;
	padding: 0 6px;
	border-radius: 99px;
	background: var(--gc-primary);
	color: #fff;
	font-size: 11px;
}
.gc-job-filters__body {
	display: grid;
	grid-template-columns: repeat(3, minmax(150px, 1fr)) auto;
	gap: 10px;
	align-items: end;
	padding: 12px 0 2px;
}
.gc-job-filters__body .gc-field { gap: 5px; }
.gc-job-filters__body .gc-field label { font-size: 12px; }
.gc-job-filters__body select { min-height: 42px; }
.gc-job-filters__body .gc-button { min-height: 42px; }
.gc-job-search__clear {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 7px 0;
	color: var(--gc-text-soft);
	font-size: 12.5px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.gc-job-search__clear:hover { color: var(--gc-primary-dark); }
.gc-job-search__clear svg { width: 14px; height: 14px; }
.gc-job-active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: -4px 0 15px;
}
.gc-job-active-filters span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 10px;
	border: 1px solid #ffd3bf;
	border-radius: 99px;
	background: #fff8f4;
	color: #8c3d1c;
	font-size: 12px;
	font-weight: 650;
}
.gc-job-active-filters svg { width: 13px; height: 13px; }
.gc-jobs-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}
.gc-jobs-toolbar > div { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.gc-jobs-toolbar strong { color: var(--gc-dark); font-size: 15px; }
.gc-jobs-toolbar > div span { color: var(--gc-text-soft); font-size: 13px; }
.gc-jobs-toolbar form { display: flex; align-items: center; gap: 8px; margin: 0; }
.gc-jobs-toolbar label { color: var(--gc-text-soft); font-size: 12px; font-weight: 600; }
.gc-jobs-toolbar select {
	width: auto;
	min-width: 146px;
	height: 38px;
	margin: 0;
	padding: 0 30px 0 11px;
	border: 1px solid var(--gc-border);
	border-radius: 8px;
	background-color: #fff;
	color: var(--gc-text);
	font: 600 12.5px var(--gc-font-body);
}
.gc-jobs-browser {
	display: grid;
	grid-template-columns: minmax(330px, .78fr) minmax(480px, 1.22fr);
	gap: 16px;
	align-items: start;
}
.gc-jobs-results { display: grid; gap: 10px; min-width: 0; }
.gc-job-card.gc-job-card--feed {
	position: relative;
	gap: 10px;
	padding: 16px;
	border: 1px solid var(--gc-border);
	border-left: 3px solid transparent;
	border-radius: 13px;
	box-shadow: none;
	cursor: default;
	transform: none;
}
.gc-job-card.gc-job-card--feed:hover {
	border-color: #d7d9df;
	border-left-color: #ffc2a7;
	box-shadow: 0 8px 24px -20px rgba(31,31,31,.45);
	transform: none;
}
.gc-job-card.gc-job-card--feed.is-selected {
	border-color: #ffc4a9;
	border-left-color: var(--gc-primary);
	background: #fffaf7;
	box-shadow: 0 8px 26px -20px rgba(255,116,56,.5);
}
.gc-job-card__top { display: flex; align-items: flex-start; gap: 11px; min-width: 0; }
.gc-job-card__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	overflow: hidden;
	border: 1px solid var(--gc-border);
	border-radius: 10px;
	background: var(--gc-dark);
	color: #fff;
	font: 800 17px var(--gc-font-display);
}
.gc-job-card__brand img { width: 100%; height: 100%; object-fit: cover; }
.gc-job-card__heading { min-width: 0; flex: 1; }
.gc-job-card__status {
	display: inline-flex;
	margin-bottom: 5px;
	padding: 3px 7px;
	border-radius: 5px;
	background: var(--gc-primary-soft);
	color: var(--gc-primary-dark);
	font-size: 10px;
	font-weight: 750;
}
.gc-job-card__status.is-closed { color: #991b1b; background: #fee2e2; }
.gc-button.is-disabled { pointer-events: none; cursor: not-allowed; opacity: .58; filter: grayscale(.2); }
.gc-job-preview__availability { display: flex; align-items: center; gap: 7px; margin-top: 8px; color: var(--gc-dark); font-size: 13px; font-weight: 700; }
.gc-job-preview__availability svg { width: 15px; height: 15px; color: var(--gc-primary); }
.gc-job-card--feed h3 { font-size: 15px; line-height: 1.28; }
.gc-job-card--feed h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
}
.gc-job-card--feed .gc-job-card__company,
.gc-job-card--feed .gc-job-card__meta,
.gc-job-card--feed .gc-job-card__foot,
.gc-job-card--feed .gc-job-card__excerpt { position: relative; z-index: 1; }
.gc-job-card--feed .gc-job-card__company a,
.gc-job-card--feed .gc-job-card__actions a { position: relative; z-index: 2; }
.gc-job-card__excerpt {
	margin: 0;
	color: var(--gc-text-soft);
	font-size: 12.5px;
	line-height: 1.5;
}
.gc-job-card--feed .gc-job-card__meta { gap: 6px; }
.gc-job-card--feed .gc-job-card__meta span {
	padding: 4px 7px;
	border-radius: 6px;
	background: #f4f5f7;
	color: #515762;
	font-size: 11px;
}
.gc-job-card--feed .gc-job-card__meta svg { display: none; }
.gc-job-card--feed .gc-job-card__foot { padding-top: 8px; border-top: 1px solid #eff0f2; }
.gc-job-card--feed .gc-job-card__date { font-size: 11px; }
.gc-job-card--feed .gc-job-card__actions .gc-button {
	min-height: 32px;
	padding: 6px 10px;
	font-size: 11px;
}
.gc-job-preview {
	position: sticky;
	top: 22px;
	overflow: hidden;
	max-height: calc(100vh - 44px);
	border: 1px solid var(--gc-border);
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 12px 34px -26px rgba(31,31,31,.38);
}
.gc-job-preview__scroll { max-height: calc(100vh - 44px); overflow: auto; overscroll-behavior: contain; }
.gc-job-preview__head { padding: 24px; border-bottom: 1px solid var(--gc-border); }
.gc-job-preview__company { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; }
.gc-job-preview__company > div:last-child { display: grid; }
.gc-job-preview__company span { color: var(--gc-text-soft); font-size: 11px; }
.gc-job-preview__company a,
.gc-job-preview__company strong { color: var(--gc-dark); font-size: 13px; font-weight: 750; text-decoration: none; }
.gc-job-preview__company a:hover { color: var(--gc-primary); }
.gc-job-preview__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 43px;
	height: 43px;
	overflow: hidden;
	border-radius: 10px;
	background: var(--gc-dark);
	color: #fff;
	font: 800 17px var(--gc-font-display);
}
.gc-job-preview__logo img { width: 100%; height: 100%; object-fit: cover; }
.gc-job-preview__head h2 { max-width: 650px; font-size: 23px; letter-spacing: -.025em; }
.gc-job-preview__location,
.gc-job-preview__salary {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 7px;
	color: var(--gc-text-soft);
	font-size: 13px;
}
.gc-job-preview__location svg,
.gc-job-preview__salary svg { width: 15px; height: 15px; color: var(--gc-primary); }
.gc-job-preview__salary { color: var(--gc-dark); font-weight: 700; }
.gc-job-preview__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.gc-job-preview__actions .gc-button { min-height: 42px; }
.gc-job-preview__section { padding: 21px 24px; border-bottom: 1px solid var(--gc-border); }
.gc-job-preview__section:last-child { border-bottom: 0; }
.gc-job-preview__section h3 { margin-bottom: 13px; font-size: 15px; }
.gc-job-preview__section p { margin: 0 0 10px; color: #4b515b; font-size: 13.5px; line-height: 1.65; }
.gc-job-preview__section p:last-child { margin-bottom: 0; }
.gc-job-preview__section > p > svg { width: 15px; height: 15px; color: var(--gc-primary); }
.gc-job-preview__facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.gc-job-preview__facts > div {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 11px;
	border-radius: 9px;
	background: #f7f8f9;
}
.gc-job-preview__facts svg { width: 16px; height: 16px; margin-top: 2px; color: var(--gc-primary); }
.gc-job-preview__facts span { display: grid; color: var(--gc-text-soft); font-size: 10.5px; }
.gc-job-preview__facts strong { color: var(--gc-dark); font-size: 12px; line-height: 1.35; }
.gc-job-preview__description ul,
.gc-job-preview__description ol { padding-left: 20px; color: #4b515b; font-size: 13.5px; }
.gc-jobs-empty { padding: 48px 20px; border: 1px dashed #d6d9df; border-radius: 15px; background: #fafbfc; }
.gc-jobs-empty .gc-button { margin-top: 8px; }

@media (max-width: 1024px) {
	.gc-job-search__primary { grid-template-columns: 1.2fr 1fr 1fr; }
	.gc-job-search__submit { grid-column: 1 / -1; justify-self: stretch; }
	.gc-job-filters__body { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gc-job-filters__body .gc-button { grid-column: 1 / -1; justify-self: start; }
	.gc-jobs-browser { grid-template-columns: 1fr; }
	.gc-job-preview { position: static; display: none; max-height: none; }
	.gc-jobs-browser.has-explicit-selection .gc-job-preview { display: block; order: -1; scroll-margin-top: 16px; }
	.gc-job-preview__scroll { max-height: none; overflow: visible; }
}

@media (max-width: 700px) {
	.gc-jobs-feed { padding-inline: 0; }
	.gc-jobs-hero { padding: 27px 20px; border-radius: 13px; }
	.gc-jobs-hero h1 { font-size: 27px; }
	.gc-job-search { padding: 13px; border-radius: 13px; }
	.gc-job-search__primary { grid-template-columns: 1fr; }
	.gc-job-search__submit { grid-column: auto; }
	.gc-job-search__secondary { align-items: center; }
	.gc-job-filters__body { grid-template-columns: 1fr; padding-top: 8px; }
	.gc-job-filters__body .gc-button { grid-column: auto; justify-self: stretch; }
	.gc-jobs-toolbar { align-items: flex-start; flex-direction: column; }
	.gc-jobs-toolbar form { width: 100%; justify-content: space-between; }
	.gc-jobs-toolbar select { flex: 1; }
	.gc-job-card.gc-job-card--feed { padding: 14px; }
	.gc-job-card--feed .gc-job-card__actions { width: 100%; }
	.gc-job-card--feed .gc-job-card__actions .gc-button { flex: 1; }
	.gc-job-preview__head,
	.gc-job-preview__section { padding: 19px 17px; }
	.gc-job-preview__head h2 { font-size: 20px; }
	.gc-job-preview__facts { grid-template-columns: 1fr; }
	.gc-job-preview__actions .gc-button { width: 100%; }
}
.gc-pagination { display: flex; gap: 8px; justify-content: center; }
.gc-pagination a {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 38px; height: 38px; border-radius: 10px;
	border: 1.5px solid var(--gc-border); color: var(--gc-text);
	font: 600 14px var(--gc-font-body); text-decoration: none; transition: all .15s;
}
.gc-pagination a:hover { border-color: var(--gc-primary); color: var(--gc-primary); }
.gc-pagination a.is-active { background: var(--gc-primary); border-color: var(--gc-primary); color: #fff; }

/* Detalle de empleo */
.gc-job-detail__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.gc-job-detail__head h1 { font-size: 26px; font-weight: 800; letter-spacing: -.02em; }
.gc-req-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.gc-req-list li { display: flex; align-items: flex-start; gap: 9px; font-size: 14.5px; }
.gc-req-list svg { color: var(--gc-ok); margin-top: 2px; }

/* Postulaciones recibidas (cards) */
.gc-applications { display: grid; gap: 14px; }
.gc-application { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.gc-application__person { display: flex; gap: 16px; flex: 1; min-width: 260px; }
.gc-application__person h3 { font-size: 16.5px; margin: 0 0 2px; }
.gc-application__person h3 a { color: var(--gc-dark); text-decoration: none; }
.gc-application__person h3 a:hover { color: var(--gc-primary); }
.gc-application__job { font-size: 13.5px; color: var(--gc-text-soft); margin: 0 0 4px; }
.gc-application__meta { display: flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--gc-text-soft); margin: 0 0 6px; }
.gc-application__meta svg { width: 14px; height: 14px; color: var(--gc-primary); }
.gc-application__contact { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13.5px; color: var(--gc-text-soft); }
.gc-application__contact span, .gc-application__contact a { display: inline-flex; align-items: center; gap: 5px; color: var(--gc-text-soft); text-decoration: none; }
.gc-application__contact a:hover { color: var(--gc-primary); }
.gc-application__contact svg { width: 14px; height: 14px; }
.gc-application__message {
	margin: 10px 0 0; padding: 11px 14px;
	background: var(--gc-light-bg); border-left: 3px solid var(--gc-primary);
	border-radius: 0 var(--gc-radius-sm) var(--gc-radius-sm) 0;
	font-size: 13.5px; color: var(--gc-text); display: flex; gap: 8px;
}
.gc-application__message svg { color: var(--gc-primary); flex: none; }
.gc-application__side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 960px) {
	.gc-auth { grid-template-columns: 1fr; }
	.gc-auth__visual { display: none; }
	.gc-auth-shell > .gc-auth { grid-template-columns: 1fr; }
	.gc-auth-shell .gc-auth__form { padding: 86px 36px 48px; }
	.gc-auth-shell .gc-auth__form-inner { max-width: 480px; }
	.gc-grid-3 { grid-template-columns: 1fr; }

	.gc-app { grid-template-columns: 1fr; position: relative; }
	.gc-sidebar {
		position: absolute; inset: 0 30% 0 0; z-index: 40;
		transform: translateX(-105%); transition: transform .25s ease;
		min-width: 250px;
	}
	.gc-app.gc-sidebar-open .gc-sidebar { transform: translateX(0); box-shadow: 12px 0 40px rgba(0,0,0,.3); }
	.gc-sidebar-toggle {
		display: inline-flex; align-items: center; justify-content: center;
		position: absolute; top: 18px; left: 18px; z-index: 50;
		width: 42px; height: 42px; border-radius: 11px;
		background: var(--gc-dark); color: #fff; border: 0; cursor: pointer;
	}
	.gc-main { padding: 76px 18px 26px; }
}
@media (max-width: 720px) {
	.gc-table-card {
		padding: 0;
		overflow: visible;
		background: transparent;
		border: 0;
		box-shadow: none;
	}
	.gc-table-card__head {
		padding: 18px;
		border: 1px solid var(--gc-border);
		border-radius: var(--gc-radius) var(--gc-radius) 0 0;
	}
	.gc-table-wrap,
	.gc-table-wrap--compact {
		overflow: visible;
	}
	.gc-table-wrap > .gc-data-table,
	.gc-table-wrap > .gcd-table.gc-data-table {
		display: block;
		min-width: 0;
	}
	.gc-data-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
	.gc-data-table tbody {
		display: grid;
		gap: 12px;
	}
	.gc-data-table tbody tr {
		display: block;
		overflow: hidden;
		background: #fff;
		border: 1px solid var(--gc-border);
		border-radius: 13px;
		box-shadow: 0 3px 14px rgba(31, 31, 31, .045);
	}
	.gc-table-card .gc-data-table tbody tr:first-child {
		border-radius: 0 0 13px 13px;
	}
	.gc-data-table td,
	.gcd-table.gc-data-table td {
		display: grid;
		grid-template-columns: minmax(88px, .36fr) minmax(0, 1fr);
		align-items: center;
		gap: 13px;
		width: 100%;
		padding: 11px 14px;
		text-align: right;
		white-space: normal;
		border-bottom: 1px solid #eff0f2;
	}
	.gc-data-table td::before {
		content: attr(data-label);
		color: #858b93;
		font: 700 10.5px/1.35 var(--gc-font-body);
		letter-spacing: .055em;
		text-align: left;
		text-transform: uppercase;
	}
	.gc-data-table td > * { justify-self: end; }
	.gc-data-table td br + small { display: block; }
	.gc-data-table td.gc-data-table__primary {
		padding-top: 14px;
		padding-bottom: 14px;
		background: #fffaf7;
	}
	.gc-data-table td.gc-data-table__primary a { font-size: 14.5px; }
	.gc-data-table tbody tr:hover td { background: #fff; }
	.gc-data-table tbody tr:hover td.gc-data-table__primary { background: #fffaf7; }
	.gc-data-table__row--muted { opacity: .62; }
	.gc-data-table__row--muted td { opacity: 1; }
	.gc-data-table .gc-table__actions,
	.gc-data-table .gcd-table__actions {
		display: flex !important;
		align-items: center;
		justify-content: flex-end;
		flex-wrap: wrap;
		gap: 8px;
		text-align: right;
	}
	.gc-data-table .gc-table__actions::before,
	.gc-data-table .gcd-table__actions::before {
		margin-right: auto;
	}
	.gc-table__actions .gc-inline-form { margin-left: 0; }
	.gc-data-table .gc-icon-btn {
		width: auto;
		min-width: 38px;
		height: 38px;
		gap: 6px;
		padding: 0 11px;
	}
	.gc-data-table .gc-icon-btn__label {
		display: inline;
		font-size: 12px;
		font-weight: 650;
	}
	.gc-data-table .gc-select-sm {
		width: min(100%, 180px);
		min-height: 38px;
	}
	.gc-row--unread {
		border-color: rgba(255, 116, 56, .45) !important;
		box-shadow: 0 4px 18px rgba(255, 116, 56, .09) !important;
	}
	.gc-row--unread td { background: #fff !important; }
	.gc-row--unread td.gc-data-table__primary { background: #fff5ef !important; }
	.gc-row--unread td:first-child { box-shadow: none !important; }
}
@media (max-width: 640px) {
	.gc-auth__form { padding: 38px 22px; }
	.gc-auth-shell .gc-auth__form { padding: 78px 22px 38px; }
	.gc-auth-back { top: 24px; left: 22px; }
	.gc-auth__brand { margin-bottom: 30px; }
	.gc-auth__options { align-items: flex-start; flex-direction: column; gap: 10px; }
	.gc-auth__links { flex-direction: column; gap: 10px; }
	.gc-grid-2 { grid-template-columns: 1fr; }
	.gc-application__side { align-items: flex-start; }
	.gc-table-card__head { padding: 16px; }
	.gc-data-table td,
	.gcd-table.gc-data-table td {
		grid-template-columns: 80px minmax(0, 1fr);
		padding-inline: 12px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.gc-auth *, .gc-app *, .gc-public * { transition: none !important; }
}

/* ==========================================================================
   Menú de cuenta (header) — [gc_menu_cuenta]
   ========================================================================== */
.gc-account-menu {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--gc-font-body);
}
.gc-account-menu__drop { position: relative; }
.gc-account-menu__trigger { gap: 7px; }
.gc-account-menu__trigger--user {
	background: var(--gc-white); color: var(--gc-dark) !important;
	border-color: var(--gc-border); box-shadow: none;
	padding: 7px 14px 7px 8px;
}
.gc-account-menu__trigger--user:hover { background: var(--gc-light-bg); border-color: var(--gc-dark); transform: none; }
.gc-account-menu__trigger svg { width: 15px; height: 15px; }
.gc-account-menu__panel {
	position: absolute; right: 0; top: calc(100% + 8px); z-index: 99;
	min-width: 215px;
	background: var(--gc-white);
	border: 1px solid var(--gc-border);
	border-radius: var(--gc-radius-sm);
	box-shadow: var(--gc-shadow);
	padding: 7px;
	display: none;
	flex-direction: column;
}
.gc-account-menu__drop.is-open .gc-account-menu__panel { display: flex; }
.gc-account-menu__panel a {
	display: flex; align-items: center; gap: 10px;
	padding: 10px 12px; border-radius: 8px;
	color: var(--gc-text); font: 500 14px var(--gc-font-body);
	text-decoration: none; transition: background .12s;
}
.gc-account-menu__panel a:hover { background: var(--gc-light-bg); color: var(--gc-primary); }
.gc-account-menu__panel a svg { width: 16px; height: 16px; color: var(--gc-text-soft); }
.gc-account-menu__panel a:hover svg { color: var(--gc-primary); }
.gc-account-menu__logout { border-top: 1px solid var(--gc-border); margin-top: 4px; padding-top: 12px !important; border-radius: 0 0 8px 8px !important; }

/* Logo en imagen para el login (shortcode [gc_login logo=...]) */
.gc-auth__logo-img { display: block; max-width: 100%; height: auto; object-fit: contain; }
/* Identificación chilena / extranjera */
[data-gc-rut-fields][hidden],
[data-gc-foreign-fields][hidden],
[data-gc2-rut-fields][hidden],
[data-gc2-foreign-fields][hidden] {
	display: none !important;
}
.gc-identity-foreign-toggle {
	margin: 12px 0 18px;
}
.gc-field__help {
	display: block;
	margin-top: 6px;
	color: #667085;
	font-size: 12px;
	line-height: 1.45;
}
.gc-professional-cv {
	margin-top: 18px;
}
