/* Throttle Hub route-owned presentation. The shared shell and standard photographic hero remain global dependencies. */

body.route-throttle-hub {
  position: relative;
  overflow-x: clip;
}

/* Report is a secondary, accessible overflow action — card -145. */
.hub-route .sr-only,
.hub-route .hub-post-more-menu .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.hub-post-actions .hub-post-more-menu { position: relative; display: inline-flex; align-items: center; }
.hub-post-more-menu > summary { min-height: 36px; min-width: 36px; display: inline-grid; place-items: center; border: 1px solid #395158; border-radius: 9px; background: #22343a; color: #f4fbfb; cursor: pointer; list-style: none; font-size: 1.2rem; line-height: 1; }
.hub-post-more-menu > summary::-webkit-details-marker { display: none; }
.hub-post-more-menu > summary:focus-visible { outline: 3px solid rgba(103, 213, 202, .4); outline-offset: 2px; }
.hub-post-more-menu[open] { z-index: 40; }
.hub-post-more-menu__popover { position: absolute; z-index: 25; right: 0; top: calc(100% + 6px); min-width: 148px; padding: 5px; border: 1px solid #466169; border-radius: 10px; background: #122126; box-shadow: 0 12px 28px rgba(0,0,0,.35); }
.hub-post-more-menu__popover--above { top: auto; bottom: calc(100% + 6px); }
.hub-post-more-menu__popover .btn { width: 100%; min-height: 36px; justify-content: flex-start; border: 0; background: transparent; }
.hub-post-more-menu__popover .btn:hover,
.hub-post-more-menu__popover .btn:focus-visible { background: #243a40; }

@media (max-width: 640px) {
  .hub-post-more-menu { width: 100%; }
  .hub-post-more-menu > summary { width: 100%; }
  .hub-post-more-menu__popover { right: 0; left: auto; }
}

.hub-route {
  --hub-bg: #0b1114;
  --hub-surface: #111b20;
  --hub-surface-raised: #17242a;
  --hub-surface-soft: #1c2b31;
  --hub-border: rgba(209, 224, 226, .14);
  --hub-border-strong: rgba(209, 224, 226, .23);
  --hub-coral: #f05a55;
  --hub-coral-strong: #ff665f;
  --hub-teal: #39d2c6;
  --hub-amber: #f4bd59;
  --hub-violet: #ad8cff;
  width: 100%;
  min-width: 0;
  padding-bottom: 196px;
}

/* The Hub feature row uses the shared News/Pools banner and companion-rail geometry. */
.hub-feature-right-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 12px;
  min-width: 0;
}

.hub-feature-right-stack > .hub-ad-slot--summary-banner {
  grid-area: auto;
}

.hub-social-region {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.hub-ad-layout {
  display: grid;
  grid-template-columns: minmax(0, 1240px);
  justify-content: center;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

.hub-social-shell {
  grid-column: 1;
  width: min(1240px, 100%);
  max-width: 1240px;
  min-width: 0;
  padding: 0 18px 18px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 16px;
  background:
    radial-gradient(circle at 100% 0%, rgba(173, 140, 255, .07), transparent 32%),
    linear-gradient(145deg, rgba(18, 29, 34, .98), rgba(8, 13, 16, .98));
  box-shadow: 0 24px 56px rgba(0, 0, 0, .3);
}

.hub-ad-slot {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.hub-ad-slot[hidden],
.hub-ad-slot[data-ad-state="empty"],
.hub-ad-slot[data-ad-state="unfilled"],
.hub-ad-slot[data-ad-state="blocked-consent"],
.hub-ad-slot[data-ad-state="unavailable-provider"] {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

.hub-ad-slot[data-ad-state="provider-pending"],
.hub-ad-slot[data-ad-state="filled"] {
  overflow: hidden;
  contain: layout paint;
}

.hub-ad-slot[data-ad-state="provider-pending"] {
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(209, 224, 226, .16);
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(57, 210, 198, .035), transparent 46%),
    rgba(12, 20, 24, .72);
  color: rgba(212, 221, 221, .58);
}

.hub-ad-slot__placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 8px;
  color: inherit;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.hub-ad-slot[data-ad-state="filled"] > .hub-ad-slot__placeholder {
  display: none;
}

.hub-ad-slot--summary-banner:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
  display: none;
  grid-area: hub-summary-ad;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  width: 100%;
  max-width: 100%;
  height: 60px;
  min-height: 60px;
  position: static;
}

.hub-ad-slot--summary-banner[data-ad-state="filled"][data-ad-size="468x60"] {
  width: 100%;
  height: 60px;
  min-height: 60px;
}

.hub-ad-slot--summary-banner[data-ad-state="filled"][data-ad-size="320x100"] {
  width: 100%;
  height: 60px;
  min-height: 60px;
}

.hub-ad-slot--summary-banner[data-ad-state="filled"][data-ad-size="320x50"] {
  width: 100%;
  height: 60px;
  min-height: 60px;
}

.hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
  width: 100%;
  height: 60px;
  min-height: 60px;
}

.hub-ad-slot--rail:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
  display: none;
  position: static;
  justify-content: center;
  overflow: hidden;
}

.hub-ad-bank {
  display: none;
  min-width: 0;
  align-self: start;
}

.hub-ad-bank > .hub-ad-slot--rail-bank-item:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: none;
}

.hub-content-grid,
.social-layout--hub-feed {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "composer"
    "toolbar"
    "feed";
  row-gap: 16px;
  align-items: start;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.route-main-themed .social-layout--hub-feed .composer,
.route-main-themed .social-layout--hub-feed .feed-card,
.social-layout--hub-feed .composer,
.social-layout--hub-feed .feed-card {
  min-width: 0;
  border-color: var(--hub-border);
  background: var(--hub-surface);
  box-shadow: none;
}

/* Compact social composer */
.hub-composer,
.hub-composer-rail,
.hub-sticky-composer {
  grid-area: composer;
  position: static;
  min-width: 0;
  max-height: none;
  overflow: visible;
}

.social-layout--hub-feed .composer--compact {
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--hub-border-strong);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(24, 38, 44, .98), rgba(15, 24, 29, .98));
}

