/* Список каналов, поиск и форма создания. Визуальный owner этих экранов. */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .channels-screen { position: relative; width: min(100%, 640px); margin-inline: auto; gap: 12px; color: var(--text-primary); } .channels-screen::before { content: none; } .channels-screen .meta-muted { color: var(--text-secondary); } .channels-create-btn { width: 44px; height: 44px; padding: 0; color: var(--accent); font-size: 28px; font-weight: 400; } .channels-list-controls { display: grid; gap: 12px; } .channels-inline-search { min-height: 44px; padding: 0 6px 0 12px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 1px solid var(--border-subtle); border-radius: 12px; color: var(--text-secondary); background: var(--surface); } .channels-inline-search:focus-within { border-color: var(--focus-ring); outline: 2px solid color-mix(in srgb, var(--focus-ring) 24%, transparent); } .channels-inline-search input { width: 100%; min-width: 0; height: 42px; border: 0; outline: 0; color: var(--text-primary); background: transparent; font-size: 16px; } .channels-inline-search input::placeholder { color: var(--text-secondary); } .channels-server-search { min-height: 44px; padding: 0 8px; color: var(--accent); font-size: 13px; } .channels-list-content, .channels-groups { min-width: 0; display: grid; gap: 0; } .channel-row { text-align: left; position: relative; width: 100%; min-width: 0; min-height: 76px; padding: 14px 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid var(--border-subtle); border-radius: 0; color: var(--text-primary); background: transparent; box-shadow: none; cursor: pointer; transition: background-color 160ms ease; } .channel-row:hover { background: color-mix(in srgb, var(--surface) 66%, transparent); } .channel-row:active { background: var(--surface-selected); } .channel-row:focus-within { outline: 2px solid var(--focus-ring); outline-offset: -2px; } .channels-screen--list .channel-row .avatar { width: 48px; height: 48px; min-width: 48px; min-height: 48px; border-radius: 50%; overflow: hidden; } .channel-row-main { min-width: 0; display: grid; gap: 2px; } .channel-row-title-line, .channel-row-preview-line { min-width: 0; display: flex; align-items: baseline; gap: 8px; } .channel-row-title { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-primary); font-size: 15px; line-height: 20px; font-weight: 600; } .channel-row-time { flex: 0 0 auto; color: var(--text-secondary); font-size: 12px; line-height: 18px; white-space: nowrap; } .channel-row-technical, .channel-row-message { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-secondary); font-size: 12px; line-height: 18px; } .channel-row-message { font-size: 13px; } .channel-row-description, .channel-row-owner { display: none; } .channel-row-controls { align-self: end; min-width: 24px; display: grid; justify-items: end; } .channel-row-count { min-width: 22px; height: 22px; padding: 0 7px; border: 0; color: var(--on-accent); background: var(--accent); box-shadow: none; font-size: 12px; } .channel-row-count[hidden] { display: none; } .channels-empty-state, .channels-status { min-height: 180px; padding: 32px 20px; display: grid; place-content: center; justify-items: center; gap: 12px; border: 0; text-align: center; background: transparent; } .channels-empty-state--compact { min-height: 132px; } .channels-status .primary-btn, .channels-bottom-action { min-height: 44px; padding: 0 18px; border-radius: 12px; color: var(--on-accent); background: var(--accent); } .channels-list-body-fade { animation: channels-fade-in 160ms ease-out; } @keyframes channels-fade-in { from { opacity: 0; } to { opacity: 1; } } .channels-search-suggest { max-height: 240px; padding: 6px; overflow-y: auto; border: 1px solid var(--border-subtle); border-radius: 12px; background: var(--surface); } .channel-search-item { width: 100%; min-height: 44px; padding: 9px 10px; border-radius: 9px; color: var(--text-primary); text-align: left; cursor: pointer; } .channels-screen--add > .card { padding: 16px; } .channel-create-avatar-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; } .channel-create-avatar-side, .channel-create-avatar-status { min-width: 0; display: grid; gap: 8px; } .channel-create-avatar-status-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; } .channel-avatar-status-text, .channel-avatar-status-line, .channel-avatar-txid { margin: 0; color: var(--text-secondary); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; } .channel-avatar-remove-btn { width: 44px; height: 44px; padding: 0; color: var(--danger); } .channel-avatar-remove-btn[hidden] { display: none; } .channel-create-login-hint, .channel-link-preview { font-size: 12px; line-height: 18px; } .channels-screen--add :is(.input, .select) { color: var(--text-primary); background: var(--surface); border-color: var(--border-control); } .channels-screen--add :is(.primary-btn, .secondary-btn) { min-height: 44px; border-radius: 12px; } .channels-screen--add .primary-btn { color: var(--on-accent); background: var(--accent); } .channels-screen--add .secondary-btn { color: var(--text-primary); border: 1px solid var(--border-control); background: var(--surface); } @media (max-width: 360px) { .channel-row { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 9px; } .channels-screen--list .channel-row .avatar { width: 44px; height: 44px; min-width: 44px; min-height: 44px; } .channels-server-search { padding-inline: 4px; } .channel-create-avatar-head { grid-template-columns: 1fr; } } @media (prefers-reduced-motion: reduce) { .channels-list-body-fade, .channel-row { animation: none; transition: none; } }