/* PPE · ppejw.com — móvil primero, claro, botones grandes. */
:root{
  --ground:#FFFBF5; --panel:#fff; --ink:#241d16; --muted:#6b6156; --line:#e7ded2; --hair:#f1ebe2;
  --amber1:#B45309; --amber2:#FBBF24; --amber-soft:#fbf0dc;
  --acc:#B45309; /* acento del evento (se sobreescribe por evento) */
  --ok:#15803D; --ok-bg:#e7f4ec; --warn:#B45309; --warn-bg:#fbf0dc; --bad:#b42318; --bad-bg:#fbe9e7;
  --full:#8a8380; --full-bg:#f0edea; --minor:#0E7490; --minor-soft:#e2f2f5;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Inter",system-ui,"Segoe UI",Roboto,sans-serif;   /* 10/10 (Oscar): letra tipo Apple; Inter en Android/Windows */
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);background-image:radial-gradient(900px 500px at -10% -10%,#fde7c3 0%,transparent 60%),radial-gradient(700px 400px at 110% 10%,#fbe1dc 0%,transparent 60%),radial-gradient(800px 500px at 50% 110%,#e3f0f5 0%,transparent 60%);background-attachment:fixed;min-height:100vh;color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
.wrap{max-width:520px;margin:0 auto;padding:16px 16px 40px}
.wrap.con-tabs{padding-bottom:96px}
a{color:var(--acc)}
h1{font-size:22px;line-height:1.15;margin:0;font-weight:700}
h2{font-size:18px;margin:18px 0 10px;font-weight:700}
p{margin:0 0 10px}
.muted{color:var(--muted)}.small{font-size:14px}.center{text-align:center}
svg{display:inline-block;vertical-align:middle;flex:0 0 auto}

/* Barra superior */
.barra{display:flex;align-items:center;gap:10px;padding:6px 0 14px;border-bottom:3px solid var(--acc);margin-bottom:14px}
.barra .back{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fff;border:1.5px solid var(--line);color:var(--ink);flex:0 0 auto}
.barra .bt{flex:1;min-width:0}
.barra .evlogo{width:48px;height:48px;object-fit:contain;border-radius:10px;background:#fff;flex:0 0 auto}
.barra .bver{display:inline-block;margin-top:3px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:2px 8px;background:#fff}
.barra .bs{font-size:13px;color:var(--muted);font-weight:600}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--amber-soft);color:var(--acc);display:grid;place-items:center;font-weight:700;font-size:14px;text-decoration:none;flex:0 0 auto}

/* Hero registro/login */
.hero{text-align:center;margin:6px 0 18px}
.logo{width:150px;max-width:60%;height:auto;margin:0 auto 6px;display:block;-webkit-user-drag:none;user-select:none;pointer-events:none}
.hero h1{font-size:26px}
.sub{margin:0;color:var(--muted);font-size:14px;font-weight:600}

/* Tarjetas */
.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 12px 32px -20px rgba(120,80,10,.4)}
.grid{display:grid;gap:14px;margin-bottom:14px}.grid>*{margin-bottom:0}
.card.tight{padding:0;overflow:hidden}
.card .ch{padding:12px 16px;border-bottom:1px solid var(--hair);font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:8px}
.row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--hair);text-decoration:none;color:inherit}
.row:last-child{border-bottom:none}
.row .ri{flex:1;min-width:0}
.row .rn{font-weight:700;font-size:16px}.row .rs{font-size:13.5px;color:var(--muted)}
.av{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:13px;flex:0 0 auto;background:var(--amber-soft);color:var(--amber1)}
.av.m{background:var(--minor-soft);color:var(--minor)}
.tag{font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:7px;white-space:nowrap;background:var(--hair);color:var(--muted)}
.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.bad{background:var(--bad-bg);color:var(--bad)}
.tag.m{background:var(--minor-soft);color:var(--minor)}.tag.acc{background:var(--amber-soft);color:var(--acc)}

