.pagina-titulo { color: #fff; margin: 24px 0 18px; font-size: clamp(2.2rem, 6vw, 3.4rem); }
.panel { background: #fff; border-radius: 14px; padding: 24px; margin: 20px 0; }
.tabla-scroll { overflow-x: auto; }
.tabla-gestion { width: 100%; border-collapse: collapse; text-align: left; }
.tabla-gestion th, .tabla-gestion td { padding: 12px; border-bottom: 1px solid #ddd; vertical-align: middle; }
.tabla-gestion th { background: #eef3ee; color: #33493b; }
.acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 14px 0; }
.acciones form { margin: 0; }
.acciones a { white-space: nowrap; }
.formulario-gestion { display: grid; gap: 16px; max-width: 620px; }
.formulario-gestion label { display: block; font-weight: bold; margin-bottom: 6px; }
.formulario-gestion input:not([type=checkbox]), .formulario-gestion select, .formulario-gestion textarea { width: 100%; padding: 10px; border: 1px solid #aaa; border-radius: 4px; font: inherit; }
.mensaje-error { background: #ffe8e8; color: #8b1010; padding: 14px; border-radius: 5px; margin: 12px 0; }
.mensaje-exito { background: #e7f5e9; color: #185d29; padding: 14px; border-radius: 5px; margin: 12px 0; }
.resumen-reserva { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 18px 0; }
.resumen-reserva dt { color: #666; font-size: .9em; }
.resumen-reserva dd { margin: 0; }
@media(max-width: 600px) { .panel { padding: 16px; } .tabla-gestion th, .tabla-gestion td { padding: 9px; } }
.pagina-amplia { max-width: 1180px; }
.encabezado-pagina { color: white; padding: 24px 0 8px; }
.encabezado-pagina h1 { font-size: clamp(2.4rem, 7vw, 4rem); line-height: .95; margin: 8px 0 10px; }
.sobre-titulo { font-size: .74rem; letter-spacing: .14em; font-weight: bold; color: var(--halo); }
.filtros-catalogo { display: grid; grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); gap: 16px; align-items: end; }
.filtros-catalogo label { display: block; font-size: .88rem; font-weight: bold; margin-bottom: 6px; }
.filtros-catalogo input, .filtros-catalogo select { width: 100%; min-width: 0; font: inherit; padding: 10px; border: 1px solid #bac8c0; border-radius: 6px; background: white; color: #263c30; }
.filtros-catalogo .acciones { margin: 0; }
.catalogo-resumen { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin: 24px 0 16px; color: white; }
.catalogo-resumen a { color: var(--halo); }
.catalogo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.catalogo-card { border-radius: 14px; overflow: hidden; background: white; display: flex; flex-direction: column; }
.catalogo-card > img { width: 100%; height: 210px; object-fit: cover; }
.catalogo-cuerpo { padding: 22px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.catalogo-cuerpo .sobre-titulo { color: #357151; }
.catalogo-cuerpo h2 { font-size: 1.4rem; }
.catalogo-precio { color: #226342; font-size: 1.5rem; font-weight: bold; }
.catalogo-precio span { color: #666; font-size: .85rem; font-weight: normal; }
.caracteristicas { padding: 12px 0; list-style: none; display: flex; flex-wrap: wrap; gap: 7px; }
.caracteristicas li { padding: 4px 9px; background: #eef4f0; border-radius: 5px; font-size: .82rem; }
.catalogo-cuerpo .acciones { margin-top: auto; }
.pagina-amplia a:not(.btn):not(.turno):not(.catalogo-resumen a) { color: #216040; }
.metricas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 24px; }
.metrica { background: #fff; padding: 22px; border-radius: 14px; }
.metrica h2 { font-family: var(--fuente); font-size: .95rem; font-weight: normal; letter-spacing: 0; }
.metrica > strong { display: block; font-family: var(--fuente-titulo); font-size: 3rem; line-height: 1.2; color: #1d5a35; }
.metrica p { font-size: .83rem; color: #59665e; }
.metrica-destacada { background: #dceddf; }
.ayuda { color: #58655e; font-size: .88rem; margin: 16px 0 0; }
.estado-vacio { padding: 28px 12px; text-align: center; }
.estado-vacio p { margin: 12px 0; }
.agenda-dias { justify-content: space-between; padding: 16px 0 0; }
.tabla-agenda { margin: 20px 0; white-space: nowrap; }
.tabla-agenda caption { text-align: left; font-weight: bold; padding-bottom: 12px; }
.tabla-agenda th small { display: block; font-weight: normal; color: #58655e; }
.turno { display: block; text-align: center; padding: 9px 12px; border-radius: 6px; font-size: .85rem; text-decoration: none; }
.turno-libre { background: #e4f3e9; color: #165c35; border: 1px solid #afceb9; }
.turno-libre:hover { background: #cce7d5; }
.turno-ocupado { background: #fbe9d8; color: #7a4311; }
.turno-inactivo { background: #f0f0f0; color: #646464; }
@media(max-width: 760px) { .metricas { grid-template-columns: repeat(2, 1fr); } .filtros-catalogo { grid-template-columns: 1fr 1fr; } }
@media(max-width: 440px) { .metricas, .filtros-catalogo, .catalogo-grid { grid-template-columns: 1fr; } .metrica > strong { font-size: 2rem; } }

.catalogo-card, .catalogo-cuerpo { min-width: 0; overflow-wrap: anywhere; }
