/* The Traces Beta hub in the DG-Edge forum's look (user, 2026-10-09: "copy
   all the features, and the style of the dg-edge forum ... not too many
   bright colours"). Loaded after the page's own styles, so it decides.
   Tokens and parts are the DG-Edge hub's (src/hub/src/Nuxt/assets/scss:
   hub.scss, _traces.scss): calm navy cards on hairlines, colour only in the
   small channel tiles, the outlined badges and the green score. */

:root {
  --tr-bg: #09162d; --tr-bg-deep: #0b1120; --tr-band: #10213e;
  --tr-card: #0d1c38; --tr-card-2: #112344; --tr-card-3: #172d55;
  --tr-line: rgba(255, 255, 255, 0.10); --tr-line-strong: rgba(255, 255, 255, 0.16);
  --tr-ink: #e6edf9; --tr-ink-2: #cbd5e1; --tr-ink-3: #96adcf; --tr-ink-4: #64748b;
  --tr-primary: #409ed7; --tr-primary-light: #5dbdf0; --tr-violet: #6052c8;
  --tr-grad: linear-gradient(90deg, #409ed7, #6052c8);
  --tr-radius: 10px; --tr-radius-lg: 14px;
  --hub-box-shadow: 0 4px 14px rgba(0, 0, 0, 0.30);
  --tr-score: #34d17a;
}
body {
  font-size: 13px;
  background:
    radial-gradient(ellipse 80% 45% at 50% 0%, rgba(29, 73, 168, 0.45) 0%, rgba(29, 73, 168, 0) 100%),
    radial-gradient(ellipse at 55% 55%, #0f2450 0%, var(--tr-bg) 62%, var(--tr-bg-deep) 100%);
  background-attachment: fixed;
}

/* ── the hero: compact, the photo under a navy veil ── */
.b-hero { padding: 2.1rem 20px 1.6rem; }
.b-hero h1 { font-size: clamp(26px, 3.6vw, 36px); text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55); margin-bottom: .35rem; }
.b-hero .sub { font-size: 15px; }
.b-hero-sec { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }

/* ── the frame: sidebar 232 · main · rail 296 ── */
.wrap { padding-top: 22px; }
.hub, .hub.with-rail { gap: 24px; }
.hub.with-rail { grid-template-columns: 232px minmax(0, 1fr) 296px; }
.side, .rail { position: sticky; top: 5.5rem; max-height: calc(100vh - 6.5rem); overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.15) transparent; }
.side { gap: 0; padding-right: 2px; }
/* a column that scrolls: its parts keep their height instead of being
   squeezed to fit (the search box came out 19px tall) */
.side > * { flex-shrink: 0; }
@media (max-width: 1240px) { .hub.with-rail { grid-template-columns: 232px minmax(0, 1fr); } }

/* the sidebar's search and Start, then folding sections */
.side-search { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; margin-bottom: 12px;
  border-radius: 999px; border: 1px solid var(--tr-line); background: rgba(4, 10, 22, 0.45); }
.side-search:focus-within { border-color: rgba(93, 189, 240, 0.5); }
.side-search .material-icons { font-size: 17px; color: var(--tr-ink-4); }
.side-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #fff; font: 14px Inter, sans-serif; }
.side-search input::placeholder { color: var(--tr-ink-4); }
.side .side-start { width: 100%; justify-content: center; margin: 0 0 14px; }
.sp-sec { margin-bottom: 14px; }
.sp-sec-h { display: flex; align-items: center; gap: 6px; width: 100%; padding: 2px 10px 6px; border: 0; background: none; cursor: pointer;
  font: 700 10px Inter, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--tr-ink-4); }
