/* GAMSAC · Área de administración. Mismos tokens que la web pública. */
@font-face{font-family:'Archivo';src:url('/v2/fonts/Archivo.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{
  --bg:#EEF1F3; --surface:#F8FAFB; --ink:#0D1620; --ink-2:#4A5866; --line:#C3CCD4;
  --signal:#086E8F; --signal-soft:rgba(8,110,143,.1); --on-signal:#FFFFFF; --danger:#B4321F;
  --display:'Archivo',ui-sans-serif,system-ui,sans-serif;
  --radius:2px; --radius-input:12px; --radius-card:16px;
  --ease-out:cubic-bezier(0.23,1,0.32,1); --ease-in-out:cubic-bezier(0.77,0,0.175,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0B1117; --surface:#111A22; --ink:#E6ECF1; --ink-2:#93A1AE; --line:#26333F; --signal:#3CCBEB; --signal-soft:rgba(60,203,235,.12); --on-signal:#05212B; --danger:#FF8A7A; color-scheme:dark}}:root[data-theme="dark"]{--bg:#0B1117; --surface:#111A22; --ink:#E6ECF1; --ink-2:#93A1AE; --line:#26333F; --signal:#3CCBEB; --signal-soft:rgba(60,203,235,.12); --on-signal:#05212B; --danger:#FF8A7A; color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--display);font-size:1rem;line-height:1.55;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh}
::selection{background:var(--signal);color:var(--on-signal)}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}
.ic{width:20px;height:20px;flex:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
h1,h2{font-stretch:125%;font-weight:800;letter-spacing:-.02em;line-height:1.02;text-wrap:balance}

.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink)}
.brand-mark{width:30px;height:30px;overflow:visible;filter:drop-shadow(0 4px 10px rgba(123,92,255,.28))}
.brand-bot{background:linear-gradient(100deg,#19C6EE,#7B5CFF);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.bm-eyes{transform-box:fill-box;transform-origin:center;animation:bm-parpadeo 6s infinite}
@keyframes bm-parpadeo{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.12)}}
@media (prefers-reduced-motion:reduce){.bm-eyes{animation:none}}
.brand-word{font-stretch:125%;font-weight:600;font-size:.9rem;letter-spacing:.26em;margin-right:-.26em;line-height:1}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.8rem 1.4rem;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;
  transition:transform 160ms var(--ease-out),background-color 200ms ease,border-color 200ms ease,color 200ms ease;user-select:none;touch-action:manipulation}
.btn:active{transform:scale(.97);transition-duration:100ms}
.btn-primary{background:var(--signal);color:var(--on-signal)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--ink);color:var(--bg)}.btn-ghost:hover{border-color:var(--ink)}}
.btn[disabled]{opacity:.7;cursor:progress;transform:none}

.field{display:grid;gap:.5rem}
.field>label{font-size:.92rem;font-weight:600}
.input{position:relative;display:flex;align-items:center}
.input .ic{position:absolute;left:1rem;color:var(--ink-2);pointer-events:none;width:18px;height:18px}
.input input{width:100%;min-height:52px;padding:.8rem 1rem .8rem 2.8rem;font-size:16px;background:var(--bg);border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:var(--radius-input);caret-color:var(--signal);transition:border-color 150ms ease,box-shadow 150ms ease,background-color 150ms ease}
.input input:focus-visible{outline:none;border-color:var(--signal);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 20%,transparent)}
.input input[aria-invalid="true"]{border-color:var(--danger)}
.reveal{position:absolute;right:.4rem;display:grid;place-items:center;width:44px;height:44px;border:0;background:none;border-radius:999px;color:var(--ink-2);cursor:pointer;transition:color 150ms ease,background-color 150ms ease}
.reveal .ic{position:static;width:20px;height:20px}
@media (hover:hover){.reveal:hover{color:var(--ink);background:var(--signal-soft)}}
.input:has(.reveal) input{padding-right:3.4rem}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:active{transform:none}}

