/* Administración v2 · escritorio blanco/azul. Estilos aislados por body.admin-v2.
   La estructura de marcas y su botón de pausa son compartidos; el resto no afecta al sitio público. */
body.admin-v2 {
  --bg: #f4f6fa;
  --bg-2: #ffffff;
  --surface: #ffffff;
  --surface-2: #f5f7fb;
  --line: #e0e6ef;
  --text: #142443;
  --muted: #607089;
  --ink: #142443;
  --gold: #1746bc;
  --gold-2: #123c9f;
  --gold-rgb: 23, 70, 188;
  --gold-ink: #1746bc;
  --green: #237653;
  --red: #b43c43;
  --blue: #1746bc;
  --r: 12px;
  --r-sm: 10px;
  --r-lg: 14px;
  --font: Arial, Helvetica, sans-serif;
  --font-display: Arial, Helvetica, sans-serif;
  --header-h: 72px;
  --sidebar-w: 224px;
  --nav-h: 70px;
  --e1: 0 2px 5px #1c355006;
  --e2: 0 5px 16px #1c35500a;
  --e3: 0 10px 26px #1c355014;
  --e4: 0 18px 50px #1c355024;
  margin: 0;
  padding: 0 0 calc(70px + env(safe-area-inset-bottom));
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
  color-scheme: light;
}
body.admin-v2 *, body.admin-v2 *::before, body.admin-v2 *::after { box-sizing: border-box; }
body.admin-v2 h1, body.admin-v2 h2, body.admin-v2 h3, body.admin-v2 h4,
body.admin-v2 input, body.admin-v2 button, body.admin-v2 textarea, body.admin-v2 select { font-family: var(--font); }
body.admin-v2 h1, body.admin-v2 h2, body.admin-v2 h3, body.admin-v2 h4 { color: var(--text); letter-spacing: -.02em; text-transform: none; }
body.admin-v2 button, body.admin-v2 summary, body.admin-v2 a { -webkit-tap-highlight-color: transparent; }
body.admin-v2 button, body.admin-v2 input, body.admin-v2 select, body.admin-v2 textarea { font-size: 15px; }
body.admin-v2 :focus-visible { outline: 3px solid #7398ef; outline-offset: 3px; }
body.admin-v2 [hidden] { display: none; }
body.admin-v2 .muted { color: var(--muted); }
body.admin-v2 .link { color: var(--gold); font-weight: 600; }
body.admin-v2 .demo-sidebar { position: fixed; z-index: 80; top: 0; bottom: 70px; left: 0; width: var(--sidebar-w); overflow-y: auto; background: #fff; border-right: 1px solid var(--line); padding: 0 18px 24px; scrollbar-width: thin; scrollbar-color: #d3dceb transparent; }
body.admin-v2 .demo-brand { min-height: 112px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; padding: 14px 8px; text-align: center; border-bottom: 1px solid #edf0f6; margin-bottom: 16px; }
body.admin-v2 .demo-brand img { display: block; width: 158px; height: 82px; object-fit: contain; }
body.admin-v2 .demo-brand strong { font-size: 15px; line-height: 1.2; }
body.admin-v2 .demo-brand small { color: var(--muted); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
body.admin-v2 #demoNav { display: flex; flex-direction: column; gap: 5px; }
body.admin-v2 #demoNav details { padding: 0; border: 0; background: transparent; }
body.admin-v2 #demoNav summary { list-style: none; position: relative; cursor: pointer; min-height: 44px; display: flex; gap: 9px; align-items: center; font-size: 13px; font-weight: 700; color: #52617a; padding: 11px 26px 11px 12px; border-radius: 10px; }
body.admin-v2 #demoNav summary::-webkit-details-marker { display: none; }
body.admin-v2 #demoNav summary > b { display: none; }
body.admin-v2 #demoNav summary::after { content: '›'; position: absolute; right: 11px; top: 9px; font-size: 18px; color: #758199; transform: rotate(0deg); }
body.admin-v2 #demoNav details[open] > summary::after { transform: rotate(90deg); }
body.admin-v2 #demoNav summary:hover { background: #f5f7fb; }
body.admin-v2 #demoNav button[data-page] { display: flex; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; min-height: 44px; margin: 2px 0; border: 1px solid transparent; border-radius: 10px; padding: 10px 12px; background: transparent; color: #4d5d77; font-size: 14px; font-weight: 500; line-height: 1.35; text-align: left; cursor: pointer; }
body.admin-v2 #demoNav details button[data-page] { padding-left: 22px; }
body.admin-v2 #demoNav button[data-page]:hover { background: #f1f5fd; color: #1746bc; }
body.admin-v2 #demoNav button[data-page].active,
body.admin-v2 #demoNav button[data-page].is-active,
body.admin-v2 #demoNav button[data-page].is-current,
body.admin-v2 #demoNav button[data-page][aria-current="page"] { background: #1746bc; color: #fff; font-weight: 700; box-shadow: 0 5px 12px #1746bc1f; }
body.admin-v2 #demoNav svg { width: 19px; height: 19px; flex: none; }
body.admin-v2 .demo-sidebar-foot { margin-top: 24px; padding: 16px 12px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
body.admin-v2 .admin-menu-toggle { display: none; }
body.admin-v2 .demo-nav-label { color: #607089; font-size: 11px; font-weight: 700; letter-spacing: .12em; padding: 0 12px; margin: 0 0 12px; }
body.admin-v2 .demo-profile { display: flex; align-items: center; gap: 10px; margin-top: 24px; padding: 20px 6px 0; border-top: 1px solid #e8edf5; }
body.admin-v2 .demo-profile strong { display: block; font-size: 13px; font-weight: 600; }
body.admin-v2 .demo-profile small { display: block; margin-top: 3px; color: #7a879a; font-size: 11px; }
body.admin-v2 .demo-avatar { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #eaf0ff; color: #1746bc; font-size: 12px; font-weight: 700; }
body.admin-v2 .demo-topbar { margin-left: var(--sidebar-w); height: var(--header-h); position: sticky; top: 0; z-index: 65; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 28px; background: #ffffffed; backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
body.admin-v2 .demo-topbar::before { display: none; }
body.admin-v2 .demo-topbar > * { min-width: 0; }
body.admin-v2 .demo-topbar .demo-search { position: relative; flex: 1 1 360px; max-width: 400px; margin-left: auto; }
body.admin-v2 .demo-breadcrumb { font-size: 13px; color: #607089; white-space: nowrap; }
body.admin-v2 .demo-breadcrumb span { color: #b7c2d3; margin: 0 10px; }
body.admin-v2 .demo-breadcrumb strong { font-weight: 600; color: #566781; }
body.admin-v2 .demo-topbar > .btn { flex: none; min-width: 100px; }
body.admin-v2 #sectionSearch { width: min(520px, 100%); min-height: 46px; padding: 12px 16px; background: #f5f7fb; border: 1px solid #e4eaf3; border-radius: 12px; color: var(--text); font-family: var(--font); font-size: 15px; }
body.admin-v2 #sectionSearch::placeholder { color: #748197; }
body.admin-v2 .demo-search-results { position: absolute; z-index: 120; top: calc(100% + 8px); left: 0; right: 0; min-width: 280px; max-height: min(440px, 65vh); overflow: auto; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--e4); }
body.admin-v2 .demo-search-results button { display: block; min-height: 44px; width: 100%; border: 0; border-radius: 8px; background: #fff; color: var(--text); text-align: left; padding: 10px 12px; }
body.admin-v2 .demo-search-results button:hover { background: #edf3ff; color: var(--gold); }
body.admin-v2 .demo-search-results small { color: var(--muted); display: block; }
body.admin-v2 .demo-topbar .demo-user { display: flex; align-items: center; gap: 10px; font-size: 14px; }
body.admin-v2 .demo-topbar .demo-avatar { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #eaf0ff; color: #1746bc; font-weight: 700; }
body.admin-v2 .demo-main { margin-left: var(--sidebar-w); min-height: calc(100vh - var(--header-h) - 70px); padding: 24px 28px 32px; }
body.admin-v2 .demo-page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin: 0 0 22px; }
body.admin-v2 .demo-page-head h1 { font-size: 28px; line-height: 1.2; font-weight: 700; margin: 0 0 8px; }
body.admin-v2 .demo-page-head p { color: var(--muted); max-width: 780px; margin: 0; font-size: 15px; }
body.admin-v2 .demo-page-head .eyebrow { color: #56667e; font-size: 12px; font-weight: 600; letter-spacing: .08em; margin: 0 0 9px; }
body.admin-v2 #adminMeta { color: var(--muted); font-size: 14px; }
body.admin-v2 .demo-page-head #adminMeta { margin: 0 0 8px; color: #56667e; font-size: 14px; }
body.admin-v2 .demo-status { display: inline-flex; align-items: center; width: max-content; border-radius: 6px; margin-top: 7px; padding: 4px 9px; font-size: 11px; line-height: 1.4; font-weight: 600; color: #64748a; background: #f0f3f8; }
body.admin-v2 .demo-status.pending { color: #946821; background: #fff5df; }
body.admin-v2 .demo-status.published { color: #237653; background: #edf8f1; }
body.admin-v2 #view { max-width: none; margin: 0; padding: 0; animation: none; }
body.admin-v2 #view > .section-head { display: none; }
body.admin-v2 #view .admin-shell { display: block; margin: 0; }
body.admin-v2 #view .admin-nav, body.admin-v2 #view .admin-nav-select { display: none; }
body.admin-v2 #view .admin-panel, body.admin-v2 #adBody { min-width: 0; }
body.admin-v2 #adBody > .flexrow:first-child { gap: 16px; margin-bottom: 20px; }
body.admin-v2 #adBody > .flexrow:first-child > strong { font-size: 16px; font-weight: 600; }
body.admin-v2 #adBody > p { max-width: 900px; color: #56667e; line-height: 1.65; }
body.admin-v2 #adBody .panel > p.muted[style*="font-size:12"],
body.admin-v2 #adBody .panel > p.muted[style*="font-size:13"],
body.admin-v2 #adBody .panel .field > p.muted[style*="font-size:12"],
body.admin-v2 #adBody > p[style*="font-size:12"],
body.admin-v2 #adBody > p[style*="font-size:13"] { font-size: 14px !important; }
body.admin-v2 .panel, body.admin-v2 .home-panel { border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--e1); padding: 24px; margin-top: 20px; }
body.admin-v2 .panel h3, body.admin-v2 .home-panel h2, body.admin-v2 .home-panel h3 { font-family: var(--font); font-size: 19px; line-height: 1.35; font-weight: 700; letter-spacing: -.02em; text-transform: none; margin: 0 0 16px; }
body.admin-v2 .home-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 20px; align-items: start; }
body.admin-v2 .home-grid > * { min-width: 0; }
body.admin-v2 .home-column { display: grid; align-content: start; gap: 20px; }
body.admin-v2 #demoHome .home-panel { padding: 20px; }
body.admin-v2 #demoHome .home-panel h2 { font-size: 18px; }
body.admin-v2 #demoHome .home-panel { margin-top: 0; }
body.admin-v2 .home-panel + .home-panel { margin-top: 0; }
body.admin-v2 .home-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
body.admin-v2 .home-panel > header > h2 { margin-bottom: 0; }
body.admin-v2 .home-panel > header > .demo-status { flex: none; margin-top: 0; }
body.admin-v2 .home-panel > p.muted { font-size: 14px; margin: -5px 0 10px; }
body.admin-v2 .home-row { display: flex; align-items: center; gap: 14px; padding: 18px 0; border-bottom: 1px solid #eaf0f5; }
body.admin-v2 .home-row:last-child { border-bottom: 0; padding-bottom: 0; }
body.admin-v2 .home-row:first-child { padding-top: 0; }
body.admin-v2 .home-row > div { flex: 1; min-width: 0; }
body.admin-v2 .home-row strong { display: block; font-size: 15px; line-height: 1.35; font-weight: 600; }
body.admin-v2 .home-row small { display: block; color: #607089; font-size: 13px; line-height: 1.5; margin: 4px 0 0; }
body.admin-v2 .home-icon { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 11px; background: #f0f4ff; color: #4369be; }
body.admin-v2 .home-icon svg { display: block; width: 22px; height: 22px; }
body.admin-v2 .home-content { display: grid; grid-template-columns: minmax(150px, .85fr) minmax(200px, 1.15fr); gap: 22px; margin-top: 16px; }
body.admin-v2 .home-thumb { min-width: 0; }
body.admin-v2 .home-thumb > img { display: block; width: 100%; max-width: 240px; aspect-ratio: 4 / 3; height: auto; object-fit: contain; border: 1px solid #e6ebf3; border-radius: 10px; background: #f5f7fb; }
body.admin-v2 .home-thumb > h3 { font-size: 16px; margin: 14px 0 3px; }
body.admin-v2 .home-thumb > p { font-size: 12px; line-height: 1.5; color: #607089; margin: 0 0 5px; }
body.admin-v2 .home-module { display: flex; align-items: center; gap: 14px; margin-top: 12px; border: 1px solid var(--line); border-radius: 10px; padding: 14px; background: #fff; }
body.admin-v2 .home-module img { width: 68px; height: 64px; max-height: 64px; object-fit: contain; flex: none; }
body.admin-v2 .home-module > div { flex: 1; min-width: 0; }
body.admin-v2 .home-module strong { font-size: 16px; display: block; }
body.admin-v2 .home-module h3 { font-size: 16px; line-height: 1.3; margin: 0; }
body.admin-v2 .home-module p { font-size: 13px; line-height: 1.5; color: var(--muted); margin: 3px 0 2px; }
body.admin-v2 .home-links { display: flex; flex-direction: column; gap: 0; min-width: 0; }
body.admin-v2 .home-links > h3 { margin: 0 0 10px; font-size: 15px; font-weight: 600; }
body.admin-v2 .home-links button, body.admin-v2 .home-links a { display: flex; align-items: center; justify-content: space-between; text-align: left; gap: 10px; width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid #edf1f6; background: #fff; padding: 11px 0; color: #405776; font-size: 14px; }
body.admin-v2 .home-links button:last-child, body.admin-v2 .home-links a:last-child { border-bottom: 0; }
body.admin-v2 .home-links button:hover, body.admin-v2 .home-links a:hover { color: #1746bc; }
body.admin-v2 .demo-link { display: inline-flex; align-items: center; justify-content: flex-start; min-height: 44px; padding: 9px 0; border: 0; background: transparent; color: #1746bc; font-size: 13px; line-height: 1.5; font-weight: 600; white-space: normal; }
body.admin-v2 .demo-link:hover { color: #0c3298; text-decoration: underline; text-underline-offset: 3px; }
body.admin-v2 .home-row > .demo-link { flex: none; max-width: 140px; }
body.admin-v2 .demo-home-actions { position: relative; display: flex; justify-content: flex-end; margin: 0; flex: none; align-self: center; }
body.admin-v2 #createMenu { position: absolute; top: calc(100% + 7px); right: 0; width: 240px; z-index: 20; padding: 8px; border: 1px solid #dfe6f1; border-radius: 12px; box-shadow: var(--e3); background: #fff; }
body.admin-v2 #createMenu button { display: block; min-height: 44px; width: 100%; border: 0; border-radius: 8px; padding: 11px 12px; text-align: left; color: #334b70; background: #fff; }
body.admin-v2 #createMenu button:hover { background: #eef3ff; color: #1746bc; }
body.admin-v2 .home-stat { min-width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: #eaf0ff; color: #1746bc; font-size: 19px; font-weight: 700; }
body.admin-v2 .btn { border-radius: 10px; border: 1px solid #dbe3ef; min-height: 44px; padding: 11px 17px; font-size: 15px; line-height: 1.3; font-weight: 600; background: #fff; color: #334b70; box-shadow: none; justify-content: center; transition: background .14s, border-color .14s, color .14s; }
body.admin-v2 .btn:hover { background: #f4f7fd; border-color: #b8c9e5; box-shadow: none; }
body.admin-v2 .btn-gold { background: #1746bc; border-color: #1746bc; color: #fff; box-shadow: 0 4px 9px #1746bc14; }
body.admin-v2 .btn-gold:hover { background: #123c9f; border-color: #123c9f; color: #fff; }
body.admin-v2 .btn-ghost { background: transparent; }
body.admin-v2 .btn-danger { background: transparent; border-color: transparent; color: #b43c43; }
body.admin-v2 .btn-danger:hover { color: #99232a; border-color: #f1d5d7; background: #fff5f5; }
body.admin-v2 .btn-sm { min-height: 44px; font-size: 14px; padding: 10px 14px; }
body.admin-v2 .btn svg { flex: none; }
body.admin-v2 .btn:disabled { opacity: .5; }
body.admin-v2 .badge { border: 0; border-radius: 6px; padding: 4px 9px; font-size: 12px; font-weight: 600; background: #edf1f7; color: #52617a; }
body.admin-v2 .badge.green { color: #216c4c; background: #eaf7ef; }
body.admin-v2 .badge.gold { color: #90651d; background: #fff5df; }
body.admin-v2 .admin-badge { font-family: var(--font); background: #eaf0ff; color: #1746bc; }
body.admin-v2 .demo-list-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 16px 18px; margin: 0 0 16px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
body.admin-v2 .demo-list-tools label { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; flex: 1 1 250px; color: #5e6f88; font-size: 13px; }
body.admin-v2 .demo-list-tools label:has(select) { flex: 0 1 210px; }
body.admin-v2 .demo-list-tools input, body.admin-v2 .demo-list-tools select { width: 100%; }
body.admin-v2 .demo-list-tools input, body.admin-v2 .demo-list-tools select { min-height: 44px; padding: 10px 12px; border: 1px solid #dce4ef; border-radius: 9px; background: #fff; color: var(--text); font-family: var(--font); }
body.admin-v2 .demo-list-tools .muted { margin-left: auto; font-size: 13px; }
body.admin-v2 #listCount { align-self: flex-end; padding-bottom: 11px; font-size: 13px; color: #607089; }
body.admin-v2 .row-list, body.admin-v2 .admin-list { border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--e1); overflow: hidden; background: #fff; }
body.admin-v2 .row-item, body.admin-v2 .admin-row { display: flex; align-items: center; gap: 18px; padding: 19px 22px; background: #fff; border-bottom: 1px solid #e8edf5; }
body.admin-v2 .row-item:last-child, body.admin-v2 .admin-row:last-child { border-bottom: 0; }
body.admin-v2 .row-item[hidden], body.admin-v2 .admin-row[hidden] { display: none; }
body.admin-v2 .row-item:hover, body.admin-v2 .admin-row:hover { background: #fafcff; }
body.admin-v2 .row-item .ri-thumb { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; border: 1px solid #e5eaf2; background: #f7f9fc; }
body.admin-v2 .row-item .ri-thumb[data-ad-equipo] { object-fit: contain; }
body.admin-v2 .row-item .ri-main { min-width: 0; }
body.admin-v2 .row-item .ri-main strong { color: #172b4c; font-size: 16px; line-height: 1.4; font-weight: 600; }
body.admin-v2 .row-item .ri-main small { display: block; margin-top: 5px; font-size: 13px; color: #64738b; line-height: 1.5; overflow-wrap: anywhere; }
body.admin-v2 .row-actions { gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
body.admin-v2 .row-actions .btn { min-height: 44px; min-width: 44px; }
body.admin-v2 .row-actions .btn[data-edit] { color: #1746bc; background: #f4f7ff; border-color: #e0e8fb; }
body.admin-v2 .row-actions .btn[data-avisar] { font-weight: 500; background: transparent; border-color: transparent; }
body.admin-v2 .field { margin-bottom: 4px; min-width: 0; }
body.admin-v2 .field label { font-size: 14px; color: #354968; line-height: 1.45; font-weight: 600; margin-bottom: 8px; }
body.admin-v2 .field input, body.admin-v2 .field select, body.admin-v2 .field textarea,
body.admin-v2 .rows input, body.admin-v2 .qj-lado input.qj-buscar { min-height: 46px; border: 1px solid #d8e1ed; border-radius: 9px; background: #fff; padding: 12px 13px; color: #203453; font-size: 15px; font-family: var(--font); line-height: 1.4; }
body.admin-v2 .field input[readonly] { background: #f5f7fb; color: #63738b; }
body.admin-v2 .field input::placeholder, body.admin-v2 .field textarea::placeholder { color: #8290a4; }
body.admin-v2 .field input:focus, body.admin-v2 .field select:focus, body.admin-v2 .field textarea:focus { border-color: #668beb; box-shadow: 0 0 0 3px #1746bc13; }
body.admin-v2 .field textarea { min-height: 128px; resize: vertical; }
body.admin-v2 .field input[type="checkbox"], body.admin-v2 .field input[type="radio"] { min-height: auto; width: 20px; height: 20px; accent-color: #1746bc; }
body.admin-v2 .field input[type="file"] { font-size: 14px; padding: 10px; max-width: 100%; }
body.admin-v2 .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; margin-bottom: 20px; }
body.admin-v2 .up { padding: 16px; background: #f9fbff; border: 1px dashed #c7d5e9; border-radius: 10px; min-height: 92px; gap: 12px; }
body.admin-v2 .up-pick { margin: 0; color: #1746bc; }
body.admin-v2 .field label.up-pick { display: inline-flex; align-items: center; margin: 0; font-size: 14px; color: #1746bc; }
body.admin-v2 .up-prev { max-height: 170px; max-width: 100%; border: 1px solid #e2e7f0; border-radius: 8px; object-fit: contain; background: #fff; }
body.admin-v2 .up-thumbs { gap: 10px; }
body.admin-v2 .up-thumbs img { width: 78px; height: 92px; object-fit: cover; border: 1px solid #dce4ef; background: #fff; }
body.admin-v2 .up-status { color: #64738b; font-size: 13px; }
body.admin-v2 .rows .rowrec { align-items: center; gap: 10px; }
body.admin-v2 .rows-add { margin-top: 10px; }
body.admin-v2 .modal-back.admin-editor { inset: var(--header-h) 0 70px var(--sidebar-w); display: block; padding: 22px 28px; z-index: 90; background: #f4f6fa; backdrop-filter: none; animation: none; }
body.admin-v2.admin-editing .demo-topbar { z-index: 100; }
body.admin-v2.admin-editing .demo-sidebar { z-index: 110; }
body.admin-v2 .admin-editor .modal { width: 100%; height: 100%; max-height: none; padding: 26px 30px 0; border: 1px solid #dfe6f1; border-radius: 12px; background: #fff; box-shadow: var(--e2); overflow-y: auto; overscroll-behavior: contain; scroll-padding-top: 76px; scroll-padding-bottom: 90px; }
body.admin-v2 .admin-editor .modal > h3 { margin: 0 0 22px; font-family: var(--font); font-size: 28px; font-weight: 700; line-height: 1.25; text-transform: none; letter-spacing: -.025em; }
body.admin-v2 .admin-editor .modal .demo-editor-tabs { position: sticky; top: -26px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid #e3eaf4; padding: 14px 0 18px; margin: 0 0 8px; background: #fff; }
body.admin-v2 .demo-editor-tabs button { min-height: 44px; padding: 10px 14px; border: 1px solid transparent; border-radius: 9px; background: #f3f6fa; color: #526580; font-size: 14px; font-weight: 600; }
body.admin-v2 .demo-editor-tabs button:hover, body.admin-v2 .demo-editor-tabs button.active, body.admin-v2 .demo-editor-tabs button[aria-selected="true"] { color: #1746bc; background: #eaf0ff; border-color: #d7e3ff; }
body.admin-v2 .demo-field-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; margin: 0; padding: 28px 0 32px; border-bottom: 1px solid #e8edf5; scroll-margin-top: 80px; }
body.admin-v2 .demo-field-group > h4, body.admin-v2 .demo-field-group > h3, body.admin-v2 .demo-field-group > legend, body.admin-v2 .demo-field-group > p { grid-column: 1 / -1; }
body.admin-v2 .demo-field-group > h4, body.admin-v2 .demo-field-group > h3, body.admin-v2 .demo-field-group > legend { color: #243b5e; font-family: var(--font); font-size: 18px; line-height: 1.35; font-weight: 700; margin: 0 0 2px; text-transform: none; letter-spacing: -.015em; }
body.admin-v2 .demo-field-group > p { color: var(--muted); font-size: 14px; margin: -8px 0 0; }
body.admin-v2 .demo-field-group[hidden] { display: none; }
body.admin-v2 .demo-editor-note { font-size: 13px; color: #79879c; margin: 12px 0 0; }
body.admin-v2 .admin-editor .modal-actions { position: sticky; z-index: 6; bottom: 0; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0 -30px; padding: 18px 30px; background: #fffffffa; border-top: 1px solid var(--line); box-shadow: 0 -7px 18px #1c355007; }
body.admin-v2 .admin-editor .modal-actions .btn { min-width: 114px; }
body.admin-v2 .spa-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
body.admin-v2 .spa-card { padding: 20px; gap: 14px; border-radius: 12px; box-shadow: none; }
body.admin-v2 .spa-name { font-size: 16px; }
body.admin-v2 .spa-logo { height: 68px; }
body.admin-v2 .spa-row { gap: 8px; }
body.admin-v2 .spa-row select { max-width: 100%; }
body.admin-v2 .spa-preview { border-radius: 10px; padding: 24px; gap: 30px; background: #fbfcff; }
body.admin-v2 .apar-sub { font-family: var(--font); text-transform: none; letter-spacing: 0; font-size: 16px; margin: 24px 0 12px; color: #425673; }
body.admin-v2 .apar-sw-row { gap: 16px; }
body.admin-v2 .apar-sw { border-radius: 12px; box-shadow: none; min-height: 140px; }
body.admin-v2 .apar-name { font-size: 15px; }
body.admin-v2 .apar-name small { font-size: 12px; }
body.admin-v2 .apar-preview { margin-top: 16px; }
body.admin-v2 .ord-barra { top: 98px; z-index: 52; padding: 18px; border-radius: 12px; box-shadow: var(--e2); }
body.admin-v2 .ord-elegida { margin-bottom: 12px; font-size: 15px; }
body.admin-v2 .ord-lista { gap: 10px; }
body.admin-v2 .ord-pick { min-height: 66px; padding: 14px 18px; }
body.admin-v2 .ord-nom { font-size: 16px; }
body.admin-v2 .ord-check { font-size: 13px; }
body.admin-v2 .qj-estado { padding: 16px 20px; border-left-width: 3px; font-size: 15px; }
body.admin-v2 .qj-partido { padding: 20px; gap: 14px; border-radius: 12px; margin-bottom: 14px; }
body.admin-v2 .qj-num { font-family: var(--font); width: 28px; font-size: 17px; color: #1746bc; }
body.admin-v2 .qj-marc input { min-height: 46px; width: 54px; border-radius: 8px; border: 1px solid #d8e1ed; font-size: 18px; }
body.admin-v2 .qj-eq img { width: 40px; height: 40px; padding: 3px; border-color: #e6ebf3; }
body.admin-v2 .qj-sug { box-shadow: var(--e3); }
body.admin-v2 .qj-sug button { min-height: 48px; padding: 12px; }
body.admin-v2 .qj-aviso { padding: 14px 16px; border-left-width: 3px; font-size: 14px; }
body.admin-v2 .qj-saldo { color: #1746bc; font-family: var(--font); font-size: 40px; letter-spacing: -.04em; }
body.admin-v2 .qj-mov { padding: 18px 0; gap: 18px; }
body.admin-v2 .qj-mov-monto { min-width: 76px; font-size: 18px; }
body.admin-v2 .qj-mov-det { font-size: 15px; }
body.admin-v2 .qj-mov-det small { margin-top: 5px; font-size: 13px; }
body.admin-v2 .qj-comoquedo { padding: 20px; border-radius: 12px; background: #f0f5ff; }
body.admin-v2 .qj-comoquedo h4 { font-family: var(--font); font-size: 17px; text-transform: none; }
body.admin-v2 #bottomSponsors { left: 0; right: 0; bottom: 0; height: 70px; z-index: 100; display: flex; align-items: center; padding-right: 104px; background: #fff; border-top: 1px solid #e2e8f1; box-shadow: 0 -3px 10px #1c355004; overflow: hidden; }
body.admin-v2 #bottomSponsors[hidden] { display: none; }
body.admin-v2 #bottomSponsors .bs-track { animation-duration: 45s; flex-shrink: 0; gap: 46px; padding: 0 23px; }
body.admin-v2 #bottomSponsors img { height: 60px; width: auto; max-width: none; object-fit: contain; }
body.admin-v2 #bottomSponsors .bs-viewport:hover .bs-track, body.admin-v2 #bottomSponsors .bs-viewport:focus-within .bs-track { animation-play-state: paused; }
body.admin-v2 #bottomSponsors > .bs-pause { position: absolute; z-index: 110; right: 16px; bottom: 13px; min-height: 44px; min-width: 78px; padding: 10px 13px; border: 1px solid #dce4ef; border-radius: 10px; color: #526580; background: #fff; font-size: 13px; box-shadow: 0 0 0 10px #fff; }
body.admin-v2 .toast { bottom: 86px; z-index: 130; font-family: var(--font); }
@media (max-width: 1200px) {
  body.admin-v2 .demo-topbar { padding-right: 26px; padding-left: 26px; }
  body.admin-v2 .demo-main { padding-right: 26px; padding-left: 26px; }
  body.admin-v2 .home-grid { gap: 18px; }
  body.admin-v2 .home-panel { padding: 20px; }
  body.admin-v2 .row-item { gap: 12px; padding: 18px; }
  body.admin-v2 .row-actions { gap: 5px; }
  body.admin-v2 .modal-back.admin-editor { padding: 24px 26px; }
}
@media (max-width: 960px) {
  body.admin-v2 .demo-sidebar { width: 208px; padding-right: 12px; padding-left: 12px; }
  body.admin-v2 .demo-topbar, body.admin-v2 .demo-main { margin-left: 208px; }
  body.admin-v2 .demo-topbar { gap: 12px; padding: 16px 22px; }
  body.admin-v2 .demo-topbar .demo-user { gap: 6px; }
  body.admin-v2 .demo-main { padding: 26px 22px 42px; }
  body.admin-v2 .demo-page-head { display: block; }
  body.admin-v2 .demo-page-head > :last-child { margin-top: 12px; }
  body.admin-v2 .demo-page-head h1 { font-size: 29px; }
  body.admin-v2 .home-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.admin-v2 .demo-breadcrumb { max-width: 180px; white-space: normal; font-size: 12px; }
  body.admin-v2 .demo-breadcrumb span { margin: 0 5px; }
  body.admin-v2 .row-item { flex-wrap: wrap; }
  body.admin-v2 .row-item .ri-main { flex: 1 1 calc(100% - 76px); }
  body.admin-v2 .row-item .row-actions { margin-left: 68px; }
  body.admin-v2 .modal-back.admin-editor { left: 208px; padding: 20px 22px; }
  body.admin-v2 .admin-editor .modal { padding: 22px 22px 0; }
  body.admin-v2 .admin-editor .modal-actions { margin-right: -22px; margin-left: -22px; padding: 16px 22px; }
  body.admin-v2 .demo-field-group, body.admin-v2 .form-grid { column-gap: 18px; }
}
@media (max-width: 700px) {
  body.admin-v2 { --header-h: 129px; }
  body.admin-v2 .demo-sidebar { position: relative; top: auto; bottom: auto; width: 100%; height: auto; max-height: none; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--line); overflow: visible; }
  body.admin-v2 .demo-brand { min-height: 72px; padding: 0 0 12px; margin: 0 0 10px; flex-direction: row; gap: 12px; justify-content: flex-start; }
  body.admin-v2 .demo-brand img { width: 100px; height: 60px; }
  body.admin-v2 #demoNav { display: flex; flex-direction: row; flex-wrap: wrap; gap: 4px; }
  body.admin-v2 #demoNav > button[data-page] { width: auto; }
  body.admin-v2 #demoNav details { flex: 1 1 44%; min-width: 0; }
  body.admin-v2 #demoNav summary { padding-left: 10px; }
  body.admin-v2 #demoNav details[open] { background: #f8faff; border-radius: 10px; }
  body.admin-v2 #demoNav details button[data-page] { padding-left: 12px; font-size: 13px; }
  body.admin-v2 .demo-sidebar-foot { margin-top: 12px; padding: 12px 0 0; }
  body.admin-v2 .demo-topbar { margin-left: 0; height: auto; min-height: 76px; padding: 14px 16px; flex-wrap: wrap; gap: 10px; }
  body.admin-v2 .demo-topbar .demo-search { flex-basis: 100%; max-width: none; }
  body.admin-v2 #sectionSearch { width: 100%; }
  body.admin-v2 .demo-main { margin-left: 0; padding: 24px 16px 36px; }
  body.admin-v2 .demo-page-head { margin-bottom: 22px; }
  body.admin-v2 .demo-page-head h1 { font-size: 28px; }
  body.admin-v2 .demo-page-head p { font-size: 14px; }
  body.admin-v2 .panel, body.admin-v2 .home-panel { padding: 20px 18px; }
  body.admin-v2 .home-row { gap: 12px; flex-wrap: wrap; }
  body.admin-v2 .home-row > div { flex: 1 1 150px; }
  body.admin-v2 .home-row .btn { margin-left: auto; }
  body.admin-v2 .home-content { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  body.admin-v2 .home-thumb > img { height: 200px; }
  body.admin-v2 .home-panel > header { flex-wrap: wrap; gap: 6px 14px; }
  body.admin-v2 .demo-home-actions { margin-top: -8px; }
  body.admin-v2 .demo-profile { padding-top: 14px; margin-top: 14px; }
  body.admin-v2 .home-module { padding: 16px; gap: 14px; }
  body.admin-v2 .home-module img { width: 68px; max-height: 52px; }
  body.admin-v2 .demo-list-tools { padding: 14px; }
  body.admin-v2 .demo-list-tools label, body.admin-v2 .demo-list-tools label:has(select) { width: 100%; flex: 1 1 100%; }
  body.admin-v2 .demo-list-tools .muted { margin-left: 0; }
  body.admin-v2 .row-item { padding: 17px 14px; gap: 12px; }
  body.admin-v2 .row-item .ri-main strong { font-size: 15px; }
  body.admin-v2 .row-item .row-actions { margin-left: 0; flex: 1 1 100%; justify-content: flex-end; }
  body.admin-v2 .form-grid, body.admin-v2 .demo-field-group { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.admin-v2 .modal-back.admin-editor { inset: 0 0 70px; padding: 0; z-index: 95; }
  body.admin-v2 .admin-editor .modal { height: 100%; padding: 24px 18px 0; border: 0; border-radius: 0; }
  body.admin-v2 .admin-editor .modal > h3 { font-size: 26px; margin-bottom: 18px; }
  body.admin-v2 .admin-editor .modal .demo-editor-tabs { top: -24px; gap: 6px; padding-top: 12px; }
  body.admin-v2 .demo-editor-tabs button { font-size: 13px; padding: 10px; }
  body.admin-v2 .demo-field-group { padding-top: 24px; padding-bottom: 28px; }
  body.admin-v2 .admin-editor .modal-actions { margin-left: -18px; margin-right: -18px; padding: 16px 18px; }
  body.admin-v2 .admin-editor .modal-actions .btn { flex: 1; }
  body.admin-v2 .qj-partido { padding: 16px; }
  body.admin-v2 .qj-lado, body.admin-v2 .qj-eq { flex-basis: calc(100% - 44px); }
  body.admin-v2 .spa-grid { grid-template-columns: minmax(0, 1fr); }
  body.admin-v2 .spa-card { padding: 18px; }
  body.admin-v2 .ord-barra { top: calc(var(--header-h) + 12px); padding: 14px; }
  body.admin-v2 .ord-pick { padding: 14px; gap: 10px; }
  body.admin-v2 .ord-check { font-size: 12px; }
  body.admin-v2 #bottomSponsors img { height: 36px; }
  body.admin-v2 #bottomSponsors { padding-right: 90px; }
  body.admin-v2 #bottomSponsors > .bs-pause { right: 10px; min-width: 70px; }
}
@media (prefers-reduced-motion: reduce) {
  body.admin-v2 #bottomSponsors .bs-track { animation: none; }
}
body.admin-v2 .demo-config-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0; }
body.admin-v2 .demo-config-tabs button { min-height:44px; padding:10px 16px; border:1px solid #dfe6f2; border-radius:9px; background:white; color:#405879; font-weight:600; }
body.admin-v2 .demo-config-tabs button[aria-pressed="true"] { background:#eaf0ff; color:#1746bc; border-color:#b9ccf7; }
body.admin-v2 #adBody .up[data-wimg^="h"][data-wimg$="-img"] .up-prev { width:100%; max-width:600px!important; max-height:280px; object-fit:contain; }
body.admin-v2 .home-more { border-top:1px solid #e8edf5; margin-top:16px; padding-top:8px; }
body.admin-v2 .home-more summary { color:#1746bc; font-weight:600; cursor:pointer; padding:12px 0; }
@media(min-width:960px){ body.admin-v2 .demo-brand img { width:154px; height:82px; } body.admin-v2 #demoNav summary,body.admin-v2 #demoNav button[data-page]{ font-size:14px; } }
body.admin-v2 .demo-savebar{position:sticky;bottom:80px;z-index:55;background:#fff;border:1px solid #dde5f1;border-radius:12px;padding:16px 20px;margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 8px 30px #1424430d;}
body.admin-v2 .demo-savebar span{color:#607089;font-size:14px;}
body.admin-v2 .demo-savebar .btn{width:auto;min-width:210px;}
@media(max-width:700px){body.admin-v2 .demo-savebar{flex-wrap:wrap;gap:12px;}body.admin-v2 .demo-savebar .btn{width:100%!important;}}


/* El encabezado y la navegación pública vuelven al salir del administrador. */
body.admin-v2 > #appHeader,
body.admin-v2 > #bottomNav { display: none; }
body.admin-v2 #adBody > p.muted,
body.admin-v2 #adBody > .muted { color: #607089; }
body.admin-v2 .demo-sidebar { bottom: calc(70px + env(safe-area-inset-bottom)); }
body.admin-v2 .modal-back.admin-editor { bottom: calc(70px + env(safe-area-inset-bottom)); }
body.admin-v2 #bottomSponsors { height: calc(70px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); }
body.admin-v2 #bottomSponsors > .bs-pause { bottom: calc(13px + env(safe-area-inset-bottom)); }
body.admin-v2 .demo-main { scroll-padding-bottom: 108px; }
body.admin-v2 .demo-topbar .btn { white-space: nowrap; }
body.admin-v2 .demo-profile .btn { min-width: 44px; }
body.admin-v2 .demo-sidebar #demoNav .admin-badge { margin-left: auto; background: #eaf0ff; color: #1746bc; }
body.admin-v2 .demo-sidebar #demoNav .is-current .admin-badge { background: #ffffff26; color: #fff; }
body.admin-v2 .demo-field-group .field:has([aria-invalid="true"]) label { color: #a72e38; }
body.admin-v2 .field [aria-invalid="true"] { border-color: #c3535c; background: #fffafb; }
body.admin-v2 .field-error { color: #a72e38; font-size: 13px; margin: 7px 0 0; }
body.admin-v2 .editor-guidance { padding: 12px 16px; margin: 14px 0; border-radius: 10px; background: #eef3ff; color: #344d78; font-size: 14px; line-height: 1.5; }
body.admin-v2 .editor-errors { padding: 14px 16px; margin: 14px 0; border: 1px solid #e4b7bd; background: #fff5f5; border-radius: 10px; color: #8c2531; }
body.admin-v2 .editor-errors button { display: block; min-height: 44px; background: transparent; border: 0; text-align: left; color: inherit; text-decoration: underline; padding: 8px 0; font: inherit; cursor: pointer; }
body.admin-v2 .up-thumbs:has(.editor-thumb) { display: flex; flex-wrap: wrap; gap: 12px; width: 100%; }
body.admin-v2 .editor-thumb { width: 156px; padding: 8px; border: 1px solid #dfe6f2; border-radius: 10px; background: #f7f9fd; text-align: center; }
body.admin-v2 .editor-thumb > img { display: block; width: 100%; height: 150px; max-height: none; object-fit: contain; margin: 0 auto 6px; }
body.admin-v2 .editor-thumb > span { font-size: 13px; color: #607089; }
body.admin-v2 .editor-thumb > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px; }
body.admin-v2 .editor-thumb button { min-height: 44px; min-width: 44px; padding: 6px; border: 1px solid #dfe6f2; border-radius: 6px; color: #1746bc; background: #fff; cursor: pointer; }
body.admin-v2 .editor-thumb button:disabled { opacity: .4; cursor: default; }
body.admin-v2 .up-status { overflow-wrap: anywhere; }
body.admin-v2 .admin-editor .modal :focus-visible { outline-offset: 3px; }
body.admin-v2 .demo-list-tools input::-webkit-search-cancel-button { cursor: pointer; }
/* Controles de subida: el input oculto sigue abriendo desde su etiqueta. */
body.admin-v2 .up-pick:focus-within { outline: 3px solid #7398ef; outline-offset: 3px; }
body.admin-v2 .admin-editor .modal-actions [data-save] { min-width: 144px; }
@media (max-width: 700px) {
  body.admin-v2 .demo-sidebar { bottom: auto; }
  body.admin-v2 .demo-topbar > .demo-breadcrumb { max-width: calc(100% - 125px); }
  body.admin-v2 .demo-topbar > .demo-search { order: 3; }
  body.admin-v2 .demo-topbar > .btn { margin-left: auto; }
  body.admin-v2 .demo-savebar { bottom: calc(80px + env(safe-area-inset-bottom)); }
  body.admin-v2 .demo-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 14px; min-height: 70px; padding: 8px 16px; }
  body.admin-v2 .demo-sidebar .demo-brand { min-height: 54px; margin: 0; padding: 0; border: 0; justify-content: flex-start; }
  body.admin-v2 .demo-sidebar .demo-brand img { width: 96px; height: 48px; object-fit: contain; object-position: left center; }
  body.admin-v2 .admin-menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; align-self: center; min-height: 44px; padding: 10px 14px; border: 1px solid #dbe3ef; border-radius: 9px; background: #f6f8fc; color: #1746bc; font: 600 14px/1.4 Arial, Helvetica, sans-serif; }
  body.admin-v2 .admin-menu-toggle::after { content: '⌄'; font-size: 17px; line-height: 1; }
  body.admin-v2 .admin-menu-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
  body.admin-v2 .demo-sidebar > .demo-nav-label,
  body.admin-v2 .demo-sidebar > #demoNav,
  body.admin-v2 .demo-sidebar > .demo-profile { grid-column: 1 / -1; }
  body.admin-v2 .demo-sidebar:not(.menu-open) > .demo-nav-label,
  body.admin-v2 .demo-sidebar:not(.menu-open) > #demoNav,
  body.admin-v2 .demo-sidebar:not(.menu-open) > .demo-profile { display: none; }
  body.admin-v2 .demo-sidebar.menu-open > .demo-nav-label { margin-top: 16px; }
  body.admin-v2 .demo-sidebar.menu-open > .demo-profile { padding-bottom: 10px; }
}


/* Extensión estructural de la franja existente: no altera su velocidad ni sus logos. */
#bottomSponsors > .bs-viewport { display: flex; align-items: center; flex: 1 1 auto; min-width: 0; height: 100%; overflow: hidden; }
#bottomSponsors > .bs-viewport > .bs-track { flex-shrink: 0; }
#bottomSponsors > .bs-pause { display: inline-flex; align-items: center; justify-content: center; flex: none; min-width: 44px; min-height: 44px; padding: 8px 12px; margin: 0; border: 0; border-left: 1px solid #e0e6ef; background: #fff; color: #405776; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: 600; cursor: pointer; }
#bottomSponsors > .bs-pause:hover { background: #edf3ff; color: #1746bc; }
#bottomSponsors > .bs-pause:focus-visible { outline: 3px solid #7398ef; outline-offset: -4px; }
#bottomSponsors > .bs-pause:disabled { cursor: default; color: #607089; }
#bottomSponsors .bs-viewport:focus-within .bs-track { animation-play-state: paused; }

/* Ritmo del tablero v111: columnas independientes, sin huecos entre tarjetas. */
body.admin-v2 .home-content-panel > header { flex-wrap: wrap; gap: 4px 16px; }
body.admin-v2 .home-content-panel > header > .demo-link { margin-left: auto; }
@media (min-width: 1600px) {
  body.admin-v2 .demo-main { padding-left: 36px; padding-right: 36px; }
  body.admin-v2 #demoHome, body.admin-v2 .demo-page-head { max-width: 1440px; margin-left: auto; margin-right: auto; }
}
@media (max-width: 1100px) and (min-width: 961px) {
  body.admin-v2 .home-grid { grid-template-columns: minmax(0, 1fr); }
  body.admin-v2 .home-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  body.admin-v2 .demo-page-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  body.admin-v2 .demo-home-actions { align-self: flex-start; }
  body.admin-v2 #createMenu { right: auto; left: 0; }
  body.admin-v2 .home-column { gap: 16px; }
  body.admin-v2 #demoHome .home-panel { padding: 18px; }
  body.admin-v2 .home-content-panel > header > .demo-link { margin-left: 0; }
  body.admin-v2 .home-thumb > img { max-width: 280px; }
}

@media (min-width: 701px) {
  body.admin-v2 .home-module > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 10px; }
  body.admin-v2 .home-module h3, body.admin-v2 .home-module p { grid-column: 1; }
  body.admin-v2 .home-module .demo-link { grid-column: 2; grid-row: 1 / span 2; }
  body.admin-v2 .home-secondary .home-row { padding-top: 14px; padding-bottom: 14px; }
  body.admin-v2 .home-secondary .home-row:last-child { padding-bottom: 0; }
}

/* Mientras se edita, la navegación móvil permanece visible y no tapa el formulario. */
@media (max-width: 700px) {
  body.admin-v2.admin-editing .demo-sidebar { position: fixed; top: 0; left: 0; right: 0; bottom: auto; min-height: 71px; max-height: calc(100dvh - 70px - env(safe-area-inset-bottom)); overflow-y: auto; }
  body.admin-v2.admin-editing .demo-sidebar:not(.menu-open) { height: 71px; }
  body.admin-v2.admin-editing .demo-topbar { position: fixed; top: 71px; left: 0; right: 0; }
  body.admin-v2.admin-editing .modal-back.admin-editor { top: calc(71px + var(--header-h)); }
}

/* ---- v116 · VAROAMIGOS + Quiniela en el panel (plan de arreglos, dueño C) ----
   Solo piezas del lenguaje que ya existe (recetas R3, R9, R10 y R11 del contrato de diseño). */
/* R10: un campo apagado se VE apagado (los mismos valores de [readonly]). */
body.admin-v2 .field :is(input, select, textarea):disabled { background: #f5f7fb; color: #63738b; cursor: not-allowed; }
/* R11: el «!» del aviso, legible sobre el azul. */
body.admin-v2 .qj-aviso-ico { color: #fff; }
/* «Quitar» un partido: objetivo de 44 px con texto visible (antes era una «×» de 16 px). */
body.admin-v2 .qj-partido [data-quita] { min-width: 44px; }
/* R9: lo que se acaba de pedir queda bajo la barra pegajosa, no escondido detrás de ella. */
body.admin-v2 #vmDetalle .panel h3, body.admin-v2 .qj-asi h4, body.admin-v2 #qrAviso, body.admin-v2 #qoNuevo { scroll-margin-top: calc(var(--header-h) + 12px); }
/* Cómo quedó / Así quedaría: el lugar a la izquierda y la frase completa en un solo bloque que salta de renglón. */
body.admin-v2 .qj-podio li { align-items: flex-start; }
body.admin-v2 .qj-podio .qj-lugar { margin-top: 1px; }
body.admin-v2 .qj-podio-txt { min-width: 0; line-height: 1.5; }
body.admin-v2 .qj-comoquedo p { margin: 6px 0 0; }
body.admin-v2 .qj-comoquedo .muted { color: #56667e; }
body.admin-v2 .qj-comoquedo .badge { vertical-align: 1px; }
body.admin-v2 .qj-acciones > .qj-comoquedo { flex: 1 1 100%; margin-bottom: 0; }
body.admin-v2 .qj-comoquedo h4[tabindex="-1"]:focus { outline: 0; }
body.admin-v2 .qj-cambios { margin-top: 10px; border-top: 1px solid var(--line); }
body.admin-v2 .qj-cambios .qj-mov { padding: 12px 0; }
body.admin-v2 .qj-rojo { color: #a72e38; font-weight: 700; }
body.admin-v2 #qjComoQuedo { margin: 0 0 16px; }
/* Premios de la jornada y resumen en palabras. */
body.admin-v2 .qj-reglas { margin-bottom: 8px; }
body.admin-v2 .qj-reglas-res { font-size: 15px; color: #354968; margin: 0 0 16px; }
/* Datos plegados de una jornada liquidada y lista de archivadas: el mismo <details> del panel. */
body.admin-v2 details.panel > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: 17px; font-weight: 700; color: var(--text); }
body.admin-v2 details.panel[open] > summary { margin-bottom: 12px; }
/* La flecha del desplegable, visible y grande (con display:flex el navegador quita su triángulo). */
body.admin-v2 details.panel > summary, body.admin-v2 .qj-jugaron > summary { list-style: none; }
body.admin-v2 details.panel > summary::-webkit-details-marker, body.admin-v2 .qj-jugaron > summary::-webkit-details-marker { display: none; }
body.admin-v2 details.panel > summary::before, body.admin-v2 .qj-jugaron > summary::before { content: '›'; display: inline-block; width: 20px; flex: none; font-size: 22px; line-height: 1; color: var(--gold); transition: transform .15s; }
body.admin-v2 details.panel[open] > summary::before, body.admin-v2 .qj-jugaron[open] > summary::before { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) { body.admin-v2 details.panel > summary::before, body.admin-v2 .qj-jugaron > summary::before { transition: none; } }
body.admin-v2 .qj-plegado-cuerpo > h3 { font-size: 17px; margin: 18px 0 12px; }
body.admin-v2 .qj-plegado-cuerpo > h3:first-child { margin-top: 0; }
/* ¿Quién ya jugó? */
body.admin-v2 .qj-quien-cuenta { font-size: 16px; margin: 0 0 12px; }
body.admin-v2 .qj-sub { font-size: 16px; margin: 18px 0 8px; }
body.admin-v2 .qj-jugaron { margin-top: 14px; }
body.admin-v2 .qj-jugaron > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--gold); font-weight: 600; }
body.admin-v2 .qj-lista-acc { margin-top: 16px; gap: 10px; }
body.admin-v2 .qj-sug small.qj-sug-ya { color: #a72e38; font-weight: 600; }
/* Movimientos: buscador con el componente de listas y aviso de números rojos. */
body.admin-v2 .vm-tools label { font-size: 14px; color: #354968; font-weight: 600; }
body.admin-v2 .vm-tools .btn { align-self: flex-end; }
body.admin-v2 .vm-pie { font-size: 14px; margin: 10px 0 0; }
body.admin-v2 .vm-fila-saldo { display: block; margin-top: 4px; font-size: 15px; color: var(--text); }
/* Pisos del contrato en las listas nuevas (cuentas y participación): los datos a 14 px. */
body.admin-v2 #vmResultados .row-item .ri-main small, body.admin-v2 #qjQuien .row-item .ri-main small { font-size: 14px; }
body.admin-v2 .vm-rojos { margin: 0 0 16px; }
body.admin-v2 .vm-rojos > div { min-width: 0; }
body.admin-v2 .vm-saldo-rojo { color: #a72e38; }
body.admin-v2 .qj-mov-det .vm-deshace { display: inline-flex; margin-top: 8px; }
body.admin-v2 .qj-neg-lista { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
body.admin-v2 .qj-neg-lista li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
/* El código nuevo de la quiniela, para compartirlo en ese momento. */
body.admin-v2 .qo-nuevo { border-left-color: var(--green); }
body.admin-v2 .qo-nuevo b { font-size: 19px; letter-spacing: .04em; }
body.admin-v2 .editor-wa { margin-top: 8px; }
@media (max-width: 700px) {
  /* En el celular la barra de guardado es SOLO su botón, flotando sobre la franja de marcas: la frase
     y el marco se comían 111 px (diseno-19) y con 12 px de relleno Reglas se quedaba en 67 % de alto
     útil; así pasa del 70 %. El botón conserva su sombra, así que se sigue viendo encima del contenido. */
  body.admin-v2 .demo-savebar { padding: 0; border: 0; background: transparent; box-shadow: none; bottom: calc(76px + env(safe-area-inset-bottom)); }
  body.admin-v2 .demo-savebar > span { display: none; }
  body.admin-v2 .demo-savebar .btn { box-shadow: 0 6px 18px #1424432e; }
  body.admin-v2 .qj-neg-lista li .btn { flex: 1 1 100%; }
}
/* ---- v117 · minuta del 19-sep (dueño C). Solo piezas del lenguaje que ya existe: .panel, .field,
   .qj-estado, .qj-aviso, .row-list y los pisos del contrato (texto 14 px, campos 16 px, toques 44 px). ---- */
body.admin-v2 .qj-ayuda { font-size: 14px; color: #56667e; margin: 6px 0 0; line-height: 1.5; }
/* MN-01: el aviso de la clave de fábrica junto al botón de liberar. */
body.admin-v2 .qo-fabrica { margin: 4px 0 16px; }
body.admin-v2 .qo-fabrica > div { min-width: 0; }
/* MN-03: el día y la hora de inicio de cada partido, en su propio renglón bajo los equipos. */
body.admin-v2 .qj-partido-hora { flex: 1 1 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 190px)); gap: 6px 16px; align-items: end; margin-top: 2px; padding-top: 12px; border-top: 1px dashed #dfe6f2; }
body.admin-v2 .qj-partido-hora .field { margin: 0; }
body.admin-v2 .qj-partido-hora .field label { margin-bottom: 4px; }
body.admin-v2 .qj-partido-hora input { width: 100%; font-size: 16px; }
body.admin-v2 .qj-hora-res { grid-column: 1 / -1; margin: 2px 0 0; font-size: 14px; color: #354968; }
body.admin-v2 .qj-hora-res.field-error { color: #a72e38; font-weight: 600; }
body.admin-v2 p.qj-hora-res.muted { flex: 1 1 100%; margin: 0; }
body.admin-v2 .qj-p-nota { flex: 1 1 100%; margin: 0; font-size: 14px; color: #56667e; }
body.admin-v2 .qj-partido-fijo { background: #fafcff; }
body.admin-v2 .qj-yajugo { flex: none; }
body.admin-v2 .qj-num { width: auto; min-width: 28px; }
/* El cierre: resumen en palabras y la hora límite (fija u opcional y plegada). */
body.admin-v2 .qj-cierre-resumen { font-weight: 400; line-height: 1.55; margin-bottom: 14px; }
body.admin-v2 .qj-cierre-resumen b { font-weight: 700; }
body.admin-v2 .qj-legado { margin-bottom: 12px; }
body.admin-v2 details.qj-limite { margin: 0 0 8px; }
body.admin-v2 details.qj-limite > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 6px; color: var(--gold); font-weight: 600; font-size: 15px; list-style: none; }
body.admin-v2 details.qj-limite > summary::-webkit-details-marker { display: none; }
body.admin-v2 details.qj-limite > summary::before { content: '›'; display: inline-block; width: 20px; flex: none; font-size: 22px; line-height: 1; transition: transform .15s; }
body.admin-v2 details.qj-limite[open] > summary::before { transform: rotate(90deg); }
body.admin-v2 details.qj-limite[open] > summary { margin-bottom: 10px; }
body.admin-v2 .qj-limite-fija > p { margin: 0 0 10px; }
body.admin-v2 #qjCierreCampos .form-grid { margin-bottom: 8px; }
body.admin-v2 #qjCierreCampos input { font-size: 16px; }
/* MN-06: filtro por liga arriba de los partidos. */
body.admin-v2 .qj-liga-filtro { max-width: 360px; margin: 0 0 16px; }
body.admin-v2 .qj-sug .qj-sug-mas { margin: 0; padding: 10px 12px; font-size: 14px; color: #56667e; border-top: 1px solid var(--line); }
body.admin-v2 .qj-liga-aviso { font-size: 14px; margin: 6px 0 0; }
body.admin-v2 .qj-liga-aviso:empty { display: none; }
/* MN-05: la plantilla de premios arriba de los números. */
body.admin-v2 .qj-plantilla { max-width: 420px; margin-bottom: 16px; }
body.admin-v2 .qj-plantilla-res { font-size: 14px; margin: 6px 0 0; }
body.admin-v2 .qj-plantilla-res:empty { display: none; }
body.admin-v2 .qj-plantilla-no { font-size: 14px; margin: 0 0 14px; }
/* MN-03 + MN-02: las dos opciones de Reglas, con opciones grandes de tocar (toda la etiqueta). */
body.admin-v2 details.qr-modo { margin-top: 24px; }
body.admin-v2 details.qr-modo > summary { font-size: 17px; line-height: 1.4; padding: 4px 0; }
body.admin-v2 .qr-hoy { display: block; font-size: 14px; font-weight: 400; color: #56667e; margin-top: 2px; }
body.admin-v2 .qr-grupo { border: 1px solid var(--line); border-radius: 10px; padding: 8px 16px 12px; margin: 16px 0 0; min-width: 0; }
body.admin-v2 .qr-grupo > legend { font-size: 15px; font-weight: 700; color: #243b5e; padding: 0 6px; }
body.admin-v2 .qr-opcion { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; padding: 10px 4px; font-size: 15px; line-height: 1.5; color: #203453; cursor: pointer; border-bottom: 1px solid #eef2f7; }
body.admin-v2 .qr-opcion:last-child { border-bottom: 0; }
body.admin-v2 .qr-opcion input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: #1746bc; }
body.admin-v2 details.qr-modo #qrModoGuardar { margin-top: 16px; }
@media (max-width: 700px) {
  body.admin-v2 .qj-partido-hora { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; }
  body.admin-v2 .qj-partido-hora input { padding-left: 8px; padding-right: 6px; }
  body.admin-v2 .qj-liga-filtro, body.admin-v2 .qj-plantilla { max-width: none; }
  body.admin-v2 .qr-grupo { padding: 6px 12px 10px; }
}
/* MN-08: la segunda fila de botones, cada botón en su tarjeta con Subir / Bajar / Quitar de 44 px. */
body.admin-v2 .wm-boton { margin-top: 14px; padding: 18px; background: #fbfcff; box-shadow: none; }
body.admin-v2 .wm-boton > h4 { margin: 0 0 12px; font-size: 16px; color: #243b5e; overflow-wrap: anywhere; }
/* Un nombre largo sin espacios (un apodo, un negocio) no debe ensanchar la página en el celular. */
body.admin-v2 .row-item .ri-main strong, body.admin-v2 .qj-premio-pat > p, body.admin-v2 .qj-estado { overflow-wrap: anywhere; }
body.admin-v2 .wm-boton .form-grid { margin-bottom: 12px; }
body.admin-v2 .wm-boton input[type="url"] { margin-top: 8px; width: 100%; }
body.admin-v2 .wm-boton .qj-aviso { margin-bottom: 12px; }
body.admin-v2 .wm-mover { gap: 8px; margin-top: 12px; }
/* Apagado en el extremo, como R10: se VE apagado y se sigue leyendo (sin desvanecerlo). */
body.admin-v2 .wm-mover [aria-disabled="true"] { background: #f5f7fb; color: #607089; border-color: #e3e9f2; cursor: not-allowed; }
body.admin-v2 .wm-fila2 #wmAgregar { margin-top: 14px; }
/* MN-04: miniatura del logo de cada quiniela, completa sobre blanco (logos sin recortes). */
body.admin-v2 .row-item .ri-thumb.qn-thumb { object-fit: contain; background: #fff; padding: 4px; }
/* MN-06: la lista del catálogo y su «Ver más». */
body.admin-v2 .qe-tools label:has(select) { flex: 0 1 260px; }
body.admin-v2 .qe-mas { margin-top: 14px; }
body.admin-v2 .qe-mas:empty { display: none; }
body.admin-v2 #qeList .ri-thumb { object-fit: contain; background: #fff; }
body.admin-v2 #qeList[hidden] { display: none; }
/* MN-05: el ganador del Premio del patrocinador en «Así quedaría» y «Cómo quedó». */
body.admin-v2 .qj-premio-pat { margin-top: 14px; padding-top: 12px; border-top: 1px solid #d6e1f5; }
body.admin-v2 .qj-premio-pat > p { font-size: 15px; line-height: 1.55; margin: 0 0 8px; }
body.admin-v2 .qj-premio-wa { margin-left: 6px; vertical-align: middle; }
body.admin-v2 details.qj-correo { margin: 8px 0; }
body.admin-v2 details.qj-correo > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--gold); font-weight: 600; }
body.admin-v2 details.qj-correo > p { font-size: 14px; margin: 6px 0 0; }
body.admin-v2 details.qj-correo pre { white-space: pre-wrap; overflow-wrap: anywhere; font-family: var(--font); font-size: 14px; line-height: 1.5; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin: 8px 0 0; }
/* MN-07: el resumen de patrocinadores dentro de la quiniela. */
body.admin-v2 .spa-quiniela > p { font-size: 15px; }
/* Pisos del contrato (texto que informa a 14 px) en las listas de la quiniela y en sus herramientas. */
body.admin-v2 .qj-lista .row-item .ri-main small, body.admin-v2 #qeList .row-item .ri-main small { font-size: 14px; }
body.admin-v2 .qe-tools label, body.admin-v2 .qe-tools #listCount { font-size: 14px; }
body.admin-v2 .qj-cierre-res.vacia { font-size: 14px; }
body.admin-v2 .qj-partido .qj-vs { font-size: 14px; }
/* MN-09: la simulación de las direcciones. */
body.admin-v2 #dirPanel .qj-estado { margin: 4px 0 14px; }
body.admin-v2 .dir-sim { margin-top: 16px; }
body.admin-v2 details.dir-lista { margin: 10px 0; }
body.admin-v2 details.dir-lista > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--gold); font-weight: 600; }
body.admin-v2 details.dir-lista .row-list { max-height: 420px; overflow: auto; }
body.admin-v2 details.dir-lista .row-item { padding: 12px 14px; }
body.admin-v2 details.dir-lista .ri-main small { font-size: 14px; }
body.admin-v2 #dirRes > .qj-btn-fila { width: 100%; margin-top: 12px; }
/* ---- v117 · ronda de arreglos (dueño C). Solo piezas del lenguaje que ya existe: .demo-savebar, .badge,
   .qj-estado, .qj-aviso, .field y la receta R9 (lo que se acaba de pedir, a la vista bajo la barra). ---- */
/* estilo-06 (R10): Chromium desvanece con opacity .7 los <select> apagados (2.61:1); así quedan en 4.5:1. */
body.admin-v2 .field :is(input, select, textarea):disabled { opacity: 1; -webkit-text-fill-color: #63738b; }
/* panel-02: «Guardar el marcador» flota al pie del recuadro de los partidos mientras haya marcadores sin guardar. */
body.admin-v2 .qj-barra[hidden] { display: none; }
/* panel-03, panel-06, panel-08 y panel-10 (R9): el destino queda bajo la barra pegajosa y sin anillo de foco
   (no es un control: solo recibe el foco para que el lector de pantalla lo anuncie). */
body.admin-v2 #qjComoQuedo h4, body.admin-v2 .qj-negativos, body.admin-v2 #cfAcceso, body.admin-v2 #cfAvisos, body.admin-v2 #qnSigue { scroll-margin-top: calc(var(--header-h) + 12px); }
body.admin-v2 #cfAcceso:focus, body.admin-v2 #cfAvisos:focus, body.admin-v2 .qj-estado[tabindex="-1"]:focus, body.admin-v2 .qj-negativos[tabindex="-1"]:focus { outline: 0; }
body.admin-v2 #cfAcceso + .qj-aviso { margin: 0 0 14px; }
/* panel-08: el paso que sigue tras crear una quiniela. */
body.admin-v2 .qn-sigue { font-weight: 400; }
/* estilo-09: «arriba en la quiniela» es una UBICACIÓN, no un estado: pastilla gris con estrella (el verde es de «activo»). */
body.admin-v2 .spa-arriba { display: inline-flex; align-items: center; gap: 4px; }
body.admin-v2 .spa-arriba svg { flex: none; color: #90651d; }
/* estilo-10 y panel-05: en las sugerencias, la liga en su propio renglón y a 14 px, bajo el nombre. */
body.admin-v2 .qj-sug-txt { min-width: 0; overflow-wrap: anywhere; line-height: 1.35; }
body.admin-v2 .qj-sug-txt small { display: block; font-size: 14px; margin-top: 2px; }
body.admin-v2 .qj-sug .qj-sug-mas.qj-sug-fuera { border-top: 0; border-bottom: 1px solid var(--line); }
/* estilo-13: sin logo cuadrado propio, las iniciales de la quiniela en el mismo cuadro de 56 px. */
body.admin-v2 .row-item .qn-thumb-ini { display: inline-flex; align-items: center; justify-content: center; flex: none; font-size: 19px; font-weight: 700; letter-spacing: .03em; color: #1746bc; background: #eaf0ff; border-color: #d6e1f5; }
body.admin-v2 .qj-ayuda.qn-logo-malo { color: #a72e38; font-weight: 600; }
/* ---- v117 · segunda ronda de arreglos (dueño C) ---- */
/* panel-15 y panel-18 (R9): «Direcciones sin guion» (su título y su letrero) quedan bajo la barra pegajosa al
   llegar por el buscador o tras pasar las direcciones, sin anillo de foco (no son controles). */
body.admin-v2 #dirTitulo, body.admin-v2 #dirEstado { scroll-margin-top: calc(var(--header-h) + 12px); }
body.admin-v2 #dirTitulo:focus { outline: 0; }
/* panel-18: en los resultados del buscador, el recuadro de adentro al que lleva la palabra buscada. */
body.admin-v2 .demo-search-results button small { font-size: 14px; margin-top: 2px; }
/* ---- v117 · tercera ronda de arreglos (dueño C) ---- */
/* e2e-webkit-07 (regla 7): el motivo de una subida fallida se queda junto al botón, en el rojo de .field-error y a 14 px. */
body.admin-v2 .up-status.up-error { color: #a72e38; font-size: 14px; font-weight: 600; }
/* e2e-webkit-05: «celular 474 910 0102» no se parte en dos renglones (a 1366 px quedaba «474» arriba y «910 0102» abajo). */
body.admin-v2 .qj-cel { white-space: nowrap; }
/* e2e-chromium-01 y e2e-chromium-11 (R9): el aviso de «recargamos la jornada» y «Liquidar» quedan bajo la barra pegajosa. */
body.admin-v2 #qjAcciones .qj-aviso-error, body.admin-v2 #qjLiq { scroll-margin-top: calc(var(--header-h) + 12px); }
/* ---- v117 · quinta ronda de arreglos (dueño C) ---- */
/* migracion-v3-03: «el premio ya no cabe» se dice junto al campo; ese aviso y los de los premios de la jornada (el mismo
   .field-error) a 14 px, el piso del texto que informa (el .field-error general del panel está en 13 px). */
body.admin-v2 #qjPremioPatErr, body.admin-v2 #qjRAciertoErr, body.admin-v2 #qjRBono1Err, body.admin-v2 #qjRBono2Err, body.admin-v2 #qjRBono3Err { font-size: 14px; }

/* Auditoría v118 · R3/R5/R11. Misma escala y paleta: texto informativo legible y campos
   que no acercan la pantalla en iOS. Los marcadores conservan sus 18 px. */
body.admin-v2 input, body.admin-v2 select, body.admin-v2 textarea,
body.admin-v2 .field input, body.admin-v2 .field select, body.admin-v2 .field textarea,
body.admin-v2 #sectionSearch { font-size: 16px; }
body.admin-v2 #demoNav summary, body.admin-v2 #demoNav details button[data-page],
body.admin-v2 .demo-breadcrumb, body.admin-v2 .demo-status, body.admin-v2 .badge,
body.admin-v2 .home-row small, body.admin-v2 .home-thumb > p, body.admin-v2 .home-module p,
body.admin-v2 .demo-link, body.admin-v2 .demo-list-tools label, body.admin-v2 #listCount,
body.admin-v2 .row-item .ri-main small, body.admin-v2 .field-error,
body.admin-v2 .up-status, body.admin-v2 .demo-profile strong, body.admin-v2 .demo-profile small { font-size: 14px; }
body.admin-v2 .demo-nav-label { font-size: 12px; }
body.admin-v2 .demo-profile small, body.admin-v2 #sectionSearch::placeholder { color: var(--muted); }
body.admin-v2 :focus-visible, body.admin-v2 .up-pick:focus-within { outline-color: var(--gold); }
body.admin-v2 .demo-search-results button:focus-visible { background: var(--surface-2); outline-offset: -3px; }
body.admin-v2 #qjPartidos { scroll-margin-top: calc(var(--header-h) + 12px); }
body.admin-v2 #qjPartidos:focus { outline: 0; }
body.admin-v2 #qjPartidosErr { margin: 0 0 12px; }
body.admin-v2 .qj-partido > .field-error { flex: 1 1 100%; }

/* v119 · composición de las nuevas secciones dentro de la identidad blanca/azul del panel.
   Una tarjeta reúne identidad, estado y acción; los valores ya no se esconden en frases largas. */
body.admin-v2 .ad-intro { margin: 0 0 24px; max-width: 78ch; color: var(--muted); font-size: 16px; line-height: 1.6; }
body.admin-v2 .ad-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
body.admin-v2 .ad-card-grid > .row-item { grid-column: 1 / -1; background: white; border: 1px solid var(--line); border-radius: var(--r); }
body.admin-v2 :is(.ad-quiniela-card, .ad-prize-card) { display: flex; flex-direction: column; min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); box-shadow: var(--e1); }
body.admin-v2 :is(.ad-quiniela-card, .ad-prize-card) > header { display: flex; align-items: center; gap: 16px; min-width: 0; margin-bottom: 20px; }
body.admin-v2 :is(.ad-quiniela-card, .ad-prize-card) > header > div { min-width: 0; }
body.admin-v2 :is(.ad-quiniela-card, .ad-prize-card) h3 { margin: 0 0 8px; font-size: 21px; line-height: 1.25; overflow-wrap: anywhere; }
body.admin-v2 .ad-quiniela-card .qn-thumb { flex: none; width: 84px; height: 76px; padding: 4px; border: 1px solid #e5eaf3; border-radius: 10px; object-fit: contain; background: #fff; }
body.admin-v2 .ad-quiniela-card .qn-thumb-ini { display: grid; place-items: center; color: var(--gold); font-size: 24px; font-weight: 700; background: #eef3ff; }
body.admin-v2 .ad-badges { display: flex; flex-wrap: wrap; gap: 6px; }
body.admin-v2 .ad-card-description { margin: 0 0 18px; color: #52617a; font-size: 15px; line-height: 1.55; }
body.admin-v2 .ad-card-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.admin-v2 .ad-card-counts > div { display: flex; flex-direction: column; gap: 2px; }
body.admin-v2 :is(.ad-card-counts, .ad-prize-values) dt { color: var(--muted); font-size: 14px; }
body.admin-v2 :is(.ad-card-counts, .ad-prize-values) dd { margin: 0; font-size: 26px; font-weight: 700; line-height: 1.3; color: var(--text); }
body.admin-v2 .ad-card-address { margin: 16px 0 20px; font-size: 14px; color: #354968; overflow-wrap: anywhere; }
body.admin-v2 .ad-card-address > span { display: block; color: var(--muted); margin-bottom: 3px; }
body.admin-v2 :is(.ad-quiniela-card, .ad-prize-card) > footer { display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; padding-top: 4px; }
body.admin-v2 .ad-footnote { margin: 18px 0 0; color: var(--muted); font-size: 14px; }
body.admin-v2 .ad-footnote .demo-link { padding-left: 4px; }
body.admin-v2 .ad-prize-card header p { margin: 0; color: var(--muted); font-size: 14px; }
body.admin-v2 .ad-prize-card .home-icon { width: 48px; height: 48px; flex: none; }
body.admin-v2 .ad-prize-card .home-icon svg { width: 24px; height: 24px; }
body.admin-v2 .ad-prize-values { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0; padding: 18px 0; gap: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
body.admin-v2 .ad-prize-gift { margin: 18px 0 22px; color: #52617a; font-size: 15px; line-height: 1.5; }
body.admin-v2 .ad-prize-gift > strong { display: block; margin-bottom: 5px; color: var(--text); font-size: 14px; }
body.admin-v2 .ad-work-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 24px; border: 1px solid var(--line); border-radius: var(--r); background: white; }
body.admin-v2 .ad-work-summary > div { padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.admin-v2 .ad-work-summary > div + div { border-left: 1px solid var(--line); }
body.admin-v2 .ad-work-summary span { font-size: 15px; color: #52617a; }
body.admin-v2 .ad-work-summary strong { font-size: 28px; line-height: 1.2; }
body.admin-v2 .ad-jornada-list .ri-main strong { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 18px; }
body.admin-v2 .ad-jornada-list .row-item { padding: 20px 22px; }
body.admin-v2 .ad-jornada-origin { margin-top: 7px; }
body.admin-v2 .ad-jornada-status { margin: 5px 0 0; color: #354968; font-size: 15px; }
body.admin-v2 .ad-team-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); background: transparent; border: 0; gap: 14px; box-shadow: none; }
body.admin-v2 .ad-team-grid > .row-item { display: grid; grid-template-columns: 56px minmax(0,1fr); column-gap: 14px; row-gap: 12px; margin: 0; background: white; padding: 18px; border: 1px solid var(--line); border-radius: var(--r); }
body.admin-v2 .ad-team-grid .row-actions { grid-column: 1 / -1; justify-content: flex-end; padding-top: 10px; border-top: 1px solid #edf0f6; }
body.admin-v2 .ad-team-grid .ri-main strong { font-size: 17px; }
body.admin-v2 #adBody .ad-edit-panel { max-width: 980px; padding: 0; overflow: hidden; }
body.admin-v2 .ad-edit-panel > h3 { padding: 22px 26px; margin: 0; border-bottom: 1px solid var(--line); font-size: 22px; }
body.admin-v2 .ad-form-section { padding: 24px 26px; border-bottom: 1px solid var(--line); }
body.admin-v2 .ad-form-section h4 { margin: 0 0 18px; font-size: 17px; }
body.admin-v2 .ad-form-section .field:last-child { margin-bottom: 0; }
body.admin-v2 .ad-form-section .form-grid:last-child { margin-bottom: 0; }
body.admin-v2 .ad-edit-panel > .flexrow { padding: 18px 26px; margin: 0 !important; background: #fbfcff; }
body.admin-v2 .ad-edit-panel > :is(#qnMsg,#qpMsg):not(:empty) { margin: 18px 26px; }
body.admin-v2 .ad-image-fields { gap: 22px; }
body.admin-v2 .ad-image-fields .field { padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcff; }
body.admin-v2 .ad-image-fields .up-prev { width: 100%; max-width: 240px; height: 152px; object-fit: contain; background: white; }
body.admin-v2 .ad-image-fields .img-ctrl { flex-wrap: wrap; }
body.admin-v2 .ad-access-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 22px 0; align-items: start; }
body.admin-v2 #adBody .ad-access-grid .panel { margin: 0; height: 100%; padding: 24px; }
body.admin-v2 #qoLiberarPanel { border-top: 3px solid var(--gold); }
body.admin-v2 .ad-url-example { display: flex; align-items: center; gap: 24px; margin: 16px 0; padding: 18px 22px; background: #f5f7fb; border: 1px solid var(--line); border-radius: 10px; }
body.admin-v2 .ad-url-example > div { min-width: 0; }
body.admin-v2 .ad-url-example div > span { display: block; color: var(--muted); font-size: 14px; margin-bottom: 5px; }
body.admin-v2 .ad-url-example code { color: var(--text); font-size: 16px; overflow-wrap: anywhere; }
body.admin-v2 .up-photo .up-prev { width: 128px; height: 128px; aspect-ratio: 1; object-fit: contain; background: #f5f7fb; }
/* IA opcional: comparación en el propio campo, sin sustituir la imagen ni tapar el editor. */
body.admin-v2 .field-with-ai { grid-column: 1 / -1; min-width: 0; }
body.admin-v2 .image-ai { margin-top: 14px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); min-width: 0; }
body.admin-v2 .image-ai-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.admin-v2 .image-ai-heading h5 { margin: 0; font: 700 16px/1.4 var(--font); color: var(--text); }
body.admin-v2 .image-ai-heading > span { font-size: 14px; color: var(--muted); }
body.admin-v2 .image-ai p, body.admin-v2 .image-ai-settings p { font-size: 14px; line-height: 1.6; margin: 12px 0; overflow-wrap: anywhere; }
body.admin-v2 .image-ai-help { color: var(--muted); }
body.admin-v2 .image-ai [data-ai-status] { color: var(--text); }
body.admin-v2 .image-ai[aria-busy="true"] [data-ai-status] { border-left: 3px solid var(--gold); padding-left: 12px; }
body.admin-v2 .image-ai-actions, body.admin-v2 .image-ai-config { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
body.admin-v2 .image-ai-config { margin-top: 10px; }
body.admin-v2 .image-ai .btn, body.admin-v2 .image-ai-settings .btn { min-height: 44px; min-width: 44px; white-space: normal; }
body.admin-v2 .image-ai-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 20px; }
body.admin-v2 .image-ai-comparison figure { margin: 0; min-width: 0; }
body.admin-v2 .image-ai-comparison figcaption { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
body.admin-v2 .image-ai-comparison img { display: block; width: 100%; aspect-ratio: 1; max-height: 330px; object-fit: contain; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); }
body.admin-v2 .image-ai-state { padding: 12px 14px; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); font-weight: 700; }
body.admin-v2 .image-ai-settings .field { min-width: 0; }
body.admin-v2 .image-ai [hidden], body.admin-v2 .image-ai-settings [hidden] { display: none !important; }
@media (max-width: 600px) {
  body.admin-v2 .image-ai { padding: 16px; }
  body.admin-v2 .image-ai-comparison { grid-template-columns: minmax(0,1fr); gap: 16px; }
  body.admin-v2 .image-ai-actions > .btn, body.admin-v2 .image-ai-config > .btn { flex: 1 1 180px; }
}
body.admin-v2 :is(#qnTitulo,#qpTitulo):focus { outline: 0; }
body.admin-v2 #adminTitle:focus { outline: 0; }
body.admin-v2 .ad-section-jumps { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 20px; margin-bottom: 4px; }
body.admin-v2 :is(#cfWhatsapp,#cfRespaldos,#cfImagenIa) { scroll-margin-top: calc(var(--header-h) + 12px); }
body.admin-v2 :is(#cfWhatsapp,#cfRespaldos):focus { outline: 0; }
@media (max-width: 1100px) and (min-width: 701px) {
  body.admin-v2 .ad-card-grid, body.admin-v2 .ad-access-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  body.admin-v2 .ad-intro { margin-bottom: 18px; font-size: 15px; }
  body.admin-v2 .ad-card-grid, body.admin-v2 .ad-team-grid, body.admin-v2 .ad-access-grid { grid-template-columns: 1fr; gap: 16px; }
  body.admin-v2 :is(.ad-quiniela-card,.ad-prize-card) { padding: 18px; }
  body.admin-v2 .ad-quiniela-card .qn-thumb { width: 68px; height: 64px; }
  body.admin-v2 :is(.ad-quiniela-card,.ad-prize-card) h3 { font-size: 19px; }
  body.admin-v2 .ad-prize-values { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 24px; }
  body.admin-v2 :is(.ad-quiniela-card,.ad-prize-card) > footer .btn { flex: 1 1 auto; }
  body.admin-v2 .ad-work-summary > div { flex-direction: column; align-items: flex-start; justify-content: flex-start; padding: 14px 10px; gap: 7px; }
  body.admin-v2 .ad-work-summary span { font-size: 14px; }
  body.admin-v2 .ad-work-summary strong { font-size: 25px; }
  body.admin-v2 .ad-jornada-list .row-item { padding: 18px; }
  body.admin-v2 .ad-jornada-list .row-actions { justify-content: flex-start; }
  body.admin-v2 .ad-form-section { padding: 20px 18px; }
  body.admin-v2 .ad-edit-panel > h3, body.admin-v2 .ad-edit-panel > .flexrow { padding: 18px; }
  body.admin-v2 #adBody .ad-access-grid .panel { padding: 18px; }
  body.admin-v2 .ad-url-example { gap: 12px; padding: 14px; flex-wrap: wrap; }
  body.admin-v2 .ad-url-example > div { flex: 1 1 100%; }
  body.admin-v2 .ad-url-example > span { transform: rotate(90deg); }
}
/* v121: canjes y beneficios, con el mismo sistema visual del panel. */
.admin-v2 .vc-toolbar{justify-content:space-between;gap:16px;margin-bottom:16px;align-items:center;flex-wrap:wrap}
.admin-v2 .vc-toolbar h3{margin:0}
.admin-v2 .vc-catalogo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.admin-v2 .vc-catalogo .panel{margin:0}
.admin-v2 .vc-cifras{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:20px 0}
.admin-v2 .vc-form{border:2px solid var(--ad-blue,#2048c8);margin-bottom:24px}
.admin-v2 .vc-form small{display:block;margin-top:6px;color:var(--ad-muted,#60708a);line-height:1.5}
.admin-v2 .vc-span{grid-column:1/-1}
.admin-v2 .vc-solicitud{margin-bottom:16px;overflow-wrap:anywhere}
.admin-v2 .vc-solicitud .field{max-width:680px}
.admin-v2 .vc-solicitud .flexrow{flex-wrap:wrap;gap:10px}
.admin-v2 #vcMensaje:empty{display:none}
@media(max-width:760px){.admin-v2 .vc-catalogo{grid-template-columns:1fr}.admin-v2 .vc-solicitud .flexrow>.btn{flex:1 1 100%}}
.admin-v2 .qj-condicion{grid-column:2/-1;margin:8px 0 0;max-width:540px}
.admin-v2 .qj-condicion small{line-height:1.5;color:var(--ad-muted,#60708a)}

/* Acceso de administración: aislado del panel autenticado y del resto de formularios. */
.admin-access {
  --access-ink: #142443;
  --access-muted: #5d6570;
  --access-line: #dcdedc;
  width: min(100%, 488px);
  margin: clamp(24px, 5vw, 64px) auto clamp(36px, 6vw, 88px);
  color: var(--access-ink);
  color-scheme: light;
}
.admin-access, .admin-access * { box-sizing: border-box; }
.admin-access [hidden] { display: none !important; }
.admin-access-back {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0 0 14px;
  padding: 6px 0;
  color: var(--access-muted);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}
.admin-access-back:hover { color: var(--access-ink); text-decoration: underline; text-underline-offset: 4px; }
.admin-access-card {
  padding: clamp(24px, 4vw, 40px);
  background: #fff;
  border: 1px solid var(--access-line);
  border-radius: 12px;
  box-shadow: 0 8px 28px #14244308;
}
.admin-access-head { margin-bottom: 30px; }
.admin-access-eyebrow {
  margin: 0 0 10px;
  color: var(--access-muted);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .14em;
}
.admin-access h1 {
  margin: 0 0 12px;
  color: var(--access-ink);
  font-family: var(--font-display);
  font-size: clamp(29px, 3.2vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.02em;
  text-transform: none;
  overflow-wrap: anywhere;
}
/* La navegación enfoca el título al entrar; el borde se reserva para controles. */
.admin-access h1:focus { outline: none; }
.admin-access-intro {
  margin: 0;
  color: var(--access-muted);
  font-size: 15px;
  line-height: 1.6;
}
.admin-access .field { margin: 0 0 22px; }
.admin-access .field label { margin-bottom: 8px; color: var(--access-ink); font-size: 14px; font-weight: 600; }
.admin-access .field input {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 13px 14px;
  background: #fff;
  border: 1px solid #aeb7c1;
  border-radius: 6px;
  color: var(--access-ink);
  font-size: 16px;
  line-height: 1.5;
  box-shadow: none;
}
.admin-access .field input:hover { border-color: #6c7b8e; }
.admin-access .field input:focus { outline: 2px solid #285a9a; outline-offset: 2px; border-color: #285a9a; box-shadow: none; }
.admin-access .field input[aria-invalid="true"] { border-color: #ad342b; }
.admin-access-password { position: relative; }
.admin-access .admin-access-password input { padding-right: 91px; }
.admin-access-password button {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 76px;
  min-height: 44px;
  padding: 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #224c7d;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.admin-access-password button:hover { background: #f0f4f8; }
.admin-access-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  padding: 13px 18px;
  border: 1px solid #142443;
  border-radius: 6px;
  background: #142443;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
  box-shadow: none;
}
.admin-access-submit:hover { background: #234674; border-color: #234674; }
.admin-access button:disabled { cursor: wait; opacity: .7; }
.admin-access :is(a, button):focus-visible { outline: 2px solid #285a9a; outline-offset: 3px; }
.admin-access-error {
  margin: -2px 0 18px;
  padding: 12px 14px;
  border-left: 3px solid #ad342b;
  border-radius: 0 4px 4px 0;
  background: #fdf1ef;
  color: #8c2a24;
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.admin-access-error:focus { outline: 2px solid #ad342b; outline-offset: 3px; }
.admin-access-demo { margin: 18px 0 0; color: var(--access-muted); font-size: 13px; line-height: 1.5; }
.admin-access-footer { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--access-line); }
.admin-access-footer p { margin: 0; color: var(--access-muted); font-size: 14px; line-height: 1.5; }
.admin-access-footer a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 0; color: #224c7d; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 480px) {
  .admin-access { margin-top: 12px; }
  .admin-access-back { margin-bottom: 8px; }
  .admin-access-card { padding: 24px 20px; }
  .admin-access-head { margin-bottom: 24px; }
  .admin-access h1 { font-size: 29px; }
}

/* En el acceso, los enlaces del formulario sustituyen a las barras públicas fijas. */
body:has(.admin-access) #bottomSponsors,
body:has(.admin-access) #bottomNav { display: none !important; }
body:has(.admin-access) { padding-bottom: env(safe-area-inset-bottom); }
