.cc-res-wrapper {
	max-width: 560px;
	margin: 0 auto;
	background: var(--cc-gray-light, #f4f6f8);
	border-radius: var(--cc-radius, 10px);
	padding: 20px;
}
@media (min-width: 700px) {
	.cc-res-wrapper { padding: 32px; }
}

.cc-res-step { margin-bottom: 22px; }
.cc-res-label { display: block; font-weight: 700; margin-bottom: 8px; color: var(--cc-blue-dark, #0d3f78); }
.cc-res-hint { font-size: .85rem; color: #777; margin-top: 6px; }

.cc-res-input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #d6dde3;
	border-radius: 8px;
	font-size: 1rem;
	margin-bottom: 12px;
	background: #fff;
}
.cc-res-input:focus { outline: 2px solid var(--cc-blue, #1565c0); }

.cc-res-cargando { color: #888; font-style: italic; }

.cc-res-mes { margin-bottom: 20px; }
.cc-res-mes-titulo {
	font-weight: 800;
	font-size: 1rem;
	color: var(--cc-blue-dark, #0d3f78);
	margin-bottom: 10px;
	text-transform: capitalize;
}

.cc-res-mes-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}
@media (min-width: 480px) {
	.cc-res-mes-grid { gap: 6px; }
}

.cc-res-mes-cabecera {
	text-align: center;
	font-size: .68rem;
	font-weight: 700;
	color: #8a96a3;
	text-transform: uppercase;
	padding-bottom: 4px;
}

.cc-res-mes-vacio { background: transparent; }

.cc-res-mes-dia {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	border: none;
	font-size: .85rem;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	background: #eef2f5;
	color: #aab3bc;
	transition: transform .15s ease, box-shadow .15s ease;
}

.cc-res-mes-dia-fuera {
	background: #f5f6f7;
	color: #c7ccd1;
	cursor: not-allowed;
}

.cc-res-mes-dia-libre {
	background: rgba(46,125,50,0.15);
	color: #2e7d32;
	box-shadow: inset 0 0 0 1.5px rgba(46,125,50,.4);
}
.cc-res-mes-dia-parcial {
	background: rgba(249,168,37,0.18);
	color: #b9790f;
	box-shadow: inset 0 0 0 1.5px rgba(249,168,37,.5);
}
.cc-res-mes-dia-lleno {
	background: rgba(198,40,40,0.12);
	color: #c62828;
	cursor: not-allowed;
	box-shadow: inset 0 0 0 1.5px rgba(198,40,40,.35);
}

.cc-res-mes-dia-libre:hover,
.cc-res-mes-dia-parcial:hover {
	transform: scale(1.08);
	box-shadow: 0 4px 10px rgba(0,0,0,.15);
}

.cc-res-mes-dia-activo {
	background: var(--cc-blue, #1565c0) !important;
	color: #fff !important;
	box-shadow: 0 0 0 3px rgba(21,101,192,.3) !important;
	transform: scale(1.05);
}

.cc-res-leyenda-dias { margin-top: 14px; flex-wrap: wrap; }
.cc-dot-amarillo { background: var(--cc-warning, #f9a825); }
.cc-res-barra {
	display: flex;
	width: 100%;
	height: 36px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid #d6dde3;
}
.cc-res-segmento { flex: 1; }
.cc-res-segmento.libre  { background: var(--cc-success, #2e7d32); opacity: .35; }
.cc-res-segmento.ocupado { background: var(--cc-danger, #c62828); }
.cc-res-segmento.parcial {
	background: linear-gradient(to top, var(--cc-danger, #c62828) var(--pct, 50%), var(--cc-success, #2e7d32) var(--pct, 50%));
	opacity: .85;
}

.cc-res-leyenda { display: flex; gap: 18px; margin-top: 10px; font-size: .85rem; color: #555; }
.cc-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; }
.cc-dot-verde { background: var(--cc-success, #2e7d32); }
.cc-dot-rojo { background: var(--cc-danger, #c62828); }

.cc-res-msg { font-weight: 600; margin-top: 12px; }
.cc-res-msg.ok { color: var(--cc-success, #2e7d32); }
.cc-res-msg.error { color: var(--cc-danger, #c62828); }

.cc-res-buscar-row { display: flex; flex-direction: column; gap: 10px; }
@media (min-width: 500px) {
	.cc-res-buscar-row { flex-direction: row; }
	.cc-res-buscar-row .cc-res-input { margin-bottom: 0; }
}

#cc-res-resultados table { width: 100%; margin-top: 16px; border-collapse: collapse; }
#cc-res-resultados th, #cc-res-resultados td { padding: 8px; border-bottom: 1px solid #ddd; font-size: .9rem; text-align: left; }
.cc-estado-pill { padding: 3px 10px; border-radius: 20px; font-size: .75rem; font-weight: 700; color: #fff; }
.cc-estado-pendiente { background: #f9a825; }
.cc-estado-confirmada { background: #2e7d32; }
.cc-estado-cancelada { background: #c62828; }
.cc-estado-completada { background: #1565c0; }
