/* Tablet styles extracted from responsive blocks. */

/* Narrow portrait tablets share the phone timeline layout without inheriting phone-wide sizing. */
@media (max-width: 720px) {
  .battle-board,
  .battle-arena,
  .battle-timeline-row,
  .fleet-command-card-header,
  .fleet-command-route {
    grid-template-columns: 1fr;
  }

  .battle-arena-lane {
    min-height: 70px;
  }

  .battle-arena-lane::before {
    inset: 50% 8px;
    width: auto;
    height: 1px;
  }

  .battle-timeline-result {
    justify-items: start;
    text-align: left;
  }

  .god-topbar {
    grid-template-columns: 1fr;
  }

  .god-keybar,
  .god-panel-title,
  .god-inline-actions,
  .god-editor-tabs {
    align-items: stretch;
    flex-direction: column;
  }

  .god-keybar,
  .god-command-header,
  .god-planet-admin-card,
  .god-admin-section.danger,
  .god-referral-grid,
  .god-log-columns,
  .god-layout-building-row,
  .god-edit-row,
  .god-unit-editor,
  .god-research-editor,
  .god-market-editor {
    grid-template-columns: 1fr;
  }

  .god-keybar {
    display: grid;
  }

  .god-unit-editor img,
  .god-research-editor img,
  .god-market-editor img,
  .god-edit-row > img {
    width: 100%;
    max-height: 140px;
  }
}