.hub-composer-main {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.hub-composer-avatar {
  width: 46px;
  height: 46px;
  border-color: rgba(57, 210, 198, .7);
  background: linear-gradient(145deg, rgba(57, 210, 198, .22), rgba(57, 210, 198, .06));
  color: #eafffc;
  font-size: 13px;
}

.hub-composer-field {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.hub-composer-field label {
  margin: 0;
  color: var(--hub-teal);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.social-layout--hub-feed .composer--compact textarea {
  width: 100%;
  min-height: 46px;
  max-height: 180px;
  margin: 0;
  padding: 11px 13px;
  resize: vertical;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 9px;
  background: rgba(6, 10, 12, .48);
  color: var(--text);
  line-height: 1.45;
}

.social-layout--hub-feed .composer--compact textarea::placeholder {
  color: rgba(212, 221, 221, .64);
}

.social-layout--hub-feed .composer--compact textarea:focus {
  border-color: var(--hub-teal);
  outline: 2px solid rgba(57, 210, 198, .17);
}

.hub-composer-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.social-layout--hub-feed .file-chip,
.hub-media-control {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: auto;
  min-height: 42px;
  margin: 0;
  padding: 8px 11px;
  overflow: hidden;
  border: 1px solid rgba(57, 210, 198, .34);
  border-radius: 8px;
  background: rgba(57, 210, 198, .08);
  color: var(--hub-teal);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-transform: none;
  cursor: pointer;
}

.hub-media-control:hover,
.hub-media-control:focus-within {
  border-color: var(--hub-teal);
  background: rgba(57, 210, 198, .14);
}

.hub-media-control > span[aria-hidden="true"] {
  font-size: 18px;
  line-height: .8;
}

.social-layout--hub-feed .file-chip input,
.hub-media-control input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.hub-composer-controls .btn--primary {
  min-width: 82px;
  min-height: 42px;
  border-color: rgba(255, 120, 113, .78);
  background: linear-gradient(135deg, var(--hub-coral-strong), #dc423e);
  font-weight: 900;
  box-shadow: 0 8px 20px rgba(240, 75, 67, .22);
}

.hub-composer-note,
.hub-composer-feedback {
  margin: 0 0 0 58px;
  font-size: 11px;
  line-height: 1.35;
}

.hub-composer-feedback {
  color: var(--hub-amber);
}

.social-layout--hub-feed .image-preview,
.hub-image-preview {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  margin-left: 58px;
  padding: 10px;
  border: 1px solid rgba(173, 140, 255, .28);
  border-radius: 10px;
  background: rgba(173, 140, 255, .06);
}

.social-layout--hub-feed .image-preview img,
.hub-image-preview img {
  display: block;
  width: 104px;
  height: 68px;
  object-fit: cover;
  border-radius: 7px;
}

.hub-image-preview span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.hub-image-preview strong,
.hub-image-preview small {
  overflow-wrap: anywhere;
}

.hub-image-preview small {
  color: var(--muted);
}

.hub-post-media {
  margin: 14px 0 0 58px;
  min-width: 0;
}

.hub-post-media img {
  display: block;
  max-width: 100%;
  max-height: 520px;
  width: auto;
  border: 1px solid rgba(173, 140, 255, .28);
  border-radius: 10px;
  object-fit: contain;
  background: rgba(5, 9, 11, .42);
}

@media (max-width: 640px) {
  .hub-post-media {
    margin-left: 0;
  }

  .hub-post-media img {
    width: 100%;
    max-height: 360px;
  }
}

/* Real feed state and one real refresh action. */
.hub-feed-toolbar {
  grid-area: toolbar;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--hub-border);
  border-radius: 11px;
  background: rgba(17, 27, 32, .94);
}

.hub-feed-tabs {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 9px;
  background: rgba(5, 9, 11, .48);
}

.hub-feed-tab {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 13px;
  border-radius: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.hub-feed-tab--active {
  background: rgba(57, 210, 198, .15);
  color: #dffffb;
  box-shadow: inset 0 -2px 0 var(--hub-teal);
}

.hub-feed-context {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.hub-feed-context strong {
  color: var(--text);
  font-size: 13px;
}

.hub-feed-context span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hub-feed-toolbar > .btn {
  min-height: 36px;
  padding: 7px 11px;
  border-color: rgba(244, 189, 89, .36);
  background: rgba(244, 189, 89, .08);
  color: var(--hub-amber);
  font-size: 12px;
  font-weight: 850;
}

/* Connected feed surface */
.hub-feed-panel {
  grid-area: feed;
  min-width: 0;
  padding: 0 24px;
  overflow: visible;
  border: 1px solid var(--hub-border-strong);
  border-radius: 13px;
  background: linear-gradient(180deg, rgba(20, 32, 38, .98), rgba(13, 21, 25, .98));
}

.hub-feed-column,
.social-layout--hub-feed .feed,
.social-layout--hub-feed .feed--compact {
  display: grid;
  gap: 0;
  min-width: 0;
}

.social-layout--hub-feed .feed-card--compact,
.hub-feed-entry {
  display: grid;
  gap: 15px;
  height: auto;
  max-height: none;
  overflow: visible;
  padding: 24px 0;
  border: 0;
  border-bottom: 1px solid var(--hub-border);
  border-radius: 0;
  background: transparent;
}

.social-layout--hub-feed .feed-card--compact:last-child,
.hub-feed-entry:last-child {
  border-bottom: 0;
}

.social-layout--hub-feed .feed-head,
.hub-post-header {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.hub-post-avatar {
  width: 48px;
  height: 48px;
  border-color: rgba(57, 210, 198, .62);
  background: linear-gradient(145deg, rgba(57, 210, 198, .2), rgba(48, 63, 69, .5));
  color: #f4fffe;
  font-size: 13px;
}

.hub-post-identity {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.social-layout--hub-feed .feed-head h3,
.social-layout--hub-feed .feed-head p,
.hub-post-identity h3,
.hub-post-identity p {
  margin: 0;
}

.hub-post-identity h3 {
  color: var(--text);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
}

.social-layout--hub-feed .feed-head p,
.hub-post-identity p {
  color: rgba(212, 221, 221, .72);
  font-size: 11px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.hub-post-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  min-width: 0;
}

.hub-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border: 1px solid var(--hub-border);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.hub-badge--teal {
  border-color: rgba(57, 210, 198, .34);
  background: rgba(57, 210, 198, .09);
  color: var(--hub-teal);
}

.hub-badge--violet {
  border-color: rgba(173, 140, 255, .36);
  background: rgba(173, 140, 255, .09);
  color: #cbb8ff;
}

.hub-badge--amber {
  border-color: rgba(244, 189, 89, .34);
  background: rgba(244, 189, 89, .08);
  color: var(--hub-amber);
}

.hub-post-copy {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding-left: 60px;
}

.social-layout--hub-feed .feed-card--compact h4,
.hub-post-copy h4 {
  margin: 0;
  color: #fffdf7;
  font-size: 17px;
  font-weight: 900;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hub-feed-panel .full-copy,
.hub-feed-panel .comment-row span {
  display: block;
  height: auto;
  max-height: none;
  overflow: visible;
  color: rgba(255, 250, 242, .92);
  font-size: 16px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: pre-wrap;
  word-break: normal;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}

.hub-post-copy .full-copy {
  margin: 0;
}

.hub-comments {
  display: grid;
  gap: 0;
  margin-left: 60px;
  padding: 10px 13px;
  border: 1px solid rgba(173, 140, 255, .18);
  border-radius: 10px;
  background: rgba(173, 140, 255, .045);
}

.hub-comments-title {
  margin: 0 0 2px;
  color: #cbb8ff;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.hub-comment-target-status { margin: 0 0 12px; padding: 11px 14px; border: 1px solid rgba(244, 188, 91, .5); border-radius: 8px; color: #f9dfaa; background: rgba(244, 188, 91, .08); }
.hub-comment-row:focus { outline: 3px solid #39d2c6; outline-offset: 3px; border-radius: 6px; }

.social-layout--hub-feed .comment-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  padding: 9px 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
  border-radius: 0;
  background: transparent;
  text-align: left;
}

.social-layout--hub-feed .comment-row:first-of-type {
  border-top: 0;
}

.hub-comment-avatar {
  width: 30px;
  height: 30px;
  border-color: rgba(173, 140, 255, .48);
  color: #cbb8ff;
  font-size: 9px;
}

.social-layout--hub-feed .comment-row > div:last-child {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.social-layout--hub-feed .comment-row strong {
  color: var(--text);
  font-size: 12px;
}

.hub-feed-panel .comment-row span {
  font-size: 13px;
  line-height: 1.5;
}

.social-layout--hub-feed .comment-row small {
  color: rgba(212, 221, 221, .62);
  font-size: 10px;
}

.hub-no-comments {
  margin: 0 0 0 60px;
  font-size: 12px;
}

.hub-post-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  margin-left: 60px;
  padding-top: 2px;
}

.hub-engagement-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  color: rgba(212, 221, 221, .72);
  font-size: 11px;
  font-weight: 750;
}

.hub-post-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}

.hub-post-actions .btn {
  min-width: 76px;
  min-height: 36px;
  padding: 7px 10px;
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .035);
  color: rgba(255, 250, 242, .84);
  font-size: 12px;
  font-weight: 800;
}

.hub-comment-copy { min-width: 0; display: grid; gap: 4px; }
.hub-comment-copy > strong { color: #fff; }
.hub-comment-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 3px; }
.hub-comment-actions .btn { min-height: 32px; padding: 5px 9px; font-size: 12px; }
.hub-comment-replies { display: grid; gap: 0; margin: 0 0 4px 22px; padding-left: 12px; border-left: 2px solid rgba(57, 210, 198, .25); }
.hub-comment-row--reply { background: rgba(255,255,255,.015); }
.hub-like-count { min-height: 32px; padding: 3px 8px; font: inherit; text-decoration: underline; text-underline-offset: 2px; }
.hub-liker-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 2px; border-bottom: 1px solid rgba(255,255,255,.08); }
.hub-liker-row > span { overflow-wrap: anywhere; }
.hub-likers-modal { max-height: min(80vh, 720px); overflow: auto; }

.hub-post-actions .btn:hover,
.hub-post-actions .btn:focus-visible {
  border-color: rgba(57, 210, 198, .55);
  background: rgba(57, 210, 198, .09);
  color: #fff;
}

.hub-post-actions .btn--primary {
  border-color: rgba(240, 90, 85, .64);
  background: rgba(240, 90, 85, .16);
  color: #ffaaa6;
}

.hub-feed-empty {
  padding: 28px 0;
}

/* Designed source-backed community rail */
.hub-summary-rail {
  position: static;
  align-self: stretch;
  min-width: 0;
}

.hub-summary-rail .source-summary-card,
.hub-summary-rail .hub-rail-card {
  display: grid;
  gap: 15px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid var(--hub-border-strong);
  border-top: 3px solid var(--hub-amber);
  border-radius: 13px;
  background:
    radial-gradient(circle at 100% 0%, rgba(244, 189, 89, .09), transparent 34%),
    var(--hub-surface-raised);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .22);
}

.hub-rail-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.hub-rail-heading p,
.hub-rail-heading h2 {
  margin: 0;
}

.hub-rail-heading h2 {
  margin-top: 3px;
  color: var(--text);
  font-size: 20px;
  line-height: 1.15;
}

.hub-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border: 1px solid rgba(57, 210, 198, .32);
  border-radius: 999px;
  background: rgba(57, 210, 198, .08);
  color: var(--hub-teal);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.hub-profile-summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, .09);
  border-radius: 10px;
  background: rgba(5, 9, 11, .28);
}

.hub-profile-avatar {
  width: 42px;
  height: 42px;
  background: rgba(57, 210, 198, .08);
  color: var(--hub-teal);
  font-size: 11px;
}

.hub-profile-summary > div:last-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.hub-profile-summary strong,
.hub-profile-summary small {
  overflow-wrap: anywhere;
}

.hub-profile-summary strong {
  color: var(--text);
  font-size: 13px;
}

.hub-profile-summary small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.hub-summary-rail .social-summary-metrics,
.hub-summary-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.hub-summary-rail .social-summary-metrics article,
.hub-summary-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 11px 4px 11px 13px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  border-radius: 0;
  background: transparent;
}

.hub-summary-row::before {
  content: "";
  position: absolute;
  left: 0;
  width: 3px;
  height: 22px;
  border-radius: 999px;
  background: var(--hub-teal);
}

.hub-summary-row--coral::before { background: var(--hub-coral); }
.hub-summary-row--amber::before { background: var(--hub-amber); }
.hub-summary-row--violet::before { background: var(--hub-violet); }

.hub-summary-rail .social-summary-metrics span,
.hub-summary-rail .social-summary-metrics strong,
.hub-summary-row > span,
.hub-summary-row > strong {
  display: block;
  overflow-wrap: anywhere;
}

.hub-summary-row > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.hub-summary-row b {
  color: rgba(255, 250, 242, .86);
  font-size: 12px;
}

.hub-summary-row small {
  color: rgba(212, 221, 221, .62);
  font-size: 9px;
  line-height: 1.3;
}

.hub-summary-rail .social-summary-metrics strong,
.hub-summary-row > strong {
  flex: 0 0 auto;
  color: var(--text);
  font-size: 15px;
  line-height: 1.2;
  text-align: right;
}

.hub-engagement-callout {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px solid rgba(173, 140, 255, .28);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(173, 140, 255, .11), rgba(57, 210, 198, .05));
}

