/* ============================================================
   Capa Atlas de la página principal (hub) — rediseño 21-10-2026, etapa 2
   Portada Bento por rol + módulos agrupados por decisión, con la paleta de AY Norte.
   Se activa solo cuando atlas-hub.js arranca bien (body.ag-on). Si la capa falla, el hub
   queda como antes. Todo va con prefijo ag- / --a- para no pisar los estilos de la página
   (que tiene clases globales como .sb, .card o .pill).
   Demo aprobada: ~/.claude/skills/atlas-tableros/demos/aynorte/hub/
   ============================================================ */
.ag-hub{
  --a-bg:#F4EEE6;--a-surface:#FFFFFF;--a-ink:#2A1E1B;--a-ink2:#6B5C55;--a-muted:#76675F;--a-line:#EAE1D6;--a-soft:#F5EFE8;
  --a-accent:#8B1A2F;--a-accent-tx:#7C1729;--a-pos:#2A7A3B;--a-warn:#9A5B0E;--a-neg:#B42318;--a-pos-tx:#226431;--a-warn-tx:#7E4A0B;--a-neg-tx:#931C14;
  --a-s0:#AA172D;--a-s1:#2B6CA3;--a-card-sh:0 1px 2px rgba(60,30,20,.05),0 8px 24px rgba(60,30,20,.06);
  --a-tt-bg:#2A1E1B;--a-tt-ink:#FFFFFF;--a-tt-line:#2A1E1B;
  --a-font:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--a-display:'Newsreader',Georgia,serif;
  position:relative;flex:1 1 auto;width:100%;min-width:0;background:var(--a-bg);color:var(--a-ink);font:14px/1.45 var(--a-font);-webkit-font-smoothing:antialiased;min-height:100vh}
