/* Community shares the existing warm, quiet Bruno palette. */
[hidden] { display:none !important; }
.topbar { height:auto; min-height:76px; gap:20px; padding-top:16px; padding-bottom:16px; }
.topnav { flex-wrap:wrap; justify-content:flex-end; gap:14px 20px; }
.unread-badge { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 5px; border-radius:16px; background:var(--teal); color:var(--on-accent); font-size:13px; vertical-align:middle; }
.community-tag { display:inline-flex; align-items:center; border:1px solid var(--line-strong); background:var(--tint-soft); color:var(--teal-dark); border-radius:16px; padding:7px 12px; font-size:13px; font-weight:700; flex-shrink:0; }
.discovery-filters { display:flex; gap:12px; margin:30px 0; }
.discovery-filters input,.discovery-filters select { width:100%; padding:13px 15px; border:1px solid var(--line-strong); border-radius:10px; background:var(--surface); min-height:48px; color:var(--ink); }
.search-field { flex:1; }
.community-feed-heading { margin:32px 0 20px; }.community-feed-heading h2 { font-size:25px; }
.discovery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.discovery-card { padding:25px; display:flex; flex-direction:column; min-width:0; }
.discovery-top { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:20px; }
.project-monogram { width:50px; height:50px; display:grid; place-items:center; background:var(--tint); color:var(--muted); font:800 25px Manrope,sans-serif; border-radius:10px; flex-shrink:0; }

