/* Liberia Championship Theme for Direktor (ASC 2026 — Monrovia, Liberia) */
/* Optimized for Desktop Mode & Natural Content Widths: Zero awkward empty space */

:root {
  --asg-navy: #002868;
  --asg-navy-dark: #001f52;
  --asg-navy-light: #0d3b82;
  --asg-red: #bf0a30;
  --asg-gold: #d4af37;
  --asg-bg: #f0f4f8;
  --asg-card-bg: #ffffff;
  --asg-border: #cbd5e1;
  --asg-border-light: #e2e8f0;
  --asg-text: #0f172a;
  --asg-text-muted: #64748b;
  --asg-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

html {
  background-color: var(--asg-bg) !important;
}

body:not(.scoreboard) {
  font-family: var(--asg-font) !important;
  background-color: var(--asg-bg) !important;
  color: var(--asg-text) !important;
  margin: 0 auto !important;
  padding: 12px 16px 36px 16px !important;
  line-height: 1.5 !important;
  -webkit-font-smoothing: antialiased;
}

/* =================================================== */
/* HEADER & BANNER                                     */
/* =================================================== */
.banner-container {
  text-align: center !important;
  margin: 0 auto 10px auto !important;
  max-width: 780px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.banner-container img {
  max-width: 100% !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 16px rgba(0, 40, 104, 0.12) !important;
  border: 1px solid var(--asg-border) !important;
  display: block !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* Announcement Ticker */
#asg-ticker-wrap,
.ticker-bar {
  background: var(--asg-navy) !important;
  border-left: 5px solid var(--asg-gold) !important;
  border-radius: 6px !important;
  padding: 9px 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 8px auto 12px auto !important;
  max-width: 780px !important;
  color: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  box-sizing: border-box !important;
}

.ticker-badge {
  background: var(--asg-red) !important;
  color: #ffffff !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  padding: 4px 9px !important;
  border-radius: 4px !important;
  white-space: nowrap !important;
}

.ticker-content {
  font-size: 0.88rem !important;
  font-weight: 500 !important;
  color: #f8fafc !important;
  flex: 1 !important;
}

/* Breadcrumb / Backref */
p.backref {
  text-align: center !important;
  margin: 6px auto 10px auto !important;
  max-width: 780px !important;
  width: 100% !important;
  font-family: var(--asg-font) !important;
  font-size: 0.88rem !important;
  color: #64748b !important;
  box-sizing: border-box !important;
  line-height: 1.4 !important;
}

body.article p.backref {
  max-width: 740px !important;
}

p.backref a {
  display: inline !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #1d4ed8 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: color 0.15s ease !important;
}

p.backref a:hover {
  background: none !important;
  border: none !important;
  color: var(--asg-red) !important;
  text-decoration: underline !important;
}

/* Headings */
h1 {
  text-align: center !important;
  color: var(--asg-navy) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  margin: 8px auto 12px auto !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

h2 {
  text-align: center !important;
  color: var(--asg-navy-light) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  margin: 12px auto !important;
}

/* =================================================== */
/* ROSTERS & ENTRANTS TABLE (SNUG & BALANCED)          */
/* =================================================== */
table.rosters,
table.entrants {
  margin: 16px auto 24px auto !important;
  width: auto !important;
  min-width: 580px !important;
  max-width: 720px !important;
  background: var(--asg-card-bg) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 3px 14px rgba(0, 40, 104, 0.08) !important;
  border: 1px solid var(--asg-border) !important;
}

/* Division Title Header Row */
tr.top1 th.division {
  background: linear-gradient(180deg, var(--asg-navy-dark) 0%, var(--asg-navy) 100%) !important;
  font-size: 1.15rem !important;
  text-align: center !important;
  padding: 13px !important;
  letter-spacing: 0.05em !important;
  border-bottom: 2px solid var(--asg-gold) !important;
  color: #ffffff !important;
}

tr.top2 th {
  background: var(--asg-navy-light) !important;
  font-size: 0.8rem !important;
  padding: 10px 14px !important;
  color: #ffffff !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  letter-spacing: 0.03em !important;
  border-bottom: 2px solid var(--asg-gold) !important;
}

table.rosters td,
table.entrants td {
  padding: 10px 14px !important;
  border-bottom: 1px solid var(--asg-border-light) !important;
  font-size: 0.92rem !important;
  vertical-align: middle !important;
}

table.rosters tr:last-child td,
table.entrants tr:last-child td {
  border-bottom: none !important;
}

table.rosters tr:nth-child(even) td,
table.entrants tr:nth-child(even) td {
  background: #f8fafc !important;
}

table.rosters tr:hover td,
table.entrants tr:hover td {
  background: #edf4fc !important;
}

/* Specific Columns for Rosters / Entrants */
table.rosters th,
table.entrants th {
  color: #ffffff !important;
}

/* Rank Column */
table.rosters th.rank, table.entrants th.rank {
  text-align: center !important;
  width: 48px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
}
table.rosters td.rank, table.entrants td.rank {
  text-align: center !important;
  width: 48px !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
}

/* Rating Column */
table.rosters th.rating, table.entrants th.rating {
  text-align: center !important;
  width: 80px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
}
table.rosters td.rating, table.entrants td.rating {
  text-align: center !important;
  width: 80px !important;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace !important;
  font-weight: 700 !important;
  color: #1e293b !important;
  background: #f1f5f9 !important;
  border-radius: 4px !important;
  padding: 4px 8px !important;
}

/* Team Column */
table.rosters th.team, table.entrants th.team {
  text-align: center !important;
  width: 65px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  color: #ffffff !important;
}
table.rosters td.team, table.entrants td.team {
  text-align: center !important;
  width: 65px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  color: var(--asg-navy) !important;
}

/* Photo Column */
table.rosters th.photo, table.entrants th.photo {
  text-align: center !important;
  width: 58px !important;
  color: #ffffff !important;
  padding: 6px !important;
}
table.rosters td.photo, table.entrants td.photo {
  text-align: center !important;
  width: 58px !important;
  padding: 6px !important;
}

table.rosters td.photo img,
table.entrants td.photo img {
  width: 40px !important;
  height: 40px !important;
  border-radius: 6px !important;
  object-fit: cover !important;
  vertical-align: middle !important;
  border: 1.5px solid #cbd5e1 !important;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.12) !important;
}

/* Player Column */
table.rosters th.player, table.entrants th.player {
  text-align: left !important;
  padding-left: 14px !important;
  padding-right: 20px !important;
  font-size: 0.8rem !important;
  color: #ffffff !important;
  white-space: nowrap !important;
}
table.rosters td.player, table.entrants td.player {
  text-align: left !important;
  padding-left: 14px !important;
  padding-right: 20px !important;
  font-size: 0.95rem !important;
  white-space: nowrap !important;
}

table.rosters td.player span.name,
table.entrants td.player span.name {
  font-weight: 700 !important;
  color: #0f172a !important;
}

/* =================================================== */
/* EVENT COVERAGE INDEX - AUTHENTIC CENTERED DIREKTOR LAYOUT */
/* ========================================================== */
table.index {
  margin: 18px auto 36px auto !important;
  width: auto !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  text-align: center !important;
}

table.index tr,
table.index tr.top,
table.index tr.round0,
table.index tr.round {
  text-align: center !important;
}

/* Links stacked vertically inside their cells, centered */
table.index div.link {
  display: block !important;
  margin: 3px auto !important;
  padding: 0 !important;
  text-align: center !important;
}

table.index div.link a {
  display: inline-block !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-width: auto !important;
  padding: 1px 0 !important;
  font-family: var(--asg-font) !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  color: #1d4ed8 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  transition: color 0.15s ease !important;
  white-space: nowrap !important;
  text-align: center !important;
}

table.index div.link a:hover {
  background: transparent !important;
  color: var(--asg-red) !important;
  text-decoration: underline !important;
}

/* tr.top: Centered vertical stack of top-level tournament reports */
table.index tr.top td.links {
  background: transparent !important;
  border: none !important;
  padding: 6px 0 20px 0 !important;
  text-align: center !important;
}

table.index tr.top div.link {
  display: block !important;
  margin: 4px auto !important;
  text-align: center !important;
}

table.index tr.top div.link a {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #1d4ed8 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  text-align: center !important;
}

/* Left column (Round numbers & Round 0 spacer) */
table.index td.round {
  display: table-cell !important;
  white-space: nowrap !important;
  text-align: center !important;
  vertical-align: top !important;
  padding: 4px 20px 14px 20px !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  font-size: 1.0rem !important;
}

/* Right column (Report & Round links) */
table.index td.links {
  background: transparent !important;
  text-align: center !important;
  vertical-align: top !important;
  padding: 4px 20px 14px 20px !important;
  line-height: 1.6 !important;
}

/* General reports spacing */
table.index tr.round0 td.round {
  padding-bottom: 20px !important;
  text-align: center !important;
}

table.index tr.round0 td.links {
  padding-bottom: 20px !important;
  text-align: center !important;
}

/* Round rows spacing */
table.index tr.round td.round {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  border-top: 1px solid var(--asg-border-light) !important;
  text-align: center !important;
}

table.index tr.round td.links {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  border-top: 1px solid var(--asg-border-light) !important;
  text-align: center !important;
}

/* Player photos */
img.player-photo {
  border-radius: 4px !important;
  object-fit: cover !important;
  vertical-align: middle !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) !important;
}

/* =================================================== */
/* UNIFIED TOURNAMENT REPORT TABLES (STANDINGS CARD)   */
/* =================================================== */
table.standings,
table.matchups,
table.pairings,
table.pairings_a_z,
table.team_pairings,
table.teams,
table.team_standings,
table.team_roster,
table.team_scorecard,
table.total_teams,
table.ratings,
table.scores,
table.stats,
table.stubs,
table.big_margins,
table.heavy_losses,
table.high_scores,
table.high_total_scores,
table.history,
table.low_wins,
table.lucky,
table.narrow_losses,
table.opponent_avg,
table.peak_totals,
table.rating_upsets,
table.scoring_avg,
table.thin_margins,
table.tough,
body.lbr:not(.scoreboard) table.scorecard,
body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) {
  margin: 16px auto 24px auto !important;
  width: auto !important;
  max-width: 1100px !important;
  background: var(--asg-card-bg) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 3px 14px rgba(0, 40, 104, 0.08) !important;
  border: 1px solid var(--asg-border) !important;
}

table.standings th,
table.matchups th,
table.pairings th,
table.pairings_a_z th,
table.team_pairings th,
table.teams th,
table.team_standings th,
table.team_roster th,
table.team_scorecard th,
table.total_teams th,
table.ratings th,
table.scores th,
table.stats th,
table.stubs th,
table.big_margins th,
table.heavy_losses th,
table.high_scores th,
table.high_total_scores th,
table.history th,
table.low_wins th,
table.lucky th,
table.narrow_losses th,
table.opponent_avg th,
table.peak_totals th,
table.rating_upsets th,
table.scoring_avg th,
table.thin_margins th,
table.tough th,
body.lbr:not(.scoreboard) table.scorecard th,
body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) th {
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: none !important;
  letter-spacing: 0.03em !important;
  padding: 10px 14px !important;
  border-bottom: 2px solid var(--asg-gold) !important;
  vertical-align: middle !important;
  line-height: 1.3 !important;
}

@media screen {
  body.lbr table.noscreenhead tr.top1 th {
    display: table-cell !important;
  }
  body.lbr table.noscreenhead tr.top1 {
    display: table-row !important;
  }
}

table.standings td,
table.matchups td,
table.pairings td,
table.pairings_a_z td,
table.team_pairings td,
table.teams td,
table.team_standings td,
table.team_roster td,
table.team_scorecard td,
table.total_teams td,
table.ratings td,
table.scores td,
table.stats td,
table.stubs td,
table.big_margins td,
table.heavy_losses td,
table.high_scores td,
table.high_total_scores td,
table.history td,
table.low_wins td,
table.lucky td,
table.narrow_losses td,
table.opponent_avg td,
table.peak_totals td,
table.rating_upsets td,
table.scoring_avg td,
table.thin_margins td,
table.tough td,
body.lbr:not(.scoreboard) table.scorecard td,
body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) td {
  padding: 8px 14px !important;
  border-bottom: 1px solid var(--asg-border-light) !important;
  font-size: 0.92rem !important;
  vertical-align: middle !important;
  color: var(--asg-text) !important;
}

