/* Generated by scripts/sync-go-design-system.mjs. Edit the shared DS source. */

/* src/components/ui/Button.module.css */
.ds-button-btn { --button-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: var(--button-height); padding: 14px 16px; border: 0; border-radius: 12px; font: 500 16px/24px var(--font); letter-spacing: 0.01em; text-decoration: none; text-align: center; overflow-wrap: anywhere; cursor: pointer; transition: background-color 0.15s, color 0.15s, box-shadow 0.15s; }
.ds-button-m { --button-height: 40px; padding-block: 10px; border-radius: 8px; font-size: 14px; line-height: 20px; }
.ds-button-s { --button-height: 32px; padding-block: 6px; border-radius: 8px; font-size: 14px; line-height: 20px; }
.ds-button-block { width: 100%; }
.ds-button-iconOnly { width: var(--button-height); height: var(--button-height); padding: 0; flex: none; }
.ds-button-btn:disabled, .ds-button-btn[aria-disabled='true'] { cursor: not-allowed; }
.ds-button-btn:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) { outline: var(--focus-outline-width, 2px) solid var(--button-focus-outline, var(--focus-ring)); outline-offset: 3px; }
.ds-button-primary { background: var(--accent); color: var(--accent-text); }
.ds-button-primary:disabled, .ds-button-primary[aria-disabled='true'] { background: var(--accent-disabled); }
.ds-button-secondary { background: var(--secondary-bg); color: var(--secondary-text); }
.ds-button-secondary:disabled, .ds-button-secondary[aria-disabled='true'] { color: var(--secondary-disabled); }
.ds-button-white { --button-focus-outline: #fff; background: #fff; color: var(--text); }
.ds-button-white:disabled, .ds-button-white[aria-disabled='true'] { background: rgb(255 255 255 / 0.16); color: rgb(255 255 255 / 0.4); }
.ds-button-outline { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1.5px var(--control-border); }
.ds-button-outline:disabled, .ds-button-outline[aria-disabled='true'] { color: var(--text-disabled); box-shadow: inset 0 0 0 1.5px var(--control); }
.ds-button-outlineInvert { --button-focus-outline: #fff; background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / 0.4); }
.ds-button-outlineInvert:disabled, .ds-button-outlineInvert[aria-disabled='true'] { color: rgb(255 255 255 / 0.4); box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / 0.16); }
.ds-button-gray { background: var(--control); color: var(--text); }
.ds-button-gray:disabled, .ds-button-gray[aria-disabled='true'], .ds-button-pseudo:disabled, .ds-button-pseudo[aria-disabled='true'] { color: var(--text-disabled); }
.ds-button-grayInvert { --button-focus-outline: #fff; background: rgb(255 255 255 / 0.16); color: #fff; }
.ds-button-grayInvert:disabled, .ds-button-grayInvert[aria-disabled='true'] { color: rgb(255 255 255 / 0.4); }
.ds-button-pseudo { background: transparent; color: var(--text); padding-inline: 12px; }
.ds-button-pseudoInvert { --button-focus-outline: #fff; background: transparent; color: #fff; padding-inline: 12px; }
.ds-button-pseudoInvert:disabled, .ds-button-pseudoInvert[aria-disabled='true'] { color: rgb(255 255 255 / .4); }
.ds-button-blue { background: var(--blue); color: #fff; }
.ds-button-blue:disabled, .ds-button-blue[aria-disabled='true'] { background: var(--blue-disabled); }
.ds-button-alert { background: var(--error-light); color: var(--error); padding-inline: 12px; }
.ds-button-alert:disabled, .ds-button-alert[aria-disabled='true'] { background: color-mix(in srgb, var(--error-light) 48%, white); color: color-mix(in srgb, var(--error) 48%, white); }
.ds-button-caption { flex-direction: column; gap: 0; padding-block: 4px; }
.ds-button-caption > small { color: var(--text-muted); font: 500 14px/20px var(--font); letter-spacing: .02em; }
.ds-button-primary.ds-button-caption > small, .ds-button-blue.ds-button-caption > small, .ds-button-white.ds-button-caption > small, .ds-button-grayInvert.ds-button-caption > small, .ds-button-outlineInvert.ds-button-caption > small { color: rgb(255 255 255 / .64); }
.ds-button-white.ds-button-caption > small { color: var(--text-muted); }
/* ponytail: dark сохранён для старых CTA; в новых макетах использовать наборы Figma. */
.ds-button-dark { background: var(--text); color: #fff; }
.ds-button-dark:disabled, .ds-button-dark[aria-disabled='true'] { opacity: 0.48; }
@media (hover: hover) {
  .ds-button-pseudoInvert:hover:not(:disabled):not([aria-disabled='true']) { background: transparent; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
  .ds-button-blue:hover:not(:disabled):not([aria-disabled='true']) { background: var(--blue-hover); }
  .ds-button-alert:hover:not(:disabled):not([aria-disabled='true']) { background: var(--error-hover); color: #fff; }
  .ds-button-primary:hover:not(:disabled):not([aria-disabled='true']) { background: var(--accent-hover); }
  .ds-button-secondary:hover:not(:disabled):not([aria-disabled='true']) { background: var(--secondary-hover); color: #fff; }
  .ds-button-white:hover:not(:disabled):not([aria-disabled='true']) { background: rgb(255 255 255 / 0.4); color: #fff; }
  .ds-button-outline:hover:not(:disabled):not([aria-disabled='true']) { box-shadow: inset 0 0 0 1.5px var(--control-border-hover); }
  .ds-button-gray:hover:not(:disabled):not([aria-disabled='true']) { background: var(--control-hover); }
  .ds-button-pseudo:hover:not(:disabled):not([aria-disabled='true']) { background: transparent; color: var(--blue-hover); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
  .ds-button-grayInvert:hover:not(:disabled):not([aria-disabled='true']) { background: rgb(255 255 255 / 0.24); }
  .ds-button-dark:hover:not(:disabled):not([aria-disabled='true']) { background: #2b2e33; }
}


/* src/components/ui/Switcher.module.css */
.ds-switcher-switcher { display: inline-flex; width: 420px; gap: 4px; padding: 6px 8px; max-width: 100%; border-radius: 12px; background: var(--control); }
.ds-switcher-option { flex: 1; min-width: 0; }
.ds-switcher-inverted { background: rgb(255 255 255 / .16); }
.ds-switcher-m { padding: 6px; border-radius: 8px; }
.ds-switcher-s { padding: 4px; gap: 2px; border-radius: 8px; }
@media (max-width: 767px) { .ds-switcher-switcher { display: flex; } .ds-switcher-option { padding-inline: 8px; } }

@media (hover: hover) {
  .ds-switcher-switcher > .ds-switcher-option:hover:not(:disabled):not([aria-disabled='true']):not(:is([aria-checked='true'], [aria-selected='true'])) { background: color-mix(in srgb, var(--accent) var(--switcher-hover-opacity), transparent); color: var(--text); text-decoration: none; }
  .ds-switcher-switcher > .ds-switcher-option:is([aria-checked='true'], [aria-selected='true']):hover:not(:disabled):not([aria-disabled='true']) { background: var(--accent); color: var(--accent-text); text-decoration: none; }
  .ds-switcher-switcher.ds-switcher-inverted > .ds-switcher-option:hover:not(:disabled):not([aria-disabled='true']) { color: var(--accent-text); }
}


/* src/components/ui/Input.module.css */
.ds-input-root { --field-height: 52px; --field-padding: 12px; --field-radius: 12px; --field-font: 16px; --field-line: 24px; --field-slot: 28px; --field-border: var(--control-border); --field-hover: var(--control-border-hover); --field-focus: var(--focus-ring); --field-placeholder: var(--text-muted); --field-disabled: var(--text-muted); --field-bg: transparent; width: 354px; max-width: 100%; min-width: 0; }
.ds-input-xxl { --field-height: 76px; --field-padding: 16px; --field-radius: 16px; --field-font: 20px; --field-line: 28px; --field-slot: 32px; }
.ds-input-m { --field-height: 40px; --field-padding: 8px; --field-radius: 8px; --field-font: 14px; --field-line: 20px; --field-slot: 24px; }
.ds-input-s { --field-height: 32px; --field-padding: 6px; --field-radius: 6px; --field-font: 14px; --field-line: 20px; --field-slot: 20px; }
.ds-input-gray { --field-bg: var(--control); --field-border: transparent; --field-disabled: var(--text-disabled); }
.ds-input-inverted { --field-border: rgb(255 255 255 / .4); --field-hover: rgb(255 255 255 / .4); --field-focus: #fff; --field-placeholder: rgb(255 255 255 / .64); --field-disabled: rgb(255 255 255 / .64); color: #fff; }
.ds-input-gray.ds-input-inverted { --field-bg: rgb(255 255 255 / .16); --field-border: transparent; --field-disabled: rgb(255 255 255 / .4); }
.ds-input-field { display: flex; align-items: center; gap: 4px; min-height: var(--field-height); padding-inline: var(--field-padding); border-radius: var(--field-radius); color: var(--text); background: var(--field-bg); box-shadow: inset 0 0 0 1.5px var(--field-border); }
.ds-input-inverted .ds-input-field { color: inherit; }
.ds-input-input { flex: 1; min-width: 0; width: 100%; height: var(--field-slot); padding: 0; border: 0; border-radius: 0; outline: none; background: transparent; color: inherit; caret-color: var(--accent); font: 500 var(--field-font)/var(--field-line) var(--font); letter-spacing: .01em; }
.ds-input-m .ds-input-input, .ds-input-s .ds-input-input { letter-spacing: .02em; }
.ds-input-input::placeholder { opacity: 1; color: var(--field-placeholder); }
.ds-input-input:disabled { color: var(--field-disabled); -webkit-text-fill-color: var(--field-disabled); opacity: 1; cursor: not-allowed; }
.ds-input-input:disabled::placeholder { color: var(--text-disabled); -webkit-text-fill-color: var(--text-disabled); }
.ds-input-inverted .ds-input-input:disabled::placeholder { color: rgb(255 255 255 / .4); -webkit-text-fill-color: rgb(255 255 255 / .4); }
.ds-input-field:has(.ds-input-input:disabled) { background: var(--control); box-shadow: none; }
.ds-input-inverted .ds-input-field:has(.ds-input-input:disabled) { background: rgb(255 255 255 / .16); }
.ds-input-field:has(.ds-input-input:focus) { box-shadow: inset 0 0 0 2px var(--field-focus); }
.ds-input-error { box-shadow: inset 0 0 0 1.5px var(--error); }
.ds-input-error:has(.ds-input-input:focus) { box-shadow: inset 0 0 0 2px var(--error); }
.ds-input-clear, .ds-input-icon { display: flex; align-items: center; justify-content: center; flex: none; width: var(--field-slot); height: var(--field-slot); }
.ds-input-clear { position: relative; padding: 2px; border: 0; border-radius: var(--field-radius); background: transparent; color: var(--field-placeholder); cursor: pointer; }
.ds-input-s .ds-input-clear::before { content: ''; position: absolute; inset: -2px; }
.ds-input-clearIcon { width: 24px; height: 24px; background: currentColor; mask: url('controls/close-round.svg') center / contain no-repeat; }
.ds-input-m .ds-input-clearIcon { width: 20px; height: 20px; }
.ds-input-s .ds-input-clearIcon { width: 20px; height: 20px; }
.ds-input-xxl .ds-input-clearIcon { width: 28px; height: 28px; }
.ds-input-clear:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) { outline: var(--focus-outline-width, 2px) solid var(--field-focus); outline-offset: 2px; }
@media (hover: hover) {
 .ds-input-field:hover:not(:has(.ds-input-input:disabled)):not(:has(.ds-input-input:focus)) { box-shadow: inset 0 0 0 1.5px var(--field-hover); }
 .ds-input-error:hover:not(:has(.ds-input-input:disabled)):not(:has(.ds-input-input:focus)) { box-shadow: inset 0 0 0 1.5px var(--error-hover); }
}
@media (forced-colors: active) { .ds-input-field { border: 1.5px solid CanvasText; box-shadow: none; } .ds-input-field:has(.ds-input-input:focus) { outline: 2px solid Highlight; } }


/* src/components/ui/Dropdown.module.css */
.ds-dropdown-root { display: inline-block; min-width: 0; max-width: 100%; }
.ds-dropdown-trigger { width: fit-content; max-width: 100%; justify-content: flex-start; gap: 8px; text-align: start; }
.ds-dropdown-panel { position: fixed; z-index: 100; display: flex; flex-direction: column; width: 313px; max-width: calc(100vw - 24px); border-radius: 12px; background: var(--surface); color: var(--text); box-shadow: var(--shadow-card); }
.ds-dropdown-search { padding: 8px 12px; }
.ds-dropdown-list { flex: 1; min-width: 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; border: 0; margin: 0; padding: 0 0 8px; }
.ds-dropdown-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px; border-top: 1px solid var(--control); }
.ds-dropdown-empty { margin: 12px; font: 500 14px/20px var(--font); }
@media (forced-colors: active) { .ds-dropdown-panel { border: 1px solid CanvasText; } }


/* src/components/ui/Choice.module.css */
.ds-choice-row { position: relative; display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px; background: var(--surface); color: var(--text); font: 500 14px/20px var(--font); letter-spacing: 0.02em; cursor: pointer; }
.ds-choice-s { min-height: 32px; padding-block: 4px; }
.ds-choice-row::before { content: ''; position: absolute; inset: 0 4px; border-radius: 8px; pointer-events: none; }
.ds-choice-text { position: relative; min-width: 0; overflow-wrap: anywhere; }
.ds-choice-control { position: relative; appearance: none; flex: none; width: 24px; height: 24px; margin: 0; background: center / 24px 24px no-repeat; cursor: inherit; }
.ds-choice-control[type='radio'] { background-image: url('controls/radio.svg'); }
.ds-choice-control[type='radio']:checked { background-image: url('controls/radio-checked.svg'); }
.ds-choice-control[type='checkbox'] { background-image: url('controls/checkbox.svg'); }
.ds-choice-control[type='checkbox']:checked { background-image: url('controls/checkbox-checked.svg'); }
.ds-choice-control[type='checkbox']:disabled:checked { background-image: url('controls/checkbox-disabled-checked.svg'); }
.ds-choice-control:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) { outline: none; }
.ds-choice-control:disabled { opacity: 0.52; }
.ds-choice-control[type='checkbox']:disabled:checked { opacity: 1; }
.ds-choice-row:has(:disabled) { color: var(--text-disabled); cursor: not-allowed; }
.ds-choice-row:has(:is(:focus-visible, :where([data-dm-keyboard-focus]):focus)) { outline: var(--focus-outline-width, 2px) solid var(--focus-ring); outline-offset: 2px; border-radius: 8px; }
@media (hover: hover) {
  .ds-choice-row:hover:not(:disabled):not(:has(:disabled))::before { background: var(--control); }
  .ds-choice-row:has(.ds-choice-control[type='radio']):hover:not(:disabled):not(:has(:disabled))::before { background: var(--radio-hover); }
}
@media (forced-colors: active) { .ds-choice-control { appearance: auto; background: none; } }
.ds-choice-item { width: 100%; border: 0; text-align: left; }
.ds-choice-item:disabled { color: var(--text-disabled); cursor: not-allowed; }
.ds-choice-item:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) { outline: var(--focus-outline-width, 2px) solid var(--focus-ring); outline-offset: 2px; border-radius: 8px; }


/* src/components/ui/Toggle.module.css */
.ds-toggle-root { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--text); font: 500 14px/20px var(--font); letter-spacing: .02em; cursor: pointer; touch-action: pan-y; user-select: none; }
.ds-toggle-m { font-size: 16px; line-height: 24px; letter-spacing: .01em; }
.ds-toggle-inverted { color: #fff; --toggle-focus: #fff; }
.ds-toggle-control { position: absolute; width: 1px; height: 1px; opacity: 0; }
.ds-toggle-track { --thumb-size: 16px; --thumb-travel: 16px; --thumb-extra: 0px; --thumb-shrink: 0px; --thumb-x: 0px; --thumb-direction: 1; position: relative; flex: none; width: 36px; height: 20px; border-radius: 30px; background: var(--control-border); }
.ds-toggle-track::after { content: ''; position: absolute; inset-inline-start: 2px; top: calc(2px + var(--thumb-shrink) / 2); width: calc(var(--thumb-size) + var(--thumb-extra)); height: calc(var(--thumb-size) - var(--thumb-shrink)); border-radius: 30px; background: #fff; transform: translateX(calc(var(--switch-drag-x, var(--thumb-x)) * var(--thumb-direction))); }
.ds-toggle-track:dir(rtl) { --thumb-direction: -1; }
.ds-toggle-m .ds-toggle-track { --thumb-size: 20px; --thumb-travel: 20px; width: 44px; height: 24px; }
.ds-toggle-inverted .ds-toggle-track { background: rgb(255 255 255 / .4); }
.ds-toggle-control:checked + .ds-toggle-track, .ds-toggle-root[aria-checked=true] .ds-toggle-track { --thumb-x: calc(var(--thumb-travel) - var(--thumb-extra)); background: var(--choice-accent); }
.ds-toggle-control:is(:focus-visible, :where([data-dm-keyboard-focus]):focus), .ds-toggle-root:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) { outline: none; }
.ds-toggle-control:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) + .ds-toggle-track, .ds-toggle-root:is(:focus-visible, :where([data-dm-keyboard-focus]):focus) .ds-toggle-track { outline: var(--focus-outline-width, 2px) solid var(--toggle-focus, var(--focus-ring)); outline-offset: 3px; }
.ds-toggle-root:has(:disabled) { cursor: not-allowed; opacity: .5; }
.ds-toggle-left .ds-toggle-text { order: -1; }
.ds-toggle-text { overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) { .ds-toggle-root:hover:not(:has(:disabled)):not([aria-disabled=true]) .ds-toggle-track { --thumb-extra: 2px; } }
.ds-toggle-root[data-switch-pressed]:not(:has(:disabled)):not([aria-disabled=true]) .ds-toggle-track,
.ds-toggle-root:active:not(:has(:disabled)):not([aria-disabled=true]) .ds-toggle-track { --thumb-extra: 4px; --thumb-shrink: 4px; }
@media (prefers-reduced-motion: no-preference) {
  .ds-toggle-track, .ds-toggle-text { transition: background-color 80ms, color 80ms; }
  .ds-toggle-track::after { transition: transform 280ms cubic-bezier(.2, .8, .2, 1), width 280ms cubic-bezier(.2, .8, .2, 1), height 280ms cubic-bezier(.2, .8, .2, 1), top 280ms cubic-bezier(.2, .8, .2, 1); }
}
.ds-toggle-track[data-switch-dragging]::after { transition: none; }
@media (forced-colors: active) { .ds-toggle-track { border: 1px solid CanvasText; } .ds-toggle-track::after { background: CanvasText; } .ds-toggle-control:checked + .ds-toggle-track, .ds-toggle-root[aria-checked=true] .ds-toggle-track { background: Highlight; } .ds-toggle-control:checked + .ds-toggle-track::after, .ds-toggle-root[aria-checked=true] .ds-toggle-track::after { background: HighlightText; } }


/* src/components/ui/Tag.module.css */
.ds-tag-tag { display: inline-flex; align-items: center; gap: 4px; min-width: 0; max-width: 100%; min-height: 32px; padding: 6px 12px; border-radius: 8px; font: 500 14px/20px var(--font); letter-spacing: 0.02em; overflow-wrap: anywhere; }
.ds-tag-xs { min-height: 24px; padding-block: 4px; font-size: 12px; line-height: 16px; }
.ds-tag-m { min-height: 40px; padding-block: 10px; }
.ds-tag-uppercase { text-transform: uppercase; font-size: 12px; line-height: 20px; }
.ds-tag-m.ds-tag-uppercase { font-size: 14px; }
.ds-tag-xs.ds-tag-uppercase { padding-block: 2px; }
.ds-tag-gray { background: var(--control); color: var(--text); }
.ds-tag-outline { color: var(--text); box-shadow: inset 0 0 0 1.5px var(--control-border); }
.ds-tag-purple { background: var(--pair-1-bg); color: var(--pair-1-text); }
.ds-tag-orange { background: var(--pair-2-bg); color: var(--pair-2-text); }
.ds-tag-green { background: var(--pair-3-bg); color: var(--pair-3-text); }
.ds-tag-blue { background: var(--pair-4-bg); color: var(--pair-4-text); }
.ds-tag-red { background: var(--pair-5-bg); color: var(--pair-5-text); }
.ds-tag-inverted.ds-tag-gray { background: rgb(255 255 255 / .16); color: #fff; }
.ds-tag-inverted.ds-tag-outline { color: #fff; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .4); }
.ds-tag-count { color: var(--text-muted); }
.ds-tag-inverted .ds-tag-count { color: rgb(255 255 255 / .64); }


/* src/components/ui/Modal.module.css */
.ds-modal-dialog { width: 600px; height: fit-content; max-width: calc(100vw - 48px); max-height: calc(100dvh - 48px); margin: auto; padding: 0; border: 0; border-radius: 24px; background: var(--surface); color: var(--text); overflow: hidden; font: 500 16px/24px var(--font); }
.ds-modal-dialog::backdrop { background: rgb(31 31 41 / .72); }
.ds-modal-l { width: 980px; }
.ds-modal-layout { display: flex; flex-direction: column; height: auto; max-height: calc(100dvh - 48px); }
.ds-modal-header { display: flex; flex-shrink: 0; align-items: center; gap: 20px; padding: 24px; border-bottom: 1px solid rgb(31 31 41 / .12); }
.ds-modal-heading { flex: 1; min-width: 0; }
.ds-modal-title { margin: 0; font: 500 20px/28px var(--font); letter-spacing: .01em; overflow-wrap: anywhere; }
.ds-modal-description { margin: 4px 0 0; color: var(--text-muted); font: 500 16px/24px var(--font); }
.ds-modal-upper { margin: 0 0 4px; color: var(--text-muted); font: 500 12px/16px var(--font); }
.ds-modal-body { flex: 0 1 auto; min-height: 0; padding: 12px 24px 24px; overflow-y: auto; overscroll-behavior: contain; }
.ds-modal-footer { display: flex; flex-shrink: 0; align-items: center; gap: 12px; flex-wrap: wrap; padding: 24px; border-top: 1px solid var(--control); }
.ds-modal-popup { width: 612px; }
.ds-modal-popup .ds-modal-title { font-size: 24px; line-height: 32px; letter-spacing: -.01em; }
.ds-modal-popup .ds-modal-body { color: var(--text-muted); }
.ds-modal-popup .ds-modal-footer > * { flex: 1; }
@media (max-width: 767px) {
 .ds-modal-dialog { width: 100vw; max-width: 100vw; height: fit-content; max-height: calc(100dvh - 32px); border-radius: 0; }
 .ds-modal-layout { max-height: calc(100dvh - 32px); }
 .ds-modal-header { padding: 20px 16px; gap: 16px; }
 .ds-modal-title { font-size: 18px; line-height: 24px; }
 .ds-modal-description { font-size: 14px; line-height: 20px; }
 .ds-modal-body { padding: 12px 16px 24px; }
 .ds-modal-footer { padding: 16px 16px max(16px, env(safe-area-inset-bottom)); }
 .ds-modal-popup { width: calc(100% - 24px); max-width: calc(100vw - 24px); height: fit-content; max-height: calc(100dvh - 32px); border-radius: 24px; }
 .ds-modal-popup .ds-modal-title { font-size: 20px; line-height: 28px; }
 .ds-modal-popup:not(.ds-modal-centered) .ds-modal-body { font-size: 14px; line-height: 20px; }
}
.ds-modal-headerMedia { flex: none; width: 52px; height: 52px; border-radius: 12px; overflow: hidden; }
.ds-modal-headerMedia > img { width: 100%; height: 100%; object-fit: cover; }
.ds-modal-popupImage { flex: none; width: 100%; height: 188px; object-fit: contain; }
.ds-modal-centered .ds-modal-heading, .ds-modal-centered .ds-modal-body { text-align: center; }
.ds-modal-centered .ds-modal-header { justify-content: center; }
.ds-modal-centered .ds-modal-header > button { position: absolute; top: 24px; right: 24px; }
@media (max-width: 767px) {
 .ds-modal-headerMedia { width: 40px; height: 40px; border-radius: 8px; }
 .ds-modal-popupImage { height: 148px; }
 .ds-modal-centered .ds-modal-header > button { top: 16px; right: 16px; }
}


/* src/components/ui/Feedback.module.css */
.ds-feedback-caption { display: flex; align-items: start; gap: 4px; margin-top: 4px; color: var(--text-muted); font: 500 14px/20px var(--font); letter-spacing: .02em; overflow-wrap: anywhere; }
.ds-feedback-s { font-size: 12px; line-height: 16px; }
.ds-feedback-error { color: var(--error); }
.ds-feedback-alert { display: flex; align-items: start; gap: 8px; width: 499px; max-width: 100%; padding: 12px; border-radius: 12px; color: #fff; font: 500 16px/24px var(--font); letter-spacing: .01em; overflow-wrap: anywhere; }
.ds-feedback-alert > img { flex: none; width: 24px; height: 24px; }
.ds-feedback-alert > div { min-width: 0; }
.ds-feedback-alert.ds-feedback-success { background: var(--success); }
.ds-feedback-alert.ds-feedback-error { background: var(--error); }
.ds-feedback-description { margin: 2px 0 0; color: rgb(255 255 255 / .64); font-size: 14px; line-height: 20px; letter-spacing: .02em; }


/* src/blocks/Doctors/styles.module.css */
.ds-doctor-card { display: flex; flex-direction: column; border-radius: 32px; background: var(--surface); box-shadow: 0 2px 24px rgb(0 0 0 / 0.06); }
.ds-doctor-image { position: relative; padding: 8px; }
.ds-doctor-photo { height: 274px; border-radius: 24px; overflow: hidden; background: var(--control); }
.ds-doctor-photo img { width: 100%; height: 100%; object-fit: cover; }
.ds-doctor-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--text-muted); }
.ds-doctor-body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 12px 24px 24px; min-width: 0; }
.ds-doctor-spec { display: flex; flex-wrap: wrap; gap: 4px; }
.ds-doctor-name { font-size: 20px; line-height: 28px; letter-spacing: 0.01em; overflow-wrap: anywhere; }
.ds-doctor-clinics { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 16px; line-height: 24px; color: var(--text-muted); }
.ds-doctor-clinics li { display: inline-flex; align-items: center; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.ds-doctor-dot { flex: none; width: 16px; height: 16px; background: var(--text-muted); mask: url('icons/location-filled.svg') center / contain no-repeat; -webkit-mask: url('icons/location-filled.svg') center / contain no-repeat; }
.ds-doctor-note { margin: 0; display: flex; align-items: start; gap: 6px; font-size: 14px; line-height: 20px; color: var(--text-muted); overflow-wrap: anywhere; }
.ds-doctor-features { position: absolute; inset-inline: 24px; bottom: 24px; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ds-doctor-features li { max-width: 100%; }
.ds-doctor-features li > span { font-size: 12px; line-height: 20px; }
.ds-doctor-action { margin-top: auto; padding-top: 24px; display: flex; align-items: center; gap: 12px; }
.ds-doctor-footer { display: flex; justify-content: center; margin-top: 24px; }
.ds-doctor-footer:empty { display: none; }
@media (max-width: 767px) { .ds-doctor-card { border-radius: 16px; } .ds-doctor-photo { height: 240px; border-radius: 12px; } .ds-doctor-body { padding-inline: 16px; } .ds-doctor-features { inset-inline: 16px; } }
/* Актуальный компактный Doctor/Card 17224:469513 — отдельный вариант, без смены сетки блока. */
.ds-doctor-compact { width: 176px; max-width: 100%; border-radius: 16px; }
.ds-doctor-compact .ds-doctor-image { padding: 6px; }
.ds-doctor-compact .ds-doctor-photo { height: 156px; border-radius: 12px; }
.ds-doctor-compact .ds-doctor-body { gap: 2px; padding: 0 8px 12px; }
.ds-doctor-compact .ds-doctor-name { font-size: 14px; line-height: 20px; }
.ds-doctor-compact .ds-doctor-spec > span { font-size: 8px; line-height: 16px; min-height: 20px; padding: 2px 4px; }
.ds-doctor-compact .ds-doctor-clinics { font-size: 12px; line-height: 16px; }
.ds-doctor-compact .ds-doctor-note { font-size: 10px; line-height: 16px; }
.ds-doctor-compact .ds-doctor-note > span { display: none; }
.ds-doctor-compact .ds-doctor-features { inset-inline: 10px; bottom: 14px; gap: 2px; }
.ds-doctor-compact .ds-doctor-features li > span { font-size: 11px; line-height: 16px; min-height: 20px; padding: 2px 4px; }
.ds-doctor-compact .ds-doctor-action { padding-top: 12px; }
.ds-doctor-compact .ds-doctor-action > * { width: 100%; }
.ds-doctor-profile { position: absolute; top: 16px; right: 16px; }
.ds-doctor-compact .ds-doctor-profile { top: 10px; right: 10px; }
.ds-doctor-availability { font-size: 14px; line-height: 20px; color: var(--text-muted); }
.ds-doctor-compact .ds-doctor-availability { font-size: 10px; line-height: 16px; }
.ds-doctor-compact .ds-doctor-action:has(.ds-doctor-availability) { flex-wrap: wrap; }
.ds-doctor-classic .ds-doctor-body { padding: 20px 16px 16px; }
.ds-doctor-classic .ds-doctor-name { font-size: 24px; line-height: 32px; letter-spacing: -.01em; }
.ds-doctor-classic .ds-doctor-spec, .ds-doctor-summary .ds-doctor-spec { color: var(--text-muted); font-size: 16px; line-height: 24px; gap: 0; }
.ds-doctor-classic .ds-doctor-features, .ds-doctor-summary .ds-doctor-features { position: static; margin-top: auto; padding-top: 12px; }
.ds-doctor-classic .ds-doctor-features li > span, .ds-doctor-summary .ds-doctor-features li > span { min-height: 24px; padding-block: 4px; font-size: 12px; line-height: 16px; }
.ds-doctor-classic .ds-doctor-action, .ds-doctor-summary .ds-doctor-action { margin-top: 6px; padding: 4px; border-radius: 12px; background: var(--control); }
.ds-doctor-bookingInfo { flex: 1; min-width: 0; padding-left: 8px; display: flex; flex-direction: column; font-size: 16px; line-height: 24px; overflow-wrap: anywhere; }
.ds-doctor-bookingInfo > span:first-child:not(:last-child) { color: var(--text-muted); font-size: 14px; line-height: 20px; }
.ds-doctor-summary { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 4px 12px; padding: 8px; border-radius: 16px; }
.ds-doctor-summary .ds-doctor-image { grid-column: 1; grid-row: 1 / span 3; padding: 0; }
.ds-doctor-summary .ds-doctor-photo { height: 112px; border-radius: 12px; }
.ds-doctor-summary .ds-doctor-body { display: contents; }
.ds-doctor-summary .ds-doctor-spec, .ds-doctor-summary .ds-doctor-name, .ds-doctor-summary .ds-doctor-clinics { grid-column: 2; }
.ds-doctor-summary .ds-doctor-spec { align-self: end; font-size: 12px; line-height: 16px; }
.ds-doctor-summary .ds-doctor-name { font-size: 16px; line-height: 24px; }
.ds-doctor-summary .ds-doctor-clinics { font-size: 12px; line-height: 16px; align-self: start; }
.ds-doctor-summary .ds-doctor-note, .ds-doctor-summary .ds-doctor-features, .ds-doctor-summary .ds-doctor-action { grid-column: 1 / -1; }
.ds-doctor-summary .ds-doctor-note { padding: 12px; font-size: 12px; line-height: 16px; }
.ds-doctor-summary .ds-doctor-features li > span { font-size: 10px; line-height: 16px; }
.ds-doctor-summary .ds-doctor-bookingInfo { font-size: 14px; line-height: 20px; }
.ds-doctor-summary .ds-doctor-bookingInfo > span:first-child:not(:last-child) { font-size: 12px; line-height: 16px; }
.ds-doctor-summary .ds-doctor-profile { top: 4px; right: 4px; }


/* src/blocks/Faq/styles.module.css */
.ds-faq-list { display: grid; gap: 16px; }
.ds-faq-item { padding: 24px; border-radius: var(--radius-l); background: var(--surface); box-shadow: var(--shadow-card); }
.ds-faq-question { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 24px; line-height: 32px; letter-spacing: -0.01em; cursor: pointer; list-style: none; }
.ds-faq-question::-webkit-details-marker { display: none; }
.ds-faq-chevron { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--control); transition: transform 0.2s; }
.ds-faq-item[open] .ds-faq-chevron { transform: rotate(180deg); }
.ds-faq-answer { margin-top: 12px; max-width: 780px; font-size: 16px; line-height: 24px; color: var(--text-muted); }
.ds-faq-answer p { margin: 0 0 8px; }
.ds-faq-sticker { display: inline-flex; align-items: center; justify-content: center; width: 96px; height: 96px; border-radius: 50%; background: var(--accent); overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  .ds-faq-chevron { transition: none; }
}
@media (max-width: 767px) {
  .ds-faq-item { padding: 16px; border-radius: 16px; }
  .ds-faq-question { font-size: 18px; line-height: 24px; }
  .ds-faq-chevron { width: 40px; height: 40px; border-radius: 8px; }
  .ds-faq-sticker { width: 56px; height: 56px; }
  .ds-faq-sticker img { width: 48px; height: 48px; }
}
.ds-faq-question > :first-child { min-width: 0; }


/* src/components/ui/Icon.module.css */
.ds-icon-icon { display: inline-block; flex: none; background: currentColor; mask-size: contain; mask-repeat: no-repeat; mask-position: center; -webkit-mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; }


/* src/blocks/ProgramCards/styles.module.css */
.ds-program-wrap { display: grid; gap: 24px; }
.ds-program-switch { display: flex; justify-content: center; }
.ds-program-empty { margin: 0; text-align: center; color: var(--text-muted); }
.ds-program-card { display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: var(--radius-l); background: var(--surface); box-shadow: var(--shadow-card); }
.ds-program-head { display: flex; align-items: center; gap: 16px; }
.ds-program-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 16px; background: var(--secondary-bg); }
.ds-program-name { font-size: 24px; line-height: 32px; letter-spacing: -0.01em; }
.ds-program-price { margin: 0; font-size: 40px; line-height: 44px; letter-spacing: -0.02em; }
.ds-program-saving { margin: 4px 0 0; font-size: 14px; line-height: 20px; color: var(--pair-6-text); }
.ds-program-saving s { color: var(--text-muted); }
.ds-program-variant { margin: 4px 0 0; font-size: 14px; line-height: 20px; color: var(--text-muted); }
.ds-program-whoFor { margin: 0; font-size: 16px; line-height: 24px; }
.ds-program-text { margin: 0; font-size: 16px; line-height: 24px; color: var(--text-muted); }
.ds-program-section { padding: 12px 16px; border-radius: 16px; background: var(--control); }
.ds-program-section summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 16px; line-height: 24px; cursor: pointer; list-style: none; }
.ds-program-section summary::-webkit-details-marker { display: none; }
.ds-program-section ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; font-size: 14px; line-height: 20px; }
.ds-program-section li { display: flex; gap: 8px; align-items: flex-start; }
.ds-program-other { margin: 0; font-size: 14px; line-height: 20px; color: var(--text-muted); }
.ds-program-note { margin: 0; font-size: 12px; line-height: 16px; color: var(--secondary-text); }
.ds-program-choose { margin-top: auto; }
@media (max-width: 767px) { .ds-program-card { padding: 16px; border-radius: 16px; } .ds-program-price { font-size: 32px; line-height: 36px; } }
.ds-program-card { min-width: 0; overflow-wrap: anywhere; }
.ds-program-name { min-width: 0; }


/* src/blocks/ColorCards/styles.module.css */
.ds-color-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.ds-color-card { grid-column: span var(--span, 4); min-height: 380px; padding: 24px; border-radius: var(--radius-l); display: flex; flex-direction: column; justify-content: space-between; gap: 24px; }
.ds-color-illustration { width: 120px; height: 120px; }
.ds-color-title { font-size: 32px; line-height: 36px; letter-spacing: -0.02em; }
.ds-color-note { margin: 8px 0 0; font-size: 20px; line-height: 28px; opacity: 0.7; }
@media (max-width: 767px) {
  .ds-color-grid { grid-template-columns: 1fr; gap: 8px; }
  .ds-color-card { grid-column: auto; min-height: 0; padding: 16px; }
  .ds-color-illustration { width: 80px; height: 80px; }
  .ds-color-title { font-size: 24px; line-height: 28px; }
  .ds-color-note { font-size: 16px; line-height: 24px; }
}


/* src/blocks/Comparison/styles.module.css */
.ds-comparison-scroller { position: relative; isolation: isolate; overflow-x: auto; container-type: inline-size; border-radius: var(--radius-l); background: var(--surface); --scroll-fade-leading-opacity: 1; }
.ds-comparison-scroller::before { content: ''; position: absolute; top: 0; left: 0; z-index: 0; width: 100cqi; height: var(--table-row-height, 0px); transform: translate(var(--table-row-x, 0px), var(--table-row-y, 0px)); border-radius: 12px; background: var(--control); opacity: 0; pointer-events: none; }
.ds-comparison-scroller[data-fluid-table-active]::before { opacity: 1; }
.ds-comparison-table { position: relative; z-index: 1; width: 100%; min-width: 720px; border-collapse: separate; border-spacing: 0; font-size: 16px; line-height: 24px; font-weight: 400; background: transparent; }
.ds-comparison-table caption { inline-size: 100cqi; position: sticky; left: 0; }
.ds-comparison-table th, .ds-comparison-table td { padding: 8px 12px; text-align: start; vertical-align: middle; border-bottom: 1px solid var(--control); }
.ds-comparison-table thead th { font-size: 16px; line-height: 20px; font-weight: 500; text-wrap: balance; }
.ds-comparison-table thead th:not(:first-child) { min-width: 180px; }
.ds-comparison-table tbody th { position: sticky; left: 0; z-index: 1; min-width: 180px; background: var(--surface); color: var(--text-muted); font-weight: 400; }
.ds-comparison-table tbody tr[data-fluid-active] th { background: var(--control); border-radius: 12px 0 0 12px; color: var(--text); }
.ds-comparison-table tbody tr[data-fluid-active] td { color: var(--text); }
.ds-comparison-table tbody tr[data-fluid-active] > *, .ds-comparison-table tbody tr:has(+ tr[data-fluid-active]) > *, .ds-comparison-table:has(tbody tr:first-child[data-fluid-active]) thead th { border-bottom-color: transparent; }
.ds-comparison-corner { position: sticky; left: 0; z-index: 2; background: var(--surface); }
.ds-comparison-priceRow td { font-size: 20px; line-height: 28px; white-space: nowrap; }
.ds-comparison-table tr:last-child th, .ds-comparison-table tr:last-child td { border-bottom: 0; }
@container (max-width: 360px) { .ds-comparison-table tbody th, .ds-comparison-corner { position: static; } }
@media (max-width: 767px) { .ds-comparison-scroller { border-radius: 16px; } .ds-comparison-table { min-width: 640px; font-size: 14px; line-height: 20px; } .ds-comparison-table tbody th { min-width: 140px; } }
@media (prefers-reduced-motion: no-preference) {
  .ds-comparison-scroller::before { transition: transform 180ms cubic-bezier(.2, .8, .2, 1), height 180ms cubic-bezier(.2, .8, .2, 1), opacity 80ms; }
  .ds-comparison-table th, .ds-comparison-table td { transition: color 80ms, background-color 80ms, border-color 80ms; }
  .ds-comparison-scroller[data-fluid-table-entering]::before { transition: opacity 80ms; }
}
@media (forced-colors: active) { .ds-comparison-scroller::before { display: none; } .ds-comparison-table tbody tr[data-fluid-active] > *, .ds-comparison-table tbody tr:has(+ tr[data-fluid-active]) > *, .ds-comparison-table:has(tbody tr:first-child[data-fluid-active]) thead th { border-bottom-color: CanvasText; } }
