:root {
  color-scheme: dark;
  --bg: #050a12;
  --surface: #0b1420;
  --surface-2: #101c2a;
  --surface-3: #152334;
  --surface-soft: #12263a;
  --line: #263a50;
  --line-strong: #3d5873;
  --text: #f7fbff;
  --muted: #a7b6c8;
  --subtle: #788ba2;
  --teal: #19d3c5;
  --teal-strong: #0cb4ac;
  --blue: #3978ff;
  --blue-strong: #2459d9;
  --green: #28d783;
  --green-soft: #0d3528;
  --red: #ff616c;
  --red-soft: #3a1620;
  --amber: #ffc857;
  --shadow: 0 20px 55px rgba(0, 0, 0, .34);
  --radius: 14px;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  min-width: 320px;
  background: var(--bg);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 8% 0%, rgba(25, 211, 197, .08), transparent 24rem),
    radial-gradient(circle at 92% 8%, rgba(57, 120, 255, .10), transparent 25rem),
    var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  letter-spacing: 0;
}

body.overlayOpen,
body.menuOpen {
  overflow: hidden;
}

button,
input,
select,
textarea {
  font: inherit;
  letter-spacing: 0;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  color: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
}

svg {
  display: block;
}

.appShell {
  min-height: 100vh;
}

.siteChrome {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(61, 88, 115, .7);
  background: rgba(8, 17, 29, .96);
  box-shadow: 0 10px 35px rgba(0, 0, 0, .2);
  backdrop-filter: blur(16px);
}

.appHeader {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr) auto;
  align-items: center;
  min-height: 70px;
  padding: 9px max(20px, calc((100vw - 1500px) / 2));
}

.brandLink {
  display: flex;
  align-items: center;
  width: 164px;
  min-width: 0;
}

.brandLink img {
  display: block;
  width: 100%;
  height: 44px;
  object-fit: contain;
  object-position: left center;
}

.headerSectionName {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.desktopNav {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
}

.catalogNavBar {
  min-height: 56px;
  padding: 4px max(20px, calc((100vw - 1500px) / 2));
  overflow-x: auto;
  border-top: 1px solid rgba(38, 58, 80, .7);
  background: rgba(5, 10, 18, .72);
  scrollbar-width: none;
}

.catalogNavBar::-webkit-scrollbar {
  display: none;
}

.headerNavBtn,
.headerNavLink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  flex: 0 0 auto;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font-weight: 850;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.headerNavBtn:hover,
.headerNavLink:hover {
  border-color: var(--line);
  background: var(--surface-2);
  color: var(--text);
  transform: translateY(-1px);
}

.headerNavBtn.active {
  border-color: var(--teal);
  background: var(--teal);
  color: #031715;
  box-shadow: 0 9px 24px rgba(25, 211, 197, .2);
}

.navGlyph {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
}

.navGlyph svg,
.tabIcon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.headerActions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.balanceChip {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid #3d4d26;
  border-radius: 10px;
  background: #151d15;
  transition: border-color .18s ease, transform .18s ease;
}

.balanceChip:hover {
  border-color: var(--green);
  transform: translateY(-1px);
}

.balanceChip span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}

.balanceChip strong {
  color: var(--green);
  font-size: 17px;
}

.iconBtn,
.refreshBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--text);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.iconBtn:hover,
.refreshBtn:hover {
  border-color: var(--teal);
  background: var(--surface-3);
  transform: translateY(-1px);
}

.iconBtn svg,
.refreshBtn svg,
.searchBox svg,
.detailBackBtn svg,
.statusIcon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.accountMenu {
  position: fixed;
  z-index: 301;
  top: 132px;
  right: max(16px, calc((100vw - 1500px) / 2));
  width: min(330px, calc(100vw - 24px));
  padding: 10px;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: #0b1522;
  box-shadow: var(--shadow);
  animation: menuIn .16s ease both;
}

.accountMenuHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  margin-bottom: 7px;
  border-radius: 10px;
  background: var(--surface-soft);
}

.accountMenuHead span {
  color: var(--teal);
  font-size: 13px;
  font-weight: 850;
}

.accountMenuHead strong {
  font-size: 20px;
}

