/* Presentation only. Mount .campaign-league and load after league-hall.css.
   panel-blank.png is the shared 478 x 771 approved wood/bronze/paper skin.
   Preserve its complete composition, including the ink-wash footer. */
#league-hall-panel.campaign-league {
  --league-ink: #442b1c;
  --league-muted: #71563d;
  --league-lacquer: #943a2d;
  --league-line: #b99d74;
  --league-blue: #265d74;
  --campaign-font: 'Library WenKai', KaiTi, 'STKaiti', serif;
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: max(16px, env(safe-area-inset-top)) 14px max(16px, env(safe-area-inset-bottom));
  background: rgb(28 23 17 / .74);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: var(--league-ink);
}

#league-hall-panel.campaign-league.is-hidden,
#league-hall-panel.campaign-league .is-hidden {
  display: none;
}

#league-hall-panel.campaign-league .league-sheet {
  display: flex;
  flex-direction: column;
  width: min(100%, 430px);
  height: min(720px, calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  aspect-ratio: auto;
  max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  min-height: 0;
  padding: 8px 4px 28px;
  border: 20px solid transparent;
  border-image: url('https://sgcdn.gxqlove.top/zhimajiangjun/static-20261103-9e2f00eadfcd/assets/campaign-ui-v3/panel-blank.png') 65 60 65 60 / 20px / 0 stretch;
  border-radius: 0;
  background: url('https://sgcdn.gxqlove.top/zhimajiangjun/static-20261103-9e2f00eadfcd/assets/campaign-ui-v3/panel-blank.png') center / 190% auto no-repeat;
  box-shadow: 0 12px 25px rgb(18 13 8 / .42);
  overflow: hidden;
  color: var(--league-ink);
  font: 16px/1.65 var(--campaign-font);
}
/* One responsive shell across every nested view; only the body scrolls. */

#league-hall-panel.campaign-league .league-header {
  --league-header-inset: 0px;
  flex: 0 0 auto;
  height: auto;
  min-height: 68px;
  padding: 8px 52px 12px;
  border-bottom: 1px solid var(--league-line);
  background: transparent;
}

#league-hall-panel.campaign-league .league-header h2 {
  margin: 0;
  color: var(--league-ink);
  font: 700 25px/1.4 var(--campaign-font);
  letter-spacing: .02em;
  text-align: center;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

#league-hall-panel.campaign-league .league-header-leading {
  left: 0;
  width: 44px;
  height: 44px;
}

#league-hall-panel.campaign-league .league-header-back {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #98754b;
  border-radius: 4px;
  background: rgb(255 248 224 / .3);
  color: var(--league-ink);
  box-shadow: inset 0 1px rgb(255 248 224 / .6);
  font: 700 14px/1.3 var(--campaign-font);
  cursor: pointer;
  touch-action: manipulation;
}

#league-hall-panel.campaign-league #league-close {
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: url('https://sgcdn.gxqlove.top/zhimajiangjun/static-20261103-9e2f00eadfcd/assets/home-dialog-art-v2/close.png') center / 40px 40px no-repeat;
  box-shadow: none;
  color: transparent;
  font-size: 0;
  touch-action: manipulation;
}

#league-hall-panel.campaign-league .league-icon {
  width: 36px;
  height: 36px;
  background-image: url('https://sgcdn.gxqlove.top/zhimajiangjun/static-20261103-9e2f00eadfcd/assets/league-ui-v1/icons-atlas.png');
  background-size: 200% 200%;
  background-repeat: no-repeat;
}

#league-hall-panel.campaign-league .league-icon--duel { background-position: 0 0; }
#league-hall-panel.campaign-league .league-icon--mine { background-position: 100% 0; }
#league-hall-panel.campaign-league .league-icon--public { background-position: 0 100%; }
#league-hall-panel.campaign-league .league-icon--stipend { background-position: 100% 100%; }

#league-hall-panel.campaign-league .league-hall-chrome {
  flex: 0 0 auto;
  padding: 0 4px;
  border-bottom: 1px solid var(--league-line);
  background: transparent;
}

