/* OJ 全角标点标记字体（Reach-Top OJ）
 *
 * 目的：代码里的全角（中文）标点一眼可辨 —— （） ，；： 以及全角空格。
 *
 * 背景：Bootstrap 3 给代码区定的字体是 Menlo/Monaco/Consolas/Courier New，
 *       这些字体根本没有全角标点字形，浏览器只能各自去系统里找回退字体，
 *       全角括号于是只剩「多一点点空隙」，混在代码里几乎看不出来。
 *
 * 做法：自托管一个只含全角标点的字体，配合 unicode-range 只接管全角标点，
 *       其余字符仍用原来的字体。字体里做了两件事：
 *       1. 全角括号重画得更粗更圆，占满一个字身宽度；
 *       2. 用 COLRv0 彩色层加淡红底块并标红（Chrome/Edge/Firefox 支持）；
 *          不支持彩色字体的浏览器只拿到第 1 步的字形，也仍然比现状清楚。
 *       全角空格画成灰色小方框，避免「看不见的空格」。
 *
 * 只在代码场景生效：题目正文里的中文标点本来就该是全角，不做任何处理。
 *
 * 维护：字体由 scripts/build-oj-punct-font.sh 生成。
 */

@font-face {
  font-family: "OJPunctMark";
  src: url("./fonts/oj-punct-mark.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range:
    U+3000-303F,   /* CJK 标点：、。〈〉《》「」『』… */
    U+FF01-FF5E,   /* 全角 ASCII 变体：（）、！？：；，等 */
    U+FFE0-FFE6,   /* 全角货币符号 */
    U+2014, U+2018, U+2019, U+201C, U+201D, U+2026, U+00B7, U+2027;
}

/* 样例输入输出、行内代码、源码块 */
pre, code, kbd, samp {
  font-family: "OJPunctMark", Menlo, Monaco, Consolas, "Courier New", monospace;
}

/* 蓝/绿/红主题给 .sampledata 单独指定过 Monospace */
.sampledata {
  font-family: "OJPunctMark", Monospace;
}

/* 提交框：关掉编辑器时用的是原生 textarea（id=source），
 * 打开编辑器后编辑区在 iframe 里，font-family 由 submitpage 的
 * editAreaLoader.init 指定，@font-face 由同一段脚本注入 iframe。 */
#source, #textarea, #content_highlight, #line_number, #input_text, #out {
  font-family: "OJPunctMark", Menlo, Monaco, Consolas, "Courier New", monospace;
}

/* 查看源码 / 编译错误页用 SyntaxHighlighter，
 * 它的 shCore.css 用 !important 锁死了字体，这里用更高优先级覆盖。 */
body .syntaxhighlighter,
body .syntaxhighlighter div,
body .syntaxhighlighter code,
body .syntaxhighlighter span,
body .syntaxhighlighter textarea {
  font-family: "OJPunctMark", "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
}
