/* Global X – interfaz del equipo */
#gxd-app { max-width: 1080px; margin: 0 auto; }

/* Encabezado y progreso */
.gxd-header { background: var(--gxd-card); border: 1px solid var(--gxd-line); border-radius: var(--gxd-radius); padding: 1em 1.2em .6em; margin-bottom: 1em; position: sticky; top: 0; z-index: 5; }
.admin-bar .gxd-header { top: 32px; }
.gxd-header-top { display: flex; justify-content: space-between; gap: 1em; align-items: flex-start; flex-wrap: wrap; }
.gxd-team-line { display: flex; gap: .6em; align-items: center; flex-wrap: wrap; font-size: 1.05em; }
.gxd-header-right { display: flex; gap: 1em; align-items: center; }
.gxd-save { font-size: .8em; color: var(--gxd-muted); }
.gxd-save-error { color: var(--gxd-danger); }
.gxd-save-saved { color: var(--gxd-ok); }

.gxd-root .gxd-progress { list-style: none; margin: .8em 0 0; padding: 0; display: flex; gap: .25em; overflow-x: auto; }
.gxd-root .gxd-progress-step { flex: 1 1 0; min-width: 70px; margin: 0; }
.gxd-progress-step button, .gxd-progress-static { display: flex; flex-direction: column; align-items: center; gap: .2em; width: 100%; background: none; border: 0; padding: .3em 0; font: inherit; cursor: default; color: var(--gxd-muted); }
.gxd-progress-step button { cursor: pointer; }
.gxd-progress-step button:hover .gxd-dot { border-color: var(--gxd-accent); }
.gxd-dot { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--gxd-line); display: flex; align-items: center; justify-content: center; font-size: .78em; font-weight: 700; background: #fff; }
.gxd-progress-label { font-size: .72em; text-align: center; line-height: 1.2; }
.gxd-progress-step.is-done .gxd-dot { background: var(--gxd-accent-soft); border-color: var(--gxd-accent); color: var(--gxd-accent); }
.gxd-progress-step.is-current .gxd-dot { background: var(--gxd-accent); border-color: var(--gxd-accent); color: #fff; }
.gxd-progress-step.is-current .gxd-progress-label { color: var(--gxd-ink); font-weight: 600; }

/* Ingreso */
.gxd-join { max-width: 760px; margin: 0 auto; }
.gxd-lead { font-size: 1.05em; color: var(--gxd-muted); }
.gxd-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1em; }
.gxd-input-code { text-transform: uppercase; letter-spacing: .15em; font-weight: 700; }
.gxd-member-row { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: .5em; margin-bottom: .5em; align-items: center; }

/* Navegación */
.gxd-nav { display: flex; justify-content: space-between; align-items: center; gap: 1em; margin: 1em 0 2em; flex-wrap: wrap; }
.gxd-nav-right { display: flex; gap: .6em; flex-wrap: wrap; }
.gxd-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1em; flex-wrap: wrap; }

/* Tarjetas de perfil */
.gxd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .75em; align-items: start; }
.gxd-flip { border: 1px solid var(--gxd-line); border-radius: var(--gxd-radius); background: #fff; transition: box-shadow .15s; }
.gxd-flip:hover { box-shadow: 0 2px 10px rgba(20, 30, 45, .08); }
.gxd-root .gxd-flip-inner { display: block; width: 100%; text-align: left; background: none; border: 0; padding: .9em; font: inherit; color: inherit; cursor: pointer; }
.gxd-flip-front { display: flex; flex-direction: column; gap: .2em; }
.gxd-flip-back { display: none; flex-direction: column; gap: .5em; }
.gxd-flip.is-open { grid-column: span 2; border-color: var(--gxd-accent); }
.gxd-flip.is-open .gxd-flip-front { display: none; }
.gxd-flip.is-open .gxd-flip-back { display: flex; }
.gxd-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--gxd-accent-soft); color: var(--gxd-accent); display: flex; align-items: center; justify-content: center; font-weight: 700; margin-bottom: .3em; }
.gxd-flip-hint { font-size: .75em; color: var(--gxd-accent); margin-top: .3em; }
.gxd-kv { display: block; font-size: .88em; }
.gxd-kv em { display: block; font-style: normal; font-size: .75em; text-transform: uppercase; letter-spacing: .05em; color: var(--gxd-muted); font-weight: 600; }
.gxd-kv-warn em { color: var(--gxd-warn); }

