/*
  Colours

    #ffa500   Light orange (h1, h2)
    #ff6400   Dark orange (title, border)
    #0080c0   Dark blue (title)
    #006699   Links
    #15A300   Links-hover, column titles
    #ffffaa   Highlight background
	#b71234   Pantone 200
	#1e1e1e   Negro
	#e00034   Pantone 185 (Dpto Sistemas)
	#ced4da   Gris

*/

/*! PocketGrid 1.1.0
* Copyright 2013 Arnaud Leray
* MIT License
*/.block-group,.block,.block-group:after,.block:after,.block-group:before,.block:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
.block-group{*zoom:1}
.block-group:before,.block-group:after{display:table;content:"";line-height:0}
.block-group:after{clear:both}
.block-group{list-style-type:none;padding:0;margin:0}
.block-group>.block-group{clear:none;float:left;margin:0 !important}
.block{float:left;width:100%}

.b-10 { width: 10%; }
.b-15 { width: 15%; }
.b-20 { width: 20%; }
.b-25 { width: 25%; }
.b-30 { width: 30%; }
.b-35 { width: 35%; }
.b-40 { width: 40%; }
.b-60 { width: 60%; }
.b-70 { width: 70%; }


html{ overflow: -moz-scrollbars-vertical; }

body{
	background-image:url(images/bg/global.png);
	background-repeat:repeat-x;
	background-color:#fff ;
	font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";;
	font-size:12px;
	letter-spacing:0px;
	padding: 0;
	margin: 0;
	border-top: none;              /* por si había algo antes */
    border-bottom: 4px solid #b71234;
}

h1, h2, h3, h4, h5{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";; color:#000; }

h1, h2{ color:#1e1e1e; font-weight:normal; }

h1{ font-size:24pt; }
h2{ font-size:20pt; }
h3{ font-size:16pt; }
h4{ font-size:14pt; }
h5{ font-size:12pt; }
h6{ font-size:10pt; }

img{ border:0; }

.outer{
  width:960px;
  clear:both;
  margin-left:auto;
  margin-right:auto;
}

/* === HEADER DISILAB – fondo blanco full width + borde rojo === */
.header {
  background: transparent !important;   /* anulamos rojo anterior */
  position: relative;
  z-index: 10;
}

/* Banda blanca a todo el ancho, aunque el contenido esté centrado */
.header::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%; right: 50%;
  margin-left: -50vw;   /* estira hasta los bordes de la ventana */
  margin-right: -50vw;
  background: #ffffff; 
  border-bottom: 4px solid #b71234;  /* rojo institucional */
  z-index: -1;          /* queda detrás del contenido del header */
}

/* Logo */
.header .title img {
  height: 60px;               /* ajusta tamaño a gusto */
  vertical-align: middle;
}

/* Links del header (Panel de Control / Cerrar Sesión) en rojo para contraste */
.header .nav-box a {
  color: #b71234 !important;
  font-weight: 600;
  text-decoration: none;
}
.header .nav-box a:hover { text-decoration: underline; }

/* Texto “Ingresado como …” en gris oscuro para legibilidad */
.header .nav-box a.normal {
  color: #333 !important;
  font-weight: 500;
}

.nav-box{
  width:340px;
  float:right;
  margin-top:20px;
  font-weight:bold;
  color:#006699;
  font-size:12px;
  text-align:right;
}

.nav-box p.normal{
	font-weight:normal;
	font-size:90%;
	color:#000;
	margin:8px 0;
}

.mid-section{
  padding-top:20px;
}

.content_area{
  padding-left:5px;
  padding-right:5px;
  padding-top:12px;
  margin-top:24px;
}

.sub_nav{
  float:left;
  width:180px;
  margin-right:25px;
  margin-top:15px;
}

.noticebox{
  background-color:#FFFFBF;
  border:1px solid #808080;
  padding:5px;
  text-align:center;
}
.noticebox h1{
  border-bottom:1px solid #808080;
  font-size:95%;
}

.small{ font-size:90%; }

.footer{
  text-align:center;
  font-size:12px;
  padding-top:10px;
  clear:both;
}

.footer #footer{
  border-top:1px solid #b71234;
  margin-top:24px;
  padding-top:10px;
}

b{
  font-style:normal;
  color:#000000;
  text-decoration:none;
}

h5 a{
	color: #1e1e1e;
}

h6 a{
	color: #1e1e1e;
}

span a{
  font-style:normal;
  color:#ffffff;
  text-decoration:none;
}

span h6 a{
	color: #1e1e1e;
}

a{
  font-style:normal;
  color:#1e1e1e;
  text-decoration:none;
}

/*
a:hover{
  font-style:normal;
  color:#ced4da;
  text-decoration:none;
}
*/
/*
a:visited:hover{
  font-style:normal;
  color:#ced4da;
  text-decoration:none;
}
*/

.style1{
	font-size:18px;
	font-weight:bold;
	color:#ced4da;
}
.style2{
	color:#000000;
	font-weight:bold;
}

.ad_box{
  width:142px;
  height:342px;
  padding-top:5px;
  padding-left:19px;
  padding-right:19px;
  background-image:url(images/side_banner.gif);
  background-repeat:no-repeat;
  text-align:center;
}

.banner{
  font-size:10px;
  padding-left:5px;
  text-align:left;
}

/*
.title{
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";;
	font-size:22pt;
	font-weight:bold;
	letter-spacing:-2px;
	color:#FFFFFF;
}


.content_area ul li{
	margin:3px 0;
}


p.breadcrumbs{
	font-size:90%;
	font-weight:bold;
	margin:32px 0 0 0;
}

/**
 * Msgbox classes
 */

/* Base class */
p.msgbox{
	background-position:4px 4px;
	background-repeat:no-repeat;
	width:320px;
	color:#000;
	padding:4px 4px 4px 28px;
	border-width:1px;
	border-style:solid;
	font-size:8pt;
	max-width: 100%;
	box-sizing: border-box;
}
p.msgbox.large {
	width: 100%;
	max-width: 100%;
}
/* ERROR */
p.msgbox.error{
	background-image:url(i_error.png);
	background-color:#FBE6F2;
	border-color:#D893A1;
}
/*p.msgbox.error{
  background-image:url(i_error.png);
  color:red;
  border-width:0;
}*/
/* INFORMATION */
p.msgbox.info{
	background-image:url(i_info.png);
	background-color:#E6FBF2;
	border-color:#93D8A1;
}
/* EXCLAMATION */
p.msgbox.exclamation{
	background-image:url(i_exclamation.png);
	background-color:#FBE6F2;
	border-color:#D893A1;
}
/* QUESTION */
p.msgbox.question{
	background-image:url(i_help.png);
	background-color:#E6FBF2;
	border-color:#93D8A1;
}
/* NOTICE */
p.msgbox.notice{
	background-image:url(i_info.png);
	background-color:#ffffd5;
	border-color:#d9d991;
}

