/* Recipient Picker - Email-style Component */ .recipient-picker-email { font-size: 0.9375rem; } /* Строка получателей (To:/CC:/Отделы:) */ .recipient-row { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.75rem 0; border-bottom: 1px solid var(--bs-border-color); } .recipient-row:last-child { border-bottom: none; } /* Метка (To:/CC:/Отделы:) */ .recipient-label { min-width: 80px; padding-top: 0.5rem; color: var(--bs-secondary); font-weight: 500; display: flex; align-items: center; gap: 0.5rem; margin: 0; } .recipient-label i { font-size: 1.1em; } /* Поле ввода */ .recipient-field { flex: 1; display: flex; align-items: flex-start; gap: 0.5rem; flex-wrap: wrap; } /* Wrapper для chips + input */ .recipient-input-wrapper { flex: 1; min-width: 300px; display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem; padding: 0.375rem 0.5rem; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); position: relative; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .recipient-input-wrapper:focus-within { border-color: var(--bs-primary); box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.15); } /* Input внутри wrapper */ .recipient-input { flex: 1; min-width: 200px; border: none; outline: none; padding: 0.25rem; font-size: inherit; background: transparent; } .recipient-input::placeholder { color: var(--bs-secondary-color); opacity: 0.7; } /* Chips (выбранные пользователи/отделы) */ .recipient-chip { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.5rem; background: var(--bs-primary); color: white; border-radius: 1rem; font-size: 0.875rem; white-space: nowrap; transition: background-color 0.15s; } .recipient-chip:hover { background: var(--bs-primary-dark, #0056b3); } .recipient-chip.chip-cc { background: var(--bs-secondary); } .recipient-chip.chip-cc:hover { background: var(--bs-secondary-dark, #5a6268); } .chip-remove { background: none; border: none; padding: 0; color: white; cursor: pointer; display: flex; align-items: center; opacity: 0.8; transition: opacity 0.15s; } .chip-remove:hover { opacity: 1; } .chip-remove i { font-size: 1.1em; line-height: 1; } /* Chips для отделов */ .recipient-chips { display: inline-flex; flex-wrap: wrap; gap: 0.375rem; align-items: center; } /* Dropdown с autocomplete */ .recipient-dropdown { position: absolute; top: 100%; left: 0; right: 0; margin-top: 0.25rem; background: white; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); max-height: 300px; overflow-y: auto; z-index: 1050; } .dropdown-item-user { display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 1rem; cursor: pointer; transition: background-color 0.15s; } .dropdown-item-user:hover { background-color: var(--bs-light); } .dropdown-item-empty { padding: 0.75rem 1rem; color: var(--bs-secondary); text-align: center; font-size: 0.875rem; } /* Аватар пользователя */ .user-avatar-small { width: 32px; height: 32px; border-radius: 50%; background: var(--bs-primary); color: white; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 0.75rem; flex-shrink: 0; overflow: hidden; } /* Изображение аватара */ .user-avatar-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; } /* Плейсхолдер с инициалами */ .user-avatar-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--bs-primary); color: white; font-weight: 600; font-size: 0.75rem; } /* Информация о пользователе */ .user-info { flex: 1; min-width: 0; } .user-name { font-weight: 500; color: var(--bs-body-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-subtitle { font-size: 0.8125rem; color: var(--bs-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Подсказки */ .alert-sm { padding: 0.5rem 0.75rem; margin-top: 0.75rem; font-size: 0.875rem; } /* Адаптивность */ @media (max-width: 768px) { .recipient-row { flex-direction: column; gap: 0.5rem; } .recipient-label { min-width: auto; padding-top: 0; } .recipient-input-wrapper { min-width: 100%; } .recipient-input { min-width: 150px; } } @media (max-width: 576px) { .recipient-chip { font-size: 0.8125rem; padding: 0.2rem 0.4rem; } .user-avatar-small { width: 28px; height: 28px; font-size: 0.7rem; } .dropdown-item-user { padding: 0.5rem 0.75rem; } } /* Темная тема (если нужна) */ @media (prefers-color-scheme: dark) { .recipient-input-wrapper { background: var(--bs-dark); border-color: var(--bs-gray-700); } .recipient-dropdown { background: var(--bs-dark); border-color: var(--bs-gray-700); } .dropdown-item-user:hover { background-color: var(--bs-gray-800); } }