:root{
	--color-vino:#8b0000;
	--color-vino-oscuro:#6e0000;
	--color-azul:#214d7a;
	--color-azul-oscuro:#163a5c;
	--color-oro:#b78b51;
	--color-fondo:#f4f4f4;
	--color-panel:#ffffff;
	--color-tinta:#2d2d2d;
	--color-texto-suave:#6c6c6c;
	--color-verde:#0c8f78;
	--color-verde-oscuro:#0a6f5d;
	--color-borde:#eadfce;
	--sombra-panel:0 20px 45px rgba(65, 37, 11, .10);
	--sombra-shell:0 18px 60px rgba(15, 23, 42, .14);
}

body{
	background:
		radial-gradient(circle at top left, rgba(183,139,81,.14), transparent 22%),
		linear-gradient(180deg, #fbf8f3 0%, #f4f4f4 32%, #f3f0eb 100%);
	font-family:"Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
	color:var(--color-tinta);
	min-height:100vh;
	font-size:15px;
	line-height:1.45;
}

.cuadro-1{
	min-height: 100px !important;
	background:linear-gradient(135deg, var(--color-azul), var(--color-azul-oscuro));
	border-radius:22px;
	color:#FFF;
	vertical-align:middle !important;
	box-shadow:var(--sombra-panel);
}
.cuadro-2{
	min-height: 100px !important;
	background:linear-gradient(135deg, var(--color-vino), var(--color-vino-oscuro));
	border-radius:22px;
	color:#FFF;
	vertical-align:middle !important;
	box-shadow:var(--sombra-panel);
}
.btn-personal{
	background:linear-gradient(135deg, var(--color-azul), var(--color-azul-oscuro)) !important;
	color:#FFFFFF !important;
	min-width:220px !important;
	min-height: 62px !important;
	border:1px solid rgba(255,255,255,.22) !important;
	border-radius:16px !important;
	box-shadow:0 10px 20px rgba(22,58,92,.18);
	font-weight:700 !important;
	padding:1rem 1.35rem !important;
}
.btn-personalizado{
	background:linear-gradient(135deg, var(--color-vino), var(--color-vino-oscuro)) !important;
	color:#FFFFFF !important;
	padding:.7rem 1rem;
	border:1px solid rgba(255,255,255,.14) !important;
	border-radius:16px !important;
	box-shadow:0 8px 18px rgba(138,28,43,.25);
	font-weight:700 !important;
	font-size:.92rem;
}
.btn-panel-principal{
	display:inline-flex;
	align-items:center;
	gap:.55rem;
	background:linear-gradient(135deg, var(--color-vino), #b11717) !important;
	color:#FFFFFF !important;
	padding:.72rem 1.1rem;
	border:1px solid rgba(255,255,255,.14) !important;
	border-radius:16px !important;
	box-shadow:0 14px 26px rgba(139,0,0,.18);
	font-weight:700 !important;
	font-size:.92rem;
	text-decoration:none !important;
}
.btn-personal:hover,
.btn-personalizado:hover,
.btn-panel-principal:hover{
	filter:brightness(.98);
	color:#fff !important;
	box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.acciones-panel-formulario{
	padding:.35rem 0 .15rem;
}
.texto-ayuda-panel{
	color:var(--color-texto-suave);
	font-size:.9rem;
}
.acciones-finales-formulario{
	padding-top:.35rem;
}
.valign {
  /*display: table-cell;
  width: calc(100vw - 10px);
  height: calc(100vh - 10px);
  vertical-align: middle;*/
  /*display: inline-block;
  vertical-align: midddle;
  white-space: normal;*/
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.log-ini{
	background:var(--color-panel);
	border:1px solid var(--color-borde);
	border-radius:22px;
	padding:1rem 1.2rem;
	box-shadow:var(--sombra-panel);
}
#leyenda{
	color:var(--color-vino);
	font-weight:700;
	text-align:right;
	font-size:1rem;
	line-height:1.3;
}
#leyenda > div{
	color:var(--color-texto-suave);
	font-weight:500;
	font-size:.82rem;
	line-height:1.25;
}
.logos > [class^="col-"] > img{height:50px !important;width:auto;}
@media screen and (min-width:1025px){
	.logos > [class^="col-"] > img{height:50px !important;width:auto;}
}
@media screen and (max-width:1024px){
	.logos > [class^="col-"] > img{height:40px !important;width:auto;}
}
@media screen and (max-width:768px){
	.logos > [class^="col-"] > img{height:30px !important;width:auto;}
}
@media screen and (max-width:480px){
	.logos > [class^="col-"] > img{height:20px !important;width:auto;}
}
@media screen and (max-width:320px){
	.logos > [class^="col-"] > img{height:15px !important;width:auto;}
}
@media screen and (max-width:240px){
	.logos > [class^="col-"] > img{height:8px !important;width:auto;}
}
.table-fixed thead,
.table-fixed tfoot{
  width: 97%;
}

.table-fixed tbody {
  height: 230px;
  overflow-y: auto;
  width: 100%;
}

.table-fixed thead,
.table-fixed tbody,
.table-fixed tfoot,
.table-fixed tr,
.table-fixed td,
.table-fixed th {
  display: block;
}

.table-fixed tbody td,
.table-fixed thead > tr> th,
.table-fixed tfoot > tr> td{
  float: left;
  border-bottom-width: 0;
}

.boton{background-color:var(--color-verde) !important;border:1px solid var(--color-verde) !important;color:#FFF !important;cursor:pointer;padding:0.2em .2em;border-radius:10px;}
.boton:disabled{cursor:no-drop;}
.boton:active{cursor:wait;}
.boton:hover{background-color:var(--color-verde-oscuro) !important;color:#FFF !important;}

a#cerrar-session,a#export{text-decoration:none;}
#cerrar-sesion{
	position:fixed;
	bottom:0;
	left:0;
	color:#FFFFFF !important;
	background:linear-gradient(135deg, var(--color-vino), var(--color-vino-oscuro)) !important;
	z-index:999999 !important;
	padding:.4em;
	border-radius:0 1em 0 0;
	box-shadow:0 8px 16px rgba(138,28,43,.22);
}
#cerrar-sesion .btn,
#cerrar-sesion a,
.barra-sesion-flotante .btn-personalizado{
	font-size:.9rem !important;
}

.table,
table{
	font-size:.92rem;
}

table thead th,
table thead td{
	font-size:.92rem;
	line-height:1.25;
}

table tbody td{
	line-height:1.38;
}

.form-control,
.form-select,
.input-group-text,
label,
.btn{
	font-size:.95rem;
}
#cerrar-sesion > a{
	text-decoration: none !important;
	color:#FFFFFF !important;
}

table thead tr td:nth-child(1){
	width:122px !important;
}
table thead tr td:nth-child(2){
	width:119px !important;;
}
table thead tr td:nth-child(3){
	width:200px !important;
}
table thead tr td:nth-child(4){
	width:200px !important;
}
.eliminar{
    width:30px !important;
    height:30px !important;
    background:url(./recursos/ico/equis.png) left top no-repeat;
    background-size:auto 100%;
    margin:2px !important;
}
.eliminar:hover{
    box-shadow:4px 4px 3px #333 !important;
}
.visualizar{
    width:30px !important;
    height:30px !important;
    background:url(./recursos/ico/lupa.png) left top no-repeat;
    background-size:auto 100%;
    margin:2px !important;
}
.visualizar:hover{
    box-shadow:4px 4px 3px #333 !important;
}
.lupa{
    width:32px !important;
    height:auto !important;
    background:url(../recursos/ico/lupa.png) left top no-repeat;
    background-size:auto 100%;
    margin:2px !important;
}
.lupa:hover{
    box-shadow:4px 4px 3px #333 !important;
}
.listo{
    width:32px !important;
    height:auto !important;
    background:url(../recursos/ico/success.png) left top no-repeat;
    background-size:auto 100%;
    margin:2px !important;
}
.listo:hover{
    box-shadow:4px 4px 3px #333 !important;
}
/*.eliminar{
		color:#000000;
		font-weight: bold;
		text-align: center;
		padding: .1em;
}
.eliminar::after{

}
.eliminar::before{
		content: "\f603";
}
.visualizar{
		color:#000000;
		font-weight: bold;
		text-align: center;
		padding: .1em;
}
.visualizar::after{
}
.visualizar::before{
		content: "v";
}*/
.table-size-h-60 tbody tr td{
		height:60px !important:;
		min-height: 40px !important;
		max-height: 60px !important;
}
.td-20px, .th-20px{
		width:20px !important;
}
.td-20vw, .th-20vw{
		width:20vw !important;
}
.td-100px, .th-100px{
		width:100px !important;
}
.td-100vw, .th-100vw{
		width:100vw !important;
}

.accordion-button:not(.collapsed){
	background:#e9f1f5 !important;
	color:var(--color-azul) !important;
	box-shadow:none !important;
}

.accordion-button:focus,
.form-control:focus,
.form-select:focus{
	border-color:#325d87 !important;
	box-shadow:0 0 0 .22rem rgba(50,93,135,.12) !important;
}

.pagina-dashboard .dashboard-shell{
	max-width:1240px;
	margin-top:.65rem !important;
	background:transparent;
	border:0;
	border-radius:0;
	overflow:visible;
	box-shadow:none;
	padding:0;
}

.encabezado-dashboard__franja{
	height:10px;
	border-radius:999px;
	background:linear-gradient(90deg, #9a0000 0%, #b23223 48%, #d2a159 100%);
	margin-bottom:.75rem;
	box-shadow:0 12px 24px rgba(139,0,0,.12);
}

.archivo-topbar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1.2rem;
	padding:1.35rem 0 1.05rem;
	color:#1f2937;
	font-size:1rem;
}

.archivo-topbar__brand{
	display:flex;
	align-items:center;
	gap:.55rem;
	min-width:0;
	font-size:1.05rem;
	font-weight:800;
	color:#1f2937;
}

.archivo-topbar__brand img{
	width:22px;
	height:22px;
	object-fit:contain;
	flex:0 0 auto;
}

.archivo-topbar__brand span{
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.archivo-topbar__nav{
	display:flex;
	align-items:center;
	gap:1.4rem;
	flex-wrap:wrap;
}

.archivo-topbar__nav a{
	display:inline-flex;
	align-items:center;
	gap:.35rem;
	color:#777;
	font-size:1rem;
	font-weight:700;
	text-decoration:none;
	transition:color .2s ease;
}

.archivo-topbar__nav a:hover,
.archivo-topbar__nav a:first-child{
	color:#1f2937;
}

.encabezado-dashboard__banner{
	overflow:hidden;
	border-radius:22px 22px 0 0;
	box-shadow:var(--sombra-panel);
	margin:0;
	background:#fff;
}

.encabezado-dashboard__banner img{
	display:block;
	width:100%;
	max-height:138px;
	object-fit:cover;
}

.archivo-hero,
.archivo-tools{
	width:96.5%;
	margin-left:auto;
	margin-right:auto;
}

.archivo-hero{
	position:relative;
	overflow:hidden;
	margin-top:7.2rem;
	padding:2rem 2rem 1.75rem;
	background:linear-gradient(135deg, #7a1238, #98043e 58%, #5e0d2b);
	color:#fff;
	border-radius:28px 28px 0 0;
	box-shadow:0 14px 34px rgba(0,0,0,.08);
}

.archivo-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background:
		radial-gradient(circle at top right, rgba(255,255,255,.14), transparent 30%),
		linear-gradient(90deg, rgba(255,255,255,.06), transparent 55%);
	pointer-events:none;
}

.archivo-hero > *{
	position:relative;
	z-index:1;
}

.archivo-hero h1{
	margin:0 0 .9rem;
	color:#fff;
	font-size:1.95rem;
	font-weight:800;
	letter-spacing:.03em;
	text-transform:uppercase;
}

.archivo-hero p{
	margin:0;
	max-width:1240px;
	color:#fff;
	font-size:1.02rem;
	font-weight:700;
	line-height:1.62;
}

.archivo-hero__ciclo{
	display:inline-flex;
	align-items:center;
	gap:.65rem;
	flex-wrap:wrap;
	margin-top:1rem;
	padding:.48rem .75rem;
	border-radius:999px;
	background:rgba(255,255,255,.12);
	border:1px solid rgba(255,255,255,.16);
	color:#fff;
	font-size:.88rem;
}

.archivo-hero__ciclo span,
.archivo-hero__ciclo small{
	opacity:.86;
}

.archivo-tools{
	background:#fff;
	border:1px solid rgba(122,18,56,.08);
	border-top:0;
	border-radius:0 0 28px 28px;
	box-shadow:0 14px 34px rgba(0,0,0,.08);
	padding:1.6rem 1.85rem 1.8rem;
	margin-bottom:2rem;
}

.archivo-tools__intro{
	text-align:center;
	margin-bottom:1.35rem;
}

.archivo-tools__intro h2{
	margin:0 0 .65rem;
	color:#5e0d2b;
	font-size:1.25rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.02em;
}

.archivo-tools__intro p{
	max-width:900px;
	margin:0 auto;
	color:#5f6b7a;
	font-size:.98rem;
	line-height:1.6;
}

.archivo-accordion{
	display:flex;
	flex-direction:column;
	gap:1rem;
}

.archivo-accordion-item{
	overflow:hidden;
	background:#fff;
	border:1px solid rgba(122,18,56,.10);
	border-radius:20px;
	box-shadow:0 8px 22px rgba(0,0,0,.05);
}

.archivo-accordion-trigger{
	width:100%;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	border:0;
	background:linear-gradient(180deg,#fff 0%,#fcfaf7 100%);
	padding:1rem 1.2rem;
	text-align:left;
	cursor:pointer;
}

.archivo-accordion-trigger-left{
	display:flex;
	align-items:center;
	gap:.9rem;
	min-width:0;
}

.archivo-accordion-badge{
	width:46px;
	height:46px;
	border-radius:14px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background:rgba(122,18,56,.10);
	color:#7a1238;
	font-weight:800;
	font-size:.95rem;
	flex:0 0 auto;
}

.archivo-accordion-title-wrap{
	min-width:0;
}

.archivo-accordion-title{
	display:block;
	color:#5e0d2b;
	font-size:1.02rem;
	font-weight:800;
	letter-spacing:.02em;
	text-transform:uppercase;
}

.archivo-accordion-subtitle{
	display:block;
	margin-top:.2rem;
	color:#5f6b7a;
	font-size:.92rem;
	line-height:1.4;
}

.archivo-accordion-icon{
	width:40px;
	height:40px;
	border-radius:50%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background:#f7f1e6;
	color:#7a1238;
	font-size:1.1rem;
	flex:0 0 auto;
}

.archivo-accordion-item.active .archivo-accordion-trigger{
	background:linear-gradient(135deg, rgba(122,18,56,.08), rgba(201,163,78,.10));
	border-bottom:1px solid rgba(122,18,56,.08);
}

.archivo-accordion-panel{
	display:block;
	padding:1.15rem;
	background:linear-gradient(180deg,#fff 0%,#fcfbf8 100%);
}

.encabezado-dashboard .log-ini{
	margin-top:0;
	border-radius:0 0 22px 22px;
	background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	padding:2rem 1.75rem;
	align-items:stretch !important;
}

.encabezado-dashboard__identidad{
	display:flex;
	flex-direction:column;
	justify-content:center;
	min-height:100%;
	gap:.75rem;
}

.encabezado-dashboard__texto span{
	display:block;
	font-size:.92rem;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#5b6778;
	margin-bottom:.25rem;
}

.encabezado-dashboard__texto strong{
	display:block;
	font-size:1.02rem;
	line-height:1.28;
	color:var(--color-vino);
}

.encabezado-dashboard__acciones{
	display:flex;
	flex-wrap:wrap;
	gap:.7rem;
	flex-direction:column;
	align-items:flex-start;
}

.btn-panel-principal{
	display:inline-flex;
	align-items:center;
	gap:.5rem;
	padding:.68rem 1.05rem !important;
	border-radius:12px !important;
	background:linear-gradient(135deg, var(--color-vino), #b11717) !important;
	color:#fff !important;
	text-decoration:none !important;
	font-size:1rem !important;
	font-weight:700 !important;
	box-shadow:0 10px 18px rgba(139,0,0,.14);
}

.btn-panel-principal:hover{
	color:#fff !important;
	filter:brightness(.98);
}

.selector-ciclo{
	background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	border:1px solid var(--color-borde);
	border-radius:18px;
	padding:1rem 1.15rem;
	min-height:100%;
}

.selector-ciclo__fila{
	display:flex;
	gap:.55rem;
	align-items:center;
}

.selector-ciclo .form-label{
	font-size:1rem;
	font-weight:700;
	color:#334155;
}

.selector-ciclo--fijo .selector-ciclo__fila{
	flex-direction:column;
	align-items:flex-start;
	gap:.18rem;
}

.selector-ciclo__valor{
	display:flex;
	align-items:center;
	min-height:56px;
	padding:.55rem .9rem;
	border:1px solid #cfd8e3;
	border-radius:13px;
	background:#fff;
	color:#1f2937;
	font-size:1.35rem;
	font-weight:700;
	min-width:100%;
}

.selector-ciclo__detalle{
	font-size:.98rem;
	color:#5b6778;
}

.selector-ciclo__fila .form-control{
	min-height:42px;
	border-radius:13px;
	font-size:1.02rem;
	padding:.45rem .8rem;
}

.selector-ciclo__fila .btn{
	min-height:42px;
	padding:0 1rem;
	border-radius:13px;
	font-weight:700;
	background:linear-gradient(135deg, var(--color-azul), var(--color-azul-oscuro));
	border:none;
	font-size:.95rem;
}

.leyenda-panel{
	background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	border:1px solid var(--color-borde);
	border-radius:18px;
	padding:1.1rem 1.35rem;
	min-height:100%;
	display:flex;
	flex-direction:column;
	justify-content:center;
	text-align:right;
	color:#8a0000;
	font-size:1.16rem;
	font-weight:800;
	line-height:1.28;
}

.leyenda-panel > div{
	margin-top:.8rem;
	color:#6f6964;
	font-size:1rem;
	font-weight:600;
	line-height:1.3;
}

.dashboard-hero{
	display:grid;
	grid-template-columns:minmax(0, 1.6fr) minmax(260px, .8fr);
	gap:1rem;
	padding:1.25rem 1.35rem;
	background:linear-gradient(135deg, #eaf1f5 0%, #f7fbfd 100%);
	border:1px solid var(--color-borde);
	border-radius:24px;
	color:var(--color-tinta);
	box-shadow:var(--sombra-panel);
}

.dashboard-badge{
	display:inline-flex;
	align-items:center;
	gap:.45rem;
	padding:.32rem .72rem;
	border-radius:999px;
	background:rgba(138,28,43,.08);
	color:var(--color-vino);
	font-size:.72rem;
	font-weight:700;
	letter-spacing:.04em;
	text-transform:uppercase;
	margin-bottom:.7rem;
}

.dashboard-hero h1{
	font-size:clamp(1.22rem, 2vw, 1.75rem);
	line-height:1.12;
	margin:0 0 .45rem;
	font-weight:800;
	max-width:720px;
	color:#1f2937;
}

.dashboard-hero p{
	font-size:.9rem;
	line-height:1.42;
	max-width:780px;
	color:var(--color-texto-suave);
	margin:0;
}

.dashboard-hero__meta{
	display:grid;
	gap:.75rem;
	align-content:start;
}

.guia-operativa{
	position:relative;
	background:
		linear-gradient(135deg, rgba(139,0,0,.045), rgba(183,139,81,.08)),
		linear-gradient(180deg, #ffffff 0%, #fbfaf8 100%);
	border:1px solid var(--color-borde);
	border-radius:22px;
	padding:1.25rem 1.3rem 1.35rem;
	box-shadow:var(--sombra-panel);
	overflow:hidden;
}

.guia-operativa::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:6px;
	background:linear-gradient(90deg, var(--color-vino), #b11717, var(--color-oro));
}

.guia-operativa__cabecera{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:1rem;
	flex-wrap:wrap;
}

.guia-operativa__etiqueta{
	display:inline-flex;
	align-items:center;
	gap:.45rem;
	padding:.42rem .82rem;
	border-radius:999px;
	background:rgba(138,28,43,.08);
	color:var(--color-vino);
	font-size:.92rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.03em;
}

.guia-operativa__cabecera h2{
	margin:.65rem 0 .25rem;
	font-size:1.15rem;
	color:#1f2937;
}

.guia-operativa__cabecera p{
	margin:0;
	color:var(--color-texto-suave);
	line-height:1.45;
	font-size:.92rem;
	max-width:760px;
}

.guia-operativa__pasos{
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:.75rem;
	margin-top:1.15rem;
}

.panel-permisos{
	background:linear-gradient(180deg,#fff,#faf7f2);
	border:1px solid rgba(183,139,81,.18);
	border-radius:22px;
	padding:1rem 1.1rem;
	box-shadow:var(--sombra-panel);
}

.panel-permisos__cabecera{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	flex-wrap:wrap;
	margin-bottom:.9rem;
}

.panel-permisos__cabecera p{
	margin:0;
	color:var(--color-texto-suave);
	font-size:.92rem;
}

.panel-permisos__lista{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:.65rem;
}

.permiso-item{
	display:grid;
	grid-template-columns:42px minmax(0, 1fr);
	gap:.65rem;
	align-items:start;
	background:#fff;
	border:1px solid rgba(183,139,81,.18);
	border-radius:14px;
	padding:.75rem;
}

.permiso-item > span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	border-radius:12px;
	background:rgba(139,0,0,.08);
	color:var(--color-vino);
	font-weight:900;
	font-size:1rem;
}

.permiso-item strong{
	display:block;
	color:#2f2a26;
	font-size:.94rem;
	margin-bottom:.12rem;
}

.permiso-item small{
	display:block;
	color:#6c645b;
	font-size:.8rem;
	line-height:1.35;
}

.guia-paso{
	position:relative;
	display:grid;
	grid-template-columns:42px minmax(0, 1fr);
	align-items:start;
	column-gap:.75rem;
	background:rgba(255,255,255,.72);
	border:1px solid rgba(183,139,81,.24);
	border-radius:16px;
	padding:.9rem .85rem;
	box-shadow:0 8px 20px rgba(65,37,11,.05);
}

.guia-paso__numero{
	display:inline-flex;
	width:34px;
	height:34px;
	align-items:center;
	justify-content:center;
	border-radius:999px;
	background:linear-gradient(135deg, var(--color-vino), #b11717);
	color:#fff;
	font-weight:800;
	font-size:.85rem;
	box-shadow:0 8px 16px rgba(139,0,0,.18);
}

.guia-paso h3{
	font-size:.96rem;
	line-height:1.25;
	margin:0 0 .32rem;
	color:#1f2937;
	font-weight:800;
}

.guia-paso p{
	margin:0;
	color:var(--color-texto-suave);
	line-height:1.45;
	font-size:.88rem;
	grid-column:2;
}

.panel-lineal-operativo{
	position:relative;
	background:linear-gradient(180deg, #ffffff 0%, #fbfaf8 100%);
	border:1px solid var(--color-borde);
	border-radius:22px;
	box-shadow:var(--sombra-panel);
	overflow:hidden;
}

.panel-lineal-operativo::before{
	content:"";
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:6px;
	background:linear-gradient(90deg, var(--color-vino), #b11717, var(--color-oro));
}

.lineal-encabezado{
	display:grid;
	grid-template-columns:minmax(240px, .65fr) minmax(0, 1fr);
	gap:1rem;
	align-items:center;
	padding:1.35rem 1.45rem .9rem;
	border-bottom:1px solid rgba(183,139,81,.20);
}

.lineal-etiqueta{
	display:inline-flex;
	align-items:center;
	gap:.45rem;
	width:max-content;
	max-width:100%;
	padding:.42rem .82rem;
	border-radius:999px;
	background:rgba(139,0,0,.08);
	color:var(--color-vino);
	font-size:.92rem;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.03em;
}

.lineal-encabezado p{
	margin:0;
	color:var(--color-texto-suave);
	font-size:.96rem;
	line-height:1.45;
}

.lineal-flujo{
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:0;
	margin:0;
	padding:0 1.45rem;
	list-style:none;
	border-bottom:1px solid rgba(183,139,81,.20);
}

.lineal-flujo li{
	position:relative;
	display:flex;
	align-items:center;
	gap:.65rem;
	min-height:76px;
	padding:1rem 1.1rem 1rem 0;
	color:#302925;
}

.lineal-flujo li + li{
	padding-left:1.1rem;
	border-left:1px solid rgba(183,139,81,.18);
}

.lineal-flujo li:not(:last-child)::after{
	content:"";
	position:absolute;
	right:-7px;
	top:50%;
	width:14px;
	height:14px;
	border-top:2px solid rgba(139,0,0,.36);
	border-right:2px solid rgba(139,0,0,.36);
	transform:translateY(-50%) rotate(45deg);
	background:#fff;
	z-index:1;
}

.lineal-flujo span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	border-radius:999px;
	background:linear-gradient(135deg, var(--color-vino), #b11717);
	color:#fff;
	font-size:.88rem;
	font-weight:800;
	flex:0 0 auto;
	box-shadow:0 8px 16px rgba(139,0,0,.16);
}

.lineal-flujo strong{
	font-size:.98rem;
	line-height:1.25;
}

.lineal-lista{
	display:flex;
	flex-direction:column;
	padding:.2rem 1.45rem 1.2rem;
}

.lineal-accion{
	display:grid;
	grid-template-columns:46px minmax(0, 1fr) auto;
	gap:.95rem;
	align-items:center;
	padding:1.05rem 0;
	color:var(--color-tinta);
	text-decoration:none;
	border-bottom:1px solid rgba(183,139,81,.18);
}

.lineal-accion:last-child{
	border-bottom:0;
}

.lineal-accion__icono{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:46px;
	height:46px;
	border-radius:14px;
	background:rgba(139,0,0,.08);
	color:var(--color-vino);
	font-size:1.15rem;
}

.lineal-accion__texto strong{
	display:block;
	color:var(--color-vino);
	font-size:1.02rem;
	line-height:1.25;
	font-weight:800;
	margin-bottom:.18rem;
}

.lineal-accion__texto small{
	display:block;
	color:var(--color-texto-suave);
	font-size:.9rem;
	line-height:1.4;
}

.lineal-accion__boton{
	display:inline-flex;
	align-items:center;
	gap:.35rem;
	padding:.52rem .9rem;
	border-radius:999px;
	background:linear-gradient(135deg, var(--color-vino), #b11717);
	color:#fff;
	font-size:.86rem;
	font-weight:800;
	white-space:nowrap;
	box-shadow:0 10px 18px rgba(139,0,0,.14);
}

.lineal-accion:hover{
	color:var(--color-tinta);
	background:linear-gradient(90deg, rgba(139,0,0,.035), transparent);
}

.lineal-accion:hover .lineal-accion__boton{
	filter:brightness(.98);
}

.dashboard-kpi{
	background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	border:1px solid var(--color-borde);
	border-radius:18px;
	padding:.8rem .9rem;
}

.dashboard-kpi__label{
	display:block;
	font-size:.72rem;
	text-transform:uppercase;
	letter-spacing:.08em;
	color:#5b6778;
	margin-bottom:.25rem;
}

.dashboard-kpi strong{
	font-size:1rem;
	line-height:1.25;
	color:var(--color-vino);
}

.panel-modulo{
	position:relative;
	background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	border:1px solid var(--color-borde);
	border-radius:22px;
	padding:1rem 1.1rem;
	box-shadow:var(--sombra-panel);
	overflow:hidden;
}

.archivo-tools .panel-modulo{
	height:100%;
	min-height:220px;
	display:flex;
	flex-direction:column;
	padding:0;
	background:linear-gradient(180deg, #ffffff 0%, #fcfbf8 100%);
	border:1px solid #e6e8ec;
	border-radius:18px;
	box-shadow:0 10px 24px rgba(0,0,0,.05);
	transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.archivo-tools .panel-modulo:hover{
	transform:translateY(-3px);
	box-shadow:0 16px 28px rgba(0,0,0,.08);
	border-color:rgba(122,18,56,.18);
}

.archivo-tools .panel-modulo::after{
	display:none;
}

.archivo-tools .panel-modulo__cabecera{
	display:block;
	margin:0;
}

.archivo-tools .panel-modulo__icono{
	width:100%;
	height:auto;
	min-height:44px;
	border-radius:0;
	background:#faf6ef;
	border:0;
	border-bottom:2px solid rgba(122,18,56,.18);
	color:#5e0d2b;
	font-size:1.2rem;
}

.archivo-tools .panel-modulo__texto{
	padding:1.05rem 1rem .45rem;
	text-align:center;
}

.archivo-tools .panel-modulo__texto h2{
	margin:0 0 .55rem;
	color:#7a1238;
	font-size:1.08rem;
	font-weight:800;
	line-height:1.28;
}

.archivo-tools .panel-modulo__texto p{
	color:#5f6b7a;
	font-size:.92rem;
	line-height:1.55;
}

.archivo-tools .panel-modulo__acciones{
	justify-content:center;
	gap:.55rem;
	margin-top:auto;
	padding:.85rem 1rem 1rem;
	border-top:1px solid #f0f0f0;
}

.archivo-tools .btn-modulo{
	min-width:104px;
	justify-content:center;
	padding:.56rem 1.05rem;
	border-radius:999px;
	background:#7a1238;
	box-shadow:none;
	font-size:.86rem;
}

.archivo-tools .btn-modulo i{
	display:none;
}

.archivo-tools .btn-modulo:hover{
	background:#5e0d2b;
	transform:translateY(-1px);
}

.panel-modulo::after{
	content:"";
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:6px;
	background:var(--modulo-color, var(--color-vino));
}

.panel-modulo__cabecera{
	display:grid;
	grid-template-columns:58px minmax(0, 1fr);
	gap:.85rem;
	align-items:start;
	margin-bottom:.7rem;
}

.panel-modulo__icono{
	width:58px;
	height:58px;
	border-radius:16px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:color-mix(in srgb, var(--modulo-color, var(--color-azul)) 12%, white);
	color:var(--modulo-color, var(--color-vino));
	font-size:1.45rem;
}

.panel-modulo__texto h2{
	margin:0 0 .25rem;
	font-size:1.02rem;
	line-height:1.25;
	color:#1f2937;
}

.panel-modulo__texto p{
	margin:0;
	color:var(--color-texto-suave);
	line-height:1.42;
	font-size:.88rem;
}

.panel-modulo__acciones{
	display:flex;
	flex-wrap:wrap;
	gap:.7rem;
	margin-top:.85rem;
}

.btn-modulo{
	display:inline-flex;
	align-items:center;
	justify-content:space-between;
	gap:.75rem;
	min-width:210px;
	max-width:100%;
	padding:.72rem .95rem;
	border-radius:14px;
	text-decoration:none;
	background:linear-gradient(135deg, var(--modulo-color, var(--color-azul)), color-mix(in srgb, var(--modulo-color, var(--color-azul)) 78%, #ffffff));
	color:#fff !important;
	font-weight:700;
	box-shadow:0 12px 24px rgba(15,23,42,.10);
	transition:transform .18s ease, box-shadow .18s ease;
	font-size:.88rem;
}

.btn-modulo:hover{
	transform:translateY(-2px);
	box-shadow:0 18px 28px rgba(0,0,0,.14);
}

.btn-modulo i{
	font-size:1rem;
}

.modulo-rojo{--modulo-color:#8a1c2b;}
.modulo-dorado{--modulo-color:#7a5a18;}
.modulo-verde{--modulo-color:#1f6b61;}
.modulo-azul{--modulo-color:#214d7a;}
.modulo-morado{--modulo-color:#46556b;}
.modulo-turquesa{--modulo-color:#1f6b61;}
.modulo-naranja{--modulo-color:#7a5a18;}
.modulo-vino{--modulo-color:#8a1c2b;}

.dashboard-alerta{
	border:none !important;
	border-radius:18px !important;
	padding:1rem 1.05rem !important;
	box-shadow:var(--sombra-panel);
}

.barra-sesion-flotante{
	position:static;
	display:flex;
	justify-content:flex-end;
	width:min(92vw,1700px);
	margin:.75rem auto 1rem;
	z-index:auto;
}

.encabezado-dashboard__acciones .barra-sesion-flotante{
	width:auto;
	margin:0;
}

.barra-sesion-flotante .btn-personalizado{
	display:inline-flex;
	align-items:center;
	gap:.55rem;
}

.barra-sesion-flotante .btn-cerrar-sesion-superior,
.encabezado-dashboard__acciones .btn-cerrar-sesion-superior{
	background:linear-gradient(135deg, #1f6b61, #174f48) !important;
	border:1px solid rgba(255,255,255,.25) !important;
	border-radius:12px !important;
	box-shadow:0 10px 22px rgba(31,107,97,.18);
	color:#fff !important;
	padding:.68rem 1.05rem !important;
	font-size:1rem !important;
	display:inline-flex !important;
	align-items:center;
	gap:.5rem;
	text-decoration:none !important;
	font-weight:700 !important;
}

.barra-sesion-flotante .btn-cerrar-sesion-superior:hover,
.barra-sesion-flotante .btn-cerrar-sesion-superior:focus,
.encabezado-dashboard__acciones .btn-cerrar-sesion-superior:hover,
.encabezado-dashboard__acciones .btn-cerrar-sesion-superior:focus{
	background:linear-gradient(135deg, #174f48, #123d38) !important;
	box-shadow:0 12px 24px rgba(31,107,97,.24);
	color:#fff !important;
}

@media screen and (max-width: 767px){
	.barra-sesion-flotante{
		width:calc(100% - 1.3rem);
		margin:.6rem auto .9rem;
	}
	.encabezado-dashboard__acciones .barra-sesion-flotante{
		width:auto;
		margin:0;
	}
	.barra-sesion-flotante .btn-cerrar-sesion-superior,
	.encabezado-dashboard__acciones .btn-cerrar-sesion-superior{
		padding:.46rem .66rem !important;
		font-size:.82rem !important;
	}
}

.dashboard-kpi small{
	display:block;
	margin-top:.2rem;
	font-size:.74rem;
	color:#5b6778;
}

.panel-cumplimiento{
	background:var(--color-panel);
	border:1px solid var(--color-borde);
	border-radius:22px;
	padding:1.1rem;
	box-shadow:var(--sombra-panel);
}

.panel-cumplimiento__cabecera h2{
	font-size:1.12rem;
	margin:.4rem 0 .2rem;
}

.panel-cumplimiento__cabecera p{
	color:var(--color-texto-suave);
	margin-bottom:0;
	font-size:.88rem;
	line-height:1.4;
}

.panel-cumplimiento__kpis{
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:.8rem;
	margin-top:1rem;
}

.consulta-usuarios{
	margin-top:1rem;
	padding: .95rem 1rem;
	background:#f8fafc;
	border:1px solid var(--color-borde);
	border-radius:18px;
}

.consulta-usuarios__fila{
	display:flex;
	gap:.8rem;
	align-items:end;
	flex-wrap:wrap;
}

.consulta-usuarios__campo{
	flex:1 1 320px;
}

.consulta-usuarios__campo label{
	display:block;
	margin-bottom:.35rem;
	font-size:.82rem;
	font-weight:700;
	color:#5f5144;
}

.consulta-usuarios .form-control{
	min-height:42px;
	border-radius:13px;
}

.consulta-usuarios .btn{
	min-height:42px;
	padding:0 1rem;
	border-radius:13px;
	font-size:.92rem;
	font-weight:700;
	background:linear-gradient(135deg, var(--color-azul), var(--color-azul-oscuro));
	border:none;
}

.tarjeta-kpi{
	border-radius:18px;
	padding:.8rem .9rem;
	color:#fff;
	box-shadow:0 16px 28px rgba(0,0,0,.08);
}

.tarjeta-kpi span{
	display:block;
	font-size:.76rem;
	opacity:.9;
}

.tarjeta-kpi strong{
	display:block;
	font-size:1.5rem;
	line-height:1.1;
	margin-top:.25rem;
}

.tarjeta-kpi--verde{background:linear-gradient(135deg,#1f6b61,#14453f);}
.tarjeta-kpi--vino{background:linear-gradient(135deg,#8a1c2b,#5f0f1a);}
.tarjeta-kpi--dorado{background:linear-gradient(135deg,#7a5a18,#4d390f);}
.tarjeta-kpi--azul{background:linear-gradient(135deg,#214d7a,#163a5c);}

.tabla-cumplimiento{
	margin-top:1rem;
	overflow:auto;
}

.tabla-cumplimiento table{
	min-width:860px;
}

.tabla-cumplimiento thead th{
	background:#e9f1f5;
	border-bottom:1px solid var(--color-borde);
	color:#214d7a;
	font-size:.78rem;
	text-transform:uppercase;
	letter-spacing:.04em;
}

.tabla-cumplimiento tbody td{
	vertical-align:middle;
	border-bottom:1px solid #e2e8f0;
	font-size:.88rem;
	padding:.65rem .5rem;
}

.tabla-cumplimiento__usuario{
	color:#7a7a7a;
	font-size:.76rem;
	margin-top:.15rem;
}

.barra-cumplimiento{
	height:8px;
	background:#e2e8f0;
	border-radius:999px;
	overflow:hidden;
	margin-bottom:.35rem;
}

.barra-cumplimiento span{
	display:block;
	height:100%;
	background:linear-gradient(135deg,#1f6b61,#214d7a);
	border-radius:999px;
}

.estado-cumplimiento{
	display:inline-flex;
	align-items:center;
	padding:.25rem .58rem;
	border-radius:999px;
	font-size:.74rem;
	font-weight:700;
}

.estado-cumplido{
	background:rgba(12,143,120,.12);
	color:#0b7d69;
}

.estado-pendiente{
	background:rgba(138,28,43,.12);
	color:var(--color-vino);
}

.estado-sin-actividad{
	background:rgba(122,90,24,.15);
	color:#7a5a18;
}

.panel-ejecutivo{
	background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	border:1px solid var(--color-borde);
	border-radius:24px;
	padding:1.1rem;
	box-shadow:var(--sombra-panel);
}

.panel-ejecutivo__cabecera h2{
	font-size:1.18rem;
	margin:.45rem 0 .2rem;
	color:#1f2937;
}

.panel-ejecutivo__cabecera p{
	margin:0;
	color:var(--color-texto-suave);
	font-size:.9rem;
	line-height:1.42;
}

.ejecutivo-kpis{
	grid-template-columns:repeat(4, minmax(0, 1fr));
}

.ejecutivo-grid{
	display:grid;
	gap:.85rem;
}

.ejecutivo-grid--dos{
	grid-template-columns:repeat(2, minmax(0, 1fr));
}

.ejecutivo-grid--tres{
	grid-template-columns:repeat(3, minmax(0, 1fr));
}

.ejecutivo-panel{
	background:#fff;
	border:1px solid var(--color-borde);
	border-radius:18px;
	padding:.95rem 1rem;
}

.ejecutivo-panel__encabezado h3{
	margin:0;
	font-size:1rem;
	color:#1f2937;
}

.ejecutivo-panel__encabezado p{
	margin:.22rem 0 0;
	font-size:.84rem;
	color:var(--color-texto-suave);
	line-height:1.4;
}

.actividad-semanal{
	display:grid;
	grid-template-columns:repeat(7, minmax(0, 1fr));
	gap:.6rem;
	align-items:end;
	margin-top:1rem;
	min-height:200px;
}

.actividad-dia{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:.35rem;
}

.actividad-dia__grafica{
	width:100%;
	height:110px;
	display:flex;
	align-items:flex-end;
	justify-content:center;
	padding:.35rem;
	border-radius:14px;
	background:linear-gradient(180deg,#f8fafc,#e9f1f5);
	border:1px solid #dbe4ee;
}

.actividad-dia__grafica span{
	display:block;
	width:100%;
	max-width:38px;
	border-radius:999px 999px 10px 10px;
	background:linear-gradient(180deg,#214d7a,#8a1c2b);
	min-height:12px;
}

.actividad-dia strong{
	font-size:.96rem;
	color:#2d2723;
}

.actividad-dia small{
	font-size:.74rem;
	font-weight:700;
	color:#584b3f;
}

.actividad-dia em{
	font-style:normal;
	font-size:.72rem;
	color:#80766c;
	text-align:center;
}

.ejecutivo-lista{
	display:flex;
	flex-direction:column;
	gap:.65rem;
	margin-top:.95rem;
}

.item-ranking{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.8rem;
	padding:.75rem .8rem;
	background:#f8fafc;
	border:1px solid var(--color-borde);
	border-radius:14px;
}

.item-ranking__contenido strong{
	display:block;
	font-size:.92rem;
	color:#302925;
	line-height:1.25;
}

.item-ranking__contenido small,
.item-ranking__meta small{
	display:block;
	color:#5b6778;
	font-size:.76rem;
	line-height:1.35;
}

.item-ranking__meta{
	text-align:right;
	flex:0 0 auto;
}

.item-ranking__meta span{
	display:block;
	font-weight:800;
	font-size:.88rem;
	color:var(--color-vino);
}

.ejecutivo-consulta__grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:.8rem;
	margin-top:.95rem;
}

.consulta-usuario-card{
	background:#fff;
	border:1px solid var(--color-borde);
	border-radius:18px;
	padding:.9rem;
}

.consulta-usuario-card__cabecera{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:.7rem;
}

.consulta-usuario-card__cabecera strong{
	display:block;
	font-size:.95rem;
	color:#2f2925;
}

.consulta-usuario-card__cabecera small{
	display:block;
	color:#5b6778;
	font-size:.76rem;
}

.consulta-usuario-card__area{
	margin-top:.55rem;
	font-size:.82rem;
	font-weight:700;
	color:#334155;
}

.consulta-usuario-card__metricas,
.consulta-usuario-card__desglose{
	display:flex;
	flex-wrap:wrap;
	gap:.45rem .85rem;
	margin-top:.65rem;
}

.consulta-usuario-card__metricas span,
.consulta-usuario-card__desglose small{
	font-size:.78rem;
	color:var(--color-texto-suave);
}

.consulta-usuario-card__metricas strong{
	color:#2e2823;
}

@media (max-width:991px){
	.pagina-dashboard .dashboard-shell{
		padding:0 .75rem 1.5rem;
	}

	.archivo-topbar{
		align-items:flex-start;
		flex-direction:column;
		gap:.75rem;
		padding:1rem 0 .85rem;
	}

	.archivo-topbar__brand span{
		white-space:normal;
	}

	.archivo-topbar__nav{
		gap:.85rem;
	}

	.archivo-hero,
	.archivo-tools{
		width:100%;
	}

	.archivo-hero{
		margin-top:4.5rem;
		padding:1.35rem 1.1rem 1.2rem;
	}

	.archivo-hero h1{
		font-size:1.5rem;
	}

	.archivo-tools{
		padding:1.15rem;
	}

	.dashboard-hero{
		grid-template-columns:1fr;
		padding:1rem;
	}

	.guia-operativa__pasos{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.panel-permisos__lista{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.guia-operativa__cabecera{
		display:block;
	}

	.guia-operativa__cabecera p{
		margin-top:.65rem;
	}

	.selector-ciclo__fila{
		flex-direction:column;
		align-items:stretch;
	}

	.panel-cumplimiento__kpis{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.ejecutivo-kpis,
	.ejecutivo-grid--dos,
	.ejecutivo-grid--tres,
	.ejecutivo-consulta__grid{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.consulta-usuarios__fila{
		flex-direction:column;
		align-items:stretch;
	}

	.leyenda-panel,
	.selector-ciclo{
		padding:.8rem;
	}
}

@media (max-width:767px){
	.encabezado-dashboard__banner img{
		max-height:112px;
	}

	.archivo-topbar__brand{
		font-size:.95rem;
	}

	.archivo-topbar__nav a{
		font-size:.92rem;
	}

	.archivo-hero{
		margin-top:2.4rem;
		border-radius:22px 22px 0 0;
	}

	.archivo-hero h1{
		font-size:1.18rem;
	}

	.archivo-hero p,
	.archivo-tools__intro p,
	.archivo-accordion-subtitle{
		font-size:.9rem;
	}

	.archivo-tools{
		border-radius:0 0 22px 22px;
		padding:.95rem .85rem;
	}

	.archivo-tools__intro h2{
		font-size:1rem;
	}

	.archivo-accordion-trigger{
		padding:.9rem .95rem;
	}

	.archivo-accordion-title{
		font-size:.95rem;
	}

	.archivo-accordion-panel{
		padding:.9rem;
	}

	.panel-modulo{
		padding:.95rem;
	}

	.panel-modulo__cabecera{
		grid-template-columns:1fr;
	}

	.panel-modulo__icono{
		width:52px;
		height:52px;
		border-radius:14px;
		font-size:1.25rem;
	}

	.btn-modulo{
		width:100%;
		min-width:0;
	}

	.guia-operativa__pasos{
		grid-template-columns:1fr;
	}

	.panel-permisos__lista{
		grid-template-columns:1fr;
	}

	.guia-paso{
		grid-template-columns:38px minmax(0, 1fr);
	}

	.lineal-encabezado{
		grid-template-columns:1fr;
		padding:1.15rem 1rem .8rem;
	}

	.lineal-flujo{
		grid-template-columns:1fr;
		padding:.4rem 1rem;
	}

	.lineal-flujo li{
		min-height:auto;
		padding:.75rem 0;
	}

	.lineal-flujo li + li{
		padding-left:0;
		border-left:0;
		border-top:1px solid rgba(183,139,81,.18);
	}

	.lineal-flujo li:not(:last-child)::after{
		display:none;
	}

	.lineal-lista{
		padding:.15rem 1rem 1rem;
	}

	.lineal-accion{
		grid-template-columns:42px minmax(0, 1fr);
		gap:.75rem;
	}

	.lineal-accion__boton{
		grid-column:2;
		width:max-content;
	}

	.panel-cumplimiento{
		padding:.95rem;
	}

	.panel-cumplimiento__kpis{
		grid-template-columns:1fr;
	}

	.ejecutivo-kpis,
	.ejecutivo-grid--dos,
	.ejecutivo-grid--tres,
	.ejecutivo-consulta__grid{
		grid-template-columns:1fr;
	}

	.actividad-semanal{
		grid-template-columns:repeat(4, minmax(0, 1fr));
		min-height:auto;
	}

	#leyenda,
	.leyenda-panel{
		text-align:left;
	}
}