/* From styles.css: @media (min-width: 621px) and (max-width: 960px) */
.game-shell {
    align-content: start;
    gap: 12px;
  }

  .game-tabs {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-flow: initial;
    grid-auto-columns: initial;
    gap: 5px;
    overflow-x: visible;
    padding: 6px;
  }

  .game-tabs > .game-community-links {
    display: none;
  }

  .game-tab {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 27px auto;
    justify-items: center;
    gap: 2px;
    min-width: 0;
    min-height: 58px;
    padding: 4px 2px;
    font-size: 0.7rem;
    text-align: center;
    white-space: normal;
  }

  .game-tab-icon {
    width: 27px;
    height: 27px;
  }

  .game-tab-label {
    display: block;
    width: 100%;
    overflow: hidden;
    line-height: 1.05;
    overflow-wrap: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .game-tab .tab-notification,
  .game-tab .tab-progress-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    margin-left: 0;
  }

  .game-tab .tab-progress-badge {
    min-width: 30px;
    height: 18px;
    padding: 0 4px;
    font-size: 0.58rem;
  }

  .game-content {
    gap: 14px;
  }

  .resource-grid {
    top: 84px;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 6px;
    padding: 6px;
    overflow-x: visible;
  }

  .resource-grid .resource-tile {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    grid-template-areas:
      "icon value status"
      "icon rate rate";
    gap: 2px 6px;
    min-width: 0;
    min-height: 48px;
    padding: 6px 7px;
  }

  .resource-grid .resource-tile .resource-icon {
    grid-area: icon;
    align-self: center;
    width: 26px;
    height: 26px;
  }

  .resource-grid .resource-tile strong {
    grid-area: value;
    overflow: hidden;
    font-size: 0.95rem;
    font-variant-numeric: tabular-nums;
    overflow-wrap: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: normal;
  }

  .resource-grid .resource-tile small {
    grid-area: rate;
    overflow: hidden;
    font-size: 0.68rem;
    text-overflow: ellipsis;
  }

  .resource-grid .resource-tile[data-storage-status]::after {
    grid-area: status;
    position: static;
    font-size: 0.5rem;
  }

  .resource-profile-actions {
    gap: 6px;
    padding-left: 0;
  }

  .resource-profile-actions .icon-button {
    width: 38px;
    height: 38px;
    min-width: 38px;
    max-width: 38px;
    flex-basis: 38px;
  }

  .resource-profile-actions .mail-button img {
    width: 30px;
    height: 30px;
  }

  .resource-profile-actions .settings-button svg,
  .resource-profile-actions .settings-button img {
    width: 30px;
    height: 30px;
  }

  .topbar {
    gap: 0;
    padding-top: 0;
  }

  .planet-switcher {
    margin-bottom: 0;
    padding-bottom: 4px;
  }

  .planet-viewer {
    height: clamp(340px, 52vw, 430px);
  }

  .status-panel {
    gap: 10px;
    padding: 14px;
  }

  .status-panel .planet-profile {
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 9px;
    margin-bottom: 8px;
    padding: 8px;
  }

  .status-panel .planet-avatar {
    width: 60px;
    height: 60px;
  }

  .status-panel .bonus-effects-list {
    gap: 5px;
  }

  .status-panel .bonus-effect-row {
    grid-template-columns: 26px minmax(0, 1fr) auto;
    gap: 6px;
    padding: 5px 6px;
  }

  .status-panel .bonus-effect-row img {
    width: 26px;
    height: 26px;
  }

  .iso-colony-shell {
    min-height: clamp(440px, 65vw, 520px);
  }

  .building-3d-map {
    height: clamp(500px, 66vw, 620px);
    min-height: clamp(500px, 66vw, 620px);
  }

  .iso-ground-plane {
    background-position: center 50%;
    background-size: 220% auto;
  }

  .iso-building-node {
    width: clamp(54px, 10vw, 72px);
    touch-action: manipulation;
  }

  .iso-building-node.tier-1 {
    --iso-building-tier-scale: 1;
  }

  .iso-building-node.tier-2 {
    --iso-building-tier-scale: 1.05;
  }

  .iso-building-node.tier-3 {
    --iso-building-tier-scale: 1.1;
  }

  .iso-building-node[data-building-type="barracks"],
  .iso-building-node[data-building-type="defenseGrid"] {
    width: clamp(66px, 12.5vw, 86px);
  }

  .iso-building-node[data-building-type="barracks"] {
    width: clamp(62px, 11.5vw, 80px);
    margin-top: -10px;
    margin-left: -38px;
  }

  .iso-building-node[data-building-type="defenseGrid"] {
    margin-top: 40px;
    margin-left: 24px;
  }

  .iso-building-node[data-building-type="shipyard"] {
    width: clamp(92px, 17vw, 122px);
  }

  .iso-building-node[data-building-type="mine"] {
    width: clamp(74px, 14.5vw, 98px);
  }

  .iso-building-node[data-building-type="refinery"] {
    width: clamp(66px, 12.5vw, 86px);
  }

  .iso-building-node[data-building-type="solarPlant"] {
    width: clamp(68px, 13vw, 90px);
  }

  .iso-building-status {
    bottom: -8px;
    gap: 0;
    min-width: 104px;
    max-width: 156px;
  }

  .iso-building-status-title {
    gap: 4px;
    width: 100%;
    padding: 5px 6px 6px;
    font-size: 0.56rem;
  }

  .iso-building-status-name {
    flex: 1 1 auto;
  }

  .iso-building-status-level {
    padding: 2px 4px;
    font-size: 0.52rem;
  }

  .iso-building-status-progress {
    position: absolute;
    inset: auto 6px 2px;
    z-index: 0;
    width: auto;
    height: 3px;
    opacity: 0;
    box-shadow: none;
  }

  .iso-building-status.active .iso-building-status-progress {
    opacity: 1;
  }

  .iso-building-node > .iso-building-info {
    display: none;
  }

  /* The onboarding build action lives inside this panel. Keep only the
     highlighted target actionable while the rest of the touch map stays clean. */
  .iso-colony-shell.tutorial-building-lock .iso-building-node.tutorial-target > .iso-building-info {
    display: grid;
  }

  #building-info-dialog {
    width: min(460px, calc(100% - 20px));
    max-height: calc(100dvh - 20px);
    overflow: auto;
  }

  .building-info-dialog-shell {
    gap: 10px;
    padding: 12px;
  }

  .building-info-dialog-shell .mail-heading {
    align-items: center;
    gap: 10px;
  }

  .building-info-dialog-shell .mail-heading h2 {
    font-size: clamp(1rem, 5vw, 1.25rem);
    line-height: 1.15;
  }

  .building-info-dialog-shell .mail-heading .compact-button {
    min-height: 40px;
    padding: 8px 14px;
  }

  .mobile-building-info-card {
    padding: 10px;
    border-radius: 14px;
  }

  .mobile-building-info-top {
    gap: 8px;
  }

  .mobile-building-info-card .iso-building-info-level {
    white-space: nowrap;
  }

  .mobile-building-info-card .iso-building-actions .icon-button {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }

  .advisor-widget {
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    bottom: max(82px, env(safe-area-inset-bottom));
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 8px;
  }

  .advisor-portrait-frame {
    border-radius: 14px;
  }

  .advisor-bubble {
    gap: 8px;
    padding: 11px;
    border-radius: 14px;
  }

  .advisor-bubble::before {
    left: -6px;
    bottom: 22px;
    width: 10px;
    height: 10px;
  }

  .advisor-eyebrow {
    font-size: 0.54rem;
  }

  .advisor-header strong {
    font-size: 0.82rem;
  }

  .advisor-bubble p {
    font-size: 0.78rem;
    line-height: 1.35;
  }

  .advisor-actions .compact-button {
    min-height: 34px;
    padding: 6px 10px;
    font-size: 0.72rem;
  }

  .building-level-list {
    max-height: min(64vh, 560px);
    padding-right: 2px;
  }

  .building-level-row {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 9px;
  }

  .building-level-head {
    flex-direction: row;
    align-items: center;
  }

  .building-level-summary {
    padding: 10px;
  }

  .building-level-summary h3 {
    font-size: 1.05rem;
  }

  .building-level-effects {
    font-size: 0.76rem;
  }

  .army-summary-grid,
  .army-categories {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .army-summary-grid {
    gap: 6px;
  }

  .army-summary-grid .resource-tile strong {
    overflow-wrap: normal;
    white-space: nowrap;
    word-break: normal;
  }

  .army-categories {
    gap: 8px;
    overflow: visible;
  }

  .army-category-card {
    min-width: 0;
    padding: 8px 6px;
  }

  .army-category-header {
    gap: 7px;
  }

  .army-category-card h3 {
    font-size: 0.82rem;
    overflow-wrap: normal;
  }

  .army-category-counter {
    overflow: hidden;
    font-size: 0.62rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .army-section .research-current {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
  }

  .army-section .research-current-card,
  .army-section .research-current-card.empty {
    gap: 10px;
    min-height: 112px;
    height: 112px;
    padding: 10px;
  }

  .army-section .research-current-avatar {
    width: 62px;
    height: 86px;
  }

  .army-section .research-current-body {
    gap: 4px;
  }

  .army-section .research-current-card h3 {
    display: -webkit-box;
    overflow: hidden;
    font-size: 0.78rem;
    line-height: 1.12;
    overflow-wrap: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .army-section .progress-copy {
    gap: 6px;
    margin-top: 5px;
    font-size: 0.66rem;
  }

  .army-section .progress-copy span {
    white-space: nowrap;
  }

  .army-section .research-current-actions {
    flex-direction: column;
    gap: 4px;
  }

  .army-section .research-current-actions .icon-button {
    width: 34px;
    height: 34px;
  }

  .army-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .army-list .unit-card {
    min-height: 0;
    aspect-ratio: 3 / 4;
  }

  .army-list .unit-card:hover,
  .army-list .unit-card:focus-within {
    transform: none;
  }

  .army-list .unit-avatar-frame {
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }

  .army-list .unit-avatar-frame::after {
    height: 64%;
  }

  .army-list .unit-rate-badge,
  .army-list .unit-stat-icons {
    display: none;
  }

  .army-list .unit-card header {
    left: 6px;
    right: 6px;
    bottom: 6px;
    gap: 4px;
    align-items: end;
    padding: 5px 6px;
  }

  .army-list .unit-card header > div:first-child {
    min-width: 0;
  }

  .army-list .unit-card header h3 {
    display: -webkit-box;
    min-height: 2.1em;
    overflow: hidden;
    font-size: 0.66rem;
    line-height: 1.05;
    overflow-wrap: anywhere;
    text-overflow: ellipsis;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .army-list .unit-card-actions {
    gap: 3px;
  }

  .army-list .unit-card header .icon-button {
    width: 31px;
    height: 31px;
    border-radius: 6px;
  }

  .army-list .unit-card header .icon-button img {
    width: 26px;
    height: 26px;
  }

  .army-list .mobile-card-info-button {
    display: inline-grid;
  }

  .army-list .mobile-card-info-button :is(svg, img) {
    width: 19px;
    height: 19px;
  }

/* From styles.css: @media (min-width: 720px) and (max-width: 960px) */
.command-grid {
    grid-template-columns: minmax(0, 1fr) minmax(270px, 310px);
    gap: 14px;
  }

  .army-section > .section-heading {
    align-items: end;
    flex-direction: row;
  }

  .army-section > .section-heading .army-summary-grid {
    width: min(520px, 68%);
  }

/* From styles.css: @media (min-width: 621px) and (max-width: 960px) */
.selected-planet[data-entity-kind="debris"] {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .selected-planet[data-entity-kind="debris"] .starmap-2d-viewer {
    width: 112px;
    max-width: 112px;
    height: 112px !important;
  }

  .selected-planet[data-entity-kind="debris"] .selected-object-summary {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .selected-planet[data-entity-kind="debris"] .debris-detail-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .selected-planet[data-entity-kind="debris"] .selected-object-header,
  .selected-planet[data-entity-kind="debris"] .debris-yield-row {
    grid-column: auto;
  }

  .selected-planet[data-entity-kind="debris"] .garrison-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-height: 142px;
  }

  .battle-replay-dialog {
    width: min(100% - 24px, 900px);
  }

  .battle-arena-large .battle-arena-side {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .battle-arena-large .battle-replay-card img {
    aspect-ratio: 3 / 4;
  }

  .battle-arena-large .battle-arena-lane {
    min-height: 44px;
  }

/* From styles.css: @media (min-width: 621px) and (max-width: 960px) */
.fleet-command-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .fleet-command-card {
    gap: 8px;
    padding: 10px;
  }

  .fleet-command-card-header {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 9px;
  }

  .fleet-command-card-header > img {
    width: 44px;
    height: 44px;
    padding: 6px;
  }

  .fleet-command-card-header h3 {
    overflow: hidden;
    font-size: 0.9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .fleet-command-card-header p {
    display: none;
  }

  .fleet-command-route {
    gap: 6px;
  }

  .fleet-command-route span,
  .fleet-command-route b {
    min-height: 26px;
    padding: 4px 7px;
    font-size: 0.7rem;
  }

  .fleet-payload-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .fleet-payload-chip {
    min-width: 0;
    overflow: hidden;
    font-size: 0.68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .selected-planet[data-entity-kind="fleet"] {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .selected-planet[data-entity-kind="fleet"] .starmap-2d-viewer {
    width: 104px;
    max-width: 104px;
    height: 104px !important;
  }

  .selected-planet[data-entity-kind="fleet"] .selected-fleet-detail-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

/* From styles.css: @media (min-width: 621px) and (max-width: 960px) */
#commanders-panel .commanders-layout {
    gap: 14px;
    padding: 0;
  }

  #commanders-panel .academy-gacha-section,
  #commanders-panel .academy-gacha-box {
    gap: 12px;
  }

  #commanders-panel .academy-gacha-copy {
    padding: 14px;
  }

  #commanders-panel .academy-gacha-copy h2 {
    font-size: clamp(1.25rem, 3vw, 1.65rem);
  }

  #commanders-panel .academy-gacha-copy p,
  #commanders-panel .gacha-hint,
  #commanders-panel .draws-counter {
    font-size: 0.78rem;
    line-height: 1.35;
  }

  #commanders-panel .academy-gacha-box {
    grid-template-columns: minmax(170px, 0.86fr) minmax(210px, 1fr) minmax(210px, 1fr);
    min-height: 184px;
    padding: 12px;
  }

  #commanders-panel .gacha-visual {
    height: 172px;
  }

  #commanders-panel .gacha-portrait-stack .commander-avatar-placeholder {
    width: 92px;
    height: 123px;
  }

  #commanders-panel .gacha-portal-ring {
    width: 140px;
    height: 140px;
    right: 8px;
  }

  #commanders-panel .gacha-active-effect {
    width: 104px;
    height: 104px;
    right: 26px;
  }

  #commanders-panel .academy-draw-result {
    grid-template-columns: 64px minmax(0, 1fr);
    min-height: 108px;
    padding: 9px;
  }

  #commanders-panel .draw-result-portrait {
    height: 86px;
  }

  #commanders-panel .commanders-grid,
  .academy-policies-section .policies-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  #commanders-panel .commander-card,
  .academy-policies-section .policy-card {
    border-radius: 8px;
  }

  #commanders-panel .commander-card:hover,
  #commanders-panel .commander-card:focus-within,
  .academy-policies-section .policy-card:hover,
  .academy-policies-section .policy-card:focus-within {
    transform: none;
  }

  #commanders-panel .card-body {
    gap: 7px;
    padding: 8px;
  }

  #commanders-panel .commander-desc {
    display: -webkit-box;
    overflow: hidden;
    font-size: 0.72rem;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  #commanders-panel .commander-skills {
    max-height: 68px;
    padding: 7px 0;
  }

  #commanders-panel .commander-stat-grid,
  #commanders-panel .card-body > .commander-skill-icons,
  #commanders-panel .commander-skills {
    display: none;
  }

  #commanders-panel .skill-row,
  #commanders-panel .commander-lock-notice {
    font-size: 0.68rem;
    line-height: 1.25;
  }

  #commanders-panel .upgrade-progress-container {
    height: 13px;
  }

  #commanders-panel .upgrade-progress-text {
    font-size: 0.62rem;
  }

  #commanders-panel .upgrade-commander-btn {
    min-height: 32px;
    font-size: 0.72rem;
  }

  #commanders-panel .card-portrait-name,
  .academy-policies-section .policy-card-header {
    left: 6px;
    right: 6px;
    bottom: 6px;
    padding: 6px;
  }

  #commanders-panel .card-visual > .mobile-card-info-button,
  .academy-policies-section .policy-info-btn.mobile-card-info-button {
    display: inline-grid;
  }

  #commanders-panel .card-visual > .mobile-card-info-button {
    width: 31px;
    height: 31px;
    border-radius: 6px;
  }

  #commanders-panel .card-visual > .mobile-card-info-button :is(svg, img),
  .academy-policies-section .policy-info-btn.mobile-card-info-button :is(svg, img) {
    width: 19px;
    height: 19px;
  }

  #commanders-panel .card-portrait-name span:first-child,
  .academy-policies-section .policy-name {
    display: -webkit-box;
    overflow: hidden;
    font-size: 0.68rem;
    line-height: 1.08;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  #commanders-panel .commander-level,
  .academy-policies-section .policy-desc {
    font-size: 0.6rem;
    line-height: 1.1;
  }

  #commanders-panel .commander-badge-rarity,
  .academy-policies-section .policy-badge {
    top: 6px;
    left: 6px;
    right: auto;
    padding: 4px 6px;
    font-size: 0.56rem;
  }

  .academy-policies-section .policy-card {
    min-height: 0;
    aspect-ratio: 3 / 4;
  }

  .academy-policies-section .policy-avatar-frame {
    height: 100%;
    aspect-ratio: auto;
  }

  .academy-policies-section .policy-avatar-frame::after {
    height: 68%;
  }

  .academy-policies-section .policy-card-header {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px;
  }

  .academy-policies-section .policy-desc {
    display: none;
  }

  .academy-policies-section .policy-card-footer {
    left: 6px;
    right: 6px;
    bottom: 48px;
    gap: 5px;
  }

  .academy-policies-section .policy-effect,
  .academy-policies-section .policy-assigned-commander span,
  .academy-policies-section .policy-assigned-commander strong {
    font-size: 0.6rem;
    line-height: 1.1;
  }

  .academy-policies-section .policy-assigned-commander {
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 5px;
    padding: 4px;
  }

  .academy-policies-section .policy-hero-avatar {
    width: 28px;
    height: 28px;
  }

  .academy-policies-section .policy-icon-button {
    width: 31px;
    height: 31px;
    border-radius: 6px;
  }

  .academy-policies-section .policy-icon-button img {
    width: 24px;
    height: 24px;
  }

  .academy-policies-section .policy-icon-button svg {
    width: 19px;
    height: 19px;
  }

  .academy-policies-section .policy-hero-picker {
    left: 6px;
    right: 6px;
    bottom: 86px;
    max-height: min(220px, 54vh);
    padding: 6px;
  }

  .academy-policies-section .policy-hero-option {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 6px;
    padding: 5px;
  }

/* From styles.css: @media (min-width: 621px) and (max-width: 960px) */
.game-tabs {
    grid-auto-columns: minmax(66px, 76px);
    overflow-x: auto;
  }

/* From styles.css: @media (min-width: 621px) and (max-width: 960px) */
#commanders-panel .card-portrait-name,
  .academy-policies-section .policy-card-header {
    padding: 7px;
  }

  #commanders-panel .card-portrait-name span:first-child,
  .academy-policies-section .policy-name {
    font-size: 0.72rem;
  }

/*
  Planet War tablet overrides.
  Add 621px-960px tablet polish here instead of mixing it into the desktop base.
*/

.research-section .research-current-card:not(.empty) {
  min-height: 104px;
}

.research-section .research-current-card h3 {
  padding-right: 64px;
}

.policy-hero-dialog {
  width: min(560px, calc(100% - 32px));
}

.policy-hero-dialog-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: min(460px, 62vh);
}

