:root{--bg: #EDF1EE;--surface: #FFFFFF;--surface2: #F6F8F6;--ink: #17302A;--ink2: #54685F;--line: #D9E1DC;--brand: #0D5C4D;--brand-dk: #0A4A3E;--brand-bg: #E4EFEB;--amber: #E89B0C;--amber-dk: #8F6000;--amber-bg: #FCF3DE;--ok: #1D7F3F;--ok-bg: #E4F3E9;--bad: #C0392B;--bad-bg: #FBE9E6;--agua: #1B6CA8;--agua-bg: #E6F1F8;--cafe: #7A4A26;--cafe-bg: #F4ECE3}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Public Sans,system-ui,-apple-system,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Barlow Condensed,Arial Narrow,sans-serif;margin:0;line-height:1.1}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:6px}.app{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--surface2);display:flex;flex-direction:column}.cabecera{background:var(--brand);color:#f2f7f5;padding:1rem 1rem .85rem;border-bottom:4px solid transparent;border-image:repeating-linear-gradient(-45deg,var(--amber) 0 10px,var(--brand) 10px 20px) 4}.cabecera .hola{font-size:.82rem;opacity:.88;display:flex;justify-content:space-between;align-items:center}.cabecera .hola button{background:none;border:1px solid rgba(255,255,255,.35);color:#ddebe6;border-radius:999px;padding:.15rem .6rem;font-size:.72rem;font-weight:600}.cabecera h1{font-size:1.6rem;font-weight:600;color:#fff;margin-top:.1rem}.cabecera .contexto{font-size:.76rem;opacity:.85;margin-top:.15rem}.cabecera .volver{background:none;border:none;color:#f2f7f5;font-weight:600;font-size:.8rem;padding:0;margin-bottom:.25rem}.cuerpo{padding:.9rem .8rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;flex:1}.progreso{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;font-size:.8rem;color:var(--ink2)}.progreso b{color:var(--ink)}.barra{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:.4rem}.barra i{display:block;height:100%;background:var(--ok);border-radius:99px;transition:width .4s ease}.seccion{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);margin:.35rem .2rem 0}.tarea{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;display:flex;gap:.6rem;align-items:flex-start;text-align:left;width:100%}.tarea .nombre{font-weight:600;font-size:.89rem;line-height:1.3}.tarea .meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem;align-items:center}.tarea .flecha{align-self:center;color:var(--ink2)}.tarea .cuerpo-t{flex:1;min-width:0}.tarea.hecha{opacity:.6}.tarea.hecha .nombre{text-decoration:line-through}.tarea.urgente{border:1.5px solid var(--amber);background:var(--amber-bg)}.chip{font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.14rem .5rem;border-radius:999px;white-space:nowrap}.chip.estacion{background:var(--brand-bg);color:var(--brand-dk)}.chip.cafeteria{background:var(--cafe-bg);color:var(--cafe)}.chip.lavado{background:var(--agua-bg);color:var(--agua)}.chip.seguridad{background:var(--amber-bg);color:var(--amber-dk)}.chip.neutro{background:var(--surface2);color:var(--ink2);border:1px solid var(--line)}.chip.urg{background:var(--bad);color:#fff}.chip.okc{background:var(--ok-bg);color:var(--ok)}.chip.inc{background:var(--bad-bg);color:var(--bad)}.tarjeta{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem}.tarjeta b{font-size:.8rem}.tarjeta p{margin:.25rem 0 0;font-size:.8rem;color:var(--ink2)}.btn{border:none;border-radius:10px;padding:.75rem 1rem;font-weight:700;font-size:.95rem;width:100%}.btn.primario{background:var(--brand);color:#fff}.btn.primario:disabled{background:#b9c8c2;color:#5f736b;cursor:not-allowed}.btn.secundario{background:var(--surface);border:1.5px solid var(--brand);color:var(--brand-dk)}.btn.fantasma{background:none;color:var(--bad);font-weight:600;font-size:.84rem;width:auto;align-self:center;padding:.3rem .6rem;border:none}.aviso{font-size:.78rem;border-radius:8px;padding:.5rem .65rem}.aviso.candado{color:var(--amber-dk);background:var(--amber-bg);border:1px solid #EDD9A8}.aviso.listo{color:var(--ok);background:var(--ok-bg);border:1px solid #BFDCC8}.aviso.error{color:var(--bad);background:var(--bad-bg);border:1px solid #EBC4BD}.campo{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:600}.campo input,.campo select,.campo textarea{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:8px;padding:.6rem .65rem;background:var(--surface);color:var(--ink);width:100%}.previa{border-radius:10px;max-width:100%;display:block}.previa-pie{font-size:.72rem;color:var(--ink2);margin-top:.3rem}.login{min-height:100dvh;display:grid;place-items:center;padding:1rem;background:var(--brand-dk)}.login .caja{width:min(380px,100%);background:var(--surface);border-radius:16px;padding:1.6rem 1.4rem;display:flex;flex-direction:column;gap:.8rem}.login .marca{text-align:center}.login .marca h1{font-size:2.2rem;color:var(--brand-dk);letter-spacing:.04em}.login .marca p{margin:.2rem 0 0;font-size:.8rem;color:var(--ink2)}.app.ancha{max-width:1100px;background:var(--bg)}.panel-cuerpo{max-width:1100px}.panel-nav{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.panel-nav button{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:.4rem .85rem;font-size:.82rem;font-weight:600;color:var(--ink2)}.panel-nav button.activa{border-color:var(--brand);background:var(--brand);color:#fff}.panel-nav input[type=date]{margin-left:auto;font:inherit;font-size:.82rem;border:1px solid var(--line);border-radius:8px;padding:.35rem .5rem;background:var(--surface);color:var(--ink)}.volver-panel{padding:.5rem .8rem 0}.volver-panel button{background:none;border:none;color:var(--brand-dk);font-weight:700;font-size:.82rem;padding:0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem}.kpi .valor{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}.kpi .etiq{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin-top:.2rem}.kpi.ok .valor{color:var(--ok)}.kpi.mal .valor{color:var(--bad)}.kpi.aviso .valor{color:var(--amber-dk)}.fila-carga{display:grid;grid-template-columns:5rem 1fr 3.6rem;gap:.5rem;align-items:center;font-size:.8rem;margin-bottom:.35rem}.fila-carga .track{height:11px;background:var(--surface2);border:1px solid var(--line);border-radius:99px;overflow:hidden}.fila-carga .track i{display:block;height:100%;background:var(--brand);border-radius:99px}.fila-carga .min{text-align:right;color:var(--ink2);font-variant-numeric:tabular-nums}.evid-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;margin-top:.5rem}.evid-rejilla figure{margin:0}.evid-rejilla img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.evid-rejilla figcaption{font-size:.68rem;color:var(--ink2);margin-top:.25rem;line-height:1.3}.acciones-linea{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.bot{border:none;border-radius:8px;padding:.5rem .85rem;font-weight:600;font-size:.83rem}.bot.primario{background:var(--brand);color:#fff}.bot.primario:disabled{background:#b9c8c2}.mini{font-size:.74rem;color:var(--ink2)}.avi-txt{color:var(--amber-dk);font-weight:700}.turno-titulo{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-dk);background:var(--brand-bg);border-radius:6px;padding:.25rem .5rem;margin-bottom:.5rem}.persona-fila{display:grid;grid-template-columns:7.5rem 1fr;gap:.6rem;padding:.45rem 0;border-top:1px solid var(--line);align-items:start}.persona-fila:first-of-type{border-top:none}.persona-nombre b{font-size:.84rem;display:block}.chips-celda{display:flex;flex-wrap:wrap;gap:.3rem}.chip-t{font-size:.72rem;border-radius:7px;padding:.22rem .5rem;border:1px solid var(--line);background:var(--surface2);color:var(--ink);text-align:left;line-height:1.25}.chip-t.hecha{opacity:.55;text-decoration:line-through}.chip-t.mov{border-style:dashed;color:var(--amber-dk);background:var(--amber-bg);border-color:#e4be62}.tarjeta.ambar{background:var(--amber-bg);border-color:#edd9a8}.tarjeta p{font-size:.8rem}.zonas-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}.zona{border-radius:10px;border:1px solid var(--line);background:var(--surface);padding:.5rem .6rem;font-size:.76rem;line-height:1.3;text-align:left}.zona b{display:block;font-size:.78rem;margin-bottom:.15rem}.zona .estado-z{font-weight:700;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}.zona.completada{border-color:#bfdcc8;background:var(--ok-bg)}.zona.completada .estado-z{color:var(--ok)}.zona.vencida{border-color:#ebc4bd;background:var(--bad-bg);cursor:pointer}.zona.vencida .estado-z{color:var(--bad)}.zona.reprogramada{border-color:#e4be62;background:var(--amber-bg)}.zona.reprogramada .estado-z{color:var(--amber-dk)}.zona:disabled{cursor:default}.dos-columnas{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;align-items:start}@media (max-width: 760px){.dos-columnas{grid-template-columns:1fr}}.evento{border-left:3px solid var(--brand);background:var(--surface2);border-radius:0 8px 8px 0;padding:.4rem .6rem;margin-top:.45rem}.evento.reasig{border-left-color:var(--amber)}.evento p{margin:.1rem 0 0;font-size:.78rem}.evento a{color:var(--agua)}#toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);background:var(--ink);color:#fff;border-radius:10px;padding:.65rem 1rem;font-size:.85rem;font-weight:600;max-width:90vw;text-align:center;opacity:0;pointer-events:none;transition:.25s ease;z-index:99}#toast.visible{opacity:1}.campana{position:relative}.campana-boton{background:none;border:1px solid rgba(255,255,255,.35);color:#ddebe6;border-radius:999px;padding:.15rem .55rem;font-size:.8rem;position:relative}.campana-contador{position:absolute;top:-6px;right:-6px;background:var(--bad);color:#fff;border-radius:999px;font-size:.62rem;font-weight:700;padding:.05rem .32rem;min-width:1.1em;text-align:center}.campana-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(320px,86vw);z-index:60;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #17302a2e;padding:.7rem .8rem;max-height:60vh;overflow-y:auto}.campana-panel>b{font-size:.8rem}.campana-item{border-top:1px solid var(--line);padding:.45rem 0}.campana-item .titulo{font-size:.8rem;font-weight:600}.campana-item .cuerpo{font-size:.75rem;color:var(--ink2)}.campana-item.nueva .titulo:before{content:"● ";color:var(--amber-dk)}.bot.borde{background:var(--surface);border:1.5px solid var(--brand);color:var(--brand-dk);text-decoration:none;display:inline-block}.bot.ambar{background:var(--amber-bg);border:1.5px solid #E4BE62;color:var(--amber-dk)}.banner-conexion{text-align:center;font-size:.78rem;font-weight:700;padding:.4rem .8rem}.banner-conexion.sin{background:var(--ink);color:#fff}.banner-conexion.enviando{background:var(--amber-bg);color:var(--amber-dk)}.panel-nav select,.acciones-linea select,.acciones-linea input[type=date]{font:inherit;font-size:.82rem;border:1px solid var(--line);border-radius:8px;padding:.35rem .5rem;background:var(--surface);color:var(--ink)}.panel-nav .selector-estacion{margin-left:auto;font-weight:600}.panel-nav .selector-estacion+input[type=date]{margin-left:0}.rejilla-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem;margin-top:.5rem}.chips-form{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.chip-check{border:1.5px solid var(--line);background:var(--surface);color:var(--ink2);border-radius:999px;padding:.3rem .75rem;font-size:.78rem;font-weight:600}.chip-check.on{border-color:var(--brand);background:var(--brand-bg);color:var(--brand-dk)}.mini-input{font:inherit;font-size:.78rem;border:1px dashed var(--line);border-radius:999px;padding:.3rem .7rem;background:transparent;width:12rem}.marco-tabla{border:1px solid var(--line);border-radius:12px;overflow-x:auto;background:var(--surface)}.marco-tabla table{border-collapse:collapse;width:100%;font-size:.82rem}.marco-tabla th{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-align:left;padding:.5rem .65rem;border-bottom:1.5px solid var(--line);background:var(--surface2);white-space:nowrap;position:sticky;top:0}.marco-tabla td{padding:.5rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}.marco-tabla tr:last-child td{border-bottom:none}.marco-tabla tr.inactiva{opacity:.5}.marco-tabla a{color:var(--agua)}.calendario{display:grid;gap:.5rem}.calendario.semana{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.calendario.mes{grid-template-columns:repeat(7,1fr)}.cal-cabecera{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--ink2);text-align:center;padding-bottom:.2rem}.cal-dia{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.5rem .55rem;min-height:86px;display:flex;flex-direction:column;gap:.25rem;align-items:flex-start;text-align:left}.cal-dia.vacio{background:var(--surface2);opacity:.65}.cal-num{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:1.1rem}.cal-barra{width:100%;height:6px;background:var(--line);border-radius:99px;overflow:hidden}.cal-barra i{display:block;height:100%;background:var(--ok);border-radius:99px}.cal-datos{font-size:.74rem;color:var(--ink2);font-variant-numeric:tabular-nums}.cal-turnos{font-size:.66rem;color:var(--ink2);letter-spacing:.06em}.login .ayuda{font-size:.76rem;color:var(--ink2);text-align:center;line-height:1.4}.sw{position:relative;width:44px;height:25px;border-radius:99px;border:none;background:#b9c8c2;transition:background .2s;flex:none}.sw:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 2px #00000040}.sw.on{background:var(--ok)}.sw.on:after{left:22px}.sw:disabled{opacity:.55;cursor:not-allowed}.switches{display:flex;flex-direction:column;gap:.5rem}.switch-fila{display:flex;align-items:center;gap:.8rem;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem}.switch-fila .txt{flex:1;min-width:0}.switch-fila .txt b{font-size:.86rem}.switch-fila .txt .mini{display:block}.asistente{min-height:100dvh;background:var(--brand-dk);padding:clamp(.8rem,3vw,2.4rem);display:flex;justify-content:center;align-items:flex-start}.asistente-caja{width:min(920px,100%);background:var(--surface);border-radius:18px;padding:clamp(1.1rem,3vw,2rem);box-shadow:0 24px 60px #00000047}.asistente-caja h1{font-size:clamp(1.7rem,4vw,2.4rem);color:var(--brand-dk);margin-bottom:.3rem}.asistente-caja .entradilla{font-size:.95rem;color:var(--ink2);margin-bottom:1rem;max-width:62ch}.asistente-pasos{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:1.2rem}.paso-punto{display:flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:600;color:var(--ink2);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem}.paso-punto b{width:1.15rem;height:1.15rem;border-radius:50%;background:var(--line);color:var(--ink2);display:grid;place-items:center;font-size:.66rem}.paso-punto.activo{border-color:var(--brand);background:var(--brand-bg);color:var(--brand-dk)}.paso-punto.activo b{background:var(--brand);color:#fff}.paso-punto.hecho{color:var(--ok);border-color:#bfdcc8;background:var(--ok-bg)}.paso-punto.hecho b{background:var(--ok);color:#fff}.lista-pasos{margin:.2rem 0 1rem 1.1rem;display:grid;gap:.4rem;font-size:.9rem;color:var(--ink)}.lista-pasos b{color:var(--brand-dk)}.asistente-botones{display:flex;gap:.6rem;align-items:center;margin-top:1.2rem;flex-wrap:wrap}.asistente-botones .btn{width:auto;min-width:11rem}.asistente input,.asistente select{font:inherit;font-size:.86rem;border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem;background:var(--surface);color:var(--ink)}@media print{.asistente{background:#fff;padding:0}.asistente-pasos,.asistente-botones{display:none}.asistente-caja{box-shadow:none}}
