:root{
  --bg:#f5f6f8;
  --surface:#ffffff;
  --text:#14171c;
  --muted:#6b7280;
  --border:#e3e6ec;
  --brand:#e63946;
  --brand-dark:#c22b37;
  --dark:#151a21;
  --ok:#12805c;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--text);
  font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 16px}

/* ---------- шапка ---------- */
.top{background:var(--dark);color:#fff;position:sticky;top:0;z-index:20}
.top__in{display:flex;align-items:center;gap:24px;padding:14px 16px;flex-wrap:wrap}
.logo{font-size:22px;font-weight:800;letter-spacing:-.5px;white-space:nowrap}
.logo span{color:var(--brand)}
.search{flex:1;min-width:280px}
.search__tabs{display:flex;gap:6px;margin-bottom:6px}
.tab{
  background:rgba(255,255,255,.1);color:#cfd6e2;border:0;border-radius:6px 6px 0 0;
  padding:5px 12px;font-size:12.5px;cursor:pointer;font-weight:600;
}
.tab.is-active{background:var(--brand);color:#fff}
.search__form{display:flex;gap:8px}
.search__form input{
  flex:1;min-width:0;height:42px;border:0;border-radius:8px;padding:0 14px;font-size:15px;background:#fff;color:#111;
}
.search__form button{
  height:42px;padding:0 22px;border:0;border-radius:8px;background:var(--brand);color:#fff;
  font-weight:700;cursor:pointer;white-space:nowrap;
}
.search__form button:hover{background:var(--brand-dark)}
.top__right{display:flex;align-items:center;gap:16px}
.phone{font-weight:600;white-space:nowrap}
.cart-btn{
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);
  border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer;
}
.badge{background:var(--brand);border-radius:20px;padding:1px 8px;margin-left:4px;font-size:12.5px}

/* ---------- раскладка ---------- */
.layout{display:grid;grid-template-columns:230px 1fr;gap:24px;padding:24px 0 48px;align-items:start}
@media(max-width:820px){.layout{grid-template-columns:1fr}}
.cats{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}
.cats h3{margin:2px 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.cat{
  display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px;
}
.cat:hover{background:#f1f3f7}
.cat.is-active{background:#fdecee;color:var(--brand-dark);font-weight:600}
.cat small{color:var(--muted)}
.content{min-height:320px}
.hint{background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:28px;color:var(--muted);text-align:center}

/* ---------- товары ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}
.card__brand{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.card__name{font-weight:600;line-height:1.3;min-height:40px}
.card__price{font-size:19px;font-weight:800}
.card__stock{font-size:13px;color:var(--muted)}
.btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer;font-size:14px}
.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn--primary:hover{background:var(--brand-dark)}
.btn--sm{padding:6px 10px;font-size:13px}
.title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
.title-row h2{margin:0;font-size:19px}
.title-row .muted{color:var(--muted);font-size:13px}

/* ---------- предложения поставщиков ---------- */
.offers{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:18px}
.offers h3{margin:0;padding:14px 16px;font-size:15px;border-bottom:1px solid var(--border)}
.offer{display:grid;grid-template-columns:1.6fr 1fr .7fr .9fr .6fr;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}
.offer:last-child{border-bottom:0}
.offer--head{background:#fafbfd;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
.offer__sup{font-weight:600}
.offer__sup small{display:block;color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0}
.offer__price{font-weight:800;font-size:16px}
.offer__err{color:var(--brand-dark);font-size:13px;grid-column:1/-1}
@media(max-width:760px){
  .offer{grid-template-columns:1fr 1fr;row-gap:6px}
  .offer--head{display:none}
}

/* ---------- VIN ---------- */
.vin-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}
.vin-card h2{margin:0 0 10px;font-size:18px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;font-weight:600}
.tag{display:inline-block;background:#eef2f7;border-radius:20px;padding:2px 10px;font-size:12.5px;color:#43506a;margin-left:6px}

/* ---------- корзина ---------- */
.drawer{position:fixed;inset:0;z-index:50}
.drawer__overlay{position:absolute;inset:0;background:rgba(10,12,16,.45)}
.drawer__box{
  position:absolute;right:0;top:0;bottom:0;width:420px;max-width:100%;background:#fff;
  display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.18);
}
.drawer__head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}
.x{background:none;border:0;font-size:24px;line-height:1;cursor:pointer;color:var(--muted)}
.cart-list{flex:1;overflow:auto;padding:12px 16px}
.cart-item{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}
.cart-item small{display:block;color:var(--muted)}
.checkout{border-top:1px solid var(--border);padding:14px 16px;display:grid;gap:8px}
.checkout input,.checkout textarea{border:1px solid var(--border);border-radius:8px;padding:9px 11px;font:inherit;width:100%}
.checkout__sum{font-size:16px}
.msg{font-size:13.5px;min-height:18px}
.msg--ok{color:var(--ok)}
.msg--err{color:var(--brand-dark)}

.foot{border-top:1px solid var(--border);background:#fff;color:var(--muted);font-size:13px;padding:18px 0;margin-top:auto}
