
:root{
  --bg:#09090b;
  --surface:#111113;
  --card:#18181b;
  --border:#27272a;
  --border-l:#3f3f46;
  --text:#fafafa;
  --muted:#71717a;
  --subtle:#3f3f46;
  --accent:#6ee7b7;
  --accent-d:#34d399;
  --accent-l:rgba(110,231,183,.08);
  --accent2:#818cf8;
  --accent2-l:rgba(129,140,248,.08);
  --danger:#f87171;
  --success:#4ade80;
  --shadow:0 2px 12px rgba(0,0,0,.5);
  --shadow-lg:0 20px 60px rgba(0,0,0,.6);
  --r:10px;
  --r-lg:16px;
}

.page-wrap{
  max-width:1400px;margin:0 auto;
  padding:28px 24px;
  display:flex;gap:28px;
  position:relative;z-index:1;
}

/* ══════════════════════════════
   SIDEBAR
══════════════════════════════ */
.sidebar{width:250px;flex-shrink:0;}

.sb-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  overflow:hidden;
  position:sticky;top:140px;
}

.sb-head{
  padding:16px 18px;
  border-bottom:1px solid var(--border);
  font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.8px;
  color:var(--muted);
  background:var(--surface);
  display:flex;align-items:center;gap:8px;
}
.sb-head::before{
  content:'';width:3px;height:12px;
  background:var(--accent);border-radius:2px;
  display:inline-block;
}

.sb-l1-item{border-bottom:1px solid var(--border);}
.sb-l1-item:last-child{border-bottom:none;}

.sb-l1-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;
  font-size:.84rem;font-weight:600;
  color:var(--muted);text-decoration:none;
  transition:all .2s;cursor:pointer;background:transparent;
  border-left:3px solid transparent;
}
.sb-l1-link:hover{background:var(--surface);color:var(--text);border-left-color:var(--border-l);}
.sb-l1-link.active{color:var(--accent);background:var(--accent-l);border-left-color:var(--accent);}

.sb-l1-link .sb-meta{display:flex;align-items:center;gap:6px;}
.sb-l1-link .sb-cnt{
  font-family:'JetBrains Mono',monospace;
  font-size:.62rem;color:var(--subtle);
  background:rgba(255,255,255,.04);
  padding:2px 7px;border-radius:20px;
}
.sb-l1-link.active .sb-cnt{background:rgba(110,231,183,.12);color:var(--accent);}

.sb-chevron{font-size:.55rem;color:var(--subtle);transition:transform .25s;}
.sb-l1-item.open .sb-chevron{transform:rotate(90deg);}

.sb-l2-wrap{
  display:none;
  background:rgba(0,0,0,.2);
  border-top:1px solid var(--border);
}
.sb-l1-item.open .sb-l2-wrap{display:block;}

.sb-l2-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:9px 18px 9px 32px;
  font-size:.78rem;font-weight:500;
  color:var(--muted);text-decoration:none;
  transition:all .2s;
  border-left:2px solid transparent;
}
.sb-l2-link:hover{color:var(--accent);border-left-color:var(--accent);background:var(--accent-l);}
.sb-l2-link.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-l);font-weight:600;}
.sb-l2-link .sb-cnt{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:var(--subtle);}

/* ══════════════════════════════
   CONTENT
══════════════════════════════ */
.content{flex:1;min-width:0;}

.content-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:24px;flex-wrap:wrap;gap:12px;
  padding-bottom:20px;
  border-bottom:1px solid var(--border);
}
.content-header h1{
  font-size:1.4rem;font-weight:800;
  letter-spacing:-.4px;color:var(--text);
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.content-header h1 span{
  font-size:.88rem;color:var(--muted);
  font-weight:400;letter-spacing:0;
}
.header-meta{display:flex;align-items:center;gap:10px;}
.meta-badge{
  font-family:'JetBrains Mono',monospace;
  font-size:.7rem;
  background:rgba(110,231,183,.1);
  color:var(--accent);
  border:1px solid rgba(110,231,183,.2);
  padding:5px 14px;border-radius:20px;font-weight:600;
  display:flex;align-items:center;gap:6px;
}
.meta-badge::before{
  content:'';width:6px;height:6px;
  background:var(--accent);border-radius:50%;
  animation:pulse 2s ease infinite;
}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}

/* ══════════════════════════════
   GRID
══════════════════════════════ */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:16px;
}

