/* Shared layout corrections; game palettes and functional fields stay local. */
/* Native hash arrival is instant; deliberate in-page navigation may scroll smoothly. */
html { scroll-behavior:auto; }
.nes-home-page > main,.pac-store-page > main { animation:none; }
html.has-program { scroll-padding-top:var(--site-header-height,78px); }
.site-header .container.navbar { width:min(calc(100% - 32px),1800px); gap:16px; flex-wrap:wrap; }
.site-header .main-nav { flex:1 0 auto; gap:18px; }
.site-header .brand,.site-header .nav-wallet,.site-header .nav-session { flex-shrink:0; }
.site-header .language-switch { position:static; margin:0; }
.site-header .language-switch button { min-height:36px; }
.site-header .mobile-navigation { order:10; flex-shrink:0; }
.site-header .mobile-navigation > div { left:auto; right:0; transform-origin:top right; }
@media(max-width:1650px) {
  .site-header:has(.nav-wallet) .public-navigation { display:none; }
  .site-header:has(.nav-wallet) .mobile-navigation { display:block; margin-left:auto; }
}
@media(max-width:1320px) {
  .site-header .main-nav { display:none; }
  .site-header .mobile-navigation { display:block; margin-left:auto; }
}
@media(max-width:640px) {
  .site-header .container.navbar { display:flex; flex-wrap:wrap; gap:8px; padding-block:8px; }
  .site-header .brand { flex:1; min-width:130px; }
  .site-header .header-brand-logo { width:150px; max-width:100%; }
  .site-header .nav-session { display:none; }
  .site-header .nav-wallet { order:5; margin:0 0 0 auto; }
  .site-header .language-switch { gap:2px; padding:0; }
  .site-header .language-switch button { min-width:30px; }
}
.profile-purchases-grid > .portal-card { margin-block:0; align-self:stretch; }
.profile-purchases-grid > .portal-card > header { margin-top:0; min-height:78px; }
.profile-purchases-grid > .portal-card h2 { margin-top:8px; }
.teacher-challenge-card .challenge-progress-columns { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:start; gap:16px; }
.teacher-challenge-card,.profile-challenges .teacher-challenge-card { grid-template-columns:88px minmax(0,1fr); }
.teacher-challenge-card .teacher-challenge-actions { grid-column:auto; display:flex; flex-wrap:wrap; align-items:end; gap:8px; max-width:280px; }
.teacher-challenge-card .teacher-challenge-actions > p,.teacher-challenge-card .teacher-challenge-actions > .status-pill { flex-basis:100%; margin:0; }
.teacher-challenge-card .teacher-challenge-actions form { display:grid; grid-template-columns:88px 44px; align-items:end; gap:4px; width:auto; max-width:none; }
.teacher-challenge-card .teacher-challenge-actions label { grid-column:1/-1; }
.teacher-challenge-card .teacher-challenge-actions input[type=number] { width:88px; min-height:44px; padding:6px; }
.teacher-challenge-card .teacher-challenge-actions button { width:44px; min-width:44px; height:44px; padding:6px; font:700 24px/1 sans-serif; }
.teacher-challenge-card .teacher-challenge-actions form:not(:has(input[type=number])) { grid-template-columns:44px; }
@media(max-width:1100px) { .teacher-challenge-card .challenge-progress-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }.teacher-challenge-card .teacher-challenge-actions { grid-column:1/-1; max-width:none; } }
@media(max-width:560px) { .teacher-challenge-card,.profile-challenges .teacher-challenge-card { grid-template-columns:1fr; }.teacher-challenge-card .challenge-progress-columns { grid-template-columns:1fr; } }
.admin-page .dashboard-without-users { align-self:start; min-height:0; }
.admin-page .dashboard-role-grid form { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.admin-page .dashboard-role-grid form button.admin-action-icon { width:36px; min-width:36px; height:36px; min-height:36px; padding:7px; flex:0 0 36px; }
.admin-page :is(.admin-event-form,.auth-form,.operation-form) .form-field { min-width:0; align-self:start; }
.admin-page .form-field > label { display:block; margin-bottom:6px; }
.admin-page :is(.form-field,.operation-form label) > :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { box-sizing:border-box; width:100%; min-width:0; }
.admin-page textarea { display:block; width:100%; min-height:96px; resize:vertical; padding:10px 12px; font:inherit; }
.admin-page .admin-event-form { align-items:start; }
.admin-page .admin-modal .admin-event-form .event-form-enrollment { grid-column:span 8; }
.admin-page .admin-modal .admin-event-form .event-form-reward { grid-column:span 2; }
.admin-page .admin-modal .admin-event-form .form-field > label { min-height:2.6em; line-height:1.3; margin:0 0 6px; }
.admin-page input[type=number] { max-width:150px; }
.admin-page .form-field:has(input[type=number]) { max-width:200px; }
.admin-page .store-payment-fields { grid-template-columns:minmax(100px,150px) minmax(0,1fr); align-items:start; }
.admin-page .store-payment-fields > label { display:grid; gap:6px; align-content:start; }
.admin-page .store-payment-fields [data-payment-name] { grid-column:1/-1; }
.admin-page .store-payment-fields [hidden] { display:none; }
.admin-page :is(.dashboard-bars,.dashboard-day-bars) > li { --block-color:#397d93; }
.admin-page :is(.dashboard-bars,.dashboard-day-bars) > li:nth-child(5n+2) { --block-color:#986d31; }
.admin-page :is(.dashboard-bars,.dashboard-day-bars) > li:nth-child(5n+3) { --block-color:#805892; }
.admin-page :is(.dashboard-bars,.dashboard-day-bars) > li:nth-child(5n+4) { --block-color:#aa5059; }
.admin-page :is(.dashboard-bars,.dashboard-day-bars) > li:nth-child(5n) { --block-color:#65832c; }
body.admin-page :is(.dashboard-bar-track,.dashboard-day-track) > span { background-color:var(--block-color); }
.admin-page .participation-table { width:100%; table-layout:fixed; min-width:700px; }
.admin-page .participation-table th:first-child { width:40%; }
.admin-page .participation-table th:not(:first-child) { width:12%; }
.admin-page .participation-table :is(th,td) { padding:10px 8px; overflow-wrap:anywhere; }
.admin-page .participation-table thead :is(input,select) { display:block; width:100%; min-width:0; margin-top:8px; font:inherit; font-size:12px; padding:6px; }
.participation-pages { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:16px; }
.participation-pages button { min-width:36px; min-height:36px; cursor:pointer; background:#eff5d8; color:#233d37; border:2px solid #8b9f89; }
.participation-pages button[aria-current=page] { background:#28483c; color:#fff; }
.admin-page .store-detail-numbers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.admin-page .store-detail-numbers .form-field { max-width:none; }
.admin-page .form-field label > :is(input,textarea,select) { display:block; margin-top:6px; }
.admin-page .shop-review-dialog { position:fixed; inset:0; margin:auto; padding:24px; width:min(520px,calc(100% - 32px)); max-height:85dvh; overflow:auto; color:#233d37; background:#f6f8e9; border:3px solid #28483c; }
.shop-review-dialog::backdrop { background:#071d25b8; }
.shop-review-dialog header { display:flex; justify-content:space-between; gap:16px; align-items:start; }
.shop-review-dialog button[data-close] { width:44px; height:44px; font-size:24px; flex-shrink:0; cursor:pointer; }
.shop-review-dialog [role=alert] { color:#8a2337; }
.admin-row-actions [data-shop-review] { display:flex; flex-wrap:wrap; gap:6px; margin:0; }
.admin-row-actions [aria-disabled=true] { opacity:.4; cursor:not-allowed; }
@media(max-width:860px) {
  .admin-page .admin-modal .admin-event-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-page .admin-modal .admin-event-form .form-field { grid-column:1/-1; }
  .admin-page .admin-modal .admin-event-form .event-form-enrollment { grid-column:1/-1; }
  .admin-page .admin-modal .admin-event-form .event-form-reward { grid-column:span 1; }
  .admin-page .store-payment-fields { grid-template-columns:1fr; }
}

.participation-table [data-participation-sort] { display:block; width:36px; height:36px; margin-top:6px; border:1px solid #82977a; background:#eff5d8; color:#233d37; cursor:pointer; }

.admin-page .admin-modal .admin-event-form .form-field > .field-label-row { min-height:2.6em; line-height:1.3; margin:0 0 6px; align-items:start; }
.admin-page .admin-modal .admin-event-form .field-label-row label { margin:0; }