.policy-hero-dialog-list .policy-hero-option {
  grid-template-columns: 54px minmax(0, 1fr) auto;
  min-height: 72px;
}

.policy-hero-dialog-list .policy-hero-option .policy-hero-avatar {
  width: 54px;
  height: 54px;
}

/*
  2026 tablet polish: iPad / large Android tablets should feel like a compact
  command console, not a stretched phone layout.
*/

body {
  min-width: 0;
}

.game-shell {
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: clamp(12px, 2vw, 22px);
  gap: 12px;
}

.topbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.game-tabs {
  position: relative;
  top: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  width: 100%;
  padding: 8px;
  overflow: visible;
  border-radius: 14px;
  background: rgba(5, 11, 12, 0.86);
}

.game-tab {
  grid-template-columns: 28px minmax(0, 1fr) auto;
  grid-template-rows: 1fr;
  justify-items: start;
  min-height: 42px;
  padding: 7px 8px;
  gap: 7px;
  border-radius: 10px;
  text-align: left;
}

.game-tab-icon {
  width: 28px;
  height: 28px;
}

.game-tab-label {
  align-self: center;
  font-size: 0.72rem;
  line-height: 1.05;
  white-space: normal;
  word-break: keep-all;
}

.game-tab .tab-notification,
.game-tab .tab-progress-badge {
  position: static;
  justify-self: end;
  align-self: center;
}

.game-tab .tab-progress-badge {
  min-width: 34px;
  height: 20px;
  font-size: 0.62rem;
}

.resource-grid {
  position: relative;
  top: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  align-items: stretch;
  gap: 7px;
  width: 100%;
  padding: 8px;
  border-radius: 14px;
  background: rgba(5, 10, 12, 0.88);
}

.resource-grid .resource-tile {
  min-height: 48px;
  padding: 7px 9px;
  border-radius: 10px;
}

.resource-grid .resource-tile strong {
  font-size: clamp(0.86rem, 1.55vw, 1.05rem);
}

.resource-grid .resource-tile small {
  font-size: 0.66rem;
}

.resource-profile-actions {
  display: grid;
  grid-auto-flow: column;
  align-content: center;
  align-items: center;
  gap: 6px;
}

.resource-profile-actions .icon-button {
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 10px;
}

.game-content {
  width: 100%;
  gap: 12px;
}

.panel {
  border-radius: 14px;
}

#planet-panel .planet-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(360px, 1.28fr);
  align-items: start;
  gap: 12px;
}

#planet-panel .planet-viewer {
  height: clamp(320px, 48vw, 520px);
  min-height: 320px;
}

#planet-panel .status-panel {
  align-self: start;
  gap: 10px;
  padding: 14px;
}

#planet-panel .status-panel .planet-profile {
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 10px;
  padding: 10px;
}

#planet-panel .status-panel .planet-avatar {
  width: 74px;
  height: 74px;
}

#planet-panel .status-panel h3 {
  font-size: 0.98rem;
  margin: 2px 0 4px;
}

#planet-panel .bonus-effects-list {
  display: grid;
  gap: 6px;
}

#planet-panel .bonus-effect-row {
  grid-template-columns: 30px minmax(0, 1fr) auto;
  min-height: 42px;
  padding: 6px 8px;
  border-radius: 9px;
}

#planet-panel .bonus-effect-row img {
  width: 30px;
  height: 30px;
}

#planet-panel .bonus-effect-row strong {
  font-size: 0.72rem;
}

#planet-panel .bonus-effect-row small {
  font-size: 0.58rem;
}

#buildings-panel .iso-colony-shell {
  min-height: clamp(500px, 64vw, 680px);
}

#buildings-panel .iso-ground-plane {
  background-size: 190% auto;
}

@media (orientation: portrait) {
  .game-shell {
    width: min(100%, 980px);
    padding: clamp(10px, 1.6vw, 18px);
  }

  .game-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .resource-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .resource-profile-actions {
    grid-column: 1 / -1;
    justify-self: center;
  }

  #planet-panel .planet-layout {
    grid-template-columns: 1fr;
  }

  #planet-panel .planet-viewer {
    height: clamp(300px, 42vw, 440px);
  }

  #planet-panel .status-panel {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    align-items: start;
  }

  #planet-panel .status-panel h3 {
    grid-column: 1 / -1;
  }

  #planet-panel .bonus-effects-list {
    max-height: 310px;
    overflow: auto;
    padding-right: 2px;
  }
}

@media (min-width: 961px) and (max-width: 1200px) {
  .game-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .game-tab {
    min-height: 46px;
  }
}

/*
  Tablet UX pass: keep navigation shallow, make panels breathe, and avoid
  phone-sized cards floating in a large iPad viewport.
*/

.game-shell {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  width: min(100%, 1180px);
}

.game-tabs {
  position: relative;
  z-index: 20;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: stretch;
  gap: 8px;
  border-radius: 16px;
}

.game-tabs > .game-community-links {
  grid-column: 1 / -1;
  display: flex;
  margin: 0;
  padding-top: 8px;
}

.game-tab {
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)),
    rgba(8, 14, 15, 0.78);
}

.game-tab.active {
  border-color: rgba(66, 214, 198, 0.58);
  background:
    linear-gradient(135deg, rgba(66, 214, 198, 0.22), rgba(66, 214, 198, 0.08)),
    rgba(6, 22, 21, 0.9);
}

.game-tab-label {
  overflow: hidden;
  color: inherit;
  font-size: clamp(0.72rem, 1.25vw, 0.88rem);
  text-overflow: ellipsis;
}

.resource-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto !important;
  position: sticky;
  top: 8px;
  z-index: 18;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.25);
}

.red-alert-banner {
  min-height: 42px;
}

.planet-profile-actions.resource-profile-actions {
  min-width: max-content;
}

.tab-panel {
  width: 100%;
}

.tab-panel > .section-heading,
.army-section > .section-heading,
.research-section > .section-heading,
.academy-policies-section > .section-heading,
.fleet-command-section > .section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.army-categories,
.research-categories,
.fleet-command-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  overflow: visible;
}

.army-categories > button,
.research-categories > button,
.fleet-command-filters button {
  justify-content: center;
  min-height: 46px;
  padding: 8px 10px;
  white-space: normal;
}

