/* GeSoSen FDMCM - estilo claro y sobrio, con el granate de la federación como acento */
.gesosen-app {
	--gs-fondo: #f6f3f1;
	--gs-card: #ffffff;
	--gs-borde: #e4dcd8;
	--gs-texto: #2b2326;
	--gs-suave: #75696d;
	--gs-granate: #8a1f3d;
	--gs-granate-osc: #6f1830;
	--gs-tinte: #fbeff3;
	background: var(--gs-fondo);
	color: var(--gs-texto);
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	padding: 24px 22px 40px;
	border-radius: 16px;
	border: 1px solid var(--gs-borde);
	max-width: 1200px;
	margin: 0 auto;
	box-sizing: border-box;
	line-height: 1.5;
}
.gesosen-app *, .gesosen-app *::before, .gesosen-app *::after { box-sizing: border-box; }
.gesosen-app a { color: var(--gs-granate); }
.gesosen-app h1 { font-size: 2rem; line-height: 1.15; margin: 4px 0 14px; font-weight: 800; color: var(--gs-texto); }
.gesosen-app h1 span { color: var(--gs-granate); }
.gesosen-app h2 { font-size: 1.25rem; margin: 0 0 8px; color: var(--gs-texto); }
.gesosen-app h3 { font-size: .85rem; margin: 18px 0 8px; color: var(--gs-granate); text-transform: uppercase; letter-spacing: .08em; }

.gs-rotulo { font-size: .78rem; letter-spacing: .2em; font-weight: 700; color: var(--gs-granate); display: flex; align-items: center; gap: 12px; }
.gs-linea { display: inline-block; width: 40px; height: 3px; background: var(--gs-granate); border-radius: 2px; }
.gs-nav { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--gs-borde); }
.gs-nav > a:not(.gs-btn) { font-weight: 600; text-decoration: none; padding: 6px 4px; }
.gs-usuario { margin-left: auto; color: var(--gs-suave); font-size: .9rem; text-align: right; display: flex; flex-direction: column; line-height: 1.3; }
.gs-usuario strong { color: var(--gs-texto); font-weight: 600; }
.gs-usuario small { font-size: .78rem; color: var(--gs-granate); font-weight: 600; }
.gs-logos { display: inline-flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--gs-borde); border-radius: 14px; padding: 8px 16px; margin-bottom: 14px; }
.gs-logos img { height: 48px; width: auto; display: block; }

