.page .container-xl { padding-top: 1rem; padding-bottom: 2rem; }
.auth-card { max-width: 420px; margin: 2rem auto; }
.product-card .card-title { min-height: 2.2rem; }
.price { font-weight: 600; }

/* Products: horizontal category quick filters */
.cat-filters { display: flex; gap: .75rem; overflow-x: auto; padding-bottom: .25rem; }
.cat-filters::-webkit-scrollbar { height: 6px; }
.cat-filters::-webkit-scrollbar-thumb { background: rgba(0,0,0,.2); border-radius: 3px; }
.cat-item { display: inline-flex; flex-direction: column; align-items: center; min-width: 84px; border: 1px solid #d9dee3; border-radius: .5rem; background: #fff; }
.cat-item .cat-img { width: 64px; height: 64px; border-radius: .5rem; background-size: cover; background-position: center; display: block; }
.cat-item .cat-label { font-size: .85rem; margin-top: .5rem; color: #566a7f; }
.cat-item.active { border-color: #206bc4; box-shadow: 0 0 0 .15rem rgba(32,107,196,.15); }

/* Transition for filtering */
.fade-enter-active, .fade-leave-active { transition: all .25s ease; }
.fade-enter-from, .fade-leave-to { opacity: 0; transform: scale(.98); }

/* Page views container and transitions */
.view-screen { display: none; }
.view-screen.view-active { display: block; }

/* Simple fade/slide animation for page transitions */
@keyframes pageFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pageFadeOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-6px); } }
.fade-in { animation: pageFadeIn .25s ease both; }
.fade-out { animation: pageFadeOut .2s ease both; }

/* Product detail improvements */
.product-hero .hero-media { display:flex; align-items:center; justify-content:center; aspect-ratio: 3/2; background: linear-gradient(135deg, #f5f5f9, #eef1f6); color:#aab3c0; font-size: 5rem; border-radius: .5rem; }
.qty-stepper { display:inline-flex; align-items:center; gap:.5rem; }
.qty-stepper .form-control { width: 72px; text-align: center; }
.qty-stepper .btn { width: 38px; padding: .375rem 0; }

/* Touch-friendly buttons: ensure comfortable tap targets, especially on mobile/boat usage */
.btn { min-height: 44px; padding-top: .6rem; padding-bottom: .6rem; }
.btn.btn-sm { min-height: 40px; }

/* Quantity stepper larger controls */
.qty-stepper { display:inline-flex; align-items:center; gap:.6rem; }
.qty-stepper .form-control { width: 50%; text-align: center; height: 44px; }
.qty-stepper .btn { width: 25%; padding: .5rem 0; }

/* Off-canvas sidebar behavior (hidden by default, open on toggle) */
/* Base dimensions can be adjusted to match Spike's sidebar width */
.left-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 280px;
  max-width: 86vw;
  transform: translateX(-100%);
  transition: transform .25s ease;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 0 0 1px rgba(0,0,0,.04), 8px 0 24px rgba(0,0,0,.08);
  z-index: 1060; /* above overlay and header */
}
body.menu-open .left-sidebar { transform: translateX(0); }

/* Prevent body scroll when menu is open */
body.menu-open { overflow: hidden; }

/* Fullscreen overlay to close the menu on tap/click */
.layout-overlay.layout-menu-toggle {
  position: fixed;
  inset: 0;
  background: rgba(33, 37, 41, .45);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease;
  z-index: 1055;
}
body.menu-open .layout-overlay.layout-menu-toggle { opacity: 1; visibility: visible; }

/* Make sure the main page content stretches full width (no left padding) */
.layout-wrapper .layout-page { margin-left: 0 !important; }

/* Header (topbar) visual tuning to match Spike */
.topbar {
  position: sticky;
  top: 0;
  z-index: 1050;
  background: var(--bs-body-bg, #fff);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.topbar .navbar-brand { gap: .25rem; padding: .5rem 0; color: #344767; text-decoration: none; }
.topbar .navbar-brand .bx { color: #5d87ff; }
.topbar .navbar-nav .nav-link { padding: .75rem 1rem; color: #566a7f; font-weight: 500; }
.topbar .navbar-nav .nav-link:hover { color: #1f2d3d; }
.topbar .navbar-nav .nav-link.active { color: #5d87ff; }

/* Ensure collapsed navbar looks decent on mobile */
@media (max-width: 991.98px) {
  .topbar .navbar-collapse { background: var(--bs-body-bg, #fff); border-top: 1px solid rgba(0,0,0,.06); margin-top: .5rem; }
}

/* Sidebar menu items styling (align icon and text inline like Spike) */
#layout-menu .menu-inner { padding: .5rem .25rem; }
#layout-menu .menu-item { margin: 2px 0; }
#layout-menu .menu-link {
  display: inline-flex;
  align-items: center;
  flex-direction: row;
  gap: .625rem;
  width: 100%;
  padding: .5rem .75rem;
  border-radius: .5rem;
  color: #566a7f;
  line-height: 1.4;
  font-weight: 500;
  text-decoration: none;
}
#layout-menu .menu-link .menu-icon {
  font-size: 1.25rem;
  width: 1.75rem;
  height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #5d87ff;
  background: rgba(93,135,255,.12);
  border-radius: .375rem;
}
#layout-menu .menu-link div {
  flex: 1 1 auto;
  display: inline;
  margin: 0;
}
#layout-menu .menu-link:hover {
  background: rgba(93,135,255,.08);
  color: #1f2d3d;
}
#layout-menu .menu-link.active,
#layout-menu .menu-item .menu-link.active {
  background: rgba(93,135,255,.15);
  color: #5d87ff;
}
#layout-menu .menu-link.active .menu-icon {
  background: rgba(93,135,255,.2);
  color: #5d87ff;
}
