/*
  GCG authenticated visual system
  Mirrors the public landing's visual DNA without changing page layouts.
  Page-specific styles remain responsible for dimensions; this file owns appearance.

  Estado de los !important (revisión 2026-10-06, 202 -> ver recuento al final del archivo):
  - Eliminados: los ~50 `border-radius:0!important` dispersos (ahora una sola regla con la misma lista de selectores),
    los de transiciones, los de posición de popovers (ya los define nav.css/base.css), la animación `gcg-frame-scan`
    y el bloque "Rendimiento v0.3.3" (animation:none!important), el hover con translateX(3px) y el foco de 1px.
  - Conservados a propósito (documentados): marcos/paneles del dashboard y torneos (border/background/box-shadow),
    filas "de línea" (border/background), estados vacíos y foco de formularios. Existen porque las páginas siguen
    declarando su propio fondo/borde para esas mismas clases; quitarlos exige migrar primero el CSS de cada página
    (torneos.css, home-v2.css, equipos.css...) y no es seguro hacerlo desde aquí. Siguiente paso: mover cada bloque
    a components/panels.css|badges.css|tables.css y retirar la clase de la lista.
*/

/* Rectangular technological geometry is the default for authenticated UI. */
.gcg :where(
  [class*="card"],
  [class*="panel"],
  [class*="modal"],
  [class*="toolbar"],
  [class*="box"],
  [class*="tab"],
  [class*="chip"],
  [class*="badge"]
) { border-radius:0 !important; }
/* Geometría: radio 0 en TODO el sistema (esquinas cortadas por clip-path, no redondeadas). Antes había ~100 declaraciones
   `border-radius:0!important` repartidas por el archivo; ahora es una sola, con la misma lista de selectores.
   Las excepciones circulares (avatar, puntos de estado) siguen más abajo y ganan por especificidad. */
.gcg :where( .gcg-v2-hero, .gcg-v2-rail-panel, .gcg-v2-torneos, .gcg-v2-progreso, .gcg-v2-section-hero, .gcg-empresa-card, .gcg-evento-card, .gcg-admin-stat-card, .gcg-admin-imagen-card, .gcg-admin-producto-card, .gcg-eq-equipo, .gcg-eq-chat, .gcg-rw-card, .gcg-giftcard-instrucciones, .gcg-torneos-modulo, .gcg-torneo-v2-aside, .gcg-torneo-revision, .gcg-lmlista__item, .gcg-lm__panel, .gcg-soporte-widget__panel ),
.gcg :where( .gcg-v2-actividad, .gcg-v2-atajos a, .gcg-v2-pase, .gcg-empresa-stat, .gcg-empresa-event, .gcg-empresa-row, .gcg-admin-stat-card, .gcg-admin-imagen-card, .gcg-admin-producto-card, .gcg-rw-card, .gcg-rw-mov, .gcg-eq-juego, .gcg-eq-miembro, .gcg-eq-identidad, .gcg-torneos-fila, .gcg-lmlista__item ),
.gcg .gcg-v2-hero,
.gcg .gcg-v2-hero__poster-marco,
.gcg .gcg-v2-tab,
.gcg .gcg-v2-tab__contador,
.gcg .gcg-v2-filtros select,
.gcg .gcg-v2-buscador,
.gcg .gcg-v2-fila__portada,
.gcg .gcg-v2-fila__cupo-barra,
.gcg .gcg-v2-barra,
.gcg .gcg-v2-section-hero,
.gcg [class*="gcg-v2-section-card"],
.gcg [class*="gcg-v2-info-card"],
.gcg .gcg-torneos-barra,
.gcg .gcg-torneos-filtros,
.gcg .gcg-torneos-tabla-wrap,
.gcg .gcg-torneos-portada,
.gcg .gcg-torneos-estado-tab,
.gcg .gcg-torneos-etiqueta,
.gcg .gcg-torneos-estado,
.gcg :where( .gcg-ranking-card, .gcg-comunidad-card, .gcg-game-card, .gcg-perfil-card, .gcg-tutorial-card ),
.gcg .gcg-empresa-sidebar,
.gcg .gcg-empresa-navbtn,
.gcg .gcg-empresa-tablewrap,
.gcg .gcg-empresa-badge,
.gcg .gcg-empresa-modal__box,
.gcg .gcg-admin-topbar,
.gcg .gcg-admin-sidebar,
.gcg .gcg-admin-drawer,
.gcg .gcg-admin-nav__link,
.gcg .gcg-admin-toolbar,
.gcg .gcg-admin-env-toolbar,
.gcg .gcg-admin-env-switch,
.gcg .gcg-form-brand,
.gcg .gcg-form-volver,
.gcg .gcg-torneo-pago-form,
.gcg .gcg-torneo-pago-datos,
.gcg .gcg-rw-tab,
.gcg .gcg-rw-card__media,
.gcg .gcg-giftcard__art,
.gcg .gcg-giftcard-filtro,
.gcg .gcg-giftcard-meta-chip,
.gcg .gcg-eq-tag,
.gcg .gcg-eq-rol,
.gcg .gcg-eq-codigo,
.gcg .gcg-eq-input-codigo,
.gcg .gcg-eq-msg,
.gcg .gcg-evento-form,
.gcg .gcg-evento-facts > *,
.gcg .gcg-lm__hero,
.gcg .gcg-lm__tablero,
.gcg .gcg-lm__objetivos,
.gcg .gcg-lm__pill,
.gcg .gcg-lm__retrato,
.gcg .gcg-lm__crest,
.gcg .gcg-lm__escudo,
.gcg :where(.gcg-modal__dialog,.gcg-modal__content,.gcg-auth-modal,.gcg-soporte-widget__panel,.gcg-jugador-popover),
.gcg .gcg-soporte-widget__btn,
.gcg .gcg-mision-fila,
.gcg .gcg-v2-vacio,
.gcg .gcg-security__notice,
.gcg .gcg-config-panel,
.gcg .gcg-config-seccion,
.gcg .gcg-cuenta-juego,
.gcg .gcg-stats-mini,
.gcg .gcg-stats-partida,
.gcg .gcg-stats-sancion,
.gcg .gcg-about-card,
.gcg .gcg-lb-card,
.gcg .gcg-lb-partida,
.gcg .gcg-vivo-kda-item,
.gcg .gcg-ct-fase-bloque,
.gcg .gcg-torneo-stat,
.gcg .gcg-bracket-partido,
.gcg .gcg-ct-portada-opcion,
.gcg :where( .gcg-v2-notificaciones__panel,.gcg-empresa-modal__box,.gcg-empresa-camera, .gcg-empresa-camera__frame,.gcg-emp-paquete,.gcg-emp-nota, .gcg-empresa-operacion-resumen,.gcg-empresa-switchbox>label,.gcg-empresa-checks label, .gcg-adminempresa-selector select,.gcg-adminempresa-check,.gcg-adminempresa-plan-row, .gcg-adminempresa-state-grid>div,.gcg-adminempresa-empty-card, .gcg-empresa-logo-editor,.gcg-empresa-logo-preview,.gcg-empresa-publicidad-preview, .gcg-empresa-publicidad-preview img,.gcg-admin-env-switch,.gcg-admin-env-switch__icon, .gcg-admin-env-toolbar,.gcg-admin-env-toolbar__switch,.gcg-evento-result__qr, .gcg-rw-aviso,.gcg-rw-card,.gcg-giftcard-instrucciones,.gcg-torneo-revision__estado, .gcg-torneo-pago-datos,.gcg-soporte-widget__avatar,.gcg-soporte-widget__close, .gcg-soporte-widget__tutorial,.gcg-soporte-widget__topics button, .gcg-modal__dialog,.gcg-modal__content,.gcg-jugador-popover ),
.gcg :where( .gcg-empty,.gcg-v2-vacio,.gcg-empresa-empty,.gcg-adminempresa-empty-card, .gcg-eq-vacio,.gcg-clan-empty,.gcg-comunidad-ranking__empty,.gcg-lm__vacio, .gcg-v2-notificaciones__vacio ),
.gcg :where(.gcg-input,.gcg-select,.gcg-textarea,input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],select,textarea),
.gcg :where(.gcg-badge,.gcg-empresa-badge,.gcg-torneos-etiqueta,.gcg-torneos-estado,.gcg-jugador-chip,.gcg-giftcard-meta-chip) { border-radius:0 !important; }
.gcg :where( .gcg-v2-hero, .gcg-v2-rail-panel, .gcg-v2-torneos, .gcg-v2-progreso, .gcg-empresa-card, .gcg-evento-card, .gcg-torneos-modulo, .gcg-torneo-v2-aside, .gcg-lm__panel )::after { border-radius:0 !important; }