.discovery-card h2 { font-size:25px; margin:0 0 10px; overflow-wrap:anywhere; }.discovery-card h2 a:hover { color:var(--teal); }
.discovery-card p { line-height:1.6; font-size:13px; overflow-wrap:anywhere; }.discovery-tagline { font-weight:600; margin:0 0 10px; }
.looking-for-box { background:var(--tint-soft); border-radius:10px; padding:15px; margin:16px 0; }.looking-for-box .eyebrow { font-size:13px; }.looking-for-box p { margin:7px 0 0; }
.discovery-footer { margin-top:auto; padding:20px 0 18px; display:flex; align-items:center; gap:8px; justify-content:space-between; font-size:13px; }.saved-label { color:var(--teal); font-size:13px; }
.community-empty { grid-column:1/-1; text-align:center; padding:60px 25px; }.community-empty p { max-width:520px; margin:15px auto 25px; }
.empty-icon { display:block; color:var(--teal); font-size:31px; margin-bottom:20px; }.community-pagination { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:25px; font-size:13px; }
.card-editor-layout,.public-card-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); gap:26px; align-items:start; }
.card-editor,.publishing-note,.public-project,.author-card,.public-radar { padding:30px; }
.card-editor p { line-height:1.7; font-size:13px; }.card-editor .section-top h2 { font-size:25px; }.card-bruno-icon { font-size:31px; }
.bruno-edit-tools { background:var(--tint-soft); border-radius:10px; padding:18px; margin:22px 0; }.bruno-edit-tools p { margin-bottom:0; }
.card-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.card-fields .field { margin:0; }.card-fields .field:has(textarea),.card-fields .checkbox-field { grid-column:1/-1; }
.card-fields input,.card-fields textarea,.card-fields select { width:100%; }.card-fields .checkbox-field { display:flex; flex-direction:row-reverse; align-items:flex-start; justify-content:flex-end; gap:12px; padding:15px; background:var(--bg); border-radius:10px; }.checkbox-field input { width:18px; height:18px; margin-top:2px; flex-shrink:0; accent-color:var(--teal); }
.bruno-refine { padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:25px 0; }.bruno-refine summary { cursor:pointer; font-size:16px; font-weight:700; }.bruno-refine .field { margin-top:20px; }
.card-editor-actions { display:flex; gap:10px; flex-wrap:wrap; }.card-preview-column { position:sticky; top:22px; }.card-preview-column > .eyebrow { margin-bottom:16px; display:block; }.preview-card { box-shadow:var(--shadow-pop); }.publishing-note { margin-top:20px; }.publishing-note p { font-size:13px; line-height:1.6; }.publishing-note form { margin-top:20px; text-align:center; }.danger-link { color:var(--danger); font-size:13px; }
.public-card-layout { margin-top:22px; }.project-monogram.large { width:68px; height:68px; font-size:31px; }.public-project h1 { font-size:31px; overflow-wrap:anywhere; }.public-tagline { font-size:20px; line-height:1.5; }.public-summary { color:var(--muted); line-height:1.8; }.public-sections { display:grid; grid-template-columns:1fr 1fr; gap:25px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:25px 0; margin:25px 0; }.public-sections p,.public-traction p { line-height:1.7; font-size:16px; overflow-wrap:anywhere; }.author-card { text-align:center; }.author-avatar { width:70px; height:70px; border-radius:50%; background:var(--cream); display:grid; place-items:center; font-size:31px; font-weight:700; color:var(--cocoa); margin:25px auto 15px; }.author-card h2 { font-size:25px; overflow-wrap:anywhere; }.author-card p { line-height:1.6; font-size:13px; }.author-card .button { margin-top:12px; }.public-radar { margin-top:20px; }.public-radar .metric-list { margin:25px 0; }.public-radar p { line-height:1.6; }
.messenger { display:grid; grid-template-columns:300px minmax(0,1fr); overflow:hidden; min-height:580px; }.inbox-sidebar { border-right:1px solid var(--line); padding:22px 12px; background:var(--surface); }.inbox-sidebar h2 { font-size:16px; margin:0 12px 20px; }.inbox-thread { display:flex; align-items:center; gap:10px; border-radius:10px; padding:15px 12px; }.inbox-thread.active { background:var(--tint); }.inbox-thread:hover { background:var(--tint); }.thread-avatar { display:grid; place-items:center; width:38px; height:38px; flex-shrink:0; border-radius:50%; background:var(--surface-3); color:var(--cocoa); font-weight:700; }.thread-copy { flex:1; min-width:0; }.thread-copy strong { font-size:13px; }.thread-copy small { display:block; font-size:13px; color:var(--muted); margin-top:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.inbox-empty { padding:12px; font-size:13px; line-height:1.8; }.new-conversation-link { display:block; padding:15px; font-size:13px; }
.direct-chat { min-width:0; display:flex; flex-direction:column; }.direct-chat-header { display:flex; gap:15px; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); padding:20px 25px; }.direct-chat-header h2 { font-size:16px; margin:0 0 5px; }.conversation-project { background:var(--bg); font-size:13px; padding:12px 25px; color:var(--muted); }.direct-scroll { height:420px; min-height:250px; overflow-y:auto; padding:24px; overflow-anchor:none; }.direct-messages { display:flex; flex-direction:column; gap:12px; }.direct-bubble { align-self:flex-start; background:var(--tint-soft); padding:13px 16px; border-radius:16px 16px 16px 3px; max-width:82%; min-width:110px; }.direct-bubble.own { align-self:flex-end; background:var(--tint); border-radius:16px 16px 3px 16px; }.direct-bubble p { margin:0; font-size:16px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }.direct-meta { display:flex; gap:12px; flex-wrap:wrap; color:var(--muted); font-size:13px; margin-top:7px; }.pending { opacity:.65; }.pending small,.pending button { font-size:13px; margin-top:8px; display:block; }.direct-empty { text-align:center; padding:65px 15px; font-size:16px; line-height:1.8; }.direct-error { padding:12px 22px; font-size:13px; background:var(--danger-bg); color:var(--danger); }.load-older { display:block; margin:0 auto 20px; font-size:13px; }.direct-composer { padding:20px; border-top:1px solid var(--line); margin-top:auto; }.direct-composer textarea { resize:vertical; width:100%; border:1px solid var(--line-strong); border-radius:10px; padding:13px; background:var(--surface); outline-color:var(--teal); }.direct-composer .composer-bottom { margin-top:10px; }.direct-composer .small { font-size:13px; }.messenger-welcome { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:45px; }.messenger-welcome h2 { max-width:400px; }.messenger-welcome p { max-width:380px; line-height:1.8; font-size:16px; margin-bottom:25px; }
.mobile-chat-back { display:none; }
@media(max-width:1050px) { .topbar { flex-wrap:wrap; }.topnav { justify-content:flex-start; }.discovery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.messenger { grid-template-columns:250px minmax(0,1fr); } }
@media(max-width:720px) { .card-editor-layout,.public-card-layout { grid-template-columns:1fr; }.card-preview-column { position:static; }.discovery-grid { grid-template-columns:1fr; }.discovery-filters { flex-wrap:wrap; }.search-field { flex-basis:100%; }.discovery-filters label:has(select) { flex:1; }.card-fields { grid-template-columns:1fr; }.card-editor,.public-project,.author-card,.public-radar { padding:22px; }.card-editor-actions > .button { flex:1; }.public-sections { grid-template-columns:1fr; gap:12px; }.public-project h1 { font-size:31px; }.messenger { grid-template-columns:1fr; }.inbox-sidebar { border-right:0; border-bottom:1px solid var(--line); padding:15px 10px; max-height:210px; overflow:auto; }.inbox-sidebar h2 { margin-bottom:8px; }.inbox-thread { padding:10px; }.direct-scroll { height:45dvh; padding:16px; }.direct-chat-header { padding:17px; }.direct-composer { padding:14px; }.direct-bubble { max-width:90%; }.direct-composer .composer-bottom { flex-wrap:wrap; }.topnav { font-size:13px; gap:13px; }.topbar { padding:16px 22px; }.public-summary { overflow-wrap:anywhere; } }
@media(max-width:820px) {
  .main-content:has(.messenger) { width:100%; padding:0; }
  .messenger-page-heading.has-active { display:none; }
  .messenger-page-heading:not(.has-active) { padding:16px; margin:0; }
  .messenger-page-heading:not(.has-active) p { display:none; }
  .messenger { position:relative; display:block; height:calc(100dvh - 118px); min-height:420px; border-radius:0; }
  .inbox-sidebar { width:100%; height:100%; max-height:none; overflow-y:auto; border:0; padding:18px 12px; }
  .inbox-sidebar h2 { margin:0 12px 12px; }
  .inbox-thread { padding:13px 12px; }
  .messenger:not(.has-active) .direct-chat { display:none; }
  .messenger.has-active .direct-chat { position:absolute; inset:0; z-index:1; background:var(--surface); box-shadow:-8px 0 24px #12233818; touch-action:pan-y; transition:transform 240ms cubic-bezier(.2,.8,.2,1); }
  .messenger.has-active.is-showing-list .direct-chat { transform:translateX(100%); pointer-events:none; }
  .direct-chat-header { gap:10px; padding:11px 14px; }
  .direct-chat-header > div { flex:1; min-width:0; }
  .direct-chat-header .direct-peer { min-width:0; }
  .direct-chat-header .direct-peer span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
  .direct-chat-header form { flex-shrink:0; }
  .mobile-chat-back { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--ink); font-size:25px; line-height:1; }
  .mobile-chat-back:hover,.mobile-chat-back:focus-visible { background:var(--tint); }
  .direct-scroll { flex:1; height:auto; min-height:0; padding:16px; }
  .direct-composer { padding:12px 14px max(12px,env(safe-area-inset-bottom)); }
  .direct-bubble { max-width:90%; }
  body:has(.messenger.has-active:not(.is-showing-list)) .bruno-pet { display:none; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; } }
