/* The core tools a niche switches on: the visit's card and the measurements (records), «Продлить» (extend), a booking
   every week (series), a membership on hold (freeze), the questions of the online booking. */

/* ---- records ---- */
.rd-row .fm-chips span { max-width: 100%; overflow-wrap: anywhere; }
.rd-row.is-hidden .fm-chips span { background: transparent; color: var(--ink-3); font-style: italic; padding-left: 0; }
.rd-notes { display: grid; gap: 2px; }
.rd-notes:empty { display: none; }
.rd-note { margin: 0; font-size: 13px; color: var(--ink-2); overflow-wrap: anywhere; white-space: pre-line; }
.rd-note b { font-weight: 600; color: var(--ink); }
.rd-field .rd-checks, .rd-field .rd-scale { display: flex; flex-wrap: wrap; gap: 6px; }
.rd-chip { position: relative; display: inline-flex; }
.rd-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.rd-chip span { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 12px; border: 1px solid var(--line-strong); border-radius: 99px; font-size: 14px; background: var(--bg); }
.rd-scale .rd-chip span { min-width: 38px; justify-content: center; padding: 6px 8px; font-variant-numeric: tabular-nums; }
.rd-chip input:checked + span { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.rd-chip input:focus-visible + span { box-shadow: var(--focus-ring); }
.rd-field.has-error .input { border-color: var(--bad); }
.rd-charts { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin-bottom: 10px; }
.rd-chart { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--bg); }
.rd-chart__head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.rd-chart__head b { font-size: 16px; }
.rd-chart__change { color: var(--ink-3); }
.rd-chart__plot { height: 64px; }
.rd-chart__svg { width: 100%; height: 100%; overflow: visible; }
.rd-chart__line { fill: none; stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
.rd-chart__dot { fill: var(--bg); stroke: var(--accent); stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.rd-chart__foot { display: flex; justify-content: space-between; }
.rd-sums { display: grid; gap: 6px; margin-bottom: 10px; }
.rd-sum { display: grid; gap: 2px; padding: 10px 14px; border-radius: var(--radius-sm); background: var(--accent-wash); }
.rd-sum b { font-size: 14px; }

/* ---- «Продлить», «каждую неделю» ---- */
.vt-block { display: grid; gap: 8px; }
.vt-row { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.vt-row__label { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; min-width: 0; }
.vt-row__label .ic { color: var(--ink-3); flex: none; }
.vt-row__acts { display: flex; gap: 6px; flex-wrap: wrap; }

/* ---- sold with a booking ---- */
.vt-row--extras { align-items: flex-start; }
.vt-extra b { margin-left: 4px; color: var(--ink-3); font-weight: 600; }
.vt-sold { flex-basis: 100%; display: grid; gap: 4px; padding-top: 6px; border-top: 1px dashed var(--line); }
.vt-sold__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 8px; align-items: center; font-size: 13px; }
.vt-qty { display: inline-grid; grid-template-columns: 40px 64px 40px; gap: 6px; align-items: center; }
.vt-qty .input { text-align: center; }

/* ---- a membership on hold ---- */
.fz-days { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fz-days__n { width: 72px; text-align: center; }
.fz-result { display: grid; gap: 2px; margin: 0; }
.membership-row [data-action="freeze"] { flex: none; }
.membership-row.is-frozen .row__sub { color: var(--accent-text); }