/* Global technical surfaces */
.gcg {
  --gcg-tech-surface: linear-gradient(145deg, rgba(17,23,28,.82), rgba(9,13,16,.94));
  --gcg-tech-surface-soft: linear-gradient(90deg, rgba(244,166,42,.028), rgba(17,23,28,.24) 45%, transparent);
}

.gcg :is(
  .gcg-v2-hero,
  .gcg-v2-rail-panel,
  .gcg-v2-torneos,
  .gcg-v2-progreso,
  .gcg-v2-section-hero,
  .gcg-empresa-card,
  .gcg-evento-card,
  .gcg-admin-stat-card,
  .gcg-admin-imagen-card,
  .gcg-admin-producto-card,
  .gcg-eq-equipo,
  .gcg-eq-chat,
  .gcg-rw-card,
  .gcg-giftcard-instrucciones,
  .gcg-torneos-modulo,
  .gcg-torneo-v2-aside,
  .gcg-torneo-revision,
  .gcg-lmlista__item,
  .gcg-lm__panel,
  .gcg-soporte-widget__panel
) {
  
  box-shadow: none !important;
}

/* Major modules: one technical frame, not piles of floating cards. */
.gcg :is(
  .gcg-v2-hero,
  .gcg-v2-rail-panel,
  .gcg-v2-torneos,
  .gcg-v2-progreso,
  .gcg-empresa-card,
  .gcg-evento-card,
  .gcg-torneos-modulo,
  .gcg-torneo-v2-aside,
  .gcg-lm__panel
) {
  position: relative;
  border: 1px solid var(--gcg-border) !important;
  background-image: linear-gradient(145deg, rgba(17,23,28,.82), rgba(9,13,16,.94)) !important;
  background-repeat: no-repeat !important;
  background-size: 100% 100% !important;
  background-position: 0 0 !important;
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
}

/* Small cards become line-separated information blocks. */
.gcg :is(
  .gcg-v2-actividad,
  .gcg-v2-atajos a,
  .gcg-v2-pase,
  .gcg-empresa-stat,
  .gcg-empresa-event,
  .gcg-empresa-row,
  .gcg-admin-stat-card,
  .gcg-admin-imagen-card,
  .gcg-admin-producto-card,
  .gcg-rw-card,
  .gcg-rw-mov,
  .gcg-eq-juego,
  .gcg-eq-miembro,
  .gcg-eq-identidad,
  .gcg-torneos-fila,
  .gcg-lmlista__item
) {
  
  box-shadow: none !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 1px solid var(--gcg-border) !important;
  border-bottom: 1px solid var(--gcg-divider) !important;
  background: transparent !important;
}
.gcg :is(
  .gcg-v2-actividad,
  .gcg-v2-atajos a,
  .gcg-v2-pase,
  .gcg-empresa-event,
  .gcg-empresa-row,
  .gcg-rw-mov,
  .gcg-eq-miembro,
  .gcg-torneos-fila,
  .gcg-lmlista__item
):hover {
  background: linear-gradient(90deg, rgba(244,166,42,.045), transparent 62%) !important;
  border-top-color: rgba(244,166,42,.42) !important;
}

/* Dashboard */
.gcg .gcg-v2-page { background: var(--gcg-bg); }