.accountMenu a,
.accountMenu button {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--text);
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}

.accountMenu a:hover,
.accountMenu button:hover {
  background: var(--surface-3);
}

.accountMenu button {
  color: #ff9aa1;
}

.menuBackdrop {
  position: fixed;
  z-index: 300;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, .42);
  backdrop-filter: blur(3px);
}

.mainContent {
  width: min(1500px, 100%);
  margin: 0 auto;
  padding: 28px 24px 70px;
}

.catalogIntro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  min-height: 118px;
  padding: 10px 0 24px;
  border-bottom: 1px solid var(--line);
}

.eyebrow,
.sectionKicker {
  display: block;
  margin-bottom: 8px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.catalogIntro h1 {
  margin: 0;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0;
}

.catalogIntro p {
  max-width: 720px;
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}

.introActions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.priceMode {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 155px;
  min-height: 58px;
  padding: 9px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
}

.priceMode small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}

.priceMode strong {
  margin-top: 2px;
  color: var(--teal);
  font-size: 17px;
}

.refreshBtn {
  gap: 9px;
  min-height: 58px;
  padding: 0 16px;
  font-weight: 850;
}

.mobileCategoryRail {
  display: none;
}

.catalogPanel {
  margin-top: 22px;
  padding: 0;
}

.catalogHeading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.catalogHeading h2 {
  margin: 0;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 930;
}

.catalogHeading p {
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.countBadge {
  flex: 0 0 auto;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 13px;
  font-weight: 850;
}

.catalogToolbar {
  display: grid;
  grid-template-columns: minmax(240px, 520px) auto;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}

.searchBox {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 13px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: #0a131f;
  color: var(--muted);
  transition: border-color .18s ease, box-shadow .18s ease;
}

.searchBox:focus-within {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(25, 211, 197, .14);
  color: var(--teal);
}

.searchBox input {
  min-width: 0;
  height: 48px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
}

.searchBox input::placeholder {
  color: #7890a8;
}

.clearSearch {
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: var(--surface-3);
  color: var(--text);
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}

.favoriteFilter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 16px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 850;
  cursor: pointer;
  justify-self: start;
  min-width: 160px;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}

.favoriteFilter:hover {
  border-color: var(--amber);
  transform: translateY(-1px);
}

.favoriteFilter span {
  color: var(--amber);
  font-size: 24px;
  line-height: 1;
}

.favoriteFilter.active {
  border-color: var(--amber);
  background: #312613;
}

.catalogStatus {
  min-height: 23px;
  margin-top: 13px;
}

.statusLine {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 30px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}

.statusLine.error {
  color: #ff9aa1;
}

.statusDot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 5px rgba(40, 215, 131, .1);
}

.statusLine.loading .statusDot {
  border: 2px solid var(--line-strong);
  border-top-color: var(--teal);
  background: transparent;
  box-shadow: none;
  animation: spin .7s linear infinite;
}

.statusLine.error .statusDot {
  background: var(--red);
  box-shadow: 0 0 0 5px rgba(255, 97, 108, .1);
}

.catalogGrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 14px;
  margin-top: 4px;
}

.productCard {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #0b1522;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .2);
  cursor: pointer;
  isolation: isolate;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.productCard::after {
  position: absolute;
  z-index: -1;
  inset: auto 0 0;
  height: 72px;
  background: linear-gradient(180deg, transparent, rgba(25, 211, 197, .08));
  content: "";
  opacity: 0;
  transition: opacity .18s ease;
}

.productCard:hover,
.productCard:focus-visible {
  border-color: var(--teal);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .3), 0 0 0 1px rgba(25, 211, 197, .15);
  outline: none;
  transform: translateY(-3px);
}

.productCard:hover::after,
.productCard:focus-visible::after {
  opacity: 1;
}

.productMedia {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1.34 / 1;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 30%, rgba(25, 211, 197, .16), transparent 55%),
    #101c2a;
}

.productMedia img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #101c2a;
  transition: transform .24s ease;
}

.productCard:hover .productMedia img {
  transform: scale(1.035);
}

.productFallback {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 20px;
  background: #19314a;
  color: var(--teal);
  font-size: 25px;
  font-weight: 950;
}