#league-hall-panel.campaign-league .league-wallet {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 8px;
  min-height: 60px;
  padding: 8px 0;
  color: var(--league-muted);
  font-size: 14px;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}

#league-hall-panel.campaign-league .league-wallet > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

#league-hall-panel.campaign-league .league-wallet b {
  padding-left: 4px;
  color: var(--league-ink);
  font-size: 20px;
}

#league-hall-panel.campaign-league .league-wallet .league-button {
  min-height: 44px;
  margin: 0;
  padding: 8px;
  font-size: 14px;
  white-space: nowrap;
}

#league-hall-panel.campaign-league .league-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
}

#league-hall-panel.campaign-league .league-tabs button {
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  min-height: 60px;
  height: auto;
  padding: 6px 2px 8px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--league-muted);
  font: 700 15px/1.4 var(--campaign-font);
  touch-action: manipulation;
}

#league-hall-panel.campaign-league .league-tabs .league-icon {
  width: 28px;
  height: 28px;
}

#league-hall-panel.campaign-league .league-tabs button[aria-pressed='true'] {
  border-bottom-color: var(--league-lacquer);
  background: rgb(255 248 224 / .24);
  color: var(--league-lacquer);
}

/* Specificity deliberately overrides the existing data-single-page clip.
   Header/chrome stay outside this scroll area; no content is squeezed to fit. */
#league-hall-panel.campaign-league .league-body {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  padding: 16px 4px 20px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: #98754b rgb(237 224 194 / .35);
  scrollbar-width: thin;
  scroll-padding-block: 12px;
}

#league-hall-panel.campaign-league .league-body > * { flex-shrink: 0; }
#league-hall-panel.campaign-league .league-body :is(h3, p, strong, li) { overflow-wrap: anywhere; }
#league-hall-panel.campaign-league .league-body h3 {
  margin: 0 0 8px;
  color: var(--league-ink);
  font: 700 20px/1.4 var(--campaign-font);
  text-wrap: balance;
}

#league-hall-panel.campaign-league .league-body p { margin: 0 0 12px; }
#league-hall-panel.campaign-league .league-body small { font-size: 13px; }
#league-hall-panel.campaign-league .league-intro {
  margin: 0 0 12px;
  color: var(--league-muted);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

#league-hall-panel.campaign-league .league-button {
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #98754b;
  border-radius: 4px;
  background: rgb(255 248 224 / .3);
  color: var(--league-ink);
  box-shadow: inset 0 1px rgb(255 248 224 / .6);
  font: 700 16px/1.4 var(--campaign-font);
  overflow-wrap: anywhere;
  text-align: center;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Only the red artwork is icon-free. Neutral controls are paper treatments,
   never the advertisement/share PNGs with their baked-in action icons. */
#league-hall-panel.campaign-league .league-button.league-primary {
  border-color: transparent;
  background: url('https://sgcdn.gxqlove.top/zhimajiangjun/static-20261103-9e2f00eadfcd/assets/home-dialog-art-v2/button-red.png') center / 100% 100% no-repeat;
  color: #fff1ce;
  box-shadow: none;
}

#league-hall-panel.campaign-league .league-button:disabled {
  opacity: .72;
  filter: grayscale(1);
  color: var(--league-muted);
  background: rgb(225 213 189 / .65);
  border-color: #a39479;
  box-shadow: none;
  cursor: not-allowed;
}

#league-hall-panel.campaign-league .league-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

#league-hall-panel.campaign-league .league-actions > .league-button {
  flex: 1 1 120px;
  min-width: 0;
}

#league-hall-panel.campaign-league .league-feature {
  padding: 16px 0;
  border-bottom: 1px solid var(--league-line);
}

#league-hall-panel.campaign-league .league-feature:first-child { padding-top: 0; }
#league-hall-panel.campaign-league .league-feature:last-child { border-bottom: 0; }
#league-hall-panel.campaign-league .league-feature > .league-button + .league-button { margin-left: 0; }