.army-summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.army-current,
.research-current {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.army-list,
.research-list,
.market-grid,
.policies-list,
#commanders-panel .commanders-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 11px;
}

.research-current-card {
  min-height: 118px;
  padding: 12px;
  border-radius: 12px;
}

.research-current-card h3 {
  font-size: clamp(0.86rem, 1.35vw, 1.02rem);
}

.research-current-actions,
.unit-card-actions {
  gap: 6px;
}

.unit-card,
.policy-card,
.commander-card {
  border-radius: 13px !important;
}

.army-list .unit-card {
  aspect-ratio: 3 / 3.8;
}

.army-list .unit-card header h3 {
  font-size: clamp(0.72rem, 1.15vw, 0.88rem);
}

.army-list .unit-card header .icon-button,
.army-list .mobile-card-info-button,
#commanders-panel .card-visual > .mobile-card-info-button,
.academy-policies-section .policy-icon-button {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 9px;
}

.army-list .unit-card header .icon-button img,
.academy-policies-section .policy-icon-button img {
  width: 30px;
  height: 30px;
}

.market-card {
  grid-template-rows: auto 1fr auto;
  min-height: 172px;
  border-radius: 13px;
}

.market-card-main {
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
}

.market-card-icon {
  width: 72px;
  height: 72px;
}

.market-card h3 {
  font-size: clamp(0.84rem, 1.35vw, 1rem);
}

.fleet-command-summary {
  justify-content: stretch;
}

.fleet-command-summary span {
  flex: 1 1 0;
  justify-content: center;
  min-width: 0;
}

.fleet-command-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fleet-command-card {
  min-width: 0;
  border-radius: 13px;
}

.fleet-command-actions {
  align-items: center;
}

#starmap-panel .galaxy-section {
  border-radius: 14px;
}

#starmap-panel .galaxy-form {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 92px;
  gap: 8px;
}

.system-orbits-map,
#system-orbits-map {
  height: clamp(560px, calc(100dvh - 320px), 820px);
  min-height: 560px;
  border-radius: 14px;
}

.selected-planet {
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
  border-radius: 14px;
}

.selected-planet .starmap-2d-viewer {
  width: 128px;
  max-width: 128px;
  height: 128px !important;
}

#commanders-panel .academy-gacha-box {
  grid-template-columns: minmax(180px, 0.7fr) minmax(220px, 1fr) minmax(240px, 1fr);
  border-radius: 14px;
}

#commanders-panel .commander-card {
  aspect-ratio: 3 / 4.25;
  overflow: hidden;
}

#commanders-panel .card-portrait-name span:first-child,
.academy-policies-section .policy-name {
  font-size: clamp(0.78rem, 1.2vw, 0.95rem);
}

#commanders-panel .card-visual > .commander-skill-icons .unit-skill-icon {
  width: 34px;
  height: 34px;
}

.academy-policies-section .policy-card {
  aspect-ratio: 3 / 4.05;
}

.academy-policies-section .policy-card-footer {
  bottom: 54px;
}

.policy-hero-dialog,
.mobile-card-info-dialog,
#building-info-dialog,
#army-buy-dialog,
#transport-dialog,
#attack-dialog,
#planet-attack-confirm-dialog {
  width: min(760px, calc(100vw - 44px));
}

.mobile-card-info-dialog .mobile-unit-detail,
.mobile-card-info-dialog .mobile-commander-detail {
  max-width: 100%;
}

@media (orientation: portrait) {
  .game-shell {
    width: min(100%, 960px);
  }

  .game-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .resource-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    position: relative;
    top: auto;
  }

  .planet-profile-actions.resource-profile-actions {
    grid-column: 1 / -1;
    justify-self: center;
  }

  .army-list,
  .research-list,
  .market-grid,
  .policies-list,
  #commanders-panel .commanders-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .army-current,
  .research-current,
  .fleet-command-list {
    grid-template-columns: 1fr;
  }

  .army-categories,
  .research-categories,
  .fleet-command-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #commanders-panel .academy-gacha-box {
    grid-template-columns: minmax(180px, 0.78fr) minmax(0, 1fr);
  }

  #commanders-panel .academy-gacha-copy {
    grid-column: 1 / -1;
  }

  .system-orbits-map,
  #system-orbits-map {
    height: clamp(620px, calc(100dvh - 270px), 900px);
    min-height: 620px;
  }

  .selected-planet {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .selected-planet .starmap-2d-viewer {
    width: 112px;
    max-width: 112px;
    height: 112px !important;
  }
}

@media (orientation: landscape) {
  .game-tabs {
    grid-template-columns: repeat(9, minmax(0, 1fr)) !important;
  }

  .game-tab {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 30px auto auto;
    justify-items: center;
    min-height: 68px;
    padding: 7px 5px;
    text-align: center;
  }

  .game-tab .tab-notification,
  .game-tab .tab-progress-badge {
    position: absolute;
    top: 5px;
    right: 5px;
  }

  .game-community-links {
    display: none !important;
  }

  #planet-panel .planet-layout,
  #planet-panel .command-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  }
}

/*
  Tablet density pass: keep the command tabs in one scanline and make the
  army view feel closer to desktop without wasting portrait tablet space.
*/
.game-tabs > .game-community-links,
.game-community-links {
  display: none !important;
}

.game-tabs {
  /* Touch navigation uses left/right insets while fixed. A 100% width from
     the tablet layout would add those insets a second time and clip the row. */
  width: auto !important;
  grid-template-columns: none !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(86px, 1fr) !important;
  align-items: stretch !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: thin;
}

.game-tab {
  grid-template-columns: 24px minmax(0, 1fr) auto !important;
  grid-template-rows: 1fr !important;
  justify-items: start !important;
  align-items: center !important;
  min-width: 86px !important;
  min-height: 42px !important;
  padding: 7px 8px !important;
  text-align: left !important;
}

.game-tab-icon {
  width: 24px !important;
  height: 24px !important;
}

.game-tab-label {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: clamp(0.58rem, 0.95vw, 0.72rem) !important;
  line-height: 1.05 !important;
}

.game-tab .tab-notification,
.game-tab .tab-progress-badge {
  position: static !important;
  justify-self: end !important;
  align-self: center !important;
  min-width: 24px !important;
  height: 18px !important;
  padding: 0 4px !important;
  font-size: 0.56rem !important;
  line-height: 18px !important;
}

.army-section > .section-heading {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 500px) !important;
  align-items: end !important;
  gap: 10px !important;
}

.army-section > .section-heading .army-summary-grid,
.army-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 7px !important;
  width: 100% !important;
  margin: 0 0 0 auto !important;
}

.army-summary-grid .resource-tile {
  min-height: 46px !important;
  padding: 7px 9px !important;
  border-radius: 10px !important;
  background:
    linear-gradient(135deg, rgba(88, 255, 236, 0.08), rgba(255, 255, 255, 0.025)),
    rgba(12, 17, 18, 0.82) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

.army-summary-grid .resource-tile span,
.army-summary-grid .resource-tile small {
  color: var(--muted) !important;
  font-size: 0.55rem !important;
  letter-spacing: 0.04em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}

.army-summary-grid .resource-tile strong {
  font-size: clamp(0.86rem, 1.2vw, 1.02rem) !important;
  line-height: 1.05 !important;
}

.army-categories {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.army-categories button {
  min-height: 44px !important;
  padding: 8px 10px !important;
}

.army-list {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 9px !important;
}

.army-list .unit-card {
  aspect-ratio: 3 / 4.15 !important;
  border-radius: 12px !important;
}

.army-list .unit-card header {
  left: 5px !important;
  right: 5px !important;
  bottom: 5px !important;
  padding: 5px !important;
  gap: 4px !important;
}

.army-list .unit-card header h3 {
  min-height: 2.1em !important;
  font-size: clamp(0.58rem, 0.98vw, 0.74rem) !important;
  line-height: 1.05 !important;
}

.army-list .unit-card header .icon-button,
.army-list .mobile-card-info-button {
  width: 30px !important;
  min-width: 30px !important;
  height: 30px !important;
  border-radius: 8px !important;
}

.army-list .unit-card header .icon-button img,
.army-list .mobile-card-info-button :is(svg, img) {
  width: 25px !important;
  height: 25px !important;
}

.army-list .unit-avatar-skill-icons .unit-skill-icon {
  width: 28px !important;
  height: 28px !important;
}

@media (orientation: portrait) {
  .game-tabs {
    grid-template-columns: none !important;
    grid-auto-flow: column !important;
    grid-auto-columns: minmax(86px, 1fr) !important;
  }

  .army-list {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .army-section > .section-heading {
    grid-template-columns: 1fr !important;
  }

  .army-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .army-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Tablet research density: mirror the army card rhythm and keep headings calm. */
.research-section > .section-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: left !important;
  width: 100% !important;
}

.research-section > .section-heading > div {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  min-width: 0 !important;
  margin-right: auto !important;
}

.research-section > .section-heading .eyebrow {
  display: none !important;
}

.research-section .heading-with-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  justify-content: flex-start !important;
  text-align: left !important;
  width: auto !important;
}

.research-list,
.tech-group {
  width: 100% !important;
}

.tech-group h3 {
  max-width: 100% !important;
  margin: 0 0 8px !important;
  text-align: left !important;
}

.research-list .tech-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(128px, 1fr)) !important;
  gap: 9px !important;
}

