/* ==========================================================================
   Golden Point Torneos · estilos
   Marca: azul noche + dorado. Móvil primero.
   ========================================================================== */

.gp-body,
.gp-embed {
	--gp-navy: #0e2038;
	--gp-navy-2: #1b3558;
	--gp-gold: #f5b800;
	--gp-gold-deep: #c99400;
	--gp-gold-ink: #6b4f00;
	--gp-gold-soft: #fff3c4;
	--gp-bg: #f6f3ea;
	--gp-surface: #ffffff;
	--gp-ink: #18212f;
	--gp-muted: #667085;
	--gp-line: #e7e1cf;
	--gp-line-strong: #cfc8b0;
	--gp-ok: #15803d;
	--gp-ok-soft: #dcfce7;
	--gp-warn-soft: #fff1d6;
	--gp-err: #b42318;
	--gp-err-soft: #fee4e2;
	--gp-radius: 12px;
	--gp-shadow: 0 1px 2px rgba(14, 32, 56, .06), 0 4px 14px rgba(14, 32, 56, .06);
	--w: 228px; /* ancho de tarjeta en el cuadro */
	--g: 28px;  /* separación entre rondas */
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--gp-ink);
	line-height: 1.5;
}

.gp-body *,
.gp-body *::before,
.gp-body *::after,
.gp-embed *,
.gp-embed *::before,
.gp-embed *::after {
	box-sizing: border-box;
}

