/* ============================================================================
   Mushimu · Design System v2
   Content first. Chrome second. Brand in the details.

   This file is the last stylesheet loaded on every page (via the shared
   account fragment), so it is the final say in the cascade. It defines:

     0. Design tokens (palette, type, radii, motion, shadows)
     1. Global defaults (body, focus, selection, scrollbars)
     2. Controls (buttons, inputs, switches)
     3. Chrome (topbar, search, account, translation)
     4. Rails (navigation, discovery, footer)
     5. Feed (header, tabs, posts, votes, empty states)
     6. Communities (cards, avatars, detail header)
     7. Explore / search (hero, sections, rows)
     8. Auth + standalone pages
     9. Mobile (bottom nav, scale, touch targets)
    10. Mushimu iconography & brand details (~ mark, ~M empty states, shimmer)

   Rules of the system:
     - One accent (Mushimu coral). State colors only for meaning.
     - No glows, no glassmorphism, no gradients except brand moments.
     - Borders over shadows; shadows only on floating menus.
     - Radii: buttons 8 · inputs 10 · media 10 · cards 12 · popovers 12 · pills 999
     - Everything responds in 120–140ms.
   ========================================================================== */

/* ---------------------------------------------------------------------------
   0. TOKENS
   --------------------------------------------------------------------------- */
:root{
  /* Palette — charcoal surfaces, warm coral brand accent */
  --bg:#090D12;
  --surface:#10161E;
  --surface-2:#161E28;
  --surface-hover:#1C2733;
  --post-hover:#141C25;
  --border:#293544;
  --border-subtle:rgba(226,232,240,.075);
  --text:#F2F0EB;
  --text-soft:#D0D5DC;
  --muted:#A6B0BE;
  --muted-2:#8996A7;
  --accent:#D97862;
  --accent-hover:#E68A73;
  --accent-soft:rgba(217,120,98,.14);
  --accent-ink:#090D12;
  --accent-blue:#8299A8;
  --accent-secondary:#8299A8;
  --accent-link:#E59A86;
  --brand-gradient:linear-gradient(135deg,#D97862,#B86D78);
  /* State colors — used only for meaning */
  --state:#4FBF9F;
  --state-soft:rgba(79,191,159,.12);
  --danger:#E5484D;
  --danger-soft:rgba(229,72,77,.12);
  --warning:#E0A458;
  --warning-soft:rgba(224,164,88,.12);

  /* Legacy token names used by older stylesheets */
  --accent-2:var(--accent-secondary);
  --accent-peach:var(--warning);
  --accent-pink:var(--muted);
  --success:var(--state);
  --hairline:rgba(255,255,255,.08);
  --surface-pressed:#263341;
  --text-primary:var(--text);
  --text-secondary:var(--muted);
  --text-tertiary:var(--muted-2);

  /* Radii */
  --radius-btn:8px;
  --radius-input:10px;
  --radius-media:10px;
  --radius-card:12px;
  --radius-popover:12px;
  --radius-pill:999px;
  --radius:var(--radius-card);
  --control-radius:var(--radius-btn);
  --control-radius-sm:var(--radius-btn);

  /* Typography */
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"SFMono-Regular","JetBrains Mono",Menlo,Consolas,monospace;

  /* Motion */
  --t-fast:120ms ease;
  --t:140ms ease;
  --t-slow:200ms ease;

  /* Shadows — floating menus only */
  --shadow-pop:0 1px 2px rgba(0,0,0,.25),0 14px 34px rgba(0,0,0,.30);
  --shadow-soft:0 1px 2px rgba(0,0,0,.25);

  /* Controls */
  --control-h:36px;
  --control-h-sm:32px;
  --shell-header-height:60px;
  --mobile-feed-gap:8px;

  /* Community identity — deterministic hue, set per community by community-avatar.js */
  --m-h:232;
}

/* ---------------------------------------------------------------------------
   1. GLOBAL
   --------------------------------------------------------------------------- */
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:rgba(244,122,96,.30);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{cursor:pointer}
button:active:not(:disabled){transform:translateY(1px)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px;border:2px solid var(--bg)}
::-webkit-scrollbar-track{background:transparent}
*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}

.eyebrow{
  font-family:var(--font-mono);
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.14em;
  color:var(--muted-2);
  text-transform:uppercase;
}
.section-heading .eyebrow,
.explore-hero .eyebrow{color:var(--muted-2)}

/* ---------------------------------------------------------------------------
   2. CONTROLS
   --------------------------------------------------------------------------- */
/* Primary — Mushimu coral. The only filled button. */
.primary{
  min-height:var(--control-h);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:8px 14px;
  border:1px solid transparent;
  border-radius:var(--radius-btn);
  background:var(--accent);
  color:var(--accent-ink);
  font-weight:650;
  letter-spacing:-.01em;
  box-shadow:none;
  text-decoration:none;
  transition:background var(--t),border-color var(--t),color var(--t),transform var(--t-fast);
}
.primary:hover{background:var(--accent-hover)}
.primary:disabled{opacity:.5;cursor:not-allowed}

/* Secondary — bordered, quiet. */
.account-button,.membership-button,.text-button,.ghost{
  min-height:var(--control-h);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 12px;
  border:1px solid var(--border);
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--text-soft);
  font-weight:600;
  box-shadow:none;
  text-decoration:none;
  transition:background var(--t),border-color var(--t),color var(--t);
}
.account-button:hover,.membership-button:hover,.text-button:hover,.ghost:hover{
  background:var(--surface-hover);
  border-color:#303D4D;
  color:var(--text);
}
.text-button{min-height:auto;padding:4px 0;border:0;background:transparent;color:var(--muted)}
.text-button:hover{background:transparent;color:var(--text);text-decoration:underline}
.membership-button.joined{color:var(--state);border-color:rgba(79,191,159,.30)}
.membership-button.joined:hover{color:var(--danger);border-color:rgba(229,72,77,.35);background:var(--danger-soft)}

/* Ghost — no border. Used inside rows and cards. */
.panel-action,.back,.feed-secondary-link,.rail-see-all{
  background:transparent;
  border:0;
  color:var(--muted);
  box-shadow:none;
}
.panel-action:hover,.back:hover,.feed-secondary-link:hover,.rail-see-all:hover{
  background:transparent;
  color:var(--text);
}
.feed-secondary-link.active{background:var(--accent-soft);color:var(--accent-hover)}
.feed-secondary-link.active:hover{background:var(--accent-soft);color:var(--accent-hover)}