.research-list .tech-card {
  display: grid !important;
  grid-template-rows: auto 1fr !important;
  min-height: 0 !important;
  min-width: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.research-list .tech-avatar {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  object-fit: cover !important;
}

.research-list .tech-card-body {
  padding: 8px !important;
  gap: 5px !important;
  min-width: 0 !important;
}

.research-list .tech-card-header {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 6px !important;
  min-width: 0 !important;
}

.research-list .tech-card strong {
  display: -webkit-box !important;
  min-width: 0 !important;
  overflow: hidden !important;
  overflow-wrap: normal !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
  word-break: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  font-size: clamp(0.62rem, 1vw, 0.78rem) !important;
  line-height: 1.08 !important;
}

.research-list .tech-card span,
.research-list .tech-card small {
  display: -webkit-box !important;
  overflow: hidden !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  font-size: clamp(0.54rem, 0.88vw, 0.68rem) !important;
  line-height: 1.22 !important;
}

.research-list .tech-card small {
  -webkit-line-clamp: 2 !important;
  color: var(--teal) !important;
}

.research-list .tech-card-actions {
  display: flex !important;
  gap: 3px !important;
}

.research-list .tech-card .icon-button {
  width: 30px !important;
  min-width: 30px !important;
  height: 30px !important;
  border-radius: 8px !important;
}

.research-list .tech-card .icon-button img {
  width: 25px !important;
  height: 25px !important;
}

@media (orientation: portrait) {
  .research-section > .section-heading {
    display: flex !important;
    justify-content: start !important;
    text-align: left !important;
  }

  .research-list .tech-grid {
    grid-template-columns: repeat(4, minmax(128px, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .research-list .tech-grid {
    grid-template-columns: repeat(3, minmax(108px, 1fr)) !important;
  }
}

/* Tablet full-width rows: avoid shrink-wrapped research content on iPad widths. */
.game-shell {
  width: min(100%, calc(100vw - 12px)) !important;
  max-width: none !important;
}

.game-content,
.tab-panel,
#research-panel,
.research-section,
.research-list,
.tech-group,
.research-list .tech-grid,
.research-current,
.research-categories {
  justify-self: stretch !important;
  align-self: stretch !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.research-list {
  display: block !important;
}

.research-section {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

.research-categories {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.research-current {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.research-list .tech-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.research-list .tech-card {
  width: 100% !important;
}

@media (orientation: portrait) {
  .game-shell {
    width: min(100%, calc(100vw - 12px)) !important;
    max-width: none !important;
  }

  .research-categories {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .research-current {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .research-list .tech-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* Tablet policy grid: four cards per row, stretched like research and army. */
#policies-panel,
#policies-panel .academy-policies-section,
#policies-panel .policies-list,
.academy-policies-section .policies-list {
  justify-self: stretch !important;
  align-self: stretch !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#policies-panel .academy-policies-section {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

#policies-panel .academy-policies-section > .eyebrow,
#policies-panel .academy-policies-section > h2 {
  text-align: left !important;
}

#policies-panel .policies-list,
.academy-policies-section .policies-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 9px !important;
}

#policies-panel .policy-card,
.academy-policies-section .policy-card {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  aspect-ratio: 3 / 4.08 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

#policies-panel .policy-avatar-frame,
.academy-policies-section .policy-avatar-frame {
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
}

#policies-panel .policy-card-header,
.academy-policies-section .policy-card-header {
  left: 6px !important;
  right: 6px !important;
  bottom: 6px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 5px !important;
  padding: 6px !important;
}

#policies-panel .policy-name,
.academy-policies-section .policy-name {
  display: -webkit-box !important;
  overflow: hidden !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  font-size: clamp(0.6rem, 0.95vw, 0.76rem) !important;
  line-height: 1.08 !important;
}

#policies-panel .policy-desc,
.academy-policies-section .policy-desc {
  display: none !important;
}

#policies-panel .policy-card-footer,
.academy-policies-section .policy-card-footer {
  left: 6px !important;
  right: 6px !important;
  bottom: 44px !important;
  gap: 4px !important;
}

#policies-panel .policy-effect,
#policies-panel .policy-assigned-commander span,
#policies-panel .policy-assigned-commander strong,
.academy-policies-section .policy-effect,
.academy-policies-section .policy-assigned-commander span,
.academy-policies-section .policy-assigned-commander strong {
  font-size: clamp(0.55rem, 0.82vw, 0.66rem) !important;
  line-height: 1.08 !important;
}

#policies-panel .policy-assigned-commander,
.academy-policies-section .policy-assigned-commander {
  grid-template-columns: 28px minmax(0, 1fr) !important;
  gap: 5px !important;
  padding: 4px !important;
}

#policies-panel .policy-hero-avatar,
.academy-policies-section .policy-hero-avatar {
  width: 28px !important;
  height: 28px !important;
}

#policies-panel .policy-icon-button,
.academy-policies-section .policy-icon-button {
  width: 31px !important;
  min-width: 31px !important;
  height: 31px !important;
  border-radius: 8px !important;
}

#policies-panel .policy-icon-button img,
.academy-policies-section .policy-icon-button img {
  width: 24px !important;
  height: 24px !important;
}

@media (orientation: portrait) {
  #policies-panel .policies-list,
  .academy-policies-section .policies-list {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* Tablet market and commander academy: four-column, full-width rows. */
#market-panel,
#market-panel .market-section,
#market-panel .market-layout,
#market-panel .market-tab-panel,
#market-panel .market-grid,
#market-panel .market-grid-protection,
#commanders-panel,
#commanders-panel .commanders-layout,
#commanders-panel .commanders-roster-section,
#commanders-panel .commanders-grid,
#commanders-panel #academy-commanders-grid {
  justify-self: stretch !important;
  align-self: stretch !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#market-panel .market-section,
#commanders-panel .commanders-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

#market-panel .section-heading,
#commanders-panel .academy-gacha-copy,
#commanders-panel .commanders-roster-section > h2 {
  text-align: left !important;
}

#market-panel .market-categories {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 8px !important;
  overflow: visible !important;
}

#market-panel .market-category-card {
  min-width: 0 !important;
  min-height: 44px !important;
  padding: 7px 8px !important;
}

#market-panel .market-category-card img {
  width: 28px !important;
  height: 28px !important;
}

#market-panel .market-category-card span {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: clamp(0.58rem, 0.92vw, 0.72rem) !important;
}

#market-panel .market-grid,
#market-panel .market-grid-protection {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 9px !important;
}

#market-panel .market-card {
  display: grid !important;
  grid-template-rows: 1fr auto !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 148px !important;
  padding: 9px !important;
  border-radius: 12px !important;
}

#market-panel .market-card-main {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) !important;
  gap: 8px !important;
  align-items: center !important;
}

#market-panel .market-card-icon {
  width: 58px !important;
  height: 58px !important;
  border-radius: 12px !important;
}

#market-panel .market-card h3 {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  font-size: clamp(0.68rem, 1vw, 0.82rem) !important;
  line-height: 1.08 !important;
}

#market-panel .market-card p,
#market-panel .market-card small {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  font-size: clamp(0.54rem, 0.86vw, 0.66rem) !important;
  line-height: 1.16 !important;
}

#market-panel .market-card-footer {
  gap: 6px !important;
}

#market-panel .market-card-footer .primary-button,
#market-panel .market-card-footer .ghost-button,
#market-panel .market-card-footer button {
  min-height: 32px !important;
  padding: 7px 9px !important;
  font-size: clamp(0.58rem, 0.9vw, 0.7rem) !important;
}

#commanders-panel .academy-gacha-section {
  display: grid !important;
  grid-template-columns: minmax(0, 0.45fr) minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 10px !important;
}

#commanders-panel .academy-gacha-copy {
  align-content: center !important;
  gap: 4px !important;
}

#commanders-panel .academy-gacha-copy p {
  margin: 0 !important;
}

#commanders-panel .academy-gacha-copy h2 {
  margin: 0 !important;
  font-size: clamp(1rem, 1.8vw, 1.3rem) !important;
}

#commanders-panel .academy-gacha-box {
  display: grid !important;
  grid-template-columns: minmax(120px, 0.42fr) minmax(160px, 0.58fr) minmax(180px, 0.8fr) !important;
  gap: 10px !important;
  min-height: 132px !important;
  padding: 10px !important;
  border-radius: 14px !important;
}

#commanders-panel .gacha-visual {
  min-height: 112px !important;
}

#commanders-panel .gacha-portal-ring {
  width: 96px !important;
  height: 96px !important;
}

#commanders-panel .gacha-portrait-stack .commander-avatar-placeholder {
  width: 64px !important;
  height: 86px !important;
}

#commanders-panel .gacha-controls {
  gap: 6px !important;
}

#commanders-panel .draw-btn {
  min-height: 36px !important;
  padding: 8px 12px !important;
  font-size: clamp(0.66rem, 1vw, 0.8rem) !important;
}

#commanders-panel .commanders-grid,
#commanders-panel #academy-commanders-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 9px !important;
}

#commanders-panel .commander-card {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  aspect-ratio: 3 / 4.18 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

#commanders-panel .card-visual {
  height: 100% !important;
  min-height: 0 !important;
}

#commanders-panel .card-portrait-name {
  left: 6px !important;
  right: 6px !important;
  bottom: 6px !important;
  padding: 6px !important;
}