.hub-engagement-callout span {
  color: #cbb8ff;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.hub-engagement-callout strong {
  color: var(--text);
  font-size: 14px;
}

.hub-rail-actions {
  display: grid;
}

.hub-rail-actions .btn {
  width: 100%;
  min-height: 44px;
  border-color: rgba(240, 90, 85, .72);
  background: linear-gradient(135deg, var(--hub-coral), #d7433f);
  color: #fff;
  font-weight: 900;
}

@media (min-width: 641px) and (max-width: 980px) {
  .hub-feature-right-stack > .hub-summary-rail,
  .hub-feature-right-stack > .hub-ad-slot--summary-banner:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
    grid-area: auto;
    grid-column: 1;
  }

  .hub-ad-slot--summary-banner:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
    display: flex;
    width: 100%;
    height: 60px;
    min-height: 60px;
  }
}

@media (min-width: 981px) {
  .main-feature-row--hub > .page-feature-hero {
    grid-column: 1;
    grid-row: 1;
  }

  .main-feature-row--hub > .hub-feature-right-stack {
    grid-column: 2;
    grid-row: 1;
    grid-template-rows: minmax(0, 1fr) 60px;
    align-self: stretch;
    gap: 18px;
    height: var(--non-home-feature-height);
    min-height: 0;
  }

  .hub-feature-right-stack > .hub-summary-rail,
  .hub-feature-right-stack > .hub-summary-rail .hub-rail-card {
    height: 100%;
    min-height: 0;
  }

  .hub-feature-right-stack > .hub-summary-rail {
    grid-area: 1 / 1 / 2 / 2;
  }

  .hub-feature-right-stack > .hub-ad-slot--summary-banner:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
    display: flex;
    grid-area: 2 / 1 / 3 / 2;
    justify-self: stretch;
  }

  .hub-feature-right-stack .hub-rail-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "heading heading"
      "profile engagement"
      "metrics metrics"
      "actions actions";
    align-items: start;
    gap: 5px;
    padding: 10px 12px;
    overflow: visible;
  }

  .hub-feature-right-stack .hub-rail-heading { grid-area: heading; }
  .hub-feature-right-stack .hub-profile-summary {
    grid-area: profile;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 8px;
    padding: 6px 8px;
  }
  .hub-feature-right-stack .hub-profile-avatar {
    width: 36px;
    height: 36px;
  }
  .hub-feature-right-stack .hub-summary-list {
    grid-area: metrics;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hub-feature-right-stack .hub-summary-row {
    padding: 5px 3px 5px 10px;
  }
  .hub-feature-right-stack .hub-summary-row::before {
    height: 18px;
  }
  .hub-feature-right-stack .hub-engagement-callout {
    grid-area: engagement;
    padding: 8px 10px;
  }
  .hub-feature-right-stack .hub-rail-actions { grid-area: actions; }
  .hub-feature-right-stack .hub-rail-actions .btn {
    min-height: 34px;
    padding-block: 6px;
  }
}

