:root{--fondo:#fbf7f4;--superficie:#fff;--texto:#2b2326;--suave:#7a6e72;--acento:#9c3d62;--acento-claro:#f6e9ee;--borde:#e8dfe2;--libre:#2f7d4f;--ocupado:#b3423a;--whatsapp:#1f9d55;--radio:12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--fondo);color:var(--texto);margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit}h1,h2,.marca{font-family:Georgia,Times New Roman,serif}.cabecera{border-bottom:1px solid var(--borde);background:var(--superficie);text-align:center;padding:14px 16px}.marca{letter-spacing:.04em;color:var(--acento);font-size:24px;text-decoration:none}.contenedor{max-width:1000px;margin:0 auto;padding:16px 16px 48px}h1{color:var(--acento);margin:8px 0 4px;font-size:26px}.sub{color:var(--suave);margin:0 0 16px;font-size:15px}label{color:var(--suave);margin-bottom:3px;font-size:13px;display:block}input,select,textarea{border:1px solid var(--borde);background:var(--fondo);width:100%;color:var(--texto);font:inherit;border-radius:8px;padding:9px 10px;font-size:16px}textarea{resize:vertical;min-height:70px}input[type=color]{height:42px;padding:2px}input[type=checkbox]{width:auto}.boton{font:inherit;border:1px solid var(--acento);background:var(--acento);color:#fff;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:15px;text-decoration:none;display:inline-flex}.boton:disabled{opacity:.55;cursor:default}.boton.secundario{color:var(--acento);background:0 0}.boton.peligro{color:var(--ocupado);border-color:var(--ocupado);background:0 0}.boton.whatsapp{background:var(--whatsapp);border-color:var(--whatsapp);width:100%;padding:12px 18px;font-size:17px}.boton.chico{padding:5px 10px;font-size:13px}.filtros{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:10px;padding:12px;display:grid}.resumen{color:var(--suave);margin:14px 2px 0;font-size:14px}.grilla{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:12px;display:grid}@media (min-width:640px){.grilla{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.tarjeta:hover{border-color:var(--acento)}.imagen{aspect-ratio:2/3;background-position:top;background-size:cover;position:relative}.imagen img{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.imagen .codigo{color:var(--texto);letter-spacing:.05em;background:#ffffffeb;border-radius:6px;padding:3px 8px;font-size:13px;font-weight:700;position:absolute;bottom:8px;left:8px}.tarjeta .info{padding:10px}.tarjeta .nombre{font-size:15px;font-weight:600;line-height:1.3}.estado{border:1px solid;border-radius:99px;margin-top:6px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.estado.libre{color:var(--libre)}.estado.ocupado{color:var(--ocupado)}.vacio{text-align:center;color:var(--suave);padding:40px 0}.ficha{gap:20px;margin-top:8px;display:grid}@media (min-width:760px){.ficha{grid-template-columns:1fr 1fr;align-items:start}}.ficha .imagen{border-radius:var(--radio);border:1px solid var(--borde);overflow:hidden}.ficha h1{margin-top:0}.ficha .codigo-grande{letter-spacing:.08em;color:var(--suave);font-weight:700}.panel{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);margin-top:14px;padding:14px}.panel h2{margin:0 0 10px;font-size:18px}.dos{grid-template-columns:1fr 1fr;gap:10px;display:grid}.aviso{border-radius:8px;margin:12px 0;padding:10px 12px;font-weight:600}.aviso.libre{color:var(--libre);background:#e7f4ec}.aviso.ocupado{color:var(--ocupado);background:#fbeceb}.lista-fechas{margin:0;padding:0;list-style:none}.lista-fechas li{border-bottom:1px solid var(--borde);padding:6px 0;font-size:15px}.lista-fechas li:last-child{border-bottom:0}.volver{color:var(--acento);margin-bottom:8px;font-size:15px;text-decoration:none;display:inline-block}.barra-admin{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.acciones{flex-wrap:wrap;gap:8px;display:flex}.fila-admin{background:var(--superficie);border:1px solid var(--borde);border-radius:10px;grid-template-columns:auto 56px 1fr auto;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;display:grid}.fila-admin .mini{background-position:top;background-size:cover;border-radius:6px;width:56px;height:72px}.fila-admin .oculto{color:var(--ocupado);font-size:12px}.modal{z-index:20;background:#00000080;justify-content:center;align-items:flex-start;padding:16px 12px;display:flex;position:fixed;inset:0;overflow:auto}.caja{background:var(--superficie);border-radius:14px;width:100%;max-width:560px;padding:16px}.caja h2{color:var(--acento);margin-top:0}.campo{margin-bottom:12px}.error{color:var(--ocupado);margin:8px 0;font-size:14px}.ok{color:var(--libre);margin:8px 0;font-size:14px}.login{max-width:360px;margin:40px auto}.galeria{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.galeria::-webkit-scrollbar{display:none}.galeria img{scroll-snap-align:start;flex:0 0 100%}.miniaturas{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.miniaturas button{cursor:pointer;opacity:.65;background-position:top;background-size:cover;border:2px solid #0000;border-radius:6px;width:52px;height:68px;padding:0}.miniaturas button.activa{border-color:var(--acento);opacity:1}.fotos-admin{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.foto-admin{text-align:center;width:96px;font-size:12px}.foto-admin img{object-fit:cover;object-position:center top;border:1px solid var(--borde);border-radius:8px;width:96px;height:128px;display:block}.foto-admin .mover{justify-content:space-between;margin-top:4px;display:flex}.foto-admin .mover button{border:1px solid var(--borde);cursor:pointer;color:var(--texto);background:0 0;border-radius:6px;padding:2px 8px;font-size:13px}.foto-admin .principal{color:var(--acento);font-weight:600}
