* {
	padding: 0;
	margin: 0;
	border: none;
	outline: none;
	font: normal 1rem/1.2rem Roboto, Helvetica, sans-serif;
	user-select: none;
	overscroll-behavior: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
html {
	background-color: #fff;
}
body {
	padding-top: 3.6rem;
}
input {
	user-select: auto;
}
textarea {
	resize: none;
}
input::placeholder,
textarea::placeholder {
    color: #aaa;
}
body.ocultar,
#descargas {
	display: none;
}


#calendario {
	display: none;
}
#calendario.presentar {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 3;
}
#calendario div {
	width: 20rem;
	max-width: 80%;
	box-shadow: 0 0 2rem rgba(0, 0, 0, 0.5);
	box-sizing: border-box;
	border-radius: 0.6rem;
	overflow: hidden;
}
#calendario header {
	position: relative;
	background-color: #3be;
}
#calendario header span {
	display: block;
	padding: 1rem;
	font-weight: bold;
	color: #fff;
	font-size: 1.1rem;
}
#calendario header img {
	position: absolute;
	top: 0;
	width: 1.2rem;
}
#calendario header img:first-of-type {
	padding: 1.24rem 1rem 1.24rem 0.4rem;
	transform: rotate(180deg);
	right: 3.2rem;
}
#calendario header img:last-of-type {
	padding: 1.24rem 1rem 1.24rem 0.4rem;
	right: 0;
}
#calendario footer {
	background-color: #fff;
	padding: 2rem 1rem;
}
#calendario section {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	width: 100%;
}
#calendario section p,
#calendario section article {
	display: flex;
	justify-content: center;
	align-items: center;
	aspect-ratio: 1 / 1;
}
#calendario section p {
	margin-bottom: 0.5rem;
}
#calendario article.actual {
	box-shadow: 0 0 6px #aaa;
	border-radius: 50%;
}
#calendario article.hoy {
	background-color: #ffa500;
	color: #fff;
	border-radius: 50%;
}


#cita {
	display: none;
}
body.cita #cita {
	display: block;
	padding: 1rem 1.5rem 7rem 1.5rem;
	margin-bottom: 10rem;
	background-color: #fff;
}
#cita h1,
#cita h2 {
	text-align: center;
	color: #999;
	padding: 0.5rem 0;
}
#cita h2 {
	padding: 0 0 0.5rem 0;
}
#cita input[type="text"],
#cita textarea,
#cita input[type="button"],
#cita input[type="submit"] {
	background-color: #eee;
	box-shadow: inset 0 0 4px #bbb;
	margin: 0.5rem 0;
	width: 100%;
	padding: 0.5rem 0.8rem;
	box-sizing: border-box;
	border-radius: 0.5rem;
}
#cita textarea {
	height: 9.6rem;
}
#cita:not(.eliminable) h2,
#cita:not(.eliminable) input[type="button"],
#cita.eliminable div {
	display: none;
}
#cita input[type="button"] {
	background-color: #eee;
	box-shadow: none;
	text-align: center;
	color: #999;
	font-weight: bold;
}
#cita input[type="submit"] {
	background-color: #fccf2c;
	box-shadow: none;
	text-align: center;
	color: #555;
	font-weight: bold;
}
#cita input[type="submit"]:active {
	background-color: #eee;
	color: #999;
}
#cita section {
	display: none;
}
#cita section.listar {
	display: block;
	position: relative;
	background-color: white;
	color: #555;
	box-shadow: 0 0 4px #ccc;
	z-index: 1;
	text-align: left;
	margin: 0.5rem 0;
}
#cita section article {
	padding: 0.8rem;
	white-space: nowrap;
}
#cita section article.cursor {
	background-color: #eee;
}
#cita section p {
	padding: 0.6rem 0.8rem;
}
#cita div {
	margin: 0.5rem 0;
}
#cita label {
	display: block;
	text-align: center;
}
#cita label input {
	display: none;
}
#cita label span {
	display: block;
	padding: 0.5rem 0.8rem;
	font-weight: bold;
	color: #999;
}
#cita label input:checked + span {
	background-color: #eee;
	border-radius: 0.5rem;
}