@media (min-width: 1840px) {
  .hub-ad-layout > .hub-social-shell {
    grid-column: 1;
    grid-row: 1;
  }

  .hub-ad-bank {
    display: grid;
    grid-column: 1;
    grid-row: 1;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    width: clamp(300px, calc(50vw - 652px), 520px);
    max-width: 520px;
    min-width: 300px;
  }

  .hub-ad-bank--left {
    justify-self: start;
    transform: translateX(calc(-25vw + 310px - 50%));
  }

  .hub-ad-bank--right {
    justify-self: end;
    transform: translateX(calc(25vw - 310px + 50%));
  }

  .hub-ad-bank > .hub-ad-slot--rail-bank-item:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
    display: flex;
    height: 250px;
    min-height: 250px;
  }

  body.route-throttle-hub {
    padding-bottom: 88px;
  }
}

@media (min-width: 2200px) {
  .hub-ad-bank > .hub-ad-slot--rail-bank-item:is([data-ad-state="provider-pending"], [data-ad-state="filled"]) {
    height: 280px;
    min-height: 280px;
  }
}

/* Keep each complete rail bank together while the feed owns enough vertical space.
   The height gates leave the banks in normal flow when they cannot fit safely. */
@media (min-width: 1840px) and (max-width: 2199px) and (min-height: 982px) {
  .hub-ad-bank {
    position: sticky;
    top: 160px;
  }
}