/* hall: one invitation/event focus, followed by a quieter record rail. */
#league-hall-panel.campaign-league[data-view='hall'] .league-hero {
  gap: 8px;
  padding: 8px 0 24px;
  border: 0;
}

#league-hall-panel.campaign-league[data-view='hall'] .league-hero-art {
  width: 80px;
  height: 80px;
  margin: 0 auto 4px;
}

#league-hall-panel.campaign-league[data-view='hall'] .league-hero h3 { margin: 0; font-size: 22px; }
#league-hall-panel.campaign-league[data-view='hall'] .league-hero p {
  margin: 0;
  color: var(--league-muted);
  font-size: 16px;
  line-height: 1.65;
}

#league-hall-panel.campaign-league[data-view='hall'] .league-hero > :is(.league-button, .league-actions) {
  width: 100%;
  margin-top: 12px;
}

#league-hall-panel.campaign-league .league-record {
  padding: 16px 0 0;
  border-top: 1px solid var(--league-line);
  border-bottom: 0;
}

#league-hall-panel.campaign-league .league-record h3 { font-size: 18px; }
#league-hall-panel.campaign-league .league-record p {
  margin: 0;
  color: var(--league-muted);
  font-size: 14px;
  line-height: 1.8;
  font-variant-numeric: tabular-nums;
}

/* stipend: current tier has a text label and a subtle paper emphasis. */
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row {
  grid-template-columns: minmax(0, 1fr) minmax(84px, 112px);
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--league-line);
}

#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row.is-current {
  background: rgb(255 248 224 / .24);
}

#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 { margin: 0 0 4px; font-size: 20px; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 small {
  display: block;
  margin: 4px 0 0;
  color: var(--league-lacquer);
  font-size: 13px;
}

#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row p {
  margin: 0;
  color: var(--league-muted);
  font-size: 14px;
  line-height: 1.65;
}

#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row .league-button {
  min-width: 0;
  min-height: 48px;
  padding: 8px;
  font-size: 15px;
}

#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend { padding: 20px 0 16px; border: 0; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend h3 { margin: 0 0 8px; font-size: 20px; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend p { margin: 0 0 12px; font-size: 14px; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend .league-button { width: 100%; }
#league-hall-panel.campaign-league .league-stipend-footer {
  margin-top: 0;
  padding-top: 12px;
  border-top: 1px solid var(--league-line);
  color: var(--league-muted);
  font-size: 14px;
}

/* duel/create: retain native text input and select, including keyboard affordances. */
#league-hall-panel.campaign-league[data-view='duel'] .league-feature { padding: 16px 0; }
#league-hall-panel.campaign-league[data-view='duel'] .league-feature h3 { margin-bottom: 8px; font-size: 20px; }
#league-hall-panel.campaign-league[data-view='duel'] .league-feature p { margin: 0 0 12px; font-size: 16px; line-height: 1.65; }
#league-hall-panel.campaign-league[data-view='duel'] .league-actions { margin-top: 12px; }
#league-hall-panel.campaign-league .league-field { gap: 8px; margin: 8px 0 20px; }
#league-hall-panel.campaign-league :is(.league-field input, .league-field select, .league-join-entry input) {
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #98754b;
  border-radius: 4px;
  background: rgb(255 248 224 / .42);
  color: var(--league-ink);
  caret-color: var(--league-lacquer);
  font: 16px/1.4 var(--campaign-font);
}

#league-hall-panel.campaign-league input::placeholder { color: var(--league-muted); opacity: 1; }
#league-hall-panel.campaign-league .league-join-entry {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin: 8px 0 0;
}

#league-hall-panel.campaign-league .league-rules { margin: 0 0 20px; padding-left: 20px; color: var(--league-muted); }
#league-hall-panel.campaign-league .league-rules li { margin: 0 0 12px; padding-left: 4px; }

/* room: opposing seats use the existing two historical faction colors. */
#league-hall-panel.campaign-league[data-view='room'] .league-room-players {
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
  gap: 8px;
  padding: 24px 0;
}

