:root{color-scheme:light dark;--fondo: light-dark(#f5f3ec, #111713);--fondo-tarjeta: light-dark(#fffefb, #1b231d);--fondo-hundido: light-dark(#e7e3d9, #252e27);--borde: light-dark(#ddd7c9, #364239);--borde-suave: light-dark(#ebe5da, #303a32);--texto: light-dark(#172018, #eef5ef);--texto-tenue: light-dark(#5c635c, #acb6ad);--verde: light-dark(#2f653c, #3d7d4d);--verde-suave: light-dark(#e4eee4, #2a3b2e);--verde-texto: light-dark(#244f2f, #a7d9b0);--entrada: light-dark(#12508f, #77b8ff);--salida: light-dark(#9e1f27, #ff8c92);--guarde: light-dark(#7a4e08, #efbd66);--pagado: light-dark(#1b5c2e, #76ce8a);--debe: light-dark(#82440f, #efad72);--alerta: light-dark(#9a4a06, #ffb057);--alerta-fondo: light-dark(#fff2e0, #3a2a17);--radio: 14px;--radio-chico: 11px;--tactil: 44px;--alto-nav: 62px;--seguro-abajo: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--fondo);color:var(--texto);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.45;overscroll-behavior-x:none}body{overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button,a,[role=button]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app{min-height:100dvh;display:flex;flex-direction:column;max-width:100%}.contenido{flex:1;padding:8px 14px calc(var(--alto-nav) + var(--seguro-abajo) + 16px);width:100%;margin:0 auto}.cabecera{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px 8px;background:var(--fondo);border-bottom:1px solid transparent}.cabecera h1{margin:0;font-size:1.05rem;font-weight:600}.cabecera .subtitulo{color:var(--texto-tenue);font-size:.85rem}.nav{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:6px 8px calc(6px + var(--seguro-abajo));background:var(--fondo-tarjeta);border-top:1px solid var(--borde)}.nav a{min-height:var(--tactil);display:grid;place-items:center;gap:2px;padding:4px 2px;border-radius:var(--radio-chico);color:var(--texto-tenue);text-decoration:none;font-size:.7rem}.nav a[aria-current=page]{background:var(--verde-suave);color:var(--verde-texto);font-weight:600}.nav .icono{font-size:1.25rem;line-height:1}.tarjeta{background:var(--fondo-tarjeta);border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden}.panel{background:var(--fondo-tarjeta);border:1px solid var(--borde);border-radius:var(--radio);padding:14px;margin-bottom:10px}.panel h2{margin:0 0 10px;font-size:.95rem;font-weight:600}.linea{display:flex;justify-content:space-between;gap:14px;padding:6px 0}.linea .etiqueta{color:var(--texto-tenue)}.linea .valor{text-align:right;font-variant-numeric:tabular-nums}.boton{min-height:var(--tactil);padding:10px 16px;border:0;border-radius:var(--radio-chico);background:var(--verde);color:#fff;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.boton:disabled{opacity:.55;cursor:not-allowed}.boton.secundario{background:transparent;color:inherit;border:1px solid var(--borde)}.boton.ancho{width:100%}.boton-icono{min-width:var(--tactil);min-height:var(--tactil);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--borde);border-radius:var(--radio-chico);background:var(--fondo-tarjeta);cursor:pointer;font-size:1.1rem}.campo{display:block;margin-bottom:12px}.campo>span{display:block;margin-bottom:4px;color:var(--texto-tenue);font-size:.85rem}.campo input,.campo select,.campo textarea{width:100%;min-height:var(--tactil);padding:10px 12px;border:1px solid var(--borde);border-radius:var(--radio-chico);background:var(--fondo-tarjeta)}.campo textarea{min-height:88px;resize:vertical}.fila-campos{display:grid;grid-template-columns:1fr 1fr;gap:10px}.segmento{display:flex;padding:3px;border-radius:var(--radio-chico);background:var(--fondo-hundido)}.segmento button{flex:1;min-height:38px;border:0;border-radius:9px;background:transparent;color:var(--texto-tenue);cursor:pointer;font-size:.9rem}.segmento button[aria-pressed=true]{background:var(--fondo-tarjeta);color:var(--texto);font-weight:600;box-shadow:0 1px 3px #0000001f}.aviso{padding:10px 12px;border-radius:var(--radio-chico);background:var(--alerta-fondo);color:var(--alerta);font-size:.9rem}.vacio,.cargando{padding:28px 16px;text-align:center;color:var(--texto-tenue)}.velo{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;background:light-dark(rgb(29 33 29 / .45),rgb(0 0 0 / .62))}.hoja{width:100%;max-height:92dvh;overflow-y:auto;padding:16px 16px calc(20px + var(--seguro-abajo));background:var(--fondo-tarjeta);border-radius:20px 20px 0 0;box-shadow:0 -12px 34px #0003}.hoja h2{margin:0 0 4px;font-size:1.1rem}.hoja .agarre{width:40px;height:4px;margin:0 auto 14px;border-radius:4px;background:var(--borde)}.acciones{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:16px}@media(min-width:720px){.contenido{max-width:960px;padding-bottom:24px}.cabecera{max-width:960px;margin:0 auto;width:100%}.app>*{order:2}.cabecera{order:1}.nav{order:1;position:static;display:flex;justify-content:flex-start;gap:4px;max-width:960px;width:100%;margin:0 auto;padding:0 14px 10px;background:transparent;border-top:0}.nav a{flex:none;grid-auto-flow:column;gap:7px;padding:8px 14px;font-size:.9rem}.nav .icono{font-size:1.05rem}.velo{align-items:center;justify-content:center;padding:24px}.hoja{max-width:520px;border-radius:var(--radio);padding-bottom:20px}}@media(min-width:1100px){.contenido,.cabecera,.nav{max-width:1100px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.fila-lista{width:100%;min-height:62px;display:flex;align-items:center;gap:12px;padding:9px 12px;border:0;border-bottom:1px solid var(--borde-suave);background:transparent;color:inherit;text-align:left;cursor:pointer}.fila-lista:last-child{border-bottom:0}.fila-lista:active{background:var(--fondo-hundido)}.fila-lista img{border-radius:10px;object-fit:cover;flex:none}.fila-lista .avatar{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--fondo-hundido);font-size:22px}.fila-lista .nombre-lista{display:flex;align-items:center;gap:5px;font-weight:600}.fila-lista .sub-lista{display:block;color:var(--texto-tenue);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boton-flotante{position:fixed;right:16px;bottom:calc(var(--alto-nav) + var(--seguro-abajo) + 16px);z-index:6;width:58px;height:58px;border:0;border-radius:50%;background:var(--verde);color:#fff;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 6px 18px #00000038;display:grid;place-items:center}.visualmente-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(min-width:720px){.boton-flotante{bottom:24px;right:24px}}.toma{width:100%;min-height:52px;display:flex;align-items:center;gap:12px;padding:8px 0;border:0;border-bottom:1px solid var(--borde-suave);background:transparent;color:inherit;text-align:left;cursor:pointer}.toma:last-of-type{border-bottom:0}.toma:disabled{cursor:default}.casilla-toma{width:28px;height:28px;flex:none;display:grid;place-items:center;border:2px solid var(--borde);border-radius:8px;font-weight:700}.casilla-toma.hecha{border-color:var(--pagado);background:var(--pagado);color:var(--fondo-tarjeta)}.toma-hecha{color:var(--texto-tenue);text-decoration:line-through}.dia-cabecera{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 2px 10px}.dia-titulo{font-size:1.15rem;font-weight:600}.dia-resumen{margin-top:2px;color:var(--texto-tenue);font-size:.85rem}.dia-pendiente{color:var(--debe);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.dia-pendiente.saldado{color:var(--pagado)}.controles-fecha{display:flex;align-items:center;gap:6px;margin-bottom:10px}.controles-fecha input[type=date]{flex:1;min-width:0;min-height:var(--tactil);padding:8px 10px;border:1px solid var(--borde);border-radius:var(--radio-chico);background:var(--fondo-tarjeta)}.cerrado-hoy{margin:0 0 10px;padding:9px 12px;border-radius:var(--radio-chico);background:var(--fondo-hundido);color:var(--texto-tenue);font-size:.9rem}.fila-perro{width:100%;min-height:60px;display:grid;grid-template-columns:minmax(0,1fr) 104px 92px;gap:8px;align-items:center;padding:8px 12px;border:0;border-bottom:1px solid var(--borde-suave);background:transparent;color:inherit;text-align:left;cursor:pointer}.fila-perro:last-child{border-bottom:0}.fila-perro:active{background:var(--fondo-hundido)}.fila-nombre{display:flex;align-items:center;gap:6px;font-weight:600;min-width:0}.fila-nombre .nombre{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fila-nota{margin-top:2px;color:var(--texto-tenue);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.senal-alerta{flex:none;color:var(--alerta);font-size:1rem;line-height:1}.senal-coche{flex:none;color:var(--texto-tenue);font-size:.95rem}.celda-movimiento{align-self:stretch;display:flex;align-items:center;padding-left:10px;border-left:1px solid var(--borde-suave);font-variant-numeric:tabular-nums}.movimiento{display:grid;grid-template-columns:18px minmax(0,1fr);gap:5px;align-items:baseline;font-weight:700}.movimiento .letra{font-size:1.05rem}.movimiento.entrada{color:var(--entrada)}.movimiento.salida{color:var(--salida)}.guarde{display:grid;gap:1px}.guarde .etiqueta-guarde{color:var(--guarde);font-weight:700;font-size:.82rem;letter-spacing:.02em}.guarde .horas{display:flex;flex-wrap:wrap;column-gap:7px;font-size:.8rem;font-weight:600;white-space:nowrap}.guarde .horas .e{color:var(--entrada)}.guarde .horas .s{color:var(--salida)}.fila-pago{text-align:right;font-weight:600;white-space:nowrap;font-size:.9rem;font-variant-numeric:tabular-nums}.fila-pago.pagado{color:var(--pagado)}.fila-pago.debe{color:var(--debe)}.fila-perro.cancelada{opacity:.55}.fila-perro.cancelada .fila-nombre .nombre{text-decoration:line-through}.semana{display:grid;gap:10px}.semana-dia .cabeza{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 12px;border-bottom:1px solid var(--borde)}.semana-dia .cabeza .fecha{font-weight:600}.semana-dia .cabeza .cuenta{color:var(--texto-tenue);font-size:.8rem}.semana-dia.cerrado .cabeza{background:var(--fondo-hundido)}@media(min-width:720px){.semana{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));align-items:start}.semana .fila-perro{grid-template-columns:minmax(0,1fr);gap:2px;min-height:52px}.semana .celda-movimiento{padding-left:0;border-left:0}.semana .fila-pago{text-align:left;font-size:.8rem}.semana-dia .cabeza{display:grid;gap:0}.semana-dia .cabeza .cuenta{font-size:.75rem}}.mes{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.mes .dia-semana{text-align:center;color:var(--texto-tenue);font-size:.7rem;padding-bottom:2px;text-transform:uppercase}.mes .casilla{min-height:52px;padding:5px 4px;border:1px solid var(--borde);border-radius:9px;background:var(--fondo-tarjeta);display:grid;align-content:start;gap:2px;cursor:pointer;color:inherit;text-align:left}.mes .casilla .numero{font-size:.75rem;color:var(--texto-tenue)}.mes .casilla .perros{font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums}.mes .casilla.vacia{border-style:dashed;opacity:.7}.mes .casilla.cerrado{background:var(--fondo-hundido)}.mes .casilla.hoy{border-color:var(--verde);border-width:2px}.mes .hueco{min-height:52px}.linea .valor{white-space:nowrap}.movimiento .sin-hora{font-size:.75rem;font-weight:500;opacity:.7}.buscador{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:8px 0 10px;background:var(--fondo)}.buscador .campo{flex:1;min-width:0}.cuenta-perros{margin:0;color:var(--texto-tenue);font-size:.85rem;white-space:nowrap}