@media (min-width: 2200px) and (min-height: 1072px) {
  .hub-ad-bank {
    position: sticky;
    top: 160px;
  }
}

.route-throttle-hub .modal-card {
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Preserve the shared floating-control model above page-owned advertising.
   The wide/tall adjustment keeps both controls below a fully sticky 880px bank. */
.route-throttle-hub .back-to-top,
.route-throttle-hub .crew-fab {
  position: fixed;
  right: 16px;
  left: auto;
}

.route-throttle-hub .back-to-top {
  bottom: 158px;
  z-index: 44;
}

/* Standard Google sizes for the page-owned Hub summary host (card -171).
   The host itself is the exact creative frame; no provider request or fill is made here. */
.hub-feature-right-stack { container-type: inline-size; }
.main-feature-row--hub > .hub-feature-right-stack {
  grid-template-rows: minmax(0, 1fr) 60px;
}
.hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
  display: flex !important;
  box-sizing: border-box;
  width: 468px;
  max-width: 468px;
  height: 60px;
  min-height: 60px;
  justify-self: center;
  align-self: end;
  overflow: hidden;
}
.hub-ad-slot--summary-banner .hub-ad-slot__creative-host { display: none; }

/* The six Hub side declarations remain intentionally inactive until a shared provider exists. */
.hub-ad-bank,
.hub-ad-bank > .hub-ad-slot--rail-bank-item {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  position: static !important;
  transform: none !important;
}

