:root{
  --bg:#0b0f14; --bg2:#0e1320; --card:#121826;
  --text:#e7edf5; --muted:#9aa4b2; --brand:#7c5cff; --brand2:#22c55e;
  --stroke:#263244; --radius:18px; --shadow:0 16px 40px rgba(0,0,0,.35);
  font-family: system-ui, -apple-system, Segoe UI, Roboto;
}
body.light{
  --bg:#f4f6f8; --bg2:#eef1f5; --card:#fff;
  --text:#0f172a; --muted:#64748b; --stroke:#d1d5db;
  --shadow:0 16px 40px rgba(2,6,23,.12);
}
*{ box-sizing:border-box }
html,body{ height:100% }
body{
  margin:0;
  color:var(--text);
  background: radial-gradient(1200px 600px at 15% 0%, rgba(124,92,255,.25), transparent 55%),
              radial-gradient(1200px 600px at 85% 0%, rgba(34,197,94,.18), transparent 55%),
              linear-gradient(180deg,var(--bg),var(--bg2));
}
a{ color:inherit; text-decoration:none }
.container{ max-width:1100px; margin:0 auto; padding:22px; }
.muted{ color:var(--muted); }

.card{
  background:rgba(255,255,255,.03);
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:16px;
  margin-bottom:18px;
}

.btn{
  padding:10px 14px; border-radius:14px; border:1px solid var(--stroke);
  background:transparent; color:var(--text); cursor:pointer;
}
.btn:hover{ background:rgba(124,92,255,.12); }
.btn.primary{ border:none; background:linear-gradient(135deg,var(--brand),var(--brand2)); color:#fff; }

.iconbtn{
  width:40px; height:40px; border-radius:14px; border:1px solid var(--stroke);
  background:rgba(255,255,255,.03); color:var(--text); cursor:pointer;
}
.iconbtn:hover{ background:rgba(124,92,255,.12); }

input,textarea{
  width:100%; padding:12px; border-radius:14px; border:1px solid var(--stroke);
  background:rgba(255,255,255,.03); color:var(--text); font:inherit;
}
textarea{ min-height:92px; resize:vertical; }

.topbar{
  max-width:1100px; margin:0 auto; padding:18px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.logo{ width:44px; height:44px; border-radius:16px; background:linear-gradient(135deg,var(--brand),var(--brand2)); box-shadow:var(--shadow); }
.brand-title{ font-weight:800; font-size:18px; }
.brand-sub{ font-size:13px; color:var(--muted); margin-top:2px; }
.top-actions{ display:flex; gap:10px; align-items:center; }

.search-area{ position:relative; }
.searchbox{
  display:flex; align-items:center; gap:10px;
  border:1px solid var(--stroke); background:rgba(255,255,255,.03);
  border-radius:18px; padding:10px 12px;
}
.searchbox input{ border:none; background:transparent; outline:none; padding:8px; }
.suggest{
  display:none; position:absolute; left:0; right:0; margin-top:10px;
  background:rgba(15,22,38,.92); border:1px solid var(--stroke); border-radius:18px;
  overflow:hidden; backdrop-filter: blur(10px); z-index:10;
}
body.light .suggest{ background:rgba(255,255,255,.92); }
.sug-item{ width:100%; text-align:left; padding:12px 14px; border:none; background:transparent; color:inherit; cursor:pointer; }
.sug-item:hover{ background:rgba(124,92,255,.12); }

.filters{ display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.chip{
  padding:10px 12px; border-radius:999px; border:1px solid var(--stroke);
  background:rgba(255,255,255,.02); cursor:pointer;
}
.chip.active{ border:none; background:linear-gradient(135deg, rgba(124,92,255,.95), rgba(34,197,94,.9)); color:#fff; }

.grid{ margin-top:18px; display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:16px; }
.pcard{ overflow:hidden; border:1px solid var(--stroke); background:rgba(255,255,255,.03); border-radius:22px; box-shadow:var(--shadow); }
.pimg{ width:100%; height:170px; object-fit:cover; display:block; }
.pimg.ph{ background:linear-gradient(135deg, rgba(124,92,255,.18), rgba(34,197,94,.12)); }
.pbody{ padding:14px 14px 16px; display:flex; flex-direction:column; gap:10px; }
.pname{ font-weight:800; font-size:16px; }
.pmeta{ font-size:13px; }
.pdesc{ font-size:13px; line-height:1.45; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pfoot{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.pprice{ font-weight:900; }

.modal{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; padding:22px; background:rgba(0,0,0,.55); z-index:50; }
.modal.open{ display:flex; }
.modal-box{
  width:min(520px, 100%); border-radius:22px; border:1px solid var(--stroke);
  background:rgba(15,22,38,.92); backdrop-filter: blur(10px); box-shadow:var(--shadow); padding:16px;
}
body.light .modal-box{ background:rgba(255,255,255,.92); }
.modal-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.contact-actions{ display:grid; gap:10px; }
.contact-btn{ display:block; padding:12px 14px; border-radius:16px; border:1px solid var(--stroke); background:rgba(255,255,255,.03); }
.contact-btn:hover{ background:rgba(124,92,255,.12); }

.toast{
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%);
  background:rgba(15,22,38,.92); border:1px solid var(--stroke);
  padding:10px 14px; border-radius:999px; box-shadow:var(--shadow);
  opacity:0; pointer-events:none; transition:.18s ease; z-index:80;
}
body.light .toast{ background:rgba(255,255,255,.92); }
.toast.show{ opacity:1; transform:translateX(-50%) translateY(-2px); }

h1,h2,h3{ margin:0 0 12px; }