.gs-peligro { border-color: #f0b4b0; background: #fffafa; }
.gesosen-app .gs-borrar, .gesosen-app button.gs-borrar { background: #b3302f; border-color: #b3302f; }
.gesosen-app .gs-borrar:hover { background: #8f2220; }

.gs-card { background: var(--gs-card); border: 1px solid var(--gs-borde); border-radius: 14px; padding: 18px 20px; margin: 0 0 16px; box-shadow: 0 1px 2px rgba(60, 30, 40, .05); }
.gs-meta { color: var(--gs-suave); font-size: .9rem; margin: 2px 0 8px; }

.gesosen-app .gs-btn, .gesosen-app button.gs-btn {
	display: inline-block; background: var(--gs-granate); color: #fff !important;
	border: 1px solid var(--gs-granate); border-radius: 10px; padding: 9px 18px; font-weight: 600; font-size: .95rem; text-decoration: none; cursor: pointer;
	transition: background .15s;
}
.gesosen-app .gs-btn:hover { background: var(--gs-granate-osc); }
.gesosen-app .gs-sec, .gesosen-app button.gs-sec { background: #fff; color: var(--gs-granate) !important; border: 1px solid var(--gs-borde); }
.gesosen-app .gs-sec:hover { background: var(--gs-tinte); }
.gesosen-app .gs-amarillo { background: #f5d97a; border-color: #e3c25a; color: #3a2a00 !important; }
.gesosen-app .gs-amarillo:hover { background: #efce5c; }
.gesosen-app .gs-mini { padding: 3px 12px; font-size: .8rem; }

.gs-aviso { border-radius: 10px; padding: 11px 16px; margin: 0 0 16px; font-weight: 600; }
.gs-ok { background: #e9f6ee; border: 1px solid #a8d8bb; color: #1f5a37; }
.gs-error { background: #fdeceb; border: 1px solid #f0b4b0; color: #8f2620; }

/* Formularios */
.gs-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.gs-campo { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; color: var(--gs-suave); }
.gs-ancho { grid-column: 1 / -1; margin-top: 10px; }
.gesosen-app input[type=text], .gesosen-app input[type=search], .gesosen-app input[type=email], .gesosen-app input[type=tel],
.gesosen-app input[type=number], .gesosen-app input[type=date], .gesosen-app select, .gesosen-app textarea {
	width: 100%; background: #fff; color: var(--gs-texto); border: 1px solid #d6ccc8;
	border-radius: 10px; padding: 9px 12px; font-size: 1rem; font-family: inherit;
}
.gesosen-app input:focus, .gesosen-app select:focus, .gesosen-app textarea:focus { outline: 0; border-color: var(--gs-granate); box-shadow: 0 0 0 3px rgba(138, 31, 61, .12); }
.gesosen-app input::placeholder, .gesosen-app textarea::placeholder { color: #a39599; }
.gs-check { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.gs-linea-form { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin-top: 14px; }
.gs-linea-form .gs-campo { min-width: 180px; }

.gs-filtros { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.gs-filtros input[type=search] { flex: 2 1 240px; }
.gs-filtros select { flex: 1 1 170px; }
.gs-total { color: var(--gs-suave); margin: 4px 0 10px; }

/* Tabla (anula los estilos de tabla del tema de WordPress) */
.gesosen-app table.gs-tabla { width: 100%; border-collapse: separate !important; border-spacing: 0 6px; border: 0 !important; background: transparent !important; margin: 0; }
.gesosen-app table.gs-tabla thead, .gesosen-app table.gs-tabla tbody, .gesosen-app table.gs-tabla tr { background: transparent !important; border: 0 !important; }
.gesosen-app table.gs-tabla th { background: transparent !important; border: 0 !important; text-align: left; color: var(--gs-suave) !important; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; padding: 4px 12px; }
.gesosen-app table.gs-tabla td { background: #fff !important; color: var(--gs-texto) !important; border: 0 !important; border-top: 1px solid var(--gs-borde) !important; border-bottom: 1px solid var(--gs-borde) !important; padding: 12px; }
.gesosen-app table.gs-tabla td:first-child { border-left: 1px solid var(--gs-borde) !important; border-radius: 10px 0 0 10px; font-weight: 600; }
.gesosen-app table.gs-tabla td:last-child { border-right: 1px solid var(--gs-borde) !important; border-radius: 0 10px 10px 0; }
.gesosen-app table.gs-tabla tbody tr:hover td { background: var(--gs-tinte) !important; }
.gesosen-app table.gs-peque td { padding: 8px 12px; }

/* Semáforo */
.gs-sem { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 8px; vertical-align: middle; }
.gs-sem-verde { background: #3aa56a; }
.gs-sem-ambar { background: #e8a91c; }
.gs-sem-rojo { background: #d6454a; }
.gs-sem-gris { background: #b9adb1; }
.gs-leyenda { color: var(--gs-suave); font-size: .85rem; margin-top: 14px; }
.gs-leyenda .gs-sem { margin-left: 14px; }

.gs-pag { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.gs-pag a { padding: 6px 12px; border: 1px solid var(--gs-borde); border-radius: 8px; text-decoration: none; background: #fff; }
.gs-pag a.gs-activa { background: var(--gs-granate); border-color: var(--gs-granate); color: #fff; }

/* Pasos del expediente */
.gs-pasos { list-style: none; margin: 14px 0 0; padding: 0; }
.gs-pasos li { border: 1px solid var(--gs-borde); border-left: 5px solid #cfc5c1; border-radius: 10px; padding: 12px 16px; margin: 0 0 10px; background: #fff; }
.gs-pasos li.gs-hecho { border-left-color: #3aa56a; }
.gs-pasos li.gs-actual { border-left-color: var(--gs-granate); background: var(--gs-tinte); }
.gs-pasos li.gs-pend { opacity: .65; }
.gs-paso-cab { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.gs-actor { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gs-granate); font-weight: 700; }
.gs-just { margin-top: 6px; padding: 8px 12px; background: #f6f3f1; border-radius: 8px; font-size: .9rem; }
.gs-doc { margin-top: 6px; font-size: .9rem; color: var(--gs-suave); }
.gs-pronto { background: #efe9e6; border-radius: 999px; padding: 1px 10px; font-size: .75rem; margin-left: 6px; }
.gs-form-paso { margin-top: 12px; }

/* Documentos adjuntos */
.gs-adj { margin-top: 10px; padding: 10px 14px; background: #fff; border: 1px dashed #d6ccc8; border-radius: 10px; }
.gs-adj-tit { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gs-suave); font-weight: 700; margin-bottom: 4px; }
.gs-adj ul { list-style: none; margin: 0; padding: 0; }
.gs-adj > ul > li { padding: 4px 0; }
.gs-adj-et { font-weight: 600; }
.gs-adj-f { margin: 2px 0 4px 18px !important; }
.gs-adj-f li { font-size: .9rem; padding: 1px 0; }
.gs-ok-m { color: #3aa56a; font-weight: 700; margin-left: 6px; }
.gs-falta-m { color: #b3302f; font-size: .78rem; font-weight: 700; margin-left: 6px; text-transform: uppercase; letter-spacing: .05em; }
.gs-opc-m { color: var(--gs-suave); font-size: .78rem; margin-left: 6px; }
.gs-en-linea { display: inline; margin: 0; }
.gesosen-app button.gs-enlace { background: none; border: 0; color: var(--gs-granate); text-decoration: underline; cursor: pointer; font-size: .85rem; padding: 0 0 0 6px; }
.gs-subida { margin-top: 8px; }
.gs-subida input[type=file] { padding: 6px; background: #fff; }

/* Datos en lectura */
.gs-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 18px; margin: 12px 0; }
.gs-datos dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--gs-suave); }
.gs-datos dd { margin: 0; }
.gs-desc { margin-top: 12px; text-align: justify; }
.gesosen-app summary { cursor: pointer; padding: 4px 0; }

/* Móvil: la tabla pasa a tarjetas */
@media (max-width: 720px) {
	.gesosen-app { padding: 18px 12px 32px; border-radius: 0; border-left: 0; border-right: 0; }
	.gesosen-app h1 { font-size: 1.7rem; }
	.gesosen-app table.gs-tabla thead { display: none; }
	.gesosen-app table.gs-tabla, .gesosen-app table.gs-tabla tbody, .gesosen-app table.gs-tabla tr, .gesosen-app table.gs-tabla td { display: block; width: 100%; }
	.gesosen-app table.gs-tabla tr { background: #fff !important; border: 1px solid var(--gs-borde) !important; border-radius: 12px; margin: 0 0 10px; padding: 8px 4px; }
	.gesosen-app table.gs-tabla td, .gesosen-app table.gs-tabla td:first-child, .gesosen-app table.gs-tabla td:last-child { background: transparent !important; border: 0 !important; border-radius: 0; padding: 4px 12px; }
	.gesosen-app table.gs-tabla td::before { content: attr(data-label) ": "; color: var(--gs-suave); font-size: .8rem; }
	.gesosen-app table.gs-tabla td:first-child::before { content: ""; }
	.gs-usuario { margin-left: 0; width: 100%; }
}

/* Pasos pendientes de firma */
.gs-firma { margin-top: 10px; padding: 12px 14px; background: #faf6f4; border: 1px solid #e3d6d0; border-left: 3px solid var(--gs-granate); border-radius: 6px; }
.gs-firma p { margin: 0 0 8px; }
.gs-doc .gs-btn { margin-left: 8px; }

/* Plazos */
.gs-plazos { list-style: none; margin: 0 0 8px; padding: 0; }
.gs-plazos li { padding: 6px 0; border-bottom: 1px solid var(--gs-linea, #e6dfdb); }
.gs-plazos li:last-child { border-bottom: 0; }

/* Panel del promotor */
.gs-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid var(--gs-borde); margin: 0 0 14px; }
.gs-tabs a { padding: 9px 16px; text-decoration: none; border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; color: inherit; opacity: .75; }
.gs-tabs a:hover { opacity: 1; }
.gs-tabs a.gs-tab-act { background: var(--gs-card); border-color: var(--gs-borde); font-weight: 600; opacity: 1; margin-bottom: -1px; }
.gs-fs { border: 0; padding: 0; margin: 0; min-width: 0; }
.gs-fs[disabled] { opacity: .7; }
.gs-fijo { padding: 8px 10px; border: 1px solid var(--gs-borde); border-radius: 8px; background: rgba(0,0,0,.03); }
.gs-figuras { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px 16px; margin: 0 0 12px; }
.gs-figura input[type=text] { width: 100%; margin-top: 4px; }

/* Pantalla completa y logos grandes */
.gesosen-app { width: 96vw; max-width: none; position: relative; left: 50%; transform: translateX(-50%); padding: 24px 28px 40px; }
.gs-logos { gap: 24px; padding: 12px 24px; }
.gs-logos img { height: 84px; }
.gesosen-app h1 { font-size: 2.2rem; }
.gs-delegar { margin-top: 10px; padding: 8px 12px; border: 1px dashed var(--gs-borde); border-radius: 10px; background: #fcfaf9; }
@media (max-width: 720px) { .gesosen-app { width: 100%; left: 0; transform: none; padding: 16px 12px 32px; } .gs-logos img { height: 56px; } }

/* Cajas de texto grandes del panel del promotor */
.gs-panel textarea.gs-grande { width: 100%; min-height: 9rem; resize: vertical; font-size: 1rem; line-height: 1.5; }
.gs-panel textarea.gs-xl { min-height: 22rem; }
.gs-panel .gs-campo.gs-ancho { grid-column: 1 / -1; width: 100%; }

.gs-modo { background: #fff6d8; border: 1px solid #e3c25a; color: #3a2a00; border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; }
.gs-salir { margin-left: auto; font-size: .85rem; }

/* Fases completadas plegadas */
.gs-fase-ok > summary { cursor: pointer; list-style: none; padding: 2px 0; }
.gs-fase-ok > summary::-webkit-details-marker { display: none; }
.gs-fase-ok > summary::before { content: '▸'; display: inline-block; width: 1.1em; color: var(--gs-suave); }
.gs-fase-ok[open] > summary::before { content: '▾'; }
.gs-chip-ok { background: #e3f4e8; color: #1f6b3a; border-radius: 999px; padding: 1px 10px; font-size: .78rem; font-weight: 600; margin: 0 6px; }

.gs-notif { background: #fff6d8; border: 1px solid #e3c25a; border-radius: 12px; padding: 12px 16px; margin: 0 0 16px; }
.gs-notif-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gs-notif ul { margin: 8px 0 0; padding-left: 18px; }
.gs-notif li { margin: 0 0 8px; }

/* Tablero por fases */
.gs-toggle { display: inline-flex; border: 1px solid var(--gs-borde); border-radius: 10px; overflow: hidden; margin: 0 0 12px; background: #fff; }
.gs-toggle a { padding: 7px 16px; text-decoration: none; font-weight: 600; color: var(--gs-suave); }
.gs-toggle a.gs-tog-act { background: var(--gs-granate); color: #fff; }
.gs-carril { margin: 0 0 14px; }
.gs-carril > summary { cursor: pointer; font-size: 1.05rem; padding: 6px 4px; }
.gs-cuenta { display: inline-block; min-width: 1.6em; text-align: center; background: #ece6e3; border-radius: 999px; padding: 0 8px; font-size: .78rem; color: var(--gs-suave); margin-left: 6px; }
.gs-cols { display: flex; gap: 10px; overflow-x: auto; padding: 6px 2px 12px; align-items: flex-start; }
.gs-col { flex: 0 0 250px; background: #efe9e6; border-radius: 12px; padding: 8px; min-height: 80px; }
.gs-col-vacia { flex-basis: 150px; opacity: .65; }
.gs-col-cab { font-weight: 700; font-size: .85rem; padding: 4px 6px 8px; color: var(--gs-texto); }
.gs-col-n { display: inline-block; width: 1.5em; height: 1.5em; line-height: 1.5em; text-align: center; border-radius: 50%; background: var(--gs-granate); color: #fff; font-size: .75rem; margin-right: 4px; }
.gs-tarjeta { display: block; background: #fff; border: 1px solid var(--gs-borde); border-left: 4px solid var(--gs-granate); border-radius: 10px; padding: 10px 12px; margin: 0 0 8px; text-decoration: none; color: var(--gs-texto) !important; box-shadow: 0 1px 2px rgba(60,30,40,.06); }
.gs-tarjeta:hover { box-shadow: 0 3px 10px rgba(60,30,40,.15); }
.gs-t-tit { font-weight: 700; line-height: 1.25; margin-bottom: 2px; }
.gs-t-sub { font-size: .8rem; color: var(--gs-suave); }
.gs-t-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 6px; }
.gs-chip { font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.gs-chip-verde { background: #e3f4e8; color: #1f6b3a; }
.gs-chip-ambar { background: #fff0c9; color: #7a5200; }
.gs-chip-rojo { background: #fde0de; color: #a12622; }
.gs-chip-gris { background: #ece8e6; color: #5f5458; }
.gs-t-pie { font-size: .72rem; color: var(--gs-suave); }
/* Ficha centrada en la fase actual */
.gs-avance { display: flex; gap: 4px; margin: 4px 0 14px; }
.gs-av { flex: 1; height: 26px; border-radius: 6px; background: #e8e2df; color: #8d8185; text-align: center; font-size: .75rem; line-height: 26px; }
.gs-av b { font-weight: 700; }
.gs-av-ok { background: #3a9b5c; color: #fff; }
.gs-av-act { background: var(--gs-granate); color: #fff; }
.gs-hechas { background: #eaf6ee; border: 1px solid #bfe0c9; border-radius: 10px; padding: 8px 12px; margin: 0 0 12px; }
.gs-hechas > summary { cursor: pointer; font-weight: 600; color: #1f6b3a; }
.gs-siguientes { margin-top: 10px; }
.gs-mas { padding: 12px 18px; }
.gs-mas > summary { cursor: pointer; }
.gs-mas .gs-card { border: 0; box-shadow: none; padding: 0; margin: 14px 0 0; background: transparent; }

/* Tablero de fases dentro del sendero (estilo kanban) */
.gs-kanban { display: flex; gap: 10px; overflow-x: auto; align-items: flex-start; padding: 4px 2px 12px; }
.gs-kcol { flex: 0 0 150px; border-radius: 12px; padding: 10px; background: #efe9e6; min-height: 90px; }
.gs-kcol .gs-pasos { list-style: none; margin: 0; padding: 0; }
.gs-kcol .gs-pasos > li { margin: 0; padding: 0; border: 0; }
.gs-kcol-cab { font-weight: 700; font-size: .85rem; margin-bottom: 6px; }
.gs-kcol-pend { opacity: .6; flex-basis: 120px; }
.gs-kcol-ok { background: #eaf6ee; border: 1px solid #bfe0c9; flex-basis: 170px; }
.gs-kcol-ok .gs-fase-ok > summary { display: block; padding: 0; }
.gs-kcol-ok .gs-fase-ok > summary strong { display: block; margin-bottom: 4px; }
.gs-kcol-ok .gs-fase-ok > summary .gs-meta { display: block; margin-top: 4px; }
.gs-kcol-ok:has(details[open]) { flex-basis: 420px; }
.gs-kcol-act { flex: 1 1 460px; min-width: 340px; background: #fff; border: 1px solid var(--gs-borde); border-top: 5px solid var(--gs-granate); box-shadow: 0 2px 10px rgba(60,30,40,.10); }
.gs-kcol-act .gs-card { border: 0; box-shadow: none; padding: 0; margin: 0; background: transparent; }
.gs-kanban-prom .gs-kcol-ok { flex-basis: 150px; }
@media (max-width: 760px) {
	.gs-kanban { flex-direction: column; overflow-x: visible; }
	.gs-kcol, .gs-kcol-ok, .gs-kcol-pend, .gs-kcol-act, .gs-kcol-ok:has(details[open]) { flex: 0 0 auto; width: 100%; min-width: 0; }
	.gs-kcol-pend { min-height: 0; }
}

/* Tres bloques de fases */
.gs-grupo { border: 1px solid var(--gs-borde); border-radius: 12px; margin: 0 0 10px; padding: 0 12px; background: #fff; }
.gs-grupo > summary { cursor: pointer; padding: 10px 0; list-style: none; }
.gs-grupo > summary::-webkit-details-marker { display: none; }
.gs-grupo > summary::before { content: '▸'; display: inline-block; width: 1.1em; color: var(--gs-suave); }
.gs-grupo[open] > summary::before { content: '▾'; }
.gs-grupo-est { display: inline-block; margin-left: 8px; padding: 1px 9px; border-radius: 999px; font-size: .75rem; background: #e8e2df; color: #6b5f63; }
.gs-grupo-ok { background: #eaf6ee; border-color: #bfe0c9; }
.gs-grupo-ok .gs-grupo-est { background: #3a9b5c; color: #fff; }
.gs-grupo-act { border-color: var(--gs-granate); box-shadow: 0 2px 10px rgba(60,30,40,.10); }
.gs-grupo-act .gs-grupo-est { background: var(--gs-granate); color: #fff; }
.gs-grupo-pend { opacity: .75; }
.gs-grupo .gs-kanban { padding-bottom: 14px; }

/* Pestañas de navegación */
.gs-nav > a.gs-pestana { padding: 9px 18px; border-radius: 999px; background: #efe9e6; color: var(--gs-granate); text-decoration: none; font-weight: 600; }
.gs-nav > a.gs-pestana:hover { background: #e6dcd8; }
.gs-nav > a.gs-pestana-act { background: var(--gs-granate); color: #fff; }
.gs-lista-sol { list-style: none; margin: 0; padding: 0; }
.gs-lista-sol li { padding: 8px 0; border-bottom: 1px solid var(--gs-borde); display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.gs-tabla-wrap { overflow-x: auto; }

/* Cabecera: logos a la izquierda, usuario y cerrar sesión a la derecha */
.gs-cab-sup { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.gs-cab-der { display: flex; align-items: center; gap: 18px; margin-top: 10px; }
.gs-cab-der .gs-usuario { margin-left: 0; }
.gs-cab-der .gs-salir { margin-left: 0; }
.gs-ctx { margin: 6px 0 18px; padding: 16px 22px; border-radius: 14px; background: #fff; border: 1px solid var(--gs-borde); border-left: 6px solid var(--gs-granate); }
.gs-ctx-k { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--gs-suave); font-weight: 600; }
.gs-ctx h2 { margin: 2px 0 8px; font-size: 1.7rem; }

/* v0.13 — avisos flotantes, lista de documentos de una línea, decisiones */
.gesosen-app .gs-toast{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:9999;max-width:min(92vw,640px);box-shadow:0 6px 24px rgba(0,0,0,.2);cursor:pointer;transition:opacity .4s}
.gesosen-app .gs-toast-off{opacity:0;pointer-events:none}
.gesosen-app .gs-doc-lista{list-style:none;margin:0 0 10px;padding:0}
.gesosen-app .gs-doc-lin{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #e6e6e6}
.gesosen-app .gs-doc-nom{font-weight:600}
.gesosen-app .gs-doc-acc{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gesosen-app .gs-doc-acc form{display:inline;margin:0}
.gesosen-app .gs-doc-falta .gs-doc-nom{font-weight:400;color:#666}
.gesosen-app .gs-chip-no{background:#b3261e;color:#fff;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:700;margin-left:6px}
.gesosen-app .gs-decision{display:flex;flex-wrap:wrap;gap:18px;margin:6px 0 10px}

/* v0.13.1 */
.gesosen-app .gs-aviso-top .gs-btn{margin-left:10px}
.gesosen-app .gs-doc-acc{align-items:center}
.gesosen-app .gs-doc-acc .gs-btn,.gesosen-app .gs-doc-acc button{font-size:.8rem;padding:5px 12px;line-height:1.2;height:auto;min-height:0;margin:0;box-sizing:border-box;vertical-align:middle}
.gesosen-app .gs-doc-acc form{margin:0;display:inline-flex}
.gesosen-app .gs-subido{display:inline-block;margin-left:8px;background:#e3f3e6;color:#1d6b2e;border-radius:10px;padding:1px 9px;font-size:.75rem;font-weight:700}
.gesosen-app .gs-subir-det{margin:8px 0 14px}
.gesosen-app .gs-subir-det>summary{display:inline-block;cursor:pointer;list-style:none}
.gesosen-app .gs-subir-det>summary::-webkit-details-marker{display:none}
.gesosen-app .gs-subir-det[open]>summary{margin-bottom:10px}
.gesosen-app .gs-sep{border:0;border-top:1px solid #e6e6e6;margin:18px 0}

/* v0.14 — diseño a todo ancho, avisos de color, textareas, constancia de envío */
.gs-kanban { flex-wrap: wrap; overflow-x: visible; }
.gs-kcol-ok { order: 1; }
.gs-kcol-act { order: 2; flex: 1 1 100%; min-width: 0; }
.gs-kcol-pend { order: 3; }
.gs-kcol-act .gs-pasos, .gs-kcol-act .gs-firma { max-width: none; }
.gesosen-app textarea { width: 100%; box-sizing: border-box; resize: none; overflow: hidden; min-height: 96px; line-height: 1.5; }
.gesosen-app .gs-campo.gs-ancho { grid-column: 1 / -1; width: 100%; }
.gesosen-app .gs-enviado { margin: 6px 0; color: #1f6b3a; font-weight: 600; }
.gesosen-app .gs-chip-alerta { background: #c62828; color: #fff; font-weight: 700; animation: gs-parpadeo 1.4s ease-in-out infinite; }
.gesosen-app .gs-tarjeta-alerta { border-left: 5px solid #c62828; position: relative; }
.gesosen-app .gs-punto-alerta { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #c62828; animation: gs-parpadeo 1.4s ease-in-out infinite; }
.gesosen-app .gs-tarjeta-alerta .gs-punto-alerta { position: absolute; top: 10px; right: 10px; }
.gesosen-app .gs-resumen-alerta { background: #fde0de; color: #8f1d1a; border: 1px solid #f0b3b0; border-radius: 10px; padding: 10px 14px; font-weight: 700; margin: 0 0 14px; }
.gesosen-app .gs-resumen-ok { background: #e3f4e8; color: #1f6b3a; border-radius: 10px; padding: 10px 14px; font-weight: 600; margin: 0 0 14px; }
.gesosen-app .gs-atencion { border-color: #c62828 !important; box-shadow: 0 0 0 2px rgba(198,40,40,.25); }
.gesosen-app .gs-tarjeta-alerta:hover .gs-chip-alerta, .gesosen-app .gs-chip-alerta:hover { animation-play-state: paused; }
@keyframes gs-parpadeo { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .gesosen-app .gs-chip-alerta, .gesosen-app .gs-punto-alerta { animation: none; } }

/* v0.15.0 */
.gs-cab-der { flex-direction: column; align-items: flex-end; gap: 4px; margin-top: 8px; margin-left: auto; }
.gs-cab-der .gs-salir { font-weight: 600; }
.gs-cab-der .gs-usuario { align-items: flex-end; text-align: right; }
.gs-ctx-centro { text-align: center; border-left: 1px solid var(--gs-borde); }
.gs-ctx-centro h2 { margin: 2px 0 10px; }
.gs-hom-linea { margin-top: 10px; font-size: 1.02rem; color: var(--gs-texto); }
.gs-botones-ficha { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.gs-mas > summary { cursor: pointer; }
.gs-doble-firma { font-size: .88rem; color: var(--gs-suave); margin: 4px 0; }
.gs-pend-firma { border: 2px solid #b3261e; border-radius: 12px; padding: 12px 14px; background: #fff5f4; animation: gs-parpadeo 1.6s ease-in-out infinite; }
.gs-tabs a.gs-tab-ok { border-bottom: 4px solid #2e7d32; background: #eaf5ea; }
.gs-tabs a.gs-tab-parcial { border-bottom: 4px solid #e08a00; background: #fff4e0; }
.gs-tabs a.gs-tab-pend { border-bottom: 4px solid #b3261e; background: #fdecea; color: #b3261e; animation: gs-parpadeo 1.6s ease-in-out infinite; }
.gs-tabs a.gs-tab-gris { border-bottom: 4px solid #bbb; background: #f2f2f2; color: #888; }
.gs-enviado { color: #2e7d32; font-weight: 600; font-size: 1.05rem; }
.gs-fila-doc { border: 1px solid var(--gs-borde); border-radius: 10px; padding: 10px 14px; margin: 10px 0; background: #fff; }
.gs-fila-cab { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.gs-pendiente-tag { color: #b3261e; font-weight: 600; font-size: .85rem; }

/* v0.18 — cuadros de texto a todo el ancho, usuario junto a las pestañas */
.gesosen-app .gs-fs { display: block; width: 100%; }
.gesosen-app .gs-campo.gs-ancho { display: flex; width: 100% !important; max-width: none !important; }
.gesosen-app .gs-campo.gs-ancho textarea, .gesosen-app textarea.gs-grande { width: 100% !important; max-width: none !important; box-sizing: border-box; }
.gs-nav .gs-usuario { margin-left: auto; align-items: flex-end; text-align: right; }
.gesosen-app { overflow-x: clip; }

/* v0.18 — cuadros de texto a todo el ancho, usuario junto a las pestañas */
.gesosen-app .gs-fs { display: block; width: 100%; }
.gesosen-app .gs-campo.gs-ancho { display: flex; width: 100% !important; max-width: none !important; }
.gesosen-app .gs-campo.gs-ancho textarea, .gesosen-app textarea.gs-grande { width: 100% !important; max-width: none !important; box-sizing: border-box; }
.gs-nav .gs-usuario { margin-left: auto; align-items: flex-end; text-align: right; }
.gesosen-app { overflow-x: clip; }

/* v0.18.1 — la aplicación se coloca directamente en <body>, centrada, sin depender del tema */
body.gesosen-pagina { margin: 0 !important; padding-left: 0 !important; padding-right: 0 !important; max-width: none !important; width: auto !important; }
.gesosen-app.gs-sola { position: static !important; left: auto !important; transform: none !important; width: 96% !important; max-width: none !important; margin: 28px auto 24px !important; box-sizing: border-box !important; }
@media (max-width: 720px) { .gesosen-app.gs-sola { width: 100% !important; } }

/* v0.18.3 — el tablero muestra siempre las nueve fases completas, sin barra lateral */
.gesosen-app .gs-cols { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 6px; overflow: visible; align-items: start; padding: 6px 0 12px; }
.gesosen-app .gs-col, .gesosen-app .gs-col-vacia { flex: none; min-width: 0; padding: 6px; }
.gesosen-app .gs-col-cab { font-size: .74rem; line-height: 1.25; padding: 4px 4px 8px; overflow-wrap: anywhere; }
.gesosen-app .gs-col-n { width: 1.4em; height: 1.4em; line-height: 1.4em; font-size: .68rem; margin-right: 3px; }
.gesosen-app .gs-col .gs-tarjeta { padding: 8px 8px; font-size: .82rem; overflow-wrap: anywhere; min-width: 0; }
.gesosen-app .gs-col .gs-tarjeta .gs-chip, .gesosen-app .gs-col .gs-tarjeta [class*="gs-chip"] { font-size: .7rem; white-space: normal; }
@media (max-width: 1500px) { .gesosen-app .gs-cols { gap: 4px; } .gesosen-app .gs-col-cab { font-size: .7rem; } .gesosen-app .gs-col .gs-tarjeta { font-size: .78rem; padding: 7px 6px; } }
@media (max-width: 1180px) { .gesosen-app .gs-cols { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 820px) { .gesosen-app .gs-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .gesosen-app .gs-cols { grid-template-columns: 1fr; } }

/* v0.19 */
.gs-mat-linea{display:flex;align-items:center;gap:8px}
.gs-mat-pref{font-size:1.1em;white-space:nowrap}

/* ---- 0.21.0: revisión web del técnico y panel de técnicos ---- */
.gs-cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 10px 0; }
.gs-cifra { border: 1px solid var(--gs-borde); border-radius: 10px; padding: 10px 12px; background: #fff; }
.gs-cifra b { display: block; font-size: 1.4rem; line-height: 1.2; }
.gs-cifra span { font-size: .78rem; opacity: .75; }
.gs-cifra-ok { border-color: #8fcba5; background: #eef9f1; }
.gs-cifra-av { border-color: #e6c377; background: #fff8e6; }
.gs-cifra-mal { border-color: #e29a9a; background: #fdeeee; }
.gs-barras { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
.gs-barra { height: 10px; border-radius: 6px; background: #e8e2dd; overflow: hidden; }
.gs-barra > i { display: block; height: 100%; background: #b5651d; }
.gs-pasos-rev { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 14px; }
.gs-pasos-rev a, .gs-pasos-rev span { padding: 4px 12px; border-radius: 999px; border: 1px solid var(--gs-borde); font-size: .85rem; text-decoration: none; }
.gs-rev-form label { display: block; margin-bottom: 8px; font-weight: 600; font-size: .9rem; }
.gs-rev-form input[type=text], .gs-rev-form input[type=number], .gs-rev-form input[type=date], .gs-rev-form select, .gs-rev-form textarea { width: 100%; box-sizing: border-box; }
.gs-rev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px 14px; }
.gs-ancho-todo { grid-column: 1 / -1; }
.gs-crit { border: 1px solid var(--gs-borde); border-radius: 10px; padding: 8px 12px; margin-bottom: 8px; background: #fff; }
.gs-ck, .gs-cks { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
.gs-ck label, .gs-cks label { font-weight: 400; display: inline-flex; gap: 4px; align-items: center; margin: 0; }
.gs-eti { display: inline-block; background: #efe4d8; color: #6b3f12; border-radius: 999px; padding: 1px 10px; font-size: .78rem; font-weight: 600; margin: 0 4px 4px 0; }
.gs-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.gs-foto, .gs-fig { border: 1px solid var(--gs-borde); border-radius: 10px; padding: 6px; background: #fff; font-size: .8rem; }
.gs-foto img, .gs-fig img { width: 100%; height: auto; border-radius: 6px; display: block; }
.gs-wp { border: 1px solid var(--gs-borde); border-radius: 10px; padding: 8px 12px; margin-bottom: 8px; background: #fff; }
.gs-pt { fill: #888; }
.gs-pt-a { fill: #b5651d; }
.gs-pt-n { fill: #555; }
.gs-pt-v { fill: #2f7d4a; }
.gs-mapa-svg { width: 100%; height: auto; max-height: 360px; background: #faf7f4; border: 1px solid var(--gs-borde); border-radius: 10px; }
.gs-quitar { color: #a33; cursor: pointer; font-size: .85rem; }
.gs-ant { background: #f6f2ee; border-left: 4px solid #b5651d; padding: 8px 12px; border-radius: 6px; margin: 8px 0; }
.gs-lejos { color: #a33; font-weight: 600; }
.gs-auto { opacity: .8; font-style: italic; }

/* ---- 0.23.1: técnicos con datos incompletos ---- */
.gs-faltan { color: #a12622; font-weight: 600; font-size: .8rem; }

/* ---- 0.24.0: pantalla de acceso ---- */
.gs-login { display: flex; justify-content: center; padding: 28px 16px 40px; }
.gs-login-caja { width: 100%; max-width: 420px; background: var(--gs-card); border: 1px solid var(--gs-borde); border-radius: 16px; padding: 28px 26px 24px; box-shadow: 0 6px 24px rgba(60, 20, 30, .08); text-align: center; }
.gs-login-logos { justify-content: center; margin-bottom: 8px; }
.gs-login-caja h1 { font-size: 1.45rem; margin: 6px 0 6px; line-height: 1.2; }
.gs-login-caja h1 span { color: var(--gs-granate); }
.gs-login-sub { color: var(--gs-suave); font-size: .9rem; margin: 0 0 18px; }
.gs-login-form { text-align: left; }
.gs-login-form label { display: block; font-weight: 600; font-size: .88rem; margin: 12px 0 4px; }
.gs-login-form input[type=text], .gs-login-form input[type=password] { width: 100%; box-sizing: border-box; padding: 11px 12px; font-size: 1rem; border: 1px solid var(--gs-borde); border-radius: 10px; }
.gs-login-form input[type=text]:focus, .gs-login-form input[type=password]:focus { outline: 2px solid var(--gs-granate); outline-offset: 1px; }
.gs-login-fila { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.gs-login-form label.gs-login-ck { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; font-size: .85rem; margin: 0; }
.gs-login-btn { width: 100%; margin-top: 16px; padding: 12px; font-size: 1rem; }
.gs-login-pie { margin: 16px 0 6px; font-size: .9rem; }
.gs-login-ayuda { margin: 8px 0 0; font-size: .82rem; color: var(--gs-suave); }