/* Neutralize legacy beige background from Direktor.css */
body.lbr tr.odd,
body.lbr tr.even {
  background-color: transparent !important;
}

/* Subtle clean alternating rows (like Standings) */
body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) tr:nth-child(even) td,
body.lbr:not(.scoreboard) tr.even td {
  background-color: #f8fafc !important;
}

body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) tr:nth-child(odd) td,
body.lbr:not(.scoreboard) tr.odd td {
  background-color: #ffffff !important;
}

/* Row Hover effect across all tournament tables */
body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) tr:hover td {
  background-color: #edf4fc !important;
}

body.lbr:not(.scoreboard) table:not(.index):not(.announcements_table) tr:last-child td {
  border-bottom: none !important;
}

/* Statistics Table Refinement */
table.stats {
  min-width: 440px !important;
  max-width: 560px !important;
}

table.stats th.empty {
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  text-align: left !important;
  padding-left: 18px !important;
}

table.stats th.empty::before {
  content: "Tournament Metric";
  display: inline-block;
  font-weight: 700;
  color: #ffffff;
}

table.stats th.division {
  text-align: right !important;
  padding-right: 18px !important;
  font-size: 0.9rem !important;
}

table.stats td.label {
  text-align: left !important;
  font-weight: 600 !important;
  color: #1e293b !important;
  padding: 9px 18px !important;
}

