:root{--bg: #f3f7f6;--surface: #ffffff;--surface-2: #edf4f2;--borde: #d5e3df;--text: #19332f;--muted: #596d68;--ok: #0f7d55;--warn: #8a5a18;--danger: #c54855;--primary: #176b63;--primary-soft: #e0f1ed;--radius: 16px}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#e8f2ef 0,var(--bg) 250px);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.publica{max-width:1040px;margin:0 auto;padding:28px 22px 48px;color:var(--text)}.hero-publico{padding:clamp(48px,10vw,110px) clamp(12px,6vw,72px);border-radius:28px;background:linear-gradient(135deg,#e0f1ed,#fff 58%,#eef6f3);box-shadow:0 18px 48px #234b441a}.eyebrow{color:var(--primary);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}.hero-publico h1{max-width:720px;font-size:clamp(2.4rem,6vw,5rem);line-height:1.03;margin:18px 0}.hero-publico p{max-width:630px;font-size:1.15rem;color:var(--muted);line-height:1.65}.publica-acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.publica-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.publica-grid article,.publica-cta,.legal article{background:var(--surface);border:1px solid var(--borde);border-radius:var(--radius);padding:26px;box-shadow:0 8px 24px #234b440f}.publica-grid span{color:var(--primary);font-weight:800}.publica-grid h2{margin:12px 0 8px}.publica-grid p,.legal p{color:var(--muted);line-height:1.65}.publica-cta{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.publica-cta h2{margin:0}.publica-marca{display:inline-block;color:var(--primary);font-weight:800;margin-bottom:22px;text-decoration:none}.legal{max-width:820px}.legal article h1{font-size:clamp(2rem,5vw,3.5rem);margin:0 0 28px}.legal article h2{margin-top:28px}.legal a,.publica a{color:var(--primary)}.publica a.btn-primario,.publica a.btn-primario:visited,.publica a.btn-primario:hover{color:#fff}.publica-pie{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:28px 4px 0;color:var(--muted);font-size:.9rem}.publica-pie span:last-child{display:flex;gap:16px;flex-wrap:wrap}@media(max-width:650px){.publica-grid{grid-template-columns:1fr}.publica-cta{display:block}.publica-cta .btn{margin-top:14px}}.skip-link{position:absolute;left:-9999px;top:8px;z-index:9999;background:#fff;color:#19332f;padding:8px 12px;border:2px solid var(--primary);border-radius:8px}.skip-link:focus{left:8px}.btn:focus-visible,.tab:focus-visible,.chip:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1d5fa8;outline-offset:2px}#root{min-height:100dvh}.app{max-width:700px;margin:0 auto;padding:24px 18px 96px}.formulario-cuenta{display:grid;gap:.8rem;max-width:32rem}h1{font-size:1.6rem;letter-spacing:-.02em;margin:0}h2{font-size:1rem;margin:0 0 6px}.muted{color:var(--muted);font-size:.85rem;margin:4px 0 0}.cabecera{margin-bottom:20px;padding:2px 2px 0}.controles{display:flex;flex-direction:column;gap:8px}.buscador{background:var(--surface);color:var(--text);border:1px solid var(--borde);border-radius:13px;padding:13px 14px;box-shadow:0 3px 14px #24544b0f;font:inherit;width:100%}.buscador:focus{outline:2px solid #3b82f6;outline-offset:1px}.buscador::placeholder{color:var(--muted)}.conmutador{display:flex;gap:6px}.grupo{margin-bottom:4px}.grupo-cabecera{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;border-bottom:1px solid var(--borde);color:var(--muted);font:inherit;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding:10px 2px;margin-bottom:8px;cursor:pointer}.grupo-cabecera:hover{color:var(--text)}.grupo-flecha{font-size:.7rem;width:10px}.grupo-nombre{flex:1;text-align:left}.grupo-resumen{text-transform:none;letter-spacing:0;color:var(--text);font-weight:600}.lista{display:flex;flex-direction:column;gap:18px}.grupo-titulo{display:flex;align-items:center;gap:8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.contador{background:var(--surface-2);border-radius:999px;padding:1px 8px;font-size:.75rem}.tarjeta{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;width:100%;text-align:left;background:var(--surface);color:inherit;border:1px solid var(--borde);border-left:4px solid var(--borde);border-radius:var(--radius);padding:15px;margin-bottom:8px;box-shadow:0 5px 16px #24544b12;font:inherit;cursor:pointer}.tarjeta:active{transform:scale(.995)}.tarjeta.nivel-vencido{border-left-color:var(--danger);background:#fff1f2}.tarjeta.nivel-rojo{border-left-color:var(--danger)}.tarjeta.nivel-amarillo{border-left-color:var(--warn)}.tarjeta.nivel-verde{border-left-color:var(--ok)}.tarjeta-icono{font-size:1.4rem}.tarjeta-cuerpo{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.tarjeta-nombre{font-weight:600;overflow-wrap:anywhere}.tarjeta-meta,.tarjeta-km{color:var(--muted);font-size:.78rem}.tarjeta-principal{display:flex;align-items:center;gap:12px;flex:1 1 100%;min-width:0;width:100%;padding:0;background:none;color:inherit;border:0;text-align:left;font:inherit;cursor:pointer}.tarjeta-enlace{color:var(--primary);font-size:.76rem}.tarjeta-acciones{display:flex;flex-wrap:wrap;gap:6px;width:100%;justify-content:flex-end}.btn-renovar{color:#12734e;background:#effaf4;border-color:#98d5bb}.btn-renovar:hover{border-color:var(--ok)}.badge{font-size:.72rem;font-weight:600;padding:4px 8px;border-radius:999px;white-space:nowrap}.badge-vencido{background:var(--danger);color:#fff}.badge-rojo{background:#fde8ea;color:#a52f3b}.badge-amarillo{background:#fff3d6;color:#8c5d13}.badge-verde{background:#dff5e9;color:#12734e}.badge-avisos{background:#e2edfb;color:#285b91}.bandeja{background:var(--surface);border:1px solid var(--borde);border-radius:var(--radius);padding:14px;box-shadow:0 5px 16px #24544b0f}.bandeja .tarjeta{background:#f8fbfa;margin-bottom:6px;box-shadow:none}.bandeja .tarjeta:last-child{margin-bottom:0}.tarjeta.aviso-vencido{border-left:4px solid var(--danger)}.tarjeta.aviso-proximo{border-left:4px solid #1d5fa8}.sin-avisos{background:var(--surface);border:1px solid var(--borde);border-radius:var(--radius);padding:10px 12px;margin:0;font-size:.82rem;color:var(--muted)}.vacio{text-align:center;padding:52px 16px;color:var(--muted)}.vacio-icono{font-size:2.5rem;margin:0}.vacio h2{color:var(--text);margin-top:12px}.vacio .btn{margin-top:14px}.onboarding{text-align:center;padding:38px 12px}.onboarding-icono{font-size:3.5rem;margin:0 0 12px}.onboarding h2{color:var(--text);font-size:1.35rem;line-height:1.25}.onboarding>.muted{max-width:420px;margin:8px auto 0}.onboarding-pasos{display:flex;flex-direction:column;gap:8px;max-width:440px;margin:24px auto;text-align:left}.onboarding-pasos p{display:flex;align-items:flex-start;gap:12px;background:var(--surface);border:1px solid var(--borde);border-radius:var(--radius);padding:12px;margin:0}.onboarding-pasos p>span:first-child{font-size:1.35rem}.onboarding-pasos strong{color:var(--text)}.onboarding-acciones{justify-content:center}.onboarding-nota{margin-top:18px}.ajustes{display:flex;flex-direction:column;gap:12px}.panel{background:var(--surface);border:1px solid var(--borde);border-radius:var(--radius);padding:18px;box-shadow:0 5px 18px #24544b0f}.botones{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--borde);border-radius:10px;padding:10px 14px;font:inherit;cursor:pointer}.btn:hover{border-color:var(--muted)}.btn-peligro{background:#fff0f1;border-color:#e5a8ae;color:#a52f3b}.aviso{background:var(--surface-2);border-radius:8px;padding:11px 13px;font-size:.85rem;margin:0}.formulario{display:flex;flex-direction:column;gap:14px}.campo{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;border:0}.campo>span,.campo>legend{font-size:.8rem;color:var(--muted);padding:0}.campo input[type=text],.campo input[type=number],.campo input[type=date],.campo input[type=time],.campo input[type=url],.campo select,.campo textarea{background:var(--surface);color:var(--text);border:1px solid var(--borde);border-radius:11px;padding:12px 13px;font:inherit;width:100%}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid #3b82f6;outline-offset:1px;border-color:#3b82f6}.campo textarea{resize:vertical}.bloque-km{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--borde);border-left:3px solid #d69e2e;border-radius:10px;padding:12px}.campo-fila{flex-direction:row;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--borde);border-radius:10px;padding:12px}.campo-fila input{width:18px;height:18px;accent-color:#3b82f6}.campo-fila span{font-size:.9rem;color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--surface);color:var(--muted);border:1px solid var(--borde);border-radius:999px;padding:7px 12px;font:inherit;font-size:.8rem;cursor:pointer}.chip-activo{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.fila{display:flex;gap:8px;align-items:center}.fila input{flex:1}.fila-horas{display:flex;gap:10px;margin-top:10px}.fila-horas .campo{flex:1}.aviso-franja{background:#e7f1fb;border:1px solid #b9d1eb;border-radius:8px;padding:8px 10px;margin:0 0 8px;font-size:.78rem;color:#315d87}.acciones{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.btn-primario{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn-primario:hover{background:#12554e;border-color:#12554e}.aviso-error{background:#fff0f1;color:#a52f3b}.lista-categorias{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.fila-categoria{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--surface-2);border-radius:8px;padding:10px 12px;font-size:.88rem}.fila-categoria input{flex:1;min-width:140px;background:var(--surface);color:var(--text);border:1px solid var(--borde);border-radius:8px;padding:8px 10px;font:inherit}.categoria-nombre{flex:1}.fila-acciones{display:flex;gap:6px}.etiqueta-fija{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.btn-mini{padding:5px 10px;font-size:.78rem}.nueva-categoria{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--borde)}.nueva-categoria input[type=text]{flex:1;min-width:180px;background:var(--surface-2);color:var(--text);border:1px solid var(--borde);border-radius:8px;padding:10px 12px;font:inherit}.selector-emojis{display:flex;flex-wrap:wrap;gap:4px}.emoji{background:var(--surface);border:1px solid var(--borde);border-radius:8px;font-size:1rem;line-height:1;padding:6px 7px;cursor:pointer}.emoji-activo{border-color:var(--primary);background:var(--primary-soft)}.barra{position:fixed;bottom:0;left:0;right:0;display:flex;max-width:700px;margin:0 auto;background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--borde);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--muted);font:inherit;font-size:.72rem;padding:8px 4px;border-radius:8px;cursor:pointer}.tab span{font-size:1.2rem}.tab-activa{color:var(--primary);background:var(--primary-soft)}@media(max-width:480px){.app{padding:18px 12px 94px}h1{font-size:1.45rem}.tarjeta{padding:13px;gap:10px}.tarjeta-principal{gap:10px}.tarjeta-acciones{justify-content:stretch}.tarjeta-acciones .btn{flex:1 1 auto}.panel{padding:15px}}
