:root{
  --bg:#f4f6fb;
  --card:#ffffff;
  --line:#e5e7eb;
  --text:#101828;
  --muted:#667085;
  --brand:#12806a;
  --navy:#08194d;
  --badge-bg:#e9f7f0;
  --badge-text:#21795f;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
img{display:block}
.page{max-width:1320px;margin:0 auto;padding:24px 18px 48px}
.card{background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:0 8px 28px rgba(16,24,40,.05)}
.hero,.toolbar{padding:28px}
.hero h1,.toolbar h1{margin:12px 0 8px;font-size:clamp(32px,5vw,56px);line-height:1.02}
.hero p{margin:0 0 20px;color:var(--muted);font-size:18px}
.badge{display:inline-flex;padding:10px 16px;border-radius:999px;background:var(--badge-bg);color:var(--badge-text);font-weight:800;font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:16px;text-decoration:none;font-weight:800}
.btn-primary{background:var(--navy);color:#fff}
.btn-secondary{background:#eef2ff;color:var(--navy)}
.toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px}
.filters{display:flex;gap:10px;flex-wrap:wrap}
.filter-btn{padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:#fff;font-weight:800;cursor:pointer}
.filter-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.bike-card{background:#fff;border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 10px 28px rgba(16,24,40,.06)}
.bike-image{height:250px;background:#f7f8fa;padding:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.bike-image img{width:100%;height:100%;object-fit:contain}
.bike-content{padding:20px}
.bike-title{font-size:20px;line-height:1.25;margin:12px 0 8px;color:#0f172a;min-height:50px}
.bike-meta{color:var(--muted);font-size:15px;line-height:1.5;min-height:44px;margin-bottom:16px}
.bike-price{font-size:clamp(30px,4vw,46px);line-height:1;font-weight:900;color:var(--brand);margin-bottom:18px}
.empty-card{padding:20px}
.back-link{display:inline-flex;margin-bottom:16px;color:var(--navy);font-weight:800;text-decoration:none}
.detail-shell{padding-top:20px}
.detail-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:24px}
.detail-photo,.detail-panel{padding:24px}
.detail-photo-wrap{height:min(70vh,640px);background:#f7f8fa;border-radius:24px;padding:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.detail-photo-wrap img{width:100%;height:100%;object-fit:contain}
.detail-title{font-size:clamp(26px,4vw,48px);line-height:1.04;margin:14px 0 16px;max-width:18ch}
.detail-price{font-size:clamp(30px,5vw,56px);font-weight:900;line-height:1;color:var(--brand);margin:0 0 20px}
.spec-list{display:grid;gap:10px}
.spec-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
.spec-row span{color:var(--muted)}
.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
@media (max-width: 920px){
  .toolbar{flex-direction:column;align-items:flex-start}
  .detail-layout{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .page{padding:14px 12px 30px}
  .hero,.toolbar,.detail-photo,.detail-panel{padding:18px}
  .grid{grid-template-columns:1fr}
  .bike-image{height:220px}
  .bike-title{min-height:0}
  .detail-title{max-width:none}
  .detail-price{font-size:clamp(28px,9vw,42px)}
  .spec-row{font-size:15px}
}
