/* Shared Ani’Moi publications: Pawbook A, SAV/LinkedPaw B, Gazette C. */
.universe-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 18px 0; }
.universe-button { min-width: 0; min-height: 76px; padding: 12px; display: flex; align-items: center; gap: 9px; background: #faf6ff; border: 1px solid #deceee; color: #624184; text-align: left; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.universe-button[aria-pressed=true] { background: #eadef8; border: 2px solid #8a5abb; padding: 11px; }
.universe-icon { flex: 0 0 25px; font-size: 24px; }
.universe-button > span:last-child { min-width: 0; }
.network-tools { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.network-tools button { min-width: 0; max-width: 100%; min-height: 48px; }
.network-tools [aria-pressed=true] { box-shadow: inset 0 0 0 2px #ae8bd0; }
.community-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 3px 0 12px; scrollbar-width: thin; }
.community-tabs button { flex: none; min-height: 48px; white-space: nowrap; padding: 10px 13px; border-radius: 100px; background: #eee7fa; color: #53328d; }
.community-tabs button[aria-pressed=true] { background: #6440b5; color: #fff; }
.community-empty { padding: 22px; border: 1px dashed #d7cce9; border-radius: 14px; color: #766b84; text-align: center; }
.gazette-header { margin: 16px 0 24px; padding: 20px 0; border-top: 4px double #87579f; border-bottom: 2px solid #87579f; }
.gazette-header h2 { font: 700 34px/1.15 Georgia, 'Times New Roman', serif; color: #603571; overflow-wrap: anywhere; }
.gazette-subtitle { font-size: 15px; color: #71547d; }
.gazette-empty { padding: 16px; background: #faf6ee; border: 1px solid #e6d8e9; border-radius: 4px; line-height: 1.6; }
.network-owner-notice { padding-top: 18px; margin-top: 24px; border-top: 1px solid #eadff4; }
.publication-fields { margin: 20px 0; min-width: 0; }
.publication-fields input, .publication-fields textarea, .publication-fields select { max-width: 100%; min-width: 0; }
.publication-fields [hidden], .gazette-header[hidden] { display: none !important; }
.publication-card .editorial-controls { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; padding-top: 14px; border-top: 1px dashed #d8c2e2; }
.publication-card .editorial-controls button { width: 100%; min-width: 0; min-height: 48px; font-size: 14px; }
@media (max-width: 420px) {
  .universe-button { flex-direction: column; align-items: flex-start; gap: 5px; }
  .universe-icon { flex-basis: auto; }
}
.publication-card { box-sizing: border-box; min-width: 0; margin: 16px 0; padding: 18px; border: 1px solid #dfd0ef; border-radius: 20px; background: #fffdfd; color: #30213e; overflow-wrap: anywhere; }
.publication-card *, .publication-card *::before, .publication-card *::after { box-sizing: border-box; }
.publication-card .publication-topline { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.publication-card .publication-rubric { display: inline-block; min-width: 0; max-width: 100%; padding: 6px 9px; border-radius: 8px; background: #eee3f9; color: #674096; font-size: 12px; font-weight: 750; line-height: 1.4; }
.publication-card .publication-date { color: #736180; font-size: 12px; }
.publication-card .publication-author { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; min-width: 0; }
.publication-card .publication-avatar, .publication-card .community-author .publication-avatar { flex: 0 0 54px; width: 54px; height: 54px; border-radius: 50%; object-fit: cover; background: #e9def4; }
.publication-card .publication-avatar-fallback { display: grid; place-items: center; font-size: 28px; }
.publication-card .publication-byline { min-width: 0; }
.publication-card .publication-animal { display: block; font-size: 18px; line-height: 1.3; }
.publication-card .publication-animal-meta { margin-top: 4px; color: #735f80; font-size: 13px; line-height: 1.45; }
.publication-card .publication-title { margin: 0 0 15px; font-size: 23px; line-height: 1.25; letter-spacing: -.45px; }
.publication-card .publication-text { margin: 0 0 16px; color: #4e3b59; white-space: pre-wrap; font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.publication-card .publication-photo { display: block; width: 100%; max-width: 100%; height: auto; max-height: 600px; object-fit: contain; border-radius: 14px; background: #f5eefb; margin: 18px 0; }
.publication-card .publication-field { margin: 14px 0; padding: 13px; border: 1px solid #e2d3ee; border-radius: 10px; background: #faf6ff; }
.publication-card .publication-field-label { margin-bottom: 5px; color: #74548d; font-size: 12px; font-weight: 750; }
.publication-card .publication-field-value { white-space: pre-wrap; color: #493351; font-size: 15px; line-height: 1.55; }
.publication-card .publication-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid #eadff4; }
.publication-card .publication-actions button { min-width: 0; min-height: 48px; padding: 10px 5px; font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; }
.publication-card .post-feedback { margin: 13px 0 0; font-size: 14px; line-height: 1.5; }
.publication-card .post-feedback:empty { display: none; }
.publication-card .translation-controls { margin-top: 16px; }
.publication-card .translation-controls button { min-height: 48px; max-width: 100%; }
.publication-card .publication-ticket { display: grid; gap: 5px; margin: 0 0 17px; padding: 12px 0; border-top: 1px dashed #c9b2db; border-bottom: 1px dashed #c9b2db; }
.publication-card .publication-ticket span { color: #725080; font-size: 12px; }
.publication-card .publication-ticket strong { font: 700 15px ui-monospace, SFMono-Regular, Consolas, monospace; color: #54326b; }
.publication-card .publication-ticket small { color: #7d668b; font-size: 12px; }
.publication-card .publication-stamp, .publication-card .publication-editorial-status { display: inline-block; max-width: 100%; margin: 0 0 16px; padding: 7px 10px; border: 1px solid #c7abd9; background: #f0e7f7; color: #694582; font-size: 13px; font-weight: 650; line-height: 1.4; }
.publication-card .publication-professional { margin-bottom: 7px; color: #674776; font-size: 13px; font-weight: 750; }
.publication-card .publication-kind { margin: 0 0 14px; color: #745583; font-size: 13px; }
.publication-card .publication-human-reply { border-left: 4px solid #b992ce; }
.publication-card .publication-masthead { margin: 0 0 20px; padding: 15px 0; border-top: 4px double #87579f; border-bottom: 2px solid #87579f; text-align: center; }
.publication-card .publication-masthead strong { display: block; font: 700 29px/1.15 Georgia, 'Times New Roman', serif; color: #5a3370; letter-spacing: -.65px; }
.publication-card .publication-edition { margin-top: 9px; color: #755883; font: 12px/1.5 system-ui, sans-serif; }
.publication-card .publication-editorial-note { margin-top: 18px; padding: 12px; border: 1px solid #e2d3e8; background: #f3eaf5; color: #71547d; font-size: 13px; line-height: 1.5; }

/* Compact reading and actions in the feed; existing history controls stay intact. */
.publication-excerpt { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; margin: 0 0 12px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; }
.publication-card .publication-text[hidden], .publication-excerpt[hidden], .publication-read-toggle[hidden] { display: none !important; }
.publication-read-toggle { min-height: 48px; margin: 0 0 16px; }
.community-entry .publication-actions { display: flex; flex-wrap: wrap; align-items: flex-start; }
.community-entry .post-share { flex: 1 1 110px; min-height: 48px; font-weight: 800; box-shadow: 0 2px 6px #6440b530; }
.publication-more { flex: 0 1 auto; max-width: 100%; }
.publication-more > summary { display: flex; align-items: center; gap: 6px; min-height: 48px; padding: 12px; border-radius: 12px; background: #eee7fa; color: #53328d; font-size: 14px; font-weight: 700; cursor: pointer; white-space: nowrap; list-style: none; scroll-margin-top: var(--mobile-navigation-space, 0px); }
.publication-more > summary::-webkit-details-marker { display: none; }
.publication-more > summary::before { content: '⋯'; font-size: 20px; line-height: 1; }
.publication-more > summary:focus-visible { outline: 3px solid #a96cdd; outline-offset: 3px; }
.publication-more[open] { flex-basis: 100%; }
.publication-more-buttons { display: grid; gap: 8px; padding-top: 8px; }
.publication-more-buttons button { min-width: 0; min-height: 48px; text-align: left; }
.network-compact-filters { display: none; }
@media (max-width: 600px) {
  .network-compact-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 16px 0; }
  .network-filter-field { min-width: 0; }
  .network-filter-field label { font-size: 14px; line-height: 1.3; min-height: 2.6em; margin: 0 0 6px; overflow-wrap: anywhere; }
  .network-filter-field select { min-width: 0; width: 100%; min-height: 48px; padding-inline: 8px; text-overflow: ellipsis; }
  #networkScreen .universe-grid, #networkScreen .community-tabs,
  #networkScreen #networkAll, #networkScreen #networkHistorical { display: none; }
  #networkScreen .network-tools { margin-bottom: 16px; }
}

/* Pawbook: a warm notebook, with generous optional photographs. */
.publication-card[data-style=carnet] { border-color: #e1d2f0; border-radius: 22px; background: #fffdfb; box-shadow: 0 5px 18px #5b318008; }
.publication-card[data-style=carnet] .publication-photo { max-height: 680px; }

/* SAV: a numbered fictional complaint ticket. */
.publication-card[data-style=dossier] { border-radius: 7px; border-color: #c3acd7; border-top: 6px solid #795097; background: #fff; }
.publication-card[data-style=dossier] .publication-rubric { border: 1px solid #d7c4e5; border-radius: 3px; background: #faf7fd; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.publication-card[data-style=dossier] .publication-avatar { border-radius: 10px; }
.publication-card[data-style=dossier] .publication-field { border-radius: 4px; border-left: 4px solid #b18acb; background: #f8f4fb; }
.publication-card[data-style=dossier] .publication-stamp { border-radius: 3px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.publication-card[data-style=dossier] .publication-actions button { border-radius: 5px; }

/* LinkedPaw: the same document language, adapted to a fictional career. */
.publication-card[data-style=career] { border-radius: 7px; border-color: #bfafd0; border-top: 6px solid #62417f; background: #fff; }
.publication-card[data-style=career] .publication-rubric { border: 1px solid #ccb8dc; border-radius: 3px; background: #f4eef9; }
.publication-card[data-style=career] .publication-avatar { border-radius: 10px; }
.publication-card[data-style=career] .publication-field { border-radius: 3px; border-left: 4px solid #8c6ba6; }
.publication-card[data-style=career] .publication-title { padding-top: 14px; border-top: 1px solid #e2d4ed; font-size: 24px; }
.publication-card[data-style=career] .publication-actions button { border-radius: 5px; }

/* Gazette: an editorial page, separate from an ordinary published social post. */
.publication-card[data-style=gazette] { border: 0; border-top: 3px double #a27ab5; border-bottom: 1px solid #c7aed3; border-radius: 0; background: #fffcf6; padding-top: 20px; box-shadow: none; }
.publication-card[data-style=gazette] .publication-rubric { padding: 0; border: 0; border-radius: 0; color: #704584; background: transparent; font-size: 12px; }
.publication-card[data-style=gazette] .publication-title { font: 700 30px/1.17 Georgia, 'Times New Roman', serif; letter-spacing: -.6px; }
.publication-card[data-style=gazette] .publication-photo { border-radius: 0; border-top: 1px solid #c7acd4; border-bottom: 1px solid #c7acd4; }
.publication-card[data-style=gazette] .publication-actions button { border-radius: 3px; }
.publication-card[data-style=gazette] .publication-editorial-note { border-radius: 0; }
.publication-card[data-style=historical] { border-color: #ded4e7; background: #fff; }

@media (max-width: 360px) {
  .publication-card { padding: 13px; }
  .publication-card .publication-title { font-size: 21px; }
  .publication-card .publication-author { gap: 9px; }
  .publication-card .publication-avatar, .publication-card .community-author .publication-avatar { width: 48px; height: 48px; flex-basis: 48px; }
  .publication-card .publication-actions { gap: 5px; }
  .publication-card .publication-actions button { padding: 10px 4px; font-size: 12px; }
  .publication-card .publication-masthead strong { font-size: 25px; }
  .publication-card[data-style=gazette] .publication-title { font-size: 27px; }
}

/* Keep the complete filter label readable on the narrowest phones. */
@media (max-width: 360px) {
  .network-compact-filters { grid-template-columns: minmax(0,1fr); }
}

/* Prototype only: counts and comments belong to the local browser. */
.local-interactions { border-top:1px solid #e5daef; margin-top:14px; padding-top:12px; min-width:0; }
.interaction-notice { display:block; color:#645270; line-height:1.45; font-size:12px; }
.interaction-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; margin-top:8px; }
.interaction-row label { grid-column:1/-1; margin:0; font-size:13px; }
.interaction-row select { min-width:0; min-height:44px; padding:8px; }
.local-interactions button { min-width:44px; min-height:44px; overflow-wrap:anywhere; white-space:normal; }
.local-interactions button[aria-pressed=true] { background:#53308d; color:#fff; outline:2px solid #b794dc; outline-offset:1px; }
.interaction-details > summary { cursor:pointer; padding:12px 0; min-height:44px; font-weight:650; overflow-wrap:anywhere; }
.interaction-reactions { display:flex; gap:7px; flex-wrap:wrap; }
.interaction-reactions button { padding:8px 10px; }
.interaction-comment { border-left:3px solid #dfceee; padding:10px; margin-top:12px; background:#faf7ff; border-radius:8px; overflow-wrap:anywhere; }
.interaction-comment time { display:block; font-size:12px; color:#645270; margin-top:4px; }
.interaction-comment p, .interaction-rewoof-preview blockquote { white-space:pre-wrap; overflow-wrap:anywhere; }
.interaction-form textarea { width:100%; min-height:88px; }
.interaction-form .buttons { margin:8px 0 14px; }
.interaction-rewoof-preview { margin-top:12px; padding:12px; border:1px dashed #b997d6; border-radius:12px; }
.interaction-rewoof-preview blockquote { margin:12px 0; }
.interaction-feedback { font-size:13px; overflow-wrap:anywhere; }
.local-interactions :is(button,select,textarea,summary):focus-visible { outline:3px solid #7c3aed; outline-offset:2px; }

/* A consistent paw silhouette replaces platform-dependent emoji rendering. */
.local-interactions .interaction-paw { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px; border:2px solid #9a3412; background:#fff5eb; color:#7c2d12; }
.interaction-paw svg { width:26px; height:26px; flex:0 0 26px; fill:currentColor; }
.interaction-paw .paw-count { font-variant-numeric:tabular-nums; }
.local-interactions .interaction-paw[aria-pressed=true] { background:#9a3412; color:#fff7ed; border-color:#9a3412; outline:none; }
.local-interactions .interaction-paw:focus-visible { outline:3px solid #53308d; outline-offset:3px; }

/* Primary social actions are visible even while the comments are folded. */
.interaction-row { grid-template-columns:minmax(0,1fr); }
.interaction-primary { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.interaction-primary > button { flex:1 1 90px; min-width:90px; min-height:64px; padding:8px; font-size:13px; }
.interaction-primary .interaction-paw { flex-wrap:wrap; gap:5px; }
.interaction-rewoof { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.interaction-rewoof svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.interaction-rewoof small { font-size:11px; font-weight:500; }

/* Exactly three primary actions, then the existing share and actions menu. */
.interaction-primary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr); gap:6px; }
.interaction-primary > button { min-width:0; min-height:88px; padding:4px; font-size:12px; line-height:1.3; hyphens:auto; }
.interaction-primary .interaction-paw { display:flex; flex-direction:column; flex-wrap:nowrap; gap:3px; }
.local-interactions > .publication-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; margin-top:8px; }
.local-interactions > .publication-actions > * { min-width:0; }
.local-interactions > .publication-actions .post-share,
.local-interactions > .publication-actions summary { width:100%; min-height:44px; }
.interaction-comment strong { overflow-wrap:anywhere; }
.interaction-primary .interaction-paw { padding:2px; }
.interaction-primary .paw-label { white-space:nowrap; }

/* Discussion is an inline panel; hiding it never clears the draft. */
.interaction-discussion { margin-top:12px; padding-top:10px; border-top:1px solid #e6d9f2; scroll-margin-top:var(--mobile-navigation-space,90px); }
.interaction-discussion[hidden] { display:none; }
.interaction-discussion textarea { scroll-margin-top:var(--mobile-navigation-space,90px); scroll-margin-bottom:24px; }
.interaction-discussion .interaction-comments { margin-top:14px; }

.publication-card[data-context=history] > .publication-actions { grid-template-columns:minmax(0,1fr); }
.publication-card[data-context=history] .publication-more { width:100%; }
.local-interactions > .publication-actions { grid-template-columns:minmax(0,1fr); }

.interaction-primary.own-publication { grid-template-columns:minmax(0,1fr); }
.local-interactions .interaction-row[hidden] { display:none; }
.comment-replies { margin-inline-start:12px; padding-inline-start:8px; border-inline-start:2px solid #d7c3ec; }
.comment-replies .interaction-comment { padding:8px; }
.comment-animal-photo { display:block; width:36px; height:36px; object-fit:cover; border-radius:50%; margin-bottom:6px; }
.comment-animal-photo[hidden] { display:none; }
.comment-author-badge, .comment-household { display:block; margin:4px 0; color:#63516f; font-size:12px; }
.reply-form-context:empty { display:none; }
.interaction-deleted-parent { padding:8px; margin-top:12px; color:#63516f; font-size:13px; overflow-wrap:anywhere; }