#league-hall-panel.campaign-league .league-room-players section {
  min-width: 0;
  gap: 12px;
  padding: 20px 8px;
  border: 1px solid var(--league-line);
  border-radius: 4px;
  background: rgb(255 248 224 / .24);
}

#league-hall-panel.campaign-league .league-room-players :is(span, small) { color: var(--league-muted); }
#league-hall-panel.campaign-league .league-versus { color: var(--league-lacquer); font: 700 20px/1.4 var(--campaign-font); }
#league-hall-panel.campaign-league .league-room-id { color: var(--league-muted); }

/* records/event: real empty records and preview participants stay visible. */
#league-hall-panel.campaign-league[data-view='records'] .league-feature { padding-bottom: 24px; }
#league-hall-panel.campaign-league[data-view='records'] .league-feature p { font-variant-numeric: tabular-nums; }
#league-hall-panel.campaign-league[data-view='records'] .league-body > .league-button { width: 100%; }
#league-hall-panel.campaign-league .league-event-title { margin: 0 0 20px; }
#league-hall-panel.campaign-league .league-event-title p { margin: 4px 0; color: var(--league-muted); }
#league-hall-panel.campaign-league .league-members { gap: 0 16px; }
#league-hall-panel.campaign-league .league-members li { min-width: 0; padding: 12px 0; border-color: var(--league-line); }
#league-hall-panel.campaign-league .league-members li small { display: block; margin: 4px 0 0; color: var(--league-lacquer); }
#league-hall-panel.campaign-league[data-view='event'] .league-actions { margin-top: 24px; }

/* bracket: horizontal rounds inside the vertical body scroll area. Action rail
   sits ABOVE the sheet's reserved ink-wash footer, never over the artwork. */
#league-hall-panel.campaign-league .league-round-nav { gap: 8px; margin-bottom: 16px; }
#league-hall-panel.campaign-league .league-round-nav .league-button { flex: 0 1 auto; padding: 8px 12px; }
#league-hall-panel.campaign-league .league-bracket {
  min-width: 0;
  gap: 16px;
  padding: 4px 4px 16px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-color: #98754b rgb(237 224 194 / .35);
  scrollbar-width: thin;
}

#league-hall-panel.campaign-league .league-round { width: 144px; flex: 0 0 144px; }
#league-hall-panel.campaign-league .league-round h3 { font-size: 18px; }
#league-hall-panel.campaign-league .league-round.is-current > h3 { color: var(--league-lacquer); }
#league-hall-panel.campaign-league .league-pair {
  margin: 12px 0;
  border-color: var(--league-line);
  border-radius: 4px;
  background: rgb(255 248 224 / .24);
}

#league-hall-panel.campaign-league .league-pair span { padding: 8px 12px; overflow-wrap: anywhere; }
#league-hall-panel.campaign-league .league-pair span + span { border-color: var(--league-line); }
#league-hall-panel.campaign-league .league-pair .is-winner { color: var(--league-lacquer); font-weight: 700; }
#league-hall-panel.campaign-league .league-pair small {
  padding: 6px 12px;
  background: rgb(171 141 94 / .14);
  color: var(--league-muted);
}

#league-hall-panel.campaign-league .league-fixed-actions {
  position: relative;
  flex: 0 0 auto;
  padding: 12px 4px 0;
  border-top: 1px solid var(--league-line);
  background: transparent;
}

#league-hall-panel.campaign-league .league-fixed-actions .league-actions { margin: 0; gap: 8px; }
#league-hall-panel.campaign-league .league-fixed-actions .league-button { padding: 10px; }

/* award: height and text distinguish the champion without invented medals. */
#league-hall-panel.campaign-league[data-view='award'] .league-event-title { text-align: center; }
#league-hall-panel.campaign-league .league-podium { gap: 8px; margin: 24px 0; }
#league-hall-panel.campaign-league .league-podium section {
  min-width: 0;
  min-height: 108px;
  gap: 12px;
  padding: 16px 6px;
  border: 1px solid var(--league-line);
  border-radius: 4px;
  background: rgb(171 141 94 / .14);
}