#citas {
	display: none;
}
body.citas #citas {
	display: block;
}
#citas header {
	display: flex;
	position: fixed;
	top: 3.6rem;
	left: 0;
	right: 0;
	background-color: #eee;
	color: #666;
    overflow-x: scroll;
	gap: 0.6rem;
	padding: 0.4rem 0.3rem;
}
#citas header::-webkit-scrollbar {
	height: 0;
}
#citas header article {
	border-radius: 0.5rem;
	padding: 0.25rem 0.1rem;
	width: 2rem;
	flex: 0 0 auto;
	text-align: center;
}
#citas header article.actual {
	background-color: #fff;
	box-shadow: 0 0 6px #aaa;
}
#citas header article.hoy h2 {
	background-color: #ffa500;
	color: #fff;
	border-radius: 50%;
	width: 1.6rem;
	height: 1.6rem;
}
#citas header article h1 {
	text-align: center;
	line-height: 1.2rem;
}
#citas header article h2 {
	text-align: center;
	font-weight: bold;
	line-height: 1.6rem;
	margin: 0 0.25rem;
}
#citas footer {
	position: fixed;
	top: 7.7rem;
	left: 0;
	width: calc(100% - 2.4rem);
	bottom: 0;
	padding: 0.7rem 1.2rem 1.2rem 1.2rem;
	background-color: #fff;
	overflow-y: auto;
	box-shadow: 0 -1px 1px #ccc;
	z-index: 2;
}
#citas footer::-webkit-scrollbar {
	width: 0;
}
#citas table {
	border-spacing: 0;
}
#citas table caption {
	text-align: center;
	color: #999;
	padding: 0.5rem 0 1.4rem 0;
}
#citas table th {
	color: #999;
	padding-bottom: 1rem;
}
#citas table td:first-child {
	width: 3rem;
	color: #999;
	position: relative;
	top: -0.5rem;
	vertical-align: top;
}
#citas table td:nth-child(n+2) {
	width: calc(100vw - 5.4rem);
	color: #ddd;
	position: relative;
	border-top: solid 1px #ddd;
}
#citas footer.semanal table td:nth-child(n+2) {
	width: calc((100vw - 5.4rem) / 7);
}
#citas table tr:last-child td:last-child * {
	display: none;
}
#citas table td p {
	position: relative;
	height: 1rem;
}
#citas table td p:last-child {
	height: calc(1rem + 1px);
}
#citas table td.cerrada {
	position: relative;
	height: calc(2rem + 1px);
}
#citas table td.cerrada p {
	background-color: #ccc;
	position: absolute;
	top: 4px;
	left: 0.375rem;
	width: calc(100% - 0.7rem);
	border-radius: 0.5rem;
	height: calc(2rem - 7px);
}
#citas footer.semanal table td.cerrada p {
	left: 0;
	width: 100%;
	border-radius: 0;
}
#citas footer.semanal table td:nth-child(2).cerrada p {
	left: 0.1rem;
	width: calc(100% - 0.1rem);
	border-radius: 0.5rem 0 0 0.5rem;
}
#citas footer.semanal table td:last-child.cerrada p {
	right: 0.1rem;
	width: calc(100% - 0.1rem);
	border-radius: 0 0.5rem 0.5rem 0;
}
#citas section {
	background-color: #8c4;
	position: absolute;
	top: 4px;
	left: 0.375rem;
	width: calc(100% - 0.7rem);
	box-sizing: border-box;
	color: #fff;
	z-index: 1;
	padding: 0.25rem 0.5rem;
	border-radius: 0.5rem;
}
#citas footer.semanal section {
	left: 0.1rem;
	width: calc(100% - 0.2rem);
}
#citas section.clase4 {
	background-color: #8c4;
	height: calc(4rem - 5px);
}
#citas section.clase6 {
	background-color: #3be;
	height: calc(6rem - 3px);
}
#citas section.clase8 {
	background-color: #f96;
	height: calc(8rem - 1px);
}
#citas section.pasado {
	background-color: #ccc;
}
#citas section h1,
#citas section h2 {
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;	
}
#citas section img {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 1.2rem;
	padding: 0.5rem 0.6rem;
}


