/* CSS Document */
@-ms-viewport {
  width: device-width;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
	background-image: url(../imagenes/fondos/hormigon.jpg);
	font-family: 'Open Sans', sans-serif;
  font-size: 12pt;
  font-weight: 300;
  color: #eee;
  text-rendering: optimizeLegibility;
  line-height: calc(1ex / 0.32);
  letter-spacing: 0.04em;
  overflow-y:scroll;
  display:flex;
}

h1 {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 24pt;
	color:#eee;
  text-rendering: optimizeLegibility;
  line-height: calc(1ex / 0.32);
  letter-spacing: 0.04em;
	margin: 0px 0px 20px 0px;
}

a {
	cursor:pointer;
	text-decoration:none;
	color:#def;
}

a:hover {
	cursor:pointer;
	text-decoration:none;
	color:#ff0;
}

.input-texto {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 12pt;
	color:#eee;
	background-color: #222;
	padding: 4px;
	border: 1px solid #ccc;
	letter-spacing: 0.1em;
}

.input-hora {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 12pt;
	color:#eee;
	background-color: #222;
	padding: 0px;
	border: none;
	letter-spacing: 0.1em;
}

.cajatexto {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 12pt;
	color:#eee;
	background-color: #222;
	padding: 4px 8px 4px 8px;
	border: thin solid #ccc;
	border-radius: 4px;
	letter-spacing: 0.1em;
	margin: 4px;
	width: 320px;
}

.input-boton {
	cursor: pointer;
	border-radius:4px;
	font-weight: bold;
	border: thin solid #aaa;
	background-color: #222;
	padding-left: 10px;
	padding-right: 10px;
	padding-top: 4px;
	padding-bottom: 4px;
	font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	font-size: 10pt;
	color: #aaa;
	line-height: 16pt;
	letter-spacing: 0.05em;
}

.row::after {
  content: "";
  clear: both;
  display: table;
}

[class*="col-"] {
  float: left;
  padding: 8px;
  border: 1px solid #999;
	margin-top:-1px;
  background-color: #222;
}

.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}

[class*="int-"] {
  float: left;
  padding: 0px;
}

.int-1 {width: 8.33%;}
.int-2 {width: 16.66%;}
.int-3 {width: 25%;}
.int-4 {width: 33.33%;}
.int-5 {width: 41.66%;}
.int-6 {width: 50%;}
.int-7 {width: 58.33%;}
.int-8 {width: 66.66%;}
.int-9 {width: 75%;}
.int-10 {width: 83.33%;}
.int-11 {width: 91.66%;}
.int-12 {width: 100%;}

[class*="pie-"] {
	margin-top: 10px;
  float: left;
  padding: 8px;
}

.pie-1 {width: 8.33%;}
.pie-2 {width: 16.66%;}
.pie-3 {width: 25%;}
.pie-4 {width: 33.33%;}
.pie-5 {width: 41.66%;}
.pie-6 {width: 50%;}
.pie-7 {width: 58.33%;}
.pie-8 {width: 66.66%;}
.pie-9 {width: 75%;}
.pie-10 {width: 83.33%;}
.pie-11 {width: 91.66%;}
.pie-12 {width: 100%;}

.bg-rojo {
	background-color: #601;
}

.bg-azul {
	background-color: #023;
}

.bg-lista {
	background-color: #111;
}

.bg-lista:hover {
	background-color: #334;
}

.ta-derecha {
	text-align: right;
	padding-right: 4px;
}

.ta-izquierda {
	text-align: left;
	padding-left: 4px;
}

#div-login {
	width: 100vw;
	margin: 10px 10px 100px 10px;
	height: 600px;
	text-align: center;
	border-radius:4px;
	border:thin solid #222;
	background-color: rgba(24, 23, 22, 0.6);
	/* box-shadow: 4px 4px 10px #111; */
}

#div-login-lateral {
	width: 480px;
	margin: 10px auto 10px auto;
	height: 640px;
	text-align: center;
	border-radius: 6px;
	border:thin solid #222;
	background-color: rgba(24, 23, 22, 0.6);
	/* box-shadow: 4px 4px 10px #111; */
}


#div-menu {
	width: 84px;
	height: 800px;
	padding: 10px;
	border-radius:4px;
	border:thin solid #222;
	background-color: rgba(24, 23, 22, 0.6);
	float: left;
	margin-right: 10px;
	/* box-shadow: 4px 4px 10px #111; */
}

#div-menu_inferior {
	width: 100vw;
	min-height: 68px;
	margin: 20px 20px 100px 20px;
	text-align: center;
	border-radius:4px;
	border:thin solid #222;
	background-color: rgba(24, 23, 22, 0.6);
	/* box-shadow: 4px 4px 10px #111; */
}

#div-principal {
	width: 98%;
	margin: auto;
	max-width: 350px;
	min-height: 520px;
  overflow: hidden;
	padding: 10px;
	border-radius:4px;
	border:thin solid #222;
	background-color: rgba(24, 23, 22, 0.6);
	/* box-shadow: 4px 4px 10px #111; */
}

