/* 手机营地固定在一个动态视口内；长内容只在二级浮窗中滚动。 */
@media (max-width: 640px) {
  .campaign-overlay[data-campaign-overlay-mode="rest"] {
    align-items: stretch;
    overflow: hidden;
    overscroll-behavior: none;
    padding:
      max(6px, env(safe-area-inset-top))
      max(6px, env(safe-area-inset-right))
      max(6px, env(safe-area-inset-bottom))
      max(6px, env(safe-area-inset-left));
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] > .campaign-camp-card {
    width: 100%;
    height: 100%;
    max-height: none;
    gap: 6px;
    padding: 6px;
    overflow: hidden;
    overscroll-behavior: none;
    border-radius: 10px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-scene {
    flex: 1 1 auto;
    min-height: 0;
    gap: 6px;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    overflow: hidden;
    background-position: center 42%;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 5px;
    margin: 6px 6px 0;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-name {
    padding: 3px 5px;
    font-size: 9px;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-stats span {
    min-width: 0;
    padding: 3px 2px;
    overflow: hidden;
    font-size: 9px;
    letter-spacing: 0;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-paths,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-paths.single {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    padding: 0 6px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-paths.single {
    grid-template-columns: minmax(0, 1fr);
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path {
    align-content: start;
    min-width: 0;
    min-height: 74px;
    gap: 2px;
    padding: 6px;
    overflow: hidden;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path::before,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path > small {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path > span {
    overflow: hidden;
    font-size: 9px;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-route-risk-icon {
    width: 12px;
    height: 12px;
    margin-right: 2px;
    vertical-align: -2px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path > strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path > em {
    overflow: hidden;
    font-size: 9px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-banners {
    display: flex;
    gap: 4px;
    margin: 0 6px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-banners::-webkit-scrollbar,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-members::-webkit-scrollbar {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-banners span {
    flex: 0 0 auto;
    max-width: calc(100vw - 34px);
    padding: 2px 6px;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-ground {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "members members"
      "merchant spots";
    grid-template-rows: minmax(0, 1fr) auto;
    align-content: end;
    align-items: end;
    gap: 6px;
    min-height: 0;
    padding: 0 6px 6px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-ground > [data-campaign-camp-members] {
    grid-area: members;
    align-self: end;
    min-width: 0;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-members {
    display: grid;
    grid-auto-columns: minmax(76px, 1fr);
    grid-auto-flow: column;
    align-items: end;
    justify-content: stretch;
    gap: 4px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member {
    min-width: 0;
    gap: 2px;
    padding: 5px 4px;
    scroll-snap-align: start;
    transform: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member:hover,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member.pos-1,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member.pos-3,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member.pos-5,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member.pos-1:hover,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member.pos-3:hover,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member.pos-5:hover {
    transform: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member > strong {
    font-size: 10px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member-vitals span {
    padding: 2px 3px;
    font-size: 8px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-badges {
    top: -5px;
    right: 1px;
    bottom: auto;
    gap: 2px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-badge {
    max-width: 74px;
    padding: 1px 4px;
    overflow: hidden;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-fire {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-ground > [data-campaign-camp-merchant] {
    grid-area: merchant;
    min-width: 0;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-ground > [data-campaign-camp-merchant]:empty {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-merchant {
    width: 62px;
    min-height: 100%;
    gap: 2px;
    padding: 5px 4px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-merchant span {
    writing-mode: horizontal-tb;
    font-size: 10px;
    letter-spacing: 0.04em;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-merchant em {
    font-size: 8px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-services {
    display: flex;
    gap: 3px;
    height: 100%;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-services .campaign-camp-merchant,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-services .campaign-camp-blacksmith {
    width: 52px;
    min-height: 100%;
    gap: 2px;
    padding: 5px 3px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-blacksmith span {
    writing-mode: horizontal-tb;
    font-size: 10px;
    letter-spacing: 0.04em;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-blacksmith em {
    font-size: 8px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-ground > [data-campaign-camp-spots] {
    grid-area: spots;
    min-width: 0;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-spots {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    width: 100%;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-spot {
    display: grid;
    justify-items: center;
    min-width: 0;
    min-height: 46px;
    gap: 1px;
    padding: 4px 2px;
    text-align: center;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-spot-icon {
    width: 14px;
    height: 14px;
    padding: 2px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-spot strong {
    font-size: 10px;
    letter-spacing: 0.03em;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-spot span {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-footer {
    position: relative;
    bottom: auto;
    flex: 0 0 auto;
    gap: 2px;
    min-width: 0;
    padding: 0;
    background: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-footer .campaign-continue {
    min-height: 42px;
    padding: 8px 12px;
    font-size: 13px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-pending,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-optional {
    display: block;
    width: 100%;
    margin: 0;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.35;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* 人物构筑页默认完整露出装备和六项加点；展开技能明细时才允许正文滚动。 */
  .campaign-member-dialog {
    height: auto;
    max-height: calc(100dvh - 16px);
  }

  .campaign-member-dialog .campaign-camp-dialog-head {
    flex: 0 0 auto;
    align-items: center;
  }

  .campaign-member-dialog .campaign-camp-dialog-head h3 {
    font-size: 15px;
  }

  .campaign-member-dialog .campaign-camp-dialog-head span {
    overflow: hidden;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-member-dialog .campaign-camp-dialog-body {
    flex: 1 1 auto;
    max-height: none;
    padding: 6px 10px 10px;
    overflow-y: hidden;
  }

  .campaign-member-dialog .campaign-camp-dialog-body:has(.campaign-member-capabilities[open]) {
    overflow-y: auto;
  }

  .campaign-member-dialog .campaign-member-card {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    grid-template-areas:
      "head vitals"
      "head ai"
      "skills skills"
      "equipment equipment"
      "sets sets"
      "attributes attributes";
    grid-template-rows: auto auto auto auto auto auto;
    align-content: start;
    gap: 5px 8px;
    height: auto;
  }

  .campaign-member-dialog .campaign-member-head {
    grid-area: head;
    display: grid;
    align-content: center;
    justify-items: center;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    text-align: center;
  }

  .campaign-member-dialog .campaign-member-head img {
    width: 34px;
    height: 42px;
  }

  .campaign-member-dialog .campaign-member-head div {
    gap: 1px;
  }

  .campaign-member-dialog .campaign-member-head strong {
    font-size: 10px;
  }

  .campaign-member-dialog .campaign-member-head span {
    font-size: 9px;
  }

  .campaign-member-dialog .campaign-vitals.prominent {
    grid-area: vitals;
    align-self: center;
    min-width: 0;
    width: 100%;
    gap: 3px;
    margin: 0;
    padding: 0;
  }

  .campaign-member-dialog .campaign-vitals.prominent .campaign-vital {
    min-width: 0;
    grid-template-columns: 20px minmax(0, 1fr) 82px;
    gap: 4px;
    font-size: 9px;
  }

  .campaign-member-dialog .campaign-vitals.prominent .campaign-vital > i {
    min-width: 0;
    height: 8px;
  }

  .campaign-member-dialog .campaign-vitals.prominent .campaign-vital em {
    min-width: 82px;
    max-width: 82px;
    padding: 2px 4px;
  }

  .campaign-member-dialog .campaign-vitals.prominent .campaign-vital em strong {
    font-size: 13px;
    line-height: 1;
  }

  .campaign-member-dialog .campaign-vitals.prominent .campaign-vital em small {
    font-size: 9px;
  }

  .campaign-member-dialog .campaign-ai-toggle {
    grid-area: ai;
    align-self: end;
    gap: 5px;
    margin: 0;
    padding: 4px 6px;
    font-size: 9px;
  }

  .campaign-member-dialog .campaign-member-capabilities {
    grid-area: skills;
    margin: 0;
  }

  .campaign-member-dialog .campaign-member-capabilities summary {
    padding: 5px 7px;
    font-size: 10px;
  }

  .campaign-member-dialog .campaign-equip-slots {
    grid-area: equipment;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    margin: 0;
  }

  .campaign-member-dialog .campaign-equip-slot {
    min-height: 42px;
    gap: 1px;
    padding: 4px 3px;
  }

  .campaign-member-dialog .campaign-equip-slot > span {
    font-size: 8px;
  }

  .campaign-member-dialog .campaign-equip-slot > span .campaign-equipment-icon {
    width: 13px;
    height: 13px;
    margin-right: 2px;
  }

  .campaign-member-dialog .campaign-equip-slot > strong {
    display: block;
    overflow: hidden;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-member-dialog .campaign-transfer-row {
    flex-wrap: nowrap;
    gap: 2px;
    max-width: 100%;
    padding-top: 2px;
    overflow-x: auto;
  }

  .campaign-member-dialog .campaign-transfer-row button {
    flex: 0 0 auto;
    padding: 1px 3px;
    font-size: 7px;
  }

  .campaign-member-dialog .campaign-set-bonuses {
    grid-area: sets;
    display: flex;
    gap: 4px;
    margin: 0;
    overflow-x: auto;
  }

  .campaign-member-dialog .campaign-set-bonus {
    flex: 0 0 min(230px, 80vw);
    gap: 1px;
    padding: 4px 6px;
  }

  .campaign-member-dialog .campaign-set-bonus strong {
    font-size: 9px;
  }

  .campaign-member-dialog .campaign-set-bonus span {
    overflow: hidden;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-member-dialog .campaign-attribute-grid {
    grid-area: attributes;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-self: start;
    gap: 4px;
    min-height: 0;
  }

  .campaign-member-dialog .campaign-attribute-grid button {
    align-content: center;
    min-width: 0;
    min-height: 48px;
    gap: 2px;
    padding: 5px;
  }

  .campaign-member-dialog .campaign-attribute-grid button strong {
    overflow: hidden;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-member-dialog .campaign-attribute-grid button span {
    display: -webkit-box;
    overflow: hidden;
    font-size: 8px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  /* 行商与锻造都固定在一屏；数量不定的货物或装备只在各自清单内滚动。 */
  .campaign-merchant-dialog,
  .campaign-blacksmith-dialog {
    height: calc(100dvh - 16px);
    max-height: calc(100dvh - 16px);
  }

  .campaign-blacksmith-menu-dialog {
    height: auto;
  }

  .campaign-blacksmith-menu-dialog .campaign-camp-dialog-body {
    flex: 0 1 auto;
  }

  .campaign-blacksmith-menu-dialog .campaign-rest-section {
    height: auto;
  }

  .campaign-merchant-dialog .campaign-camp-dialog-head,
  .campaign-blacksmith-dialog .campaign-camp-dialog-head {
    flex: 0 0 auto;
    align-items: center;
  }

  .campaign-merchant-dialog .campaign-camp-dialog-body,
  .campaign-blacksmith-dialog .campaign-camp-dialog-body {
    flex: 1 1 auto;
    max-height: none;
    padding: 4px 9px 9px;
    overflow: hidden;
  }

  .campaign-merchant-dialog .campaign-rest-section,
  .campaign-blacksmith-dialog .campaign-rest-section {
    display: flex;
    flex-direction: column;
    gap: 5px;
    height: 100%;
    margin: 0;
    padding-block: 5px;
    overflow: hidden;
  }

  .campaign-merchant-dialog .campaign-section-title {
    display: none;
  }

  .campaign-merchant-dialog .campaign-merchant-layout {
    display: grid;
    flex: 1 1 auto;
    grid-template-rows: 102px minmax(0, 1fr);
    gap: 5px;
    min-height: 0;
    overflow: hidden;
  }

  .campaign-merchant-dialog .campaign-merchant-summary {
    display: grid;
    grid-auto-columns: minmax(160px, 1fr);
    grid-auto-flow: column;
    gap: 5px;
    padding: 5px;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .campaign-merchant-dialog .campaign-merchant-summary > section {
    min-width: 0;
    max-height: 90px;
    padding: 3px 5px;
    overflow-y: auto;
    border: 1px solid rgba(177, 153, 98, 0.14);
  }

  .campaign-merchant-dialog .campaign-merchant-summary h4,
  .campaign-merchant-dialog .campaign-merchant-sell h4 {
    margin: 0 0 3px;
    font-size: 9px;
  }

  .campaign-merchant-dialog .campaign-merchant-member-list,
  .campaign-merchant-dialog .campaign-merchant-set-list {
    gap: 3px;
  }

  .campaign-merchant-dialog .campaign-merchant-member-list article {
    gap: 2px;
    padding-top: 3px;
  }

  .campaign-merchant-dialog .campaign-merchant-member-list article > strong,
  .campaign-merchant-dialog .campaign-merchant-set-row strong,
  .campaign-merchant-dialog .campaign-merchant-set-row span,
  .campaign-merchant-dialog .campaign-camp-empty {
    font-size: 8px;
  }

  .campaign-merchant-dialog .campaign-merchant-set-row {
    gap: 3px;
    padding: 3px 4px;
  }

  .campaign-merchant-dialog .campaign-merchant-stock {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    gap: 5px;
    min-height: 0;
    overflow: hidden;
  }

  .campaign-merchant-dialog .campaign-merchant-refresh,
  .campaign-merchant-dialog .campaign-merchant-sell,
  .campaign-merchant-dialog .campaign-merchant-sold {
    grid-column: 1 / -1;
  }

  .campaign-merchant-dialog .campaign-merchant-refresh {
    min-height: 28px;
    margin: 0;
    padding: 4px 7px;
    font-size: 10px;
  }

  .campaign-merchant-dialog .campaign-merchant-group {
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    overflow: hidden;
  }

  .campaign-merchant-dialog .campaign-merchant-group summary {
    flex: 0 0 auto;
    padding: 5px 6px;
    font-size: 9px;
  }

  .campaign-merchant-dialog .campaign-merchant-group .campaign-choice-grid {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 0 4px 4px;
    overflow-y: auto;
  }

  .campaign-merchant-dialog .campaign-choice {
    min-height: 0;
    gap: 2px;
    padding: 5px;
  }

  .campaign-merchant-dialog .campaign-choice strong {
    font-size: 9px;
  }

  .campaign-merchant-dialog .campaign-choice span {
    display: -webkit-box;
    overflow: hidden;
    font-size: 8px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .campaign-merchant-dialog .campaign-merchant-sell {
    min-height: 0;
    margin: 0;
  }

  .campaign-merchant-dialog .campaign-merchant-sell-grid {
    display: flex;
    gap: 4px;
    overflow-x: auto;
  }

  .campaign-merchant-dialog .campaign-merchant-sell-grid button {
    flex: 0 0 min(145px, 44vw);
    gap: 1px;
    min-height: 36px;
    padding: 4px 5px;
    font-size: 8px;
  }

  .campaign-merchant-dialog .campaign-merchant-sell-grid button span,
  .campaign-merchant-dialog .campaign-merchant-sold {
    font-size: 8px;
    line-height: 1.3;
  }

  .campaign-blacksmith-dialog .campaign-section-title {
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    gap: 5px;
    min-height: 28px;
  }

  .campaign-blacksmith-dialog .campaign-section-title h3 {
    margin: 0;
    font-size: 12px;
  }

  .campaign-blacksmith-dialog .campaign-section-title span {
    display: -webkit-box;
    overflow: hidden;
    font-size: 8px;
    line-height: 1.25;
    text-align: left;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .campaign-blacksmith-dialog .campaign-section-title .ghost {
    flex: 0 0 auto;
    min-height: 26px;
    padding: 3px 6px;
    font-size: 9px;
  }

  .campaign-blacksmith-dialog .campaign-forge-uses {
    flex: 0 0 auto;
    overflow: hidden;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .campaign-blacksmith-dialog .campaign-blacksmith-menu {
    display: grid;
    flex: 0 0 auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(100px, auto));
    gap: 5px;
    min-height: 0;
  }

  .campaign-blacksmith-dialog .campaign-blacksmith-mode {
    align-content: center;
    min-height: 100px;
    gap: 4px;
    padding: 8px;
  }

  .campaign-blacksmith-dialog .campaign-blacksmith-mode strong {
    font-size: 13px;
  }

  .campaign-blacksmith-dialog .campaign-blacksmith-mode span {
    display: -webkit-box;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .campaign-blacksmith-dialog .campaign-blacksmith-mode em {
    font-size: 8px;
    line-height: 1.3;
  }

  .campaign-blacksmith-dialog .campaign-forge-grid {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: 5px;
    min-height: 0;
    overflow-y: auto;
  }

  .campaign-blacksmith-dialog .campaign-forge-item {
    display: grid;
    align-content: start;
    gap: 4px;
    min-height: 0;
    padding: 7px;
    border: 1px solid rgba(177, 153, 98, 0.24);
    background: rgba(0, 0, 0, 0.14);
  }

  .campaign-blacksmith-dialog .campaign-forge-head {
    display: grid;
    gap: 2px;
  }

  .campaign-blacksmith-dialog .campaign-forge-head strong,
  .campaign-blacksmith-dialog .campaign-forge-head em,
  .campaign-blacksmith-dialog .campaign-forge-item > span,
  .campaign-blacksmith-dialog .campaign-forge-refine > span {
    font-size: 8px;
    line-height: 1.3;
  }

  .campaign-blacksmith-dialog .campaign-forge-item > span {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .campaign-blacksmith-dialog .campaign-forge-actions,
  .campaign-blacksmith-dialog .campaign-forge-refine {
    display: grid;
    gap: 3px;
  }

  .campaign-blacksmith-dialog .campaign-forge-btn {
    min-height: 26px;
    padding: 3px 5px;
    font-size: 8px;
  }
}

@media (max-width: 640px) and (max-height: 700px) {
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path {
    min-height: 60px;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-path > em,
  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-banners {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-member-vitals .mp {
    display: none;
  }

  .campaign-overlay[data-campaign-overlay-mode="rest"] .campaign-camp-spot {
    min-height: 40px;
  }

  .campaign-member-dialog .campaign-member-head img {
    display: none;
  }

  .campaign-member-dialog .campaign-attribute-grid button {
    min-height: 40px;
  }
}
