.dvp-lines{display:grid;gap:0;margin-top:10px}
.dvp-line{min-width:0;padding:10px 0;border-top:1px solid var(--line)}
.dvp-line:first-child{border-top:0;padding-top:4px}
.dvp-k{margin:0 0 4px;font-size:12.5px;color:var(--muted);letter-spacing:.02em}
/* the figure: one line, never wrapped; price.js fit() sizes it to its full width (data-max caps it) */
.dvp-v{margin:0;display:block;width:100%;white-space:nowrap;overflow:hidden;font:600 20px/1.15 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.dvp-line--hero .dvp-v{color:var(--gold,#d4af37)}
.dvp-v a{color:inherit;text-decoration:none}
.dvp-z{color:var(--muted);opacity:.55}
.dvp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}
.dvp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--down);margin-right:6px;vertical-align:middle}
.dvp-dot--on{background:var(--up);box-shadow:0 0 8px var(--up)}
.dvp-dot--busy{background:var(--gold)}
.dvp-table td{font:13px var(--mono);white-space:nowrap}
.dvp-table th[scope=row] small,.dvp-table td small{display:block;color:var(--muted);font:11px var(--mono)}
.dvp-chart{height:340px;margin-top:10px}
.dvp-err{color:var(--down)}
.dvp-dl{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.dvx-price>*{min-width:0;max-width:100%}

.dvp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:14px;margin-top:12px}
.dvp-card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:rgba(255,255,255,.015);min-width:0}
.dvp-card__h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin-bottom:10px}
.dvp-card__h h3{margin:0;font-size:18px;color:var(--ink)}
.dvp-card__h h3 span{font-size:13px;color:var(--muted);font-weight:400;margin-left:6px}
.dvp-card__liq{margin:0;font:12px var(--mono);color:var(--muted)}
.dvp-card__px,.dvp-card__ca{margin:0;display:grid;gap:10px}
.dvp-card__px div,.dvp-card__ca div{min-width:0}
.dvp-card__px dt,.dvp-card__ca dt{font-size:11.5px;letter-spacing:.06em;color:var(--muted);text-transform:none}
.dvp-card__px dd{margin:2px 0 0;font:600 clamp(14px,3.6vw,17px)/1.35 var(--mono);color:var(--ink);overflow-wrap:anywhere}
/* the live figures in a card (v1.6.2): one line each, fitted to the card's width; the note under it keeps its own line */
.dvp-card__px dd.dvp-fitbox{overflow:hidden}
.dvp-card__px dd .dvp-fit{display:block;white-space:nowrap;overflow:hidden}
.dvp-card__px dd abbr{text-decoration:none;color:var(--gold);font-weight:400;font-size:.85em}
.dvp-card__px dd small{display:block;font-weight:400;font-size:11.5px;color:var(--muted)}
.dvp-card__ca{margin-top:12px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.08)}
.dvp-card__ca dd{margin:2px 0 0;font:12px var(--mono);overflow-wrap:anywhere;text-transform:none}
.dvp-card__ca a{text-transform:none}
.dvp-st{display:inline-block;padding:1px 7px;border-radius:9px;border:1px solid currentColor;font-size:11px;letter-spacing:.04em}
.dvp-st--live{color:#2EE88A}.dvp-st--planned{color:#8d8a7d}.dvp-st--reserved{color:#d4af37}.dvp-st--no-pool{color:#f0b90b}.dvp-st--unreachable{color:#e5534b}
/* phones (v1.3.7): a long decimal in a table folds its tail to "…" (price.js digitsT); the digits stay in the page */
@media (max-width:640px){.dvp-table .dvp-tail{font-size:0}.dvp-table .dvp-tail::before{content:"…";font-size:13px}
  .dvp-table th[scope=row] small,.dvp-table td small,.dvp-card__px dt,.dvp-card__px dd small,.dvp-card__liq{font-size:12px}}
/* phones (v1.3.7): nothing reads under 12 px. Every rule above that sets a smaller size, at 12 px under 640 px
   (the same selectors, so the same weight; written from this sheet's own rules) */
@media (max-width:640px){.dvp-table th[scope=row] small,.dvp-table td small,.dvp-card__px dt,.dvp-card__ca dt,.dvp-card__px dd small,.dvp-st,.dvp-k{font-size:12px}}
/* v1.8.6: A− / A+ (price.js setZoom sets --dvp-zoom on the root): the page's text scales with the figures */
.dvx-price{--dvp-zoom:1}
.dvx-price .dvp-k,.dvx-price .dvx-note,.dvx-price .dvp-card dt,.dvx-price .dvp-card small,.dvx-price table{font-size:calc(1em * var(--dvp-zoom,1))}
.dvp-zoom{display:inline-flex;align-items:center;gap:4px}.dvp-zoom button{min-width:44px;font-weight:700}
#dvp-zoom{min-width:44px;text-align:center;font:600 12px/1 var(--mono)}