#league-hall-panel.campaign-league .league-podium .is-champion {
  min-height: 144px;
  border-color: #98754b;
  background: rgb(194 156 86 / .22);
  color: var(--league-lacquer);
}

#league-hall-panel.campaign-league .league-podium b { font-size: 16px; line-height: 1.5; }
#league-hall-panel.campaign-league .league-podium small { font-size: 14px; }
#league-hall-panel.campaign-league .league-feedback {
  flex: 0 0 auto;
  max-height: 72px;
  margin: 0;
  padding: 8px 4px 0;
  overflow-y: auto;
  color: var(--league-lacquer);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

#league-hall-panel.campaign-league .league-feedback:empty { display: none; }
#league-hall-panel.campaign-league :focus-visible {
  outline: 2px solid var(--league-blue);
  outline-offset: 2px;
}

#league-hall-panel.campaign-league ::selection { color: #fff1ce; background: var(--league-lacquer); }
#league-hall-panel.campaign-league :is(.league-body, .league-bracket, .league-feedback)::-webkit-scrollbar { width: 6px; height: 6px; }
#league-hall-panel.campaign-league :is(.league-body, .league-bracket, .league-feedback)::-webkit-scrollbar-thumb { border-radius: 3px; background: #98754b; }
#league-hall-panel.campaign-league :is(.league-body, .league-bracket, .league-feedback)::-webkit-scrollbar-track { background: rgb(237 224 194 / .35); }

/* Optional cross-surface entry: only the explicitly opted-in rank page. */
.campaign-secondary #rank-stipend-entry {
  min-height: 48px;
  padding: 10px 16px;
  border: 0;
  border-radius: 4px;
  background: url('https://sgcdn.gxqlove.top/zhimajiangjun/static-20261103-9e2f00eadfcd/assets/home-dialog-art-v2/button-red.png') center / 100% 100% no-repeat;
  color: #fff1ce;
  box-shadow: none;
  font: 700 17px/1.4 'Library WenKai', KaiTi, 'STKaiti', serif;
  touch-action: manipulation;
}

.campaign-secondary #rank-stipend-entry:focus-visible { outline: 2px solid #265d74; outline-offset: 2px; }
.campaign-secondary #rank-stipend-entry:disabled { opacity: .72; filter: grayscale(1); cursor: not-allowed; }

@media (hover: hover) {
  #league-hall-panel.campaign-league :is(.league-button, .league-header-back, #league-close):hover:not(:disabled),
  .campaign-secondary #rank-stipend-entry:hover:not(:disabled) { filter: brightness(1.06); }
  #league-hall-panel.campaign-league .league-tabs button:hover { color: var(--league-lacquer); }
}

#league-hall-panel.campaign-league :is(.league-button, .league-header-back):active:not(:disabled),
.campaign-secondary #rank-stipend-entry:active:not(:disabled) { transform: translateY(1px); }
#league-hall-panel.campaign-league #league-close:active { transform: translateY(calc(-50% + 1px)); }

@media (max-width: 360px) {
  #league-hall-panel.campaign-league .league-sheet { padding: 6px 2px 20px; }
  #league-hall-panel.campaign-league .league-header { min-height: 64px; padding-inline: 48px; }
  #league-hall-panel.campaign-league .league-header h2 { font-size: 21px; }
  #league-hall-panel.campaign-league .league-wallet { gap: 4px; font-size: 13px; }
  #league-hall-panel.campaign-league .league-wallet b { font-size: 18px; }
  #league-hall-panel.campaign-league .league-wallet .league-button { padding: 8px 6px; font-size: 13px; }
  #league-hall-panel.campaign-league .league-tabs button { font-size: 14px; }
  #league-hall-panel.campaign-league[data-view='hall'] .league-hero-art { width: 64px; height: 64px; }
  #league-hall-panel.campaign-league[data-view='hall'] .league-hero h3 { font-size: 20px; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row { grid-template-columns: minmax(0, 1fr) 88px; gap: 8px; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 { font-size: 18px; }
  #league-hall-panel.campaign-league .league-actions > .league-button { flex-basis: 100%; }
  #league-hall-panel.campaign-league .league-join-entry { grid-template-columns: minmax(0, 1fr); }
  #league-hall-panel.campaign-league .league-room-players section { padding: 16px 6px; }
  #league-hall-panel.campaign-league .league-podium b { font-size: 14px; }
}