.CabeceraAzul {
	border:thin solid #888;
	background-color:#023;
	color:#FFF;
	font-weight:bold;
	font-size: 10pt;
	text-transform:uppercase;
}

.CabeceraAzul td {
	padding: 8px;
}


.Lista {
	font-size: 9pt;
}

@media screen and (min-device-width: 375px) and (max-device-width: 812px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 3) {
	.ficha-alumno {
		width: 100%;
		float: left;
	  padding: 8px;
	  border: 1px solid #999;
		margin-top:-1px;}
}

@media screen and (min-device-width: 375px) and (max-device-width: 812px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 3) {
  .div-general {
  	margin-left: 30px;
  }
	.ficha-alumno {
		width: 50%;
		float: left;
	  padding: 8px;
	  border: 1px solid #999;
		margin-top:-1px;}
}

@media screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) {
	.ficha-alumno {
		width: 33.33%;
		float: left;
	  padding: 8px;
	  border: 1px solid #999;
		margin-top:-1px;}
}

@media screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2) {
	.ficha-alumno {
		width: 25%;
		float: left;
	  padding: 8px;
	  border: 1px solid #999;
		margin-top:-1px;}
}

@media only screen and (min-device-width: 1024px) {
	.ficha-alumno {
		width: 16.66%;
		float: left;
	  padding: 8px;
	  border: 1px solid #999;
		margin-top:-1px;}
	}

/* ==========================================================================
   AÑADIDOS PARA LA APLICACIÓN DE FICHAJE
   Todo lo anterior es tu hoja original sin cambios. Lo de aquí abajo solo
   completa lo que faltaba y no modifica tus clases (salvo el max-width de
   .cajatexto para que no se salga de la pantalla en móviles estrechos).
   ========================================================================== */

/* Open Sans en local: copia los .woff2 en la carpeta fonts/ */
@font-face {
  font-family: 'Open Sans';
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: local('Open Sans Light'), local('OpenSans-Light'), url(../fonts/OpenSans-Light.woff2) format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: local('Open Sans'), local('OpenSans-Regular'), url(../fonts/OpenSans-Regular.woff2) format('woff2');
}

/* Color de reserva mientras carga la imagen de fondo */
body {
	background-color: #333;
}

:focus-visible {
	outline: 2px solid #ff0;
	outline-offset: 2px;
}

/* Que los campos nunca se salgan de #div-principal en pantallas estrechas */
.cajatexto {
	max-width: calc(100% - 8px);
}

label {
	display: block;
	margin: 8px 4px 0 4px;
}

#div-principal h1 {
	font-size: 18pt;
}

h2 {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	font-size: 14pt;
	color: #eee;
	line-height: calc(1ex / 0.32);
	letter-spacing: 0.04em;
	margin: 20px 0px 10px 0px;
}

.centrado {
	text-align: center;
}

/* Menú superior dentro de #div-principal */
.menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 20px;
	margin-bottom: 16px;
}

.form-salir {
	margin: 0 0 0 auto;
}

.enlace-boton {
	cursor: pointer;
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	letter-spacing: inherit;
	color: #def;
}

.enlace-boton:hover {
	color: #ff0;
}

/* Pantalla de fichaje */
.reloj {
	font-size: 30pt;
	font-weight: 300;
	text-align: center;
	letter-spacing: 0.08em;
	margin: 0 0 8px 0;
}

.boton-fichar {
	display: block;
	width: 100%;
	margin-top: 12px;
	padding: 12px 10px;
	font-size: 14pt;
	color: #eee;
}

.boton-entrada,
.boton-pausa_fin {
	background-color: #023;
}

.boton-salida {
	background-color: #601;
}

.input-boton:disabled {
	cursor: not-allowed;
	opacity: 0.4;
}

/* Mensajes (usan tus colores de fondo azul y rojo) */
.mensaje {
	padding: 8px 12px;
	border-radius: 4px;
	border: thin solid #888;
	margin: 0 0 12px 0;
}

.mensaje-ok {
	background-color: #023;
}

.mensaje-error {
	background-color: #601;
}

.mensaje-aviso {
	background-color: #222;
	color: #ff0;
}

/* Tablas: cabecera .CabeceraAzul y filas .bg-lista, tal como en tu hoja */
.tabla {
	width: 100%;
	border-collapse: collapse;
}

.tabla-scroll {
	overflow-x: auto;
}

.Lista td {
	padding: 6px 8px;
	vertical-align: top;
}

.fichaje-linea {
	display: block;
}

.fichaje-aviso {
	color: #ff0;
}

.selector-mes {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 12px;
}

/* Pantallas táctiles: zonas de pulsación más cómodas */
@media (pointer: coarse) {
	.input-boton {
		min-height: 44px;
	}
	.cajatexto {
		min-height: 44px;
	}
}
