/* Silverswan · INTRANET · capa Orbitron (borrador etapa 1 · 2026-09-29)
   Destino: /intranet/canal/reseller/intranet-orbitron.css — junto a reseller.css y canal-tesoreria.css: hereda la
   caché de un año del .htaccess de esa carpeta (sin Rewrite*, así no pierde el candado de host) y sus url(fuentes/…)
   son LAS MISMAS que las de la consola: el navegador baja cada fuente una sola vez para las dos.

   Sistema aprobado (consola del Partner Comercial 24-09, Tesorería 27-09; «todo Silverswan es Orbitron»):
     Orbitron      → títulos, rótulos, pestañas, cabeceras de tabla, botones (títulos −20 %: dibuja 1,29× más grande;
                     rótulos nunca bajo 8,5 px)
     Chakra Petch  → lectura (y la Ñ/ñ de Orbitron, que viene con acento grave)
     JetBrains Mono→ cifras, montos, RUT, folios, fechas, campos (tabular; el 0/O y el 7 de Orbitron se confunden)

   CÓMO SE CARGA: con <link> al FINAL del <head>, DESPUÉS del <style> de la pantalla, con ?v=filemtime(ruta ABSOLUTA).
   Así, a igual especificidad gana esta hoja por orden; sin !important y sin selectores por posición.
     · :root cambia los tokens que ya usan las pantallas (design.css, av_css, _canal_consola, crm, marketing):
       todo lo que dice var(--font-serif) pasa a Orbitron, var(--font-sans) a Chakra y var(--font-mono) a la mono alojada.
     · :where(...) = valor POR DEFECTO (especificidad 0): la regla de la pantalla, si existe, manda.
     · selector normal = se IMPONE sobre la pantalla (mismo selector que usa ella, cargado después).
   Aquí van los nombres de clase INEQUÍVOCOS (significan lo mismo en toda pantalla que los usa, aunque sea una sola).
   Lo genérico o ambiguo de una pantalla (h2 rótulo de admin, .panel h2 de canal-contrato, .sub, .hint, label suelto,
   fuentes escritas a mano) se corrige EN esa pantalla: lista en diseno_etapa1.md §5. */

/* ── Fuentes: copia EXACTA del bloque probado de reseller.css (líneas 15-32) ── */
@font-face{font-family:'Orbitron';font-style:normal;font-weight:500;font-display:swap;src:url(fuentes/Orbitron-var-latin.woff2) format('woff2')}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/Orbitron-var-latin.woff2) format('woff2')}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/Orbitron-var-latin.woff2) format('woff2')}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:500;font-display:swap;src:url(fuentes/ChakraPetch-600-latin.woff2) format('woff2');unicode-range:U+00D1}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/ChakraPetch-600-latin.woff2) format('woff2');unicode-range:U+00D1}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/ChakraPetch-700-latin.woff2) format('woff2');unicode-range:U+00D1}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:500;font-display:swap;src:url(fuentes/ChakraPetch-600-latin.woff2) format('woff2');unicode-range:U+00F1;size-adjust:116.5%}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/ChakraPetch-600-latin.woff2) format('woff2');unicode-range:U+00F1;size-adjust:116.5%}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/ChakraPetch-700-latin.woff2) format('woff2');unicode-range:U+00F1;size-adjust:116.5%}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/ChakraPetch-400-latin.woff2) format('woff2')}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:500;font-display:swap;src:url(fuentes/ChakraPetch-500-latin.woff2) format('woff2')}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/ChakraPetch-600-latin.woff2) format('woff2')}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/ChakraPetch-700-latin.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(fuentes/JetBrainsMono-var-latin.woff2) format('woff2')}