.productMedia img.freeFireArt {
  object-position: center;
}

.serviceLogo {
  width: 82px;
  height: 82px;
  object-fit: contain;
  padding: 12px;
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
}

.productMeta {
  min-height: 84px;
  padding: 12px 13px 13px;
}

.productName {
  display: -webkit-box;
  overflow: hidden;
  min-height: 39px;
  color: var(--text);
  font-size: 15px;
  font-weight: 880;
  line-height: 1.28;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.productSubline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  color: var(--subtle);
  font-size: 11px;
  font-weight: 750;
}

.regionCount {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.openHint {
  color: var(--teal);
  font-size: 15px;
}

.favoriteBtn {
  position: absolute;
  z-index: 3;
  top: 9px;
  right: 9px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 10px;
  background: rgba(5, 10, 18, .84);
  color: #e7edf4;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(8px);
}

.favoriteBtn.on {
  border-color: var(--amber);
  color: var(--amber);
}

.catalogEmpty {
  display: grid;
  place-items: center;
  min-height: 210px;
  margin-top: 10px;
  border: 1px dashed var(--line-strong);
  border-radius: 12px;
  color: var(--muted);
  text-align: center;
}

.catalogEmpty strong {
  color: var(--text);
  font-size: 20px;
}

.catalogEmpty span {
  margin-top: -60px;
  font-size: 14px;
}

.loadMoreBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(360px, 100%);
  min-height: 48px;
  margin: 18px auto 0;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 850;
  cursor: pointer;
}

.loadMoreBtn:hover {
  border-color: var(--teal);
  background: var(--surface-3);
}

.productOverlay {
  position: fixed;
  z-index: 500;
  inset: 0;
  display: none;
  align-items: stretch;
  justify-content: center;
  padding: 18px;
  background: rgba(2, 6, 12, .82);
  backdrop-filter: blur(10px);
}

.productOverlay.open {
  display: flex;
  animation: fadeIn .16s ease both;
}

.detailApp {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(1280px, 100%);
  max-height: calc(100vh - 36px);
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: var(--bg);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .56);
  animation: detailIn .2s ease both;
}

.detailTopbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 70px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  background: rgba(11, 20, 32, .96);
}

.detailBackBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 850;
  cursor: pointer;
}

.detailBackBtn:hover {
  border-color: var(--teal);
}

.detailTitle {
  min-width: 0;
}

.detailTitle small {
  display: block;
  color: var(--teal);
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.detailTitle strong {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  font-size: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detailBalance {
  color: var(--muted);
  font-size: 13px;
  text-align: right;
}

.detailBalance strong {
  display: block;
  margin-top: 2px;
  color: var(--green);
  font-size: 18px;
}

.detailScroll {
  overflow: auto;
  overscroll-behavior: contain;
  padding: 18px;
}

.detailLayout {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.detailIdentity {
  position: sticky;
  top: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--surface);
}

.detailIdentity .productMedia {
  aspect-ratio: 1.2 / 1;
}

.detailIdentityBody {
  padding: 15px;
}

.detailIdentityBody h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
}

.detailIdentityBody p {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-line;
}

.secureNote {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 14px;
  padding: 11px;
  border: 1px solid #275846;
  border-radius: 9px;
  background: #0c2a21;
  color: #a6f4d1;
  font-size: 12px;
  line-height: 1.4;
}

.detailWorkspace {
  min-width: 0;
}

.workspaceSection {
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--surface);
}

.workspaceSection + .workspaceSection {
  margin-top: 14px;
}

.workspaceHeading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
}

.workspaceHeading h3 {
  margin: 0;
  font-size: 20px;
}

.workspaceHeading p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.regionRail {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin-top: 13px;
  padding: 2px 1px 7px;
  scrollbar-width: thin;
}

.regionBtn {
  flex: 0 0 auto;
  min-height: 39px;
  padding: 0 13px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 13px;
  font-weight: 850;
  cursor: pointer;
}

.regionBtn:hover {
  border-color: var(--teal);
  color: var(--text);
}

.regionBtn.active {
  border-color: var(--teal);
  background: var(--teal);
  color: #041917;
}