@media (max-width: 980px) {
  .main-feature-row--hub > .hub-feature-right-stack {
    grid-template-rows: auto auto;
    height: auto;
    align-self: start;
  }
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
    align-self: center;
    margin-top: 0;
  }
}

@container (min-width: 728px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
    width: 728px;
    max-width: 728px;
    height: 90px;
    min-height: 90px;
  }
}
@container (min-width: 468px) and (max-width: 727px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
    width: 468px;
    max-width: 468px;
    height: 60px;
    min-height: 60px;
  }
}
@container (max-width: 467px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
  }
}
@media (min-width: 981px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"] {
    width: 468px;
    max-width: 468px;
    height: 60px;
    min-height: 60px;
  }
}

.route-throttle-hub .crew-fab {
  bottom: 96px;
  z-index: 45;
}

@media (min-width: 2200px) and (min-height: 1072px) {
  .route-throttle-hub .back-to-top {
    bottom: 80px;
  }

  .route-throttle-hub .crew-fab {
    bottom: 18px;
  }
}

@media (max-width: 1640px) {
  body.route-throttle-hub {
    padding-bottom: 88px;
  }
}

@media (max-width: 1180px) {
  .hub-social-region {
    padding: 16px;
  }

  .hub-content-grid,
  .social-layout--hub-feed {
    column-gap: 18px;
  }

  .hub-post-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .hub-post-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 980px) {
  .hub-content-grid,
  .social-layout--hub-feed {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "composer"
      "toolbar"
      "feed";
    gap: 18px;
  }

  .hub-summary-rail {
    position: static;
  }

  .hub-summary-rail .source-summary-card,
  .hub-summary-rail .hub-rail-card {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
    grid-template-areas:
      "heading profile"
      "metrics engagement"
      "metrics actions";
    align-items: start;
  }

  .hub-rail-heading { grid-area: heading; }
  .hub-profile-summary { grid-area: profile; }
  .hub-summary-list { grid-area: metrics; }
  .hub-engagement-callout { grid-area: engagement; }
  .hub-rail-actions { grid-area: actions; }
}