/* ── Estructura con menú lateral (admin y panel) ───────────────── */
.shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100dvh}
.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:1.5rem;padding:1.25rem .9rem;background:var(--surface);border-right:1px solid var(--line);overflow-y:auto}
.sidebar .brand{padding:.35rem .6rem}
.side-tag{display:inline-block;margin:-.75rem .6rem 0;font-size:.78rem;color:var(--ink-2)}
.nav{display:grid;gap:.2rem}
.nav-title{font-size:.78rem;font-weight:600;color:var(--ink-2);padding:0 .75rem;margin:.75rem 0 .3rem}
.nav a{display:flex;align-items:center;gap:.75rem;min-height:42px;padding:.45rem .75rem;border-radius:12px;text-decoration:none;color:var(--ink-2);font-size:.94rem;font-weight:500;transition:background-color 150ms ease,color 150ms ease}
.nav a .count{margin-left:auto;min-width:22px;padding:0 .4rem;border-radius:999px;background:var(--signal);color:var(--on-signal);font-size:.75rem;font-weight:700;text-align:center;line-height:22px}
.nav a[aria-current="page"]{background:var(--ink);color:var(--bg)}
@media (hover:hover){.nav a:not([aria-current]):hover{background:var(--signal-soft);color:var(--ink)}}
.side-foot{margin-top:auto;display:grid;gap:.75rem;padding:1rem .6rem 0;border-top:1px solid var(--line)}
.who{display:flex;align-items:center;gap:.75rem;min-width:0}
.who>div{min-width:0}
.avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:700;font-stretch:125%;font-size:.9rem}
.avatar.sm{width:32px;height:32px;font-size:.8rem}
.avatar.ia{background:var(--signal);color:var(--on-signal)}
.who strong{display:block;font-size:.92rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who small{display:block;font-size:.8rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main{display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;min-height:68px;padding:.75rem clamp(1.25rem,3vw,2.25rem);background:color-mix(in srgb,var(--bg) 85%,transparent);border-bottom:1px solid var(--line)}
@supports (backdrop-filter:blur(1px)){.topbar{backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}}
.topbar h1{font-size:1.2rem;font-stretch:112%;letter-spacing:-.01em}
.topbar .spacer{flex:1}
.content{padding:clamp(1.25rem,3vw,2.5rem) clamp(1.25rem,3vw,2.25rem) 4rem;display:grid;gap:1.5rem;align-content:start;width:100%;max-width:none}
.content.wide{max-width:none}
.menu-btn{display:none;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:999px;background:transparent;cursor:pointer}
.scrim{display:none}
/* Menú plegable (pantallas grandes): completo o solo íconos */
.mini-btn{display:grid;place-items:center;width:40px;height:40px;flex:none;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink-2);cursor:pointer;transition:background-color 150ms ease,color 150ms ease}
.mini-btn .ic{width:20px;height:20px}
@media (hover:hover){.mini-btn:hover{background:var(--signal-soft);color:var(--ink)}}
.side-out{width:100%}
@media (min-width:961px){
  .shell{transition:grid-template-columns 240ms var(--ease-out)}
  .menu-mini .shell{grid-template-columns:76px minmax(0,1fr)}
  .menu-mini .sidebar{padding:1.25rem .65rem;overflow-x:hidden}
  .menu-mini .sidebar .brand{justify-content:center;padding:.35rem 0}
  .menu-mini .brand-word,.menu-mini .side-tag,.menu-mini .nav-l,.menu-mini .who>div{display:none}
  .menu-mini .nav-title{justify-content:center;padding:0;margin:.55rem 0 .15rem;font-size:0;height:8px}
  .menu-mini .nav a{justify-content:center;padding:.45rem 0}
  .menu-mini .nav a .count{position:absolute;top:3px;right:5px;min-width:17px;padding:0 .25rem;font-size:.62rem;line-height:17px}
  .menu-mini .nav a[aria-current="page"]::before{left:-.65rem}
  .menu-mini .side-foot{padding:1rem 0 0;justify-items:center}
  .menu-mini .who{justify-content:center}
  .menu-mini .side-out{width:42px;padding:0;justify-content:center}
}
@media (max-width:960px){.mini-btn{display:none}}
@media (prefers-reduced-motion:reduce){.shell{transition:none}}
@media (max-width:960px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(290px,86vw);z-index:40;transform:translateX(-102%);transition:transform 280ms var(--ease-out);box-shadow:0 0 40px rgba(0,0,0,.2)}
  .sidebar.open{transform:none}
  .scrim{display:block;position:fixed;inset:0;z-index:35;background:rgba(13,22,32,.35);opacity:0;pointer-events:none;transition:opacity 280ms ease}
  .scrim.open{opacity:1;pointer-events:auto}
  .menu-btn{display:grid}
}

/* ── Bloques ───────────────────────────────────────────────────── */
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}
.page-head h2{font-size:clamp(1.6rem,1.1rem + 1.6vw,2.3rem)}
.page-head p{color:var(--ink-2);margin-top:.4rem;max-width:62ch}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:clamp(1.1rem,2.5vw,1.75rem)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}
.card h3{font-size:1.1rem;font-stretch:112%;font-weight:700;letter-spacing:-.01em}
.card .sub{color:var(--ink-2);font-size:.92rem;margin-top:.25rem}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
@media (max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}
.stat{display:grid;gap:.35rem}
.stat b{font-size:2rem;font-stretch:112%;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.stat span{color:var(--ink-2);font-size:.9rem}
.muted{color:var(--ink-2)}
.small{font-size:.86rem}
.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.row.between{justify-content:space-between}
.stack{display:grid;gap:1rem}
hr.sep{border:0;border-top:1px solid var(--line);margin:.5rem 0}

/* Tabla */
.table{width:100%;border-collapse:collapse;font-size:.94rem}
.table th{text-align:left;font-weight:600;font-size:.82rem;color:var(--ink-2);padding:.6rem .75rem;border-bottom:1px solid var(--line)}
.table td{padding:.85rem .75rem;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table a.rowlink{color:var(--ink);font-weight:600;text-decoration:none}
@media (hover:hover){.table tbody tr:hover{background:var(--signal-soft)}}
.table-wrap{overflow-x:auto;margin:0 calc(-1 * clamp(1.1rem,2.5vw,1.75rem));padding:0 clamp(1.1rem,2.5vw,1.75rem)}

/* Insignias */
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:999px;font-size:.8rem;font-weight:600;background:var(--signal-soft);color:var(--signal);white-space:nowrap}
.badge .ic{width:14px;height:14px}
.badge.ok{background:rgba(31,143,85,.12);color:#1C7D4B}
.badge.warn{background:rgba(196,129,0,.14);color:#8A5A00}
.badge.err{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}
.badge.off{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink-2)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .badge.ok{color:#5BD69A}:root:not([data-theme="light"]) .badge.warn{color:#F2C14E}}:root[data-theme="dark"] .badge.ok{color:#5BD69A}:root[data-theme="dark"] .badge.warn{color:#F2C14E}

/* Formularios */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1rem}
.form-grid .full{grid-column:1 / -1}
@media (max-width:700px){.form-grid{grid-template-columns:1fr}}
.field .help{font-size:.84rem;color:var(--ink-2);line-height:1.45}
.ctl{width:100%;min-height:46px;padding:.65rem .9rem;font-size:16px;background:var(--bg);border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:var(--radius-input);color:var(--ink);caret-color:var(--signal);transition:border-color 150ms ease,box-shadow 150ms ease}
textarea.ctl{min-height:110px;resize:vertical;line-height:1.5}
select.ctl{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%234A5866' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.4rem}
.ctl:focus-visible{outline:none;border-color:var(--signal);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 20%,transparent)}
.ctl.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}
.btn-sm{min-height:38px;padding:.45rem 1rem;font-size:.9rem}
.btn-danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}
@media (hover:hover) and (pointer:fine){.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}}
.btn .ic{width:18px;height:18px}
.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--ink-2);cursor:pointer;transition:background-color 150ms ease,color 150ms ease}
.icon-btn .ic{width:19px;height:19px}
@media (hover:hover){.icon-btn:hover{background:var(--signal-soft);color:var(--ink)}}

