@charset "UTF-8";

/*
 * Markdown 正文排版对齐 ujcms-ui-console 的 TOAST UI Editor 3.2.2 预览。
 * 样式参考 @toast-ui/editor (MIT, Copyright NHN Cloud Corp.)，不引入编辑器 UI/脚本。
 * 仅 Markdown 正文使用此类，避免改写富文本文章和页面导航的排版。
 */
.article-content {
  max-width: 100%;
  overflow-x: auto;
  overflow-wrap: break-word;
}

.article-content img {
  max-width: 100%;
  height: auto;
}

/* 富文本正文对齐 TinyMCE 默认内容样式（14px、1.4 倍行高）。
 * 标题采用编辑器内浏览器默认的相对字号，隔离 Bootstrap 的 rem 标题规则。
 * 不使用 !important，保留文章手动设置的行内字号、字体、间距。
 */
.article-content:not(.article-markdown) {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
    Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: #000;
}
.article-content:not(.article-markdown) h1,
.article-content:not(.article-markdown) h2,
.article-content:not(.article-markdown) h3,
.article-content:not(.article-markdown) h4,
.article-content:not(.article-markdown) h5,
.article-content:not(.article-markdown) h6 {
  font-family: inherit;
  font-weight: bold;
  line-height: inherit;
  color: inherit;
}
.article-content:not(.article-markdown) h1 { font-size: 2em; margin: .67em 0; }
.article-content:not(.article-markdown) h2 { font-size: 1.5em; margin: .83em 0; }
.article-content:not(.article-markdown) h3 { font-size: 1.17em; margin: 1em 0; }
.article-content:not(.article-markdown) h4 { font-size: 1em; margin: 1.33em 0; }
.article-content:not(.article-markdown) h5 { font-size: .83em; margin: 1.67em 0; }
.article-content:not(.article-markdown) h6 { font-size: .67em; margin: 2.33em 0; }
.article-content:not(.article-markdown) p { margin: 1em 0; }
.article-content:not(.article-markdown) strong,
.article-content:not(.article-markdown) b { font-weight: bold; }

/* 富文本表格补充默认网格线；编辑器中的虚线辅助框不会写入正文。
 * 只作用于非 Markdown 正文，不使用 !important，单元格行内样式仍优先。
 * 不指定列宽、对齐、字号或表头背景，保留编辑器保存的布局及合并单元格。
 */
.article-content:not(.article-markdown) table {
  border-collapse: collapse;
  border: 1px solid #dcdfe6;
}
.article-content:not(.article-markdown) table th,
.article-content:not(.article-markdown) table td {
  border: 1px solid #dcdfe6;
  padding: 8px 12px;
}

.article-content.article-markdown {
  padding: 0;
  color: #222;
  font-size: 13px;
  line-height: 1.6;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'PingFang SC',
    'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif,
    'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
}

.article-markdown *:not(table) {
  line-height: 160%;
  box-sizing: content-box;
}

