/* ============================================================
   HRW Connect — "Dawn over water" theme
   Deep pre-dawn navy ink, daylight-blue field, sunrise amber.
   ============================================================ */
:root {
  --ink:      #17263B;   /* pre-dawn navy */
  --ink-soft: #51637C;
  --field:    #EDF2F7;   /* daylight sky */
  --card:     #FFFFFF;
  --line:     #D8E1EA;
  --primary:  #1D4E79;   /* deep water blue */
  --primary-d:#163C5D;
  --sunrise:  #E8952F;   /* dawn amber */
  --sunrise-soft: #FCEED8;
  --danger:   #B3402F;
  --radius: 14px;
  --shadow: 0 1px 2px rgba(23,38,59,.06), 0 6px 18px rgba(23,38,59,.05);
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--field); color: var(--ink);
  font: 15px/1.55 "Inter", system-ui, sans-serif;
}
h1, h2, h3 { font-family: "Sora", "Inter", sans-serif; line-height: 1.2; }
h1 { font-size: 1.7rem; } h2 { font-size: 1.2rem; } h3 { font-size: 1rem; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* Topbar with sunrise horizon line -------------------------- */
.topbar {
  background: var(--card);
  border-bottom: 3px solid transparent;
  border-image: linear-gradient(90deg, var(--primary) 0%, var(--sunrise) 55%, #F6C46B 100%) 1;
  position: sticky; top: 0; z-index: 20;
}
.topbar-inner {
  max-width: 1080px; margin: 0 auto; padding: 10px 18px;
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
}
.brand { font-family: "Sora"; font-weight: 700; font-size: 1.15rem; color: var(--ink); }
.brand:hover { text-decoration: none; }
.brand em { color: var(--sunrise); font-style: normal; }
.brand-mark { color: var(--sunrise); font-size: 1.2em; vertical-align: -2px; }
.mainnav { display: flex; gap: 16px; flex: 1; }
.mainnav a { color: var(--ink-soft); font-weight: 500; padding: 6px 2px; }
.mainnav a:hover { color: var(--ink); text-decoration: none; }
.topbar-user { display: flex; align-items: center; gap: 10px; }
.me-link { display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 600; }
.badge {
  background: var(--sunrise); color: #fff; border-radius: 999px;
  font-size: .72rem; padding: 1px 7px; margin-left: 3px; font-weight: 600;
}

/* Layout ----------------------------------------------------- */
.page { max-width: 1080px; margin: 26px auto 60px; padding: 0 18px; }
.card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 18px 20px; margin-bottom: 18px;
}
.card.narrow { max-width: 560px; margin-inline: auto; }
.empty { color: var(--ink-soft); text-align: center; }
.muted { color: var(--ink-soft); font-size: .9rem; }
.center { text-align: center; margin-top: 40%; }
.section-title { margin: 26px 0 12px; }
.notice { background: #E4F2E7; color: #24603A; padding: 9px 12px; border-radius: 8px; }
.alert  { background: #F9E4DF; color: var(--danger); padding: 9px 12px; border-radius: 8px; }

/* Buttons & forms ------------------------------------------- */
.btn {
  display: inline-block; border: 1px solid transparent; border-radius: 10px;
  padding: 8px 16px; font: 600 .92rem "Inter"; cursor: pointer;
}
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-d); text-decoration: none; }
.btn-ghost { background: transparent; color: var(--primary); border-color: var(--line); }
.btn-ghost:hover { background: var(--field); text-decoration: none; }
.btn-block { width: 100%; text-align: center; }
.is-static { cursor: default; color: var(--ink-soft); }
.linklike { background: none; border: 0; color: var(--ink-soft); cursor: pointer; font: inherit; }
.linklike.active { color: var(--sunrise); font-weight: 600; }
label { display: block; margin: 0 0 12px; font-weight: 600; font-size: .88rem; }
input, textarea, select {
  width: 100%; margin-top: 5px; padding: 9px 11px;
  border: 1px solid var(--line); border-radius: 9px;
  font: 15px "Inter"; color: var(--ink); background: #FBFCFE;
}
input:focus, textarea:focus, select:focus {
  outline: 2px solid var(--sunrise); outline-offset: 1px; border-color: var(--sunrise);
}

/* Avatars ---------------------------------------------------- */
.avatar {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; color: #fff; font-weight: 700; flex-shrink: 0;
  background: linear-gradient(140deg, hsl(var(--h) 55% 46%), hsl(var(--h) 60% 32%));
}

/* Auth pages ------------------------------------------------- */
.auth-wrap {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px;
  align-items: center; min-height: 60vh;
}
.auth-hero h1 {
  font-size: 2.6rem; margin: 0 0 14px;
  background: linear-gradient(100deg, var(--ink) 30%, var(--primary) 65%, var(--sunrise));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.auth-hero p { color: var(--ink-soft); font-size: 1.05rem; max-width: 44ch; }
.auth-card h2 { margin-top: 0; }

/* Feed ------------------------------------------------------- */
.feed-layout { display: grid; grid-template-columns: 1fr 280px; gap: 22px; }
.composer-row { display: flex; gap: 12px; }
.composer textarea { resize: vertical; }
.composer-actions {
  display: flex; justify-content: flex-end; gap: 10px; margin-top: 10px;
}
.composer-actions select { width: auto; margin: 0; }
.post-head { display: flex; gap: 12px; align-items: center; }
.post-author { font-weight: 700; color: var(--ink); }
.post-meta { font-size: .82rem; color: var(--ink-soft); }
.post-delete { margin-left: auto; }
.post-body { margin: 12px 0 8px; white-space: pre-line; }
.post-actions { display: flex; gap: 18px; border-top: 1px solid var(--line); padding-top: 8px; }
.mission { background: var(--sunrise-soft); border-color: #F1D9AE; }
.mission h3 { margin-top: 0; }

/* Comments --------------------------------------------------- */
.comments { margin-top: 10px; }
.comment { display: flex; gap: 8px; margin-bottom: 8px; }
.comment-bubble {
  background: var(--field); border-radius: 12px; padding: 7px 11px; font-size: .92rem;
}
.comment-author { font-weight: 600; margin-right: 6px; }
.comment-time { color: var(--ink-soft); font-size: .78rem; margin-left: 8px; }
.comment-form { display: flex; gap: 8px; margin-top: 8px; }
.comment-form input { margin: 0; }

/* Members ---------------------------------------------------- */
.members-head { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.search { display: flex; gap: 8px; flex: 1; max-width: 460px; }
.search input { margin: 0; }
.member-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px; margin-top: 16px;
}
.member-card { display: flex; gap: 12px; align-items: center; margin: 0; color: var(--ink); }
.member-card:hover { text-decoration: none; border-color: var(--sunrise); }
.req-actions { display: flex; gap: 6px; margin-top: 6px; }

/* Profile ---------------------------------------------------- */
.profile-head { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.profile-info { flex: 1; min-width: 240px; }
.profile-info h1 { margin: 0 0 4px; }
.bio { margin-top: 10px; }
.profile-actions { display: flex; gap: 8px; align-items: center; }
.role-tag {
  background: var(--sunrise-soft); color: #8A5A13;
  border-radius: 6px; padding: 1px 8px; font-size: .78rem; font-weight: 600;
}

/* Messages --------------------------------------------------- */
.msg-layout { display: grid; grid-template-columns: 280px 1fr; gap: 18px; }
.msg-list h2 { margin-top: 0; }
.msg-thread {
  display: flex; align-items: center; gap: 10px; padding: 8px;
  border-radius: 10px; color: var(--ink); font-weight: 500;
}
.msg-thread:hover, .msg-thread.active { background: var(--field); text-decoration: none; }
.msg-pane { display: flex; flex-direction: column; min-height: 480px; }
.msg-pane-head {
  display: flex; align-items: center; gap: 10px;
  border-bottom: 1px solid var(--line); padding-bottom: 10px; font-weight: 600;
}
.msg-scroll { flex: 1; overflow-y: auto; padding: 14px 4px; max-height: 55vh; }
.bubble {
  max-width: 72%; padding: 8px 12px; border-radius: 14px; margin-bottom: 8px;
  white-space: pre-line;
}
.bubble.mine  { background: var(--primary); color: #fff; margin-left: auto; border-bottom-right-radius: 4px; }
.bubble.theirs{ background: var(--field); border-bottom-left-radius: 4px; }
.bubble-time { display: block; font-size: .72rem; opacity: .7; margin-top: 2px; }
.msg-form { display: flex; gap: 8px; border-top: 1px solid var(--line); padding-top: 10px; }
.msg-form input { margin: 0; }

/* Footer ----------------------------------------------------- */
.site-footer {
  text-align: center; color: var(--ink-soft); font-size: .85rem; padding: 20px;
  border-top: 1px solid var(--line);
}

/* Responsive ------------------------------------------------- */
@media (max-width: 860px) {
  .feed-layout, .msg-layout, .auth-wrap { grid-template-columns: 1fr; }
  .auth-hero h1 { font-size: 2rem; }
  .mainnav { order: 3; width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ============================================================
   HRW SNS additions — media, news channels, video broadcasts
   ============================================================ */
.avatar-img { object-fit: cover; border-radius: 50%; }
.btn-sunrise { background: var(--sunrise); color: #fff; }
.btn-sunrise:hover { background: #C97C1E; text-decoration: none; }

/* Announcement bar ------------------------------------------- */
.announce { padding: 9px 18px; text-align: center; font-size: .92rem; }
.announce a { font-weight: 600; }
.announce-blue  { background: #E3EDF7; color: #1D4E79; }
.announce-green { background: #E4F2E7; color: #24603A; }
.announce-gold  { background: var(--sunrise-soft); color: #8A5A13; }
.announce-red   { background: #F9E4DF; color: var(--danger); }

/* Composer extras -------------------------------------------- */
.composer-extras { display: flex; gap: 14px; margin-top: 10px; flex-wrap: wrap; }
.file-label { flex: 1; min-width: 220px; font-size: .84rem; color: var(--ink-soft); }
.file-label input { margin-top: 4px; font-size: .84rem; }

/* Photo grids ------------------------------------------------ */
.photo-grid { display: grid; gap: 6px; margin: 10px 0; border-radius: 12px; overflow: hidden; }
.grid-1 { grid-template-columns: 1fr; }
.grid-2 { grid-template-columns: 1fr 1fr; }
.grid-3 { grid-template-columns: 1fr 1fr 1fr; }
.grid-4 { grid-template-columns: 1fr 1fr; }
.photo-grid img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  aspect-ratio: 4 / 3; background: var(--field);
}
.grid-1 img { aspect-ratio: auto; max-height: 520px; }

/* Video embeds ----------------------------------------------- */
.video-embed {
  position: relative; width: 100%; aspect-ratio: 16 / 9;
  border-radius: 12px; overflow: hidden; margin: 10px 0; background: #000;
}
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Breaking bar ----------------------------------------------- */
.breaking-bar {
  display: flex; align-items: center; gap: 12px;
  background: #2A1714; border: 1px solid #7A2E20; border-radius: 12px;
  padding: 8px 14px; margin-bottom: 18px; overflow: hidden;
}
.breaking-tag {
  background: var(--danger); color: #fff; border-radius: 6px;
  padding: 2px 10px; font: 700 .78rem "Sora"; letter-spacing: .05em;
  text-transform: uppercase; flex-shrink: 0;
}
.breaking-items { display: flex; gap: 22px; overflow-x: auto; white-space: nowrap; }
.breaking-items a { color: #F6D9C9; font-weight: 500; }

/* News home -------------------------------------------------- */
.news-head h1 { margin-bottom: 2px; }
.channel-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 14px 0 20px; }
.channel-tabs a {
  padding: 6px 14px; border-radius: 999px; border: 1px solid var(--line);
  color: var(--ink-soft); font-weight: 500; font-size: .88rem; background: var(--card);
}
.channel-tabs a:hover { text-decoration: none; border-color: var(--sunrise); color: var(--ink); }
.channel-tabs a.active { background: var(--primary); border-color: var(--primary); color: #fff; }

.chip {
  display: inline-block; background: var(--field); color: var(--ink-soft);
  border-radius: 6px; padding: 1px 8px; font-size: .74rem; font-weight: 600;
  margin-bottom: 6px;
}
.chip-gold { background: var(--sunrise-soft); color: #8A5A13; }

.featured-story {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 0; padding: 0;
  overflow: hidden; color: var(--ink);
}
.featured-story:hover { text-decoration: none; border-color: var(--sunrise); }
.featured-story img { width: 100%; height: 100%; object-fit: cover; min-height: 260px; }
.featured-body { padding: 22px; }
.featured-body h2 { margin: 6px 0 10px; font-size: 1.5rem; }

.news-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px;
}
.news-card { padding: 0; overflow: hidden; color: var(--ink); display: flex; flex-direction: column; margin: 0; }
.news-card:hover { text-decoration: none; border-color: var(--sunrise); }
.news-card-img { position: relative; }
.news-card-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.play-badge {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 2.2rem; background: rgba(20, 30, 45, .35);
}
.news-card-body { padding: 14px 16px; }
.news-card-body h3 { margin: 4px 0 6px; }
.news-card-body p { margin: 0 0 8px; color: var(--ink-soft); font-size: .9rem; }

.news-mini { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; color: var(--ink); font-size: .9rem; }
.news-mini img { width: 62px; height: 46px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.news-mini .chip { display: block; margin-bottom: 2px; width: fit-content; }

/* Article ---------------------------------------------------- */
.article { max-width: 760px; margin: 0 auto; }
.crumbs { font-size: .88rem; color: var(--ink-soft); }
.article-title { font-size: 2rem; margin: 8px 0 12px; }
.article-title .breaking-tag { vertical-align: 6px; margin-right: 8px; }
.article-byline { display: flex; gap: 10px; align-items: center; color: var(--ink-soft); margin-bottom: 18px; }
.article-cover { margin: 0 0 18px; }
.article-cover img { width: 100%; border-radius: 14px; }
.article-cover figcaption { color: var(--ink-soft); font-size: .84rem; margin-top: 6px; }
.article-summary { font-size: 1.12rem; font-weight: 500; color: var(--ink); }
.article-body { font-size: 1.02rem; line-height: 1.75; margin-bottom: 26px; white-space: pre-line; }

/* Newsroom --------------------------------------------------- */
.mod-row { display: flex; justify-content: space-between; gap: 16px; align-items: center; flex-wrap: wrap; }
.mod-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.role-row { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); }
.role-row span:first-child { flex: 1; }
.role-row select { width: auto; margin: 0; }
.narrow-wide { max-width: 720px; margin-inline: auto; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

@media (max-width: 860px) {
  .featured-story, .form-row { grid-template-columns: 1fr; }
}

/* ============================================================
   Portal front index — Gift-style news homepage
   ============================================================ */
body.portal { background: #F4F6FA; }
.p-strip {
  background: #0A1428; color: #9FB4D6; font: 600 .72rem "Sora";
  letter-spacing: .12em; display: flex; justify-content: center; gap: 34px;
  padding: 7px 16px; border-bottom: 3px solid var(--sunrise);
}
.p-masthead { background: #fff; border-bottom: 1px solid var(--line); }
.p-masthead-inner {
  max-width: 1140px; margin: 0 auto; padding: 14px 18px;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.p-logo { display: flex; align-items: center; gap: 14px; color: var(--ink); }
.p-logo:hover { text-decoration: none; }
.p-logo img { display: block; height: 64px; width: auto; }
.p-title { display: flex; flex-direction: column; line-height: 1.15; }
.p-title strong { font: 800 1.5rem "Sora"; color: #14325E; }
.p-title em { font-style: normal; font-size: .82rem; color: var(--ink-soft); }
.p-search { display: flex; gap: 8px; flex: 1; max-width: 380px; margin-left: auto; }
.p-search input { margin: 0; }
.p-auth { display: flex; gap: 8px; }

.p-nav { background: #fff; border-bottom: 2px solid #14325E; }
.p-nav-inner {
  max-width: 1140px; margin: 0 auto; padding: 0 18px;
  display: flex; gap: 4px; overflow-x: auto; white-space: nowrap;
}
.p-nav-inner a {
  padding: 10px 12px; color: #14325E; font: 600 .86rem "Inter";
}
.p-nav-inner a:hover, .p-nav-inner a.active {
  color: var(--sunrise); text-decoration: none; box-shadow: inset 0 -3px 0 var(--sunrise);
}

.p-banner {
  max-width: 1140px; margin: 16px auto 0; padding: 10px 20px;
  background: linear-gradient(90deg, #14325E, #1D4E79 55%, #7B2FA8);
  color: #fff; border-radius: 10px; font-size: .92rem;
}
.p-page { max-width: 1140px; margin: 0 auto; padding: 18px; }

.p-chip {
  display: inline-block; background: #C8102E; color: #fff; border-radius: 4px;
  padding: 1px 8px; font: 700 .68rem "Sora"; letter-spacing: .06em; margin-bottom: 6px;
}
/* Hero ------------------------------------------------------- */
.p-hero { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; margin-bottom: 30px; }
.p-hero-main {
  position: relative; border-radius: 16px; overflow: hidden; display: block;
  min-height: 380px; background: #14325E; box-shadow: var(--shadow);
}
.p-hero-main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.p-hero-main:hover { text-decoration: none; }
.p-hero-overlay {
  position: absolute; inset: auto 0 0 0; padding: 26px 24px 20px;
  background: linear-gradient(transparent, rgba(6, 14, 30, .88) 55%);
  color: #fff;
}
.p-hero-overlay h1 { margin: 4px 0 8px; font-size: 1.7rem; color: #fff; }
.p-hero-overlay p { margin: 0 0 8px; color: #D9E3F2; }
.p-hero-meta { font-size: .82rem; color: #AFC3E0; }
.p-hero-side { display: flex; flex-direction: column; gap: 10px; }
.p-side-card {
  display: flex; gap: 10px; background: #fff; border: 1px solid var(--line);
  border-radius: 12px; padding: 10px; color: var(--ink); flex: 1;
}
.p-side-card:hover { text-decoration: none; border-color: var(--sunrise); }
.p-side-card img { width: 84px; height: 66px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.p-side-card strong { display: block; font-size: .86rem; line-height: 1.3; }
.p-side-card p { margin: 3px 0 0; font-size: .76rem; color: var(--ink-soft); }

/* World Desk ------------------------------------------------- */
.p-section-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.p-section-head h2 { margin: 0; font-size: 1.4rem; color: #14325E; }
.p-desk { display: grid; grid-template-columns: 1fr 280px; gap: 22px; }
.p-desk-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px; margin-top: 14px;
}
.p-desk-card { padding: 0; overflow: hidden; margin: 0; color: var(--ink); }
.p-desk-card:hover { text-decoration: none; border-color: var(--sunrise); }
.p-rank { display: flex; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); color: var(--ink); font-size: .88rem; font-weight: 500; }
.p-rank:first-of-type { border-top: 0; }
.p-rank .muted { display: block; font-size: .76rem; }
.p-rank-num {
  width: 24px; height: 24px; border-radius: 50%; background: #14325E; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font: 700 .78rem "Sora"; flex-shrink: 0;
}
/* Video band ------------------------------------------------- */
.p-video-band { background: #0A1428; color: #E7EEF9; padding: 30px 0 36px; margin-top: 30px; }
.p-video-band .p-section-head h2 { color: #fff; }
.p-video-sub { color: #8FA6CC; margin-top: 4px; }
.p-video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-top: 16px; }
.p-video-card {
  position: relative; border-radius: 14px; overflow: hidden; display: block;
  aspect-ratio: 16 / 10; background: #142544;
}
.p-video-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.p-video-card:hover { text-decoration: none; outline: 2px solid var(--sunrise); }
.p-video-title {
  position: absolute; inset: auto 0 0 0; padding: 26px 12px 10px; color: #fff;
  font-weight: 600; font-size: .9rem;
  background: linear-gradient(transparent, rgba(5, 10, 22, .9));
}
/* Photo Window ----------------------------------------------- */
.p-photo-band { background: #fff; border-top: 1px solid var(--line); padding: 26px 0 34px; }
.p-photo-band h2 { color: #14325E; margin: 0; }
.p-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin-top: 14px; }
.p-photo { position: relative; border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 10; display: block; }
.p-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.p-photo span {
  position: absolute; inset: auto 0 0 0; padding: 18px 8px 6px; color: #fff; font-size: .72rem;
  background: linear-gradient(transparent, rgba(10, 20, 40, .85));
}
.p-photo:hover { outline: 2px solid var(--sunrise); }
/* Portal footer ---------------------------------------------- */
.p-footer { background: #0A1428; color: #B9C8E2; padding: 34px 18px 20px; }
.p-footer h4 { color: #fff; margin: 0 0 8px; font-family: "Sora"; }
.p-footer-cols {
  max-width: 1140px; margin: 0 auto; display: grid;
  grid-template-columns: 1fr auto 1fr; gap: 34px; align-items: center;
}
.p-footer-seal img { display: block; }
.p-footer-line {
  max-width: 1140px; margin: 24px auto 0; text-align: center;
  border-top: 1px solid #22304F; padding-top: 14px; font-size: .82rem; color: #7E92B8;
}
@media (max-width: 900px) {
  .p-hero, .p-desk, .p-footer-cols { grid-template-columns: 1fr; }
  .p-footer-seal { justify-self: center; }
  .p-search { max-width: none; order: 3; width: 100%; }
}


/* ============================================================
   Unified portal layout for ALL pages
   ============================================================ */
.page { max-width: 1140px; }
.p-nav-sep {
  width: 1px; align-self: stretch; margin: 8px 6px;
  background: var(--line); flex-shrink: 0;
}
.p-banner-wrap { max-width: 1140px; margin: 0 auto; padding: 0 18px; }
.p-banner-wrap .p-banner { margin: 16px 0 0; }
.full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }
.p-band-inner { max-width: 1140px; margin: 0 auto; padding: 0 18px; }
.me-link { color: var(--ink); font-weight: 600; display: flex; align-items: center; gap: 8px; }
.p-auth { align-items: center; }
@media (max-width: 900px) {
  .p-auth { flex-wrap: wrap; }
}

/* ============================================================
   HTML stories & embedded existing HRW pages
   ============================================================ */
.embed-frame-wrap { margin: 6px 0 22px; }
.embed-frame {
  width: 100%; height: 78vh; min-height: 560px; border: 1px solid var(--line);
  border-radius: 14px; background: #fff;
}
.embed-open { text-align: right; margin-top: 6px; }
.article-html { white-space: normal; }
.article-html img { max-width: 100%; height: auto; border-radius: 10px; }
.article-html iframe { max-width: 100%; }
.article-html table { max-width: 100%; border-collapse: collapse; }

/* ============================================================
   Facebook embeds
   ============================================================ */
.fb-embed { margin: 10px 0; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--line); }
.fb-embed iframe { display: block; width: 100%; border: 0; }
.fb-embed-video iframe { aspect-ratio: 16 / 10; min-height: 340px; }
.fb-embed-post iframe { height: 560px; }
.fb-page-card iframe { width: 100%; }
@media (max-width: 600px) { .fb-embed-post iframe { height: 620px; } }