/* Interruptor */
.switch{position:relative;display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;user-select:none}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch .track{position:relative;width:44px;height:26px;flex:none;border-radius:999px;background:color-mix(in srgb,var(--ink) 22%,var(--line));transition:background-color 200ms ease}
.switch .track::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform 220ms var(--ease-out)}
.switch input:checked+.track{background:var(--signal)}
.switch input:checked+.track::after{transform:translateX(18px)}
.switch input:focus-visible+.track{outline:2px solid var(--signal);outline-offset:3px}

/* Selector de opciones con tarjetas */
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}
.choice{position:relative;display:grid;gap:.3rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--bg);cursor:pointer;transition:border-color 150ms ease,background-color 150ms ease}
.choice input{position:absolute;opacity:0}
.choice strong{display:flex;align-items:center;gap:.5rem;font-size:.95rem}
.choice strong .ic{color:var(--signal)}
.choice span{font-size:.85rem;color:var(--ink-2);line-height:1.4}
.choice:has(input:checked){border-color:var(--signal);background:var(--signal-soft);box-shadow:inset 0 0 0 1px var(--signal)}
.choice:has(input:focus-visible){outline:2px solid var(--signal);outline-offset:2px}
.choice:has(input:disabled){opacity:.5;cursor:not-allowed}

/* Avisos */
.notice{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border-radius:14px;background:var(--signal-soft);color:var(--ink);font-size:.93rem;line-height:1.5}
.notice .ic{color:var(--signal);margin-top:1px}
.notice.warn{background:rgba(196,129,0,.12)}
.notice.warn .ic{color:#B07500}
.notice.err{background:color-mix(in srgb,var(--danger) 12%,transparent)}
.notice.err .ic{color:var(--danger)}
.toast{position:fixed;left:50%;bottom:1.5rem;z-index:100;display:flex;align-items:center;gap:.6rem;padding:.8rem 1.1rem;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.92rem;font-weight:500;box-shadow:0 10px 24px -10px rgba(0,0,0,.4);transform:translate(-50%,0);transition:opacity 220ms var(--ease-out),transform 220ms var(--ease-out)}
.toast.hide{opacity:0;transform:translate(-50%,8px);pointer-events:none}
.toast.err{background:var(--danger);color:#fff}
.toast .ic{width:18px;height:18px}
.copy-field{display:flex;gap:.5rem}
.copy-field .ctl{flex:1;min-width:0}
pre.code{margin:0;padding:1rem;border-radius:12px;background:var(--bg);border:1px solid var(--line);font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-all;color:var(--ink)}

/* Diálogo */
dialog.modal{width:min(560px,calc(100vw - 2rem));padding:0;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px -20px rgba(0,0,0,.45)}
dialog.modal::backdrop{background:rgba(13,22,32,.4)}
dialog.modal[open]{animation:modalIn 220ms var(--ease-out)}
@keyframes modalIn{from{opacity:0;transform:scale(.96)}}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line)}
.modal-head h3{font-size:1.1rem;font-stretch:112%}
.modal-body{padding:1.25rem;display:grid;gap:1rem}
.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem;border-top:1px solid var(--line)}

/* Estado vacío */
.empty-state{display:grid;justify-items:center;text-align:center;gap:.9rem;padding:clamp(2.5rem,7vw,5rem) 1.5rem}
.empty-ic{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:var(--signal-soft);color:var(--signal)}
.empty-ic .ic{width:34px;height:34px}
.empty-state h3{font-size:1.35rem;font-stretch:112%;font-weight:700}
.empty-state p{color:var(--ink-2);max-width:46ch}

