/* Targeted interaction/layout fixes, loaded after the existing theme. */
.home-hero-artwork img { filter: none; }
.event-detail-backdrop, .admin-modal-backdrop { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.event-detail-dialog, .admin-modal-dialog { animation: none !important; transform: none !important; }
/* Shared field boundaries, including inputs with an implicit text type.
   Keep checkboxes, radios, buttons, hidden inputs and their layouts untouched. */
body :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]), textarea, select, [contenteditable="true"]) {
  border: 1px solid var(--ocean, #03506f);
  border-radius: 10px;
}
body :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]), textarea, select, [contenteditable="true"]):focus-visible {
  outline: 2px solid var(--ocean, #03506f);
  outline-offset: 2px;
}
.admin-modal .event-form-reward { grid-column: span 4; }
.admin-event-form .event-image-field > div { min-width: 0; }
@media (max-width: 720px) {
  .admin-modal .event-form-reward { grid-column: 1 / -1; }
}
.event-detail-image-wrap { display: block; width: 100%; padding: 16px; border: 0; background: #fff; cursor: zoom-in; }
.event-detail-image-wrap[hidden], [hidden] { display: none !important; }
.event-detail-image-wrap img { width: 100%; height: min(42vh, 340px); object-fit: contain; }
.ui-lightbox { width: min(1100px, 96vw); max-width: 96vw; max-height: 94dvh; padding: 40px 16px 16px; border: 1px solid #03506f; border-radius: 16px; background: #fff; }
.ui-lightbox::backdrop, .confirmation-dialog::backdrop { background: rgba(3,80,111,.65); backdrop-filter: none; }
.ui-lightbox > img { display: block; width: 100%; height: min(80dvh, 900px); object-fit: contain; }
.ui-image-button { display:block; width:100%; padding:0; border:0; border-radius:12px; background:#fff; cursor:zoom-in; }
.main-nav > a, .nav-dropdown > summary { padding-block: 5px !important; }
.field-help-panel[popover] { position: fixed !important; inset: auto; margin: 0; height: auto; max-width: min(300px, calc(100vw - 24px)); z-index: 10000; }
.admin-action:hover, .admin-action:focus-visible { color: #fff; background: #1263b6; }
.admin-action:is([aria-label*="Ver"],[aria-label*="Detalle"],[title*="Detalle"]):is(:hover,:focus-visible) { color:#352600; background:#f7d665; }
.admin-action-delete:is(:hover,:focus-visible), .admin-action[aria-label*="Eliminar"]:is(:hover,:focus-visible) { background:#b42335; color:#fff; }
.action-enable:is(:hover,:focus-visible) { background:#168248 !important; color:#fff !important; }
.action-disable:is(:hover,:focus-visible) { background:#b42335 !important; color:#fff !important; }
.catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(235px,100%),1fr)); gap:16px; }
.catalog-grid > article { width:100%; max-width:270px; padding:16px; }
.catalog-grid img { width:100%; height:160px; object-fit:contain; }
.catalog-grid h2, .catalog-grid h3 { font-size:1.15rem; margin-block:12px; }
.catalog-grid p { font-size:.9rem; }
.vendor-catalog-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; margin-top:28px; align-items:start; }
.vendor-catalog-layout > *, .owner-catalog-stack > * { min-width:0; }
.owner-catalog-stack { display:grid; gap:24px; }
.owner-product-list { display:grid; gap:12px; }
.owner-product-row { display:flex; align-items:center; gap:14px; padding:12px; border-bottom:1px solid #03506f; }
.owner-product-row img { width:64px; height:64px; object-fit:contain; }
.owner-product-row div { min-width:0; overflow-wrap:anywhere; }
.owner-product-row p { margin:4px 0; font-size:.9rem; }
.catalog-checkbox, .tournament-game-form .check-label { display:flex !important; flex-direction:row !important; align-items:center; gap:10px; }
.catalog-checkbox input[type="checkbox"], .tournament-game-form input[type="checkbox"] { width:18px !important; height:18px !important; min-height:18px !important; margin:0 !important; padding:0 !important; flex:0 0 18px; }
.split-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.split-actions > *, .split-actions button { width:100%; min-width:0; margin:0; }
.program-filter-label { display:flex; align-items:baseline; gap:7px; margin:0 0 9px; color:#03506f; font-size:.78rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.program-filter-label span { font-size:.68rem; font-weight:650; letter-spacing:.02em; text-transform:none; opacity:.72; }
.program-filters .category-filter { padding-bottom:34px; }
.category-filter button { gap:8px; }
.event-category-icon { flex:0 0 auto; width:1.15em; text-align:center; font-size:1.05em; line-height:1; }
.tag { gap:7px; }
.tag .event-category-icon { font-size:1.15em; }
.profile-event > div:first-child { flex:1; min-width:0; }
.profile-event-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; flex:0 0 auto; }
.profile-attendance-form { width:auto; }
.profile-attendance-form .admin-action { min-width:36px; min-height:36px; padding:7px; }
.my-tournaments { margin-top:28px; }
.tournament-entry-options { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 6px; }
.tournament-entry-options div { display:flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid #03506f; border-radius:999px; font-size:.72rem; }
.tournament-entry-options dt { font-weight:750; }
.tournament-entry-options dd { margin:0; font-weight:950; }
.my-tournament-list { display:grid; }
.my-tournament { display:flex; align-items:center; gap:16px; padding:16px; border-bottom:1px solid #03506f; }
.my-tournament img { width:70px; height:70px; object-fit:contain; }
.my-tournament-image-fallback { display:grid; place-items:center; width:70px; height:70px; flex:0 0 70px; color:#fff; background:#03506f; border-radius:10px; font-size:.62rem; font-weight:900; letter-spacing:.08em; }
.my-tournament > div { flex:1; min-width:0; }
.my-tournament small { display:block; }
.tournament-optional-heading { margin:8px 0 0; color:#03506f; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.consent-list label > span { margin-left:auto; color:#03506f; font-size:.68rem; font-weight:850; }
.dashboard-role-card .dashboard-role-grid strong { font-size:clamp(2.2rem,4vw,3.25rem); }
.dashboard-filter { display:grid; gap:6px; margin-top:8px; font-weight:400; }
.dashboard-filter input, .dashboard-filter select { width:100%; min-width:0; padding:8px; font:inherit; background:#fff; border:1px solid #03506f; border-radius:6px; }
.dashboard-filter-actions { display:flex; gap:10px; padding:16px; }
.column-filter-clear { display:block; width:100%; margin-block:12px; }
.leaderboard-podium { align-items:end; }
.podium-position.podium-1 { order:2; transform:translateY(-16px); }
.podium-position.podium-2 { order:1; }
.podium-position.podium-3 { order:3; }
@media (max-width:700px) {
  .vendor-catalog-layout { grid-template-columns:1fr; }
  .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-grid > article { padding:12px; }
  .catalog-grid img { height:125px; }
  .catalog-grid .button { padding-inline:8px; font-size:.75rem; }
  .my-tournament { gap:10px; padding-inline:0; }
  .profile-event { align-items:flex-start; }
  .profile-event-actions { flex-direction:column; align-items:flex-end; }
}
@media (max-width:420px) { .catalog-grid { grid-template-columns:1fr; } .catalog-grid > article { max-width:none; } }

.leaderboard-podium { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-top:20px; gap:12px; }
.leaderboard-podium h2 { overflow-wrap:anywhere; font-size:clamp(.85rem,2vw,1.5rem); }
@media(max-width:600px) { .leaderboard-podium .podium-position { padding:16px 8px; } }

.dashboard-alert-table th input, .dashboard-alert-table th select, .admin-event-table th input, .admin-event-table th select {
  display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0; margin-top:8px; padding:8px; font:inherit; font-size:.8rem; text-transform:none; background:#fff; color:#03506f; border:1px solid #03506f; border-radius:6px;
}
.ludicoins-intro {
  box-sizing:border-box; margin:auto; width:min(560px,calc(100vw - 32px));
  max-height:calc(100dvh - 32px); overflow:auto; padding:clamp(20px,4vw,32px);
  border:1px solid #03506f; border-radius:20px; color:#03506f; background:#fff;
  box-shadow:0 20px 70px rgba(3,80,111,.25); font-size:.95rem; line-height:1.6;
}
.ludicoins-intro::backdrop { background:rgba(3,80,111,.65); }
.ludicoins-help-trigger { appearance:none; border:0; font-family:inherit; cursor:pointer; }
.profile-kpi-label .field-help { display:inline-flex; }
.profile-kpi-label .field-help-trigger { margin:0; }
.ludicoins-help-trigger:focus-visible { outline:2px solid #03506f; outline-offset:3px; }
.event-detail-rewards { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.event-detail-reward { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; color:#03506f; background:#fff; border:1px solid #03506f; border-radius:999px; font-size:.82rem; font-weight:850; }
.event-detail-reward > img { width:26px; height:26px; object-fit:contain; }
.event-detail-reward .field-help { display:inline-flex; }
.event-detail-reward .field-help-trigger { width:26px; height:26px; margin:0; }
.reward-row > span { display:inline-flex; align-items:center; gap:6px; }
.reward-row .reward-coin { width:24px; height:24px; flex:0 0 24px; object-fit:contain; }
.ludicoins-intro-preference[hidden] { display:none; }
.ludicoins-intro h2 { margin:0 0 16px; font-size:clamp(1.4rem,5vw,1.9rem); }
.ludicoins-intro p { margin:0 0 16px; }
.ludicoins-intro-benefits { padding-left:20px; margin:0 0 16px; }
.ludicoins-intro-benefits li + li { margin-top:12px; }
.ludicoins-intro-preference { display:flex; align-items:flex-start; gap:10px; font-size:.78rem; cursor:pointer; margin:20px 0 16px; }
.ludicoins-intro-preference input { flex:0 0 18px; width:18px; height:18px; margin:2px 0 0; accent-color:#03506f; }
.ludicoins-intro .ludicoins-intro-storage-note { font-size:.78rem; }
.ludicoins-intro .button { width:100%; white-space:normal; }

/* Hoja de íconos decorativos del Home. No participa en el flujo ni recibe eventos. */
.home-hero,
.free-access-section,
.about-section,
.experience,
.schedule-section { position:relative; isolation:isolate; overflow-x:clip; }
.asset-confetti { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.asset-confetti + .container,
.asset-confetti ~ .container { position:relative; z-index:1; }
.game-sprite {
  position:absolute; display:block; width:var(--sprite-w); height:var(--sprite-h);
  background-image:url("../images/ludicon-game-assets.png");
  background-repeat:no-repeat; background-size:640px 427px;
  background-position:calc(0px - var(--sprite-x)) calc(0px - var(--sprite-y));
  filter:drop-shadow(0 10px 9px rgba(3,80,111,.22));
  transform:rotate(var(--tilt,0deg)) scale(var(--scale,1));
  transform-origin:center; opacity:.96;
  animation:game-sprite-float 5.5s ease-in-out infinite alternate;
}
.sprite-trophy{--sprite-x:8px;--sprite-y:11px;--sprite-w:86px;--sprite-h:87px}
.sprite-question{--sprite-x:104px;--sprite-y:26px;--sprite-w:62px;--sprite-h:62px}
.sprite-joystick{--sprite-x:179px;--sprite-y:18px;--sprite-w:68px;--sprite-h:79px}
.sprite-book{--sprite-x:314px;--sprite-y:32px;--sprite-w:77px;--sprite-h:62px}
.sprite-controller{--sprite-x:396px;--sprite-y:35px;--sprite-w:74px;--sprite-h:54px}
.sprite-star{--sprite-x:481px;--sprite-y:20px;--sprite-w:69px;--sprite-h:72px}
.sprite-laptop{--sprite-x:550px;--sprite-y:24px;--sprite-w:70px;--sprite-h:74px}
.sprite-coin{--sprite-x:12px;--sprite-y:98px;--sprite-w:64px;--sprite-h:77px}
.sprite-diamond{--sprite-x:89px;--sprite-y:110px;--sprite-w:64px;--sprite-h:61px}
.sprite-heart{--sprite-x:165px;--sprite-y:112px;--sprite-w:65px;--sprite-h:57px}
.sprite-alien{--sprite-x:238px;--sprite-y:109px;--sprite-w:75px;--sprite-h:62px}
.sprite-handheld{--sprite-x:326px;--sprite-y:103px;--sprite-w:59px;--sprite-h:77px}
.sprite-calendar{--sprite-x:400px;--sprite-y:103px;--sprite-w:66px;--sprite-h:72px}
.sprite-megaphone{--sprite-x:550px;--sprite-y:98px;--sprite-w:84px;--sprite-h:82px}
.sprite-badge{--sprite-x:14px;--sprite-y:186px;--sprite-w:65px;--sprite-h:79px}
.sprite-shield{--sprite-x:92px;--sprite-y:183px;--sprite-w:65px;--sprite-h:77px}
.sprite-swords{--sprite-x:233px;--sprite-y:188px;--sprite-w:79px;--sprite-h:74px}
.sprite-medal{--sprite-x:325px;--sprite-y:188px;--sprite-w:55px;--sprite-h:79px}
.sprite-flag{--sprite-x:398px;--sprite-y:185px;--sprite-w:62px;--sprite-h:81px}
.sprite-sparkles{--sprite-x:478px;--sprite-y:188px;--sprite-w:66px;--sprite-h:68px}
.sprite-cap{--sprite-x:552px;--sprite-y:190px;--sprite-w:78px;--sprite-h:70px}
.sprite-dpad{--sprite-x:13px;--sprite-y:273px;--sprite-w:63px;--sprite-h:65px}
.sprite-cursor{--sprite-x:268px;--sprite-y:274px;--sprite-w:41px;--sprite-h:61px}
.sprite-hourglass{--sprite-x:325px;--sprite-y:269px;--sprite-w:47px;--sprite-h:71px}
.sprite-books{--sprite-x:389px;--sprite-y:269px;--sprite-w:81px;--sprite-h:71px}
.sprite-bulb{--sprite-x:558px;--sprite-y:267px;--sprite-w:71px;--sprite-h:70px}
.sprite-rocket{--sprite-x:553px;--sprite-y:345px;--sprite-w:74px;--sprite-h:69px}

.asset-confetti-hero .sprite-trophy{left:1%;top:9%;--tilt:-12deg;--scale:.9}
.asset-confetti-hero .sprite-controller{right:2%;top:12%;--tilt:11deg;--scale:1.05;animation-delay:-1s}
.asset-confetti-hero .sprite-star{left:45%;top:6%;--tilt:9deg;--scale:.72;animation-delay:-2s}
.asset-confetti-hero .sprite-rocket{right:6%;bottom:16%;--tilt:10deg;--scale:.9;animation-delay:-3s}
.asset-confetti-hero .sprite-joystick{left:4%;bottom:18%;--tilt:8deg;--scale:.82;animation-delay:-4s}
.asset-confetti-hero .sprite-diamond{left:49%;bottom:14%;--tilt:-8deg;--scale:.72;animation-delay:-2.5s}
.asset-confetti-hero .sprite-book{right:34%;top:18%;--tilt:-7deg;--scale:.68;animation-delay:-1.5s}

.asset-confetti-access .sprite-coin{left:1%;top:10%;--tilt:-10deg;--scale:.72}
.asset-confetti-access .sprite-medal{right:2%;top:9%;--tilt:8deg;--scale:.78;animation-delay:-2s}
.asset-confetti-access .sprite-sparkles{right:22%;bottom:-9%;--scale:.63;animation-delay:-4s}

.asset-confetti-about .sprite-question{left:2%;top:8%;--tilt:-8deg;--scale:.8}
.asset-confetti-about .sprite-heart{right:2%;top:10%;--tilt:10deg;--scale:.76;animation-delay:-1s}
.asset-confetti-about .sprite-controller{left:46%;bottom:1%;--tilt:-15deg;--scale:.65;animation-delay:-3s}
.asset-confetti-about .sprite-bulb{right:10%;bottom:2%;--tilt:8deg;--scale:.65;animation-delay:-2s}
.asset-confetti-about .sprite-laptop{left:8%;bottom:0;--tilt:-5deg;--scale:.58;animation-delay:-4s}

.asset-confetti-experience .sprite-swords{left:2%;bottom:5%;--tilt:-8deg;--scale:.85}
.asset-confetti-experience .sprite-shield{right:2%;top:5%;--tilt:9deg;--scale:.84;animation-delay:-1s}
.asset-confetti-experience .sprite-handheld{left:45%;top:2%;--tilt:-8deg;--scale:.7;animation-delay:-2s}
.asset-confetti-experience .sprite-flag{right:37%;bottom:1%;--tilt:7deg;--scale:.7;animation-delay:-3s}
.asset-confetti-experience .sprite-badge{left:23%;top:4%;--tilt:-10deg;--scale:.64;animation-delay:-4s}
.asset-confetti-experience .sprite-alien{right:20%;bottom:2%;--tilt:5deg;--scale:.64;animation-delay:-2.5s}

.asset-confetti-schedule{height:330px}
.asset-confetti-schedule .sprite-calendar{left:1%;top:4%;--tilt:-9deg;--scale:.78}
.asset-confetti-schedule .sprite-megaphone{right:1%;top:5%;--tilt:8deg;--scale:.9;animation-delay:-1s}
.asset-confetti-schedule .sprite-dpad{left:24%;top:1%;--tilt:10deg;--scale:.58;animation-delay:-2s}
.asset-confetti-schedule .sprite-hourglass{right:25%;top:4%;--tilt:-8deg;--scale:.62;animation-delay:-3s}
.asset-confetti-schedule .sprite-books{left:42%;top:18%;--tilt:6deg;--scale:.58;animation-delay:-4s}
.asset-confetti-schedule .sprite-cap{right:11%;top:42%;--tilt:-7deg;--scale:.54;animation-delay:-2.5s}

@keyframes game-sprite-float {
  from { translate:0 -5px; }
  to { translate:0 8px; }
}
@media (max-width:860px) {
  .game-sprite{scale:.86;opacity:.82}
  .asset-confetti-hero .game-sprite:nth-child(3n),.asset-confetti-about .game-sprite:nth-child(3n),.asset-confetti-experience .game-sprite:nth-child(3n){display:none}
  .asset-confetti-schedule{height:250px}
}
@media (max-width:560px) {
  .game-sprite{scale:.72;opacity:.72}
  .asset-confetti-hero .game-sprite:nth-child(even),.asset-confetti-about .game-sprite:nth-child(even),.asset-confetti-experience .game-sprite:nth-child(even),.asset-confetti-schedule .game-sprite:nth-child(even){display:none}
  .asset-confetti-hero .sprite-trophy{top:6%;left:-4%}.asset-confetti-hero .sprite-star{left:72%;top:9%}.asset-confetti-hero .sprite-joystick{left:-3%;bottom:13%}.asset-confetti-hero .sprite-diamond{left:78%;bottom:18%}
  .asset-confetti-access .sprite-sparkles{display:none}.asset-confetti-about .sprite-question{left:-4%}.asset-confetti-about .sprite-laptop{left:70%}
  .asset-confetti-experience .sprite-swords{left:-4%}.asset-confetti-experience .sprite-handheld{left:72%}
  .asset-confetti-schedule .sprite-calendar{left:-4%}.asset-confetti-schedule .sprite-dpad{left:72%}
}
@media (prefers-reduced-motion:reduce){.game-sprite{animation:none}}
.dashboard-alert-table th { min-width:115px; }
/* Event titles must wrap: the legacy second-column nowrap predates the image column. */
.admin-event-table td[data-label="Evento"],
.admin-event-table td[data-label="Sede"],
.admin-event-table td[data-label="Autores"] {
  white-space:normal;
  overflow-wrap:anywhere;
}
.admin-event-table .admin-event-thumbnail { object-fit:contain; max-width:100%; }
.admin-event-table .admin-event-placeholder { max-width:100%; }
.admin-event-table .admin-row-actions { display:flex; flex-wrap:nowrap; align-items:center; gap:3px; }
.admin-event-table .admin-row-actions > * { flex:0 0 auto; }
@media (min-width:821px) {
  .admin-event-table th:nth-child(1) { width:7%; }
  .admin-event-table th:nth-child(2) { width:25%; }
  .admin-event-table th:nth-child(3) { width:10%; }
  .admin-event-table th:nth-child(4) { width:10%; }
  .admin-event-table th:nth-child(5) { width:15%; }
  .admin-event-table th:nth-child(6) { width:15%; }
  .admin-event-table th:nth-child(7) { width:18%; }
  .admin-event-table td[data-label="Fecha"],
  .admin-event-table td[data-label="Horario"] { white-space:normal; overflow-wrap:anywhere; }
  .admin-event-table td[data-label="Acciones"] { padding-inline:7px; }
  .admin-event-table .admin-row-actions .admin-action.admin-action-icon { width:31px; min-width:31px; height:31px; min-height:31px; border-radius:8px; }
  .admin-event-table .admin-row-actions .admin-action.admin-action-icon > .admin-action-icon { width:16px; height:16px; min-width:0; min-height:0; }
}
@media (max-width:820px) {
  .admin-event-table td[data-label="Evento"] > small { grid-column:2; margin-top:0; }
  .admin-event-table td > * { min-width:0; }
}
.dashboard-filter-actions { flex-wrap:wrap; align-items:center; padding-inline:0; }
.dashboard-filter-actions select { padding:8px; max-width:100%; }
.dashboard-role-card .role-badge { font-size:1rem; }
.user-filter-clear.column-filter-clear { margin:0; min-height:30px; width:100%; }
.owner-product-row .ui-image-button { flex:0 0 64px; width:64px; }
.admin-action.admin-action-detail:is(:hover,:focus-visible) { color:#352600!important; background:#f7d665!important; }
.admin-action.admin-action-edit:is(:hover,:focus-visible) { background:#1263b6!important; color:#fff!important; }
.admin-action.admin-action-delete:is(:hover,:focus-visible) { background:#b42335!important; color:#fff!important; }
.main-nav a::after { bottom:0; }
.confirmation-dialog { margin:auto; border:1px solid #03506f; border-radius:18px; padding:24px; width:min(440px,calc(100vw - 32px)); max-height:90dvh; color:#03506f; background:#fff; }
.confirmation-dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
.tournament-admin-card > img { height:170px; max-height:170px; width:100%; margin:0; object-fit:contain; }
.tianguis-owner-card .ui-image-button img { width:100%; height:160px; object-fit:contain; }

/* Scoped controls: the catalog forms also contain inputs without a type attribute. */
.catalog-product-form input:not([type="hidden"]):not([type="checkbox"]),
.tianguis-owner-page .owner-catalog-stack input:not([type="hidden"]):not([type="checkbox"]),
.tianguis-owner-page .owner-catalog-stack textarea,
.reward-qrs-page .admin-event-form :is(input:not([type="hidden"]), select),
.dashboard-filter-actions select {
  display:block; box-sizing:border-box; width:100%; min-width:0; min-height:44px;
  padding:10px 12px; border:1px solid var(--ocean, #03506f); border-radius:10px;
  font:inherit; color:#03506f; background:#fff;
}
.catalog-product-form { gap:14px; }
.catalog-product-form .form-field { min-width:0; }
.catalog-product-form :is(input,select):focus-visible,
.dashboard-filter-actions select:focus-visible { outline:2px solid #03506f; outline-offset:2px; }
.owner-product-info { flex:1; }
.owner-product-row { padding:10px 0; gap:10px; }
.owner-product-row .admin-row-actions { display:flex; flex:0 0 auto; gap:4px; }
.owner-product-row .admin-action { display:grid; place-items:center; width:44px; min-width:44px; height:44px; padding:0; }
.vendor-product-dialog {
  margin:auto; width:min(520px,calc(100vw - 32px)); max-height:90dvh; overflow:auto;
  padding:26px; border:1px solid #03506f; border-radius:18px; color:#03506f; background:#fff;
}
.vendor-product-dialog::backdrop { background:rgba(3,80,111,.65); }
.vendor-product-dialog h2 { margin:0 42px 20px 0; font-size:1.5rem; }
.vendor-product-dialog .confirmation-dialog-actions { flex-wrap:wrap; }

.dashboard-filter-actions { margin:0; gap:8px; padding-block:12px; }
.dashboard-filter-actions label { font-size:.85rem; font-weight:700; }
.dashboard-filter-actions select { width:auto; min-width:130px; max-width:100%; font-size:.9rem; }
.dashboard-page [data-live-filter] { min-width:0; }
.dashboard-page .dashboard-alert-table { table-layout:fixed; width:100%; }
.dashboard-page .dashboard-alert-table :is(th,td) { min-width:0; overflow-wrap:anywhere; }
.dashboard-page .dashboard-alert-table th :is(input,select) { min-height:42px; border-radius:8px; }
.dashboard-page .dashboard-filter-actions .user-filter-clear { width:auto; min-height:38px; }

/* Nine real columns, not the previous seven-column widths. */
.admin-user-table .user-col-id { width:4%; }
.admin-user-table .user-col-name { width:15%; }
.admin-user-table .user-col-contact { width:18%; }
.admin-user-table .user-col-role { width:11%; }
.admin-user-table .user-col-state { width:9%; }
.admin-user-table .user-col-location { width:11%; }
.admin-user-table .user-col-coins { width:9%; }
.admin-user-table .user-col-terms { width:13%; }
.admin-user-table .user-col-actions { width:10%; }
@media (min-width:821px) {
  .admin-user-table { width:100%; min-width:0; table-layout:fixed; }
  .admin-user-table tr > :is(th,td):nth-child(n) {
    width:auto; min-width:0; padding:10px 7px; vertical-align:top;
    white-space:normal; overflow-wrap:anywhere; font-size:.8rem; line-height:1.45;
  }
  .admin-user-table thead th { font-size:.72rem; letter-spacing:.04em; }
  .admin-user-table .user-filter-row th,
  .admin-user-table .user-filter-row th:first-child,
  .admin-user-table .user-filter-row th:last-child { padding:6px 4px; }
  .admin-user-table .user-filter-row :is(input,select) { padding:7px 4px; min-height:38px; font-size:.75rem; }
  .admin-user-table td small { display:block; margin-top:4px; font-size:.72rem; line-height:1.45; }
  .admin-user-table .role-badge { white-space:normal; padding:4px; font-size:.73rem; }
  .admin-user-table .coin-pill { padding:3px 5px; font-size:.7rem; }
  .admin-user-table .admin-row-actions { display:flex; flex-wrap:nowrap; gap:4px; }
  .admin-user-table .admin-action.admin-action-icon { width:36px; min-width:36px; min-height:36px; height:36px; }
}
.tianguis-owner-page > main { padding-top:28px; }
.tianguis-owner-page .portal-hero { margin-bottom:20px; }
.tianguis-owner-page .portal-hero h1 { font-size:clamp(2rem,4vw,3rem); }
.tianguis-owner-page .owner-catalog-stack { grid-template-columns:minmax(280px,.9fr) minmax(0,1.5fr); align-items:start; gap:20px; }
.tianguis-owner-page .owner-catalog-stack .portal-card { padding:18px; margin:0; }
.tianguis-owner-page .owner-catalog-stack h2 { font-size:1.3rem; margin:8px 0 16px; }
.tianguis-owner-page .owner-catalog-stack .section-kicker { margin-bottom:6px; }
.tianguis-owner-page .tianguis-create-card .admin-event-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.tianguis-owner-page .tianguis-create-card .form-field:nth-of-type(n+3),
.tianguis-owner-page .tianguis-create-card :is(.catalog-checkbox,.admin-form-actions) { grid-column:1 / -1; }
.tianguis-owner-page .owner-catalog-stack .form-field { margin:0; gap:6px; min-width:0; }
.tianguis-owner-page .owner-catalog-stack textarea { min-height:68px; }
.tianguis-owner-page .owner-catalog-stack .admin-table-heading { padding:0; }
.tianguis-owner-page .tianguis-owner-grid { margin-top:10px; gap:12px; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.tianguis-owner-page .tianguis-owner-card .ui-image-button img { height:84px; }
.tianguis-owner-page .tianguis-owner-card .ui-image-button { margin-bottom:10px; }
.tianguis-owner-page .tianguis-owner-card .auth-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.tianguis-owner-page .tianguis-owner-card .form-field:nth-of-type(n+3),
.tianguis-owner-page .tianguis-owner-card .auth-form > :is(.catalog-checkbox,button) { grid-column:1 / -1; }
.tianguis-owner-page .owner-catalog-stack .admin-form-actions { margin-top:0; }
@media (max-width:820px) {
  .admin-user-table colgroup { display:none; }
  .tianguis-owner-page .owner-catalog-stack { grid-template-columns:1fr; }
  .dashboard-page .dashboard-card-heading { flex-wrap:wrap; }
}
@media (max-width:420px) {
  .owner-product-row { flex-wrap:wrap; }
  .tianguis-owner-page .tianguis-create-card .admin-event-form { grid-template-columns:1fr; }
  .tianguis-owner-page .tianguis-owner-card .auth-form { grid-template-columns:1fr; }
}

/* Profile sections share the Circus palette. */
.profile-tabs { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 28px; padding:12px; border:2px solid #c48d4a; background:#25223e; box-shadow:5px 5px #060d22; }
.profile-tabs [data-profile-tab] { flex:1 1 180px; display:flex; align-items:center; justify-content:center; min-height:52px; padding:12px 16px; border:2px solid #c48d4a; color:#fff3cc; background:#302b40; font:600 1.1rem/1.25 var(--nes-font,monospace); text-align:center; text-decoration:none; }
.profile-tabs [aria-selected="true"] { background:#ffe086; color:#302543; border-color:#ffd16b; box-shadow:3px 3px #9b4342; }
.profile-tabs [data-profile-tab]:focus-visible { outline:3px solid #fff3cc; outline-offset:3px; }
.profile-tabs [data-profile-tab] { transition:none; }
@media(max-width:1500px) { .navbar:has(.nav-wallet) .main-nav { display:none; }.navbar:has(.nav-wallet) .mobile-navigation { display:block; } }
.profile-panel { min-width:0; scroll-margin-top:110px; }
.profile-panel[hidden] { display:none !important; }
.profile-panel > .portal-card { margin-bottom:24px; }
.profile-purchases-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; }
@media(max-width:760px) { .profile-purchases-grid { grid-template-columns:minmax(0,1fr); }.profile-tabs { gap:8px; padding:8px; }.profile-tabs [data-profile-tab] { flex-basis:calc(50% - 8px); min-width:0; padding:10px 8px; font-size:1rem; } }

/* Vector logo inherits the same theme accent as the former header text. */
.header-brand-logo {
  display:block;
  width:clamp(200px,19vw,270px);
  aspect-ratio:1448 / 273;
  color:var(--nes-accent,#03506f);
  background-color:currentColor;
  -webkit-mask:url('../images/ludicon-2026-mark.svg') center / contain no-repeat;
  mask:url('../images/ludicon-2026-mark.svg') center / contain no-repeat;
}
.profile-kpi-action { width:max-content; max-width:100%; margin-top:14px; }
.profile-section-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.profile-section-header > div { min-width:0; }
.profile-section-header .button { flex:0 0 auto; }
.profile-section-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.profile-section-actions .button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; }
.profile-section-actions .admin-action-icon { width:18px; height:18px; }
@media (max-width:560px) {
  .header-brand-logo { width:min(250px,calc(100vw - 98px)); }
  .profile-section-header { align-items:stretch; flex-direction:column; gap:12px; }
  .profile-section-header .button { width:100%; }
  .profile-section-actions { width:100%; }
}
.day-picker {
  top: var(--program-header-height, 86px);
}
.program-day-heading {
  top: calc(var(--program-header-height, 86px) + var(--program-picker-height, 96px) + 16px);
}
html.has-program {
  scroll-padding-top: var(--program-header-height, 86px);
}
html.has-program .program-day {
  scroll-margin-top: calc(var(--program-picker-height, 96px) + 16px);
}
@media (max-width: 640px) {
  .day-picker-inner { min-height: 60px; }
  .day-picker a { padding: 8px 4px; }
}

/* Calendar actions inside Mi programa. */
.profile-calendar-menu { position:relative; align-self:center; }
.profile-calendar-menu > summary { display:flex; align-items:center; justify-content:center; gap:7px; box-sizing:border-box; height:44px; min-height:44px; cursor:pointer; list-style:none; }
.profile-calendar-menu > summary::-webkit-details-marker { display:none; }
.profile-calendar-menu > summary .admin-action-icon,
.admin-table-heading-actions .button .admin-action-icon { width:18px; height:18px; }
@media (hover:hover) and (pointer:fine) {
  .profile-calendar-menu[open]::after {
    content:""; position:absolute; z-index:29; top:100%; right:0;
    width:max(100%,190px); height:14px;
  }
}
.profile-calendar-options {
  position:absolute; z-index:30; top:calc(100% + 7px); right:0; width:190px;
  display:grid; padding:7px; color:#03506f; background:#fff;
  border:1px solid #03506f; border-radius:12px; box-shadow:0 14px 34px rgba(3,80,111,.18);
}
.profile-calendar-options a { padding:10px 11px; color:#03506f; border-radius:8px; font-size:.78rem; font-weight:800; text-decoration:none; }
.profile-calendar-options a:is(:hover,:focus-visible) { color:#fff; background:#03506f; outline:none; }
.profile-event-actions > .status-pill { display:inline-flex; align-items:center; box-sizing:border-box; min-height:44px; padding-block:0; }
.profile-event-actions > form { display:flex; align-items:center; margin:0; }
.profile-event-actions > a.admin-action,
.profile-event-actions > form .admin-action { width:44px; min-width:44px; height:44px; min-height:44px; }

/* Selectable and keyboard-reorderable administrative CSV columns. */
.admin-export-dialog { width:min(720px,100%); }
.admin-export-form { display:grid; gap:18px; }
.admin-export-form .form-field { display:grid; gap:7px; }
.admin-export-form select {
  width:100%; min-height:48px; padding:10px 12px; color:#03506f; background:#fff;
  border:1px solid #03506f; border-radius:10px; font:inherit;
}
.admin-export-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.admin-export-form legend { font-size:1rem; font-weight:900; }
.admin-export-form fieldset > p { margin:5px 0 12px; font-size:.8rem; }
.admin-export-columns { display:grid; gap:7px; max-height:min(48vh,480px); overflow:auto; padding-right:4px; }
.admin-export-column {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:52px; padding:7px 8px 7px 12px; border:1px solid #03506f; border-radius:10px;
}
.admin-export-column label { display:flex; align-items:center; gap:10px; min-width:0; cursor:pointer; font-weight:750; }
.admin-export-column input { width:19px; height:19px; flex:0 0 19px; accent-color:#03506f; }
.admin-export-order { display:flex; gap:5px; }
.admin-export-order button {
  display:grid; place-items:center; width:44px; height:44px; padding:0; color:#03506f;
  background:#fff; border:1px solid #03506f; border-radius:9px; cursor:pointer; font:inherit; font-size:1.1rem;
}
.admin-export-order button:is(:hover,:focus-visible):not(:disabled) { color:#fff; background:#03506f; }
.admin-export-order button:disabled { opacity:.34; cursor:not-allowed; }
.admin-export-form .admin-form-actions { display:flex; justify-content:flex-end; gap:10px; }

/* Anonymous post-check-in survey. */
.survey-card { max-width:820px; margin-inline:auto; }
.survey-card > h1 { margin:.35em 0; font-size:clamp(2rem,6vw,4rem); }
.survey-form { display:grid; gap:20px; margin-top:24px; }
.survey-form fieldset { min-width:0; margin:0; padding:16px; border:1px solid #03506f; border-radius:14px; }
.survey-form legend { padding:0 7px; font-weight:900; }
.survey-score { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.survey-score label { display:grid; place-items:center; gap:4px; min-width:0; cursor:pointer; text-align:center; }
.survey-score input { position:absolute; opacity:0; pointer-events:none; }
.survey-score span {
  display:grid; place-items:center; width:48px; height:48px; color:#03506f; background:#fff;
  border:1px solid #03506f; border-radius:50%; font-weight:950;
}
.survey-score input:checked + span { color:#fff; background:#03506f; }
.survey-score input:focus-visible + span { outline:3px solid rgba(3,80,111,.35); outline-offset:3px; }
.survey-score small { min-height:1em; font-size:.65rem; }
.survey-choice { display:flex; flex-wrap:wrap; gap:12px; }
.survey-choice label { display:flex; align-items:center; gap:8px; min-width:120px; min-height:44px; cursor:pointer; }
.survey-choice input { width:19px; height:19px; accent-color:#03506f; }
.survey-form textarea { width:100%; min-height:110px; padding:12px; color:#03506f; background:#fff; border:1px solid #03506f; border-radius:10px; font:inherit; resize:vertical; }

.admin-action.admin-action-survey:is(:hover,:focus-visible) { color:#fff!important; background:#6d28d9!important; }
.admin-action-survey-disabled { opacity:.38; cursor:not-allowed; }
.survey-dashboard-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.survey-dashboard-kpis article { display:grid; gap:8px; padding:20px; border:1px solid #03506f; border-radius:16px; }
.survey-dashboard-kpis span { font-size:.76rem; font-weight:850; }
.survey-dashboard-kpis strong { font-size:clamp(1.8rem,4vw,3rem); }
.survey-dashboard-kpis strong small { font-size:.85rem; }
.survey-dashboard-grid { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); gap:20px; }
.survey-distribution,.survey-comments { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.survey-distribution li { display:grid; grid-template-columns:38px 1fr 30px; align-items:center; gap:10px; }
.survey-distribution li > div { height:12px; overflow:hidden; background:rgba(3,80,111,.12); border-radius:999px; }
.survey-distribution i { display:block; width:var(--survey-width); height:100%; background:#03506f; border-radius:inherit; }
.survey-comments { max-height:520px; overflow:auto; }
.survey-comments li { padding:14px; border:1px solid #03506f; border-radius:12px; }
.survey-comments p { margin:0 0 8px; white-space:normal; overflow-wrap:anywhere; }

@media (max-width:820px) {
  .survey-dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .survey-dashboard-grid { grid-template-columns:1fr; }
  .admin-table-heading-actions { flex-wrap:wrap; justify-content:flex-end; gap:8px; }
}
@media (max-width:600px) {
  .profile-event-actions { width:100%; flex-flow:row wrap; align-items:center; justify-content:flex-start; }
  .profile-calendar-options { right:auto; left:0; }
  .survey-score span { width:44px; height:44px; }
  .admin-export-column { align-items:flex-start; }
  .survey-dashboard-kpis { grid-template-columns:1fr 1fr; }
}
@media (max-width:380px) {
  .survey-score { gap:4px; }
  .survey-score span { width:40px; height:40px; }
  .survey-dashboard-kpis { grid-template-columns:1fr; }
}

/* Mecachamaleón IRL: banner, captura, colección, administración y selector de ranking. */
.mecachameleon-banner-section { padding:clamp(42px,7vw,88px) 0; background:#fff; }
.mecachameleon-banner {
  position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);
  align-items:center; min-height:460px; overflow:hidden; color:#fff;
  background:linear-gradient(135deg,#7115b8 0%,#e40068 34%,#ff7a00 67%,#ffd600 100%);
  border:1px solid #03506f; border-radius:28px; box-shadow:0 24px 60px rgba(3,80,111,.22);
}
.mecachameleon-banner::after {
  content:""; position:absolute; z-index:-1; inset:0 45% 0 0;
  background:linear-gradient(135deg,rgba(3,80,111,.96),rgba(15,37,74,.88));
  clip-path:polygon(0 0,88% 0,100% 100%,0 100%);
}
.mecachameleon-banner-copy { box-sizing:border-box; min-width:0; padding:clamp(30px,5vw,64px); }
.mecachameleon-banner-copy h2 { margin:.12em 0 .28em; color:#fff; font-size:clamp(2.25rem,4.6vw,4.7rem); line-height:.9; text-transform:uppercase; }
.mecachameleon-banner-copy > p:not(.section-kicker) { max-width:590px; margin:0 0 24px; font-size:clamp(1rem,2vw,1.2rem); line-height:1.6; }
.mecachameleon-banner-copy ul { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; padding:0; list-style:none; }
.mecachameleon-banner-copy li { padding:6px 11px; border:1px solid rgba(255,255,255,.72); border-radius:999px; font-size:.74rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.mecachameleon-banner-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.mecachameleon-banner-actions form { display:flex; width:max-content; max-width:100%; margin:0; }
.mecachameleon-banner-actions .button { color:#03506f; background:#fff; border-color:#fff; }
.mecachameleon-banner-actions .button:is(:hover,:focus-visible) { color:#fff; background:transparent; }
.mecachameleon-banner-actions .button[aria-disabled="true"] { opacity:.72; pointer-events:none; }
.mecachameleon-banner-visual { position:relative; align-self:stretch; display:grid; place-items:center; min-width:0; margin:0; padding:clamp(18px,3vw,38px); }
.mecachameleon-banner-visual::before { content:""; position:absolute; inset:8% 6%; background:rgba(255,255,255,.24); border:1px solid rgba(255,255,255,.7); border-radius:24px; transform:rotate(2deg); }
.mecachameleon-banner-visual img { position:relative; z-index:1; display:block; width:100%; height:auto; max-height:390px; object-fit:cover; border:5px solid #fff; border-radius:20px; box-shadow:0 18px 45px rgba(34,10,42,.35); transform:rotate(-1.5deg); }

.profile-mecachameleon-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; margin:24px 0; }
.mecachameleon-access-card { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:24px 0; }
.profile-mecachameleon-card h2,.mecachameleon-access-card h2 { margin:.2em 0; }
.profile-mecachameleon-card p:last-child,.mecachameleon-access-card p:last-child { margin-bottom:0; }
.profile-mecachameleon-content { display:grid; grid-template-columns:minmax(220px,.75fr) minmax(300px,1.25fr); align-items:end; gap:24px; min-width:0; }
.profile-mecachameleon-claim-form { display:grid; gap:7px; margin:0; }
.profile-mecachameleon-claim-form label { font-size:.82rem; font-weight:900; }
.profile-mecachameleon-claim-form > div { display:grid; grid-template-columns:minmax(150px,1fr) auto; gap:9px; }
.profile-mecachameleon-claim-form input { min-width:0; min-height:48px; padding:9px 12px; font:900 1.35rem/1 monospace; letter-spacing:.22em; text-align:center; }
.profile-mecachameleon-actions { display:grid; gap:8px; }
.profile-mecachameleon-actions form { margin:0; }
.profile-mecachameleon-actions .button { width:100%; }
.mecachameleon-page-hero { align-items:end; }
.mecachameleon-total { display:grid; min-width:150px; padding:20px; color:#fff; background:#03506f; border-radius:18px; text-align:center; }
.mecachameleon-total strong { font-size:clamp(2.3rem,6vw,4.5rem); line-height:1; }
.mecachameleon-total span { font-size:.78rem; font-weight:900; text-transform:uppercase; }
.mecachameleon-claim-layout { display:grid; grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr); gap:22px; margin:24px 0; }
.mecachameleon-claim-card { align-content:center; }
.mecachameleon-claim-form { display:grid; gap:10px; margin:22px 0 12px; }
.mecachameleon-claim-form label { font-weight:900; }
.mecachameleon-claim-form input {
  width:100%; min-height:72px; padding:12px 18px; color:#03506f; background:#fff;
  border:2px solid #03506f; border-radius:14px; font:900 clamp(1.8rem,6vw,3.2rem)/1 monospace;
  letter-spacing:.3em; text-align:center; font-variant-numeric:tabular-nums;
}
.mecachameleon-claim-art { min-height:420px; overflow:hidden; margin:0; border:1px solid #03506f; border-radius:22px; }
.mecachameleon-claim-art img { width:100%; height:100%; object-fit:cover; }
.mecachameleon-found-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:22px 0 0; padding:0; list-style:none; }
.mecachameleon-found-grid li { display:flex; gap:12px; padding:16px; border:1px solid #03506f; border-radius:14px; }
.mecachameleon-found-grid li > span { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; color:#fff; background:#03506f; border-radius:50%; font-weight:950; }
.mecachameleon-found-grid div { display:grid; min-width:0; gap:3px; }
.mecachameleon-found-grid code { color:#03506f; font-size:1.05rem; font-weight:900; letter-spacing:.12em; }
.mecachameleon-found-grid small { overflow-wrap:anywhere; }
.leaderboard-switch { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }

.mecachameleon-config-card,.mecachameleon-generate-card { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr); gap:28px; margin-bottom:20px; }
.mecachameleon-config-card header h2,.mecachameleon-generate-card header h2 { margin:.2em 0; }
.mecachameleon-config-form,.mecachameleon-generate-form { align-content:start; margin:0; }
.mecachameleon-config-form select { width:100%; }
.mecachameleon-admin-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0; }
.mecachameleon-admin-summary article { display:grid; gap:5px; padding:18px; border:1px solid #03506f; border-radius:14px; }
.mecachameleon-admin-summary span { font-size:.75rem; font-weight:850; text-transform:uppercase; }
.mecachameleon-admin-summary strong { font-size:2rem; }
.mecachameleon-admin-table { min-width:960px; }
.mecachameleon-admin-table td { vertical-align:middle; white-space:normal; }
.mecachameleon-code { display:inline-block; padding:8px 10px; color:#fff; background:#03506f; border-radius:8px; font-size:1.05rem; font-weight:950; letter-spacing:.14em; }
.mecachameleon-row-form { display:grid; grid-template-columns:minmax(150px,1fr) auto; align-items:center; gap:8px; margin:0; }
.mecachameleon-row-form input[name="nombre"] { min-width:0; width:100%; }
.mecachameleon-row-form .check-label { white-space:nowrap; }
.mecachameleon-row-actions { display:flex; align-items:center; gap:8px; }
.mecachameleon-row-actions form { margin:0; }
.mecachameleon-found-at { display:block; margin-top:5px; }

.mecachameleon-admin-table { width:100%; min-width:780px; table-layout:fixed; }
.mecachameleon-admin-table th:nth-child(1){width:115px}.mecachameleon-admin-table th:nth-child(2){width:34%}.mecachameleon-admin-table th:nth-child(3){width:115px}.mecachameleon-admin-table th:nth-child(4){width:190px}.mecachameleon-admin-table th:nth-child(5){width:210px}
.mecachameleon-admin-table th,.mecachameleon-admin-table td { padding:11px 12px; }
.mecachameleon-row-actions { flex-wrap:nowrap; justify-content:flex-start; }
.mecachameleon-row-actions .admin-action { width:36px; min-width:36px; min-height:36px; height:36px; border-radius:8px; }
.mecachameleon-row-actions .admin-action > .admin-action-icon { width:17px; height:17px; }
.mecachameleon-row-actions button:disabled { opacity:.32; cursor:not-allowed; }
.mecachameleon-participant-list { display:grid; gap:8px; max-height:56vh; overflow:auto; margin:0; padding:2px; list-style:none; }
.mecachameleon-participant-list li { display:grid; gap:3px; padding:11px 12px; border:1px solid #c8d9e1; border-radius:10px; }
.mecachameleon-participant-list small { color:#315e70; }
@media(max-width:820px){.mecachameleon-admin-table{min-width:0;table-layout:auto}.mecachameleon-admin-table thead{display:none}.mecachameleon-admin-table tr{display:grid;grid-template-columns:1fr 1fr;margin:12px;border:1px solid #b8d0da;border-radius:12px;overflow:hidden}.mecachameleon-admin-table td{display:grid;gap:5px;border:0}.mecachameleon-admin-table td::before{content:attr(data-label);font-size:.68rem;font-weight:900;text-transform:uppercase}.mecachameleon-admin-table td:nth-child(2),.mecachameleon-admin-table td:nth-child(5){grid-column:1/-1}.mecachameleon-row-actions{justify-content:flex-end}}

@media (max-width:900px) {
  .mecachameleon-banner { grid-template-columns:1fr; }
  .mecachameleon-banner::after { inset:0; clip-path:none; background:linear-gradient(180deg,rgba(3,80,111,.92),rgba(39,20,72,.72)); }
  .mecachameleon-banner-copy { padding-bottom:20px; }
  .mecachameleon-banner-visual { padding-top:8px; }
  .profile-mecachameleon-card { grid-template-columns:1fr; }
  .mecachameleon-claim-layout,.mecachameleon-config-card,.mecachameleon-generate-card { grid-template-columns:1fr; }
  .mecachameleon-claim-art { min-height:300px; }
  .mecachameleon-found-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mecachameleon-admin-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .mecachameleon-banner-section { padding:28px 0; }
  .mecachameleon-banner { min-height:0; border-radius:18px; }
  .mecachameleon-banner-copy { width:100%; padding:28px 22px 18px; }
  .mecachameleon-banner-copy h2 { font-size:clamp(1.75rem,7.8vw,2.4rem); }
  .mecachameleon-banner-actions,.mecachameleon-banner-actions form,.mecachameleon-banner-actions .button { width:100%; }
  .mecachameleon-banner-visual { min-height:220px; padding:10px 18px 26px; }
  .profile-mecachameleon-content { grid-template-columns:1fr; }
  .profile-mecachameleon-claim-form > div { grid-template-columns:1fr; }
  .profile-mecachameleon-card,.mecachameleon-access-card,.mecachameleon-page-hero { align-items:stretch; flex-direction:column; }
  .profile-mecachameleon-card .button,.mecachameleon-access-card .button { width:100%; }
  .mecachameleon-total { width:100%; }
  .mecachameleon-found-grid { grid-template-columns:1fr; }
  .leaderboard-switch { display:grid; grid-template-columns:1fr; }
  .leaderboard-switch .button { width:100%; }
  .mecachameleon-admin-summary { grid-template-columns:1fr 1fr; }
}

/* Programa: selector de días reconocible y encabezado unido a sus actividades. */
.day-picker {
  display:block;
  padding:12px 0;
  background:rgba(255,255,255,.97);
  border-top:1px solid rgba(3,80,111,.12);
  border-bottom:1px solid rgba(3,80,111,.18);
  box-shadow:0 10px 24px rgba(3,80,111,.08);
}
.day-picker-inner {
  width:min(calc(100% - 40px),980px);
  min-height:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.day-picker a {
  min-width:0;
  min-height:66px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  padding:10px 42px 10px 16px;
  color:#03506f;
  background:#fff;
  border:1px solid rgba(3,80,111,.35);
  border-radius:14px;
  box-shadow:0 3px 10px rgba(3,80,111,.06);
  text-transform:none;
  transition:transform 180ms ease,box-shadow 180ms ease,background 180ms ease,color 180ms ease;
}
.day-picker a + a { border-left:1px solid rgba(3,80,111,.35); }
.day-picker a::after {
  content:"\2193";
  inset:50% 14px auto auto;
  width:21px;
  height:21px;
  display:grid;
  place-items:center;
  color:#fff;
  background:#03506f;
  border-radius:50%;
  font-size:.68rem;
  transform:translateY(-50%);
}

/* Carrusel editorial: siete anuncios, un único panel visible y transición ligera. */
.announcement-carousel-section { padding:clamp(36px,6vw,76px) 0; background:#fff; }
.announcement-carousel { position:relative; }
.announcement-slides { min-height:clamp(390px,37vw,520px); }
.announcement-slide { position:relative; display:grid; grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr); align-items:center; min-height:clamp(390px,37vw,520px); overflow:hidden; color:#fff; border:1px solid #03506f; border-radius:28px; box-shadow:0 24px 60px rgba(3,80,111,.22); animation:announcement-in .32s ease both; }
.announcement-slide[hidden] { display:none; }
.announcement-slide::before { content:""; position:absolute; inset:0; z-index:0; opacity:.35; background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size:34px 34px; }
.announcement-copy { position:relative; z-index:1; box-sizing:border-box; min-width:0; max-width:760px; padding:clamp(30px,5vw,64px); }
.announcement-copy > i { display:grid; place-items:center; width:68px; height:68px; margin-bottom:18px; color:#071a31; background:#fff; border:4px solid rgba(255,255,255,.55); border-radius:18px; font-size:2rem; box-shadow:6px 6px 0 rgba(0,0,0,.25); }
.announcement-copy h2 { margin:.12em 0 .28em; color:#fff; font-size:clamp(2.1rem,4.4vw,4.4rem); line-height:.94; text-transform:uppercase; }
.announcement-copy > p:not(.section-kicker) { max-width:620px; margin:0 0 24px; font-size:clamp(1rem,1.8vw,1.18rem); line-height:1.55; }
.announcement-copy > .button { color:#07344f; background:#fff; border-color:#fff; }
.announcement-slide-meccha { background:linear-gradient(135deg,#7115b8 0%,#e40068 34%,#ff7a00 67%,#ffd600 100%); }
.announcement-slide-meccha::after { content:""; position:absolute; inset:0 45% 0 0; background:linear-gradient(135deg,rgba(3,80,111,.96),rgba(15,37,74,.88)); clip-path:polygon(0 0,88% 0,100% 100%,0 100%); }
.announcement-slide-meccha .announcement-copy,.announcement-slide-meccha .announcement-visual { z-index:1; }
.announcement-slide-meccha ul { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; padding:0; list-style:none; }
.announcement-slide-meccha li { padding:6px 11px; border:1px solid rgba(255,255,255,.72); border-radius:999px; font-size:.74rem; font-weight:900; text-transform:uppercase; }
.announcement-visual { position:relative; z-index:1; display:grid; place-items:center; align-self:stretch; min-width:0; margin:0; padding:clamp(18px,3vw,38px); }
.announcement-visual::before { content:""; position:absolute; inset:8% 6%; background:rgba(255,255,255,.24); border:1px solid rgba(255,255,255,.7); border-radius:24px; transform:rotate(2deg); }
.announcement-visual img { position:relative; z-index:1; display:block; width:100%; height:auto; max-height:390px; object-fit:cover; border:5px solid #fff; border-radius:20px; box-shadow:0 18px 45px rgba(34,10,42,.35); transform:rotate(-1.5deg); }
.announcement-slide-conference { background:linear-gradient(135deg,#192a56,#6c5ce7); }
.announcement-slide-articles { background:linear-gradient(135deg,#065f46,#10b981); }
.announcement-slide-tianguis { background:linear-gradient(135deg,#7c2d12,#f59e0b); }
.announcement-slide-indie { background:linear-gradient(135deg,#1e3a8a,#06b6d4); }
.announcement-slide-tournament { background:linear-gradient(135deg,#7f1d1d,#ef4444); }
.announcement-slide-enrolate { background:linear-gradient(135deg,#4c1d95,#db2777); }
.announcement-slide:not(.announcement-slide-meccha) { grid-template-columns:1fr; }
.announcement-slide:not(.announcement-slide-meccha) .announcement-copy { margin:auto; text-align:center; }
.announcement-slide:not(.announcement-slide-meccha) .announcement-copy > i { margin-inline:auto; }
.announcement-controls { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; max-width:420px; margin:14px auto 0; }
.announcement-controls > .admin-action { color:#03506f; background:#fff; border-color:#8eb4c3; font-size:1.5rem; }
.announcement-dots { display:flex; justify-content:center; gap:8px; }
.announcement-dots button { width:10px; height:10px; padding:0; border:1px solid #03506f; border-radius:50%; background:#fff; cursor:pointer; }
.announcement-dots button[aria-current="true"] { width:26px; border-radius:8px; background:#03506f; }
@keyframes announcement-in { from{opacity:0;transform:translateX(12px)} to{opacity:1;transform:none} }
@media(prefers-reduced-motion:reduce){.announcement-slide{animation:none}}
@media(max-width:900px){.announcement-slide{grid-template-columns:1fr}.announcement-slide-meccha::after{inset:0;clip-path:none;background:linear-gradient(180deg,rgba(3,80,111,.92),rgba(39,20,72,.72))}.announcement-slide-meccha .announcement-copy{padding-bottom:18px}.announcement-visual{padding-top:4px}}
@media(max-width:600px){.announcement-carousel-section{padding:26px 0}.announcement-slide{min-height:0;border-radius:18px}.announcement-slides{min-height:500px}.announcement-copy{padding:28px 22px 20px}.announcement-copy h2{font-size:clamp(1.75rem,8vw,2.5rem)}.announcement-slide-meccha .mecachameleon-banner-actions,.announcement-slide-meccha .mecachameleon-banner-actions form,.announcement-slide-meccha .button{width:100%}.announcement-visual{min-height:200px;padding:8px 18px 24px}.announcement-slide:not(.announcement-slide-meccha){min-height:500px}}
.day-picker a:is(:hover,:focus-visible) {
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(3,80,111,.14);
}
.day-picker a:focus-visible {
  outline:3px solid #03506f;
  outline-offset:2px;
}
.day-picker a.is-active {
  color:#fff;
  background:#03506f;
  border-color:#03506f;
}
.day-picker a.is-active::after { color:#03506f; background:#fff; }
.day-picker .day-picker-action {
  color:inherit;
  font-size:.56rem;
  font-weight:850;
  letter-spacing:.11em;
  line-height:1;
  opacity:.72;
  text-transform:uppercase;
}
.day-picker .day-picker-label {
  width:100%;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  color:inherit;
  font-size:.92rem;
  letter-spacing:.02em;
}
.day-picker .day-picker-label b { font-weight:950; text-transform:uppercase; }
.day-picker .day-picker-label strong {
  padding:0;
  color:inherit;
  background:transparent;
  font-size:.76rem;
  letter-spacing:.05em;
  white-space:nowrap;
}
.program-day-layout {
  display:block;
}
.program-day-heading {
  position:static;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"weekday date cue" "summary summary summary";
  align-items:center;
  gap:8px 16px;
  margin-bottom:26px;
  padding:18px 22px;
  color:#fff;
  background:#03506f;
  border:2px solid #03506f;
  border-radius:18px;
  box-shadow:0 10px 24px rgba(3,80,111,.12);
}
.program-day-heading > p:first-child {
  grid-area:weekday;
  margin:0;
  padding:7px 10px;
  color:#03506f;
  background:#fff;
  border-radius:8px;
  font-size:.72rem;
  line-height:1;
}
.program-day-heading h3 {
  grid-area:date;
  display:flex;
  align-items:baseline;
  gap:9px;
  margin:0;
  color:#fff;
  font-size:1rem;
  letter-spacing:0;
  line-height:1;
}
.program-day-heading h3 .program-day-number {
  display:inline;
  color:inherit;
  font-size:2.4rem;
  letter-spacing:-.04em;
}
.program-day-heading h3 .program-day-month {
  display:inline;
  color:inherit;
  font-size:1rem;
  letter-spacing:.02em;
}
.program-day-heading > p:last-of-type {
  grid-area:summary;
  margin:0;
  padding-top:10px;
  color:rgba(255,255,255,.88);
  border-top:1px solid rgba(255,255,255,.25);
  font-size:.82rem;
}
.program-day-cue {
  grid-area:cue;
  color:rgba(255,255,255,.82);
  font-size:.65rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media (max-width:640px) {
  .day-picker { padding:8px 0; }
  .day-picker-inner {
    width:min(calc(100% - 24px),980px);
    min-height:0;
    gap:7px;
  }
  .day-picker a {
    min-height:54px;
    gap:2px;
    padding:7px 24px 7px 9px;
    border-radius:10px;
  }
  .day-picker a::after {
    right:7px;
    width:19px;
    height:19px;
    font-size:.68rem;
  }
  .day-picker .day-picker-action { font-size:.45rem; letter-spacing:.05em; }
  .day-picker .day-picker-label { display:block; font-size:.68rem; }
  .day-picker .day-picker-label strong { display:block; margin-top:2px; font-size:.57rem; }
  .program-day-heading {
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:"weekday date" "summary summary";
    gap:8px 10px;
    margin-bottom:20px;
    padding:14px;
    border-radius:14px;
  }
  .program-day-heading h3 .program-day-number { font-size:2rem; }
  .program-day-heading h3 .program-day-month { font-size:.82rem; }
  .program-day-cue { display:none; }
}

/* Las tarjetas muestran sede y el intervalo completo sin comprimir el texto. */
.program-event-card .event-details {
  display:grid;
  grid-template-columns:repeat(2,max-content);
  justify-content:start;
  align-items:start;
}
.program-event-card .event-details .event-venue {
  grid-column:1 / -1;
  min-width:0;
}
.program-event-card .event-details .event-start {
  padding-left:0;
  border-left:0;
}
.program-event-card .event-details time { font-variant-numeric:tabular-nums; }

/* Academia: convocatoria y contenido institucional integrado desde el micrositio 2026. */
.academy-page {
  --academy-purple:#170426;
  --academy-cyan:#12c9dd;
  --academy-yellow:#ffcc47;
  background:#fff;
}
.academy-page section[id] { scroll-margin-top:150px; }
.academy-hero {
  position:relative;
  min-height:680px;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff;
  background:radial-gradient(circle at 78% 45%,rgba(18,201,221,.18),transparent 29%),linear-gradient(135deg,#170426 0%,#210638 100%);
}
.academy-hero::after {
  content:"";
  position:absolute;
  right:-120px;
  bottom:-210px;
  width:520px;
  height:520px;
  border:1px solid rgba(18,201,221,.28);
  border-radius:50%;
}
.academy-hero-layout {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  align-items:center;
  gap:56px;
  padding-block:78px;
}
.academy-hero-copy h1 {
  max-width:720px;
  margin-bottom:18px;
  color:#fff;
  font-size:clamp(3.3rem,7vw,6.8rem);
  line-height:.9;
  letter-spacing:-.065em;
}
.academy-hero-copy > p:not(.section-kicker) { max-width:690px; color:rgba(255,255,255,.88); }
.academy-hero-lead { margin-bottom:14px; color:var(--academy-yellow)!important; font-size:clamp(1.25rem,2.5vw,2rem); font-weight:850; line-height:1.2; }
.academy-language-row { display:flex; gap:12px; margin:28px 0; }
.academy-language-row span { display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border:1px solid rgba(255,255,255,.3); border-radius:999px; font-size:.82rem; font-weight:800; }
.academy-language-row img { width:26px; height:26px; object-fit:cover; border-radius:8px; }
.academy-hero .button-white { color:var(--academy-purple); background:#fff; border:2px solid #fff; }
.academy-hero .button-outline { color:#fff; background:transparent; border-color:#fff; }
.academy-hero .button-outline:hover,.academy-hero .button-outline:focus-visible { color:var(--academy-purple); background:#fff; }
.academy-hero-art { position:relative; min-height:500px; }
.academy-hero-art img { position:absolute; display:block; height:auto; object-fit:contain; filter:drop-shadow(0 22px 28px rgba(0,0,0,.28)); }
.academy-console { inset:0 0 auto auto; width:min(84%,430px); transform:rotate(8deg); }
.academy-cube { z-index:2; top:44px; right:84px; width:145px; }
.academy-book { z-index:3; bottom:4px; left:0; width:190px; transform:rotate(-4deg); }
.academy-wrench { z-index:3; right:-5px; bottom:10px; width:145px; transform:rotate(10deg); }
.academy-section-nav { position:sticky; top:78px; z-index:90; color:#fff; background:#03506f; box-shadow:0 8px 22px rgba(3,80,111,.18); }
.academy-section-nav .container { display:flex; justify-content:center; gap:6px; overflow-x:auto; scrollbar-width:none; }
.academy-section-nav a { flex:0 0 auto; padding:13px 16px; color:#fff; font-size:.8rem; font-weight:800; text-decoration:none; border-bottom:3px solid transparent; }
.academy-section-nav a:hover,.academy-section-nav a:focus-visible { border-color:var(--academy-yellow); }
.academy-intro,.academy-submission,.academy-committee,.academy-organization { padding:88px 0; }
.academy-intro-grid { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); gap:72px; align-items:start; }
.academy-page h2 { font-size:clamp(2rem,4vw,3.65rem); line-height:1.02; letter-spacing:-.045em; }
.academy-intro-grid p { font-size:1.08rem; }
.academy-call,.academy-activities { padding:88px 0; color:#fff; background:var(--academy-purple); }
.academy-heading-row { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.academy-heading-row > img { width:210px; height:150px; object-fit:contain; }
.academy-heading-row-compact > img { width:150px; height:120px; }
.academy-heading-row h2,.academy-activities h2 { margin-bottom:0; color:inherit; }
.academy-copy-panel { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:34px 0 52px; }
.academy-copy-panel p { margin:0; padding:22px; color:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.23); border-radius:18px; }
.academy-subtitle { margin-bottom:22px; color:var(--academy-yellow); font-size:1.6rem; }
.academy-topic-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px 24px; margin:0 0 46px; padding:0; list-style:none; }
.academy-topic-grid li { display:flex; align-items:flex-start; gap:10px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.academy-topic-grid i { margin-top:5px; color:var(--academy-cyan); }
.academy-modalities { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.academy-modalities article { padding:24px; color:var(--academy-purple); background:#fff; border-radius:18px; }
.academy-modalities span { display:inline-block; margin-bottom:16px; padding:5px 10px; color:#fff; background:#03506f; border-radius:999px; font-size:.72rem; font-weight:850; text-transform:uppercase; }
.academy-modalities h3 { margin-bottom:6px; font-size:1.25rem; }
.academy-modalities p { margin:0; }
.academy-submission-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr); gap:58px; align-items:start; }
.academy-requirements { display:grid; gap:12px; margin:28px 0; padding-left:22px; }
.academy-resource-actions { display:flex; flex-wrap:wrap; gap:12px; }
.academy-resource-actions .button { gap:9px; }
.academy-timeline { position:relative; overflow:hidden; padding:32px; color:#fff; background:linear-gradient(150deg,#03506f,#118fb0); border-radius:28px; box-shadow:var(--shadow-lg); }
.academy-timeline > img { position:absolute; right:-42px; top:-38px; width:150px; height:132px; object-fit:contain; opacity:.75; }
.academy-timeline h2 { position:relative; max-width:280px; margin-bottom:25px; color:#fff; font-size:2rem; }
.academy-timeline ol { position:relative; display:grid; gap:0; margin:0; padding:0; list-style:none; }
.academy-timeline li { position:relative; display:grid; gap:2px; padding:0 0 22px 27px; border-left:3px dotted var(--academy-yellow); }
.academy-timeline li:last-child { padding-bottom:0; }
.academy-timeline li::before { content:""; position:absolute; top:5px; left:-8px; width:13px; height:13px; background:var(--academy-yellow); border:2px solid #fff; border-radius:50%; }
.academy-timeline time { font-weight:900; }
.academy-timeline span { color:rgba(255,255,255,.85); }
.academy-timeline .is-past time { text-decoration:line-through; opacity:.75; }
.academy-timeline .is-past span { font-size:.82rem; opacity:.72; }
.academy-committee { background:#f3fbfd; }
.academy-people-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:32px; }
.academy-people-grid article { padding:20px; background:#fff; border:1px solid rgba(3,80,111,.2); border-radius:16px; box-shadow:0 8px 20px rgba(3,80,111,.06); }
.academy-people-grid h3 { margin-bottom:7px; font-size:1rem; line-height:1.25; }
.academy-people-grid p { margin-bottom:8px; font-size:.84rem; line-height:1.35; }
.academy-people-grid span { display:inline-block; padding:3px 8px; color:#fff; background:#03506f; border-radius:99px; font-size:.65rem; font-weight:850; text-transform:uppercase; }
.academy-activities { background:linear-gradient(155deg,#170426,#270841); }
.academy-activity-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-top:34px; }
.academy-activity-grid article { grid-column:span 2; display:flex; flex-direction:column; padding:24px; border:1px solid rgba(255,255,255,.24); border-radius:20px; background:rgba(255,255,255,.07); }
.academy-activity-grid article:nth-child(4) { grid-column:2 / span 2; }
.academy-activity-date { width:max-content; margin-bottom:17px; padding:5px 9px; color:var(--academy-purple); background:var(--academy-yellow); border-radius:7px; font-size:.7rem; font-weight:950; }
.academy-activity-grid h3 { margin-bottom:10px; color:#fff; font-size:1.25rem; }
.academy-activity-grid p { color:rgba(255,255,255,.82); }
.academy-activity-grid a { margin-top:auto; color:var(--academy-cyan); font-weight:850; text-decoration:none; }
.academy-organization-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:54px; align-items:start; }
.academy-organizer-list { columns:2; column-gap:32px; }
.academy-organizer-list p { break-inside:avoid; padding:0 0 13px; border-bottom:1px solid rgba(3,80,111,.16); }
.academy-organizer-list strong,.academy-organizer-list span { display:block; }
.academy-organizer-list strong { font-size:.9rem; }
.academy-organizer-list span { font-size:.78rem; }
.academy-contact-card { position:relative; margin-top:22px; padding:210px 30px 30px; color:#fff; background:#03506f; border-radius:26px; }
.academy-contact-card img { position:absolute; top:-70px; left:50%; width:260px; height:270px; object-fit:contain; transform:translateX(-50%); filter:drop-shadow(0 18px 18px rgba(0,0,0,.16)); }
.academy-contact-card h2 { color:#fff; font-size:2rem; }
.academy-contact-card p { color:rgba(255,255,255,.86); }
.academy-contact-card a { color:var(--academy-yellow); font-size:1.12rem; font-weight:900; }
.academy-archive { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:72px; padding-top:34px; border-top:2px solid #03506f; }
.academy-archive > div { min-height:188px; display:flex; flex-direction:column; padding:24px; background:#f3fbfd; border-radius:17px; }
.academy-archive h3 { margin-bottom:12px; }
.academy-archive p { display:flex; flex-wrap:wrap; gap:8px; margin:auto 0 0; }
.academy-archive-card-image { position:relative; overflow:hidden; padding-right:126px!important; }
.academy-archive-card-image > img { position:absolute; top:13px; right:10px; width:108px; height:108px; object-fit:contain; filter:drop-shadow(0 9px 10px rgba(3,80,111,.13)); }
.academy-archive a { padding:6px 12px; color:#fff; background:#03506f; border-radius:999px; font-size:.8rem; font-weight:850; text-decoration:none; }
.academy-archive a:hover,.academy-archive a:focus-visible { color:#03506f; background:#fff; outline:2px solid #03506f; }
.academy-nav-menu { min-width:245px; }
.mobile-menu-label { padding:10px 18px 4px; color:rgba(3,80,111,.68); font-size:.65rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }

.retro-games-showcase { color:#fff; background:linear-gradient(145deg,#160424 0%,#280842 100%); }
.retro-games-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.72fr); gap:44px; align-items:end; margin-bottom:34px; }
.retro-games-heading .section-kicker { color:#ffd43b; }
.retro-games-heading h2 { max-width:760px; margin-bottom:0; color:#fff; font-size:clamp(2.15rem,4vw,4rem); line-height:1; }
.retro-games-heading > p { max-width:480px; margin:0; color:rgba(255,255,255,.78); font-size:1.08rem; }
.retro-games-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.retro-game-card { overflow:hidden; margin:0; border:1px solid rgba(255,255,255,.2); border-radius:20px; background:rgba(255,255,255,.08); box-shadow:0 18px 36px rgba(0,0,0,.2); }
.retro-game-card img { display:block; width:100%; height:clamp(190px,20vw,250px); object-fit:contain; background:#0d0218; }
.retro-game-card figcaption { display:flex; flex-direction:column; gap:5px; min-height:92px; padding:18px 20px 20px; }
.retro-game-card figcaption span { color:#ffd43b; font-size:.7rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.retro-game-card figcaption strong { color:#fff; font-size:1.12rem; line-height:1.25; }

@media (max-width:1050px) {
  .academy-hero-layout { grid-template-columns:minmax(0,1fr) 350px; gap:24px; }
  .academy-copy-panel,.academy-people-grid,.academy-archive { grid-template-columns:repeat(2,1fr); }
  .academy-topic-grid { grid-template-columns:repeat(2,1fr); }
  .academy-activity-grid { grid-template-columns:repeat(2,1fr); }
  .academy-activity-grid article,.academy-activity-grid article:nth-child(4) { grid-column:auto; }
  .academy-activity-grid article:last-child { grid-column:1 / -1; }
  .retro-games-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .academy-page section[id] { scroll-margin-top:100px; }
  .academy-hero { min-height:0; }
  .academy-hero-layout { grid-template-columns:1fr; padding-block:58px 36px; }
  .academy-hero-copy h1 { font-size:clamp(3.1rem,17vw,5rem); }
  .academy-hero-art { min-height:330px; width:min(100%,430px); margin-inline:auto; }
  .academy-console { width:75%; }
  .academy-cube { top:35px; right:65px; width:105px; }
  .academy-book { width:140px; }
  .academy-wrench { width:105px; }
  .academy-section-nav { top:70px; }
  .academy-section-nav .container { justify-content:flex-start; width:100%; padding-inline:12px; }
  .academy-intro,.academy-submission,.academy-committee,.academy-organization,.academy-call,.academy-activities { padding:62px 0; }
  .academy-intro-grid,.academy-submission-grid,.academy-organization-layout { grid-template-columns:1fr; gap:36px; }
  .academy-heading-row { align-items:flex-start; }
  .academy-heading-row > img { width:130px; height:105px; }
  .academy-copy-panel,.academy-people-grid,.academy-topic-grid,.academy-modalities,.academy-activity-grid,.academy-archive { grid-template-columns:1fr; }
  .academy-activity-grid article:last-child { grid-column:auto; }
  .academy-organizer-list { columns:1; }
  .academy-contact-card { margin-top:72px; }
  .retro-games-heading { grid-template-columns:1fr; gap:15px; }
  .retro-games-heading > p { max-width:620px; }
}

@media (max-width:440px) {
  .academy-hero-layout { padding-top:44px; }
  .academy-hero-art { min-height:280px; }
  .academy-hero .hero-actions { display:grid; grid-template-columns:1fr; }
  .academy-hero .hero-actions .button { width:100%; justify-content:center; }
  .academy-heading-row > img { display:none; }
  .academy-resource-actions .button { width:100%; justify-content:center; }
  .academy-archive-card-image { min-height:210px!important; padding-right:24px!important; padding-top:116px!important; }
  .academy-archive-card-image > img { top:8px; right:50%; width:112px; height:104px; transform:translateX(50%); }
  .academy-timeline { padding:26px 22px; }
  .academy-language-row { flex-wrap:wrap; }
  .retro-games-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .academy-page * { scroll-behavior:auto; }
}
/* Perfil: resumen breve, selector de avatar y diálogos compactos. */
.profile-hero-actions { display:flex; align-items:center; gap:10px; }
.profile-avatar-picker { flex:0 0 auto; }
.profile-ranking-avatar-strip { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; margin:-8px 0 22px; padding:12px 16px; border:1px solid rgba(3,80,111,.35); border-radius:14px; background:#fff; box-shadow:0 8px 20px rgba(3,80,111,.08); }
.profile-ranking-avatar-strip div { display:grid; gap:3px; min-width:0; }
.profile-ranking-avatar-strip small { color:#315e70; }
.profile-ledger-card .transaction-list { max-height:none; }
.profile-ledger-all { max-height:min(62vh,640px); overflow:auto; padding-right:8px; }
.ranking-avatar-picker-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(118px,1fr)); gap:12px; max-height:min(54vh,520px); overflow:auto; padding:4px; }
.ranking-avatar-option { position:relative; display:grid; justify-items:center; gap:8px; min-width:0; padding:12px; border:2px solid #c8d9e1; border-radius:14px; text-align:center; cursor:pointer; }
.ranking-avatar-option input { position:absolute; opacity:0; }
.ranking-avatar-option:has(input:checked) { border-color:#ff9f1c; background:#fff6df; box-shadow:0 0 0 3px rgba(255,159,28,.22); }
.pixel-avatar-frame { display:grid; place-items:center; width:56px; height:56px; overflow:hidden; color:#fff; background:#173459; border:3px solid #f9c846; box-shadow:3px 3px 0 #071a31; font:900 1.4rem/1 monospace; }
.pixel-avatar-frame img { width:100%; height:100%; object-fit:cover; image-rendering:auto; }
.ranking-avatar-option .pixel-avatar-frame { width:88px; height:88px; }
.ranking-avatar-create { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(320px,1.35fr); gap:24px; align-items:start; }
.ranking-avatar-create form { display:grid; grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) auto auto; align-items:end; gap:10px; }
.ranking-avatar-create form > label:not(.check-label) { display:none; }
.ranking-avatar-create .check-label,
.ranking-avatar-admin-card .check-label { display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:8px; min-height:44px; }
.ranking-avatar-create .check-label input[type="checkbox"],
.ranking-avatar-admin-card .check-label input[type="checkbox"] { flex:0 0 20px; width:20px; height:20px; min-height:20px; margin:0; padding:0; }
.ranking-avatar-admin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:14px; padding:18px; }
.ranking-avatar-admin-card { display:grid; grid-template-columns:88px minmax(0,1fr); gap:14px; padding:14px; }
.ranking-avatar-admin-card > img { width:88px; height:88px; object-fit:cover; border:2px solid #03506f; border-radius:12px; }
.ranking-avatar-admin-card form { min-width:0; }
.ranking-avatar-admin-card footer { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.ranking-avatar-admin-card footer > span { margin-right:auto; }
.ranking-avatar-admin-card footer form { margin:0; }
.admin-action-add { color:#176b3a; background:#eefaf2; border-color:#87c89f; }
.admin-action-add:is(:hover,:focus-visible) { color:#fff; background:#176b3a; }

/* Ranking arcade inspirado en marcadores de pelea, sin sacrificar lectura ni responsive. */
.pixel-leaderboard-page { --pixel-ink:#071a31; --pixel-panel:#102f45; --pixel-green:#0b754d; --pixel-grid:#46c58b; --pixel-yellow:#ffd23f; --pixel-red:#ec4d56; --pixel-cyan:#56d7ff; background:#071a31; }
.pixel-leaderboard-page .site-header { background:#fff; }
.pixel-ranking-main { min-height:calc(100vh - 150px); padding:clamp(32px,5vw,72px) 0; color:#fff; background-color:var(--pixel-ink); background-image:linear-gradient(rgba(70,197,139,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(70,197,139,.09) 1px,transparent 1px),radial-gradient(circle at 50% 110%,rgba(0,255,154,.18),transparent 58%); background-size:32px 32px,32px 32px,100% 100%; }
.pixel-ranking-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px; margin-bottom:18px; }
.pixel-ranking-hero h1 { margin:.2em 0; color:#fff; font:950 clamp(2.1rem,6vw,5.2rem)/.94 'Arial Black',Impact,sans-serif; letter-spacing:-.055em; text-shadow:4px 4px 0 #0b754d; }
.pixel-ranking-hero p { margin:0; color:#b9e9dc; }
.pixel-eyebrow { color:var(--pixel-yellow)!important; font:900 .72rem/1.4 'Courier New',monospace; letter-spacing:.12em; }
.pixel-own-rank { display:grid; grid-template-columns:auto auto; align-items:center; min-width:220px; border:3px solid var(--pixel-yellow); background:#132f4d; box-shadow:7px 7px 0 #000; }
.pixel-own-rank span { grid-column:1/-1; padding:7px 10px; color:var(--pixel-ink); background:var(--pixel-yellow); font:900 .67rem/1 'Courier New',monospace; letter-spacing:.1em; }
.pixel-own-rank strong { padding:12px; color:#fff; font:950 2.2rem/1 'Arial Black',sans-serif; }
.pixel-own-rank b { padding-right:12px; color:var(--pixel-cyan); text-align:right; }
.pixel-ranking-tabs { display:flex; gap:8px; margin:0 0 22px; }
.pixel-ranking-tabs a { padding:11px 16px; color:#c7fff0; border:2px solid var(--pixel-grid); background:#102f45; font:900 .75rem/1 'Courier New',monospace; text-decoration:none; text-transform:uppercase; box-shadow:3px 3px 0 #000; }
.pixel-ranking-tabs a[aria-current="page"] { color:var(--pixel-ink); background:var(--pixel-yellow); border-color:#fff; }
.pixel-ranking-board { max-width:1050px; margin:auto; overflow:hidden; border:4px solid #ebfff9; background:linear-gradient(160deg,#063e2f,#0a6946 60%,#073829); box-shadow:12px 12px 0 #000,0 0 0 8px #153a52; }
.pixel-ranking-board > header,.pixel-ranking-board > footer { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:11px 18px; color:var(--pixel-yellow); background:#10263c; font:900 .7rem/1 'Courier New',monospace; letter-spacing:.11em; }
.pixel-ranking-board > header h2 { margin:0 18px; color:#fff; font:950 1.4rem/1 'Arial Black',sans-serif; }
.pixel-ranking-board > header span:last-child,.pixel-ranking-board > footer span:last-child { text-align:right; }
.pixel-ranking-board ol { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.pixel-ranking-row { display:grid; grid-template-columns:58px 72px minmax(0,1fr) auto; align-items:center; gap:14px; min-height:84px; padding:8px 20px; border-bottom:1px solid rgba(144,255,214,.25); background:rgba(0,0,0,.05); }
.pixel-ranking-row:nth-child(even) { background:rgba(0,0,0,.14); }
.pixel-ranking-row.is-current-user { background:rgba(255,210,63,.15); outline:2px solid var(--pixel-yellow); outline-offset:-2px; }
.pixel-rank-number { color:#fff; font:950 1.65rem/1 'Arial Black',sans-serif; text-shadow:3px 3px 0 #071a31; }
.rank-1 .pixel-rank-number { color:var(--pixel-yellow); }
.rank-2 .pixel-rank-number { color:#dbe8f0; }
.rank-3 .pixel-rank-number { color:#ff9a56; }
.pixel-player-name { overflow:hidden; color:#fff; font:950 clamp(1rem,2vw,1.45rem)/1.15 'Arial Black',sans-serif; text-overflow:ellipsis; text-transform:uppercase; }
.pixel-ranking-row > strong { display:grid; justify-items:end; color:var(--pixel-yellow); font:950 1.35rem/1 'Arial Black',sans-serif; }
.pixel-ranking-row > strong small { margin-top:4px; color:#b9e9dc; font:900 .55rem/1 'Courier New',monospace; }
.pixel-ranking-view-all { justify-self:center; color:var(--pixel-yellow); border-color:var(--pixel-yellow); background:transparent; }
.ranking-all-modal .admin-modal-dialog { max-width:760px; }
.pixel-ranking-full-list { display:grid; gap:6px; max-height:65vh; overflow:auto; margin:0; padding:4px; list-style:none; }
.pixel-ranking-full-list li { display:grid; grid-template-columns:48px 44px minmax(0,1fr) auto; align-items:center; gap:10px; padding:8px; border:1px solid #c8d9e1; border-radius:10px; }
.pixel-ranking-full-list li.is-current-user { background:#fff6df; border-color:#ff9f1c; }
.pixel-ranking-full-list .pixel-avatar-frame { width:44px; height:44px; border-width:2px; box-shadow:2px 2px 0 #071a31; font-size:1rem; }

@media(max-width:700px){.profile-hero-actions{width:100%;justify-content:flex-end}.profile-ranking-avatar-strip{grid-template-columns:auto minmax(0,1fr)}.profile-ranking-avatar-strip>button{grid-column:1/-1;width:100%}.ranking-avatar-create{grid-template-columns:1fr}.ranking-avatar-create form{grid-template-columns:1fr}.ranking-avatar-admin-card{grid-template-columns:72px minmax(0,1fr)}.ranking-avatar-admin-card>img{width:72px;height:72px}.pixel-ranking-hero{grid-template-columns:1fr}.pixel-own-rank{width:100%}.pixel-ranking-tabs{display:grid;grid-template-columns:1fr 1fr}.pixel-ranking-tabs a{text-align:center}.pixel-ranking-board{border-width:2px;box-shadow:5px 5px 0 #000,0 0 0 4px #153a52}.pixel-ranking-row{grid-template-columns:36px 52px minmax(0,1fr);gap:8px;min-height:66px;padding:7px 10px}.pixel-ranking-row .pixel-avatar-frame{width:52px;height:52px}.pixel-ranking-row>strong{grid-column:3;font-size:1rem}.pixel-player-name{align-self:end}.pixel-ranking-row>strong{align-self:start;justify-items:start}.pixel-ranking-board>header,.pixel-ranking-board>footer{padding:9px}.pixel-ranking-full-list li{grid-template-columns:38px 40px minmax(0,1fr)}.pixel-ranking-full-list li>strong{grid-column:3}}

.indie-moderation-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; margin-top:14px; }
.indie-moderation-actions .admin-action { flex:0 0 42px; }
.admin-action-approve { color:#176b3a; background:#eefaf2; border-color:#87c89f; }
.admin-action-approve:not(:disabled):is(:hover,:focus-visible) { color:#fff; background:#176b3a; }
.admin-action-reject { color:#8c2440; background:#fff0f3; border-color:#e8a3b4; }
.admin-action-reject:not(:disabled):is(:hover,:focus-visible) { color:#fff; background:#9c2444; }
.indie-moderation-actions .admin-action:disabled { opacity:.35; cursor:not-allowed; filter:grayscale(.8); }

/* Supplied artwork stays complete; CTA coordinates follow the image ratio. */
.announcement-slide.announcement-slide-art { display:block; min-height:0; background:#071a31; }
.announcement-slide.announcement-slide-art[hidden] { display:none; }
.announcement-slide-art::before { display:none; }
.announcement-artwork { position:relative; width:100%; }
.announcement-artwork > img { display:block; width:100%; height:auto; }
.announcement-art-button { position:absolute; left:var(--cta-x); top:var(--cta-y); width:var(--cta-w); height:var(--cta-h); border-radius:12px; color:#fff; outline-offset:5px; animation:banner-cta-glow 2.8s ease-in-out infinite; transition:background .2s,box-shadow .2s; }
.announcement-art-button:hover,.announcement-art-button:focus-visible { background:rgba(255,255,255,.16); outline:3px solid #fff; box-shadow:0 0 26px rgba(255,255,255,.85); }
.announcement-mobile-caption { display:none; }
.store-payment-options { min-width:0; padding:14px; border:1px solid #03506f; border-radius:12px; }
.store-payment-options legend { padding:0 6px; font-weight:700; }
.store-payment-options p,.store-alternative-prices p { font-size:.85rem; line-height:1.5; }
.store-payment-row { display:grid; grid-template-columns:minmax(75px,.7fr) minmax(0,1.5fr) auto; gap:10px; align-items:end; margin:0 0 12px; }
.store-payment-row label { min-width:0; font-size:.85rem; }
.store-payment-row input { box-sizing:border-box; display:block; width:100%; min-height:42px; padding:9px 10px; margin-top:5px; font:inherit; background:#fff; }
.store-payment-row > button { margin-bottom:4px; }
.store-alternative-prices { margin-top:12px; padding-top:10px; border-top:1px solid rgba(3,80,111,.2); }
.store-alternative-prices ul { padding-left:20px; overflow-wrap:anywhere; }
@keyframes banner-cta-glow { 0%,100% { box-shadow:0 0 0 1px rgba(255,255,255,.12); } 50% { box-shadow:0 0 20px 3px rgba(255,255,255,.45); } }
@media(max-width:600px) {
  .announcement-slides { min-height:0; }
  .announcement-slide.announcement-slide-art { min-height:0; }
  .announcement-mobile-caption { display:grid; gap:12px; padding:18px; color:#fff; }
  .announcement-mobile-caption h2 { margin:0; font-size:1.25rem; color:#fff; }
  .announcement-mobile-caption .button { background:#fff; color:#03506f; }
  .announcement-art-button { min-height:24px; border-radius:4px; }
}
@media(max-width:390px) { .store-payment-row { grid-template-columns:minmax(0,1fr) auto; } .store-payment-row label:first-child { grid-column:1/-1; } }
@media(prefers-reduced-motion:reduce) { .announcement-art-button { animation:none; transition:none; } }
.announcement-cta-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
/* One method per product, with a conditional custom label. */
.store-payment-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:14px; }
.store-payment-fields label { display:block; min-width:0; font-weight:600; }
.store-payment-fields input,.store-payment-fields select { box-sizing:border-box; display:block; width:100%; min-height:44px; padding:10px; margin-top:6px; font:inherit; background:#fff; }
.store-payment-fields [data-payment-name] { grid-column:1/-1; }
.store-payment-fields [hidden] { display:none; }
.store-payment-options [data-payment-once] { margin-top:14px; align-items:flex-start; }
.store-payment-options [data-payment-once][hidden] { display:none !important; }
.profile-identity-tools { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.profile-avatar-initial { display:grid; place-items:center; background:#03506f; color:#fff; font-size:2rem; }
.profile-inventory-dialog { position:fixed; box-sizing:border-box; width:min(640px,calc(100vw - 28px)); max-height:85dvh; overflow-y:auto; padding:26px; border:1px solid #03506f; border-radius:20px; color:#03506f; background:#fff; }
.profile-inventory-dialog::backdrop { background:rgba(3,80,111,.62); }
.profile-inventory-dialog h2 { margin:0; padding-right:20px; }
.profile-inventory-dialog > p { line-height:1.5; }
.profile-inventory-list { display:grid; gap:12px; padding:0; list-style:none; }
.profile-inventory-list li { display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid rgba(3,80,111,.2); }
.profile-inventory-list img,.inventory-item-placeholder { width:64px; height:64px; object-fit:contain; border-radius:10px; }
.inventory-item-placeholder { display:grid; place-items:center; font-size:2rem; }
.profile-inventory-list h3 { margin:0 0 6px; font-size:1rem; overflow-wrap:anywhere; }
.profile-inventory-list small { font-size:.78rem; overflow-wrap:anywhere; }
.inventory-result:not(:empty) { padding:12px; border:2px solid #03506f; border-radius:10px; font-weight:700; }
.inventory-enhanced { margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
.profile-inventory-fallback:not(.inventory-enhanced) .profile-inventory-dialog { display:block; position:static; width:100%; max-height:none; }
.profile-inventory-fallback:not(.inventory-enhanced) [data-inventory-close] { display:none; }
@media(max-width:600px) { .store-payment-fields { grid-template-columns:1fr; } .profile-identity-tools { flex-wrap:wrap; } .profile-inventory-dialog { padding:20px 16px; } .profile-inventory-list li { grid-template-columns:48px minmax(0,1fr) auto; gap:8px; } .profile-inventory-list img,.inventory-item-placeholder { width:48px; height:48px; } }
/* All seven banners share one 16:9 canvas without a footer strip. */
.announcement-slides { min-height:0; }
.announcement-slide.announcement-slide-art { display:block; min-height:0; border:0; aspect-ratio:16/9; }
.announcement-slide.announcement-slide-art[hidden] { display:none; }
.announcement-slide-meccha::after { display:none; }
.announcement-artwork { aspect-ratio:16/9; overflow:hidden; }
.announcement-artwork > img { width:100%; height:100%; object-fit:contain; }
.announcement-slide-meccha .announcement-mobile-caption { position:absolute; inset:auto 3% 4%; display:flex; justify-content:center; padding:0; background:transparent; }
.announcement-mobile-caption h2 { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.announcement-mobile-caption .mecachameleon-banner-actions { display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; gap:8px; margin:0; }
.announcement-mobile-caption .button { min-height:44px; background:#fff; color:#03506f; border:2px solid #fff; border-radius:4px; box-shadow:4px 4px 0 #572392; }
.announcement-mobile-caption .button:is(:hover,:focus-visible) { color:#03506f; background:#fff; outline:3px solid #ad7bff; outline-offset:3px; }
.announcement-mobile-caption .mecachameleon-cancel-button { width:44px; min-width:44px; padding:8px; }
.announcement-controls .announcement-dots button { position:relative; width:24px; height:24px; border:0; background:transparent; }
.announcement-controls .announcement-dots button::before { content:""; position:absolute; inset:8px; border:1px solid #03506f; border-radius:50%; }
.announcement-controls .announcement-dots button[aria-current="true"]::before { inset:8px 2px; border-radius:8px; background:#03506f; }
@media(max-width:600px) {
  .announcement-slide-meccha .announcement-mobile-caption { bottom:3%; }
  .announcement-slide-meccha .mecachameleon-banner-actions { width:auto; }
  .announcement-slide-meccha .mecachameleon-banner-actions form { width:auto; }
  .announcement-slide-meccha .mecachameleon-banner-actions .button { width:auto; min-height:32px; padding:6px 10px; font-size:.65rem; }
  .announcement-mobile-caption .mecachameleon-cancel-button { min-width:32px; }
}

/* Profile: Ocean and white, pixel details with readable everyday typography. */
.profile-retro-page { background-color:#fff; background-image:linear-gradient(rgba(3,80,111,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(3,80,111,.035) 1px,transparent 1px); background-size:24px 24px; }
.profile-retro-page .portal-main { padding-top:28px; }
.profile-retro-page .profile-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px; margin-bottom:26px; border:2px solid #03506f; border-radius:12px; color:#fff; background-color:#03506f; background-image:linear-gradient(90deg,transparent 49%,rgba(255,255,255,.045) 50%,transparent 51%); background-size:32px 32px; box-shadow:6px 6px 0 rgba(3,80,111,.18); }
.profile-retro-page .profile-hero-identity { gap:26px; flex:1; }
.profile-retro-page .profile-hero h1 { color:#fff; font-size:clamp(1.7rem,3.6vw,3rem); line-height:1.1; margin:8px 0 10px; overflow-wrap:anywhere; }
.profile-retro-page .profile-hero p { color:#fff; margin:0; }
.profile-retro-page .profile-hero .section-kicker { color:#fff; opacity:.85; }
.profile-player-email { font-size:.8rem; opacity:.8; overflow-wrap:anywhere; margin-top:8px!important; }
.profile-retro-page .profile-hero-actions { flex-shrink:0; align-self:flex-end; }
.profile-retro-page .profile-hero-actions .button { color:#fff; background:transparent; border-color:rgba(255,255,255,.6); font-size:.7rem; padding:11px 14px; }
.profile-retro-page .profile-hero-actions .button:hover { color:#03506f; background:#fff; }
.profile-retro-page .section-kicker,.profile-retro-page .profile-kpis > article > span { font-family:var(--ludicon-number-font), ui-monospace,Consolas,monospace; font-size:.7rem; font-weight:700; letter-spacing:.13em; }
.profile-avatar-control { display:block; position:relative; width:112px; height:112px; padding:0; border:3px solid #fff; border-radius:50%; overflow:hidden; background:#fff; cursor:pointer; flex-shrink:0; outline-offset:5px; box-shadow:0 0 0 5px rgba(255,255,255,.18); }
.profile-avatar-control .profile-avatar { display:block; width:100%; height:100%; margin:0; border:0; object-fit:cover; border-radius:50%; }
.profile-avatar-control .profile-avatar-initial { display:grid; place-items:center; background:#fff; color:#03506f; font-family:var(--ludicon-number-font), ui-monospace,monospace; font-weight:800; }
.profile-avatar-edit { display:grid; place-items:center; position:absolute; inset:0; background:rgba(3,80,111,.65); color:#fff; opacity:0; transition:opacity .18s; }
.profile-avatar-edit svg { width:28px; height:28px; }
.profile-avatar-control:hover .profile-avatar-edit,.profile-avatar-control:focus-visible .profile-avatar-edit { opacity:1; }
.profile-avatar-control:disabled { cursor:default; }
.profile-avatar-control:disabled .profile-avatar-edit { display:none; }
.profile-backpack { display:grid; justify-items:center; gap:5px; min-width:64px; padding:10px 6px 8px; border:2px solid #fff; border-radius:6px; color:#03506f; background:#fff; text-decoration:none; box-shadow:4px 4px 0 rgba(255,255,255,.25); transition:transform .16s; }
.profile-backpack img { display:block; width:44px; height:44px; image-rendering:pixelated; }
.profile-backpack span { font-family:var(--ludicon-number-font), ui-monospace,monospace; text-transform:uppercase; font-size:.58rem; font-weight:800; letter-spacing:.02em; }
.profile-backpack:hover,.profile-backpack:focus-visible { transform:translateY(-3px); }
.profile-retro-page .portal-card:not(.inventory-enhanced),.profile-retro-page .profile-kpis article { border:1px solid rgba(3,80,111,.5); border-radius:10px; box-shadow:4px 4px 0 rgba(3,80,111,.12); }
.profile-retro-page .profile-kpis { gap:18px; margin-bottom:24px; }
.profile-retro-page .profile-kpis article { position:relative; padding:20px; border-top:5px solid #03506f; }
.profile-retro-page .profile-kpis strong { font-family:var(--ludicon-number-font), ui-monospace,Consolas,monospace; font-size:2.25rem; line-height:1; margin:14px 0 10px; }
.profile-retro-page .profile-kpi-label { font-size:.9rem; }
.profile-retro-page .profile-kpis small { font-size:.8rem; line-height:1.5; }
.profile-retro-page .profile-grid { align-items:start; gap:22px; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
.profile-retro-page .profile-section-header h2,.profile-retro-page .profile-store-history h2 { font-size:1.3rem; }
.profile-retro-page .profile-section-header { gap:14px; }
.profile-retro-page .profile-section-actions { flex-wrap:wrap; }
.profile-retro-page .profile-section-actions .button { font-size:.68rem; }
.profile-retro-page .profile-ledger-card .transaction-list { margin-bottom:0; }
.profile-retro-page .transaction-amount { border-radius:4px; font-family:var(--ludicon-number-font), ui-monospace,Consolas,monospace; }
.profile-retro-page .admin-modal-dialog,.profile-retro-page .profile-inventory-dialog { border:2px solid #03506f; border-radius:12px; box-shadow:7px 7px 0 rgba(3,80,111,.2); }
.profile-retro-page .profile-ledger-all { max-height:60vh; }
@media(max-width:1000px) { .profile-retro-page .profile-hero { flex-wrap:wrap; }.profile-retro-page .profile-hero-actions { width:100%; justify-content:flex-end; }.profile-retro-page .profile-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .profile-retro-page .profile-hero { padding:22px 18px; gap:18px; }.profile-retro-page .profile-hero-identity { flex-direction:column; align-items:flex-start; gap:22px; }.profile-retro-page .profile-identity-tools { width:100%; justify-content:space-between; }.profile-retro-page .profile-hero-actions { justify-content:flex-start; }.profile-retro-page .profile-kpis { grid-template-columns:1fr; }.profile-retro-page .profile-kpi-action { width:auto; }.profile-retro-page .profile-section-header { flex-wrap:wrap; } }
@media(hover:none) { .profile-avatar-edit { inset:auto 0 0; height:32px; opacity:1; }.profile-avatar-edit svg { width:20px; height:20px; } }
@media(prefers-reduced-motion:reduce) { .profile-avatar-edit,.profile-backpack { transition:none; }.profile-backpack:hover { transform:none; } }
/* Shared users/Indie table geometry: identical cell padding for headings, filters, rows. */
@media (min-width:821px) {
  .admin-user-table thead .user-filter-row > th:nth-child(n),
  .admin-user-table thead .user-table-label-row > th:nth-child(n),
  .admin-user-table tbody tr > td:nth-child(n) { padding-left:7px; padding-right:7px; text-align:left; }
  .admin-user-table .user-filter-row :is(input,select) { width:100%; min-width:0; box-sizing:border-box; }
  .admin-user-table.admin-indie-table .admin-row-actions { flex-wrap:wrap; }
  .admin-user-table.admin-indie-table .admin-action.admin-action-icon { width:30px; min-width:30px; height:32px; min-height:32px; }
}
.admin-indie-table [hidden] { display:none!important; }
.admin-indie-table .admin-row-actions form { margin:0; }
#indie-rejection { width:min(520px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; }
#indie-rejection textarea { width:100%; min-height:110px; margin:10px 0; }
.event-author-list { margin:4px 0 0; padding:0; list-style:none; overflow:visible; }
.event-author-list li { display:block; white-space:normal; overflow-wrap:anywhere; margin:0 0 3px; }
#event-detail-authors { white-space:pre-line; overflow-wrap:anywhere; }

.store-payment-options [data-payment-optional-once][hidden]{display:none !important}
