/* Keep the machine and its selectors in one Yandex Games viewport.
   Only inventory lists scroll. No gameplay, art or economy is changed here. */
body:is([data-view="upgrade"], [data-view="craft"]) > .activity-bar,
body:is([data-view="upgrade"], [data-view="craft"]) .game-shell > footer {
  display: none;
}
body:is([data-view="upgrade"], [data-view="craft"]) .game-shell {
  overflow: hidden;
  padding: 12px 20px;
}
#view-upgrade:not([hidden]),
#view-craft:not([hidden]) {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  gap: 8px;
}
:is(#view-upgrade, #view-craft) > .view-heading {
  flex: 0 0 auto;
  margin: 0;
}
:is(#view-upgrade, #view-craft) .view-heading h1 {
  margin: 0;
  font-size: 25px;
}
:is(#view-upgrade, #view-craft) .view-heading .eyebrow { display: none; }
:is(#view-upgrade, #view-craft) .view-heading > p { font-size: 10px; }

/* Upgrade: compact three-part machine, then two independent selectors. */
#view-upgrade .upgrade-stage {
  flex: 0 0 auto;
  grid-template-columns: minmax(0,1fr) minmax(140px,210px) minmax(0,1fr);
  gap: 12px;
  padding: 10px;
}
#view-upgrade .upgrade-machine {
  grid-column: auto;
  grid-row: auto;
  flex-direction: column;
  gap: 8px;
  padding: 0;
}
#view-upgrade .chance-dial {
  width: clamp(110px,20dvh,174px);
  height: clamp(110px,20dvh,174px);
  flex: 0 0 auto;
}
#view-upgrade .chance-center { inset: 25px; }
#view-upgrade .chance-center strong { font-size: 29px; letter-spacing: -1px; }
#view-upgrade .chance-center small { font-size: 7px; letter-spacing: .3px; }
#view-upgrade .chance-center span { font-size: 8px; margin-top: 4px; }
#view-upgrade .upgrade-machine > .primary {
  width: 100%;
  max-width: 210px;
  min-height: 40px;
  padding: 8px;
  font-size: 12px;
}
#view-upgrade .upgrade-bay { min-height: 0; padding: 10px; justify-content: flex-start; }
#view-upgrade .upgrade-bay .pane-title { gap: 4px; }
#view-upgrade .upgrade-bay .pane-title h2 { font-size: 12px; }
#view-upgrade .upgrade-bay .pane-title > span { font-size: 10px; }
#view-upgrade :is(#upgradeSourcePreview, #upgradeTargetPreview) {
  flex: 1;
  min-height: 0;
  display: grid;
  align-items: center;
}
#view-upgrade :is(.upgrade-preview, .upgrade-preview-empty) { min-height: 0; gap: 7px; }
#view-upgrade .upgrade-preview .skin-visual { height: clamp(55px,12dvh,108px); }
#view-upgrade .upgrade-preview strong { font-size: 12px; margin: 0; overflow-wrap: anywhere; }
#view-upgrade .upgrade-preview small { font-size: 9px; margin-top: 3px; }
#view-upgrade .upgrade-preview-empty { padding: 12px 4px; font-size: 10px; }
#view-upgrade .upgrade-preview-empty i { font-size: 28px; }
#view-upgrade .upgrade-stake-row { flex: 0 0 auto; margin: 0; padding: 5px 10px; }
#view-upgrade .upgrade-stake-row input { padding: 6px 9px; min-height: 32px; }
#view-upgrade .upgrade-controls { flex: 0 0 auto; margin: 0; padding: 0; gap: 8px; }
#view-upgrade .upgrade-controls p { font-size: 10px; max-width: 58%; }
#view-upgrade .upgrade-controls .segmented button { min-height: 34px; padding: 6px 12px; }
#view-upgrade .chooser-grid {
  flex: 1 1 0;
  min-height: 0;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 10px;
}
#view-upgrade .chooser-grid > section {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 8px;
}
#view-upgrade .chooser-grid .pane-title { flex: 0 0 auto; margin: 0 0 6px; min-height: 30px; }
#view-upgrade .chooser-grid h2 { font-size: 12px; }
#view-upgrade .small-search { min-width: 0; max-width: 55%; }
#view-upgrade .small-search input { width: 100%; min-width: 0; padding: 7px; font-size: 10px; }
#view-upgrade .chooser {
  flex: 1 1 0;
  min-height: 0;
  max-height: none;
  grid-template-columns: repeat(auto-fill,minmax(105px,1fr));
  grid-auto-rows: max-content;
  align-content: start;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