/* ── Integraciones: resumen, proveedores con color de marca y redes por cliente ── */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
@media (max-width:900px){.kpis{grid-template-columns:1fr 1fr}}
.kpi{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line)}
.kpi-ic{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:14px;background:color-mix(in srgb,var(--tone,var(--signal)) 14%,transparent);color:var(--tone,var(--signal))}
.kpi-ic .ic{width:24px;height:24px}
.kpi b{display:block;font-size:1.6rem;font-stretch:112%;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.kpi span{font-size:.86rem;color:var(--ink-2)}
.kpi b small{font-size:.95rem;font-weight:600;color:var(--ink-2)}

.jump{position:sticky;top:68px;z-index:4;display:flex;gap:.4rem;overflow-x:auto;padding:.4rem;margin:0 -.4rem;background:color-mix(in srgb,var(--bg) 88%,transparent);border-radius:999px;scrollbar-width:none}
@supports (backdrop-filter:blur(1px)){.jump{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
.jump a{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap;min-height:38px;padding:.4rem .95rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:.9rem;font-weight:600;text-decoration:none;transition:color 150ms ease,border-color 150ms ease}
.jump a .ic{width:17px;height:17px}
@media (hover:hover){.jump a:hover{color:var(--ink);border-color:var(--ink)}}
.sec-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;scroll-margin-top:130px}
.sec-title h3{font-size:1.3rem;font-stretch:112%;font-weight:800;letter-spacing:-.01em}
.sec-title p{color:var(--ink-2);font-size:.93rem;margin-top:.2rem;max-width:70ch}

.prov{--brand:var(--signal);position:relative;overflow:hidden;scroll-margin-top:130px;background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 10%,var(--surface)) 0,var(--surface) 150px)}
.prov::before{content:'';position:absolute;inset:0 0 auto;height:4px;background:var(--brand)}
.prov-logo{display:grid;place-items:center;width:50px;height:50px;flex:none;border-radius:15px;background:var(--brand);color:#fff;font-weight:800;font-stretch:125%;font-size:1.3rem;box-shadow:0 8px 18px -10px var(--brand)}
.prov-state{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.prov-state i{width:8px;height:8px;border-radius:999px;background:color-mix(in srgb,var(--ink) 30%,transparent)}
.prov-state.on i{background:#1FA463;box-shadow:0 0 0 4px rgba(31,164,99,.18)}
.prov-state.on{color:#1C7D4B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .prov-state.on{color:#5BD69A}}:root[data-theme="dark"] .prov-state.on{color:#5BD69A}
.model-row{display:flex;gap:.5rem}
.model-row select{flex:1;min-width:0}
.model-meta{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--ink-2)}
.model-meta .ic{width:15px;height:15px}
.model-meta.live{color:#1C7D4B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .model-meta.live{color:#5BD69A}}:root[data-theme="dark"] .model-meta.live{color:#5BD69A}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.3rem;border-radius:14px;background:var(--bg);border:1px solid var(--line)}
.seg label{position:relative;display:grid;gap:.1rem;justify-items:center;text-align:center;padding:.45rem .3rem;border-radius:10px;cursor:pointer;font-size:.88rem;font-weight:600;transition:background-color 150ms ease,color 150ms ease}
.seg label small{font-weight:500;font-size:.74rem;color:var(--ink-2)}
.seg input{position:absolute;opacity:0}
.seg label:has(input:checked){background:var(--surface);color:var(--brand,var(--signal));box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg label:has(input:focus-visible){outline:2px solid var(--signal);outline-offset:1px}
.spin .ic{animation:spin 800ms linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.82rem;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:.4rem}
.dot{width:8px;height:8px;border-radius:999px;flex:none;background:color-mix(in srgb,var(--ink) 30%,transparent)}
.dot.lista{background:#1FA463}.dot.meta{background:#D99A00}
.cli{display:grid;gap:1rem}
.cli-head{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}
.cli-head .avatar{background:var(--signal);color:var(--on-signal);width:42px;height:42px;font-size:1rem}
.cli-head h4{font-size:1.05rem;font-stretch:112%;font-weight:700;line-height:1.2}
.cli-head h4 a{text-decoration:none}
@media (hover:hover){.cli-head h4 a:hover{text-decoration:underline}}
.cli-head .meta{margin-left:auto;display:flex;gap:.4rem;flex-wrap:wrap}
.redes{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem}
.red{--brand:var(--signal);display:grid;border-radius:14px;border:1px solid var(--line);background:var(--bg);transition:border-color 200ms ease,background-color 200ms ease,box-shadow 200ms ease}
.red-main{position:relative;display:flex;align-items:center;gap:.65rem;padding:.75rem .8rem .55rem;cursor:pointer}
.red input{position:absolute;opacity:0;width:1px;height:1px}
.red-ic{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:11px;background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink-2);transition:background-color 200ms ease,color 200ms ease}
.red-ic .ic{width:21px;height:21px}
.red-name{display:grid;min-width:0;font-weight:600;font-size:.92rem;line-height:1.2}
.red-name small{display:flex;align-items:center;gap:.3rem;font-weight:500;font-size:.73rem;color:var(--ink-2);margin-top:.2rem}
/* Interruptor principal: habilita la red para el cliente (antes era un círculo pequeño que no se notaba) */
.red-sw{margin-left:auto;position:relative;width:40px;height:24px;flex:none;border-radius:999px;background:color-mix(in srgb,var(--ink) 22%,var(--line));transition:background-color 200ms ease}
.red-sw::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform 220ms var(--ease-out)}
.red:has(.red-main input:checked) .red-sw{background:var(--brand)}
.red:has(.red-main input:checked) .red-sw::after{transform:translateX(16px)}
.red-vis{display:flex;margin:0 .8rem .45rem;font-size:.74rem;font-weight:600;line-height:1.3}
.red-vis span{display:flex;align-items:center;gap:.35rem}.red-vis .ic{width:14px;height:14px;flex:none}
.red-vis .si{display:none;color:var(--ink)}.red-vis .si .ic{color:var(--brand)}.red-vis .no{color:var(--ink-2)}
.red:has(.red-main input:checked) .red-vis .si{display:flex}.red:has(.red-main input:checked) .red-vis .no{display:none}
.red:not(:has(.red-main input:checked)){border-style:dashed;background:transparent}
.red:not(:has(.red-main input:checked)) .red-ia{display:none}
.red:not(:has(.red-main input:checked)) .red-name{color:var(--ink-2)}
.red-ia{display:flex;align-items:center;gap:.45rem;margin:0 .55rem .55rem;padding:.35rem .55rem;border-radius:9px;font-size:.8rem;font-weight:600;color:var(--ink-2);cursor:pointer;transition:background-color 200ms ease,color 200ms ease,opacity 200ms ease}
.red-ia .ic{width:16px;height:16px}
.red-ia .mini{margin-left:auto;position:relative;width:30px;height:18px;border-radius:999px;background:color-mix(in srgb,var(--ink) 20%,var(--line));transition:background-color 200ms ease}
.red-ia .mini::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:999px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform 200ms var(--ease-out)}
.red-ia:has(input:checked) .mini{background:var(--signal)}
.red-ia:has(input:checked) .mini::after{transform:translateX(12px)}
.red-ia:has(input:checked){color:var(--signal);background:var(--signal-soft)}
.red-ia:has(input:disabled){opacity:.45;cursor:not-allowed}
.red:has(.red-main input:checked){border-color:color-mix(in srgb,var(--brand) 55%,transparent);background:color-mix(in srgb,var(--brand) 7%,var(--surface));box-shadow:0 6px 16px -12px var(--brand)}
.red:has(.red-main input:checked) .red-ic{background:var(--brand);color:#fff}
.red-main:has(input:focus-visible),.red-ia:has(input:focus-visible){outline:2px solid var(--signal);outline-offset:2px;border-radius:12px}
.red.saving{opacity:.6;pointer-events:none}
.brand-trio{display:flex}
.brand-trio span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#fff;border:2px solid var(--surface);margin-left:-8px}
.brand-trio span:first-child{margin-left:0}
.brand-trio .ic{width:21px;height:21px}
.app-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1rem;border-radius:14px;background:var(--bg);border:1px solid var(--line)}
.red-card{position:relative;overflow:hidden}
.red-card::before{content:'';position:absolute;inset:0 0 auto;height:3px;background:var(--brand)}
.red-card .red-ic{background:var(--brand);color:#fff}
.red-ia:has(input:disabled) .mini{background:color-mix(in srgb,var(--ink) 15%,var(--line))}
.red-ia:has(input:disabled) .mini::after{transform:none}
.red-ia:has(input:disabled){background:none;color:var(--ink-2)}
.red-ia{white-space:nowrap}
.prov-logo .ic{width:26px;height:26px}
.kb-bar{width:160px;height:8px;border-radius:999px;background:color-mix(in srgb,var(--ink) 10%,transparent);overflow:hidden}
.kb-bar i{display:block;height:100%;background:var(--signal);border-radius:inherit;transition:width 400ms var(--ease-out)}
.support-bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.6rem clamp(1.25rem,3vw,2.25rem);background:#7A5AF8;color:#fff;font-size:.9rem}
.support-bar>.ic{flex:none}
.support-bar span{flex:1;min-width:220px}
.support-bar .btn{background:#fff;color:#3B2A8C;min-height:36px}
.support-bar~.topbar{top:52px}

.locked-redes .red-main,.locked-redes .red-ia{cursor:default}
.red-main:has(input:disabled){cursor:default}
.locked-redes .red-ia:has(input:checked) .mini{background:var(--signal)}
.locked-redes .red-ia:has(input:checked) .mini::after{transform:translateX(12px)}
.locked-redes .red-ia:has(input:checked){color:var(--signal);background:var(--signal-soft);opacity:1}
.stack{align-content:start}

/* ── Identidad GAMSAC: rombo, señal y profundidad (se aplica a admin y panel) ── */
:root{--glow:color-mix(in srgb,var(--signal) 16%,transparent);--edge:inset 0 1px 0 rgba(255,255,255,.65)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--edge:inset 0 1px 0 rgba(255,255,255,.045)}}:root[data-theme="dark"]{--edge:inset 0 1px 0 rgba(255,255,255,.045)}
body{background:radial-gradient(1200px 520px at 78% -140px,var(--glow),transparent 70%) no-repeat,var(--bg)}
/* Menú lateral: trama de rombos muy sutil y elemento activo con barra de señal */
.sidebar{background:
  linear-gradient(180deg,transparent 60%,var(--surface) 100%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M14 4 24 14 14 24 4 14Z' fill='none' stroke='%2386A3B5' stroke-opacity='.07'/%3E%3C/svg%3E") 0 0/28px 28px,
  var(--surface)}
.nav a{position:relative;transition:background-color 150ms ease,color 150ms ease}
.nav a[aria-current="page"]{background:color-mix(in srgb,var(--signal) 14%,transparent);color:var(--ink);font-weight:600}
.nav a[aria-current="page"] .ic{color:var(--signal)}
.nav a[aria-current="page"]::before{content:'';position:absolute;left:-.9rem;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--signal)}
.nav-title{display:flex;align-items:center;gap:.45rem;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}
.nav-title::before{content:'';width:6px;height:6px;transform:rotate(45deg);background:var(--signal);opacity:.7}
.side-tag{font-weight:600;color:var(--ink)}
/* Encabezado de página con rombo de marca */
.page-head h2{position:relative}
.page-head h2::before{content:'';display:block;width:14px;height:14px;margin-bottom:.9rem;transform:rotate(45deg);border:1.5px solid var(--signal);box-shadow:inset 0 0 0 3px var(--bg),inset 0 0 0 10px var(--signal)}
/* Tarjetas con borde de luz y profundidad suave */
.card,.kpi,.rule,.plan{box-shadow:var(--edge),0 1px 2px rgba(13,22,32,.04),0 8px 24px -16px rgba(13,22,32,.18)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .card,:root:not([data-theme="light"]) .kpi,:root:not([data-theme="light"]) .rule,:root:not([data-theme="light"]) .plan{box-shadow:var(--edge),0 10px 30px -18px rgba(0,0,0,.6)}}:root[data-theme="dark"] .card,:root[data-theme="dark"] .kpi,:root[data-theme="dark"] .rule,:root[data-theme="dark"] .plan{box-shadow:var(--edge),0 10px 30px -18px rgba(0,0,0,.6)}
.card h3{display:flex;align-items:center;gap:.5rem}
/* Botón principal con brillo y respuesta al presionar */
.btn-primary{background:linear-gradient(180deg,color-mix(in srgb,var(--signal) 88%,#fff),var(--signal));box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 16px -8px var(--signal)}
.btn:active{transform:scale(.97)}
.choice{transition:border-color 150ms ease,background-color 150ms ease,transform 140ms var(--ease-out)}
.choice:active{transform:scale(.985)}
.badge{letter-spacing:.01em}


@media (prefers-reduced-motion:reduce){.btn:active,.choice:active{transform:none}}
/* Rejillas que crecen con la pantalla */
.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr));gap:1.25rem}
@media (min-width:1700px){.grid-3{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}}
/* Barra superior como ruta: Área › Página (evita repetir el título grande) */
.topbar .crumb{display:flex;align-items:center;gap:.55rem;font-size:.92rem;font-weight:500;color:var(--ink-2);min-width:0}
.topbar .crumb b{color:var(--ink);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .crumb::before{content:'';width:8px;height:8px;flex:none;transform:rotate(45deg);background:var(--signal)}
.topbar .crumb i{font-style:normal;opacity:.5}
.prov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
@media (min-width:2200px){.prov-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){.prov-grid{grid-template-columns:1fr}}
/* Ajustes de pantalla completa: laptop y celular */
.choices{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media (max-width:700px){
  .topbar .crumb span,.topbar .crumb i{display:none}
  .topbar .badge{padding:.25rem .5rem;font-size:0;gap:0}
  .topbar .badge .ic{width:16px;height:16px}
  .kpis{gap:.6rem}
  .kpi{padding:.85rem;gap:.6rem}
  .kpi-ic{display:none}
  .kpi b{font-size:1.35rem}
  .kpi span{font-size:.8rem;line-height:1.3}
  .page-head .btn{width:100%}
}
dialog.modal{margin:auto;max-height:calc(100dvh - 2rem);overflow:auto}

/* Menú de acciones (⋮) compartido por todas las páginas */
.menu{position:relative}
.menu>summary{list-style:none}
.menu>summary::-webkit-details-marker{display:none}
.menu[open]>summary{background:var(--signal-soft);color:var(--ink)}
.menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:grid;gap:2px;min-width:230px;padding:.35rem;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:0 18px 40px -16px rgba(13,22,32,.45),0 2px 6px -2px rgba(13,22,32,.15);transform-origin:top right;animation:qIn 150ms var(--ease-out)}
.menu.up .menu-pop{top:auto;bottom:calc(100% + 6px);transform-origin:bottom right}
@keyframes qIn{from{opacity:0;transform:scale(.97)}}
.menu-pop form{display:contents}
.menu-pop a,.menu-pop button{display:flex;align-items:center;gap:.65rem;width:100%;min-height:40px;padding:.55rem .7rem;border:0;border-radius:10px;background:none;font:inherit;font-size:.9rem;font-weight:500;color:var(--ink);text-decoration:none;text-align:left;cursor:pointer;white-space:nowrap;transition:background-color 120ms ease}
.menu-pop .ic{width:18px;height:18px;color:var(--ink-2)}
.menu-pop hr{border:0;border-top:1px solid var(--line);margin:.25rem .3rem}
.menu-pop .danger,.menu-pop .danger .ic{color:var(--danger)}
@media (hover:hover){.menu-pop a:hover,.menu-pop button:hover{background:var(--signal-soft)}.menu-pop .danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}}
@media (prefers-reduced-motion:reduce){.menu-pop{animation:none}}
/* Con la burbuja de prueba del chat web, que no tape lo último de la página */
.con-chat .content{padding-bottom:7.5rem}
/* Aviso de vencimiento del plan en el panel del cliente */
.pay-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.7rem clamp(1.25rem,3vw,2.25rem);font-size:.9rem;background:color-mix(in srgb,#E0A100 16%,var(--surface));color:var(--ink);border-bottom:1px solid color-mix(in srgb,#E0A100 40%,var(--line))}
.pay-bar.t-err{background:color-mix(in srgb,var(--danger) 13%,var(--surface));border-bottom-color:color-mix(in srgb,var(--danger) 40%,var(--line))}
.pay-bar>.ic{color:#B07A00}.pay-bar.t-err>.ic{color:var(--danger)}
.pay-bar span{flex:1;min-width:220px}
.pay-bar .btn{background:var(--ink);color:var(--bg);min-height:36px;padding:.4rem 1rem}

/* Texto con formato de la IA (GAMSAC.rico): tablas, títulos, listas y separadores */
.md{white-space:normal!important}
.md>*+*{margin-top:.45em}
.md p{margin:0}
.md .md-h{font-weight:800;letter-spacing:.01em}
.md .md-h2{font-weight:700;color:color-mix(in srgb,currentColor 80%,transparent);margin-top:.8em}
.md .md-h+.md-h2{margin-top:.3em}
.md td:first-child{min-width:9em}
.md hr{border:0;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent);margin:.7em 0}
.md ul,.md ol{margin:0;padding-left:1.25em;display:grid;gap:.2em}
.md a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.md .md-t{overflow-x:auto;margin:.5em 0;border-radius:10px;border:1px solid color-mix(in srgb,currentColor 16%,transparent)}
.md table{border-collapse:collapse;width:100%;font-size:.92em;line-height:1.35}
.md th,.md td{padding:.45em .65em;text-align:left;vertical-align:top;border-bottom:1px solid color-mix(in srgb,currentColor 10%,transparent)}
.md thead th{background:color-mix(in srgb,currentColor 7%,transparent);font-weight:700;white-space:nowrap;font-size:.92em}
.md tbody tr:nth-child(even) td{background:color-mix(in srgb,currentColor 3%,transparent)}
.md tbody tr:last-child td{border-bottom:0}
.md td:first-child{font-weight:600}

/* ── Administrador: acabado visual (solo diseño) ───────────────── */
.zona-admin .content{gap:1.4rem}
.zona-admin .page-head h2::before{width:11px;height:11px;margin-bottom:.75rem}
.zona-admin .page-head p{line-height:1.55}
/* Tarjetas de números: cifra en una sola línea y texto compacto */
.zona-admin .kpi{min-height:92px}
.zona-admin .kpi>div{min-width:0}
.zona-admin .kpi b{font-size:clamp(1.25rem,1rem + .7vw,1.6rem);white-space:nowrap}
.zona-admin .kpi>div>span{display:block;margin-top:.4rem;line-height:1.35}
.zona-admin .stat{align-content:center;min-height:92px;padding:1rem 1.25rem}
.zona-admin .stat b{font-size:clamp(1.5rem,1.1rem + .9vw,1.9rem)}
.zona-admin .stat span{line-height:1.35}
/* Encabezado de tarjeta: el botón no se parte */
.zona-admin .card-head{align-items:flex-start}
.zona-admin .card-head>.btn,.zona-admin .card-head>a.btn{flex:none;white-space:nowrap}
.zona-admin .card-head .sub{line-height:1.5}
/* Tablas: encabezados y montos en una línea */
.zona-admin .table th{white-space:nowrap;text-transform:none;letter-spacing:.01em}
.zona-admin .table td[style*="right"],.zona-admin .table th[style*="right"]{white-space:nowrap;font-variant-numeric:tabular-nums}
.zona-admin .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Estado vacío amable */
.vacio-ok{display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;border-radius:14px;background:color-mix(in srgb,#1FA463 8%,var(--surface));border:1px solid color-mix(in srgb,#1FA463 22%,var(--line))}
.vacio-ok>span{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:color-mix(in srgb,#1FA463 16%,transparent);color:#1FA463}
.vacio-ok>span .ic{width:22px;height:22px}
.vacio-ok strong{display:block;font-size:.95rem}
.vacio-ok p{margin:.15rem 0 0;font-size:.86rem;color:var(--ink-2)}
.vacio-ok.neutro{background:color-mix(in srgb,var(--signal) 5%,var(--surface));border-color:var(--line)}
.vacio-ok.neutro>span{background:var(--signal-soft);color:var(--signal)}
@media (max-width:700px){
  .zona-admin .content{gap:1.1rem}
  .zona-admin .kpi{min-height:0}
  .zona-admin .stat{min-height:0;padding:.9rem 1rem}
  .zona-admin .card-head{flex-wrap:wrap}
  .zona-admin .card-head>.btn,.zona-admin .card-head>a.btn{order:2}
}
/* Redes del cliente: tarjetas con aire para que el texto no se parta */
.zona-admin .redes{grid-template-columns:repeat(auto-fill,minmax(min(100%,235px),1fr));gap:.75rem}
.zona-admin .red-name small{white-space:nowrap}
.zona-admin a.kpi{color:inherit;text-decoration:none;transition:border-color 150ms ease}
@media (hover:hover){.zona-admin a.kpi:hover{border-color:color-mix(in srgb,var(--signal) 50%,var(--line))}}
.pe-nota{display:flex;gap:.5rem;align-items:flex-start;margin:0;font-size:.8rem;color:var(--ink-2);line-height:1.45}
.pe-nota .ic{width:16px;height:16px;flex:none;margin-top:1px;color:var(--signal)}
/* Funciones no incluidas en el plan */
.nav-lock{margin-left:auto;display:inline-grid;place-items:center;color:var(--ink-2);opacity:.7}
.nav-lock .ic{width:14px;height:14px}
.fn-lock{display:grid;justify-items:center;text-align:center;gap:.8rem;padding:clamp(1.5rem,5vw,3rem) 1.2rem}
.fn-lock-ic{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--signal-soft);color:var(--signal);position:relative}
.fn-lock-ic .ic{width:30px;height:30px}
.fn-lock-ic i{position:absolute;right:-6px;bottom:-6px;display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}
.fn-lock-ic i .ic{width:14px;height:14px}
.fn-lock p{max-width:56ch;color:var(--ink-2);margin:0}

/* ── Administrador: estilo «centro de control», el mismo de Integraciones e IA, en todas las pantallas (solo diseño) ── */
.zona-admin{--fx-c:#19C6EE;--fx-v:#7B5CFF;--fx-g:linear-gradient(135deg,var(--fx-c),var(--fx-v));--fx-glass:color-mix(in srgb,var(--surface) 82%,transparent);--fx-out:cubic-bezier(0.23,1,0.32,1)}
/* Título con degradado de marca */
.zona-admin :is(.page-head h2,.ai-hero h2){width:fit-content;max-width:100%;background:linear-gradient(100deg,var(--ink) 25%,var(--fx-c) 65%,var(--fx-v));-webkit-background-clip:text;background-clip:text;color:transparent}
.zona-admin .page-head h2::before{-webkit-text-fill-color:initial}
/* Menú lateral: la opción activa con luz de marca */
.zona-admin .nav a[aria-current="page"]{background:linear-gradient(90deg,color-mix(in srgb,var(--fx-c) 18%,transparent),color-mix(in srgb,var(--fx-v) 8%,transparent) 70%,transparent)}
.zona-admin .nav a[aria-current="page"]::before{background:var(--fx-g);box-shadow:0 0 12px var(--fx-c)}
/* Pestañas: cápsula de vidrio y la activa con degradado */
.zona-admin :is(.fz-tabs,.cl-tabs,.sm-tabs){background:var(--fx-glass);backdrop-filter:blur(10px);box-shadow:0 10px 30px -22px rgba(13,22,32,.5)}
.zona-admin :is(.fz-tabs,.cl-tabs,.sm-tabs) :is(button,a){transition:color 180ms ease,background-color 180ms ease,box-shadow 220ms ease}
.zona-admin :is(.fz-tabs,.cl-tabs,.sm-tabs) :is(button,a):is([aria-selected="true"],[aria-current]){background:var(--fx-g);color:#fff;box-shadow:0 8px 22px -10px var(--fx-v),inset 0 1px 0 rgba(255,255,255,.3)}
@media (hover:hover) and (pointer:fine){.zona-admin :is(.fz-tabs,.cl-tabs,.sm-tabs) :is(button,a):not([aria-selected="true"]):not([aria-current]):hover{background:color-mix(in srgb,var(--fx-c) 10%,transparent);color:var(--ink)}}
/* Filas de cifras: panel oscuro con trama, luces y tarjetas de vidrio */
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis){position:relative;isolation:isolate;overflow:hidden;padding:.9rem;border-radius:var(--radius-card);border:1px solid rgba(120,200,255,.18);
  background:radial-gradient(90% 120% at 0% 0%,rgba(25,198,238,.20),transparent 55%),radial-gradient(80% 120% at 100% 100%,rgba(123,92,255,.24),transparent 55%),linear-gradient(160deg,#0A1220,#0E1A2E 55%,#0B1322);
  box-shadow:0 30px 60px -40px rgba(10,18,32,.9),inset 0 1px 0 rgba(255,255,255,.06)}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis)::before{content:'';position:absolute;inset:-40px;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(120,200,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,200,255,.07) 1px,transparent 1px);background-size:32px 32px;
  -webkit-mask-image:radial-gradient(70% 90% at 50% 40%,#000 30%,transparent 80%);mask-image:radial-gradient(70% 90% at 50% 40%,#000 30%,transparent 80%);animation:fxGrid 18s linear infinite}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis)::after{content:'';position:absolute;width:420px;height:420px;right:-120px;top:-200px;z-index:-1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(25,198,238,.32),rgba(123,92,255,.16) 45%,transparent 70%);filter:blur(20px);animation:fxOrb 12s ease-in-out infinite alternate}
@keyframes fxGrid{to{transform:translate(32px,32px)}}
@keyframes fxOrb{to{transform:translate(-160px,120px) scale(1.15)}}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi,.ai-kpi){background:rgba(255,255,255,.04);border-color:rgba(120,200,255,.16);color:#E8F1F8;backdrop-filter:blur(6px);box-shadow:none}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi b,.ai-kpi b){background:linear-gradient(180deg,#fff,#9FE8FA);-webkit-background-clip:text;background-clip:text;color:transparent}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi span:not(.kpi-ic),.kpi small,.ai-kpi small,.ai-kpi-l){color:rgba(232,241,248,.68)}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi a,.kpi strong){color:#9FE8FA}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi-ic,.ai-kpi-ic){background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--tone,var(--fx-c)) 45%,transparent),color-mix(in srgb,var(--tone,var(--fx-c)) 14%,transparent));color:#fff;box-shadow:0 0 0 1px color-mix(in srgb,var(--tone,var(--fx-c)) 35%,transparent),0 10px 24px -10px var(--tone,var(--fx-c))}
.zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) .ai-kpi::before{box-shadow:0 0 14px var(--tone)}
@media (hover:hover) and (pointer:fine){
  .zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi,.ai-kpi){transition:border-color 200ms ease,transform 200ms var(--fx-out)}
  .zona-admin :is(.kpis,.cl-kpis,.fz-kpis:not(.fz-kpis-sm),.ai-kpis,.sm-kpis) :is(.kpi,.ai-kpi):hover{border-color:rgba(25,198,238,.5);transform:translateY(-2px)}
}
/* Tarjetas: borde con luz de marca y una línea de color arriba */
.zona-admin .card{border:1px solid transparent;
  background:linear-gradient(90deg,color-mix(in srgb,var(--fx-c) 75%,transparent),color-mix(in srgb,var(--fx-v) 50%,transparent) 35%,transparent 70%) top/100% 2px no-repeat padding-box,
    radial-gradient(70% 90% at 100% 0,color-mix(in srgb,var(--fx-c) 5%,transparent),transparent 60%) padding-box,linear-gradient(var(--surface),var(--surface)) padding-box,
    linear-gradient(150deg,color-mix(in srgb,var(--fx-c) 35%,var(--line)),var(--line) 40%,color-mix(in srgb,var(--fx-v) 22%,var(--line))) border-box}
/* Tablas: la fila se ilumina al pasar */
.zona-admin .table tbody tr{transition:background-color 160ms ease}
@media (hover:hover) and (pointer:fine){.zona-admin .table tbody tr:hover{background:color-mix(in srgb,var(--fx-c) 5%,transparent)}}
/* Entrada suave de cada bloque de la página */
.zona-admin .content>:not(.ai-in):not(.tab-p){animation:fxIn 420ms var(--fx-out) both}
.zona-admin .content>:nth-child(2){animation-delay:50ms}.zona-admin .content>:nth-child(3){animation-delay:100ms}.zona-admin .content>:nth-child(4){animation-delay:150ms}.zona-admin .content>:nth-child(n+5){animation-delay:200ms}
@keyframes fxIn{from{opacity:0;transform:translateY(10px)}}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .zona-admin :is(.page-head h2,.ai-hero h2){background:linear-gradient(100deg,#fff 25%,var(--fx-c) 65%,#A996FF);-webkit-background-clip:text;background-clip:text}
}:root[data-theme="dark"] .zona-admin :is(.page-head h2,.ai-hero h2){background:linear-gradient(100deg,#fff 25%,var(--fx-c) 65%,#A996FF);-webkit-background-clip:text;background-clip:text}
@media (prefers-reduced-motion:reduce){
  .zona-admin :is(.kpis,.cl-kpis,.fz-kpis,.ai-kpis,.sm-kpis)::before,.zona-admin :is(.kpis,.cl-kpis,.fz-kpis,.ai-kpis,.sm-kpis)::after,.zona-admin .content>*{animation:none}
}
/* Selector de apariencia (claro / oscuro / automático) en la barra superior */
.tema{position:relative}
.tema-pop{min-width:250px}
.tema-pop button{align-items:flex-start}
.tema-pop button span{display:grid;gap:.05rem}
.tema-pop button small{font-size:.76rem;color:var(--ink-2);font-weight:400}
.tema-pop button[aria-checked="true"]{background:var(--signal-soft)}
.tema-pop button[aria-checked="true"] .ic{color:var(--signal)}
.tema-pop[hidden]{display:none}
/* Ningún bloque estira la página más allá de la pantalla (los anchos se resuelven dentro de cada bloque) */
.content>*,.stack>*,.card>*{min-width:0}
.page-head h2,.page-head p{overflow-wrap:anywhere}
