/* Direct chat screen and composer/message styles. */ .chat-header-icon-btn { min-width: 44px; width: 44px; min-height: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; line-height: 1; } .chat-header-call-btn { border-radius: 12px; } .chat-header-menu-btn { border-radius: 12px; font-size: 24px; } .chat-unread-separator { display: flex; align-items: center; gap: 10px; margin: 8px 0; color: #9ab0de; font-size: 12px; } .chat-unread-separator::before, .chat-unread-separator::after { content: ""; flex: 1 1 auto; height: 1px; background: linear-gradient(90deg, rgba(126, 150, 199, 0.12), rgba(126, 150, 199, 0.45), rgba(126, 150, 199, 0.12)); } .chat-unread-separator > span { white-space: nowrap; } .bubble { max-width: 76%; padding: 10px 12px; border-radius: 14px; font-size: 14px; line-height: 1.35; } .bubble-text { white-space: pre-wrap; word-break: break-word; } .bubble-reply-preview { display: block; width: 100%; margin: 0 0 8px; padding: 8px 10px; border-radius: 10px; text-align: left; cursor: pointer; } .bubble-reply-preview-author { font-size: 12px; font-weight: 700; color: rgba(250, 221, 155, 0.94); } .bubble-reply-preview-text { margin-top: 3px; font-size: 12px; line-height: 1.3; color: rgba(223, 233, 250, 0.86); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .bubble-meta { margin-top: 4px; display: flex; justify-content: flex-end; align-items: center; gap: 5px; font-size: 9px; line-height: 1.1; color: rgba(198, 214, 247, 0.78); } .bubble-meta-edited { margin-top: 3px; justify-content: flex-end; color: rgba(235, 208, 137, 0.88); } .bubble-time { letter-spacing: 0.01em; } .bubble-status { min-width: 14px; text-align: right; color: rgba(148, 163, 184, 0.92); } .bubble-status--delivered, .bubble-status--read { color: rgba(215, 230, 255, 0.96); text-shadow: 0 0 6px rgba(126, 180, 255, 0.36); } .bubble-status--failed { color: rgba(255, 145, 145, 0.96); } .bubble-delivery-note { max-width: 280px; margin-top: 6px; font-size: 10px; line-height: 1.3; color: rgba(255, 220, 142, 0.92); } .bubble-delivery-note--failed { color: rgba(255, 145, 145, 0.96); } .bubble.in { justify-self: start; background: #1f2c46; border-top-left-radius: 6px; } .bubble.out { justify-self: end; background: #273f63; border-top-right-radius: 6px; } .bubble.call-tech { max-width: 90%; justify-self: center; border-radius: 16px; border: 1px solid rgba(132, 170, 231, 0.28); background: rgba(24, 36, 58, 0.72); color: #dce8ff; font-size: 12px; padding: 12px 14px; } .bubble-call-card { display: grid; min-width: min(280px, 72vw); } .bubble-call-head { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; } .bubble-call-icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: #d9ecff; flex: 0 0 auto; } .bubble-call-icon-phone { font-size: 28px; line-height: 1; transform: translateY(-1px); } .bubble-call-icon-arrow { position: absolute; right: 4px; bottom: 3px; font-size: 10px; line-height: 1; font-weight: 700; } .bubble-call-icon--incoming .bubble-call-icon-arrow { color: rgba(167, 225, 255, 0.98); } .bubble-call-icon--outgoing .bubble-call-icon-arrow { color: rgba(255, 214, 132, 0.98); } .bubble-call-title { font-size: 14px; font-weight: 700; color: #eef6ff; line-height: 1.2; } .bubble-call-line { font-size: 12px; line-height: 1.2; margin-left: 2px; } .bubble-call-line--success { color: #7ee19e; } .bubble-call-line--plain { color: rgba(230, 240, 255, 0.94); } .message-attachments { display: grid; gap: 0.5rem; } .message-attachment-carousel { gap: 0.35rem; margin: 0.5rem 0 0.4rem; max-width: min(100%, 34rem); } .message-attachment-carousel-viewport { align-items: center; background: linear-gradient(135deg, rgba(15, 23, 42, 0.05), rgba(20, 184, 166, 0.08)); border: 1px solid rgba(15, 23, 42, 0.1); border-radius: 1.15rem; display: grid; min-height: 12rem; overflow: hidden; position: relative; touch-action: pan-y; } .message-attachment-carousel-viewport.has-landscape-media { align-items: start; min-height: 0; } .message-attachment-slide { align-items: stretch; display: grid; min-height: 12rem; } .message-attachment-slide.has-landscape-media { min-height: 0; } .message-attachment-arrow { align-items: center; border-radius: 999px; cursor: pointer; display: inline-flex; font-size: 1.85rem; height: 2.35rem; justify-content: center; line-height: 1; position: absolute; top: 50%; transform: translateY(-50%); width: 2.35rem; z-index: 2; } .message-attachment-arrow[hidden] { display: none; } .message-attachment-arrow:disabled { cursor: default; opacity: 0.28; } .message-attachment-arrow--prev { left: 0.55rem; } .message-attachment-arrow--next { right: 0.55rem; } .message-attachment-counter { color: #64748b; font-size: 0.78rem; text-align: center; } .message-attachment-media-frame { align-items: center; background: #0f172a; cursor: zoom-in; display: grid; min-height: 12rem; overflow: hidden; position: relative; } .message-attachment-media-frame.is-landscape { min-height: 0; } .message-attachment-media { display: block; height: min(52vh, 20rem); max-height: 20rem; object-fit: contain; width: 100%; } .message-attachment-media.is-landscape { height: auto; } .message-attachment-play { align-items: center; background: rgba(15, 23, 42, 0.72); border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 999px; color: #fff; display: inline-flex; font-size: 1.7rem; height: 4rem; justify-content: center; left: 50%; padding-left: 0.18rem; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 4rem; } .message-attachment-download { background: rgba(20, 184, 166, 0.95); border-radius: 999px; color: #fff; font-size: 0.82rem; font-weight: 700; padding: 0.45rem 0.75rem; position: relative; text-decoration: none; width: max-content; z-index: 3; } .message-attachment-media-frame > .message-attachment-download { bottom: 0.75rem; position: absolute; right: 0.75rem; } .message-attachment-file-card { align-items: center; background: linear-gradient(135deg, rgba(15, 23, 42, 0.94), rgba(30, 41, 59, 0.94)); border: 1px solid rgba(20, 184, 166, 0.28); border-radius: 0.8rem; color: #f8fafc; cursor: pointer; display: grid; gap: 0.55rem; grid-template-columns: auto minmax(0, 1fr); min-height: 3.25rem; padding: 0.55rem 0.7rem; } .message-attachment-file-ext { align-items: center; background: rgba(20, 184, 166, 0.95); border-radius: 999px; color: #fff; display: inline-flex; font-size: 0.72rem; font-weight: 800; height: 1.7rem; justify-content: center; min-width: 3.25rem; padding: 0 0.55rem; } .message-attachment-file-main { display: grid; gap: 0.08rem; min-width: 0; } .message-attachment-file-main .message-attachment-meta { color: #cbd5e1; } .message-attachment-unavailable { align-items: center; background: linear-gradient(135deg, rgba(254, 242, 242, 0.96), rgba(255, 247, 237, 0.96)); color: #7f1d1d; display: flex; font-weight: 700; justify-content: center; min-height: 12rem; padding: 1.25rem; text-align: center; } .message-attachment-card { align-items: center; background: linear-gradient(135deg, rgba(240, 253, 250, 0.95), rgba(239, 246, 255, 0.95)); border: 1px solid rgba(20, 184, 166, 0.25); border-radius: 1rem; color: #0f172a; display: flex; gap: 0.7rem; padding: 0.75rem 0.85rem; text-decoration: none; } .message-attachment-icon { align-items: center; background: #0f766e; border-radius: 0.8rem; color: #fff; display: inline-flex; flex: 0 0 auto; height: 2.1rem; justify-content: center; width: 2.1rem; } .message-attachment-main { display: grid; min-width: 0; } .message-attachment-name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .message-attachment-meta { color: #64748b; font-size: 0.78rem; overflow-wrap: anywhere; } @media (max-width: 640px) { .message-attachment-carousel { max-width: 100%; } .message-attachment-carousel-viewport, .message-attachment-slide, .message-attachment-media-frame, .message-attachment-unavailable { min-height: 10rem; } .message-attachment-media { height: min(42vh, 16rem); } .message-attachment-file-card { grid-template-columns: auto minmax(0, 1fr); } .message-attachment-file-card .message-attachment-download { grid-column: 1 / -1; } } .dm-chat-wrap { gap: 12px; } .dm-chat-screen { display: flex; flex-direction: column; min-height: 0; gap: 12px; } .dm-chat-screen > .dm-chat-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; } .dm-chat-composer { position: sticky; bottom: 0; z-index: 12; flex: 0 0 auto; } .screen-content:has(> .dm-chat-screen) > .dm-chat-screen { flex: 1 1 auto; min-height: 0; } .screen-content:has(> .dm-chat-screen) { display: flex; flex-direction: column; overflow: hidden; padding-top: 0; padding-bottom: 0; scrollbar-width: none; -ms-overflow-style: none; } .screen-content:has(> .dm-chat-screen)::-webkit-scrollbar { width: 0; height: 0; display: none; } .dm-messages-log { gap: 10px; } .dm-screen .bubble { max-width: 78%; padding: 11px 14px; line-height: 1.42; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32); } .dm-screen .bubble.in { justify-self: start; border-radius: 18px 18px 18px 4px; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(20, 25, 35, 0.58); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } .dm-screen .bubble.out { justify-self: end; border-radius: 18px 18px 4px 18px; border: 1px solid rgba(83, 216, 251, 0.4); background: rgba(83, 216, 251, 0.16); color: rgba(225, 248, 255, 0.97); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } .dm-edit-banner { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1px solid transparent; background: rgba(212, 175, 55, 0.12); color: rgba(255, 233, 176, 0.96); box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22); } .dm-edit-banner[hidden] { display: none; } .dm-edit-banner__text { min-width: 0; font-size: 12px; line-height: 1.35; white-space: pre-line; overflow: hidden; } .dm-edit-banner__close { min-width: 30px; width: 30px; height: 30px; padding: 0; border-radius: 10px; } .dm-chat-input--multiline .dm-actions-col { grid-template-columns: 46px; grid-template-rows: repeat(2, 46px); grid-template-areas: "emoji" "send"; } .dm-emoji-btn { grid-area: emoji; min-width: 46px; width: 46px; padding: 0; line-height: 1; } .dm-emoji-btn__glyph { display: inline-grid; place-items: center; width: 100%; height: 100%; font-size: 27px; line-height: 1; } .bubble.bubble--emoji-only, .dm-screen .bubble.bubble--emoji-only { padding: 0; border: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; color: inherit; } .bubble.bubble--emoji-only.in, .dm-screen .bubble.bubble--emoji-only.in, .bubble.bubble--emoji-only.out, .dm-screen .bubble.bubble--emoji-only.out { border: 0; background: transparent; } .bubble.bubble--emoji-only .bubble-meta { margin-top: 2px; padding: 0 4px; color: rgba(198, 214, 247, 0.72); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); } .bubble-text--twemoji-only { font-size: 56px; line-height: 1; } .bubble-text--twemoji-only .chat-twemoji { width: 1em; height: 1em; } .dm-chat-input .dm-input { min-height: 42px; max-height: 180px; width: 100%; min-width: 0; resize: none; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; line-height: 1.35; padding: 10px 12px; } .dm-chat-input--multiline .dm-input { padding-right: 14px; } .dm-chat-input .dm-input::-webkit-scrollbar { width: 0; height: 0; } .dm-input { background: rgba(255, 255, 255, 0.04); border: 1px solid transparent; border-radius: 14px; color: rgba(255, 255, 255, 0.92); } .dm-input::placeholder { color: rgba(255, 255, 255, 0.42); } .dm-send-btn { background: rgba(212, 175, 55, 0.2); border: 1px solid transparent; color: rgba(255, 217, 128, 0.98); border-radius: 14px; font-weight: 700; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); } .dm-send-icon-btn { grid-area: send; min-width: 46px; width: 46px; padding: 0; font-size: 15px; line-height: 1; } .dm-message-actions-popover { position: fixed; left: 12px; top: 12px; margin: 0; pointer-events: auto; opacity: 0; transform: translateY(8px) scale(0.98); transition: opacity 120ms ease, transform 120ms ease; box-shadow: 0 18px 34px rgba(0, 0, 0, 0.42); } .dm-message-actions-popover.is-visible { opacity: 1; transform: translateY(0) scale(1); } .dm-message-action-btn { width: 100%; min-height: 42px; justify-content: flex-start; padding: 0 14px; border-radius: 12px; } .dm-message-action-btn--danger { color: rgba(255, 182, 182, 0.98); border-color: rgba(255, 120, 120, 0.3); background: rgba(112, 28, 28, 0.22); } /* Чат: в центре только компактная идентичность собеседника. */ .chat-header-identity { min-width: 0; max-width: 132px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; } .chat-header-avatar-slot { width: 40px; height: 40px; min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; } .chat-header-avatar.avatar, .chat-header-avatar.avatar-image { width: 40px; height: 40px; min-width: 40px; min-height: 40px; font-size: 14px; border: 0; box-shadow: none; } /* Фиксированная высота, а не только min-height: при смене основных вкладок * верхняя граница контента больше не меняется из-за локальной шапки страницы. */ /* Один и тот же текстовый ритм на Контактах / Каналах / Связях / * Уведомлениях / Профиле и вложенных экранах. */ /* В списке контактов логин слева также остаётся в общей палитре шапки. */ /* Все интерактивные элементы верхней шапки имеют одинаковую рабочую высоту. */ /* Личный чат: аватар остаётся компактным, логин теперь равен общему 18px. */ .chat-header-identity { max-width: 176px; gap: 8px; } /* Личный чат: логин остаётся строго в центральной колонке, * аватар живёт отдельно в левой колонке рядом со стрелкой назад. */ .chat-header-login { min-width: 0; font-family: var(--font-main); font-size: 18px; line-height: 22px; font-weight: 700; color: var(--app-topbar-gold); text-shadow: 0 0 5px var(--app-topbar-blue-glow), 0 0 14px var(--app-topbar-blue-glow-soft); display: block; max-width: min(42vw, 180px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; } .chat-header-avatar-slot--left { flex: 0 0 28px; margin-left: 0; } .chat-header-connections-btn, .chat-header-avatar-btn { padding: 0; min-width: 0; min-height: 0; border: 0; background: transparent; box-shadow: none; transform: none; } .chat-header-connections-btn:hover, .chat-header-connections-btn:active, .chat-header-connections-btn:focus, .chat-header-connections-btn:focus-visible, .chat-header-avatar-btn:hover, .chat-header-avatar-btn:active, .chat-header-avatar-btn:focus, .chat-header-avatar-btn:focus-visible { border: 0; background: transparent; box-shadow: none; transform: none; } .chat-header-connections-btn { width: 38px; height: 38px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: rgba(8, 17, 31, 0.65); border: 1px solid rgba(97, 198, 255, 0.26); box-shadow: 0 0 0 1px rgba(97, 198, 255, 0.08), 0 0 12px rgba(64, 172, 255, 0.18); } .chat-header-connections-btn:hover, .chat-header-connections-btn:focus-visible { border-color: rgba(111, 208, 255, 0.38); box-shadow: 0 0 0 1px rgba(111, 208, 255, 0.16), 0 0 16px rgba(64, 172, 255, 0.28); } .chat-header-connections-logo { width: 24px; height: 24px; object-fit: contain; display: block; } .chat-header-avatar-btn { display: inline-flex; align-items: center; justify-content: center; } .chat-header-avatar-btn .chat-header-avatar-slot { display: inline-flex; } /* Пузырям сообщений не нужна отдельная обводка: направление читается по фону и геометрии. */ .dm-chat-screen .bubble, .dm-chat-screen .bubble.in, .dm-chat-screen .bubble.out, .dm-chat-screen .bubble.call-tech { border: 0; } .dm-chat-screen .bubble-reply-preview { border: 0; } /* Нижняя панель чата повторяет бело-голубую цветовую роль верхнего toolbar вместо золота. */ .dm-chat-input .dm-input { border-color: rgba(247, 251, 255, 0.12); color: var(--app-topbar-gold); text-shadow: 0 0 4px rgba(92, 190, 255, 0.34), 0 0 10px rgba(72, 145, 255, 0.16); caret-color: var(--app-topbar-gold); } .dm-chat-input .dm-input:focus { border-color: rgba(92, 190, 255, 0.28); box-shadow: 0 0 0 1px rgba(92, 190, 255, 0.08); } .dm-chat-input .dm-input::placeholder { color: rgba(247, 251, 255, 0.46); text-shadow: none; } .dm-chat-input .dm-emoji-btn, .dm-chat-input .dm-send-btn, .dm-chat-input .dm-edit-banner__close { color: var(--app-topbar-gold); text-shadow: 0 0 5px var(--app-topbar-blue-glow), 0 0 12px var(--app-topbar-blue-glow-soft); filter: drop-shadow(0 0 4px rgba(92, 190, 255, 0.42)); } .dm-chat-input .dm-send-btn { border-color: rgba(247, 251, 255, 0.12); background: rgba(92, 190, 255, 0.08); box-shadow: none; } .dm-chat-input .dm-edit-banner { border-color: rgba(92, 190, 255, 0.18); background: rgba(92, 190, 255, 0.08); color: var(--app-topbar-gold); } .dm-chat-input .emoji-picker-tab.is-active { background: rgba(92, 190, 255, 0.12); } /* Composer должен быть продолжением основного фона: без верхнего разделителя * и без отдельной затемнённой/стеклянной подложки. */ /* ===== Feature geometry around the centralized App Shell ===== */ /* DM: shell рисует global fade, а внутренний scroll-container только резервирует * место под TopBar/Composer, не реализуя собственное глобальное затухание. */ .app-shell--scroll-nested .dm-chat-screen > .dm-chat-wrap { box-sizing: border-box; padding-top: calc(var(--topbar-height, 64px) + 12px); padding-bottom: calc(var(--composer-height, 0px) + 52px); } /* Один визуальный язык для меню профиля, чатов и каналов. */ .dm-message-action-btn { width: 100%; min-height: 42px; padding: 0 11px; display: flex; align-items: center; justify-content: flex-start; gap: 10px; border: 0; border-radius: 10px; background: transparent; color: #f4f8ff; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; text-align: left; white-space: nowrap; } .dm-message-action-btn:hover, .dm-message-action-btn:focus-visible { outline: none; background: rgba(39, 141, 255, 0.12); } .dm-message-action-btn--danger { color: #ffb7c5; background: transparent; } .dm-message-actions-menu { min-width: 196px; padding: 6px; gap: 2px; border: 1px solid rgba(92, 190, 255, 0.22); border-radius: 16px; background: linear-gradient(155deg, rgba(19, 27, 42, 0.97), rgba(7, 12, 22, 0.98)); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.48), 0 0 24px rgba(39, 141, 255, 0.10), inset 0 1px 0 rgba(255, 255, 255, 0.06); backdrop-filter: blur(20px) saturate(125%); -webkit-backdrop-filter: blur(20px) saturate(125%); width: min(78vw, 240px); } .chat-header-login-btn { padding: 4px 7px; min-height: 34px; border: 0; border-radius: 10px; background: transparent; cursor: pointer; } /* Поле сообщения занимает почти всю ширину; действия прижаты к правому краю. */ .composer-slot:has(> .dm-chat-input) { padding-left: 0; padding-right: 4px; } .dm-chat-input { grid-template-columns: minmax(0, 1fr) auto; align-items: end; position: relative; z-index: 10; margin-inline: 0; padding: 10px 0; border-top: 0; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; gap: 4px; padding-left: 0; padding-right: 0; } .dm-chat-input--multiline .dm-actions-col { grid-template-columns: 43px; } .dm-emoji-btn, .dm-send-icon-btn { min-width: 43px; width: 43px; } /* DM peer identity: one large invisible button fills the area between Back and Call. */ .chat-header-peer-btn { width: 100%; min-width: 0; min-height: 46px; padding: 2px 0; border-radius: 12px; display: flex; align-items: center; justify-content: flex-start; gap: 7px; text-align: left; cursor: pointer; } .chat-header-peer-btn .chat-header-avatar-slot { flex: 0 0 40px; } .chat-header-peer-text { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; } .chat-header-peer-name, .chat-header-peer-meta { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .chat-header-peer-name { font-size: 14px; line-height: 1.15; font-weight: 650; color: rgba(255,255,255,0.94); } .chat-header-peer-meta { font-size: 11px; line-height: 1.15; font-weight: 500; color: rgba(189,207,232,0.72); } /* ===== DM header regression fix (2026-09-02) ===== * The peer identity button intentionally spans the whole free header area. * Its avatar uses a 119% glass overlay, so neither the center cell nor the * button may clip overflow. Text keeps its own ellipsis boundary instead. */ .chat-header-peer-btn { overflow: visible; padding-inline: 2px; } .chat-header-peer-btn .chat-header-avatar-slot { width: 44px; height: 44px; min-width: 44px; min-height: 44px; flex: 0 0 44px; overflow: visible; } .chat-header-peer-btn .chat-header-avatar-slot .chat-header-avatar { overflow: visible; } .chat-header-peer-text { flex: 1 1 auto; overflow: hidden; } /* Shell state + Chat-owned composer adjustment (moved out of app-shell.css). */ .app-shell--scroll-nested.keyboard-open .composer-slot .dm-chat-input { padding-bottom: 0; } /* Composer icon actions own their white/blue interaction surface. */ .dm-chat-input :is(.dm-emoji-btn, .dm-send-btn, .dm-edit-banner__close), .dm-chat-input :is(.dm-emoji-btn, .dm-send-btn, .dm-edit-banner__close):hover, .dm-chat-input :is(.dm-emoji-btn, .dm-send-btn, .dm-edit-banner__close):focus { color: #F7FBFF; text-shadow: 0 0 5px rgba(92, 190, 255, 0.72), 0 0 12px rgba(72, 145, 255, 0.34); filter: drop-shadow(0 0 4px rgba(92, 190, 255, 0.46)); } /* ===== Зашифрованные вложения в личных сообщениях ===== */ .dm-file-btn { position: absolute; right: 45px; bottom: 52px; z-index: 6; min-width: 43px; width: 43px; height: 43px; padding: 0; border-radius: 14px; font-size: 21px; line-height: 1; background: rgba(13, 28, 54, 0.94); border: 1px solid rgba(183, 207, 242, 0.28); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } .dm-file-btn[hidden] { display: none; } .dm-file-btn:disabled { opacity: 0.7; cursor: progress; } .dm-file-card { min-width: min(285px, 72vw); max-width: min(330px, 76vw); display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 9px; } .dm-file-card__icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; background: rgba(255, 255, 255, 0.08); font-size: 19px; } .dm-file-card__copy { min-width: 0; display: grid; gap: 3px; } .dm-file-card__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 680; } .dm-file-card__meta { font-size: 11px; color: rgba(205, 219, 242, 0.67); } .dm-file-card__download { min-height: 34px; padding: 0 10px; border-radius: 11px; font-size: 12px; font-weight: 650; white-space: nowrap; } .dm-file-card__download:disabled { opacity: 0.65; cursor: progress; } @media (max-width: 390px) { .dm-screen .dm-file-card { min-width: min(264px, 76vw); grid-template-columns: 32px minmax(0, 1fr); } .dm-screen .dm-file-card__download { grid-column: 2; justify-self: start; } } .dm-chat-input--multiline .dm-file-btn { right: 0; bottom: 104px; }