table.stats td.stat {
  text-align: right !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  padding: 9px 18px !important;
  font-variant-numeric: tabular-nums !important;
}

/* Matchups & Pairings Column Alignment */
table.matchups th.board,
table.matchups td.board,
table.pairings_a_z th.board,
table.pairings_a_z td.board,
table.team_pairings th.board,
table.team_pairings td.board {
  text-align: center !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  width: 50px !important;
}

table.matchups td.name,
table.pairings_a_z td.name,
table.team_pairings td.name {
  text-align: left !important;
  padding: 8px 14px !important;
}

table.matchups td.name.right,
table.pairings_a_z td.name.right,
table.team_pairings td.name.right {
  text-align: right !important;
}

table.matchups span.starts {
  color: var(--asg-red) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
}

/* Team Totals Alignment */
table.total_teams td.rank,
table.total_teams th.rank {
  text-align: center !important;
  font-weight: 700 !important;
  width: 50px !important;
}

table.total_teams td.wl,
table.total_teams th.wl {
  text-align: center !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
}

table.total_teams td.spread,
table.total_teams th.spread {
  text-align: right !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
}

table.total_teams td.spread:nth-of-type(7),
table.total_teams th.spread:nth-of-type(7) {
  text-align: center !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
}

table.total_teams td.name,
table.total_teams th.name {
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
}

table.total_teams td.ranks,
table.total_teams th.ranks {
  text-align: left !important;
  font-size: 0.85rem !important;
  color: #475569 !important;
}