.article-markdown p { margin: 10px 0; color: #222; }
.article-markdown strong { font-weight: bold; }
.article-markdown em { font-style: italic; }
.article-markdown del { color: #999; }

.article-markdown h1,
.article-markdown h2,
.article-markdown h3,
.article-markdown h4,
.article-markdown h5,
.article-markdown h6 {
  font-weight: bold;
  color: #222;
}

.article-markdown h1 {
  font-size: 24px;
  line-height: 28px;
  border-bottom: 3px double #999;
  margin: 52px 0 15px;
  padding-bottom: 7px;
}
.article-markdown > h1:first-of-type { margin-top: 14px; }
.article-markdown h2 {
  font-size: 22px;
  line-height: 23px;
  border-bottom: 1px solid #dbdbdb;
  margin: 20px 0 13px;
  padding-bottom: 7px;
}
.article-markdown h3 { font-size: 20px; line-height: 18px; margin: 18px 0 2px; }
.article-markdown h4 { font-size: 18px; line-height: 18px; margin: 10px 0 2px; }
.article-markdown h5 { font-size: 16px; line-height: 17px; margin: 9px 0 -4px; }
.article-markdown h6 { font-size: 14px; line-height: 17px; margin: 9px 0 -4px; }

.article-markdown blockquote {
  margin: 14px 0;
  border-left: 4px solid #e5e5e5;
  padding: 0 16px;
  color: #999;
}
.article-markdown blockquote p,
.article-markdown blockquote ul,
.article-markdown blockquote ol { color: #999; }
.article-markdown blockquote > :first-child { margin-top: 0; }
.article-markdown blockquote > :last-child { margin-bottom: 0; }

/* 保留原生 table 布局及 colspan/rowspan，超宽内容由正文容器横向滚动。 */
.article-markdown table {
  border: 1px solid rgba(0, 0, 0, 0.1);
  margin: 12px 0 14px;
  color: #222;
  width: auto;
  border-collapse: collapse;
  box-sizing: border-box;
}
.article-markdown table th,
.article-markdown table td {
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 5px 14px 5px 12px;
  height: 32px;
}
.article-markdown table th {
  background-color: #555;
  font-weight: 300;
  color: #fff;
  padding-top: 6px;
}
/* Bootstrap 会把表头设为继承对齐；恢复预览默认居中，行内对齐仍优先。 */
.article-markdown th { text-align: center; }
.article-markdown th[align="left"],
.article-markdown td[align="left"] { text-align: left; }
.article-markdown th[align="center"],
.article-markdown td[align="center"] { text-align: center; }
.article-markdown th[align="right"],
.article-markdown td[align="right"] { text-align: right; }
.article-markdown th p { margin: 0; color: #fff; }
.article-markdown td p { margin: 0; padding: 0 2px; }

.article-markdown ul,
.article-markdown ol {
  display: block;
  list-style-type: none;
  padding-left: 24px;
  margin: 6px 0 10px;
  color: #222;
}
.article-markdown ol { counter-reset: li; }
.article-markdown ol > li { counter-increment: li; }
.article-markdown li { position: relative; }
.article-markdown ul > li::before,
.article-markdown ol > li::before { display: inline-block; position: absolute; }
.article-markdown ul > li::before {
  content: '';
  margin-top: 6px;
  margin-left: -17px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: #ccc;
}
.article-markdown ol > li::before {
  content: '.' counter(li);
  margin-left: -28px;
  width: 24px;
  text-align: right;
  direction: rtl;
  color: #aaa;
}
.article-markdown li > ul,
.article-markdown li > ol { margin-top: 0; margin-bottom: 0; }
.article-markdown li p { margin: 0; }

/* TOAST UI 保存的任务列表通过类名表达勾选状态。 */
.article-markdown .task-list-item { padding-left: 24px; margin-left: -24px; list-style: none; }
.article-markdown .task-list-item::before {
  content: '';
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  left: 0;
  top: 1px;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 2px;
  background: #fff;
}
.article-markdown .task-list-item.checked::before {
  content: '\2713';
  color: #fff;
  background: #4b96e6;
  border-color: #4b96e6;
  text-align: center;
  line-height: 16px;
}

.article-markdown pre,
.article-markdown code {
  font-family: Consolas, Courier, monospace;
  font-size: 1em;
  border: 0;
  border-radius: 0;
}
.article-markdown pre {
  margin: 2px 0 8px;
  padding: 18px;
  background-color: #f4f7f8;
  overflow-x: auto;
}
.article-markdown code {
  color: #c1798b;
  background-color: #f9f2f4;
  padding: 2px 3px;
  letter-spacing: -0.3px;
  border-radius: 2px;
}
.article-markdown pre code {
  padding: 0;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
}
.article-markdown img { margin: 4px 0 10px; box-sizing: border-box; vertical-align: top; }
.article-markdown hr { border: 0; border-top: 1px solid #eee; margin: 16px 0; opacity: 1; }
.article-markdown a { text-decoration: underline; color: #4b96e6; }
.article-markdown a:hover { color: #1f70de; }
