.rad{font-variant-numeric:tabular-nums}
svg.ic{width:13px;height:13px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-2px}
.hero-f{position:relative;padding:var(--space-hero-top) 0 var(--space-hero-bot);text-align:center;overflow:hidden}
.hero-f .bg-blueprint{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(79,70,229,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(79,70,229,.06) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(75% 85% at 50% 0%,#000 20%,transparent 72%);mask-image:radial-gradient(75% 85% at 50% 0%,#000 20%,transparent 72%)}
.hero-f .eyebrow,.hero-f h1,.hero-f p{position:relative;z-index:2}
.hero-f h1{font-size:42px;font-weight:600;letter-spacing:-.03em;line-height:1.12;max-width:none}
.hero-f h1 em{font-style:normal;color:var(--indigo-bright)}
.hero-f p{font-size:15.5px;color:var(--muted);margin-top:14px;max-width:520px;margin-left:auto;margin-right:auto}
.g-head h2 em{font-style:normal;color:var(--indigo-bright)}
.grupo{padding:72px 0}
.g-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-bottom:24px}
.g-head h2{font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.22}
.g-head p{font-size:14.5px;color:var(--muted);line-height:1.7;max-width:400px;justify-self:end;padding-top:6px}
.g-cap{max-width:460px;margin:16px 2px 36px}
.g-cap b{display:block;font-size:13.5px;font-weight:600;margin-bottom:2px}
.g-cap p{font-size:12.5px;color:var(--muted);line-height:1.6}
.g-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.g-cell .g-cap{margin:14px 2px 0}
.escena{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:radial-gradient(120% 90% at 20% 0%,#ffffff 0%,var(--charcoal-2) 55%,var(--canvas) 100%);max-width:100%}
.escena *{max-width:100%}
.escena::before{content:"";position:absolute;top:-1px;left:18px;right:18px;height:1px;background:linear-gradient(90deg,transparent,rgba(22,24,29,.12),transparent);z-index:3}
.escena::after{content:"";position:absolute;inset:auto 0 0 0;height:80px;background:linear-gradient(180deg,transparent,rgba(251,251,252,.9));pointer-events:none;z-index:2}
.escena.alta{height:440px}
.escena.media{height:310px}
.frag{position:absolute;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,var(--charcoal),var(--charcoal-2));overflow:hidden}
.frag.fondo{opacity:.45;filter:saturate(.7)}
.frag.frente{z-index:1}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--ink-2);white-space:nowrap}
.chip .dot{width:6px;height:6px;border-radius:50%}
/* expediente */
.exp-tools{display:flex;gap:8px;padding:13px 18px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.exp-head{padding:14px 18px 12px}
.exp-head .radline{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;letter-spacing:-.01em}
.exp-head .radline .st{width:9px;height:9px;border-radius:50%;border:2px solid var(--ok);flex:none}
.exp-head .partes{font-size:12px;color:var(--ink-2);margin-top:5px}
.exp-head .partes b{font-weight:600;color:var(--ink)}
.exp-tabs{display:flex;gap:4px;align-items:center;padding:9px 18px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);font-size:12px;color:var(--muted)}
.exp-tabs .tb{padding:4px 10px;border-radius:8px}
.exp-tabs .tb.on{background:rgba(22,24,29,.06);color:var(--ink);font-weight:600}
.exp-tabs .tb i{font-style:normal;color:var(--faint);margin-left:5px;font-size:11px}
.exp-tabs .busca{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--faint);border:1px solid var(--line);border-radius:8px;padding:4px 10px}
.exp-row{display:flex;align-items:flex-start;gap:11px;padding:11px 18px;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.exp-row .n{color:var(--faint);font-size:11.5px;margin-top:2px}
.exp-row .tx b{display:block;font-weight:600;color:var(--ink);font-size:12.5px}
.exp-row .tx span{font-size:11px;color:var(--faint)}
.exp-row .fbadge{font-size:10px;color:var(--indigo-bright);background:rgba(79,70,229,.12);border-radius:5px;padding:2px 7px;font-weight:500;white-space:nowrap;margin-top:2px}
.exp-row .ver{margin-left:auto;color:var(--indigo);font-size:11.5px;font-weight:500;white-space:nowrap;margin-top:2px;display:inline-flex;align-items:center;gap:4px}
.exp-row .fecha{color:var(--faint);font-size:11px;white-space:nowrap;margin-top:2px}
.exp-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--faint)}
.exp-foot .pg{display:flex;gap:8px;align-items:center}
.exp-foot .pg span{border:1px solid var(--line);border-radius:6px;padding:2px 8px;display:inline-flex;align-items:center;gap:4px}
.exp-side{padding:13px 16px;font-size:12px}
.exp-side .sh{font-size:12.5px;font-weight:600;margin-bottom:8px}
.exp-side .kv{display:flex;justify-content:space-between;padding:4.5px 0;color:var(--muted)}
.exp-side .kv b{color:var(--ink);font-weight:500;font-size:11.5px}
.exp-side .kv .verde{color:var(--ok);display:inline-flex;align-items:center;gap:5px}
.exp-side .div{border-top:1px solid var(--line-soft);margin:9px 0}
/* lista */
.ls-filters{display:flex;align-items:center;gap:14px;padding:10px 18px;border-bottom:1px solid var(--line-soft);font-size:11.5px;color:var(--muted);flex-wrap:wrap}
.ls-filters .nv{display:inline-flex;align-items:center;gap:6px}
.ls-filters .nv .dot{width:6px;height:6px;border-radius:50%;background:var(--faint)}
.ls-filters .nv.onv .dot{background:var(--warn)}
.ls-filters .man{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.ls-filters .man .dot{width:6px;height:6px;border-radius:50%;background:var(--warn)}
.ls-btns{position:absolute;top:10px;right:14px;display:flex;gap:6px;z-index:1}
.ls-btn{width:26px;height:26px;border:1px solid var(--line);border-radius:7px;display:grid;place-items:center;color:var(--muted);background:var(--charcoal-2)}
.thead,.trow{display:grid;grid-template-columns:24px 1.2fr 1.3fr 1.5fr 84px 88px;gap:10px;align-items:center;padding:9px 18px;font-size:12px}
.thead{color:var(--muted);font-size:11px;border-bottom:1px solid var(--line);font-weight:500}
.trow{border-bottom:1px solid var(--line-soft)}
.trow .num{color:var(--faint)}
.trow .radc{color:var(--ink-2);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .juz,.trow .par{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .juz{color:var(--ink-2)}
.trow .par{color:var(--ink)}
.trow .seg{justify-self:start;display:inline-flex;align-items:center;gap:6px;font-size:11px;border:1px solid var(--line);border-radius:999px;padding:3px 9px;color:var(--ink-2);white-space:nowrap}
.trow .seg .dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}
.trow .upd{color:var(--faint);font-size:11px;text-align:right}
.trow.nueva .radc,.trow.nueva .par{font-weight:600;color:var(--ink)}
.trow.nueva .num{color:var(--indigo-bright)}
.trow.marcada{background:rgba(79,70,229,.06)}
/* popovers */
.pop{padding:6px 0;font-size:12.5px}
.pop .ph{padding:9px 16px 6px;font-size:11px;color:var(--faint)}
.pop .pi{display:flex;align-items:center;gap:10px;padding:8px 16px;color:var(--ink-2)}
.pop .pi .arr{margin-left:auto;color:var(--faint)}
.pop .pi.rojo{color:var(--bad);border-top:1px solid var(--line-soft);margin-top:4px;padding-top:10px}
.eic{width:15px;height:15px;flex:none}
.sel{display:flex;align-items:center;justify-content:space-between;padding:7px 16px}
.sel span{color:var(--muted);font-size:12px}
.sel .val{border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:11.5px;color:var(--ink-2);display:inline-flex;align-items:center;gap:5px}
.subt{padding:10px 16px 4px;font-size:11px;color:var(--faint);border-top:1px solid var(--line-soft);margin-top:6px}
.dens{display:flex;gap:6px;padding:6px 16px}
.dens span{flex:1;text-align:center;border:1px solid var(--line);border-radius:8px;padding:5px 0;font-size:11.5px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:6px}
.dens .on{border-color:rgba(22,24,29,.3);color:var(--ink);font-weight:600}
.props{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px 12px}
.props span{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:11px;color:var(--ink-2)}
.props .off{color:var(--faint);border-color:var(--line-soft)}
/* sincronización */
.sy-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid var(--line-soft)}
.sy-head b{font-size:13px;font-weight:600}
.sy-head span{font-size:11.5px;color:var(--faint)}
.sy-head span i{font-style:normal;color:var(--ink);font-weight:600}
.sy-src{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.sy-src:last-of-type{border-bottom:0}
.sy-src .dot{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:none}
.sy-src.on .dot{background:var(--indigo-bright);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.sy-src .nom{color:var(--ink-2)}
.sy-src.on .nom{color:var(--ink);font-weight:500}
.sy-src .est{margin-left:auto;font-size:11px;color:var(--faint)}
.sy-src.on .est{color:var(--indigo-bright);font-weight:500}
.sy-manual{display:flex;align-items:center;gap:8px;margin:10px 14px 12px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font-size:12px;color:var(--ink-2)}
.sy-manual .n{margin-left:auto;font-size:12px;font-weight:700;color:var(--warn)}
.sy-manual .pin{width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none}
/* notas / recordatorios */
.nt-tabs{display:flex;gap:4px;padding:11px 14px;border-bottom:1px solid var(--line-soft);font-size:12px;color:var(--muted)}
.nt-tabs .tb{padding:4px 10px;border-radius:8px}
.nt-tabs .tb.on{background:rgba(22,24,29,.06);color:var(--ink);font-weight:600}
.nt-area{margin:12px 14px 0;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:12px;color:var(--faint);min-height:64px;background:rgba(22,24,29,.015)}
.nt-foot{display:flex;align-items:center;padding:11px 14px 14px}
.nt-rec{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:9px;padding:6px 11px;font-size:11.5px;color:var(--ink-2)}
.nt-save{margin-left:auto;border-radius:9px;padding:6px 15px;font-size:11.5px;font-weight:600;color:var(--canvas);background:linear-gradient(180deg,var(--indigo-bright),var(--indigo-solid))}
.rc-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.rc-head b{font-weight:600}
.rc-head b span{color:var(--muted);font-weight:400;margin-left:6px;font-size:11.5px}
.rc-head .mk{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.rc-g{padding:9px 14px 2px;font-size:10.5px;color:var(--muted)}
.rc-item{display:flex;gap:10px;padding:8px 14px;align-items:flex-start}
.rc-ic{width:26px;height:26px;border-radius:7px;background:rgba(217,138,138,.1);border:1px solid rgba(217,138,138,.25);display:grid;place-items:center;flex:none;color:var(--bad)}
.rc-ic.done{background:rgba(103,199,154,.08);border-color:rgba(103,199,154,.25);color:var(--ok)}
.rc-tx b{display:block;font-size:11.5px;font-weight:600;line-height:1.3}
.rc-tx b .venc{color:var(--bad);font-weight:600;font-size:10.5px;margin-left:8px}
.rc-tx span{font-size:10.5px;color:var(--faint);display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
.rc-tx.done b{color:var(--faint);text-decoration:line-through;font-weight:500}
.rc-foot{text-align:center;padding:11px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-2);font-weight:500}
/* bandeja fondo */
.bj-h{padding:11px 14px;border-bottom:1px solid var(--line-soft);font-size:12.5px;font-weight:600}
.bj-h span{color:var(--muted);font-weight:400;margin-left:6px;font-size:11.5px}
@media (max-width:860px){.g-head{grid-template-columns:1fr;gap:10px}.g-head p{justify-self:start;padding-top:0}.g-grid{grid-template-columns:1fr}.hero-f h1{font-size:32px}}

/* ===== atmósfera: radar + luz ambiental ===== */
body{overflow-x:hidden}
.grupo{position:relative}
.grupo-sec{overflow:hidden}
.glow{position:absolute;width:640px;height:420px;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(79,70,229,.06),transparent);top:-40px}
.grupo-sec:nth-of-type(even) .glow{left:-260px}
.grupo-sec:nth-of-type(odd) .glow{right:-260px}

/* ondas de radar emanando de la primera escena (solo mitad superior, recorte real) — versión sutil */
.escena-wrap{position:relative}
.escena-wrap .escena{position:relative;z-index:1}
.ondas{position:absolute;left:50%;transform:translateX(-50%);bottom:100%;width:1000px;max-width:92vw;height:280px;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.3) 34%,#000 66%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.3) 34%,#000 66%)}
.onda{position:absolute;left:50%;top:100%;transform:translate(-50%,-50%);border:1px solid rgba(79,70,229,.28);border-radius:50%}
.onda.o1{width:380px;height:380px}
.onda.o2{width:600px;height:600px;border-color:rgba(79,70,229,.16)}
.onda.o3{display:none}
.onda.pulso{width:380px;height:380px;border:1.5px solid transparent;background:radial-gradient(closest-side,transparent 90%,rgba(79,70,229,.55) 96%,transparent 100%);opacity:0;animation:ondear 7s ease-out infinite}
.onda.pulso.p2{animation-delay:3.5s}
@keyframes ondear{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}12%{opacity:.9}100%{transform:translate(-50%,-50%) scale(2);opacity:0}}
.onda-glow{position:absolute;left:50%;top:100%;transform:translate(-50%,-50%);width:520px;height:250px;border-radius:50%;background:radial-gradient(closest-side,rgba(79,70,229,.10),transparent)}
.rad-blip{position:absolute;left:50%;top:100%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:#4f46e5;box-shadow:0 0 10px 2px rgba(79,70,229,.5)}
@media (prefers-reduced-motion:reduce){.onda.pulso{animation:none;opacity:0}}
@media (max-width:860px){.ondas{height:200px;width:760px}.onda.o2{display:none}.onda.o1,.onda.pulso{width:300px;height:300px}}

/* funciones: estado activo en nav */
.navlinks a[aria-current="page"]{color:var(--ink)}
#func-hero,#planes-hero,#faq-hero,#cont-hero{padding-top:0;padding-bottom:0}
/* funciones: escenas en móvil — reflow a columna ordenada */
@media (max-width:860px){
  /* evitar que el grid de dos columnas fuerce el track a ensancharse por el contenido */
  .g-grid>*{min-width:0}
  /* la escena se vuelve una columna ordenada */
  .escena,.escena.alta,.escena.media{height:auto;padding:14px;display:flex;flex-direction:column;gap:14px;overflow:hidden;min-width:0;max-width:100%}
  /* fragmentos apilados, cada uno como bloque completo */
  .frag,.frag.frente{position:static!important;transform:none!important;width:100%!important;min-width:0!important;max-width:100%!important;inset:auto!important;right:auto!important;left:auto!important;top:auto!important;bottom:auto!important;margin:0!important}
  .frag.fondo{display:none!important}
  /* el fragmento flotante (frente) se separa como tarjeta propia debajo del principal */
  .frag.frente{background:var(--charcoal-2);border:1px solid var(--line);border-radius:12px;padding:12px}
  .ls-btns{display:none}
  .escena::after{display:none}
  .glow{display:none}
  /* tablas: cada fila se vuelve tarjeta apilada, sin columnas de grid */
  .escena .thead{display:none!important}
  .escena .trow{
    display:block!important;
    grid-template-columns:none!important;
    padding:12px 14px!important;
    border:1px solid var(--line);
    border-radius:10px;
    margin-bottom:8px;
    background:var(--charcoal-2);
    font-size:13px;
  }
  .escena .trow>span{
    display:block!important;
    width:auto!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere;
    text-align:left!important;
    margin:0 0 3px 0!important;
  }
  .escena .trow .num{color:var(--faint);font-size:11px;margin-bottom:2px!important}
  .escena .trow .radc{font-size:13px;font-weight:600;color:var(--ink);word-break:break-all;margin-bottom:4px!important}
  .escena .trow .juz,.escena .trow .par{color:var(--muted);font-size:12px;line-height:1.4}
  .escena .trow .seg{display:inline-flex!important;align-items:center;gap:6px;margin-top:4px!important;color:var(--ink-2);font-size:12px}
  .escena .trow .upd{color:var(--faint);font-size:11px;white-space:nowrap!important;margin-top:2px!important}
  /* pestañas y buscador: permitir bajar de línea */
  .escena .exp-tabs{flex-wrap:wrap}
  .escena .exp-tabs .busca{margin-left:0}
  /* textos largos: que no se salgan */
  .escena *{max-width:100%;overflow-wrap:anywhere}
  .escena .rad,.escena .radc{font-size:11px;white-space:normal;word-break:break-all}
  /* paneles internos de detalle: ancho completo */
  .exp-side{width:100%!important}
  /* filas que se salían: permitir que bajen de línea */
  .exp-row{flex-wrap:wrap;gap:6px}
  /* "Sincronización manual": integrada como fila, separada del bloque anterior */
  .sy-manual{
    display:flex!important;
    align-items:center;
    gap:8px;
    width:100%;
    margin-top:10px;
    padding:10px 12px;
    border-top:1px solid var(--line-soft);
    font-size:12.5px;
    flex-wrap:wrap;
  }
  .sy-manual .n{margin-left:auto;font-weight:600}
  /* pie de paginación: apilar en dos líneas legibles, sin encimarse */
  .exp-foot{
    display:flex!important;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    font-size:11.5px;
    padding:10px 4px 0;
  }
  .exp-foot .pg{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    width:100%;
  }
}

/* ===== EXPERIMENTO modo claro — brillos ambientales apagados =====
   Reversible: borrar este bloque para volver al estado anterior. */
.grupo .glow{display:none}
.bg-blueprint{display:none}