.productChooser {
  margin-top: 14px;
}

.productSelectionStep,
.checkoutStep {
  animation: stepIn .2s ease both;
}

.detailSearch {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #09131f;
  color: var(--muted);
}

.detailSearch:focus-within {
  border-color: var(--teal);
}

.detailSearch svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

.detailSearch input {
  min-width: 0;
  height: 42px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
}

.optionList {
  display: grid;
  gap: 8px;
  max-height: 370px;
  overflow: auto;
  margin-top: 10px;
  padding-right: 3px;
}

.option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 62px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #0b1521;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background-color .16s ease;
}

.option:hover {
  border-color: var(--teal);
  background: var(--surface-2);
}

.option.selected {
  border-color: var(--teal);
  background: #102c31;
  box-shadow: inset 3px 0 0 var(--teal);
}

.optionTitle {
  overflow: hidden;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.3;
  text-overflow: ellipsis;
}

.optionMeta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 5px;
}

.stockTag,
.platformTag {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}

.stockTag.available {
  border-color: #246f50;
  background: #0d3024;
  color: #74e8b4;
}

.stockTag.low {
  border-color: #7a5c1e;
  background: #33260e;
  color: #ffd87e;
}

.optionPrice {
  display: grid;
  justify-items: end;
  gap: 4px;
  color: var(--green);
  white-space: nowrap;
}

.optionPrice small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
}

.optionPrice b {
  color: var(--green);
  font-size: 18px;
  font-weight: 930;
  line-height: 1;
}

.storeGuide {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 7px;
  color: #a9c7e8;
  font-size: 11px;
  font-weight: 750;
}

.storeGuide strong {
  color: #83eab3;
}

.storeGuideCard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  margin: 12px 0;
  padding: 11px 12px;
  border: 1px solid #1f7257;
  border-radius: 9px;
  background: #0b2d25;
  color: #d9f8e9;
}

.storeGuideCard > span {
  color: #9ceac5;
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.storeGuideCard div {
  display: grid;
  gap: 2px;
  text-align: right;
}

.storeGuideCard b {
  color: #b7d5c7;
  font-size: 10px;
}

.storeGuideCard strong {
  color: #fff;
  font-size: 15px;
}

@media (max-width: 560px) {
  .storeGuideCard {
    grid-template-columns: 1fr 1fr;
  }

  .storeGuideCard > span {
    grid-column: 1 / -1;
  }

  .storeGuideCard div {
    text-align: left;
  }
}

.orderSummary {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  background: #0a131f;
}

.orderSummary.checkoutStep {
  margin-top: 0;
}

.checkoutNav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.checkoutBackBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 850;
  cursor: pointer;
}

.checkoutBackBtn:hover {
  border-color: var(--teal);
  background: var(--surface-3);
}

.checkoutBackBtn svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.summaryTitle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.summaryTitle small {
  display: block;
  margin-bottom: 3px;
  color: var(--teal);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}

.summaryTitle h3 {
  margin: 0;
  font-size: 19px;
}

.summaryStep {
  color: var(--teal);
  font-size: 12px;
  font-weight: 850;
}

.summaryRow {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(38, 58, 80, .7);
}

.summaryRow:last-of-type {
  border-bottom: 0;
}

.summaryRow > label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.summaryRow strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 14px;
}

.field,
.orderSummary input,
.orderSummary select,
.steps input,
.steps select {
  width: 100%;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  outline: 0;
  background: #111e2c;
  color: var(--text);
}

.field:focus,
.orderSummary input:focus,
.orderSummary select:focus,
.steps input:focus,
.steps select:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(25, 211, 197, .12);
}

.field::placeholder,
.orderSummary input::placeholder,
.steps input::placeholder {
  color: #7890a8;
}

.fieldHint {
  margin-top: 5px;
  color: var(--subtle);
  font-size: 11px;
}

.validationBtn {
  width: 100%;
  min-height: 44px;
  margin-top: 10px;
  border: 1px solid #35649d;
  border-radius: 8px;
  background: #132b49;
  color: #cfe5ff;
  font-weight: 850;
  cursor: pointer;
}

