.filters {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:end
}
.filters label:first-child {
  flex:1;
  min-width:220px
}
.filters label {
  min-width:180px
}
.spec-list {
  margin-top:24px
}
.spec-row {
  padding:24px 0;
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:24px;
  border-bottom:1px solid var(--border)
}
.spec-row p {
  margin:6px 0
}
.spec-code {
  font-size:var(--h3);
  font-weight:700
}
.spec-row strong,.price,.totals {
  font-variant-numeric:tabular-nums
}
.empty {
  padding-block:40px
}
.new-head {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:24px;
  margin-bottom:16px
}
.new-head h1 {
  margin:0
}
.new-layout {
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:24px;
  align-items:start
}
.new-layout h2 {
  font-size:var(--h3);
  margin:0 0 10px
}
.seller-col {
  position:sticky;
  top:12px
}
.seller-grid {
  display:grid;
  gap:8px
}
.seller-choice {
  background:var(--panel);
  padding:10px 12px;
  border-radius:var(--radius);
  border:2px solid transparent;
  align-items:flex-start!important;
  gap:10px!important;
  font-size:var(--small);
  line-height:1.4
}
.seller-choice input {
  margin-top:1px
}
.seller-choice.chosen {
  border-color:var(--text);
  background:var(--bg);
  box-shadow:inset 4px 0 var(--brand-yellow)
}
.seller-choice>span {
  min-width:0;
  overflow-wrap:anywhere
}
.seller-choice strong,.seller-choice span span {
  display:block
}
.seller-choice strong {
  font-size:var(--body)
}
.seller-choice span span {
  margin-top:2px;
  color:var(--muted)
}
.variant-status:empty,.variant-col .error:empty {
  display:none
}
.variant-col .hint {
  color:var(--muted)
}
.family-grid {
  display:grid;
  gap:12px;
  align-items:start
}
.family-col {
  display:grid;
  gap:12px;
  min-width:0
}
.family {
  background:var(--panel);
  border-radius:var(--radius);
  padding:10px 12px 8px
}
.family h3 {
  font-size:var(--small);
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:0 0 4px;
  padding-bottom:6px;
  border-bottom:2px solid var(--brand-yellow)
}
.variant {
  width:100%;
  min-height:40px;
  padding:6px 8px;
  border-radius:6px;
  background:transparent;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  text-align:start;
  font-weight:400;
  line-height:1.35
}
.variant:hover {
  background:var(--bg);
  box-shadow:inset 3px 0 var(--brand-yellow)
}
.variant+.variant {
  border-top:1px solid var(--border);
  border-radius:0 0 6px 6px
}
.variant-title {
  font-weight:600;
  color:var(--black);
  overflow-wrap:anywhere
}
.variant .price {
  white-space:nowrap;
  font-weight:600;
  font-variant-numeric:tabular-nums
}
.spec-row {
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center
}
.spec-main p {
  margin:3px 0
}
.spec-line1 {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 14px
}
.spec-client {
  font-weight:700
}
.spec-client.missing {
  font-weight:400;
  color:var(--red)
}
.spec-model {
  color:var(--text)
}
.spec-meta {
  display:flex;
  flex-wrap:wrap;
  gap:4px 16px;
  color:var(--muted);
  font-size:var(--fs-note,.875rem)
}
.spec-meta .state {
  padding:0 8px;
  border-inline-start:3px solid var(--accent);
  color:var(--text);
  font-weight:600
}
.spec-meta .state.draft {
  border-inline-start-color:var(--input-border)
}
.spec-sum {
  color:var(--text);
  font-weight:600
}
.spec-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 12px;
  justify-content:flex-end
}
@media(max-width:700px) {
  .spec-actions {
    justify-content:flex-start
  }
}
.tpl-start {
  margin:0 0 24px
}
.tpl-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:10px
}
.tpl-pick .price {
  white-space:normal;
  text-align:start
}
.tpl-grid .tpl-pick,.tpl-grid .tpl-pick+.tpl-pick {
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px
}
.tpl-pick .variant-title {
  font-weight:700
}
.tpl-pick .price {
  font-weight:400;
  color:var(--muted)
}