/* ── Tokens: los tres juegos de nombres que conviven en la intranet apuntan a las mismas tres fuentes ── */
:root{
 --font-tit:'Orbitron','Chakra Petch',system-ui,sans-serif;
 --font-serif:var(--font-tit);   /* design.css, crm (lo redefine en su :root: esta hoja va después) */
 --serif:var(--font-tit);        /* marketing/_shared/header.php */
 --font-sans:'Chakra Petch',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
 --sans:var(--font-sans);        /* av_css() de _agentes_lib.php */
 --font-mono:'JetBrains Mono',ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
 --mono:var(--font-mono);
 /* Títulos −20 % (26→21, 32→26, 20→16, 17→13,5). --fs-title-md lo usan 8 pantallas y design.css nunca lo definió
    (hoy sus h2 caen al tamaño heredado): queda definido. */
 --fs-title-xl:26px;--fs-title-lg:21px;--fs-title-md:14px;--fs-title:16px;--fs-title-sm:13.5px;
 /* --silver-deep (#5E6B7D) se usa como COLOR DE TEXTO en 20+ pantallas: 3,1-3,6:1. #838FA2 = 5,2:1 sobre abyss-3. */
 --silver-deep:#838FA2;--tx4:#838FA2;
 --foco-anillo:0 0 0 2px #070B14,0 0 0 4px #D4C5A0;
}

/* ── Base ── */
body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
/* Enlaces sueltos: varias pantallas los pintan con --night-soft (#2C6BA8 = 3,5:1). Pasan al ámbar del sistema (11:1).
   Los enlaces con clase propia (.tool, .crumbs a, .rowlinks a, a.kpi…) conservan su color: su selector pesa más. */
