/* Inicio de la app del piscinero (APK o app instalada): resumen del día en una pantalla de teléfono, con barra inferior propia.
   Los colores salen de variables (--ah-*): el modo oscuro solo las cambia (ver pro-dark.css). */
.ah,.ag,.fz,.qt,.cf,.cf-catalog{--ah-card:#fff;--ah-line:#e6edf5;--ah-soft:#f3f7fd;--ah-ink:#0b1f4d;--ah-text:#33425c;--ah-muted:#6b7a95;--ah-blue:#1665f2;--ah-blue-soft:#e6f0ff;--ah-green:#138a4f;--ah-green-soft:#e4f6ec;--ah-orange:#c26a00;--ah-orange-soft:#fff1dc;--ah-purple:#6d3fd0;--ah-purple-soft:#efe7ff;--ah-red:#c0392b;--ah-red-soft:#fde8e6;--ah-shadow:0 2px 12px rgba(16,42,90,.06);display:grid;gap:14px;width:100%;max-width:640px;margin:0 auto;min-width:0}
.ah *,.ag *{box-sizing:border-box}
.ah button,.ag button{font-family:inherit}
.ah em,.ag em{font-style:normal}
.ah .ps-ico,.ag .ps-ico{width:22px;height:22px;flex:none}

/* Encabezado de la página */
.ah-date{--ah-card:#fff;--ah-line:#e6edf5;--ah-ink:#0b1f4d;--ah-muted:#6b7a95;--ah-blue:#1665f2;--ah-shadow:0 2px 12px rgba(16,42,90,.06);flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:16px;background:var(--ah-card);border:1px solid var(--ah-line);box-shadow:var(--ah-shadow)}
.ah-date .ps-ico{color:var(--ah-blue);width:24px;height:24px}
.ah-date span{display:grid;line-height:1.2}.ah-date b{font-size:14px;color:var(--ah-ink)}.ah-date small{font-size:12.5px;color:var(--ah-muted)}

/* Tarjetas */
.ah-card{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:20px;box-shadow:var(--ah-shadow);color:var(--ah-text);text-align:left}
button.ah-card{cursor:pointer;width:100%;font:inherit}
.ah-ico{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--ah-blue-soft);color:var(--ah-blue)}
.ah-ico.is-green,.ah-ico.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}
.ah-ico.is-orange,.ah-ico.is-warn{background:var(--ah-orange-soft);color:var(--ah-orange)}
.ah-ico.is-purple,.ah-ico.is-info{background:var(--ah-purple-soft);color:var(--ah-purple)}
.ah-ico.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}
.ah-ico.is-blue{background:var(--ah-blue-soft);color:var(--ah-blue)}

/* Progreso de ruta */
.ah-progress{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:14px 14px 14px 12px}
.ah-progress .ah-ico{width:44px;height:44px;border-radius:50%;background:none}.ah-progress .ah-ico .ps-ico{width:30px;height:30px}
.ah-progress-text{display:grid;gap:2px;min-width:0}.ah-progress-text b{font-size:19px;line-height:1.15;color:var(--ah-ink);font-weight:800;white-space:nowrap}.ah-progress-text small{font-size:14px;color:var(--ah-muted);white-space:nowrap}
.ah-pct{font-size:38px;line-height:1;font-weight:800;color:var(--ah-blue);letter-spacing:-.02em}
.ah-bar{grid-column:1/-1;height:12px;border-radius:999px;background:var(--ah-soft);overflow:hidden;margin-top:6px}
.ah-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1665f2,#2f8cff);transition:width .4s}
.ah-go{grid-column:1/-1;justify-self:end;display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;color:var(--ah-blue)}.ah-go .ps-ico{width:16px;height:16px}