.validationBtn:hover {
  border-color: #6ea7ec;
}

.totalRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 0 4px;
}

.totalRow span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.total {
  color: var(--green);
  font-size: 29px;
  font-weight: 950;
}

.primaryAction,
.secondaryAction {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 18px;
  border-radius: 9px;
  font-weight: 900;
  cursor: pointer;
}

.primaryAction {
  width: 100%;
  margin-top: 12px;
  border: 1px solid var(--green);
  background: var(--green);
  color: #031a10;
  box-shadow: 0 12px 28px rgba(40, 215, 131, .16);
}

.primaryAction:hover {
  background: #41e495;
}

.primaryAction:disabled {
  border-color: var(--line);
  background: var(--surface-3);
  color: var(--subtle);
  box-shadow: none;
  cursor: not-allowed;
}

.secondaryAction {
  border: 1px solid var(--line-strong);
  background: var(--surface-2);
  color: var(--text);
}

.message {
  margin-top: 10px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}

.message.info {
  border-color: #315986;
  background: #112841;
  color: #d7eaff;
}

.message.ok {
  border-color: #24714f;
  background: #0d3023;
  color: #a1f0c9;
}

.message.error {
  border-color: #7a2e39;
  background: var(--red-soft);
  color: #ffc0c5;
}

.loadingPanel {
  display: grid;
  place-items: center;
  min-height: 260px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  color: var(--muted);
  text-align: center;
}

.loadingSpinner {
  width: 32px;
  height: 32px;
  margin-bottom: 12px;
  border: 3px solid var(--line-strong);
  border-top-color: var(--teal);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}

.specialGrid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 14px;
}