.gcg .gcg-v2-hero__titulo { font-family:var(--gcg-font-display);font-weight:800;letter-spacing:-.035em;text-transform:uppercase; }
.gcg .gcg-v2-hero__eyebrow { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);font-weight:700;letter-spacing:.14em; }
.gcg .gcg-v2-rail-panel { overflow:hidden; }
.gcg .gcg-v2-rail-head { border-bottom:1px solid var(--gcg-divider);padding-bottom:12px; }
.gcg .gcg-v2-rail-head h2,.gcg .gcg-v2-bloque__head strong { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.08em;text-transform:uppercase; }
.gcg .gcg-v2-tabs { border-bottom:1px solid var(--gcg-border); }
.gcg .gcg-v2-tab { background:transparent !important;font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);font-weight:700;letter-spacing:.05em;text-transform:uppercase; }
.gcg .gcg-v2-tab[aria-selected="true"] { color:#fff;background:transparent !important; }
.gcg .gcg-v2-tab[aria-selected="true"]::after { left:0;right:0;background:var(--gcg-accent); }

.gcg .gcg-v2-filtros select,.gcg .gcg-v2-buscador { background:#090D10 !important;border:1px solid var(--gcg-border) !important;box-shadow:none !important; }
.gcg .gcg-v2-tabla th { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.09em;text-transform:uppercase; }
.gcg .gcg-v2-tabla td { border-bottom:1px solid var(--gcg-divider); }
.gcg .gcg-v2-tabla tbody tr:hover { background:linear-gradient(90deg,rgba(244,166,42,.04),transparent 62%); }

.gcg .gcg-v2-pase { padding-left:0 !important;padding-right:0 !important; }
.gcg .gcg-v2-pase__nivel { font-family:var(--gcg-font-display); }

/* Section pages */
.gcg .gcg-v2-section-hero { box-shadow:none !important; }
.gcg .gcg-v2-section-hero__eyebrow { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.14em;font-weight:700;text-transform:uppercase; }
.gcg .gcg-v2-section-hero h1 { font-family:var(--gcg-font-display);font-weight:800;letter-spacing:-.045em;text-transform:uppercase; }
.gcg [class*="gcg-v2-section-card"],
.gcg [class*="gcg-v2-info-card"] { box-shadow:none !important; }

/* Torneos: line-first catalogue */
.gcg .gcg-torneos-layout { gap:18px; }

.gcg .gcg-torneos-tabla-wrap { border:1px solid var(--gcg-border) !important;background:rgba(9,13,16,.48) !important;box-shadow:none !important; }
.gcg .gcg-torneos-tabla thead th { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.09em;text-transform:uppercase; }
.gcg .gcg-torneos-fila { transition:background .2s ease,border-color .2s ease; }

.gcg .gcg-torneos-estado-tab { background:transparent !important;border-bottom:1px solid transparent; }
.gcg .gcg-torneos-estado-tab--activo { color:#fff!important;border-bottom-color:var(--gcg-accent); }
.gcg .gcg-torneos-etiqueta,.gcg .gcg-torneos-estado { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.06em; }

/* Rankings / community / games / profile / tutorial generic blocks */
.gcg :is(
  .gcg-ranking-card,
  .gcg-comunidad-card,
  .gcg-game-card,
  .gcg-perfil-card,
  .gcg-tutorial-card
) { box-shadow:none!important; }

/* Empresa */
.gcg .gcg-empresa-shell { background:transparent; }
.gcg .gcg-empresa-sidebar { background:#090D10!important;border-right:1px solid var(--gcg-border)!important;box-shadow:none!important; }
.gcg .gcg-empresa-navbtn { background:transparent!important;border-bottom:1px solid var(--gcg-divider)!important; }
.gcg .gcg-empresa-navbtn:hover,.gcg .gcg-empresa-navbtn.is-active,.gcg .gcg-empresa-navbtn[aria-current="page"] { background:linear-gradient(90deg,rgba(244,166,42,.07),transparent)!important;color:#fff!important;box-shadow:inset 2px 0 0 var(--gcg-accent); }
.gcg .gcg-empresa-stat { padding-left:0!important;padding-right:0!important; }
.gcg .gcg-empresa-card__head { border-bottom:1px solid var(--gcg-divider); }
.gcg .gcg-empresa-title { font-family:var(--gcg-font-display);font-weight:800;letter-spacing:-.035em;text-transform:uppercase; }
.gcg .gcg-empresa-kicker,.gcg .gcg-empresa-topline { font-family:var(--gcg-font-mono);letter-spacing:.10em;text-transform:uppercase; }
.gcg .gcg-empresa-tablewrap { border:1px solid var(--gcg-border)!important;box-shadow:none!important; }
.gcg .gcg-empresa-table th { font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.08em;text-transform:uppercase; }

.gcg .gcg-empresa-modal__box { clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px)); }

/* Admin */
.gcg-admin-body { background:var(--gcg-bg); }
.gcg .gcg-admin-topbar { background:rgba(6,9,11,.96)!important;border-bottom:1px solid var(--gcg-border)!important; }
.gcg .gcg-admin-sidebar,.gcg .gcg-admin-drawer { background:#090D10!important;box-shadow:none!important; }
.gcg .gcg-admin-sidebar__brand,.gcg .gcg-admin-topbar__brand { font-family:var(--gcg-font-mono);letter-spacing:.08em;text-transform:uppercase; }
.gcg .gcg-admin-nav__link { background:transparent!important;border-bottom:1px solid var(--gcg-divider)!important; }
.gcg .gcg-admin-nav__link:hover,.gcg .gcg-admin-nav__link--activo { color:#fff!important;background:linear-gradient(90deg,rgba(244,166,42,.07),transparent)!important;box-shadow:inset 2px 0 0 var(--gcg-accent); }
.gcg .gcg-admin-stat-card { padding-left:0!important;padding-right:0!important; }
.gcg .gcg-admin-titulo { font-family:var(--gcg-font-display);font-weight:800;letter-spacing:-.04em;text-transform:uppercase; }

.gcg .gcg-admin-env-toolbar,.gcg .gcg-admin-env-switch { box-shadow:none!important; }

/* Forms / checkout / account */
.gcg form .gcg-field + .gcg-field { margin-top:0; }

/* Rewards / store */
.gcg .gcg-rw-tabs { border-bottom:1px solid var(--gcg-border); }
.gcg .gcg-rw-tab { background:transparent!important;font-family:var(--gcg-font-mono);font-size:var(--gcg-text-label,11px);letter-spacing:.08em;text-transform:uppercase; }
.gcg .gcg-rw-tab--activo { color:#fff!important;border-bottom:2px solid var(--gcg-accent); }
.gcg .gcg-rw-card { padding-left:0!important;padding-right:0!important; }

/* Teams / clans / chat */
.gcg .gcg-eq-equipo { padding-left:0!important;padding-right:0!important; }

.gcg .gcg-eq-chat { border:1px solid var(--gcg-border)!important;background:#090D10!important;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%); }
.gcg .gcg-eq-msg { background:transparent!important;border-bottom:1px solid var(--gcg-divider)!important; }

/* Event page */
.gcg .gcg-evento-card { overflow:hidden; }
.gcg .gcg-evento-form { background:transparent!important; }

/* Live match keeps team colors, only frame language changes. */
.gcg .gcg-lm__hero,.gcg .gcg-lm__tablero,.gcg .gcg-lm__objetivos { box-shadow:none!important; }
.gcg .gcg-lm__pill { font-family:var(--gcg-font-mono); }

/* Modals / popovers */
.gcg :is(.gcg-modal__dialog,.gcg-modal__content,.gcg-auth-modal,.gcg-soporte-widget__panel,.gcg-jugador-popover) { box-shadow:0 30px 80px rgba(0,0,0,.40)!important; }
.gcg .gcg-soporte-widget__btn { clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%); }

/* Fine-grained dashboard/list normalization. */
.gcg .gcg-mision-fila { border-bottom:1px solid var(--gcg-divider); }
.gcg .gcg-mision-fila:hover { background:linear-gradient(90deg,rgba(244,166,42,.04),transparent)!important; }
.gcg .gcg-v2-vacio { background:transparent!important;border-style:solid!important; }

.gcg .gcg-config-panel,.gcg .gcg-config-seccion,.gcg .gcg-cuenta-juego,.gcg .gcg-stats-mini,.gcg .gcg-stats-partida,.gcg .gcg-stats-sancion { box-shadow:none!important; }
.gcg .gcg-about-card,.gcg .gcg-lb-card,.gcg .gcg-lb-partida,.gcg .gcg-vivo-kda-item,.gcg .gcg-ct-fase-bloque,.gcg .gcg-torneo-stat,.gcg .gcg-bracket-partido { box-shadow:none!important; }

/* Remaining page-specific rectangles use the same angular language. */
.gcg :where(
  .gcg-clanes-form,.gcg-clan-card,.gcg-clan-detail,
  .gcg-evento-result__qr,
  .gcg-form-hero,.gcg-form-card,.gcg-form-status,.gcg-form-sponsors,.gcg-form-sponsor,
  .gcg-comunidad-canal,.gcg-tutorial-step,.gcg-tutorial-faq details,
  .gcg-page-recompensas .gcg-rw-resumen,
  .gcg-page-tienda .gcg-saldo-row,.gcg-page-tienda .gcg-tienda-filtro,.gcg-page-tienda .gcg-tienda-filtro__link,
  .gcg-empresa-event__metric,.gcg-empresa-camera,.gcg-empresa-camera__frame,.gcg-emp-paquete,.gcg-emp-nota,
  .gcg-empresa-operacion-resumen,.gcg-empresa-switchbox>label,.gcg-empresa-checks label,
  .gcg-adminempresa-mode,.gcg-adminempresa-selector select,.gcg-adminempresa-check,.gcg-adminempresa-plan-row,.gcg-adminempresa-state-grid>div,.gcg-adminempresa-empty-card,
  .gcg-empresa-publicidad-preview,.gcg-empresa-publicidad-preview img,
  .gcg-2fa-clave,.gcg-admin-avisos,.gcg-admin-env-switch,.gcg-admin-env-switch__icon,.gcg-admin-env-toolbar__switch,
  .gcg-eq-juego__portada,.gcg-eq-msg__texto,.gcg-eq-vacio,
  .gcg-rw-aviso,.gcg-giftcard-filtros,
  .gcg-jugador-chip,
  .gcg-lm__item,
  .gcg-modal,.gcg-modal__close,.gcg-toast,
  .gcg-soporte-widget__close,.gcg-soporte-widget__tutorial,.gcg-soporte-widget__topics button,
  .gcg-torneo-volver,.gcg-torneo-v2-hero,.gcg-torneo-v2-game-title,.gcg-torneo-v2-hero__meta span,.gcg-torneo-stats,.gcg-torneo-revision__estado,
  .gcg-torneos-principal,.gcg-torneos-portada,.gcg-torneos-esqueleto__fila,.gcg-torneos-paginacion button,.gcg-torneos-destacado__arte,.gcg-torneos-cuota
) { border-radius:0!important; }

/* Keep genuinely circular affordances circular. */
.gcg :is(.gcg-v2-avatar,.gcg-v2-estado::before,.gcg-v2-tab__vivo,.gcg-soporte-widget__pulse) { border-radius:50%!important; }

/* Section separators echo landing. */
.gcg main > section,
.gcg .gcg-v2-main > section,
.gcg .gcg-admin-vista,
.gcg .gcg-empresa-view {
  position:relative;
}
.gcg .gcg-admin-vista > h1::before,
.gcg .gcg-empresa-view > h1::before,
.gcg .gcg-v2-section-hero__eyebrow::before {
  content:'';display:inline-block;width:24px;height:2px;margin-right:10px;vertical-align:middle;background:var(--gcg-accent);
}

/* Sin animaciones de barrido decorativas (retirados gcg-tech-line-travel y gcg-frame-scan). */
.gcg .gcg-panel > .gcg-panel__header::before { content:'';position:absolute;top:0;left:0;width:52px;height:1px;background:linear-gradient(90deg,var(--gcg-accent),transparent); }

@media (prefers-reduced-motion: reduce) {
  .gcg * { scroll-behavior:auto!important; }
}

/* === Premium polish 2026-09-19 === */
.gcg {
  --gcg-polish-cut: 10px;
  --gcg-polish-line: rgba(244,166,42,.52);
  --gcg-polish-line-soft: rgba(244,166,42,.18);
  --gcg-polish-hover: rgba(244,166,42,.045);
  --gcg-polish-ease: cubic-bezier(.2,.72,.24,1);
}

/* Interaction language: restrained, quick and technical. */
.gcg :is(a,button,[role="button"],summary,input,select,textarea) {
  -webkit-tap-highlight-color: transparent;
}
.gcg :is(.gcg-v2-nav__link,.gcg-drawer__link,.gcg-navbar__dropdown-item,
  .gcg-empresa-navbtn,.gcg-admin-nav__link,.gcg-rw-tab,.gcg-v2-tab,
  .gcg-torneos-estado-tab,.gcg-giftcard-filtro,.gcg-tienda-filtro__link) {
  transition: color .18s ease, border-color .22s ease, background .22s ease, opacity .18s ease;
}
/* .gcg-btn: transición, hover y foco viven en components/buttons.css (sin levantar el botón, sin !important). */

/* Major surfaces react by line/border, never by floating-card shadows. */
.gcg :is(
  .gcg-v2-hero,.gcg-v2-rail-panel,.gcg-v2-torneos,.gcg-v2-progreso,
  .gcg-v2-section-hero,.gcg-empresa-card,.gcg-evento-card,
  .gcg-torneos-modulo,.gcg-torneo-v2-aside,.gcg-lm__panel,
  .gcg-panel,.gcg-config-panel,.gcg-torneo-revision
) {
  transition: border-color .28s ease, background-color .28s ease, opacity .28s ease;
}
.gcg :is(
  .gcg-v2-hero,.gcg-v2-rail-panel,.gcg-v2-torneos,.gcg-v2-progreso,
  .gcg-v2-section-hero,.gcg-empresa-card,.gcg-evento-card,
  .gcg-torneos-modulo,.gcg-torneo-v2-aside,.gcg-lm__panel,
  .gcg-panel,.gcg-config-panel,.gcg-torneo-revision
):hover {
  border-color: rgba(244,166,42,.24) !important;
}

/* Dense information should read as rows/rails instead of cards. */
.gcg :is(
  .gcg-v2-actividad,.gcg-v2-atajos a,.gcg-empresa-event,.gcg-empresa-row,
  .gcg-rw-mov,.gcg-eq-miembro,.gcg-lmlista__item,.gcg-mision-fila,
  .gcg-comunidad-canal,.gcg-adminempresa-plan-row,.gcg-adminempresa-state-grid>div
) {
  position: relative;
  transition: background .2s ease, border-color .2s ease;
}
.gcg :is(
  .gcg-v2-actividad,.gcg-v2-atajos a,.gcg-empresa-event,.gcg-empresa-row,
  .gcg-rw-mov,.gcg-eq-miembro,.gcg-lmlista__item,.gcg-mision-fila,
  .gcg-comunidad-canal,.gcg-adminempresa-plan-row,.gcg-adminempresa-state-grid>div
):hover {
  background: linear-gradient(90deg,var(--gcg-polish-hover),transparent 62%) !important;
}

/* Old rounded UI remnants normalized to landing geometry. */

/* Empty states: a single technical field, not another decorative card. */
.gcg :is(
  .gcg-empty,.gcg-v2-vacio,.gcg-empresa-empty,.gcg-adminempresa-empty-card,
  .gcg-eq-vacio,.gcg-clan-empty,.gcg-comunidad-ranking__empty,.gcg-lm__vacio,
  .gcg-v2-notificaciones__vacio
) {
  position: relative;
  min-height: 92px;
  max-width: 100%;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 22px 18px !important;
  color: var(--gcg-text-muted) !important;
  border: 1px dashed rgba(170,178,186,.16) !important;
  border-left: 2px solid rgba(244,166,42,.50) !important;
  
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 56px),
    linear-gradient(90deg,rgba(244,166,42,.025),transparent 48%) !important;
  box-shadow: none !important;
  text-align: center;
}
.gcg :is(.gcg-empty,.gcg-v2-vacio,.gcg-empresa-empty,.gcg-eq-vacio,.gcg-clan-empty)::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 58px;
  height: 1px;
  background: linear-gradient(90deg,var(--gcg-accent),transparent);
}

/* Form polish: stronger rhythm and high-clarity focus without glow-heavy SaaS styling. */

.gcg :is(.gcg-input,.gcg-select,input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],select) {
  min-height: 42px;
}
.gcg :is(.gcg-input,.gcg-select,.gcg-textarea,input,select,textarea):focus-visible {
  outline: none !important;
  border-color: var(--gcg-accent) !important;
  box-shadow: inset 3px 0 0 var(--gcg-accent) !important;
}

/* Tables and data rails: refined separators + usable touch scrolling. */
.gcg :is(.gcg-table-wrap,.gcg-torneos-tabla-wrap,.gcg-empresa-tablewrap,.gcg-admin-tablewrap) {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(244,166,42,.58) transparent;
}
.gcg :is(.gcg-table-wrap,.gcg-torneos-tabla-wrap,.gcg-empresa-tablewrap,.gcg-admin-tablewrap)::-webkit-scrollbar { height: 7px; }
.gcg :is(.gcg-table-wrap,.gcg-torneos-tabla-wrap,.gcg-empresa-tablewrap,.gcg-admin-tablewrap)::-webkit-scrollbar-track { background: transparent; }
.gcg :is(.gcg-table-wrap,.gcg-torneos-tabla-wrap,.gcg-empresa-tablewrap,.gcg-admin-tablewrap)::-webkit-scrollbar-thumb { background: rgba(244,166,42,.50);border:2px solid transparent;background-clip:padding-box; }
.gcg :is(.gcg-table,.gcg-v2-tabla,.gcg-torneos-tabla,.gcg-empresa-table) tbody tr {
  transition: background .18s ease, color .18s ease;
}

/* Modal/popover detail mirrors landing framing. */
.gcg :is(.gcg-modal__dialog,.gcg-modal__content,.gcg-v2-notificaciones__panel,.gcg-navbar__dropdown,.gcg-empresa-modal__box,.gcg-soporte-widget__panel) {
  border-color: rgba(255,255,255,.12) !important;
  background-color: #090D10 !important;
  box-shadow: 0 28px 80px rgba(0,0,0,.42) !important;
  clip-path: polygon(0 0,calc(100% - var(--gcg-polish-cut)) 0,100% var(--gcg-polish-cut),100% 100%,var(--gcg-polish-cut) 100%,0 calc(100% - var(--gcg-polish-cut))) !important;
}

/*
 * Popovers must stay out of normal document flow.
 * A previous polish rule forced position:relative on these elements, causing
 * the profile menu to resize the header and shift the main navigation.
 */
.gcg :is(.gcg-modal__dialog,.gcg-modal__content,.gcg-empresa-modal__box) {
  position: relative;
}
.gcg .gcg-navbar__dropdown,
.gcg .gcg-v2-notificaciones__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  left: auto;
  margin: 0;
  z-index: 1500;
}
.gcg .gcg-soporte-widget__panel { position: absolute; }

/* Reserve scrollbar space so opening overlays/popovers never nudges the header. */
html {
  scrollbar-gutter: stable;
}
.gcg :is(.gcg-modal__dialog,.gcg-modal__content,.gcg-v2-notificaciones__panel,.gcg-navbar__dropdown,.gcg-empresa-modal__box,.gcg-soporte-widget__panel)::before {
  content: '';
  position: absolute;
  z-index: 4;
  top: 0;
  left: 0;
  width: 72px;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg,var(--gcg-accent),transparent);
}

/* Consistent compact badges: semantic colors remain, shape becomes technical. */
.gcg :is(.gcg-empresa-badge,.gcg-torneos-etiqueta,.gcg-torneos-estado,.gcg-jugador-chip,.gcg-giftcard-meta-chip) {
  
  font-family: var(--gcg-font-mono);
  letter-spacing: .055em;
}

/* Dashboard hero / bands: subtle image motion only on capable pointers. */
@media (hover:hover) and (pointer:fine) {
  .gcg .gcg-v2-hero__poster-marco,
  .gcg .gcg-v2-banda__arte,
  .gcg .gcg-v2-section-hero__mark {
    transition: transform .55s var(--gcg-polish-ease), opacity .35s ease, filter .35s ease;
  }
  .gcg .gcg-v2-hero:hover .gcg-v2-hero__poster-marco { transform: translate3d(-3px,-2px,0) scale(1.012); }
  .gcg .gcg-v2-banda:hover .gcg-v2-banda__arte { transform: scale(1.02); }
}

/* Responsive polish: preserve density but avoid desktop-only composition on narrow screens. */
@media (max-width: 900px) {
  .gcg { --gcg-polish-cut: 8px; }
  .gcg :is(.gcg-v2-hero,.gcg-v2-rail-panel,.gcg-v2-torneos,.gcg-v2-progreso,.gcg-v2-section-hero,
    .gcg-empresa-card,.gcg-evento-card,.gcg-torneos-modulo,.gcg-torneo-v2-aside,.gcg-lm__panel) {
    clip-path: polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  }
  .gcg :is(.gcg-empresa-actions,.gcg-admin-actions,.gcg-form-actions,.gcg-torneo-actions,.gcg-v2-hero__acciones) {
    flex-wrap: wrap;
  }
  .gcg :is(.gcg-empresa-actions,.gcg-admin-actions,.gcg-form-actions,.gcg-torneo-actions) > .gcg-btn {
    min-height: 42px;
  }
}
@media (max-width: 700px) {
  .gcg body, body.gcg { overflow-x: hidden; }
  .gcg .gcg-v2-section-hero h1 { font-size: clamp(28px,9vw,42px);line-height:1.02; }
  .gcg :is(.gcg-v2-section-hero,.gcg-panel,.gcg-empresa-card,.gcg-evento-card,.gcg-torneos-modulo) { padding-left: 16px; padding-right: 16px; }
  .gcg .gcg-navbar__dropdown { width:min(320px,calc(100vw - 28px));right:-6px; }
  .gcg :is(.gcg-btn,.gcg-v2-header__toggle,.gcg-navbar__dropdown-item) { min-height:44px; }
  .gcg :is(.gcg-empty,.gcg-v2-vacio,.gcg-empresa-empty,.gcg-eq-vacio,.gcg-clan-empty) { min-height:96px;padding:22px 16px!important; }
}
@media (max-width: 480px) {
  .gcg :is(.gcg-empresa-actions,.gcg-admin-actions,.gcg-form-actions,.gcg-torneo-actions) > .gcg-btn { width:100%;justify-content:center; }
}

/* Keyboard accessibility follows the same visual language. */
.gcg :focus-visible {
  outline: 2px solid var(--gcg-accent);
  outline-offset: 2px;
}

/* Keep animation optional and cheap. */
.gcg[data-gcg-motion="reduced"] * {
  animation-duration:.01ms!important;
  animation-iteration-count:1!important;
  transition-duration:.01ms!important;
  scroll-behavior:auto!important;
}
@media (prefers-reduced-motion: reduce) {
  .gcg * {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* === Stability / visual QA pass 2026-09-20 === */
/* Prevent dense authenticated layouts from creating phantom horizontal overflow. */
.gcg :is(.gcg-v2-main,.gcg-v2-col,.gcg-v2-carril,.gcg-v2-rail-panel,.gcg-v2-progreso,
  .gcg-v2-torneos,.gcg-v2-bandas,.gcg-empresa-main,.gcg-admin-main,.gcg-shell,
  .gcg-panel,.gcg-config-panel,.gcg-torneo-v2-layout,.gcg-lm__layout) { min-width:0; }

/* Dashboard right rail: keep the technical frame but stop artwork / controls from looking clipped. */
.gcg .gcg-v2-progreso { overflow:hidden; }
.gcg .gcg-v2-pase {
  min-height:104px;
  padding:18px 104px 18px 20px !important;
  border-top:0 !important;
  background:linear-gradient(90deg,rgba(244,166,42,.025),transparent 72%) !important;
}
.gcg .gcg-v2-pase__emblema {
  right:10px !important;
  width:88px !important;
  height:88px !important;
  opacity:.38;
  transform:translateY(-50%) rotate(-4deg);
}
.gcg .gcg-v2-pase:hover .gcg-v2-pase__emblema { opacity:.5; }
.gcg .gcg-v2-pase__ir { right:12px;bottom:10px;top:auto;transform:none; }
.gcg .gcg-v2-pase__xp { max-width:210px; }
.gcg .gcg-v2-diario { padding:18px 20px 22px; }
.gcg .gcg-v2-diario__conector { height:18px;margin:6px 0 4px; }
.gcg .gcg-v2-diario__conector span { opacity:.32; }
.gcg .gcg-v2-ruleta { padding-bottom:4px; }

/* Estados vacíos: definición única arriba (se fusionaron las dos reglas duplicadas 112px/92px). */
.gcg .gcg-v2-vacio .gcg-btn { width:auto;max-width:100%; }

/* Popovers del header: nunca fuera de pantalla en anchos intermedios. (El layout del header vive en components/chrome-v2.css.) */
.gcg .gcg-navbar__dropdown,
.gcg .gcg-v2-notificaciones__panel {
  max-width:calc(100vw - 24px);
  max-height:min(520px,calc(100vh - 92px));
}
.gcg .gcg-navbar__dropdown { overflow:auto;overscroll-behavior:contain; }
.gcg .gcg-v2-notificaciones__panel { overflow:hidden; }
.gcg .gcg-v2-notificaciones__lista { overscroll-behavior:contain; }

/* Clip-path is visually useful, but focus rings / artwork must stay inside the cut. */
.gcg :is(.gcg-v2-rail-panel,.gcg-v2-progreso) { clip-path:none !important; }
.gcg :is(.gcg-v2-rail-panel,.gcg-v2-progreso)::before {
  content:'';
  position:absolute;
  z-index:6;
  top:0;
  right:0;
  width:14px;
  height:14px;
  pointer-events:none;
  background:linear-gradient(135deg,transparent 49%,var(--gcg-bg) 50%);
}

/* Tables / long labels: contain rather than force the whole page wider. */
.gcg :is(.gcg-table-wrap,.gcg-v2-tabla-wrap,.gcg-torneos-tabla-wrap,.gcg-empresa-tablewrap,.gcg-admin-tablewrap) {
  width:100%;
  max-width:100%;
}
.gcg :is(.gcg-v2-fila__nombre,.gcg-v2-fila__sub,.gcg-torneos-nombre,.gcg-empresa-table td,.gcg-admin-table td) {
  overflow-wrap:anywhere;
}

/* Modal and popover controls keep their intrinsic compact size. */
.gcg :is(.gcg-modal__close) { min-height:0; }

.gcg .gcg-v2-notificaciones { position: relative; flex: 0 0 auto; }
@media (max-width:980px) {
  .gcg .gcg-v2-main {
    display:grid;
    grid-template-columns:minmax(0,1fr);
  }
  .gcg .gcg-v2-col,
  .gcg .gcg-v2-carril { display:contents; }
  .gcg .gcg-v2-hero { order:1; }
  .gcg .gcg-v2-rail-panel { order:2; }
  .gcg .gcg-v2-torneos { order:3; }
  .gcg .gcg-v2-progreso { order:4; }
  .gcg .gcg-v2-bandas { order:5;grid-template-columns:1fr; }
  .gcg .gcg-v2-banda--organiza { order:6; }
}
@media (max-width:700px) {
  body.gcg { overflow-x:clip; }
  .gcg .gcg-v2-pase { padding-right:88px !important; }
  .gcg .gcg-v2-pase__emblema { width:76px !important;height:76px !important;right:8px !important; }
}
@media (max-width:480px) {
  .gcg .gcg-v2-pase { min-height:96px;padding-left:16px !important;padding-right:76px !important; }
  .gcg .gcg-v2-pase__emblema { width:66px !important;height:66px !important; }
  .gcg .gcg-v2-diario { padding-inline:16px; }
  .gcg .gcg-v2-filtros { grid-template-columns:1fr; }
  .gcg .gcg-v2-tabs { scroll-snap-type:x proximity; }
  .gcg .gcg-v2-tab { scroll-snap-align:start; }
}

/* === Layout integrity pass 2026-09-20 ===
   Prevent nested technical wrappers from overlapping and keep the shared footer
   anchored to the bottom of short authenticated pages. */
.gcg .gcg-shell {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.gcg .gcg-shell > main {
  flex: 1 0 auto;
  width: 100%;
  min-width: 0;
}
.gcg .gcg-shell > .gcg-v2-footer {
  flex: 0 0 auto;
  width: 100%;
  margin-top: auto;
}

/* Tournament detail: the aside is a layout wrapper, never a second visual card. */
.gcg-page-torneo-detalle .gcg-torneo-grid {
  align-items: start !important;
  gap: 24px !important;
  margin-bottom: 24px;
}
.gcg-page-torneo-detalle .gcg-torneo-v2-aside {
  position: static !important;
  top: auto !important;
  align-self: start;
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  clip-path: none !important;
  overflow: visible !important;
}
.gcg-page-torneo-detalle .gcg-torneo-v2-aside::before,
.gcg-page-torneo-detalle .gcg-torneo-v2-aside::after {
  content: none !important;
  display: none !important;
}
.gcg-page-torneo-detalle .gcg-torneo-v2-aside > .gcg-panel {
  width: 100%;
  margin: 0 !important;
}
.gcg-page-torneo-detalle .gcg-torneo-v2-aside > .gcg-panel + .gcg-panel {
  margin-top: 18px !important;
}
.gcg-page-torneo-detalle #gcg-torneo-cont > .gcg-torneo-grid + .gcg-panel {
  clear: both;
  margin-top: 0 !important;
}
.gcg-page-torneo-detalle #gcg-torneo-cont > .gcg-panel {
  position: relative;
  z-index: 1;
}

@media (max-width: 1100px) {
  .gcg-page-torneo-detalle .gcg-torneo-grid { gap: 18px !important; }
  .gcg-page-torneo-detalle .gcg-torneo-v2-aside {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px;
  }
  .gcg-page-torneo-detalle .gcg-torneo-v2-aside > .gcg-panel + .gcg-panel { margin-top: 0 !important; }
}
@media (max-width: 620px) {
  .gcg-page-torneo-detalle .gcg-torneo-v2-aside { grid-template-columns: 1fr; }
}

/* Excepciones circulares del radio 0 (2026-10-07).
   La regla `:where([class*="modal"], [class*="badge"], ...) { border-radius:0 !important }` de arriba tiene especificidad 0, pero
   al ser !important gana a cualquier regla normal (aunque tenga más especificidad): convertía en cuadrado el spinner del modal de
   verificación de correo y la insignia numérica de la campana. Para vencerla hace falta otro !important con más especificidad. */
.gcg .gcg-verificacion-modal__spinner,
.gcg .gcg-verificacion-modal__spinner--exito { border-radius: 50% !important; }
.gcg .gcg-v2-notificaciones__badge { border-radius: 99px !important; }

/* Tarjetas móviles de la tabla del inicio: la línea de .gcg-v2-tabla td (arriba) se repetía bajo cada celda; solo separa la tarjeta. */
@media (max-width: 880px) {
  .gcg .gcg-v2-tabla td { border-bottom: 0; }
}

/* Foco de los campos del modal de acceso. La regla global de formularios (.gcg :is(.gcg-input,...):focus-visible, con !important) pintaba una
   barra inset de 2px a la izquierda que el recorte chaflán (clip-path) del campo cortaba y que además anulaba el foco propio de auth.css.
   Aquí se impone un anillo completo DENTRO del campo (un outline exterior lo cortaría el clip-path). */
.gcg .gcg-auth-modal :is(.gcg-input, .gcg-select):focus-visible {
  border-color: var(--gcg-accent) !important;
  box-shadow: inset 0 0 0 2px var(--gcg-accent) !important;
}
.gcg .gcg-auth-modal :is(.gcg-checkbox, .gcg-link-btn, .gcg-password-eye, .gcg-modal__close):focus-visible { outline: 2px solid var(--gcg-accent); outline-offset: 2px; }


/* === Pestañas — sistema «gamer técnico» (2026-10-24) ===
   Una sola receta para las pestañas de inicio (.gcg-v2-tab), torneos (.gcg-torneos-estado-tab) y rewards (.gcg-rw-tab):
   mono 12px en mayúsculas, 44px de alto, subrayado naranja de 2px en la activa, hover que aclara el texto,
   y la pestaña sin datos (aria-disabled) tachada. La pista de scroll es un degradado al borde derecho. */
.gcg :is(.gcg-v2-tabs,.gcg-torneos-estados,.gcg-rw-tabs) {
  border-bottom: 1px solid var(--gcg-border);
  scrollbar-width: none;
}
.gcg :is(.gcg-v2-tabs,.gcg-torneos-estados,.gcg-rw-tabs)::-webkit-scrollbar { display: none; }
.gcg :is(.gcg-v2-tab,.gcg-torneos-estado-tab,.gcg-rw-tab) {
  position: relative; flex: none; display: inline-flex; align-items: center; gap: 8px;
  min-height: var(--gcg-target, 44px); padding: 0 18px;
  background: none !important; border: 0; border-radius: 0;
  color: var(--gcg-text-muted);
  font-family: var(--gcg-font-mono); font-size: var(--gcg-text-label, 12px); font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; cursor: pointer;
}
.gcg :is(.gcg-v2-tab,.gcg-torneos-estado-tab,.gcg-rw-tab):hover { color: var(--gcg-text); background: none !important; }
.gcg :is(.gcg-v2-tab[aria-selected="true"],.gcg-torneos-estado-tab--activo,.gcg-torneos-estado-tab[aria-selected="true"],.gcg-rw-tab--activo,.gcg-rw-tab[aria-selected="true"]) {
  color: var(--gcg-text) !important; background: none !important; border-bottom-color: transparent !important;
}
.gcg :is(.gcg-v2-tab[aria-selected="true"],.gcg-torneos-estado-tab--activo,.gcg-torneos-estado-tab[aria-selected="true"],.gcg-rw-tab--activo,.gcg-rw-tab[aria-selected="true"])::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--gcg-accent);
}
.gcg :is(.gcg-v2-tab,.gcg-torneos-estado-tab,.gcg-rw-tab):focus-visible { outline: 2px solid var(--gcg-accent); outline-offset: -2px; }
.gcg :is(.gcg-v2-tab,.gcg-torneos-estado-tab,.gcg-rw-tab)[aria-disabled="true"] {
  color: var(--gcg-text-off, #5E6872); cursor: not-allowed; text-decoration: line-through; text-decoration-color: var(--gcg-text-off, #5E6872);
}
.gcg .gcg-v2-tab__contador { background: none; padding: 0; min-width: 0; font-size: var(--gcg-text-label, 12px); font-weight: 600; color: var(--gcg-text-muted); }
.gcg .gcg-v2-tab[aria-selected="true"] .gcg-v2-tab__contador { background: none; color: var(--gcg-accent); }