:root{--fondo:#eef0e6;--superficie:#fff;--superficie-alta:#f4f5ee;--texto:#111;--texto-tenue:#565a48;--acento:#ff5b4d;--exito:#1a9c53;--borde:#111;--radio:0px;--espacio:12px;--sombra:4px 4px 0 var(--borde);--sombra-chica:2px 2px 0 var(--borde);--fuente-display:"Unbounded", system-ui, sans-serif;--fuente-cuerpo:"IBM Plex Sans", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--fondo);color:var(--texto);font-family:var(--fuente-cuerpo);-webkit-font-smoothing:antialiased;margin:0}.app{max-width:640px;padding:var(--espacio);margin:0 auto;padding-bottom:88px}h1{font-family:var(--fuente-display);text-transform:uppercase;margin:4px 0 var(--espacio);letter-spacing:-.01em;font-size:1.6rem;font-weight:800}h2{font-family:var(--fuente-display);text-transform:uppercase;letter-spacing:.08em;color:var(--texto-tenue);margin:24px 0 10px;font-size:.72rem;font-weight:700}.tabbar{background:var(--superficie);border-top:3px solid var(--borde);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--texto-tenue);font-family:var(--fuente-cuerpo);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;background:0 0;border:none;flex:1;padding:14px 0;font-size:.8rem;font-weight:600}.tabbar button[aria-current=page]{color:var(--acento);position:relative}.tabbar button[aria-current=page]:before{content:"";background:var(--acento);width:28px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%,-3px)}.card{background:var(--superficie);border:2.5px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:var(--espacio);margin-bottom:12px}.vacio{color:var(--texto-tenue);font-size:.9rem}.fila{justify-content:space-between;align-items:center;gap:var(--espacio);text-align:left;width:100%;display:flex}.fila-boton{color:var(--texto);font:inherit;cursor:pointer;transition:transform 80ms,box-shadow 80ms}.fila-boton:active{box-shadow:none;transform:translate(2px,2px)}.fila.completa{border-color:var(--borde);background:#ffe14d}.fila-texto{align-items:center;gap:8px;display:flex}.fila-nombre{font-size:.98rem;font-weight:500}.racha{background:var(--acento);color:#fff;border:2px solid var(--borde);border-radius:var(--radio);padding:2px 7px;font-size:.72rem;font-weight:700}.check{color:var(--borde);width:1.2rem;font-size:1.3rem;font-weight:800}.contador{align-items:center;gap:10px;display:flex}.contador button{border:2.5px solid var(--borde);background:var(--superficie);width:32px;height:32px;color:var(--texto);box-shadow:var(--sombra-chica);cursor:pointer;border-radius:50%;font-size:1.1rem;font-weight:700;transition:transform 80ms,box-shadow 80ms}.contador button:active{box-shadow:none;transform:translate(1.5px,1.5px)}.progreso{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-weight:700}.compacta .card{box-shadow:none;border-width:1.5px}.compacta .fila{padding:6px 2px}.compacta .fila-nombre{color:var(--texto-tenue);font-size:.86rem;font-weight:400}.enlace{color:var(--texto-tenue);text-underline-offset:3px;padding:var(--espacio) 0;cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:600;text-decoration:underline}.formulario{flex-direction:column;gap:6px;display:flex}.formulario label{font-family:var(--fuente-display);text-transform:uppercase;letter-spacing:.05em;color:var(--texto-tenue);margin-top:6px;font-size:.68rem;font-weight:700}.formulario input[type=text],.formulario input,.formulario select{background:var(--superficie);border:2.5px solid var(--borde);border-radius:var(--radio);color:var(--texto);font-family:var(--fuente-cuerpo);padding:10px;font-size:1rem}.dias{border:2.5px solid var(--borde);border-radius:var(--radio);flex-wrap:wrap;gap:10px;margin:8px 0;padding:10px;display:flex}.dias legend{font-family:var(--fuente-display);text-transform:uppercase;letter-spacing:.05em;color:var(--texto-tenue);padding:0 4px;font-size:.68rem;font-weight:700}.dias label{color:var(--texto);align-items:center;gap:4px;font-size:.85rem;font-weight:600;display:flex}.aviso{color:#c81e3a;margin:4px 0;font-size:.85rem;font-weight:700}.acciones{gap:10px;margin-top:10px;display:flex}.acciones button{border-radius:var(--radio);border:2.5px solid var(--borde);background:var(--superficie);color:var(--texto);font-family:var(--fuente-cuerpo);box-shadow:var(--sombra-chica);cursor:pointer;flex:1;padding:12px;font-size:.95rem;font-weight:600;transition:transform 80ms,box-shadow 80ms}.acciones button:active{box-shadow:none;transform:translate(2px,2px)}.acciones button[type=submit]{background:var(--acento);border-color:var(--borde);color:#fff}.acciones-fila{gap:6px;display:flex}.acciones-fila button{background:var(--superficie);border:2px solid var(--borde);color:var(--texto);border-radius:var(--radio);font-family:var(--fuente-cuerpo);cursor:pointer;padding:6px 10px;font-size:.78rem;font-weight:600;transition:transform 80ms}.acciones-fila button:active{transform:translate(1.5px,1.5px)}.principal{border-radius:var(--radio);border:3px dashed var(--borde);width:100%;color:var(--acento);font-family:var(--fuente-display);text-transform:uppercase;letter-spacing:.02em;cursor:pointer;background:0 0;padding:14px;font-size:.85rem;font-weight:700}.boton-archivo{text-align:center;border-radius:var(--radio);border:2.5px solid var(--borde);background:var(--superficie);color:var(--texto);box-shadow:var(--sombra-chica);cursor:pointer;flex:1;padding:12px;font-size:.95rem;font-weight:600}.boton-archivo input{display:none}.heatmap{padding:var(--espacio) 0;grid-template-rows:repeat(7,14px);gap:3px;display:grid;overflow-x:auto}.celda{border:1.5px solid var(--borde);background:var(--superficie-alta);cursor:pointer;border-radius:0;width:14px;height:14px;padding:0}.celda.completo{background:var(--exito)}.celda.pendiente{background:#cfd2bf}.celda.libre{cursor:pointer;background:0 0;border-color:#c7c9ba}.celda.hueco{cursor:default;background:0 0;border:none}.estadisticas{text-align:center;justify-content:space-around;display:flex}.estadisticas .dato{font-family:var(--fuente-display);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;display:block}.estadisticas .etiqueta{color:var(--texto-tenue);font-size:.72rem;font-weight:600}.banner{background:var(--superficie);border-radius:var(--radio);color:#c81e3a;padding:var(--espacio);margin-bottom:var(--espacio);border:3px solid #c81e3a;font-size:.85rem;font-weight:600;box-shadow:4px 4px #c81e3a}.fila-historial{flex-direction:column;gap:6px;display:flex}.enlace-habito{color:var(--texto);font-family:var(--fuente-display);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:.95rem;font-weight:700;display:flex}.grafica-progreso svg{width:100%;height:auto;display:block}.grafica-eje{stroke:var(--borde);stroke-width:1.5px}.grafica-etiqueta{fill:var(--texto-tenue);font-size:9px;font-weight:600}.grafica-ahora{stroke:var(--texto-tenue);stroke-width:1.5px;stroke-dasharray:3 3}.grafica-linea{stroke:var(--exito);stroke-width:2.5px;fill:none;stroke-linejoin:round;stroke-linecap:round}.grafica-proyeccion{stroke:var(--exito);stroke-width:2.5px;stroke-dasharray:2 3;opacity:.4}.grafica-punto{fill:var(--acento);stroke:var(--superficie);stroke-width:2px}.grafica-valor{fill:var(--texto);font-family:var(--fuente-display);font-size:12px;font-weight:700}
