.pm{--navy:#0D1B4B;--blue:#2B3F8C;--blue-bg:#E8ECF7;--bg:#F3F5FA;--white:#FFFFFF;--ink:#1A2133;--ink-soft:#6B7385;--line:#E3E7EF;
--green:#15803D;--green-bg:#DCFCE7;--amber:#92400E;--amber-bg:#FEF3C7;--red:#B91C1C;--red-bg:#FEE2E2;--violet:#6D28D9;--violet-bg:#EDE9FE;--gray-bg:#EEF1F6;
--radius:12px;--radius-sm:10px;--shadow:0 0 0 1px #E3E7EF;--mono:ui-monospace,Consolas,monospace;color:var(--ink)}
.pm .screen{display:none}.pm .screen.active{display:block}
.pm .topbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pm .topbar h1{font-size:18px;color:var(--navy);margin:0}
.pm .btn{width:auto;display:inline-block;padding:10px 16px}
.pm .card .field{margin-bottom:10px}
.pm-skip{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}.pm-skip{height:100%}.pm-skip{
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  background:var(--bg); color:var(--ink);
  -webkit-font-smoothing:antialiased;
}.pm-skip{
  /* Paleta de marca Mavin (logo): morado profundo + rojo, jugada en toda la app */
  --navy:#22024E; --blue:#4A2B87; --blue-bg:#F0EAFA;
  --bg:#F5F3FA; --white:#FFFFFF; --ink:#1A1233; --ink-soft:#6B6480;
  --line:#E4DEF0;
  --green:#1E8E62; --green-bg:#E2F5EC;
  --amber:#8A5610; --amber-bg:#FBEEDA;
  --red:#E40E32; --red-bg:#FDE6EA;
  --violet:#7C4FB0; --violet-bg:#F1E7FA;
  --gray-bg:#EFEBF6;
  --radius:16px; --radius-sm:11px;
  --shadow:0 2px 10px rgba(34,2,78,.09);
  --mono:'DM Mono',Consolas,monospace;
}.pm button,.pm input,.pm select,.pm textarea{font-family:inherit; font-size:15px}.pm button{cursor:pointer; border:none; background:none}.pm a{color:inherit}.pm-skip{width:0;height:0}.pm-skip{max-width:480px; min-height:100vh; margin:0 auto; background:var(--bg); position:relative; padding-bottom:8px}.pm .screen{display:none; padding:18px 18px 32px}.pm .screen.active{display:block}.pm .topbar{display:flex; align-items:center; gap:10px; padding:14px 4px 18px}.pm .topbar .back{width:36px; height:36px; border-radius:50%; background:var(--white); box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--navy); flex:none}.pm .topbar h1{font-size:19px; font-weight:800; color:var(--navy); flex:1}.pm .topbar .sub{font-size:12.5px; color:var(--ink-soft); margin-top:1px}.pm .card{background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px; margin-bottom:12px}.pm .hint{font-size:12.5px; color:var(--ink-soft); line-height:1.5}.pm .section-title{font-size:13px; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:.03em; margin:18px 0 8px}.pm .btn{display:block; width:100%; text-align:center; padding:14px 16px; border-radius:12px; font-weight:700; font-size:15px; transition:opacity .15s}.pm .btn:active{opacity:.75}.pm .btn.primary{background:var(--navy); color:#fff}.pm .btn.secondary{background:var(--blue-bg); color:var(--navy)}.pm .btn.ghost{background:var(--white); color:var(--navy); border:1.5px solid var(--line)}.pm .btn.danger{background:var(--red-bg); color:var(--red)}.pm .btn.sm{padding:9px 12px; font-size:13.5px; border-radius:10px; width:auto; display:inline-block}.pm .btn[disabled]{opacity:.45; pointer-events:none}.pm .btn-row{display:flex; gap:10px}.pm .btn-row .btn{flex:1}.pm .user-pick{background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px 18px; margin-bottom:10px; display:flex; align-items:center; gap:14px}.pm .user-pick .avatar{width:44px; height:44px; border-radius:50%; background:var(--blue-bg); color:var(--navy); font-weight:800; font-size:17px; display:flex; align-items:center; justify-content:center; flex:none}.pm .user-pick .name{font-weight:700; font-size:16px}.pm .user-pick .role{font-size:12.5px; color:var(--ink-soft)}.pm .user-pick .chev{margin-left:auto; color:var(--ink-soft); font-size:20px}.pm .home-card{background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; margin-bottom:12px; display:flex; align-items:center; gap:14px}.pm .home-card .emoji{font-size:26px; width:46px; height:46px; border-radius:12px; background:var(--blue-bg); display:flex; align-items:center; justify-content:center; flex:none}.pm .home-card h2{font-size:15.5px; font-weight:800; color:var(--navy)}.pm .home-card p{font-size:12.5px; color:var(--ink-soft); margin-top:2px}.pm .pin-wrap{padding-top:14vh; text-align:center}.pm .pin-wrap .who{font-size:17px; font-weight:800; color:var(--navy); margin-bottom:4px}.pm .pin-wrap .instr{font-size:13.5px; color:var(--ink-soft); margin-bottom:22px}.pm .pin-dots{display:flex; gap:12px; justify-content:center; margin-bottom:26px}.pm .pin-dots span{width:15px; height:15px; border-radius:50%; border:2px solid var(--line); background:#fff}.pm .pin-dots span.filled{background:var(--navy); border-color:var(--navy)}.pm .pin-pad{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; max-width:260px; margin:0 auto}.pm .pin-pad button{padding:18px 0; font-size:19px; font-weight:700; border-radius:14px; background:var(--white); box-shadow:var(--shadow); color:var(--ink)}.pm .pin-pad button:active{background:var(--gray-bg)}.pm .pin-error{color:var(--red); font-size:13px; min-height:18px; margin-top:14px}.pm .field{margin-bottom:14px}.pm .field label{display:block; font-size:12.5px; font-weight:700; color:var(--ink-soft); margin-bottom:6px}.pm .field input[type=text],.pm .field input[type=password],.pm .field input[type=date],.pm .field input[type=number],.pm .field select,.pm .field textarea{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:12px;
  background:var(--white); color:var(--ink); outline:none; appearance:none;
}.pm .field textarea{resize:none; min-height:80px}.pm .field input:focus,.pm .field select:focus,.pm .field textarea:focus{border-color:var(--blue)}.pm .stop-card{background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); padding:15px 16px; margin-bottom:10px}.pm .stop-top{display:flex; align-items:flex-start; gap:10px}.pm .stop-top .idx{width:26px; height:26px; border-radius:50%; background:var(--gray-bg); color:var(--ink-soft); font-size:12.5px; font-weight:700; display:flex; align-items:center; justify-content:center; flex:none; margin-top:1px}.pm .stop-top .info{flex:1}.pm .stop-top .name{font-weight:700; font-size:15px}.pm .stop-top .code{font-family:var(--mono); font-size:11px; color:var(--ink-soft)}.pm .badges{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}.pm .badge{font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:20px; white-space:nowrap}.pm .badge.b-gray{background:var(--gray-bg); color:var(--ink-soft)}.pm .badge.b-blue{background:var(--blue-bg); color:var(--navy)}.pm .badge.b-green{background:var(--green-bg); color:var(--green)}.pm .badge.b-amber{background:var(--amber-bg); color:var(--amber)}.pm .badge.b-red{background:var(--red-bg); color:var(--red)}.pm .badge.b-violet{background:var(--violet-bg); color:var(--violet)}.pm .task-row{display:flex; align-items:center; gap:12px; padding:11px 2px; border-bottom:1px solid var(--line)}.pm .task-row:last-child{border-bottom:none}.pm .task-row .tname{flex:1; font-size:14px}.pm .task-toggle{display:flex; background:var(--gray-bg); border-radius:10px; padding:3px; flex:none}.pm .task-toggle button{padding:6px 10px; font-size:11.5px; font-weight:700; border-radius:8px; color:var(--ink-soft)}.pm .task-toggle button.on-yes.active{background:var(--green); color:#fff}.pm .task-toggle button.on-no.active{background:var(--white); color:var(--ink-soft); box-shadow:0 1px 2px rgba(0,0,0,.08)}.pm .estado-toggle{display:flex; gap:8px; flex-wrap:wrap}.pm .estado-toggle button{flex:1; min-width:80px; padding:11px 6px; border-radius:11px; font-size:12.5px; font-weight:700; background:var(--gray-bg); color:var(--ink-soft); border:1.5px solid transparent}.pm .estado-toggle button.active[data-v="OK"]{background:var(--green-bg); color:var(--green); border-color:var(--green)}.pm .estado-toggle button.active[data-v="Ausente"]{background:var(--red-bg); color:var(--red); border-color:var(--red)}.pm .estado-toggle button.active[data-v="Incompleta"]{background:var(--amber-bg); color:var(--amber); border-color:var(--amber)}.pm .marca-discreta{height:20px; width:auto; border-radius:5px; opacity:.45; flex:none; pointer-events:none}.pm .marca-discreta:not([src]){display:none}.pm .foto-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:10px}.pm .foto-slot{aspect-ratio:1; border-radius:12px; background:var(--gray-bg); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; border:1.5px dashed var(--line)}.pm .foto-slot img{width:100%; height:100%; object-fit:cover}.pm .foto-slot .add{font-size:26px; color:var(--ink-soft)}.pm .foto-slot .rm{position:absolute; top:4px; right:4px; width:22px; height:22px; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:13px; display:flex; align-items:center; justify-content:center}.pm .foto-cat-list{margin-top:6px}.pm .foto-cat-row{display:flex; align-items:center; gap:12px; padding:10px 2px; border-bottom:1px solid var(--line)}.pm .foto-cat-row:last-child{border-bottom:none}.pm .foto-cat-row .cat-name{flex:1; font-size:14px}.pm .foto-cat-row .cat-thumb{width:56px; height:56px; border-radius:10px; background:var(--gray-bg); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; border:1.5px dashed var(--line); flex:none}.pm .foto-cat-row .cat-thumb img{width:100%; height:100%; object-fit:cover}.pm .foto-cat-row .cat-thumb .add{font-size:22px; color:var(--ink-soft)}.pm .foto-cat-row .cat-thumb .rm{position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:11px; display:flex; align-items:center; justify-content:center}.pm .foto-cat-row .cat-name .pend{display:block; margin-top:3px; font-size:11px; font-weight:700; color:var(--amber)}.pm .foto-cat-row .cat-thumb.pendiente{border:1.5px solid var(--amber)}.pm .puntual-card{border-left:5px solid var(--red)}.pm .puntual-card .section-title{color:var(--red)}.pm .puntual-row{padding:10px 2px; border-bottom:1px solid var(--line); cursor:pointer}.pm .puntual-row:last-child{border-bottom:none}.pm .puntual-row .pn{font-size:12px; color:var(--ink-soft)}.pm .puntual-row .pt{font-size:14px; font-weight:700; margin-top:1px}.pm .stop-card.con-puntual{border-left:5px solid var(--red)}.pm-skip{position:fixed; left:50%; bottom:calc(env(safe-area-inset-bottom,0px) + 84px); transform:translateX(-50%); z-index:998; background:var(--amber-bg); color:var(--amber); border:1.5px solid var(--amber); border-radius:20px; padding:8px 14px; font-size:12px; font-weight:700; box-shadow:var(--shadow); max-width:92%; text-align:center; display:none; cursor:pointer}.pm .timer-box{text-align:center; padding:18px 0}.pm .timer-box .t{font-family:var(--mono); font-size:34px; font-weight:500; color:var(--navy)}.pm .timer-box .l{font-size:12px; color:var(--ink-soft); margin-top:2px}.pm-skip{position:fixed; left:50%; bottom:26px; transform:translateX(-50%); background:var(--ink); color:#fff; padding:12px 18px; border-radius:12px; font-size:13.5px; box-shadow:0 6px 20px rgba(0,0,0,.25); z-index:999; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; max-width:88%; text-align:center}.pm-skip{opacity:1; transform:translateX(-50%) translateY(-6px)}.pm-skip{
  position:fixed; left:12px; right:12px; bottom:12px; z-index:1000;
  background:var(--navy); color:#fff; border-radius:14px;
  padding:12px 14px; display:flex; align-items:center; gap:10px;
  box-shadow:0 10px 30px rgba(34,2,78,.35);
  animation:update-banner-in .25s ease;
}.pm-skip{flex:1; font-size:13px; line-height:1.35}.pm-skip{
  flex:0 0 auto; background:var(--red); color:#fff; border:none; border-radius:9px;
  padding:9px 14px; font-size:13px; font-weight:700; cursor:pointer;
}.pm-skip{opacity:.85}.pm-skip{background:transparent; color:#fff; opacity:.75; padding:9px 8px}@keyframes update-banner-in{from{opacity:0; transform:translateY(12px)} to{opacity:1; transform:translateY(0)}}.pm .modal-backdrop{position:fixed; inset:0; background:rgba(26,18,51,.45); z-index:1100; display:flex; align-items:flex-end; justify-content:center}.pm .modal-card{background:var(--white); border-radius:18px 18px 0 0; box-shadow:0 -6px 30px rgba(0,0,0,.2); padding:20px 18px 26px; width:100%; max-width:480px; animation:modal-in .2s ease}@keyframes modal-in{from{transform:translateY(24px); opacity:0} to{transform:translateY(0); opacity:1}}.pm .empty{padding:34px 10px; text-align:center; color:var(--ink-soft); font-size:13.5px}.pm .chip-row{display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; margin-bottom:14px}.pm .chip{flex:none; padding:8px 14px; border-radius:20px; background:var(--white); box-shadow:var(--shadow); font-size:12.5px; font-weight:700; color:var(--ink-soft)}.pm .chip.active{background:var(--navy); color:#fff}.pm .banner{background:var(--amber-bg); color:var(--amber); border-radius:12px; padding:11px 14px; font-size:12.5px; margin-bottom:14px; display:flex; align-items:center; gap:10px}.pm .banner a,.pm .banner button.link{font-weight:800; text-decoration:underline}.pm .kpi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px}.pm .kpi{background:var(--white); border-radius:var(--radius-sm); box-shadow:var(--shadow); padding:12px 8px; text-align:center}.pm .kpi .n{font-size:19px; font-weight:800; color:var(--navy)}.pm .kpi .l{font-size:10.5px; color:var(--ink-soft); margin-top:2px}.pm .drop-zone{border:2px dashed var(--line); border-radius:14px; padding:26px 14px; text-align:center; color:var(--ink-soft); font-size:13px}.pm .list-row{display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line)}.pm .list-row:last-child{border-bottom:none}.pm .list-row .main{flex:1}.pm .list-row .main .t1{font-weight:700; font-size:14.5px}.pm .list-row .main .t2{font-size:12px; color:var(--ink-soft)}.pm .switch{width:44px; height:26px; border-radius:20px; background:var(--gray-bg); position:relative; flex:none; transition:background .15s}.pm .switch.on{background:var(--green)}.pm .switch .dot{position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:left .15s; box-shadow:0 1px 3px rgba(0,0,0,.25)}.pm .switch.on .dot{left:21px}.pm-skip{max-width:1100px}.pm #mapa-canvas{height:52vh; min-height:300px; border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; margin-bottom:12px; background:var(--gray-bg); z-index:0}.pm .pin-prom{width:34px; height:34px; border-radius:50%; color:#fff; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; border:3px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35)}.pm .pin-verde{background:var(--green)}.pm .pin-ambar{background:#C26A00}.pm .pin-gris{background:#8C86A0}.pm .pin-num{width:24px; height:24px; border-radius:50%; color:#fff; font-weight:800; font-size:11px; display:flex; align-items:center; justify-content:center; border:2px solid #fff; box-shadow:0 1px 5px rgba(0,0,0,.35)}.pm .list-row a{color:var(--blue); font-weight:700}.pm .filtros-2{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px}.pm .filtros-2 input,.pm .filtros-2 select{min-width:0; max-width:100%}@media(min-width:760px){.pm-skip{display:grid; grid-template-columns:repeat(3,1fr); gap:0 12px}}.pm .gal-grupo{background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); padding:14px; margin-bottom:12px}.pm .gal-cab{display:flex; align-items:center; gap:10px; margin-bottom:10px}.pm .gal-titulo{font-weight:800; color:var(--navy); font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}.pm .gal-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); gap:8px}@media(min-width:760px){.pm .gal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.pm .gal-tile{display:flex; flex-direction:column; gap:4px; text-align:left; padding:0}.pm .gal-tile img{width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; background:var(--gray-bg); border:1px solid var(--line)}.pm .gal-tile span{font-size:11px; color:var(--ink-soft); line-height:1.25}.pm .gal-tile:focus-visible{outline:3px solid var(--blue); outline-offset:2px; border-radius:10px}.pm .lb{position:fixed; inset:0; z-index:1200; background:rgba(12,6,26,.94); display:flex; align-items:center; justify-content:center}.pm .lb img{max-width:calc(100vw - 24px); max-height:calc(100vh - 150px); object-fit:contain; border-radius:6px}.pm .lb-x{position:absolute; top:calc(env(safe-area-inset-top,0px) + 12px); right:12px; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; font-size:18px}.pm .lb-nav{position:absolute; top:50%; transform:translateY(-50%); width:46px; height:64px; border-radius:12px; background:rgba(255,255,255,.14); color:#fff; font-size:32px}.pm .lb-nav.prev{left:10px}.pm .lb-nav.next{right:10px}.pm .lb-pie{position:absolute; left:0; right:0; bottom:0; padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 14px); display:flex; align-items:center; gap:12px; color:#fff; background:linear-gradient(transparent, rgba(0,0,0,.55))}.pm .lb-pie #lb-titulo{font-weight:800; font-size:14.5px}.pm .lb-pie #lb-sub{font-size:12px; opacity:.8}.pm .lb-pie #lb-pos{margin-left:auto; font-family:var(--mono); font-size:12px; opacity:.8}.pm .lb-pie button{background:var(--red); color:#fff; border-radius:9px; padding:9px 12px; font-size:13px; font-weight:700}.pm .tabla-wrap{overflow-x:auto; background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow); margin-bottom:12px}.pm table.cmp{border-collapse:separate; border-spacing:0; font-size:12.5px; min-width:100%}.pm table.cmp th,.pm table.cmp td{padding:8px 10px; border-bottom:1px solid var(--line); text-align:center; white-space:nowrap; vertical-align:middle}.pm table.cmp thead th{background:var(--gray-bg); color:var(--navy); font-weight:800; font-family:var(--mono); font-size:12px}.pm table.cmp tbody th{position:sticky; left:0; background:var(--white); text-align:left; font-weight:700; color:var(--ink); z-index:1; white-space:normal; min-width:150px; max-width:210px; box-shadow:1px 0 0 var(--line)}.pm table.cmp thead th:first-child{position:sticky; left:0; z-index:2}.pm table.cmp tbody th .code{font-family:var(--mono); font-size:10.5px; color:var(--ink-soft); font-weight:400}.pm table.cmp tr:last-child th,.pm table.cmp tr:last-child td{border-bottom:none}.pm table.cmp td.c-prom{background:var(--blue-bg); color:var(--navy); font-weight:700}.pm .cmp-cli td{font-size:11.5px; line-height:1.45}.pm .cmp-cli td b{font-family:var(--mono); font-size:12px; color:var(--navy)}.pm td.c-ok{box-shadow:inset 3px 0 0 var(--green)}.pm td.c-inc{box-shadow:inset 3px 0 0 #C26A00}.pm td.c-aus{background:var(--red-bg); color:var(--red); font-weight:700}.pm td.c-sin{color:var(--amber); font-weight:700}.pm td.c-na{color:#B7B1C6; font-size:11px; cursor:default}.pm td.c-verde{background:var(--green-bg); color:var(--green); font-weight:700}.pm td.c-ambar{background:var(--amber-bg); color:var(--amber); font-weight:700}.pm td.c-rojo{background:var(--red-bg); color:var(--red); font-weight:700}
.pm .lb{position:fixed;inset:0;z-index:1200;background:rgba(12,6,26,.94);display:flex;align-items:center;justify-content:center}
@media(min-width:900px){.pm .filtros-auto{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}}

#screen-admin-panel>.topbar,#screen-admin-informes>.topbar,#screen-admin-mapa>.topbar,#screen-admin-galeria>.topbar,#screen-admin-comparativa>.topbar{display:none}
#lightbox.lb{position:fixed;inset:0;z-index:1200;background:rgba(12,6,26,.94);display:flex;align-items:center;justify-content:center}
@media(min-width:900px){#screen-admin-informes>.card{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}#screen-admin-informes>.card>.hint,#screen-admin-informes>.card>.btn{grid-column:1/-1;justify-self:start}}
