@import '../../../../styles/design-tokens'; .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; } .field { display: flex; flex-direction: column; gap: 6px; // Grid-элементы по умолчанию не сжимаются уже своего min-content // (min-width: auto) — из-за этого длинный текст/плейсхолдер в инпуте // мог распирать колонку и вызывать горизонтальный скролл модалки. min-width: 0; } .full { grid-column: 1 / -1; } .label { // display:block + min-height на 2 строки — так подпись из одной строки // и подпись, свернувшаяся на две (например «Спрашивать причину // просрочки»), одинаково резервируют место, и контролы двух полей одной // строки грида начинаются на одном уровне независимо от переноса текста. display: block; font-size: 12px; font-weight: 500; color: $gray-700; letter-spacing: .2px; line-height: 16px; min-height: 32px; } .req { color: $gold-600; } .input, .select, .textarea { // border-box обязателен: width:100% + padding/border в content-box // (браузерный дефолт) делает элемент шире контейнера на padding+border // и распирает модалку в горизонтальный скролл. box-sizing: border-box; padding: 11px 13px; border: 1px solid $gray-300; border-radius: $r-sm; font-size: 13.5px; font-family: $font-sans; color: $gray-900; transition: .18s; background: #fff; width: 100%; @include input-focus-gold; &::placeholder { color: $gray-400; } &:disabled { background: $gray-50; color: $gray-400; cursor: not-allowed; } } .textarea { resize: vertical; min-height: 80px; } .select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; } .errorText { font-size: 11.5px; color: $red-500; } .hint { font-size: 11.5px; color: $gray-400; } .checkboxRow { display: flex; align-items: center; gap: 9px; font-size: 13px; color: $gray-700; cursor: pointer; user-select: none; } .checkbox { width: 17px; height: 17px; accent-color: $gold-500; cursor: pointer; } .radioGroup { display: flex; flex-direction: column; gap: 8px; } .radioRow { display: flex; align-items: center; gap: 9px; font-size: 13px; color: $gray-700; cursor: pointer; user-select: none; &.disabled { opacity: .45; cursor: not-allowed; } } .radio { width: 16px; height: 16px; accent-color: $gold-500; cursor: pointer; &:disabled { cursor: not-allowed; } }