@media(prefers-reduced-motion:reduce) { .messenger.has-active .direct-chat { transition:none; } }

.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; }
.page-heading h1 { font-size:clamp(25px,2.4vw,31px); font-weight:700; line-height:1.2; }.discovery-card h2,.public-project h1 { font-weight:700; }
.public-card-layout .metric-list { grid-template-columns:1fr; }

/* Files and photos in personal messages: composer tray, bubbles, photo viewer. */
.composer-tools { display:flex; align-items:center; gap:8px; min-width:0; }
.attach-button { flex:none; display:inline-grid; place-items:center; width:38px; height:38px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; transition:background-color .15s, color .15s; }
.attach-button:hover:not(:disabled) { background:var(--tint); color:var(--teal-dark); }
.attach-button:disabled { opacity:.4; cursor:default; }
.attach-button:focus-visible,.attachment-remove:focus-visible,.direct-photo:focus-visible,.direct-file:focus-visible,.photo-viewer-action:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
.attachment-tray { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:12px; }
.attachment-tray[hidden] { display:none; }
.attachment-chip { position:relative; display:flex; align-items:center; gap:10px; height:64px; overflow:hidden; border:1px solid var(--line-strong); border-radius:10px; background:var(--surface); }
.attachment-chip.is-image { width:64px; }
.attachment-chip.is-image img { display:block; width:100%; height:100%; object-fit:cover; }
.attachment-chip.is-file { width:220px; max-width:100%; padding:0 32px 0 10px; }
.attachment-chip-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.attachment-chip-text strong { overflow:hidden; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.attachment-chip-text small { overflow:hidden; color:var(--muted); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.file-badge { flex:none; display:grid; place-items:center; width:40px; height:44px; border-radius:8px; background:var(--tint); color:var(--teal-dark); font-size:13px; font-weight:700; }
.attachment-remove { position:absolute; top:4px; right:4px; display:grid; place-items:center; width:22px; height:22px; padding:0; border:0; border-radius:50%; background:#122338cc; color:#fff; cursor:pointer; opacity:0; transition:opacity .15s; }
.attachment-chip:hover .attachment-remove,.attachment-chip:focus-within .attachment-remove,.attachment-chip.is-error .attachment-remove { opacity:1; }
@media (hover:none) { .attachment-remove { opacity:1; } }
.attachment-progress { position:absolute; bottom:0; left:0; width:var(--progress, 4%); height:3px; background:var(--teal); opacity:0; transition:width .2s; }
.attachment-chip.is-uploading .attachment-progress { opacity:1; }
.attachment-chip.is-uploading img { opacity:.55; }
.attachment-chip.is-error { border-color:var(--danger); background:var(--surface); }
.attachment-chip.is-error img { opacity:.4; }
.attachment-chip.is-error small { color:var(--danger); white-space:normal; line-height:1.3; }
.attachment-note { flex-basis:100%; color:var(--danger); font-size:13px; }
.direct-chat { position:relative; }
.direct-chat.is-dropping::after { content:'Отпустите, чтобы прикрепить'; position:absolute; inset:8px; z-index:5; display:grid; place-items:center; border:2px dashed var(--teal); border-radius:10px; background:color-mix(in srgb,var(--surface) 92%,transparent); color:var(--teal-dark); font-weight:600; pointer-events:none; }
.direct-bubble.has-attachments { min-width:0; }
.direct-media { margin:-5px -8px 8px; overflow:hidden; border-radius:10px; }
.direct-media:last-child { margin-bottom:-5px; }
.direct-photo { display:block; width:min(320px, 62vw); max-height:380px; overflow:hidden; background:var(--surface-3); }
.direct-photo img { display:block; width:100%; height:100%; max-height:380px; object-fit:cover; }
.direct-media.is-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:3px; width:min(320px, 62vw); }
.direct-media.is-grid .direct-photo { width:auto; aspect-ratio:1; }
.direct-media.is-grid .direct-photo:last-child:nth-child(odd) { grid-column:1 / -1; aspect-ratio:2; }
.direct-files { display:flex; flex-direction:column; gap:6px; margin-bottom:6px; }
.direct-files:last-child { margin-bottom:0; }
.direct-file { display:flex; align-items:center; gap:10px; width:min(280px, 62vw); padding:8px 10px; border-radius:10px; background:var(--surface); color:inherit; text-decoration:none; transition:background-color .15s; }
.direct-file:hover { background:var(--surface); }
.direct-file-text { display:flex; flex:1; flex-direction:column; min-width:0; }
.direct-file-text strong { overflow:hidden; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.direct-file-text small { color:var(--muted); font-size:13px; }
.direct-file-download { flex:none; color:var(--teal-dark); }
.direct-bubble.pending .direct-file { pointer-events:none; }
.photo-viewer { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:64px 16px 16px; background:#0b1520eb; }
.photo-viewer[hidden] { display:none; }
.photo-viewer-bar { position:absolute; top:0; right:0; left:0; display:flex; align-items:center; gap:8px; padding:10px 12px 10px 20px; color:#fff; }
.photo-viewer-name { flex:1; min-width:0; overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.photo-viewer-action { display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:color-mix(in srgb,#ffffff 14%,transparent); color:#fff; cursor:pointer; }
.photo-viewer-action:hover { background:color-mix(in srgb,#ffffff 24%,transparent); }
.photo-viewer-image { max-width:100%; max-height:100%; object-fit:contain; border-radius:8px; box-shadow:0 20px 50px #0009; }
html.has-photo-viewer { overflow:hidden; }
@media (max-width:720px) { .attachment-chip.is-file { width:calc(50% - 5px); } .composer-tools { flex:1; } .composer-tools [data-compose-help] { display:none; } }

/* Card complaints: "!" button in the card corner, confirmation dialog, "Опасно!" mark. */
.discovery-identity { display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }
.report-form { margin:0; flex-shrink:0; }
.report-button { display:inline-grid; place-items:center; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; transition:background-color .15s, color .15s; flex-shrink:0; }
button.report-button:hover { background:var(--danger-bg); color:var(--danger); }
button.report-button:focus-visible { outline:2px solid var(--danger); outline-offset:2px; }
.report-button.is-reported { color:var(--danger); cursor:default; }
.report-button.is-reported svg { fill:var(--danger-bg); }
.discovery-card .danger-label,.public-project .danger-label { margin:0 0 6px; color:var(--danger); font:800 31px/1.1 Manrope, sans-serif; letter-spacing:-.5px; }
.public-project .danger-label { font-size:31px; }
.danger-label.is-new { animation:danger-in .35s ease-out; }
@keyframes danger-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.report-dialog { width:min(440px, calc(100vw - 32px)); padding:0; border:0; border-radius:16px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow-pop); }
.report-dialog::backdrop { background:#12233866; }
.report-dialog-body { padding:30px 28px 24px; text-align:center; }
.report-dialog-icon { display:inline-grid; place-items:center; width:54px; height:54px; margin-bottom:14px; border-radius:50%; background:var(--danger-bg); color:var(--danger); font:800 31px Manrope, sans-serif; }
.report-dialog h2 { margin:0 0 10px; font-size:20px; }
.report-dialog-text { margin:0; color:var(--muted); font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
.report-dialog-error { margin:14px 0 0; color:var(--danger); font-size:13px; }
.report-dialog-actions { display:flex; gap:10px; margin-top:24px; }
.report-dialog-actions .button { flex:1; justify-content:center; }
.button.report-confirm { background:var(--danger); border-color:var(--danger); color:var(--surface); }
.button.report-confirm:hover:not(:disabled) { background:color-mix(in srgb,var(--danger) 85%,var(--ink)); border-color:var(--danger); }
.button.report-confirm:disabled { opacity:.6; }
@media (max-width:720px) { .discovery-card .danger-label { font-size:25px; } .public-project .danger-label { font-size:31px; } }
@media (prefers-reduced-motion:reduce) { .danger-label.is-new { animation:none; } }

/* Ссылка на карточку и жалоба в правом верхнем углу карточки. */
.discovery-actions { display:flex; align-items:center; gap:4px; flex-shrink:0; }