/* Extreme Games & Scores Tables */
table.big_margins th.round,
table.big_margins td.round,
table.heavy_losses th.round,
table.heavy_losses td.round,
table.high_scores th.round,
table.high_scores td.round,
table.high_total_scores th.round,
table.high_total_scores td.round,
table.low_wins th.round,
table.low_wins td.round,
table.lucky th.round,
table.lucky td.round,
table.narrow_losses th.round,
table.narrow_losses td.round,
table.opponent_avg th.round,
table.opponent_avg td.round,
table.peak_totals th.round,
table.peak_totals td.round,
table.rating_upsets th.round,
table.rating_upsets td.round,
table.scoring_avg th.round,
table.scoring_avg td.round,
table.thin_margins th.round,
table.thin_margins td.round,
table.tough th.round,
table.tough td.round {
  text-align: center !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  width: 55px !important;
}

table.big_margins th.score,
table.big_margins td.score,
table.heavy_losses th.score,
table.heavy_losses td.score,
table.high_scores th.score,
table.high_scores td.score,
table.high_total_scores th.score,
table.high_total_scores td.score,
table.low_wins th.score,
table.low_wins td.score,
table.narrow_losses th.score,
table.narrow_losses td.score,
table.thin_margins th.score,
table.thin_margins td.score {
  text-align: right !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
}

/* Scores Table */
table.scores td.name {
  text-align: left !important;
}

table.scores td.score {
  text-align: right !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  font-variant-numeric: tabular-nums !important;
}

table.scores td.spread {
  text-align: right !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
}

/* Specific alignments for National Teams table */
table.teams td.rank,
table.teams th.rank {
  text-align: center !important;
  font-weight: 700 !important;
}

table.teams td.wl,
table.teams th.wl {
  text-align: center !important;
  font-weight: 600 !important;
}

table.teams td.spread,
table.teams th.spread {
  text-align: right !important;
  font-weight: 600 !important;
}

table.teams td.mean_wl,
table.teams th.mean_wl {
  text-align: center !important;
}

table.teams td.mean_spread,
table.teams th.mean_spread,
table.teams td.wpvso,
table.teams th.wpvso,
table.teams td.mean_rank,
table.teams th.mean_rank {
  text-align: right !important;
}

table.teams td.team,
table.teams th.team {
  text-align: center !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
}

table.teams td.ranks,
table.teams th.ranks {
  text-align: left !important;
  font-size: 0.85rem !important;
  color: #475569 !important;
}

/* Country Flags & Badges */
.country-flag-badge {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  margin-right: 8px !important;
}

.country-flag-badge img.flag-icon {
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12) !important;
  border-radius: 2px !important;
  vertical-align: middle !important;
}

.country-code {
  font-weight: 800 !important;
  font-size: 0.8rem !important;
  color: var(--asg-navy) !important;
  margin-left: 3px !important;
}

.country-badge {
  display: inline-block !important;
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
  font-weight: 800 !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.04em !important;
}

/* Notice / Footer */
p.notice {
  text-align: center !important;
  font-size: 0.78rem !important;
  color: var(--asg-text-muted) !important;
  margin: 8px auto !important;
}

/* =================================================== */
/* NATIONAL TEAMS & DELEGATIONS                        */
/* =================================================== */
table.teams_directory {
  margin: 16px auto 24px auto !important;
  width: auto !important;
  min-width: 540px !important;
  max-width: 680px !important;
  background: var(--asg-card-bg) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 3px 14px rgba(0, 40, 104, 0.08) !important;
  border: 1px solid var(--asg-border) !important;
}

table.teams_directory th {
  color: #ffffff !important;
}

table.teams_directory th.rank {
  text-align: center !important;
  width: 48px !important;
  font-weight: 800 !important;
  font-size: 0.8rem !important;
  color: #ffffff !important;
}

table.teams_directory td.rank {
  text-align: center !important;
  width: 48px !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
}

table.teams_directory th.flag {
  text-align: center !important;
  width: 58px !important;
  padding: 8px 6px !important;
  font-size: 0.8rem !important;
  color: #ffffff !important;
}

table.teams_directory td.flag {
  text-align: center !important;
  width: 58px !important;
  padding: 8px 6px !important;
}

table.teams_directory td.flag img.flag-icon {
  border: 1px solid rgba(0, 0, 0, 0.18) !important;
  border-radius: 3px !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15) !important;
  vertical-align: middle !important;
}

table.teams_directory th.country {
  text-align: left !important;
  padding-left: 14px !important;
  font-size: 0.8rem !important;
  color: #ffffff !important;
}

table.teams_directory td.country {
  text-align: left !important;
  padding-left: 14px !important;
  font-size: 1rem !important;
}

table.teams_directory td.country a {
  color: var(--asg-navy) !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}

table.teams_directory td.country a:hover {
  color: var(--asg-red) !important;
  text-decoration: underline !important;
}

table.teams_directory th.capital {
  text-align: left !important;
  padding-left: 12px !important;
  font-size: 0.8rem !important;
  color: #ffffff !important;
}

table.teams_directory td.capital {
  text-align: left !important;
  padding-left: 12px !important;
  font-size: 0.92rem !important;
  color: #1e293b !important;
  font-weight: 500 !important;
}

table.teams_directory th.roster-link {
  text-align: center !important;
  width: 120px !important;
  padding: 8px 12px !important;
  font-size: 0.8rem !important;
  color: #ffffff !important;
}

table.teams_directory td.roster-link {
  text-align: center !important;
  width: 120px !important;
  padding: 8px 12px !important;
}