html[data-theme="dark"] .ag-hub{
  --a-bg:#140E0D;--a-surface:#1E1614;--a-ink:#F2E9E1;--a-ink2:#C9BBB2;--a-muted:#9C8D85;--a-line:rgba(255,236,224,.10);--a-soft:rgba(255,236,224,.06);
  --a-accent:#E0B25C;--a-accent-tx:#E0B25C;--a-pos:#4CC38A;--a-warn:#E5B454;--a-neg:#F2555A;--a-pos-tx:#5BC893;--a-warn-tx:#E7BB63;--a-neg-tx:#F36369;
  --a-s0:#BF4059;--a-s1:#4185C8;--a-card-sh:inset 0 1px 0 rgba(255,255,255,.04),0 8px 24px rgba(0,0,0,.28);
  --a-tt-bg:#2A201D;--a-tt-ink:#F2E9E1;--a-tt-line:rgba(255,255,255,.12)}

/* la capa reemplaza el contenido viejo del hub; el login, el splash y el menú flotante (ay-shell) no se tocan */
body.ag-on #portal-screen .portal-main{display:none!important}
body:not(.ag-on) .ag-hub{display:none}
.ag-hub *{box-sizing:border-box;margin:0;padding:0}
.ag-hub button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.ag-hub a{color:inherit;text-decoration:none}
.ag-hub ul,.ag-hub ol{list-style:none}
.ag-hub [hidden]{display:none!important}
.ag-hub :focus-visible{outline:2px solid var(--a-accent);outline-offset:2px;border-radius:6px}
.ag-hub svg text{font-variant-numeric:tabular-nums}
.ag-hub svg.vz,.ag-hub svg.sp{display:block;max-width:100%;height:auto}
.ag-hub .mk{cursor:default;outline:none}
.ag-hub .ag-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* entrada (receta de movimiento.js): transform y opacity (el barrido de las franjas usa clip-path), sin dejar nada invisible al terminar */
.ag-hub .ag-up{animation:agUp .36s cubic-bezier(.23,1,.32,1) backwards}
.ag-hub .ag-fade{animation:agFade .4s cubic-bezier(.23,1,.32,1) backwards}
.ag-hub .ag-gy{animation:agGy .55s cubic-bezier(.23,1,.32,1) backwards;transform-box:fill-box;transform-origin:50% 100%}
.ag-hub .ag-wipe{animation:agWipe .7s cubic-bezier(.23,1,.32,1) backwards}
.ag-hub .ag-row{animation:agRow .3s cubic-bezier(.23,1,.32,1) backwards}
@keyframes agUp{from{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes agFade{from{opacity:0}}
@keyframes agGy{from{transform:scaleY(.02)}}
@keyframes agWipe{from{clip-path:inset(0 100% 0 0)}}
@keyframes agRow{from{opacity:0;transform:translateX(-6px)}}

/* ---------- Barra común (la misma del Panel gerencial) ---------- */
.ag-barra{position:sticky;top:0;z-index:30;background:#1C1312;color:#F2E9E1;border-top:3px solid #AA172D;box-shadow:0 1px 0 rgba(255,255,255,.06),0 4px 18px rgba(0,0,0,.28);
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:52px 30px;column-gap:18px;align-items:center;padding:0 20px;font-family:'Geist',system-ui,sans-serif}
.ag-marca{display:flex;align-items:center;gap:10px;flex:none;color:#F2E9E1}
.ag-marca img{width:30px;height:30px;border-radius:50%;display:block;object-fit:cover}
.ag-marca b{font:600 13px/1 'Montserrat',sans-serif;letter-spacing:.24em;white-space:nowrap}
.ag-marca i{font:italic 400 14px/1 'Newsreader',Georgia,serif;color:rgba(242,233,225,.62);padding-left:10px;border-left:1px solid rgba(242,233,225,.2);white-space:nowrap}
.ag-nav{display:flex;height:52px;min-width:0;overflow-x:auto;scrollbar-width:none}
.ag-nav::-webkit-scrollbar{display:none}
.ag-nav button{position:relative;height:100%;padding:0 11px;white-space:nowrap;flex:none;font:500 13px/1 'Geist',sans-serif;color:rgba(242,233,225,.64)}
.ag-nav button:hover,.ag-nav button[aria-current="true"]{color:#FFFFFF}
.ag-nav button[aria-current="true"]::after{content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;background:#E0B25C;border-radius:2px}
.ag-nav button.ag-arch{color:rgba(242,233,225,.58);margin-left:6px;border-left:1px solid rgba(242,233,225,.12)}
.ag-nav button:focus-visible{outline:2px solid #E0B25C;outline-offset:-4px}
.ag-der{display:flex;align-items:center;gap:8px}
.ag-busk{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px 0 11px;border-radius:8px;border:1px solid rgba(242,233,225,.16);color:rgba(242,233,225,.78);font-size:12.5px}
.ag-busk:hover{border-color:rgba(242,233,225,.34);color:#FFFFFF}
.ag-barra kbd{font:500 10.5px 'Geist Mono',monospace;border:1px solid rgba(242,233,225,.24);border-radius:4px;padding:1px 5px;color:rgba(242,233,225,.7)}
.ag-rol{position:relative}
.ag-rol>button,.ag-rol>span{display:flex;align-items:center;gap:7px;height:32px;padding:0 10px;border-radius:8px;background:rgba(242,233,225,.08);font-size:12.5px;font-weight:500;white-space:nowrap}
.ag-rol>button:hover{background:rgba(242,233,225,.14)}
.ag-rol i{width:7px;height:7px;border-radius:50%;background:var(--a-rol,#AA172D);box-shadow:0 0 0 2px rgba(255,255,255,.12);flex:none}
.ag-rolm{position:absolute;right:0;top:38px;min-width:200px;background:#1C1312;border:1px solid rgba(242,233,225,.14);border-radius:10px;padding:5px;box-shadow:0 14px 40px rgba(0,0,0,.4);display:grid;gap:2px;z-index:40}
.ag-rolm button{display:flex;align-items:center;gap:9px;height:34px;padding:0 10px;border-radius:7px;font-size:13px;text-align:left;color:rgba(242,233,225,.82)}
.ag-rolm button:hover,.ag-rolm button:focus-visible{background:rgba(242,233,225,.08);color:#FFFFFF}
.ag-rolm button[aria-checked="true"]{color:#FFFFFF}
.ag-rolm button[aria-checked="true"]::after{content:"✓";margin-left:auto;color:#E0B25C}
.ag-reloj{font:500 12px 'Geist Mono',monospace;color:rgba(242,233,225,.72);white-space:nowrap;padding:0 4px}
.ag-icob{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:rgba(242,233,225,.78)}
.ag-icob:hover{background:rgba(242,233,225,.1);color:#FFFFFF}
.ag-franja{grid-row:2;grid-column:1/-1;display:flex;align-items:center;gap:12px;min-width:0;border-top:1px solid rgba(242,233,225,.08);font-size:11px;color:rgba(242,233,225,.62);overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.ag-franja::-webkit-scrollbar{display:none}
.ag-fz{display:inline-flex;align-items:center;gap:5px}
.ag-fz i{width:6px;height:6px;border-radius:50%;background:#4CC38A}
.ag-fz.ag-cierre i{background:#E5B454}
.ag-fz.ag-cierre{color:#E8C27A}
.ag-fz.ag-falla i{background:#F2555A}
.ag-fz.ag-falla{color:#F59A9E}
.ag-franja .ag-lb{color:rgba(242,233,225,.58);text-transform:uppercase;letter-spacing:.08em;font-size:10px}

/* ---------- Contenido ---------- */
.ag-main{max-width:1280px;margin:0 auto;padding:0 30px 40px}
.ag-hd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:24px 0 18px}
.ag-hd h1{font:500 30px/1.05 var(--a-display);letter-spacing:-.015em;color:var(--a-ink)}
.ag-hd h1 em{font-style:italic;color:var(--a-muted);font-weight:400}
.ag-hd .ag-r{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.ag-pill{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 13px;border-radius:999px;background:var(--a-surface);box-shadow:var(--a-card-sh);font-size:12.5px;font-weight:500;color:var(--a-ink2);white-space:nowrap}
.ag-card{background:var(--a-surface);border-radius:22px;box-shadow:var(--a-card-sh)}
.ag-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}
.ag-chip.ok{background:color-mix(in srgb,var(--a-pos) 14%,var(--a-surface));color:var(--a-pos-tx)}
.ag-chip.wr{background:color-mix(in srgb,var(--a-warn) 16%,var(--a-surface));color:var(--a-warn-tx)}
.ag-chip.cr{background:color-mix(in srgb,var(--a-neg) 13%,var(--a-surface));color:var(--a-neg-tx)}
.ag-chip.nt{background:var(--a-soft);color:var(--a-ink2)}
.ag-vacio{font-size:12.5px;color:var(--a-muted);margin-top:8px}

/* ---------- Portada Bento por rol ---------- */
.ag-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ag-b-direccion{grid-template-rows:minmax(228px,auto) minmax(228px,auto) minmax(196px,auto);grid-template-areas:"h h b m" "h h c m" "e g g m"}
.ag-b-admin{grid-template-rows:minmax(240px,auto) minmax(214px,auto) auto;grid-template-areas:"h h b c" "h h d e" "g g g g"}
.ag-b-operaciones{grid-template-rows:240px 240px 214px;grid-template-areas:"m s s f" "m s s f" "m w w g"}
.ag-tl{position:relative;overflow:hidden;padding:16px 20px;display:flex;flex-direction:column;text-align:left;min-width:0;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.ag-tl[data-go]{cursor:pointer}
@media (hover:hover) and (pointer:fine){.ag-tl[data-go]:hover{transform:translateY(-2px)}}
.ag-tl>.ag-chip{position:absolute;top:14px;right:16px}
.ag-q{font-size:13px;color:var(--a-ink2);font-weight:500;padding-right:104px}
.ag-v{font:600 32px/1.1 var(--a-font);letter-spacing:-.025em;margin-top:6px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--a-ink)}
.ag-tl.ag-h .ag-v{font-size:clamp(34px,4.2vw,56px);margin-top:8px}
.ag-sub{font-size:12.5px;color:var(--a-ink2);margin-top:4px}
.ag-sub b{color:var(--a-ink);font-weight:600}
.ag-tr{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--a-ink2);margin-top:6px}
.ag-tr b{font-weight:600;color:var(--a-ink)}
.ag-th{font-size:11.5px;color:var(--a-muted);margin-top:auto;padding-top:8px}
.ag-ch{margin-top:8px;min-height:0}
.ag-rw{display:flex;align-items:center;gap:14px;margin-top:6px}
.ag-rw .ag-v,.ag-rw .ag-sub{margin:0}
.ag-bento>.ag-h{grid-area:h}.ag-bento>.ag-b{grid-area:b}.ag-bento>.ag-c{grid-area:c}.ag-bento>.ag-d{grid-area:d}.ag-bento>.ag-e{grid-area:e}.ag-bento>.ag-f{grid-area:f}
.ag-bento>.ag-g{grid-area:g}.ag-bento>.ag-m{grid-area:m}.ag-bento>.ag-s{grid-area:s}.ag-bento>.ag-w{grid-area:w}
.ag-seg2{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px;margin:12px 0 6px}
.ag-k2{display:flex;gap:14px;font-size:12px;color:var(--a-ink2);flex-wrap:wrap}
.ag-k2 span{display:flex;align-items:center;gap:6px}
.ag-k2 i{width:10px;height:10px;border-radius:3px}
/* avisos */
.ag-bento>.ag-g .ag-q{padding-right:0;font-weight:600;color:var(--a-ink)}
.ag-av{display:grid;gap:2px;margin-top:6px}
.ag-av>button,.ag-av>p{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:8px 10px;margin:0 -10px;border-radius:10px;font-size:13px}
.ag-av>button:hover{background:var(--a-soft)}
.ag-b-admin .ag-av{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ag-b-admin .ag-av>button,.ag-b-admin .ag-av>p{margin:0;background:var(--a-soft);grid-template-columns:22px minmax(0,1fr);align-items:start;padding:10px 12px}
.ag-b-admin .ag-av>button em,.ag-b-operaciones .ag-av>button em{grid-column:2}
.ag-b-operaciones .ag-av>button,.ag-b-operaciones .ag-av>p{grid-template-columns:22px minmax(0,1fr);align-items:start;padding:6px 10px}
.ag-ico{color:var(--a-warn-tx);display:grid;place-items:center}
.ag-ico.cr{color:var(--a-neg-tx)}.ag-ico.nt{color:var(--a-ink2)}.ag-ico.ok{color:var(--a-pos-tx)}
.ag-av b{font-weight:600}
.ag-av em{font-style:normal;font-size:12px;font-weight:600;color:var(--a-accent-tx);white-space:nowrap}
/* mini mapa */
.ag-bento>.ag-m{padding:16px 16px 12px}
.ag-bento>.ag-m .ag-q{padding-right:96px}
.ag-mapa{flex:1;min-height:0;margin:8px -6px 0;display:flex}
.ag-mapa svg{width:100%;height:100%}
.ag-mm .ag-ruta{stroke-dasharray:6 7;animation:agRt 2.2s linear infinite}
.ag-mm .ag-ruta.ag-r40{stroke-dasharray:2 5;animation:none;opacity:.7}
@keyframes agRt{to{stroke-dashoffset:-26}}
.ag-mm .ag-pulso,.ag-mm .ag-onda{transform-box:fill-box;transform-origin:center;animation:agPl 2.4s ease-out infinite}
@keyframes agPl{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.ag-mm .ag-bus{cursor:default}
/* listas cortas dentro de un bloque (no son tablas) */
.ag-ls{display:grid;gap:1px;margin-top:10px}
.ag-ls>div{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--a-line);font-size:12.5px}
.ag-ls time,.ag-ls .ag-k{font-variant-numeric:tabular-nums;color:var(--a-ink2);font-weight:600}
.ag-ls b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-ls small{color:var(--a-muted);font-size:11.5px;white-space:nowrap}
.ag-ls.ag-sal>div{grid-template-columns:44px minmax(0,1fr) auto 76px;padding:4px 0}
.ag-ls.ag-sal .ag-st{justify-self:end}
.ag-ls.ag-fl{overflow-y:auto;min-height:0;flex:1 1 auto;align-content:start}
.ag-st{font-size:11px;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.ag-st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ag-st.r{color:var(--a-accent-tx)}.ag-st.p{color:var(--a-ink2)}.ag-st.f,.ag-st.b{color:var(--a-muted)}.ag-st.t{color:var(--a-neg-tx)}
.ag-sv{font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--a-ink2)}
.ag-sv.cr{color:var(--a-neg-tx)}.ag-sv.wr{color:var(--a-warn-tx)}
.ag-sb2{font-size:11.5px;font-weight:600;color:var(--a-ink2);margin-top:14px;text-transform:uppercase;letter-spacing:.05em}
.ag-cnt{display:flex;gap:18px;margin-top:10px;font-size:12px;color:var(--a-ink2)}
.ag-cnt b{display:block;font:600 22px/1.1 var(--a-font);color:var(--a-ink);font-variant-numeric:tabular-nums}
.ag-tlin{margin-top:10px}
.ag-tlin svg{display:block;width:100%;height:auto}
.ag-ant{display:grid;gap:10px;margin-top:4px}
.ag-ant>div{display:grid;grid-template-columns:150px minmax(0,1fr) 34px;gap:12px;align-items:center;font-size:12.5px;color:var(--a-ink2)}
.ag-ant i{display:block;height:14px;border-radius:4px;background:var(--a-soft);overflow:hidden}
.ag-ant u{display:block;height:100%;border-radius:4px}
.ag-ant b{font:600 15px/1 var(--a-font);color:var(--a-ink);text-align:right;font-variant-numeric:tabular-nums}

/* ---------- Módulos por decisión ---------- */
.ag-grupo{margin-top:34px;scroll-margin-top:100px}
.ag-grupo>header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--a-line);margin-bottom:14px}
.ag-grupo h2{font:500 24px/1.1 var(--a-display);letter-spacing:-.01em;color:var(--a-ink)}
.ag-grupo h2:focus{outline:none}
.ag-grupo header p{font-size:13px;color:var(--a-ink2)}
.ag-grupo header span{margin-left:auto;font-size:12px;color:var(--a-muted);font-variant-numeric:tabular-nums}
.ag-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.ag-mod{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;text-align:left}
@media (hover:hover) and (pointer:fine){.ag-mod:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(60,30,20,.06),0 14px 32px rgba(60,30,20,.10)}}
.ag-mini{position:relative;height:78px;background:var(--a-soft);border-bottom:1px solid var(--a-line)}
.ag-mini svg{display:block;width:100%;height:100%}
.ag-mini small{position:absolute;left:10px;bottom:7px;font:600 9.5px/1 var(--a-font);letter-spacing:.08em;text-transform:uppercase;padding:3px 6px;border-radius:4px;background:rgba(20,12,10,.66);color:#FFFFFF}
.ag-mb{padding:13px 16px 14px;display:flex;flex-direction:column;gap:2px;flex:1}
.ag-nm{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;color:var(--a-ink)}
.ag-nm svg{color:var(--a-ink2);flex:none}
.ag-msub{font-size:12px;color:var(--a-muted)}
.ag-mn{display:flex;align-items:baseline;gap:8px;margin-top:10px;flex-wrap:wrap}
.ag-mn .ag-v{font-size:24px;margin:0;letter-spacing:-.02em}
.ag-mn .ag-u{font-size:12.5px;color:var(--a-ink2)}
.ag-mf{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:11.5px;color:var(--a-muted)}
.ag-mf em{margin-left:auto;font-style:normal;font-weight:600;color:var(--a-accent-tx)}
.ag-nolee{margin-top:10px;font-size:12.5px;color:var(--a-muted)}
.ag-beta{display:inline-flex;align-self:flex-start;margin-top:10px;font-size:12px;font-weight:600;color:var(--a-warn-tx);background:color-mix(in srgb,var(--a-warn) 14%,var(--a-surface));padding:3px 9px;border-radius:999px}
/* archivo: al final y plegado */
.ag-grupo.ag-archivo>details>summary{display:flex;align-items:baseline;gap:12px;cursor:pointer;list-style:none;padding-bottom:12px;border-bottom:1px solid var(--a-line)}
.ag-grupo.ag-archivo>details>summary::-webkit-details-marker{display:none}
.ag-grupo.ag-archivo summary h2{font-size:20px;color:var(--a-ink2)}
.ag-grupo.ag-archivo summary span{margin-left:auto;font-size:12px;color:var(--a-muted)}
.ag-grupo.ag-archivo summary span::after{content:" ▾"}
.ag-grupo.ag-archivo details[open] summary span::after{content:" ▴"}
.ag-archl{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:14px}
.ag-archl a{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--a-line);background:var(--a-surface)}
.ag-archl a:hover{border-color:var(--a-ink2)}
.ag-archl a b{display:block;font-weight:600;font-size:13.5px}
.ag-archl a small{color:var(--a-muted);font-size:12px}
.ag-archl a svg{color:var(--a-ink2);flex:none}
.ag-pipe{margin-top:14px;padding:18px 20px;border-radius:14px;border:1px solid var(--a-line);background:var(--a-surface);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ag-pipe .ag-nd{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:96px;text-align:center}
.ag-pipe .ag-nd i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--a-soft);color:var(--a-ink2)}
.ag-pipe .ag-nd b{font-size:12.5px;font-weight:600}
.ag-pipe .ag-nd small{font-size:11px;color:var(--a-muted)}
.ag-pipe .ag-fl{color:var(--a-muted)}
.ag-pipe .ag-dest{display:grid;gap:4px;flex:1;min-width:220px}
.ag-pipe .ag-dest span{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 10px;border-radius:8px;background:var(--a-soft)}
.ag-pie{max-width:1280px;margin:0 auto;padding:18px 30px 90px;display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--a-muted);border-top:1px solid var(--a-line)}
.ag-pie span:last-child{margin-left:auto}

/* ---------- Buscador Ctrl K (Precisión Nocturna) ---------- */
.ag-cmdk{position:fixed;inset:0;z-index:2147483600;background:rgba(10,7,6,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}
.ag-cmdk[hidden]{display:none}
.ag-pal{width:min(600px,100%);background:#0E0B0C;color:#F2E9E1;border:1px solid rgba(255,236,224,.10);border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.55);overflow:hidden;font:13px/1.4 'Geist',system-ui,sans-serif}
.ag-pal .ag-in{display:flex;align-items:center;gap:10px;padding:0 14px;height:52px;border-bottom:1px solid rgba(255,236,224,.08);color:#BCAEA6}
.ag-pal input{flex:1;height:100%;background:none;border:0;outline:none;color:#F2E9E1;font:15px 'Geist',sans-serif}
.ag-pal input::placeholder{color:#8A7C75}
.ag-pal kbd{font:500 10.5px 'Geist Mono',monospace;border:1px solid rgba(255,236,224,.16);border-radius:4px;padding:1px 6px;color:#9A8B83}
.ag-pal .ag-lsk{max-height:min(420px,56vh);overflow-y:auto;padding:6px;scrollbar-width:thin;scrollbar-color:rgba(255,236,224,.18) transparent}
.ag-pal .ag-gl{font:500 10.5px 'Geist Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:#8A7C75;padding:10px 10px 4px}
.ag-pal .ag-it{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:8px 10px;border-radius:8px;text-align:left;color:#F2E9E1;position:relative;background:none;border:0;cursor:pointer;font:inherit}
.ag-pal .ag-it i{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:rgba(255,236,224,.06);color:#BCAEA6}
.ag-pal .ag-it b{font-weight:500;display:block}
.ag-pal .ag-it small{color:#8A7C75;font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-pal .ag-it em{font:500 11px 'Geist Mono',monospace;font-style:normal;color:#9A8B83}
.ag-pal .ag-it[aria-selected="true"]{background:rgba(217,164,65,.12)}
.ag-pal .ag-it[aria-selected="true"]::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;border-radius:2px;background:#D9A441}
.ag-pal .ag-it[aria-selected="true"] i{color:#D9A441}
.ag-pal .ag-it[aria-selected="true"] small{color:#A89A92}
.ag-pal .ag-vk{padding:24px;text-align:center;color:#8A7C75}
.ag-pal .ag-pk{display:flex;gap:14px;padding:9px 14px;border-top:1px solid rgba(255,236,224,.08);font-size:11.5px;color:#8A7C75}

/* ---------- Tooltip ---------- */
.ag-hub .tt{position:absolute;z-index:80;pointer-events:none;min-width:150px;max-width:280px;padding:8px 10px;border-radius:8px;background:var(--a-tt-bg);color:var(--a-tt-ink);border:1px solid var(--a-tt-line);box-shadow:0 10px 30px rgba(0,0,0,.22);font:12px/1.35 var(--a-font)}
.ag-hub .tt[hidden]{display:none}
.ag-hub .tt-h{font-size:11px;opacity:.72;margin-bottom:5px}
.ag-hub .tt-r{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-top:2px}
.ag-hub .tt-r b{font-weight:600;font-variant-numeric:tabular-nums}
.ag-hub .tt-r span{display:flex;align-items:center;gap:6px;opacity:.8}
.ag-hub .tt-r i{display:inline-block;width:12px;height:2px;border-radius:1px}

/* ---------- Pantallas angostas ---------- */
@media (max-width:1300px){
  .ag-barra{grid-template-columns:auto auto;grid-template-rows:52px 42px 30px}
  .ag-nav{grid-row:2;grid-column:1/-1;height:42px;border-top:1px solid rgba(242,233,225,.08)}
  .ag-der{justify-self:end}
  .ag-franja{grid-row:3}
  .ag-grupo{scroll-margin-top:140px}
}
@media (max-width:1060px){
  .ag-b-direccion{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-template-areas:"h h" "b c" "m e" "m g"}
  .ag-b-admin{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-template-areas:"h h" "b c" "d e" "g g"}
  .ag-b-operaciones{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-template-areas:"s s" "m f" "w w" "g g"}
  .ag-tl{min-height:190px}
  .ag-tl.ag-h{min-height:420px}
  .ag-bento>.ag-m{min-height:520px}
  .ag-b-admin .ag-av{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ag-barra{padding:0 12px;column-gap:10px;grid-template-columns:minmax(0,1fr) auto}
  .ag-marca i,.ag-reloj,.ag-busk span,.ag-busk kbd{display:none}
  .ag-busk{width:32px;padding:0;justify-content:center;border-color:transparent}
  .ag-rol>button,.ag-rol>span{max-width:132px;overflow:hidden;text-overflow:ellipsis}
  .ag-der{gap:4px}
  .ag-main{padding:0 16px 32px}
  .ag-hd{padding:18px 0 14px}
  .ag-hd h1{font-size:25px}
  .ag-hd .ag-r{margin-left:0}
  .ag-bento{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:none!important}
  .ag-bento>.ag-tl{grid-area:auto!important}
  .ag-v{font-size:28px}
  .ag-tl.ag-h{min-height:380px}
  .ag-bento>.ag-m{min-height:540px}
  .ag-ant>div{grid-template-columns:110px minmax(0,1fr) 30px}
  .ag-ls.ag-sal>div{grid-template-columns:44px minmax(0,1fr) auto}
  .ag-ls.ag-sal>div small{grid-column:2;grid-row:2}
  .ag-ls.ag-sal>div .ag-st{grid-column:3;grid-row:1}
  .ag-mods,.ag-archl{grid-template-columns:minmax(0,1fr)}
  .ag-grupo h2{font-size:21px}
  .ag-pie{padding:16px 16px 90px}
}
@media (max-width:420px){.ag-marca b{display:none}}
@media (prefers-reduced-motion:reduce){.ag-hub .ag-fade{animation-duration:.2s!important}.ag-mm .ag-ruta,.ag-mm .ag-pulso,.ag-mm .ag-onda{animation:none!important}.ag-tl,.ag-mod{transition:none}}
@media print{.ag-barra,.ag-cmdk{display:none!important}}