#commanders-panel .card-portrait-name span:first-child {
  display: -webkit-box !important;
  overflow: hidden !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  font-size: clamp(0.62rem, 0.98vw, 0.78rem) !important;
  line-height: 1.08 !important;
}

#commanders-panel .commander-level {
  font-size: clamp(0.58rem, 0.86vw, 0.68rem) !important;
}

#commanders-panel .card-visual > .commander-skill-icons .unit-skill-icon {
  width: 32px !important;
  height: 32px !important;
}

#commanders-panel .card-visual > .mobile-card-info-button {
  width: 31px !important;
  min-width: 31px !important;
  height: 31px !important;
}

@media (orientation: portrait) {
  #market-panel .market-grid,
  #market-panel .market-grid-protection,
  #commanders-panel .commanders-grid,
  #commanders-panel #academy-commanders-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* Tablet mobile-parity polish.
   Portrait tablets should feel like the mobile UI with more breathing room,
   while landscape tablets keep the wider four-column density. */
#policies-panel,
#market-panel,
#starmap-panel,
#commanders-panel {
  justify-self: stretch !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

#policies-panel .academy-policies-section,
#market-panel .market-section,
#starmap-panel .galaxy-section,
#commanders-panel .commanders-layout,
#commanders-panel .commanders-roster-section {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#policies-panel .policy-hero-picker,
.academy-policies-section .policy-hero-picker {
  position: fixed !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  z-index: 1400 !important;
  width: min(520px, calc(100vw - 44px)) !important;
  max-height: min(70dvh, 560px) !important;
  overflow-y: auto !important;
  padding: 10px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(75, 255, 236, 0.42) !important;
  background:
    linear-gradient(145deg, rgba(9, 31, 35, 0.98), rgba(16, 18, 32, 0.98)),
    rgba(8, 14, 18, 0.98) !important;
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.58), 0 0 24px rgba(75, 255, 236, 0.14) !important;
}

#policies-panel .policy-hero-picker .policy-hero-option,
.academy-policies-section .policy-hero-picker .policy-hero-option {
  min-height: 58px !important;
  border-radius: 12px !important;
}

#starmap-panel .galaxy-section {
  display: grid !important;
  gap: 12px !important;
}

#starmap-panel .galaxy-grid,
#starmap-panel .starmap-main-grid {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

#starmap-panel .galaxy-section > .section-heading {
  margin-bottom: 0 !important;
}

#starmap-panel .galaxy-form,
#starmap-panel .galaxy-nav-compact,
#starmap-panel .nearby-systems {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

#starmap-panel .system-orbits-map,
#starmap-panel #system-orbits-map {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

#starmap-panel .selected-planet {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#starmap-panel .selected-object-info,
#starmap-panel .selected-object-summary,
#starmap-panel #selected-planet-details {
  min-width: 0 !important;
}

@media (orientation: portrait) {
  #policies-panel .policies-list,
  .academy-policies-section .policies-list,
  #market-panel .market-grid,
  #market-panel .market-grid-protection,
  #commanders-panel .commanders-grid,
  #commanders-panel #academy-commanders-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  #policies-panel .policy-card,
  .academy-policies-section .policy-card {
    aspect-ratio: 3 / 4.15 !important;
    min-height: 0 !important;
    border-radius: 13px !important;
  }

  #policies-panel .policy-card::before,
  .academy-policies-section .policy-card::before {
    opacity: 0.42 !important;
  }

  #policies-panel .policy-card-header,
  .academy-policies-section .policy-card-header {
    left: 7px !important;
    right: 7px !important;
    top: 7px !important;
    padding: 6px 7px !important;
    min-height: 0 !important;
  }

  #policies-panel .policy-card-header h3,
  .academy-policies-section .policy-card-header h3 {
    font-size: clamp(0.72rem, 1.8vw, 0.9rem) !important;
    line-height: 1.08 !important;
    -webkit-line-clamp: 2 !important;
  }

  #policies-panel .policy-card-footer,
  .academy-policies-section .policy-card-footer {
    left: 7px !important;
    right: 7px !important;
    bottom: 7px !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    gap: 5px !important;
    padding: 6px !important;
  }

  #policies-panel .policy-assigned-hero,
  .academy-policies-section .policy-assigned-hero {
    min-width: 0 !important;
    padding: 4px !important;
  }

  #policies-panel .policy-assigned-hero span,
  .academy-policies-section .policy-assigned-hero span,
  #policies-panel .policy-effect,
  .academy-policies-section .policy-effect {
    font-size: clamp(0.55rem, 1.45vw, 0.68rem) !important;
    line-height: 1.08 !important;
  }

  #market-panel .market-categories {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  #market-panel .market-card {
    min-height: 168px !important;
    padding: 10px !important;
  }

  #market-panel .market-card-main {
    grid-template-columns: 70px minmax(0, 1fr) !important;
    align-items: start !important;
  }

  #market-panel .market-card-icon {
    width: 70px !important;
    height: 70px !important;
    border-radius: 14px !important;
  }

  #market-panel .market-card h3 {
    font-size: clamp(0.78rem, 1.8vw, 0.95rem) !important;
    line-height: 1.08 !important;
  }

  #market-panel .market-card p,
  #market-panel .market-card small {
    font-size: clamp(0.62rem, 1.42vw, 0.76rem) !important;
    line-height: 1.18 !important;
  }

  #starmap-panel .galaxy-grid,
  #starmap-panel .starmap-main-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  #starmap-panel .galaxy-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto !important;
    gap: 7px !important;
  }

  #starmap-panel .galaxy-actions,
  #starmap-panel .nearby-systems {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
    overflow: visible !important;
  }

  #starmap-panel .galaxy-actions .ghost-button,
  #starmap-panel .nearby-systems .system-pill {
    min-width: 0 !important;
    width: 100% !important;
    justify-content: center !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #starmap-panel .system-orbits-map,
  #starmap-panel #system-orbits-map {
    height: clamp(620px, calc(100dvh - 285px), 940px) !important;
    min-height: 620px !important;
    border-radius: 14px !important;
  }

  #starmap-panel .selected-planet {
    display: grid !important;
    grid-template-columns: 96px minmax(0, 1fr) auto !important;
    gap: 10px !important;
    align-items: center !important;
    padding: 10px !important;
  }

  #starmap-panel .selected-planet .starmap-viewer,
  #starmap-panel .selected-planet .starmap-2d-viewer {
    width: 96px !important;
    height: 96px !important;
    min-height: 96px !important;
    border-radius: 16px !important;
  }

  #starmap-panel .selected-action-group {
    grid-template-columns: repeat(2, 42px) !important;
    justify-content: end !important;
    gap: 7px !important;
  }

  #starmap-panel .selected-action-group .starmap-action-button {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    padding: 5px !important;
  }

  #commanders-panel .academy-gacha-section {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  #commanders-panel .academy-gacha-box {
    grid-template-columns: 126px minmax(0, 1fr) !important;
    min-height: 142px !important;
    gap: 10px !important;
  }

  #commanders-panel .gacha-controls {
    align-content: center !important;
  }

  #commanders-panel .academy-draw-result {
    grid-column: 1 / -1 !important;
  }

  #commanders-panel .commander-card {
    aspect-ratio: 3 / 4.25 !important;
    border-radius: 13px !important;
  }

  #commanders-panel .card-portrait-name span:first-child {
    font-size: clamp(0.82rem, 2vw, 1.05rem) !important;
    line-height: 1.08 !important;
    -webkit-line-clamp: 2 !important;
  }

  #commanders-panel .commander-level {
    font-size: clamp(0.68rem, 1.45vw, 0.82rem) !important;
  }

  #commanders-panel .card-visual > .commander-skill-icons .unit-skill-icon {
    width: 40px !important;
    height: 40px !important;
  }

  #commanders-panel .card-visual > .mobile-card-info-button {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
  }
}

@media (orientation: landscape) {
  #policies-panel .policies-list,
  .academy-policies-section .policies-list,
  #market-panel .market-grid,
  #market-panel .market-grid-protection,
  #commanders-panel .commanders-grid,
  #commanders-panel #academy-commanders-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  #starmap-panel .system-orbits-map,
  #starmap-panel #system-orbits-map {
    height: clamp(620px, calc(100dvh - 220px), 980px) !important;
  }
}

/* Tablet policy hotfix: clear images, no yellow eyebrow, three compact columns. */
#policies-panel .academy-policies-section > .eyebrow,
#policies-panel .academy-policies-section .section-heading .eyebrow {
  display: none !important;
}

#policies-panel .academy-policies-section,
#policies-panel .academy-policies-section .section-heading {
  margin-top: 0 !important;
}

#policies-panel .academy-policies-section .section-heading {
  margin-bottom: 8px !important;
}

#policies-panel .policies-list,
.academy-policies-section .policies-list {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 9px !important;
}

#policies-panel .policy-card,
.academy-policies-section .policy-card {
  aspect-ratio: 3 / 4.05 !important;
  min-height: 0 !important;
  height: auto !important;
  border-radius: 12px !important;
  background: rgba(7, 13, 16, 0.74) !important;
}

#policies-panel .policy-card::before,
#policies-panel .policy-card::after,
.academy-policies-section .policy-card::before,
.academy-policies-section .policy-card::after {
  opacity: 0.08 !important;
  pointer-events: none !important;
}

