/*
 * Область загрузки вложений в форме заявки/предложения (Task 6) и счётчик
 * символов под редактором описания. Ничего внешнего не подключает — все
 * иконки идут из Font Awesome 4.3.0, который уже загружен на каждой
 * странице (resources/views/blocks/head-common.blade.php).
 */

.description-counter {
    text-align: right;
    font-size: 12px;
    color: #6c757d;
    margin-top: 4px;
}

.description-counter--over {
    color: #dc3545;
    font-weight: 600;
}

.attachments-uploader {
    border: 1px dashed #c9d0d8;
    border-radius: 6px;
    padding: 16px;
    background: #fafbfc;
}

/* Кому загрузка недоступна (гость, неподтверждённая почта) — не спрятанная
   кнопка, а видимая рамка с объяснением. */
.attachments-uploader.attachments-uploader--disabled {
    border-style: solid;
    background: #fff8f0;
    border-color: #f0c987;
    padding: 14px 16px;
}

.attachments-uploader--disabled p {
    margin: 0;
    color: #6b5330;
}

.attachments-uploader--disabled .fa {
    margin-right: 6px;
}

.attachments-uploader--disabled a {
    font-weight: 600;
}

.attachments-uploader__dropzone {
    text-align: center;
    padding: 24px 12px;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
    outline: none;
}

.attachments-uploader__dropzone:hover,
.attachments-uploader__dropzone:focus {
    background: #f0f4ff;
}

.attachments-uploader__dropzone.attachments-uploader__dropzone--drag {
    background: #e8f0fe;
    border: 1px dashed #4a7dfc;
}

.attachments-uploader__dropzone .fa-cloud-upload {
    font-size: 28px;
    color: #8a94a6;
    display: block;
    margin-bottom: 6px;
}

.attachments-uploader__dropzone p {
    margin: 0 0 10px;
    color: #6c757d;
}

.attachments-uploader__list {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.attachments-uploader__hint {
    margin: 12px 0 0;
    font-size: 12px;
    color: #8a94a6;
}

.attachments-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: #fff;
    border: 1px solid #e3e7ee;
    border-radius: 4px;
}

.attachments-item[draggable="true"] {
    cursor: grab;
}

.attachments-item.attachments-item--dragging {
    opacity: .4;
}

.attachments-item__handle {
    color: #c1c8d2;
    cursor: grab;
    flex: 0 0 auto;
}

.attachments-item__thumb {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f3f6;
    font-size: 18px;
    color: #8a94a6;
}

.attachments-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.attachments-item__body {
    flex: 1 1 auto;
    min-width: 0;
}

.attachments-item__name {
    display: block;
    font-size: 13px;
    color: #2b2f38;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

a.attachments-item__name {
    text-decoration: none;
}

a.attachments-item__name:hover {
    text-decoration: underline;
}

.attachments-item__size {
    font-size: 11px;
    color: #8a94a6;
}

.attachments-item__progress {
    display: none;
    height: 4px;
    border-radius: 2px;
    background: #e9ecf1;
    margin-top: 6px;
    overflow: hidden;
}

.attachments-item--uploading .attachments-item__progress {
    display: block;
}

.attachments-item__progress-bar {
    height: 100%;
    width: 0;
    background: #4a7dfc;
    transition: width .1s linear;
}

.attachments-item__error {
    display: none;
    font-size: 12px;
    color: #dc3545;
    margin-top: 4px;
}

.attachments-item--error .attachments-item__error {
    display: block;
}

.attachments-item--error {
    border-color: #f1b0b7;
    background: #fff5f5;
}

.attachments-item__remove {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    color: #8a94a6;
    cursor: pointer;
    font-size: 14px;
    padding: 4px;
}

.attachments-item__remove:hover {
    color: #dc3545;
}

/*
 * Высота редактора EasyMDE.
 *
 * easymde.min.css задаёт .EasyMDEContainer .CodeMirror{height:auto} —
 * редактор растягивается по высоте содержимого. У этой конкретной
 * страницы (.row.g-0 — Bootstrap-flex с align-items по умолчанию, то есть
 * stretch) это взаимодействует плохо: у пустого редактора высота
 * получалась около 1900px, подвал сайта отрисовывался посреди формы, а
 * область загрузки и кнопка отправки уезжали далеко за пределы экрана.
 * Обнаружено при проверке в браузере (Task 6, Step 6).
 *
 * Правило ниже грузится после easymde.min.css (порядок подключения в
 * @section('script') страницы) и тем же по специфичности селектором
 * перекрывает height:auto фиксированной высотой — как у обычной
 * <textarea rows="10" class="form-control"> на этой же странице (~286px
 * без EasyMDE, измерено отдельно). Контент длиннее высоты не прячется:
 * .CodeMirror-scroll внутри .CodeMirror уже скроллится сама, это
 * встроенное поведение CodeMirror, а не что-то добавленное здесь.
 *
 * resize: vertical — потянуть за нижний правый угол умеет и голый div,
 * если overflow не visible (у .CodeMirror он hidden из коробки). После
 * перетаскивания CodeMirror сам не знает о новом размере контейнера —
 * пересчёт вызывает ResizeObserver в inline-скрипте request-details.
 */
.EasyMDEContainer .CodeMirror {
    height: 286px;
    min-height: 150px;
    max-height: 70vh;
    resize: vertical;
}

/*
 * Галерея вложений на карточке заявки (Task 7). Пустой блок сюда не
 * попадает — .request-attachments рисуется только при непустом
 * $request->attachments (см. request-index.blade.php), а .request-
 * attachments__images и __documents появляются в разметке только когда в
 * них правда что-то есть — отдельного "пустого" состояния для CSS нет.
 */
.request-attachments {
    margin: 20px 0;
}

.request-attachments h4 {
    margin: 0 0 12px;
    font-size: 16px;
}

.request-attachments__images {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    gap: 8px;
    margin: 0 0 12px;
}

.request-attachments__image {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 4px;
    overflow: hidden;
    background: #f1f3f6;
    border: 1px solid #e3e7ee;
}

.request-attachments__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.request-attachments__documents {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.request-attachments__document {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: #fafbfc;
    border: 1px solid #e3e7ee;
    border-radius: 4px;
}

.request-attachments__document .fa {
    color: #8a94a6;
    flex: 0 0 auto;
}

.request-attachments__document a {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.request-attachments__size {
    flex: 0 0 auto;
    font-size: 12px;
    color: #8a94a6;
}