.sp-sec-h:hover { color: var(--tr-ink-2); }
.sp-sec-h small { font-size: 10px; background: rgba(255, 255, 255, 0.06); border-radius: 999px; padding: 0 6px; display: none; }
.sp-sec.shut .sp-sec-h small { display: inline; }
.sp-sec-h .chev { margin-left: auto; font-size: 16px; transition: transform .2s; }
.sp-sec.shut .sp-sec-h .chev { transform: rotate(-90deg); }
.sp-sec-list { display: flex; flex-direction: column; gap: 2px; }
.sp-sec.shut .sp-sec-list { display: none; }
.side .sp-item { padding: 7px 10px; border-radius: 10px; color: var(--tr-ink-2); font-weight: 600; font-size: 13px; transition: background .15s, color .15s; }
.side .sp-item:hover { background: rgba(255, 255, 255, 0.05); color: #fff; }
.side .sp-item.on { background: rgba(64, 158, 215, 0.16); color: #fff; box-shadow: none; }
.side .sp-item .tile { width: 26px; height: 26px; border-radius: 8px; flex: none;
  background: linear-gradient(135deg, color-mix(in srgb, var(--tc) 100%, white 15%), var(--tc)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.side .sp-item .tile .material-icons { font-size: 14px; color: #fff; }
.side .sp-item .n { margin-left: auto; background: none; padding: 0; font-size: 11px; font-weight: 600; color: var(--tr-ink-4); font-variant-numeric: tabular-nums; }
/* the main column's own search is for narrow screens; wider ones have the sidebar's */
@media (min-width: 901px) { .hub > div > .search { display: none; } }
/* a tablet's sidebar is one row of chips: the sections flatten into it */
@media (max-width: 900px) {
  .side-search, .sp-sec-h { display: none; }
  .sp-sec, .sp-sec-list { display: contents; }
  .side .side-start { width: auto; margin: 0; flex: 0 0 auto; }
  .side .sp-item { border-radius: 999px; border: 1px solid var(--tr-line); background: var(--tr-card); padding: 5px 10px 5px 6px; white-space: nowrap; }
  .side .sp-item .tile { width: 22px; height: 22px; border-radius: 6px; }
}

/* ── cards: navy on a hairline, the channel colour a glow on the right ── */
.card, .rail-card, .channel-card, .feed-item, .m-head {
  border-radius: var(--tr-radius-lg); border: 1px solid var(--tr-line); background-color: var(--tr-card);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 30%), linear-gradient(135deg, rgba(20, 38, 71, 0.9), rgba(13, 28, 56, 0.94));
  box-shadow: var(--hub-box-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* ── quick links: three tinted cards under the composer ── */
.forum-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0 26px; }
@media (max-width: 991px) { .forum-links { grid-template-columns: minmax(0, 1fr); } }
.forum-link { display: flex; gap: 12px; padding: 14px; border-radius: var(--tr-radius-lg); text-decoration: none; cursor: pointer; text-align: left; font: inherit; color: #fff;
  border: 1px solid color-mix(in srgb, var(--cc) 55%, transparent); background: color-mix(in srgb, var(--cc) 14%, #0f2142);
  transition: border-color .15s, background .15s; }
.forum-link:hover { border-color: var(--cc); background: color-mix(in srgb, var(--cc) 20%, #0f2142); }
.forum-link-tile { width: 34px; height: 34px; border-radius: 9px; flex: none; display: grid; place-items: center;
  background: linear-gradient(135deg, color-mix(in srgb, var(--cc) 100%, white 18%), var(--cc)); }
.forum-link-tile .material-icons { font-size: 18px; color: #fff; }
.forum-link b { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; }
.forum-link b .material-icons { font-size: 12px; color: var(--tr-ink-4); }
.forum-link small { display: block; font-size: 12px; line-height: 1.45; color: var(--tr-ink-3); margin-top: 2px; }

/* ── the list: one column of wide discussion cards ── */
.feed-h h3 { font-size: 20px; font-weight: 800; color: #fff; }
.feed-h .sub { font-size: 12px; font-weight: 600; color: var(--tr-ink-4); }
.f-grid { display: flex !important; flex-direction: column; gap: 10px; }
.tc { display: block; padding: 0; cursor: pointer; overflow: hidden; color: #fff;
  border-radius: var(--tr-radius-lg); border: 1px solid var(--tr-line); background-color: var(--tr-card);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 30%), linear-gradient(135deg, rgba(20, 38, 71, 0.9), rgba(13, 28, 56, 0.94));
  box-shadow: var(--hub-box-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.08), inset -200px 0 130px -140px color-mix(in srgb, var(--cc, var(--tr-primary)) 14%, transparent);
  transition: border-color .15s, box-shadow .15s; transform: none !important; }
.tc:hover { border-color: color-mix(in srgb, var(--cc, var(--tr-primary)) 70%, transparent);
  box-shadow: var(--hub-box-shadow), 8px 0 18px -8px color-mix(in srgb, var(--cc, var(--tr-primary)) 60%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.08), inset -200px 0 130px -140px color-mix(in srgb, var(--cc, var(--tr-primary)) 20%, transparent); }
.tc-main { display: flex; gap: 16px; padding: 14px 16px; }
.tc-body { flex: 1; min-width: 0; }
.tc-top { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin-bottom: 6px; }
.tc-chan { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--tr-ink-2); }
.tc-tile { width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; background: linear-gradient(135deg, color-mix(in srgb, var(--cc) 100%, white 15%), var(--cc)); }
.tc-tile .material-icons { font-size: 12px; color: #fff; }
.tc-title { font-size: 18px; font-weight: 800; line-height: 1.25; letter-spacing: -.01em; color: #fff;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tc-ex { margin-top: 6px; font-size: 13px; line-height: 1.5; color: var(--tr-ink-3);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tc-ex b { color: var(--tr-ink-2); font-weight: 700; }
.tc .pv-tags { margin-top: 8px; }
.tc-thumb { flex: none; width: 120px; height: 80px; border-radius: 10px; object-fit: cover; border: 1px solid rgba(255, 255, 255, 0.08); }
.tc-foot { display: flex; flex-direction: column; gap: 8px; padding: 9px 16px 10px; border-top: 1px solid var(--tr-line); background: #0a1730; color: var(--tr-ink-4); }
.tc-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 12px; color: var(--tr-ink-4); }
.tc-stats span { display: inline-flex; align-items: center; gap: 4px; }
.tc-stats .material-icons { font-size: 14px; }
.tc-reply { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tc-reply .ava, .tc-reply .ava-wrap { width: 28px; height: 28px; font-size: 10px; flex: none; }
.tc-reply-txt { min-width: 0; flex: 1; }
.tc-reply-ex { font-size: 13px; color: var(--tr-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tc:hover .tc-reply-ex { color: #fff; }
.tc-reply-meta { display: flex; align-items: center; gap: 4px; font-size: 12px; white-space: nowrap; min-width: 0; }
.tc-reply-meta b { color: var(--tr-ink-3); font-weight: 700; min-width: 3.5em; overflow: hidden; text-overflow: ellipsis; }
.tc-reply-meta .when { flex-shrink: 10; overflow: hidden; text-overflow: ellipsis; }
.score { display: inline-flex; align-items: center; gap: 2px; margin-left: 5px; font-size: 11px; font-weight: 700; color: var(--tr-score); }
.score .material-icons { font-size: 11px; }
@media (max-width: 575px) {
  .tc-ex { -webkit-line-clamp: 1; }
  .tc-thumb { width: 76px; height: 60px; }
  .tc-title { font-size: 16px; }
}

/* ── badges: outlined on a dark tint ── */
.dg-badge, .pv-hot { display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 999px; font-size: 10px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(var(--bc), 0.9); color: rgb(var(--bc)); background-color: rgba(4, 10, 22, 0.6);
  background-image: linear-gradient(rgba(var(--bc), 0.14), rgba(var(--bc), 0.14)); }
.dg-badge .material-icons { font-size: 12px; }
.dg-badge.hot, .pv-hot { --bc: 33, 196, 93; }
.dg-badge.pin { --bc: 225, 202, 23; }

/* ── pills, the sort and the pages ── */
.pillbtn { border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.14); background: transparent; color: var(--tr-ink-2); font-size: 12px; font-weight: 700; }
.pillbtn:hover { border-color: rgba(93, 189, 240, 0.4); color: #fff; }
.pv-sort, .pv-sort select { border-radius: 999px; }
.pv-sort { border: 1px solid var(--tr-line); background: var(--tr-card); }
.pv-sort select { background: transparent; color: #fff; font-size: 12px; font-weight: 700; border: 0; }
.pv-pager button { min-width: 30px; height: 30px; padding: 0 8px; border-radius: 8px; border: 1px solid var(--tr-line); background: var(--tr-card);
  color: var(--tr-ink-2); font-size: 12px; font-weight: 700; }
.pv-pager button.on { border-color: var(--tr-primary); background: rgba(64, 158, 215, 0.2); color: #fff; }
.pv-pager button:disabled { opacity: .35; }
.pv-pager button:hover:not(:disabled):not(.on) { border-color: var(--tr-line-strong); color: #fff; }
.pv-pager .count { font-size: 12px; color: var(--tr-ink-4); }

/* ── tabs: DG-Edge's muted pills ── */
.feed-tabs { border: 0 !important; background: none !important; padding: 0 !important; gap: 6px !important; box-shadow: none !important; }
.feed-tabs button { border: 1px solid var(--tr-line) !important; background: var(--tr-card) !important; color: var(--tr-ink-2) !important;
  font-weight: 700; font-size: 13px; padding: 0 14px !important; border-radius: 999px !important; box-shadow: none !important;
  /* the hub's own rule fixes the height at 24px: the text is centred in it, not pushed down by padding */
  height: 30px !important; line-height: 1 !important; display: inline-flex !important; align-items: center; }
.feed-tabs button:hover { color: #fff !important; border-color: var(--tr-line-strong) !important; }
.feed-tabs button.on { background: var(--tr-primary) !important; border-color: var(--tr-primary) !important; color: #fff !important; }

/* ── buttons ── */
.btn-primary { background: var(--tr-grad) !important; border-color: var(--tr-primary) !important; color: #fff !important; }
.btn-primary:hover { filter: brightness(.92); box-shadow: 0 0 0 2px rgba(64, 158, 215, 0.3); }

/* ── the rail: muted cards, uppercase heads ── */
.rail-card h4 { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tr-ink-3); }
.rail .mem-row { padding: 10px 6px; border-bottom: 1px solid rgba(255, 255, 255, 0.07); border-radius: 0; }
.rail .mem-row:hover { background: rgba(255, 255, 255, 0.04); }
.rail .mem-row .rank { width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; font-size: 11px; font-weight: 800;
  color: var(--tr-primary-light); background: rgba(64, 158, 215, 0.16); border: 1px solid rgba(64, 158, 215, 0.35); }
.rail .mem-row .score { color: var(--tr-score); margin-left: auto; }

/* ── the profile's numbers: muted cards, not the bright tops ── */
.m-head::before { display: none !important; }
.m-stats .stat { border: 1px solid var(--tr-line) !important; border-top-width: 1px !important; background: var(--tr-card-2) !important; border-radius: 12px; }
.m-stats .stat span { color: var(--tr-ink-3) !important; }

/* ══ step 2: the discussion page (DG-Edge's thread page, Post.vue, Quote.vue) ══ */
.view-head { margin-bottom: 6px; }
.view-head h1 { font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; letter-spacing: -.02em; line-height: 1.2; color: #fff; }
.view-head .t-tag { display: none; }   /* the channel is on the line below */
.thread-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; font-size: 13px; color: var(--tr-ink-4); margin-bottom: 12px; }
.thread-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 14px; }
.thread-tools .btn-sm { padding: 5px 14px; font-size: 13px; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; }
.thread-tools .btn-sm .material-icons, .thread-tools .pillbtn .material-icons { font-size: 15px; }
.thread-tools .pillbtn { padding: 4px 12px; }
.tt-jump { --jc: var(--tr-primary); color: #fff; border-color: color-mix(in srgb, var(--jc) 60%, transparent); background: color-mix(in srgb, var(--jc) 22%, #0f2142); }
.tt-jump:hover { border-color: var(--jc); background: color-mix(in srgb, var(--jc) 34%, #0f2142); }
.pv-tfollow.on { color: var(--tr-primary-light); border-color: rgba(93, 189, 240, 0.5); }
.pv-thread-meta { margin: -4px 0 14px; }

/* the timeline: a line down the left, a dot for each post */
.thread-stream { position: relative; padding-left: 34px; gap: 14px !important; }
.thread-stream::before { content: ''; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px;
  background: linear-gradient(180deg, rgba(64, 158, 215, 0.55), rgba(96, 82, 200, 0.25) 70%, transparent); }
.thread-stream .card.post::before { left: -28px; top: 26px; width: 10px; height: 10px; background: var(--tr-primary);
  box-shadow: 0 0 0 3px var(--tr-bg), 0 0 10px var(--tr-primary); }
.thread-stream .card.post::after { display: none; }
@media (max-width: 575px) {
  .thread-stream { padding-left: 0; }
  .thread-stream::before, .thread-stream .card.post::before { display: none; }
}

/* a post: navy card, the name bold and white, the score green, the date small */
.card.post { padding: 14px 18px 16px !important; }
.post .p-author, .reply .p-author { font-size: 14px; font-weight: 800; color: #fff; }
.post .p-date, .reply .p-date { font-size: 11px; color: var(--tr-ink-4); }
.post > .f-head .ava, .post > .f-head .ava-wrap { width: 36px; height: 36px; }
.post .p-body { font-size: 15px; line-height: 1.65; color: var(--tr-ink-2); }
.dg-badge.op { --bc: 64, 158, 215; }
.p-admin { border-radius: 999px; }

/* replies: one level, inside the post, a blue edge on the left */
.reply { padding: 12px 14px 14px !important; border: 1px solid rgba(93, 189, 240, 0.18) !important; border-left: 3px solid var(--tr-primary) !important;
  border-radius: var(--tr-radius-lg) !important; background: #13274b !important; box-shadow: none !important; }
.reply:hover { background: #152b53 !important; }
.reply::before { display: none; }
.reply > .f-head .ava, .reply > .f-head .ava-wrap { width: 30px; height: 30px; }
.reply .p-body { font-size: 14px; line-height: 1.6; color: var(--tr-ink-2); }

/* the quote: what the reply answers */
.p-replyto { border-left: 3px solid var(--cc, var(--tr-primary)) !important; border-radius: 0 8px 8px 0 !important; padding: 8px 12px !important;
  background: color-mix(in srgb, var(--cc, var(--tr-primary)) 13%, #0f2142) !important; }
.p-replyto:hover { background: color-mix(in srgb, var(--cc, var(--tr-primary)) 20%, #0f2142) !important; }
.p-replyto .who { font-size: 12px; color: var(--tr-ink-4); margin-bottom: 3px; gap: 6px; }
.p-replyto .who .ava, .p-replyto .who .ava-wrap { width: 18px; height: 18px; font-size: 8px; }
.p-replyto .who b { font-size: 12px; color: var(--tr-ink-2); }
.p-replyto .who .qflip { transform: scaleX(-1); font-size: 14px; color: var(--tr-ink-4); }
.p-replyto .txt { font-size: 13px; color: var(--tr-ink-3); -webkit-line-clamp: 2; }
.p-replyline { display: none !important; }

/* the actions: pills; Like red once liked, Save violet */
.p-acts .pillbtn, .p-acts .p-del { padding: 4px 12px; font-size: 12px; font-weight: 700; border-radius: 999px; }
.p-like.liked { color: #ef4343 !important; border-color: rgba(239, 67, 67, 0.45) !important; }
.p-like.liked .material-icons { color: #ef4343; }
.p-mark.on[data-mark="save"] { color: #c76bd6; border-color: rgba(199, 107, 214, 0.45); }
.p-mark.on[data-mark="bookmark"] { color: #ffd93d; border-color: rgba(255, 217, 61, 0.45); }
.feed-reply.on, .feed-reply.open { color: var(--tr-primary-light); }
.pv-more-menu { background: var(--tr-card-2) !important; border-radius: 10px; box-shadow: 0 10px 30px rgba(4, 10, 22, 0.6) !important; }
.pv-more-menu .p-del { color: #ef4343; }

/* the reply box */
.composer { padding: 10px; border-radius: 10px; border: 1px solid var(--tr-line); background: var(--tr-card); }
.composer textarea, .newform textarea { background: #0a1730 !important; border-radius: 8px !important; font-size: 14px !important; border: 1px solid var(--tr-line) !important; }
.composer textarea:focus, .newform textarea:focus { border-color: rgba(93, 189, 240, 0.5) !important; }

/* ══ step 3: the feed (DG-Edge's Activity feed: ItemCard, PostCard) ══ */
/* the stream on a timeline, each card's dot in its channel's colour */
.feed-stream:not(.thread-stream) { position: relative; padding-left: 34px; gap: 18px !important; }
.feed-stream:not(.thread-stream)::before { content: ''; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px;
  background: linear-gradient(180deg, rgba(64, 158, 215, 0.55), rgba(96, 82, 200, 0.25) 70%, transparent); }
.feed-stream:not(.thread-stream) > .feed-item { position: relative; }
.feed-stream:not(.thread-stream) > .feed-item::before { content: ''; position: absolute; left: -28px; top: 22px; width: 10px; height: 10px; border-radius: 50%;
  background: var(--cc, var(--tr-primary)); box-shadow: 0 0 0 3px var(--tr-bg), 0 0 10px var(--cc, var(--tr-primary)); }
@media (max-width: 575px) {
  .feed-stream:not(.thread-stream) { padding-left: 0; }
  .feed-stream:not(.thread-stream)::before, .feed-stream:not(.thread-stream) > .feed-item::before { display: none; }
}
/* the card: channel line, the title, the author line, the body, a dark bar */
.feed-item { padding: 15px 18px !important; overflow: hidden; }
.feed-item .p-space { font-size: 13px; }
.feed-item .p-space .tile { width: 22px; height: 22px; border-radius: 6px; }
.feed-item .p-space .nm { color: var(--tr-ink-2); font-weight: 700; }
.p-space .why { margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--cc, var(--tr-primary)); border: 1px solid color-mix(in srgb, var(--cc, var(--tr-primary)) 55%, transparent); background: rgba(4, 10, 22, 0.6); }
.p-space .why .material-icons { color: inherit; font-size: 12px; }
.fc-title { margin: 8px 0 6px; font-size: 19px; font-weight: 800; line-height: 1.3; color: #fff; cursor: pointer;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fc-title:hover { color: var(--tr-primary-light); }
.feed-item > .f-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.feed-item .f-head .ava, .feed-item .f-head .ava-wrap { width: 24px; height: 24px; font-size: 9px; }
.feed-item .f-author { display: flex; align-items: center; flex-wrap: wrap; gap: 0 6px; font-size: 13px; font-weight: 700; color: var(--tr-ink-2); }
.feed-item .f-author .f-meta { font-size: 12px; font-weight: 500; color: var(--tr-ink-4); }
.feed-item .p-body { font-size: 14px; line-height: 1.6; color: var(--tr-ink-2); }
.feed-item > .f-foot { margin: 14px -18px -15px !important; padding: 10px 18px 12px; border-top: 1px solid var(--tr-line); background: #0a1730;
  border-radius: 0 0 var(--tr-radius-lg) var(--tr-radius-lg); }
.feed-item > .replies { margin: 26px 0 0 !important; }
.feed-item > .replies:empty { display: none; }
@media (max-width: 575px) { .fc-title { font-size: 17px; -webkit-line-clamp: 2; } }
/* the trending carousel and the composer, in navy */
.pv-trend-card { background-color: var(--tr-card) !important; border: 1px solid var(--tr-line) !important; }
.pv-quick, .quick { border-radius: var(--tr-radius-lg); }

/* ══ step 4: the profile (DG-Edge's player hero and stat cards) ══ */
.m-head { padding: 22px !important; }
.m-head .ava.lg, .m-head .ava-wrap.lg, .m-head .ava-wrap.lg .ava { width: 84px !important; height: 84px !important; border-radius: 18px !important; font-size: 26px; }
.m-head .ava.lg, .m-head .ava-wrap.lg .ava { border: 2px solid rgba(255, 255, 255, 0.18); box-shadow: 0 8px 26px rgba(0, 0, 0, 0.45); }
.m-head .ava-wrap.lg .star { right: -5px; bottom: -5px; }
.m-head [style*="font-size:20px"] { font-size: 24px !important; letter-spacing: -.01em; }
.m-head .p-admin { border-radius: 999px; }
.m-acts .btn { border-radius: 999px; padding: 7px 16px; }
.m-follow { background: #1b2338 !important; border: 1px solid var(--tr-line-strong) !important; color: #fff !important; }
.m-follow.on { background: rgba(33, 196, 93, 0.16) !important; border-color: rgba(33, 196, 93, 0.55) !important; color: #21c45d !important; }
.m-stats { gap: 10px; }
.m-stats .stat { padding: 14px 10px !important; text-align: center; }
.m-stats .stat b { font-size: 22px; font-weight: 800; color: #fff; }
.m-stats .stat span { font-size: 11px; letter-spacing: .06em; }
/* the community score as DG-Edge writes it: a green badge with its star */
.m-stats .stat:first-child b { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; color: #21c45d; }
.m-stats .stat:first-child b .m-rank { margin-left: 0; }
.m-rank { box-shadow: 0 1px 6px rgba(0, 0, 0, 0.35); border: 1px solid currentColor; background: rgba(4, 10, 22, 0.6) !important; }
.pv-me-tabs { margin-top: 18px; }