span.green, p.green{ color:#15A300; font-weight:bold; font-size:10pt; }

p span, dd span {background: #FFFFFF;}
p span.red{ background:#FBE6F2; }


dl {margin-top: 8px;}
dt {font-size: 14px; font-weight: bold; margin-bottom: 2px;}
dd {margin-bottom: 12px;}

.column dt {color: #55B10A;}
.column dt, .column dd {font-size: 12px; line-height: 1.4; margin:0;}
.column dd {color: #333; font-size: 11px; margin:0 0 12px 0;}

/* Tableless form */
fieldset {border:1px solid #999; margin: 0 0px 24px 0; padding: 8px; }
legend {color: #999; font-size: 14px; font-weight: bold; padding: 0 4px;}

/**
 * Alternating table row colours (zebra tables)
 */
.tr0 td{ background:#F5F4EA; color:#000; }
.tr1 td{ background:#ffffff; color:#000; }

.zebra-table tbody tr:nth-child(odd) td {
	background:#F5F4EA; color:#000;
}
.zebra-table tbody tr:nth-child(even) td {
	background:#ffffff; color:#000;
}

.table-align-vat tr td {
	vertical-align: top;
}

.border-table tbody.has-border tr:last-child td {
	border-bottom: 1px solid #D6DFF7;
}

/**
 * Table headings (<TD> tags with class 'h' = a <TH> tag :D)
 */
td.h{ font-weight:bold; border:0px; }
tr.heading td{ background:#D6DFF7; color:#000; }
tr.heading td.n, td.n{ background:#fff; }


/**
 * Icon bar on list pages above & below data
 */
p.iconbar{
	padding: 0;
	margin: 16px 0px;
	background:#fff;/*#f5f4ea;*/
	color:#000;
	font-weight:bold;
}
	p.iconbar > a {
		padding: 3px 4px 3px 3px;
	}
	p.iconbar > .active {
		background: #008ED3;
		color: #fff;
	}

	p.iconbar + p.iconbar,
	p.iconbar + .cssform,
	p.iconbar + .messages,
	p.iconbar + h2 {
		margin-top: 32px;
	}

	p.iconbar + h2 {
		margin-top: 32px;
	}

div.column div.c{ margin:0; }
div.column div#c1{margin-right:10px;}
div.column div#c2{margin-left:10px;}

/* Forms */
input,select,textarea,file{
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";;
  padding:0px;
  font-size:10pt;
}

select.list, input.text{
	width:128px;
}

tr.fsubmit td input{ width:64px; font-weight:bold; }

table.form td{ padding:6px; border-bottom:1px solid #c0c0c0; background-color:#f5f4ea; vertical-align:top;}
table.form td+td{ background-color:#fff;font-size:85% }
table.form td label{ font-weight:normal; }
table.form td label.required{ font-weight:bold; }
table.form input[type="checkbox"]{ /*margin:2px 0px;*/ margin-left:0px; vertical-align:middle; }
table.form tr.fsubmit td{background:#fff;color:#000;border:0px}
table.form tr.fsubmit td input{ font-weight:bold; padding:2px 10px }
table.form{ width:75%; min-width:400px; }
/*table.form input[type="text"],textarea,select{ border:1px solid #c0c0c0; padding:1px; }*/

tr.title td{ padding:4px;background:#D6DFF7; color:#000; font-size:10pt; letter-spacing:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";; font-weight:bold; border-bottom:0px;}

.input-focus{ background-color:#F5F4EA; }

.cssform fieldset {
	padding-bottom: 12px;
}

.cssform .fieldset-description {
	margin-bottom: 12px;
}
.cssform .fieldset-description p {
	padding-left: 0;
	border: 0;
	height: auto;
}

.cssform p,
.cssform .input-group {
	/*width: 200px;*/
	clear: left;
	margin: 0;
	padding: 12px 0 0px 0;
	padding-left: 145px; /*width of left column containing the label elements*/
	border-bottom:0px solid #c0c0c0;
	height: 1%;
}

.cssform label{
	font-weight: bold;
	float: left;
	margin-left: -145px; /*width of left column*/
	width: 140px; /*width of labels. Should be smaller than left column (155px) to create some right margin*/
}

.cssform label.ni{
	font-weight:normal;
	width:auto;
	margin:0 0 5px 0;
	float:none;
	display: block;
}

.cssform input[type="checkbox"]{
	margin:0;
}

.cssform label.required{ /*font-weight:bold;*/ }
.cssform label.required:after{ content:"*";color:red;font-weight:normal; }

.cssform div.submit{
  padding:8px 0 0 150px;
  border-top:1px solid #c0c0c0;
  margin-top:8px;
}

.cssform fieldset > div.submit {
	padding-left: 145px;
}

.cssform div.submit input{
	/* background-image:url(images/ui/bullet_disk.png);
	background-position:2px 50%;
	background-repeat:no-repeat; */
	padding:0px 4px;
}

.cssform input[type="text"]{ /*width of text boxes. IE6 does not understand this attribute*/
/*width: 180px;*/
}

.cssform textarea{
/*width: 250px;
height: 150px;*/
/*border:2px inset;*/
}

/*.threepxfix class below:
Targets IE6- ONLY. Adds 3 pixel indent for multi-line form contents.
to account for 3 pixel bug: http://www.positioniseverything.net/explorer/threepxtest.html
*/

* html .threepxfix{
margin-left: 3px;
}

.cssform p.hint,
.cssform ul.hint {
  padding-top:1px;
  background:#fff;
  font-size:85%;
  color:#777;
  padding-left: 145px; /*width of left column containing the label elements*/
}

.cssform ul.hint {
	margin-left: 15px;
}

.cssform div.formfield{margin-left:150px;}


.cssform p.error span, span.error{ background:#FBE6F2; color:#000; padding:2px; line-height:150%;}
.cssform p.error span{ font-size:105%; }

p.hint span.error{font-size:100%;}


span.error{ padding:0; font-size:90%;}


.sidebox{
	border:1px solid #ff6400;
	background:#ffffef;
	padding:10px;
}

h5 {
	margin: 0 0 10px 0;
}

.cssform-stacked label {
	margin: 0 0 5px 0;
	padding: 0;
	display: block;
	float: none;
	width: auto;
}

.cssform-stacked .input-group,
.cssform-stacked input,
.cssform-stacked textarea,
.cssform-stacked select {
	margin: 0 0 5px 0;
	padding: 0;
	float: none;
	display: block;
}

.cssform-stacked .input-group {
	margin-bottom: 12px;
}


.filter-form {
	background: #F5F4EA;
	padding: 4px;
}

	.filter-form + table {
		margin-top: 16px;
	}

	.filter-form .input-group {
		padding: 4px 8px;
		margin-bottom: 0;
	}
	.filter-form .input-group input,
	.filter-form .input-group select {
		width: 100%;
		max-width: 100%;
		height: 26px;
		line-height: 26px;
	}
	.filter-form .input-group button,
	.filter-form .input-group .button {
		height: 26px;
		line-height: 26px;
		padding-top: 0;
		padding-bottom: 0;
		display: inline-block;
		vertical-align: middle;
		margin-right: 8px;
	}

/* Gallery */
div.iconbox{
	height:180px;
	width:300px;
	border:1px solid #ccc;
	overflow:scroll;
	margin-left:5px;
}
div.g, div.g1{
	float:left;
	margin:0 8px 8px 0;
	width:22px;
	text-align:center;
	border:0px solid transparent;
}
div.g1{ background:#d894a1; border:0px solid #D893A1; }
div.g p, div.g1 p {
	margin:0;
	padding:0;
	text-align:center;
}


/* Image preview */
.border_b{
   border: 1px solid #000000;
}

.float{
   visibility: hidden;
   position: absolute;
   left: -3000px;
   z-index: 10;
}

table.bookings td{ font-size:90%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";; padding:3px;}

table.bookings td.free{ background:#fff;border:1px solid #ccc; /*#D3E6CF;  /*#C7F2BC;*/ color:#000; }   /* Free period */
table.bookings td.static{ background:#E68A73; color:#fff; border:1px solid #E68A73; }   /* Timetabled lesson */
table.bookings td.staff{ background:#3082BF; color:#fff; border:1px solid #3082BF; }    /* Booked by staff */
table.bookings td.holiday{ background:#f6f6f6; color:#333; border:1px solid #ccc; }    /* Holiday */

table.bookings td.free a{ color:#00f;text-decoration:none; display:block;}
table.bookings td.free a:hover{ color:#f00;text-decoration:none; }

.button-empty {
	background: transparent;
	padding: 0;
	margin: 0;
	cursor: pointer;
	border: 0;
}

.booking-action {
	display: inline-block;
	margin: 4px 2px;
	font-size: 100%;
	color: inherit;
}

.booking-action:hover,
a.booking-action:hover {
	color: inherit;
}



.pagination {
	padding: 5px 0;
}

.pagination strong,
.pagination a {
	display: inline-block;
	padding: 5px;
}



.maintenance-wrapper {
	padding: 8px 0;
	background: #ffffaa;
}


.hidden {
	display: none;
}


.up-form .loading-notice {
	display: none;
}

.up-form.up-active .loading-notice {
	display: block;
}


.room-info {
	min-width: 300px;
}

.room-info .zebra-table {
	margin-bottom: 30px;
}

.room-photo {
	max-width: 420px;
}

	.room-photo img {
		display: block;
		width: 100%;
		max-width: 100%;
		height: auto;
	}

/* =============================
   ESTILOS MODERNOS LOGIN (RF2)
   ============================= */
/*body.login-page {
    font-family: 'Roboto', sans-serif;
    /*background: #f4f4f9;
	background: #b71234; Rojo institucional 
    /*background: hsl(240, 29%, 97%);    Gris muy claro */
	/*margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;} */

body.login-page {
    font-family: 'Roboto', sans-serif;
    /*background: #f4f4f9;*/
	background: #b71234; /*Rojo institucional*/ 
    /*background: hsl(240, 29%, 97%);    Gris muy claro */
	margin: 0;
    /*display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;*/
}
/* Oculta header SOLO en el login */
body.login-page .header {
    display: none;
}
/* Hace que la zona de contenido ocupe todo el alto del viewport y centre la tarjeta */
body.login-page .content_area {
    margin-top: 0;         /* anula lo que viene por defecto */
    padding-top: 0;        /* anula lo que viene por defecto */
    min-height: 100vh;     /* ocupa todo el alto visible */
    display: flex;
    align-items: center;   /* centra vertical */
    justify-content: center; /* centra horizontal */
    box-sizing: border-box;
    padding: 24px 12px;    /* aire en móviles para que no toque los bordes */
}

.login-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.login-card {
    background: #fff;
    border-radius: 10px;
    padding: 2rem;
    width: 350px;
    /*box-shadow: 0 4px 20px rgba(0,0,0,0.1);*/
    box-shadow: 0 6px 20px rgba(0,0,0,0.15);
	text-align: center;
	padding-top: 3rem; 
} 


.login-header h2 {
    color: #b71234; /* Rojo institucional UTN */
    margin-bottom: 10px;
}

.login-header .subtitle {
    font-size: 18px;
	font-weight:bold;
    color: #1e1e1e;
    margin-bottom: 20px;
}

.login-logo {
    width: 100px;   /* ancho fijo */
    max-width: 100%; 
	height: auto;   /* mantiene proporciones */
    margin-bottom: 10px; /* separa del texto de abajo */
	
}


.form-group {
    text-align: left;
    margin-bottom: 15px;
}

label {
    font-weight: bold;
    display: block;
    margin-bottom: 5px;
    color: #222;
}

.form-control {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 14px;
	box-sizing: border-box;
}

.form-control:focus {
    border-color: #b71234;
    outline: none;
    box-shadow: 0 0 5px rgba(183,28,28,0.5);
}

.btn {
    background: #b71234;
    color: #fff;
    padding: 10px 15px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 15px;
    width: 100%;
}

.btn:hover {
    background: #d32f2f;
}

.alert {
    padding: 10px;
    border-radius: 6px;
    margin-bottom: 10px;
    font-size: 14px;
}

.alert-warning {
    background: #fff3cd;
    color: #856404;
}

.alert-danger {
    background: #f8d7da;
    color: #721c24;
}

/* PROFILE */
.profile-container {
  max-width: 900px;
  margin: 40px auto;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  padding: 30px;
  border-top: 4px solid #b71234;
}

.profile-header {
  display: flex;
  align-items: center;
  gap: 25px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 20px;
}

.profile-avatar {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  border: 2px solid #b71234;
  object-fit: cover;
  background: #eee url('../images/user_placeholder.png') center/contain no-repeat;
}

.profile-info h2 {
  margin: 0;
  color: #111;
}

.role {
  font-size: 14px;
  color: #555;
  margin-top: 4px;
}

.btn-edit {
  display: inline-block;
  margin-top: 8px;
  color: #b71234;
  font-weight: bold;
  text-decoration: none;
}

.btn-edit:hover {
  text-decoration: underline;
}

.profile-stats {
  display: flex;
  justify-content: space-between;
  margin: 30px 0;
  flex-wrap: wrap;
}

.stat-card {
  flex: 1;
  min-width: 200px;
  text-align: center;
  background: #fafafa;
  margin: 10px;
  border-radius: 8px;
  padding: 15px 10px;
  border-top: 3px solid #b71234;
  transition: transform 0.2s ease;
}

.stat-card:hover {
  transform: translateY(-3px);
}

.stat-card h3 {
  margin-bottom: 5px;
  color: #333;
  font-size: 15px;
}

.stat-card p {
  font-size: 26px;
  font-weight: bold;
  color: #b71234;
}

.profile-actions {
  text-align: center;
  margin-top: 25px;
}

.profile-actions a {
  display: inline-block;
  margin: 0 10px;
  padding: 10px 22px;
  border-radius: 6px;
  text-decoration: none;
  color: white;
  font-weight: 600;
}

.btn-control {
  background: #b71234;
}

.btn-logout {
  background: #444;
}

.profile-actions a:hover {
  opacity: 0.9;
}

.profile-section h3 {
  margin-top: 25px;
  color: #b71234;
}

.profile-section ul {
  list-style: disc;
  margin-left: 30px;
  color: #333;
}

/* EDITAR PERFIL */
/* === Tarjeta principal === */
.profile-edit-card {
  max-width: 1100px;
  margin: 25px auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 12px rgba(0,0,0,0.1);
  padding: 40px 50px;
  border-top: 5px solid #b71234;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* === Encabezado === */
.title {
  color: #222;
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 4px;
}

.subtitle {
  color: #444;
  font-size: 17px;     /* más grande */
  font-weight: 600;    /* en negrita */
  margin-bottom: 35px; /* más aire debajo */
}

/* === Sección combinada izquierda/derecha === */
.dual-section {
  display: flex;
  gap: 40px;
  justify-content: space-between;
}

/* Contenedores de cada columna */
.form-column {
  flex: 1;
  background: #fafafa;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 35px 40px; /* 🔹 Aumenta el espacio interno gris */
  box-shadow: inset 0 0 4px rgba(0,0,0,0.03);
  min-height: 100%; /* 🔹 Asegura misma altura si una tiene más contenido */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Espaciado entre columnas */
.dual-section {
  display: flex;
  gap: 40px; /* 🔹 Mayor espacio entre ambos recuadros */
  justify-content: center;
  align-items: flex-start;
}

/* Si querés remarcar un poco el fondo gris (más institucional) */
.form-column:hover {
  background: #f3f3f3;
  transition: background 0.3s ease;
}


.form-column h3 {
  color: #b71234;
  font-size: 18px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 6px;
  margin-bottom: 16px;
  font-weight: 700;
}

/* === Campos === */

/* Asegura que los inputs no se peguen a los bordes */
.form-group {
  margin-bottom: 22px; /* más aire entre campos */
}
.form-group label {
  font-weight: 600;
  margin-bottom: 6px;
  color: #333;
}

.input-text {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 15px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.input-text:focus {
  border-color: #b71234;
  box-shadow: 0 0 6px rgba(183,18,52,0.25);
  outline: none;
}

/* === Botones === */
.form-actions {
  text-align: center;
  margin-top: 35px;
}

.btn-save, .btn-cancel {
  display: inline-block;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: bold;
  text-decoration: none;
  margin: 0 10px;
  cursor: pointer;
  font-size: 15px;
}

.btn-save {
  background: #b71234;
  color: #fff;
  border: none;
}

.btn-save:hover { background: #a10f2f; }

.btn-cancel {
  background: #666;
  color: #fff;
}

.btn-cancel:hover { background: #555; }

/* === Responsive === */
@media (max-width: 900px) {
  .dual-section { flex-direction: column; gap: 25px; }
  .profile-edit-card { padding: 25px; }
  .title { font-size: 24px; }
}
/* === CONTENEDOR PRINCIPAL === */
.institution-container {
  max-width: 950px;
  margin: 40px auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  padding: 40px 50px;
  border-top: 5px solid #b71234;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* === ENCABEZADO === */
.institution-header h2 {
  color: #222;
  font-size: 28px;
  margin-bottom: 4px;
  font-weight: 700;
}

.institution-header .subtitle {
  color: #444;
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 30px;
}

/* === SECCIONES === */
.form-section {
  background: #fafafa;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 25px 30px;
  margin-bottom: 25px;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.03);
}

.form-section h3 {
  color: #b71234;
  font-size: 18px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 6px;
  margin-bottom: 20px;
  font-weight: 700;
}

/* === CAMPOS === */
.form-group {
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
}

.input-text,
.input-file {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 15px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.input-text:focus,
.input-file:focus {
  border-color: #b71234;
  box-shadow: 0 0 6px rgba(183,18,52,0.25);
  outline: none;
}

/* === LOGO === */
.logo-preview {
  text-align: center;
  margin: 20px 0;
}

.institution-logo {
  max-width: 260px;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 8px;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.no-logo {
  color: #777;
  font-style: italic;
}

/* === ACCIONES === */
.form-actions {
  text-align: center;
  margin-top: 30px;
}

.btn-save, .btn-cancel {
  display: inline-block;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: bold;
  text-decoration: none;
  margin: 0 10px;
  cursor: pointer;
  font-size: 15px;
}

.btn-save {
  background: #b71234;
  color: #fff;
  border: none;
}

.btn-save:hover {
  background: #a10f2f;
}

.btn-cancel {
  background: #666;
  color: #fff;
}

.btn-cancel:hover {
  background: #555;
}

/* === TEXTO DE AYUDA === */
.hint {
  font-size: 13px;
  color: #666;
  margin-top: 3px;
}

.hint span {
  color: #b71234;
  font-weight: 600;
}

.hint.error {
  color: #b71234;
  font-weight: 600;
}

/* === RESPONSIVE === */
@media (max-width: 900px) {
  .institution-container { padding: 25px; }
  .institution-header h2 { font-size: 24px; }
  .form-section { padding: 20px; }
}

/* ===== Estilos generales para Configuración (DISILAB) ===== */

.settings-container {
  background: #fff;
  border-top: 4px solid #b71234;
  border-radius: 10px;
  padding: 35px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
  max-width: 1200px;
  margin: 40px auto;
}

.settings-container .title {
  font-size: 28px;
  color: #111;
  font-weight: 700;
  margin-bottom: 8px;
}

.settings-container .subtitle {
  font-size: 17px;
  color: #444;
  font-weight: 600;
  margin-bottom: 35px;
}

/* Distribución en dos columnas */
.settings-grid {
  display: flex;
  gap: 25px;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

/* Cada sección */
.settings-section {
  flex: 1;
  min-width: 480px;
  background-color: #f8f8f8;
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 25px 30px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: background 0.3s ease;
}

.settings-section:hover {
  background-color: #f4f4f4;
}

.settings-section h3 {
  color: #b71234;
  font-size: 19px;
  font-weight: 700;
  border-bottom: 2px solid #b71234;
  padding-bottom: 6px;
  margin-bottom: 20px;
}

/* Campos de formulario */
.settings-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 5px;
  color: #333;
}

.settings-form input[type="text"],
.settings-form input[type="number"],
.settings-form textarea {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  transition: border-color 0.2s;
}

.settings-form input:focus,
.settings-form textarea:focus {
  outline: none;
  border-color: #b71234;
  box-shadow: 0 0 3px rgba(183, 18, 52, 0.3);
}

/* Radios y checkboxes */
.settings-form .radio-inline,
.settings-form .checkbox label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  margin-right: 20px;
}

.settings-form input[type="checkbox"],
.settings-form input[type="radio"] {
  accent-color: #b71234;
  width: 16px;
  height: 16px;
  cursor: pointer;
}

/* Textareas */
.input-textarea {
  resize: vertical;
  min-height: 80px;
  font-family: inherit;
}

/* Pistas o ayudas */
.hint {
  color: #777;
  font-size: 13px;
  margin-top: 5px;
  line-height: 1.4;
}

.hint span {
  color: #b71234;
  font-weight: 600;
}

/* Botones */
.form-actions {
  text-align: center;
  margin-top: 25px;
}

.btn-save {
  background: #b71234;
  color: #fff;
  border: none;
  padding: 10px 25px;
  font-size: 15px;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
  margin-right: 10px;
}

.btn-save:hover {
  background: #9e0f2d;
}

.btn-cancel {
  background: #555;
  color: #fff;
  padding: 10px 25px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.2s ease;
}

.btn-cancel:hover {
  background: #333;
}

/* Ajustes responsivos */
@media (max-width: 1024px) {
  .settings-grid {
    flex-direction: column;
  }

  .settings-section {
    min-width: 100%;
  }
}
/* =============================
   ESTILO GENERAL - ADMINISTRAR USUARIOS
   ============================= */

body {
  background-color: #f8f9fb;
  font-family: "Segoe UI", Roboto, Arial, sans-serif;
  color: #333;
  margin: 0;
  padding: 0;
}

/* ---------- CONTENEDOR PRINCIPAL ---------- */
.admin-users-container {
  max-width: 1100px;
  margin: 30px auto;
  background: #fff;
  padding: 25px 40px;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

/* ---------- ENCABEZADO ---------- */
.admin-users-container h1 {
  color: #b71234;
  font-size: 24px;
  font-weight: 700;
  border-bottom: 3px solid #b71234;
  padding-bottom: 10px;
  margin-bottom: 25px;
  letter-spacing: 0.5px;
}

/* ---------- TABLA DE USUARIOS ---------- */
table.zebra-table {
  border-collapse: collapse;
  width: 100%;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

table.zebra-table th,
table.zebra-table td {
  padding: 12px 10px;
  text-align: left;
  font-size: 14px;
}

table.zebra-table thead tr {
  background-color: #b71234;
  color: white;
}

table.zebra-table tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

table.zebra-table tbody tr:hover {
  background-color: #f2f2f2;
  transition: 0.2s;
}

/* ---------- ÍCONOS ---------- */
table img {
  vertical-align: middle;
}

/* ---------- BOTONES PRINCIPALES ---------- */
.actions {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin-top: 25px;
  flex-wrap: wrap;
}

.actions a,
.actions button {
  background-color: #b71234;
  color: #fff;
  padding: 10px 16px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: 0.2s;
  border: none;
  cursor: pointer;
}

.actions a:hover,
.actions button:hover {
  background-color: #96102c;
  transform: translateY(-1px);
}

/* ---------- PAGINACIÓN ---------- */
.pagination {
  margin-top: 20px;
  text-align: center;
}

.pagination a {
  display: inline-block;
  margin: 0 3px;
  padding: 8px 12px;
  border-radius: 5px;
  border: 1px solid #ddd;
  color: #b71234;
  font-size: 13px;
  text-decoration: none;
  transition: 0.2s;
}

.pagination a:hover,
.pagination a.active {
  background-color: #b71234;
  color: white;
  border-color: #b71234;
}

/* ---------- ENLACES INFERIORES ---------- */
.footer-links {
  margin-top: 35px;
  text-align: center;
}

.footer-links a {
  color: #b71234;
  font-weight: 600;
  font-size: 14px;
  margin: 0 15px;
  text-decoration: none;
}

.footer-links a:hover {
  text-decoration: underline;
}

/* ---------- RESPONSIVE DESIGN ---------- */
@media (max-width: 768px) {
  .admin-users-container {
    padding: 20px;
  }

  table.zebra-table th,
  table.zebra-table td {
    font-size: 12px;
    padding: 8px;
  }

  .actions a,
  .actions button {
    font-size: 13px;
    padding: 8px 12px;
  }

  .footer-links a {
    display: block;
    margin: 10px 0;
  }
}
/* Centrado vertical perfecto de íconos en la tabla */
table.zebra-table td img {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  top: 1px; /* pequeño ajuste fino para centrar */
}


/* ---------- CONTENEDOR PRINCIPAL ---------- */
.add-user-container {
  max-width: 800px;
  margin: 40px auto;
  background: #fff;
  padding: 35px 45px;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

.add-user-container h1 {
  color: #b71234;
  font-size: 26px;
  font-weight: 700;
  border-bottom: 3px solid #b71234;
  padding-bottom: 10px;
  margin-bottom: 25px;
  letter-spacing: 0.3px;
}

/* ---------- FIELDSETS ---------- */
.add-user-container fieldset {
  border: none;
  border-left: 4px solid #b71234;
  margin-bottom: 8px;
  padding: 25px 30px;
  background-color: #fafafa;
  border-radius: 6px;
}

.add-user-container legend {
  font-weight: 600;
  color: #b71234;
  padding: 0 8px;
  font-size: 16px;
  margin-bottom: 8px;
}

/* ---------- ETIQUETAS Y CAMPOS ---------- */
.add-user-container p {
  margin-bottom: 15px;
}

.add-user-container label {
  display: inline-block;
  width: 190px;
  font-weight: 600;
  color: #333;
  margin-bottom: 3px;
  vertical-align: middle;
}

.add-user-container input[type="text"],
.add-user-container input[type="password"],
.add-user-container input[type="email"],
.add-user-container select {
  width: 60%;
  padding: 6px 8px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.add-user-container input:focus,
.add-user-container select:focus {
  border-color: #b71234;
  outline: none;
  box-shadow: 0 0 3px rgba(183, 18, 52, 0.3);
}

/* ---------- CHECKBOX (Activado) ---------- */
.add-user-container input[type="checkbox"] {
  transform: scale(1.2);
  margin-left: 5px;
  vertical-align: middle;
}

/* ---------- BOTONES ---------- */
.add-user-container .form-buttons {
  text-align: center;
  margin-top: 25px;
}

.add-user-container button,
.add-user-container input[type="submit"],
.add-user-container .submit input[type="submit"] {
  background-color: #b71234;
  color: #fff;
  border: none;
  padding: 10px 18px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s, transform 0.1s;
}

.add-user-container button:hover,
.add-user-container input[type="submit"]:hover {
  background-color: #96102c;
  transform: translateY(-1px);
}

.add-user-container .cancel-btn,
.add-user-container .submit a {
  background-color: #ccc;
  color: #333;
  border: none;
  padding: 10px 18px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  margin-left: 10px;
  text-decoration: none;
  transition: background-color 0.2s, transform 0.1s;
}

.add-user-container .cancel-btn:hover,
.add-user-container .submit a:hover {
  background-color: #999;
  color: #fff;
  transform: translateY(-1px);
}

/* ---------- ERRORES ---------- */
.add-user-container .error {
  color: #b71234;
  font-size: 13px;
  font-weight: 500;
  margin-left: 190px;
  margin-top: -10px;
  margin-bottom: 10px;
  display: block;
}

/* ---------- RESPONSIVE DESIGN ---------- */
@media (max-width: 768px) {
  .add-user-container {
    padding: 25px;
  }

  .add-user-container label {
    display: block;
    width: 100%;
    margin-bottom: 5px;
  }

  .add-user-container input,
  .add-user-container select {
    width: 100%;
  }

  .add-user-container .error {
    margin-left: 0;
  }
}

/* =============================
   IMPORTAR USUARIOS (unificada con estilo institucional)
   ============================= */

/* --- Contenedor principal, mismo que institución --- */
.import-users-container {
  max-width: 950px;
  margin: 40px auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  padding: 40px 50px;
  border-top: 5px solid #b71234;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Título principal (mismo estilo visual que institution-header h2) */
.import-users-header-title {
  color: #222;
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 4px;
}

/* Subtítulo opcional (si querés una línea aclaratoria debajo del título) */
.import-users-header-subtitle {
  color: #444;
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 30px;
}

/* --- Secciones/fieldsets: usamos mismo look que .form-section --- */
.import-section {
  background: #fafafa;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 25px 30px;
  margin-bottom: 25px;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.03);
}

/* Título interno de cada bloque ("Fuente de importación", "Valores por defecto") */
.import-section h3 {
  color: #b71234;
  font-size: 18px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 6px;
  margin-bottom: 20px;
  font-weight: 700;
}

/* texto de ayuda dentro de cada bloque */
.import-hint-text {
  font-size: 14px;
  color: #444;
  line-height: 1.4;
  margin: 0 0 16px 0;
}

/* --- Layout interno de cada fila del formulario --- */
.import-form-row {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 20px;
  align-items: flex-start;
}

/* etiqueta a la izquierda */
.import-form-label {
  flex: 0 0 160px;
  max-width: 160px;
  font-weight: 600;
  color: #333;
  font-size: 14px;
  margin-bottom: 6px;
}

/* campo + hints a la derecha */
.import-form-field {
  flex: 1;
  min-width: 200px;
}

/* marcar obligatorio con rojo institucional */
.import-form-label.required::after {
  content: " *";
  color: #b71234;
  font-weight: 600;
}

/* inputs, selects, file: igual que institución (.input-text / .input-file) */
.import-input,
.import-select,
.import-file {
  width: 100%;
  max-width: 360px;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 15px;
  line-height: 1.4;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
  background: #fff;
}

.import-input:focus,
.import-select:focus,
.import-file:focus {
  border-color: #b71234;
  box-shadow: 0 0 6px rgba(183,18,52,0.25);
  outline: none;
}

/* checkbox "Activado" en línea tipo perfil */
.import-checkbox-line {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #333;
}

.import-checkbox-line input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #b71234;
  margin: 0;
}

/* texto chiquito debajo de un campo (tamaño máx archivo, etc) */
.import-hint-inline {
  font-size: 13px;
  color: #777;
  line-height: 1.4;
  margin-top: 6px;
}

/* bloque gris con el ejemplo de CSV */
.import-code-block {
  font-family: Consolas, monospace;
  font-size: 13px;
  background-color: #f5f5f5;
  border: 1px solid #dcdcdc;
  border-radius: 4px;
  padding: 10px 12px;
  color: #222;
  white-space: pre-wrap;
  margin: 0 0 12px 0;
}

/* --- Botonera inferior (usa mismos colores que .btn-save / .btn-cancel) --- */
.import-actions {
  text-align: center;
  margin-top: 30px;
}

.import-actions .btn-save {
  background: #b71234;
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.25s;
  display: inline-block;
  margin-right: 12px;
}

.import-actions .btn-save:hover {
  background: #96102c;
}

.import-actions .btn-cancel {
  background: #666;
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
}

.import-actions .btn-cancel:hover {
  background: #444;
}

/* --- Responsive para pantallas chicas --- */
@media (max-width: 700px) {
  .import-form-row {
    flex-direction: column;
  }

  .import-form-label {
    flex: 1 1 auto;
    max-width: 100%;
    margin-bottom: 4px;
  }

  .import-form-field {
    flex: 1 1 auto;
    width: 100%;
  }

  .import-input,
  .import-select,
  .import-file {
    max-width: 100%;
  }
}
/* tarjeta que ya venís usando */
.import-section {
    background: #fff;
    border: 1px solid #dcdcdc;
    border-radius: 6px;
    padding: 16px 20px;
    margin-bottom: 24px;
}

/* título rojito */
.import-section-header {
    border-bottom: 1px solid #e4e4e4;
    margin: -4px -20px 16px -20px;
    padding: 4px 20px 12px 20px;
}
.import-section-title {
    font-size: 16px;
    font-weight: 600;
    color: #b71234; /* rojo institucional */
}

/* descripción inicial dentro de la tarjeta */
.section-intro {
    font-size: 14px;
    color: #444;
    line-height: 1.4;
    margin: 0 0 20px 0;
}

/* fila label + input */
.field-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
}

/* col de label */
.field-label {
    width: 140px;
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.4;
    padding-top: 6px; /* baja un poquito para alinear con el input */
}

/* col de control */
.field-control {
    flex: 1;
    min-width: 0;
}

/* inputs */
.field-control input[type="text"],
.field-control input[type="password"],
.field-control input[type="file"],
.field-control select {
    width: 100%;
    max-width: 360px;
    font-size: 14px;
    line-height: 1.4;
    padding: 8px 10px;
    border: 1px solid #bbb;
    border-radius: 4px;
    box-sizing: border-box;
}

/* checkbox en línea */
.checkbox-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #1a1a1a;
}
.checkbox-inline input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
}

/* hint bajito bajo el input */
.field-hint {
    font-size: 13px;
    color: #555;
    margin-top: 6px;
}
.req {
    color: #b71234;
    font-weight: 600;
}

/* botones */
.actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    margin-top: 8px;
}

.button-primary {
    background-color: #b71234;
    color: #fff;
    border: 1px solid #8e0f29;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    padding: 8px 14px;
    line-height: 1.2;
    cursor: pointer;
}
.button-primary:hover {
    background-color: #a0102e;
}

.action-cancel {
    color: #444;
    font-size: 14px;
    line-height: 1.2;
    text-decoration: underline;
}
.action-cancel:hover {
    color: #000;
}

/* responsive: label arriba del campo cuando la pantalla es chica */
@media (max-width: 600px) {
    .field-row {
        flex-direction: column;
    }
    .field-label {
        width: 100%;
        padding-top: 0;
        margin-bottom: 6px;
    }
}


/* === ESTILO GENERAL DE SECCIONES ADMIN === */
.card-admin {
    background: #fff;
    border-radius: 12px;
    padding: 25px;
    margin: 25px auto;
    max-width: 1000px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.titulo-seccion {
    font-size: 22px;
    font-weight: 600;
    color: #222;
    margin-bottom: 15px;
}

/* === REFUERZO DE ESTILO PARA JORNADA ESCOLAR === */
.tabla-admin thead {
  background-color: #dce4f7 !important; /* celeste institucional */
  color: #000 !important;
}

.tabla-admin tbody tr:nth-child(odd) {
  background-color: #f8f5ec !important; /* beige claro */
}

.tabla-admin tbody tr:nth-child(even) {
  background-color: #f3eee2 !important; /* beige medio */
}

.tabla-admin tbody tr:hover {
  background-color: #ebe4d7 !important; /* hover beige */
  transition: 0.2s;
}
/* Header azul clásico para cualquier variante */
.zebra-table thead tr td,
.zebra-table thead tr th,
tr.heading td {
  background: #D6DFF7 !important;
  color: #000 !important;
}

/* === AJUSTE FINAL PARA UNIFICAR ESTILO DE JORNADA ESCOLAR === */

/* Encabezado: aplica el celeste institucional también a los <th> */
.zebra-table thead tr td,
.zebra-table thead tr th,
tr.heading td {
  background-color: #D6DFF7 !important;
  color: #000 !important;
}

/* Filas beige alternadas */
.zebra-table tbody tr:nth-child(odd) td,
.zebra-table tbody tr:nth-child(odd) th {
  background-color: #F5F4EA !important;
  color: #000;
}

.zebra-table tbody tr:nth-child(even) td,
.zebra-table tbody tr:nth-child(even) th {
  background-color: #FFFFFF !important;
  color: #000;
}

/* Hover beige */
.zebra-table tbody tr:hover td,
.zebra-table tbody tr:hover th {
  background-color: #EDE9DC !important;
  transition: 0.2s;
}

/* === BOTÓN GLOBAL AGREGAR === */
.btn-add-global {
  display: inline-block;
  background-color: #b71234; /* rojo institucional UTN */
  color: #fff;
  padding: 10px 20px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: background 0.25s ease, transform 0.1s ease;
  border: none;
  cursor: pointer;
}

.btn-add-global:hover {
  background-color: #96102c;
  transform: translateY(-2px);
}

.add-container {
  text-align: center;
  margin-top: 25px;
}

/* === FORMULARIO ADMINISTRATIVO UNIFICADO === */
.form-card-admin {
  max-width: 850px;
  margin: 40px auto;
  background: #fff;
  border-radius: 10px;
  border-top: 5px solid #b71234; /* rojo institucional */
  box-shadow: 0 3px 10px rgba(0,0,0,0.08);
  padding: 35px 45px;
}

.form-card-admin h1 {
  font-size: 24px;
  color: #1e1e1e;
  font-weight: 700;
  margin-bottom: 25px;
  text-align: center;
}

.form-card-admin fieldset {
  border: none;
  background: #fafafa;
  border-left: 4px solid #b71234;
  border-radius: 8px;
  padding: 25px 30px;
  margin-bottom: 25px;
}

.form-card-admin legend {
  color: #b71234;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
}

.form-card-admin label {
  display: block;
  font-weight: 600;
  color: #333;
  margin-bottom: 6px;
}

.form-card-admin input[type="text"],
.form-card-admin input[type="email"],
.form-card-admin select,
.form-card-admin textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.form-card-admin input:focus,
.form-card-admin select:focus,
.form-card-admin textarea:focus {
  border-color: #b71234;
  box-shadow: 0 0 5px rgba(183,18,52,0.3);
  outline: none;
}

.form-card-admin textarea {
  resize: vertical;
  min-height: 80px;
}

/* === BOTONES === */
.form-card-admin .form-actions {
  text-align: center;
  margin-top: 20px;
}

.form-card-admin .btn-save {
  background: #b71234;
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.25s;
}

.form-card-admin .btn-save:hover {
  background: #96102c;
}

.form-card-admin .btn-cancel {
  background: #666;
  color: #fff;
  border: none;
  padding: 10px 22px;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  margin-left: 10px;
  transition: background 0.25s;
}

.form-card-admin .btn-cancel:hover {
  background: #444;
}
/* --- Checkbox group institucional --- */
.checkbox-inline-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin: 10px 0 20px 0;
  align-items: center;
}

.checkbox-inline-group label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 14px;
  color: #222;
}

.checkbox-inline-group input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #b71234; /* Rojo institucional */
  transform: translateY(1px);
}

/* ======================================================
   DASHBOARD GENERAL (Index principal modernizado)
   ====================================================== */
.dashboard-container {
  max-width: 1100px;
  margin: 40px auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

/* === CONTENEDORES DE SECCIÓN (Tareas, Configuración, Administración) === */
.dashboard-section {
  background: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 16px;
  padding: 25px 30px 30px 30px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.dashboard-title {
  font-size: 22px;
  font-weight: 700;
  color: #1e1e1e;
  margin-bottom: 18px;
  border-bottom: 2px solid #b71234;
  padding-bottom: 6px;
}

/* === GRILLA DE ÍTEMS === */
.dashboard-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 25px;
  justify-content: flex-start;
}

/* === CADA ÍTEM === */
.dashboard-item {
  flex: 1 1 150px;
  max-width: 180px;
  text-align: center;
  text-decoration: none;
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 18px 12px;
  color: #1e1e1e;
  font-weight: 500;
  transition: all 0.2s ease;
}

.dashboard-item img {
  width: 36px;
  height: 36px;
  display: block;
  margin: 0 auto 10px auto;
}

.dashboard-item span {
  display: block;
  font-size: 14px;
}

.dashboard-item:hover {
  background: #f3f3f3;
  transform: translateY(-2px);
}

/* === BOTÓN ROJO (Reservas) === */
.dashboard-item.red {
  background: #b71234;
  color: #fff;
  font-weight: 600;
  border: none;
}

.dashboard-item.red img {
  filter: brightness(0) invert(1);
}

.dashboard-item.red:hover {
  background: #96102c;
  transform: translateY(-2px);
}

/* === BOTÓN GRIS SUAVE (Mi Perfil) === */
.dashboard-item.soft {
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  color: #1e1e1e;
  font-weight: 500;
}

.dashboard-item.soft:hover {
  background: #ebebeb;
  transform: translateY(-2px);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
  .dashboard-grid {
    justify-content: center;
  }
  .dashboard-item {
    flex: 1 1 45%;
    max-width: none;
  }
}

/* === Botón rojo destacado (Reservas) — versión mejorada === */
.dashboard-item.red {
  background: #b71234;              /* rojo institucional */
  color: #fff;
  font-weight: 700;                 /* texto más grueso */
  border: none;
  box-shadow: 0 3px 8px rgba(183,18,52,0.25); /* sombra leve para resaltarlo */
  transform: scale(1.02);
}

.dashboard-item.red img {
  width: 42px;                      /* ícono más grande */
  height: 42px;
  margin-bottom: 8px;
  filter: brightness(0) invert(1);  /* ícono blanco */
}

.dashboard-item.red:hover {
  background: #a10f2f;
  box-shadow: 0 4px 10px rgba(150,16,44,0.3);
  transform: scale(1.04);           /* efecto de elevación */
  transition: all 0.2s ease;
}
/* wrapper del nombre del laboratorio (linea "Laboratorio ROJO") */
.lab-name-wrapper {
    display: inline-flex;
    align-items: center;
    gap: 6px;           /* espacio entre el punto de color y el texto */
    font-weight: bold;
    font-size: 13px;
    line-height: 1.2;
}

/* el puntito/cuadradito de color */
.lab-color-dot {
    display: inline-block;
    width: 10px;        /* tamaño chico, como pediste */
    height: 10px;
    border-radius: 3px; /* si querés más redondo poné 50% para círculo completo */
    border: 1px solid rgba(0,0,0,0.2); /* leve borde para que se vea sobre fondo claro */
}

/* Colores por laboratorio */
.lab-color--amarillo {
    background-color: #FFD84D; /* amarillo pastel */
    border-color: #C2A632;
}
.lab-color--rojo {
    background-color: #C0392B; /* rojo medio */
    border-color: #7A1F17;
}
.lab-color--azul {
    background-color: #2E6FA9; /* azul parecido al de las reservas ocupadas */
    border-color: #1E486D;
}
.lab-color--verde {
    background-color: #2E9E4C; /* verde */
    border-color: #1C5F2E;
}
.lab-color--naranja {
    background-color: #E67E22; /* naranja */
    border-color: #8A470F;
}

/* Estilo de la barra de semana (semana actual, navegación) */
.bookings_week {
    background-color: #b71234 !important; /* rojo institucional UTN */
    color: #fff !important;
    border-radius: 6px;
    padding: 8px 6px;
}

.bookings_week a {
    color: #fff !important;
    text-decoration: none;
    font-weight: bold;
}

.bookings_week a:hover {
    text-decoration: underline;
}




/* Barra de acciones en Ciclos Lectivos */
.weeks-actions-bar {
   margin-top: 24px;
    display: flex;
    justify-content: center;   /* 🔹 centra horizontalmente */
    align-items: center;       /* 🔹 centra verticalmente si hay varias líneas */
    gap: 14px;                 /* separación entre botones */
    flex-wrap: wrap;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Resetea el estilo viejito del iconbar interno */
.weeks-actions-bar a {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
    border-radius: 8px;
    padding: 8px 12px;
    border: 1px solid transparent;
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}

/* El iconito <img> que viene del iconbar */
.weeks-actions-bar a img {
    margin-right: 6px;
    width: 16px;
    height: 16px;
}

/* Primer botón (Agregar Ciclo) -> rojo institucional */
.weeks-actions-bar a:first-child {
    background-color: #b71234;      /* rojo institucional */
    color: #fff;
    border-color: #b71234;
    font-weight: 600;
}

.weeks-actions-bar a:first-child:hover {
    filter: brightness(1.05);
    box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}

/* Segundo botón (Año Escolar) -> gris neutro */
.weeks-actions-bar a:nth-child(2) {
    background-color: #f5f5f5;
    border: 1px solid #cfcfcf;
    color: #333;
}

.weeks-actions-bar a:nth-child(2):hover {
    background-color: #fff;
    border-color: #b71234;
    color: #b71234;
    box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}

/* Sacar el separador viejo "|" que mete iconbar */
.weeks-actions-bar br,
.weeks-actions-bar span.separator,
.weeks-actions-bar .pipe,
.weeks-actions-bar .divider {
    display: none !important;
}
/* ========================================= 
   FORMULARIO CICLO LECTIVO (Agregar / Editar)
   Versión final alineada con "Datos de la Institución"
   ========================================= */

/* Contenedor principal tipo tarjeta institucional */
.institution-container {
    max-width: 950px;
    margin: 30px auto 60px auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    border-top: 5px solid #b71234; /* rojo institucional */
    padding: 24px 28px 32px 28px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Encabezado del formulario */
.page-title-form {
    font-size: 1.6rem;
    font-weight: 500;
    color: #111;
    margin: 0 0 4px 0;
}

.institution-header .subtitle {
    font-size: 0.9rem;
    color: #555;
    margin: 0 0 20px 0;
    line-height: 1.4;
}

/* Bloques seccionados dentro del formulario */
.form-section {
    background-color: #fafafa;
    border: 1px solid #dcdcdc;
    border-radius: 8px;
    padding: 16px 20px 20px 20px;
    margin-bottom: 24px;
}

.form-section > h3 {
    font-size: 0.95rem;
    font-weight: 600;
    color: #444;
    margin: 0 0 16px 0;
    padding-bottom: 4px;
    border-bottom: 1px solid #dcdcdc;
}

/* Cada campo (label arriba, input abajo) */
.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 16px;
    font-family: inherit;
}

.form-group label {
    font-size: 0.9rem;
    color: #222;
    font-weight: 500;
    margin-bottom: 6px;
}

.req-star {
    color: #b71234;
    font-weight: 600;
    margin-left: 4px;
    font-size: 0.9rem;
}

/* Hint / ayuda debajo de campo */
.form-group .hint {
    margin-top: 6px;
    font-size: 0.8rem;
    color: #666;
    line-height: 1.4;
}

/* Inputs */
.input-text {
    border: 1px solid #cfcfcf;
    background: #fff;
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 0.9rem;
    color: #222;
    width: 100%;
    max-width: 320px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04) inset;
    font-family: inherit;
}

.input-text.short-input {
    max-width: 140px;
}

.input-text:focus {
    outline: 2px solid #b71234;
    outline-offset: 0;
    border-color: #b71234;
}

/* Bloque de las semanas seleccionables */
.weeks-grid-wrapper {
    overflow-x: auto;
}

.weeks-grid-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 10px;
    font-size: 0.8rem;
    color: #fff;
}

.week-cell {
    background: #4a4a4a;
    border-radius: 4px;
    padding: 6px 8px !important;
    color: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.18);
}

.week-cell-label {
    display: inline-flex;
    align-items: center;
    column-gap: 6px;
    font-weight: 500;
    line-height: 1.4;
    cursor: pointer;
}

/* Pie de acciones (Guardar / Cancelar) */
.form-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
    font-family: inherit;
}

/* Botón Guardar */
.form-actions input[type="submit"],
.form-actions button[type="submit"] {
    background-color: #b71234;
    border: 1px solid #b71234;
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.2;
    border-radius: 8px;
    padding: 9px 16px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.12);
    cursor: pointer;
    font-family: inherit;
}

.form-actions input[type="submit"]:hover,
.form-actions button[type="submit"]:hover {
    filter: brightness(1.05);
    box-shadow: 0 3px 6px rgba(0,0,0,0.18);
}

/* Botón Cancelar (link) */
.form-actions a {
    display: inline-flex;
    align-items: center;
    background-color: #f5f5f5;
    border: 1px solid #cfcfcf;
    color: #333;
    font-weight: 500;
    font-size: 0.9rem;
    line-height: 1.2;
    border-radius: 8px;
    padding: 9px 16px;
    text-decoration: none;
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
    font-family: inherit;
}

.form-actions a:hover {
    background-color: #fff;
    border-color: #b71234;
    color: #b71234;
    box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}

/* =========================================
   AÑADIR / EDITAR TURNO (periods_add)
   ========================================= */

/* Reusamos institution-container, page-title-form, .subtitle, .form-section, .form-group,
   .input-text, .req-star, .form-actions de weeks_add. Solo agregamos layout en 2 columnas. */

.form-flex-layout {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

/* Columna principal */
.form-main {
    flex: 1 1 600px;
    min-width: 300px;
}

/* Columna lateral (ayuda) */
.form-aside {
    flex: 0 0 260px;
    min-width: 240px;
}

/* Caja lateral de ayuda */
.aside-box {
    background: #fff;
    border: 1px solid #dcdcdc;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    padding: 16px 16px 12px 16px;
    font-size: 0.85rem;
    line-height: 1.4;
    color: #333;
    border-top: 4px solid #4caf50; /* verde info */
}

.aside-box h4 {
    margin: 0 0 8px 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: #2e7d32; /* verde más oscuro para título */
}

/* Grupo de checkboxes de días */
.days-checkbox-group {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 6px 12px;
    max-width: 380px;
    background: #fff;
    border: 1px solid #dcdcdc;
    border-radius: 6px;
    padding: 12px;
}

.day-item {
    font-size: 0.9rem;
    color: #222;
    font-weight: 400;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Checkbox "pueden realizarse reservas" */
.checkbox-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    color: #222;
}

.checkbox-label {
    line-height: 1.4;
    font-weight: 400;
}

/* Responsive: si la pantalla es angosta, la ayuda baja abajo */
@media (max-width: 900px) {
    .form-flex-layout {
        flex-direction: column;
    }

    .form-aside {
        flex: 1 1 auto;
        min-width: 100%;
    }
}
/* =========================================
   LISTADO DE TURNOS (periods_index)
   ========================================= */

/* Wrapper para centrar la tabla como en Asignaturas */
.periods-table-wrapper {
    max-width: 1000px;
    margin: 0 auto 24px auto;
    background: #fff;
    border: 1px solid #dcdcdc;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    padding: 16px 16px 8px 16px;
    border-top: 5px solid #b71234; /* rojo institucional */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Forzamos que la tabla llene el ancho interno */
.periods-table-wrapper table {
    width: 100%;
    border-collapse: collapse;
}

/* Conservamos las clases históricas .zebra-table y .heading
   que ya existen en el sistema, así mantenemos los colores alternados
   y el encabezado celestito/beige que ya se ve en Asignaturas. */

/* Barra de acciones con el botón Añadir Turno */
.periods-actions-bar {
    display: flex;
    justify-content: center;
    margin: 8px auto 48px auto;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Limpiamos el iconbar viejo y lo estilizamos como botón rojo institucional */
.periods-actions-bar a {
    display: inline-flex;
    align-items: center;
    background-color: #b71234;
    border: 1px solid #b71234;
    color: #fff !important;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.2;
    border-radius: 8px;
    padding: 9px 14px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.12);
    text-decoration: none;
    gap: 6px;
}

/* el icono verde add.png se veía como un circulito verde, lo achicamos un toque */
.periods-actions-bar a img {
    width: 16px;
    height: 16px;
}

/* hover del botón */
.periods-actions-bar a:hover {
    filter: brightness(1.05);
    box-shadow: 0 3px 6px rgba(0,0,0,0.18);
}

/* ocultar el pipe '|' que pone iconbar entre acciones */
.periods-actions-bar br,
.periods-actions-bar span.separator,
.periods-actions-bar .pipe,
.periods-actions-bar .divider {
    display: none !important;
}

/* =========================================
   CONFIRMACIÓN DE BORRADO (deleteconfirm)
   ========================================= */

.delete-card {
    max-width: 600px;
    margin: 40px auto 60px auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    border-top: 5px solid #b71234; /* rojo institucional */
    padding: 24px 28px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: #222;
}

.delete-card-body {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* bloque "¿Está seguro...?" */
.delete-card-question {
    display: flex;
    align-items: flex-start;
    background-color: #e9f7ef; /* verde muy clarito */
    border: 1px solid #6fcf97;
    border-radius: 6px;
    padding: 12px 14px;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #1e4620;
    font-weight: 500;
}

.delete-card-question .delete-icon.info {
    background-color: #6fcf97;
    color: #fff;
}

/* bloque advertencia roja */
.delete-card-warning {
    display: flex;
    align-items: flex-start;
    background-color: #fff2f2;
    border: 1px solid #e57373;
    border-radius: 6px;
    padding: 12px 14px;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #7f1d1d;
}

.delete-card-warning .delete-icon.warn {
    background-color: #e57373;
    color: #fff;
}

/* el circulito de la izquierda en ambos bloques */
.delete-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 20px;
    text-align: center;
    margin-right: 10px;
    font-family: inherit;
}

/* texto de las cajitas */
.delete-question-text,
.delete-warning-text {
    flex: 1;
}

/* acciones abajo */
.delete-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px;
    font-family: inherit;
}

/* botón rojo ("Borrar") */
.delete-actions .btn-danger,
.btn-danger {
    background-color: #b71234;
    border: 1px solid #b71234;
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.2;
    border-radius: 8px;
    padding: 9px 16px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.12);
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
}

.delete-actions .btn-danger:hover,
.btn-danger:hover {
    filter: brightness(1.05);
    box-shadow: 0 3px 6px rgba(0,0,0,0.18);
}

/* botón gris ("Cancelar") */
.delete-actions .btn-cancel,
.btn-cancel {
    display: inline-flex;
    align-items: center;
    background-color: #f5f5f5;
    border: 1px solid #cfcfcf;
    color: #333;
    font-weight: 500;
    font-size: 0.9rem;
    line-height: 1.2;
    border-radius: 8px;
    padding: 9px 16px;
    text-decoration: none;
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
    font-family: inherit;
}

.delete-actions .btn-cancel:hover,
.btn-cancel:hover {
    background-color: #fff;
    border-color: #b71234;
    color: #b71234;
    box-shadow: 0 3px 6px rgba(0,0,0,0.12);
}