table.teams_directory a.team-btn {
  display: inline-block !important;
  padding: 5px 12px !important;
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  border-radius: 4px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}

table.teams_directory a.team-btn:hover {
  background: var(--asg-red) !important;
  transform: translateY(-1px) !important;
}

/* Individual Team Header (Clean & Integrated) */
.team-header-card {
  text-align: center !important;
  margin: 14px auto 18px auto !important;
  padding: 4px 0 8px 0 !important;
  max-width: 680px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

.team-flag-hero {
  margin-bottom: 8px !important;
}

.team-flag-hero img.hero-flag {
  width: 64px !important;
  height: 42px !important;
  border-radius: 4px !important;
  border: 1px solid rgba(0, 0, 0, 0.2) !important;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) !important;
  object-fit: cover !important;
  display: inline-block !important;
}

h1.team-title {
  margin: 4px 0 6px 0 !important;
  color: var(--asg-navy) !important;
  font-size: 1.65rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

.team-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 8px 14px !important;
  color: #475569 !important;
  font-size: 0.92rem !important;
}

.team-meta .meta-item strong {
  color: var(--asg-navy) !important;
}

.team-meta .meta-separator {
  color: var(--asg-gold) !important;
  font-weight: bold !important;
}


/* =================================================== */
/* OFFICIAL ANNOUNCEMENTS & BULLETINS                  */
/* =================================================== */
table.announcements_table {
  margin: 20px auto 28px auto !important;
  width: auto !important;
  min-width: 540px !important;
  max-width: 680px !important;
  background: var(--asg-card-bg) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 3px 14px rgba(0, 40, 104, 0.08) !important;
  border: 1px solid var(--asg-border) !important;
}

table.announcements_table th.ann-header {
  background: linear-gradient(180deg, var(--asg-navy-dark) 0%, var(--asg-navy) 100%) !important;
  font-size: 1.05rem !important;
  text-align: center !important;
  padding: 12px 16px !important;
  letter-spacing: 0.04em !important;
  border-bottom: 2px solid var(--asg-gold) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
}

table.announcements_table tr.ann-item td {
  padding: 15px 20px !important;
  border-bottom: 1px solid var(--asg-border-light) !important;
  text-align: left !important;
  vertical-align: top !important;
  background: #ffffff !important;
}

table.announcements_table tr.ann-item:last-child td {
  border-bottom: none !important;
}

table.announcements_table tr.ann-item:hover td {
  background: #f8fafc !important;
}

table.announcements_table .ann-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 6px !important;
}

table.announcements_table .ann-badge {
  display: inline-block !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 2px 8px !important;
  border-radius: 3px !important;
  background: var(--asg-navy-light) !important;
  color: #ffffff !important;
}

table.announcements_table .ann-badge.urgent {
  background: var(--asg-red) !important;
  color: #ffffff !important;
}

table.announcements_table .ann-date {
  font-size: 0.78rem !important;
  color: #64748b !important;
  font-weight: 600 !important;
}

table.announcements_table .ann-title {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.35 !important;
}

