.dp-cols { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 12px; align-items: start; }
.dp-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.dp-opt { min-height: 44px; padding: 0 14px; border: 1px solid var(--control); border-radius: 10px; background: var(--surface); color: var(--ink); font: inherit; font-size: .9375rem; font-weight: 650; cursor: pointer; }
.dp-opt[aria-pressed="true"] { border-color: var(--ink); background: var(--sun); }
.dp-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: .9375rem; font-weight: 600; }
.dp-check input { width: 20px; height: 20px; }
.dp-tag { font-size: var(--t-s); font-weight: 700; color: var(--made); }
.dp-stage { display: grid; justify-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper-2); max-height: 760px; overflow-y: auto; }
.dp-page { display: grid; gap: 0; width: 100%; background: var(--surface); border: 1px solid var(--line); }
.dp-w-a { max-width: 360px; } .dp-w-b { max-width: 420px; } .dp-w-c { max-width: 520px; }
.dp-blk { display: grid; gap: 8px; padding: 22px 18px; border-bottom: 1px solid var(--line); }
.dp-blk:last-child { border-bottom: 0; }
.dp-blk h3 { font-size: 1.25rem; font-weight: 800; line-height: 1.35; }
.dp-img { display: grid; place-items: center; min-height: 180px; border: 2px dashed var(--control); background: var(--paper-2); color: var(--ink-2); font-size: var(--t-s); font-weight: 650; }
.dp-price { font-size: 1.5rem; font-weight: 800; }
.dp-price.is-big { font-size: 2.25rem; }
.dp-key { padding: 14px 18px; background: var(--sun-soft); font-weight: 800; font-size: 1.0625rem; line-height: 1.4; }
.dp-feat { display: grid; gap: 10px; }
.dp-feat > div { display: grid; gap: 2px; padding: 12px; border-radius: 10px; background: var(--paper-2); }
.dp-feat.is-tight > div { padding: 8px 12px; }
.dp-spec { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.dp-spec th, .dp-spec td { padding: 8px; border-bottom: 1px solid var(--line); text-align: left; }
.dp-rev { display: grid; gap: 8px; padding: 12px 0; border-top: 1px solid var(--line); }
.dp-rev:first-of-type { border-top: 0; }
@media (max-width: 1000px) { .dp-cols { grid-template-columns: minmax(0, 1fr); } }
.dp-cols > *, .d-stack > *, .d-card { min-width: 0; }
.dp-rev .d-btn, .dp-rev .d-badge { justify-self: start; }