/* Indicadores */
.ah-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ah-kpis{gap:8px}
.ah-kpi{position:relative;display:grid;align-content:start;gap:6px;padding:10px 6px 10px 10px;min-width:0;border-radius:18px}
.ah-kpi-top{display:flex;align-items:center;gap:6px;min-width:0}
.ah-kpi .ah-ico{width:30px;height:30px;border-radius:10px}.ah-kpi .ah-ico .ps-ico{width:18px;height:18px}
.ah-kpi-top small{font-size:11px;line-height:1.15;font-weight:700;color:var(--ah-ink);min-width:0;letter-spacing:-.01em}
.ah-kpi>b{font-size:19px;line-height:1.1;font-weight:800;color:var(--ah-ink);letter-spacing:-.02em;padding-right:12px;white-space:nowrap}
.ah-kpis .ah-kpi:nth-child(-n+3)>b{font-size:30px}
.ah-kpi-sub{display:grid;gap:4px;justify-items:start;font-size:12px;color:var(--ah-muted);min-width:0}
.ah-kpi-sub small{font-weight:500;color:var(--ah-muted);font-size:11.5px;line-height:1.25}
.ah-kpi-go{position:absolute;right:5px;width:14px!important;height:14px!important;color:#9aa8c0;top:50px}
.ah-pill{display:inline-flex;align-items:center;gap:2px;max-width:100%;padding:3px 7px 3px 5px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.2;background:var(--ah-soft);color:var(--ah-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ah-pill .ps-ico{width:13px;height:13px;flex:none}
.ah-pill.is-up{background:var(--ah-green-soft);color:var(--ah-green)}.ah-pill.is-down{background:var(--ah-red-soft);color:var(--ah-red)}
.ah-pill.is-none,.ah-pill.is-flat{font-weight:600;white-space:normal}
.ah-foot{margin:-4px 2px 0;font-size:11.5px;line-height:1.45;color:var(--ah-muted)}

/* Secciones */
.ah-sec{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.ah-sec h2{font-size:21px;line-height:1.2;margin:0;color:var(--ah-ink);font-weight:800}
.ah-link{display:inline-flex;align-items:center;gap:2px;border:0;background:none;padding:6px 0;font-size:14.5px;font-weight:600;color:var(--ah-blue);cursor:pointer}.ah-link .ps-ico{width:16px;height:16px}

/* Próxima piscina */
.ah-next{display:flex;gap:14px;padding:12px;align-items:stretch}
.ah-pool{flex:none;width:104px;min-height:112px;border-radius:16px;display:grid;place-items:center;color:#fff;background:repeating-linear-gradient(172deg,rgba(255,255,255,.16) 0 2px,rgba(255,255,255,0) 2px 15px),linear-gradient(160deg,#4fc3f7 0%,#1e88e5 55%,#1565c0 100%);position:relative;overflow:hidden}
.ah-pool::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.18))}
.ah-pool .ps-ico{width:44px;height:44px;stroke-width:1.8;opacity:.95}
.ah-pool.is-limpieza{background-image:repeating-linear-gradient(172deg,rgba(255,255,255,.16) 0 2px,rgba(255,255,255,0) 2px 15px),linear-gradient(160deg,#7dd3fc,#0ea5e9 60%,#0369a1)}.ah-pool.is-revision{background-image:repeating-linear-gradient(172deg,rgba(255,255,255,.16) 0 2px,rgba(255,255,255,0) 2px 15px),linear-gradient(160deg,#6ee7b7,#14b8a6 60%,#0f766e)}.ah-pool.is-reparacion{background-image:repeating-linear-gradient(172deg,rgba(255,255,255,.16) 0 2px,rgba(255,255,255,0) 2px 15px),linear-gradient(160deg,#fcd34d,#f59f0b 60%,#b45309)}
.ah-next-body{flex:1;min-width:0;display:grid;gap:8px;align-content:space-between}
.ah-next-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ah-next-top b{font-size:17px;line-height:1.2;color:var(--ah-ink);font-weight:800;min-width:0;overflow-wrap:anywhere}
.ah-next-body ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.ah-next-body li{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ah-text);min-width:0}.ah-next-body li .ps-ico{width:17px;height:17px;color:var(--ah-muted)}.ah-next-body li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ah-next-body small{font-size:13.5px;color:var(--ah-muted)}
.ah-when{flex:none;padding:4px 11px;border-radius:999px;font-size:13px;font-weight:700;background:var(--ah-green-soft);color:var(--ah-green);white-space:nowrap}
.ah-when.is-late{background:var(--ah-orange-soft);color:var(--ah-orange)}.ah-when.is-run{background:var(--ah-blue-soft);color:var(--ah-blue)}.ah-when.is-day{background:var(--ah-soft);color:var(--ah-muted)}
.ah-btn{justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 20px;border:0;border-radius:13px;background:var(--ah-blue);color:#fff;font-size:15.5px;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(22,101,242,.28)}.ah-btn .ps-ico{width:18px;height:18px}
.ah-next.is-empty{align-items:center}

/* Acciones rápidas */
.ah-quick{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:5px}
.ah-tile{display:grid;justify-items:center;align-content:center;gap:7px;min-height:84px;padding:10px 1px;border:1px solid var(--ah-line);border-radius:16px;background:var(--ah-card);box-shadow:var(--ah-shadow);color:var(--ah-text);font-size:10.5px;font-weight:600;letter-spacing:-.01em;cursor:pointer;min-width:0;white-space:nowrap}
.ah-tile span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ah-blue-soft);color:var(--ah-blue)}.ah-tile .ps-ico{width:24px;height:24px}

/* Pendientes importantes */
.ah-pending{padding:4px 14px}
.ah-pending ul{list-style:none;margin:0;padding:0}
.ah-pending li+li{border-top:1px solid var(--ah-line)}
.ah-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 0;border:0;background:none;text-align:left;cursor:pointer;color:inherit;min-width:0}
.ah-row-text{flex:1;min-width:0;display:grid;gap:2px}.ah-row-text b{font-size:15.5px;line-height:1.25;color:var(--ah-ink);font-weight:700}.ah-row-text b em{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--ah-soft);color:var(--ah-muted);font-size:12px;font-weight:800;vertical-align:1px}
.ah-row-text small{font-size:13px;line-height:1.3;color:var(--ah-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ah-state{flex:none;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;background:var(--ah-orange-soft);color:var(--ah-orange)}
.ah-state.is-info{background:var(--ah-purple-soft);color:var(--ah-purple)}.ah-state.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}.ah-state.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}
.ah-row-go{width:16px!important;height:16px!important;color:#9aa8c0}
.ah-allgood{display:flex;align-items:center;gap:12px;padding:12px 0}.ah-allgood b{display:block;font-size:15.5px;color:var(--ah-ink)}.ah-allgood small{font-size:13px;color:var(--ah-muted)}

/* Encabezado de la app (solo en el Inicio): menú, logo al centro, avisos y cuenta */
body[data-page="panel"] .portal-topbar.cp2-top.is-app{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;min-height:0;padding:8px 12px}
.pro-top.is-app .ps-menu-btn{order:0;display:grid;flex:none}
.app-brand{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;text-decoration:none;color:var(--ps-ink,#0b1f4d)}
.app-brand img{max-height:40px;max-width:100%;width:auto;object-fit:contain}
.app-brand .icon{width:32px;height:32px;color:#1665f2;flex:none}
.app-brand span{display:block;line-height:1.05;font-size:21px;font-weight:600;color:#0b1f4d;white-space:nowrap}.app-brand b{display:inline;color:#1665f2;font-weight:800}.app-brand small{display:block;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#6b7a95;font-weight:600;margin-top:2px}
.pro-top.is-app .cp2-top-actions{flex:none;gap:8px!important;margin-left:0;width:auto;overflow:visible}
.pro-top.is-app .pro-who,.pro-top.is-app .cp-account summary>.icon{display:none}
.pro-top.is-app .cp-account summary{padding:0;border:0;background:none;gap:0}
.pro-top.is-app .cp-account .avatar{width:44px;height:44px}.pro-top.is-app .portal-notifications{flex:none}

/* Barra inferior de la app: blanca, con el acceso activo en azul */
@media(max-width:860px){
 .pro-shell[data-app] .pro-main{padding-top:6px!important}
 .pro-shell[data-app] .pro-mnav.is-app{background:#fff;border-top:1px solid #e6edf5;box-shadow:0 -8px 24px rgba(16,42,90,.08);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
 .pro-shell[data-app] .pro-mnav.is-app button{color:#6b7a95;background:none;height:58px;font-size:12px;font-weight:600;gap:3px}
 .pro-shell[data-app] .pro-mnav.is-app button .icon{width:26px;height:26px;color:inherit}
 .pro-shell[data-app] .pro-mnav.is-app button.active{color:#1665f2;background:none;font-weight:800}
 .pro-shell[data-app] .pro-mnav.is-app button.active .icon{stroke-width:2.4}
}
@media(max-width:380px){.app-title h1{font-size:30px!important}.ah-pct{font-size:34px}.ah-kpis .ah-kpi:nth-child(-n+3)>b{font-size:28px}.ah-kpi>b{font-size:18px}.ah-pool{width:88px}.ah-state{padding:5px 10px}}
@media(min-width:861px){.ah{padding-top:6px}.pro-top.is-app .ps-menu-btn{display:none}}

/* Título de cada pantalla de la app (bajo el encabezado): nombre, descripción y fecha */
.app-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 12px 2px}
.app-title h1{font-size:34px;line-height:1.05;letter-spacing:-.01em;margin:0;color:#0b1f4d;font-weight:800}
.app-title p{margin:6px 0 0;font-size:14.5px;line-height:1.35;color:#6b7a95}
.app-title>div:first-child{min-width:0}
.ah-date .ps-ico,.ah-date .pro-ico,.ah-date .icon{width:24px;height:24px;color:#1665f2}
.ah-date span{display:grid;line-height:1.2}.ah-date b{font-size:14px;color:#0b1f4d}.ah-date small{font-size:12.5px;color:#6b7a95}
/* Botón principal del día */
.ah-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;border:0;border-radius:16px;background:linear-gradient(180deg,#2b7bff,#1665f2);color:#fff;font-size:16px;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 24px rgba(22,101,242,.32)}.ah-cta .ps-ico{width:22px;height:22px}
@media(min-width:861px){.app-title{padding-left:0;padding-right:0}}

/* Agenda de la app: Hoy / Semana / Mes, tira de días, cuatro indicadores y tres listas */
.ag-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:16px;background:var(--ah-soft);border:1px solid var(--ah-line)}
.ag-tabs button{min-height:42px;border:0;border-radius:12px;background:transparent;color:var(--ah-muted);font-size:15px;font-weight:700;cursor:pointer}
.ag-tabs button.is-on{background:var(--ah-blue);color:#fff;box-shadow:0 4px 12px rgba(22,101,242,.28)}
.ag-nav{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:-4px}
.ag-nav b{flex:1;text-align:center;font-size:16px;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.ag-nav button{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-blue);cursor:pointer}
.ag-nav button .ps-ico,.ag-nav button svg{width:18px;height:18px}
.ag-nav button.ag-today{width:auto;padding:0 12px;font-size:13px;font-weight:800}
.ag-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.ag-day{display:grid;justify-items:center;gap:3px;padding:8px 0 7px;border-radius:14px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-muted);cursor:pointer;min-width:0}
.ag-day span{font-size:11.5px;font-weight:700}.ag-day b{font-size:17px;color:var(--ah-ink);font-weight:800;line-height:1.1}
.ag-day i{width:6px;height:6px;border-radius:50%;background:transparent}.ag-day i.has{background:var(--ah-blue)}
.ag-day.is-today b{color:var(--ah-blue)}
.ag-day.is-sel{background:var(--ah-blue);border-color:var(--ah-blue);box-shadow:0 6px 14px rgba(22,101,242,.28)}
.ag-day.is-sel span,.ag-day.is-sel b{color:#fff}.ag-day.is-sel i.has{background:#fff}
.ag-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ag-kpi{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ico lab" "val val" "sub sub";align-items:center;gap:4px 8px;padding:12px;border-radius:18px;background:var(--ah-card);border:1px solid var(--ah-line);box-shadow:var(--ah-shadow);min-width:0}
.ag-kico{grid-area:ico;display:grid;place-items:center;width:32px;height:32px;border-radius:11px}.ag-kico .ps-ico,.ag-kico svg{width:18px;height:18px}
.ag-kico.is-green{background:var(--ah-green-soft);color:var(--ah-green)}.ag-kico.is-orange{background:var(--ah-orange-soft);color:var(--ah-orange)}.ag-kico.is-blue{background:var(--ah-blue-soft);color:var(--ah-blue)}.ag-kico.is-amber{background:var(--ah-red-soft);color:var(--ah-red)}
.ag-kpi small{grid-area:lab;font-size:13px;font-weight:700;color:var(--ah-ink)}
.ag-kpi>b{grid-area:val;font-size:30px;line-height:1.05;font-weight:800;color:var(--ah-ink);letter-spacing:-.02em}
.ag-ksub{grid-area:sub;font-size:12px;color:var(--ah-muted)}
.ag-sec{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:20px;box-shadow:var(--ah-shadow);padding:14px 12px 8px;min-width:0}
.ag-sec header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.ag-sec h2{display:flex;align-items:center;gap:8px;margin:0;font-size:16.5px;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.ag-sico{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;flex:none}.ag-sico .ps-ico,.ag-sico svg{width:16px;height:16px}
.ag-sico.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}.ag-sico.is-warn{background:var(--ah-orange-soft);color:var(--ah-orange)}.ag-sico.is-info{background:var(--ah-blue-soft);color:var(--ah-blue)}.ag-sico.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}
.ag-more{display:inline-flex;flex:none;white-space:nowrap;align-items:center;gap:2px;border:0;background:none;color:var(--ah-blue);font-size:13.5px;font-weight:800;cursor:pointer;padding:6px 2px}.ag-more svg,.ag-more .ps-ico{width:14px;height:14px}
.ag-list{list-style:none;margin:0;padding:0;display:grid}
.ag-list li+li{border-top:1px solid var(--ah-line)}
.ag-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;padding:11px 0;border:0;background:none;text-align:left;cursor:pointer;color:var(--ah-text);min-height:64px}
.ag-time{display:grid;justify-items:center;gap:1px;width:58px;padding:7px 6px;border-radius:12px;background:var(--ah-soft);color:var(--ah-ink)}
.ag-time b{font-size:15px;font-weight:800;line-height:1.1}.ag-time small{font-size:11.5px;color:var(--ah-muted);font-weight:600}
.ag-time.is-date b{font-size:13px;white-space:nowrap}
.ag-main{display:grid;gap:3px;min-width:0}
.ag-main>b{font-size:15.5px;font-weight:800;color:var(--ah-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-place,.ag-svc,.ag-move{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ah-muted);min-width:0}
.ag-place .ps-ico,.ag-place svg,.ag-svc .ps-ico,.ag-svc svg,.ag-move .ps-ico,.ag-move svg{width:14px;height:14px;flex:none}
.ag-place,.ag-svc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-svc.is-water{color:var(--ah-blue)}
.ag-move{align-items:flex-start;line-height:1.35;white-space:normal}.ag-move em{color:var(--ah-orange);font-weight:700}
.ag-side{display:grid;justify-items:end;gap:4px}.ag-side small{font-size:11.5px;color:var(--ah-muted);white-space:nowrap}
.ag-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap}
.ag-pill.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}.ag-pill.is-warn{background:var(--ah-orange-soft);color:var(--ah-orange)}.ag-pill.is-info{background:var(--ah-blue-soft);color:var(--ah-blue)}.ag-pill.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}
.ag-go{width:16px!important;height:16px!important;color:#9aa8c0}
.ag-empty{margin:4px 2px 10px;font-size:14px;color:var(--ah-muted)}
.ag-add{padding-bottom:4px}
@media(max-width:380px){.ag-row{gap:8px}.ag-time{width:52px}.ag-main>b{font-size:15px}.ag-kpi>b{font-size:28px}}

/* Finanzas de la app: mes, indicadores, rentabilidad, gastos, cobranza y movimientos (comparte las piezas ag-* de la Agenda) */
.fz-kpis .ag-kpi>b{font-size:22px;white-space:nowrap}
.fz-delta{font-size:11.5px;color:var(--ah-muted);line-height:1.3}.fz-delta b{font-weight:800}
.fz-delta.is-good b{color:var(--ah-green)}.fz-delta.is-bad b{color:var(--ah-red)}
.fz-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fz-btn{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border-radius:14px;border:1.5px solid var(--ah-blue);background:var(--ah-card);color:var(--ah-blue);font-size:14.5px;font-weight:800;cursor:pointer;padding:0 8px}
.fz-btn.is-primary{background:var(--ah-blue);color:#fff;box-shadow:0 6px 14px rgba(22,101,242,.25)}
.fz-btn .ps-ico,.fz-btn svg{width:18px;height:18px}
.fz-subtitle{margin:-2px 2px 8px;font-size:12.5px;color:var(--ah-muted)}
.fz-h3{display:flex;align-items:center;justify-content:flex-start;gap:0;margin:12px 0 2px;font-size:14.5px;font-weight:800}
.fz-h3.is-ok{color:var(--ah-green)}.fz-h3.is-bad{color:var(--ah-red)}.fz-h3 .ps-ico,.fz-h3>svg{width:18px;height:18px;margin-right:6px}
.fz-h3 .ag-more{margin-left:auto}
.fz-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0}
.fz-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:13px;font-weight:800;background:var(--ah-soft);color:var(--ah-ink)}
.fz-rank.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}.fz-rank.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}
.fz-date{min-width:50px;font-size:12.5px;font-weight:700;color:var(--ah-muted)}
.fz-sub{font-size:12px;color:var(--ah-muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fz-amt{font-size:15px;font-weight:800;color:var(--ah-ink);white-space:nowrap}.fz-amt.is-ok{color:var(--ah-green)}.fz-amt.is-bad{color:var(--ah-red)}
.fz-bars{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:10px}
.fz-bar-top{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ah-text)}.fz-bar-top i{width:10px;height:10px;border-radius:3px;flex:none}
.fz-bar-top span{flex:1;min-width:0}.fz-bar-top b{color:var(--ah-ink);font-weight:800}.fz-bar-top em{width:36px;text-align:right;color:var(--ah-muted);font-size:12px}
.fz-track{display:block;height:8px;border-radius:999px;background:var(--ah-soft);overflow:hidden;margin-top:5px}.fz-track span{display:block;height:100%;border-radius:999px}
.fz-owed{display:grid;gap:2px;margin-bottom:6px}.fz-owed b{font-size:26px;font-weight:800;color:var(--ah-ink);letter-spacing:-.02em}.fz-owed span{font-size:13px;color:var(--ah-muted)}.fz-owed em.is-bad{color:var(--ah-red);font-weight:700}
.fz-pay{grid-template-columns:minmax(0,1fr) auto auto}
.fz-foot{margin:0 4px;font-size:11.5px;line-height:1.45;color:var(--ah-muted)}

/* Finanzas de la app (diseño PiscinaPro): pestañas, indicadores, datos desde reportes, ranking de márgenes, costos, dona de gastos y observaciones */
.fz2{--fz-gold:#f5b100;--fz-silver:#9aa7bd;--fz-bronze:#d9822b}
.fz2 .ag-sec h2{font-size:16.5px!important;line-height:1.2!important;margin:0!important}
.fz2-tabs{grid-template-columns:repeat(4,1fr);gap:2px;padding:3px}.fz2-tabs button{min-height:40px;padding:0 2px;font-size:13.5px;white-space:nowrap}
.fz2-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.fz2-kpi{display:grid;align-content:start;gap:3px;padding:9px 7px 8px;border-radius:16px;background:var(--ah-card);border:1px solid var(--ah-line);box-shadow:var(--ah-shadow);min-width:0}
.fz2-kico{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;margin-bottom:2px}.fz2-kico .ps-ico,.fz2-kico svg{width:15px;height:15px}
.fz2-kpi.is-blue .fz2-kico{background:var(--ah-blue-soft);color:var(--ah-blue)}.fz2-kpi.is-green .fz2-kico{background:var(--ah-green-soft);color:var(--ah-green)}.fz2-kpi.is-red .fz2-kico{background:var(--ah-red-soft);color:var(--ah-red)}
.fz2-kpi small{font-size:10.5px;font-weight:700;line-height:1.2;color:var(--ah-muted);min-height:25px}
.fz2-kpi>b{font-size:15px;line-height:1.15;font-weight:800;color:var(--ah-ink);letter-spacing:-.02em;white-space:nowrap}.fz2-kpi>b.is-long{font-size:13px}.fz2-kpi>b.is-xlong{font-size:11.5px}
.fz2-kpi.is-green>b{color:var(--ah-green)}.fz2-kpi.is-red>b{color:var(--ah-red)}
.fz2-delta{display:block;font-size:10px;line-height:1.25;color:var(--ah-muted)}.fz2-delta b{display:block;font-size:11px;font-weight:800}
.fz2-delta.is-good b{color:var(--ah-green)}.fz2-delta.is-bad b{color:var(--ah-red)}
.fz2-card{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:20px;box-shadow:var(--ah-shadow);padding:14px 12px 12px;min-width:0}
.fz2-card.is-blue{border-color:#cfe0fb}
.fz2-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;min-width:0}
.fz2-head h2{flex:1;min-width:0;margin:0!important;font-size:15.5px!important;line-height:1.2!important;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.fz2-hico{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px}.fz2-hico .ps-ico,.fz2-hico svg{width:17px;height:17px}
.fz2-hico.is-blue{background:var(--ah-blue-soft);color:var(--ah-blue)}.fz2-hico.is-amber{background:var(--ah-orange-soft);color:var(--ah-orange)}.fz2-hico.is-red{background:var(--ah-red-soft);color:var(--ah-red)}.fz2-hico.is-green{background:var(--ah-green-soft);color:var(--ah-green)}
.fz2-link{display:inline-flex;flex:none;align-items:center;gap:2px;border:0;background:none;color:var(--ah-blue);font-size:13px;font-weight:800;cursor:pointer;padding:6px 0 6px 4px;white-space:nowrap}.fz2-link svg,.fz2-link .ps-ico{width:13px;height:13px}
.fz2-sub{display:flex;align-items:flex-start;gap:6px;margin:0 0 10px;font-size:12px;line-height:1.4;color:var(--ah-muted)}
.fz2-info{display:inline-grid;place-items:center;flex:none;width:16px;height:16px;margin-top:1px;color:var(--ah-blue)}.fz2-info svg,.fz2-info .ps-ico{width:15px;height:15px}
.fz2-none{margin:4px 2px 4px;font-size:13.5px;color:var(--ah-muted)}
.fz2-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fz2-tile{display:grid;align-content:start;gap:6px;padding:9px 8px;border-radius:14px;background:var(--ah-soft);border:1px solid var(--ah-line);min-width:0}
.fz2-tile>div{display:grid;gap:1px;min-width:0}
.fz2-tico{display:grid;place-items:center;width:26px;height:26px;border-radius:9px}.fz2-tico .ps-ico,.fz2-tico svg{width:15px;height:15px}
.fz2-tico.is-purple{background:var(--ah-purple-soft);color:var(--ah-purple)}.fz2-tico.is-blue{background:var(--ah-blue-soft);color:var(--ah-blue)}.fz2-tico.is-red{background:var(--ah-red-soft);color:var(--ah-red)}.fz2-tico.is-green{background:var(--ah-green-soft);color:var(--ah-green)}.fz2-tico.is-slate{background:var(--ah-card);color:var(--ah-muted)}
.fz2-tile small{font-size:10.5px;font-weight:700;line-height:1.2;color:var(--ah-muted)}
.fz2-tile b{font-size:14px;line-height:1.2;font-weight:800;color:var(--ah-ink);overflow-wrap:anywhere}
.fz2-tile em{font-style:normal;font-size:10.5px;line-height:1.2;color:var(--ah-muted)}
.fz2-pair{display:grid;gap:14px;min-width:0}
.fz2-rlist,.fz2-clist,.fz2-ilist{list-style:none;margin:0;padding:0;display:grid}
.fz2-rrow{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:4px 9px;padding:10px 0;border-top:1px solid var(--ah-line)}.fz2-rrow:first-child{border-top:0}
.fz2-rank{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12.5px;font-weight:800;color:#fff;background:var(--fz-silver)}
.fz2-rank.is-gold{background:var(--fz-gold)}.fz2-rank.is-silver{background:var(--fz-silver)}.fz2-rank.is-bronze{background:var(--fz-bronze)}.fz2-rank.is-red{background:#e5484d}.fz2-rank.is-slate{background:var(--ah-muted)}
.fz2-photo{width:40px;height:40px;border-radius:12px;object-fit:cover;background:var(--ah-soft);display:block}
.fz2-photo.is-art{display:grid;place-items:center;color:var(--ah-blue)}.fz2-photo.is-art svg,.fz2-photo.is-art .ps-ico{width:20px;height:20px}
.fz2-rname{display:grid;gap:1px;min-width:0}.fz2-rname b{font-size:14px;font-weight:800;color:var(--ah-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fz2-rname small{font-size:11.5px;color:var(--ah-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fz2-rnums{grid-column:2/4;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:11.5px;color:var(--ah-muted)}.fz2-rnums b{font-weight:800;color:var(--ah-ink)}.fz2-rnums b.is-ok{color:var(--ah-green)}.fz2-rnums b.is-bad{color:var(--ah-red)}
.fz2-margin{grid-column:4;grid-row:1/span 2;display:grid;justify-items:center;gap:0;min-width:58px;padding:4px 6px;border-radius:12px;text-align:center;line-height:1.15}
.fz2-margin small{font-size:9.5px;font-weight:700;color:var(--ah-muted)}.fz2-margin b{font-size:16px;font-weight:800}.fz2-margin em{font-style:normal;font-size:10.5px;font-weight:800}
.fz2-margin.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}.fz2-margin.is-good{background:var(--ah-blue-soft);color:var(--ah-blue)}.fz2-margin.is-warn{background:var(--ah-orange-soft);color:var(--ah-orange)}.fz2-margin.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}.fz2-margin.is-muted{background:var(--ah-soft);color:var(--ah-muted)}
.fz2-crow{display:grid;grid-template-columns:44px auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--ah-line);width:100%;text-align:left;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;color:inherit}
.fz2-clist>li:first-child,.fz2-clist>li:first-child>.fz2-crow{border-top:0}
.fz2-clist>li:not(.fz2-crow){display:block}
.fz2-cdate{font-size:12px;font-weight:700;color:var(--ah-muted)}
.fz2-cico{--c:#aab4c5;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}.fz2-cico svg,.fz2-cico .ps-ico{width:16px;height:16px}
.fz2-cico.is-productos,.fz2-cat.is-productos{--c:#1665f2}.fz2-cico.is-traslado,.fz2-cat.is-traslado{--c:#f5882b}.fz2-cico.is-repuestos,.fz2-cat.is-repuestos{--c:#7c4ddb}.fz2-cico.is-mano_obra,.fz2-cat.is-mano_obra{--c:#1ba868}.fz2-cico.is-herramientas,.fz2-cat.is-herramientas{--c:#e0507a}.fz2-cico.is-publicidad,.fz2-cat.is-publicidad{--c:#1b9fd6}.fz2-cico.is-otros,.fz2-cat.is-otros{--c:#7b8aa3}
.fz2-cmain{display:grid;gap:1px;min-width:0}.fz2-cmain b{font-size:13.5px;font-weight:800;color:var(--ah-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fz2-cmain small{font-size:11.5px;color:var(--ah-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fz2-camt{display:grid;justify-items:end;gap:3px}.fz2-camt b{font-size:13.5px;font-weight:800;color:var(--ah-ink);white-space:nowrap}.fz2-camt b.is-ok{color:var(--ah-green)}
.fz2-cat{--c:#7b8aa3;font-style:normal;display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:800;white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.fz2-pay{cursor:pointer}
.fz2-monthsel{position:relative;display:inline-flex;align-items:center;gap:4px;flex:none;height:34px;padding:0 10px;border-radius:12px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-ink);font-size:13px;font-weight:700}
.fz2-monthsel svg,.fz2-monthsel .ps-ico{width:14px;height:14px;color:var(--ah-muted)}
.fz2-monthsel select{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;cursor:pointer}
.fz2-dist{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:center;gap:12px}
.fz2-dwrap{position:relative;width:116px;height:116px}.fz2-donut{display:block;width:100%;height:100%}
.fz2-dcenter{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;line-height:1.15}.fz2-dcenter b{font-size:12.5px;font-weight:800;color:var(--ah-ink)}.fz2-dcenter small{font-size:10.5px;color:var(--ah-muted)}
.fz2-legend{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.fz2-legend li{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:5px;font-size:11.5px;color:var(--ah-text)}
.fz2-legend i{width:10px;height:10px;border-radius:3px}.fz2-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fz2-legend em{font-style:normal;color:var(--ah-muted);font-size:11px;min-width:26px;text-align:right}.fz2-legend b{font-weight:800;color:var(--ah-ink);min-width:58px;text-align:right}
.fz2-ilist{gap:8px}
.fz2-ilist li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:10px 11px;border-radius:14px;background:var(--ah-blue-soft)}
.fz2-ilist li>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ah-card);color:var(--ah-blue)}.fz2-ilist li>span svg,.fz2-ilist li>span .ps-ico{width:16px;height:16px}
.fz2-ilist li p{margin:0;font-size:13px;line-height:1.45;color:var(--ah-text)}
.fz2-ilist li.is-warn{background:var(--ah-orange-soft)}.fz2-ilist li.is-warn>span{color:var(--ah-orange)}.fz2-ilist li.is-bad{background:var(--ah-red-soft)}.fz2-ilist li.is-bad>span{color:var(--ah-red)}
.fz2-total{display:grid;gap:3px}.fz2-total small{font-size:12.5px;font-weight:700;color:var(--ah-muted)}.fz2-total b{font-size:28px;font-weight:800;color:var(--ah-ink);letter-spacing:-.02em}.fz2-total b.is-bad{color:var(--ah-red)}.fz2-total .fz2-delta{font-size:12px}.fz2-total .fz2-delta b{display:inline;font-size:12px}
@media(max-width:350px){.fz2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.fz2-dist{grid-template-columns:1fr;justify-items:center}.fz2-legend{width:100%}}

/* Mis precios de la app (diseño PiscinaPro): tipos de servicio, comparación con el mercado, clientes, resumen por tipo y otras referencias */
.pa .ps-ico,.pa svg.icon{width:18px;height:18px;flex:none}
.pa.is-busy{opacity:.65;transition:opacity .15s}
.pa-stamp{display:flex;align-items:center;gap:6px;margin:-4px 2px 0;font-size:13px;color:var(--ah-muted)}.pa-stamp .ps-ico{width:16px;height:16px;color:var(--ah-muted)}.pa-stamp.is-na{color:var(--ah-orange)}
.pa-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.pa-tabs button{display:grid;justify-items:center;align-content:center;gap:4px;min-height:72px;padding:8px 2px;border:1px solid var(--ah-line);border-radius:16px;background:var(--ah-soft);color:var(--ah-text);font:700 10.5px/1.2 Inter,sans-serif;cursor:pointer;min-width:0;letter-spacing:-.01em}
.pa-tabs button>span{display:grid;place-items:center;width:30px;height:30px;color:var(--ah-blue)}.pa-tabs button>span .ps-ico{width:24px;height:24px}
.pa-tabs button.is-on{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff;box-shadow:0 6px 14px rgba(22,101,242,.28)}.pa-tabs button.is-on>span{color:#fff}
.pa-card{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:20px;box-shadow:var(--ah-shadow);padding:14px 12px;min-width:0}
.pa-block{min-width:0}
.pa-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;min-width:0}
.pa-head h2{flex:1;min-width:0;margin:0!important;font-size:16px!important;line-height:1.25!important;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.pa-hico{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--ah-blue-soft);color:var(--ah-blue)}.pa-hico .ps-ico{width:20px;height:20px}
.pa-link{display:inline-flex;flex:none;align-items:center;gap:2px;border:0;background:none;color:var(--ah-blue);font-size:13px;font-weight:800;cursor:pointer;padding:6px 0 6px 4px;white-space:nowrap}.pa-link .ps-ico{width:13px;height:13px}
.pa-block .pa-head h2{font-size:15.5px!important}.pa-block .pa-link{font-size:12.5px}
.pa-info{display:inline-grid;place-items:center;vertical-align:-3px;color:var(--ah-muted)}.pa-info .ps-ico{width:15px;height:15px}
.pa-sub{margin:-4px 0 10px;font-size:12.5px;line-height:1.4;color:var(--ah-muted)}
.pa-none{display:flex;gap:8px;align-items:flex-start;margin:4px 2px;font-size:13.5px;line-height:1.4;color:var(--ah-muted)}.pa-none .ps-ico{margin-top:1px;color:var(--ah-blue)}
.pa-sel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;padding:12px}
.pa-field{display:grid;gap:5px;min-width:0}
.pa-field label{display:grid;gap:5px}.pa-field label>span:first-child{display:flex;align-items:center;gap:6px;min-height:22px;font-size:12.5px;font-weight:800;color:var(--ah-ink)}.pa-field label>span:first-child .ps-ico{width:16px;height:16px;color:var(--ah-blue)}
.pa-in{position:relative;display:block}.pa-in select{width:100%;min-height:44px;padding:0 30px 0 12px;border:1px solid var(--ah-line);border-radius:12px;background:var(--ah-card);color:var(--ah-ink);font:600 13.5px/1.2 Inter,sans-serif;appearance:none;-webkit-appearance:none;text-overflow:ellipsis}
.pa-in>.ps-ico{position:absolute;right:10px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--ah-muted);pointer-events:none}
.pa-combo .cm{width:100%}.pa-combo .cm-input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--ah-line);border-radius:12px;background:var(--ah-card);color:var(--ah-ink);font:600 13.5px/1.2 Inter,sans-serif;box-sizing:border-box}
.pa-field>small{font-size:11.5px;line-height:1.3;color:var(--ah-muted)}
.pa-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.pa-pill .ps-ico{width:14px;height:14px}
.pa-pill.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}.pa-pill.is-warn{background:var(--ah-orange-soft);color:var(--ah-orange)}.pa-pill.is-info{background:var(--ah-blue-soft);color:var(--ah-blue)}.pa-pill.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}.pa-pill.is-muted{background:var(--ah-soft);color:var(--ah-muted)}
.pa-cmp-top{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);align-items:start;gap:6px 12px}
.pa-cmp-top>.pa-pill{grid-column:1/-1;justify-self:end;margin-top:-2px}
.pa-yours,.pa-market{display:grid;gap:2px;min-width:0}.pa-market{padding-left:12px;border-left:1px solid var(--ah-line)}
.pa-yours em{font-style:normal;font-size:11.5px;line-height:1.3;color:var(--ah-muted)}.pa-yours small,.pa-market small{font-size:12px;font-weight:600;color:var(--ah-muted)}
.pa-yours b{font-size:26px;line-height:1.1;font-weight:800;color:var(--ah-ink);letter-spacing:-.02em}
.pa-market b{font-size:17px;line-height:1.2;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}.pa-market b.is-na{color:var(--ah-muted);font-size:15px}
.pa-market em{font-style:normal;font-size:11.5px;color:var(--ah-muted)}
.pa-cmp-bottom{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);align-items:stretch;gap:8px;margin-top:10px}
.pa-tile{display:flex;align-items:center;gap:9px;padding:10px;border-radius:14px;background:var(--ah-soft);border:1px solid var(--ah-line);min-width:0}
.pa-tile>span{display:grid;place-items:center;flex:none;width:28px;height:28px}.pa-tile>span .ps-ico{width:24px;height:24px}
.pa-margin>div{display:grid;gap:1px}.pa-margin small{font-size:12px;font-weight:700;color:var(--ah-ink)}.pa-margin b{font-size:22px;line-height:1.1;font-weight:800}
.pa-margin.is-ok>span,.pa-margin.is-ok b{color:var(--ah-green)}.pa-margin.is-warn>span,.pa-margin.is-warn b{color:var(--ah-orange)}.pa-margin.is-bad>span,.pa-margin.is-bad b{color:var(--ah-red)}.pa-margin.is-info>span,.pa-margin.is-info b{color:var(--ah-blue)}.pa-margin.is-muted>span,.pa-margin.is-muted b{color:var(--ah-muted)}.pa-margin.is-muted b{font-size:15px}
.pa-tip{background:var(--ah-green-soft);border-color:transparent}.pa-tip>span{color:var(--ah-orange)}.pa-tip p{margin:0;font-size:12px;line-height:1.4;color:var(--ah-text)}.pa-tip p b{color:var(--ah-ink)}.pa-tip-2{display:inline}
/* Plan gratis: la comparación con el mercado está bloqueada (candado con «Ver planes» solo para quien puede cambiar el plan). Usa las variables --ah-*, que ya cambian con el modo oscuro. */
.pa-sel.is-solo{grid-template-columns:minmax(0,1fr)}.pa-cmp-bottom.is-one{grid-template-columns:minmax(0,1fr)}.pa-cmp.is-locked .pa-cmp-top{grid-template-columns:minmax(0,1fr)}
.pa-lock{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin-top:12px;padding:12px;border-radius:14px;background:var(--ah-soft);border:1px solid var(--ah-line)}
.pa-lock-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ah-blue-soft);color:var(--ah-blue)}.pa-lock-ico .ps-ico{width:22px;height:22px}
.pa-lock-txt{display:grid;gap:4px;min-width:0}.pa-lock-txt small{font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ah-muted)}
.pa-lock-txt b{font-size:15px;line-height:1.25;font-weight:800;color:var(--ah-ink)}.pa-lock-txt p{margin:0;font-size:12.5px;line-height:1.45;color:var(--ah-text)}
.pa-lock-up{justify-self:start;margin-top:6px;min-height:44px;padding:0 18px;border:0;border-radius:12px;background:var(--ah-blue);color:#fff;font:800 13.5px Inter,sans-serif;cursor:pointer}.pa-lock-up:focus-visible{outline:3px solid #9cc4ff;outline-offset:2px}
html[data-pro-theme="dark"] .pa-lock-up{color:#0b1324}
.pa-detail .pa-lock{margin-top:10px}
.pa-clist{list-style:none;margin:0;padding:0;display:grid}
.pa-crow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"ico main price go" "ico main pill go";align-items:center;gap:2px 10px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--ah-line);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.pa-clist>li:first-child .pa-crow{border-top:0}
.pa-cico{grid-area:ico;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ah-soft);color:var(--ah-muted)}.pa-cico .ps-ico{width:20px;height:20px}
.pa-cmain{grid-area:main;display:grid;gap:2px;min-width:0}.pa-cmain b{font-size:14.5px;font-weight:800;color:var(--ah-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pa-cmain small{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ah-muted)}.pa-cmain small .ps-ico{width:13px;height:13px}
.pa-cprice{grid-area:price;justify-self:end;font-size:14.5px;font-weight:800;color:var(--ah-ink);white-space:nowrap}.pa-cprice em{font-style:normal;font-size:12px;font-weight:600;color:var(--ah-muted)}
.pa-crow>.pa-pill{grid-area:pill;justify-self:end;padding:4px 9px;font-size:11.5px}.pa-crow>.pa-cprice:last-of-type{grid-row:1/span 2;align-self:center}
.pa-crow.is-lone{grid-template-areas:"ico main pill go";grid-template-columns:auto minmax(0,1fr) auto auto}
.pa-cgo{grid-area:go;color:#9aa8c0}.pa-cgo .ps-ico{width:16px;height:16px}
.pa-more-note{margin:4px 2px 0;font-size:12px;color:var(--ah-muted)}
.pa-kinds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.pa-kind{display:grid;align-content:start;gap:4px;padding:9px 5px 8px;border:1.5px solid var(--ah-line);border-radius:16px;background:var(--ah-card);box-shadow:var(--ah-shadow);text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0}
.pa-kind.is-on{border-color:var(--ah-blue)}
.pa-kname{display:grid;justify-items:start;gap:4px}.pa-kname .ps-ico{width:20px;height:20px;color:var(--ah-blue)}.pa-kname b{font-size:10px;line-height:1.2;font-weight:800;color:var(--ah-ink);overflow-wrap:normal;word-break:keep-all;letter-spacing:-.01em}
.pa-kind>small{font-size:10px;line-height:1.2;color:var(--ah-muted)}
.pa-kmargin{display:grid;gap:0;margin-top:2px}.pa-kmargin small{font-size:10.5px;color:var(--ah-muted)}.pa-kmargin b{font-size:15px;line-height:1.15;font-weight:800}
.pa-kmargin.is-ok b{color:var(--ah-green)}.pa-kmargin.is-warn b{color:var(--ah-orange)}.pa-kmargin.is-bad b{color:var(--ah-red)}.pa-kmargin.is-muted b{color:var(--ah-muted);font-size:12px}
.pa-kbar{display:block;height:5px;margin-top:4px;border-radius:999px;background:var(--ah-soft);overflow:hidden;position:relative}.pa-kbar::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w,0%);border-radius:999px;background:var(--ah-muted)}
.pa-kbar.is-ok::after{background:var(--ah-green)}.pa-kbar.is-warn::after{background:var(--ah-orange)}.pa-kbar.is-bad::after{background:var(--ah-red)}
.pa-others{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pa-oth{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ico title go" "sub sub sub" "range range range";align-items:center;gap:2px 8px;padding:10px;border:1px solid var(--ah-line);border-radius:16px;background:var(--ah-card);box-shadow:var(--ah-shadow);text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0}
.pa-oico{grid-area:ico;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--ah-orange-soft);color:var(--ah-orange);margin-bottom:4px}.pa-oico .ps-ico{width:20px;height:20px}
.pa-otitle{grid-area:title;font-size:13px;font-weight:800;color:var(--ah-ink);line-height:1.2;min-width:0}.pa-otitle small{display:block;font-weight:600;color:var(--ah-muted);font-size:11px}
.pa-osub{grid-area:sub;font-size:11px;color:var(--ah-muted);line-height:1.25}.pa-orange{grid-area:range;font-size:14.5px;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.pa-omain{display:grid;gap:1px;min-width:0}.pa-omain b{font-size:13px;font-weight:800;color:var(--ah-ink);line-height:1.2}.pa-omain>small{font-size:11px;color:var(--ah-muted);line-height:1.25}
.pa-oth>.ps-ico{grid-area:go;width:14px;height:14px;color:#9aa8c0}
.ag-actions.pa-actions{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.ag-actions.pa-actions.is-one{grid-template-columns:1fr}
.pa-actions .ag-act{font-size:13.5px;min-height:48px}.pa-actions .ag-act .ps-ico{width:18px;height:18px}.pa-actions .ag-act:disabled{opacity:.5}
.pa-empty{display:grid;justify-items:center;gap:6px;padding:22px 16px;text-align:center}.pa-empty>span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--ah-blue-soft);color:var(--ah-blue)}.pa-empty strong{font-size:15.5px;color:var(--ah-ink)}.pa-empty p{margin:0;font-size:13.5px;line-height:1.45;color:var(--ah-muted)}
.pa-add{display:inline-flex;align-items:center;gap:6px;min-height:46px;margin-top:6px;padding:0 18px;border:0;border-radius:14px;background:var(--ah-blue);color:#fff;font:800 14px Inter,sans-serif;cursor:pointer;box-shadow:0 6px 14px rgba(22,101,242,.25)}
.pa-back{display:inline-flex;align-items:center;gap:4px;justify-self:start;border:0;background:none;color:var(--ah-blue);font:800 14px Inter,sans-serif;cursor:pointer;padding:4px 2px}.pa-back .ps-ico{width:18px;height:18px}
.pa-dl{display:grid;margin:0 0 10px}.pa-dl>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--ah-line)}.pa-dl>div:first-child{border-top:0}.pa-dl dt{font-size:13px;color:var(--ah-muted)}.pa-dl dd{margin:0;font-size:13.5px;font-weight:800;color:var(--ah-ink);text-align:right}
.pa-state{margin:0;padding:10px 12px;border-radius:14px;font-size:13px;line-height:1.45;background:var(--ah-soft);color:var(--ah-text)}.pa-state.is-ok{background:var(--ah-green-soft)}.pa-state.is-warn{background:var(--ah-orange-soft)}.pa-state.is-bad{background:var(--ah-red-soft)}.pa-state.is-info{background:var(--ah-blue-soft)}
.pa-reco{list-style:none;margin:0;padding:0;display:grid;gap:10px}.pa-reco li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}.pa-reco li>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ah-blue-soft);color:var(--ah-blue);font-size:13px;font-weight:800}.pa-reco b{font-size:13.5px;color:var(--ah-ink)}.pa-reco p{margin:2px 0 0;font-size:12.5px;line-height:1.4;color:var(--ah-muted)}
.pa-olist{list-style:none;margin:0;padding:0;display:grid}.pa-olist>li:first-child .pa-orow{border-top:0}
.pa-orow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main price" "main pill";align-items:center;gap:3px 10px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--ah-line);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.pa-orow .pa-omain{grid-area:main}.pa-oprice{grid-area:price;display:grid;justify-items:end;gap:1px}.pa-oprice b{font-size:14px;font-weight:800;color:var(--ah-ink)}.pa-oprice small{font-size:11px;color:var(--ah-muted)}.pa-orow>.pa-pill{grid-area:pill;justify-self:end;padding:4px 9px;font-size:11.5px}
@media(max-width:350px){.pa-tabs button{font-size:9.5px}.pa-sel{grid-template-columns:1fr}.pa-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}.pa-others{grid-template-columns:1fr}}

/* Cotizaciones y Reportes de la app: pestañas con contador, filas desplegables y detalle (comparten las piezas ag-* y fz-*) */
.qt-tabs button{font-size:14px;white-space:nowrap;padding:0 4px}
.qt-row .fz-sub{white-space:normal}.qt-row .ag-main>b{white-space:normal;overflow:visible}
.qt-tabs button i,.ar-chips button i{font-style:normal;display:inline-block;min-width:18px;margin-left:3px;padding:1px 5px;border-radius:999px;background:rgba(22,101,242,.12);font-size:11.5px;font-weight:800}
.qt-tabs button.is-on i{background:rgba(255,255,255,.28);color:#fff}
.qt-item{list-style:none}.qt-item+.qt-item{border-top:1px solid var(--ah-line)}
.qt-row{grid-template-columns:auto minmax(0,1fr) auto auto}
.qt-ico,.ar-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--ah-blue-soft);color:var(--ah-blue);flex:none}.qt-ico .ps-ico,.ar-ico .ps-ico,.qt-ico svg,.ar-ico svg{width:20px;height:20px}
.qt-ico.is-ok,.ar-ico.is-ok{background:var(--ah-green-soft);color:var(--ah-green)}.qt-ico.is-warn,.ar-ico.is-warn{background:var(--ah-orange-soft);color:var(--ah-orange)}.qt-ico.is-bad,.ar-ico.is-bad{background:var(--ah-red-soft);color:var(--ah-red)}.ar-ico.is-muted{background:var(--ah-soft);color:var(--ah-muted)}
.ag-go.is-open{transform:rotate(90deg)}
.qt-detail{padding:2px 0 12px 50px;display:grid;gap:10px}
.qt-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:0}.qt-kv div{min-width:0}.qt-kv dt{font-size:11.5px;color:var(--ah-muted);font-weight:700}.qt-kv dd{margin:1px 0 0;font-size:13.5px;color:var(--ah-ink);font-weight:700;overflow-wrap:anywhere}
.qt-note{margin:0;font-size:13.5px;line-height:1.5;color:var(--ah-text)}.qt-note.is-none{color:var(--ah-muted)}
.qt-items{list-style:none;margin:0;padding:0;display:grid;gap:6px}.qt-items li{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;color:var(--ah-text)}.qt-items small{display:block;font-size:11.5px;color:var(--ah-muted)}.qt-items b{white-space:nowrap;color:var(--ah-ink)}
.qt-total{display:grid;gap:3px;justify-items:end;font-size:13px;color:var(--ah-muted)}.qt-total b{color:var(--ah-ink)}.qt-total .is-big{font-size:16px;font-weight:800;color:var(--ah-ink)}
.qt-actions{display:flex;flex-wrap:wrap;gap:8px}.qt-actions .fz-btn{flex:1 1 130px;min-height:44px}
.qt-more{display:block;margin:4px auto 6px;padding:8px 12px}
.qt-lock{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;padding:18px;border:1px solid var(--ah-line);border-radius:18px;background:var(--ah-card)}
.qt-lock-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--ah-blue-soft);color:var(--ah-blue)}.qt-lock-ico .ps-ico,.qt-lock-ico svg{width:22px;height:22px}
.qt-lock div{display:grid;gap:6px;min-width:0}.qt-lock small{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ah-muted)}
.qt-lock h3{margin:0;font-size:17px;line-height:1.25;color:var(--ah-ink)}.qt-lock p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ah-text)}.qt-lock .fz-btn{justify-self:start;padding:0 20px;margin-top:4px}
.ar-search{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border-radius:14px;border:1px solid var(--ah-line);background:var(--ah-card)}
.ar-search-ico{display:grid;place-items:center;color:var(--ah-muted)}.ar-search-ico .ps-ico,.ar-search-ico svg{width:18px;height:18px}
.ar-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ah-ink);font:inherit;font-size:15px;height:44px}
.ar-clear{border:0;background:none;color:var(--ah-muted);cursor:pointer;padding:6px;display:grid;place-items:center}.ar-clear .ps-ico,.ar-clear svg{width:16px;height:16px}
.ar-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.ar-chips::-webkit-scrollbar{display:none}
.ar-chips button{flex:none;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-muted);font-size:13.5px;font-weight:700;cursor:pointer}
.ar-chips button.is-on{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff}.ar-chips button.is-on i{background:rgba(255,255,255,.28);color:#fff}
.ar-sum{list-style:none;margin:2px 0 10px;padding:10px 12px;display:grid;gap:8px;border-radius:14px;background:var(--ah-soft)}
.ar-sum li{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:8px;font-size:12.5px;color:var(--ah-muted)}
.ar-sum li>span{display:inline-flex;align-items:center;gap:5px;font-weight:700}.ar-sum li>span .ps-ico,.ar-sum li>span svg{width:14px;height:14px;flex:none}
.ar-val{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}.ar-val b{color:var(--ah-ink);font-weight:700;overflow-wrap:anywhere}
.ar-finds{list-style:none;margin:0;padding:0;display:grid;gap:10px}.ar-finds li{display:grid;gap:3px}.ar-finds .ag-pill{justify-self:start}.ar-finds li b{font-size:14px;color:var(--ah-ink)}.ar-finds p{margin:0;font-size:13px;color:var(--ah-text)}.ar-finds small{color:var(--ah-muted)}
.ar-photos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ar-photos img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid var(--ah-line)}
@media(max-width:380px){.qt-detail{padding-left:0}.ar-sum li{grid-template-columns:104px minmax(0,1fr)}}

