/* GamingService v10: mobile viewport containment, stable menus and admin catalog images. */
html { width:100%; max-width:100%; overflow-x:hidden; overflow-x:clip; }
body.store-shell, body.admin-shell { width:100%; max-width:100%; margin-inline:0; overflow-x:hidden; overflow-x:clip; }
body.store-shell *, body.admin-shell * { min-width:0; }
body.store-shell img, body.admin-shell img, body.store-shell svg, body.admin-shell svg, body.store-shell video { max-width:100%; }
body.store-shell .container, body.admin-shell .container { max-width:100%; }
body.store-shell .page-main, body.admin-shell .page-main { min-width:0; }
body.store-shell .products-v7, body.store-shell .catalog-layout-v7, body.store-shell .quick-categories,
body.store-shell .hero-store-v7, body.store-shell .product-card-v7, body.admin-shell .checkout-layout { min-width:0; }
.table-wrap { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.table { max-width:100%; }

/* Menus stay inside the physical viewport even in RTL and at narrow widths. */
@media (max-width:800px) {
  body.store-shell .nav { width:calc(100% - 24px); max-width:1180px; gap:8px; }
  body.store-shell .brand { flex:0 1 auto; max-width:calc(100% - 110px); }
  body.store-shell .brand-copy { min-width:0; }
  body.store-shell .brand-copy b { overflow-wrap:anywhere; }
  body.store-shell .nav-actions { flex:0 0 auto; max-width:100%; }
  body.store-shell .mobile-menu { position:static; }
  body.store-shell .mobile-menu-pop { position:fixed !important; top:82px !important; right:12px !important; left:auto !important; width:min(285px,calc(100vw - 24px)) !important; max-width:calc(100vw - 24px) !important; max-height:calc(100dvh - 96px) !important; overflow-x:hidden !important; overflow-y:auto !important; overscroll-behavior:contain; z-index:1000; }
  body.store-shell .quick-menu-pop { max-width:calc(100vw - 24px); }
  body.store-shell .hero-store-v7, body.store-shell .hero-copy, body.store-shell .catalog-section,
  body.store-shell .catalog-results, body.store-shell .bottom-help-v7 { min-width:0; max-width:100%; }
  body.store-shell .category-row, body.store-shell .sidebar-v7 { max-width:100%; }
  body.store-shell .filters-v7 .search { min-width:0; max-width:100%; }
  body.store-shell .search-v7 .field { width:100%; min-width:0; }
  body.store-shell .floating-cp { right:0 !important; }
  body.store-shell .floating-stars { left:0 !important; }
  body.store-shell .table-wrap { overflow-x:auto; }
  body.admin-shell .admin-nav { width:100%; max-width:100%; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
  body.admin-shell .admin-nav a { flex:0 0 auto; white-space:nowrap; }
}
@media (max-width:420px) {
  body.store-shell .container { width:calc(100% - 20px); }
  body.store-shell .brand-copy b { font-size:13px !important; }
  body.store-shell .account-shortcut { font-size:12px !important; padding-inline:8px; }
  body.store-shell .mobile-menu-pop { right:10px !important; width:calc(100vw - 20px) !important; max-width:calc(100vw - 20px) !important; }
  body.store-shell .products-v7 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.store-shell .product-card-v7 { width:100%; }
}

/* Remove accidental decoration/shine from purchase CTAs; keep text high contrast. */
body.store-shell a.btn, body.store-shell button.btn,
body.store-shell .product-buy-form .btn, body.store-shell .btn-card,
body.store-shell .quick-category, body.store-shell .quick-category * {
  text-decoration:none !important; text-decoration-line:none !important; text-decoration-thickness:0 !important;
}
body.store-shell .product-buy-form .btn::before,
body.store-shell .product-buy-form .btn::after,
body.store-shell .btn-card::before,
body.store-shell .btn-card::after { content:none !important; display:none !important; }
body.store-shell .product-buy-form .btn { border:1px solid #dc4857 !important; background:#d74755 !important; box-shadow:0 8px 18px rgba(215,71,85,.16) !important; }
body.store-shell .product-buy-form .btn:hover { background:#c83948 !important; border-color:#c83948 !important; }
body.store-shell .product-buy-form .btn * { text-decoration:none !important; }

/* Category/product image management: compact, visible previews and reliable file controls. */
.admin-image-editor { display:grid; grid-template-columns:minmax(130px,190px) minmax(0,1fr); align-items:start; gap:16px; margin:15px 0; padding:14px; border:1px solid #3b3d45; border-radius:14px; background:#1c1e23; }
.admin-image-preview-wrap { display:grid; place-items:center; position:relative; width:100%; min-height:132px; aspect-ratio:4/3; overflow:hidden; border:1px dashed #555862; border-radius:12px; background:#24262c; }
.admin-image-preview { display:block; width:100%; height:100%; max-height:220px; object-fit:contain; }
.admin-image-preview[hidden], .admin-image-preview-empty[hidden] { display:none !important; }
.admin-image-preview-empty { color:#a8aab3; font-size:13px; padding:10px; text-align:center; }
.admin-image-fields { min-width:0; display:grid; gap:12px; }
.admin-file-field { min-width:0; max-width:100%; padding:10px; }
.admin-file-field::file-selector-button { margin-inline-end:10px; padding:7px 11px; border:1px solid #555862; border-radius:8px; background:#303239; color:#f3f3f5; font:inherit; cursor:pointer; }
.admin-table-thumb { display:block; width:58px; height:44px; max-width:none; object-fit:cover; border:1px solid #41434b; border-radius:7px; background:#24262c; }
.category-image-mini { width:24px; height:24px; flex:0 0 24px; object-fit:cover; border-radius:6px; vertical-align:middle; }
.category-row .category-link, .sidebar-v7 .category-link { display:inline-flex; align-items:center; gap:7px; min-width:0; }
.category-row .category-link span, .sidebar-v7 .category-link span { min-width:0; }
@media (max-width:700px) { .admin-image-editor { grid-template-columns:1fr; } .admin-image-preview-wrap { max-width:260px; min-height:150px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto !important; } }

/* Final mobile containment and focus polish. Keep pinch zoom available for accessibility. */
html, body.store-shell, body.admin-shell { overscroll-behavior-x: none; }
body.store-shell .mobile-menu > summary,
body.store-shell .quick-menu > summary { list-style: none; }
body.store-shell .mobile-menu > summary::-webkit-details-marker,
body.store-shell .quick-menu > summary::-webkit-details-marker { display: none; }
body.store-shell .mobile-menu > summary { flex-shrink: 0; }
body.store-shell .mobile-menu-pop { box-sizing: border-box; margin: 0; transform: none; }
body.store-shell .quick-category-stars,
body.store-shell .quick-category-stars * { text-decoration: none !important; text-decoration-line: none !important; border-bottom-color: transparent !important; }
body.store-shell .quick-category-stars::before,
body.store-shell .quick-category-stars::after,
body.store-shell .quick-category-stars .quick-category-copy::before,
body.store-shell .quick-category-stars .quick-category-copy::after { content: none !important; display: none !important; }
body.store-shell a:focus-visible,
body.store-shell button:focus-visible,
body.admin-shell a:focus-visible,
body.admin-shell button:focus-visible,
body.admin-shell input:focus-visible,
body.admin-shell select:focus-visible,
body.admin-shell textarea:focus-visible { outline: 2px solid #ee6a76; outline-offset: 3px; }
