/* ============================================================
 * 南沙港湾议程表 · 视觉母版（1088×1680 固定画布）
 * 仅供像素回归：所有坐标/行高来自参考图实测，禁响应式。
 * 参考图坐标基准：tools/regress/reference-crop.png
 * ============================================================ */
@font-face {
  font-family: 'NotoSC';
  src: url('fonts/NotoSansSC-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: block;
}
:root {
  --dark-blue: #003466;
  --section-blue: #BDD7EE;
  --mission-yellow: #FFFF00;
  --vote-yellow: #FFC000;
  --timer-green: #92D050;
  --timer-yellow: #FFFF00;
  --timer-red: #FF0000;
  --black: #000000;
  --white: #FFFFFF;
  --zh: "SimHei", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  --en: Arial, Calibri, sans-serif;
}

html, body { margin: 0; padding: 0; background: #ffffff; }
* { box-sizing: border-box; }

.page {
  position: relative;
  width: 1088px;
  height: 1680px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #ffffff;
  font-family: var(--zh);
  color: var(--black);
  -webkit-text-stroke: 0.3px currentColor;
}
img { display: block; object-fit: contain; }

/* ---------- 1/2/4. 深蓝横幅 + Logo + 波浪 ---------- */
/* 实测：蓝底 y4 起，下边界为波浪弧：两侧 y≈80、中央凸至 y≈65；波浪下方白区至 y119 */
.banner { position: absolute; left: 0; top: 0; width: 1088px; height: 122px; }
.banner .wave { position: absolute; left: 0; top: 0; display: block; }
.brand-logo { position: absolute; left: 5px; top: 15px; width: 167px; height: 95px; }
.banner-title {
  position: absolute; left: 0; top: 19px; width: 1088px;
  font-family: var(--zh);
  font-size: 24px;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: 6px;
  color: var(--white);
  text-align: center;
  white-space: nowrap;
}
.wave-text { position: absolute; left: 0; top: 78px; width: 1088px; }
.wt-line {
  position: absolute;
  font-family: var(--zh);
  font-size: 15px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0;
  color: var(--black);
  text-align: left;
  white-space: nowrap;
}
.wt-l1 { left: 420px; top: 0; }
.wt-l2 { left: 423px; top: 27px; letter-spacing: 5px; }

/* ---------- 6. 黄色使命区域（实测三行：cap y126-138 / text y148-160 / slogan y170-182） ---------- */
.mission {
  position: absolute; left: 6px; top: 122px; width: 1076px; height: 62px;
  background: var(--mission-yellow);
}
.mission-cap {
  position: absolute; left: 3px; top: 3px;
  font-family: var(--zh);
  font-size: 15px; font-weight: 700; line-height: 15px; letter-spacing: 0;
  color: var(--black); white-space: nowrap;
}
.mission-text {
  position: absolute; left: 3px; top: 24px;
  font-family: var(--zh);
  font-size: 16px; font-weight: 400; line-height: 16px; letter-spacing: 0;
  color: var(--black); white-space: nowrap;
}
.mission-slogan {
  position: absolute; left: 0; top: 44px; width: 1076px;
  font-family: var(--zh);
  font-size: 17px; font-weight: 700; font-style: italic; line-height: 17px; letter-spacing: 0;
  color: var(--black); text-align: center; white-space: nowrap;
}

/* ---------- 7. 期数信息行（flex 分布，避免固定偏移导致文字重叠） ---------- */
.meta-row {
  position: absolute; left: 0; top: 188px; width: 1088px; height: 32px;
  display: flex; align-items: center; gap: 22px;
  padding: 0 29px;
}
.meta-item {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0;
  color: var(--black);
  text-align: left;
  white-space: nowrap;
  -webkit-text-stroke: 0;
  flex: none;
}
.m3 { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.meta-item .word {
  font-family: var(--en);
  font-size: 16px; font-weight: 700; line-height: 16px;
  vertical-align: baseline;
}

/* ---------- 8/9. 议程表（实测：左框 x4-5、右框 x1079-1081、底框 y1674-1675，无顶框无内线） ---------- */
.agenda-wrap {
  position: absolute; left: 4px; top: 221px; width: 1078px;
  border-left: 2px solid var(--black);
  border-right: 3px solid var(--black);
}
.row {
  display: grid;
  grid-template-columns: 127px 296px 34px 106px 50px 180px 280px;
  width: 1073px;
  align-items: center;
}
.row .c {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 18px;
  letter-spacing: 0;
  white-space: nowrap;
  overflow: hidden;
  padding: 0;
  -webkit-text-stroke: 0.2px currentColor;
}
.c1 { text-align: center; }
.c2 { text-align: left; }
.c3 { text-align: center; }
.row .c4 { text-align: center; padding-right: 22px; }
.c5 { text-align: center; }
.row .c6 { text-align: center; padding-left: 72px; }
.c7 { text-align: center; }
.row .c3 { -webkit-text-stroke: 0; }
.c .en, .c.en { font-family: var(--en); }
.c1 { font-family: var(--zh); }
.row .c1.t-bold { -webkit-text-stroke: 0.6px currentColor; }
.t-bold { font-weight: 700; }
.desc {
  font-family: var(--en);
  font-style: italic;
  font-weight: 400;
  font-size: 11px;
  line-height: 12px;
  white-space: normal;
  color: var(--black);
}

.row-head { height: 33px; background: var(--section-blue); }
.row-head .c { font-size: 16px; font-weight: 700; text-align: center; line-height: 18px; padding: 0; -webkit-text-stroke: 0.3px currentColor; }

.row-section { background: var(--section-blue); }
.row-section .c { font-family: var(--zh); font-weight: 700; font-size: 16px; -webkit-text-stroke: 0.3px currentColor; }

.row-footer {
  height: 31px;
  background: var(--section-blue);
  border-bottom: 2px solid var(--black);
  display: block;
}
.footer-text {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 27px;
  letter-spacing: 0;
  color: var(--black);
  text-align: left;
  white-space: nowrap;
  padding: 0 8px;
}

/* ---------- 10. 会议规则卡片（实测：框 834-1081 × 251-506） ---------- */
/* 选择器加 .page 前缀，压过 shared.css 的工作台 .card 样式（背景/边框/padding 覆盖） */
.page .card {
  position: absolute;
  background: var(--white);
  border: 1px solid var(--black);
  box-shadow: none;
  padding: 0;
  margin: 0;
}
.page .card-rules {
  left: 834px; top: 251px; width: 248px; height: 256px;
  padding: 1px 6px 2px;
}
.rules-title {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 14px; font-weight: 700; line-height: 20px; letter-spacing: 0;
  text-align: center; white-space: nowrap; color: var(--black);
}
.rules-item {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 13px; font-weight: 700; line-height: 15px; letter-spacing: 0;
  text-align: justify; white-space: normal; color: var(--black);
}
.rules-hr { border-top: 1px solid var(--black); margin: 2px 0; }
/* 时间规则：1px 黑实线单元格表格（参照样张） */
.time-rules { display: block; border: 1px solid var(--black); border-collapse: collapse; }
.tr-head { display: grid; grid-template-columns: 62px 1fr 1fr; align-items: center; height: 34px; border-bottom: 1px solid var(--black); }
.tr-head > :nth-child(n+2), .tr-row > :nth-child(n+2), .clap-val { border-left: 1px solid var(--black); }
.tr-cap {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 10px; font-weight: 700; line-height: 12px;
  text-align: center; white-space: normal; color: var(--black);
}
.tr-col {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 12px; font-weight: 700; line-height: 13px;
  text-align: center; white-space: normal; color: var(--black);
}
.tr-col i { font-style: italic; font-size: 8px; font-weight: 400; }
.tr-row { display: grid; grid-template-columns: 62px 1fr 1fr; align-items: center; height: 28px; border-bottom: 1px solid var(--black); }
.tr-row:last-child, .clap-row { border-bottom: 0; }
.tr-row > .badge { justify-self: center; }
.badge {
  width: 52px; height: 17px;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif; font-size: 10px; font-weight: 700; line-height: 15px; letter-spacing: 0;
  text-align: center; white-space: nowrap;
  border: 1px solid var(--black);
}
.badge-green { background: var(--timer-green); color: var(--black); }
.badge-yellow { background: var(--timer-yellow); color: var(--black); }
.badge-red { background: var(--timer-red); color: var(--white); }
.badge-white { background: var(--white); color: var(--black); width: 64px; font-size: 9px; }
.tr-val {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif; font-size: 10px; font-weight: 700; line-height: 13px;
  text-align: center; white-space: nowrap; color: var(--black);
}
.clap-row {
  display: flex; align-items: center;
  height: 40px;
  border-top: 0;
  padding-left: 4px;
}
.clap-val { flex: 1; }

/* ---------- 11. 微信公众号卡片（实测：框 834-1081 × 728-1015） ---------- */
.page .card-gzh {
  left: 834px; top: 728px; width: 248px; height: 288px;
  padding: 0;
}
.gzh-title {
  position: absolute; left: 9px; top: 9px;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 12px; font-weight: 700; line-height: 14px; letter-spacing: 0;
  text-align: left; white-space: normal; color: var(--black);
}
.gzh-qr { position: absolute; left: 17px; top: 27px; width: 227px; height: 180px; }
.gzh-contact { position: absolute; left: 9px; top: 216px; right: 8px; text-align: left; }
.gzh-line {
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 12px; font-weight: 400; line-height: 25px; letter-spacing: 1px;
  text-align: left; white-space: nowrap; color: var(--black);
}

/* ---------- 12. 投票二维码（紧贴公众号卡下方，参照样张紧凑排布） ---------- */
.vote-bar {
  position: absolute; left: 848px; top: 1046px; width: 224px; height: 39px;
  background: var(--vote-yellow);
  font-family: var(--zh);
  font-size: 20px; font-weight: 700; line-height: 31px; letter-spacing: 3px;
  padding-bottom: 8px;
  text-align: center; white-space: nowrap; color: var(--black);
}
.vote-box {
  position: absolute; left: 880px; top: 1092px; width: 202px; height: 150px;
  border: 1px solid var(--black);
  background: var(--white);
}
.vote-qr { width: 200px; height: 141px; margin: 7px 0 0 0; }

/* ---------- 打印保色 ---------- */
@media print {
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  @page { margin: 0; }
}