.steps,
.specialSummary {
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

.steps h3,
.specialSummary h3 {
  margin: 0 0 12px;
}

.formGroup + .formGroup {
  margin-top: 15px;
}

.formGroup label {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-bottom: 16px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #09131f;
}

.tab {
  min-height: 42px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font-weight: 850;
  cursor: pointer;
}

.tab.active {
  background: var(--teal);
  color: #031715;
}

.packages {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
}

.pkg {
  min-height: 68px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #0a141f;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.pkg:hover,
.pkg.selected {
  border-color: var(--teal);
  background: #102c31;
}

.pkg strong {
  display: block;
  font-size: 14px;
}

.pkg span {
  display: block;
  margin-top: 5px;
  color: var(--green);
  font-size: 13px;
  font-weight: 850;
}

.toastRegion {
  position: fixed;
  z-index: 1000;
  right: 18px;
  bottom: 18px;
  display: grid;
  gap: 8px;
  width: min(360px, calc(100vw - 24px));
  pointer-events: none;
}

.toast {
  padding: 13px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: #101d2b;
  color: var(--text);
  box-shadow: var(--shadow);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
  animation: toastIn .2s ease both;
}

.toast.error {
  border-color: #88404a;
  background: #351820;
}

.toast.ok {
  border-color: #29724f;
  background: #0e3024;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes detailIn {
  from { opacity: 0; transform: translateY(12px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes menuIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes toastIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes stepIn {
  from { opacity: 0; transform: translateX(10px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 980px) {
  .siteChrome {
    min-height: 66px;
  }

  .appHeader {
    grid-template-columns: 154px minmax(0, 1fr) auto;
    min-height: 66px;
    padding: 8px 14px;
  }

  .brandLink {
    width: 145px;
  }

  .brandLink img {
    height: 40px;
  }

  .desktopNav {
    display: none;
  }

  .headerSectionName {
    display: none;
  }

  .headerActions {
    grid-column: 3;
  }

  .balanceChip span {
    display: none;
  }

  .mainContent {
    padding: 16px 12px 50px;
  }

  .catalogIntro {
    min-height: 0;
    padding: 6px 0 18px;
  }

  .catalogIntro h1 {
    font-size: 38px;
  }

  .mobileCategoryRail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
  }

  .categoryTab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    min-height: 52px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
  }

  .categoryTab.active {
    border-color: var(--teal);
    background: var(--teal);
    color: #031715;
  }

  .tabIcon {
    width: 19px;
    height: 19px;
  }

  .catalogPanel {
    margin-top: 12px;
    padding: 0;
  }

  .accountMenu {
    top: 62px;
  }

  .detailLayout {
    grid-template-columns: 220px minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  .appHeader {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .brandLink {
    width: 178px;
  }

  .headerActions {
    grid-column: 2;
  }

  .balanceChip {
    min-height: 42px;
    padding: 0 11px;
  }

  .iconBtn {
    min-width: 42px;
    min-height: 42px;
  }

  .catalogIntro {
    display: block;
    padding: 5px 0 16px;
  }

  .catalogIntro h1 {
    font-size: 34px;
  }

  .catalogIntro p {
    font-size: 14px;
  }

  .introActions {
    display: none;
  }

  .categoryTab {
    flex-direction: column;
    gap: 2px;
    min-height: 58px;
    padding: 6px;
    font-size: 11px;
  }

  .catalogHeading {
    align-items: flex-start;
  }

  .catalogHeading h2 {
    font-size: 24px;
  }

  .catalogHeading p {
    font-size: 13px;
  }

  .countBadge {
    padding: 7px 9px;
    font-size: 11px;
  }

  .catalogToolbar {
    grid-template-columns: minmax(0, 1fr) 48px;
  }

  .favoriteFilter {
    min-width: 48px;
    width: 48px;
    padding: 0;
    font-size: 0;
  }

  .favoriteFilter span {
    font-size: 25px;
  }

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

  .productMeta {
    min-height: 80px;
    padding: 10px;
  }

  .productName {
    min-height: 36px;
    font-size: 14px;
  }

  .productSubline {
    font-size: 10px;
  }

  .favoriteBtn {
    top: 7px;
    right: 7px;
    width: 35px;
    height: 35px;
  }

  .productOverlay {
    padding: 0;
    background: var(--bg);
    backdrop-filter: none;
  }

  .detailApp {
    width: 100%;
    max-height: 100dvh;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .detailTopbar {
    min-height: 64px;
    padding: max(8px, env(safe-area-inset-top)) 10px 8px;
  }

  .detailBackBtn {
    width: 44px;
    min-height: 44px;
    padding: 0;
    font-size: 0;
  }

  .detailBackBtn svg {
    width: 22px;
    height: 22px;
  }

  .detailTitle strong {
    font-size: 16px;
  }

  .detailBalance {
    font-size: 0;
  }

  .detailBalance strong {
    font-size: 15px;
  }

  .detailScroll {
    padding: 10px 10px calc(20px + env(safe-area-inset-bottom));
  }

  .detailLayout {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .detailIdentity {
    position: static;
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
  }

  .detailIdentity .productMedia {
    aspect-ratio: auto;
    min-height: 115px;
  }

  .detailIdentityBody {
    padding: 12px;
  }

  .detailIdentityBody h2 {
    font-size: 18px;
  }

  .detailIdentityBody p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 11px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .secureNote {
    display: none;
  }

  .workspaceSection {
    padding: 13px;
  }

  .workspaceHeading h3 {
    font-size: 17px;
  }

  .workspaceHeading p {
    font-size: 11px;
  }

  .optionList {
    max-height: 290px;
  }

  .summaryRow {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 9px 0;
  }

  .checkoutNav {
    align-items: stretch;
    flex-direction: column;
  }

  .checkoutBackBtn {
    width: 100%;
  }

  .checkoutNav .summaryStep {
    text-align: center;
  }

  .totalRow {
    position: sticky;
    bottom: 0;
    background: #0a131f;
  }

  .specialGrid {
    grid-template-columns: 1fr;
  }

  .specialSummary {
    order: -1;
  }

  .toastRegion {
    right: 12px;
    bottom: 12px;
  }
}

@media (max-width: 390px) {
  .appHeader {
    padding-inline: 9px;
  }

  .brandLink {
    width: 166px;
  }

  .balanceChip {
    padding: 0 8px;
  }

  .balanceChip strong {
    font-size: 14px;
  }

  .catalogIntro h1 {
    font-size: 30px;
  }

  .catalogPanel {
    padding: 0;
  }

  .catalogHeading {
    gap: 8px;
  }

  .productMedia {
    aspect-ratio: 1.22 / 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
