:root{
  --ink:#121212;
  --muted:#666;
  --line:#d8d8d8;
  --panel:#ffffff;
  --bg:#eef1f4;
  --nav:#152232;
  --nav2:#243348;
  --accent:#ffb000;
  --accent2:#f5a000;
  --good:#087a2b;
  --bad:#a01818;
  --shadow:0 10px 30px rgba(0,0,0,.12);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
button,a{font:inherit}
button{cursor:pointer}
img{max-width:100%}

.site-header{position:sticky;top:0;z-index:20;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.header-top{display:flex;gap:14px;align-items:center;background:var(--nav);color:#fff;padding:12px 18px}
.menu-btn{display:none;background:transparent;color:white;border:0;font-size:26px}
.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;min-width:240px}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#ff7b00);font-weight:900;color:#111}
.brand small{display:block;color:#b7c4d5;font-size:12px}
.search-box{display:flex;flex:1;max-width:850px}
.search-box select{border:0;padding:0 8px;background:#f2f2f2;border-radius:7px 0 0 7px}
.search-box input{flex:1;border:0;padding:12px;font-size:16px}
.search-box button{border:0;background:var(--accent);padding:0 18px;border-radius:0 7px 7px 0;font-weight:700}
.header-actions{display:flex;gap:8px}
.header-action{position:relative;border:0;background:transparent;color:white;padding:8px;text-decoration:none}
.header-action b{position:absolute;right:-4px;top:-4px;background:var(--accent);color:#111;border-radius:999px;min-width:20px;padding:2px;font-size:12px}
.nav-bar{display:flex;gap:18px;background:var(--nav2);padding:9px 18px}
.nav-bar a{color:#fff;text-decoration:none;font-size:14px}

.hero{display:grid;grid-template-columns:1.7fr .9fr;gap:20px;align-items:center;padding:38px 24px;background:linear-gradient(135deg,#fff7df,#ffffff)}
.hero h1{font-size:clamp(32px,5vw,56px);line-height:1.02;margin:8px 0}
.eyebrow{text-transform:uppercase;font-size:12px;font-weight:800;color:#7b4f00;letter-spacing:.08em}
.hero p{font-size:18px;color:#333}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:999px;text-decoration:none;border:0;font-weight:800}
.primary-btn{background:var(--accent);color:#111}
.secondary-btn{background:#fff;color:#111;border:1px solid var(--line)}
.full{width:100%}
.hero-card{background:var(--panel);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mini-stats span{background:#f5f6f7;border-radius:12px;padding:12px;text-align:center;color:var(--muted)}
.mini-stats b{display:block;font-size:28px;color:var(--ink)}

.layout{display:grid;grid-template-columns:280px 1fr;gap:20px;padding:20px}
.filters{background:var(--panel);border-radius:16px;padding:16px;align-self:start;position:sticky;top:116px;box-shadow:0 2px 12px rgba(0,0,0,.07)}
.filter-head{display:flex;justify-content:space-between;align-items:center}
.filters label{display:block;font-weight:700;margin-top:14px}
.filters select,.filters input{width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;margin-top:6px}
.checkline{display:flex!important;gap:8px;align-items:center}
.checkline input{width:auto}
.filter-box{background:#f7f7f7;border-radius:12px;padding:12px;margin-top:16px;font-size:13px;color:var(--muted)}

.content{min-width:0}
.deal-strip,.admin-panel{background:var(--panel);padding:18px;border-radius:16px;margin-bottom:18px}
.deal-rail{display:flex;gap:12px;overflow:auto;padding-bottom:6px}
.deal-card{min-width:180px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;text-align:left}
.deal-card img{height:110px;width:100%;object-fit:cover;border-radius:10px}
.deal-card span{display:block;margin:8px 0;height:40px;overflow:hidden}

.section-title{display:flex;align-items:end;justify-content:space-between;margin:6px 0 14px}
.section-title h2{margin:0;font-size:32px}
.view-actions button{border:1px solid var(--line);background:#fff;padding:8px 12px;border-radius:10px}
.view-actions .active{background:var(--nav);color:white}

.loading,.empty-state{background:#fff;border-radius:16px;padding:28px;text-align:center}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.product-card{position:relative;background:var(--panel);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.08);display:flex;flex-direction:column}
.product-card .wish-btn{position:absolute;top:10px;right:10px;z-index:2;border:0;border-radius:999px;background:#fff;width:38px;height:38px;font-size:20px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.image-btn{border:0;background:#fff;padding:0}
.image-btn img{width:100%;height:230px;object-fit:cover;display:block}
.product-info{padding:14px;display:flex;flex-direction:column;gap:8px;flex:1}
.category{color:var(--muted);font-size:13px;margin:0}
.product-info h3{font-size:18px;margin:0;line-height:1.25}
.product-info h3 button{border:0;background:transparent;text-align:left;font-weight:800;padding:0}
.desc{color:#444;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.price-row{display:flex;gap:10px;align-items:center}
.price-row strong,.modal-price{font-size:24px;font-weight:900}
.discount{background:#ffe3e3;color:#8a0d0d;border-radius:999px;padding:4px 8px;font-size:12px}
.meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}
.meta span{background:#f1f3f5;border-radius:999px;padding:4px 8px}
.meta .ok{background:#e8f8ed;color:var(--good)}
.meta .bad{background:#fdecec;color:var(--bad)}
.product-actions{display:flex;gap:8px;margin-top:auto}
.product-actions button,.modal-actions button,.modal-actions a{flex:1;border:0;background:var(--accent);color:#111;border-radius:999px;padding:10px;text-decoration:none;text-align:center;font-weight:800}
.product-actions button:nth-child(2){background:#f1f3f5}
button:disabled{opacity:.5;cursor:not-allowed}

.product-grid.list{display:flex;flex-direction:column}
.product-grid.list .product-card{display:grid;grid-template-columns:220px 1fr}
.product-grid.list .image-btn img{height:100%}

.drawer{position:fixed;top:0;right:-420px;width:min(420px,100%);height:100vh;background:#fff;z-index:50;box-shadow:var(--shadow);transition:.25s;display:flex;flex-direction:column}
.drawer.open{right:0}
.drawer-header,.drawer-footer{padding:16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.drawer-footer{border-top:1px solid var(--line);border-bottom:0;display:block;margin-top:auto}
.drawer-header button{border:0;background:#f2f2f2;border-radius:999px;width:34px;height:34px;font-size:22px}
.drawer-items{padding:16px;overflow:auto}
.drawer-item{display:flex;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}
.drawer-item img{width:68px;height:68px;object-fit:cover;border-radius:10px}
.drawer-item strong,.drawer-item span{display:block}
.drawer-item button{border:0;background:#f1f3f5;border-radius:8px;margin-top:6px;padding:6px 8px}
.total-row{display:flex;justify-content:space-between;font-size:20px;margin-bottom:12px}

.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:60;display:grid;place-items:center;padding:20px}
.modal{background:#fff;border-radius:18px;max-width:1000px;width:100%;max-height:92vh;overflow:auto;position:relative;padding:20px}
.modal-close{position:absolute;right:14px;top:14px;border:0;background:#f2f2f2;border-radius:999px;width:40px;height:40px;font-size:24px}
.product-modal-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.modal-gallery{display:grid;gap:10px}
.modal-gallery img{width:100%;max-height:360px;object-fit:contain;background:#f5f5f5;border-radius:14px}
.detail-list{display:grid;grid-template-columns:140px 1fr;gap:8px}
.detail-list dt{font-weight:800}
.detail-list dd{margin:0;color:#444}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:#111;color:#fff;padding:12px 18px;border-radius:999px;opacity:0;pointer-events:none;z-index:100;transition:.2s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

footer{text-align:center;color:#666;padding:30px}

.admin-wrap{padding:24px}
.admin-hero,.dashboard-grid,.admin-panel{margin-bottom:18px}
.admin-hero{background:#fff;border-radius:18px;padding:24px}
.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.dash-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.dash-card span{color:#666}
.dash-card strong{display:block;font-size:32px;margin-top:8px}
.category-breakdown{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.category-breakdown div{display:flex;justify-content:space-between;background:#f5f6f7;border-radius:12px;padding:12px}
.admin-search{padding:10px;border:1px solid var(--line);border-radius:10px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}
.table-img{width:54px;height:54px;object-fit:cover;border-radius:8px}

.readme-page{background:#fff}
.readme{max-width:900px;margin:auto;padding:30px;line-height:1.55}
.readme pre{background:#f5f6f7;padding:14px;border-radius:12px;overflow:auto}


/* FIX: keep product modal fully hidden until JavaScript opens it */
.modal-backdrop[hidden],
#productModal[hidden] {
  display: none !important;
}

#productModal:not([hidden]) {
  display: grid !important;
}

.modal:empty,
#modalContent:empty {
  display: none;
}


/* Public Bow Service Marketplace additions */
.trust-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  padding: 18px 24px;
  background: #ffffff;
  border-bottom: 1px solid var(--line);
}

.trust-row div {
  background: #f7f8fa;
  border-radius: 14px;
  padding: 14px;
}

.trust-row strong,
.trust-row span {
  display: block;
}

.trust-row span {
  color: var(--muted);
  margin-top: 4px;
  font-size: 14px;
}

.category-showcase {
  background: var(--panel);
  padding: 18px;
  border-radius: 16px;
  margin-bottom: 18px;
}

.category-chips {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}

.category-chip {
  border: 1px solid var(--line);
  background: linear-gradient(135deg, #ffffff, #fff7df);
  border-radius: 14px;
  padding: 14px;
  text-align: left;
}

.category-chip strong,
.category-chip span {
  display: block;
}

.category-chip span {
  color: var(--muted);
  font-size: 13px;
  margin-top: 4px;
}

.info-panels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 22px 0;
}

.info-panels div {
  background: #ffffff;
  border-radius: 16px;
  padding: 18px;
}

.section-title.tight {
  margin-top: 0;
}

@media (max-width: 900px) {
  .trust-row,
  .info-panels {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px) {
  .trust-row,
  .info-panels {
    grid-template-columns: 1fr;
  }
}


/* v2 public updates */
.category-showcase {
  display: none !important;
}

.sold-toggle {
  background: #fff7df;
  border: 1px solid #f0d28a;
  border-radius: 12px;
  padding: 10px;
  margin-top: 14px;
}

.age-modal {
  background: #ffffff;
  border-radius: 20px;
  max-width: 460px;
  padding: 26px;
  box-shadow: var(--shadow);
  text-align: center;
}

.age-modal h2 {
  margin-top: 0;
}

.age-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 18px;
}


/* v3 multipage additions */
.link-action{text-decoration:none}.product-info h3 a{color:inherit;text-decoration:none}
.button-link{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--accent);color:#111;border-radius:999px;padding:10px;text-decoration:none;font-weight:800;flex:1;text-align:center}
.secondary-action{background:#f1f3f5}.small-btn{padding:9px 12px;font-size:14px}
.sold-card{opacity:.82}.sold-card::after{content:"SOLD";position:absolute;left:12px;top:12px;background:#a01818;color:#fff;font-weight:900;font-size:12px;border-radius:999px;padding:6px 10px}
.simple-page,.item-page{padding:24px;max-width:1280px;margin:0 auto}.breadcrumb{margin-bottom:16px;color:var(--muted)}.breadcrumb a{color:var(--nav);font-weight:800;text-decoration:none}
.item-detail{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;background:#fff;border-radius:18px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.item-gallery{display:grid;gap:12px}.item-gallery img{width:100%;max-height:520px;object-fit:contain;background:#f5f6f7;border-radius:16px}.item-buybox h1{font-size:clamp(28px,4vw,46px);margin:6px 0}
.sold-notice{background:#fff2f2;border:1px solid #f0b7b7;color:#5a0c0c;border-radius:18px;padding:20px;margin-bottom:18px}.similar-section{margin-top:24px}
.cart-page{display:grid;grid-template-columns:1fr 320px;gap:20px}.cart-page-item{display:flex;gap:14px;background:#fff;border-radius:16px;padding:14px;margin-bottom:12px}.cart-page-item img{width:110px;height:110px;object-fit:cover;border-radius:12px}
.cart-summary{background:#fff;border-radius:16px;padding:18px;align-self:start;position:sticky;top:110px}.cart-summary strong{display:block;font-size:32px;margin-bottom:14px}
.center-page{text-align:center;max-width:760px;margin:0 auto}.legal-page{background:#fff;border-radius:18px}.remove-wide{width:100%;border:0;border-radius:999px;padding:10px;margin:-6px 0 14px;background:#f1f3f5;font-weight:800}
@media(max-width:900px){.item-detail,.cart-page{grid-template-columns:1fr}.cart-summary{position:static}}


/* v4 fixes */
.deal-card {
  color: var(--ink) !important;
  text-decoration: none !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  transition: transform .16s ease, box-shadow .16s ease;
}

.deal-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0,0,0,.14);
}

.deal-card span,
.deal-card strong {
  color: var(--ink);
  text-decoration: none;
}

.carousel-gallery {
  display: block;
}

.main-image-wrap {
  position: relative;
  background: #f5f6f7;
  border-radius: 18px;
  overflow: hidden;
  min-height: 360px;
  display: grid;
  place-items: center;
}

.main-image-wrap img {
  width: 100%;
  height: min(520px, 62vh);
  object-fit: contain;
  display: block;
}

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 2px 12px rgba(0,0,0,.18);
  font-size: 32px;
  line-height: 1;
  z-index: 2;
}

.carousel-btn.prev { left: 12px; }
.carousel-btn.next { right: 12px; }

.thumb-row {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  margin-top: 12px;
  padding-bottom: 6px;
}

.thumb-btn {
  border: 2px solid transparent;
  border-radius: 12px;
  background: #fff;
  padding: 4px;
  min-width: 82px;
}

.thumb-btn.active {
  border-color: var(--accent);
}

.thumb-btn img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 8px;
}

.modal-price {
  color: #111;
}

@media (max-width: 560px) {
  .main-image-wrap {
    min-height: 260px;
  }
  .main-image-wrap img {
    height: 320px;
  }
}


/* v6 mobile cleanup and categories page */
.mini-action-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.category-page-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 14px;
}

.category-page-card {
  background: linear-gradient(135deg, #ffffff, #fff7df);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}

.category-page-card strong,
.category-page-card span {
  display: block;
}

.category-page-card strong {
  font-size: 20px;
}

.category-page-card span {
  color: var(--muted);
  margin-top: 6px;
}

@media (max-width: 700px) {
  body {
    overflow-x: hidden;
  }

  .header-top {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
    padding: 10px;
  }

  .brand {
    min-width: 0;
    width: 100%;
  }

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

  .brand small {
    font-size: 11px;
  }

  .header-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
    gap: 6px;
  }

  .header-action {
    background: rgba(255,255,255,.08);
    border-radius: 10px;
    text-align: center;
    padding: 9px 4px;
    font-size: 13px;
  }

  .search-box {
    grid-column: 1 / -1;
    order: unset;
    min-width: 0 !important;
    width: 100%;
    max-width: 100%;
    display: grid;
    grid-template-columns: 78px 1fr;
  }

  .search-box select {
    width: 78px;
    min-width: 0;
    border-radius: 9px 0 0 9px;
  }

  .search-box input {
    min-width: 0;
    width: 100%;
    border-radius: 0 9px 9px 0;
  }

  .search-box button {
    grid-column: 1 / -1;
    border-radius: 9px;
    margin-top: 6px;
    padding: 10px;
    width: 100%;
  }

  .nav-bar {
    overflow-x: auto;
    white-space: nowrap;
  }

  .hero {
    padding: 22px 12px;
  }

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

  .section-title {
    align-items: flex-start;
    gap: 10px;
  }

  .mini-action-row {
    width: 100%;
    justify-content: flex-start;
  }

  .mini-action-row .small-btn {
    flex: 1;
    min-width: 145px;
  }

  .category-page-grid {
    grid-template-columns: 1fr;
  }
}


/* v7 browse modal + stronger mobile no-side-scroll fixes */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

* {
  min-width: 0;
}

img, video, canvas, iframe {
  max-width: 100%;
}

.browse-choice-modal {
  background: #ffffff;
  border-radius: 22px;
  max-width: 520px;
  width: min(520px, calc(100vw - 28px));
  padding: 28px;
  box-shadow: var(--shadow);
  position: relative;
  text-align: center;
}

.browse-choice-modal h2 {
  margin: 6px 0;
  font-size: clamp(26px, 5vw, 38px);
}

.browse-choice-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 18px;
}

.browse-choice-actions .primary-btn,
.browse-choice-actions .secondary-btn {
  width: 100%;
}

@media (max-width: 760px) {
  .site-header,
  .header-top,
  .nav-bar,
  .hero,
  .trust-row,
  .layout,
  .content,
  .filters,
  .deal-strip,
  .product-grid,
  .simple-page,
  .item-page,
  .admin-hero,
  .info-panels,
  .cart-page,
  .item-detail,
  footer {
    max-width: 100vw;
  }

  .header-top {
    width: 100%;
  }

  .search-box {
    overflow: hidden;
  }

  .search-box input,
  .search-box select,
  .search-box button {
    max-width: 100%;
  }

  .section-title {
    display: block;
  }

  .section-title .view-actions,
  .section-title .mini-action-row {
    margin-top: 10px;
  }

  .deal-rail {
    max-width: 100%;
    overflow-x: auto;
  }

  .deal-card {
    min-width: 165px;
    max-width: 185px;
  }

  .product-grid {
    grid-template-columns: 1fr !important;
  }

  .product-grid.list .product-card {
    grid-template-columns: 1fr !important;
  }

  .product-card {
    width: 100%;
  }

  .image-btn img {
    height: 240px;
  }

  .drawer {
    width: 100vw;
  }

  .modal {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    padding: 14px;
  }

  .browse-choice-actions {
    grid-template-columns: 1fr;
  }

  .cart-page-item {
    display: grid;
    grid-template-columns: 86px 1fr;
  }

  .cart-page-item img {
    width: 86px;
    height: 86px;
  }

  .nav-bar.open {
    display: flex;
    overflow-x: auto;
  }
}

@media (max-width: 420px) {
  .brand-mark {
    width: 36px;
    height: 36px;
  }

  .hero h1 {
    font-size: 26px;
  }

  .hero p {
    font-size: 15px;
  }

  .primary-btn,
  .secondary-btn,
  .button-link {
    padding: 11px 12px;
  }

  .mini-stats b {
    font-size: 22px;
  }

  .filters,
  .deal-strip,
  .category-showcase,
  .info-panels div,
  .admin-hero,
  .item-detail,
  .cart-summary {
    padding: 14px;
  }
}


/* v8 category redirect fix */
.category-page-card {
  cursor: pointer;
  text-align: left;
  font: inherit;
}

.category-page-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0,0,0,.14);
}