/* «Más» de la app: tarjetas de las secciones que no caben en la barra inferior */
.am-grid{--ah-card:#fff;--ah-line:#e6edf5;--ah-soft:#f3f7fd;--ah-ink:#0b1f4d;--ah-muted:#6b7a95;--ah-blue:#1665f2;--ah-blue-soft:#e6f0ff;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.am-tile{display:grid;align-content:start;justify-items:start;gap:8px;padding:12px;min-height:104px;border-radius:16px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-ink);text-align:left;cursor:pointer;font:inherit;min-width:0}
.am-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ah-blue-soft);color:var(--ah-blue)}.am-ico svg{width:22px;height:22px}
.am-txt{display:grid;gap:2px;min-width:0}.am-txt b{font-size:14.5px;line-height:1.2;color:var(--ah-ink)}.am-txt small{font-size:11.5px;line-height:1.3;color:var(--ah-muted)}
.am-tile.active{border-color:var(--ah-blue);background:var(--ah-blue-soft)}
@media(max-width:340px){.am-grid{grid-template-columns:1fr}}

/* Nuevo cliente / Editar ficha en la app: dos pasos (cliente y piscina), el mismo flujo para crear y para editar */
.cf form{display:grid;gap:14px;min-width:0;max-width:100%}.cf-card-box,.cf-eq,.cf-cards,.cf-grid2{min-width:0;max-width:100%;box-sizing:border-box}
.cf-title{margin:0;text-align:center;font-size:23px;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.cf-svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cf-steps{position:relative;display:grid;grid-template-columns:1fr 1fr;margin:0 0 2px}
.cf-line{position:absolute;top:16px;left:25%;right:25%;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--ah-blue) 0 50%,var(--ah-line) 50%)}
.cf-steps.is-2 .cf-line{background:var(--ah-blue)}
.cf-step{position:relative;z-index:1;display:grid;justify-items:center;align-content:start;gap:7px;text-align:center;color:var(--ah-muted);font-size:13px;font-weight:600;line-height:1.25}
.cf-step i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ah-card);border:2px solid var(--ah-line);color:var(--ah-muted);font-style:normal;font-weight:800;font-size:15px}
.cf-step i .cf-svg{width:18px;height:18px;stroke-width:3}
.cf-step.is-on i,.cf-step.is-done i{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff}
.cf-step.is-on i{box-shadow:0 4px 10px rgba(22,101,242,.3)}
.cf-step.is-on span{color:var(--ah-blue);font-weight:700}.cf-step.is-done span{color:var(--ah-ink)}
.cf-card-box{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:22px;box-shadow:var(--ah-shadow);padding:18px 16px}
.cf .cf-card-box h2{margin:0;font-size:16.5px;line-height:1.25;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.cf .cf-sub{margin:4px 0 14px;font-size:13.5px;line-height:1.45;color:var(--ah-muted)}.cf .cf-fine,.cf .cf-fast,.cf .cf-calc p{color:var(--ah-muted)}.cf .cf-calc p{color:var(--ah-ink)}
.cf-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:end;margin-bottom:12px}
.cf-ico{display:grid;place-items:center;height:46px;color:var(--ah-ink)}.cf-ico .cf-svg{width:24px;height:24px;stroke-width:1.6;opacity:.85}
.cf-f{display:grid;gap:5px;min-width:0}.cf-l{font-size:13.5px;font-weight:600;color:var(--ah-ink)}.cf-l b{color:#e5484d}
.cf-in{width:100%;box-sizing:border-box;min-height:46px;padding:0 12px;border:1px solid var(--ah-line);border-radius:12px;background:var(--ah-card);color:var(--ah-ink);font:inherit;font-size:15px}
.cf-in::placeholder{color:#9aa8bd}
.cf-in:focus{outline:2px solid rgba(22,101,242,.35);outline-offset:0;border-color:var(--ah-blue)}
.cf-in:disabled{background:var(--ah-soft);color:var(--ah-muted);opacity:1;-webkit-text-fill-color:var(--ah-muted)}
.cf-sel{position:relative;display:block}.cf-sel select{appearance:none;-webkit-appearance:none;padding-right:34px;text-overflow:ellipsis}
.cf-sel-chev{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;width:18px;height:18px;color:var(--ah-ink)}
/* Teléfono con código de país (etapa 302): «CL +56» siempre entero a la izquierda (la lista nativa va encima, transparente) y el número a la derecha. */
.cf-phone{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}
.cf-ccbox{position:relative;display:flex;align-items:center;min-width:92px;min-height:46px;border:1px solid var(--ah-line);border-radius:12px;background:var(--ah-card)}
.cf-ccv{display:block;padding:0 26px 0 12px;font-size:14px;font-weight:600;line-height:1;white-space:nowrap;color:var(--ah-ink);pointer-events:none}
.cf-ccbox::after{content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;margin-top:-5px;border:solid var(--ah-ink);border-width:0 2px 2px 0;transform:rotate(45deg);pointer-events:none;opacity:.7}
.cf-cc{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:16px;color:var(--ah-ink);background:var(--ah-card)}
.cf-ccbox:focus-within{outline:2px solid rgba(22,101,242,.35);border-color:var(--ah-blue)}
.cf-ccbox:has(.cf-cc:disabled){background:var(--ah-soft)}.cf-ccbox:has(.cf-cc:disabled) .cf-ccv{color:var(--ah-muted)}.cf-ccbox:has(.cf-cc:disabled)::after{display:none}.cf-ccbox:has(.cf-cc:disabled) .cf-cc{cursor:default}
.cf-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px 12px;align-items:end}.cf-col .cf-l{font-size:12.5px;line-height:1.25}.cf-col{min-width:0}
.cf-ctl{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 10px;border:1px solid var(--ah-line);border-radius:12px;background:var(--ah-card)}
.cf-ctl:focus-within{outline:2px solid rgba(22,101,242,.35);border-color:var(--ah-blue)}
.cf-ctl>.cf-svg{color:var(--ah-blue);width:21px;height:21px}
.cf-ctl .cf-in{border:0;outline:0;min-height:44px;padding:0;background:transparent;flex:1;min-width:0;border-radius:0}
.cf-ctl.is-auto{background:var(--ah-soft)}
.cf-ctl-sel .cf-sel{flex:1;min-width:0}.cf-ctl-sel .cf-sel-chev{right:0}.cf-ctl-sel .cf-sel select{padding-right:22px}
.cf-tip{border:0;background:none;color:var(--ah-muted);padding:2px;display:grid;place-items:center;cursor:pointer}.cf-tip .cf-svg{width:19px;height:19px}
.cf-row.is-bad .cf-in,.cf-col.is-bad .cf-ctl{border-color:#e5484d}
.cf-note{display:flex;gap:10px;align-items:flex-start;margin-top:6px;padding:12px;border-radius:14px;background:var(--ah-blue-soft)}
.cf-tick{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--ah-blue);color:#fff;flex:none}.cf-tick .cf-svg{width:16px;height:16px;stroke-width:3}
.cf-note b{display:block;font-size:13.5px;line-height:1.3;color:var(--ah-ink)}.cf-note small{display:block;margin-top:3px;font-size:12px;line-height:1.4;color:var(--ah-muted)}
.cf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 14px;border-radius:14px;border:1.5px solid var(--ah-line);background:var(--ah-card);color:var(--ah-ink);font-size:16px;font-weight:800;cursor:pointer}
.cf-btn.is-primary{background:linear-gradient(180deg,#2b7bff,#1665f2);border-color:transparent;color:#fff;box-shadow:0 10px 24px rgba(22,101,242,.28)}
.cf-btn:disabled{opacity:.6;cursor:default}.cf-wide{width:100%}
.cf-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:10px}
.cf-fast{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;font-size:12.5px;color:var(--ah-muted)}.cf-fast .cf-svg{width:14px;height:14px;color:var(--ah-blue)}
.cf-err{margin:0;padding:10px 12px;border-radius:12px;background:var(--ah-red-soft);color:var(--ah-red);font-size:13.5px;font-weight:600}
.cf-fine{margin:0 0 12px;font-size:12.5px;line-height:1.4;color:var(--ah-muted)}
.cf-calc{display:flex;gap:10px;align-items:center;padding:11px 12px;margin-bottom:14px;border-radius:14px;background:var(--ah-blue-soft)}
.cf-calc>span{color:var(--ah-blue);display:grid;place-items:center}.cf-calc>span .cf-svg{width:26px;height:26px}
.cf-calc p{margin:0;font-size:12.5px;line-height:1.4;color:var(--ah-ink)}
.cf-eq{margin-top:18px}
.cf-eq-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cf-eq-head h3{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin:0;font-size:15px;font-weight:800;color:var(--ah-ink)}.cf-eq-ico{color:var(--ah-blue);display:grid;place-items:center}.cf-eq-ico .cf-svg{width:24px;height:24px}
.cf-link{display:inline-flex;align-items:center;gap:2px;border:0;background:none;color:var(--ah-blue);font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}.cf-link .cf-svg{width:14px;height:14px}
.cf-cards{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 6px;margin:0 -2px;scroll-snap-type:x proximity;scrollbar-width:none}.cf-cards::-webkit-scrollbar{display:none}
.cf-card{position:relative;flex:none;width:104px;scroll-snap-align:start;display:grid;justify-items:center;gap:6px;padding:10px 8px 8px;border:1.5px solid var(--ah-line);border-radius:16px;background:var(--ah-card)}
.cf-card.is-on{border-color:var(--ah-blue);box-shadow:0 0 0 3px rgba(22,101,242,.12)}
.cf-card b{display:grid;align-items:center;min-height:30px;font-size:12px;line-height:1.2;color:var(--ah-ink);text-align:center}
.cf-art{width:64px;height:64px;display:block}
.cf-badge{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ah-blue);color:#fff}.cf-badge .cf-svg{width:14px;height:14px;stroke-width:3}
.cf-pick{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:32px;border-radius:10px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-ink);font-size:11px;font-weight:700;cursor:pointer;padding:0 4px;white-space:nowrap}
.cf-pick.is-on{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff}.cf-pick .cf-svg{width:13px;height:13px;stroke-width:2.4}
.cf-catalog{display:grid;gap:12px;margin-bottom:12px}
.cf-crow{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center}.cf-crow .cf-art{width:52px;height:52px}
.cf-crow b{display:block;font-size:14px;color:var(--ah-ink)}.cf-crow small{display:block;color:var(--ah-muted);font-size:12px}.cf-crow .cf-pick{width:auto;padding:0 12px}
/* Catálogo real de equipos (bombas, filtros… con su foto) y equipos agregados */
.cf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cf-cat{min-width:0;max-width:100%;box-sizing:border-box}
.cf-cat-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.cf-cat-tabs::-webkit-scrollbar{display:none}
.cf-cat-tabs button{flex:none;min-height:36px;padding:0 12px;border:1px solid var(--ah-line);border-radius:99px;background:var(--ah-card);color:var(--ah-ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.cf-cat-tabs button.is-on{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff}.cf-cat-tabs button i{font-style:normal;opacity:.75;font-size:11px;margin-left:3px}
.cf-cat-tools{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px}
@media(max-width:520px){.cf-cat-tools{grid-template-columns:minmax(0,1fr)}}
.cf-cat-search{position:relative;display:block;min-width:0}.cf-cat-search .cf-svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ah-muted);pointer-events:none}.cf-cat-search .cf-in{padding-left:34px}
.cf-cat .cf-fine{margin:0}
.cf-cat-list{display:grid;gap:10px;max-height:46vh;overflow-y:auto;padding-right:2px;-webkit-overflow-scrolling:touch}
.cf-real{padding:8px;border:1px solid var(--ah-line);border-radius:14px;background:var(--ah-card)}
.cf-thumb{display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background:#fff;border:1px solid var(--ah-line);overflow:hidden}.cf-thumb img{display:block;width:100%;height:100%;object-fit:contain}.cf-thumb .cf-art{width:44px;height:44px}
.cf-real-txt{display:grid;gap:1px;min-width:0}.cf-real-txt small{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ah-blue)}
.cf-real-txt b{font-size:13.5px;line-height:1.25;color:var(--ah-ink);overflow-wrap:anywhere}.cf-real-txt em{font-style:normal;font-size:12px;line-height:1.3;color:var(--ah-muted)}
.cf-crow.cf-real .cf-pick{align-self:center}
.cf-more{justify-self:center;min-height:40px}
.cf-man-msg{margin:0;min-height:0}.cf-man-msg.is-ok{color:#13874b;font-weight:700}.cf-man-msg.is-bad{color:#c62828;font-weight:700}
.cf-manual summary{cursor:pointer;color:var(--ah-blue);font-weight:700;font-size:13.5px;padding:4px 0}.cf-manual-grid{display:grid;gap:8px;margin-top:10px}.cf-manual-grid .cf-btn{min-height:44px;font-size:14.5px}
.cf-picked-box{min-width:0}.cf-picked-head{display:flex;align-items:center;justify-content:space-between;margin:14px 0 8px;font-size:14px;color:var(--ah-ink)}.cf-picked-head span{font-size:12px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--ah-blue-soft);color:var(--ah-blue)}
.cf-picked{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cf-picked li{display:grid;grid-template-columns:56px minmax(0,1fr) 34px;gap:10px;align-items:center;padding:8px;border:1px solid var(--ah-line);border-radius:14px;background:var(--ah-card)}
.cf-x{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-muted);cursor:pointer}.cf-x .cf-svg{width:16px;height:16px;stroke-width:2.4}
/* Ventana del catálogo de equipos: el listado se desplaza por dentro y «Listo» queda siempre visible */
.modal.cf-modal{display:flex;flex-direction:column;overflow:hidden}
.modal.cf-modal .modal-header{flex:none}
.modal.cf-modal .modal-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding-bottom:0}
.modal.cf-modal .cf-cat{flex:none;display:flex;flex-direction:column;margin-bottom:12px}
.modal.cf-modal .cf-cat-tabs,.modal.cf-modal .cf-cat-tools,.modal.cf-modal .cf-cat-count,.modal.cf-modal .cf-manual{flex:none}
.modal.cf-modal .cf-cat.is-manual .cf-cat-list{height:clamp(80px,calc(100vh - 700px),200px);height:clamp(80px,calc(100dvh - 700px),200px)}
.modal.cf-modal .cf-cat-list{flex:none;max-height:none;overflow-y:auto;height:clamp(96px,calc(100vh - 440px),420px);height:clamp(96px,calc(100dvh - 440px),420px)}
.modal.cf-modal .ps-actions{flex:none;position:sticky;bottom:0;z-index:3;padding:10px 0 17px;margin-top:auto;background:#fff}
@media(min-width:768px){.modal.cf-modal .ps-actions{padding-bottom:25px}}
.modal.cf-modal .ps-actions .btn{min-height:48px;width:100%}
.cf-month{display:grid;gap:4px}.cf-month>span:first-child{font-size:12.5px;font-weight:700;color:var(--ah-muted)}.cf-month.is-bad .cf-in{border-color:#e5484d}
/* Foto de la piscina del cliente (tomar foto o elegir de la galería) */
.cf-photo{margin-top:18px;min-width:0;max-width:100%;box-sizing:border-box}
.cf-opt{flex:none;font-size:11px;font-weight:700;color:var(--ah-muted);padding:3px 8px;border-radius:99px;background:var(--ah-soft)}
.cf-photo-view{position:relative;margin:0 0 10px;border-radius:16px;overflow:hidden;background:var(--ah-soft);border:1px solid var(--ah-line)}
.cf-photo-img{display:block;width:100%;max-height:230px;object-fit:cover}
.cf-photo-x{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:0;background:rgba(11,31,77,.72);color:#fff;cursor:pointer}.cf-photo-x .cf-svg{width:18px;height:18px;stroke-width:2.4}
.cf-photo-empty{display:grid;justify-items:center;align-content:center;gap:6px;min-height:110px;margin:0 0 10px;padding:8px;border:1.5px dashed var(--ah-line);border-radius:16px;background:var(--ah-soft);color:var(--ah-muted);font-size:13px;text-align:center}.cf-photo-empty .cf-svg{width:30px;height:30px;color:var(--ah-blue);stroke-width:1.5}
.cf-photo-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cf-photo-btn{min-width:0;min-height:46px;padding:0 8px;font-size:13.5px;line-height:1.15;text-align:center;cursor:pointer}.cf-photo-btn.is-dis{opacity:.6;pointer-events:none}.cf-photo-btn .cf-svg{width:19px;height:19px;color:var(--ah-blue)}
.cf-photo .cf-fine{margin:8px 0 0}.cf-photo .cf-err{margin-top:8px}
.ps-pool-photo{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:14px;margin:0 0 12px}
/* Paso 3 del cliente nuevo: programar la visita (visita única o plan mensual con cambio automático de temporada alta a baja) */
.cf-steps.is-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.cf-steps.is-5 .cf-step{font-size:11px;padding:0 1px;overflow-wrap:anywhere}
.cf-steps.is-5 .cf-line{left:10%;right:10%;background:linear-gradient(90deg,var(--ah-blue) 0 var(--p,0%),var(--ah-line) var(--p,0%))}
.cf-steps.is-5.at-2{--p:25%}.cf-steps.is-5.at-3{--p:50%}.cf-steps.is-5.at-4{--p:75%}.cf-steps.is-5.at-5{--p:100%}
.cf-seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:4px;margin-bottom:14px;border-radius:14px;background:var(--ah-soft);border:1px solid var(--ah-line)}
.cf-seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:42px;border:0;border-radius:11px;background:transparent;color:var(--ah-muted);font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.cf-seg button.is-on{background:var(--ah-card);color:var(--ah-blue);box-shadow:0 1px 4px rgba(11,31,77,.14)}.cf-seg .cf-svg{width:18px;height:18px}
.cf-actions.is-visit{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}.cf-actions.is-visit .cf-btn{padding:0 8px;font-size:15px;line-height:1.15;text-align:center}.cf-actions.is-visit .cf-btn.is-ghost{white-space:nowrap}
.cf-plan{display:grid;gap:12px;min-width:0;margin:2px 0 12px}
.cf-auto{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;box-sizing:border-box;padding:12px;border:1.5px solid var(--ah-line);border-radius:16px;background:var(--ah-card);color:inherit;font:inherit;text-align:left;cursor:pointer}
.cf-auto.is-on{border-color:var(--ah-blue);background:var(--ah-blue-soft)}
.cf-auto-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ah-blue-soft);color:var(--ah-blue)}.cf-auto.is-on .cf-auto-ico{background:var(--ah-card)}
.cf-auto-txt{min-width:0}.cf-auto-txt b{display:block;font-size:14px;line-height:1.3;color:var(--ah-ink)}.cf-auto-txt small{display:block;margin-top:3px;font-size:12px;line-height:1.4;color:var(--ah-muted)}
.cf-switch{position:relative;display:block;width:46px;height:28px;border-radius:99px;background:#c5d0e0;transition:background .15s}
.cf-switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.cf-auto.is-on .cf-switch{background:var(--ah-blue)}.cf-auto.is-on .cf-switch::after{transform:translateX(18px)}
.cf-season{display:grid;gap:8px;min-width:0;box-sizing:border-box;padding:12px;border:1.5px solid var(--ah-line);border-radius:16px;background:var(--ah-card)}
.cf-season.is-now{border-color:var(--ah-blue)}
.cf-season-head{display:flex;align-items:center;gap:10px}.cf-season-head>span:nth-child(2){flex:1;min-width:0}
.cf-season-head b{display:block;font-size:14px;color:var(--ah-ink)}.cf-season-head small{display:block;font-size:12px;color:var(--ah-muted)}
.cf-season-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;flex:none}.cf-season-ico .cf-svg{width:20px;height:20px}
.cf-season.is-high .cf-season-ico{background:#fff1d6;color:#b45f06}.cf-season.is-low .cf-season-ico{background:var(--ah-blue-soft);color:var(--ah-blue)}
.cf-season-head em{flex:none;font-style:normal;font-size:11px;font-weight:800;padding:3px 8px;border-radius:99px;background:var(--ah-blue);color:#fff;white-space:nowrap}
.cf-season .cf-fine{margin:0}
.cf-per{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cf-chip{display:grid;justify-items:center;align-content:center;gap:3px;min-width:0;min-height:58px;padding:6px 3px;border:1.5px solid var(--ah-line);border-radius:12px;background:var(--ah-card);color:var(--ah-ink);font:inherit;cursor:pointer}
.cf .cf-chip b{font-size:20px;line-height:1;color:inherit}.cf-chip small{font-size:10.5px;line-height:1.15;color:var(--ah-muted);text-align:center;overflow-wrap:anywhere}
.cf-chip.is-on{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff}.cf-chip.is-on small{color:rgba(255,255,255,.9)}
.cf .cf-calc.cf-sum{align-items:flex-start;margin:4px 0 0}.cf-sum ul{list-style:none;margin:0;padding:0;display:grid;gap:5px;min-width:0;font-size:12.5px;line-height:1.4;color:var(--ah-ink)}
.ps-menu-btn.is-back .pro-ico,.ps-menu-btn.is-back svg{width:24px;height:24px}

/* Condiciones del servicio al agregar un cliente: tarjeta del cliente, menú, secciones, acuerdos y «Crear cliente» */
.cf-tico{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--ah-blue-soft);color:var(--ah-blue)}
.cf-tico .cf-svg{width:22px;height:22px}.cf-tico.is-big{width:46px;height:46px;border-radius:14px}.cf-tico.is-sm{width:30px;height:30px;border-radius:9px}.cf-tico.is-sm .cf-svg{width:17px;height:17px}
.cf-tico.is-green,.cf-tico.is-teal{background:var(--ah-green-soft);color:var(--ah-green)}.cf-tico.is-yellow,.cf-tico.is-orange{background:var(--ah-orange-soft);color:var(--ah-orange)}.cf-tico.is-slate{background:var(--ah-line);color:var(--ah-muted)}
.cf-tcard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--ah-line);border-radius:18px;background:var(--ah-card);box-shadow:var(--ah-shadow);min-width:0}
.cf-tcard-img{width:64px;height:56px;border-radius:12px;object-fit:cover;background:var(--ah-soft)}.cf-tcard-img.is-none{display:grid;place-items:center;color:var(--ah-blue)}.cf-tcard-img.is-none .cf-svg{width:28px;height:28px}
.cf-tcard-main{display:grid;gap:4px;min-width:0}.cf-tcard-main b{font-size:17px;line-height:1.2;color:var(--ah-ink);overflow-wrap:anywhere}
.cf-tcard-main span{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--ah-muted)}.cf-tcard-main .cf-svg{width:14px;height:14px;flex:none}
.cf-tcard-side{display:grid;gap:5px;justify-items:end;text-align:right;min-width:0}.cf-tcard-side em{font-style:normal;padding:3px 9px;border-radius:999px;background:var(--ah-green-soft);color:var(--ah-green);font-size:12px;font-weight:700;white-space:nowrap}
.cf-tcard-side small{font-size:12px;color:var(--ah-muted);white-space:nowrap}
.cf-thead{display:flex;gap:12px;align-items:center;margin-bottom:12px}.cf-thead h2{margin:0;font-size:19px;line-height:1.2;font-weight:800;color:var(--ah-ink)}.cf-thead .cf-sub{margin:3px 0 0}
.cf .cf-thub h2{font-size:19px}
.cf-tmenu,.cf-ags{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cf-trow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:11px 12px;border:1px solid var(--ah-line);border-radius:14px;background:var(--ah-soft);color:var(--ah-ink);font:inherit;text-align:left;cursor:pointer}
.cf-trow-txt{display:grid;gap:2px;min-width:0}.cf-trow-txt b{font-size:15.5px;line-height:1.25}.cf-trow-txt small{font-size:12.5px;line-height:1.3;color:var(--ah-muted)}.cf-trow-go{width:18px;height:18px;color:var(--ah-muted)}
.cf-tsecs{display:grid;gap:12px}.cf-tsecs>.is-bad{border-radius:18px;outline:2px solid #e5484d;outline-offset:2px}
.cf-tsec{display:grid;gap:10px;padding:14px;border:1px solid var(--ah-line);border-radius:18px;background:var(--ah-card);box-shadow:var(--ah-shadow);min-width:0;scroll-margin-top:12px}.cf-tsec.is-focus{border-color:var(--ah-blue)}
.cf-tsec h3{display:flex;align-items:center;gap:10px;margin:0;font-size:16.5px;line-height:1.25;font-weight:800;color:var(--ah-ink)}.cf-tsec h3>span:not(.cf-tico){flex:1;min-width:0}
.cf-help{flex:none;display:grid;place-items:center;width:26px;height:26px;border:1.5px solid var(--ah-line);border-radius:50%;background:var(--ah-card);color:var(--ah-muted);font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.cf-pks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cf-pk{position:relative;display:grid;justify-items:center;align-content:center;gap:5px;min-width:0;min-height:86px;padding:10px 4px;border:1.5px solid var(--ah-line);border-radius:14px;background:var(--ah-soft);color:var(--ah-ink);font:inherit;text-align:center;cursor:pointer}
.cf-pk-ico{width:26px;height:26px;color:var(--ah-blue)}.cf-pk b{font-size:13.5px;line-height:1.2;font-weight:700;overflow-wrap:anywhere}.cf-pk small{font-size:11.5px;line-height:1.2;color:var(--ah-muted)}
.cf-pk.is-on{border-color:var(--ah-blue);background:var(--ah-blue-soft);box-shadow:0 0 0 1px var(--ah-blue) inset}
.cf-pk-ck{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ah-blue);color:#fff}.cf-pk-ck .cf-svg{width:12px;height:12px;stroke-width:3.2}
.cf-cks{display:grid;gap:4px}.cf-ck{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:4px 2px;border:0;background:transparent;color:var(--ah-ink);font:inherit;font-size:15px;text-align:left;cursor:pointer}
.cf-ck-box{flex:none;display:grid;place-items:center;width:24px;height:24px;border:2px solid var(--ah-line);border-radius:7px;background:var(--ah-card);color:#fff}.cf-ck-box .cf-svg{width:15px;height:15px;stroke-width:3.4}
.cf-ck.is-on .cf-ck-box,.cf-ag.is-on .cf-ck-box{background:var(--ah-blue);border-color:var(--ah-blue)}
.cf-tpay{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cf-tpay.is-one{grid-template-columns:minmax(0,1fr)}.cf-tmethod{margin-top:2px}
.cf-tpay .is-bad .cf-in,.cf-f.is-bad .cf-in{border-color:#e5484d}
.cf-money{position:relative;display:block}.cf-money b{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:15px;color:var(--ah-muted);pointer-events:none}.cf-money .cf-in{padding-left:26px}
.cf-tfor{margin:0;text-align:center}
.cf-agree{display:grid;gap:12px}.cf-agree .cf-thead{margin-bottom:2px}
.cf-ag{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:11px 12px;border:1px solid var(--ah-line);border-radius:16px;background:var(--ah-soft);color:var(--ah-ink);font:inherit;text-align:left;cursor:pointer}
.cf-ag-txt{display:grid;gap:3px;min-width:0}.cf-ag-txt b{font-size:15px;line-height:1.25}.cf-ag-txt small{font-size:12.5px;line-height:1.35;color:var(--ah-muted)}
.cf-ag-note{font-style:normal;font-size:12px;line-height:1.35;font-weight:600;color:var(--ah-orange)}
.cf-tnote{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px;border-radius:14px;background:var(--ah-blue-soft);color:var(--ah-text);font-size:13px;line-height:1.4}.cf-tnote .cf-svg{flex:none;width:22px;height:22px;color:var(--ah-blue)}
.cf-create{display:grid;justify-items:center;gap:3px;width:100%;min-height:68px;padding:10px 14px;border:0;border-radius:16px;background:linear-gradient(180deg,#17a35f,#138a4f);color:#fff;font:inherit;cursor:pointer;box-shadow:0 10px 24px rgba(19,138,79,.28)}
.cf-create-main{display:inline-flex;align-items:center;gap:8px;font-size:18px;font-weight:800}.cf-create-main .cf-svg{width:24px;height:24px}.cf .cf-create small{font-size:12.5px;color:#fff;opacity:.95}.cf-create:disabled{opacity:.65;cursor:default}
@media (max-width:360px){.cf-pk b{font-size:12.5px}.cf-tcard{grid-template-columns:auto minmax(0,1fr)}.cf-tcard-side{grid-column:1/-1;justify-items:start;text-align:left}}

/* Número de cada piscina del día (por horario): en «Próxima piscina» y en la agenda de «Hoy» */
.ah-num{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:50%;background:var(--ah-blue);color:#fff;font-size:13px;font-weight:800;line-height:1;vertical-align:middle}
.ah-nth{display:flex;align-items:center;margin-top:-2px;font-size:13px;font-weight:600;color:var(--ah-muted)}
.ag-n{display:grid;place-items:center;width:22px;height:22px;margin-bottom:2px;border-radius:50%;background:var(--ah-blue);color:#fff;font-style:normal;font-size:12px;font-weight:800;line-height:1}
.ag-note{margin:0 0 6px;font-size:13px;line-height:1.4;font-weight:600;color:var(--ah-text)}
/* Logo de la barra de la app: uno para el tema claro y otro para el oscuro (si se subieron los dos) */
.bl-on-dark{display:none}

/* Agenda de la app, mes (como la imagen): calendario con las visitas de cada día, resumen del mes, notificaciones de clientes, recordatorios y botones. */
.ag.is-month{--ag-dot-programada:#1665f2;--ag-dot-realizada:#22a95f;--ag-dot-en_curso:#8a4fe0;--ag-dot-atrasada:#f59e0b;--ag-dot-reprogramada:#e5483d}
.ag-head{display:flex;align-items:center;gap:8px}
.ag-head .ag-tabs{flex:none;grid-template-columns:repeat(3,auto);gap:2px;padding:3px}
.ag-head .ag-tabs button{min-height:38px;padding:0 8px;font-size:13px;border-radius:11px;white-space:nowrap}
.ag-mnav{flex:1 1 auto;display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0}
.ag-mnav>button{flex:none;display:grid;place-items:center;width:30px;height:40px;border-radius:12px;border:1px solid var(--ah-line);background:var(--ah-card);color:var(--ah-ink);cursor:pointer;padding:0}.ag-mnav>button svg{width:17px;height:17px}
.ag-monthsel{position:relative;flex:1 0 112px;min-width:0;max-width:150px;display:flex;align-items:center;height:40px;border:1px solid var(--ah-line);border-radius:12px;background:var(--ah-card)}
.ag-mlabel{padding:0 22px 0 8px;font:700 13px/1 Inter,sans-serif;color:var(--ah-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-monthsel select{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;background:transparent;font-size:16px;cursor:pointer}
.ag-monthsel svg{position:absolute;right:5px;width:15px;height:15px;color:var(--ah-ink);pointer-events:none}
.ag-cal{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:18px;box-shadow:var(--ah-shadow);overflow:hidden}
.ag-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--ah-line)}
.ag-dow span{padding:9px 0;text-align:center;font-size:12.5px;font-weight:700;color:var(--ah-ink)}
.ag-grid{display:grid}
.ag-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.ag-week+.ag-week{border-top:1px solid var(--ah-line)}
.ag-cell{display:grid;grid-template-rows:auto auto 1fr;justify-items:center;gap:1px;min-height:64px;padding:6px 1px 5px;border:0;border-left:1px solid var(--ah-line);background:transparent;color:var(--ah-ink);cursor:pointer;min-width:0;font-family:inherit}
.ag-week .ag-cell:first-child{border-left:0}
.ag-cell b{font-size:14.5px;font-weight:800;line-height:1.15}
.ag-cell small{font-size:10px;line-height:1.2;color:var(--ah-muted);font-weight:600;white-space:nowrap}
.ag-cell.is-empty small{opacity:.7}
.ag-cell.is-out b,.ag-cell.is-out small{opacity:.45}
.ag-dots{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:3px;min-height:7px;padding:0 3px}
.ag-dots i,.ag-legend i{display:block;width:6px;height:6px;border-radius:50%;background:var(--ag-dot-programada)}
.ag-dots i.is-realizada,.ag-legend i.is-realizada{background:var(--ag-dot-realizada)}.ag-dots i.is-en_curso,.ag-legend i.is-en_curso{background:var(--ag-dot-en_curso)}.ag-dots i.is-atrasada,.ag-legend i.is-atrasada{background:var(--ag-dot-atrasada)}.ag-dots i.is-reprogramada,.ag-legend i.is-reprogramada{background:var(--ag-dot-reprogramada)}
.ag-cell.is-sel{background:var(--ah-blue);border-radius:12px;border-color:transparent;box-shadow:0 5px 12px rgba(22,101,242,.3);position:relative}
.ag-cell.is-sel+.ag-cell{border-left-color:transparent}
.ag-cell.is-sel b,.ag-cell.is-sel small{color:#fff;opacity:1}
.ag-cell.is-sel .ag-dots i{box-shadow:0 0 0 1.5px rgba(255,255,255,.9)}
.ag-cell.is-today:not(.is-sel) b{color:var(--ah-blue)}
.ag-legend{list-style:none;margin:0;padding:8px 10px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;border-top:1px solid var(--ah-line);font-size:10.5px;color:var(--ah-muted)}
.ag-legend li{display:flex;align-items:center;gap:5px}
.ag-card{background:var(--ah-card);border:1px solid var(--ah-line);border-radius:18px;box-shadow:var(--ah-shadow);padding:14px 12px 10px;min-width:0}
.ag-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.ag .ag-card h2{display:flex;align-items:center;gap:8px;margin:0;font-size:17px!important;line-height:1.2!important;font-weight:800;color:var(--ah-ink);letter-spacing:-.01em}
.ag-card>header>small{font-size:12.5px;color:var(--ah-muted)}
.ag-hico{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;flex:none}.ag-hico svg{width:15px;height:15px}.ag-hico.is-purple{background:var(--ah-purple-soft);color:var(--ah-purple)}
.ag-stiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ag-stile{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"ico val" "lab lab" "sub sub";align-items:center;gap:4px 5px;padding:8px 7px;border-radius:14px;min-width:0}
.ag-sico2{grid-area:ico;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.75)}.ag-sico2 svg{width:15px;height:15px}
.ag-stile>b{grid-area:val;font-size:22px;line-height:1;font-weight:800;letter-spacing:-.02em;min-width:0;overflow-wrap:anywhere}
.ag-stile small{grid-area:lab;font-size:10.5px;line-height:1.2;font-weight:600;color:var(--ah-text)}
.ag-stile em{grid-area:sub;font-style:normal;font-size:9.5px;line-height:1.2;color:var(--ah-muted)}
.ag-stile.is-blue{background:var(--ah-blue-soft)}.ag-stile.is-blue .ag-sico2,.ag-stile.is-blue>b{color:var(--ah-blue)}
.ag-stile.is-green{background:var(--ah-green-soft)}.ag-stile.is-green .ag-sico2,.ag-stile.is-green>b{color:var(--ah-green)}
.ag-stile.is-red{background:var(--ah-red-soft)}.ag-stile.is-red .ag-sico2,.ag-stile.is-red>b{color:var(--ah-red)}
.ag-stile.is-orange{background:var(--ah-orange-soft)}.ag-stile.is-orange .ag-sico2,.ag-stile.is-orange>b{color:var(--ah-orange)}
.ag-nrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;padding:10px 0;border:0;background:none;text-align:left;cursor:pointer;color:var(--ah-text);font-family:inherit}
.ag-nico{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;flex:none}.ag-nico svg{width:18px;height:18px}
.ag-nico.is-orange{background:var(--ah-orange-soft);color:var(--ah-orange)}.ag-nico.is-red{background:var(--ah-red-soft);color:var(--ah-red)}.ag-nico.is-blue{background:var(--ah-blue-soft);color:var(--ah-blue)}.ag-nico.is-green{background:var(--ah-green-soft);color:var(--ah-green)}.ag-nico.is-purple{background:var(--ah-purple-soft);color:var(--ah-purple)}
.ag-ntext{display:grid;gap:1px;min-width:0}.ag-ntext b{font-size:14.5px;font-weight:700;color:var(--ah-ink);overflow-wrap:anywhere}.ag-ntext small{font-size:12.5px;color:var(--ah-muted);overflow-wrap:anywhere}.ag-ntext small.is-late{color:var(--ah-red);font-weight:700}
.ag-nrow time{font-size:12px;color:var(--ah-muted);white-space:nowrap}
.ag-actions{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;margin:0 -2px;border-radius:18px;background:color-mix(in srgb,var(--ah-card) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--ah-line);box-shadow:0 8px 24px rgba(16,42,90,.12)}
.ag-act{display:flex;align-items:center;justify-content:center;gap:4px;min-height:46px;padding:0 4px;border-radius:14px;border:1.5px solid var(--ah-line);background:var(--ah-card);color:var(--ah-blue);font:700 12px/1.15 Inter,sans-serif;cursor:pointer;min-width:0;text-align:left}.ag-act svg{width:15px;height:15px;flex:none}.ag-act span{min-width:0}
.ag-act.is-primary{background:var(--ah-blue);border-color:var(--ah-blue);color:#fff;box-shadow:0 5px 12px rgba(22,101,242,.28)}
.ag-back{justify-self:start;display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:4px 2px;font:700 14px Inter,sans-serif;color:var(--ah-blue);cursor:pointer}.ag-back svg{width:18px;height:18px}
.ag-remlist li{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0}
.ag-remlist li.is-done .ag-ntext b{text-decoration:line-through;color:var(--ah-muted)}
.ag-chk{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;border:2px solid var(--ah-line);background:var(--ah-card);color:#fff;cursor:pointer;padding:0}.ag-chk[aria-checked="true"]{background:var(--ah-green);border-color:var(--ah-green)}.ag-chk svg{width:15px;height:15px}
.ag-del{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:0;background:none;color:var(--ah-muted);cursor:pointer}.ag-del svg{width:17px;height:17px}
.ag-pick{list-style:none;margin:0;padding:0;display:grid;gap:8px}.ag-pick button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px;border-radius:14px;border:1px solid var(--ah-line,#e6edf5);background:#fff;text-align:left;font-family:inherit;cursor:pointer}.ag-pick b{display:block;font-size:14.5px;color:#0b1f4d}.ag-pick small{display:block;font-size:12.5px;color:#6b7a95}
@media(max-width:350px){.ag-stiles{grid-template-columns:repeat(2,minmax(0,1fr))}.ag-head{flex-wrap:wrap}}
@media(min-width:600px){.ag-cell{min-height:78px}.ag-cell b{font-size:16px}.ag-cell small{font-size:11.5px}.ag-stile>b{font-size:26px}.ag-stile small{font-size:12px}}
.cf-invite{display:grid;gap:8px;margin:8px 0 2px;padding:12px;border-radius:14px;border:1px solid var(--ah-line,#dbe4f0);background:var(--ah-card,#fff)}.cf-invite>b{font-size:13.5px;color:var(--ah-ink)}.cf-check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ah-ink);cursor:pointer}.cf-check input{width:18px;height:18px;accent-color:var(--ah-blue,#1769f5)}
/* «Días a elegir» sin ningún día marcado: el borde rojo avisa dónde falta (etapa 258). */
.cf-days.is-bad{border-radius:14px;outline:2px solid var(--ah-red,#d92d20);outline-offset:4px}
