/* Avisos del cliente («Solicitudes del cliente») del piscinero (prefijo .pcn) */
.pcn{--pcn-ink:#0b1b3d;--pcn-muted:#667691;--pcn-line:#e3eaf4;--pcn-blue:#0b63f6;display:grid;gap:16px;color:var(--pcn-ink)}
.pcn *{box-sizing:border-box}
.pcn-i{width:18px;height:18px;flex:none}
.pcn-top{display:flex;justify-content:flex-end}
.pcn-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.pcn-kpi{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--pcn-line);border-radius:18px;background:#fff;box-shadow:0 4px 16px rgba(11,31,77,.05)}
.pcn-kpi-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;flex:none}.pcn-kpi-ico .pcn-i{width:26px;height:26px}
.pcn-kpi.is-blue .pcn-kpi-ico{background:#e4efff;color:#0b63f6}.pcn-kpi.is-amber .pcn-kpi-ico{background:#fff1d3;color:#d68a00}.pcn-kpi.is-green .pcn-kpi-ico{background:#dcf5e7;color:#17a35e}.pcn-kpi.is-red .pcn-kpi-ico{background:#ffe3e1;color:#e0483e}
.pcn-kpi b{display:block;font-size:27px;line-height:1.1;letter-spacing:-.02em}.pcn-kpi strong{display:block;font-size:14.5px}.pcn-kpi small{color:var(--pcn-muted);font-size:12.5px}
.pcn-grid{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(0,1.5fr) minmax(260px,.85fr);gap:16px;align-items:start}
.pcn-card{border:1px solid var(--pcn-line);border-radius:20px;background:#fff;padding:18px;box-shadow:0 6px 22px rgba(11,31,77,.05);min-width:0}
.pcn-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px;margin:0 0 12px}.pcn .pcn-head h2{margin:0;font-size:19px;line-height:1.2}.pcn-head small{color:var(--pcn-muted);font-size:12.5px}
.pcn-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.pcn-filters button{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--pcn-line);border-radius:999px;background:#fff;color:var(--pcn-ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.pcn-filters button em{font-style:normal;min-width:20px;padding:0 6px;border-radius:999px;background:#eef2f9;color:#4a5b78;font-size:11.5px;line-height:18px;text-align:center}
.pcn-filters button.is-on{background:var(--pcn-blue);border-color:var(--pcn-blue);color:#fff}.pcn-filters button.is-on em{background:rgba(255,255,255,.25);color:#fff}
.pcn-search{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 12px;border:1px solid #cfdaea;border-radius:12px;background:#fff}.pcn-search input{flex:1;border:0;outline:0;background:none;font:inherit;font-size:14px;color:var(--pcn-ink);min-width:0}.pcn-search .icon{width:17px;height:17px;color:#7d8fae}
.pcn-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:720px;overflow:auto}
.pcn-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;width:100%;padding:12px;border:1px solid var(--pcn-line);border-radius:14px;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer}
.pcn-item:hover{border-color:#b9cdee}.pcn-item.is-on{border-color:var(--pcn-blue);background:#f1f6ff;box-shadow:0 0 0 3px rgba(11,99,246,.1)}
.pcn-pool{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#bfe1ff,#5aa9f0);color:#fff}.pcn-pool .pcn-i{width:24px;height:24px}
.pcn-item-body{display:grid;gap:3px;min-width:0}.pcn-item-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pcn-item-top b{font-size:14px}
.pcn-item-body small{color:var(--pcn-muted);font-size:12px}
.pcn-item-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.pcn-item-title .pcn-i{width:16px;height:16px}
.pcn-item-title.is-blue{color:#0b63f6}.pcn-item-title.is-violet{color:#7a4be0}.pcn-item-title.is-red{color:#c9302a}.pcn-item-title.is-amber{color:#8f5d00}.pcn-item-title.is-slate{color:#53647f}
.pcn-item-snip{color:#4a5b78;font-size:12.5px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pcn-item-date{display:grid;align-content:start;justify-items:end;font-size:12px;color:var(--pcn-muted)}.pcn-item-date b{font-weight:600;color:var(--pcn-ink)}
.pcn-item.is-new .pcn-item-top b::after{content:"";display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:#e5372f;vertical-align:middle}
.pcn-chip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}
.pcn-chip.is-new{background:#e3efff;color:#0a58d8}.pcn-chip.is-pending{background:#fff1d3;color:#8a5a00}.pcn-chip.is-done{background:#dcf5e7;color:#0f6f3f}.pcn-chip.is-muted{background:#eceff4;color:#566579}
.pcn-chip.is-important{background:#ffe3e1;color:#b8302a}.pcn-chip.is-schedule{background:#efe6ff;color:#6a3fcb}.pcn-chip.is-freq{background:#e4f6ee;color:#0f7a4c}
.pcn-client{display:flex;align-items:center;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--pcn-line);margin:0 0 14px;flex-wrap:wrap}
.pcn-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#0b63f6;color:#fff;font-weight:800}
.pcn-client h3{margin:0;font-size:17px}.pcn-client p{margin:3px 0 0;display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--pcn-muted);font-size:13px}.pcn-client p span{display:inline-flex;align-items:center;gap:5px}.pcn-client p .pcn-i{width:14px;height:14px}
.pcn-client .pcn-chip{margin-left:auto}
.pcn-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:#f3f7fd;margin:0 0 14px}
.pcn-sum-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;background:#e4efff;color:#0b63f6}
.pcn-summary.is-violet .pcn-sum-ico{background:#efe6ff;color:#7a4be0}.pcn-summary.is-red .pcn-sum-ico{background:#ffe3e1;color:#d4382f}.pcn-summary.is-amber .pcn-sum-ico{background:#fff1d3;color:#b97800}.pcn-summary.is-slate .pcn-sum-ico{background:#e8eef7;color:#53647f}
.pcn-summary div{flex:1;min-width:0}.pcn-summary b{display:block;font-size:15px}.pcn-summary small{color:var(--pcn-muted);font-size:12.5px}
.pcn-msg,.pcn-visit,.pcn-compare,.pcn-activity{margin:0 0 16px}.pcn h4{margin:0 0 6px;font-size:14px}
.pcn-msg p{margin:0 0 4px;padding:12px 14px;border-radius:12px;background:#f7f9fd;line-height:1.55;font-size:14px}.pcn-msg p.is-none{color:var(--pcn-muted)}.pcn-msg small{color:var(--pcn-muted);font-size:12px}
.pcn-visit p{display:flex;align-items:center;gap:8px;margin:0;font-size:14px}
/* El panel pinta todos los párrafos de azul (body[data-page="panel"] p): aquí valen los colores propios de la pantalla. */
.pcn .pcn-visit p{color:var(--pcn-ink,#0b1655)}.pcn .pcn-book .pcn-book-s{color:#53647f}.pcn-visit .pcn-i{color:#d4382f}
.pcn-book .pcn-i{color:#0b63f6}.pcn-book .pcn-book-s{margin-top:4px;color:#53647f}.pcn-book .pcn-hint{margin:10px 0 0}
.pcn-dials{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}
.pcn-dial{display:grid;gap:6px;justify-items:center;padding:12px 8px;border:1px solid var(--pcn-line);border-radius:16px;min-width:0}.pcn-dial h5{margin:0;font-size:13px}.pcn-dial.is-new h5{color:var(--pcn-blue)}
.pcn-dial .cpx-clock{max-width:170px;width:100%}.pcn-dial ul{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:12.5px;text-align:center;font-variant-numeric:tabular-nums}.pcn-dial li.is-none{color:var(--pcn-muted)}
.pcn-dial-arrow{color:var(--pcn-blue)}.pcn-dial-arrow .pcn-i{width:24px;height:24px}
.pcn-hours{margin:8px 0 0;font-size:13px;color:var(--pcn-muted)}
.pcn-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.pcn-actions .btn{display:inline-flex;align-items:center;gap:7px}.pcn-actions .btn .pcn-i,.pcn-actions .btn .icon{width:17px;height:17px}
.pcn-actions .is-ok{color:#0f7a4c;border-color:#9fdcc0}
.pcn-hint,.pcn .pcn-hint{margin:-8px 0 16px;color:#8a5a00;background:#fff5de;border-radius:10px;padding:8px 12px;font-size:13px}.pcn-hint:empty{display:none}
.pcn .pcn-closed{margin:0 0 16px;padding:10px 14px;border-radius:12px;background:#eef6f1;color:#25613f;font-size:13.5px}
.pcn-activity ol{list-style:none;margin:0;padding:0 0 0 12px;border-left:2px solid #dbe6f5;display:grid;gap:14px}
.pcn-activity li{position:relative;padding-left:14px}.pcn-dot{position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:#0b63f6;box-shadow:0 0 0 3px #fff}
.pcn-activity li.is-notified .pcn-dot{background:#17a35e}.pcn-activity li.is-resolved .pcn-dot,.pcn-activity li.is-applied .pcn-dot{background:#17a35e}.pcn-activity li.is-cancelled .pcn-dot{background:#9aa7bd}
.pcn-activity b{font-size:13.5px}.pcn-activity em{margin-left:6px;font-style:normal;color:var(--pcn-muted);font-size:12.5px}.pcn-activity small{display:block;color:var(--pcn-muted);font-size:12px}.pcn-activity p{margin:4px 0 0;font-size:13px;line-height:1.45}
.pcn-rel{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pcn-rel li{padding:12px;border:1px solid var(--pcn-line);border-radius:14px;background:#fff;display:grid;gap:8px}
.pcn-rel-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.pcn-rel-main b{display:block;font-size:13.5px}.pcn-rel-main small{color:var(--pcn-muted);font-size:12px}
.pcn-rel-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e4efff;color:#0b63f6}
.pcn-rel li.is-violet .pcn-rel-ico{background:#efe6ff;color:#7a4be0}.pcn-rel li.is-red .pcn-rel-ico{background:#ffe3e1;color:#d4382f}.pcn-rel li.is-amber .pcn-rel-ico{background:#fff1d3;color:#b97800}.pcn-rel li.is-slate .pcn-rel-ico{background:#e8eef7;color:#53647f}
.pcn .pcn-rel-note{margin:0;font-size:12px;color:#d4382f;font-weight:700}
.pcn-rel-actions{display:flex;flex-wrap:wrap;gap:6px}.pcn-rel-actions .btn{display:inline-flex;align-items:center;gap:5px}.pcn-rel-actions .btn .pcn-i{width:14px;height:14px}
.pcn-empty{grid-column:2/-1}
.pro-nav button .pro-dot,.pro-nav .active .pro-dot{display:block!important;width:10px!important;height:10px!important;min-width:10px!important;max-width:10px!important;padding:0!important;margin:0 0 0 auto!important;border-radius:50%!important;background:#ff3b30!important;color:transparent!important;font-size:0!important;box-shadow:0 0 0 2px rgba(255,255,255,.9)!important;flex:none}
@media(max-width:1280px){.pcn-grid{grid-template-columns:minmax(280px,.9fr) minmax(0,1.4fr)}.pcn-related{grid-column:1/-1}}
@media(max-width:900px){.pcn-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pcn-grid{grid-template-columns:1fr}.pcn-list{max-height:none}.pcn-empty{grid-column:auto}}
@media(max-width:560px){.pcn-kpi{padding:12px;gap:10px}.pcn-kpi-ico{width:40px;height:40px}.pcn-kpi b{font-size:21px}.pcn-dials{grid-template-columns:1fr}.pcn-dial-arrow{transform:rotate(90deg)}.pcn-card{padding:14px}.pcn-client .pcn-chip{margin-left:0}}

/* Candado junto a lo que el plan gratis no incluye (menú del panel, «Más» y «Todas las secciones» de la app) */
em.pro-lock{display:inline-grid!important;place-items:center;flex:none;width:20px!important;min-width:20px!important;height:20px!important;padding:0!important;margin:0 0 0 auto!important;border-radius:6px!important;background:rgba(255,255,255,.14)!important;color:#ffd77a!important;font-style:normal}
em.pro-lock svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.am-tile{position:relative}.am-tile em.pro-lock{position:absolute;top:10px;right:10px;margin:0!important;background:var(--ah-orange-soft)!important;color:var(--ah-orange)!important}
.ps-allnav em.pro-lock{background:var(--ah-orange-soft,#fff1dc)!important;color:var(--ah-orange,#c26a00)!important}
/* Cotización pedida por un cliente asignado (tipo quote, etapa 230): su propio tono verde azulado, para no confundirla con las reservas (azul) ni con las instrucciones (gris). */
.pcn-item-title.is-teal{color:#0e7c70}.pcn-summary.is-teal .pcn-sum-ico{background:#d9f3ee;color:#0e7c70}.pcn-rel li.is-teal .pcn-rel-ico{background:#d9f3ee;color:#0e7c70}
.pcn-quote .pcn-i{color:#0e7c70}.pcn .pcn-quote .pcn-book-s{margin-top:4px;color:#53647f}

/* Reserva express (etapa 231): se paga de inmediato y la visita se agenda sola. Ícono de tarjeta y un tono por estado: por pagar en ámbar, pagada en verde, pagada con el horario ocupado en rojo. */
.pcn-item-title.is-green{color:#0f7a4c}.pcn-summary.is-green .pcn-sum-ico{background:#dcf5e7;color:#0f7a4c}.pcn-rel li.is-green .pcn-rel-ico{background:#dcf5e7;color:#0f7a4c}
.pcn-express.is-pay .pcn-i,.pcn-express.is-refund .pcn-i{color:#b97800}.pcn-express.is-paid .pcn-i{color:#0f7a4c}.pcn-express.is-clash .pcn-i{color:#d4382f}.pcn-express.is-closed .pcn-i{color:#677489}
.pcn .pcn-express>p:first-of-type{flex-wrap:wrap}
.pcn .pcn-express .pcn-ex-amt{display:block;margin-top:4px}.pcn .pcn-express .pcn-ex-amt b{color:var(--pcn-ink)}
.pcn .pcn-express p.pcn-ex-note{display:block;margin:10px 0 0;line-height:1.45}
.pcn .pcn-express .pcn-hint{margin:10px 0 0}
.pcn .pcn-express p.pcn-ex-note.is-pay,.pcn .pcn-express p.pcn-ex-note.is-refund{color:#8a5a00}.pcn .pcn-express p.pcn-ex-note.is-paid{background:#eef6f1;color:#25613f}.pcn .pcn-express p.pcn-ex-note.is-clash{background:#ffe3e1;color:#b8302a}.pcn .pcn-express p.pcn-ex-note.is-closed{background:#eceff4;color:#53647f}
.pcn-activity li.is-paid .pcn-dot,.pcn-activity li.is-booked_other .pcn-dot{background:#17a35e}.pcn-activity li.is-paid_conflict .pcn-dot{background:#e5372f}.pcn-activity li.is-refund_due .pcn-dot{background:#d68a00}.pcn-activity li.is-unpaid .pcn-dot{background:#9aa7bd}