@media (max-height: 600px) {
  #league-hall-panel.campaign-league .league-header { min-height: 60px; }
  #league-hall-panel.campaign-league .league-body { padding-block: 12px 16px; }
  #league-hall-panel.campaign-league[data-view='hall'] .league-hero { padding-top: 0; }
  #league-hall-panel.campaign-league[data-view='hall'] .league-hero-art { width: 56px; height: 56px; }
  #league-hall-panel.campaign-league .league-tabs button { min-height: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  #league-hall-panel.campaign-league :is(.league-button, .league-header-back):active:not(:disabled),
  .campaign-secondary #rank-stipend-entry:active:not(:disabled) { transform: none; }
  #league-hall-panel.campaign-league #league-close:active { transform: translateY(-50%); }
  #league-hall-panel.campaign-league .league-bracket { scroll-behavior: auto; }
}

/* Body copy and numbers keep two predictable weight roles across all views. */
#league-hall-panel.campaign-league :is(p, small, label, span, li, input, select) { font-family: var(--campaign-font); font-weight: 400; }
#league-hall-panel.campaign-league :is(h2, h3, h4, b, strong, button) { font-family: var(--campaign-font); font-weight: 700; }

/* All stipend tiers and both claim surfaces remain visible on one page. */
#league-hall-panel.campaign-league[data-view='stipend'] .league-body {
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto;
  gap: 6px; overflow: hidden; scrollbar-width: none; padding: 12px 0 0;
}
#league-hall-panel.campaign-league[data-view='stipend'] .league-intro { margin: 0; font-size: 14px; line-height: 1.4; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipends { display: grid; grid-template-rows: repeat(4, minmax(0, 1fr)); min-height: 0; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row { min-height: 0; padding: 6px 0; grid-template-columns: minmax(0, 1fr) 100px; gap: 8px; align-items: center; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 { margin: 0 0 3px; font-size: 18px; line-height: 1.3; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 small { display: inline; margin: 0 0 0 5px; font-size: 11px; white-space: nowrap; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row p { font-size: 12px; line-height: 1.4; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row .league-button { min-height: 44px; padding: 6px 4px; font-size: 13px; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend { padding: 8px 0 0; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend h3 { margin: 0 0 4px; font-size: 18px; line-height: 1.3; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend p { margin: 0 0 6px; font-size: 12px; line-height: 1.4; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-ad-stipend .league-button { min-height: 44px; padding: 6px 8px; font-size: 15px; }
#league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-footer { margin: 0; padding-top: 6px; font-size: 12px; line-height: 1.4; }

/* Opening rewards from the rank booklet should feel like the same folio.
   Match its outer dimensions while leaving the reward typography untouched. */
#league-hall-panel.campaign-league[data-view='stipend'] {
  padding: 0 !important;
}
#league-hall-panel.campaign-league[data-view='stipend'] > .league-sheet {
  width: min(100%, 100vw, var(--rank-folio-shared-width, var(--portrait-stage-width, 543px))) !important;
  height: var(--rank-folio-shared-height, min(760px, calc(100dvh - 20px))) !important;
  max-height: var(--rank-folio-shared-height, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px)) !important;
}
@media (max-height: 700px) {
  #league-hall-panel.campaign-league[data-view='stipend'] .league-body { padding-top: 6px; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipends { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 6px 10px; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; gap: 3px; padding: 3px 0; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 { font-size: 16px; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row h3 small { margin-left: 3px; font-size: 10px; }
  #league-hall-panel.campaign-league[data-view='stipend'] .league-stipend-row p { font-size: 11px; }
}