/* Elección de país */
.gxd-choice { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75em; }
.gxd-root .gxd-choice-btn { display: flex; flex-direction: column; gap: .2em; text-align: left; padding: .9em; border-radius: var(--gxd-radius); border: 2px solid var(--gxd-line); background: #fff; font: inherit; cursor: pointer; color: var(--gxd-ink); }
.gxd-root .gxd-choice-btn.is-selected { background: var(--gxd-accent-soft); border-color: currentColor; }
.gxd-choice-btn span { font-size: .85em; color: var(--gxd-muted); }

/* Consulta rápida */
.gxd-ref { background: var(--gxd-card); border: 1px solid var(--gxd-line); border-radius: var(--gxd-radius); margin-bottom: 1em; }
.gxd-ref summary { cursor: pointer; padding: .7em 1.2em; font-weight: 600; color: var(--gxd-accent); }
.gxd-ref-body { padding: 0 1.2em 1em; max-height: 60vh; overflow: auto; }

/* Delegación */
.gxd-deleg { display: grid; grid-template-columns: 290px 1fr; gap: 1.2em; align-items: start; }
.gxd-pool { position: sticky; top: 150px; max-height: calc(100vh - 170px); overflow: auto; }
.gxd-pool-item { display: flex; justify-content: space-between; align-items: center; gap: .5em; padding: .55em .6em; border: 1px solid var(--gxd-line); border-radius: 8px; margin-bottom: .4em; background: #fff; }
.gxd-pool-item .gxd-btn, .gxd-pool-item .gxd-badge { white-space: nowrap; flex-shrink: 0; }
.gxd-pool-item.is-in { background: var(--gxd-accent-soft); border-color: #b9d3e6; }
.gxd-pool-item.is-blocked { background: var(--gxd-soft); opacity: .8; }
.gxd-seat { border: 1px solid var(--gxd-line); border-radius: var(--gxd-radius); padding: .9em 1em; margin-bottom: .75em; background: #fff; }
.gxd-seat.is-lead { border: 2px solid var(--gxd-accent); }
.gxd-seat.is-blocked { border: 2px solid var(--gxd-warn); background: var(--gxd-warn-soft); }
.gxd-seat-empty { border-style: dashed; color: var(--gxd-muted); text-align: center; padding: 1.2em; }
.gxd-seat-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: .5em; }
.gxd-seat-row { display: flex; gap: 1em; align-items: center; flex-wrap: wrap; margin-bottom: .6em; }
.gxd-seat-row .gxd-select { max-width: 260px; }
.gxd-seat-links { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1em; margin-bottom: .6em; }
.gxd-root .gxd-seat-links fieldset { border: 1px solid var(--gxd-line); border-radius: 8px; padding: .5em .7em; margin: 0; display: flex; flex-direction: column; }
.gxd-root .gxd-seat-links legend { font-size: .8em; font-weight: 600; padding: 0 .3em; }
.gxd-help-panel { background: var(--gxd-soft); border: 1px solid var(--gxd-line); border-radius: var(--gxd-radius); padding: .9em 1em; }
.gxd-help-panel h3 { margin-top: 0; }
.gxd-cover-group { margin-bottom: .8em; }
.gxd-alerts { color: var(--gxd-warn); font-size: .88em; }

/* Quién se queda */
.gxd-home-item { border: 1px solid var(--gxd-line); border-radius: 8px; padding: .6em .8em; margin-bottom: .5em; }
.gxd-home-item.is-on { border-color: var(--gxd-accent); }
.gxd-check-big { font-size: .95em; margin: 0 0 .4em; }

/* Idioma */
.gxd-lang-table td.gxd-has { background: var(--gxd-ok-soft); color: var(--gxd-ok); font-weight: 600; }
.gxd-lang-table tr.gxd-row-group td { background: var(--gxd-soft); font-weight: 700; font-size: .85em; }

/* Plenaria */
.gxd-matrix th.is-mine, .gxd-matrix td.is-mine { background: var(--gxd-accent-soft); }
.gxd-matrix tr.is-conflict td { background: var(--gxd-warn-soft); }

@media (max-width: 820px) {
  .gxd-deleg { grid-template-columns: 1fr; }
  .gxd-pool { position: static; max-height: none; }
  .gxd-seat-links, .gxd-grid-2, .gxd-choice { grid-template-columns: 1fr; }
  .gxd-flip.is-open { grid-column: span 1; }
  .gxd-member-row { grid-template-columns: 1fr; }
  .gxd-header { position: static; }
  .gxd-progress-label { display: none; }
}

/* Ingreso en dos pasos y modalidad individual */
.gxd-code-field { max-width: 280px; }
.gxd-same p { margin-bottom: .5em; }
.gxd-actions { display: flex; gap: .5em; flex-wrap: wrap; align-items: center; }

/* Comparación con el grupo */
.gxd-cmp-scores { display: grid; grid-template-columns: repeat(2, minmax(0, 200px)); gap: .75em; margin: .6em 0 1em; }
.gxd-stat { background: var(--gxd-soft); border: 1px solid var(--gxd-line); border-radius: var(--gxd-radius); padding: .7em 1em; display: flex; flex-direction: column; }
.gxd-stat strong { font-size: 1.6em; line-height: 1.1; }
.gxd-stat span { font-size: .82em; color: var(--gxd-muted); }
.gxd-cmp-cell { display: grid; grid-template-columns: minmax(80px, 1fr) 48px; gap: .5em; align-items: center; }
.gxd-cmp-pct { text-align: right; font-variant-numeric: tabular-nums; }
.gxd-cmp tr.is-mine td { background: var(--gxd-accent-soft); }

/* Evaluación con IA */
.gxd-waiting { text-align: center; padding: 2.5em 1.5em; }
.gxd-spinner { width: 44px; height: 44px; margin: 0 auto 1em; border-radius: 50%; border: 4px solid var(--gxd-accent-soft); border-top-color: var(--gxd-accent); animation: gxd-spin 1s linear infinite; }
@keyframes gxd-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .gxd-spinner { animation-duration: 3s; } }
.gxd-card-ai { border-left: 4px solid var(--gxd-accent); }
