/* Early-2000s portal styling with responsive and accessible controls. */
body {
  margin: 0; padding: 0;
  background: #c9d5e3;
  background: linear-gradient(#9fb3cc 0, #c9d5e3 260px, #dde5ee 100%) fixed;
  font-family: Verdana, Tahoma, Geneva, Arial, sans-serif;
  font-size: 12px; color: #222;
}
body.lang-zh { font-family: "SimSun", "宋体", "Songti SC", Verdana, Tahoma, sans-serif; font-size: 12px; }
a:link, a:visited { color: #003399; text-decoration: underline; }
a:visited { color: #551a8b; }
a:hover { color: #cc0000; }
table { border-collapse: collapse; }
td { font-size: inherit; vertical-align: top; }
img { border: 0; }

#wrap { width: min(980px, 100%); box-sizing: border-box; margin: 0 auto; background: #fff; border-left: 1px solid #6b83a3; border-right: 1px solid #6b83a3; box-shadow: 0 0 8px rgba(0,0,40,.35); }

/* top utility strip */
.topbar { background: #e6ecf4; border-bottom: 1px solid #b4c2d6; min-height: 22px; line-height: 22px; padding: 0 8px; color: #445; }
.topbar::after { content: ''; display: block; clear: both; }
.topbar a { color: #334 !important; margin: 0 4px; text-decoration: none; }
.topbar b { margin: 0 4px; color: #0b2a5b; }

/* banner */
.banner {
  height: 116px; position: relative; overflow: hidden;
  background: #123d7a;
  background: linear-gradient(to bottom, #2a5c9e 0%, #123d7a 55%, #0b2a5b 100%);
  border-bottom: 4px solid #c9a227;
}
.banner .emblem { position: absolute; left: 22px; top: 12px; }
.banner .title-main {
  margin: 0;
  position: absolute; left: 130px; top: 18px;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 42px; font-weight: bold; color: #fff; letter-spacing: 2px; font-variant: small-caps;
  text-shadow: 2px 2px 0 #061a3a, 3px 3px 3px #000;
}
.lang-zh .banner .title-main { font-family: "STXingkai", "华文行楷", "KaiTi", "Kaiti SC", serif; font-variant: normal; letter-spacing: 6px; color: #f2d36b; }
.banner .title-sub {
  position: absolute; left: 134px; top: 76px;
  font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold;
  color: #cfe0f5; letter-spacing: 2px; text-transform: uppercase;
}
.banner .rays {
  position: absolute; right: -80px; top: -120px; width: 420px; height: 420px; border-radius: 50%;
  background: repeating-conic-gradient(rgba(255,255,255,.07) 0 6deg, transparent 6deg 14deg);
}
.banner .wall { position: absolute; right: 24px; top: 12px; color: #f2d36b; font: italic 12px Georgia, serif; text-align: right; }

/* main nav — glossy XP-era bar */
.nav {
  background: #1f4f8f; background: linear-gradient(#5b86c0 0, #2b5d9e 50%, #1f4f8f 51%, #173f75 100%);
  min-height: 30px; line-height: 30px; text-align: center; border-top: 1px solid #8fb0dc; border-bottom: 1px solid #0b2a5b;
}
.nav a { color: #fff !important; font: bold 12px Arial, Helvetica, sans-serif; padding: 0 6px; text-decoration: none; display: inline-block; }
.lang-zh .nav a { font-size: 13px; }
.nav a:hover { background: linear-gradient(#ffe48a, #f2c14b); color: #0b2a5b !important; }
.nav .sep { color: #7fa0cc; }
.nav a.on { background: linear-gradient(#ffe48a, #f2c14b); color: #0b2a5b !important; }

/* news ticker */
.ticker { background: #fffde8; border-bottom: 1px solid #d9cf8f; height: 24px; line-height: 24px; }
.ticker td { vertical-align: middle; }
.ticker .lbl { color: #fff; background: #b00; font: bold 11px Arial, sans-serif; width: 1%; padding: 0 8px; white-space: nowrap; }
.ticker marquee { color: #333; }

.crumb { padding: 5px 10px; color: #555; background: #f2f5f9; border-bottom: 1px solid #d4dce7; }
.crumb a { color: #003399 !important; }

/* boxes */
.box { border: 1px solid #8ea6c6; margin-bottom: 8px; background: #fff; }
.box h3, .box > summary {
  margin: 0; min-height: 24px; padding: 5px 6px 5px 22px; box-sizing: border-box; font: bold 12px/1.3 Arial, Helvetica, sans-serif; color: #fff;
  background: #1f4f8f; background: linear-gradient(#4f7cb8, #1f4f8f);
  position: relative; border-bottom: 1px solid #0b2a5b;
}
.lang-zh .box h3, .lang-zh .box > summary { font-size: 13px; }
.box h3:before, .box > summary:before { content: "\25BA"; position: absolute; left: 7px; color: #f2c14b; font-size: 10px; }
.box > summary { cursor: pointer; list-style: none; }
.box > summary::-webkit-details-marker { display: none; }
.box[open] > summary:before { content: "\25BC"; }
.box h3 .more { float: right; margin-left: 6px; font-weight: normal; font-size: 11px; }
.box h3 .more a { color: #ffe48a !important; }
.box .bd { padding: 8px; line-height: 18px; }
.box.alt h3, .box.alt > summary { background: linear-gradient(#eef3fa, #c5d5ea); color: #0b2a5b; border-bottom-color: #8ea6c6; }
.box.alt h3:before, .box.alt > summary:before { color: #1f4f8f; }
.box.alt h3 .more a { color: #003399 !important; }

ul.dot { list-style: none; margin: 0; padding: 0; }
ul.dot li { padding-left: 12px; border-bottom: 1px dotted #b8c6d8; height: 22px; line-height: 22px; overflow: hidden; }
ul.dot li:before { content: "\00BB"; color: #1f4f8f; font-weight: bold; margin-left: -10px; margin-right: 4px; }
ul.dot li .date { float: right; color: #888; font-size: 10px; }
ul.dot.tall li { height: auto; line-height: 20px; padding-top: 2px; padding-bottom: 2px; }

.side-nav a { display: block; height: 24px; line-height: 24px; padding-left: 16px; border-bottom: 1px solid #dbe4ef; background: #f5f8fc; color: #0b2a5b !important; font-weight: bold; text-decoration: none; }
.side-nav a:before { content: "\25B8  "; color: #c9a227; }
.side-nav a:hover { background: #ffefb0; }

.headline { color: #0b2a5b; font: bold 14px Georgia, serif; }
.rhead a { color: #0b2a5b !important; }
.warn { color: #b00; }
.empty { text-align: center; color: #b00; padding: 30px; }

/* data tables */
table.grid { width: 100%; border: 1px solid #8ea6c6; }
table.grid th { background: #dfe8f3; background: linear-gradient(#f1f5fa, #d3dfee); color: #0b2a5b; border: 1px solid #8ea6c6; padding: 4px; text-align: center; font: bold 11px Arial, sans-serif; }
table.grid td { border: 1px solid #ccd6e3; padding: 5px; line-height: 16px; }
table.grid tr.alt td { background: #f3f6fb; }
table.grid tr:hover td { background: #fffbe0; }
table.kv .k { background: #e6edf6; color: #0b2a5b; font: inherit; font-weight: bold; width: 120px; text-align: right; white-space: nowrap; line-height: 1.6; padding: 5px; border: 1px solid #ccd6e3; }
table.kv .v code { font-family: "Courier New", Courier, monospace; font-size: .95em; background: #ffffe6; border: 1px dashed #c9a227; padding: 1px 4px; color: #000; }

.etitle { text-align: center; color: #0b2a5b; font: bold 20px Georgia, "Times New Roman", serif; margin: 10px 0 4px; }
.lang-zh .etitle { font-family: "SimSun", "Songti SC", serif; }
.esub { text-align: center; color: #555; font: 13px "Times New Roman", serif; }
.emeta { text-align: center; color: #888; border-bottom: 1px solid #c5d5ea; padding: 6px 0 8px; margin-bottom: 10px; }

.grade { display: inline-block; width: 16px; height: 16px; line-height: 16px; text-align: center; font: bold 11px Arial; color: #fff; border: 1px outset #999; }
.grade.A { background: #2e7d32; } .grade.B { background: #d39e00; } .grade.C { background: #c75b00; } .grade.R { background: #7a7a7a; }
.flag { display: inline-block; background: #fdeaea; border: 1px solid #e59a9a; color: #b00; padding: 0 4px; margin: 1px 2px 1px 0; font-size: 10px; line-height: 15px; }

.new { color: #fff; background: #b00; font: bold 9px Arial; padding: 0 2px; margin-left: 3px; animation: blink 1s steps(2, start) 4; }
@keyframes blink { 50% { opacity: .5; } }

.notice { border: 1px solid #c9a227; border-left: 6px solid #c9a227; background: #fffbe6; padding: 8px 10px; line-height: 17px; color: #4a3b00; margin-bottom: 8px; }
.notice b { color: #b00; }

.search input.t { width: 150px; border: 1px solid #7f9db9; height: 17px; font-size: 11px; }
.search input.b, .btn { background: linear-gradient(#fff, #dcdcdc); border: 1px solid #7f9db9; border-radius: 3px; height: 21px; font-size: 11px; cursor: pointer; }
.search select { font-size: 11px; }

.counter span { display: inline-block; background: #000; color: #3f3; font: bold 13px "Courier New", monospace; width: 12px; text-align: center; border: 1px inset #444; margin-right: 1px; }

.links select { width: 100%; font-size: 11px; margin-bottom: 4px; }

.foot { background: #e6ecf4; border-top: 3px solid #1f4f8f; text-align: center; padding: 10px 0 14px; line-height: 20px; color: #445; }
.foot a { color: #334 !important; }
.foot .badges span { display: inline-block; border: 1px solid #8a8a8a; background: #fff; font: 9px Verdana; padding: 1px 4px; margin: 4px 2px 0; color: #036; }
.foot .badges span.hi { background: #4f5b93; color: #fff; }

.float-ad { position: fixed; right: 6px; top: 220px; width: 104px; border: 2px solid #1f4f8f; background: #f5f8fc; text-align: center; padding: 4px; z-index: 9; }
.float-ad .x { float: right; cursor: pointer; color: #888; font-family: Arial; font-size: 10px; }
.float-ad b { color: #b00; display: block; font-size: 13px; margin: 4px 0; }

.src a { word-break: break-all; }
.pg { text-align: center; padding: 8px; color: #555; }
.pg b { border: 1px solid #1f4f8f; padding: 1px 6px; margin: 0 1px; background: #1f4f8f; color: #fff; }

/* third sweep: language tags, channel index */
.lng { display: inline-block; background: #e8f0fb; border: 1px solid #8ea6c6; color: #0b2a5b; font: bold 9px Verdana, sans-serif; padding: 0 3px; margin: 1px 2px 1px 0; line-height: 13px; vertical-align: middle; }
.ptabs { margin: 4px 0 8px; line-height: 22px; }
.ptabs a { display: inline-block; border: 1px solid #8ea6c6; background: linear-gradient(#fff, #e3ebf5); padding: 0 6px; margin: 0 2px 3px 0; height: 18px; line-height: 18px; text-decoration: none; color: #0b2a5b !important; }
.ptabs a.on { background: linear-gradient(#ffe48a, #f2c14b); border-color: #c9a227; font-weight: bold; }
table.grid td.psec { background: #dfe8f3; color: #0b2a5b; font: bold 11px Arial, sans-serif; padding: 3px 6px; }
code.cv { font-family: "Courier New", Courier, monospace; font-size: 11px; background: #ffffe6; border: 1px dashed #c9a227; padding: 0 3px; word-break: break-all; }

[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; color: #0b2a5b; background: #edf2f9; border: 1px solid #7f9db9; border-radius: 2px; padding: 3px 7px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex="0"]:focus-visible { outline: 3px solid #a44200; outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: fixed; top: -80px; left: 8px; z-index: 100; background: #fff; padding: 10px; }
.skip-link:focus { top: 8px; }
.page-layout { display: grid; grid-template-columns: 202px minmax(0, 1fr); gap: 8px; padding: 8px; }
.main, .sidebar, .columns > div { min-width: 0; }
.columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.spotlight-columns { grid-template-columns: 3fr 2fr; }
.region-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.table-scroll { max-width: 100%; overflow-x: auto; }
.table-scroll table { min-width: 620px; }
.table-scroll table td { overflow-wrap: anywhere; }
.ticker { padding: 5px 8px; height: auto; line-height: 1.5; }
.ticker summary { cursor: pointer; }
.ticker summary b { color: #a00; }
.ticker ul { margin: 6px 0; padding-left: 22px; }
.motion-control { display: block; margin: 4px 8px 0 auto; font-size: 11px; }
.motion-paused .new { animation: none; }
.text-controls button[aria-pressed="true"] { color: #fff; background: #1f4f8f; }
#entry-body { font-size: 13px; overflow-wrap: anywhere; }
#entry-body[data-text-size="large"] { font-size: 17px; }
#entry-body[data-text-size="small"] { font-size: 12px; }
#entry-body .grid td { line-height: 1.6; }
.verification-note { background: #eef3fa; padding: 8px; color: #334; font-size: 12px; }
.evidence { margin: 8px 0; font-size: .92em; }
.evidence summary { cursor: pointer; color: #334f73; }
.evidence dl { margin: 8px 0; }
.evidence dt { font-weight: bold; }
.evidence dd { margin: 0 0 6px; overflow-wrap: anywhere; }
.verification-status { display: inline-block; margin-top: 6px; font-size: 11px; color: #334f73; }
.correction-link { font-size: 12px; }
.pg a, .pg span, .pg b { display: inline-block; margin: 3px; padding: 3px 6px; }
.pg span[aria-disabled] { color: #666; }
.pg b { font-weight: bold; }
.correction-form label { display: block; font-weight: bold; margin: 12px 0 4px; }
.correction-form input, .correction-form select, .correction-form textarea { display: block; box-sizing: border-box; width: 100%; max-width: 100%; border: 1px solid #7f9db9; padding: 7px; color: #222; background: #fff; }
.correction-form textarea { resize: vertical; }
.correction-form button { margin-top: 8px; }
.float-ad .x { border: 0; background: none; padding: 2px; }

@media (max-width: 1240px) {
  .float-ad { position: static; width: auto; max-width: 948px; margin: 8px auto; padding: 8px; }
  .float-ad br { display: none; }
  .float-ad b { display: inline; margin-right: 8px; }
}
@media (max-width: 760px) {
  body, body.lang-zh { font-size: 14px; }
  .topbar > span { float: none !important; display: block; }
  .banner { height: 140px; }
  .banner .emblem { left: 6px; top: 8px; transform: scale(.7); transform-origin: top left; }
  .banner .title-main { left: 78px; right: 8px; top: 18px; font-size: clamp(21px, 5.7vw, 36px); letter-spacing: 0; }
  .lang-zh .banner .title-main { letter-spacing: 1px; }
  .banner .title-sub { left: 12px; right: 12px; top: 85px; font-size: 12px; line-height: 1.5; letter-spacing: 1px; }
  .banner .wall { top: 65px; left: 78px; right: 8px; text-align: left; font-size: 11px; }
  .nav .sep { display: none; }
  .nav a { padding: 5px 9px; line-height: 28px; }
  .page-layout { grid-template-columns: minmax(0, 1fr); }
  .sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .sidebar .box { margin: 0; }
  .sidebar .box:first-child { grid-column: 1 / -1; }
  .search form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
  .search br { display: none; }
  .search input.t { flex: 1 1 120px; min-width: 0; width: auto; }
  .search input.t, .search input.b, .search select { height: 36px; font-size: 14px; }
  .side-nav a { height: auto; min-height: 32px; line-height: 1.5; padding: 5px 8px; }
  .columns, .spotlight-columns { grid-template-columns: minmax(0, 1fr); }
  .region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .box h3, .lang-zh .box h3, .box > summary, .lang-zh .box > summary { font-size: 14px; }
  .box .bd { line-height: 1.6; }
  table.kv, table.kv tbody, table.kv tr, table.kv td, table.kv th { display: block; width: auto; }
  table.kv .k { width: auto; text-align: left; white-space: normal; }
  table.kv .v { overflow-wrap: anywhere; }
  .headline, .etitle { overflow-wrap: anywhere; }
  ul.dot li { height: auto; min-height: 30px; line-height: 1.5; padding-top: 4px; padding-bottom: 4px; }
  ul.dot li .date { float: none; display: block; }
  .pg a, .pg span, .pg b, .ptabs a { min-height: 30px; height: auto; line-height: 30px; }
  .text-controls button, .emeta button, summary, .correction-form button { min-height: 36px; }
  .foot { padding: 12px; overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) { .new { animation: none; } }
@media print {
  body { background: #fff; color: #000; }
  #wrap { width: 100%; border: 0; box-shadow: none; }
  .topbar, .nav, .ticker, .sidebar, .float-ad, .motion-control, .text-controls,
  [data-print], .correction-link, .skip-link { display: none !important; }
  .page-layout { display: block; padding: 0; }
  .table-scroll { overflow: visible; }
  .table-scroll table { min-width: 0; }
  .new { animation: none; }
}