@media (max-width: 640px) {
  .hub-ad-slot--summary-banner:is([data-ad-state="provider-pending"], [data-ad-state="filled"]),
  .hub-ad-slot--rail:is([data-ad-state="provider-pending"], [data-ad-state="filled"]),
  .hub-ad-bank {
    display: none !important;
  }

  .hub-route {
    padding-bottom: 220px;
  }

  .route-throttle-hub .crew-fab strong {
    display: inline;
  }

  .hub-social-region {
    width: 100%;
    padding: 12px;
    border-radius: 12px;
  }

  .hub-content-grid,
  .social-layout--hub-feed {
    gap: 12px;
  }

  .social-layout--hub-feed .composer--compact {
    padding: 12px;
  }

  .hub-composer-main {
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
  }

  .hub-composer-avatar {
    width: 42px;
    height: 42px;
  }

  .hub-composer-controls {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(88px, auto);
    gap: 8px;
  }

  .hub-media-control,
  .hub-composer-controls .btn--primary {
    width: 100%;
    min-height: 44px;
  }

  .hub-composer-note,
  .hub-composer-feedback,
  .social-layout--hub-feed .image-preview,
  .hub-image-preview {
    margin-left: 0;
  }

  .social-layout--hub-feed .image-preview,
  .hub-image-preview {
    grid-template-columns: 82px minmax(0, 1fr);
  }

  .social-layout--hub-feed .image-preview img,
  .hub-image-preview img {
    width: 82px;
    height: 60px;
  }

  .hub-image-preview .btn {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 44px;
  }

  .hub-feed-toolbar {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
  }

  .hub-feed-toolbar > .btn {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 44px;
  }

  .hub-summary-rail .source-summary-card,
  .hub-summary-rail .hub-rail-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "heading"
      "profile"
      "metrics"
      "engagement"
      "actions";
    padding: 15px;
  }

  .hub-feed-panel {
    padding: 0 14px;
  }

  .social-layout--hub-feed .feed-card--compact,
  .hub-feed-entry {
    gap: 13px;
    padding: 18px 0;
  }

  .social-layout--hub-feed .feed-head,
  .hub-post-header {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
  }

  .hub-post-avatar {
    width: 42px;
    height: 42px;
  }

  .hub-post-badges {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-left: 52px;
  }

  .hub-post-copy,
  .hub-comments,
  .hub-no-comments,
  .hub-post-footer {
    margin-left: 0;
    padding-left: 0;
  }

  .hub-comments {
    padding: 9px 11px;
  }

  .hub-post-footer {
    gap: 11px;
  }

  .hub-post-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .hub-post-actions .btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }

  .hub-feed-panel .full-copy {
    font-size: 15px;
    line-height: 1.55;
  }
}

/* Card 178: restore the page-owned Hub inventory and shared route atmosphere.
   These are disclosed, provider-pending hosts only; no ad request or creative is made. */