#dialogo {
	display: none;
}
#dialogo.elegir,
#dialogo.mostrar {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 2;
}
#dialogo section {
	position: relative;
	width: 85%;
	max-width: 25rem;
	margin: 0 auto;
	box-shadow: 0 0 2rem rgba(0, 0, 0, 0.5);
	background-color: #fff;
	border-radius: 0.4rem;
	padding: 1.5rem;
	box-sizing: border-box;
}
#dialogo p {
	color: #222;
	margin-bottom: 1.5rem;
}
#dialogo article {
	background-color: #fccf2c;
	color: #555;
	text-align: center;
	border-radius: 0.5rem;
	padding: 0.5rem 0;
	font-weight: bold;
}
#dialogo:not(.elegir) article:first-of-type {
	display: none;
}
#dialogo.elegir article {
	display: inline-block;
	width: calc(50% - 0.75rem);
}
#dialogo.elegir article:last-child {
	margin-left: 1.5rem;
}


#inicio {
	display: none;
}
body.inicio #inicio {
	display: block;
	padding: 1rem 1.5rem 7rem 1.5rem;
	margin-bottom: 10rem;
	background-color: #fff;
}
#inicio img {
	display: block;
	margin: 1rem auto;
	width: 12rem;
	max-width: 80%;
}
#inicio input[type="text"],
#inicio input[type="password"],
#inicio input[type="submit"] {
	background-color: #eee;
	box-shadow: inset 0 0 4px #bbb;
	margin: 1rem 0;
	width: 100%;
	padding: 0.5rem 0.8rem;
	box-sizing: border-box;
	border-radius: 0.5rem;
}
#inicio input[type="submit"] {
	background-color: #fccf2c;
	box-shadow: none;
	text-align: center;
	color: #555;
	font-weight: bold;
}
#inicio input[type="submit"]:active {
	background-color: #eee;
	color: #999;
}


#menu {
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background-color: #fff;
	box-shadow: 0 1px 1px #ccc;
	z-index: 2;
}
#menu table {
	width: 100%;
	height: 3.6rem;
}
#menu td {
	position: relative;
	width: 4.2rem;
}
#menu td:first-child {
	width: auto;
	font-size: 1.6rem;
	line-height: 1.8rem;
	padding: 0 1.5rem;
	color: #666;
}
#menu img {
	display: block;
	margin: 0 auto;
	height: 1.6rem;
}


#notificacion {
	display: none;
}
#notificacion.notificar {
	display: block;
	position: fixed;
	bottom: 5%;
	left: 50%;
	white-space: nowrap;
	transform: translateX(-50%);
	z-index: 2;
	background-color: #555;
	color: #fccf2c;
	padding: 0.5rem 1.5rem;
	border-radius: 0.5rem;
	font-weight: bold;
	box-shadow: 0 0 8px #555;
}


#opciones {
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0);
	transition: visibility 0.6s, background-color 0.6s;
	z-index: 3;
}
#opciones.mostrar {
	visibility: visible;
	background-color: rgba(0, 0, 0, 0.4);
}
#opciones nav {
	position: fixed;
	top: 0;
	right: 100%;
	width: calc(100% - 3.6rem);
	height: 100%;
	background-color: #fff;
	color: #555;
	font-weight: bold;
	box-sizing: border-box;
	border-top-right-radius: 4rem;
	transition: right 0.6s;
	padding: 1rem;	
}
#opciones.mostrar nav {
	right: 3.6rem;
}
#opciones img {
	display: block;
	width: 8rem;
	margin: 1rem 1.5rem;
}
#opciones p {
	font-size: 1.2rem;
	line-height: 1.4rem;
	font-weight: bold;
}
#opciones p:last-child {
	position: absolute;
	color: #888;
	font-size: 1rem;
	line-height: 1.2rem;
	font-weight: normal;
	font-style: italic;
}
@media (orientation: portrait) {
	#opciones p {
		padding: 1rem 1.5rem;
	}
	#opciones p:last-child {
		left: 1rem;
		bottom: 1.5rem;
	}
}
@media (orientation: landscape) {
	#opciones p {
		padding: 0.5rem 1.5rem;
	}
	#opciones p:last-child {
		left: 1rem;
		bottom: 1.5rem;
	}
}