/* Formularios */
.field{display:block;margin-bottom:14px}
.field>span,.field>label{display:block;font-size:14px;font-weight:700;color:var(--muted);margin-bottom:7px}
input[type=text],input[type=tel],input[type=email],input[type=search],input[type=password],input[type=date],input[type=time],input[type=url],input[type=number],select,textarea{
  width:100%;height:56px;border:2px solid var(--line);border-radius:14px;background:#fff;padding:0 16px;font:inherit;font-size:18px;color:var(--ink);outline:none;-webkit-appearance:none;appearance:none}
input[type=file]{width:100%;padding:12px;border:2px dashed var(--line);border-radius:14px;background:#fff;font:inherit;font-size:15px;color:var(--muted)}
textarea{height:auto;padding:12px 16px;min-height:90px}
select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236b6156' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:44px}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 4px var(--amber-soft)}
input::placeholder{color:#b7ab9c}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:2px solid var(--line);background:#fff;border-radius:11px;padding:10px 13px;font-size:15px;font-weight:600;cursor:pointer;color:var(--ink);font-family:inherit}
.chip.on{border-color:var(--acc);background:var(--amber-soft);color:var(--acc)}
.chip:has(input[type=checkbox]:checked){border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.chip:has(input[type=radio]:checked){border-color:var(--acc);background:var(--amber-soft);color:var(--acc)}
.chip small{font-size:12px;font-weight:700;opacity:.8}
.chip input{position:absolute;opacity:0;width:0;height:0}
.seg{display:flex;gap:8px}.seg .chip{flex:1;text-align:center}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.ver{position:relative}.ver button{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:700;padding:8px;cursor:pointer}

/* Botones */
.btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:58px;border:none;border-radius:16px;
  background:var(--acc);color:#fff;font:inherit;font-size:18px;font-weight:700;cursor:pointer;margin-top:6px;text-decoration:none}
.btn.amber{background:linear-gradient(135deg,var(--amber1),var(--amber2))}
.btn.ghost{background:#fff;color:var(--acc);border:2px solid var(--line)}
.btn.ok{background:var(--ok)}.btn.bad{background:#fff;color:var(--bad);border:2px solid #f1cfca}
.btn.sm{height:44px;font-size:15px;border-radius:12px;width:auto;padding:0 14px;margin:0}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.45;cursor:default}
.btn.off{background:#e7e5e1;color:#9a958d;box-shadow:none;cursor:default;pointer-events:none}
.slotcap{margin-bottom:10px}
.btnrow{display:flex;gap:9px;margin-top:8px}.btnrow .btn{margin:0}
.link{border:none;background:none;color:var(--acc);font:inherit;font-weight:700;font-size:15px;cursor:pointer;padding:8px 4px}

/* Mensajes */
.flash{border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:15px;font-weight:600;line-height:1.5}
.flash.ok{background:var(--ok-bg);color:#0f5f2d;border:1px solid #bfe3cc}
.flash.bad,.alert{background:var(--bad-bg);color:var(--bad);border:1px solid #f1cfca;border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:15px;font-weight:600}
.flash.info,.info{background:var(--amber-soft);border:1px solid #f0dcae;color:#7a4a09;border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:14.5px;display:flex;gap:9px;align-items:flex-start}
.nota{margin:12px 0 0;color:var(--muted);font-size:14px;text-align:center}

/* Días (tira horizontal) */
.days{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;margin:0 -16px 12px;padding-inline:16px;scrollbar-width:none}
.days::-webkit-scrollbar{display:none}
.day{flex:0 0 auto;width:56px;border-radius:14px;padding:9px 0;text-align:center;border:2px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}
.day .dow{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}
.day .dn{font-size:20px;font-weight:700}
.day.on{background:var(--acc);border-color:transparent;color:#fff}.day.on .dow{color:rgba(255,255,255,.85)}
.day.off{opacity:.4}

/* Puntos y turnos */
.pt{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:14px}
.pt .pic{height:118px;background:var(--acc);background-size:cover;background-position:center;position:relative;opacity:.95}
.pt .pic.sin{background:linear-gradient(135deg,var(--acc),#e0a04f)}
.pt .pname{position:absolute;left:14px;bottom:10px;color:#fff;font-weight:700;font-size:18px;text-shadow:0 1px 5px rgba(0,0,0,.55)}
.pt .body2{padding:12px}
.slots{display:grid;grid-template-columns:1fr;gap:9px}
.slotw{border:1px solid var(--hair);border-radius:15px;overflow:hidden;background:#fff}
.slotw .slot{border-radius:0;border:none}
.slotinfo{padding:8px 11px;font-size:13.5px;line-height:1.5;color:var(--ink)}.slotinfo a{font-weight:700;text-decoration:none}
.pt .maps{margin:0 0 12px;width:100%}
.idi-tag{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;padding:5px 10px;border-radius:999px;background:#e8f1fb;color:#1d4ed8;font-size:13px;font-weight:800}
.idi-nota{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:12px;background:var(--full-bg);color:var(--muted);font-size:13px;line-height:1.35}
.asig-idi{font-size:15px;letter-spacing:1px;vertical-align:-1px}
.pt.idi-off .pic{filter:grayscale(1);opacity:.6}.pt.idi-off .slot.off{cursor:default;pointer-events:none}
.slot{border-radius:13px;padding:11px 10px;font-size:14px;display:flex;flex-direction:column;gap:3px;text-decoration:none;border:2px solid transparent;font-family:inherit;text-align:left;cursor:pointer}
.slot .t{font-weight:700}.slot .s{font-size:12px;font-weight:700}
.slot.ok{background:var(--ok-bg);color:var(--ok)}.slot.warn{background:var(--warn-bg);color:var(--warn)}
.slot.full{background:var(--full-bg);color:var(--full)}.slot.off{background:var(--full-bg);color:#c3c3c3}
.slot.mine{background:#fff;border-color:var(--acc);color:var(--acc)}

/* Turno grande (mis turnos) */
.turno{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:12px}
.turno .tt{font-weight:700;font-size:18px}
.turno .ts{color:var(--muted);font-size:14.5px;margin:2px 0 8px}
.turno .quien{font-size:14px;margin-bottom:8px}
.big2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:8px}
.big2 a,.big2 button{border-radius:13px;padding:12px 8px;font-weight:700;font-size:14px;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;border:2px solid var(--line);background:#fff;color:var(--ink);text-decoration:none}
.big2 .go{background:#e8f0fe;border-color:#c6d8fb;color:#1a56c9}
.big2 .danger{color:var(--bad);border-color:#f2c7c2}

/* KPIs */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.kpi .k{font-size:12.5px;color:var(--muted);font-weight:700}.kpi .v{font-size:26px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.kpi.alert{border-color:#f1cfca;background:#fdf4f3}.kpi.alert .v{color:var(--bad)}
a.kpi{text-decoration:none;color:inherit;display:block}.kpi .rs{font-size:12.5px;color:var(--muted);margin-top:2px}
/* Dashboard admin */
.bars{display:flex;gap:4px;align-items:flex-end;height:110px;overflow-x:auto;padding-bottom:2px}
.bar{flex:1 0 22px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:700}
.bar i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:var(--amber-soft);border-top:3px solid var(--acc)}
.bar.on i{background:var(--acc)}.bar.past i{opacity:.45}.bar small{font-size:11px}
.acciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.accion{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;text-decoration:none;color:inherit;min-height:66px}
.accion .rn{font-weight:700;font-size:15px}.accion .rs{font-size:12.5px;color:var(--muted)}
.accion:hover{border-color:var(--acc)}

/* Mapa admin (tarjeta por punto) */
.mp{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:10px}
.mp .mn{font-weight:700;font-size:16px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.cells{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px}
.cell{border-radius:10px;padding:8px 4px;text-align:center;font-weight:700;font-size:14px;text-decoration:none;font-variant-numeric:tabular-nums;color:inherit}
.cell small{display:block;font-size:10px;font-weight:700;opacity:.85}
.c-cov{background:var(--ok-bg);color:var(--ok)}.c-near{background:var(--warn-bg);color:var(--warn)}.c-miss{background:var(--bad-bg);color:var(--bad)}.c-off{background:var(--full-bg);color:#c3c3c3}
.names{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.names span{background:var(--amber-soft);color:var(--amber1);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}
.names span.m{background:var(--minor-soft);color:var(--minor)}

/* Éxito */
.done{text-align:center}
.check{width:80px;height:80px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;margin:4px auto 14px}
.done h2{font-size:26px;margin:0 0 6px}
.acceso{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 6px}
.acceso div{background:var(--amber-soft);border-radius:14px;padding:12px 10px}
.acceso span{display:block;font-size:12.5px;font-weight:700;color:var(--amber1);text-transform:uppercase;letter-spacing:.04em}
.acceso b{display:block;font-size:22px;margin-top:2px;font-variant-numeric:tabular-nums}

/* Buscador congregación */
.lista{list-style:none;margin:6px 0 0;padding:0;border:2px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;max-height:300px;overflow-y:auto}
.lista li{padding:14px 16px;font-size:17px;border-bottom:1px solid #f1ebe2;cursor:pointer}
.lista li:last-child{border-bottom:none}.lista li:hover,.lista li:focus{background:var(--amber-soft);outline:none}
.lista li.vacio{color:var(--muted);cursor:default;font-size:15px}
.elegida{display:flex;align-items:center;justify-content:space-between;gap:10px;height:56px;border:2px solid var(--ok);border-radius:14px;background:var(--ok-bg);padding:0 14px 0 16px;font-weight:700;font-size:16px;color:#0f5f2d}

/* Tabs inferiores */
.tabs{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 6px calc(8px + env(safe-area-inset-bottom));z-index:20}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;text-decoration:none;color:var(--muted);font-size:11.5px;font-weight:700;border-radius:12px}
.tabs a.on{color:var(--acc);background:var(--amber-soft)}
.pie{text-align:center;color:#b7ab9c;font-size:12.5px;margin-top:22px}
@media (max-width:360px){ .acceso,.two,.slots,.big2{grid-template-columns:1fr} }
@media (min-width:700px){ .tabs{max-width:520px;left:50%;transform:translateX(-50%);border-radius:18px 18px 0 0;border:1px solid var(--line);border-bottom:none} }

/* ===== Escritorio (≥900px): sitio de PC, no un celular centrado ===== */
@media (min-width:900px){
  body{font-size:16px}
  .wrap{max-width:1200px;padding:0 40px 60px;display:flex;flex-direction:column}
  .wrap.con-tabs{padding-bottom:60px}
  .barra{position:sticky;top:0;z-index:30;background:rgba(255,251,245,.94);backdrop-filter:blur(12px);margin:0 -40px 26px;padding:16px 560px 16px 40px;border-bottom:3px solid var(--acc);min-height:84px}
  .barra .evlogo{width:56px;height:56px}
  .barra .bt{display:block}.barra .bs{font-size:14px}
  .barra .avatar{position:absolute;right:40px;top:20px;width:44px;height:44px}
  h1{font-size:26px;white-space:nowrap}
  h2{font-size:20px;margin:26px 0 12px}
  .tabs{order:-1;position:sticky;top:0;z-index:31;left:auto;right:auto;bottom:auto;transform:none;max-width:none;width:auto;align-self:flex-end;margin:0 64px -84px 0;padding:0;border:none;background:none;border-radius:0;gap:6px;pointer-events:none}
  .tabs a{flex:0 0 auto;flex-direction:row;gap:8px;font-size:14px;padding:10px 16px;border-radius:999px;pointer-events:auto;background:#fff;border:1.5px solid var(--line);margin-top:22px}
  .tabs a.on{background:var(--acc);color:#fff;border-color:transparent}
  .tabs svg{width:18px;height:18px}
  .grid{grid-template-columns:1fr 1fr;gap:18px}
  .slots{grid-template-columns:1fr 1fr}
  .pt .pic{height:160px}.pt .pname{font-size:20px}
  .pt,.turno{transition:box-shadow .15s}.pt:hover,.turno:hover{box-shadow:0 18px 40px -24px rgba(120,80,10,.5)}
  .kpis{grid-template-columns:repeat(4,1fr)}
  .acciones{grid-template-columns:repeat(4,1fr)}
  .bars{height:150px}
  .days{margin:0 0 18px;padding-inline:0;flex-wrap:wrap}.day{width:64px}
  .btn{max-width:440px;margin-inline:auto}
  form.card .btn,.card .btn,.pt .btn{max-width:none;margin-inline:0}
  body.login .wrap,body.registro .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;align-content:center;grid-auto-rows:min-content;min-height:100vh;padding-top:40px;padding-bottom:40px}
  body.login .hero,body.registro .hero{grid-row:1/span 3;text-align:left;padding:44px;min-height:600px;border-radius:30px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;
    background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(40,20,5,.78) 100%),url(/assets/img/punto-generico.jpg) center/cover;box-shadow:0 40px 80px -40px rgba(120,80,10,.6)}
  body.login .logo,body.registro .logo{width:190px;margin:0 0 auto;background:#fff;border-radius:22px;padding:14px;box-shadow:0 10px 30px -10px rgba(0,0,0,.4)}
  body.login .hero h1,body.registro .hero h1{font-size:44px;margin:0 0 6px;color:#fff;white-space:normal}
  body.login .sub,body.registro .sub{font-size:18px;color:rgba(255,255,255,.9)}
  body.login .hero::after,body.registro .hero::after{content:"Predicación Pública Especial";display:block;margin-top:14px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#FBBF24;font-weight:700}
  body.login .card,body.registro .card{padding:32px;border-radius:24px;box-shadow:0 30px 60px -30px rgba(120,80,10,.45)}
  body.login .nota,body.registro .nota{text-align:left;padding-left:6px}
}
@media (min-width:1280px){
  .grid{grid-template-columns:repeat(3,1fr)}
  .slots{grid-template-columns:1fr}
  .barra{padding-right:600px}
}

/* Visor de errores (admin/logs.php, solo Root) */
.logf{margin-bottom:14px}.logf .ver input{padding-right:84px}.logf .chips{margin:10px 0}.logf .seg{margin-bottom:2px}
.logf .chip{text-decoration:none;display:inline-flex;align-items:center;gap:6px}.logf .chip b{background:var(--bad);color:#fff;border-radius:999px;padding:1px 7px;font-size:12px}
.logf .chip.on b{background:var(--acc)}
.log{background:#fff;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:16px;padding:12px 14px;margin-bottom:10px}
.log.n-fatal,.log.n-exception{border-left-color:var(--bad)}.log.n-error,.log.n-warning{border-left-color:var(--warn)}.log.n-manual{border-left-color:var(--acc)}
.log.rev{opacity:.7;border-left-color:var(--ok)}
.log .lh{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.log .lt{margin-left:auto;font-size:12.5px;color:var(--muted);font-weight:700}
.log .lm{font-weight:700;font-size:15.5px;line-height:1.4;word-break:break-word}
.log .ld{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:6px;font-size:13px;color:var(--muted)}
.log code,.nota code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:var(--hair);border-radius:6px;padding:1px 6px;word-break:break-all}
.log details{margin-top:8px}.log summary{cursor:pointer;font-weight:700;font-size:13.5px;color:var(--acc)}
.log pre{margin:8px 0 0;background:#fbf8f2;border:1px solid var(--hair);border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.45;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.log .ua{font-size:11.5px;color:#b7ab9c;margin-top:6px;word-break:break-all}
.log .btnrow{margin-top:10px}.log .btnrow form{flex:1}.log .btnrow .btn{width:100%}
.btnrow.pagi{justify-content:space-between;margin:6px 0 14px}
.btnrow.wrap2{flex-wrap:wrap}.btnrow.wrap2 form{flex:1 1 46%}.btnrow.wrap2 .btn{width:100%}
@media (min-width:900px){ .log .btnrow form{flex:0 0 auto}.log .btnrow .btn{width:auto}.btnrow.wrap2 form{flex:0 0 auto} }

/* ===== Inicio del voluntario (app.php) ===== */
.home-hero{position:relative;border-radius:22px;overflow:hidden;min-height:210px;margin-bottom:16px;background:#fbe8cf url("/assets/img/hero-guanajuato.jpg") center right/cover no-repeat;border:1px solid var(--line);box-shadow:0 18px 40px -24px rgba(120,80,10,.55);display:flex;flex-direction:column;justify-content:space-between}
.home-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,251,245,.92) 0%,rgba(255,251,245,.72) 45%,rgba(255,251,245,.15) 100%)}
.hh-txt{position:relative;padding:18px 18px 0}
.hh-fecha{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber1)}
.home-hero h2{margin:4px 0 4px;font-size:22px;line-height:1.15;letter-spacing:-.01em}
.home-hero p{margin:0;font-size:15px;color:#4a4036;max-width:34ch}
.hh-stats{position:relative;display:flex;gap:8px;padding:14px 12px 12px;margin-top:14px}
.hh-stats>div{flex:1;background:rgba(255,255,255,.88);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.9);border-radius:14px;padding:9px 10px;text-align:center;box-shadow:0 8px 20px -14px rgba(120,80,10,.5)}
.hh-stats b{display:block;font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}
.hh-stats span{display:block;font-size:11.5px;font-weight:700;color:var(--muted);line-height:1.2}
.hh-stats .pend{background:rgba(251,240,220,.95);border-color:#f0dcae}.hh-stats .pend b{color:var(--amber1)}

/* Informe del turno integrado */
.rep{background:linear-gradient(160deg,#fff 0%,#fff8ec 100%);border:2px solid var(--amber2);border-radius:20px;padding:14px;margin-bottom:16px;box-shadow:0 16px 36px -22px rgba(180,83,9,.5)}
.rep-h{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.rep-ico{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--amber1),var(--amber2));color:#fff;display:grid;place-items:center;flex:0 0 auto}
.rep-t{font-weight:700;font-size:18px;line-height:1.2}.rep-s{font-size:13.5px;color:var(--muted);font-weight:600}
.rep-nota{font-size:13.5px;color:var(--muted);margin:0 0 10px}
.rep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.rep-n{display:flex;flex-direction:column;min-width:0;gap:6px;background:#fff;border:2px solid var(--line);border-radius:16px;padding:10px 8px;text-align:center}
.rep-n span{font-size:11.5px;font-weight:700;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.2;min-height:34px}.rep-n span svg{color:var(--amber1)}
.rep-n input[type=number]{height:56px;width:100%;min-width:0;border:none;background:var(--amber-soft);border-radius:12px;text-align:center;font-size:26px;font-weight:700;padding:0;font-variant-numeric:tabular-nums;color:var(--amber1)}
.rep-n input:focus{box-shadow:0 0 0 3px #fbe2b6}
.rep-n:focus-within{border-color:var(--amber2)}
.rep .field{margin-bottom:6px}.rep textarea{min-height:76px}
.rep-mas{margin-top:12px;font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rep-mas a{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:5px 11px;text-decoration:none;font-weight:700;color:var(--amber1);font-size:13px}

.rep.rep-off{background:#fff;border-color:var(--line);box-shadow:0 12px 32px -20px rgba(120,80,10,.4)}
.rep.rep-off .rep-ico{background:var(--hair);color:var(--muted)}
.rep .btn[disabled]{opacity:1;color:var(--muted);background:var(--full-bg);border-color:transparent;font-size:15px;cursor:default}
.rep-quien{margin:0 0 12px;font-size:13px;color:var(--muted);font-weight:700}.rep-quien .names{margin-top:6px}

/* Próximo turno */
.next{background:#fff;border:1.5px solid var(--line);border-top:5px solid var(--ev,var(--acc));border-radius:20px;padding:0 14px 14px;margin-bottom:16px;box-shadow:0 14px 32px -22px rgba(120,80,10,.5)}
.next-h{display:flex;align-items:center;gap:7px;padding:11px 0 10px;font-weight:700;font-size:14px;color:var(--ev,var(--acc));border-bottom:1px dashed var(--hair)}
.next-when{margin-left:auto;background:var(--ev,var(--acc));color:#fff;border-radius:999px;padding:4px 11px;font-size:12.5px;letter-spacing:.02em}
.next-b{display:flex;gap:14px;padding:14px 0 6px}
.dbadge{flex:0 0 64px;height:78px;border-radius:16px;background:linear-gradient(160deg,var(--ev,var(--acc)),color-mix(in srgb,var(--ev,var(--acc)) 55%,#fff));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:0 10px 22px -12px var(--ev,var(--acc))}
.dbadge b{font-size:30px;font-weight:700;margin:2px 0}.dbadge small{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.9}
.next-i{flex:1;min-width:0}
.next-p{font-weight:700;font-size:21px;line-height:1.15;letter-spacing:-.01em}
.next-hr{display:flex;align-items:center;gap:5px;color:var(--muted);font-weight:600;font-size:14.5px;margin:4px 0 6px}
.next .names{margin-top:4px}
.next-cap{font-size:13.5px;color:var(--muted);margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.next-cap a{color:#128c4a;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:3px}

/* Eventos */
.evc{background:#fff;border:1.5px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:14px;box-shadow:0 14px 32px -22px rgba(120,80,10,.5);position:relative}
.evc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--ev,var(--acc))}
.evc.off{opacity:.65}
.evc-top{display:flex;align-items:center;gap:12px;padding:14px 14px 10px 18px;text-decoration:none;color:inherit}
.evc-top img{width:74px;height:74px;object-fit:contain;border-radius:14px;background:#fff;border:1px solid var(--hair);flex:0 0 auto;-webkit-user-drag:none}
.evc-i{flex:1;min-width:0}
.evc-n{font-weight:700;font-size:21px;color:var(--ev,var(--acc));line-height:1.15;letter-spacing:-.01em}
.evc-s{display:flex;align-items:center;gap:4px;font-size:13.5px;color:var(--muted);font-weight:600;margin:3px 0 7px}
.evc-st{display:flex;gap:6px;flex-wrap:wrap}
.evc-bar{height:6px;background:var(--hair);margin:0 14px 0 18px;border-radius:99px;overflow:hidden}.evc-bar i{display:block;height:100%;background:var(--ev,var(--acc));border-radius:99px}
.evc-lib{display:flex;align-items:center;gap:12px;margin:12px 14px 0 18px;background:var(--amber-soft);border:2px solid #e8b96a;color:#7a4a09;border-radius:16px;padding:14px 14px;font-size:17px;line-height:1.3;text-decoration:none;box-shadow:0 4px 14px rgba(180,83,9,.15)}
.evc-lib b{font-size:19px;display:block;margin-bottom:2px}
.evc-bell{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--acc);transform-origin:50% 8%;animation:campana 2.2s ease-in-out infinite}
@keyframes campana{0%,60%,100%{transform:rotate(0)}8%{transform:rotate(16deg)}16%{transform:rotate(-14deg)}24%{transform:rotate(10deg)}32%{transform:rotate(-7deg)}40%{transform:rotate(4deg)}48%{transform:rotate(-2deg)}}
@media (prefers-reduced-motion:reduce){.evc-bell{animation:none}}
.evc-lib span{flex:1;min-width:0}
.evc-btn{margin:12px 14px 14px 18px;width:auto;height:52px;font-size:16px;background:var(--ev,var(--acc))}

/* Lista corta de siguientes turnos */
.av.mini{flex-direction:column;line-height:1;gap:1px;background:var(--amber-soft);color:var(--amber1)}
.av.mini b{font-size:16px}.av.mini small{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em}

@media (max-width:360px){ .rep-grid{grid-template-columns:1fr 1fr} .hh-stats span{font-size:10.5px} }
@media (min-width:900px){
  .home-hero{min-height:260px;flex-direction:row;align-items:flex-end;background-position:center}
  .home-hero::before{background:linear-gradient(90deg,rgba(255,251,245,.96) 0%,rgba(255,251,245,.85) 40%,rgba(255,251,245,.05) 75%)}
  .hh-txt{padding:26px 28px 24px;flex:1}.home-hero h2{font-size:30px}.home-hero p{font-size:16px}
  .hh-stats{flex:0 0 auto;padding:0 22px 22px;margin:0;gap:12px}.hh-stats>div{min-width:120px;padding:12px 16px}.hh-stats b{font-size:30px}
  .rep{padding:20px 22px}.rep-grid{grid-template-columns:repeat(3,1fr);gap:12px}.rep-n span{flex-direction:row;font-size:13px;min-height:0}.rep .btn{max-width:360px;margin-inline:0}
  .next{padding:0 22px 18px}.next-b{padding:18px 0 8px}.next-p{font-size:24px}.dbadge{flex-basis:76px;height:90px}.dbadge b{font-size:36px}
  .evc-top{padding:18px 22px 12px 26px}.evc-top img{width:88px;height:88px}.evc-n{font-size:24px}
  .evc-btn{margin-left:26px;max-width:320px;margin-inline:26px 0}
  .evc-lib,.evc-bar{margin-left:26px}
}

/* ===== Mis turnos (turnos.php) ===== */
.tstats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.tstats>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 6px;text-align:center;box-shadow:0 8px 20px -16px rgba(120,80,10,.5)}
.tstats b{display:block;font-size:20px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--amber1);white-space:nowrap}
.tstats span{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-top:2px}

/* Avisos tipo tarjeta-enlace (informe pendiente, lugar liberado) */
.rep-link{display:flex;align-items:center;gap:12px;background:linear-gradient(160deg,#fff 0%,#fff8ec 100%);border:2px solid var(--amber2);border-radius:18px;padding:12px 14px;margin-bottom:12px;text-decoration:none;color:inherit;box-shadow:0 14px 30px -22px rgba(180,83,9,.5)}
.rep-link.ok{border-color:#9dd6b3;background:linear-gradient(160deg,#fff 0%,#eef8f1 100%)}.rep-link.ok .rep-ico{background:linear-gradient(135deg,#15803D,#4ade80)}
.rep-link .rep-ico{width:42px;height:42px;border-radius:12px}
.rl-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rl-t b{font-size:16px;line-height:1.2}.rl-t small{font-size:13px;color:var(--muted);font-weight:600}

/* Día */
.tday{margin-bottom:22px}
.tday-h{display:flex;align-items:center;gap:12px;margin-bottom:10px;position:sticky;top:0;z-index:5;padding:6px 0;background:rgba(255,251,245,.92);backdrop-filter:blur(8px)}
.tday-h .dbadge{flex-basis:56px;height:66px;background:linear-gradient(160deg,#6b6156,#a49889);box-shadow:none}
.tday-h .dbadge b{font-size:26px}
.tday.hoy .dbadge{background:linear-gradient(160deg,var(--amber1),var(--amber2));box-shadow:0 10px 22px -12px var(--amber1)}
.tday-n{font-weight:700;font-size:17px;line-height:1.15}.tday-s{font-size:13px;color:var(--muted);font-weight:700}
.tday.hoy .tday-s{color:var(--amber1)}

/* Tarjeta de turno */
.tk{background:#fff;border:1.5px solid var(--line);border-left:6px solid var(--ev,var(--acc));border-radius:18px;padding:12px 14px 14px;margin-bottom:12px;box-shadow:0 14px 32px -22px rgba(120,80,10,.5)}
.tk.vivo{border-color:var(--ev,var(--acc));box-shadow:0 0 0 4px color-mix(in srgb,var(--ev,var(--acc)) 14%,transparent),0 14px 32px -22px rgba(120,80,10,.5)}
.tk.pide{border-color:var(--amber2)}
.tk-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tk-hr{font-size:24px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ev,var(--acc));line-height:1}
.tk-hr i{font-style:normal;color:var(--muted);margin:0 2px;font-weight:400}
.tk-top .tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:5px 10px}
.tk-p{font-weight:700;font-size:20px;line-height:1.15;margin-top:6px}
.tk-ev{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:13.5px;color:var(--muted);font-weight:600;margin:2px 0 8px}
.tk .names span{font-size:13.5px}
.tk .next-cap{margin-top:8px}
.tk-ask{margin-top:12px;background:var(--amber-soft);border:1px solid #f0dcae;border-radius:14px;padding:10px 12px}
.tk-ask-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#7a4a09;font-size:14px}.tk-ask-t span{flex-basis:100%;font-size:13px;color:#8a6a3a;margin-left:24px}
.tk-ask .btnrow{margin-top:8px}.tk-ask .btnrow form{flex:1}.tk-ask .btn{width:100%}
.tk-acts{margin-top:12px}
.tk-acts .llegue{background:var(--ok-bg);border-color:#bfe3cc;color:#0f5f2d}
.tk-nocancel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;border-radius:13px;padding:10px 8px;font-weight:700;font-size:13px;color:var(--muted);background:var(--full-bg);line-height:1.25}
.tk-nocancel small{font-weight:600;font-size:11.5px}
.vacio-t h2{font-size:22px;margin:4px 0 6px}.vacio-t p{max-width:34ch;margin-inline:auto}

@media (max-width:360px){ .tstats{grid-template-columns:repeat(2,1fr)} .tk-hr{font-size:21px} }
@media (min-width:900px){
  .tstats{grid-template-columns:repeat(4,1fr);gap:14px;max-width:760px}.tstats b{font-size:26px}
  .tday-h{top:84px;padding:10px 0}.tday-h .dbadge{flex-basis:64px;height:74px}
  .tday{display:flex;flex-wrap:wrap;gap:16px}.tday-h{flex-basis:100%;margin-bottom:0}
  .tday .tk{display:block;flex:0 0 calc(50% - 8px);margin:0}
  .tk-p{font-size:22px}.tk-hr{font-size:26px}
  .rep-link{max-width:760px}
  .tstats,.rep-link{margin-left:0}
}
@media (min-width:1280px){ .tday .tk{flex-basis:calc(33.333% - 11px)} }

/* ===== Admin · Usuarios en tres grupos (admin/usuarios.php) ===== */
.ubuscar{display:flex;gap:8px;margin-bottom:12px}.ubuscar input{flex:1;min-width:0}.ubuscar .btn{height:56px;width:56px;padding:0;border-radius:14px;flex:0 0 auto}
.useg{display:flex;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:5px;margin-bottom:14px}
.useg input{position:absolute;opacity:0;width:0;height:0}
.useg label{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;height:44px;border-radius:12px;font-size:12.5px;padding:0 4px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.useg label b{background:var(--hair);color:var(--muted);border-radius:999px;padding:1px 7px;font-size:11.5px}
.useg input:checked+label{background:var(--amber-soft);color:var(--acc)}.useg input:checked+label b{background:var(--acc);color:#fff}
.useg input:focus-visible+label{box-shadow:0 0 0 3px #fbe2b6}
.ucols{display:grid;gap:14px}
.ucol{display:none}
#useg-vol:checked~.ucols .u-vol,#useg-ges:checked~.ucols .u-ges,#useg-sec:checked~.ucols .u-sec{display:block}
.ucol-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.ucol-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;background:var(--amber-soft);color:var(--amber1)}
.u-ges .ucol-ico{background:#e2f2f5;color:var(--minor)}.u-sec .ucol-ico{background:var(--ok-bg);color:var(--ok)}
.ucol-t{flex:1;min-width:0}.ucol-n{font-weight:700;font-size:17px;line-height:1.15}.ucol-n small{font-size:13px;color:var(--muted);font-weight:700}
.ucol-s{font-size:12.5px;color:var(--muted);font-weight:600}
.ucol-add{height:42px;border-radius:12px;padding:0 12px;flex:0 0 auto}
.u-ges .ucol-add{background:var(--minor)}.u-sec .ucol-add{background:var(--ok)}
.ucol-l{margin-bottom:0}.ucol-l .rs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* La ordenación del DOM: radios+labels y luego .ucols dentro de .useg; en móvil .useg es un flex de pestañas y .ucols cae debajo */
.useg{flex-wrap:wrap}.useg .ucols{flex-basis:100%;order:10;margin:6px -5px -5px;padding:0}
.useg .ucols .ucol{background:none}
@media (max-width:420px){ .useg label svg{display:none} }
@media (min-width:900px){
  .useg{background:none;border:none;padding:0;gap:18px}
  .useg>label{display:none}
  .useg .ucols{grid-template-columns:repeat(3,1fr);gap:18px;margin:0;align-items:start}
  .useg .ucol,.ucol{display:block!important}
  .ubuscar{max-width:560px}
  .ucol-l{max-height:calc(100vh - 300px);overflow-y:auto}
}

/* Bienvenida del panel (admin/index.php) */
.bienv{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:16px 18px;margin-bottom:14px;box-shadow:0 14px 32px -22px rgba(120,80,10,.5);background-image:linear-gradient(120deg,#fff 55%,var(--amber-soft) 100%)}
.bienv-t{flex:1;min-width:0}.bienv h2{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.01em}.bienv p{margin:4px 0 0;font-size:15px;color:var(--muted);font-weight:600}
.bienv-rol{display:inline-flex;align-items:center;gap:6px;background:var(--amber-soft);color:var(--amber1);border-radius:999px;padding:8px 14px;font-weight:700;font-size:14px;white-space:nowrap;flex:0 0 auto}
.bienv.ges{background-image:linear-gradient(120deg,#fff 55%,var(--minor-soft) 100%)}.bienv.ges .bienv-rol{background:var(--minor-soft);color:var(--minor)}
@media (min-width:900px){ .bienv{padding:22px 26px}.bienv h2{font-size:36px}.bienv p{font-size:16px}.bienv-rol{font-size:15px;padding:10px 18px} }
.bienv.sec{background-image:linear-gradient(120deg,#fff 55%,var(--ok-bg) 100%)}.bienv.sec .bienv-rol{background:var(--ok-bg);color:var(--ok)}
#adultoNota{display:block;margin-top:6px;font-style:normal}
.form-cong{display:flex;align-items:center;gap:10px;background:var(--amber-soft);border:1px solid #f0dcae;border-radius:14px;padding:10px 14px;margin-bottom:14px;color:var(--amber1)}
.form-cong small{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8a6a3a}.form-cong b{font-size:17px;color:var(--ink)}
.seg.idi .chip{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:13.5px;padding:8px 4px}.seg.idi .chip i{font-style:normal;font-size:26px;line-height:1}
.tag.idi{background:#eef4ff;color:#2f4b8a}
.seg.cap .chip{font-size:14px;padding:10px 6px}.seg.cap .c1:has(input:checked){border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.seg.cap .c2:has(input:checked){border-color:var(--muted);background:var(--full-bg);color:var(--muted)}
.urow .rs .tag{margin-top:4px}.urow .btn.sm{height:40px;padding:0 12px;font-size:14px;flex:0 0 auto}
/* Entradas de secretarios y administración: mismo logo, título grande y botón de otro color */
.login-secretario .hero h1,.login-admin .hero h1{font-size:34px;letter-spacing:-.02em;line-height:1.05}
.login-secretario .hero .sub,.login-admin .hero .sub{font-size:15px;margin-top:6px}
.login-secretario .btn.staff{background:linear-gradient(135deg,#0E7490,#22B8CF)}
.login-admin .btn.staff{background:linear-gradient(135deg,#1e293b,#475569)}
.login-secretario .barra,.login-admin .barra{border-color:var(--minor)}
.login-secretario input:focus{border-color:var(--minor);box-shadow:0 0 0 4px var(--minor-soft)}
.login-admin input:focus{border-color:#475569;box-shadow:0 0 0 4px #e2e8f0}
@media (min-width:900px){ .login-secretario .hero h1,.login-admin .hero h1{font-size:42px} }
/* Usuarios: directorio con filtros (500+) y congregaciones */
.ualta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.ualta .btn{width:auto;margin:0}.ualta .ges{background:var(--minor)}.ualta .sec{background:var(--ok)}
.ufil{padding:12px}.ufil .ubuscar{margin-bottom:10px}
.ufil-g{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ufil-g label span{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
.ufil-g select{height:46px;font-size:15px;border-radius:12px;padding:0 36px 0 12px;background-position:right 10px center}
.ufil-b{display:flex;gap:8px;margin-top:10px}.ufil-b .btn{width:auto;margin:0}
.ufil .chips{margin-top:2px}.ufil .chip{text-decoration:none;font-size:13.5px;padding:8px 11px}
.ures{margin:4px 0 8px}
.ulist .row{padding:10px 12px}.utags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.utags .tag{font-size:11px;padding:3px 7px}
.crow .ri{text-decoration:none;color:inherit}.crow .btn.sm{height:38px;padding:0 12px;font-size:13.5px;flex:0 0 auto}.crow.off{background:#fbf8f2}.crow.off .rn{color:var(--muted)}
@media (min-width:900px){ .ufil-g{grid-template-columns:repeat(4,1fr)} }

/* ===== Tablero admin: estado del evento + gráficas SVG ===== */
.bienv-pdf{width:auto;margin-left:6px;flex:0 0 auto;height:40px}
.dash-ev{border-top:5px solid var(--ev,var(--acc));display:flex;flex-direction:column;gap:12px}
.dash-ev-l{display:flex;align-items:center;gap:14px}
.dash-ev-n{font-size:14px;color:var(--muted);line-height:1.4}.dash-ev-n b{font-size:26px;color:var(--ink);font-variant-numeric:tabular-nums}.dash-ev-n small{font-size:12.5px}
.dash-ev-t{font-weight:700;font-size:18px;color:var(--ev,var(--acc))}.dash-ev-s{font-size:13.5px;color:var(--muted);font-weight:600}
.dash-k{margin-bottom:0}
.dash-2{grid-template-columns:1fr}
.dash-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.g-scroll{overflow-x:auto;scrollbar-width:thin}.g-barras{display:block}
.g-leyenda{display:flex;gap:12px;align-items:center;font-size:11.5px;color:var(--muted);font-weight:700;margin-top:6px}.g-leyenda i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px}
.g-hb{display:flex;flex-direction:column;gap:8px}
.g-hb-l{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;font-weight:600}.g-hb-l span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-hb-l b{font-variant-numeric:tabular-nums;white-space:nowrap}.g-hb-l small{color:var(--muted);font-weight:700}
.g-hb-t{height:10px;background:var(--hair);border-radius:99px;overflow:hidden;margin-top:3px}.g-hb-t i{display:block;height:100%;border-radius:99px;min-width:4px}
.g-hb-s{font-size:11.5px;color:var(--muted);margin-top:2px}
.card .ch a{text-decoration:none}
@media (min-width:900px){
  .dash-ev{flex-direction:row;align-items:center;gap:26px}.dash-ev-l{flex:0 0 auto}.dash-ev-r{flex:1;min-width:0}
  .dash-2{grid-template-columns:1fr 1fr}
  .dash-k{grid-template-columns:repeat(4,1fr)}
}
.dash .card .ch,.rep .card .ch{justify-content:flex-start;gap:6px}.dash .card .ch .muted{font-weight:600}
.capbox{border-color:#f0dcae}.capbox .av.cap{background:var(--warn-bg);color:var(--warn)}.capbox .btn.sm{width:auto}
.logo-bg,body.login .logo-bg,body.registro .logo-bg{aspect-ratio:1;background-image:url(/assets/img/logo-ppe.webp);background-repeat:no-repeat;background-position:center;background-size:contain;background-origin:content-box;background-color:transparent}
body.login .logo-bg,body.registro .logo-bg{background-color:#fff}
/* Capitanes por punto y horario */
.cap-print-f{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;align-items:end}.cap-print-f .field{margin-bottom:10px}.cap-print-f .btn{grid-column:1/-1;height:52px}
@media (min-width:720px){ .cap-print-f{grid-template-columns:1fr 1fr 1.4fr 1.4fr auto} .cap-print-f .btn{grid-column:auto;margin-bottom:10px} }
/* ===== Animaciones de gráficas (solo en pantalla) ===== */
@media screen and (prefers-reduced-motion:no-preference){
  .g-anim .g-bar{transform-box:fill-box;transform-origin:bottom;animation:g-crece .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0ms)}
  @keyframes g-crece{from{transform:scaleY(0)}}
  .g-anim .g-ring{animation:g-ring 1.2s cubic-bezier(.2,.8,.2,1) both}
  @keyframes g-ring{from{stroke-dashoffset:var(--c)}}
  .g-fill{animation:g-fill .8s cubic-bezier(.2,.8,.2,1) both}
  @keyframes g-fill{from{width:0}}
  .res-kpi .v{animation:g-pop .5s ease-out both}
  @keyframes g-pop{from{opacity:0;transform:translateY(8px)}}
}
.g-fill{width:var(--w)}
/* Resultados de la predicación → «Resultados de las encuestas» (01/10) */
.res-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.res-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 14px 12px;text-decoration:none;color:inherit;display:block}
.res-kpi .k{font-size:12.5px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:6px}
.res-kpi .v{font-size:34px;font-weight:700;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums;color:var(--c,var(--ink))}
.res-kpi .rs{font-size:12px;color:var(--muted);margin-top:4px}
.res-kpi i.bg{position:absolute;right:-6px;bottom:-10px;width:64px;height:64px;opacity:.08;color:var(--c,var(--ink))}
.res-kpi i.bg svg{width:100%;height:100%}
.res-kpi.k1{--c:#B45309}.res-kpi.k2{--c:#1d4ed8}.res-kpi.k3{--c:#15803D;border-color:#bfe3cc;background:var(--ok-bg)}.res-kpi.k4{--c:#6b6156}
.res-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;font-weight:700;color:var(--muted);margin-top:6px}.res-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.res-best{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}
.res-best a{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;background:var(--amber-soft);border-radius:12px;padding:10px 12px}
.res-best .av{flex:0 0 auto}.res-best .rn{font-weight:700;font-size:14px}.res-best .rs{font-size:12px;color:var(--muted)}
@media (min-width:900px){.res-kpis{grid-template-columns:repeat(4,1fr)}.res-best{grid-template-columns:1fr 1fr 1fr}}

/* ===== Mapa semanal ===== */
.sem-top{display:flex;flex-direction:column;gap:10px;margin:4px 0 12px}
.sem-dias{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}.sem-dias::-webkit-scrollbar{display:none}
.sem-dias a{flex:0 0 auto;min-width:52px;text-align:center;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 8px;line-height:1.1}
.sem-dias a small{display:block;font-size:10.5px;font-weight:700;color:var(--muted)}.sem-dias a b{font-size:20px}
.sem-dias a.past{opacity:.55}.sem-dias a.hoy{border-color:var(--acc)}.sem-dias a.hoy small{color:var(--acc)}
.sem-dias a.on{background:var(--acc);border-color:var(--acc);color:#fff;opacity:1}.sem-dias a.on small{color:#fff}
.sem-ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sem-seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:12px;padding:3px}
.sem-seg a,.sem-seg button{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:13.5px;font-weight:700;padding:7px 12px;border:0;border-radius:9px;background:none;color:var(--muted);text-decoration:none;cursor:pointer}
.sem-seg .on{background:var(--acc);color:#fff}
.sem-pdf{margin-left:auto}
.sem-print{display:none}
.sem-ley{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;font-weight:700;color:var(--muted)}.sem-ley i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:3px;vertical-align:-2px;border:1px solid rgba(0,0,0,.08)}
.sem-ley .full{background:#bfe3cc}.sem-ley .ok{background:#dff3e5}.sem-ley .warn{background:#fdecd2}.sem-ley .bad{background:#fbe0dc}.sem-ley .vacio{background:#fff;border:1px dashed #b42318}.sem-ley .cerr{background:#eee8e0}
.sem-card{padding:0;overflow:hidden}
.sem-scroll{overflow:auto;max-height:78vh;-webkit-overflow-scrolling:touch}
.sem-tab{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}
.sem-tab th,.sem-tab td{border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);vertical-align:top;text-align:left}
.sem-tab thead th{position:sticky;top:0;z-index:3;background:#fff;padding:10px 10px 8px;font-size:12.5px;white-space:nowrap}
.sem-tab thead th b{display:block;font-size:14px}.sem-tab thead th .tag{margin-top:4px;display:inline-block}
.sem-tab thead th.on{background:var(--amber-soft)}
.sem-p{position:sticky;left:0;z-index:2;background:#fff;min-width:150px;max-width:190px;padding:10px 12px}
.sem-tab thead .sem-p{z-index:4}
.sem-pn{font-size:17px;font-weight:700;line-height:1.15}.sem-ps{font-size:11.5px;color:var(--muted);margin:3px 0 6px;font-weight:600}
.sem-p .g-hb-t{height:6px}
tr.cerrado .sem-p{background:#f6f2ec}tr.cerrado .sem-pn{color:var(--muted);text-decoration:line-through}
.sem-c{min-width:170px;padding:8px 10px 10px;background:#fff}
.sem-c.full{background:#e9f7ee}.sem-c.ok{background:#f0faf3}.sem-c.warn{background:#fff6e8}.sem-c.bad{background:#fdf1ef}.sem-c.vacio{background:repeating-linear-gradient(-45deg,#fff,#fff 8px,#fdf4f3 8px,#fdf4f3 16px)}.sem-c.cerr{background:#f1ece5;color:var(--muted)}
.sem-c.na{color:var(--muted);text-align:center;background:#faf7f2}
.sem-n{font-size:12px;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:6px;margin-bottom:6px}.sem-n b{font-size:15px;color:var(--ink)}
.sem-n .tag{font-size:10px;padding:2px 6px}
.sem-gente{display:flex;flex-wrap:wrap;gap:4px}
.sem-gente .chip{display:inline-block;font-size:12px;font-weight:600;padding:4px 8px;border:0;border-radius:8px;background:#dff3e5;color:#0f5a2b;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sem-gente .chip.cap{background:#B45309;color:#fff}.sem-gente .chip.menor{background:var(--minor-soft);color:var(--minor)}.sem-gente .chip.libre{background:transparent;border:1px dashed #c8bfb3;color:#9a9086;font-weight:600}
.sem-nadie{font-size:12px;color:var(--bad);font-weight:700}
.sem-ocup{display:none;align-items:center;gap:10px}
.sem-ring{--pct:0;width:52px;height:52px;border-radius:50%;background:conic-gradient(var(--acc) calc(var(--pct)*1%),#ece5da 0);display:grid;place-items:center;flex:0 0 auto}
.sem-ring span{width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.sem-c.full .sem-ring,.sem-c.ok .sem-ring{background:conic-gradient(#15803D calc(var(--pct)*1%),#ece5da 0)}.sem-c.warn .sem-ring{background:conic-gradient(#B45309 calc(var(--pct)*1%),#ece5da 0)}.sem-c.bad .sem-ring,.sem-c.vacio .sem-ring{background:conic-gradient(#b42318 calc(var(--pct)*1%),#ece5da 0)}
.sem-libres{font-size:13px;font-weight:700}
.modo-ocup .sem-gente{display:none}.modo-ocup .sem-ocup{display:flex}.modo-ocup .sem-c{min-width:140px}
.sem-sem td.sem-d{min-width:74px;padding:0}.sem-sem td.sem-d a{display:block;padding:12px 8px;text-align:center;text-decoration:none;color:inherit}
.sem-sem td.sem-d b{display:block;font-size:17px}.sem-sem td.sem-d small{font-size:11px;color:var(--muted);font-weight:700}
.sem-sem thead th a{text-decoration:none;color:inherit;display:block;text-align:center}.sem-sem thead th small{display:block;font-size:10.5px;color:var(--muted)}
.sem-foot{font-size:11px;color:var(--muted);text-align:center;margin:8px 0 0}
@media (min-width:900px){.sem-top{flex-direction:row;align-items:center}.sem-dias{flex:1;min-width:0}.sem-pn{font-size:18px}}
@media print{
  @page{size:letter landscape;margin:10mm}
  body.semana{background:#fff;padding:0}body.semana .wrap{max-width:none;padding:0}
  body.semana .barra,body.semana .tabs,body.semana .noprint{display:none!important}
  .sem-print{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;border-bottom:3px solid var(--acc);padding-bottom:6px;margin-bottom:8px}
  .sem-print h2{font-size:18px;margin:0}.sem-print p{margin:2px 0 0;font-size:11px;color:#6b6156}
  .sem-card{border:0;box-shadow:none;border-radius:0}.sem-scroll{overflow:visible;max-height:none}
  .sem-tab{font-size:10.5px;width:100%;min-width:0}.sem-tab th,.sem-tab td{position:static!important;border-color:#ddd}
  .sem-p{min-width:0;max-width:none;padding:6px 8px}.sem-pn{font-size:13px}.sem-c{min-width:0;padding:5px 6px}
  .sem-gente .chip{font-size:9.5px;padding:2px 5px;border:1px solid rgba(0,0,0,.08)}.sem-gente .chip.libre{border-style:dashed}
  .sem-ring{width:40px;height:40px}.sem-ring span{width:30px;height:30px;font-size:10px}
  .sem-c,.sem-gente .chip,.sem-ring,.sem-ring span,.g-hb-t i,.tag{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  tr{break-inside:avoid}
}
@media (max-width:899px){.sem-p{min-width:118px;max-width:140px;padding:8px 10px}.sem-pn{font-size:15px}.sem-c{min-width:150px}}
/* Botón «Mapa» animado en la barra superior de evento.php */
.barra .bmapa{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 14px;border-radius:12px;background:var(--acc);color:#fff;font-weight:700;font-size:14px;text-decoration:none;flex:0 0 auto;position:relative;isolation:isolate}
.barra .bmapa::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 var(--acc);z-index:-1}
@media (prefers-reduced-motion:no-preference){
  .barra .bmapa::before{animation:bmapa-pulso 2.2s ease-out infinite}
  .barra .bmapa svg{animation:bmapa-icono 2.2s ease-in-out infinite}
  @keyframes bmapa-pulso{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 55%,transparent)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
  @keyframes bmapa-icono{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-2px) rotate(-8deg)}60%{transform:translateY(0) rotate(6deg)}}
}
@media (max-width:420px){.barra .bmapa span{display:none}.barra .bmapa{padding:0 11px}}
/* Punto en la tira de días (capitanes: ese día ya tiene asignaciones) */
.day{position:relative}.day-dot{position:absolute;right:6px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--ok)}.day.on .day-dot{background:#fff}
.chip.cierre:has(input:checked){border-color:var(--bad);background:var(--bad-bg);color:var(--bad);text-decoration:line-through}
/* ===== Inicio del voluntario: animaciones (solo en pantalla, respetan reducir movimiento) ===== */
.hh-saludo{font-size:26px}.hh-mano{display:inline-block;margin-left:6px;transform-origin:70% 70%}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);vertical-align:1px;margin-right:2px}
.evc.live{border-color:color-mix(in srgb,var(--ev) 45%,var(--line))}
.evc.live .evc-top img{box-shadow:0 8px 22px -12px var(--ev)}
.evc-bar i{position:relative;overflow:hidden}
.evc-bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%)}
.evc-btn.pulse{position:relative;isolation:isolate}.evc-btn.pulse::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1}
.accion{transition:transform .15s,box-shadow .15s,border-color .15s}.accion:active,.big2 a:active,.evc-btn:active,.mday:active{transform:scale(.96)}
.accion .av{transition:transform .2s}.accion:hover .av{transform:rotate(-8deg) scale(1.08)}
/* Mi calendario */
.micay{padding:14px 12px 12px}
.micay-d{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:4px 2px 6px}.micay-d::-webkit-scrollbar{display:none}
.mday{flex:0 0 auto;width:54px;text-align:center;text-decoration:none;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:7px 0 6px;line-height:1.1;position:relative;transition:transform .15s}
.mday small{display:block;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase}.mday b{display:block;font-size:20px;margin:2px 0 4px}
.mday-n{display:inline-block;min-width:20px;height:20px;line-height:20px;border-radius:999px;font-size:11.5px;font-weight:800;color:var(--muted);background:var(--hair)}
.mday.on{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.mday.on small{color:var(--ok)}.mday.on .mday-n{background:var(--ok);color:#fff}
.mday.hoy{box-shadow:0 0 0 3px color-mix(in srgb,var(--ev,var(--acc)) 25%,transparent)}.mday.hoy small{color:var(--ev,var(--acc))}
.mday.past{opacity:.45}
.micay-l{margin:6px 2px 0;font-size:12px;font-weight:600;color:var(--muted)}.micay-l i{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 0;vertical-align:-1px}.micay-l i.on{background:var(--ok)}.micay-l i.libre{background:var(--hair);margin-left:8px}
@media screen and (prefers-reduced-motion:no-preference){
  .home .a-in{animation:home-in .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*70ms)}
  @keyframes home-in{from{opacity:0;transform:translateY(14px)}}
  .hh-mano{animation:mano 2.4s ease-in-out 1.2s 2}
  @keyframes mano{0%,100%{transform:rotate(0)}15%{transform:rotate(16deg)}30%{transform:rotate(-8deg)}45%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(8deg)}}
  .hh-stats>div{animation:home-in .5s both;animation-delay:calc(.25s + var(--i,0)*80ms)}.hh-stats>div:nth-child(2){--i:1}.hh-stats>div:nth-child(3){--i:2}
  .live-dot{animation:live 1.6s ease-in-out infinite}@keyframes live{0%,100%{box-shadow:0 0 0 0 rgba(21,128,61,.45)}50%{box-shadow:0 0 0 6px transparent}}
  .evc-bar i::after{animation:shimmer 2.6s ease-in-out 1s infinite}@keyframes shimmer{to{transform:translateX(100%)}}
  .evc.live .evc-top img{animation:logo-float 4s ease-in-out infinite}@keyframes logo-float{50%{transform:translateY(-3px)}}
  .evc.live{animation:home-in .55s cubic-bezier(.2,.8,.2,1) both,evc-glow 3s ease-in-out 1s infinite;animation-delay:calc(var(--i,0)*70ms),1s}
  @keyframes evc-glow{50%{box-shadow:0 14px 34px -18px color-mix(in srgb,var(--ev) 70%,transparent)}}
  .evc-btn.pulse::before{animation:btn-pulso 2.2s ease-out .8s infinite}
  @keyframes btn-pulso{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ev,var(--acc)) 50%,transparent)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
  .mday{animation:home-in .4s both;animation-delay:calc(.3s + var(--i,0)*35ms)}
  .mday.on .mday-n{animation:pop .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.5s + var(--i,0)*35ms)}@keyframes pop{from{transform:scale(0)}}
  .next .dbadge{animation:home-in .5s .2s both}
}

/* Login: accesos a las otras entradas */
.login .accesos{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.login .accesos .btn{height:50px;font-size:15.5px;text-decoration:none;margin:0}
@media (min-width:900px){ .login .accesos{flex-direction:row;max-width:440px;margin-inline:auto} .login .accesos .btn{flex:1;max-width:none} }

/* Aviso legal al marcar "Menor de edad" en el alta */
.aviso-menor{display:flex;gap:12px;align-items:flex-start;background:var(--bad-bg);color:var(--bad);border:3px solid var(--bad);border-radius:16px;padding:16px 18px;margin:4px 0 16px;font-size:18px;line-height:1.35;font-weight:600}
.aviso-menor[hidden]{display:none}
.aviso-menor svg{flex:0 0 auto;margin-top:2px}
.aviso-menor small{display:block;margin-top:10px;font-size:15px;font-weight:500;color:#7a1d15}
.aviso-menor.pop{animation:avisoPop .6s ease-out}
@keyframes avisoPop{0%{transform:scale(.96);box-shadow:0 0 0 0 rgba(180,35,24,.45)}60%{transform:scale(1.02)}100%{transform:scale(1);box-shadow:0 0 0 14px rgba(180,35,24,0)}}
@media (prefers-reduced-motion:reduce){.aviso-menor.pop{animation:none}}

/* Secretario: texto de bienvenida más visible */
.sec-intro{margin:0 0 14px;font-size:18px;line-height:1.45;color:var(--ink,#1f1a14)}
.sec-intro b{font-weight:800}

/* Módulo del secretario: todo más grande (accesibilidad / vista cansada) */
body.secretario main.wrap{zoom:1.15}
body.secretario .row .rs,body.secretario .small,body.secretario .nota,body.secretario .sub,body.secretario .field>span,body.secretario .field>label,body.secretario .muted.small,body.secretario .flash,body.secretario .alert,body.secretario .info,body.secretario .names span{font-size:15.5px}
body.secretario .row .rn{font-size:17px}
body.secretario .chip{font-size:16px;padding:11px 14px}
body.secretario .tag{font-size:13px}
body.secretario .btn.sm{height:48px;font-size:16px}
body.secretario .sec-intro{font-size:18px}
body.secretario .aviso-menor{font-size:19px}
body.secretario h1{font-size:25px;white-space:normal}
body.secretario.saludo .barra h1,body.secretario.saludo h1{font-size:29px;line-height:1.2}
body.secretario.saludo .sub{font-size:16.5px}
body.secretario.cong .barra h1,body.secretario.cong h1{font-size:30px;color:var(--acc);white-space:normal}
body.secretario .bienv h2{font-size:30px}
@media (min-width:900px){ body.secretario .bienv h2{font-size:36px} }
body.secretario .bienv p{font-size:17px}

/* Login voluntario: sin subtítulo, lema grande y botones de acceso con diseño (16/09) */
.login-voluntario .hero::after{content:"Predicación Pública Especial";display:block;margin-top:10px;font-size:17px;letter-spacing:.08em;text-transform:uppercase;color:#B45309;font-weight:800;line-height:1.25}
@media (min-width:900px){ body.login.login-voluntario .hero::after{font-size:26px;letter-spacing:.06em;margin-top:6px;color:#FBBF24;text-shadow:0 2px 12px rgba(0,0,0,.35)} }
.login .accesos .acc-tile{display:flex;align-items:center;gap:12px;flex:1;min-height:64px;padding:10px 14px;background:#fff;border:1.5px solid var(--line);border-radius:18px;text-decoration:none;color:#1f2937;box-shadow:0 6px 18px -12px rgba(120,80,10,.35);transition:transform .15s,box-shadow .15s,border-color .15s}
.login .accesos .acc-tile:hover,.login .accesos .acc-tile:focus-visible{transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(120,80,10,.5)}
.acc-ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:#fff}
.acc-ico svg{width:20px;height:20px}
.acc-sec .acc-ico{background:linear-gradient(135deg,#0E7490,#22B8CF)}
.acc-ges .acc-ico{background:linear-gradient(135deg,#1e293b,#475569)}
.acc-sec:hover{border-color:#22B8CF}.acc-ges:hover{border-color:#475569}
.acc-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2;text-align:left}
.acc-txt b{font-size:15.5px;font-weight:700;white-space:nowrap}
.acc-txt small{font-size:12.5px;color:var(--muted);margin-top:2px}
.acc-fl{margin-left:auto;font-size:24px;color:#9ca3af;line-height:1}
@media (min-width:900px){ .login .accesos{max-width:none} }
@media (prefers-reduced-motion:reduce){ .login .accesos .acc-tile{transition:none} }

/* Entradas de Secretarios y Gestores: tema propio, claro, con efectos (16/09) */
body.login-secretario{--sx1:#0E7490;--sx2:#22B8CF;--sxs:#e0f4f8;--sxl:#b9e3ec;background-image:radial-gradient(900px 520px at -10% -10%,#c9eef5 0%,transparent 60%),radial-gradient(700px 420px at 110% 20%,#dff3ea 0%,transparent 60%),radial-gradient(800px 500px at 50% 115%,#e6f0ff 0%,transparent 60%)}
body.login-admin{--sx1:#4338CA;--sx2:#818CF8;--sxs:#eceefe;--sxl:#cfd3fb;background-image:radial-gradient(900px 520px at -10% -10%,#dfe3ff 0%,transparent 60%),radial-gradient(700px 420px at 110% 20%,#eee6fb 0%,transparent 60%),radial-gradient(800px 500px at 50% 115%,#e3eef9 0%,transparent 60%)}
.login-secretario .btn.staff,.login-admin .btn.staff{background:linear-gradient(135deg,var(--sx1),var(--sx2));position:relative;overflow:hidden}
.login-secretario .btn.staff::after,.login-admin .btn.staff::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);animation:sxBrillo 3.2s ease-in-out 1s infinite}
.login-secretario input:focus,.login-admin input:focus{border-color:var(--sx1);box-shadow:0 0 0 4px var(--sxs)}
.login-secretario .card,.login-admin .card{border:1.5px solid var(--sxl);border-top:5px solid var(--sx1);animation:sxSube .6s cubic-bezier(.2,.8,.2,1) .15s both}
.login-secretario .nota a,.login-admin .nota a{color:var(--sx1)}
.login-secretario .hero h1,.login-admin .hero h1{color:var(--sx1)}
.login-secretario .hero::after,.login-admin .hero::after{content:"Predicación Pública Especial";display:block;margin-top:8px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--sx1)}
.login-secretario .logo,.login-admin .logo{animation:sxFlota 5s ease-in-out infinite}
.seccion{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:100%;margin:6px auto 14px;padding:9px 18px;border-radius:999px;background:linear-gradient(135deg,var(--sx1),var(--sx2));color:#fff;font-weight:800;font-size:15px;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 10px 24px -12px var(--sx1);animation:sxEntra .55s cubic-bezier(.2,.8,.2,1) both}
.seccion svg{width:18px;height:18px}
.sec-dot{width:9px;height:9px;border-radius:50%;background:#fff;animation:sxPulso 1.8s ease-out infinite}
.acc-pub .acc-ico{background:linear-gradient(135deg,#B45309,#FBBF24)}
.acc-pub:hover{border-color:#FBBF24}
.acc-back{margin:0;order:0;color:var(--sx1,#9ca3af);font-size:28px;transition:transform .2s}
.acc-pub:hover .acc-back{transform:translateX(-4px)}
.login-secretario .accesos,.login-admin .accesos{animation:sxSube .6s cubic-bezier(.2,.8,.2,1) .35s both}
@media (min-width:900px){
  body.login-secretario .hero,body.login-admin .hero{grid-row:1/span 4;color:var(--ink);background:radial-gradient(420px 420px at 85% 15%,rgba(255,255,255,.55),transparent 70%),linear-gradient(150deg,var(--sxs) 0%,#fff 55%,var(--sxl) 100%);background-size:200% 200%;animation:sxFondo 12s ease-in-out infinite alternate;border:1.5px solid var(--sxl);box-shadow:0 40px 80px -45px var(--sx1);position:relative;overflow:hidden}
  body.login-secretario .hero::before,body.login-admin .hero::before{content:"";position:absolute;width:340px;height:340px;right:-90px;bottom:-90px;border-radius:50%;border:40px solid var(--sx2);opacity:.14;animation:sxGira 18s linear infinite}
  body.login-secretario .hero h1,body.login-admin .hero h1{color:var(--sx1);font-size:56px}
  body.login-secretario .hero::after,body.login-admin .hero::after{font-size:16px;color:var(--ink);text-shadow:none}
  body.login-secretario .logo,body.login-admin .logo{box-shadow:0 14px 30px -14px var(--sx1)}
  .seccion{margin:0 0 -30px;justify-self:start;font-size:16px}
}
@keyframes sxEntra{from{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes sxSube{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes sxPulso{0%{box-shadow:0 0 0 0 rgba(255,255,255,.9)}100%{box-shadow:0 0 0 10px rgba(255,255,255,0)}}
@keyframes sxBrillo{0%{transform:translateX(-120%)}45%,100%{transform:translateX(120%)}}
@keyframes sxFlota{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes sxFondo{from{background-position:0% 0%}to{background-position:100% 100%}}
@keyframes sxGira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .seccion,.sec-dot,.login-secretario .card,.login-admin .card,.login-secretario .accesos,.login-admin .accesos,.login-secretario .logo,.login-admin .logo,body.login-secretario .hero,body.login-admin .hero,body.login-secretario .hero::before,body.login-admin .hero::before,.login-secretario .btn.staff::after,.login-admin .btn.staff::after{animation:none}
}

/* Login en celular: el logo PPE ya es PNG transparente → sin recuadro blanco (16/09) */
@media (max-width:899.98px){
  body.login .logo-bg,body.registro .logo-bg{background-color:transparent;box-shadow:none;border-radius:0;padding:0;width:200px;max-width:62%;margin:0 auto 4px;filter:drop-shadow(0 12px 18px rgba(120,80,10,.22))}
  .login-secretario .logo-bg{filter:drop-shadow(0 12px 18px rgba(14,116,144,.25))}
  .login-admin .logo-bg{filter:drop-shadow(0 12px 18px rgba(67,56,202,.25))}
  body.login .hero{margin-top:2px}
}

/* ===== Inicio del voluntario (16/09): letra más grande para celulares sencillos ===== */
body.home{font-size:18px}
body.home .barra h1{font-size:24px}
body.home .barra .bs{font-size:15px}
.hh-fecha{font-size:16px;letter-spacing:.06em}
body.home .home-hero p{font-size:17px}
body.home .hh-stats b{font-size:28px}
body.home .hh-stats span{font-size:13.5px}
body.home h2{font-size:22px}
body.home .card .ch{font-size:18px}
body.home .row .rn{font-size:18px}body.home .row .rs{font-size:15.5px}
body.home .accion{min-height:76px;padding:14px}
body.home .accion .rn{font-size:18px}body.home .accion .rs{font-size:14.5px}
body.home .accion .av svg{width:24px;height:24px}
body.home .evc-n{font-size:23px}body.home .evc-s{font-size:15.5px}
body.home .tag{font-size:14px}
body.home .names span{font-size:15px}
body.home .rep-t{font-size:19px}body.home .rep-s,body.home .rep-nota{font-size:15.5px}
body.home .next-h{font-size:16px}body.home .next-p{font-size:22px}body.home .next-hr,body.home .next-cap{font-size:16px}
body.home .micay-l{font-size:15px}
body.home .mday small{font-size:13px}body.home .mday b{font-size:22px}
/* Menú inferior: más grande en todas las pantallas del voluntario */
@media (max-width:899.98px){
  .tabs a{font-size:14px;gap:4px;padding:8px 4px}
  .tabs svg{width:26px;height:26px}
  .wrap.con-tabs{padding-bottom:108px}
}
@media (min-width:900px){ .tabs a{font-size:16px} }

/* Sin turnos: aviso grande */
.vacio{position:relative;text-align:center;background:#fff;border:2px dashed var(--ev,var(--acc));border-radius:22px;padding:22px 18px 18px;margin:0 0 16px;box-shadow:0 18px 36px -26px rgba(120,80,10,.55)}
.vacio-ico{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 10px;border-radius:20px;background:var(--amber-soft);color:var(--ev,var(--acc));animation:vacioBota 2.4s ease-in-out infinite}
.vacio-t{font-size:26px;font-weight:800;line-height:1.15;color:var(--ink);letter-spacing:-.01em}
.vacio-s{font-size:18px;color:var(--muted);margin:6px 0 16px}
.vacio-btn{height:62px;font-size:20px;background:var(--ev,var(--acc));position:relative;isolation:isolate}
.vacio-btn.pulse::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;animation:vacioPulso 1.8s ease-out infinite;box-shadow:0 0 0 0 var(--ev,var(--acc))}
@keyframes vacioBota{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes vacioPulso{0%{box-shadow:0 0 0 0 rgba(180,83,9,.45)}100%{box-shadow:0 0 0 16px rgba(180,83,9,0)}}

/* Mapa semanal: botón grande arriba de los turnos */
.mapa-cta{display:flex;align-items:center;gap:14px;margin:0 0 16px;padding:16px;border-radius:20px;text-decoration:none;color:#fff;background:linear-gradient(135deg,#0E7490,#22B8CF);box-shadow:0 16px 30px -18px #0E7490;position:relative;overflow:hidden}
.mapa-cta::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-120%);animation:sxBrillo 3.5s ease-in-out 1.2s infinite}
.mapa-ico{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:rgba(255,255,255,.2)}
.mapa-i{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.mapa-i b{font-size:21px;font-weight:800}
.mapa-i small{font-size:15px;opacity:.92;margin-top:3px}

/* Cuenta regresiva grande en la tarjeta del evento */
.evc-cd{display:flex;align-items:center;gap:12px;margin:4px 14px 6px 18px;padding:12px 16px;border-radius:16px;background:var(--amber-soft);color:var(--ev,var(--acc))}
.evc-cd b{font-size:56px;line-height:.9;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.evc-cd span{font-size:18px;font-weight:800;line-height:1.1;text-transform:uppercase;letter-spacing:.02em}
.evc-cd small{margin-left:auto;text-align:right;font-size:14px;font-weight:700;color:var(--muted);max-width:40%}
.evc-cd.live{background:var(--ok-bg);color:var(--ok)}

/* Instalar como app */
.instalar{display:flex;gap:14px;align-items:flex-start;background:#fff;border:2px solid #f0dcae;border-radius:20px;padding:16px;margin:0 0 16px;box-shadow:0 14px 30px -22px rgba(120,80,10,.55)}
.instalar img{flex:none;border-radius:14px;box-shadow:0 6px 14px -8px rgba(0,0,0,.35)}
.inst-i{flex:1;min-width:0}
.inst-t{font-size:20px;font-weight:800;line-height:1.2}
.inst-s{font-size:15.5px;color:var(--muted);margin:2px 0 8px}
.inst-ios,.inst-otro{font-size:16px;background:var(--amber-soft);border-radius:12px;padding:10px 12px;margin:0 0 8px}
.inst-k{display:inline-block;border:1.5px solid currentColor;border-radius:6px;padding:0 5px;font-size:14px}
.inst-b{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.inst-b .btn{height:52px;font-size:17px;width:auto;flex:1;margin:0}
.inst-no{background:none;border:none;color:var(--muted);font:inherit;font-size:15px;font-weight:700;padding:10px 6px;cursor:pointer;text-decoration:underline}

/* Mi perfil */
.pf-idi{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.tag.cap-tag{background:#e0e7ff;color:#3730a3}
.tag svg{vertical-align:-2px}
.pf-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--hair)}
.pf-row .avatar.m{background:var(--minor-soft);color:var(--minor)}
.pf-ri{flex:1;min-width:0}.pf-n{font-weight:700;font-size:17px}.pf-s{font-size:14.5px;color:var(--muted)}
.pf-nota{font-size:15px;color:var(--muted);margin:10px 0 0}
.pf-seg .chip{font-size:15px;padding:10px 4px}
.pf-seg .chip:has(input:checked){border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.pf-seg .chip input{position:absolute;opacity:0;pointer-events:none}
.pf-seg .chip{position:relative}

/* Conexiones (admin) */
.cx-r{margin:0 0 12px}.cx-r .chip{text-decoration:none}
.cx-tipos{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}
.cx-tipo{background:var(--hair);border-radius:14px;padding:10px;text-align:center}
.cx-tipo span{display:block;font-size:28px;line-height:1.1}.cx-tipo b{display:block;font-size:22px}.cx-tipo small{font-size:12.5px;color:var(--muted)}
.cx-ico{flex:none;width:40px;height:40px;border-radius:12px;background:var(--hair);display:grid;place-items:center;font-size:22px}
.cx-t{flex:none;font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}

@media (prefers-reduced-motion:reduce){ .vacio-ico,.vacio-btn.pulse::before,.mapa-cta::after{animation:none} }
.pf-ch{justify-content:flex-start;font-size:18px}.pf-ch .tag{margin-left:auto}
/* Saludo del inicio: mismo tamaño que «Aún no tienes turnos» (16/09) */
body.home .home-hero h2.hh-saludo{font-size:26px;font-weight:800;line-height:1.15;letter-spacing:-.01em}
body.home .hh-mano{font-size:1em}

/* Encuesta del turno en celular: letra grande y un renglón por dato (16/09) */
@media (max-width:899.98px){
  .rep{padding:18px 16px}
  .rep-ico{width:54px;height:54px}.rep-ico svg{width:26px;height:26px}
  .rep-t,body.home .rep-t{font-size:23px;font-weight:800}
  .rep-s,body.home .rep-s{font-size:17px}
  .rep-nota,body.home .rep-nota{font-size:17px;line-height:1.45}
  .rep-quien{font-size:16px}.rep-quien .names span{font-size:17px;padding:6px 12px}
  .rep .tag{font-size:15px}
  .rep-grid{grid-template-columns:1fr;gap:10px}
  .rep-n{flex-direction:row;align-items:center;justify-content:space-between;padding:10px 12px;gap:12px;text-align:left}
  .rep-n span{flex-direction:row;justify-content:flex-start;font-size:19px;color:var(--ink);gap:10px;min-height:0}
  .rep-n span svg{width:24px;height:24px}
  .rep-n input[type=number]{width:100px;flex:none;height:62px;font-size:32px}
  .rep .field>span{font-size:18px}
  .rep textarea{font-size:18px;min-height:110px}
  .rep .btn{height:62px;font-size:20px}
  .rep .flash{font-size:17px}
  .rep-mas,.rep-mas a{font-size:16px}
}
@media (max-width:360px){ .rep-grid{grid-template-columns:1fr} }
@media (max-width:899.98px){
  body.home .rep-quien .names span{font-size:17px;padding:6px 12px}
  body.home .rep-quien{font-size:17px}
  body.home .info{font-size:17px}
}
/* Página Instalar la app */
.inst-pag{border-width:2px}
.inst-pasos ol{margin:0;padding-left:22px;font-size:18px;line-height:1.5}.inst-pasos li{margin:6px 0}
.ok-ya{background:var(--ok-bg);color:var(--ok)}

/* ===== Panel de control (admin/gestor) · 16/09: letra grande, equipo, conexiones y efectos ===== */
body.dash{font-size:17px}
body.dash .barra h1{font-size:28px;letter-spacing:-.02em;line-height:1.1;white-space:normal}body.dash .barra .bs{font-size:17px;margin-top:4px}
body.dash h2{font-size:22px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.dash .card .ch{font-size:18px}
body.dash .row .rn{font-size:17px}body.dash .row .rs{font-size:15px}
body.dash .accion .rn{font-size:17px}body.dash .accion .rs{font-size:14px}body.dash .accion{min-height:74px}
body.dash .kpi .k,body.dash .res-kpi .k{font-size:14.5px}
body.dash .kpi .v{font-size:32px}body.dash .res-kpi .v{font-size:38px}
body.dash .kpi .rs,body.dash .res-kpi .rs{font-size:14px}
body.dash .g-hb-l{font-size:15.5px}body.dash .g-hb-s{font-size:13.5px}body.dash .g-hb-t{height:12px}
body.dash .dash-ev-t{font-size:21px}body.dash .dash-ev-s{font-size:15.5px}body.dash .dash-ev-n{font-size:16px}body.dash .dash-ev-n b{font-size:32px}
body.dash .tag{font-size:14px}
body.dash .g-leyenda,body.dash .res-leg{font-size:14px}
body.dash .tabs a{font-size:14px}
@media (max-width:899.98px){ body.dash .tabs svg{width:26px;height:26px} }

/* Equipo por rol */
.eq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 16px}
.eq{position:relative;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:14px;text-decoration:none;color:var(--ink);box-shadow:0 12px 26px -20px rgba(120,80,10,.5);transition:transform .2s,box-shadow .2s}
.eq:hover{transform:translateY(-3px);box-shadow:0 18px 30px -18px rgba(120,80,10,.55)}
.eq::after{content:"";position:absolute;right:-26px;top:-26px;width:90px;height:90px;border-radius:50%;background:var(--c);opacity:.1;transition:transform .4s}
.eq:hover::after{transform:scale(1.4)}
.eq-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--c);color:#fff;margin-bottom:8px;box-shadow:0 8px 16px -10px var(--c)}
.eq b{font-size:40px;line-height:1;font-weight:800;letter-spacing:-.02em;color:var(--c);font-variant-numeric:tabular-nums}
.eq>span:not(.eq-ico){font-size:18px;font-weight:800;margin-top:4px}
.eq small{font-size:13.5px;color:var(--muted);font-weight:600}
.eq1{--c:#B45309}.eq2{--c:#0E7490}.eq3{--c:#4338CA}.eq4{--c:#15803D}.eq5{--c:#16a34a}.eq6{--c:#db2777}
@media (min-width:700px){ .eq-grid{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1100px){ .eq-grid{grid-template-columns:repeat(6,1fr)} }

/* Conexiones en el tablero */
.cx-h .muted{font-weight:600}.cx-mas{margin-left:auto;font-size:15px;text-decoration:none}
.cx-kpis .res-kpi.cx1{--c:#B45309}.cx-kpis .res-kpi.cx2{--c:#0E7490}.cx-kpis .res-kpi.cx3{--c:#4338CA}.cx-kpis .res-kpi.cx4{--c:#15803D;border-color:#bfe3cc;background:var(--ok-bg)}
.cx-live{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ok)}
.cx-live i{width:9px;height:9px;border-radius:50%;background:#22c55e;animation:cxLate 1.6s ease-out infinite}
@keyframes cxLate{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}100%{box-shadow:0 0 0 9px rgba(34,197,94,0)}}
@media (min-width:900px){ .cx-kpis{grid-template-columns:repeat(4,1fr)} }
.g-dona{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}
.g-dona svg{flex:none}
.g-dona-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:150px;flex:1}
.g-dona-l li{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}
.g-dona-l i{width:14px;height:14px;border-radius:4px;flex:none}.g-dona-l b{margin-left:auto;font-size:18px}

/* Efectos: entrada escalonada de bloques y dona que se dibuja */
@media screen and (prefers-reduced-motion:no-preference){
  body.dash .wrap>*{animation:dashSube .55s cubic-bezier(.2,.8,.2,1) backwards}
  body.dash .wrap>*:nth-child(2){animation-delay:.05s}body.dash .wrap>*:nth-child(3){animation-delay:.1s}body.dash .wrap>*:nth-child(4){animation-delay:.15s}
  body.dash .wrap>*:nth-child(5){animation-delay:.2s}body.dash .wrap>*:nth-child(6){animation-delay:.25s}body.dash .wrap>*:nth-child(7){animation-delay:.3s}
  body.dash .wrap>*:nth-child(n+8){animation-delay:.35s}
  body.dash .wrap>.tabs{animation:none}
  .eq{animation:dashPop .5s cubic-bezier(.2,.8,.2,1) backwards}
  .eq2{animation-delay:.06s}.eq3{animation-delay:.12s}.eq4{animation-delay:.18s}.eq5{animation-delay:.24s}.eq6{animation-delay:.3s}
  .eq-ico{animation:dashIco 3.5s ease-in-out infinite}
  .g-anim .g-seg{animation:g-seg 1s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0ms)}
  .res-kpi{transition:transform .2s,box-shadow .2s}.res-kpi:hover{transform:translateY(-3px);box-shadow:0 16px 28px -18px rgba(120,80,10,.5)}
}
@keyframes dashSube{from{opacity:0;transform:translateY(16px)}}
@keyframes dashPop{from{opacity:0;transform:scale(.9)}}
@keyframes dashIco{0%,100%{transform:rotate(0)}50%{transform:rotate(-6deg) scale(1.05)}}
@keyframes g-seg{from{stroke-dasharray:0 400}}
/* Celular: nada se sale de la pantalla */
.grid>*{min-width:0}
.g-scroll{max-width:100%;overflow-x:auto}
@media (max-width:899.98px){
  body.dash .bienv{flex-wrap:wrap}
  body.dash .bienv-t{flex:1 1 100%}
  body.dash .bienv h2{font-size:30px}body.dash .bienv p{font-size:16px}
  body.dash .bienv-pdf{flex:1;height:46px;font-size:15px}
}
.acciones>*{min-width:0}.accion>div{min-width:0;overflow-wrap:anywhere}
/* Gráficas de barras: se ajustan al ancho (en celular se ve el día de hoy sin desplazar) */
.g-scroll .g-barras{width:100%;height:auto;max-height:190px}
.g-dona-l{min-width:0}
@media (max-width:420px){ .g-dona svg{width:124px;height:124px} .g-dona-l li{font-size:15px} .g-dona-l b{font-size:16px} }

/* ===== Configuración: botones grandes con efectos (16/09) ===== */
.cfg-h{margin:18px 4px 10px;font-size:15px!important;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.cfg-grid{display:grid;grid-template-columns:1fr;gap:12px}
.cfg-b{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;gap:14px;min-height:84px;padding:14px 16px;background:#fff;border:1.5px solid var(--line);border-left:6px solid var(--c);border-radius:20px;text-decoration:none;color:var(--ink);box-shadow:0 12px 26px -20px rgba(120,80,10,.5);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,border-color .2s}
.cfg-b::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 12%,#fff),#fff 70%);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.cfg-b::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-20deg);pointer-events:none}
.cfg-b:hover,.cfg-b:focus-visible{transform:translateY(-3px);border-color:var(--c);box-shadow:0 18px 32px -18px var(--c)}
.cfg-b:hover::before,.cfg-b:focus-visible::before{transform:scaleX(1)}
.cfg-b:hover::after{left:130%;transition:left .7s ease}
.cfg-b:active{transform:scale(.97)}
.cfg-ico{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--c);color:#fff;box-shadow:0 10px 18px -10px var(--c);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.cfg-b:hover .cfg-ico{transform:rotate(-10deg) scale(1.1)}
.cfg-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.cfg-t b{font-size:19px;font-weight:800}
.cfg-t small{font-size:15px;color:var(--muted);margin-top:3px}
.cfg-fl{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--hair);color:var(--c);transition:transform .25s,background .25s,color .25s}
.cfg-b:hover .cfg-fl{transform:translateX(4px);background:var(--c);color:#fff}
.cfg-badge{flex:none;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:var(--bad);color:#fff;font-weight:800;font-size:16px;display:grid;place-items:center;animation:cfgLate 1.8s ease-out infinite}
@keyframes cfgLate{0%{box-shadow:0 0 0 0 rgba(180,35,24,.5)}100%{box-shadow:0 0 0 12px rgba(180,35,24,0)}}
.cfg-out{margin-top:22px;height:56px;font-size:17px}
@media (min-width:700px){ .cfg-grid{grid-template-columns:1fr 1fr} }
@media (min-width:1100px){ .cfg-grid{grid-template-columns:repeat(3,1fr)} }
@media screen and (prefers-reduced-motion:no-preference){
  .cfg-b{animation:cfgEntra .5s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i) * 70ms + .1s)}
}
@keyframes cfgEntra{from{opacity:0;transform:translateX(-18px)}}
@media (prefers-reduced-motion:reduce){ .cfg-badge{animation:none} .cfg-b,.cfg-b::before,.cfg-ico,.cfg-fl{transition:none} }

/* Botón «Seleccionar turno» del evento (VERDE y parpadeando: pedido de Oscar). Siempre: degradado, brillo y sombra de color. Con movimiento: destello que lo recorre, latido, anillo de pulso, «+» que gira y flecha que avanza */
.evc-btn.pulse{--ev:#16a34a;height:58px;font-size:18px;font-weight:800;letter-spacing:.2px;gap:10px;border:0;color:#fff;background:#16a34a;   /* respaldo si el navegador no entiende color-mix() */
  background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%) 130% 0/250% 100% no-repeat,
             linear-gradient(135deg,color-mix(in srgb,var(--ev,var(--acc)) 82%,#fff),var(--ev,var(--acc)) 55%,color-mix(in srgb,var(--ev,var(--acc)) 80%,#000));
  box-shadow:0 12px 26px -10px var(--ev,var(--acc)),inset 0 1px 0 rgba(255,255,255,.45)}
.evc-btn.pulse .evc-fl{display:inline-flex;margin-left:auto;padding-right:4px}
.evc-btn.pulse{overflow:visible}
.evc-btn.pulse::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#bbf7d0;opacity:0;pointer-events:none;z-index:-1;-webkit-animation:evcParpadeo 1s ease-in-out infinite;animation:evcParpadeo 1s ease-in-out infinite}
@-webkit-keyframes evcParpadeo{0%,100%{opacity:0}50%{opacity:.55}}
@keyframes evcParpadeo{0%,100%{opacity:0}50%{opacity:.55}}
@media (prefers-reduced-motion:no-preference){
  .evc-btn.pulse{animation:evcBrillo 2.4s ease-in-out infinite,evcLatido 2.4s ease-in-out infinite}
  .evc-btn.pulse::before{animation:evcAnillo 2.4s ease-out infinite}
  .evc-btn.pulse>svg{animation:evcMas 2.4s ease-in-out infinite}
  .evc-btn.pulse .evc-fl{animation:evcFlecha 1.2s ease-in-out infinite}
  @keyframes evcBrillo{0%,35%{background-position:130% 0,0 0}100%{background-position:-130% 0,0 0}}
  @keyframes evcLatido{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
  @keyframes evcAnillo{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ev,var(--acc)) 65%,transparent)}75%,100%{box-shadow:0 0 0 18px transparent}}
  @keyframes evcMas{0%,55%{transform:rotate(0)}80%{transform:rotate(180deg) scale(1.3)}100%{transform:rotate(180deg)}}
  @keyframes evcFlecha{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
  .evc-btn.pulse:active{animation:none;transform:scale(.96)}
}

/* Portada de app.php: la leyenda en negritas y con halo claro para que se lea sobre la ilustración; el número de turnos en verde */
body.home .home-hero p{font-weight:700;color:#2b2119;text-shadow:0 0 6px #fffbf5,0 0 12px #fffbf5,0 1px 0 #fffbf5}
body.home .home-hero p b{color:#15803d;font-weight:900;font-size:1.25em}

/* Usuarios: tipo múltiple + exportar */
.ufil .utipo{margin-top:10px}.ufil .utipo>span{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}.ufil .utipo .chip{font-size:13.5px;padding:8px 11px}
.ufil-b{flex-wrap:wrap}.ufil-b .uexp{display:flex;gap:8px;margin-left:auto}

/* evento.php: asignados al turno */
.asig{margin-top:8px}.asig>b{display:block;margin-bottom:6px}
.asig-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.asig-l li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:17px;font-weight:800;color:var(--ink);line-height:1.25}
.asig-wa{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#25D366;color:#fff;text-decoration:none;box-shadow:0 2px 6px rgba(37,211,102,.35)}
.asig-wa:active{transform:scale(.94)}

/* Admin · Cancelar o mover publicador */
.mv-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.mv-grid .card{margin:0}
.mv-t{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--hair)}.mv-h{font-weight:700;font-size:13px;min-width:44px;padding-top:4px}
.mv .sem-gente a.chip{text-decoration:none;font-size:13.5px;padding:7px 10px}
.mv-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--hair);color:inherit;text-decoration:none}
.mv .card .ch{justify-content:flex-start}
.mv-dest{padding:10px 0;border-top:1px solid var(--hair)}.mv-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}

/* Mis turnos (17/09): botón «Apuntarme a otro turno» junto a los contadores, icono de agenda con movimiento, «Ir a inicio» verde que parpadea */
.tstats-btn{grid-column:span 2;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;padding:10px;background:linear-gradient(135deg,var(--amber1),var(--amber2));color:#fff;font-weight:700;font-size:15px;text-decoration:none;text-align:center;line-height:1.15;box-shadow:0 8px 20px -12px rgba(120,80,10,.7)}
.tstats-btn:active{transform:scale(.97)}
.ico-mov{display:inline-flex}
body.turnos .tabs a:first-child{background:#16a34a;color:#fff;border-color:transparent;-webkit-animation:inicioParpadeo 1s ease-in-out infinite;animation:inicioParpadeo 1s ease-in-out infinite}
@-webkit-keyframes inicioParpadeo{0%,100%{background:#16a34a}50%{background:#4ade80}}
@keyframes inicioParpadeo{0%,100%{background:#16a34a}50%{background:#4ade80}}
@keyframes agendaMov{0%,55%,100%{transform:none}10%{transform:translateY(-4px) rotate(-10deg)}22%{transform:translateY(0) rotate(8deg)}34%{transform:translateY(-2px) rotate(-5deg)}46%{transform:none}}
@media (prefers-reduced-motion:no-preference){ .ico-mov{animation:agendaMov 2.2s ease-in-out infinite} }

/* Login: aviso de apertura (17–20/09) */
.login .aviso-apertura{margin:0 0 14px;font-size:15.5px;line-height:1.35;animation:avisoPop 1.2s ease-out 1}
@media (min-width:900px){ .login .aviso-apertura{max-width:440px;margin-inline:auto} }

/* Sitio cerrado: página de espera con cuenta regresiva */
body.cerrado .logo{width:230px}
.cerrado-card h2{margin:0 0 8px;font-size:24px}.cerrado-card p{font-size:16.5px;line-height:1.4}
.cuenta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px auto 10px;max-width:360px}
.cuenta div{background:var(--amber-soft);border-radius:16px;padding:12px 6px}
.cuenta b{display:block;font-size:34px;line-height:1;font-variant-numeric:tabular-nums;color:var(--amber1)}
.cuenta span{display:block;font-size:11.5px;font-weight:700;color:var(--muted);margin-top:4px;text-transform:uppercase}

/* Evento · propuesta C (18/09): encabezado del horario a color completo, estado en grande */
.slotw .slot{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px}
.slotw .slot .t{font-size:19px;font-weight:800}
.slotw .slot .s{font-size:15px;font-weight:800;text-align:right;line-height:1.1;letter-spacing:.2px}
.slotw .slot .s small{display:block;font-size:11.5px;font-weight:600;opacity:.85;letter-spacing:0;margin-top:2px}
.slotw .slot.ok{background:linear-gradient(135deg,#1fa353,#15803d);color:#fff}
.slotw .slot.warn{background:linear-gradient(135deg,#e8a930,#c98a1c);color:#fff}
.slotw .slot.full{background:#ebe6dc;color:#8a8074}
.slotw .slot.off{background:#f0edea;color:#b9b2a8}
.slotw .slot.mine{background:linear-gradient(135deg,#2f6fe0,#1d4fb8);color:#fff}
.slotw .slot.ok:active,.slotw .slot.warn:active{filter:brightness(.95)}

/* Admin · Actividad de gestores */
.acti-rango{display:flex;gap:8px;margin-bottom:12px}.acti-rango a{flex:1;text-align:center;padding:9px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-weight:700;font-size:14px;text-decoration:none;color:var(--muted)}.acti-rango a.on{background:var(--acc);color:#fff;border-color:transparent}
.acti-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--hair);text-decoration:none;color:inherit}.acti-row:first-of-type{border-top:0}
.acti-pos{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:800;background:var(--hair);color:var(--muted);flex:0 0 auto}
.acti-pos.oro{background:#f5c542;color:#5b3d00}.acti-pos.plata{background:#d9dde3;color:#3a4250}.acti-pos.bronce{background:#e2b48a;color:#5a3312}
.acti-b{flex:1;min-width:0}.acti-l{display:flex;justify-content:space-between;gap:8px;font-size:14px}.acti-l b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acti-l span{color:var(--muted);font-size:12.5px;white-space:nowrap}
.acti-bar{display:flex;height:12px;border-radius:6px;background:var(--hair);overflow:hidden;margin-top:5px}.acti-bar i{display:block;height:100%;width:var(--w)}
.acti-leg{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:12.5px;color:var(--muted)}.acti-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.acti-leg b{color:var(--ink)}

/* Admin · aviso grande de solicitudes de contraseña (parpadea) */
.pend-aviso{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:14px 16px;border-radius:18px;background:var(--bad);color:#fff;text-decoration:none;box-shadow:0 12px 28px -12px rgba(180,35,24,.7);-webkit-animation:pendParpadeo 1s ease-in-out infinite;animation:pendParpadeo 1s ease-in-out infinite}
.pend-n{flex:0 0 auto;min-width:52px;height:52px;padding:0 10px;border-radius:14px;background:#fff;color:var(--bad);font-size:30px;font-weight:800;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.pend-t{flex:1;line-height:1.2}.pend-t b{display:flex;align-items:center;gap:8px;font-size:19px}.pend-t small{display:block;font-size:13.5px;opacity:.9;margin-top:3px}
@-webkit-keyframes pendParpadeo{0%,100%{background:#b42318}50%{background:#e5484d}}
@keyframes pendParpadeo{0%,100%{background:#b42318}50%{background:#e5484d}}
@media (min-width:900px){ .pend-t b{font-size:22px} }

/* Calendario de ocupación (admin/index y admin/mapa): días pintados por % con huecos */
.calo-h{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.calo-h span{text-align:center;font-size:11.5px;font-weight:800;color:var(--muted)}
.calo-g{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.calo-v{display:block;min-height:64px;border-radius:12px;background:repeating-linear-gradient(-45deg,transparent,transparent 5px,#f1ece5 5px,#f1ece5 10px)}
.calo-d{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:64px;padding:8px 2px 10px;border-radius:12px;text-decoration:none;color:#fff;border:2px solid transparent;overflow:hidden;line-height:1.05}
.calo-d b{font-size:18px}.calo-p{font-size:13px;font-weight:800}.calo-hu{font-size:10.5px;font-weight:700;opacity:.92;white-space:nowrap}
.calo-d.ok{background:#15803D}.calo-d.warn{background:#c98a1c}.calo-d.bad{background:#c2410c}
.calo-d.past{opacity:.45}.calo-d.hoy{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--acc)}.calo-d.sel{border-color:#1f2937}
.calo-bar{position:absolute;left:0;bottom:0;height:5px;width:var(--w);background:rgba(255,255,255,.75)}
@media (min-width:900px){ .calo-d{min-height:78px}.calo-d b{font-size:22px}.calo-p{font-size:15px}.calo-hu{font-size:12px} }

/* Casillas simples de formularios de admin (constructor del informe) */
.chk{display:flex;align-items:center;gap:9px;font-size:15px;color:#5b5147;padding:7px 0;cursor:pointer}
.chk input{width:19px;height:19px;accent-color:var(--acc)}

/* Formulario del informe (armado por el Root en /admin/formulario.php) */
.fq{padding:14px 0;border-bottom:1px solid #f4ede5}
.fq:last-child{border-bottom:0}
.fq-t{display:flex;align-items:center;gap:7px;font-size:16px;font-weight:600;color:#3f3a34;margin-bottom:3px}
.fq-a{font-size:13px;color:#8a7f74;margin-bottom:8px}
.fq-num{width:110px;border:1px solid #e7dccf;border-radius:10px;padding:11px;font-size:19px;text-align:center}
.fq-txt{width:100%;border:1px solid #e7dccf;border-radius:10px;padding:11px;font-size:16px;font-family:inherit}
.fq-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.fq-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #e7dccf;background:#fff;border-radius:999px;padding:9px 14px;font-size:15px;cursor:pointer}
.fq-chip input{accent-color:var(--acc);width:17px;height:17px}
.fq-chip:has(input:checked){border-color:var(--acc);background:#fff7ed}
.fq-pubs{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.fq-pub{display:flex;align-items:center;gap:10px;padding:6px;border:1px solid #f0e7dd;border-radius:11px;background:#fff}
.fq-pub img{width:38px;height:50px;object-fit:cover;border-radius:6px;flex:0 0 auto}
.fq-pub .fq-ph{width:38px;height:50px;border-radius:6px;background:#f3ece3;display:flex;align-items:center;justify-content:center;color:#c3b6a7;flex:0 0 auto}
.fq-pn{flex:1;min-width:0;font-size:15px;line-height:1.25}
.fq-pub input{width:66px;border:1px solid #e7dccf;border-radius:9px;padding:9px;font-size:17px;text-align:center;flex:0 0 auto}
.fq-pub:has(input:not([value="0"])){border-color:var(--acc)}

.sem-gente .chip svg{vertical-align:-1px;margin-right:3px}
.sem-gente .chip.mas{background:#fff;border:1px solid var(--acc);color:var(--acc);font-weight:800;text-decoration:none;padding:4px 9px}

/* Inicio B3: cabecera limpia + franja + tres botones grandes */
.hb{display:flex;gap:12px;align-items:center;margin:6px 0 10px}
.hb-av{margin-left:auto;flex:none}
.hb-c{font-size:12.5px;font-weight:700;color:#9A3412;margin-top:3px}
.hb-logo{width:54px;height:54px;object-fit:contain;flex:none}
.hb-t{min-width:0}.hb .hh-saludo{margin:0;font-size:17.5px;line-height:1.15;letter-spacing:-.01em}
.hb-s{font-size:13px;color:var(--muted);margin-top:2px}
.franja{position:relative;min-height:96px;border-radius:16px;border:1px solid var(--line);margin-bottom:14px;overflow:hidden;display:flex;align-items:center;background:#fbe8cf url("/assets/img/hero-guanajuato.jpg") center 60%/cover no-repeat}
.franja::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,20,32,.86) 0%,rgba(12,20,32,.55) 60%,rgba(12,20,32,.1) 100%)}
.franja-f{position:relative;margin:0;padding:12px 16px;color:#fff;font-size:19px;font-weight:800;line-height:1.25;letter-spacing:-.01em;max-width:23ch;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.franja-f em{font-style:normal;color:#FBBF24}
@media (min-width:600px){ .franja{min-height:110px} .franja-f{font-size:22px;max-width:28ch} }
.home .micay-d{margin:0 -16px;padding-inline:16px}
.home .micay-l{margin:6px 0 14px}
.cta{display:flex;align-items:center;gap:14px;min-height:68px;border-radius:18px;padding:12px 18px;color:#fff;text-decoration:none;margin-bottom:14px;box-shadow:0 0 0 5px var(--ring);transition:transform .15s}
.cta:active{transform:scale(.97)}
.cta .ci{width:44px;height:44px;border-radius:13px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
.cta .cv{flex:1;min-width:0}.cta b{display:block;font-size:19px;line-height:1.1}.cta small{display:block;font-size:13px;opacity:.92;margin-top:2px}
.cta-pend{display:inline-block;background:#fff;color:var(--acc);font-weight:800;font-size:11px;border-radius:999px;padding:1px 7px;margin-right:4px}
.cta.verde{background:#166534;--ring:rgba(22,101,52,.16);--ev:#166534}
.cta.ambar{background:#9A3412;--ring:rgba(154,52,18,.14)}
.cta.azul{background:#155E75;--ring:rgba(21,94,117,.14)}
.cta.pulse{position:relative;isolation:isolate}.cta.pulse::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1}
@media screen and (prefers-reduced-motion:no-preference){.cta.pulse::before{animation:btn-pulso 2.2s ease-out .8s infinite}}
.home .instalar{margin-top:6px}

/* Página /espera.php: cuenta de dos casillas */
.vacio .cuenta{grid-template-columns:repeat(2,1fr);max-width:260px}
.vacio .vacio-s{font-size:15.5px;color:#4a4036;max-width:34ch;margin:6px auto 0}
/* Actividad · enviar por correo */
.acti-mail{margin-bottom:12px}.acti-mail .acti-dest{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 12px}.acti-mail label{display:flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}.acti-mail input[type=checkbox]{width:20px;height:20px;accent-color:var(--acc)}.acti-mail .btn{height:50px;font-size:15px}
/* Encuesta · resultados (admin/informes.php) */
.enc-f{padding:12px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.enc-f select,.enc-f input[type=search]{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:15px;font-family:inherit;background:#fff}.enc-dias{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.enc-dias a{flex:0 0 auto;padding:7px 12px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-size:13.5px;font-weight:700;color:var(--muted);text-decoration:none;white-space:nowrap}.enc-dias a b{color:var(--acc)}.enc-dias a.on{background:var(--acc);color:#fff;border-color:transparent}.enc-dias a.on b{color:#fff}.enc-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.enc-row .btn{width:48px;height:46px;border-radius:12px}@media(max-width:480px){.enc-row{grid-template-columns:1fr auto}.enc-row select{grid-column:1/-1}}.enc-det{padding:4px 14px 14px;background:#fffbf5;border-bottom:1px solid var(--line)}.enc-det .fq-num,.enc-det .fq-txt,.enc-det .fq-pub input{background:#fff}.enc-fotos{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.enc-fotos img{width:92px;height:92px;object-fit:cover;border-radius:8px;display:block;background:#f3ece3}
/* Fotos de los informes (admin/fotos.php) */
.fot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:10px 12px 12px}.fot{position:relative;margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.fot img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#f3ece3}.fot figcaption{padding:7px 9px;font-size:12px;line-height:1.3;color:var(--muted)}.fot figcaption b{display:block;color:#3f3a34;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fot-dl{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--acc);display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.18)}.fot-zip{width:auto;height:46px;padding:0 16px;border-radius:12px;font-size:14px;white-space:nowrap}
/* ===== Panel de admin · propuesta D (hoy al centro + bento) ===== */
.dash-d .hoy{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:12px}
.dash-d .hoy-h{display:flex;align-items:center;gap:10px;padding:11px 16px;background:color-mix(in srgb,var(--ev) 8%,#fff);border-bottom:3px solid var(--ev)}
.dash-d .hoy-h span{flex:1;font-size:12px;font-weight:800;color:var(--ev);letter-spacing:.06em;text-transform:uppercase}.dash-d .hoy-h small{font-size:12px;color:var(--muted)}
.dash-d .hoy-b{display:flex;align-items:center;gap:16px;padding:16px}
.dash-d .hoy-n{flex:1;display:flex;flex-direction:column;gap:9px;min-width:0}
.dash-d .hoy-n>div{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.dash-d .hoy-n b{font-size:30px;font-weight:800;line-height:1}.dash-d .hoy-n b.ok{color:var(--ok)}.dash-d .hoy-n span{font-size:13px;color:var(--muted)}
.dash-d .hoy-n small{font-size:12.5px;color:var(--muted)}.dash-d .hoy-n small b{font-size:12.5px;color:#1F2937}
.dash-d .hoy-a{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px 16px}.dash-d .hoy-a .btn{height:46px;font-size:14px;border-radius:12px}.dash-d .hoy-wa{background:var(--ok);color:#fff}
.dash-d .dk-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.dash-d .dk-chips::-webkit-scrollbar{display:none}
.dash-d .dk-chip{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:8px 12px 8px 9px;flex:0 0 auto;text-decoration:none;font-size:12px;font-weight:600}.dash-d .dk-chip b{font-size:15px;font-weight:800}
.dash-d .dk-chip.red{background:#FDECEC;color:#C0181C}.dash-d .dk-chip.pur{background:#F3EEFF;color:#7C3AED}.dash-d .dk-chip.cyan{background:#E6F7FB;color:#0891B2}.dash-d .dk-chip.amb{background:#FFF7ED;color:#B45309}.dash-d .dk-chip.teal{background:#E6F6F9;color:#0E7490}
.dash-d .dock{display:flex;gap:6px;background:#1F2937;border-radius:20px;padding:8px;margin-bottom:12px}
.dash-d .dock a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border-radius:14px;color:#fff;font-size:10.5px;font-weight:600;text-decoration:none}.dash-d .dock a:hover,.dash-d .dock a:focus-visible{background:rgba(255,255,255,.14)}
.dash-d .bento{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.dash-d .bt{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;min-width:0;color:inherit;text-decoration:none}.dash-d .bt.w2{grid-column:span 2}
.dash-d .bt.red{background:#FDECEC;border-color:#F5C6C6}.dash-d .bt.amb{background:#FFF7ED;border-color:#FDE7C8}.dash-d .bt.teal{background:#E6F6F9;border-color:#CDEBF1}
.dash-d .bt-k{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dash-d .bt.red .bt-k{color:#C0181C}.dash-d .bt.amb .bt-k{color:#B45309}.dash-d .bt.teal .bt-k{color:#0E7490}.dash-d .bt-k .muted{text-transform:none;letter-spacing:0;font-weight:600}
.dash-d .bt-v{font-size:30px;font-weight:800;line-height:1}.dash-d .bt.red .bt-v{color:#C0181C}.dash-d .bt.amb .bt-v{color:#B45309}.dash-d .bt-v small{font-size:12px;font-weight:500;color:var(--muted)}
.dash-d .bt-s{font-size:12px;color:var(--muted)}
.dash-d .bt-row{display:flex;align-items:center;gap:8px;font-size:13px;color:inherit;text-decoration:none;padding:2px 0}.dash-d .bt-row span{width:34%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-d .bt-row i{flex:1;height:8px;background:#F3ECE3;border-radius:4px;overflow:hidden;display:block}.dash-d .bt-row i b{display:block;height:100%;background:var(--acc);border-radius:4px}.dash-d .bt-row strong{width:32px;text-align:right}
.dash-d .bt-fotos{display:flex;gap:4px;margin-top:2px}.dash-d .bt-fotos img,.dash-d .bt-fotos i{flex:1;aspect-ratio:1;border-radius:8px;object-fit:cover;background:#F3ECE3;display:block;min-width:0}
.dash-d .res4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}.dash-d .res4 .r{border-radius:12px;padding:10px 6px;text-align:center}.dash-d .res4 b{display:block;font-size:20px;font-weight:800;line-height:1}.dash-d .res4 span{display:block;font-size:10.5px;color:var(--muted);margin-top:4px;line-height:1.1}
.dash-d .res4 .amb{background:#FFF7ED}.dash-d .res4 .amb b{color:#B45309}.dash-d .res4 .blue{background:#EEF3FF}.dash-d .res4 .blue b{color:#1D4ED8}.dash-d .res4 .ok{background:#ECFDF3}.dash-d .res4 .ok b{color:#15803D}.dash-d .res4 .pur{background:#F3EEFF}.dash-d .res4 .pur b{color:#7C3AED}
.dash-d .rk{display:flex;align-items:center;gap:10px;padding:6px 0;color:inherit;text-decoration:none}.dash-d .rk-pos{width:22px;height:22px;border-radius:50%;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.dash-d .rk-b{flex:1;min-width:0}.dash-d .rk-l{display:flex;justify-content:space-between;font-size:13.5px}.dash-d .rk-l span{color:var(--muted)}.dash-d .rk-b i{display:block;height:7px;background:#F3ECE3;border-radius:4px;margin-top:4px;overflow:hidden}.dash-d .rk-b i b{display:block;height:100%;background:var(--ok);border-radius:4px}
.dash-d details.mas{padding:0;margin-top:4px}.dash-d details.mas>summary{display:flex;align-items:center;gap:8px;padding:14px;font-weight:700;font-size:15px;cursor:pointer;list-style:none}.dash-d details.mas>summary::-webkit-details-marker{display:none}.dash-d details.mas>summary::after{content:"";margin-left:auto;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .2s}.dash-d details.mas[open]>summary::after{transform:rotate(-135deg)}.dash-d details.mas>*:not(summary){margin-left:12px;margin-right:12px}.dash-d details.mas[open]{padding-bottom:12px}
@media(min-width:720px){.dash-d .bento{grid-template-columns:repeat(4,1fr)}.dash-d .dock a{font-size:12px}}
/* ===== Mi perfil · propuesta G (ficha + lista de ajustes) ===== */
.pf .pf-hero{background:#fff;border:1px solid var(--line);border-top:5px solid var(--ev,var(--acc));border-radius:20px;padding:18px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:12px}
.pf .pf-av{width:80px;height:80px;font-size:28px;margin:0}
.pf .pf-nom{font-size:22px;font-weight:800;line-height:1.1;margin-top:10px}.pf .pf-cong{font-size:14px;color:var(--muted);margin-top:4px}
.pf .pf-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}.pf .pf-chips .tag i{font-style:normal}
.pf .pf-btns{display:flex;gap:8px;margin-top:14px;width:100%}.pf .pf-b{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:12px;font-weight:700;font-size:13.5px;text-decoration:none}.pf .pf-b.amb{background:#FFF7ED;color:#B45309}.pf .pf-b.ok{background:var(--ok-bg);color:var(--ok)}
.pf .pf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.pf .pf-stats a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 8px;text-align:center;text-decoration:none;color:inherit}.pf .pf-stats b{display:block;font-size:22px;font-weight:800;line-height:1;color:var(--acc)}.pf .pf-stats a:nth-child(2) b{color:#0E7490}.pf .pf-stats a:nth-child(3) b{color:#7C3AED}.pf .pf-stats span{display:block;font-size:11.5px;color:var(--muted);margin-top:4px}
.pf .pf-lista{padding:0;overflow:hidden}
.pf .pf-it{border-bottom:1px solid #F6EFE4}.pf .pf-it:last-child{border-bottom:0}
.pf .pf-it>summary,.pf .pf-link{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none;color:inherit;text-decoration:none;min-height:64px;box-sizing:border-box}.pf .pf-it>summary::-webkit-details-marker{display:none}
.pf .pf-ico{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.pf .pf-t{flex:1;min-width:0}.pf .pf-t b{display:block;font-size:15.5px;font-weight:700}.pf .pf-t small{display:block;font-size:12.5px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf .pf-it>summary>svg:last-child,.pf .pf-link>svg:last-child{color:#B0A596;transition:transform .2s}.pf .pf-it[open]>summary>svg:last-child{transform:rotate(90deg)}
.pf .pf-cuerpo{padding:4px 14px 16px;background:#fffbf5}.pf .pf-cuerpo .pf-row:first-child{border-top:0}
.pf .pf-salir{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;margin:14px 0 4px;color:var(--bad);font-weight:700;font-size:14px;text-decoration:none}
/* Aviso grande de contraseñas olvidadas (admin/index.php) */
.pend-grande{padding:18px 18px;border-radius:20px;animation:pendParpadeo 1s ease-in-out infinite,pend-lat 2.4s ease-in-out infinite}.pend-grande .pend-n{min-width:64px;height:64px;font-size:36px;border-radius:16px}.pend-grande .pend-t b{font-size:21px}.pend-grande .pend-t small{font-size:14px}.pend-grande .pend-cta{font-weight:700;opacity:1;margin-top:6px}
@keyframes pend-lat{0%,100%{box-shadow:0 12px 28px -12px rgba(180,35,24,.6),0 0 0 0 rgba(180,35,24,.35)}50%{box-shadow:0 12px 28px -12px rgba(180,35,24,.6),0 0 0 10px rgba(180,35,24,0)}}
@media(prefers-reduced-motion:reduce){.pend-grande{animation:none}}
/* ===== Mis turnos · línea de tiempo (propuesta J) ===== */
.tl .tl-stats{grid-template-columns:1fr 1fr 1.6fr}.tl .tl-stats .tstats-btn{grid-column:auto;background:var(--ok);color:#fff}
.tl .tl-h{display:flex;align-items:baseline;gap:8px;margin:4px 0 10px}.tl .tl-h h2{margin:0;font-size:17px}.tl .tl-h .link{margin-left:auto;font-size:13px;font-weight:700}
.tl .tl-day{display:flex;gap:12px;margin:0}
.tl .tl-col{display:flex;flex-direction:column;align-items:center;flex:0 0 56px}
.tl .tl-col .dbadge{flex-basis:auto;width:56px;height:66px;background:linear-gradient(160deg,#6b6156,#a49889)}.tl .tl-col .dbadge b{font-size:24px}
.tl .tl-day.hoy .tl-col .dbadge{background:linear-gradient(160deg,var(--amber1),var(--amber2))}
.tl .tl-line{flex:1;width:3px;background:#EFE6DA;border-radius:2px;margin:6px 0 4px;display:block}.tl .tl-day.ultimo .tl-line{background:transparent}
.tl .tl-body{flex:1;min-width:0;padding-bottom:16px;display:flex;flex-direction:column;gap:8px}
.tl .tl-dn{font-size:14px;font-weight:800;line-height:1.1;margin:6px 0 2px}.tl .tl-dn span{font-weight:600;color:var(--muted);font-size:12.5px;margin-left:4px}
.tl .tl-day.pasado .tl-body{opacity:.72}.tl .tl-day.pasado .tl-col .dbadge{background:linear-gradient(160deg,#c9bfb2,#ddd4c8)}
.tl .tl-pend{margin:0;padding:10px 12px}.tl .tl-pend .rep-ico{width:38px;height:38px}
.tl .tk{margin:0;padding:12px 14px}.tl .tk.compacto .tk-hr{font-size:18px}.tl .tk.compacto .tk-p{font-size:16px;margin-top:2px}.tl .tk.compacto .names span{font-size:12.5px}.tl .tk.compacto .next-cap{font-size:13px;margin-top:6px}
.tl .tk.prox{box-shadow:0 10px 24px -14px rgba(0,0,0,.25)}.tl .tk.fin{opacity:.72}
.tl .tk-mini{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tl .tk-mini a,.tl .tk-mini button{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 11px;border-radius:10px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:12.5px;font-weight:700;color:var(--acc);text-decoration:none;cursor:pointer}
.tl .tk-mini .go{background:#e8f0fe;border-color:#c6d8fb;color:#1a56c9}.tl .tk-mini .danger{color:var(--bad);border-color:#f2c7c2}.tl .tk-mini .llegue{background:var(--ok-bg);border-color:#bfe3cc;color:#0f5f2d}.tl .tk-mini .tk-nocancel{flex-direction:row;gap:5px;font-size:12px;padding:0 6px}
.asig-l li span{display:inline-flex;align-items:center;gap:6px;min-width:0}.asig-menor{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--minor-soft);color:var(--minor);display:inline-grid;place-items:center}
/* Mis turnos · «Agregar a mi hijo(a) en este turno» */
.tk-hijo{margin-top:10px;background:var(--minor-soft);border:1px solid #f3cfe0;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.tk-hijo-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--minor);font-size:14px}.tk-hijo-t b{font-size:14.5px}.tk-hijo-t span{flex-basis:100%;font-size:12.5px;color:var(--muted)}
.tk-hijo form{margin:0}.tk-hijo-b{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:12px;border:2px solid var(--minor);background:#fff;color:var(--minor);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.tk-hijo-b b{font-weight:800}.tk-hijo-b:active{transform:scale(.98)}
.tk-hijo-ok{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--ok);background:var(--ok-bg);border-radius:10px;padding:8px 10px}
/* Aviso grande de solicitudes «agregar a un menor» (admin/index.php) */
.pend-menor{background:var(--minor);animation:pend-lat 2.4s ease-in-out infinite;cursor:default}.pend-menor .pend-n{color:var(--minor)}
.pend-lista{display:flex;flex-direction:column;gap:6px;margin-top:10px}.pend-lista a{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border-radius:12px;padding:9px 12px;color:#fff;text-decoration:none;font-size:14px;line-height:1.25}.pend-lista a b{font-weight:800}.pend-lista a svg{margin-left:auto;flex:0 0 auto}.pend-lista small{opacity:.9}
@keyframes pend-lat-m{0%,100%{box-shadow:0 0 0 0 rgba(190,24,93,.35)}50%{box-shadow:0 0 0 10px rgba(190,24,93,0)}}
/* ===== Alta de usuarios: obligatorios marcados, secciones y confirmación ===== */
.req{font-style:normal;color:var(--bad);font-weight:800;margin-left:2px}
.fsec{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--line)}.fsec:first-of-type{margin-top:0;padding-top:0;border-top:0}
.fsec b{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--acc)}.fsec small{font-size:12.5px;color:var(--muted)}
.field.ob input,.field.ob select{border-color:#e8c48a;background:#fffdf8}.field.ob input:valid:not(:placeholder-shown),.field.ob select:valid{border-color:#bfe3cc;background:#fff}
.ualta .btn.principal{background:linear-gradient(135deg,var(--amber1),var(--amber2));color:#fff;flex:1 1 100%;height:52px;font-size:16px}
.alta-ok h2{margin:6px 0 10px}.alta-ficha{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.alta-mas{text-align:center}.alta-mas h2{margin:0 0 12px;font-size:20px}.alta-mas .btn{margin-top:8px}.alta-mas .nota{margin:8px 0 0}
.pend-fila{display:flex;gap:6px;align-items:stretch}.pend-fila>a{flex:1;min-width:0}.pend-fila form{margin:0;display:flex}.pend-fila button{display:inline-flex;align-items:center;gap:4px;padding:0 12px;border-radius:12px;border:1.5px solid rgba(255,255,255,.55);background:transparent;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.pend-fila button:hover{background:rgba(255,255,255,.16)}
.pend-fila button.pend-ok{background:#fff;color:#0E7490;border-color:#fff}.pend-fila button.pend-ok:hover{background:#e6f4f8}
.dash-d .hoy-h .hoy-nav{width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ev);flex:0 0 auto}.dash-d .hoy-h .hoy-nav:first-child svg{transform:rotate(180deg)}.dash-d .hoy-h .hoy-nav.off{opacity:.3;pointer-events:none}.dash-d .hoy-h span{text-align:center}
/* Tira de días · propuesta M: anillo de ocupación + lugares libres + mis turnos en la esquina */
.mday.m{width:72px;padding:8px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:3px;overflow:visible}
.mday.m small{color:var(--muted)}.mday.m.on{background:var(--ok-bg);border-color:var(--ok);color:var(--ink)}.mday.m.on small{color:var(--ok)}
.mday-ring{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.mday-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.mday.m .mday-ring b{font-size:18px;margin:0;line-height:1;position:relative}
.mday.oc-ok .mday-ring{color:var(--ok)}.mday.oc-warn .mday-ring{color:#B45309}.mday.oc-bad .mday-ring{color:#B91C1C}
.mday-lib{font-size:11px;font-weight:800;line-height:1.1}.mday.oc-ok .mday-lib{color:var(--ok)}.mday.oc-warn .mday-lib{color:#B45309}.mday.oc-bad .mday-lib{color:#B91C1C}
.mday-mio{position:absolute;top:-9px;right:-6px;width:22px;height:22px;border-radius:50%;background:var(--ok);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.micay-d{padding-top:12px}
.cta.cta-inst{background:#78716C;--ring:rgba(120,113,108,.14)}   /* paleta Cantera: «Instalar app» en piedra neutra, ya no compite */
/* Login · aviso de sitio abierto (letra grande) */
.aviso-abierto{display:flex;align-items:flex-start;gap:12px;background:var(--ok-bg);border:2px solid var(--ok);border-radius:18px;padding:16px 18px;margin:0 0 14px;color:#0f3d22}.aviso-abierto>svg{flex:0 0 auto;color:var(--ok);margin-top:2px}.aviso-abierto div{display:flex;flex-direction:column;gap:4px;min-width:0}.aviso-abierto b{font-size:19px;line-height:1.2}.aviso-abierto span{font-size:17px;line-height:1.35}.aviso-abierto span b{font-size:17px;color:var(--ok)}.aviso-abierto small{font-size:15px;color:#3f6b4f;font-weight:600;margin-top:2px}

/* Aviso Root: panel /admin cerrado a gestores */
.adm-cerrado{position:sticky;top:0;z-index:60;background:#b42318;color:#fff;font-weight:700;font-size:13px;letter-spacing:.2px;text-align:center;padding:7px 12px;margin:0 -16px 10px;display:flex;justify-content:center;align-items:center;gap:6px}

/* Fondo mesh tenue animado en TODO el sitio · gris perla y azul (opción D, 20/09) */
body{position:relative;background-color:#fafbfc;background-image:none}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;filter:blur(36px);opacity:.75;will-change:transform;
  background:radial-gradient(38% 42% at 18% 20%,#dfe5ec 0%,transparent 70%),radial-gradient(34% 38% at 84% 16%,#c8d8ea 0%,transparent 70%),radial-gradient(40% 44% at 50% 92%,#e6eaf0 0%,transparent 70%),radial-gradient(28% 30% at 78% 72%,#d7e2ee 0%,transparent 70%);
  animation:meshFlota 26s ease-in-out infinite alternate}
@keyframes meshFlota{0%{transform:translate(0,0) scale(1.08)}50%{transform:translate(-3%,2%) scale(1.14)}100%{transform:translate(2%,-3%) scale(1.1)}}
@media (max-width:600px){ body::before{filter:blur(26px)} }
@media (prefers-reduced-motion:reduce){body::before{animation:none}}

/* evento.php · nombre del punto sobre la foto: etiqueta blanca grande (propuesta B, 20/09) */
.pt .pic{display:flex;align-items:flex-end}
.pt .pname{position:static;margin:0 0 14px 14px;max-width:calc(100% - 28px);background:rgba(255,255,255,.94);color:#7a3d06;font-weight:800;font-size:25px;line-height:1.05;letter-spacing:-.01em;padding:10px 16px;border-radius:14px;box-shadow:0 8px 20px -10px rgba(0,0,0,.55);text-shadow:none}
@media (min-width:600px){ .pt .pname{font-size:30px;padding:11px 18px;margin-bottom:16px} }

/* Altas de secretarios en revisión (admin) y banner tras aprobar */
.pend-alta{background:#15803D;animation:pend-lat 2.4s ease-in-out infinite;cursor:default}.pend-alta .pend-n{color:#15803D}
.pend-alta .pend-fila button.pend-ok{color:#15803D}
.pend-alta-ok{background:#0E7490;animation:none;cursor:default;flex-wrap:wrap}.pend-alta-ok .pend-n{color:#0E7490}.pend-alta-ok .hoy-wa{margin-left:auto}

/* Historial de un publicador (admin) */
.hist-buscar{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;background:#f7f9fb;border:1px solid #e3e9f0;border-radius:14px}
.hist-buscar input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:15px;outline:0}
.hist-buscar .btn.sm{padding:6px 14px}
.hist-form .enc-row{display:flex;gap:8px}.hist-form input{flex:1}
.hist-per .av.big{width:56px;height:56px;font-size:18px}
.av.ok{background:var(--ok-bg);color:var(--ok)}.av.bad{background:#fde8e6;color:var(--bad)}

/* ===== Secretarios · alta de voluntarios (/secretarios/, 21/09/2026) ===== */
body.sec-alta main.wrap{zoom:1.18}
.sec-alta .field select{width:100%;font-size:1.05rem;padding:12px 14px;border:1.5px solid #c9dbe9;border-radius:12px;background:#fff;color:#1f2937}
.sec-quien{display:flex;gap:11px;align-items:flex-start;background:var(--amber-soft);border:1px solid #f0dcae;border-radius:14px;padding:12px 14px;margin-bottom:16px;color:#7a4a09}
.sec-quien svg{flex:0 0 auto;margin-top:2px}.sec-quien b{display:block;font-size:17px;margin-bottom:2px}.sec-quien span{font-size:14.5px;line-height:1.4}
.sec-alta .field em{display:block;margin-top:6px;font-style:normal;line-height:1.35}
.seg.tipo{gap:10px;margin-bottom:4px}
.seg.tipo .chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;line-height:1.2}
.seg.tipo .chip b{font-size:16px}.seg.tipo .chip small{font-size:12.5px;font-weight:600;opacity:.75}
.seg.tipo .chip svg{margin-bottom:2px}
.sec-info{font-size:14.5px;line-height:1.4;margin:14px 0}.sec-info svg{flex:0 0 auto;margin-top:2px}
.fam-card{border:2px solid var(--line);border-radius:16px;padding:14px 14px 4px;margin:0 0 14px;min-width:0;background:#fff;transition:border-color .2s,background .2s}
.fam-card legend{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:16px;color:var(--acc);padding:0 8px;background:#fff;border-radius:8px}
.fam-nota{margin:0 0 12px;font-size:13.5px;color:var(--muted);line-height:1.35}
.fam-off{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;color:var(--muted)}.fam-off input{position:static;opacity:1;width:20px;height:20px;accent-color:var(--muted)}
.fam-card.off{border-style:dashed;background:var(--full-bg,#f6f3ee);padding-bottom:10px}.fam-card.off legend{color:var(--muted)}
.fam-card.con{border-color:var(--ok)}.fam-card.con legend{color:var(--ok)}
.fam-card.hijos{border-style:dashed;border-color:var(--minor,#be185d)}
.fam-card.hijos legend{color:var(--minor,#be185d)}
.hijo{border:1px solid var(--line);background:var(--minor-soft,#fdf2f8);border-radius:12px;padding:10px 12px 2px;margin-bottom:10px}
.hijo .field input{background:#fff}
.hijo-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.hijo-h b{font-size:15px;color:var(--minor,#be185d)}.hijo-h i{font-style:normal}
.hijo-h .quitar{height:32px;padding:0 10px;font-size:13px}
#masHijo{width:100%;margin:2px 0 8px}
.menor-aviso{font-size:14px}
.ualta .btn.principal.fam{background:linear-gradient(135deg,#0E7490,#155e75)}
.alta-ok .center{text-align:center}.alta-ok .row .btn.sm{width:46px;min-width:46px;height:46px;padding:0;margin:0;justify-content:center}

/* ===== Registro de cambios (admin/cambios.php, 21/09/2026) ===== */
.cb-yo{display:flex;align-items:center;gap:12px}.cb-yo .ri{flex:1;min-width:0}.cb-yo .btn.sm{width:auto;margin:0}
.cb-h{display:flex;align-items:center;gap:12px;margin-bottom:8px}.cb-h b{display:block;font-size:17px;line-height:1.25}.cb-h small{color:var(--muted);font-size:13px}
.cb-ver{flex:0 0 auto;background:var(--amber-soft);color:var(--acc);font-weight:800;font-size:15px;padding:8px 12px;border-radius:12px}
.cb-actual{border:2px solid var(--acc)}.cb-actual .cb-ver{background:var(--acc);color:#fff}
.cb-l{margin:0;padding-left:20px;font-size:15px;line-height:1.45}.cb-l li{margin:5px 0}

/* Gestores: eventos que ve cada gestor (21/09) */
.ges-ev{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.ges-ev>span{font-size:12.5px;font-weight:700;color:var(--muted);margin-right:2px}
.ges-ev form{margin:0}.ges-ev .chip{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;padding:7px 11px}
.ges-ev .chip.on{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}

/* ---------- Avisos por correo (/avisos.php, 22/09) ---------- */
.avisos .av-hero{text-align:center;padding:26px 14px 18px}
.avisos .av-ico{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#E8F5EC;color:#166534;box-shadow:0 0 0 8px rgba(22,101,52,.08)}
.avisos .av-ico.ok{background:#166534;color:#fff;box-shadow:0 0 0 8px rgba(22,101,52,.14)}
.avisos .av-ico.amb{background:#FEF3E2;color:#9A3412;box-shadow:0 0 0 8px rgba(154,52,18,.08)}
.avisos .av-hero h2{font-size:25px;font-weight:800;letter-spacing:-.01em;margin:0 0 8px;color:#1d2731}
.avisos .av-sub{font-size:15.5px;line-height:1.5;color:var(--muted);margin:0 auto;max-width:34ch}
.avisos .av-sub+.av-sub{margin-top:8px}
.avisos .av-mail{font-size:18px;font-weight:800;color:#166534;margin:8px 0;word-break:break-all}
.avisos .av-card{padding:18px 16px 16px}
.avisos .av-f{margin:0 0 12px}
.avisos .av-f>span{font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.avisos .av-f input{font-size:18px;min-height:56px;border-radius:14px;padding:0 16px}
.avisos .av-btn{display:flex;text-decoration:none;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;border:0;border-radius:14px;background:#166534;color:#fff;font:inherit;font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 0 0 5px rgba(22,101,52,.14);transition:transform .15s}
.avisos .av-btn:active{transform:scale(.97)}
.avisos .av-btn.amb{background:#9A3412;box-shadow:0 0 0 5px rgba(154,52,18,.14)}
.avisos .av-btn.gh{background:#fff;color:#1d2731;border:1.5px solid var(--line);box-shadow:none;min-height:50px;font-size:16px}
.avisos .av-nota{font-size:13px;color:var(--muted);text-align:center;line-height:1.45;margin:14px 0 0}
.avisos .av-det{border-top:1px solid var(--line);margin-top:14px;padding-top:4px}
.avisos .av-det:first-child{border-top:0;margin-top:0;padding-top:0}
.avisos .av-det>summary{display:flex;align-items:center;gap:10px;padding:12px 2px;cursor:pointer;list-style:none;font-weight:700;color:#1d2731}
.avisos .av-det>summary::-webkit-details-marker{display:none}
.avisos .av-det>summary>svg:last-child{margin-left:auto;color:#B0A596;transition:transform .2s}
.avisos .av-det[open]>summary>svg:last-child{transform:rotate(90deg)}
.avisos .av-det form{padding:6px 0 10px}
.avisos .av-baja{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;text-align:center}
.avisos .av-baja button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;font:inherit;font-size:14px;color:#b42318;cursor:pointer;padding:6px 10px}

/* ---------- Avisos en el celular (22/09/2026): botón push y emergente del admin ---------- */
.cta.cta-push{background:#6D28D9;--ring:rgba(109,40,217,.14)}
.cta.cta-push[data-estado=instalar]{background:#78716C;--ring:rgba(120,113,108,.14)}
.cta.cta-push[data-estado=bloqueado]{background:#9F1239;--ring:rgba(159,18,57,.14)}
.cta.cta-push[data-estado=espera]{opacity:.7;pointer-events:none}
.pf .pf-push .pf-push-tag{display:none}
.pf .pf-push[data-estado=activo] .pf-push-tag{display:inline-block;background:var(--ok-bg);color:var(--ok)}.pf .pf-push[data-estado=activo] .pf-push-tag::before{content:"activos"}
.pf .pf-push[data-estado=apagado] .pf-push-tag{display:inline-block}.pf .pf-push[data-estado=apagado] .pf-push-tag::before{content:"apagados"}
.pf .pf-push[data-estado=bloqueado] .pf-push-tag{display:inline-block;background:var(--bad-bg);color:var(--bad)}.pf .pf-push[data-estado=bloqueado] .pf-push-tag::before{content:"bloqueados"}
.pf .pf-push[data-estado=instalar] .pf-push-tag{display:inline-block;background:var(--amber-soft);color:var(--acc)}.pf .pf-push[data-estado=instalar] .pf-push-tag::before{content:"instala la app"}
.pf .pf-push[data-estado=espera]{opacity:.6;pointer-events:none}
.pf .pf-push .pf-t small{white-space:normal}
dialog.emg{position:fixed;inset:0;margin:auto;width:min(92vw,420px);max-height:86vh;overflow:auto;border:0;border-radius:22px;padding:26px 22px 20px;background:var(--panel);color:var(--ink);box-shadow:0 30px 60px -20px rgba(60,30,0,.45);text-align:center;box-sizing:border-box;z-index:50}
dialog.emg::backdrop{background:rgba(36,29,22,.55);backdrop-filter:blur(2px)}
dialog.emg[open]:not(:modal){box-shadow:0 30px 60px -20px rgba(60,30,0,.45),0 0 0 100vmax rgba(36,29,22,.55)}   /* sin JS: el «fondo» lo pone la sombra */
.emg-ico{width:60px;height:60px;border-radius:18px;background:#F3EEFF;color:#6D28D9;display:grid;place-items:center;margin:0 auto 12px}
dialog.emg h2{margin:0 0 8px;font-size:21px;line-height:1.2}
.emg-x{font-size:16px;line-height:1.5;color:#3f3a33;text-align:left;margin:0 0 18px;white-space:pre-line}
.emg-b{display:grid;gap:10px}.emg-b .btn{margin:0}

/* ===== Admin → Capitanes: cuadrícula puntos × horarios (23/09, propuesta A). Celda: verde = 2 capitanes, ámbar = 1, rojo = nadie ===== */
.cg-top{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.cg-filtros{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chipf{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-size:13px;font-weight:700;color:var(--muted);text-decoration:none}
.chipf b{font-weight:800;color:var(--ink)}.chipf.on{background:var(--ink);color:#fff;border-color:transparent}.chipf.on b{color:#fff}
.chipf.bad{border-color:#f2c7c2;color:var(--bad)}.chipf.bad b{color:var(--bad)}.chipf.bad.on{background:var(--bad)}.chipf.bad.on b{color:#fff}
.chipf.warn{border-color:#f0d3a6;color:var(--acc)}.chipf.warn b{color:var(--acc)}.chipf.ok{border-color:#bfe3cc;color:var(--ok)}.chipf.ok b{color:var(--ok)}
.cg-q{display:flex;align-items:center;gap:6px;height:38px;padding:0 10px;border-radius:999px;background:#fff;border:1.5px solid var(--line);color:var(--muted);flex:1;min-width:150px}
.cg-q input{border:0;background:transparent;font:inherit;font-size:14px;flex:1;min-width:0;padding:0;height:auto;box-shadow:none}.cg-q input:focus{outline:0;box-shadow:none}.cg-q a{color:var(--muted);display:flex}
.cg-print summary{list-style:none;cursor:pointer;display:inline-flex}.cg-print summary::-webkit-details-marker{display:none}.cg-print[open] .cap-print-f{margin-top:10px}
.cg-acc{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.cg-acc .btn.bad{background:var(--bad);color:#fff}.cg-acc .btn b{margin-left:4px}
.cg-wrap{display:flex;flex-direction:column;gap:14px}
.cg{display:flex;flex-direction:column;gap:10px}
.cg-lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cg-row.cg-head{display:none}
.cg-row{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.cg-p{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-bottom:4px}.cg-p b{font-size:16px}.cg-p small{color:var(--muted);font-size:12px}.cg-p .tag{margin-left:auto}
.cg-c{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;padding:6px 6px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:inherit;color:var(--ink);cursor:pointer;text-align:center;transition:transform .08s}
.cg-c:active{transform:scale(.97)}
.cg-c.dos{background:var(--ok-bg);border-color:#bfe3cc}.cg-c.dos .cg-n{color:var(--ok)}
.cg-c.uno{background:var(--amber-soft);border-color:#f0d3a6}.cg-c.uno .cg-n{color:var(--acc)}
.cg-c.cero{background:var(--bad-bg);border-color:#f2c7c2}.cg-c.cero .cg-n{color:var(--bad)}
.cg-c.off{background:var(--ground);color:var(--muted);cursor:default;border-style:dashed}
.cg-hr{font-size:12px;font-weight:800;color:var(--ink)}
.cg-n{font-size:11.5px;font-weight:700;line-height:1.15}.cg-n.none{font-weight:700}
.cg-mas{font-size:10.5px;color:#9a8a74;border:1px dashed #d9c3a0;border-radius:6px;padding:0 5px}
.cg-c.hl{outline:3px solid var(--ev,var(--acc));outline-offset:1px}
.cg-c.pulse{animation:cgp 1.2s ease-out 1}@keyframes cgp{0%{box-shadow:0 0 0 0 rgba(180,83,9,.6)}100%{box-shadow:0 0 0 14px rgba(180,83,9,0)}}
.cg-side .ch{font-weight:800;display:flex;align-items:center;gap:8px}
.cg-side{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px}
.cg-cap{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
.cg-cap.m{border-style:dashed;color:var(--muted)}.cg-cap.on{border-color:var(--acc);background:var(--amber-soft)}
.cg-cap b{margin-left:auto;font-size:17px;color:var(--ok)}.cg-cap.m b{color:var(--muted)}
.cg-ini{width:32px;height:32px;border-radius:10px;background:var(--amber-soft);color:var(--acc);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cg-cap.m .cg-ini{background:var(--ground);color:var(--muted)}
.cg-cn{font-weight:700;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
dialog.cg-dlg{text-align:left}.cg-dlg h2{font-size:19px}
.cg-lst{display:flex;flex-direction:column;gap:5px;max-height:44vh;overflow:auto}
.cg-opt{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
.cg-opt small{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}.cg-opt .cg-ok{display:none;color:var(--ok);font-weight:800}
.cg-opt.ap{border-color:#bfe3cc}.cg-opt.ap .cg-ok{display:inline}.cg-opt.ap .cg-cn{color:var(--ok)}
.cg-opt.on{background:var(--ok-bg);border-color:#bfe3cc}.cg-opt.on .cg-cn{color:var(--ok)}.cg-opt.on small{color:var(--bad)}
.cg-opt:disabled{opacity:.45;cursor:not-allowed}
#cg-act{display:flex;flex-direction:column;gap:5px}#cg-act form{margin:0}.cg-lst form{margin:0}
@media (min-width:900px){
  .cg-top{flex-direction:row;align-items:flex-start;justify-content:space-between}
  .cg-wrap{flex-direction:row;align-items:flex-start}
  .cg{flex:1;min-width:0;gap:4px}.cg-side{width:280px;flex-shrink:0;position:sticky;top:96px}
  .cg-row.cg-head{display:grid;position:sticky;top:88px;z-index:5;background:rgba(255,251,245,.94);backdrop-filter:blur(8px);border:0;padding:6px 0;margin-bottom:4px}
  .cg-head .cg-p{margin:0;padding:6px 10px}.cg-h{text-align:center;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:5px 4px;display:flex;flex-direction:column}.cg-h b{font-size:13.5px}.cg-h small{font-size:11px;color:var(--muted)}
  .cg-row{grid-template-columns:190px repeat(6,minmax(0,1fr));gap:5px;padding:5px;border-radius:12px;border-color:var(--hair)}
  .cg-p{grid-column:auto;flex-direction:column;align-items:flex-start;gap:1px;justify-content:center;padding:0 6px;margin:0}.cg-p b{font-size:14px}.cg-p small{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.cg-p .tag{margin:2px 0 0}
  .cg-c{min-height:50px;padding:4px 6px;border-radius:10px;gap:1px}.cg-hr{display:none}.cg-n{font-size:12.5px}
}
/* ===== Admin → Usuarios (23/09): portada sin lista por default; buscador + accesos rápidos en una fila (PC); congregaciones en columnas; ficha en 2 columnas (PC) ===== */
.umas summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:var(--muted);padding:4px 0}.umas summary::-webkit-details-marker{display:none}.umas[open] summary{margin-bottom:8px}
.ufil-top{display:flex;flex-direction:column;gap:10px}.ufil-top .ubuscar{margin:0}
.uhome-g{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.uq{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:14px;background:#fff;border:1.5px solid var(--line);text-decoration:none;color:var(--ink)}
.uq svg{color:var(--acc)}.uq b{font-size:22px;font-weight:800;line-height:1.1}.uq span{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.uq.warn svg{color:var(--warn)}.uq.bad svg{color:var(--bad)}.uq.all{background:var(--ink);border-color:transparent;color:#fff}.uq.all svg,.uq.all span{color:rgba(255,255,255,.75)}
.uhome .ch{font-weight:800;display:flex;align-items:center;gap:8px;margin:14px 0 8px;flex-wrap:wrap}.ucongs-q{margin-left:auto;flex:0 1 260px;height:36px}
.ucongs{display:grid;grid-template-columns:1fr;gap:6px}
.ucong{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:#fff;border:1.5px solid var(--line);text-decoration:none;color:var(--ink);font-weight:700;font-size:14px;min-width:0}
.ucong span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ucong b{font-size:15px;font-weight:800;color:var(--ok)}.ucong.off{border-style:dashed;color:var(--muted)}.ucong.off b{color:var(--muted)}
.uact{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 8px;align-items:center}.uact .ures{font-size:13px;color:var(--muted);margin-left:4px}.uact .uexp{display:flex;gap:6px;margin-left:auto}.uact .uexp .btn{width:auto;margin:0}
@media (min-width:600px){ .ucongs{grid-template-columns:repeat(2,1fr)} }
@media (min-width:900px){
  .ufil{max-width:none}.ufil-top{flex-direction:row;align-items:stretch}.ufil-top .ubuscar{flex:1;min-width:260px;max-width:none}.ufil-top .uhome-g{grid-template-columns:repeat(5,auto);gap:6px}.ufil-top .uq{padding:6px 12px;justify-content:center}.ufil-top .uq b{font-size:18px}
  .ucongs{grid-template-columns:repeat(4,1fr)}
  /* Resultados en dos columnas de tarjetas (antes: una lista de 50 filas a lo alto) */
  .ulist:not(.ucongs){display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:none;border:0;box-shadow:none;overflow:visible}
  .ulist:not(.ucongs) .row{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px}.ulist:not(.ucongs) .row.muted{grid-column:1/-1}
  /* Ficha del voluntario en dos columnas: los títulos de sección, avisos, notas y el botón cruzan las dos */
  form.card.ficha2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-items:start}
  form.card.ficha2>.fsec,form.card.ficha2>.form-cong,form.card.ficha2>.aviso-menor,form.card.ficha2>.nota,form.card.ficha2>.btn,form.card.ficha2>p{grid-column:1/-1}
  form.card.ficha2>.field{min-width:0;margin-bottom:14px}
}

/* ===== Resultados de las encuestas (dashboard, 01/10/2026) ===== */
.rse-h{flex-wrap:wrap}.rse-acc{margin-left:auto;display:flex;gap:10px;align-items:center}
.rse-falta{display:inline-flex;align-items:center;gap:4px;background:#FDECEC;color:#C0181C;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;text-decoration:none;animation:rse-late 1.6s ease-in-out infinite}
@keyframes rse-late{50%{box-shadow:0 0 0 5px rgba(192,24,28,.12)}}
.dash-d .res4.res4b{margin-top:-6px}.dash-d .res4 .teal{background:#E6F6F9}.dash-d .res4 .teal b{color:#0E7490}.dash-d .res4 .cyan{background:#E6F7FB}.dash-d .res4 .cyan b{color:#0891B2}.dash-d .res4 .red{background:#FDECEC}.dash-d .res4 .red b{color:#C0181C}
.dash-d .res4 a.r{text-decoration:none;color:inherit}.dash-d .res4 a.r u{text-decoration:none;font-weight:800;color:#C0181C}.dash-d .res4 a.r.ok u{color:#15803D}
.rse-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}
.rse-t{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:#92400E;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.rse-tab{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
.rse-tab th{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;text-align:right;padding:0 4px 4px;font-weight:700}.rse-tab th:first-child{text-align:left;padding-left:0}
.rse-tab td{padding:6px 4px;border-bottom:1px solid var(--hair);text-align:right;white-space:nowrap}.rse-tab td:first-child{text-align:left;padding-left:0;width:100%;white-space:normal}
.rse-tab td.mu{color:var(--muted)}.rse-tab td.ok{color:#15803D;font-weight:700}.rse-tab tr.off td{color:var(--muted);opacity:.7}.rse-tab tr.off td b{font-weight:600}
.rse-bar{display:block;height:4px;border-radius:2px;background:#f1ebe2;margin-top:3px;position:relative;overflow:hidden;max-width:220px}.rse-bar::after{content:"";position:absolute;inset:0;width:var(--w,0%);background:#B45309;border-radius:2px}
.rse-tab tr.off .rse-bar::after{background:#d9cfc1}
.rse-det{margin-top:12px;border-top:1px solid var(--hair);padding-top:8px}.rse-det summary{cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:800;font-size:14px;list-style:none;padding:4px 0}.rse-det summary::-webkit-details-marker{display:none}.rse-det summary::after{content:"›";margin-left:auto;font-size:20px;transform:rotate(90deg);transition:transform .2s;color:var(--muted)}.rse-det[open] summary::after{transform:rotate(-90deg)}.rse-det table{margin-top:6px}
@media (min-width:900px){.rse-grid{grid-template-columns:1fr 1fr}}

/* ===== Encuestas sin enviar (admin/encuestas_faltantes.php) ===== */
.ef-res{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.ef-res .r{border-radius:12px;padding:10px 6px;text-align:center;background:#fff;border:1px solid var(--line)}.ef-res b{display:block;font-size:22px;font-weight:800;line-height:1}.ef-res span{display:block;font-size:10.5px;color:var(--muted);margin-top:4px;line-height:1.1}
.ef-res .red{background:#FDECEC;border-color:#f6c9c9}.ef-res .red b{color:#C0181C}.ef-res .ok{background:#ECFDF3;border-color:#bfe3cc}.ef-res .ok b{color:#15803D}.ef-res .amb{background:#FFF7ED;border-color:#f6dcb8}.ef-res .amb b{color:#B45309}
.ef-dia{margin-bottom:12px}.ef-dia .ch{position:sticky;top:0;background:#fff;z-index:2}
.ef-turno{padding:10px 0 12px;border-bottom:1px solid var(--hair)}.ef-turno:last-child{border-bottom:0;padding-bottom:0}
.ef-th{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ef-th b{font-size:16px}.ef-th .tag{font-size:11px}
.ef-gente{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ef-p{display:flex;align-items:center;gap:10px;background:#fffbf5;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.ef-p .av{flex:0 0 auto}.ef-p .pn{font-weight:700;font-size:14.5px;line-height:1.15}.ef-p .ps{font-size:12px;color:var(--muted)}
.ef-p .ef-wa{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;background:#16a34a;color:#fff;border-radius:999px;padding:8px 12px;font-weight:800;font-size:13px;text-decoration:none;white-space:nowrap}
.ef-p.menor{background:var(--minor-soft)}.ef-p.menor .pn{color:var(--minor)}
.ef-p.sin .ef-wa{background:#e7ded2;color:var(--muted);pointer-events:none}
.ef-ok{text-align:center;padding:28px 12px}.ef-ok .check{margin:0 auto 10px}
@media (min-width:900px){.ef-gente{display:grid;grid-template-columns:1fr 1fr}}

/* Clima por turno en app.php (diseño C, 05/10/2026): <details> cerrado, pestañas con radios (sin JS) */
.cl{background:linear-gradient(180deg,#fff,#f1f6fb);border:1px solid #dbe5ef;border-radius:20px;margin:0 0 14px;box-shadow:0 1px 0 #fff inset,0 10px 24px -14px rgba(30,58,95,.45),0 2px 4px rgba(30,58,95,.06);overflow:hidden}
.cl-s{display:flex;align-items:center;gap:10px;padding:11px 12px 11px 14px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.cl-s::-webkit-details-marker{display:none}
.cl-st{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.cl-st small{font-size:11.5px;font-weight:800;color:#1e3a5f;letter-spacing:.05em;text-transform:uppercase}
.cl-st b{font-size:15.5px;font-weight:800}
.cl i{font-style:normal}
.cl-cal{color:#c2410c}.cl-fr{color:#2563a8}
.cl-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 11px;border-radius:999px;background:#1e3a5f;color:#fff;font-size:12.5px;font-weight:800;white-space:nowrap;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25),0 4px 10px -6px #1e3a5f}
.cl-btn svg{transform:rotate(90deg);transition:transform .2s}
.cl[open] .cl-btn svg{transform:rotate(-90deg)}
.cl-c,.cl[open] .cl-a{display:none}.cl[open] .cl-c{display:inline}
.cl-b{border-top:1px solid #dbe5ef;padding:12px 12px 10px}
.cl-r{position:absolute;opacity:0;pointer-events:none}
.cl-tabs{display:flex;gap:6px;margin-bottom:10px}
.cl-tabs label{flex:1;text-align:center;padding:10px 6px;border-radius:12px;border:1px solid #dbe5ef;background:#fff;font-size:14px;font-weight:800;color:#5b6573;cursor:pointer}
#cl-d0:checked~.cl-tabs .cl-t0,#cl-d1:checked~.cl-tabs .cl-t1{background:#1e3a5f;border-color:#1e3a5f;color:#fff;box-shadow:inset 0 -3px 0 rgba(0,0,0,.25)}
#cl-d0:focus-visible~.cl-tabs .cl-t0,#cl-d1:focus-visible~.cl-tabs .cl-t1{outline:3px solid #93c5fd;outline-offset:2px}
.cl-dia{display:none;flex-direction:column;gap:6px}
#cl-d0:checked~.cl-p0,#cl-d1:checked~.cl-p1{display:flex}
.cl-f{display:grid;grid-template-columns:78px 32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid #e6edf4}
.cl-f.mio{background:var(--ok-bg);border:2px solid var(--ok);box-shadow:0 6px 14px -8px rgba(21,128,61,.6)}
.cl-h{display:flex;flex-direction:column;font-size:15px;font-weight:800;line-height:1.15}
.cl-h small{font-size:10px;font-weight:900;color:var(--ok);letter-spacing:.05em;text-transform:uppercase}
.cl-tt{font-size:16px;font-weight:900}
.cl-pp{font-size:12.5px;font-weight:700;color:var(--muted);text-align:right}
.cl-pp.llueve,.next-cl .llueve{color:#2563a8;font-weight:800}
.cl-av{display:flex;align-items:center;gap:8px;margin-top:4px;padding:9px 12px;border-radius:12px;background:#eef4fb;border:1px solid #dbe5ef;font-size:13.5px;font-weight:700;color:#1e3a5f}
.cl-src{margin-top:8px;font-size:11.5px;color:var(--muted);text-align:center}
.next-cl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 6px;padding:6px 10px;border-radius:12px;background:#eef4fb;font-size:14px;color:#1e3a5f}

/* Estacionamiento más cercano (07/10/2026, schema_v23): enlace bajo «Cómo llegar» en app.php y turnos.php */
.estac{display:flex;align-items:center;gap:6px;margin-top:8px;padding:10px 12px;border-radius:12px;background:#f3f6fa;border:1.5px dashed #c6d8fb;color:#1a56c9;font-weight:700;font-size:14px;text-decoration:none}
.estac svg:last-child{margin-left:auto}

/* Login de admin · propuesta «A · Insignia» (09/10/2026, lienzo «PPE admin login · propuestas»): emblema redondo con anillo biselado,
   navy del emblema (#023F61) en lugar del índigo. El logo va como fondo CSS y no se puede arrastrar ni seleccionar. */
body.login-admin{--sx1:#023F61;--sx2:#0b6a9c;--sxs:#e6f0f8;--sxl:#c9dbe9;background-image:radial-gradient(520px 320px at 50% -8%,#dbe9f5 0%,transparent 70%);background-color:#f5f8fb}
.login .logo-bg{-webkit-user-drag:none;user-select:none;pointer-events:none}
body.login-admin .logo-bg,body.login-admin .logo{width:132px;height:132px;max-width:none;aspect-ratio:1;padding:7px;border-radius:50%;margin:0 auto 6px;box-sizing:border-box;filter:none;
  background:url(/assets/img/logo-emblema.png) center/cover no-repeat content-box,linear-gradient(160deg,#ffffff,#d6e2ec) border-box;
  box-shadow:0 18px 34px -16px rgba(2,63,97,.55),0 2px 0 #fff inset,0 -2px 0 rgba(2,63,97,.18) inset}
body.login-admin .hero h1{color:#023F61;letter-spacing:-.02em}
body.login-admin .hero::after{color:#4a6378;letter-spacing:.14em}
.login-admin .seccion{background:linear-gradient(180deg,#0a5a85,#023F61);box-shadow:0 10px 20px -12px #023F61,0 1px 0 rgba(255,255,255,.35) inset}
.login-admin .card{border-color:#d9e4ee;border-top-color:#023F61;box-shadow:0 30px 50px -34px rgba(2,63,97,.5),0 1px 0 #fff inset}
.login-admin input{background:#f8fbfd;border-color:#cfdbe6}
.login-admin .btn.staff{background:linear-gradient(180deg,#0b6a9c 0%,#023F61 100%);box-shadow:0 14px 26px -12px #023F61,0 1px 0 rgba(255,255,255,.4) inset,0 -3px 0 rgba(0,0,0,.18) inset}
.login-admin .accesos .acc-tile{border-color:#d9e4ee;box-shadow:0 10px 22px -16px rgba(2,63,97,.45)}
.login-admin .acc-back{color:#023F61}
@media (min-width:900px){ body.login-admin .logo{width:190px;height:190px;padding:9px;margin:0 0 auto} }
/* 09/10 (noche): en admin sin el aro giratorio del hero en escritorio y sin sombras azules (solo gris neutro suave) */
body.login-admin .hero::before{display:none}
body.login-admin .hero,body.login-admin .logo,body.login-admin .logo-bg,.login-admin .card,.login-admin .seccion,.login-admin .btn.staff,.login-admin .accesos .acc-tile{box-shadow:0 10px 24px -14px rgba(15,31,46,.22)}
.login-admin .seccion,.login-admin .btn.staff{box-shadow:0 1px 0 rgba(255,255,255,.3) inset}
body.login-admin .logo,body.login-admin .logo-bg{box-shadow:0 8px 18px -10px rgba(15,31,46,.28),0 2px 0 #fff inset}

/* ============================================================
   v4.0 (09/10/2026) · PANEL DE ADMIN con la temática NAVY del login de admin (#023F61): fondo claro,
   dock y acentos navy con bisel suave, sombras GRIS NEUTRO (Oscar no quiere sombras azules).
   Solo el dashboard (body.dash-d); el color del evento se conserva únicamente en la tarjeta de HOY.
   ============================================================ */
body.dash-d{--nv:#023F61;--nv2:#0b6a9c;--nvs:#e6f0f8;--nvl:#c9dbe9;--acc:#023F61;--amber-soft:#e6f0f8;--sh:0 10px 24px -14px rgba(15,31,46,.22);
  background:radial-gradient(520px 320px at 50% -8%,#dbe9f5 0%,transparent 70%),#f5f8fb}
body.dash-d .barra{border-bottom-color:var(--nv)}
body.dash-d .barra .bver{color:var(--nv);border-color:var(--nvl);background:#fff}
body.dash-d .barra h1{color:var(--nv)}
body.dash-d .dash-d .hoy{border-color:#d9e4ee;box-shadow:var(--sh)}
body.dash-d .dash-d .dock{background:linear-gradient(180deg,#0a5a85,#023F61);box-shadow:var(--sh),0 1px 0 rgba(255,255,255,.28) inset,0 -3px 0 rgba(0,0,0,.18) inset}
body.dash-d .dash-d .dock a:hover,body.dash-d .dash-d .dock a:focus-visible{background:rgba(255,255,255,.16)}
body.dash-d .dash-d .dk-chip{background:#fff;border:1.5px solid #d9e4ee;color:var(--nv)}
body.dash-d .dash-d .dk-chip.red{background:#FDECEC;border-color:#F5C6C6;color:#C0181C}
body.dash-d .dash-d .dk-chip.amb{background:#FFF7ED;border-color:#FDE7C8;color:#B45309}
body.dash-d .dash-d .dk-chip.pur,body.dash-d .dash-d .dk-chip.cyan,body.dash-d .dash-d .dk-chip.teal{background:var(--nvs);border-color:var(--nvl);color:var(--nv)}
body.dash-d .dash-d .bt{border-color:#d9e4ee;box-shadow:var(--sh)}
body.dash-d .dash-d .bt.teal{background:var(--nvs);border-color:var(--nvl)}body.dash-d .dash-d .bt.teal .bt-k{color:var(--nv)}
body.dash-d .dash-d .bt-row i b,body.dash-d .dash-d .rk-b i b{background:linear-gradient(90deg,var(--nv2),var(--nv))}
body.dash-d .dash-d .bt-row i,body.dash-d .dash-d .rk-b i,body.dash-d .dash-d .bt-fotos i{background:#e9eff5}
body.dash-d .dash-d .rk-pos{background:var(--nv)}
body.dash-d .dash-d .res4 .blue,body.dash-d .dash-d .res4 .pur,body.dash-d .dash-d .res4 .teal{background:var(--nvs)}body.dash-d .dash-d .res4 .blue b,body.dash-d .dash-d .res4 .pur b,body.dash-d .dash-d .res4 .teal b{color:var(--nv)}
body.dash-d .card{border-color:#d9e4ee;box-shadow:var(--sh)}
body.dash-d .tabs a.on{color:var(--nv);background:var(--nvs)}
body.dash-d .btn.amber{background:linear-gradient(180deg,var(--nv2),var(--nv));box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -3px 0 rgba(0,0,0,.18) inset,var(--sh)}
body.dash-d .pend-aviso{box-shadow:var(--sh)}
/* v4.0 · selector de evento (dashboard) y evento por gestor (Gestores) */
.ev-sel{display:flex;justify-content:flex-end;margin:-4px 0 12px}
.ev-sel label{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 14px;border-radius:999px;background:#fff;border:1.5px solid #d9e4ee;box-shadow:0 8px 18px -14px rgba(15,31,46,.3)}
.ev-sel label span{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#4a6378}
.ev-sel select{height:34px;padding:0 30px 0 10px;border:0;border-radius:999px;background:#e6f0f8;color:#023F61;font:inherit;font-weight:800;font-size:14px}
.ges-ev label{display:flex;flex-direction:column;gap:4px;flex:1}.ges-ev label span{font-size:12.5px;font-weight:700;color:var(--muted)}
.ges-ev select{height:44px;border-radius:12px;border:1.5px solid var(--line);padding:0 12px;font:inherit;font-size:15px;background:#fff}

/* ============================================================
   v4.0 (09/10/2026) · LOGIN DE PUBLICADOR (entrar.php) · propuesta «E · Tarjeta con emblema» (lienzo «PPE login publicador · propuestas»):
   una sola tarjeta blanca con cabecera navy (emblema chico en aro blanco + Bienvenido), campos grandes, botón Entrar navy,
   ícono «Instalar» arriba a la derecha, aviso y píldora «Acceso de organización» al pie. Sombras gris neutro.
   El logo va como fondo CSS y no se puede arrastrar (.login .logo-bg). Los logins de admin/secretario no cambian.
   ============================================================ */
body.login-voluntario{--nv:#023F61;--nv2:#0b6a9c;--nvs:#e6f0f8;--nvl:#c9dbe9;--sh:0 10px 24px -14px rgba(15,31,46,.22);background:linear-gradient(180deg,#e9f1f8 0%,#f7f9fc 45%,#f7f9fc 100%)}
.login-voluntario .e-top{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 14px}
.login-voluntario .e-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#4a6378}
.login-voluntario .e-inst{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff;border:1.5px solid #d9e4ee;color:var(--nv);box-shadow:0 6px 14px -10px rgba(15,31,46,.3)}
.login-voluntario .e-inst svg{width:18px;height:18px}
.login-voluntario .e-card{padding:0;border-radius:28px;border:1.5px solid #d9e4ee;box-shadow:0 30px 50px -34px rgba(15,31,46,.35),0 1px 0 #fff inset;overflow:hidden;animation:none}
.login-voluntario .e-head{display:flex;align-items:center;gap:14px;padding:18px 20px;background:linear-gradient(180deg,#0b5f8e,#023F61);color:#fff}
.login-voluntario .e-head .logo-bg,.login-voluntario .e-head .logo{flex:none;width:84px;height:84px;max-width:none;aspect-ratio:1;padding:4px;border-radius:50%;margin:0;box-sizing:border-box;filter:none;
  background:url(/assets/img/logo-emblema.png) center/cover no-repeat content-box,#fff border-box;box-shadow:0 10px 20px -10px rgba(0,0,0,.5)}
.login-voluntario .e-ht{display:flex;flex-direction:column;gap:4px;min-width:0}
.login-voluntario .e-ht h1{margin:0;font-size:26px;line-height:1.05;font-weight:800;letter-spacing:-.02em;color:#fff}
.login-voluntario .e-ht span{font-size:13px;color:#bfe0f5;font-weight:600}
.login-voluntario .e-body{padding:20px}
.login-voluntario .field>span{color:#4a6378}
.login-voluntario input{height:56px;padding:0 14px;border-radius:14px;border:1.5px solid #cfdbe6;background:#f8fbfd;font-size:18px;letter-spacing:.02em}
.login-voluntario input:focus{border-color:var(--nv);box-shadow:0 0 0 4px var(--nvs)}
.login-voluntario .ver button{background:var(--nvs);color:var(--nv);border:0;font-weight:800;border-radius:10px}
.login-voluntario .btn.amber{height:58px;margin-top:2px;border-radius:16px;font-size:18px;color:#fff;background:linear-gradient(180deg,var(--nv2),var(--nv));box-shadow:0 10px 24px -14px rgba(15,31,46,.35),0 1px 0 rgba(255,255,255,.4) inset,0 -3px 0 rgba(0,0,0,.18) inset}
.login-voluntario .nota{margin:12px 0 0}.login-voluntario .nota a{color:var(--nv);font-weight:700}
.login-voluntario .e-info{margin-top:14px;background:#fff;border:1.5px solid #d9e4ee;color:#1f3a4f;box-shadow:none}
.login-voluntario .e-org{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;margin-top:14px;padding:10px 14px;border-radius:999px;background:#fff;border:1.5px solid #d9e4ee;text-decoration:none;color:var(--nv);font-weight:800;font-size:14.5px;box-shadow:var(--sh);transition:transform .15s,box-shadow .15s}
.login-voluntario .e-org svg{width:18px;height:18px}
.login-voluntario .e-org:hover,.login-voluntario .e-org:focus-visible{transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(15,31,46,.35)}
.login-voluntario .aviso-abierto{box-shadow:var(--sh)}
@media (min-width:900px){
  body.login.login-voluntario .wrap{display:block;max-width:520px;margin:0 auto;padding-top:56px}
  body.login.login-voluntario .e-card{padding:0;box-shadow:0 30px 60px -34px rgba(15,31,46,.35)}
  body.login.login-voluntario .e-head .logo{width:96px;height:96px;padding:5px;margin:0;box-shadow:0 10px 20px -10px rgba(0,0,0,.5)}
  body.login.login-voluntario .e-ht h1{font-size:30px;color:#fff}
  body.login.login-voluntario .nota{text-align:center;padding:0}
}
/* 10/10: login publicador · letra más grande, enfocado a celular; instalar la app en su propio bloque */
.login-voluntario .e-kicker{font-size:13.5px}
.login-voluntario .e-ht h1{font-size:30px}.login-voluntario .e-ht span{font-size:15px}
.login-voluntario .field>span{font-size:16.5px;font-weight:700}
.login-voluntario input{height:60px;font-size:20px}
.login-voluntario .btn.amber{height:62px;font-size:20px}
.login-voluntario .nota{font-size:17px;text-align:center}
.login-voluntario .e-info{font-size:16.5px;line-height:1.45;padding:14px 16px;border-radius:18px}.login-voluntario .e-info a{color:var(--nv);font-weight:800;text-decoration:underline;text-underline-offset:2px}
.login-voluntario .e-inst2{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px 16px;border-radius:20px;text-decoration:none;color:#fff;background:linear-gradient(180deg,#0b6a9c,#023F61);box-shadow:0 14px 28px -16px rgba(2,63,97,.6),0 1px 0 rgba(255,255,255,.35) inset,0 -3px 0 rgba(0,0,0,.18) inset;transition:transform .15s,box-shadow .15s}
.login-voluntario .e-inst2-ico{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.16);box-shadow:0 1px 0 rgba(255,255,255,.25) inset}
.login-voluntario .e-inst2-t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.login-voluntario .e-inst2-t b{font-size:17px;font-weight:800}.login-voluntario .e-inst2-t small{font-size:14px;color:#bfe0f5;font-weight:600}
.login-voluntario .e-inst2>svg:last-child{opacity:.85}
.login-voluntario .e-inst2:hover,.login-voluntario .e-inst2:focus-visible{transform:translateY(-2px);box-shadow:0 18px 32px -16px rgba(2,63,97,.7),0 1px 0 rgba(255,255,255,.35) inset,0 -3px 0 rgba(0,0,0,.18) inset}
.login-voluntario .e-org{font-size:16px;min-height:54px}
/* 10/10: /olvide.php con la misma tarjeta */
.login-voluntario .e-done{text-align:center;padding:6px 0 10px}
.login-voluntario .e-done-ico{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 12px;border-radius:50%;color:#fff;background:linear-gradient(180deg,#22a35a,#15803D);box-shadow:0 14px 28px -14px rgba(21,128,61,.6),0 1px 0 rgba(255,255,255,.4) inset}
.login-voluntario .e-done h2{margin:0 0 8px;font-size:24px;color:var(--nv)}.login-voluntario .e-done p{margin:0 0 16px;font-size:17px;line-height:1.45;color:#1f3a4f}
.olvide .e-ht h1{font-size:26px;white-space:normal;line-height:1.1}
.olvide .e-org svg:first-child{transform:rotate(180deg)}
.olvide .btn.amber svg:first-child{transform:rotate(180deg)}.olvide form .btn.amber svg:first-child{transform:none}
@media (prefers-reduced-motion:reduce){ .login-voluntario .e-org,.login-voluntario .e-inst2{transition:none} }

/* v4.0 paso 4: chips de evento del publicador (app, turnos) · solo salen con 2+ eventos */
.evp{display:flex;gap:8px;overflow-x:auto;margin:0 -16px 12px;padding:2px 16px 6px;scrollbar-width:none}.evp::-webkit-scrollbar{display:none}
.evp a{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-weight:800;font-size:14px;color:var(--muted);text-decoration:none;white-space:nowrap;box-shadow:0 8px 18px -14px rgba(60,40,10,.35);transition:transform .15s}
.evp a:active{transform:scale(.97)}.evp a i{width:10px;height:10px;border-radius:50%;background:var(--ev,#B45309);box-shadow:inset 0 1px 2px rgba(255,255,255,.6)}
.evp a.on{background:var(--ev,#B45309);border-color:transparent;color:#fff}.evp a.on i{background:#fff}
.cg-copia{display:flex;gap:6px;align-items:center}.cg-copia select{height:36px;padding:0 10px;font-size:14px;width:auto}
.tk-ev{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ev,#B45309);margin-bottom:4px}

/* ===== v4.0 · Panel admin, propuesta A «Hoy al centro» (10/10/2026) ===== */
body.dash-d .at-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 12px}
body.dash-d .at-top .ev-sel{margin:0}
body.dash-d .at-back{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:999px;background:#fff;border:1.5px solid #c9d8e5;color:var(--nv);font-size:13px;font-weight:800;text-decoration:none;box-shadow:0 6px 14px -12px rgba(30,45,60,.5)}
body.dash-d .at-h{display:flex;align-items:baseline;justify-content:space-between;margin:4px 4px 8px}body.dash-d .at-h h2{margin:0;font-size:19px}
body.dash-d .at-h2{margin:14px 4px 8px;font-size:19px}
.at{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
.at-item{--c:var(--nv);display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:linear-gradient(180deg,#fff,#f4f8fb);border:1px solid #d9e4ee;box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -18px rgba(30,45,60,.35);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s}
a.at-item:hover,a.at-item:focus-visible{transform:translateY(-2px);box-shadow:0 1px 0 #fff inset,0 18px 30px -18px rgba(30,45,60,.5)}a.at-item:active{transform:scale(.985)}
.at-item.red{--c:#b42318;--cb:linear-gradient(180deg,#fde8e6,#f8d2ce)}.at-item.amb{--c:#B45309;--cb:linear-gradient(180deg,#fff2dc,#fbe2b8)}.at-item.pur{--c:#5b21b6;--cb:linear-gradient(180deg,#efe8fb,#dfd2f6)}
.at-item.blue{--c:#023F61;--cb:linear-gradient(180deg,#e6f0f8,#d2e3f1)}.at-item.teal{--c:#0E7490;--cb:linear-gradient(180deg,#e0f2f6,#c4e4ec)}.at-item.ok{--c:#15803D;--cb:linear-gradient(180deg,#e2f3ea,#c6e6d3)}
.at-ico{flex:0 0 auto;width:46px;height:46px;border-radius:14px;background:var(--cb,#e6f0f8);color:var(--c);display:grid;place-items:center;box-shadow:0 1px 0 #fff inset,0 6px 10px -8px rgba(30,45,60,.4)}
.at-t{flex:1;min-width:0;line-height:1.2}.at-t b{display:block;font-size:16px;font-weight:800}.at-t small{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-top:2px;overflow-wrap:anywhere}
.at-n{flex:0 0 auto;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:var(--c);color:#fff;font-weight:800;font-size:15px;display:grid;place-items:center;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 6px 12px -8px var(--c)}
/* pendientes plegables (altas, menores): el resumen es la fila; abierto, la lista de siempre */
details.at-det{display:block;padding:0}details.at-det>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer}details.at-det>summary::-webkit-details-marker{display:none}
details.at-det .pend-lista{padding:0 14px 12px;display:flex;flex-direction:column;gap:6px}
details.at-det .pend-fila{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid #e3ecf3;font-size:14px}
details.at-det .pend-fila a{flex:1 1 100%;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:4px}
details.at-det .pend-fila form{margin:0}details.at-det .pend-fila button{height:36px;padding:0 12px;border-radius:10px;border:1.5px solid #c9d8e5;background:#fff;color:var(--nv);font:inherit;font-size:13px;font-weight:800;display:inline-flex;align-items:center;gap:4px}
details.at-det .pend-fila button.pend-ok{background:linear-gradient(180deg,#22a35a,#15803D);color:#fff;border-color:transparent}
details.at-det>.pend-lista>small{color:var(--muted);font-size:13px}
/* 10/10: altas y accesos nuevos en revisión → bloque verde que parpadea hasta atenderlo */
.at-item.revision{--c:#C2410C;--cb:linear-gradient(180deg,#ffe9d6,#fdd3b0);background:linear-gradient(180deg,#fff7ef,#ffe9d6);border-color:#f4bd8a;animation:at-nuevo 1.6s ease-in-out infinite}
.at-item.revision .at-n{animation:at-nuevo-n 1.6s ease-in-out infinite}
.at-item.revision .at-t b{font-size:19px}.at-item.revision .at-t small{font-size:15px;color:#7c3a0b}
@keyframes at-nuevo{0%,100%{box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -18px rgba(30,45,60,.35),0 0 0 0 rgba(194,65,12,.5)}50%{box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -18px rgba(30,45,60,.35),0 0 0 10px rgba(194,65,12,0);background:linear-gradient(180deg,#ffefdf,#ffdcbd)}}
@keyframes at-nuevo-n{50%{transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.at-item.revision,.at-item.revision .at-n{animation:none}}
/* accesos: 4 losetas */
.acc4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.acc4 a{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 4px 10px;border-radius:18px;background:linear-gradient(180deg,#fff,#f4f8fb);border:1px solid #d9e4ee;box-shadow:0 1px 0 #fff inset,0 14px 28px -18px rgba(30,45,60,.35);color:var(--ink);font-size:12.5px;font-weight:800;text-decoration:none;transition:transform .15s}
.acc4 a:hover,.acc4 a:focus-visible{transform:translateY(-2px)}.acc4 a:active{transform:scale(.96)}
.acc4 a>span{width:46px;height:46px;border-radius:14px;background:linear-gradient(180deg,var(--nv2),var(--nv));color:#fff;display:grid;place-items:center;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 -2px 0 rgba(0,0,0,.15) inset,0 8px 14px -8px rgba(2,63,97,.7)}
.acc4-n{position:absolute;top:6px;right:6px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#0E7490;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;font-style:normal}
body.dash-d .at-card{margin-bottom:12px}
/* la tarjeta HOY con el relieve de las demás */
body.dash-d .dash-d .hoy,body.dash-d .hoy{background:linear-gradient(180deg,#fff,#f4f8fb);box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -18px rgba(30,45,60,.35)}
/* barra inferior flotante (solo panel admin, pantallas chicas) */
@media (max-width:699.98px){
  body.dash-d .tabs{left:12px;right:12px;bottom:10px;border-radius:22px;border:1px solid #d9e4ee;padding:6px;background:linear-gradient(180deg,#fff,#f1f6fa);box-shadow:0 1px 0 #fff inset,0 18px 30px -18px rgba(30,45,60,.5)}
  body.dash-d .tabs a{border-radius:14px}body.dash-d .tabs a.on{background:linear-gradient(180deg,var(--nv2),var(--nv));color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.3) inset}
  body.dash-d .wrap.con-tabs{padding-bottom:112px}
}
/* menú general de Root */
body.gen .gen-h{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}body.gen .gen-h h2{margin:0}
.gen-ev{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.gen-e{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:20px;background:linear-gradient(180deg,#fff,#f4f8fb);border:1px solid #d9e4ee;border-left:5px solid var(--ev);box-shadow:0 1px 0 #fff inset,0 14px 28px -18px rgba(30,45,60,.35);color:var(--ink);text-decoration:none;transition:transform .15s}
.gen-e:hover,.gen-e:focus-visible{transform:translateY(-2px)}.gen-e.on{outline:2px solid var(--ev);outline-offset:2px}
.gen-logo{flex:0 0 auto;width:52px;height:52px;border-radius:16px;background:color-mix(in srgb,var(--ev) 12%,#fff);color:var(--ev);display:grid;place-items:center;overflow:hidden;box-shadow:0 1px 0 #fff inset}.gen-logo img{width:100%;height:100%;object-fit:cover}
.gen-i{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.gen-i b{font-size:17px}.gen-i small{font-size:12.5px;color:var(--muted);font-weight:600}
.gen-r{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.gen-go{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:800;color:var(--nv)}
/* staff */
.stf-f{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}.stf-f input,.stf-f select{height:42px;border-radius:12px;border:1.5px solid var(--line);padding:0 10px;font:inherit;font-size:14px;background:#fff;flex:1 1 140px;min-width:0}
.stf-f .btn{margin:0;flex:0 0 auto}.stf-ev label{display:flex;flex-direction:column;gap:3px;flex:1 1 180px}.stf-ev label span{font-size:12px;font-weight:700;color:var(--muted)}.stf-ev select{width:100%}
.stf-row .av.cap{background:var(--nv);color:#fff}

/* candado Root (admin/verificar.php) */
body.ver-root .vr-card{text-align:center;padding:22px 18px}
.vr-ico{width:72px;height:72px;border-radius:24px;margin:0 auto 12px;background:linear-gradient(180deg,#0b6a9c,#023F61);color:#fff;display:grid;place-items:center;box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -2px 0 rgba(0,0,0,.18) inset,0 14px 24px -12px rgba(2,63,97,.7)}
.vr-btn{width:100%;height:54px;font-size:17px}
.vr-o{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--muted);font-weight:700;font-size:13px}.vr-o::before,.vr-o::after{content:"";flex:1;height:1px;background:var(--line)}
.vr-cod input{text-align:center;font-size:28px;letter-spacing:.25em;font-weight:800;height:60px}
body.ver-root .field{text-align:left}
/* entrada del staff sin contraseña (admin/entrar.php) */
.en-quien{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:14px;background:#f5f8fb;border:1px solid #d9e4ee}.en-quien .av{width:36px;height:36px;flex:0 0 auto;background:#023F61;color:#fff}.en-quien b{display:block;font-size:15px;overflow-wrap:anywhere}.en-quien small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.en-links{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.en-links .link{background:none;border:0;padding:0;font:inherit;font-size:14px;font-weight:700;color:#0b6a9c;cursor:pointer}
body.login .vr-o{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--muted);font-weight:700;font-size:13px}body.login .vr-o::before,body.login .vr-o::after{content:"";flex:1;height:1px;background:var(--line)}
body.login .vr-btn{width:100%;height:54px;font-size:17px}body.login .vr-cod input{text-align:center;font-size:26px;letter-spacing:.25em;font-weight:800;height:58px}

/* ===== v4.0 · CARCASA DE ESCRITORIO del panel (10/10/2026) =====
   Solo body.dash-d en /admin/: BARRA SUPERIOR navy (logo · menú · evento de trabajo o accesos · Salir) + dos columnas independientes.
   En celular (<1000px) la barra superior no se ve (sigue la barra inferior .tabs). */
.topbar{display:none}
.gen-kpi{padding:18px 20px;margin-bottom:14px}.gen-kpi-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.gen-kpi-h b{display:block;font-size:19px}.gen-kpi-h small{font-size:13px;color:var(--muted);font-weight:600}
.gen-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gen-tile{display:flex;flex-direction:column;border-radius:16px;padding:12px 14px;color:#fff;text-decoration:none;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 -2px 0 rgba(0,0,0,.12) inset,0 12px 22px -14px rgba(15,31,46,.5);transition:transform .15s}
.gen-tile:hover{transform:translateY(-2px)}.gen-tile small{font-size:11.5px;font-weight:700;opacity:.92;line-height:1.3}.gen-tile b{font-size:30px;font-weight:800;line-height:1.1;margin:4px 0}
.gen-tile.amb{background:linear-gradient(180deg,#f0a93a,#e08a1d)}.gen-tile.ind{background:linear-gradient(180deg,#2c3f9e,#1e2a74)}.gen-tile.blu{background:linear-gradient(180deg,#1a86bd,#0b6a9c)}
.gen-chart{margin-bottom:14px}
@media (min-width:1000px){
  body.dash-d{background:#eef3f8}
  body.dash-d .wrap{max-width:1440px;padding:24px 28px 48px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box}
  body.dash-d .pane>.tabs{display:none}
  /* barra superior */
  body.dash-d .topbar{display:flex;align-items:center;gap:18px;padding:12px 18px;border-radius:22px;background:linear-gradient(135deg,#0b6a9c 0%,#023F61 60%,#022a42 100%);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 20px 40px -28px rgba(2,63,97,.8);position:sticky;top:12px;z-index:40}
  .side-logo{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding-right:14px;border-right:1px solid rgba(255,255,255,.18)}
  .side-logo img{width:44px;height:44px;border-radius:50%;border:3px solid #fff;box-shadow:0 8px 14px -8px rgba(0,0,0,.6)}
  .side-logo b{display:block;font-size:16px;font-weight:800;line-height:1.05;white-space:nowrap}.side-logo small{display:block;font-size:10.5px;font-weight:700;color:#bcd9ea;letter-spacing:.06em;text-transform:uppercase;margin-top:2px;white-space:nowrap}
  .side-nav{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}
  .side-nav a{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:12px;color:#d6e6f1;font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;transition:background .15s}
  .side-nav a:hover{background:rgba(255,255,255,.1);color:#fff}.side-nav a.on{background:rgba(255,255,255,.18);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.2) inset}
  .side-box{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:6px 6px 6px 12px;border-radius:14px;background:rgba(255,255,255,.12);box-shadow:0 1px 0 rgba(255,255,255,.15) inset}
  .side-k{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#bcd9ea;white-space:nowrap}
  .side-ev{display:flex;align-items:center;gap:7px;font-weight:800;font-size:14px;white-space:nowrap}.side-ev i{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.side-ev.muted{color:#bcd9ea}
  .side-btn{display:inline-flex;justify-content:center;align-items:center;height:36px;padding:0 12px;border-radius:10px;background:#fff;color:var(--nv);font-weight:800;font-size:13px;text-decoration:none;white-space:nowrap}
  .side-a{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:700;font-size:13px;text-decoration:none;padding:6px 8px;border-radius:10px;white-space:nowrap}.side-a:hover{background:rgba(255,255,255,.12);color:#fff}
  .side-out{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 14px;border-radius:12px;background:#fff;color:var(--nv);font-weight:800;font-size:13.5px;text-decoration:none;flex:0 0 auto;box-shadow:0 10px 20px -12px rgba(0,0,0,.6)}
  /* contenido */
  body.dash-d .pane{background:#fff;border-radius:24px;padding:22px 24px 30px;box-sizing:border-box;display:grid;grid-template-columns:minmax(340px,2fr) minmax(0,3fr);grid-auto-flow:row dense;gap:18px;align-content:start;align-items:start;box-shadow:0 30px 60px -40px rgba(15,31,46,.35)}
  body.dash-d .pane>*{grid-column:1/-1;margin:0}
  body.dash-d .pane>.barra{grid-column:1/-1;position:static;margin:0;padding:14px 18px;background:linear-gradient(180deg,#fff,#f6f9fc);border:1px solid #d9e4ee;border-radius:18px;box-shadow:0 1px 0 #fff inset,0 16px 32px -22px rgba(15,31,46,.3);display:flex;flex-direction:row;align-items:center;gap:14px;backdrop-filter:none}
  body.dash-d .pane>.barra .bt{background:none;border:0;box-shadow:none;padding:0;border-radius:0;display:flex;flex-direction:column;gap:2px;flex:1}
  body.dash-d .pane>.barra .evlogo,body.dash-d .pane>.barra img{width:50px;height:50px;border-radius:50%;object-fit:cover;flex:0 0 auto}
  body.dash-d .pane>.barra h1{font-size:20px;line-height:1.1;white-space:normal}body.dash-d .pane>.barra .bs{font-size:13px}body.dash-d .pane>.barra .avatar{display:none}body.dash-d .pane>.barra .back{display:none}
  body.dash-d .pane>.barra .bver{margin-top:4px;font-size:10px;padding:2px 7px;align-self:flex-start}
  body.dash-d .pane>.adm-cerrado,body.dash-d .pane>.info,body.dash-d .pane>.alert,body.dash-d .pane>.at-top{grid-column:1/-1}
  /* panel del evento (index.php) */
  body.dash-d .pane>.hoy{grid-column:2;grid-row:2}
  body.dash-d .pane>.at-h,body.dash-d .pane>.at,body.dash-d .pane>.at-topp,body.dash-d .pane>.at-ahora{grid-column:1}
  body.dash-d .pane>.at-h2,body.dash-d .pane>.acc4{display:none}   /* los accesos viven en la barra superior */
  body.dash-d .pane>.at-occ,body.dash-d .pane>#encuestas{grid-column:2}
  body.dash-d .pane>details.mas,body.dash-d .pane>.pend-aviso{grid-column:1/-1}
  /* dos columnas independientes (general.php) */
  body.dash-d .pane>.col-l{grid-column:1;display:flex;flex-direction:column;gap:14px}
  body.dash-d .pane>.col-r{grid-column:2;display:flex;flex-direction:column;gap:14px}
  body.dash-d .gen-sec{margin:0}
  body.dash-d .pane>.cfg-h,body.dash-d .pane>.cfg-grid{grid-column:1/-1}body.dash-d .pane>.cfg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.dash-d .pane>h2{margin:6px 4px 0}
  body.dash-d .pane>footer{grid-column:1/-1;padding:10px 0 0}
}
/* General simplificado (10/10): eventos · staff con enlace QR · configuración */
.gen-sec{padding:16px 18px;margin-bottom:14px}.gen-sec .gen-h{margin:0 0 12px}.gen-sec .gen-h h2{display:flex;align-items:center;gap:8px;font-size:19px;margin:0}
.gen-e .tag{font-size:11px;margin-left:6px;vertical-align:middle}.gen-r{flex-direction:row;gap:6px;align-items:center}.gen-r .btn.sm{height:36px;padding:0 10px;font-size:13px}
.gen-links{display:flex;flex-wrap:wrap;gap:8px}.gen-links a{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:999px;background:#fff;border:1.5px solid #c9d8e5;color:var(--nv);font-size:13.5px;font-weight:700;text-decoration:none}
.gen-links a b{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--nv);color:#fff;font-size:11px;display:grid;place-items:center}.gen-links a.bad{border-color:#f2c7c2;color:var(--bad)}.gen-links a.bad b{background:var(--bad)}
.stf-list{display:flex;flex-direction:column;gap:8px}
.stf-it{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:16px;background:#fff;border:1px solid #d9e4ee;border-left:5px solid var(--ev);box-shadow:0 10px 20px -16px rgba(15,31,46,.4)}
.stf-it .av{width:40px;height:40px;flex:0 0 auto}.stf-it .av.cap{background:var(--nv);color:#fff}
.stf-i{flex:1 1 200px;min-width:0}.stf-i b{display:block;font-size:15px}.stf-i b .tag{font-size:11px;margin-left:4px;vertical-align:middle}.stf-i small{display:block;font-size:12.5px;color:var(--muted);font-weight:600;overflow-wrap:anywhere}
.stf-sel select{height:38px;border-radius:11px;border:1.5px solid var(--line);padding:0 10px;font:inherit;font-size:13.5px;background:#fff;max-width:200px}
.stf-it form{margin:0}.stf-it .btn.sm{height:38px;padding:0 12px;font-size:13px;margin:0}
.stf-more{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:var(--nv);background:#f5f8fb;border:1px solid #d9e4ee}
.qr-dlg{max-width:380px}.qr-img{display:flex;justify-content:center;padding:14px;background:#fff;border:1px solid #d9e4ee;border-radius:16px}.qr-img img,.qr-img canvas{display:block}

/* General: configuraciones en tarjetas, errores y uso */
.gen-cfg-grid{grid-template-columns:1fr}.gen-cfg-grid .cfg-b{min-height:72px;padding:10px 12px;gap:12px;animation:none}.gen-cfg-grid .cfg-ico{width:44px;height:44px;border-radius:13px}.gen-cfg-grid .cfg-t b{font-size:15px}.gen-cfg-grid .cfg-t small{font-size:12.5px}
.err-it{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid #eef3f8;color:var(--ink);text-decoration:none;font-size:13.5px}.err-it:first-of-type{border-top:0}.err-it .tag{flex:0 0 auto;margin-top:2px}.err-m{flex:1;min-width:0;overflow-wrap:anywhere}.err-m small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.uso-k{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.uso-k a{display:flex;flex-direction:column;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid #d9e4ee;color:var(--ink);text-decoration:none;box-shadow:0 8px 16px -14px rgba(15,31,46,.4)}
.uso-k b{font-size:26px;font-weight:800;line-height:1.1;color:var(--nv)}.uso-k span{font-size:12.5px;font-weight:700}.uso-k small{font-size:11.5px;color:var(--muted);font-weight:600}
.uso-g{display:grid;grid-template-columns:1fr;gap:12px}.uso-g .k{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media (min-width:700px){ .uso-k{grid-template-columns:repeat(4,minmax(0,1fr))} .uso-g{grid-template-columns:3fr 2fr} }

/* Staff (gestores.php) rediseñado 10/10: tarjetas por persona */
.stf-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.stf-cnt{display:flex;align-items:baseline;gap:10px}.stf-cnt b{font-size:34px;font-weight:800;color:var(--nv);line-height:1}.stf-cnt span{font-size:13.5px;font-weight:700;color:var(--muted)}
.stf-list{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:14px}
.stf-card{background:linear-gradient(180deg,#fff,#f6f9fc);border:1px solid #d9e4ee;border-left:6px solid var(--ev);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 0 #fff inset,0 14px 28px -18px rgba(15,31,46,.35)}
.stf-head{display:flex;align-items:center;gap:10px}.stf-head .av{width:44px;height:44px;flex:0 0 auto}.stf-head .av.cap{background:var(--nv);color:#fff}
.stf-who{flex:1;min-width:0}.stf-who b{display:block;font-size:16px;line-height:1.15}.stf-who small{display:block;font-size:13px;color:var(--muted);font-weight:600;overflow-wrap:anywhere}
.stf-meta{display:flex;flex-wrap:wrap;gap:6px}
.stf-pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:#fff;border:1.5px solid #d9e4ee;font-size:12.5px;font-weight:700;color:var(--ink)}
.stf-pill i{width:9px;height:9px;border-radius:50%}.stf-pill.ok{border-color:#bfe3cc;color:var(--ok)}.stf-pill.bad{border-color:#f2c7c2;color:var(--bad)}.stf-pill.warn{border-color:#f0d3a6;color:var(--acc)}
.stf-act{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-top:1px solid #eef3f8;padding-top:10px}.stf-act form{margin:0}.stf-act .btn.sm{height:38px;padding:0 12px;font-size:13px;margin:0}
.stf-act .stf-ev{flex:1 1 180px}.stf-act .stf-ev select{width:100%;height:38px;border-radius:11px;border:1.5px solid var(--line);padding:0 10px;font:inherit;font-size:13.5px;background:#fff}
.stf-nom{padding:12px 14px}.stf-nom>summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px;list-style:none}.stf-nom>summary::-webkit-details-marker{display:none}
@media (min-width:1000px){ body.dash-d .pane>.stf-top,body.dash-d .pane>p,body.dash-d .pane>.stf-list,body.dash-d .pane>.stf-nom{grid-column:1/-1} .stf-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1300px){ .stf-list{grid-template-columns:repeat(3,minmax(0,1fr))} }

/* 10/10 (Oscar): letra más grande en todo el panel nuevo (General, Staff, barra superior) */
body.dash-d .gen-sec .gen-h h2{font-size:21px}
body.dash-d .gen-i b{font-size:17px}body.dash-d .gen-i small{font-size:14px}body.dash-d .gen-e .tag,body.dash-d .stf-who .tag{font-size:12.5px}
body.dash-d .gen-r .btn.sm{height:40px;font-size:14.5px;padding:0 12px}
body.dash-d .gen-cfg-grid .cfg-t b{font-size:17px}body.dash-d .gen-cfg-grid .cfg-t small{font-size:14px}body.dash-d .gen-cfg-grid .cfg-b{min-height:80px}
body.dash-d .err-it{font-size:15px}body.dash-d .err-m small{font-size:13px}
body.dash-d .uso-k b{font-size:30px}body.dash-d .uso-k span{font-size:14px}body.dash-d .uso-k small{font-size:13px}
body.dash-d .muted.small,body.dash-d p.muted.small{font-size:14.5px}
body.dash-d .stf-cnt span{font-size:15px}body.dash-d .stf-who b{font-size:18px}body.dash-d .stf-who small{font-size:14.5px}
body.dash-d .stf-pill{height:32px;font-size:14px}body.dash-d .stf-act .btn.sm{height:42px;font-size:14.5px}body.dash-d .stf-act .stf-ev select{height:42px;font-size:15px}
body.dash-d .stf-nom>summary{font-size:16px}
body.dash-d .pane>.barra h1{font-size:24px}body.dash-d .pane>.barra .bs{font-size:15px}
@media (min-width:1000px){
  .side-logo b{font-size:18px}.side-logo small{font-size:12px}
  .side-nav a{font-size:16px;padding:10px 15px}.side-ev{font-size:15.5px}.side-k{font-size:11.5px}.side-btn,.side-out{font-size:15px}.side-a{font-size:14.5px}
}

/* ===== 10/10 · Rediseño General en escritorio: barra compacta, perfil delgado, columnas iguales ===== */
@media (min-width:1000px){
  body.dash-d .topbar{gap:12px;padding:10px 14px}
  .side-nav{flex:1 1 auto;min-width:0;gap:2px}.side-nav a{font-size:15px;padding:9px 12px}
  .side-box{flex-direction:row;align-items:center;gap:8px;padding:5px 5px 5px 12px;white-space:nowrap}
  .side-box .side-k{display:none}.side-ev{font-size:14.5px}.side-btn{height:34px;padding:0 11px;font-size:13.5px}
  .side-box .side-a{padding:5px 8px;font-size:13.5px}
  .side-out{height:38px;padding:0 12px;font-size:14px}
  body.dash-d .pane>.barra{padding:10px 16px;gap:12px;border-radius:16px}
  body.dash-d .pane>.barra .evlogo,body.dash-d .pane>.barra img{width:40px;height:40px}
  body.dash-d .pane>.barra .bt{flex-direction:row;align-items:baseline;gap:10px;flex-wrap:wrap}
  body.dash-d .pane>.barra h1{font-size:19px}body.dash-d .pane>.barra .bs{font-size:14px}body.dash-d .pane>.barra .bver{margin:0 0 0 auto;align-self:center}
  body.gen .pane{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.gen .gen-e{display:grid;grid-template-columns:56px minmax(0,1fr) auto;column-gap:14px;row-gap:4px;align-items:center;padding:14px 16px}
  body.gen .gen-e .gen-logo{width:56px;height:56px}
  body.gen .gen-e .gen-i b{font-size:19px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}body.gen .gen-e .gen-i small{font-size:14px;display:inline}body.gen .gen-e .gen-i small+small::before{content:" · "}
  body.gen .gen-e .gen-r{flex-direction:column;align-items:stretch;gap:6px}body.gen .gen-e .gen-r .btn.sm{justify-content:center;height:38px}
  body.gen .gen-e.on{outline:0;border-left-width:5px}
  body.gen #staff .btnrow{flex-wrap:nowrap}body.gen #staff .btnrow .btn{flex:1;height:48px}
  body.gen .uso-k{grid-template-columns:repeat(4,minmax(0,1fr))}body.gen .uso-g{grid-template-columns:3fr 2fr;align-items:end}
  body.gen .gen-cfg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Uso de la app (General): dona chica, leyenda debajo, gráfica a la misma altura */
.uso-g{align-items:start}
.uso-g .g-dona{flex-direction:column;gap:8px}.uso-g .g-dona svg{width:150px;height:150px}
.uso-g .g-dona-l{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px 14px;min-width:0;width:100%}
.uso-g .g-dona-l li{font-size:13.5px;gap:6px}.uso-g .g-dona-l b{margin-left:4px;font-size:14px}
@media (min-width:1000px){ body.gen .uso-g{grid-template-columns:minmax(0,1fr) 220px;align-items:start} body.gen .uso-k b{font-size:28px} body.gen .uso-k span{font-size:13.5px} body.gen .uso-k small{font-size:12.5px} }

/* Ficha de evento (admin/eventos.php) rediseñada 10/10 */
.evf-form{display:flex;flex-direction:column;gap:14px}.evf-col{margin:0}.evf-col .ch{padding:0 0 10px}
.evf-estado{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.evf-estado .chip{flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;height:auto}.evf-estado .chip b{font-size:15px}.evf-estado .chip small{font-size:12px;color:var(--muted);font-weight:600}
.evf-colores{display:flex;flex-wrap:wrap;gap:8px}
.evf-color{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;border:2px solid var(--line);background:#fff;cursor:pointer;font-size:14px;font-weight:700;color:var(--ink)}
.evf-color input{position:absolute;opacity:0;width:0;height:0}.evf-color i{width:26px;height:26px;border-radius:50%;background:var(--c);box-shadow:0 2px 0 rgba(255,255,255,.4) inset,0 6px 10px -6px var(--c)}
.evf-color:has(input:checked){border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff)}
.evf-logo{display:flex;align-items:center;gap:10px}.evf-logo-p{width:56px;height:56px;flex:0 0 auto;border-radius:14px;background:#f5f8fb;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;color:var(--muted)}.evf-logo-p img{width:100%;height:100%;object-fit:contain}
.evf-logo input{flex:1;min-width:0}
.evf-prev{margin-top:14px;border-radius:16px;border:1px solid #d9e4ee;border-left:5px solid var(--ev);background:linear-gradient(180deg,#fff,#f6f9fc);padding:12px 14px}
.evf-prev-h{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.evf-prev-c{display:flex;align-items:center;gap:12px}.evf-prev-l{width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--ev) 12%,#fff);color:var(--ev);display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.evf-prev-l img{width:100%;height:100%;object-fit:cover}
.evf-prev-c b{display:block;font-size:17px}.evf-prev-c small{display:block;font-size:13px;color:var(--muted);font-weight:600}
.evf-acc{display:flex;flex-wrap:wrap;gap:8px}.evf-acc .btn{margin:0;flex:1 1 200px}
@media (min-width:1000px){ body.evf .pane>.evf-form{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start} body.evf .evf-acc{grid-column:1/-1} body.evf .evf-acc .btn{flex:0 0 auto;min-width:200px} }
.evf-up{cursor:pointer;margin:0}.evf-url{margin-top:8px}.evf-url>summary{cursor:pointer;list-style:none}.evf-url>summary::-webkit-details-marker{display:none}

/* 10/10 (Oscar): en escritorio UNA sola columna (no dos). Todo a lo ancho, con tope de 1100 px para que no se estire de más. */
@media (min-width:1000px){
  body.dash-d .wrap{max-width:1140px}
  body.dash-d .pane,body.gen .pane{grid-template-columns:minmax(0,1fr)}
  body.dash-d .pane>*,body.dash-d .pane>.hoy,body.dash-d .pane>.at-h,body.dash-d .pane>.at,body.dash-d .pane>.at-topp,body.dash-d .pane>.at-ahora,body.dash-d .pane>.at-occ,body.dash-d .pane>#encuestas,body.dash-d .pane>.col-l,body.dash-d .pane>.col-r,body.dash-d .pane>.gen-kpi,body.dash-d .pane>.gen-chart{grid-column:1;grid-row:auto}
  body.dash-d .pane>.at-h2,body.dash-d .pane>.acc4{display:none}
  body.evf .pane>.evf-form{grid-template-columns:minmax(0,1fr)}
  body.dash-d .pane>.col-r{order:0}
}

/* Equipo del evento (10/10): filas compactas navy en vez de tarjetas altas de colores */
.eq2-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 16px}
.eq2{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:linear-gradient(180deg,#fff,#f6f9fc);border:1px solid #d9e4ee;color:var(--ink);text-decoration:none;box-shadow:0 1px 0 #fff inset,0 10px 20px -16px rgba(15,31,46,.35);transition:transform .15s}
.eq2:hover{transform:translateY(-2px)}
.eq2-ico{width:40px;height:40px;border-radius:12px;background:#e6f0f8;color:var(--nv);display:grid;place-items:center;flex:0 0 auto;box-shadow:0 1px 0 #fff inset}
.eq2 b{font-size:26px;font-weight:800;color:var(--nv);min-width:56px;text-align:right;font-variant-numeric:tabular-nums;line-height:1}
.eq2>span:last-child{flex:1;min-width:0;font-size:15px;font-weight:800;line-height:1.15}.eq2 small{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-top:2px}
@media (min-width:700px){ .eq2-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1000px){ .eq2-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
.cev-carga{padding:12px 14px}.cev-carga>summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-weight:800;font-size:15.5px;list-style:none;flex-wrap:wrap}.cev-carga>summary::-webkit-details-marker{display:none}.cev-carga textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:15px;resize:vertical}

/* 10/10: ficha de staff (admin/usuarios.php) · letra grande */
body.ficha-staff .card{font-size:18px}
body.ficha-staff .field>span{font-size:17px;font-weight:700}
body.ficha-staff input,body.ficha-staff select{height:56px;font-size:19px}
body.ficha-staff .chip{font-size:17px;padding:12px 16px}
body.ficha-staff .nota{font-size:16px}
body.ficha-staff .btn{height:58px;font-size:19px}

/* 10/10: cabecera del panel «B · Dos pisos» (admin/index.php) */
.phb{display:flex;flex-direction:column;align-items:stretch;width:100%;box-sizing:border-box;margin:0 0 14px;border-radius:24px;background:#fff;border:1.5px solid #d9e4ee;box-shadow:0 1px 0 #fff inset,0 18px 30px -22px rgba(15,31,46,.4);overflow:hidden}
.phb-top{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px 16px 14px;width:100%;box-sizing:border-box}
.phb-logo{width:64px;height:64px;border-radius:50%;flex:none;box-shadow:0 8px 16px -8px rgba(2,63,97,.5)}
.phb-logo.ev{width:104px;height:104px;border-radius:0;object-fit:contain;background:transparent;padding:0;border:0;box-shadow:none;filter:drop-shadow(0 8px 12px rgba(15,31,46,.18))}
.phb-t{flex:0 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px}
.phb-t h1{margin:0;font-size:24px;font-weight:800;color:var(--nv,#023F61);letter-spacing:-.02em;line-height:1.05;white-space:normal}
.phb-s{display:flex;align-items:flex-start;flex-direction:column;gap:6px;font-size:14.5px;color:#6b7a8a;font-weight:600}
.phb-rol{font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#0b6a9c;background:#e6f0f8;border-radius:999px;padding:4px 9px}
.phb .avatar{position:static;width:44px;height:44px;flex:none}
.phb-ev{display:flex;align-items:center;gap:12px;padding:12px 16px;width:100%;box-sizing:border-box;align-self:stretch;margin:0;text-decoration:none;color:#1f2937;border-top:1.5px solid color-mix(in srgb,var(--ev) 30%,#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--ev) 6%,#fff),color-mix(in srgb,var(--ev) 14%,#fff))}
.phb-bar{width:10px;height:44px;border-radius:6px;background:var(--ev);flex:none;box-shadow:0 1px 0 rgba(255,255,255,.5) inset}
.phb-evt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.phb-evt b{font-size:18px;font-weight:800;color:color-mix(in srgb,var(--ev) 70%,#000);line-height:1.1}
.phb-evt small{font-size:14px;font-weight:600;color:color-mix(in srgb,var(--ev) 55%,#333)}
.phb-n{display:flex;flex-direction:column;align-items:center;line-height:1;flex:none}
.phb-n b{font-size:24px;font-weight:800;color:var(--ev)}.phb-n small{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--ev) 60%,#333)}
.phb-ev>svg{color:var(--ev);flex:none}
body.dash-d .pane>.phb{grid-column:1/-1}
/* 11/10: en escritorio el header va en fila: saludo a la izquierda (crece) y barra del evento fija a la derecha; antes .phb-ev con width:100% aplastaba el saludo */
@media (min-width:900px){ body.dash-d .pane>.phb{flex-direction:row;align-items:stretch} body.dash-d .pane>.phb .phb-top{flex:1 1 auto;justify-content:flex-start;padding:18px 22px} body.dash-d .pane>.phb .phb-t h1{font-size:28px} body.dash-d .pane>.phb .phb-ev{width:auto;flex:0 0 400px;border-top:0;border-left:1.5px solid color-mix(in srgb,var(--ev) 30%,#fff);padding:14px 20px} }

/* 10/10 (Oscar): /admin/ completo en los tonos navy del panel; sin ámbar ni naranja */
body.adm{--ground:#f5f8fb;--panel:#fff;--ink:#1f2937;--muted:#6b7a8a;--line:#d9e4ee;--hair:#eef3f8;--amber1:#0b6a9c;--amber2:#023F61;--amber-soft:#e6f0f8;--warn:#0b6a9c;--warn-bg:#e6f0f8;--nv:#023F61;--nv2:#0b6a9c;--nvs:#e6f0f8;--nvl:#c9dbe9;
  background:linear-gradient(180deg,#e9f1f8 0%,#f7f9fc 45%,#f7f9fc 100%);background-attachment:fixed}
body.adm .btn.amber{background:linear-gradient(180deg,#0b6a9c,#023F61);color:#fff;box-shadow:0 10px 24px -14px rgba(15,31,46,.35),0 1px 0 rgba(255,255,255,.4) inset,0 -3px 0 rgba(0,0,0,.18) inset}
body.adm .flash.info,body.adm .info{background:#fff;border:1.5px solid #d9e4ee;color:#1f3a4f;box-shadow:0 1px 0 #fff inset}
body.adm .info svg{color:#0b6a9c}
body.adm .tabs a.on{color:#023F61;background:#e6f0f8}
body.adm .card{border-color:#d9e4ee;box-shadow:0 1px 0 #fff inset,0 14px 28px -22px rgba(15,31,46,.35)}
body.adm .tag.warn{background:#e6f0f8;color:#023F61}
/* 10/10 (Oscar): el bloque «en revisión» sí va NARANJA (es la única excepción a la paleta navy del panel) */
body.adm .at-item.revision{--c:#C2410C;--cb:linear-gradient(180deg,#ffe9d6,#fdd3b0);background:linear-gradient(180deg,#fff7ef,#ffe9d6);border-color:#f4bd8a}
body.adm .at-item.revision .at-t small{color:#7c3a0b}
body.adm .pend-fila button.pend-ok{background:linear-gradient(180deg,#22a35a,#15803D)}
@keyframes at-nuevo{0%,100%{box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -18px rgba(30,45,60,.35),0 0 0 0 rgba(194,65,12,.5)}50%{box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -18px rgba(30,45,60,.35),0 0 0 10px rgba(194,65,12,0);background:linear-gradient(180deg,#ffefdf,#ffdcbd)}}

/* 10/10: Config del evento en navy, letra grande */
body.cfg .cfg-h{font-size:14px!important;color:#4a6378;letter-spacing:.12em}
body.cfg .cfg-b{border-color:#d9e4ee;border-radius:22px;box-shadow:0 1px 0 #fff inset,0 -1px 0 #e3ecf3 inset,0 14px 28px -20px rgba(15,31,46,.35)}
body.cfg .cfg-ico{border-radius:18px;box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 -3px 0 rgba(0,0,0,.15) inset,0 10px 18px -10px var(--c)}
body.cfg .cfg-t b{font-size:20px;color:#1f2937}body.cfg .cfg-t small{font-size:15.5px;color:#4a6378}
body.cfg .cfg-fl{background:#e6f0f8}

/* 10/10: cabecera General (Root) · cifras del sistema en vez de la barra del evento */
.phb-gen-n{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1.5px solid #d9e4ee;background:linear-gradient(180deg,#f3f8fc,#e6f0f8)}
.phb-gen-n a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;text-decoration:none;color:#023F61;border-right:1px solid #d9e4ee}.phb-gen-n a:last-child{border-right:0}
.phb-gen-n b{font-size:24px;font-weight:800;line-height:1;letter-spacing:-.02em}.phb-gen-n small{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#4a6378;text-align:center}
.phb-gen-n a.bad b{color:#b42318}
body.gen .gen-h h2{font-size:20px}body.gen .gen-e b{font-size:18px}body.gen .gen-e small{font-size:14.5px}
@media (min-width:900px){ body.dash-d .pane>.phb-gen{flex-direction:column} body.dash-d .pane>.phb-gen .phb-gen-n{border-top:1.5px solid #d9e4ee} }

/* 10/10: clima de hoy y mañana en el panel del evento */
.cl-adm{padding:0}
.cl-adm-s{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer}.cl-adm-s::-webkit-details-marker{display:none}
.cl-adm-st{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cl-adm-st b{font-size:17px;color:#023F61}.cl-adm-st small{font-size:14px;color:#4a6378;font-weight:600}.cl-adm-st i{font-style:normal;font-weight:800}
.cl-adm-chev{width:34px;height:34px;border-radius:50%;background:#e6f0f8;color:#023F61;display:grid;place-items:center;flex:none;transition:transform .2s}.cl-adm-chev svg{transform:rotate(90deg)}.cl-adm[open] .cl-adm-chev{transform:rotate(180deg)}
.cl-adm[open] .cl-adm-s{border-bottom:1px solid #e3ecf3}
.cl-adm-g{padding:0 16px}.cl-adm>small{padding:0 16px 14px}
.cl-adm-g{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
@media (min-width:700px){ .cl-adm-g{grid-template-columns:1fr 1fr} }
.cl-adm-d{border:1.5px solid #d9e4ee;border-radius:18px;background:#f8fbfd;overflow:hidden}
.cl-adm-h{display:flex;align-items:baseline;gap:8px;padding:10px 14px;background:#e6f0f8;border-bottom:1.5px solid #d9e4ee}
.cl-adm-h b{font-size:17px;color:#023F61}.cl-adm-h span{font-size:14px;color:#4a6378;font-weight:600;flex:1}.cl-adm-h small{font-size:15px;font-weight:800}
.cl-adm-f{display:grid;grid-template-columns:30px 62px 86px 1fr auto;align-items:center;gap:8px;padding:8px 14px;border-top:1px solid #e3ecf3;font-size:15px}
.cl-adm-f:first-of-type{border-top:0}.cl-adm-f.off{opacity:.45}
.cl-adm-f b{font-weight:800;color:#023F61;font-size:14.5px}
.cl-adm-t i{font-style:normal;font-weight:800}.cl-adm-t i+i::before{content:"→";margin:0 4px;color:#9fb3c3;font-weight:400}
.cl-adm i.cal{color:#c2410c}.cl-adm i.cal2{color:#b42318}.cl-adm i.fr{color:#0b6a9c}
.cl-adm-c{font-size:13.5px;color:#4a6378;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-adm-f em{font-style:normal;font-weight:800;font-size:12.5px;padding:3px 8px;border-radius:999px;background:#e6f0f8;color:#5b94c6;white-space:nowrap}.cl-adm-f em.z{visibility:hidden}
.cl-adm-f.po em::after{content:" posible";font-weight:600}
.cl-adm-f.ll{background:#eaf3fa}.cl-adm-f.ll em{background:#2563a8;color:#fff}
.cl-adm-av{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:700;color:#1e4e8c;background:#dbeafe;border-top:1px solid #bfd6f3}
.cl-adm>small{display:block;margin-top:10px;font-size:12.5px}

/* 10/10: Cancelar o mover · celular primero, pasos claros, botones grandes */
body.mover main.wrap{font-size:17px}
.mv-paso{display:flex;align-items:center;gap:10px;margin:14px 0 8px;flex-wrap:wrap}
.mv-paso span{width:30px;height:30px;border-radius:50%;background:#023F61;color:#fff;font-weight:800;font-size:15px;display:grid;place-items:center;flex:none;box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 6px 12px -8px rgba(2,63,97,.7)}
.mv-paso b{font-size:17px;color:#023F61}.mv-paso small{flex-basis:100%;margin-left:40px;font-size:14px;color:#4a6378;font-weight:600}
.mv-buscar input{height:56px;font-size:17px;border-radius:14px}
body.mover .mv-row-big{padding:12px 4px;font-size:16px;min-height:60px}body.mover .mv-row-big small{font-size:14px}
body.mover .mv-grid{grid-template-columns:1fr}
body.mover .mv-t{padding:9px 0}body.mover .mv-h{font-size:15px;min-width:52px;padding-top:7px}
body.mover .sem-gente{gap:6px}body.mover .sem-gente .chip{font-size:14.5px;padding:8px 12px;border-radius:12px;min-height:38px;display:inline-flex;align-items:center}
body.mover .sem-gente .chip.libre{min-height:38px}body.mover .sem-gente .chip.mas{min-width:38px;justify-content:center;padding:8px 12px}
body.mover .sem-gente .chip.cap{background:#C2410C}
body.mover .mv-acc{flex-direction:column;gap:8px;margin-top:12px}body.mover .mv-acc .btn{width:100%;height:54px;font-size:17px}
body.mover .mv-h3{display:flex;align-items:center;gap:8px;margin:18px 0 6px;font-size:18px;color:#023F61}
body.mover .mv-dest{padding:12px 0}body.mover .mv-dest b{font-size:16px}
body.mover .mv-slots .btn.sm{height:46px;font-size:15px;padding:0 14px;border-radius:12px}
body.mover .mv-reg summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}body.mover .mv-reg summary::-webkit-details-marker{display:none}
body.mover .mv-reg-ch{margin-left:auto;width:30px;height:30px;border-radius:50%;background:#e6f0f8;color:#023F61;display:grid;place-items:center;transition:transform .2s}body.mover .mv-reg-ch svg{transform:rotate(90deg)}body.mover .mv-reg[open] .mv-reg-ch{transform:rotate(180deg)}
body.mover .days .day{min-width:54px;min-height:60px}
@media (min-width:700px){ body.mover .mv-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))} body.mover .mv-acc{flex-direction:row} body.mover .mv-acc .btn{width:auto;flex:1} }

/* 10/10: Usuarios · chips de evento (default = evento de trabajo; Root puede ver todos) */
.uev{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.uev-k{font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#4a6378}
.uev-c{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;background:#fff;border:1.5px solid #d9e4ee;color:#1f2937;font-weight:700;font-size:15px;text-decoration:none}
.uev-c i{width:10px;height:10px;border-radius:50%;background:var(--ev,#023F61)}
.uev-c.on{background:#023F61;color:#fff;border-color:#023F61}.uev-c.on i{box-shadow:0 0 0 2px rgba(255,255,255,.6)}
body.usuarios .uq span{font-size:13px}

/* 10/10: ficha de usuario · acciones que caben en celular y «Eliminar» al final */
.uficha-acc{flex-wrap:wrap}.uficha-acc form{flex:1 1 auto}.uficha-acc .btn{width:100%;height:46px;font-size:15px}
.uborrar{border-color:#f0c2bd;background:linear-gradient(180deg,#fff,#fff5f4);margin-top:16px}.uborrar .ch{color:#b42318}

/* 10/10: personas interesadas */
.inter-cta{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:14px;text-decoration:none;color:var(--ink);border-left:5px solid var(--ev)}
.inter-img{flex:none;width:64px;height:64px;border-radius:50%;object-fit:cover}
.inter-ico{flex:none;width:52px;height:52px;border-radius:16px;background:color-mix(in srgb,var(--ev) 14%,#fff);color:var(--ev);display:grid;place-items:center}
.inter-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.inter-t b{font-size:18px}.inter-t small{font-size:14px;color:var(--muted)}
.inter-cta>svg:last-child{color:var(--ev)}
body.inter main.wrap{font-size:17px}body.inter .field>span{font-size:16px;font-weight:700}body.inter input,body.inter select,body.inter textarea{font-size:17px}body.inter textarea{width:100%;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;resize:vertical}
body.inter .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.if-campo{border:1.5px solid #d9e4ee;border-radius:18px;padding:12px 14px 6px;margin:0 0 12px;background:#f8fbfd}.if-campo.off{opacity:.6}
.if-campo legend{font-weight:800;color:#023F61;padding:0 6px;display:flex;align-items:center;gap:6px}
.if-opc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 10px}.if-orden{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:14px;color:#4a6378;font-weight:700}.if-orden input{width:70px;height:40px}
.if-prev{border:1.5px dashed #c9dbe9;border-radius:18px;padding:14px;background:#fff}.if-prev textarea{width:100%;border:1.5px solid var(--line);border-radius:14px;padding:12px;font:inherit}.if-prev .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ia-estado{border-left:5px solid #475569}.ia-estado.on{border-left-color:#15803D}
.ia-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ia-ico{width:46px;height:46px;border-radius:14px;background:#e6f0f8;color:#023F61;display:grid;place-items:center;flex:none}.ia-estado.on .ia-ico{background:#e2f3ea;color:#15803D}
.ia-t{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}.ia-t b{font-size:17px}.ia-t small{font-size:14px;color:var(--muted)}
.ia-item summary{list-style:none;cursor:pointer}.ia-item summary::-webkit-details-marker{display:none}
.ia-det{padding:4px 0 12px 54px;display:flex;flex-direction:column;gap:6px;font-size:15px}.ia-det>div{display:flex;gap:10px}.ia-det b{min-width:84px;color:#4a6378;font-size:13px;text-transform:uppercase;letter-spacing:.04em;padding-top:2px}.ia-det a{color:#0b6a9c;font-weight:700}
@media (max-width:480px){ .ia-det{padding-left:0} }

/* 10/10: tarjeta Personas interesadas en el panel del evento */
.in-h{flex-wrap:wrap;gap:8px}.in-acc{margin-left:auto;display:flex;gap:6px;align-items:center}.in-acc form{margin:0}.in-acc .btn.sm{height:38px;font-size:14px}.in-btn{background:linear-gradient(180deg,#0b6a9c,#023F61);color:#fff;border:0}
@media (max-width:480px){ .in-acc{margin-left:0;width:100%} .in-acc form,.in-acc .in-btn{flex:1} .in-acc .btn{width:100%} }
.in-k{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 12px}
.in-k a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:14px;background:#f5f8fb;border:1px solid #d9e4ee;text-decoration:none;color:#1f2937}
.in-k b{font-size:26px;font-weight:800;line-height:1;color:#023F61}.in-k span{font-size:13px;color:#4a6378;font-weight:600}
.in-g{display:grid;grid-template-columns:1fr;gap:14px}
.in-pt{display:grid;grid-template-columns:minmax(0,1fr) 110px 28px;align-items:center;gap:8px;font-size:14px;padding:3px 0}.in-pt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.in-pt i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,#0b6a9c,#023F61);justify-self:start}.in-pt b{text-align:right}
.in-ult{margin-top:10px;border-top:1px solid #e3ecf3}.in-ult .row{text-decoration:none;color:inherit}
@media (min-width:700px){ .in-k{grid-template-columns:repeat(4,minmax(0,1fr))} .in-g{grid-template-columns:3fr 2fr} }

.ia-mail summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}.ia-mail summary::-webkit-details-marker{display:none}.ia-mail .mv-reg-ch svg{transform:rotate(90deg)}.ia-mail[open] .mv-reg-ch{transform:rotate(180deg)}
.ia-mail .acti-dest{display:flex;flex-direction:column;gap:8px}.ia-mail .acti-dest label{display:flex;align-items:center;gap:8px;font-size:15px}
.ia-mail .mv-reg-ch{width:30px;height:30px;border-radius:50%;background:#e6f0f8;color:#023F61;display:grid;place-items:center;transition:transform .2s}

/* 10/10: inicio del publicador · «I · Menú práctico» (multievento, sin foto) */
/* 10/10: saludo grande en Roboto (la letra de Android; en iPhone se baja de Google Fonts), sin logo ni avatar */
.pm-top{padding:6px 4px 10px}
.pm-sal{margin:0;font-family:Roboto,"Google Sans",-apple-system,"Inter",system-ui,sans-serif;line-height:1.08;letter-spacing:-.01em}
.pm-sal small{display:block;font-size:17px;font-weight:500;color:var(--muted);margin-bottom:2px}
.pm-sal b{display:block;font-size:30px;font-weight:900;color:var(--ink);overflow-wrap:anywhere}
.pm-ev{margin:0 0 12px;border-radius:16px;background:#fff;border:1.5px solid var(--line);box-shadow:0 1px 0 #fff inset,0 10px 22px -18px rgba(36,29,22,.4)}
.pm-ev summary{list-style:none;display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;cursor:pointer}.pm-ev summary::-webkit-details-marker{display:none}.pm-ev[data-solo] summary{cursor:default}
.pm-evlogo{width:56px;height:56px;border-radius:50%;flex:none;object-fit:cover;box-shadow:0 4px 10px -4px rgba(0,0,0,.35)}
.pm-dot{width:10px;height:10px;border-radius:50%;background:var(--ev);box-shadow:0 0 0 3px color-mix(in srgb,var(--ev) 22%,#fff);flex:none}
.pm-evt{flex:1;min-width:0;font-size:14.5px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-evt b{color:var(--ink);font-weight:800}
.pm-cambiar{flex:none;font-size:13px;font-weight:800;color:var(--nv,#023F61);border:1.5px solid var(--nvl,#c9dbe9);border-radius:999px;padding:5px 11px;background:#fff}
.pm-evl{display:flex;flex-direction:column;gap:6px;padding:0 12px 12px}.pm-evl a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:12px;text-decoration:none;color:var(--ink);font-weight:700;background:#f7f9fc;border:1.5px solid transparent}.pm-evl a i{width:10px;height:10px;border-radius:50%;background:var(--ev)}.pm-evl a.on{border-color:var(--ev);background:#fff}
.pm-frase{margin:0 4px 12px;font-size:14.5px;line-height:1.4;color:var(--muted);font-style:italic}.pm-frase em{color:#B45309;font-style:normal;font-weight:800}

/* 10/10: Activar avisos + Instalar app lado a lado (50/50); si uno está oculto el otro ocupa todo */
.cta-par{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.cta-par .cta{margin:0;flex-direction:column;justify-content:center;text-align:center;gap:6px;min-height:0;padding:12px 10px;border-radius:16px;box-shadow:0 0 0 3px var(--ring)}
.cta-par .cta[hidden]{display:none}.cta-par .cta .ci{width:36px;height:36px;border-radius:11px}.cta-par .cta .ci svg{width:20px;height:20px}
.cta-par .cta b{font-size:15px}.cta-par .cta small{display:none}.cta-par .cta>svg:last-child{display:none}
/* 10/10: Mapa del día en celular = tarjetas por punto (la vista Semana sigue como tabla con scroll) */
@media screen and (max-width:640px){
  .sem-ctl .sem-seg a,.sem-ctl .sem-seg button{font-size:14.5px;padding:9px 12px}.sem-pdf{font-size:14.5px;padding:9px 14px}
  .modo-nombres .sem-scroll,.modo-ocup .sem-scroll{overflow:visible;max-height:none}
  .sem-card.modo-nombres,.sem-card.modo-ocup{background:transparent;border:0;box-shadow:none;overflow:visible}
  .sem-tab:not(.sem-sem){display:block;min-width:0}.sem-tab:not(.sem-sem) thead{display:none}.sem-tab:not(.sem-sem) tbody{display:block}
  .sem-tab:not(.sem-sem) tr{display:block;margin:0 0 12px;background:#fff;border:1.5px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 1px 0 #fff inset,0 10px 22px -18px rgba(36,29,22,.35)}
  .sem-tab:not(.sem-sem) .sem-p{display:block;position:static;min-width:0;max-width:none;padding:12px 14px 10px;border-right:0}
  .sem-tab:not(.sem-sem) td.sem-c{display:grid;grid-template-columns:62px 1fr;column-gap:10px;min-width:0;padding:10px 12px;border-right:0}
  .sem-tab:not(.sem-sem) td.sem-c::before{content:attr(data-h);grid-row:1/4;font-size:13.5px;font-weight:800;color:var(--ink);padding-top:1px;font-variant-numeric:tabular-nums}
  .sem-tab:not(.sem-sem) td.sem-c.na{display:none}.sem-tab:not(.sem-sem) tr>*:last-child{border-bottom:0}
  .sem-tab:not(.sem-sem) .sem-gente .chip{font-size:13px;padding:5px 9px}.sem-tab:not(.sem-sem) .sem-n{margin-bottom:4px}
  .modo-ocup .sem-tab:not(.sem-sem) td.sem-c{min-width:0}
}
.mday.oc-none .mday-lib{color:var(--muted)}