.hub-route,
.hub-social-region,
.hub-social-shell {
  background: transparent;
}
.hub-social-shell {
  background-image: none;
}
.main-feature-row--hub > .hub-feature-right-stack {
  grid-template-rows: minmax(0, 1fr) auto;
}
.hub-ad-slot--summary-banner .hub-ad-slot__creative-host,
.hub-ad-bank .hub-ad-slot__creative-host {
  display: block;
}
.hub-ad-slot[data-ad-state="filled"] > .hub-ad-slot__placeholder {
  display: none;
}
.hub-ad-bank {
  display: none;
}
.hub-ad-bank > .hub-ad-slot--rail-bank-item {
  display: none;
}

/* Each eligible rail is a centered bank of three exact 300x250 frames. */
@media (min-width: 1840px) {
  .hub-ad-bank {
    display: grid !important;
    grid-template-columns: 300px;
    gap: 20px;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: 844px !important;
    justify-items: center;
    align-self: start;
    position: static;
    transform: none;
  }
  .hub-ad-bank--left {
    justify-self: start;
    transform: translateX(calc(-25vw + 310px - 50%)) !important;
  }
  .hub-ad-bank--right {
    justify-self: end;
    transform: translateX(calc(25vw - 310px + 50%)) !important;
  }
  .hub-ad-bank > .hub-ad-slot--rail-bank-item {
    display: grid !important;
    box-sizing: border-box;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: 268px !important;
    min-height: 268px !important;
    position: static !important;
    transform: none !important;
  }
}

/* Preserve bounded sticky behavior only when the complete bank fits safely. */
@media (min-width: 1840px) and (max-width: 2199px) and (min-height: 1091px) {
  .hub-ad-bank { position: sticky !important; top: 160px !important; }
}
@media (min-width: 2200px) and (min-height: 1113px) {
  .hub-ad-bank { position: sticky !important; top: 160px !important; }
}

/* Below the safe rail width, suppress the whole bank with zero reserved geometry. */
@media (max-width: 1839px), (max-width: 640px) {
  .hub-ad-bank,
  .hub-ad-bank > .hub-ad-slot--rail-bank-item {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    position: static !important;
    transform: none !important;
  }
}

/* Summary host chooses the largest approved frame that its measured container can hold. */
@container (min-width: 728px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"],
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="filled"] {
    display: grid !important;
    box-sizing: border-box;
    width: 728px !important;
    max-width: 728px !important;
    height: 108px !important;
    min-height: 108px !important;
    justify-self: center;
  }
}
@container (min-width: 468px) and (max-width: 727px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"],
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="filled"] {
    display: grid !important;
    box-sizing: border-box;
    width: 468px !important;
    max-width: 468px !important;
    height: 78px !important;
    min-height: 78px !important;
    justify-self: center;
  }
}
@container (max-width: 467px) {
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="provider-pending"],
  .hub-feature-right-stack > .hub-ad-slot--summary-banner[data-ad-state="filled"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
  }
}
.hub-post-permalink {
  display: inline-flex;
  margin: 0.65rem 0 0.1rem;
  color: var(--teal, #0b7285);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: underline;
}

.hub-external-share-status {
  flex-basis: 100%;
  margin: 0.35rem 0 0;
  color: var(--ink-muted, #59636e);
  font-size: 0.78rem;
}

.hub-permalink-return {
  margin: 0 0 1rem;
}
/* RN-T: A normal public-post link binds the teaser's copy and destination. */
.hub-feature-link { display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-height:44px; max-width:100%; padding:12px 14px; color:inherit; text-decoration:none; border:1px solid rgba(120,211,202,.35); border-radius:10px; background:rgba(0,0,0,.14); overflow-wrap:anywhere; }
.hub-feature-link strong { font-size:1.05rem; line-height:1.4; }
.hub-feature-link > span { font-size:.9rem; line-height:1.5; }
.hub-feature-link small { opacity:.8; }
.hub-feature-link b { font-size:.85rem; text-decoration:underline; text-underline-offset:3px; }
.hub-feature-link:hover { background:rgba(28,93,86,.35); }
.hub-feature-link:focus-visible { outline:3px solid #54dcc8; outline-offset:4px; }
.hub-single-post .my-hub-post, .hub-single-post .hub-post { scroll-margin-top:calc(var(--hub-race-header,160px) + 12px); }