#paciente {
	display: none;
}
body.paciente #paciente {
	display: block;
	padding: 1rem 1.5rem 7rem 1.5rem;
	margin-bottom: 10rem;
	background-color: #fff;
}
#paciente h1,
#paciente h2 {
	font-size: 0.9rem;
	line-height: 1rem;
	text-align: center;
	color: #999;
	padding: 0.5rem 0;
}
#paciente h2 {
	padding: 0 0 0.5rem 0;
}
#paciente input[type="text"],
#paciente textarea,
#paciente input[type="button"],
#paciente input[type="submit"] {
	background-color: #eee;
	box-shadow: inset 0 0 4px #bbb;
	margin: 0.5rem 0;
	width: 100%;
	padding: 0.5rem 0.8rem;
	box-sizing: border-box;
	border-radius: 0.5rem;
}
#paciente input:nth-child(5),
#paciente input:nth-child(6),
#paciente input:nth-child(8),
#paciente input:nth-child(9) {
	width: calc(50% - 0.5rem);
	box-sizing: border-box;
}
#paciente input:nth-child(6),
#paciente input:nth-child(9) {
	margin-left: 1rem;
}
#paciente textarea {
	height: 9.6rem;
	display: block;
}
#paciente:not(.eliminable) h2,
#paciente:not(.eliminable) input[type="button"],
#paciente.eliminable div {
	display: none;
}
#paciente input[type="button"] {
	background-color: #eee;
	box-shadow: none;
	text-align: center;
	color: #999;
	font-weight: bold;
}
#paciente input[type="submit"] {
	background-color: #fccf2c;
	box-shadow: none;
	text-align: center;
	color: #555;
	font-weight: bold;
}
#paciente input[type="submit"]:active {
	background-color: #eee;
	color: #999;
}
#paciente section {
	display: none;
}
#paciente section.listar {
	display: block;
	position: relative;
	background-color: white;
	color: #555;
	box-shadow: 0 0 4px #ccc;
	z-index: 1;
	text-align: left;
}
#paciente section article {
	padding: 0.8rem;
	white-space: nowrap;
}
#paciente section article.cursor {
	background-color: #eee;
}
#paciente section p {
	padding: 0.6rem 0.8rem;
}
#paciente div {
	margin: 1rem 0;
}
#paciente label {
	display: block;
	text-align: center;
	margin: 0.25rem 0;
}
#paciente label input {
	display: none;
}
#paciente label span {
	display: block;
	padding: 0.5rem 0.8rem;
	font-weight: bold;
	color: #999;
}
#paciente label input:checked + span {
	background-color: #eee;
	border-radius: 0.5rem;
}


#pacientes {
	display: none;
}
body.pacientes #pacientes {
	display: block;
	margin-bottom: 10rem;
	background-color: #fff;
}
#pacientes form {
	position: relative;
	padding: 1.5rem 4.2rem 1.5rem 1.5rem;
}
#pacientes form input {
	background-color: #eee;
	box-shadow: inset 0 0 4px #bbb;
	width: 100%;
	padding: 0.5rem 0.8rem;
	box-sizing: border-box;
	border-radius: 0.5rem;
}
#pacientes form img {
	position: absolute;
	width: 2.4rem;
	right: 0;
	top: 0.5rem;
	padding: 0.9rem;
}
#pacientes section {
	display: block;
	color: #555;
	z-index: 2;
	border-top: solid 1px #ddd;
}
#pacientes section article {
	padding: 0.8rem 1.5rem;
	white-space: nowrap;
	border-bottom: solid 1px #ddd;
}
#pacientes section p {
	padding: 0.8rem 1.5rem;
	border-bottom: solid 1px #ddd;
}