.product-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  overflow:hidden;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;
  transition:border-color .25s,transform .3s cubic-bezier(.25,.46,.45,.94),box-shadow .3s;
  animation:fadeUp .45s ease both;
}
.product-card:hover{
  border-color:var(--border-l);
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
}

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

/* Image */
.card-img{
  height:210px;
  background:var(--surface);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;position:relative;
  border-bottom:1px solid var(--border);
}
.card-img img{
  width:100%;height:100%;
  object-fit:contain;padding:16px;
  transition:transform .4s cubic-bezier(.25,.46,.45,.94);
}
.product-card:hover .card-img img{transform:scale(1.08);}

.card-img-placeholder{
  display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--subtle);
}
.card-img-placeholder span{font-size:2.8rem;opacity:.2;}
.card-img-placeholder p{font-size:.7rem;font-weight:500;}

/* Badge */
.card-badge{
  position:absolute;top:10px;right:10px;
  font-size:.6rem;font-weight:700;
  padding:4px 10px;border-radius:20px;
  backdrop-filter:blur(8px);letter-spacing:.3px;
}
.badge-in{
  background:rgba(74,222,128,.15);
  color:var(--success);
  border:1px solid rgba(74,222,128,.25);
}
.badge-out{
  background:rgba(248,113,113,.12);
  color:var(--danger);
  border:1px solid rgba(248,113,113,.2);
}

/* Body */
.card-body{
  padding:16px;flex:1;
  display:flex;flex-direction:column;gap:7px;
}
.card-cat{
  font-size:.6rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.6px;
  color:var(--accent2);background:var(--accent2-l);
  padding:3px 9px;border-radius:4px;
  display:inline-block;max-width:fit-content;
  border:1px solid rgba(129,140,248,.15);
}
.card-title{
  font-size:.87rem;font-weight:700;
  line-height:1.5;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
}
.card-domain{
  font-size:.68rem;color:var(--muted);
  display:flex;align-items:center;gap:4px;margin-top:2px;
}

/* Footer */
.card-footer{
  padding:12px 16px;
  border-top:1px solid var(--border);
  display:flex;align-items:center;
  justify-content:space-between;
  margin-top:auto;
  background:rgba(0,0,0,.15);
}
.card-price{
  font-size:1rem;font-weight:800;
  color:var(--accent);
  font-family:'JetBrains Mono',monospace;
}
.card-btn{
  display:flex;align-items:center;gap:5px;
  padding:7px 14px;
  background:var(--accent);color:#09090b;
  border-radius:8px;font-size:.72rem;font-weight:800;
  text-decoration:none;transition:all .2s;
}
.card-btn:hover{background:var(--accent-d);transform:scale(1.05);}

/* ══════════════════════════════
   PAGINATION
══════════════════════════════ */
.pagination{
  display:flex;align-items:center;
  justify-content:center;
  gap:6px;margin-top:40px;flex-wrap:wrap;
}
.pg{
  min-width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--r);font-size:.82rem;font-weight:600;
  text-decoration:none;color:var(--muted);
  background:var(--card);border:1px solid var(--border);
  transition:all .2s;
}
.pg:hover{border-color:var(--border-l);color:var(--text);background:var(--surface);}
.pg.active{
  background:var(--accent);color:#09090b;
  border-color:var(--accent);font-weight:800;
  box-shadow:0 4px 20px rgba(110,231,183,.2);
}
.pg.disabled{opacity:.3;pointer-events:none;}

/* ══════════════════════════════
   EMPTY
══════════════════════════════ */
.empty{text-align:center;padding:100px 20px;}
.empty-icon{font-size:4rem;margin-bottom:18px;opacity:.2;display:block;}
.empty h3{font-size:1.2rem;font-weight:800;margin-bottom:10px;}
.empty p{color:var(--muted);font-size:.875rem;margin-bottom:24px;}
.empty a{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 28px;background:var(--accent);
  color:#09090b;border-radius:var(--r);
  text-decoration:none;font-weight:800;font-size:.875rem;
  transition:all .2s;
}
.empty a:hover{background:var(--accent-d);transform:translateY(-2px);}

@media(max-width:900px){
  .sidebar{display:none;}
  .page-wrap{padding:16px;gap:0;}
  .grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
  .card-img{height:160px;}
  .card-body{padding:12px;}
  .card-footer{padding:10px 12px;}
}
