:root {
	--bg: #f6f7f8;
	--panel-bg: #ffffff;
	--muted: #9aa3a9;
	--green-soft: #dff6e6;
	--blue-soft: #e8f2fb;
	--red-border: #e07a7a;
	--card-shadow: 0 6px 18px rgba(20,20,20,0.06);
	--radius: 12px;
	--gap: 14px;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html, body {
	height: 100%;
	background: linear-gradient(180deg, var(--bg), #eef3f6);
	color: #20323a;
}

h2 {
	margin: 0px;
	padding: 5px 10px 10px 10px;
	font-size: 24px;
	color: #333;
}

/* Topbar */
.topbar {
	background: linear-gradient(90deg, var(--blue-soft), #fff);
	padding: 10px;
	border-bottom: 1px solid rgba(0,0,0,0.04);
	text-align: center;
}

.topbar h1 {
	margin: 0px;
	font-size: 1.3rem;
	letter-spacing: -0.5px;
}

#_estado {
	margin-top: 10px;
	font-size: 1.2em;
	color: red;
}

.subtitle {
	margin: 10px 0 0;
	color: var(--muted);
	font-size: 0.9rem;
}

/* Container */
.container {
	display: grid;
	gap: var(--gap);
	padding: 0px 10px 10px 10px;
	max-width: 1100px;
	margin: 0px 10px 10px 10px;
}

/* Panel */
.panel {
	background: var(--panel-bg);
	border-radius: var(--radius);
	padding: 10px;
	box-shadow: var(--card-shadow);
	border: 2px solid rgba(0,0,0,0.03);
	text-align: center;
}
/*
.column {
	background: white;
	padding: 25px;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
*/
/* Forms */
form label {
	display: block;
	margin-bottom: 10px;
	font-size: 1.2rem;
	color: #304149;
}

form textarea,
form input[type="text"],
form input[type="date"],
form input[type="time"],
form input[type="number"],
form input[type="email"],
form input[type="password"],
form select {
	width: 100%;
	padding: 5px 6px;
	border-radius: 10px;
	border: 2px solid rgba(0,0,0,0.06);
	background: linear-gradient(180deg, #fff, var(--green-soft));
	outline: none;
	font-size: 1.1rem;
	color: #304149;
}

form input:focus {
	box-shadow: 0 0 0 4px rgba(0,123,255,0.06);
	border-color: var(--red-border);
}

.cct2 {
	padding: 5px 6px;
	border-radius: 10px;
	border: 2px solid rgba(0,0,0,0.06);
	background: linear-gradient(180deg, #fff, var(--green-soft));
	outline: none;
	font-size: 1.1rem;
	color: #304149;
}

label.inline {
	display: block;
}

label.inline > span {
	display: block;
	font-size: 0.9rem;
	margin-bottom: 6px;
	color: #304149;
}

/* Buttons */
.actions,
.button-group {
	display: flex;
	gap: 20px;
	margin-top: 8px;
	margin-bottom: 15px;
	align-items: center;
}

button,
.btn {
	flex: 1;
	padding: 10px 14px;
	border-radius: 10px;
	border: none;
	background: linear-gradient(180deg, #cfe9ff, #eaf6ff);
	cursor: pointer;
	font-weight: 600;
	font-size: 16px;
	box-shadow: 0 5px #afb5b9;
	transition: all 0.03s ease-in-out;
}

button.secondary {
	background: linear-gradient(180deg, #fff, #f7f7f7);
    color: #333;
    box-shadow: 00 5px #afb5b9;
    border: 1px solid rgba(0, 0, 0, 0.05);
    transition: all 0.03s ease-in-out;
	
}
button:active {
  transform: translateY(4px);
  box-shadow: 0 1px #afb5b9;
}

.btn-entrada {
	background: #28a745;
	color: white;
}

.btn-entrada:hover {
	background: #218838;
}

.btn-salida {
	background: #dc3545;
	color: white;
}

.btn-salida:hover {
	background: #c82333;
}

.action-btn {
	margin-right: 6px;
	padding: 6px 8px;
	border-radius: 8px;
	border: none;
	cursor: pointer;
	font-size: 0.85rem;
}

.edit {
	background: #fff6e6;
}

.del {
	background: #ffecec;
}

.bonito-boton-li {
	background: linear-gradient(180deg, #2876b7, #274b67);
	color: white;
	border: none;
	padding: 6px 0px;
	font-size: 16px;
	border-radius: 6px;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	transition: all 0.3s ease;
	width: 100%;
}

.bonito-boton-li:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
	background: linear-gradient(135deg, #5a67d8, #6b46c1);
}

.bonito-boton-li:active {
	transform: scale(0.98);
}

/* Tables */
#listContainer,
.tabla-container {
	overflow-x: auto;
	overflow-y: auto;
	height: 530px;
	border: 1px solid #ddd;
	border-radius: 4px;
}

table,
.tabla-fichajes,
.tabla-personalizada {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

/* Tabla personalizada tiene prioridad sobre tabla general */
.tabla-personalizada {
	font-family: Arial, sans-serif;
	color: #000000;
}

.tabla-personalizada th,
.tabla-personalizada td {
	border: 1px solid #c8e6c9;
	padding: 8px;
	text-align: left;
}

.tabla-personalizada tr:nth-child(even) {
	background-color: #f1f8e9;
}

.tabla-personalizada tr:nth-child(odd) {
	background-color: #abe6b0;
}

.tabla-personalizada th {
	background-color: #388e3c;
	color: white;
	font-weight: bold;
	border-color: #388e3c;
}

/* Tabla fichajes específica */
.tabla-fichajes thead {
	position: sticky;
	top: 0;
	background: #343a40;
	color: white;
	z-index: 10;
}

.tabla-fichajes th {
	padding: 12px;
	text-align: left;
	font-weight: 600;
	border-bottom: 2px solid #23272b;
}

.tabla-fichajes td {
	padding: 12px;
	border-bottom: 1px solid #e9ecef;
}

.tabla-fichajes tbody tr:hover {
	background: #f8f9fa;
}

.tabla-fichajes tbody tr:nth-child(even) {
	background: #fafafa;
}

/* Tabla general (menor prioridad) */
thead th {
	text-align: left;
	padding: 10px;
	color: var(--muted);
	font-size: 0.85rem;
	border-bottom: 1px solid rgba(0,0,0,0.5);
}

tbody td {
	padding: 10px;
	border-bottom: 1px solid rgba(0,0,0,0.04);
	vertical-align: middle;
}

/* Toolbar */
.toolbar {
	display: flex;
	gap: 8px;
	margin-bottom: 10px;
}

.toolbar input,
.toolbar select {
	padding: 8px;
	border-radius: 8px;
	border: 1px solid rgba(0,0,0,0.06);
	min-width: 0;
}

/* Calendario */
.calendar-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 15px;
}

.calendar-controls button {
	background: #007bff;
	color: white;
	border: none;
	padding: 8px 15px;
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
}

.calendar-controls button:hover {
	background: #0056b3;
}

.calendar-controls span {
	font-size: 18px;
	font-weight: bold;
	color: #333;
}

.calendar {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

.calendar th {
	background: #007bff;
	color: white;
	padding: 10px;
	font-weight: 600;
	border: 1px solid #0056b3;
}

.calendar td {
	border: 1px solid #ddd;
	padding: 12px;
	text-align: center;
	cursor: pointer;
	transition: background 0.2s;
	height: 50px;
}

.calendar td:hover {
	background: #e3f2fd;
}

.calendar td.other-month {
	color: #ccc;
}

.calendar td.today {
	background: #fff3cd;
	font-weight: bold;
}

.calendar td.selected {
	background: #007bff;
	color: white;
}

.calendar td.weekend {
	background: #f8f9fa;
}

.summary {
	background: #f8f9fa;
	padding: 15px;
	border-radius: 4px;
	border-left: 4px solid #007bff;
	text-align: left;
}

.summary-line {
	margin: 8px 0;
	color: #555;
	font-size: 14px;
}

/* Menu */
#menu {
	position: absolute;
	width: 250px;
	height: 125px;
	margin-top: 1px;
	margin-left: 35px;
	background-color:transparent;
	display: none;
	z-index: 100;
	left: 30px;
	top: 65px;
}

#menu_op {
	margin-left: -40px;
	margin-top: 1px;
}

#menu_op li {
	cursor: pointer;
	font-size: 20px;
	font-weight: bold;
	text-transform: capitalize;
	color: #3F2D11;
	border-bottom: 1px solid #b2b2b2;
	border-radius: 1px;
	margin-bottom: 1px;
	padding: 1px 5px 1px;
	list-style-type: none;
	background-color: #9fd3a3;
}

#ver_no_ver {
	position: absolute;
	font-size: 20px;
	margin: 15px;
	width: 30px;
	height: 30px;
	line-height: 30px;
	cursor: pointer;
	text-align: center;
	background: linear-gradient(180deg, #2876b7, #274b67);
	color: white;
	border-radius: 8px;
	align-self: flex-start;
	display: none;
}

#ver_no_ver:hover {
	box-shadow: 5px 5px 5px black;
}

/* Checkbox */
.checkbox-grande {
	width: 25px;
	height: 25px;
	accent-color: #007bff;
}

/* Footer */
.footer {
	text-align: center;
	color: var(--muted);
	padding: 12px 0;
}

/* Responsive */
@media (min-width: 700px) {
	.panel form label.inline {
		display: inline-block;
		width: 32%;
		margin-right: 2%;
		vertical-align: top;
	}
}

@media (min-width: 900px) {
	.container {
		grid-template-columns: 520px 1fr;
		align-items: start;
	}
}

@media (max-width: 968px) {
	.container {
		grid-template-columns: 1fr;
	}
}

.salidaAp{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background-color:  #fff;
	outline: none;
	font-size: 1.1rem;
	color: #dc3545;;
	font-weight:600;
	text-align: left;
}
.entradaAp{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background-color:  #fff;
	outline: none;
	font-size: 1.1rem;
	color: #28a745;
	font-weight:600;
	text-align: left;
}
.salidaApp{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background-color:  #eaf2f7;
	outline: none;
	font-size: 1.1rem;
	color: #dc3545;;
	font-weight:600;
	text-align: left;
}
.entradaApp{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background-color:  #eaf2f7;
	outline: none;
	font-size: 1.1rem;
	color: #28a745;
	font-weight:600;
	text-align: left;
}
.salidaApi{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background-color:  #fff;
	outline: none;
	font-size: 1.1rem;
	color: #3919ed;;
	font-weight:600;
	text-align: left;
	font-style: italic;
}
.entradaApi{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background-color:  #fff;
	outline: none;
	font-size: 1.1rem;
	color: #3919ed;
	font-weight:600;
	text-align: left;
	font-style: italic;
}
.tituloAp{
	padding: 10px;
	border-radius: 5px;
	border: 2px solid rgba(0, 0, 0, 0.06);
	background: linear-gradient(180deg, #fff, var(--green-soft));
	outline: none;
	font-size: 1.1rem;
	color: #304149;
	font-weight:600;
	border-left: 4px solid green;
}

#html5-qrcode-anchor-scan-type-change{
	display: none !important;
}

fieldset{
	padding: 20px;
	display: flex;
	flex-wrap: wrap;
	gap:25px;
	justify-content: space-around;
	font-size: 1.3rem;
	max-height: 120px;
}

#reloj{
	width:450px;
	height:450px;
	border:0px;
	overflow:hidden;
}

#qrcode{
	display:flex;
	justify-content: center;
}

/*capa movible de datos*/
#cpSelArtis{
  width: 450px;
  height: 260px;
  background-color: white;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border: 2px solid black;
  border-radius: 7px;
  user-select: none;
  touch-action: none;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
	z-index:110;
	text-align:center;
	display:none;
}
.header {
  background: linear-gradient(180deg, #fff, var(--green-soft));
  padding: 4px;
  font-weight: bold;
  cursor: move;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top-left-radius: 7px;
  border-top-right-radius: 7px;  
}
.contenido {
	padding:5px 3px 0px 3px;
}

.movible {
	position: absolute;
	cursor: move;
	user-select: none;
	touch-action: none;
	border: 1px solid #444;
	border-radius: 5px;
	box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
	background-color: #fff;
}

.cerrar {
  cursor: pointer;
  padding: 0 8px;
}
.cerrar:hover {
  color: red;
}
/*<--*/
/*fin capa movible de datos*/
/*escanner de qr*/
#fiyqr{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
}
#scanner, #generator { 
	flex: 1; 
}
#qr-result { 
	margin-top: 10px; font-weight: bold; 
}
#qrcode { 
	margin-top: 10px; 
}
/*fin esanner de qr*/

footer a{
	text-decoration: none;
}