#policies-panel .policy-avatar-frame,
.academy-policies-section .policy-avatar-frame {
  min-height: 0 !important;
  height: 100% !important;
  border-radius: inherit !important;
}

#policies-panel .policy-avatar,
.academy-policies-section .policy-avatar {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 1 !important;
  filter: brightness(1.08) contrast(1.04) saturate(1.05) !important;
}

#policies-panel .policy-avatar-frame::after,
.academy-policies-section .policy-avatar-frame::after {
  height: 42% !important;
  opacity: 0.58 !important;
  background:
    linear-gradient(180deg, rgba(4, 7, 9, 0), rgba(4, 7, 9, 0.55) 48%, rgba(4, 7, 9, 0.9)) !important;
}

#policies-panel .policy-card-header,
.academy-policies-section .policy-card-header {
  left: 7px !important;
  right: 7px !important;
  top: 7px !important;
  bottom: auto !important;
  padding: 5px 6px !important;
  border-radius: 8px !important;
  background: linear-gradient(180deg, rgba(3, 7, 10, 0.64), rgba(3, 7, 10, 0.28)) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(1px) !important;
}

#policies-panel .policy-card-header h3,
#policies-panel .policy-name,
.academy-policies-section .policy-card-header h3,
.academy-policies-section .policy-name {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  font-size: clamp(0.62rem, 1.35vw, 0.78rem) !important;
  line-height: 1.08 !important;
}

#policies-panel .policy-desc,
.academy-policies-section .policy-desc {
  display: none !important;
}

#policies-panel .policy-card-footer,
.academy-policies-section .policy-card-footer {
  left: 7px !important;
  right: 7px !important;
  bottom: 7px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  align-items: end !important;
  gap: 5px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

#policies-panel .policy-assigned-commander,
.academy-policies-section .policy-assigned-commander,
#policies-panel .policy-assigned-hero,
.academy-policies-section .policy-assigned-hero {
  grid-template-columns: 28px minmax(0, 1fr) !important;
  gap: 5px !important;
  min-width: 0 !important;
  padding: 4px 5px !important;
  border-radius: 8px !important;
  background: rgba(6, 18, 20, 0.68) !important;
  backdrop-filter: blur(2px) !important;
}

#policies-panel .policy-hero-avatar,
.academy-policies-section .policy-hero-avatar {
  width: 28px !important;
  height: 28px !important;
  border-radius: 7px !important;
}

#policies-panel .policy-effect,
#policies-panel .policy-effect-detail,
#policies-panel .policy-assigned-commander span,
#policies-panel .policy-assigned-commander strong,
#policies-panel .policy-assigned-hero span,
.academy-policies-section .policy-effect,
.academy-policies-section .policy-effect-detail,
.academy-policies-section .policy-assigned-commander span,
.academy-policies-section .policy-assigned-commander strong,
.academy-policies-section .policy-assigned-hero span {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: clamp(0.5rem, 1.08vw, 0.62rem) !important;
  line-height: 1.05 !important;
}

#policies-panel .policy-icon-button,
.academy-policies-section .policy-icon-button {
  width: 29px !important;
  min-width: 29px !important;
  height: 29px !important;
  border-radius: 8px !important;
}

#policies-panel .policy-icon-button img,
#policies-panel .policy-icon-button svg,
.academy-policies-section .policy-icon-button img,
.academy-policies-section .policy-icon-button svg {
  width: 22px !important;
  height: 22px !important;
}

/* Tablet black market hotfix: no yellow eyebrow, three readable item columns. */
#market-panel .market-section > .section-heading .eyebrow,
#market-panel .market-section > .eyebrow {
  display: none !important;
}

#market-panel .market-section > .section-heading {
  margin: 0 0 8px !important;
}

#market-panel .market-section > .section-heading h2,
#market-panel .market-section > h2 {
  margin: 0 !important;
}

#market-panel .market-grid,
#market-panel .market-grid-protection,
#market-panel .market-tab-panel .market-grid,
#market-panel .market-tab-panel .market-grid-protection {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#market-panel .market-card,
#market-panel .market-tab-panel .market-card {
  min-height: 172px !important;
  padding: 10px !important;
  border-radius: 13px !important;
}

#market-panel .market-card-main,
#market-panel .market-tab-panel .market-card-main {
  grid-template-columns: 66px minmax(0, 1fr) !important;
  gap: 9px !important;
}

#market-panel .market-card-icon,
#market-panel .market-tab-panel .market-card-icon {
  width: 66px !important;
  height: 66px !important;
  border-radius: 13px !important;
}

#market-panel .market-card h3,
#market-panel .market-tab-panel .market-card h3 {
  font-size: clamp(0.74rem, 1.3vw, 0.9rem) !important;
  line-height: 1.08 !important;
  -webkit-line-clamp: 2 !important;
}

#market-panel .market-card p,
#market-panel .market-card small,
#market-panel .market-tab-panel .market-card p,
#market-panel .market-tab-panel .market-card small {
  font-size: clamp(0.58rem, 1vw, 0.7rem) !important;
  line-height: 1.14 !important;
  -webkit-line-clamp: 2 !important;
}

#market-panel .market-card-footer,
#market-panel .market-tab-panel .market-card-footer {
  align-items: end !important;
  gap: 6px !important;
}

@media (orientation: portrait) {
  #market-panel .market-grid,
  #market-panel .market-grid-protection,
  #market-panel .market-tab-panel .market-grid,
  #market-panel .market-tab-panel .market-grid-protection {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Tablet fleet command hotfix: compact title row, no yellow eyebrow. */
#fleet-panel .fleet-command-section > .section-heading .eyebrow,
#fleet-panel .fleet-command-section > .eyebrow {
  display: none !important;
}

#fleet-panel .fleet-command-section {
  display: grid !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: none !important;
}

#fleet-panel .fleet-command-section > .section-heading {
  display: grid !important;
  grid-template-columns: minmax(150px, 0.72fr) minmax(260px, 1fr) !important;
  align-items: center !important;
  gap: 9px !important;
  margin: 0 !important;
}

#fleet-panel .fleet-command-section > .section-heading > div:first-child {
  min-width: 0 !important;
}

#fleet-panel .fleet-command-section > .section-heading h2 {
  margin: 0 !important;
  overflow: hidden !important;
  color: var(--text) !important;
  font-size: clamp(1rem, 1.65vw, 1.28rem) !important;
  line-height: 1.05 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#fleet-panel .fleet-command-summary {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 6px !important;
  width: 100% !important;
  min-width: 0 !important;
}

#fleet-panel .fleet-command-summary span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 38px !important;
  padding: 7px 6px !important;
  overflow: hidden !important;
  border-radius: 10px !important;
  font-size: clamp(0.58rem, 1vw, 0.72rem) !important;
  line-height: 1.08 !important;
  text-align: center !important;
  text-overflow: ellipsis !important;
  white-space: normal !important;
}

@media (orientation: portrait) {
  #fleet-panel .fleet-command-section > .section-heading {
    grid-template-columns: minmax(132px, 0.64fr) minmax(230px, 1fr) !important;
    gap: 7px !important;
  }

  #fleet-panel .fleet-command-summary {
    gap: 5px !important;
  }

  #fleet-panel .fleet-command-summary span {
    min-height: 34px !important;
    padding: 6px 4px !important;
    font-size: clamp(0.54rem, 1.18vw, 0.66rem) !important;
  }
}

/* Tablet starmap hotfix: hide yellow eyebrow and keep system shortcuts on one scroll row. */
#starmap-panel .galaxy-section > .section-heading .eyebrow,
#starmap-panel .galaxy-section > .eyebrow {
  display: none !important;
}

#starmap-panel .galaxy-section > .section-heading {
  margin: 0 0 8px !important;
}

#starmap-panel #galaxy-title {
  margin: 0 !important;
}

#starmap-panel .galaxy-nav-compact {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 6px !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  padding: 6px !important;
  box-sizing: border-box !important;
}

#starmap-panel .galaxy-nav-compact .galaxy-actions {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;
  min-width: 0 !important;
  overflow: visible !important;
}

#starmap-panel .galaxy-nav-compact .nearby-systems {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 0 1px 2px !important;
  scroll-snap-type: x proximity !important;
  scrollbar-width: thin !important;
}

#starmap-panel .galaxy-nav-compact .ghost-button,
#starmap-panel .galaxy-nav-compact .system-pill {
  flex: 0 0 auto !important;
  min-height: 30px !important;
  padding: 5px 9px !important;
  border-radius: 8px !important;
  font-size: clamp(0.58rem, 1vw, 0.72rem) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  scroll-snap-align: start !important;
}

#starmap-panel .galaxy-nav-compact .galaxy-actions .ghost-button {
  min-width: 34px !important;
}

#starmap-panel .galaxy-nav-compact #current-system-button {
  max-width: 96px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media (orientation: portrait) {
  #starmap-panel .galaxy-nav-compact {
    grid-template-columns: auto minmax(0, 1fr) !important;
    gap: 5px !important;
  }

  #starmap-panel .galaxy-nav-compact .ghost-button,
  #starmap-panel .galaxy-nav-compact .system-pill {
    min-height: 29px !important;
    padding: 5px 8px !important;
    font-size: clamp(0.55rem, 1.15vw, 0.66rem) !important;
  }
}

