/* Общий контракт публикаций и ответов. */ .channels-screen .channel-message-card { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 16px 0 8px; border: 0; border-bottom: 1px solid var(--border-subtle); border-radius: 0; background: transparent; box-shadow: none; animation: none; } .channel-message-head-row { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; } .channel-message-author-tile { display: flex; flex: 1; gap: 12px; align-items: center; min-width: 0; min-height: 44px; padding: 0; text-align: left; cursor: pointer; } .channel-message-author { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; min-width: 0; } .channel-message-avatar.avatar { width: 36px; height: 36px; min-width: 36px; min-height: 36px; font-size: 14px; } .channel-message-card .author-line-num { display: none; } .channel-message-author .channel-message-time::before { content: '·'; margin-right: 6px; } .channel-message-title, .author-line-main { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; min-width: 0; } .author-line-login { font-size: .875rem; line-height: 1.25rem; font-weight: 600; color: var(--text-primary); overflow-wrap: anywhere; } .author-line-num, .channel-message-time { font-size: .75rem; line-height: 1.125rem; color: var(--text-secondary); } .channel-message-body { margin: 0; font-size: .9375rem; line-height: 1.4375rem; color: var(--text-primary); white-space: pre-wrap; overflow-wrap: anywhere; min-width: 0; } .channel-message-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; } .channel-action-item { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 44px; padding: 8px; border-radius: 12px; color: var(--text-secondary); cursor: pointer; font-size: .75rem; } .channel-action-item:hover { color: var(--text-primary); background: var(--surface); } .channel-action-item.is-liked { color: var(--reaction-active); } .channel-action-item:disabled { opacity: .5; cursor: wait; } .channel-action-icon { display: inline-flex; font-size: 22px; line-height: 1; } .channel-action-icon svg { width: 22px; height: 22px; } .channel-action-counter { color: inherit; font-size: .75rem; } .channel-action-counter:empty { display: none; } /* ноль не показываем — только иконку */ .channel-action-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); } .channel-action-reply, .thread-reply-btn { margin-left: auto; color: var(--accent); } .channel-action-reply .channel-action-label, .thread-reply-btn .channel-action-label { position: static; width: auto; height: auto; clip: auto; } .channel-action-reply .channel-action-icon, .channel-action-reply .channel-action-counter, .thread-reply-btn .channel-action-icon, .thread-reply-btn .channel-action-counter { display: none; } .channel-message-more { width: 44px; height: 44px; margin-left: auto; font-size: 24px; color: var(--text-secondary); } .channel-message-kind-badge, .channel-message-type-button { min-height: 28px; padding: 6px 10px; border-radius: 8px; color: var(--accent); background: var(--surface-selected); font-size: .75rem; } .channel-message-type-button:not(:disabled) { min-height: 44px; cursor: pointer; } .message-edited-marker { font-size: .75rem; color: var(--text-secondary); } .deleted-message-pill { min-height: 44px; text-align: left; color: var(--text-secondary); padding: 8px 0; } .channel-header-title, .channel-header-owner { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .channel-header-owner { color: var(--text-secondary); font-size: .75rem; line-height: 1rem; font-weight: 400; } /* Нижняя панель экранов канала: поверхность с линией сверху, как шапка */ .channel-composer { display: flex; gap: 8px; margin: 0 -12px; padding: 9px 12px calc(11px + env(safe-area-inset-bottom)); background: var(--surface); border-top: 1px solid var(--border-subtle); } .channel-compose-bar { width: 100%; min-height: 44px; padding: 0 6px 0 16px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--border-control); border-radius: 22px; color: var(--text-secondary); background: var(--surface); font: inherit; font-size: 1rem; text-align: left; cursor: text; transition: border-color 160ms ease; } .channel-compose-bar:hover { border-color: var(--accent); } .channel-compose-bar:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; } .channel-compose-bar__text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .channel-compose-bar__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: var(--on-accent); background: var(--accent); flex-shrink: 0; } .channel-compose-bar__icon svg { width: 20px; height: 20px; stroke-width: 2.2; } .channel-day-separator { display: flex; justify-content: center; margin: 8px 0 10px; } .channel-day-separator span { padding: 3px 10px; border-radius: 999px; color: var(--text-secondary); background: color-mix(in srgb, var(--surface) 88%, transparent); border: 1px solid var(--border-subtle); font-size: .75rem; line-height: 1.125rem; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); } .blockchain-details-grid { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px; font-size: .75rem; } .blockchain-details-grid code, .blockchain-raw-block { overflow-wrap: anywhere; white-space: pre-wrap; } .blockchain-raw-block { max-height: 40vh; overflow: auto; padding: 12px; background: var(--background); } .draft-attachments { display: flex; flex-wrap: wrap; gap: 8px; } .draft-attachment-chip { max-width: 100%; overflow-wrap: anywhere; } .modal-danger-action { width: 100%; color: var(--danger); } .thread-reply-context { color: var(--text-secondary); font-size: .75rem; line-height: 1.125rem; border-left: 2px solid var(--border-control); padding-left: 10px; overflow-wrap: anywhere; } @media (prefers-reduced-motion: reduce) { .channels-screen *, .channel-composer * { animation: none; scroll-behavior: auto; transition: none; } } /* Запись автора в его канале (макет V4): плоская, на всю ширину, между записями — линия с отступами */ .channels-screen .channel-message-card.channel-message-card--owner { gap: 0; margin: 0; padding: 20px 0 8px; border: 0; position: relative; } .channels-screen .channel-message-card--owner + .channel-message-card--owner::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--border-subtle); } .channels-screen .channel-message-card--owner .channel-message-body { font-size: 1rem; line-height: 1.52; } .channel-message-card--owner .channel-message-head-row[hidden] { display: none; } .channel-message-card--owner .message-attachment-carousel { width: calc(100% + 2 * var(--page-gutter)); max-width: none; margin: 0 calc(-1 * var(--page-gutter)) 14px; } .channel-message-card--owner .message-attachment-carousel-viewport { border: 0; border-radius: 0; } .topbar-identity .avatar.channel-profile-avatar { --channel-avatar-size: 40px; width: 40px; height: 40px; min-width: 40px; min-height: 40px; font-size: 22px; border-radius: 11px; } .channel-message-card--owner .channel-message-actions { gap: 0; margin: 6px -8px 0; min-height: 50px; flex-wrap: nowrap; } /* Равный шаг иконок: каждое действие – ячейка 56 px, иконка у левого края, счётчик внутри ячейки (влезает и «999»). */ .channel-message-card--owner .channel-action-item { width: 56px; min-width: 56px; min-height: 44px; padding: 0 0 0 8px; gap: 5px; justify-content: flex-start; border-radius: 10px; font-variant-numeric: tabular-nums; } .channel-message-card--owner .channel-action-discussion { width: auto; padding-right: 8px; } .channel-message-card--owner .channel-action-icon svg { width: 23px; height: 23px; } .channel-message-card--owner .channel-action-share .channel-action-icon svg { width: 25px; height: 25px; } .channel-action-item.is-liked svg { fill: currentColor; } .channel-action-faces { display: inline-flex; align-items: center; margin-left: 2px; padding-right: 3px; } .channel-action-faces .avatar.channel-action-face { width: 22px; height: 22px; min-width: 22px; min-height: 22px; font-size: 10px; border: 2px solid var(--background); } .channel-action-faces .channel-action-face + .channel-action-face { margin-left: -6px; } .channel-message-meta { display: flex; align-items: center; gap: var(--space-1); margin-left: auto; min-width: 0; padding-left: 4px; } .channel-message-meta .channel-message-time { white-space: nowrap; } .channel-message-meta .channel-message-time::before { content: none; } .channel-message-meta .channel-message-more { display: inline-grid; place-items: center; width: 36px; height: 44px; min-height: 44px; margin: 0 -4px 0 0; padding: 0; } .channel-message-more svg { display: block; width: 20px; height: 20px; } @media (max-width: 360px) { .channel-message-card--owner .channel-action-item { width: 50px; min-width: 50px; } .channel-message-meta .channel-message-time { font-size: .6875rem; } } /* Нижняя панель ленты: «Новая запись» у владельца, «Подписаться» у читателя */ .channel-new-post { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 12px; background: var(--surface-selected); color: var(--action); font: inherit; font-weight: 600; cursor: pointer; } .channel-new-post svg { width: 21px; height: 21px; } .channel-new-post:hover { background: color-mix(in srgb, var(--surface-selected) 85%, var(--text-primary)); } .channel-new-post:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; } .channels-screen--channel, .channels-screen--thread { padding-bottom: 8px; } .channel-message-card--owner .message-attachment-media { height: auto; max-height: 70vh; object-fit: cover; }