table.announcements_table .ann-body {
  font-size: 0.88rem !important;
  color: #334155 !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

table.announcements_table a.ann-link {
  color: #1d4ed8 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

table.announcements_table a.ann-link:hover {
  color: var(--asg-red) !important;
}

table.announcements_table a.ann-btn {
  display: inline-block !important;
  margin-top: 9px !important;
  padding: 6px 14px !important;
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  border-radius: 4px !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}

table.announcements_table a.ann-btn:hover {
  background: var(--asg-red) !important;
}

/* Static fallback ticker bar (Direktor native) */
.ticker-bar {
  max-width: 680px !important;
  margin: 12px auto !important;
  background: linear-gradient(90deg, #091a36 0%, #13294b 50%, #091a36 100%) !important;
  border: 1px solid var(--asg-gold) !important;
  border-radius: 6px !important;
  padding: 6px 12px !important;
  color: #ffffff !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 0.85rem !important;
}

.ticker-badge {
  background: var(--asg-gold) !important;
  color: var(--asg-navy) !important;
  font-weight: 800 !important;
  font-size: 0.72rem !important;
  padding: 2px 7px !important;
  border-radius: 3px !important;
  text-transform: uppercase !important;
}

.ticker-content {
  color: #ffffff !important;
  font-weight: 500 !important;
}


/* =================================================== */
/* PLAYER TITLE COMPONENT BADGES (GM, EXP, CC, ETC.)   */
/* =================================================== */
.player-title {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 2px 6px !important;
  font-size: 0.7rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  border-radius: 3px !important;
  vertical-align: middle !important;
  margin-left: 6px !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16) !important;
  user-select: none !important;
  white-space: nowrap !important;
}

/* Grandmaster (GM) - Ruby / Crimson Red */
.player-title.title-gm {
  background: linear-gradient(135deg, #dc2626 0%, #991b1b 100%) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
}

/* Continental Champion (CC) - African Continental Gold / Amber */
.player-title.title-cc {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
  color: #002868 !important;
  border: 1px solid #d4af37 !important;
  font-weight: 900 !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) !important;
}

/* Junior Continental Champion (JCC) - Emerald / Jade Prestige */
.player-title.title-jcc {
  background: linear-gradient(135deg, #059669 0%, #047857 100%) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  font-weight: 800 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
}

/* Expert (EXP) - Royal Blue / Sapphire */
.player-title.title-exp {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
}

/* World Champion (WC) - Radiant Sunburst */
.player-title.title-wc {
  background: linear-gradient(135deg, #fbbf24 0%, #b45309 100%) !important;
  color: #0f172a !important;
  border: 1px solid #f59e0b !important;
  font-weight: 900 !important;
}

/* Candidate Master (CM) & National Master (NM) */
.player-title.title-cm,
.player-title.title-nm {
  background: linear-gradient(135deg, #0d9488 0%, #0f766e 100%) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

/* Default / Unclassified Title Badge */
.player-title.title-default {
  background: #475569 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}


/* =================================================== */
/* BLOG STORY / NOTICE ARTICLE PAGES (.article)        */
/* =================================================== */
.article-container {
  width: auto !important;
  min-width: 540px !important;
  max-width: 720px !important;
  margin: 16px auto 32px auto !important;
  background: #ffffff !important;
  border: 1px solid var(--asg-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 16px rgba(0, 40, 104, 0.08) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.article-header {
  background: linear-gradient(180deg, var(--asg-navy-dark) 0%, var(--asg-navy) 100%) !important;
  padding: 24px 28px 20px 28px !important;
  border-bottom: 3px solid var(--asg-gold) !important;
  color: #ffffff !important;
  text-align: left !important;
}

.article-meta {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px 14px !important;
  margin-bottom: 12px !important;
}

.article-badge {
  background: var(--asg-gold) !important;
  color: #002868 !important;
  font-size: 0.75rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 3px 10px !important;
  border-radius: 3px !important;
}

.article-badge.urgent {
  background: var(--asg-red) !important;
  color: #ffffff !important;
}

.article-date {
  font-size: 0.82rem !important;
  color: #cbd5e1 !important;
  font-weight: 600 !important;
}

.article-org {
  font-size: 0.82rem !important;
  color: var(--asg-gold) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

h1.article-title {
  margin: 0 !important;
  font-size: 1.45rem !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  color: #ffffff !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}

.article-body {
  padding: 28px 32px !important;
  color: #1e293b !important;
  font-size: 0.95rem !important;
  line-height: 1.7 !important;
  text-align: left !important;
}

.article-body p {
  margin: 0 0 16px 0 !important;
  color: #334155 !important;
}

.article-body h2 {
  font-size: 1.12rem !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
  margin: 24px 0 10px 0 !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid var(--asg-border-light) !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
}

.article-body h3 {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  margin: 16px 0 6px 0 !important;
}

.article-body ul {
  margin: 8px 0 18px 24px !important;
  padding: 0 !important;
}

.article-body li {
  margin-bottom: 8px !important;
  color: #334155 !important;
}

.article-callout {
  background: #f8fafc !important;
  border-left: 4px solid var(--asg-navy) !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 14px 18px !important;
  margin: 20px 0 !important;
  border-top: 1px solid var(--asg-border-light) !important;
  border-right: 1px solid var(--asg-border-light) !important;
  border-bottom: 1px solid var(--asg-border-light) !important;
}

.article-callout.urgent {
  background: #fff8f8 !important;
  border-left-color: var(--asg-red) !important;
}

.article-callout p:last-child {
  margin-bottom: 0 !important;
}

.article-details-grid {
  background: #f1f5f9 !important;
  border: 1px solid var(--asg-border-light) !important;
  border-radius: 6px !important;
  padding: 14px 18px !important;
  margin: 20px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  font-size: 0.9rem !important;
}

.article-details-grid .grid-item strong {
  color: var(--asg-navy) !important;
}

.article-signature {
  margin-top: 32px !important;
  padding-top: 16px !important;
  border-top: 2px dashed var(--asg-border) !important;
  text-align: right !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
}

.article-signature span.sig-title {
  display: block !important;
  font-size: 0.8rem !important;
  color: #64748b !important;
  font-weight: 600 !important;
}

.article-back-bar {
  margin-top: 24px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--asg-border-light) !important;
  text-align: left !important;
}

.article-back-bar a.back-btn {
  display: inline-block !important;
  padding: 7px 16px !important;
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}

.article-back-bar a.back-btn:hover {
  background: var(--asg-red) !important;
}


/* =================================================== */
/* SUBPAGE BANNER OPTIMIZATION                         */
/* =================================================== */
body.index .banner-container {
  text-align: center !important;
  margin: 0 auto 16px auto !important;
  max-width: 680px !important;
  width: 100% !important;
}

body.index .banner-container img {
  width: 100% !important;
  max-width: 680px !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 14px rgba(0, 40, 104, 0.12) !important;
  display: block !important;
  margin: 0 auto !important;
}

body:not(.index) .banner-container {
  text-align: center !important;
  margin: 0 auto 12px auto !important;
  max-width: 480px !important;
  width: 100% !important;
}

body:not(.index) .banner-container img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 110px !important;
  height: auto !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  box-shadow: 0 3px 12px rgba(0, 40, 104, 0.10) !important;
  display: block !important;
  margin: 0 auto !important;
}





/* =================================================== */
/* EDITORIAL BLOG STORY PRESENTATION (.article)        */
/* =================================================== */
.article-container {
  width: auto !important;
  min-width: 540px !important;
  max-width: 740px !important;
  margin: 14px auto 36px auto !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 20px rgba(0, 32, 80, 0.06) !important;
  padding: 36px 44px !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

.article-breadcrumbs {
  font-size: 0.8rem !important;
  color: #64748b !important;
  margin-bottom: 16px !important;
}

.article-breadcrumbs a {
  color: #1d4ed8 !important;
  text-decoration: none !important;
}

.article-breadcrumbs a:hover {
  color: var(--asg-red) !important;
  text-decoration: underline !important;
}

.article-meta-bar {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px 14px !important;
  margin-bottom: 14px !important;
}

.article-badge {
  background: #f1f5f9 !important;
  color: var(--asg-navy) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 3px 9px !important;
  border-radius: 3px !important;
  border: 1px solid #cbd5e1 !important;
}

.article-badge.urgent {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fca5a5 !important;
}

.article-org {
  font-size: 0.8rem !important;
  color: var(--asg-navy) !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

.article-date {
  font-size: 0.82rem !important;
  color: #64748b !important;
  font-weight: 500 !important;
}

.article-read-time {
  font-size: 0.8rem !important;
  color: #94a3b8 !important;
}

h1.article-headline {
  margin: 0 0 16px 0 !important;
  font-size: 1.75rem !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  color: #0f172a !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
}

.article-lead {
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  font-weight: 500 !important;
  margin-bottom: 24px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

.article-body-text {
  color: #334155 !important;
  font-size: 0.98rem !important;
  line-height: 1.75 !important;
}

.article-body-text p {
  margin: 0 0 16px 0 !important;
  color: #334155 !important;
}

.article-body-text h2 {
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
  margin: 30px 0 12px 0 !important;
  border-left: 3px solid var(--asg-gold) !important;
  padding-left: 10px !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
}

.article-body-text h3 {
  font-size: 1.02rem !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  margin: 18px 0 6px 0 !important;
}

.article-body-text ul {
  margin: 8px 0 20px 24px !important;
  padding: 0 !important;
}

.article-body-text li {
  margin-bottom: 8px !important;
  color: #334155 !important;
}

.article-directive-card {
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  border-left: 4px solid #16a34a !important;
  border-radius: 6px !important;
  padding: 16px 20px !important;
  margin: 22px 0 !important;
}

.article-directive-card.urgent {
  background: #fff8f8 !important;
  border-color: #fecaca !important;
  border-left-color: var(--asg-red) !important;
}

.article-directive-card h3 {
  margin: 0 0 8px 0 !important;
  color: #0f172a !important;
  font-size: 1.02rem !important;
}

.article-directive-card p:last-child {
  margin-bottom: 0 !important;
}

.article-info-grid {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  padding: 14px 18px !important;
  margin: 24px 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  font-size: 0.9rem !important;
}

.article-info-grid .info-row strong {
  color: var(--asg-navy) !important;
}

.article-signature-block {
  margin-top: 36px !important;
  padding-top: 18px !important;
  border-top: 2px dashed #e2e8f0 !important;
  text-align: right !important;
  color: var(--asg-navy) !important;
  font-weight: 800 !important;
}

.article-signature-block span.sig-title {
  display: block !important;
  font-size: 0.8rem !important;
  color: #64748b !important;
  font-weight: 600 !important;
}

.article-footer-actions {
  margin-top: 28px !important;
  padding-top: 18px !important;
  border-top: 1px solid #e2e8f0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.article-footer-actions a.btn-secondary {
  display: inline-block !important;
  padding: 7px 16px !important;
  background: #f1f5f9 !important;
  color: #334155 !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}

.article-footer-actions a.btn-secondary:hover {
  background: #e2e8f0 !important;
  color: #0f172a !important;
}

.article-footer-actions a.btn-primary {
  display: inline-block !important;
  padding: 7px 18px !important;
  background: var(--asg-navy) !important;
  color: #ffffff !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  transition: all 0.15s ease !important;
}

.article-footer-actions a.btn-primary:hover {
  background: var(--asg-red) !important;
}

/* =================================================== */
/* EVENT COVERAGE: CALM COUNTDOWN & OFFICIAL BULLETIN  */
/* =================================================== */

/* Clean, Calm Accreditation Countdown Bar */
.asc-countdown-calm {
  max-width: 680px !important;
  width: 100% !important;
  margin: 16px auto 24px auto !important;
  background: #ffffff !important;
  border: 1px solid var(--asg-border) !important;
  border-top: 3px solid var(--asg-navy) !important;
  border-radius: 6px !important;
  padding: 14px 20px 12px 20px !important;
  text-align: center !important;
  box-shadow: 0 1px 4px rgba(0, 40, 104, 0.05) !important;
  box-sizing: border-box !important;
}

.asc-countdown-calm .cd-label {
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--asg-navy) !important;
  margin-bottom: 6px !important;
}

.asc-countdown-calm .cd-timer {
  display: flex !important;
  justify-content: center !important;
  align-items: baseline !important;
  gap: 12px !important;
  margin: 4px 0 !important;
}

.asc-countdown-calm .cd-unit-box {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 3px !important;
}

.asc-countdown-calm .cd-num {
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums !important;
  font-family: var(--asg-font) !important;
}

.asc-countdown-calm .cd-unit {
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  color: #64748b !important;
  text-transform: lowercase !important;
}

.asc-countdown-calm .cd-sep {
  color: #cbd5e1 !important;
  font-size: 1.25rem !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  margin: 0 1px !important;
  user-select: none !important;
}

.asc-countdown-calm .cd-sub {
  margin-top: 8px !important;
  padding-top: 8px !important;
  border-top: 1px solid #f1f5f9 !important;
  font-size: 0.78rem !important;
  color: #64748b !important;
}

/* Bulletin / Communique Styling */
.bulletin-container {
  padding: 6px 4px !important;
}

.bulletin-meta-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin-bottom: 12px !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid var(--asg-border-light) !important;
}

.bulletin-source {
  font-size: 0.76rem !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

.bulletin-date {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: #64748b !important;
}

.bulletin-title {
  font-size: 1.12rem !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
  line-height: 1.35 !important;
  margin: 0 0 4px 0 !important;
}

.bulletin-subtitle {
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  color: #64748b !important;
  margin: 0 0 16px 0 !important;
}

/* Official Flyer in Bulletin - Centered, Crisp, Zero Clutter */
.bulletin-flyer-wrap {
  text-align: center !important;
  margin: 16px auto 22px auto !important;
  max-width: 440px !important;
}

.bulletin-flyer-wrap a {
  display: block !important;
  text-decoration: none !important;
}

.bulletin-flyer-wrap img {
  width: 100% !important;
  height: auto !important;
  border-radius: 6px !important;
  border: 1px solid var(--asg-border) !important;
  box-shadow: 0 2px 10px rgba(0, 40, 104, 0.08) !important;
  display: block !important;
  margin: 0 auto !important;
}

/* Communique Text Content */
.bulletin-body {
  font-size: 0.9rem !important;
  color: #334155 !important;
  line-height: 1.6 !important;
}

.bulletin-body p {
  margin: 0 0 14px 0 !important;
}

.bulletin-section-head {
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--asg-navy) !important;
  margin: 18px 0 8px 0 !important;
}

.bulletin-details-table {
  width: 100% !important;
  max-width: 100% !important;
  border-collapse: collapse !important;
  margin: 0 0 16px 0 !important;
  background: #f8fafc !important;
  border: 1px solid var(--asg-border-light) !important;
  border-radius: 4px !important;
}

.bulletin-details-table tr {
  border-bottom: 1px solid var(--asg-border-light) !important;
}

.bulletin-details-table tr:last-child {
  border-bottom: none !important;
}

.bulletin-details-table th {
  padding: 8px 12px !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  width: 130px !important;
  text-align: left !important;
  vertical-align: top !important;
  background: transparent !important;
  border: none !important;
}

.bulletin-details-table td {
  padding: 8px 12px !important;
  font-size: 0.86rem !important;
  color: #1e293b !important;
  text-align: left !important;
  background: transparent !important;
  border: none !important;
}

/* Calm, Authoritative Payment Deadline Callout */
.bulletin-deadline-callout {
  background: #fff8f8 !important;
  border: 1px solid #fee2e2 !important;
  border-left: 3px solid var(--asg-red) !important;
  border-radius: 4px !important;
  padding: 12px 14px !important;
  margin: 16px 0 !important;
  font-size: 0.88rem !important;
  line-height: 1.5 !important;
}

.bulletin-deadline-callout .dl-head {
  font-size: 0.8rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: #991b1b !important;
  margin-bottom: 4px !important;
}

.bulletin-deadline-callout .dl-body {
  color: #7f1d1d !important;
  font-weight: 500 !important;
}

.bulletin-deadline-callout .dl-rule {
  margin-top: 6px !important;
  font-weight: 700 !important;
  color: #991b1b !important;
}

/* Dignified Signoff */
.bulletin-signoff-block {
  margin-top: 20px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--asg-border-light) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

.bulletin-signoff-block .event-info {
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  color: var(--asg-navy) !important;
  line-height: 1.4 !important;
}

.bulletin-signoff-block .sign-org {
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  color: var(--asg-navy) !important;
}

@media (max-width: 600px) {
  table.announcements_table {
    min-width: 0 !important;
    width: 95% !important;
  }
  .asc-countdown-calm {
    width: 95% !important;
    padding: 12px 10px !important;
  }
  .asc-countdown-calm .cd-num {
    font-size: 1.4rem !important;
  }
  .bulletin-details-table th {
    width: 100px !important;
  }
}


/* Schedule table in bulletin */
table.bulletin-schedule-clean {
  width: 100% !important;
  max-width: 100% !important;
  border-collapse: collapse !important;
  margin: 0 0 16px 0 !important;
  background: #f8fafc !important;
  border: 1px solid var(--asg-border-light) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

table.bulletin-schedule-clean tr {
  border-bottom: 1px solid var(--asg-border-light) !important;
  background: transparent !important;
}

table.bulletin-schedule-clean tr:last-child {
  border-bottom: none !important;
}

table.bulletin-schedule-clean td {
  padding: 8px 14px !important;
  background: transparent !important;
  border: none !important;
}