/* Tablet black market fill-width repair: parent panels must not shrink to card content. */
#market-panel .market-section,
#market-panel .market-layout,
#market-panel #market-time-panel,
#market-panel #market-misc-panel,
#market-panel #market-time-list,
#market-panel #market-misc-list {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-self: stretch !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
}

#market-panel .market-tab-panel[hidden] {
  display: none !important;
}

#market-panel .market-tab-panel:not([hidden]) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-self: stretch !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
}

#market-panel .market-layout {
  overflow: visible !important;
}

#market-panel .market-grid,
#market-panel .market-grid-protection,
#market-panel .market-tab-panel .market-grid,
#market-panel .market-tab-panel .market-grid-protection,
#market-panel #market-time-list.market-grid,
#market-panel #market-misc-list.market-grid {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  justify-content: stretch !important;
  justify-items: stretch !important;
  align-items: stretch !important;
}

#market-panel .market-card,
#market-panel .market-tab-panel .market-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-self: stretch !important;
}

@media (orientation: portrait) {
  #market-panel .market-grid,
  #market-panel .market-grid-protection,
  #market-panel .market-tab-panel .market-grid,
  #market-panel .market-tab-panel .market-grid-protection,
  #market-panel #market-time-list.market-grid,
  #market-panel #market-misc-list.market-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Tablet starmap system strip repair: fixed controls, scrollable system chips. */
#starmap-panel .galaxy-nav-compact {
  grid-template-columns: max-content minmax(0, 1fr) !important;
}

#starmap-panel .galaxy-nav-compact .galaxy-actions {
  flex: 0 0 auto !important;
  display: grid !important;
  grid-template-columns: 38px minmax(72px, 96px) 38px !important;
  align-items: center !important;
  gap: 5px !important;
  width: auto !important;
  min-width: 0 !important;
}

#starmap-panel .galaxy-nav-compact .galaxy-actions .ghost-button {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#starmap-panel .galaxy-nav-compact .nearby-systems {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  min-width: 0 !important;
}

#starmap-panel .galaxy-nav-compact .nearby-systems .system-pill {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 88px !important;
  max-width: 118px !important;
  justify-content: center !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media (orientation: portrait) {
  #starmap-panel .galaxy-nav-compact .galaxy-actions {
    grid-template-columns: 34px minmax(68px, 86px) 34px !important;
    gap: 4px !important;
  }

  #starmap-panel .galaxy-nav-compact .nearby-systems .system-pill {
    min-width: 82px !important;
    max-width: 104px !important;
  }
}

/* Tablet commander academy hotfix: three columns and brighter portrait cards. */
#commanders-panel .commanders-grid,
#commanders-panel #academy-commanders-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-items: stretch !important;
}

#commanders-panel .commander-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  aspect-ratio: 3 / 4.15 !important;
  border-radius: 13px !important;
  background: rgba(8, 13, 18, 0.74) !important;
}

#commanders-panel .card-visual {
  height: 100% !important;
  min-height: 0 !important;
  background: rgba(7, 12, 16, 0.38) !important;
}

#commanders-panel .commander-avatar-placeholder {
  opacity: 1 !important;
  filter: brightness(1.06) contrast(1.04) saturate(1.05) !important;
  background-position: center top !important;
}

#commanders-panel .commander-avatar-placeholder.locked,
#commanders-panel .commander-avatar-placeholder.locked-preview {
  opacity: 0.88 !important;
  filter: grayscale(28%) brightness(0.78) contrast(1.02) saturate(0.92) !important;
}

#commanders-panel .card-visual.locked::before {
  opacity: 0.32 !important;
  background: linear-gradient(180deg, rgba(2, 5, 7, 0.04), rgba(2, 5, 7, 0.28)) !important;
}

#commanders-panel .card-visual::after {
  height: 42% !important;
  opacity: 0.64 !important;
  background:
    linear-gradient(180deg, rgba(3, 6, 9, 0), rgba(3, 6, 9, 0.52) 46%, rgba(3, 6, 9, 0.92)) !important;
}

#commanders-panel .card-portrait-name {
  left: 7px !important;
  right: 7px !important;
  bottom: 7px !important;
  padding: 0 !important;
  z-index: 5 !important;
}

#commanders-panel .card-portrait-name span:first-child {
  font-size: clamp(0.74rem, 1.5vw, 0.92rem) !important;
  line-height: 1.08 !important;
}

#commanders-panel .card-visual > .commander-skill-icons {
  left: 8px !important;
  right: 54px !important;
  bottom: 40px !important;
  gap: 5px !important;
  z-index: 5 !important;
}

#commanders-panel .card-visual > .commander-skill-icons .unit-skill-icon,
#commanders-panel .card-visual > .commander-skill-icons .unit-skill-chip > .unit-skill-icon {
  width: 34px !important;
  height: 34px !important;
}

#commanders-panel .card-visual > .mobile-card-info-button {
  right: 8px !important;
  bottom: 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  height: 34px !important;
  z-index: 6 !important;
}

@media (orientation: portrait) {
  #commanders-panel .commanders-grid,
  #commanders-panel #academy-commanders-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  #commanders-panel .card-portrait-name span:first-child {
    font-size: clamp(0.68rem, 1.7vw, 0.86rem) !important;
  }

  #commanders-panel .card-visual > .commander-skill-icons .unit-skill-icon,
  #commanders-panel .card-visual > .commander-skill-icons .unit-skill-chip > .unit-skill-icon {
    width: 31px !important;
    height: 31px !important;
  }

  #commanders-panel .card-visual > .mobile-card-info-button {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
  }
}

/* Tablet commander card readability pass: keep labels off the portrait art. */
#commanders-panel .commander-card {
  overflow: hidden !important;
}

#commanders-panel .commander-card::before,
#commanders-panel .commander-card::after {
  pointer-events: none !important;
}

#commanders-panel .card-visual::before {
  opacity: 0.18 !important;
}

#commanders-panel .commander-card .commander-badge-rarity {
  top: 7px !important;
  left: 7px !important;
  right: auto !important;
  max-width: calc(100% - 46px) !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  z-index: 7 !important;
}

#commanders-panel .commander-card .commander-lock-badge,
#commanders-panel .commander-card .commander-lock-icon,
#commanders-panel .commander-card .locked-badge,
#commanders-panel .commander-card [data-lock-badge] {
  top: 7px !important;
  right: 7px !important;
  z-index: 8 !important;
}

#commanders-panel .card-portrait-name {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 5px !important;
  left: 6px !important;
  right: 6px !important;
  bottom: 6px !important;
  padding: 5px 6px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 9px !important;
  background: rgba(4, 9, 12, 0.72) !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.32) !important;
  backdrop-filter: blur(3px) !important;
}

#commanders-panel .card-portrait-name span:first-child {
  display: block !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8) !important;
}

#commanders-panel .commander-level {
  flex: 0 0 auto !important;
  padding: 2px 5px !important;
  border-radius: 6px !important;
  background: rgba(66, 214, 198, 0.18) !important;
  font-size: clamp(0.54rem, 1vw, 0.68rem) !important;
  line-height: 1 !important;
}

#commanders-panel .card-visual > .commander-skill-icons {
  left: 8px !important;
  right: auto !important;
  bottom: 50px !important;
  max-width: calc(100% - 52px) !important;
  padding: 3px !important;
  border-radius: 10px !important;
  background: rgba(3, 9, 12, 0.32) !important;
  backdrop-filter: blur(2px) !important;
}

#commanders-panel .card-visual > .mobile-card-info-button {
  right: 8px !important;
  bottom: 50px !important;
}

@media (orientation: portrait) {
  #commanders-panel .card-portrait-name {
    left: 5px !important;
    right: 5px !important;
    bottom: 5px !important;
    padding: 4px 5px !important;
  }

  #commanders-panel .card-visual > .commander-skill-icons,
  #commanders-panel .card-visual > .mobile-card-info-button {
    bottom: 43px !important;
  }
}

/* Tablet commander hard fix: remove the dark veil entirely. */
#commanders-panel .commander-card .card-visual::before,
#commanders-panel .commander-card .card-visual::after,
#commanders-panel .commander-card .card-visual.locked::before,
#commanders-panel .commander-card .card-visual.locked::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}

#commanders-panel .commander-card .commander-avatar-placeholder,
#commanders-panel .commander-card .commander-avatar-placeholder.locked,
#commanders-panel .commander-card .commander-avatar-placeholder.locked-preview {
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

#commanders-panel .commander-card.locked,
#commanders-panel .commander-card .card-visual.locked {
  opacity: 1 !important;
  filter: none !important;
}

#commanders-panel .commander-card.locked .commander-avatar-placeholder,
#commanders-panel .commander-card.locked .commander-avatar-placeholder.locked-preview {
  filter: brightness(0.92) contrast(1.03) saturate(0.98) !important;
  opacity: 1 !important;
}

#commanders-panel .commander-card.locked .card-portrait-name {
  background: rgba(4, 9, 12, 0.78) !important;
}

/* Keep market category tabs isolated even after tablet width overrides. */
#market-panel #market-time-panel[hidden],
#market-panel #market-misc-panel[hidden],
#market-panel #market-vip-panel[hidden],
#market-panel #market-exchange-panel[hidden],
#market-panel #market-inventory-panel[hidden],
#market-panel .market-tab-panel[hidden] {
  display: none !important;
}