a{color:#D4C5A0}

/* ── Títulos ── */
/* La fuente se impone; el espaciado va en :where para que un h2/h3 usado como RÓTULO (mayúsculas y .1-.22em en
   admin/index, canal-designaciones) conserve el suyo. */
h1,h2,h3,h4,.h1{font-family:var(--font-tit)}
:where(h1,h2,h3,h4,.h1,.card h3,.ptile h3,.acct-title,.vig .t,.pname){letter-spacing:.01em}
h1,.h1{font-weight:600;line-height:1.25}
h1{font-size:21px}
:where(h2){font-size:15px;font-weight:600;line-height:1.3}
:where(h3){font-size:13px;font-weight:600;line-height:1.3}
:where(h4){font-size:12px;font-weight:600}
.card h3,.ptile h3,.acct-title,.vig .t,.pname{font-weight:600}
.hero h1{font-size:24px}                                   /* crm y marketing: 28-30 px */
@media(max-width:760px){.hero h1{font-size:19px}}          /* crm/empresa bajaba a 22 en el teléfono: esta hoja no lo sube */
.empty strong{font-family:var(--font-tit);font-size:16px;font-weight:600}  /* _canal_consola, canal-biblioteca: 20 px */
.modal h3,.panel-head h2{font-family:var(--font-tit);font-size:17.5px;font-weight:600}   /* plataformas, admin: 22 px */
.app-card .info h3{font-size:19px}.empty h4{font-size:14.5px}                             /* plataformas: 24 y 18 px */
.vig .t{font-size:16px}.sub-grid .card h3{font-size:14.5px}                               /* canal-contrato 20 · apps 18 */

/* ── Lectura (design.css y cinco pantallas la escribieron en Fraunces) ── */
.lead,.card p,.note,.bp-flash,.cm-flash,.flashx,.mockbox,ul.claves li{font-family:var(--font-sans);font-weight:400}

/* ── Cifras: mono tabular. Todas estas clases son números en todas las pantallas que las usan ── */
.kpi .v,.kpi .n,.kpi .val,.kpi .num,.kpi strong,.kpi2 .v,.k .v,.cab .n,.stat b,.matrix-counter strong,.app-card .stats strong{
 font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:0}
.kpi .v,.kpi .n,.kpi .val,.kpi strong,.kpi2 .v,.stat b{font-size:22px;line-height:1.1}
.kpi .num{font-size:28px}                                  /* marketing: 40 px */
/* Conteos y porcentajes con clase propia: el 0 de Orbitron se confunde con la O. */
.tab .n,.btn.lin{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none}
/* Dato dentro de un botón o de una nota (el correo de admin/?t=config, el de av_layout_top): sin mayúsculas ni fuente
   de título (molde: reseller.css:257). */
.btn .mono{font-family:var(--font-mono);font-size:inherit;color:inherit;letter-spacing:0;text-transform:none}
.note.mono{font-family:var(--font-mono)}

/* ── Rótulos: Orbitron chico y espaciado (molde: th 9,5 · label 9 · KPI 8,5) ── */
th,.tbl th,.tbl thead th,.mini th,.matrix thead th,table.bandeja th,table.bp th,.redes th,.pre-diff th{
 font-family:var(--font-tit);font-size:9.5px;font-weight:600;letter-spacing:.1em}
label.fl,.f>label,.field label,.frow label,.form .frow label,.campo label,.crear label,.fld label,.filters label,.linkbox label{
 font-family:var(--font-tit);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.kpi .l,.kpi .k,.kpi .lbl,.kpi > small,.kpi2 .l,.k .l,td[data-l]::before{
 font-family:var(--font-tit);font-size:8.5px;font-weight:600;letter-spacing:.11em}
/* .panel h3 NO va aquí: en soporte-* es rótulo, en _agentes_lib es título de 13 px (se corrige en cada pantalla). */
.eyebrow,.section-label,.card .meta,.note .note-head,.tag,.quien-soy .marca,.tool-nota,.grupo h2,.psec h4,.cm-box h4,
.diag-row .k,.acct-badges .also,.panel-head .tag,.modal .tag,.app-card .info .vert,.op .tag,.op .ir,.pre-modo legend,.ptag{
 font-family:var(--font-tit);font-size:9px;font-weight:600;letter-spacing:.13em}
/* Plataformas · Contrataciones: el th de cada fila es el NOMBRE de la empresa, no un rótulo (bajaba de 12,5 a 9,5 px). */
.matrix tbody th{font-size:12.5px;letter-spacing:normal}
/* label.fl <small> «· opcional»: vuelve a la letra de lectura, sin mayúsculas. */
label.fl small{font-family:var(--font-sans);font-size:11px;letter-spacing:0;text-transform:none;font-weight:400}

/* ── Pestañas y navegación interna: Orbitron, 46 px ── */
.tab,.nav a,.subnav a,.plat-subnav a,.dtab-nav button,header.s nav.tnav a{
 display:inline-flex;align-items:center;min-height:46px;font-family:var(--font-tit);font-size:10.5px;font-weight:600;
 letter-spacing:.07em;text-transform:uppercase}
/* Teléfono: la barra de 9 pestañas de marketing se desliza de lado en vez de apilarse en 3-4 filas (molde: reseller.css:82). */
@media(max-width:760px){header.s nav.tnav{flex-wrap:nowrap;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
 header.s nav.tnav a{min-height:44px;white-space:nowrap}}

/* ── Botones: Orbitron, 42 px (36 los chicos) ── */
.btn,.cta,.acts button,.crear button,.save,button.save,.lnkbtn{
 display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;
 font-family:var(--font-tit);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.btn.small,.btn.sm,.btn-sm{min-height:36px;font-size:9.5px}
.btn.lg{font-size:11px}
/* En tablas, el tamaño chico del molde (.btn.sm 36 px, 9,5): con 42 px las filas de canal-equipos crecían ~15 %. */
td .btn{min-height:36px;font-size:9.5px}
/* En celdas de tabla el botón puede partirse en dos líneas: en Orbitron mayúscula mide ~35 % más y, sin esto,
   «Reenviar aviso de la declaración» sacaba la tabla del ancho (canal-equipos). En el teléfono no: ahí la tabla ya se
   desliza dentro de su envoltorio y partir el botón lo dejaba en 4 líneas. */
@media(min-width:761px){td .btn{white-space:normal;text-align:center;line-height:1.3;padding-top:6px;padding-bottom:6px}}
/* Botones-píldora de herramientas y filtros (consola del canal, finanzas): mismo idioma, más chicos. */
.tool,.chipf,.card .arr{font-family:var(--font-tit);font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
.tool,.chipf{min-height:40px}
a.chip,a.cat,.bp-tabs a{min-height:40px;display:inline-flex;align-items:center}
details.alta>summary,.fold>summary{font-family:var(--font-tit);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
details.alta>summary .sub{text-transform:none;letter-spacing:0;font-weight:400}   /* la bajada del plegable sigue en lectura */

/* ── El código de atribución de la consola del canal no se parte en el guion («RSLR-» / «A7Q2»). Solo ahí:
   td.mono también envuelve texto libre (motivo, correos, listas) y con nowrap sacaba la tabla del ancho. ── */
td[data-l]>span.mono{white-space:nowrap}
/* Cifras con class="n" (en la intranet todas son conteos): mono tabular (molde: reseller.css:243). */
td.n{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* ── Contrato «en papel» (canal/partner/contrato.php): NO toma la voz de la consola, como en reseller.css ── */
.ct-doc{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
.ct-doc h1,.ct-doc h2,.ct-doc h3,.ct-doc h4,.ct-doc th{font-family:inherit;letter-spacing:normal;text-transform:none}
.ct-doc th{font-size:inherit}

/* ── Campos: 40 px (la letra la decide cada pantalla) ── */
input:not([type]),input[type=text],input[type=email],input[type=search],input[type=tel],input[type=number],input[type=date],
input[type=url],input[type=password],input[type=datetime-local],select{min-height:40px}
::placeholder{opacity:1;color:#909AAC}
input[type=date],input[type=datetime-local]{color-scheme:dark}

/* ── Foco de dos colores (y outline transparente que en Contraste alto pasa a color de sistema) ── */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
 outline:2px solid transparent;outline-offset:2px;box-shadow:var(--foco-anillo)}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{box-shadow:none;outline:2px solid #D4C5A0;outline-offset:2px}
/* Pestañas dentro de una barra con overflow (sub-nav de plataformas, barra de marketing en el teléfono): el anillo
   exterior se recortaba arriba y abajo. Va por dentro (molde: reseller.css:82). */
.plat-subnav a:focus-visible,header.s nav.tnav a:focus-visible{box-shadow:inset 0 0 0 2px #D4C5A0,inset 0 0 0 4px #070B14}
/* Dentro de los mapas de Google (overflow:hidden) el anillo se recorta: ahí vuelve el del navegador (molde: reseller.css:218). */
.gm-style [tabindex]:focus-visible,.gm-style button:focus-visible{outline:revert;box-shadow:none}
/* Campos cuyo :focus de pantalla (más pesado) pone outline:none: el outline transparente vuelve para Contraste alto. */
.field :is(input,select,textarea):focus-visible,.filters :is(input,select):focus-visible,.campo input:focus-visible,
.fld :is(input,select):focus-visible{outline:2px solid transparent;outline-offset:2px}
/* El sub-nav fijo de plataformas tapaba el campo o el enlace que recibe el foco al volver con Shift+Tab. */
html:has(.plat-subnav){scroll-padding-top:66px}

/* ── Cabecera compartida (_shared/header.php, 18 pantallas): logos oficiales, nunca «Silverswan» escrito ── */
.brand-mark img{display:block;flex:none}
.brand-mark .cisne{width:28px;height:28px}
.brand-mark .wm{width:auto;height:19px}
.brand-mark .sub{font-family:var(--font-tit);font-size:8.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
 border:1px solid #B8A47A;border-radius:999px;padding:5px 9px;color:#D4C5A0;white-space:nowrap}
.user-tag a{font-family:var(--font-tit);font-size:10px;font-weight:600;letter-spacing:.08em;padding:8px 10px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;z-index:50;background:#D4C5A0;color:#0C1220;padding:10px 14px;border-radius:8px;
 font:600 11px var(--font-tit);letter-spacing:.08em;text-transform:uppercase}
.skip:focus{left:12px}

/* ── Botones «‹ ›» que _guard.php inyecta: quedan en sus 30 px y opacidad .4 (ya cumplen 2.5.8 y así tapan menos);
   solo se hacen visibles al recibir el foco del teclado. body+id (1,1,1) pesa más que su :hover (1,1,0). ── */
body #sw-navbtns:focus-within{opacity:1}

/* ── Impresión (canal-equipos, «Imprimir» del 28-09): la cabecera de tabla a 7,5 pt (HOY sale a 7,9) y sin espaciado
   ancho. Lleva .tbl thead th porque ese selector (0,1,2) está en el grupo de rótulos de arriba. ── */
@media print{th,.tbl th,.tbl thead th{font-size:7.5pt;letter-spacing:.04em}}

@media(forced-colors:active){.nav a.on,.tab.on,.subnav a.on,header.s nav.tnav a.on{text-decoration:underline}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