/* Inputs — one step lighter than the page, never harsh. */
input:not([type=hidden]):not([type=radio]):not([type=checkbox]),
select,
textarea{
  background:var(--surface) !important;
  color:var(--text) !important;
  border:1px solid var(--border) !important;
  border-radius:var(--radius-input) !important;
  font-family:inherit;
  box-shadow:none !important;
  transition:border-color var(--t),background var(--t),box-shadow var(--t);
}
input:not([type=hidden]):not([type=radio]):not([type=checkbox]):hover,
select:hover,
textarea:hover{border-color:#303D4D !important}
input:not([type=hidden]):not([type=radio]):not([type=checkbox]):focus,
select:focus,
textarea:focus{
  outline:0 !important;
  border-color:var(--accent) !important;
  box-shadow:0 0 0 3px var(--accent-soft) !important;
}
input::placeholder,textarea::placeholder{color:var(--muted-2) !important;opacity:1}

/* Error & feedback */
.field-error,.vote-error{color:var(--danger) !important}
.form-error{
  border:1px solid rgba(229,72,77,.28) !important;
  background:var(--danger-soft) !important;
  color:#F2A0A4 !important;
  border-radius:var(--radius-btn);
}
.inline-form-feedback{
  border-color:rgba(224,164,88,.28) !important;
  background:var(--warning-soft) !important;
  color:var(--warning) !important;
}

/* ---------------------------------------------------------------------------
   3. CHROME — topbar, search, account, translation
   --------------------------------------------------------------------------- */
.topbar{
  height:60px;
  background:rgba(12,17,23,.92);
  backdrop-filter:blur(16px) saturate(1.1);
  border-bottom:1px solid var(--border-subtle);
  color:var(--text);
}
.home-topbar{background:rgba(12,17,23,.92)}

/* Brand — the ~m mark carries the accent, nothing else does. */
.brand{color:var(--text)}
.brand-mark{
  color:var(--accent);
  text-shadow:none;
  font-family:var(--font-mono);
  letter-spacing:-.06em;
}
.brand-name{color:var(--text);letter-spacing:-.02em}
.brand:hover{transform:none;filter:none}
.brand:hover .brand-mark{color:var(--accent-hover)}

/* Header search */
.home .header-search input{
  height:40px;
  padding:10px 14px 10px 42px;
  border-radius:var(--radius-input) !important;
  background:var(--surface) !important;
  border:1px solid var(--border) !important;
  font-size:13.5px;
}
.home .header-search input:hover{border-color:#303D4D !important}
.home .header-search:focus-within input{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 3px var(--accent-soft) !important;
}
.search-leading-icon{stroke:var(--muted)}
.search-leading-icon .search-spark{stroke:var(--accent)}
.header-search:focus-within .search-leading-icon{stroke:var(--text)}
.header-search:focus-within .search-leading-icon .search-spark{stroke:var(--accent-hover)}

/* Search suggestions popover */
.search-suggestions{
  border:1px solid var(--border);
  border-radius:var(--radius-popover);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.suggestion-heading{color:var(--muted-2)}
.suggestion-row:hover,.suggestion-row.active{background:var(--surface-hover)}
.suggestion-mark{background:var(--accent-soft);color:var(--accent);border:1px solid rgba(244,122,96,.22)}
.suggestion-community .suggestion-mark{background:var(--state-soft);color:var(--state);border-color:rgba(79,191,159,.24)}
.suggestion-post .suggestion-mark{background:var(--accent-soft);color:var(--accent);border-color:rgba(244,122,96,.24)}
.suggestion-all{color:var(--muted)}
.suggestion-all:hover{color:var(--text)}

/* Account menu */
.compact-account{color:var(--text)}
.notification-button{
  width:36px;height:36px;
  border:1px solid var(--hairline);
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--muted);
  box-shadow:none;
}
.notification-button:hover{background:var(--surface-hover);border-color:#303D4D;color:var(--text)}
.notification-button svg{stroke:currentColor !important;fill:none;filter:none}
.notification-dot{
  background:var(--accent);
  color:var(--accent-ink);
  border:2px solid var(--bg);
  font-size:10px;
}
.account-chip{
  border:1px solid var(--hairline) !important;
  background:transparent !important;
  box-shadow:none;
}
.account-chip:hover{background:var(--surface-hover) !important;border-color:#303D4D !important}
.account-avatar{
  background:var(--brand-gradient);
  color:var(--accent-ink);
  border:1px solid rgba(255,255,255,.18);
  border-radius:9px;
  overflow:hidden;
}
.account-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.account-avatar.avatar-variant-official img{width:82%;height:82%;object-fit:contain}
.mobile-profile-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.mobile-profile-avatar.avatar-variant-official img{width:82%;height:82%;object-fit:contain}
.topbar .account-avatar:is(.avatar-variant-classic),.mobile-profile-avatar:is(.avatar-variant-classic){background:var(--surface-2);border-color:var(--border)}
.topbar .account-avatar.avatar-variant-aura,.mobile-profile-avatar.avatar-variant-aura{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 24%,var(--surface-2)),var(--surface) 72%);border-color:color-mix(in srgb,var(--accent) 52%,var(--border));box-shadow:inset 0 0 12px color-mix(in srgb,var(--accent) 18%,transparent)}
.topbar .account-avatar.avatar-variant-constellation,.mobile-profile-avatar.avatar-variant-constellation{background:radial-gradient(circle at 22% 24%,#F2F0EB 0 1px,transparent 2px),radial-gradient(circle at 76% 30%,#B9C8D3 0 1px,transparent 2px),radial-gradient(circle at 68% 78%,#F2F0EB 0 1px,transparent 2px),linear-gradient(145deg,#17212C,#0B1016);border-color:color-mix(in srgb,var(--accent-blue) 58%,var(--border));box-shadow:none}
.account-name{font-family:var(--font-mono);font-size:12px;letter-spacing:-.02em;color:var(--text-soft)}
.account-popover-menu{
  border:1px solid var(--border);
  border-radius:var(--radius-popover);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.account-popover-menu a,.account-popover-menu form button{
  color:var(--text-soft);
  border-radius:var(--radius-btn);
}
.account-popover-menu a:hover,.account-popover-menu form button:hover{
  background:rgba(255,255,255,.05);
  color:var(--text);
}
.account-popover-menu svg{stroke:var(--muted) !important;filter:none !important}
.account-popover-menu a:hover svg,.account-popover-menu form button:hover svg{stroke:var(--text) !important;filter:none !important}
.account-popover-menu .menu-warning svg{stroke:var(--danger) !important}
.account-popover-menu form button:hover svg{stroke:var(--danger) !important}
.compact-auth a{color:var(--muted);font-size:13px;font-weight:600}
.compact-auth a:hover{color:var(--text)}
.compact-auth .register-link{
  color:var(--accent-ink);
  background:var(--accent);
  border-radius:var(--radius-btn);
  padding:7px 12px;
}
.compact-auth .register-link:hover{background:var(--accent-hover);color:var(--accent-ink)}

/* Translation — quiet trigger, the popover carries the copy. */
.translation-menu-trigger{
  width:36px;height:36px;
  border:1px solid var(--hairline);
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--muted);
  box-shadow:none;
  transform:none;
}
.translation-menu-trigger:hover,.global-translation[open] .translation-menu-trigger{
  background:var(--surface-hover);
  border-color:#303D4D;
  color:var(--text);
  transform:none;
}
.translation-symbol svg path:first-child{stroke:var(--accent)}
.translation-active-dot{
  background:var(--state);
  border:2px solid var(--bg);
  box-shadow:none;
}
.translation-menu-panel{
  border:1px solid var(--border);
  border-radius:var(--radius-popover);
  background:var(--surface);
  box-shadow:var(--shadow-pop);
}
.translation-menu-mark{
  background:var(--accent-soft);
  color:var(--accent);
  border-color:rgba(244,122,96,.24);
  border-radius:var(--radius-btn);
}
.translation-locale{
  font-family:var(--font-mono);
  background:var(--surface-2);
  border-color:var(--border);
  color:var(--muted);
}
.translation-setting:hover{background:rgba(255,255,255,.04)}
.translation-switch{background:var(--surface-2);border-color:var(--border)}
.translation-setting input:checked + .translation-switch{
  background:var(--accent);
  border-color:var(--accent);
}
.translation-setting input:checked + .translation-switch:after{background:#fff}
.translation-settings-link{color:var(--muted)}
.translation-settings-link:hover{background:rgba(255,255,255,.04);color:var(--text)}

/* Per-post translation toggle (card level) */
.translation-toggle{
  width:32px;height:32px;
  border:0;
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--muted);
}
.translation-toggle:hover{background:var(--surface-hover);color:var(--text)}
.post-detail-copy .copy-line{display:flex;align-items:flex-start;gap:10px}
.post-detail-copy .copy-line>h1,.post-detail-copy .copy-line>.copy-body{min-width:0;flex:1}
.translation-request{
  width:36px;height:36px;min-width:36px;min-height:36px;padding:0;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  border:0;border-radius:10px;background:rgba(18,25,35,.94);color:#aeb7c5;cursor:pointer;
  backdrop-filter:blur(10px);
}
.translation-request:hover,.translation-request:focus-visible{background:#22303B;color:var(--text);outline:2px solid var(--accent-2);outline-offset:2px}
.translation-request svg{width:16px;height:16px;flex:0 0 16px}
/* Inside a post card the toggle sits in the top-right corner, out of the text flow. */
.post-card{position:relative}
.post-card .translation-toggle{
  position:absolute;
  top:8px;
  right:8px;
  z-index:3;
  border:0;
}
.home .post-card .translation-request{position:absolute;top:9px;right:9px;z-index:4}
.translation-toggle svg{filter:none}
.translation-state-badge{
  background:var(--state);
  color:#062B21;
  border:2px solid var(--surface);
  box-shadow:none;
}
.translation-note{color:var(--muted-2);font-size:11px}

/* ---------------------------------------------------------------------------
   4. RAILS — left navigation, right discovery, footer
   --------------------------------------------------------------------------- */
.home-nav a{
  min-height:42px;
  gap:12px;
  padding:9px 12px;
  border-radius:var(--radius-btn);
  color:var(--muted);
  font-weight:600;
  font-size:13.5px;
  background:transparent;
  box-shadow:none;
  transition:background var(--t),color var(--t);
}
.home-nav a:hover{background:rgba(255,255,255,.05);color:var(--text)}
.home-nav a.active{
  background:var(--accent-soft);
  color:#FFD8CF;
  box-shadow:inset 2px 0 0 var(--accent);
}
.nav-icon{
  color:var(--muted);
  transition:color var(--t);
  fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.home-nav a:hover .nav-icon{color:var(--text)}
.home-nav a.active .nav-icon{color:var(--accent-hover)}
.nav-count{
  background:var(--accent-soft);
  color:#FFB19E;
  border:1px solid rgba(244,122,96,.25);
}

/* Create — primary CTA in the rail. Solid accent, no gradient, no glow. */
.rail-create,.rail-create-button{
  min-height:42px;
  border:0;
  border-radius:var(--radius-pill);
  background:var(--accent);
  color:var(--accent-ink);
  font-weight:700;
  box-shadow:none;
  letter-spacing:-.01em;
}
.rail-create:hover,.rail-create-button:hover{
  background:var(--accent-hover);
  filter:none;
  transform:none;
}
.rail-create svg,.rail-create-button svg{stroke:currentColor;filter:none}
.rail-create .create-mark,.rail-create-button .create-mark{color:var(--accent-ink)}

/* Your communities */
.rail-heading{color:var(--muted-2);font-family:var(--font-mono);font-size:11px}
.rail-heading svg{stroke:var(--muted-2)}
.rail-community{
  display:flex;align-items:center;gap:9px;
  padding:6px 10px;
  border-radius:var(--radius-btn);
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:-.01em;
  background:transparent;
  transition:background var(--t),color var(--t);
}
.rail-community:hover{background:rgba(255,255,255,.05);color:var(--text)}
.rail-community.active{background:var(--accent-soft);color:#FFD8CF}
.rail-see-all{color:var(--muted-2);font-size:11px}
.rail-see-all:hover{color:var(--text)}

/* Community avatar system — deterministic hue per community (see community-avatar.js).
   Fallback hue on :root keeps no-JS renders coherent. */
.community-glyph,
.community-avatar,
.community-result-mark,
.community-identity-mark,
.simple-community > span,
.community-card-distinct .community-mark,
.explore-community-mark,
.interest-mark,
.admin-community-mark,
.community-mini-mark{
  background:hsl(var(--m-h) 42% 18%);
  border:1px solid hsl(var(--m-h) 45% 30%);
  color:hsl(var(--m-h) 85% 76%);
  font-family:var(--font-mono);
  font-weight:700;
  letter-spacing:-.03em;
}

/* Right rail — small blocks, no mega cards. */
.home-panel{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  box-shadow:none;
}
.home-panel-title{border-bottom:1px solid var(--border-subtle)}
.home-panel-title strong{font-size:12.5px;font-weight:650;color:var(--text)}
.home-panel-title a{color:var(--muted-2);font-size:11px}
.home-panel-title a:hover{color:var(--text)}
.discover-community{
  border-radius:var(--radius-btn);
  transition:background var(--t);
}
.discover-community:hover{background:rgba(255,255,255,.045)}
.discover-community strong{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:-.01em;
  color:var(--text);
}
.discover-community small{color:var(--muted-2);font-size:11px;font-variant-numeric:tabular-nums}
.discover-community .community-avatar{
  width:34px;height:34px;
  border-radius:9px;
  display:grid;place-items:center;
  font-size:12px;
}
.home-quick-links a{
  border-radius:var(--radius-btn);
  color:var(--text-soft);
  transition:background var(--t);
}
.home-quick-links a:hover{background:rgba(255,255,255,.045)}
.home-quick-links a strong{font-size:12.5px;font-weight:650;color:var(--text)}
.home-quick-links a small{color:var(--muted-2);font-size:11px}
.home-quick-links a b{color:var(--muted-2)}
.panel-action{font-size:12px}

/* Footer — present, but never competes. */
.home-footer{color:var(--muted-2);font-size:11px}
.home-footer a{display:inline-flex;align-items:center;min-height:28px;padding-inline:3px;color:var(--muted-2)}
.home-footer a:hover{color:var(--text)}
.home-footer small{color:var(--muted-2)}

/* ---------------------------------------------------------------------------
   5. FEED — header, tabs, posts, votes, empty states
   --------------------------------------------------------------------------- */
/* Header: Home + tabs + rule. Nothing else explains the page. */
.feed-header{
  position:sticky;
  top:var(--shell-header-height);
  z-index:6;
  margin:0;
  padding:0 18px;
  background:rgba(12,15,20,.92);
  backdrop-filter:blur(14px) saturate(1.1);
  border:0;
  border-bottom:1px solid var(--border-subtle);
  border-radius:0;
}
.feed-title-row h1{font-size:18px;font-weight:650;letter-spacing:-.02em;margin:0}
/* "Live feed" is chrome noise. */
.live-indicator{display:none}
/* Per-mode explanations: Home already explains itself. */
.feed-context{display:none}

/* Tabs — text first, with a restrained accent line marking the active choice. */
.home-tabs a,.tabs a,.community-tabs a,.search-filters a{
  position:relative;
  background:transparent;
  border:0;
  border-radius:var(--radius-btn);
  color:var(--muted);
  font-weight:600;
  font-size:13px;
  min-height:38px;
  padding:9px 13px;
  box-shadow:none;
  transition:background var(--t),color var(--t);
}
.home-tabs a:hover,.tabs a:hover,.community-tabs a:hover,.search-filters a:hover{
  background:rgba(255,255,255,.045);
  color:var(--text);
}
/* Tabs underline: neutral rules keep the row legible; the active rule uses the
   same solid accent across feeds, communities and filters. */
.home-tabs a::after,.tabs a::after,.community-tabs a::after,.search-filters a::after{
  content:"";
  position:absolute;
  left:13px;right:13px;bottom:4px;height:2px;
  background:var(--border,#303a4b);
  opacity:1;
  transform:translateY(0);
  transition:background var(--t),opacity var(--t),transform var(--t);
  pointer-events:none;
}
.home-tabs a.active,.tabs a.active,.community-tabs a.active,.search-filters a.active{
  background:transparent;
  color:#FFD8CF;
  box-shadow:none;
  border-color:transparent;
}
.home-tabs a.active::after,.tabs a.active::after,.community-tabs a.active::after,.search-filters a.active::after{
  bottom:5px;
  height:3px;
  border-radius:999px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='7' viewBox='0 0 30 7'%3E%3Cpath d='M1 4c2.3-2.8 4.7-2.8 7 0s4.7 2.8 7 0 4.7-2.8 7 0 4.7 2.8 7 0' fill='none' stroke='%23FF7A5C' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left bottom/auto 5px;
  opacity:1;
}

/* Use the same solid, continuous active marker for every tab family. */
.home-tabs a.active::after,.tabs a.active::after,.community-tabs a.active::after,.search-filters a.active::after{
  bottom:3px;
  height:2px;
  background:var(--accent,#F47A60);
}

/* Mobile home feed: four equal-width tabs so translations and label length
   cannot make the navigation look off-centre. */
@media(max-width:680px){
  .feed-header{padding-inline:0}
  .feed-header-row{width:100%}
  .home-tabs{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    overflow:visible;
  }
  .home-tabs a{
    width:100%;
    min-width:0;
    min-height:50px;
    padding:10px 4px;
    justify-content:center;
    text-align:center;
    white-space:nowrap;
    font-size:14px;
    border-radius:0;
  }
  .home-tabs a::after{
    left:50%;
    right:auto;
    width:48px;
    bottom:3px;
    transform:translateX(-50%);
  }
  .home-tabs a.active::after{
    bottom:4px;
    transform:translateX(-50%);
  }
}
@media(max-width:390px){
  .home-tabs a{font-size:13px;padding-inline:2px}
  .home-tabs a::after{width:42px}
}

/* Feed surface — a continuous timeline, not a stack of boxes. */
.home-feed{gap:0;border:0;border-radius:0;background:transparent;overflow:visible}
.feed-reason-row{background:transparent;min-height:0;padding:10px 18px 0}
.feed-reason-row .feed-reason{font-size:11.5px;color:var(--muted-2)}
.feed-hide{color:var(--muted-2);font-size:11px;border-radius:var(--radius-btn);background:transparent}
.feed-hide:hover{background:rgba(255,255,255,.05);color:var(--text)}
.feed-hidden-placeholder{
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--muted);
  border-radius:var(--radius-card);
}
.feed-hidden-placeholder::before{background:var(--muted-2)}
.feed-hidden-show{
  border:1px solid var(--border);
  background:transparent;
  color:var(--text-soft);
  border-radius:var(--radius-pill);
}
.feed-hidden-show:hover{background:var(--accent-soft);border-color:rgba(244,122,96,.35);color:#FFD8CF}

/* Post — editorial density. */
.home .mixed-feed .post-card{overflow:visible}
.home .post-card{
  margin:0;
  padding:18px;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--border-subtle);
  border-radius:0 !important;
  box-shadow:none;
  overflow:visible;
  transition:background var(--t);
}
.home .post-card:hover{
  background:var(--post-hover);
  transform:none;
  box-shadow:none;
  border-bottom-color:var(--border-subtle);
}
.home .post-card .meta{font-size:12.5px;color:var(--muted-2);align-items:center}
.home .post-card .meta a{
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:-.01em;
}
.home .post-card .meta a:hover{color:var(--text)}
.home .post-card .meta time{color:var(--muted-2)}
.home .post-card .meta .eyebrow{color:var(--warning)}
.home .post-card .post-link h3,
.home .post-card .post-link h2{
  font-size:17px;
  font-weight:600;
  line-height:1.38;
  letter-spacing:-.015em;
  color:var(--text);
  margin:9px 0 6px;
}
.home .post-card .post-link p{
  font-size:15px;
  line-height:1.55;
  color:var(--text-soft);
}
.home .post-card .post-media,
.home .post-card [data-content-preview]{border-radius:var(--radius-media) !important}
.post-source{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--accent-blue);
  border:1px solid var(--border-subtle);
  background:rgba(255,255,255,.03);
  border-radius:var(--radius-btn);
  padding:4px 9px;
  font-family:var(--font-mono);
  font-size:11.5px;
}
.post-source:hover{background:var(--surface-hover);color:#FFB19E}
.post-source svg{
  width:13px;
  height:13px;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.poll-preview{
  background:var(--accent-soft) !important;
  border:1px solid rgba(244,122,96,.28) !important;
  border-radius:var(--radius-btn);
  color:var(--text);
}
.poll-preview:hover{background:rgba(244,122,96,.20) !important}

/* Vote — the signature capsule. Light, geometric, one accent. */
.vote-controls{
  display:inline-flex !important;
  align-items:center;
  gap:2px;
  margin:0;
  padding:3px;
  border:1px solid var(--hairline);
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,.025);
  box-shadow:none;
  position:static;
  isolation:auto;
  overflow:visible;
}
.vote-controls::before{display:none}
.vote-controls button{
  width:30px;height:30px;
  min-width:30px;min-height:30px;
  padding:0;
  border:0 !important;
  border-radius:var(--radius-pill);
  background:transparent !important;
  color:var(--muted-2);
  display:grid;place-items:center;
  box-shadow:none !important;
  transition:color var(--t-fast),background var(--t-fast),transform var(--t-fast);
}
.vote-controls button::after{display:none}
.vote-controls button svg{
  width:18px;height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform var(--t-fast);
  filter:none;
}
.vote-controls button:hover:not(:disabled){color:var(--text);background:rgba(255,255,255,.05)}
.vote-controls button:active:not(:disabled){transform:scale(.9)}
.vote-controls button.selected{color:var(--accent);background:var(--accent-soft)}
.vote-controls button.selected svg{transform:scale(1.05)}
.vote-controls button:first-of-type.selected{color:var(--accent);background:var(--accent-soft)}
.vote-controls button:last-of-type.selected{color:var(--danger);background:var(--danger-soft)}
.vote-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.vote-controls button:disabled{opacity:.4;cursor:not-allowed}
.vote-controls output{
  min-width:32px;height:26px;
  display:grid;place-items:center;
  padding:0 8px;
  border-left:1px solid var(--border-subtle);
  border-right:1px solid var(--border-subtle);
  color:var(--text);
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
  text-shadow:none;
}
.vote-controls:has(button:first-of-type.selected) output{color:#FFB19E}
.vote-controls:has(button:last-of-type.selected) output{color:#F2B8BA}

/* Shared Mushimu branding for empty states. */
.empty,.home-empty,.community-empty{
  border:1px dashed var(--border);
  border-radius:var(--radius-card);
  background:transparent;
  padding:44px 22px;
  text-align:center;
  margin-top:14px;
}
.empty::before,.home-empty::before,.community-empty::before{
  content:"";
  display:block;
  width:72px;height:48px;
  margin:0 auto 12px;
  background:url("/branding/mushimu-mark-0aea38cabdf6dc58c8471d80f2e6f987.svg") center/contain no-repeat;
}
.empty strong,.home-empty strong,.community-empty strong{font-size:15px;font-weight:600;color:var(--text)}
.empty p,.home-empty p,.community-empty p{margin:7px 0 0;font-size:13px;color:var(--muted)}
.empty a,.home-empty a,.community-empty a{color:var(--accent-hover)}

/* Shell navigation loading — quiet shimmer, no spinners. */
#shell-main{transition:opacity var(--t)}
#shell-main[aria-busy="true"]{opacity:.55;pointer-events:none}
@keyframes mushimu-shimmer{
  0%{background-position:-160px 0}
  100%{background-position:160px 0}
}
.mushimu-shimmer{
  background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);
  background-size:160px 100%;
  background-repeat:no-repeat;
  animation:mushimu-shimmer 1.4s ease-in-out infinite;
}

/* ---------------------------------------------------------------------------
   6. COMMUNITIES — discovery list, detail header
   --------------------------------------------------------------------------- */
.communities-page{max-width:820px}
.communities-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:26px 0 6px}
.communities-heading h1{font-size:28px;font-weight:650;letter-spacing:-.03em;margin:6px 0 4px}
.communities-heading p{margin:0;font-size:13.5px;color:var(--muted)}
.communities-heading-actions{display:flex;gap:8px;align-items:center}
.community-home-link{color:var(--muted);font-size:13px}
.community-home-link:hover{color:var(--text)}

.community-tabs{margin:14px 0 4px}
.community-mode-copy{padding:6px 2px 12px;font-size:12.5px;color:var(--muted-2)}
.community-mode-copy strong{font-weight:600;color:var(--muted)}
.community-mode-copy span{color:var(--muted-2)}

.community-discovery-list{display:grid;gap:8px}
.community-result{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  background:var(--surface);
  transition:background var(--t),border-color var(--t);
}
.community-result:hover{background:var(--surface-2);border-color:var(--border)}
/* The whole card is the link. */
.community-result .community-result-mark{cursor:pointer}
.community-result .community-result-mark::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:var(--radius-card);
}
/* Arrow appears on hover — replaces the old "Enter →" button. */
.community-result-arrow{
  position:absolute;
  right:18px;top:50%;
  z-index:1;
  color:var(--muted);
  font-size:15px;
  opacity:0;
  transform:translate(6px,-50%);
  transition:opacity var(--t),transform var(--t),color var(--t);
  pointer-events:none;
}
.community-result:hover .community-result-arrow{opacity:1;transform:translate(0,-50%);color:var(--text)}
.community-result-mark{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:10px;
  font-size:14px;
  z-index:1;
}
.community-result-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.community-result-title h2{
  font-family:var(--font-mono);
  font-size:14.5px;
  font-weight:700;
  letter-spacing:-.015em;
  color:var(--text);
  margin:0;
}
.community-result-title a{color:inherit}
.joined-pill{
  background:var(--state-soft);
  color:var(--state);
  border:1px solid rgba(79,191,159,.28);
  border-radius:var(--radius-pill);
  font-size:10.5px;
  font-weight:700;
  padding:2px 9px;
  letter-spacing:.02em;
}
.community-result-body p{
  margin:6px 26px 8px 0;
  font-size:13px;
  line-height:1.5;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.community-signal-row{
  display:flex;
  align-items:center;
  gap:4px 14px;
  flex-wrap:wrap;
  font-size:12px;
  color:var(--muted-2);
  font-variant-numeric:tabular-nums;
}
.community-signal-row b{
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:-.02em;
}
/* "Enter →" is redundant when the card is the link. */
.community-enter{display:none}

/* Mixed-feed community cards (home timeline) */
.community-discovery-card,
.community-card-distinct{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  box-shadow:none;
}
.community-card-distinct .community-mark{
  width:38px;height:38px;
  display:grid;place-items:center;
  border-radius:10px;
  font-size:15px;
}
.community-card-distinct h3,
.community-card-distinct h2{
  font-family:var(--font-mono);
  font-size:15px;
  font-weight:700;
  letter-spacing:-.015em;
  margin:3px 0 0;
}
.community-open{color:var(--muted);font-size:12.5px}
.community-open:hover{color:var(--text)}
.content-kind{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.10em;
  color:var(--muted-2);
  text-transform:uppercase;
}

/* Community detail header */
.community-identity{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  box-shadow:none;
}
.community-identity-mark{
  width:56px;height:56px;
  display:grid;place-items:center;
  border-radius:12px;
  font-size:20px;
  padding-bottom:5px;
}
.community-identity h1{
  font-family:var(--font-mono);
  font-size:22px;
  font-weight:700;
  letter-spacing:-.02em;
}
.community-identity p{color:var(--muted);font-size:13.5px}
.community-back{color:var(--muted);font-size:13px}
.community-back:hover{color:var(--text)}
.community-feed-tabs{gap:2px}
.community-post-feed{padding:14px 0}

/* ---------------------------------------------------------------------------
   7. EXPLORE / SEARCH
   --------------------------------------------------------------------------- */
.explore-v2{background:var(--bg);min-height:100vh}
.explore-shell{max-width:960px;margin:0 auto;padding:44px 22px 90px}
.explore-hero{max-width:640px;margin:0 0 40px;text-align:left}
.explore-hero:after{display:none}
.explore-hero h1{font-size:30px;line-height:1.12;letter-spacing:-.035em;margin:8px 0 8px;font-weight:650}
.explore-hero > p{margin:0;font-size:14px;color:var(--muted);max-width:480px}
.explore-search{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  max-width:560px;
  margin:22px 0 0;
  padding:6px;
  border:1px solid var(--border);
  border-radius:var(--radius-popover);
  background:var(--surface);
  box-shadow:none;
  transition:border-color var(--t),box-shadow var(--t);
}
.explore-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.explore-search input{
  min-height:40px;
  font-size:14px;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 12px;
}
.explore-search input::placeholder{color:var(--muted-2) !important}
.explore-search .primary{min-height:40px}

.section-heading{
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  margin:34px 0 4px;
  padding:0 0 12px;
  border-bottom:1px solid var(--border-subtle);
}
.section-heading h2{font-size:17px;font-weight:650;letter-spacing:-.02em;margin:4px 0 0}
.section-heading > a{color:var(--muted);font-size:12.5px;font-weight:600}
.section-heading > a:hover{color:var(--text)}

.simple-explore{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;margin-top:8px}
.simple-post{
  display:grid;
  grid-template-columns:16px minmax(0,1fr) auto;
  gap:12px;
  padding:15px 2px;
  border-bottom:1px solid var(--border-subtle);
  align-items:start;
  color:inherit;
}
.simple-post:first-child{border-top:1px solid var(--border-subtle)}
.simple-post strong{font-size:14.5px;font-weight:600;color:var(--text);line-height:1.4}
.simple-post:hover strong{color:var(--text)}
.simple-post p{font-size:12.5px;line-height:1.5;color:var(--muted);margin:4px 0}
.simple-post small,.simple-post > span:last-child{color:var(--muted-2);font-size:11px}
.post-dot{color:var(--accent);font-size:7px;margin-top:8px}
.simple-communities{padding-top:2px}
.simple-community{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:11px;
  padding:12px 0;
  border-bottom:1px solid var(--border-subtle);
  align-items:center;
  color:inherit;
}
.simple-community > span{
  width:34px;height:34px;
  display:grid;place-items:center;
  border-radius:9px;
  font-size:13px;
}
.simple-community strong{font-family:var(--font-mono);font-size:13px;letter-spacing:-.01em;color:var(--text)}
.simple-community p{font-size:11px;color:var(--muted-2);margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.connected-results{margin-top:8px}
.connected-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:32px;margin-top:8px}
.compact-result{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:11px;
  padding:13px 2px;
  border-bottom:1px solid var(--border-subtle);
  align-items:center;
  color:inherit;
}
.compact-result strong{font-size:13.5px;font-weight:600;color:var(--text)}
.compact-result p{font-size:11.5px;color:var(--muted);margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.person-row{
  display:flex;align-items:center;gap:11px;
  padding:11px 2px;
  border-bottom:1px solid var(--border-subtle);
  color:inherit;
}
.person-avatar{
  width:32px;height:32px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--surface-2);
  border:1px solid var(--border);
  color:var(--text-soft);
  font-weight:700;
  font-size:12px;
}
.person-row strong{font-size:13px;color:var(--text);font-family:var(--font-mono);letter-spacing:-.01em}
.person-row small{font-size:11px;color:var(--muted-2)}
.person-row > span:last-child{color:var(--muted-2);margin-left:auto}
.all-results{margin-top:30px;padding-top:20px;border-top:1px solid var(--border-subtle)}
.search-pagination{color:var(--muted-2)}
.search-pagination a{color:var(--muted)}
.search-pagination a:hover{color:var(--text)}

/* ---------------------------------------------------------------------------
   8. AUTH + STANDALONE PAGES
   --------------------------------------------------------------------------- */
body > .topbar,
.auth-page,
.composer-page,
.account-settings{color:var(--text)}
.auth-page{
  background:var(--bg);
  min-height:100vh;
}
.auth-page > h1{font-size:32px;font-weight:650;letter-spacing:-.03em}
.auth-page > .eyebrow{color:var(--muted-2)}
.auth-page > p,.auth-page > .feed-hint{color:var(--muted);font-size:13px}
.auth-page > .composer,.auth-page > .card{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  box-shadow:none;
}
.auth-page .primary{
  background:var(--accent) !important;
  color:var(--accent-ink) !important;
  border-color:transparent !important;
  box-shadow:none !important;
}
.auth-page .primary:hover{background:var(--accent-hover) !important}
.auth-page .composer-actions a,.auth-page > .feed-hint a{color:var(--accent-hover)}
.auth-page .text-button{color:var(--muted)}
.auth-page .text-button:hover{color:var(--text)}
.auth-page .auth-notice,.auth-page p[role="status"]{
  border:1px solid rgba(79,191,159,.28) !important;
  background:var(--state-soft) !important;
  color:var(--state) !important;
  border-radius:var(--radius-btn);
}
.auth-page .form-error{
  border-color:rgba(229,72,77,.28) !important;
  background:var(--danger-soft) !important;
  color:#F2A0A4 !important;
}
.google-auth-button{box-shadow:none}
.google-auth-button:hover{box-shadow:none}
.oauth-entry{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.back{color:var(--muted);font-size:13px}
.back:hover{color:var(--text)}

/* Standalone settings/admin surfaces */
.card,.panel{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  box-shadow:none;
}
.account-settings > .card{background:var(--surface);border-color:var(--border-subtle)}
.admin-action{background:var(--surface);border-color:var(--border-subtle)}
.admin-action:hover{background:var(--surface-2);border-color:var(--border)}

/* Post detail + comments inherit the same density */
.post-hero-card,.thread-post{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  box-shadow:none;
}
.comment{border-left-color:var(--border) !important}
.comment .comment-meta a{font-family:var(--font-mono);font-size:12px}
.comment-composer{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
}
.report-box summary,.report-box form{background:var(--surface-2)}
.saved-post-list:empty::after,.post-save-list:empty::after{color:var(--muted-2)}

/* ---------------------------------------------------------------------------
   9. MOBILE — a larger, calmer scale
   --------------------------------------------------------------------------- */
@media (max-width:680px){
  body{font-size:16px}
  .home .home-topbar{min-height:60px;padding:8px 12px}
  .home .feed-header{top:var(--shell-header-height)}
  .home .post-card .post-link p{font-size:16px}
  .home .post-card .post-link h3,.home .post-card .post-link h2{font-size:17px}
  .home .post-card .meta{font-size:13px}
  .home .post-card .actions > a,
  .home .post-card .actions > .account-button{min-height:44px;font-size:13px}
  .vote-controls button{width:38px;height:38px;min-width:38px;min-height:38px}
  .vote-controls button svg{width:20px;height:20px}

}

/* ---------------------------------------------------------------------------
   10. ICONOGRAPHY & BRAND DETAILS
   --------------------------------------------------------------------------- */
/* All stroke icons share the same language: 1.8 weight, round caps. */
.home-nav svg,.mobile-bottom-nav svg,.nav-icon,
.account-popover-menu svg,.translation-symbol svg,.translation-menu-mark svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.home-nav svg,.nav-icon{color:inherit}

/* Brand mark ~M — used in empty states, onboarding, loaders. */
.mushimu-mark{
  display:inline-block;
  vertical-align:middle;
}
.mushimu-mark path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.mushimu-mark .wave{stroke:var(--accent)}
.mushimu-mark .wave-faint{stroke:var(--accent);opacity:.35}
.mushimu-mark .m{stroke:var(--muted-2)}

/* Skeleton — slow, quiet shimmer for loading blocks. */
.skeleton{
  background:var(--surface);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-btn);
  overflow:hidden;
  position:relative;
}
.skeleton::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.045),transparent);
  background-size:160px 100%;
  background-repeat:no-repeat;
  animation:mushimu-shimmer 1.6s ease-in-out infinite;
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* Mobile feed card breathing room: keep the desktop timeline continuous, but separate touch targets visually. */
@media (max-width: 680px) {
  .home-feed { gap: 6px; }
}


/* Post card actions — vote left, icon-only actions right, identical on desktop and mobile. */
.post-action-button{
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  line-height:1;
  cursor:pointer;
  box-shadow:none;
}
.home .post-card .actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:4px;
  width:100%;
  min-width:0;
}
.home .post-card .actions > .vote-controls{flex:0 0 auto}
.home .post-card .actions > .action-link,
.home .post-card .actions > .post-save-control,
.home .post-card .actions > .post-action-button{
  flex:0 0 auto;
  min-width:0;
  margin:0;
}
.home .post-card .actions > .vote-controls + .post-card-icon-action{margin-left:auto}
.home .post-card .post-save-control{display:flex}
.home .post-card .actions > .post-save-control > .post-action-button{width:36px}
.home .post-card .actions > .post-card-icon-action,
.home .post-card .actions > .post-save-control > .post-action-button{
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid transparent;
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--muted);
}
.home .post-card .actions > .post-card-icon-action:hover,
.home .post-card .actions > .post-card-icon-action:focus-visible,
.home .post-card .actions > .post-save-control > .post-action-button:hover,
.home .post-card .actions > .post-save-control > .post-action-button:focus-visible{
  background:rgba(255,255,255,.05);
  color:var(--text);
}
.home .post-card .actions > .post-card-icon-action:active,
.home .post-card .actions > .post-save-control > .post-action-button:active{transform:scale(.94)}
.home .post-card .actions > .post-card-icon-action > span:not(.post-action-count),
.home .post-card .actions > .post-save-control > .post-action-button > span{display:none}
.home .post-card .actions > .post-card-icon-action:has(.post-action-count){
  width:auto;
  min-width:36px;
  padding:0 8px;
}
.home .post-card .actions > .post-card-icon-action svg,
.home .post-card .actions > .post-save-control > .post-action-button svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
}
.home .post-card .actions > .post-save-control > .post-action-button[aria-pressed="true"]{
  color:var(--accent);
  background:var(--accent-soft);
}
.home .post-card .actions > .post-save-control > .post-action-button[aria-pressed="true"] svg{fill:currentColor}

@media (max-width:680px){
  .home .post-card .actions{gap:3px;overflow:visible}
  .home .post-card .actions > .post-save-control > .post-action-button,
  .home .post-card .actions > .post-card-icon-action{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
  }
  .home .post-card .actions > .post-card-icon-action:has(.post-action-count){
    width:auto;
    min-width:40px;
    padding:0 10px;
  }
  .home .post-card .vote-controls{
    gap:0;
    padding:2px;
  }
  .home .post-card .vote-controls button{
    width:32px;
    height:32px;
    min-width:32px;
    min-height:32px;
  }
  .home .post-card .vote-controls button svg{
    width:18px;
    height:18px;
  }
  .home .post-card .vote-controls output{
    min-width:28px;
    height:24px;
    padding:0 5px;
  }
}


/* ---------------------------------------------------------------------------
   11. UI CONSOLIDATION — shared interaction grammar
   --------------------------------------------------------------------------- */
.post-action-row{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:8px;
  margin-top:14px;
  min-width:0;
}
.post-action-row>.vote-controls{flex:0 0 auto}
.post-action-row .post-primary-icons{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  min-width:0;
}
.post-action-row .post-save-control{display:flex;margin:0}
.post-action-row .post-icon-action,
.post-action-row .post-save-action{
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0;
  border:1px solid transparent;
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--muted);
  box-shadow:none;
  line-height:1;
  text-decoration:none;
  transition:background var(--t),color var(--t),border-color var(--t);
}
.post-action-row .post-icon-action:hover,
.post-action-row .post-icon-action:focus-visible,
.post-action-row .post-save-action:hover,
.post-action-row .post-save-action:focus-visible{
  background:rgba(255,255,255,.05);
  border-color:transparent;
  color:var(--text);
}
.post-action-row .post-icon-action svg,
.post-action-row .post-save-action svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.post-action-row .muxi-chat-spark{fill:currentColor;stroke:none}
.post-action-row .post-action-label,
.post-action-row .post-save-action>span{display:none}
.post-action-row .post-action-count{
  display:inline-block;
  min-width:10px;
  margin-left:-1px;
  font-family:var(--font-mono);
  font-size:11px;
  line-height:1;
  color:var(--muted);
  white-space:nowrap;
}
.post-action-row .post-view-stat{flex:0 0 auto;white-space:nowrap}
.post-action-row .post-detail-icon-action:has(.post-action-count){
  width:auto;
  min-width:36px;
  padding:0 9px;
}
.post-action-row .post-save-action[aria-pressed="true"]{
  color:var(--accent-hover);
  background:var(--accent-soft);
}
.post-action-row .post-save-action[aria-pressed="true"] svg{fill:currentColor}

.post-overflow{position:relative;flex:0 0 auto}
.post-overflow>summary{list-style:none}
.post-overflow>summary::-webkit-details-marker{display:none}
.post-overflow[open]>summary{background:rgba(255,255,255,.06);color:var(--text)}
.post-overflow-menu{
  position:absolute;
  right:0;
  bottom:calc(100% + 8px);
  z-index:45;
  width:min(310px,calc(100vw - 28px));
  padding:7px;
  border:1px solid var(--border);
  border-radius:var(--radius-popover);
  background:var(--surface-2);
  box-shadow:var(--shadow-pop);
}
.post-overflow-menu>a,
.post-overflow-menu>button,
.post-overflow-menu>form>button,
.post-overflow-menu>.post-overflow-submenu>summary{
  width:100%;
  min-height:38px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border:0;
  border-radius:var(--radius-btn);
  background:transparent;
  color:var(--text-soft);
  font:inherit;
  font-size:12px;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
}
.post-overflow-menu>a:hover,
.post-overflow-menu>button:hover,
.post-overflow-menu>form>button:hover,
.post-overflow-menu>.post-overflow-submenu>summary:hover{
  background:var(--surface-hover);
  color:var(--text);
}
.post-overflow-menu>form{margin:0}
.post-overflow-menu>button svg,
.post-overflow-menu>form>button svg{
  width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round
}
.post-overflow-submenu{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.post-overflow-submenu>summary{list-style:none}
.post-overflow-submenu>summary::-webkit-details-marker{display:none}
.post-overflow-submenu[open]{
  margin:4px 0;
  padding:7px;
  border:1px solid var(--border-subtle);
  border-radius:10px;
  background:var(--surface);
}
.post-overflow-submenu[open]>summary{color:var(--text)}
.post-overflow-submenu p{
  margin:5px 4px 8px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.post-overflow-submenu form{display:grid;gap:7px;margin:6px 0 0}
.post-overflow-submenu textarea{min-height:76px;resize:vertical}
.post-overflow-submenu select{min-height:38px}
.post-overflow-submenu .danger-button,
.post-overflow-submenu .account-button{justify-self:start}

/* Post detail: content first, chrome second. */
.post-v2 .conversation-stack{
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.post-v2 .post-hero-card{
  padding:24px 26px 22px;
  border-bottom:1px solid var(--border-subtle);
}
.post-v2 .post-compact-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  margin:0 0 8px;
  color:var(--muted-2);
  font-size:12px;
}
.post-v2 .post-compact-meta a{font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.post-v2 .post-compact-meta a:first-child{color:var(--accent-blue)}
.post-v2 .post-compact-meta a:hover{color:var(--text)}
.post-v2 .post-context-rail{gap:10px}
.post-v2 .related-panel{
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-card);
  background:var(--surface);
  box-shadow:none;
}
.post-v2 .related-heading{border-bottom-color:var(--border-subtle);color:var(--text-soft)}
.post-v2 .related-heading>span{color:var(--accent)}
.post-v2 .related-post-row{border-bottom-color:var(--border-subtle)}
.post-v2 .related-post-row:hover{background:var(--surface-hover)}
.post-community-context h2{margin:5px 0 7px;font-size:18px}
.post-community-context p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.post-community-context>a{display:inline-flex;margin-top:10px;color:var(--accent-blue);font-size:12px;font-weight:650}

/* Communities: reduce decorative chrome and surface only decision-making signals. */
.communities-v2 .community-result:hover{background:rgba(244,122,96,.035)}
.communities-v2 .community-result-mark,
.community-detail-v2 .community-identity-mark{
  border-color:hsl(var(--m-h) 45% 30%);
  background:hsl(var(--m-h) 42% 18%);
  color:hsl(var(--m-h) 85% 76%);
}
.communities-v2 .joined-pill{
  border-color:rgba(79,191,159,.28);
  background:var(--state-soft);
  color:var(--state);
}
.community-detail-v2 .community-identity{
  border:1px solid var(--border);
  background:var(--surface);
  box-shadow:none;
}
.community-detail-v2 .community-identity-main .eyebrow{display:none}
.community-detail-v2 .community-footer{border-top-color:var(--border-subtle)}
.community-detail-v2 .community-post-feed{gap:0}
.community-detail-v2 .community-post-feed .post-card{
  border-color:transparent;
  border-bottom-color:var(--border-subtle);
  border-radius:0;
  background:transparent;
}
.community-detail-v2 .community-post-feed .post-card:hover{
  border-color:transparent;
  border-bottom-color:var(--border-subtle);
  background:var(--post-hover);
  transform:none;
}

/* Composer: writing is primary; configuration is progressive disclosure. */
.composer-standalone .composer-page{max-width:820px;margin-top:28px;margin-bottom:96px}
.composer-standalone .composer-page>.hero{padding-bottom:16px;margin-bottom:16px}
.composer-standalone .composer-page>.hero h1{font-size:32px}
.composer-standalone .composer-page .composer{
  padding:24px;
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  background:var(--surface);
  box-shadow:none;
}
.composer-standalone .composer-page .composer textarea[name="body"]{
  min-height:clamp(300px,45vh,520px);
  font-size:15px;
  line-height:1.6;
}
.media-help,.content-settings,.poll-composer{
  margin-top:4px;
  border:1px solid var(--border);
  border-radius:var(--radius-input);
  background:transparent;
}
.media-help>summary,.content-settings>summary,.poll-composer>summary{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  list-style:none;
  color:var(--text-soft);
  font-size:12px;
  font-weight:650;
  cursor:pointer;
}
.media-help>summary::-webkit-details-marker,
.content-settings>summary::-webkit-details-marker,
.poll-composer>summary::-webkit-details-marker{display:none}
.media-help>summary::after,.content-settings>summary::after,.poll-composer>summary::after{
  content:"＋";
  margin-left:auto;
  color:var(--muted-2);
  font-size:15px;
  font-weight:500;
}
.media-help[open]>summary::after,.content-settings[open]>summary::after,.poll-composer[open]>summary::after{content:"−"}
.content-settings>summary small{margin-left:auto;color:var(--muted-2);font-size:11px;font-weight:500}
.content-settings>summary::after{margin-left:0}
.media-help p{margin:0;padding:0 12px 5px;color:var(--muted);font-size:12px;line-height:1.5}
.media-help>small{display:block;padding:0 12px 12px;color:var(--muted-2);font-size:11px}
.media-help a{color:var(--accent-blue)}
.content-settings .content-rating-fieldset{padding:12px;margin:0;border-top:1px solid var(--border-subtle)}
.content-settings .post-type-option>span{
  border-color:var(--border);
  background:var(--bg);
}
.content-settings .post-type-option input:checked+span{
  border-color:var(--accent);
  background:var(--accent-soft);
  box-shadow:none;
}
.composer-standalone .detected-link{
  border-color:rgba(244,122,96,.22);
  background:var(--accent-soft);
  color:var(--text);
}
.composer-standalone .detected-link strong,
.composer-standalone .detected-link-icon{color:#FFA087}
.composer-standalone .detected-link-icon{background:rgba(244,122,96,.12)}

/* Explore: discovery is primary; the persistent shell owns global search. */
.explore-v2 .explore-shell{padding-top:38px}
.explore-v2 .explore-hero{
  max-width:none;
  margin:0 0 44px;
  padding:0;
  text-align:left;
}
.explore-v2 .explore-hero h1{margin-left:0;margin-right:0}
.explore-v2 .explore-hero>p{margin-left:0;margin-right:0}
.explore-v2 .explore-hero:after{display:none}
.explore-v2 .simple-post:hover,
.explore-v2 .compact-result:hover,
.explore-v2 .person-row:hover,
.explore-v2 .simple-community:hover{
  background:rgba(244,122,96,.04);
  transform:none;
}
.explore-v2 .post-dot,
.explore-v2 .compact-result .result-type{color:var(--accent-blue)}
.explore-v2 .simple-community>span{
  background:var(--accent-soft);
  color:#FFA087;
}

/* Onboarding: one accent and fewer competing signals. */
.onboarding-page{background:var(--bg)}
.onboarding-page .interest-card{box-shadow:none}
.onboarding-page .interest-card:hover{
  border-color:#303D4D;
  background:var(--surface-2);
  transform:none;
  box-shadow:none;
}
.onboarding-page .interest-mark{
  background:var(--accent-soft);
  border-color:rgba(244,122,96,.26);
  color:#FFA087;
}
.onboarding-page .interest-state{
  color:var(--accent-blue);
  border-color:rgba(244,122,96,.28);
}
.onboarding-page .interest-card:has(input:checked){
  border-color:var(--accent);
  background:var(--accent-soft);
  box-shadow:none;
}
.onboarding-page .interest-card:has(input:checked) .interest-state{
  background:var(--accent);
  border-color:var(--accent);
  color:var(--accent-ink);
}

@media(max-width:680px){
  :root{--shell-header-height:60px}
  .home .home-topbar{height:var(--shell-header-height);min-height:var(--shell-header-height)}
  .home .feed-header{top:var(--shell-header-height)}
  .home-feed .mixed-item + .mixed-item{margin-top:var(--mobile-feed-gap)}
  .post-action-row .post-icon-action,
  .post-action-row .post-save-action{
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
  }
  .post-action-row .post-detail-icon-action:has(.post-action-count){width:auto;min-width:44px;padding-inline:11px}
  .post-v2 .post-hero-card{padding:18px 16px 18px}
  .post-overflow-menu{position:fixed;left:14px;right:14px;bottom:calc(76px + env(safe-area-inset-bottom));width:auto}
  .composer-standalone .composer-page{padding-inline:14px;margin-top:20px}
  .composer-standalone .composer-page .composer{padding:16px}
  .content-settings>summary{align-items:flex-start;flex-direction:column;gap:2px}
  .content-settings>summary small{margin-left:0}
  .content-settings>summary::after{position:absolute;right:12px}
  .content-settings{position:relative}
  .explore-v2 .explore-hero{margin-bottom:32px}
}

/* Canonical mobile shell colors; legacy sheets only own geometry. */
@media(max-width:680px){
  .home .mobile-bottom-nav{
    border-color:var(--border);
    background:rgba(17,21,28,.94);
  }
  .home .mobile-bottom-nav>a{color:var(--muted);min-height:48px;justify-content:center}
  .home .mobile-bottom-nav>a:hover,
  .home .mobile-bottom-nav>a.active{
    background:var(--accent-soft);
    color:#FFD8CF;
  }
}

/* Recoverable error surface. */
.error-page{min-height:100vh;background:var(--bg)}
.error-topbar{padding-inline:max(18px,calc((100vw - 760px)/2 + 18px))}
.error-recovery{min-height:calc(100vh - var(--shell-header-height));display:grid;place-items:center;padding:40px 18px 80px}
.error-recovery>section{width:min(100%,560px);padding:28px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}
.error-recovery h1{margin:8px 0 8px;font-size:32px;line-height:1.12;letter-spacing:-.7px}
.error-recovery p{margin:0;color:var(--text-soft);line-height:1.6}
.error-recovery .error-recovery-hint{margin-top:9px;color:var(--muted);font-size:12px}
.error-recovery-actions{display:flex;align-items:center;gap:9px;margin-top:20px;flex-wrap:wrap}
@media(max-width:680px){.error-recovery{padding:24px 14px 64px}.error-recovery>section{padding:20px}.error-recovery h1{font-size:28px}.error-recovery-actions>*{flex:1 1 150px}}


/* Canonical Mushimu brand lockup */
.brand{
  display:inline-flex;
  align-items:center;
  gap:2px;
  color:var(--text);
  font-size:18px;
  font-weight:800;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.brand .brand-mark{
  display:block;
  width:46px;
  height:31px;
  flex:0 0 auto;
  object-fit:contain;
}
.brand .brand-name{
  color:var(--text);
  font-size:22px;
  font-weight:800;
  letter-spacing:-.045em;
}
.brand:hover{transform:none;filter:none}
.brand:hover .brand-mark{filter:brightness(1.06)}
@media(max-width:480px){
  .brand .brand-mark{width:44px;height:30px}
}

.avatar-variant-official{background:#101821;border-color:#F47A60}
.official-account-badge{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid #F47A6066;border-radius:8px;color:#ffb29f;font-size:11px;font-weight:700;background:#F47A6010}


/* Public user identity: visible name first, unique @handle second. */
.user-identity{display:inline-flex;align-items:center;gap:5px;min-width:0;color:inherit}
.user-identity .identity-copy{display:inline-flex;align-items:baseline;gap:5px;min-width:0}
.user-identity .identity-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-family:var(--font-sans);font-weight:700;letter-spacing:-.01em}
.user-identity .identity-handle{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-2);font-family:var(--font-mono);font-weight:500;letter-spacing:-.02em}
.notification-actor .identity-copy{gap:4px}
@media(max-width:680px){
  .user-identity .identity-name{max-width:150px}
  .user-identity .identity-handle{max-width:125px}
}

/* Post-card author identity must consume the whole metadata row on mobile.
   The avatar and badges keep their natural size; name + @handle share all
   remaining space, with the visible name given slightly higher priority. */
.post-card .meta .author-identity{
  flex:1 1 auto;
  max-width:100%;
}
.post-card .meta .author-identity .identity-copy{
  flex:1 1 auto;
  min-width:0;
}
.post-card .meta .author-identity .identity-name,
.post-card .meta .author-identity .identity-handle{
  max-width:none;
  min-width:0;
}
.post-card .meta .author-identity > .user-avatar,
.post-card .meta .author-identity > .muxi-reputation,
.post-card .meta .author-identity > .official-account-badge{
  flex:0 0 auto;
}
@media(max-width:680px){
  /* Home feed metadata is a single row. Match the higher-specificity home
     selector so the older feed rule cannot re-enable wrapping. Ellipsis is
     caused only by actual lack of room: no arbitrary width caps. */
  .home .post-card .meta{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:4px;
    width:100%;
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
  }
  .home .post-card .meta > .post-community{
    flex:0 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home .post-card .meta > .meta-separator{
    display:inline;
    flex:0 0 auto;
  }
  .home .post-card .meta .author-identity{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    max-width:none;
    display:flex;
    align-items:center;
    gap:4px;
    overflow:hidden;
  }
  .home .post-card .meta .author-identity .user-avatar{
    width:24px;
    height:24px;
    flex:0 0 24px;
  }
  .home .post-card .meta .author-identity .identity-copy{
    flex:1 1 auto;
    min-width:0;
    width:auto;
    display:flex;
    align-items:baseline;
    gap:4px;
    overflow:hidden;
  }
  /* The visible name gets first claim on the text space. The @handle only
     consumes whatever is left, so it ellipsizes before the display name. */
  .home .post-card .meta .author-identity .identity-name{
    display:block;
    flex:0 1 auto;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home .post-card .meta .author-identity .identity-handle{
    display:block;
    flex:1 1 0;
    min-width:0;
    max-width:none;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home .post-card .meta .author-identity > .muxi-reputation,
  .home .post-card .meta .author-identity > .official-account-badge{
    flex:0 0 auto;
  }
  .home .post-card .meta .author-identity > .muxi-reputation{
    min-height:20px;
    padding:1px 5px;
    gap:4px;
    font-size:11px;
  }
  .home .post-card .meta .author-identity > .official-account-badge{
    padding:3px 6px;
    white-space:nowrap;
    font-size:10px;
  }
  .home .post-card .meta > .post-created-at,
  .home .post-card .meta .edited-marker{
    flex:0 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home .post-card .meta .edited-marker > .meta-separator{display:inline}
  .home .post-card .meta > .eyebrow{
    flex:0 0 auto;
    white-space:nowrap;
  }
}

/* Make the discussion action recognizable while preserving a compact action row. */
@media(max-width:680px){
  .home .post-card .actions>.post-primary-icons>.post-card-icon-action:has(.post-action-label){width:auto;min-width:40px;padding:0 9px;gap:5px;border-color:rgba(120,151,166,.24);background:rgba(120,151,166,.08);color:var(--text-soft)}
  .home .post-card .actions>.post-primary-icons>.post-card-icon-action .post-action-label{display:inline;font-size:11px;font-weight:700;white-space:nowrap}
  .home .post-card .actions>.post-primary-icons>.post-card-icon-action:has(.post-action-label) svg{width:16px;height:16px;flex-basis:16px}
}

@media(max-width:680px){
  .home .post-card>.meta{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:5px;overflow:visible;white-space:normal}
  .home .post-card>.meta>.post-community{grid-column:1;grid-row:1;max-width:100%;font-size:11px}
  .home .post-card>.meta>.meta-separator{display:none}
  .home .post-card>.meta>.author-identity{grid-column:1;grid-row:2;width:max-content;max-width:100%;overflow:visible}
  .home .post-card>.meta>.author-identity .identity-copy{flex:0 1 auto;width:auto}
  .home .post-card>.meta>.author-identity .identity-name{max-width:180px}
  .home .post-card>.meta>.author-identity .identity-handle{flex:0 1 auto;max-width:150px}
  .home .post-card>.meta>.author-identity>.muxi-reputation{min-height:18px;padding:0 4px;gap:3px;font-size:10px;opacity:.78}
  .home .post-card>.meta>.eyebrow{grid-column:1;grid-row:3}
}

/* One continuous surface for a post and its threaded replies. */
.post-v2 .conversation-stack{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.post-v2 .post-hero-card{padding:22px 26px 20px;border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:transparent;box-shadow:none}
.post-v2 .comment-composer,.post-v2 .comment-login{padding:16px 26px;border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:transparent}
.post-v2 .discussion-bar{padding:16px 26px 10px;border:0;background:transparent}
.post-v2 .comments{border:0;background:transparent}
.post-v2 .comment-roots{padding:0 26px 20px}
.post-v2 .comment-thread-node{position:relative;min-width:0}
.post-v2 .comment-thread-node>.comment{position:relative;margin:0;padding:12px 0 8px;border:0;border-radius:0;background:transparent;box-shadow:none}
.post-v2 .comment-thread-node>.comment:hover{background:transparent}
.post-v2 .comment-thread-node>.comment:before{display:none}
.post-v2 .comment-thread-node .comment-meta{gap:6px;margin:0 0 5px}
.post-v2 .comment-thread-node .comment-meta .user-avatar{width:24px;height:24px;min-width:24px}
.post-v2 .comment-thread-node .comment-meta .user-identity{display:inline-flex;align-items:center;gap:6px}
.post-v2 .comment-thread-node .comment-meta a{font-family:inherit;font-size:12px}
.post-v2 .comment-thread-node .comment-parent-link{color:var(--muted-2);font-size:11px}
.post-v2 .comment-thread-node .comment-copy{margin:0 0 7px;color:var(--text-soft);font-size:14px;line-height:1.5}
.post-v2 .comment-children{--comment-thread-color:#F47A60;position:relative;margin-left:11px;padding-left:13px;border:0}
.post-v2 .comment-children>.comment-thread-node:before{position:absolute;top:0;left:-13px;width:12px;height:24px;border-left:1px solid var(--comment-thread-color);border-bottom:1px solid var(--comment-thread-color);border-bottom-left-radius:10px;content:"";pointer-events:none}
.post-v2 .comment-actions{display:flex;align-items:center;gap:4px;min-height:36px}
.post-v2 .comment-collapse{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;margin:0 0 0 auto;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted-2);cursor:pointer}
.post-v2 .comment-collapse[hidden]{display:none}
.post-v2 .comment-collapse:hover{background:var(--surface-hover);color:var(--text)}
.post-v2 .comment-collapse span[aria-hidden]{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;font-size:16px;line-height:1}
.post-v2 .comment-collapse .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.post-v2 .comment-collapse:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}
.post-v2 .comment-thread-node.is-collapsed>.comment-children{display:none}
.post-v2 .comment-children[hidden]{display:none}
.post-v2 .comment-children>.comment-thread-node:not(:last-child):after{position:absolute;left:-13px;top:0;bottom:0;width:1px;background:var(--comment-thread-color);content:"";pointer-events:none}
.post-v2 .comment-thread-node[data-depth="6"] .comment-children{margin-left:0;padding-left:0;border-left:0}
.post-v2 .comment-thread-node[data-depth="6"] .comment-children>.comment-thread-node:before,
.post-v2 .comment-thread-node[data-depth="6"] .comment-children>.comment-thread-node:after{display:none}
.post-v2 .comment-thread-node{scroll-margin-top:calc(var(--shell-header-height,60px) + 16px)}
.post-v2 #comment-composer{scroll-margin-top:calc(var(--shell-header-height,60px) + 16px)}
.post-v2 .comment-thread-node .comment-copy{overflow-wrap:anywhere;min-width:0}
.post-v2 .comment-meta>strong{min-width:0;max-width:100%}
.post-v2 .comment-meta .comment-author{max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere}
.post-v2 .comment-action-menu>summary{min-width:44px;min-height:44px}
@media(max-width:820px){
  .post-v2 .post-hero-card{padding:16px 16px 18px}
  .post-v2 .comment-composer,.post-v2 .comment-login{padding:14px 16px}
  .post-v2 .discussion-bar{padding:14px 16px 8px}
  .post-v2 .comment-roots{padding:0 16px 18px}
  .post-v2 .comment-children{margin-left:7px;padding-left:9px}
  .post-v2 .comment-children>.comment-thread-node:before{left:-9px;width:8px}
  .post-v2 .comment-children>.comment-thread-node:not(:last-child):after{left:-9px}
  .post-v2 .comment-thread-node[data-depth="3"] .comment-children{margin-left:0;padding-left:0;border-left:0}
  .post-v2 .comment-thread-node[data-depth="3"] .comment-children>.comment-thread-node:before,
  .post-v2 .comment-thread-node[data-depth="3"] .comment-children>.comment-thread-node:after{display:none}
}

/* Match the specificity of the legacy conversation stylesheet. */
.home .home-feed{gap:0;padding-inline:0}
.home .mixed-feed .post-card{border:0;border-bottom:1px solid var(--border-subtle);border-radius:0!important;background:transparent;box-shadow:none;overflow:visible}
.home .mixed-feed .post-card:hover{border:0;border-bottom:1px solid var(--border-subtle);background:var(--post-hover);box-shadow:none;transform:none}
.composer-standalone .composer-page .composer textarea[name="body"]{min-height:clamp(220px,32vh,420px)}
@media(max-width:680px){
  .home .mixed-feed .post-card{padding:16px}
  .home .post-card .actions>.post-primary-icons>.post-card-icon-action:has(.post-action-label){min-height:44px;min-width:44px}
}

.post-v2 .comment-action-menu>summary{background:transparent;border:0}
.post-v2 .comment-action-menu>summary:hover{background:var(--surface-hover)}
@media(max-width:880px){
  .home .topbar .header-create{display:none}
}

.post-v2 .comment-actions{flex-wrap:wrap}
.post-v2 .comment-more-menu>summary{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted-2);list-style:none;cursor:pointer}
.post-v2 .comment-more-menu>summary::-webkit-details-marker{display:none}
.post-v2 .comment-more-menu>summary svg{width:20px;height:20px;fill:currentColor}
.post-v2 .comment-more-menu>summary:hover{background:var(--surface-hover);color:var(--text)}
.post-v2 .comment-more-menu>summary:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}
.post-v2 .comment-more-menu[open]{display:contents}
.post-v2 .comment-more-actions{display:flex;flex:1 0 100%;order:2;flex-wrap:wrap;gap:4px;min-width:0;padding:8px 0;border-top:1px solid var(--border-subtle)}
.post-v2 .comment-more-actions>.comment-action-menu>summary{display:flex!important;align-items:center;justify-content:center;gap:6px;width:auto;padding:0 8px!important}
.post-v2 .comment-more-actions>.comment-action-menu>summary span{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}
.post-v2 .comment-more-menu:not([open])>.comment-more-actions{display:none}
.post-v2 .comment-action-menu::details-content,
.post-v2 .comment-more-menu::details-content{display:contents}
.post-v2 .comment-more-actions>.comment-action-menu>form{box-sizing:border-box;max-width:100%;min-width:0}
.post-v2 .comment-action-menu:not([open])>form{display:none}
