:root{--bg:#050505;--panel:#111;--panel2:#181818;--line:#262626;--red:#e3262b;--red2:#ff3b3f;--white:#f4f4f4;--muted:#8a8a8a;--gold:#ffc83d;--green:#3ddc84;
  --font:"Barlow","Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-c:"Barlow Condensed","Barlow","Segoe UI",Roboto,Arial,sans-serif}
@property --pc{syntax:'<color>';inherits:true;initial-value:#333333}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--white);font-family:var(--font)}
body{background:radial-gradient(1200px 520px at 50% -12%,#3a0a0b 0%,transparent 62%),radial-gradient(900px 600px at 100% 110%,#1a0405 0%,transparent 60%),var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased}

/* ---------- encabezado ---------- */
.topbar{display:flex;align-items:center;gap:18px;padding:10px 18px;border-bottom:1px solid #000;background:linear-gradient(180deg,#000,#0a0a0a);position:sticky;top:0;z-index:5;flex-wrap:wrap;box-shadow:0 1px 0 var(--red),0 6px 24px -6px rgba(227,38,43,.45)}
.brand{display:flex;align-items:center;gap:12px}
.logo{height:54px;border-radius:6px;box-shadow:0 0 0 1px #1f1f1f}
.title{font-family:var(--font-c);font-weight:900;letter-spacing:4px;font-size:18px;color:var(--white)}
.subtitle{font-size:12px;color:var(--muted)}
.kpis{display:flex;gap:10px;flex:1;flex-wrap:wrap;justify-content:center}
.kpi{position:relative;background:linear-gradient(180deg,#161616,#0b0b0b);border:1px solid var(--line);border-radius:9px;padding:6px 12px 7px;min-width:104px;display:flex;flex-direction:column;align-items:center;overflow:hidden}
.kpi::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red);box-shadow:0 0 12px var(--red)}
.kpi-v{font-family:var(--font-c);font-size:30px;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}
.kpi-l{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;text-align:center;font-weight:600}
.kpi.live::after{background:var(--green);box-shadow:0 0 12px var(--green)}
.kpi.live .kpi-v{color:var(--green);text-shadow:0 0 14px rgba(61,220,132,.45)}
.kpi.bump{animation:bump .9s ease-out}
@keyframes bump{0%{box-shadow:0 0 0 0 rgba(227,38,43,.0)}25%{box-shadow:0 0 0 3px rgba(227,38,43,.55),0 0 22px rgba(227,38,43,.5)}100%{box-shadow:0 0 0 0 rgba(227,38,43,0)}}
.clock{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}
#clock{font-family:var(--font-c);font-size:26px;font-weight:800;letter-spacing:.5px}
.conn{font-size:11px;color:var(--muted)}
.conn.ok{color:var(--green)}.conn.err{color:var(--red2)}

/* ---------- tarjetas ---------- */
main{padding:14px;max-width:1500px;margin:0 auto}
.card{background:linear-gradient(180deg,#121212,#0a0a0a);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px;box-shadow:0 0 0 1px #000,0 10px 34px #000a,inset 0 1px 0 rgba(255,255,255,.04)}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.card-h.mt{margin-top:14px}
h2{font-family:var(--font-c);font-size:17px;font-weight:800;margin:2px 0 8px;letter-spacing:1.5px;text-transform:uppercase}
.muted{color:var(--muted);font-size:12px}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:600}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.legend .lg-live{background:var(--green);border-radius:50%;box-shadow:0 0 8px var(--green);animation:pulse 1.2s infinite}

/* ---------- oficina ---------- */
.map-wrap{width:100%;overflow:hidden;border-radius:10px;background:radial-gradient(ellipse at 50% 40%,#1e0708 0%,#080808 62%,#050505 100%);box-shadow:inset 0 0 0 1px #1c1c1c,inset 0 0 60px #000}
.map-stage{position:relative;width:100%;aspect-ratio:16/9}
.map-stage .layer{position:absolute;display:block;overflow:visible}
.map-stage .bg,.map-stage .labels{left:0;top:0;width:100%;height:100%}
.map-stage .labels{pointer-events:none}
.map-stage .tag{pointer-events:auto;cursor:pointer}
.desk-piece{will-change:transform}

.pc-fill{fill:var(--pc)}
.pc-stroke{stroke:var(--pc)}
.pc-stop{stop-color:var(--pc)}
.hx{fill:#7a8794}
.desk{transition:--pc .9s ease}
.desk .rug-tint{fill:var(--pc);opacity:0;transition:opacity 1s ease}
.desk.st-live .rug-tint{opacity:.09}
.desk .rug-edge{fill:none;stroke:var(--pc);stroke-width:1.3;opacity:.2;transition:opacity 1s ease}
.desk.st-live .rug-edge{opacity:.8}
.desk .desk-glow{opacity:0;transition:opacity 1.2s ease}
.desk.st-live .desk-glow{opacity:1}
.desk .panel-glow,.desk .spill{fill:var(--pc);opacity:0;transition:opacity 1s ease}
.desk.st-live .panel-glow{opacity:.2}
.desk.st-live .spill{opacity:.16}
.desk .led{stroke:#e3262b;opacity:.35;transition:stroke 1s,opacity 1s}
.desk.st-live .led{stroke:var(--pc);opacity:1}
.desk .kb-glow{stroke:var(--pc);opacity:0;transition:opacity 1s}
.desk.st-live .kb-glow{opacity:.9}
.desk .cable{stroke:#262626;transition:stroke 1s}
.desk.st-live .cable{stroke:var(--pc);stroke-dasharray:5 4;animation:dash .6s linear infinite}
.desk .wire{stroke:#333}
.desk.st-live .wire{stroke:var(--pc)}
.desk .beacon{fill:#2a2a2a;transition:fill .6s}
.desk.st-idle .beacon{fill:#666}
.desk.st-live .beacon{fill:var(--green);animation:pulse .8s infinite}
.desk .pled{fill:#222}
.desk.st-idle .pled{fill:#d08a1c}
.desk.st-live .pled{fill:#fff}
.desk .rim{stroke:var(--pc);opacity:.85}
.desk .ring{fill:none;stroke:var(--pc);stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center}

/* pantallas: se encienden y apagan con fundido */
.scr-live,.scr-idle{opacity:0;transition:opacity .9s ease}
.st-live .scr-live{opacity:1}
.st-idle .scr-idle{opacity:1}
.st-live .scroll{animation:scroll 6s linear infinite}
@keyframes scroll{to{transform:translateY(-60px)}}
.st-live .pbar{transform-box:fill-box;transform-origin:left center;animation:fill 7s cubic-bezier(.45,.05,.3,1) infinite}
@keyframes fill{0%{transform:scaleX(.03)}88%{transform:scaleX(1)}100%{transform:scaleX(1)}}
.st-live .caret{animation:pulse 1s steps(1) infinite}
.st-live .hex rect{animation:hexb 1.4s steps(1) infinite}
@keyframes hexb{50%{opacity:.25}}
.st-idle .saver{animation:saver 9s ease-in-out infinite alternate}
@keyframes saver{0%{transform:translate(-14px,-6px)}50%{transform:translate(10px,4px)}100%{transform:translate(16px,-5px)}}

/* laptop: desaparece cuando está desconectada (se la llevaron) */
.laptop{transition:opacity 1s ease}
.st-off .laptop{opacity:0}

/* silla: se recorre hacia atrás cuando nadie está programando */
.chair{transition:transform 1.2s cubic-bezier(.3,.7,.2,1)}
.st-idle .chair{transform:translate(var(--idx),var(--idy))}
.st-off .chair{transform:translate(var(--ofx),var(--ofy))}

/* técnicos */
.tech{transition:opacity .8s ease,transform 1s ease}
.tech-seat{opacity:0;transform:translateY(5px)}
.st-live .tech-seat{opacity:1;transform:none}
.tech-stand{opacity:0;transform:translate(-14px,6px)}
.st-idle .tech-stand{opacity:1;transform:none}
.st-live .arm-l{animation:type .18s ease-in-out infinite alternate}
.st-live .arm-r{animation:type .18s .09s ease-in-out infinite alternate}
@keyframes type{to{transform:translateY(-1.8px)}}
.st-live .head{animation:look 8s ease-in-out infinite}
@keyframes look{0%,38%,100%{transform:none}45%,66%{transform:translate(2px,1px)}72%{transform:translate(-.6px,.3px)}}
.st-idle .breath{animation:breath 3.4s ease-in-out infinite alternate}
@keyframes breath{to{transform:translateY(-.8px)}}
.st-idle .sip{animation:sip 7s ease-in-out infinite}
@keyframes sip{0%,58%,100%{transform:rotate(0)}68%,82%{transform:rotate(78deg)}}
.steam{animation:steam 2s ease-in-out infinite}
@keyframes steam{0%{opacity:0;transform:translateY(1px)}40%{opacity:.8}100%{opacity:0;transform:translateY(-4px)}}

/* transiciones al empezar / terminar */
.ignite .ring{animation:ring 1.6s ease-out}
@keyframes ring{0%{opacity:1;transform:scale(.15)}100%{opacity:0;transform:scale(1.6)}}
.ignite .scr-live{transform-box:fill-box;transform-origin:center;animation:crt .75s cubic-bezier(.2,.8,.2,1)}
@keyframes crt{0%{transform:scale(1,.02);opacity:1}35%{transform:scale(1,.02)}70%{transform:scale(1,1.06)}100%{transform:none}}
.ignite .desk-glow{animation:flare 1.4s ease-out}
@keyframes flare{0%{opacity:0}30%{opacity:1.6}100%{opacity:1}}
.done-badge{opacity:0;fill:var(--green);font-weight:800;font-size:15px;paint-order:stroke;stroke:#000;stroke-width:3px;pointer-events:none}
.done .done-badge{animation:rise 2.6s ease-out}
@keyframes rise{0%{opacity:0;transform:translateY(10px)}15%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translateY(-30px)}}

/* ambiente */
.sway{animation:sway 5s ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}
.blink{animation:pulse 1.6s steps(2) infinite}
@keyframes dash{to{stroke-dashoffset:-18}}
@keyframes pulse{50%{opacity:.3}}

/* letreros del mapa */
.lbl-card{fill:url(#gCard);stroke:#3a3a3a;stroke-width:1.2;transition:stroke .6s}
.lbl.live .lbl-card,.tag.live .lbl-card{stroke-width:2.2}
.lbl-arrow{fill:#3a3a3a;transition:fill .6s}
.lbl-acc{transition:fill .6s}
.lbl-name{font-weight:800;fill:#fff;font-size:14.5px;font-family:var(--font)}
.lbl-sub{fill:#cfcfcf;font-size:11px}
.lbl-st{font-size:11px;font-weight:700}
.lbl-pill{opacity:0;transition:opacity .6s}
.lbl.live .lbl-pill{opacity:1}
.pill-bg{fill:rgba(61,220,132,.12);stroke:rgba(61,220,132,.6);stroke-width:1}
.pill-dot{fill:var(--green);animation:pulse 1s infinite}
.pill-t{fill:var(--green);font-size:9.5px;font-weight:800;letter-spacing:.8px}
.zone-t{fill:#fff;font-weight:900;letter-spacing:2px;font-family:var(--font-c)}
.zone-s{fill:#8a8a8a;font-weight:700}
.zone-s.on{fill:var(--green)}
.tag-t{fill:#fff;font-weight:800}
.tag-dot{fill:#444;transition:fill .6s}
.tag.live .tag-dot{animation:pulse 1s infinite}

/* tarjetas por puesto (solo celular) */
.desk-cards,.cards-hint{display:none}

/* ---------- tablas ---------- */
.grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}
.grid .card{margin-bottom:0}
.tabs{display:flex;gap:4px}
.tabs button{background:var(--panel2);color:var(--white);border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-weight:700;cursor:pointer;font-size:12px;font-family:var(--font);transition:background .2s,border-color .2s}
.tabs button:hover{border-color:#444}
.tabs button.on{background:var(--red);border-color:var(--red);box-shadow:0 0 12px rgba(227,38,43,.45)}
.tabs.small{margin-bottom:8px}
.lb-row{display:grid;grid-template-columns:34px 1fr 64px 58px 56px;align-items:center;gap:6px;padding:7px 6px;border-bottom:1px solid #1b1b1b;border-radius:6px}
.lb-row.is-live{background:linear-gradient(90deg,rgba(61,220,132,.07),transparent 60%)}
.lb-row.head{font-size:11px;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--line);border-radius:0}
.lb-rank{font-weight:900;font-size:18px;text-align:center}
.lb-name{display:flex;flex-direction:column;min-width:0}
.lb-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-name small{color:var(--muted);font-size:11px}
.lb-num{text-align:right;font-variant-numeric:tabular-nums;font-weight:800;font-family:var(--font-c);font-size:17px}
.lb-row.head .lb-num{font-family:var(--font);font-size:11px}
.xp{height:5px;background:#222;border-radius:3px;margin-top:3px;overflow:hidden}
.xp>i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold))}
.chip{display:inline-block;font-size:10px;padding:1px 6px;border-radius:9px;background:#2a2a2a;margin-left:4px;vertical-align:middle}
.chip.dueno{background:var(--red)}
.livedot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-left:5px;box-shadow:0 0 8px var(--green);animation:pulse 1s infinite}
.groups{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.group-box{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:8px;padding:8px 10px}
.group-box h3{margin:0 0 4px;font-size:13px;color:var(--red2);text-transform:uppercase;font-family:var(--font-c);letter-spacing:1px}
.group-box div{font-size:12px;color:#ccc}
.prog{margin:9px 0}
.prog-top{display:flex;justify-content:space-between;font-size:13px;font-weight:700;gap:8px}
.bar{height:12px;background:#1c1c1c;border-radius:6px;overflow:hidden;margin-top:4px;box-shadow:inset 0 1px 2px #000}
.bar i{display:block;height:100%;width:0;border-radius:6px;transition:width .8s cubic-bezier(.3,.7,.2,1)}
.chart{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:6px}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.chart .b{width:100%;background:linear-gradient(180deg,var(--red2),#6d0f12);border-radius:3px 3px 0 0;min-height:2px;box-shadow:0 0 8px rgba(227,38,43,.25)}
.chart .n{font-size:10px;color:#ddd}
.chart .d{font-size:9px;color:var(--muted);margin-top:2px}
.feed{list-style:none;margin:0;padding:0;max-height:430px;overflow:auto}
.feed li{display:grid;grid-template-columns:28px 1fr;gap:6px;padding:7px 2px;border-bottom:1px solid #1b1b1b;font-size:13px}
.feed .ic{font-size:17px;text-align:center}
.feed small{display:block;color:var(--muted);font-size:11px}
footer{text-align:center;color:#555;font-size:11px;padding:10px 0 20px}

@media (max-width:1100px){.grid{grid-template-columns:1fr 1fr}.feed-card{grid-column:1/-1}}
@media (min-width:1000px){.topbar{flex-wrap:nowrap}.kpis{flex-wrap:nowrap}.kpi-l{white-space:nowrap}.kpi{min-width:92px;padding:6px 10px}.kpi-v{font-size:28px}}

/* ---------- celular ---------- */
@media (max-width:700px){
  .topbar{padding:8px 10px;gap:8px;display:grid;grid-template-columns:1fr auto}
  .brand{order:1}.clock{order:2}.kpis{order:3}
  .logo{height:38px}
  .title{font-size:13px;letter-spacing:1.5px;white-space:nowrap}
  .brand-text .subtitle{display:none}
  #clock{font-size:18px;white-space:nowrap}
  .kpis{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
  .kpi{min-width:0;padding:5px 4px 6px;grid-column:span 2}
  .kpi:nth-child(4),.kpi:nth-child(5){grid-column:span 3}
  .kpi-v{font-size:22px}
  .kpi-l{font-size:9px;letter-spacing:.3px}
  main{padding:8px}
  .card{padding:10px}
  .legend{gap:8px;font-size:11px}
  .map-card .card-h{margin-bottom:4px}
  .map-wrap{border-radius:8px}
  .grid{grid-template-columns:1fr}
  .lb-row{grid-template-columns:28px 1fr 52px 48px 46px;font-size:13px}
  .cards-hint{display:block;text-align:center;color:var(--muted);font-size:11px;margin:6px 0 8px}
  .desk-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .dcard{--lc:#3a3a3a;background:linear-gradient(180deg,#151515,#0a0a0a);border:1px solid var(--line);border-top:3px solid var(--lc);border-radius:10px;overflow:hidden;transition:border-color .6s,box-shadow .6s;scroll-margin:120px}
  .dcard.live{box-shadow:0 0 18px -6px var(--lc)}
  .dcard.off{opacity:.8}
  .dcard.flash{animation:cflash 1.2s ease-out}
  .dcard .mini{display:block;width:100%;height:auto;aspect-ratio:1.25;background:radial-gradient(ellipse at 50% 55%,#1a0809,#090909 70%);overflow:visible}
  .dinfo{padding:6px 8px 8px}
  .dname{font-weight:800;font-size:14px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
  .dname .star{color:var(--gold);font-size:12px}
  .dlive{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.6px;color:var(--green);border:1px solid rgba(61,220,132,.6);background:rgba(61,220,132,.12);border-radius:8px;padding:1px 5px}
  .dstat{font-size:11px;font-weight:700;margin:2px 0 6px;display:flex;gap:5px;min-width:0}
  .dstat span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .dstat b{color:#fff;flex:none;font-variant-numeric:tabular-nums}
  .dnums{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;text-align:center;font-size:8.5px;white-space:nowrap;color:var(--muted);text-transform:uppercase}
  .dnums b{display:block;font-family:var(--font-c);font-size:17px;color:#fff;line-height:1.1}
}
@media (max-width:360px){.desk-cards{grid-template-columns:1fr}}
/* v4.1: que nada ensanche la página en el celular (nombre de archivo largo, cliente+cobro+técnico en Actividad) */
.grid{min-width:0}
.grid>.card,.cobros-wrap>*,.clients-wrap>*,.tech-list,.feed li,.feed li>span{min-width:0}
.feed li>span{overflow-wrap:anywhere}
@media (max-width:700px){.grid{grid-template-columns:minmax(0,1fr)}}
/* tarjeta del celular: el cobro de un trabajo pagado baja a otra línea en vez de recortarse */
.dcard .dclient{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}
.dcard .dclient .bb{margin-left:4px}
@keyframes cflash{0%{box-shadow:0 0 0 3px var(--red)}100%{box-shadow:0 0 0 0 transparent}}

@media (prefers-reduced-motion:reduce){
  .map-stage *,.desk-cards *{animation:none!important;transition:none!important}
}

/* ---------- clientes ---------- */
.lbl-cl{font-size:10.5px;fill:#e8e8e8;font-weight:600}
.lbl-cl.none{fill:#d9a23a}
.lbl-cl-k{fill:#8a8a8a;font-weight:500}
.lbl-hit{cursor:pointer}
.feed .fc{display:inline-flex;align-items:center;gap:4px;max-width:100%;margin:4px 0 1px;padding:2px 8px;border-radius:10px;border:1px solid #2e2e2e;background:#161616;color:#eee;font:600 11.5px var(--font);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed .fc span{color:#9a9a9a;font-weight:500;overflow:hidden;text-overflow:ellipsis}
.feed .fc i{font-style:normal;color:#666;margin-left:2px}
.feed .fc:hover{border-color:var(--red)}
.feed .fc.none{color:#ffc06a;border-color:#4a3413;background:#1c140a}
.feed small{display:block}
.clients-card{margin-top:14px}
.clients-card .card-h h2{margin-right:auto}
.clients-wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.cl-row{display:grid;grid-template-columns:26px 1fr 54px;align-items:center;gap:8px;padding:7px 4px;border-bottom:1px solid #1b1b1b}
.cl-rank{font-family:var(--font-c);font-weight:800;font-size:17px;color:#777;text-align:center}
.cl-row:nth-child(1) .cl-rank{color:var(--gold)}.cl-row:nth-child(2) .cl-rank{color:#cfcfcf}.cl-row:nth-child(3) .cl-rank{color:#cd8a4b}
.cl-name{display:flex;flex-direction:column;min-width:0}
.cl-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.cl-name small{color:var(--muted);font-size:11px}
.cl-bar{height:5px;background:#1f1f1f;border-radius:3px;margin-top:4px;overflow:hidden}
.cl-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--red),#ff7a3d);border-radius:3px;transition:width .6s}
.cl-n{text-align:right;font-family:var(--font-c);font-weight:800;font-size:20px;line-height:1}
.cl-n small{display:block;font:500 10px var(--font);color:var(--muted)}
.cl-row.sin{border-bottom:0;margin-top:4px;background:#1a1309;border:1px solid #3d2a10;border-radius:8px}
.cl-row.sin .cl-rank,.cl-row.sin b,.cl-row.sin .cl-n{color:#ffc06a}
.cl-empty{padding:12px 4px}
.pend-h{display:flex;justify-content:space-between;align-items:center;margin:2px 0 6px;font-size:13px}
.pend-badge{background:#3d2a10;color:#ffc06a;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}
.pend{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;width:100%;padding:7px 8px;margin-bottom:5px;background:#141414;border:1px solid #262626;border-radius:8px;color:#eee;font:13px var(--font);cursor:pointer;text-align:left}
.pend:hover{border-color:var(--red);background:#1a1010}
.pend-dot{width:9px;height:9px;border-radius:50%}
.pend-t small{display:block;color:var(--muted);font-size:11px}
.pend-go{font-size:11.5px;font-weight:700;color:var(--red2);white-space:nowrap}
.dclient{font-size:12px;color:#e8e8e8;margin:3px 0 4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dclient.none{color:#ffc06a}
/* formulario */
.cdlg{border:1px solid #333;border-top:3px solid var(--red);border-radius:12px;background:linear-gradient(180deg,#151515,#0a0a0a);color:var(--white);padding:0;width:min(420px,92vw);box-shadow:0 20px 60px #000,0 0 30px rgba(227,38,43,.25)}
.cdlg::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(2px)}
.cdlg form{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}
.cdlg-h{display:flex;gap:10px;align-items:center}
.cdlg-h img{height:38px;border-radius:5px}
.cdlg-t{font:800 18px var(--font-c);letter-spacing:1px;text-transform:uppercase}
.cdlg-i{font-size:12px;color:#bdbdbd}
.cdlg label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#cfcfcf;text-transform:uppercase;letter-spacing:.5px}
.cdlg label span{color:#777;font-weight:500;text-transform:none}
.cdlg input,.cdlg textarea{background:#0b0b0b;border:1px solid #333;border-radius:7px;color:#fff;padding:8px 10px;font:15px var(--font);text-transform:none;letter-spacing:0;resize:vertical}
.cdlg input:focus,.cdlg textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(227,38,43,.25)}
.cdlg-err{color:var(--red2);font-size:12px;min-height:14px}
.cdlg-b{display:flex;justify-content:flex-end;gap:8px}
.btn1,.btn2{border-radius:7px;padding:8px 16px;font:700 14px var(--font);cursor:pointer;border:1px solid #333}
.btn1{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 0 12px rgba(227,38,43,.4)}
.btn2{background:#1a1a1a;color:#ddd}
@media (max-width:900px){.clients-wrap{grid-template-columns:1fr}}

/* ---------- cobros ---------- */
.cobros-card .card-h h2{margin-right:auto}
.cobros-wrap{display:grid;grid-template-columns:1fr 1.25fr;gap:18px}
.money-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mk{position:relative;background:linear-gradient(180deg,#171717,#0c0c0c);border:1px solid var(--line);border-radius:10px;padding:8px 10px 9px;overflow:hidden;min-width:0}
.mk::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--mc);box-shadow:0 0 12px var(--mc)}
.mk.cob{--mc:#e8e8e8}.mk.pag{--mc:var(--green)}.mk.pen{--mc:#ff5a4f}
.mk-l{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.mk-v{display:block;font:800 30px/1.1 var(--font-c);font-variant-numeric:tabular-nums;white-space:nowrap}
.mk.pag .mk-v{color:var(--green)}.mk.pen .mk-v{color:#ff5a4f}
.mk small{display:block;font-size:11px;color:#9a9a9a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.owed-all{margin:9px 0 2px;padding:7px 10px;border-radius:8px;background:#1d0d0d;border:1px solid #4a1a1a;font-size:13px;color:#ffb3ad}
.owed-all b{color:#fff;font-size:15px}
.sub-h{display:flex;justify-content:space-between;align-items:center;margin:12px 0 6px;font-size:13px}
.bm{display:grid;grid-template-columns:96px 1fr 74px;align-items:center;gap:8px;margin:5px 0;font-size:12.5px}
.bm .bar{height:9px;background:#1b1b1b;border-radius:5px;overflow:hidden}
.bm .bar i{display:block;height:100%;border-radius:5px;transition:width .6s}
.bm b{text-align:right;font-variant-numeric:tabular-nums}
.bm.zero{color:#666}
.pend-badge.due{background:#3d1212;color:#ff8a80}
.ar-list{display:flex;flex-direction:column;gap:5px}
.ar{background:#141414;border:1px solid #262626;border-radius:8px}
.ar[open]{border-color:#4a1a1a}
.ar summary{list-style:none;display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;padding:7px 9px;cursor:pointer}
.ar summary::-webkit-details-marker{display:none}
.ar-name{min-width:0}
.ar-name b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-name small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-name small .ph{color:#cfcfcf}
.ar-days{font-size:11px;font-weight:700;padding:2px 7px;border-radius:9px;background:#222;color:#bbb;white-space:nowrap}
.ar-days.warn{background:#3d2a10;color:#ffc06a}.ar-days.late{background:#3d1212;color:#ff8a80}
.ar-owed{font:800 19px var(--font-c);color:#ff5a4f;font-variant-numeric:tabular-nums;white-space:nowrap}
.ar-pay{background:var(--red);border:1px solid var(--red);color:#fff;border-radius:6px;padding:5px 9px;font:700 11.5px var(--font);cursor:pointer;white-space:nowrap}
.ar-pay:hover{background:var(--red2)}
.ar-jobs{border-top:1px solid #262626;padding:4px 9px 7px}
.arj{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:4px 0;font-size:12px;border-bottom:1px dashed #222}
.arj:last-child{border-bottom:0}
.arj small{display:block;color:var(--muted);font-size:11px}
.arj .amt2{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.arj .amt2 small{color:#888}
.arj button{background:#1a1a1a;border:1px solid #333;color:#ddd;border-radius:6px;padding:3px 7px;font:600 11px var(--font);cursor:pointer}
.arj button:hover{border-color:var(--red)}
.ar-more{font-size:12px;color:var(--muted);text-align:center;padding:4px}
/* insignias de cobro */
.bb{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;font-size:10.5px;font-weight:700;white-space:nowrap}
.bb.ok{background:#0f2e1c;color:#5ff0a0}.bb.due{background:#3d1212;color:#ff8a80}.bb.part{background:#3d2a10;color:#ffc06a}.bb.none{background:#1e1e1e;color:#888}
.lbl-bill{font-size:10.5px;font-weight:800}
.lbl-bill.ok{fill:#5ff0a0}.lbl-bill.due{fill:#ff6b61}.lbl-bill.part{fill:#ffc06a}
.cl-name small .money{color:#cfcfcf}
/* formulario: cobro */
.cdlg select{background:#0b0b0b;border:1px solid #333;border-radius:7px;color:#fff;padding:8px 10px;font:15px var(--font);text-transform:none;letter-spacing:0}
.cdlg select:disabled,.cdlg input:disabled{opacity:.35}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fld{display:flex;flex-direction:column;gap:4px}
.fl{font-size:12px;font-weight:700;color:#cfcfcf;text-transform:uppercase;letter-spacing:.5px}
.seg{display:flex;border:1px solid #333;border-radius:7px;overflow:hidden;height:38px}
.seg button{flex:1;background:#0b0b0b;color:#ccc;border:0;border-right:1px solid #333;font:700 14px var(--font);cursor:pointer}
.seg button:last-child{border-right:0}
.seg button.on[data-v=pagado]{background:#14532d;color:#fff}.seg button.on[data-v=pendiente]{background:#7f1d1d;color:#fff}.seg button.on[data-v=parcial]{background:#7a4e0c;color:#fff}
.amt{display:flex;gap:6px}.amt input{flex:1;min-width:0}
.btn2.sm{padding:6px 10px;font-size:12px}
.cf-pays{font-size:11.5px;margin-top:-4px}
.cf-pays:empty{display:none}
.cdlg{max-height:96vh}
@media (max-width:900px){.cobros-wrap{grid-template-columns:1fr}}
@media (max-width:700px){.mk-v{font-size:22px}.mk{padding:7px 8px}.mk small{white-space:normal}.ar summary{grid-template-columns:1fr auto;row-gap:5px}.ar-days{justify-self:start}.ar-pay{justify-self:end}.row2{gap:8px}.bm{grid-template-columns:84px 1fr 66px}}

/* ---------- recordatorios ---------- */
.rem-card .card-h h2{margin-right:auto}
.rem-pill{font-size:11px;font-weight:800;letter-spacing:.4px;padding:3px 9px;border-radius:10px;background:#222;color:#aaa;text-transform:uppercase}
.rem-pill.on{background:#0f2e1c;color:#5ff0a0}.rem-pill.test{background:#3d2a10;color:#ffc06a}.rem-pill.off{background:#222;color:#999}.rem-pill.bad{background:#3d1212;color:#ff8a80}
.rem-locked{padding:14px;color:#ccc;font-size:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.rem-wrap{display:grid;grid-template-columns:1fr 1.25fr 1.15fr;gap:18px}
.rem-col{min-width:0}
.rem-col .sub-h{margin-top:4px}
.sw{display:flex;align-items:center;gap:10px;margin:6px 0 9px;cursor:pointer;font-size:13.5px;font-weight:600}
.sw input{display:none}
.sw i{position:relative;width:40px;height:22px;border-radius:11px;background:#2a2a2a;border:1px solid #3a3a3a;flex:none;transition:background .2s}
.sw i::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#bbb;transition:left .2s,background .2s}
.sw input:checked+i{background:var(--red);border-color:var(--red)}
.sw input:checked+i::after{left:20px;background:#fff}
.sw small{color:var(--muted);font-weight:500}
.rs-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin:4px 0 8px}
.rs-grid label,.rem-col .fl{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:#bdbdbd;text-transform:uppercase;letter-spacing:.5px}
.rem-card input,.rem-card textarea,.rem-card select{background:#0b0b0b;border:1px solid #333;border-radius:7px;color:#fff;padding:7px 9px;font:14px var(--font);text-transform:none;letter-spacing:0;min-width:0}
.rem-card input:focus,.rem-card textarea:focus,.rem-card select:focus{outline:none;border-color:var(--red)}
.rem-card textarea{width:100%;resize:vertical;line-height:1.4}
.rem-card select{padding:4px 8px;font-size:12.5px;max-width:60%}
.rs-days{display:flex;gap:4px;margin:4px 0 8px;flex-wrap:wrap}
.rs-days button{width:38px;height:30px;border-radius:6px;border:1px solid #333;background:#141414;color:#aaa;font:700 12px var(--font);cursor:pointer}
.rs-days button.on{background:var(--red);border-color:var(--red);color:#fff}
.rs-next{font-size:12px;margin-bottom:8px}
.rs-next b{color:#fff}
.rs-actions{display:flex;align-items:center;gap:10px}
.rs-msg{font-size:12px;color:var(--green)}.rs-msg.err{color:var(--red2)}
.lnk{background:none;border:0;color:#888;font:600 11.5px var(--font);cursor:pointer;text-decoration:underline}
.lnk:hover{color:#fff}
.rs-ph{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 8px}
.rs-ph button{background:#1a1a1a;border:1px solid #333;border-radius:10px;color:#ffb3ad;font:600 11px var(--font);padding:2px 8px;cursor:pointer}
.rs-ph button:hover{border-color:var(--red)}
.wa{border-radius:10px;overflow:hidden;border:1px solid #1f3d33;background:#0b141a}
.wa-h{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#1f2c33;font-size:12px;font-weight:700;color:#d1d7db}
.wa-h small{color:#9fb0b8;font-weight:500}
.wa-b{margin:10px 12px 12px auto;max-width:92%;background:#005c4b;color:#e9edef;border-radius:8px 0 8px 8px;padding:8px 10px;font-size:13px;line-height:1.4;white-space:pre-wrap;box-shadow:0 1px 1px #0006}
.wa-b mark{background:#ffc83d33;color:#ffe08a;border-radius:3px;padding:0 2px}
.rs-list{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.rsi{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:6px 9px;background:#141414;border:1px solid #262626;border-radius:8px;font-size:12.5px}
.rsi b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rsi small{grid-column:1;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rsi .st{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.rsi.go{border-color:#1d4d32}
.chip2{font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:8px;white-space:nowrap}
.chip2.go{background:#0f2e1c;color:#5ff0a0}.chip2.no{background:#222;color:#999}.chip2.warn{background:#3d2a10;color:#ffc06a}.chip2.err{background:#3d1212;color:#ff8a80}.chip2.sim{background:#1c2a3d;color:#8cc4ff}
.rsi .opt{background:none;border:0;color:#888;font:600 10.5px var(--font);cursor:pointer;text-decoration:underline;padding:0}
.rsi .opt:hover{color:#fff}
.btn2.wide{width:100%}
.rs-hist{display:flex;flex-direction:column;gap:0;max-height:300px;overflow:auto;border:1px solid #222;border-radius:8px}
.rh{display:grid;grid-template-columns:118px 1.1fr 104px 80px 92px 2.4fr;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid #1d1d1d;font-size:12px}
.rh.head{position:sticky;top:0;background:#151515;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:10.5px;letter-spacing:.4px}
.rh .msg{color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh .num{text-align:right;font-variant-numeric:tabular-nums}
.sub-h.mt{margin-top:14px}
@media (max-width:1100px){.rem-wrap{grid-template-columns:1fr 1fr}.rem-wrap .rem-col:last-child{grid-column:1/-1}}
@media (max-width:700px){.rem-wrap{grid-template-columns:1fr}.rh{grid-template-columns:1fr auto;row-gap:2px}.rh.head{display:none}.rh>span:nth-child(3),.rh>span:nth-child(6){grid-column:1/-1}.rh .msg{white-space:normal}}
[hidden]{display:none!important}
.rs-grid input{width:100%}
.rh{grid-template-columns:150px 1.1fr 100px 72px 96px 2.4fr}
.rh .num{padding-right:6px}

/* ---- Cobros protegidos (clave del dueño) ---- */
.lockbtn{background:var(--panel2);border:1px solid var(--line);color:#ddd;border-radius:7px;padding:5px 10px;font:700 12px var(--font);cursor:pointer;white-space:nowrap}
.lockbtn:hover{border-color:var(--red)}
.lockbtn.open{color:var(--green);border-color:rgba(61,220,132,.35)}
.cobros-locked{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px;padding:14px 16px;border:1px dashed rgba(227,38,43,.45);border-radius:10px;
  background:repeating-linear-gradient(135deg,#140909 0 14px,#100707 14px 28px)}
.cobros-locked .cl-ico{font-size:28px;line-height:1}
.cobros-locked .cl-txt{display:flex;flex-direction:column;gap:3px;flex:1;min-width:200px}
.cobros-locked .cl-txt b{font-size:15px}
.cobros-locked .cl-txt small{color:var(--muted);font-size:12.5px}
.cobros-locked .btn1{border-radius:7px;padding:9px 16px;font:700 13px var(--font);cursor:pointer;border:1px solid var(--red)}
/* ---- Antigüedad de saldos ---- */
.ag-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#222;gap:2px}
.ag-bar i{display:block;height:100%}
.ag-leg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.ag-leg span{display:flex;flex-direction:column;gap:2px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12px}
.ag-leg span.zero{opacity:.45}
.ag-leg em{font-style:normal;color:#ccc;display:flex;align-items:center;gap:6px}
.ag-leg em i{width:9px;height:9px;border-radius:2px;display:inline-block}
.ag-leg b{font-size:15px}
.ag-leg small{color:var(--muted)}
@media (max-width:700px){.ag-leg{grid-template-columns:1fr}}

/* ---- Alertas (agente sin señal / sin técnico / desinstalado) ---- */
.alerts{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}
.alert{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;font-size:13.5px;border:1px solid #5a4a16;background:#1d1807;color:#ffd77a}
.alert.high{border-color:rgba(255,59,63,.6);background:#220b0c;color:#ffb3b5;box-shadow:0 0 14px rgba(227,38,43,.25)}
.alert b{color:#fff}.alert small{margin-left:auto;color:var(--muted);white-space:nowrap}
/* ---- Técnicos ---- */
.techs-card .card-h h2{margin-right:auto}
.tech-note{font-size:12.5px;margin:4px 0 10px}
.tech-list{display:flex;flex-direction:column;gap:6px}
.tech-row{display:grid;grid-template-columns:minmax(150px,1.6fr) repeat(4,minmax(52px,.6fr)) minmax(120px,1fr) auto;gap:8px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:13px}
.tech-row.head{background:none;border:0;padding:0 10px;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}
.tech-row.off{opacity:.5}
.tech-row.none{border-style:dashed;border-color:rgba(255,59,63,.45)}
.tech-row .tn b{display:block}.tech-row .tn small{color:var(--muted)}
.tech-row .num{text-align:center;font-weight:700}
.tech-row .on{color:var(--green);font-size:12px}
.tech-row .acts{display:flex;gap:6px}
.tech-row .acts button{background:#222;border:1px solid #333;color:#ddd;border-radius:6px;padding:4px 8px;font:600 11.5px var(--font);cursor:pointer}
.tech-row .acts button:hover{border-color:var(--red)}
.techtag{display:inline-block;font-size:11px;font-weight:700;padding:1px 6px;border-radius:5px;background:#16233a;color:#8fc1ff;margin-left:6px;white-space:nowrap}
.techtag.none{background:#2a1010;color:#ff8a8c}
.btn1.sm,.btn2.sm{padding:5px 10px;font-size:12px}
@media (max-width:760px){.tech-row{grid-template-columns:1fr repeat(3,46px)}.tech-row .hide-m{display:none}.tech-row .acts{grid-column:1/-1}}
.dtech{font-size:11.5px;color:#8fc1ff;min-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* v1.4 soporte remoto (Instalaciones) */
.chip.instalaciones{background:#4b2d8a}
.support-card{margin-top:14px}
.support-card .card-h h2{margin-right:auto}
.sup-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:0 0 10px}
.sup-kpis>div{background:#141414;border:1px solid #262626;border-radius:8px;padding:8px 10px}
.sup-kpis>div.warn{border-color:#3d2a10;background:#1a1309}
.sup-kpis b{display:block;font-size:20px}.sup-kpis>div.warn b{color:#ffc06a}
.sup-kpis small{color:var(--muted);font-size:11px}
.sup-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:0 10px}

/* ---- Control remoto anti-robo ---- */
.remote-card .card-h h2{margin-right:auto}
.remote-layout{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:14px;margin-top:8px}
@media (max-width:900px){.remote-layout{grid-template-columns:1fr}}
.remote-devices{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto}
.rd-item{background:#141414;border:1px solid #262626;border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left;color:inherit;font:inherit}
.rd-item:hover,.rd-item.on{border-color:var(--red);background:#1a1010}
.rd-item .rd-name{font-weight:700;display:flex;align-items:center;gap:6px;justify-content:space-between}
.rd-item .rd-meta{font-size:11px;color:var(--muted);margin-top:2px}
.rd-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#555}
.rd-dot.on{background:var(--green);box-shadow:0 0 8px var(--green)}
.rd-dot.off{background:var(--red2)}
.remote-alerts{font-size:12px;max-height:160px;overflow:auto;display:flex;flex-direction:column;gap:4px}
.remote-alerts .ra{background:#121212;border-left:3px solid #444;padding:4px 8px;border-radius:4px}
.remote-alerts .ra.online{border-color:var(--green)}.remote-alerts .ra.offline,.remote-alerts .ra.offline_long{border-color:var(--red2)}
.remote-detail-col{background:#0e0e0e;border:1px solid #222;border-radius:10px;padding:12px;min-height:320px}
.rd-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.rd-head h3{margin:0;font-family:var(--font-c);letter-spacing:1px}
.rd-actions{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.rd-actions button{background:#1c1c1c;border:1px solid #333;color:#eee;border-radius:7px;padding:6px 10px;font:600 12px var(--font);cursor:pointer}
.rd-actions button:hover{border-color:var(--red)}
.rd-actions button.danger{border-color:#5a2020;color:#ffb4b4;background:#1a0c0c}
.rd-actions button.danger:hover{border-color:var(--red2);background:#2a1010}
.rd-actions button.on{border-color:var(--green);color:var(--green)}
.rd-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:900px){.rd-grid{grid-template-columns:1fr}}
.rd-panel{background:#121212;border:1px solid #262626;border-radius:8px;padding:8px;min-height:140px}
.rd-panel h4{margin:0 0 6px;font-size:13px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.rd-screen{width:100%;max-height:280px;object-fit:contain;background:#000;border-radius:6px;min-height:120px}
.rd-files{font-size:12px;max-height:220px;overflow:auto}
.rd-files .fe{display:grid;grid-template-columns:1fr auto;gap:4px;padding:3px 0;border-bottom:1px solid #1c1c1c;cursor:pointer}
.rd-files .fe:hover{background:#1a1a1a}
.rd-path{width:100%;background:#0a0a0a;border:1px solid #333;color:#eee;border-radius:6px;padding:6px 8px;font:12px ui-monospace,monospace;margin-bottom:6px}
.rd-console{width:100%;min-height:80px;background:#0a0a0a;border:1px solid #333;color:#cfc;border-radius:6px;padding:6px 8px;font:12px ui-monospace,monospace}
.rd-out{white-space:pre-wrap;font:11px ui-monospace,monospace;background:#080808;border-radius:6px;padding:6px;max-height:160px;overflow:auto;color:#bbb;margin-top:6px}
.rd-hist{font-size:11px;max-height:140px;overflow:auto;margin-top:8px}
.rd-hist .hc{padding:3px 0;border-bottom:1px solid #1a1a1a;display:flex;gap:8px;flex-wrap:wrap}
.rd-hist .st-done{color:var(--green)}.rd-hist .st-error,.rd-hist .st-expired{color:var(--red2)}.rd-hist .st-pending,.rd-hist .st-claimed{color:var(--gold)}

/* ---------- Pagos recibidos (lista + corregir) ---------- */
.pl-btn{background:#1a0a0b;border:1px solid var(--red);color:#fff;border-radius:6px;padding:3px 9px;font:700 11.5px var(--font);cursor:pointer;margin-left:auto}
.pl-btn:hover{background:var(--red)}
.paylist{margin:4px 0 14px;border:1px solid #2a1012;border-radius:10px;padding:10px 12px;background:#0b0b0b}
.pl-scroll{overflow-x:auto;margin-top:6px}
.pl-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:760px}
.pl-tbl th{text-align:left;color:var(--muted);font-weight:700;text-transform:uppercase;font-size:10.5px;letter-spacing:.5px;padding:6px 8px;border-bottom:2px solid var(--red)}
.pl-tbl td{padding:6px 8px;border-bottom:1px dashed #222;vertical-align:top}
.pl-tbl td small{display:block;color:var(--muted);font-size:11px}
.pl-tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pl-tbl tr:hover td{background:#160b0c}
.pl-tbl tr.void td{color:#666}
.pl-t{font-weight:700}.pl-t.job{color:var(--green)}.pl-t.old{color:var(--gold)}
.pl-m{display:inline-block;border-left:3px solid var(--mc);padding-left:6px}
.pl-void{color:var(--red2);font-weight:800;font-size:11px;letter-spacing:.5px}
.pl-fx{display:block;color:var(--gold);font-size:10.5px;cursor:help}
.pl-fix{background:#1a1a1a;border:1px solid #333;color:#ddd;border-radius:6px;padding:4px 9px;font:700 11.5px var(--font);cursor:pointer;white-space:nowrap}
.pl-fix:hover{border-color:var(--red);color:#fff}
.pl-sum{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:8px 2px 0;font-size:12.5px}
.pl-sum i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}
.pl-total{margin-left:auto;font-size:14px}.pl-total em{font-style:normal;color:var(--green);font-size:12px}.pl-total em.warn{color:var(--red2)}
.btn2.danger{border-color:var(--red);color:var(--red2)}
.xf-hist{font-size:11.5px;line-height:1.5}