/* Contract: all ten selected slots and the signing action remain above the list. */
#view-craft .contract-options { flex: 0 0 auto; margin: 0; gap: 8px; }
#view-craft .contract-options .segmented button { min-height: 42px; padding: 6px 12px; }
#view-craft .contract-options small { margin-top: 2px; }
#view-craft .contract-options p { font-size: 10px; }
#view-craft .craft-machine { flex: 0 0 auto; padding: 10px; }
#view-craft .craft-topline { margin-bottom: 8px; font-size: 10px; }
#view-craft .contract-machine-body { grid-template-columns: minmax(0,1fr) 105px; gap: 14px; }
#view-craft .contract-slots { gap: 6px; }
#view-craft .contract-slots .craft-slot { height: clamp(55px,10dvh,83px); padding: 4px; }
#view-craft .contract-slots .craft-slot .skin-visual { height: clamp(24px,5dvh,43px); }
#view-craft .contract-slots .craft-slot strong { font-size: 9px; }
#view-craft .contract-slots .craft-slot small { margin-top: 2px; font-size: 9px; }
#view-craft .contract-slots .craft-slot > span { top: 3px; left: 4px; font-size: 8px; }
#view-craft .contract-slots .craft-slot > i { font-size: 25px; }
#view-craft .contract-slots .craft-slot > p { font-size: 8px; margin-top: 3px; }
#view-craft .craft-reactor { width: 105px; height: 105px; grid-column: auto; margin: 0; }
#view-craft .craft-reactor strong { font-size: 36px; }
#view-craft .craft-reactor > span { font-size: 6px; }
#view-craft .craft-bottom { margin-top: 8px; padding-top: 8px; gap: 10px; flex-wrap: nowrap; }
#view-craft .craft-bottom strong { font-size: 21px; }
#view-craft .craft-bottom p { font-size: 10px; max-width: 45%; }
#view-craft .craft-bottom .primary { width: auto; min-height: 42px; padding: 8px 12px; }
#view-craft .section-title { flex: 0 0 auto; margin: 0; align-items: center; }
#view-craft .section-title h2 { font-size: 12px; }
#view-craft .inline-actions button { min-height: 34px; }
#view-craft #craftInventory {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  align-content: start;
  grid-template-columns: repeat(auto-fill,minmax(108px,1fr));
  grid-auto-rows: max-content;
  padding: 2px;
}
:is(#view-upgrade, #view-craft) .skin-grid .skin-card { padding-bottom: 8px; }
:is(#view-upgrade, #view-craft) .skin-grid .skin-visual { height: 60px; aspect-ratio: auto; }
:is(#view-upgrade, #view-craft) .skin-grid .skin-copy { padding: 0 7px; }
:is(#view-upgrade, #view-craft) .skin-grid .skin-copy strong { font-size: 10px; }
:is(#view-upgrade, #view-craft) .skin-grid .skin-copy span { margin: 2px 0 4px; font-size: 8px; }
:is(#view-upgrade, #view-craft) .skin-grid .skin-copy small { font-size: 10px; }
:is(#view-upgrade, #view-craft) .empty-state { min-height: 0; padding: 12px 8px; gap: 7px; }
:is(#view-upgrade, #view-craft) .empty-state > i { font-size: 22px; }
:is(#view-upgrade, #view-craft) .empty-state h3 { font-size: 12px; }
:is(#view-upgrade, #view-craft) .empty-state p { font-size: 10px; }
:is(#view-upgrade, #view-craft) .empty-state button { min-height: 36px; padding: 7px; font-size: 10px; }
:is(#view-upgrade, #view-craft) .pagination { margin-top: 8px; flex-wrap: wrap; }

@media (max-width: 600px) {
  body:is([data-view="upgrade"], [data-view="craft"]) > .topbar { height: 94px; padding-top: 8px; }
  body:is([data-view="upgrade"], [data-view="craft"]) .main-nav { height: 39px; }
  body:is([data-view="upgrade"], [data-view="craft"]) .game-shell { padding: 6px 8px; }
  #view-upgrade:not([hidden]), #view-craft:not([hidden]) { gap: 6px; }
  :is(#view-upgrade, #view-craft) .view-heading h1 { font-size: 21px; }
  :is(#view-upgrade, #view-craft) .view-heading > p { display: none; }
  #view-upgrade .upgrade-stage { grid-template-columns: minmax(0,1fr) 96px minmax(0,1fr); gap: 5px; padding: 6px; }
  #view-upgrade .upgrade-machine { gap: 6px; }
  #view-upgrade .chance-dial { width: 88px; height: 88px; box-shadow: 0 0 0 3px #1b1624; }
  #view-upgrade .chance-sector { inset: 7px; }
  #view-upgrade .chance-center { inset: 16px; }
  #view-upgrade .chance-center strong { font-size: 18px; letter-spacing: -.6px; }
  #view-upgrade .chance-center small { font-size: 5px; letter-spacing: 0; }
  #view-upgrade .chance-center span { font-size: 6px; line-height: 1.15; margin-top: 2px; }
  #view-upgrade .upgrade-rotor i { border-left-width: 5px; border-right-width: 5px; border-top-width: 11px; }
  #view-upgrade .upgrade-machine > .primary { min-height: 40px; max-width: none; padding: 5px 3px; font-size: 10px; }
  #view-upgrade .upgrade-bay { padding: 5px; }
  #view-upgrade .upgrade-bay .pane-title { flex-direction: column; align-items: center; gap: 3px; text-align: center; }
  #view-upgrade .upgrade-bay .pane-title h2 { font-size: 10px; }
  #view-upgrade .upgrade-bay .pane-title > span { font-size: 9px; }
  #view-upgrade .upgrade-preview .skin-visual { height: 45px; }
  #view-upgrade .upgrade-preview strong { font-size: 9px; line-height: 1.2; }
  #view-upgrade .upgrade-preview small { font-size: 7px; }
  #view-upgrade .upgrade-preview-empty { padding: 6px 0; gap: 4px; font-size: 8px; }
  #view-upgrade .upgrade-preview-empty i { font-size: 22px; }
  #view-upgrade .upgrade-stake-row { padding: 3px 7px; }
  #view-upgrade .upgrade-stake-row label { width: 100%; gap: 7px; font-size: 10px; }
  #view-upgrade .upgrade-stake-row input { width: 95px; min-height: 32px; padding: 5px 7px; }
  #view-upgrade .upgrade-stake-row > span { display: none; }
  #view-upgrade .upgrade-controls { gap: 4px; flex-direction: column; align-items: stretch; }
  #view-upgrade .upgrade-controls p { width: 100%; max-width: none; font-size: 9px; line-height: 1.25; }
  #view-upgrade .upgrade-controls .segmented button { min-height: 32px; padding: 5px; font-size: 10px; }
  #view-upgrade .chooser-grid { gap: 6px; }
  #view-upgrade .chooser-grid > section { padding: 5px; }
  #view-upgrade .chooser-grid .pane-title { flex-direction: column; align-items: stretch; gap: 3px; min-height: 43px; margin-bottom: 4px; }
  #view-upgrade .chooser-grid h2 { font-size: 11px; }
  #view-upgrade .chooser-grid .pane-title > span { font-size: 9px; }
  #view-upgrade .small-search { max-width: none; }
  #view-upgrade .small-search input { min-height: 27px; padding: 4px 6px; font-size: 9px; }
  #view-upgrade .chooser { gap: 5px; grid-template-columns: repeat(auto-fill,minmax(105px,1fr)); }
  :is(#view-upgrade, #view-craft) .skin-grid .skin-visual { height: 43px; }
  #view-craft .contract-options { flex-direction: row; }
  #view-craft .contract-options .segmented { width: 100%; }
  #view-craft .contract-options .segmented button { padding: 5px; min-height: 42px; font-size: 10px; }
  #view-craft .contract-options p { display: none; }
  #view-craft .contract-options small { font-size: 8px; }
  #view-craft .craft-machine { padding: 7px; }
  #view-craft .craft-topline { margin-bottom: 5px; font-size: 9px; }
  #view-craft .craft-topline .eyebrow { font-size: 8px; }
  #view-craft .contract-machine-body { grid-template-columns: minmax(0,1fr); gap: 0; }
  #view-craft .craft-reactor { display: none; }
  #view-craft .contract-slots { gap: 4px; }
  #view-craft .contract-slots .craft-slot { height: 50px; padding: 3px; }
  #view-craft .contract-slots .craft-slot .skin-visual { height: 23px; }
  #view-craft .contract-slots .craft-slot strong { font-size: 7px; line-height: 1.1; }
  #view-craft .contract-slots .craft-slot small { font-size: 7px; margin-top: 1px; }
  #view-craft .contract-slots .craft-slot > span { font-size: 6px; top: 2px; left: 3px; }
  #view-craft .contract-slots .craft-slot > p { font-size: 6px; margin-top: 2px; }
  #view-craft .contract-slots .craft-slot > i { font-size: 20px; }
  #view-craft .craft-bottom { display: grid; grid-template-columns: minmax(0,1fr) minmax(150px,1.6fr); gap: 4px 8px; margin-top: 6px; padding-top: 6px; }
  #view-craft .craft-bottom > div { grid-column: 1; grid-row: 1; }
  #view-craft .craft-bottom strong { font-size: 18px; }
  #view-craft .craft-bottom small { font-size: 6px; letter-spacing: 0; }
  #view-craft .craft-bottom p { grid-column: 1 / -1; grid-row: 2; max-width: none; font-size: 9px; line-height: 1.2; }
  #view-craft .craft-bottom .primary { grid-column: 2; grid-row: 1; width: 100%; min-height: 40px; padding: 6px; font-size: 10px; }
  #view-craft .section-title { gap: 6px; }
  #view-craft .section-title h2 { font-size: 10px; }
  #view-craft .inline-actions { gap: 4px; }
  #view-craft .inline-actions button { padding: 4px 6px; font-size: 8px; min-height: 32px; }
  #view-craft #craftInventory { gap: 5px; grid-template-columns: repeat(auto-fill,minmax(92px,1fr)); }
}

@media (min-width: 601px) and (max-height: 650px) {
  #view-upgrade .chance-dial { width: 112px; height: 112px; }
  #view-upgrade .chance-center { inset: 19px; }
  #view-upgrade .chance-center strong { font-size: 23px; }
  #view-upgrade .chance-center span { font-size: 7px; }
  #view-upgrade .upgrade-preview .skin-visual { height: 60px; }
  #view-upgrade .upgrade-stage { padding: 7px; }
  :is(#view-upgrade, #view-craft) > .view-heading { min-height: 25px; }
  #view-craft .contract-slots .craft-slot { height: 55px; }
  #view-craft .contract-slots .craft-slot .skin-visual { height: 24px; }
}