.gp-body {
	margin: 0;
	background: var(--gp-bg);
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

:where(.gp-body) :where(h1, h2, h3, h4) { line-height: 1.2; margin: 0; letter-spacing: -.01em; }
:where(.gp-body) p { margin: 0 0 .75em; }
:where(.gp-body) a { color: var(--gp-navy-2); }
:where(.gp-body) :where(button, input, select, textarea) { font: inherit; color: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap;
}

.gp-skip {
	position: absolute; left: -999px; top: 0;
	background: var(--gp-gold); color: var(--gp-navy);
	padding: 8px 14px; z-index: 100; border-radius: 0 0 8px 0;
}
.gp-skip:focus { left: 0; }

.gp-wrap { width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 16px; }
.gp-public .gp-wrap { max-width: 1200px; }

/* ---------- Cabecera y pie ---------- */
.gp-top {
	background: var(--gp-navy);
	color: #fff;
	position: relative; top: 0; z-index: 30;
	border-bottom: 3px solid var(--gp-gold);
}
/* En pantallas grandes la cabecera se queda fija; en el móvil no, para no robar pantalla al desplazarse. */
@media (min-width: 900px) { .gp-top { position: sticky; } }
.gp-top-in { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; }
.gp-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #fff !important; }
.gp-word { font-weight: 800; letter-spacing: .14em; font-size: 15px; color: #fff; }
.gp-word b { color: var(--gp-gold); font-weight: 800; margin-left: .35em; }
.gp-nav { display: flex; gap: 2px; flex-wrap: nowrap; justify-content: flex-end; }
.gp-nav a {
	color: #dbe4f0 !important; text-decoration: none; font-size: 14px; font-weight: 600;
	padding: 8px 10px; border-radius: 8px;
}
.gp-nav a:hover, .gp-nav a:focus-visible { background: rgba(255, 255, 255, .1); color: #fff !important; }

/* Menú público (Inicio · Torneos · Rankings + acceso) */
.gp-nav-public { flex: 1; justify-content: flex-start; margin-left: 10px; overflow-x: auto; scrollbar-width: none; }
.gp-nav-public::-webkit-scrollbar { display: none; }
.gp-nav-public a { white-space: nowrap; }
.gp-nav-public a[aria-current="page"] { color: #fff !important; box-shadow: inset 0 -3px 0 var(--gp-gold); border-radius: 8px 8px 0 0; }
.gp-nav-cta {
	flex: none; display: inline-flex; align-items: center; min-height: 38px; padding: 6px 14px;
	background: var(--gp-gold); color: var(--gp-navy) !important; font-weight: 700; font-size: 14px;
	border-radius: 10px; text-decoration: none; white-space: nowrap;
}
.gp-nav-cta:hover { background: #ffc61f; }
.gp-nav-cta:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.show-s { display: none; }

.gp-main { flex: 1; padding-top: 20px; padding-bottom: 40px; }
.gp-foot { text-align: center; color: var(--gp-muted); font-size: 13px; padding: 18px 0 26px; border-top: 1px solid var(--gp-line); }
.gp-foot a { color: inherit; }

/* ---------- Botones ---------- */
.gp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	min-height: 44px; padding: 10px 18px;
	border: 1.5px solid var(--gp-navy); border-radius: 10px;
	background: var(--gp-navy); color: #fff !important;
	font-weight: 700; font-size: 15px; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	transition: background .15s, border-color .15s, transform .05s;
}
.gp-btn:hover { background: var(--gp-navy-2); border-color: var(--gp-navy-2); }
.gp-btn:active { transform: translateY(1px); }
.gp-btn:focus-visible { outline: 3px solid var(--gp-gold); outline-offset: 2px; }
.gp-btn[disabled] { opacity: .45; cursor: not-allowed; }
.gp-btn-sm { min-height: 38px; padding: 6px 13px; font-size: 14px; }
.gp-btn-primary { background: var(--gp-navy); border-color: var(--gp-navy); }
.gp-btn-gold { background: var(--gp-gold); border-color: var(--gp-gold); color: var(--gp-navy) !important; }
.gp-btn-gold:hover { background: #ffc61f; border-color: #ffc61f; }
.gp-btn-ghost { background: transparent; color: var(--gp-navy) !important; border-color: var(--gp-line-strong); }
.gp-btn-ghost:hover { background: #fff; border-color: var(--gp-navy); }
.gp-btn-danger { background: var(--gp-err); border-color: var(--gp-err); }
.gp-btn-danger:hover { background: #912018; border-color: #912018; }
.gp-btn-danger-ghost { background: transparent; color: var(--gp-err) !important; border-color: #f0c4c0; }
.gp-btn-danger-ghost:hover { background: var(--gp-err-soft); border-color: var(--gp-err); }

/* ---------- Chips ---------- */
.gp-chip {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 2px 9px; border-radius: 999px;
	font-size: 12px; font-weight: 700; line-height: 1.6; white-space: nowrap;
	background: #eef0f4; color: #475467; vertical-align: middle;
}
.gp-chip.st-ready { background: var(--gp-gold); color: var(--gp-navy); }
.gp-chip.st-playing, .gp-chip.st-live { background: var(--gp-ok-soft); color: var(--gp-ok); }
.gp-chip.st-finished { background: #e4e7ec; color: #344054; }
.gp-chip.st-waiting { background: #f2efe3; color: #7a7458; }
.gp-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; animation: gp-pulse 1.6s ease-in-out infinite; }
@keyframes gp-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }

.gp-muted { color: var(--gp-muted); font-size: 14px; }
.gp-ico { flex: none; vertical-align: -3px; }
.gp-empty { color: var(--gp-muted); padding: 18px; text-align: center; background: var(--gp-surface); border: 1px dashed var(--gp-line-strong); border-radius: var(--gp-radius); }
.gp-empty-page { max-width: 520px; margin: 40px auto; text-align: center; }
.gp-empty-page h1 { font-size: 24px; margin-bottom: 10px; }

/* ---------- Cabecera del torneo ---------- */
.gp-hero {
	background: linear-gradient(135deg, var(--gp-navy) 0%, var(--gp-navy-2) 100%);
	color: #fff; border-radius: 18px; padding: 22px 20px 20px; margin-bottom: 18px;
	position: relative; overflow: hidden;
}
.gp-hero::after {
	content: ""; position: absolute; right: -50px; top: -50px; width: 190px; height: 190px;
	border-radius: 50%; background: radial-gradient(circle at 35% 35%, rgba(245, 184, 0, .5), rgba(245, 184, 0, 0) 70%);
	pointer-events: none;
}
.gp-hero-top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.gp-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 800; color: var(--gp-gold); }
.gp-hero h1 { font-size: clamp(1.55rem, 5.5vw, 2.4rem); font-weight: 800; color: #fff; text-wrap: balance; }
.gp-meta { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 6px 18px; color: #d7e0ee; font-size: 14.5px; }
.gp-meta li { display: inline-flex; align-items: center; gap: 7px; }
.gp-desc { margin: 12px 0 0 !important; color: #d7e0ee; max-width: 70ch; font-size: 15px; }

/* ---------- Ahora en pista ---------- */
.gp-now { margin-bottom: 22px; }
.gp-now h2 { font-size: 18px; display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.gp-now-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 12px; }
.gp-now-empty { background: var(--gp-surface); border: 1px dashed var(--gp-line-strong); border-radius: var(--gp-radius); padding: 14px 16px; color: var(--gp-muted); font-size: 14.5px; margin: 0; }
.gp-nowc {
	display: flex; flex-direction: column; gap: 6px;
	background: var(--gp-surface); border-radius: var(--gp-radius);
	padding: 14px 16px; text-decoration: none; color: var(--gp-ink) !important;
	border: 2px solid var(--gp-line); box-shadow: var(--gp-shadow);
}
.gp-nowc.st-ready { border-color: var(--gp-gold); background: linear-gradient(180deg, var(--gp-gold-soft), #fff 62%); }
.gp-nowc.st-playing { border-color: #86d3a3; }
.gp-nowc-court { font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: var(--gp-navy); line-height: 1.1; }
.gp-nowc-st { font-size: 12.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--gp-gold-ink); }
.gp-nowc.st-playing .gp-nowc-st { color: var(--gp-ok); }
.gp-nowc-pairs { display: flex; flex-direction: column; gap: 2px; font-size: 15px; }
.gp-nowc-pairs em { font-style: normal; font-size: 12px; color: var(--gp-muted); text-transform: uppercase; letter-spacing: .08em; }
.gp-nowc-score { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--gp-ok); font-size: 15px; }
.gp-nowc-meta { font-size: 13px; color: var(--gp-muted); }
.gp-nowc.is-dim { opacity: .35; }
.gp-nowc.is-hit { outline: 3px solid var(--gp-gold); }

/* ---------- Herramientas: búsqueda y vista ---------- */
.gp-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.gp-search {
	flex: 1 1 260px; display: flex; align-items: center; gap: 8px;
	background: var(--gp-surface); border: 1.5px solid var(--gp-line-strong); border-radius: 10px;
	padding: 0 12px; min-height: 46px; color: var(--gp-muted);
}
.gp-search:focus-within { border-color: var(--gp-navy); box-shadow: 0 0 0 3px rgba(245, 184, 0, .45); }
.gp-search input { flex: 1; border: 0; outline: 0; background: transparent; min-height: 42px; color: var(--gp-ink); min-width: 0; }
.gp-seg { display: inline-flex; background: #ebe6d5; border-radius: 10px; padding: 3px; gap: 2px; }
.gp-seg button {
	border: 0; background: transparent; padding: 8px 14px; border-radius: 8px; font-weight: 700; font-size: 14px; cursor: pointer; color: #5a5640; min-height: 38px;
}
.gp-seg button[aria-pressed="true"] { background: #fff; color: var(--gp-navy); box-shadow: 0 1px 3px rgba(0, 0, 0, .15); }
.gp-q-res { min-height: 22px; margin: 6px 2px 4px; font-size: 14px; color: var(--gp-muted); }
.gp-catfilter select { min-height: 46px; border-radius: 10px; border: 1.5px solid var(--gp-line-strong); background: #fff; padding: 0 12px; }

/* ---------- Pestañas de categoría ---------- */
.gp-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 10px; margin: 0 -2px 4px; scrollbar-width: thin; }
.gp-tabs button {
	flex: none; border: 1.5px solid var(--gp-line-strong); background: var(--gp-surface); color: var(--gp-navy);
	padding: 9px 16px; border-radius: 999px; font-weight: 700; font-size: 14.5px; cursor: pointer; min-height: 42px;
}
.gp-tabs button[aria-selected="true"] { background: var(--gp-navy); border-color: var(--gp-navy); color: #fff; }
.gp-tabs button:focus-visible { outline: 3px solid var(--gp-gold); outline-offset: 2px; }

.js .gp-pane { display: none; }
.js .gp-pane.is-active { display: block; }
.gp-pane-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin: 10px 0 12px; }
.gp-pane-head h2 { font-size: 22px; }

.gp-champ {
	display: flex; align-items: center; gap: 14px;
	background: linear-gradient(90deg, var(--gp-gold-soft), #fff);
	border: 2px solid var(--gp-gold); border-radius: var(--gp-radius); padding: 14px 16px; margin-bottom: 14px; color: var(--gp-gold-ink);
}
.gp-champ .gp-ico { width: 34px; height: 34px; color: var(--gp-gold-deep); }
.gp-champ div { display: flex; flex-direction: column; }
.gp-champ strong { font-size: 19px; color: var(--gp-navy); }
.gp-champ .gp-kicker { color: var(--gp-gold-ink); }

.gp-pairlist { list-style: none; padding: 0; margin: 12px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 8px; }
.gp-pairlist li { background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: 10px; padding: 9px 12px; font-size: 15px; display: flex; align-items: center; gap: 8px; }

/* ---------- Vista cuadro / lista ---------- */
.gp-view-tree, .gp-view-list { display: none; }
.gp-panes[data-view="tree"] .gp-view-tree,
.gp-panes[data-view="list"] .gp-view-list { display: block; }
@media (min-width: 900px) { .gp-panes:not([data-view]) .gp-view-tree { display: block; } }
@media (max-width: 899px) { .gp-panes:not([data-view]) .gp-view-list { display: block; } }

.gp-round { margin-bottom: 18px; }
.gp-round h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--gp-muted); margin-bottom: 8px; font-weight: 800; }
.gp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; align-items: start; }

/* ---------- Tarjeta de partido ---------- */
.gp-card {
	background: var(--gp-surface); border: 1.5px solid var(--gp-line); border-radius: 10px; overflow: hidden;
	box-shadow: 0 1px 2px rgba(14, 32, 56, .05); position: relative;
}
.gp-card.st-ready { border-color: var(--gp-gold); box-shadow: 0 0 0 3px rgba(245, 184, 0, .3); }
.gp-card.st-playing { border-color: #6cc78f; }
.gp-card.is-bye { background: transparent; border-style: dashed; box-shadow: none; }
.gp-card.is-dim { opacity: .3; }
.gp-card.is-hit { outline: 3px solid var(--gp-gold); outline-offset: 1px; }
.gp-card[hidden] { display: none; }

.gp-ch {
	display: flex; align-items: center; gap: 8px; padding: 3px 9px; min-height: 26px;
	background: #faf8f0; border-bottom: 1px solid var(--gp-line); font-size: 12px; color: var(--gp-muted);
}
.gp-card.st-ready .gp-ch { background: var(--gp-gold-soft); }
.gp-no { font-weight: 800; color: var(--gp-navy); }
.gp-court { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; color: var(--gp-navy); }
.gp-court .gp-ico { width: 13px; height: 13px; vertical-align: -2px; }
.gp-ch .gp-chip { margin-left: auto; font-size: 11px; padding: 0 8px; line-height: 1.7; }
.gp-ch { flex-wrap: nowrap; white-space: nowrap; }
.gp-court { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.gp-chip .s { display: none; }
.gp-tree .gp-chip .l { display: none; }
.gp-tree .gp-chip .s { display: inline; }
.gp-tree .gp-court .gp-ico { display: none; }
/* descansos compactos en la vista por rondas y en el panel */
.gp-grid .gp-card.is-bye .gp-side.is-empty { display: none; }
.gp-grid .gp-card.is-bye .gp-side:not(.is-empty)::after { content: "Pasa directo"; margin-left: auto; font-size: 12px; color: var(--gp-muted); font-style: italic; font-weight: 400; }
.gp-note { font-weight: 800; color: var(--gp-err); text-transform: uppercase; font-size: 11px; }

.gp-side { display: flex; align-items: center; gap: 8px; padding: 6px 10px; min-height: 34px; font-size: 14px; }
.gp-side + .gp-side { border-top: 1px solid var(--gp-line); }
.gp-nm { flex: 1; min-width: 0; }
.gp-p { display: block; line-height: 1.3; }
.gp-p .s { display: none; }
.gp-side.is-win .gp-nm { font-weight: 800; }
.gp-side.is-lose { color: var(--gp-muted); }
.gp-side.is-empty { color: var(--gp-muted); font-style: italic; }
.gp-seed {
	flex: none; width: 19px; height: 19px; border-radius: 50%; background: var(--gp-navy); color: var(--gp-gold);
	font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; font-style: normal;
}
.gp-sc { margin-left: auto; display: flex; gap: 3px; flex: none; }
.gp-sc i {
	font-style: normal; min-width: 22px; text-align: center; padding: 1px 4px; border-radius: 5px; font-variant-numeric: tabular-nums;
	background: #f1eee2; font-weight: 600; font-size: 13.5px;
}
.gp-sc i.w { background: var(--gp-gold-soft); font-weight: 800; color: var(--gp-navy); }

/* ---------- Árbol del cuadro ---------- */
.gp-tree-wrap {
	overflow-x: auto; padding: 4px 2px 20px; -webkit-overflow-scrolling: touch;
	background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: var(--gp-radius); padding: 14px 16px 22px;
}
.gp-tree-heads { display: flex; margin-bottom: 8px; min-width: max-content; }
.gp-tree-heads span {
	flex: none; width: calc(var(--w) + var(--g));
	font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; color: var(--gp-muted);
}
.gp-tree { min-width: max-content; }
.gp-node { display: flex; align-items: center; }
.gp-node:not(.has-kids) { height: 112px; }
.gp-cell { flex: none; width: var(--w); position: relative; }
.gp-feeders { display: flex; flex-direction: column; justify-content: center; }
.gp-feeders > .gp-node { position: relative; margin-right: var(--g); }

.gp-feeders > .gp-node::after {
	content: ""; position: absolute; width: 2px; background: var(--gp-line-strong);
	right: calc(var(--g) / -2 - 1px);
}
.gp-feeders > .gp-node:first-child::after { top: 50%; bottom: 0; }
.gp-feeders > .gp-node:last-child::after { top: 0; bottom: 50%; }
.gp-feeders > .gp-node > .gp-cell::after {
	content: ""; position: absolute; left: 100%; top: 50%; margin-top: -1px;
	width: calc(var(--g) / 2); height: 2px; background: var(--gp-line-strong);
}
.gp-node.has-kids > .gp-cell::before {
	content: ""; position: absolute; right: 100%; top: 50%; margin-top: -1px;
	width: calc(var(--g) / 2); height: 2px; background: var(--gp-line-strong);
}

/* nombres cortos y en una línea dentro del cuadro */
.gp-tree .gp-nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
.gp-tree .gp-p { display: inline; }
.gp-tree .gp-p .f { display: none; }
.gp-tree .gp-p .s { display: inline; }
.gp-tree .gp-p + .gp-p::before { content: " / "; color: var(--gp-muted); }
.gp-tree .gp-side { padding: 5px 9px; min-height: 31px; }

/* ---------- Estado / pie de página pública ---------- */
.gp-stamp { text-align: center; color: var(--gp-muted); font-size: 13px; margin-top: 26px; }

/* ---------- Ranking ---------- */
.gp-table-wrap { background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: var(--gp-radius); overflow: hidden; margin-top: 10px; }
.gp-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.gp-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--gp-muted); padding: 10px 12px; background: #faf8f0; border-bottom: 1px solid var(--gp-line); }
.gp-table td { padding: 11px 12px; border-bottom: 1px solid var(--gp-line); }
.gp-table tr:last-child td { border-bottom: 0; }
.gp-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.gp-table .rk { width: 52px; }
.gp-rank .rk span {
	display: inline-flex; width: 28px; height: 28px; border-radius: 50%; align-items: center; justify-content: center;
	font-weight: 800; font-size: 13px; background: #f1eee2; color: var(--gp-navy);
}
.gp-rank tr.top-1 .rk span { background: var(--gp-gold); }
.gp-rank tr.top-2 .rk span { background: #d9dde3; }
.gp-rank tr.top-3 .rk span { background: #e8c9a0; }
.gp-rank .pl { font-weight: 700; }
.gp-rank .pt { font-weight: 800; color: var(--gp-navy); font-size: 17px; }
.gp-rank tr.is-dim { display: none; }
.gp-table-sm { max-width: 340px; font-size: 14px; margin-top: 8px; }
.gp-rank-info { margin-top: 26px; }
.gp-rank-info summary { cursor: pointer; font-weight: 700; padding: 6px 0; }
.gp-rank-info h3 { margin: 22px 0 8px; font-size: 16px; }
.gp-linklist { padding-left: 18px; margin: 0; }
.gp-linklist li { margin-bottom: 4px; }
@media (max-width: 560px) { .hide-s { display: none; } .show-s { display: inline; } }

/* ---------- Tarjetas de torneo y ranking (listados y shortcodes) ---------- */
.gp-tl { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.gp-tcard {
	display: flex; flex-direction: column; gap: 8px; padding: 16px; text-decoration: none; color: var(--gp-ink) !important;
	background: #fff; border: 1.5px solid var(--gp-line); border-top: 4px solid var(--gp-gold); border-radius: var(--gp-radius); box-shadow: var(--gp-shadow);
	transition: border-color .15s, transform .15s;
}
.gp-tcard:hover { border-color: var(--gp-navy); transform: translateY(-2px); }
.gp-tcard:focus-visible { outline: 3px solid var(--gp-gold); outline-offset: 2px; }
.gp-tcard strong { font-size: 18px; line-height: 1.25; color: var(--gp-navy); }
.gp-tcard-top { display: flex; align-items: center; gap: 8px; }
.gp-tcard-meta { display: flex; flex-direction: column; gap: 3px; color: var(--gp-muted); font-size: 14px; }
.gp-tcard-m { display: flex; align-items: center; gap: 7px; }
.gp-tcard-stats { margin-top: auto; padding-top: 8px; border-top: 1px solid var(--gp-line); color: var(--gp-muted); font-size: 14px; }
.gp-tcard-stats b { color: var(--gp-navy); }
.gp-chip.st-open { background: var(--gp-gold-soft); color: var(--gp-gold-ink); }
.gp-group { margin-top: 26px; }
.gp-group > h2 { font-size: 20px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.gp-count { display: inline-flex; min-width: 24px; height: 24px; padding: 0 7px; align-items: center; justify-content: center; border-radius: 999px; background: var(--gp-navy); color: #fff; font-size: 13px; font-weight: 700; }
.gp-hero-list { margin-bottom: 8px; }
.gp-rtop { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 4px; }
.gp-rtop li { display: grid; grid-template-columns: 24px 1fr auto; gap: 8px; align-items: baseline; font-size: 15px; }
.gp-rtop-n { font-weight: 800; color: var(--gp-gold-deep); }
.gp-rtop-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-rtop-pt { font-weight: 700; color: var(--gp-navy); font-variant-numeric: tabular-nums; }

/* ---------- Incrustados (shortcodes) ---------- */
.gp-embed .gp-embed-title { margin: 0 0 8px; }
.gp-embed .gp-table-wrap { margin-top: 0; }
.gp-embed .gp-table { font-size: 15px; }

/* ==========================================================================
   Panel
   ========================================================================== */
.gp-notice {
	border-radius: 10px; padding: 12px 16px; margin: 0 0 16px; font-weight: 600; font-size: 15px;
	border: 1.5px solid; line-height: 1.5;
}
.gp-notice-ok { background: var(--gp-ok-soft); border-color: #86d3a3; color: #14532d; }
.gp-notice-warn { background: var(--gp-warn-soft); border-color: var(--gp-gold); color: #5b4300; }
.gp-notice-err { background: var(--gp-err-soft); border-color: #f0b3ad; color: #7a1d14; }

.gp-pagehead { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.gp-pagehead h1 { font-size: clamp(1.4rem, 4.5vw, 2rem); font-weight: 800; }
.gp-pagehead p { margin: 6px 0 0; }
.gp-pagehead-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.gp-crumb { margin-bottom: 8px; font-size: 14px; }
.gp-crumb a { text-decoration: none; font-weight: 600; }

.gp-subnav { display: flex; gap: 4px; overflow-x: auto; border-bottom: 2px solid var(--gp-line); margin-bottom: 18px; scrollbar-width: none; }
.gp-subnav::-webkit-scrollbar { display: none; }
.gp-subnav a {
	flex: none; padding: 11px 16px; text-decoration: none; font-weight: 700; font-size: 15px; color: var(--gp-muted);
	border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap;
}
.gp-subnav a:hover { color: var(--gp-navy); }
.gp-subnav a.is-active { color: var(--gp-navy); border-bottom-color: var(--gp-gold); }

.gp-panel { background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: var(--gp-radius); padding: 18px; margin-bottom: 16px; box-shadow: 0 1px 2px rgba(14, 32, 56, .04); }
.gp-panel h3 { font-size: 17px; margin-bottom: 10px; }
.gp-panel h4 { font-size: 14px; margin: 18px 0 8px; text-transform: uppercase; letter-spacing: .06em; color: var(--gp-muted); }
.gp-section-block { margin-bottom: 26px; }
.gp-section-block > h2 { font-size: 19px; margin-bottom: 12px; }
.gp-sec-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.gp-sec-head h2 { font-size: 19px; }

.gp-callout { background: var(--gp-gold-soft); border: 1px solid #f2d676; border-radius: 10px; padding: 12px 14px; font-size: 14.5px; margin-bottom: 16px; color: #4a3a05; }

.gp-quota { display: grid; gap: 4px; border-left: 5px solid var(--gp-gold); }
.gp-quota.is-empty { border-left-color: var(--gp-err); }
.gp-quota-nums { display: flex; gap: 22px; margin-bottom: 6px; }
.gp-quota-nums div { display: flex; flex-direction: column; }
.gp-quota-nums strong { font-size: 28px; line-height: 1; font-weight: 800; color: var(--gp-navy); }
.gp-quota-nums span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--gp-muted); font-weight: 700; margin-top: 4px; }
.gp-quota p { margin: 0; font-size: 14.5px; }

.gp-onboard ol { padding-left: 20px; margin: 8px 0 0; }
.gp-onboard li { margin-bottom: 6px; }

.gp-tgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.gp-tcard-p { margin: 0; display: flex; flex-direction: column; gap: 4px; border-top: 4px solid var(--gp-gold); }
.gp-tcard-p h3 { margin: 2px 0 0; font-size: 18px; }
.gp-tcard-p p { margin: 0; }
.gp-tcard-p-stats { font-size: 14px; margin-top: 6px !important; }
.gp-tcard-p .gp-actions { margin-top: auto; padding-top: 12px; }

.gp-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 12px; }
.gp-actions-center { justify-content: center; }
.gp-actions-draw { margin-top: 18px; }

.gp-rowlist { list-style: none; padding: 0; margin: 0; }
.gp-rowlist li { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 0; border-bottom: 1px solid var(--gp-line); }
.gp-rowlist li:last-child { border-bottom: 0; }
.gp-modrow-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.gp-inline { display: inline-flex; gap: 6px; align-items: center; }
.gp-inline-form { display: flex; gap: 8px; flex-wrap: wrap; }
.gp-inline-form .gp-in { flex: 1 1 220px; }

/* ---------- Formularios ---------- */
.gp-formpanel form { display: grid; gap: 14px; }
.gp-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.gp-field-l { font-size: 13.5px; font-weight: 700; color: #344054; }
.gp-field small { color: var(--gp-muted); font-size: 12.5px; }
.gp-in {
	width: 100%; min-height: 44px; padding: 9px 12px;
	border: 1.5px solid var(--gp-line-strong); border-radius: 10px; background: #fff; color: var(--gp-ink);
}
textarea.gp-in { min-height: 90px; resize: vertical; }
.gp-in:focus { outline: 0; border-color: var(--gp-navy); box-shadow: 0 0 0 3px rgba(245, 184, 0, .45); }
.gp-in-sm { min-height: 38px; padding: 6px 10px; }
.gp-grid2 { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 640px) { .gp-grid2 { grid-template-columns: 1fr 1fr; } }
.gp-check { display: flex; align-items: center; gap: 10px; font-size: 15px; cursor: pointer; }
.gp-check input { width: 20px; height: 20px; accent-color: var(--gp-navy); flex: none; }
.gp-self-end { align-self: end; }

/* Login */
.gp-login { max-width: 400px; margin: 24px auto; background: #fff; border: 1px solid var(--gp-line); border-radius: 16px; padding: 26px 24px; box-shadow: var(--gp-shadow); }
.gp-login h1 { font-size: 24px; margin-bottom: 4px; }
.gp-login form { margin-top: 16px; display: grid; gap: 12px; }
.gp-login form p { margin: 0; display: flex; flex-direction: column; gap: 5px; }
.gp-login label { font-size: 13.5px; font-weight: 700; color: #344054; }
.gp-login input[type="text"], .gp-login input[type="password"] { width: 100%; min-height: 46px; padding: 9px 12px; border: 1.5px solid var(--gp-line-strong); border-radius: 10px; background: #fff; }
.gp-login input:focus { outline: 0; border-color: var(--gp-navy); box-shadow: 0 0 0 3px rgba(245, 184, 0, .45); }
.gp-login .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 500; }
.gp-login .login-submit input { width: 100%; min-height: 48px; border: 0; border-radius: 10px; background: var(--gp-navy); color: #fff; font-weight: 800; font-size: 16px; cursor: pointer; }
.gp-login .login-submit input:hover { background: var(--gp-navy-2); }
.gp-login-help { text-align: center; margin-top: 14px; font-size: 14px; }

/* ---------- Partidos (panel) ---------- */
.gp-filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; padding: 8px 0; }
@media (min-width: 900px) { .gp-filters { position: sticky; top: 59px; z-index: 10; background: var(--gp-bg); } }
.gp-filters select { max-width: 260px; }
.gp-chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.gp-chips button {
	flex: none; border: 1.5px solid var(--gp-line-strong); background: #fff; border-radius: 999px; padding: 7px 14px;
	font-weight: 700; font-size: 14px; cursor: pointer; min-height: 38px; color: var(--gp-navy);
}
.gp-chips button b { background: #f1eee2; border-radius: 99px; padding: 0 7px; margin-left: 4px; font-size: 12px; }
.gp-chips button.is-on { background: var(--gp-navy); border-color: var(--gp-navy); color: #fff; }
.gp-chips button.is-on b { background: rgba(255, 255, 255, .2); }

.gp-catblock { margin-bottom: 28px; }
.gp-catblock[hidden], .gp-round[hidden] { display: none; }
.gp-catblock-h { font-size: 21px; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--gp-gold); display: inline-block; }

.gp-live .gp-card { overflow: visible; }
.gp-edit { border-top: 1px solid var(--gp-line); background: #fcfbf6; border-radius: 0 0 9px 9px; }
.gp-edit > summary {
	cursor: pointer; list-style: none; padding: 10px 12px; font-weight: 800; font-size: 14px; color: var(--gp-navy);
	display: flex; justify-content: space-between; align-items: center; min-height: 44px;
}
.gp-edit > summary::-webkit-details-marker { display: none; }
.gp-edit > summary::after { content: "▾"; color: var(--gp-muted); transition: transform .15s; }
.gp-edit[open] > summary::after { transform: rotate(180deg); }
.gp-edit form { display: grid; gap: 12px; padding: 4px 12px 14px; }
.gp-sets { border: 1px solid var(--gp-line); border-radius: 10px; padding: 10px; background: #fff; }
.gp-sets-title { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--gp-muted); font-weight: 800; margin-bottom: 8px; }
.gp-sets-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 0; }
.gp-sets-name { font-size: 14px; font-weight: 600; min-width: 0; flex: 1; overflow-wrap: anywhere; }
.gp-sets-in { display: flex; gap: 6px; flex: none; }
.gp-set { width: 54px !important; min-height: 44px; padding: 6px 4px; text-align: center; font-weight: 800; font-size: 17px; font-variant-numeric: tabular-nums; }

/* ---------- Categorías (panel) ---------- */
.gp-catbox-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.gp-catbox-h h3 { margin-bottom: 2px; font-size: 19px; }
.gp-catbox-h p { margin: 0; }
.gp-fold { margin-bottom: 8px; }
.gp-fold > summary { cursor: pointer; font-weight: 700; font-size: 14px; color: var(--gp-navy-2); padding: 6px 0; }
.gp-fold form { display: grid; gap: 12px; padding: 8px 0; }
.gp-pairs { display: grid; gap: 8px; margin: 8px 0 4px; }
.gp-pairrow { display: flex; gap: 8px; align-items: center; }
.gp-pairno { flex: none; width: 24px; text-align: right; color: var(--gp-muted); font-weight: 700; font-size: 13px; }
.gp-pairform { display: flex; gap: 6px; flex: 1; min-width: 0; flex-wrap: wrap; }
.gp-pairform .gp-in { flex: 1 1 150px; min-height: 40px; padding: 6px 10px; }
.gp-pairform .gp-seedsel { flex: 0 0 112px; }
.gp-pairdel { flex: none; }
.gp-pairlist-ro { margin: 0; padding-left: 22px; }
.gp-pairlist-ro li { margin-bottom: 3px; }
.gp-pairlist-ro .gp-seed { margin-right: 8px; vertical-align: 1px; }
.gp-danger-zone { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--gp-line-strong); }
.gp-danger-zone h3 { color: var(--gp-err); }
.gp-danger-zone form { display: block; }
@media (max-width: 640px) {
	.gp-pairrow { align-items: flex-start; flex-wrap: wrap; }
	.gp-pairno { display: none; }
	.gp-pairform { flex-basis: 100%; }
}

/* ---------- QR ---------- */
.gp-sharegrid { display: grid; gap: 16px; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 760px) { .gp-sharegrid { grid-template-columns: 380px 1fr; } }
.gp-qrbox { text-align: center; }
.gp-qr { display: block; margin: 8px auto 14px; max-width: 100%; height: auto; border: 1px solid var(--gp-line); border-radius: 12px; background: #fff; }
.gp-copy { display: flex; gap: 8px; flex-wrap: wrap; }
.gp-copy .gp-in { flex: 1 1 260px; }
.gp-tips { color: var(--gp-muted); font-size: 14.5px; padding-left: 18px; margin: 16px 0 0; }
.gp-tips li { margin-bottom: 5px; }

/* ---------- Ranking (editor) ---------- */
.gp-rk-list { display: grid; gap: 8px; }
.gp-rk-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 12px; border: 1px solid var(--gp-line); border-radius: 10px; flex-wrap: wrap; }
.gp-rk-w { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.gp-rk-w .gp-in { width: 84px; }
.gp-points { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.gp-mult { display: flex; align-items: center; gap: 8px; }
.gp-mult > i { font-style: normal; font-weight: 800; color: var(--gp-muted); }
.gp-mult .gp-in { min-width: 0; }
.gp-levels-ex strong { color: var(--gp-navy); }
.gp-rank-lv { margin: 14px 0 6px; font-size: 14px; }

.gp-dl { display: grid; grid-template-columns: 130px 1fr; gap: 8px 12px; margin: 0; }
.gp-dl dt { color: var(--gp-muted); font-weight: 700; font-size: 14px; }
.gp-dl dd { margin: 0; font-weight: 600; }

/* ---------- Cartel con QR ---------- */
.gp-poster {
	max-width: 620px; margin: 0 auto; text-align: center; background: #fff; border: 3px solid var(--gp-navy); border-radius: 22px;
	padding: 34px 28px 28px; box-shadow: var(--gp-shadow);
}
.gp-poster-brand { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.gp-poster-brand .gp-word { color: var(--gp-navy); font-size: 22px; }
.gp-poster-brand .gp-word b { color: var(--gp-gold-deep); }
.gp-poster h1 { font-size: clamp(1.7rem, 6vw, 2.6rem); font-weight: 800; color: var(--gp-navy); text-wrap: balance; }
.gp-poster-venue { color: var(--gp-muted); font-size: 18px; margin: 6px 0 0 !important; }
.gp-poster-lead { font-size: 22px; font-weight: 800; margin: 22px 0 12px !important; color: var(--gp-navy); }
.gp-poster .gp-qr { margin: 0 auto 14px; width: min(100%, 420px); border: 0; }
.gp-poster-sub { font-size: 17px; color: var(--gp-gold-ink); font-weight: 700; margin-bottom: 4px !important; }
.gp-poster-url { font-size: 15px; color: var(--gp-muted); word-break: break-all; margin: 0 !important; }
.gp-noprint { margin-top: 20px !important; }

@media print {
	.gp-top, .gp-foot, .gp-noprint, .gp-skip { display: none !important; }
	.gp-body { background: #fff; }
	.gp-main { padding: 0; }
	.gp-poster { border-radius: 0; box-shadow: none; margin: 0 auto; page-break-inside: avoid; }
}

/* ---------- Toast (panel) ---------- */
.gp-toast {
	position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%);
	max-width: min(92vw, 520px); z-index: 80; padding: 12px 18px; border-radius: 12px; font-weight: 700; font-size: 15px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .25); background: var(--gp-navy); color: #fff;
}
.gp-toast.ok { background: #14532d; }
.gp-toast.err { background: #7a1d14; }
.gp-toast.warn { background: #5b4300; }

@media (prefers-reduced-motion: reduce) {
	.gp-dot { animation: none; }
	.gp-btn, .gp-tcard { transition: none; }
	.gp-tcard:hover { transform: none; }
}

@media (max-width: 560px) {
	.gp-top .gp-word { display: none; }
	.gp-nav-public { margin-left: 2px; }
	.gp-nav-cta { padding: 6px 11px; }
}

@media (max-width: 480px) {
	.gp-word { font-size: 13px; letter-spacing: .08em; }
	.gp-nav a { font-size: 13px; padding: 8px 7px; }
	.gp-top-in { gap: 6px; }
	.gp-wrap { padding: 0 14px; }
}

/* ==========================================================================
   Administración en el panel web (móvil primero)
   ========================================================================== */
.gp-adminbox { margin-bottom: 18px; border-left: 5px solid var(--gp-gold); }
.gp-adminbox .gp-sec-head { margin-bottom: 10px; }
.gp-adminfoot { margin-top: 28px; font-size: 14px; }

.gp-fold { padding: 0; margin-bottom: 18px; }
.gp-fold > summary {
	cursor: pointer; list-style: none; padding: 14px 16px; min-height: 48px;
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	font-weight: 800; font-size: 17px; color: var(--gp-navy);
}
.gp-fold > summary::-webkit-details-marker { display: none; }
.gp-fold > summary::after { content: "+"; font-size: 24px; line-height: 1; font-weight: 700; color: var(--gp-gold-deep); }
.gp-fold[open] > summary::after { content: "–"; }
.gp-fold > summary:focus-visible { outline: 3px solid var(--gp-gold); outline-offset: -3px; border-radius: var(--gp-radius); }
.gp-fold > p, .gp-fold > form { margin-left: 16px; margin-right: 16px; }
.gp-fold > form { display: grid; gap: 14px; margin-bottom: 16px; }
.gp-fold > p { margin-top: 0; }

.gp-fold-sm { border: 0; box-shadow: none; background: transparent; margin: 8px 0 0; }
.gp-fold-sm > summary { padding: 8px 0; min-height: 44px; font-size: 15px; font-weight: 700; justify-content: flex-start; gap: 8px; color: var(--gp-navy-2); }
.gp-fold-sm > summary::after { font-size: 20px; }
.gp-fold-sm > form { margin: 4px 0 6px; }

.gp-credbox { border-left: 5px solid var(--gp-ok); margin-bottom: 18px; }
.gp-credbox h3 { margin: 0 0 4px; }
.gp-credbox textarea { margin: 6px 0 12px; font-size: 15px; line-height: 1.5; }

.gp-filter { margin-bottom: 14px; }
.gp-orggrid { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .gp-orggrid { grid-template-columns: 1fr 1fr; } }
.gp-orgcard { display: grid; gap: 12px; align-content: start; }
.gp-orgcard[hidden] { display: none; }
.gp-orgcard h3 { margin: 0; font-size: 18px; overflow-wrap: anywhere; }
.gp-orgcard-head p { margin: 2px 0 0; font-size: 14px; overflow-wrap: anywhere; }
.gp-orgcard-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.gp-orgcard-actions .gp-inline { flex: 1 1 auto; }
.gp-orgcard-actions .gp-inline .gp-in { width: 84px; flex: none; }
.gp-orgcard-actions .gp-btn { flex: 1 1 auto; }
.gp-orgcard-links { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 15px; }
.gp-orgcard-links a { font-weight: 600; padding: 6px 0; }
.gp-quota-left strong { color: var(--gp-ok); }

.gp-admlist li > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.gp-admlist .gp-actions { flex-wrap: wrap; }

/* ---------- Barra de gestión en la página pública (organizador, administrador, moderador) ---------- */
.gp-adminstrip {
	background: var(--gp-gold-soft); border: 1px solid var(--gp-gold); border-radius: 14px;
	padding: 12px 14px; margin-bottom: 14px; display: grid; gap: 10px;
}
.gp-adminstrip-t { margin: 0; font-size: 14px; color: var(--gp-ink); }
.gp-adminstrip-a { display: flex; flex-wrap: wrap; gap: 8px; }
.gp-editlink {
	margin-left: 6px; font-size: 12px; font-weight: 800; text-decoration: none;
	padding: 2px 10px; border-radius: 999px; background: var(--gp-navy); color: #fff !important;
}
.gp-ch .gp-chip + .gp-editlink { margin-left: 8px; }
.gp-fold-danger > summary { color: var(--gp-err); }
@media print { .gp-adminstrip, .gp-editlink { display: none !important; } }
.gp-also { flex: 1 0 100%; color: var(--gp-muted); font-size: 12.5px; }
li > .gp-also { flex: none; }
.gp-card.is-flash { outline: 3px solid var(--gp-gold); outline-offset: 2px; }

/* ==========================================================================
   Inscripciones desde la web (v1.4.0)
   ========================================================================== */
.gp-chip.st-reg { background: var(--gp-navy); color: #fff; }
.gp-chip.st-pend { background: var(--gp-gold); color: var(--gp-navy); text-decoration: none; }
a.gp-chip.st-pend:hover { background: #ffc61f; }
.gp-badge {
	display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 6px;
	border-radius: 999px; background: var(--gp-gold); color: var(--gp-navy); font-size: 12px; font-weight: 800; line-height: 1;
}
.gp-tcard-p-top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gp-btn-lg { min-height: 52px; padding: 12px 24px; font-size: 17px; }

/* Tarjeta en la página pública del torneo */
.gp-regcard {
	background: var(--gp-surface); border: 1.5px solid var(--gp-gold); border-left-width: 6px; border-radius: 14px;
	padding: 14px 16px; margin: 0 0 14px; box-shadow: var(--gp-shadow);
}
.gp-regcard-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.gp-regcard-head h2 { font-size: 19px; }
.gp-regcard-pay { margin: 6px 0 10px; font-size: 14.5px; color: var(--gp-ink); }
.gp-regcats { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 4px; }
.gp-regcats li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 10px; border-radius: 8px; background: #faf7ec; font-size: 14.5px; }
.gp-regcats li em { font-style: normal; font-weight: 700; color: var(--gp-ok); white-space: nowrap; }
.gp-regcats li.is-full em, .gp-regcats li.is-closed em { color: var(--gp-muted); }
.gp-regcats li.is-full span, .gp-regcats li.is-closed span { color: var(--gp-muted); }

/* Formulario público */
.gp-regintro { background: var(--gp-gold-soft); border: 1px solid var(--gp-gold); border-radius: 12px; padding: 12px 16px; margin: 14px 0; font-size: 14.5px; }
.gp-regintro ul { margin: 0; padding-left: 18px; display: grid; gap: 3px; }
.gp-regform { display: grid; gap: 14px; margin-bottom: 30px; }
.gp-regfs { border: 1px solid var(--gp-line); border-radius: 14px; background: var(--gp-surface); padding: 14px 16px 16px; margin: 0; display: grid; gap: 12px; min-width: 0; }
.gp-regfs legend { font-weight: 800; font-size: 15px; padding: 0 6px; color: var(--gp-navy); }
.gp-regpick { display: grid; gap: 8px; }
.gp-regopt {
	display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 10px;
	padding: 12px 14px; min-height: 52px; border: 1.5px solid var(--gp-line-strong); border-radius: 12px; cursor: pointer; background: #fff;
}
.gp-regopt input { width: 20px; height: 20px; accent-color: var(--gp-navy); margin: 0; }
.gp-regopt-n { font-weight: 700; overflow-wrap: anywhere; }
.gp-regopt em { font-style: normal; font-size: 13px; font-weight: 700; color: var(--gp-ok); text-align: right; }
.gp-regopt:has(input:checked) { border-color: var(--gp-navy); box-shadow: 0 0 0 3px rgba(245, 184, 0, .5); background: #fffdf3; }
.gp-regopt.is-off { opacity: .55; cursor: not-allowed; background: #f4f2ea; }
.gp-regopt.is-off em { color: var(--gp-muted); }
.gp-regconsent { align-items: flex-start; font-size: 14.5px; }
.gp-regconsent input { margin-top: 2px; }
.gp-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gp-regdone { background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: 14px; padding: 22px 20px; margin: 16px 0 30px; text-align: center; }
.gp-regdone h2 { font-size: 22px; margin-bottom: 8px; }
.gp-regdone .gp-actions { justify-content: center; }

/* Panel: pestaña Inscripciones */
.gp-regstat { border-left: 5px solid var(--gp-line-strong); }
.gp-regstat.is-on { border-left-color: var(--gp-ok); }
.gp-regstat-top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.gp-regstat-top h3 { margin: 0; }
.gp-reglist { display: grid; gap: 10px; }
.gp-regitem { display: grid; gap: 10px; padding: 12px; border: 1.5px solid var(--gp-line); border-radius: 12px; background: #fffdf8; }
.gp-regitem-main { display: grid; gap: 4px; min-width: 0; }
.gp-regitem-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; font-size: 13px; }
.gp-regitem-pair { font-size: 17px; line-height: 1.3; overflow-wrap: anywhere; color: var(--gp-navy); }
.gp-regitem-contact { font-weight: 700; font-size: 16px; text-decoration: none; padding: 4px 0; align-self: start; }
.gp-regitem-note { margin: 0; font-style: italic; color: #475467; font-size: 14.5px; overflow-wrap: anywhere; }
.gp-regitem-warn { color: var(--gp-err); font-weight: 700; font-size: 13px; }
.gp-regitem-act { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gp-regitem-act .gp-inline { display: block; }
.gp-regitem-act .gp-inline:only-child { grid-column: 1 / -1; }
.gp-regbtn { width: 100%; min-height: 50px; font-size: 16px; }
.gp-regbtn-ok { background: var(--gp-ok); border-color: var(--gp-ok); }
.gp-regbtn-ok:hover { background: #116a31; border-color: #116a31; }
.gp-regbtn-no { background: #fff; color: var(--gp-err) !important; border-color: #e7b1ac; }
.gp-regbtn-no:hover { background: var(--gp-err-soft); border-color: var(--gp-err); }
@media (min-width: 760px) {
	.gp-regitem { grid-template-columns: 1fr 300px; align-items: center; }
}
.gp-slots { display: grid; gap: 8px; }
.gp-slotrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border: 1px solid var(--gp-line); border-radius: 10px; }
.gp-slotrow > span { display: grid; min-width: 0; }
.gp-slotrow strong { overflow-wrap: anywhere; }
.gp-slotrow input { width: 88px; flex: none; text-align: center; }
.gp-regdecided .gp-rowlist li { padding: 9px 0; font-size: 14.5px; }
.gp-ok { color: var(--gp-ok); }
.gp-no { color: var(--gp-err); }
.gp-privacy-note { font-size: 13px; margin-top: 8px; }
.gp-regsettings > form { padding-bottom: 6px; }

/* Publicidad: zonas, patrocinadores y aviso a pantalla completa */
.gp-ad { margin: 20px 0; text-align: center; clear: both; }
.gp-ad-label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gp-muted); margin-bottom: 5px; }
.gp-ad-sponsor a { display: block; text-decoration: none; }
.gp-ad-sponsor img { display: block; margin: 0 auto; max-width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--gp-line); background: #fff; }
.gp-ad-adsense { overflow: hidden; }
.gp-ad-adsense .gp-ad-label { visibility: hidden; }
.gp-ad-adsense:has(ins.adsbygoogle[data-ad-status="filled"]) .gp-ad-label { visibility: visible; }
.gp-ad-adsense ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; }
.gp-ad:has(ins.adsbygoogle[data-ad-status="unfilled"]) { display: none; }
.gp-ad-ph { border: 2px dashed var(--gp-line-strong); border-radius: 12px; background: #fffdf3; padding: 12px 14px; display: grid; gap: 4px; font-size: 13.5px; color: var(--gp-muted); }
.gp-ad-ph strong { color: var(--gp-navy); }
.gp-splash {
	position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center;
	background: rgba(9, 21, 38, .97); padding: 16px; overflow-y: auto; overscroll-behavior: contain;
}
.gp-splash-open, .gp-splash-open body { overflow: hidden; }
.gp-splash-box { width: min(100%, 520px); display: grid; gap: 14px; justify-items: center; }
.gp-splash-label { color: #cbd5e1; margin: 0; }
.gp-splash-box a { display: block; max-width: 100%; }
.gp-splash-img { display: block; max-width: 100%; max-height: 66vh; width: auto; height: auto; border-radius: 12px; background: #fff; }
.gp-splash-go { min-width: 220px; min-height: 52px; font-size: 17px; }
.gp-splash-go[disabled] { opacity: .75; cursor: wait; }

/* Panel: pestaña Anuncios */
.gp-adchecks { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.gp-adchecks li { padding: 8px 10px 8px 34px; border-radius: 10px; background: #f7f5ec; position: relative; overflow-wrap: anywhere; font-size: 14.5px; }
.gp-adchecks li::before { content: "✘"; position: absolute; left: 11px; top: 8px; color: var(--gp-err); font-weight: 800; }
.gp-adchecks li.is-ok::before { content: "✔"; color: var(--gp-ok); }
.gp-adwarn { background: var(--gp-warn-soft); border: 1px solid #f0d49a; border-radius: 10px; padding: 10px 12px; font-size: 14px; overflow-wrap: anywhere; }
.gp-adguide summary { cursor: pointer; font-weight: 800; font-size: 16px; padding: 4px 0; }
.gp-adsteps { display: grid; gap: 10px; padding-left: 20px; font-size: 14.5px; line-height: 1.5; }
.gp-adzones { display: grid; gap: 14px; margin: 12px 0 6px; }
.gp-adzone { border: 1px solid var(--gp-line); border-radius: 14px; background: #fffdf8; padding: 12px 14px 14px; margin: 0; display: grid; gap: 10px; min-width: 0; }
.gp-adzone legend { font-weight: 800; color: var(--gp-navy); padding: 0 6px; }
.gp-adzone h4 { margin: 4px 0 0; font-size: 14px; }
.gp-adimg { display: grid; gap: 8px; }
.gp-adthumb { max-width: 100%; max-height: 120px; width: auto; border-radius: 8px; border: 1px solid var(--gp-line); background: #fff; justify-self: start; }
.gp-adonoff { font-size: 16px; padding: 6px 0; }

/* Precios de inscripción */
.gp-prices { list-style: none; margin: 0 0 4px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gp-prices li { display: grid; gap: 1px; padding: 8px 14px; border-radius: 10px; background: #fff; border: 1.5px solid var(--gp-gold); min-width: 112px; text-align: center; }
.gp-prices li span { font-size: 13px; color: var(--gp-muted); }
.gp-prices li b { font-size: 20px; line-height: 1.15; color: var(--gp-navy); }
.gp-prices-unit { margin: 4px 0 10px; font-size: 13px; }
.gp-regcard-price { margin: 0 0 10px; font-weight: 800; font-size: 17px; color: var(--gp-navy); }

/* ==========================================================================
   Horarios (v1.7.0)
   ========================================================================== */
.gp-time { display: inline-flex; align-items: center; gap: 3px; font-weight: 800; color: var(--gp-navy); white-space: nowrap; font-variant-numeric: tabular-nums; }
.gp-time .gp-ico { width: 12px; height: 12px; vertical-align: -2px; opacity: .75; }
.gp-time.is-est { color: #5a5640; font-weight: 700; }
.gp-tree .gp-time .gp-ico { display: none; }
.gp-card.st-ready .gp-time { color: var(--gp-navy); }

.gp-catstart { display: flex; align-items: center; gap: 7px; margin: -4px 0 12px; font-size: 14.5px; font-weight: 700; color: var(--gp-navy); }
.gp-catstart .gp-ico { width: 16px; height: 16px; flex: none; color: var(--gp-gold-deep); }

.gp-view-sched { display: none; }
.gp-panes[data-view="sched"] .gp-view-sched { display: block; }
.gp-panes[data-view="sched"] .gp-view-tree,
.gp-panes[data-view="sched"] .gp-view-list { display: none; }

.gp-agenda { display: grid; gap: 6px; }
.gp-agday { margin: 10px 0 2px; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--gp-muted); font-weight: 800; }
.gp-agday:first-child { margin-top: 0; }
.gp-aglist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gp-agrow {
	display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 4px 10px; align-items: start;
	background: var(--gp-surface); border: 1px solid var(--gp-line); border-radius: 12px; padding: 10px 12px;
	box-shadow: var(--gp-shadow);
}
.gp-agrow.is-dim { opacity: .3; }
.gp-agrow.is-hit { outline: 3px solid var(--gp-gold); outline-offset: 1px; }
.gp-agrow.st-ready { background: var(--gp-gold-soft); border-color: var(--gp-gold); }
.gp-agrow.st-playing { border-color: var(--gp-ok); }
.gp-agrow.st-finished { background: #f6f5f0; box-shadow: none; }
.gp-agrow.st-finished .gp-agt { color: var(--gp-muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.gp-agt { font-weight: 800; font-size: 17px; color: var(--gp-navy); font-variant-numeric: tabular-nums; line-height: 1.25; white-space: nowrap; }
.gp-agt.is-est { font-size: 16px; color: #5a5640; font-weight: 700; }
.gp-agm { display: grid; gap: 3px; min-width: 0; }
.gp-agh { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: var(--gp-muted); }
.gp-agh b { color: var(--gp-navy); font-weight: 800; }
.gp-agh .gp-chip { margin-left: auto; font-size: 11px; padding: 0 8px; line-height: 1.7; }
.gp-agp { display: grid; gap: 1px; font-size: 15px; line-height: 1.3; min-width: 0; }
.gp-agp em { display: none; }
.gp-agn + em + .gp-agn::before { content: "vs "; font-size: 12px; font-style: normal; font-weight: 400; color: var(--gp-muted); }
.gp-agn { min-width: 0; overflow-wrap: anywhere; }
.gp-agn .gp-p { display: inline; }
.gp-agn .gp-p .f { display: inline; }
.gp-agn .gp-p .s { display: none; }
.gp-agn .gp-p + .gp-p::before { content: " / "; color: var(--gp-muted); }
.gp-agn.is-win { font-weight: 800; }
.gp-agn.is-empty { color: var(--gp-muted); font-style: italic; }
.gp-agsc { font-size: 13px; font-weight: 700; color: var(--gp-navy); }
@media (min-width: 760px) {
	.gp-agrow { grid-template-columns: 96px minmax(0, 1fr); padding: 11px 14px; }
}

.gp-regcats li > span, .gp-regopt-n { min-width: 0; }
.gp-regcats li small, .gp-regopt-n small { display: block; font-size: 12.5px; font-weight: 600; color: var(--gp-muted); }

/* Panel: pestaña Horarios */
.gp-schform { display: grid; gap: 16px; }
.gp-schcat .gp-sec-head { margin-bottom: 10px; }
.gp-schgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; align-items: start; }
.gp-schgrid .gp-field small { font-size: 12.5px; }
@media (min-width: 760px) { .gp-schgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gp-schest { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 4px; font-size: 14.5px; line-height: 1.4; }
.gp-schest .gp-ico { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--gp-gold-deep); }
.gp-schfix { margin-top: 10px; border-top: 1px dashed var(--gp-line-strong); padding-top: 8px; }
.gp-schfix summary { cursor: pointer; font-weight: 800; padding: 8px 0; min-height: 44px; display: flex; align-items: center; }
.gp-schlist { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 8px; }
.gp-schlist li { background: #faf7ec; border-radius: 10px; padding: 8px 10px; }
.gp-schlist label { display: grid; gap: 6px; }
.gp-schm { display: grid; gap: 1px; font-size: 14px; overflow-wrap: anywhere; }
.gp-schlist input[type="datetime-local"] { max-width: 100%; }
@media (min-width: 760px) {
	.gp-schlist label { grid-template-columns: minmax(0, 1fr) 220px; align-items: center; column-gap: 12px; }
	.gp-schlist label small { grid-column: 2; }
}
.gp-stickysave { position: sticky; bottom: 0; z-index: 5; padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); background: linear-gradient(to top, var(--gp-bg) 70%, rgba(246, 243, 234, 0)); margin-top: 0; }
.gp-stickysave .gp-btn { width: 100%; }
@media (min-width: 760px) { .gp-stickysave .gp-btn { width: auto; } }
