﻿/* ============================================================
 * Hydro 晨雾青主题 — 基础样式
 * 作用域：html.theme--calm-mist（由模板 html5.html 强制加上，
 *         普通用户无法切换，因此这是一套"站点固定皮肤"）
 * 加载顺序：ui-default theme.css → 本文件 → calm-mist-pages.css
 * ============================================================ */

html.theme--calm-mist {
  /* 设计 token */
  --cm-bg: #F4F8F6;
  --cm-surface: #FFFFFF;
  --cm-surface-2: #EFF6F2;
  --cm-text: #12211E;
  --cm-muted: #5C6F6A;
  --cm-faint: #8AA09A;
  --cm-line: #E4EDE8;
  --cm-line-strong: #D8E6DF;
  --cm-primary: #0E9F8A;
  --cm-primary-deep: #0B6B5C;
  --cm-primary-soft: #E5F6F0;
  --cm-primary-ink: #FFFFFF;
  --cm-accent: #FF8A5B;
  --cm-accent-soft: #FFF0E6;
  --cm-success: #16A34A;
  --cm-warn: #D97706;
  --cm-danger: #DC2626;
  --cm-radius: 16px;
  --cm-radius-lg: 20px;
  --cm-radius-pill: 999px;
  --cm-shadow: 0 1px 2px rgba(18, 33, 30, .03), 0 10px 30px rgba(18, 33, 30, .05);
  --cm-shadow-lift: 0 2px 4px rgba(18, 33, 30, .04), 0 18px 40px rgba(18, 33, 30, .10);
  --cm-font: "Inter", "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --cm-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  color-scheme: light;
}

/* ---------- 全局 ---------- */
html.theme--calm-mist body {
  background: var(--cm-bg);
  color: var(--cm-text);
  font-family: var(--cm-font);
  -webkit-font-smoothing: antialiased;
}
html.theme--calm-mist #panel { background: var(--cm-bg); }
html.theme--calm-mist ::selection { background: #CDEEE5; color: var(--cm-text); }
html.theme--calm-mist a { color: var(--cm-primary-deep); }
html.theme--calm-mist a:hover { color: var(--cm-primary); }
html.theme--calm-mist h1,
html.theme--calm-mist h2,
html.theme--calm-mist h3,
html.theme--calm-mist h4,
html.theme--calm-mist h5,
html.theme--calm-mist h6 { color: var(--cm-text); }
html.theme--calm-mist code,
html.theme--calm-mist pre,
html.theme--calm-mist kbd,
html.theme--calm-mist samp { font-family: var(--cm-mono); }
html.theme--calm-mist [hidden] { display: none !important; }
html.theme--calm-mist :focus-visible { outline: 2px solid var(--cm-primary); outline-offset: 2px; border-radius: 8px; }

/* 细滚动条 */
html.theme--calm-mist * { scrollbar-width: thin; scrollbar-color: #C7DCD3 transparent; }
html.theme--calm-mist ::-webkit-scrollbar { width: 10px; height: 10px; }
html.theme--calm-mist ::-webkit-scrollbar-thumb { background: #C7DCD3; border-radius: 999px; border: 2px solid var(--cm-bg); }
html.theme--calm-mist ::-webkit-scrollbar-track { background: transparent; }

/* ---------- 导航 ---------- */
html.theme--calm-mist .nav {
  background: rgba(255, 255, 255, .88);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--cm-line);
  box-shadow: none;
}
html.theme--calm-mist .nav .row { display: flex; align-items: center; }
html.theme--calm-mist .nav .columns { display: flex; align-items: center; justify-content: space-between; }
html.theme--calm-mist .cm-brand { display: inline-flex; align-items: center; gap: 9px; margin: 5px 18px 5px 0; }
html.theme--calm-mist .cm-brand:hover { text-decoration: none; }
html.theme--calm-mist .cm-brand__mark {
  width: 30px; height: 30px;
  border-radius: 9px;
  background: linear-gradient(145deg, #14B69C, #0A8574);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(14, 159, 138, .24);
}
html.theme--calm-mist .cm-brand__text b { display: block; font-size: 13.5px; line-height: 1.2; color: var(--cm-text); letter-spacing: -.1px; }
html.theme--calm-mist .cm-brand__text span { display: block; font-size: 9.5px; line-height: 1.2; margin-top: 2px; color: var(--cm-faint); letter-spacing: .12em; }
html.theme--calm-mist .nav__list { display: flex; align-items: center; }
html.theme--calm-mist .nav__list--main { gap: 2px; }
html.theme--calm-mist .nav__list--secondary { gap: 8px; }
html.theme--calm-mist .nav__list-item { float: none; display: flex; align-items: center; }
html.theme--calm-mist .nav__logo { height: 30px; margin: 8px 10px 8px 0; }
html.theme--calm-mist .nav__item,
html.theme--calm-mist .nav__item--round {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  line-height: 1;
  margin: 0;
  padding: 0 12px;
  border: 0;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 500;
  color: #42544F;
  transition: background .15s, color .15s;
}
html.theme--calm-mist .nav__item:hover,
html.theme--calm-mist .nav__item--round:hover { background: var(--cm-surface-2); color: var(--cm-text); }
html.theme--calm-mist .nav__item.nav--active,
html.theme--calm-mist .nav__list-item .nav__item.nav--active {
  background: var(--cm-primary-soft);
  color: var(--cm-primary-deep);
  font-weight: 650;
}
html.theme--calm-mist .nav__item--round {
  height: 38px;
  padding: 0 18px;
  border-radius: var(--cm-radius-pill);
  background: linear-gradient(180deg, #12B29A, #0B8F7B);
  color: #fff;
  font-weight: 650;
  box-shadow: 0 6px 14px rgba(14, 159, 138, .22);
}
html.theme--calm-mist .nav__item--round:hover { background: linear-gradient(180deg, #14BFA5, #0B8F7B); color: #fff; }
html.theme--calm-mist .nav .user-profile-avatar { border-radius: 50%; }
html.theme--calm-mist .nav--shadow { box-shadow: 0 1px 0 rgba(18, 33, 30, .04); background: transparent; }
html.theme--calm-mist .nav__dropdown,
html.theme--calm-mist .dropdown-target.menu {
  border-radius: 14px;
  border: 1px solid var(--cm-line);
  box-shadow: var(--cm-shadow-lift);
  overflow: hidden;
}
html.theme--calm-mist .menu__link { color: #334742; border-radius: 8px; }
html.theme--calm-mist .menu__link:hover { background: var(--cm-surface-2); color: var(--cm-primary-deep); }
html.theme--calm-mist .menu__seperator { border-color: var(--cm-line); }

/* 导航里的搜索胶囊（由 theme.js 注入） */
html.theme--calm-mist .cm-nav-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  padding: 0 15px;
  margin-right: 4px;
  border-radius: var(--cm-radius-pill);
  border: 1px solid var(--cm-line-strong);
  background: #F7FAF8;
  color: var(--cm-faint);
  font-size: 13px;
  white-space: nowrap;
  transition: background .15s, border-color .15s, box-shadow .15s;
}
html.theme--calm-mist .cm-nav-search:hover {
  background: #fff;
  border-color: #BFDDD2;
  color: var(--cm-muted);
  box-shadow: 0 2px 10px rgba(18, 33, 30, .05);
}
html.theme--calm-mist .cm-nav-search svg { width: 15px; height: 15px; flex: none; }
html.theme--calm-mist .cm-nav-search:hover svg { color: var(--cm-primary); }

/* ---------- 页面主体 ---------- */
html.theme--calm-mist .main { padding: 78px 0 46px; }
html.theme--calm-mist .main > .row { width: 100%; }
html.theme--calm-mist .row { max-width: 1200px; }
html.theme--calm-mist .location { color: var(--cm-muted); font-size: 13px; }

/* ---------- 卡片 / Section ---------- */
html.theme--calm-mist .section {
  background: var(--cm-surface);
  border: 1px solid var(--cm-line);
  border-radius: var(--cm-radius-lg);
  box-shadow: var(--cm-shadow);
  margin-bottom: 24px;
  overflow: hidden;
}
html.theme--calm-mist .section.side { font-size: 14px; }
html.theme--calm-mist .section__header { padding: 20px 24px 8px; }
html.theme--calm-mist .section__header:last-child { padding-bottom: 18px; }
html.theme--calm-mist .section__header .section__title { line-height: 1.4; }
html.theme--calm-mist .section__title {
  color: var(--cm-text);
  font-weight: 700;
  letter-spacing: -.2px;
}
html.theme--calm-mist h1.section__title { font-size: 1.3rem; margin-bottom: .6rem; }
html.theme--calm-mist h2.section__title { font-size: 1.08rem; margin-bottom: .5rem; }
html.theme--calm-mist h3.section__title { font-size: .95rem; }
html.theme--calm-mist .section__body { padding: 12px 24px; color: var(--cm-text); }
html.theme--calm-mist .section__body.no-padding { padding: 0; }
html.theme--calm-mist .section__body:last-child { padding-bottom: 20px; }
html.theme--calm-mist .section__body.typo { font-size: 14px; }
html.theme--calm-mist .section__tools { top: 20px; right: 24px; }
html.theme--calm-mist .section__tools .tool-button { color: var(--cm-muted); border-radius: 8px; padding: 2px 8px; }
html.theme--calm-mist .section__tools .tool-button:hover { color: var(--cm-primary-deep); background: var(--cm-surface-2); }
html.theme--calm-mist .section__footer { border-top: 1px solid var(--cm-line); padding: 14px 24px; background: #FBFDFC; }
html.theme--calm-mist .section__list__item { border-bottom: 1px solid var(--cm-line); }
html.theme--calm-mist .section__list__item:last-child { border-bottom: 0; }
html.theme--calm-mist .section__tab { border-bottom: 1px solid var(--cm-line); }
html.theme--calm-mist .section__tab .tab__item { border-radius: 10px 10px 0 0; }

/* 空状态 */
html.theme--calm-mist .section__body .nothing,
html.theme--calm-mist .nothing { color: var(--cm-faint); }

/* ---------- 数据表格 ---------- */
html.theme--calm-mist .data-table { font-size: 13px; color: var(--cm-text); }
html.theme--calm-mist .data-table thead > tr {
  color: var(--cm-faint);
  background: transparent;
  border-top: 0;
  border-bottom: 1px solid var(--cm-line);
}
html.theme--calm-mist .data-table thead th { font-size: 12px; font-weight: 650; letter-spacing: .02em; }
html.theme--calm-mist .data-table tr { border-color: var(--cm-line); background: transparent; }
html.theme--calm-mist .data-table tr:nth-child(2n) { background: transparent; }
html.theme--calm-mist .data-table tbody tr { transition: background .12s; }
html.theme--calm-mist .data-table tbody tr:hover { background: #F7FCF9; }
html.theme--calm-mist .data-table tr.highlight { background: #FFF8EA; }
html.theme--calm-mist .data-table td { padding: 10px; }
html.theme--calm-mist .data-table th { padding: 11px 10px; }
html.theme--calm-mist .data-table tbody tr:last-child { border-bottom-color: transparent; }
html.theme--calm-mist .data-table a { font-weight: 550; }
html.theme--calm-mist .data-table .col--difficulty { font-variant-numeric: tabular-nums; }

/* ---------- 按钮 ---------- */
html.theme--calm-mist .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  line-height: 1;
  padding: 0 22px;
  margin: 0 0 0;
  border: 1px solid var(--cm-line-strong);
  border-radius: 10px;
  background: #fff;
  color: #17423A;
  font-family: var(--cm-font);
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(18, 33, 30, .04);
  transition: transform .15s, box-shadow .15s, background .15s, border-color .15s;
}
html.theme--calm-mist .button:hover {
  background: #F7FCFA;
  border-color: #B7DACA;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(18, 33, 30, .08);
}
html.theme--calm-mist .button.primary {
  border-color: transparent;
  background: linear-gradient(180deg, #12B29A, #0B8F7B);
  color: var(--cm-primary-ink);
  box-shadow: 0 6px 16px rgba(14, 159, 138, .24);
}
html.theme--calm-mist .button.primary:hover {
  background: linear-gradient(180deg, #14BFA5, #0B8F7B);
  box-shadow: 0 10px 22px rgba(14, 159, 138, .3);
}
html.theme--calm-mist .button.rounded { border-radius: var(--cm-radius-pill); }
html.theme--calm-mist .button.inverse {
  border: 1.5px solid var(--cm-primary);
  background: transparent;
  color: var(--cm-primary-deep);
  box-shadow: none;
}
html.theme--calm-mist .button.inverse:hover { background: var(--cm-primary-soft); color: var(--cm-primary-deep); }
html.theme--calm-mist .button.expanded { width: 100%; }
html.theme--calm-mist .button.compact { height: 32px; padding: 0 14px; font-size: 12.5px; border-radius: 9px; }
html.theme--calm-mist .button[disabled],
html.theme--calm-mist .button.disabled { opacity: .55; transform: none; box-shadow: none; cursor: not-allowed; }
html.theme--calm-mist .button.inverse:focus,
html.theme--calm-mist .button:focus-visible { outline: 2px solid var(--cm-primary); outline-offset: 2px; }

/* ---------- 表单 ---------- */
html.theme--calm-mist .form__item { margin-bottom: 16px; }
html.theme--calm-mist .form__item > label { color: var(--cm-text); font-weight: 600; font-size: 13.5px; }
html.theme--calm-mist .help-text { color: var(--cm-faint); font-size: 12px; margin-top: 6px; }
html.theme--calm-mist input.textbox,
html.theme--calm-mist textarea.textbox,
html.theme--calm-mist span.textbox,
html.theme--calm-mist div.textbox {
  border: 1px solid var(--cm-line-strong);
  border-radius: 12px;
  background: #FBFDFC;
  color: var(--cm-text);
  font-family: var(--cm-font);
  font-size: 13.5px;
  padding: 10px 14px;
  outline: none;
  box-shadow: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
html.theme--calm-mist input.textbox:focus,
html.theme--calm-mist textarea.textbox:focus,
html.theme--calm-mist span.textbox:focus,
html.theme--calm-mist div.textbox:focus {
  border-color: var(--cm-primary);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(14, 159, 138, .13);
}
html.theme--calm-mist input.textbox::placeholder,
html.theme--calm-mist textarea.textbox::placeholder { color: #9AABA5; }
html.theme--calm-mist select,
html.theme--calm-mist select.select,
html.theme--calm-mist .select-container select {
  border: 1px solid var(--cm-line-strong);
  border-radius: 12px;
  background: #FBFDFC;
  color: var(--cm-text);
  font-family: var(--cm-font);
  font-size: 13.5px;
  padding: 9px 12px;
  height: 40px;
  outline: none;
}
html.theme--calm-mist select:focus { border-color: var(--cm-primary); box-shadow: 0 0 0 3px rgba(14, 159, 138, .13); }
html.theme--calm-mist .checkbox { color: var(--cm-text); }
html.theme--calm-mist .checkbox input[type="checkbox"],
html.theme--calm-mist .radiobox input[type="radio"] { accent-color: var(--cm-primary); }
html.theme--calm-mist .checkbox label,
html.theme--calm-mist .radiobox { font-size: 13.5px; color: #334742; }
html.theme--calm-mist textarea { resize: vertical; }

/* 搜索输入区（题目列表 / 比赛列表等） */
html.theme--calm-mist .search {
  display: flex;
  align-items: center;
  width: 100%;
  height: 44px;
  padding: 4px 5px 4px 5px;
  border: 1px solid var(--cm-line-strong);
  border-radius: var(--cm-radius-pill);
  background: #fff;
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(18, 33, 30, .03);
  transition: border-color .15s, box-shadow .15s;
}
html.theme--calm-mist .search:focus-within { border-color: var(--cm-primary); box-shadow: 0 0 0 3px rgba(14, 159, 138, .12); }
html.theme--calm-mist .search > input,
html.theme--calm-mist .search > input[type="text"] {
  flex: 1 1 auto;
  min-width: 0;
  height: 34px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0 14px;
  color: var(--cm-text);
  font-family: var(--cm-font);
  font-size: 13.5px;
  outline: none;
  box-shadow: none;
}
html.theme--calm-mist .search > input::placeholder { color: #9AABA5; }
html.theme--calm-mist .search > div {
  position: static;
  flex: none;
  font-size: 12.5px;
  color: var(--cm-faint);
  padding: 0 10px 0 4px;
  white-space: nowrap;
}
html.theme--calm-mist .search > div p { margin: 0; font-size: 12.5px; }
html.theme--calm-mist .search-sort {
  position: static;
  flex: none;
  width: auto;
  height: 34px;
  border: 0;
  border-left: 1px solid var(--cm-line);
  border-radius: 0;
  background: transparent;
  padding: 0 12px;
  color: var(--cm-muted);
  font-size: 12.5px;
  cursor: pointer;
}
html.theme--calm-mist .search-sort:focus { outline: none; box-shadow: none; }
html.theme--calm-mist .search > button {
  flex: none;
  width: 34px;
  height: 34px;
  margin-left: 4px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--cm-primary);
  color: #fff;
  font-size: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s, transform .15s;
}
html.theme--calm-mist .search > button:hover { background: var(--cm-primary-deep); transform: scale(1.04); }
html.theme--calm-mist .search > button .icon { color: #fff; }

/* ---------- 分页 ---------- */
html.theme--calm-mist .pager { padding: 10px 0; }
html.theme--calm-mist .pager__item,
html.theme--calm-mist .pager__item.current,
html.theme--calm-mist .pager a.pager__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  margin: 0 3px;
  padding: 0 12px;
  border-radius: 9px;
  border: 1px solid var(--cm-line);
  background: #fff;
  color: var(--cm-muted);
  font-size: 13px;
  transition: all .14s;
}
html.theme--calm-mist .pager__item:hover,
html.theme--calm-mist .pager a.pager__item:hover { border-color: #BFDDD2; color: var(--cm-primary-deep); background: #F7FCFA; }
html.theme--calm-mist .pager__item.current,
html.theme--calm-mist .pager .pager__item.current {
  background: var(--cm-primary-soft) !important;
  border-color: #CCE9DF !important;
  color: var(--cm-primary-deep) !important;
  font-weight: 650;
}
html.theme--calm-mist .pager__item.current { box-shadow: none; }
html.theme--calm-mist .pager__item.next { border-style: solid; }

/* ---------- 标签 / 徽章 ---------- */
html.theme--calm-mist .problem__tag,
html.theme--calm-mist .problem__tag-link,
html.theme--calm-mist .tag,
html.theme--calm-mist .contest-type-tag {
  display: inline-flex;
  align-items: center;
  border-radius: 7px;
  border: 1px solid var(--cm-line);
  background: var(--cm-surface-2);
  color: #4E635D;
  font-size: 11.5px;
  padding: 2px 8px;
  transition: all .14s;
}
html.theme--calm-mist .problem__tag-link:hover,
html.theme--calm-mist .contest-type-tag:hover {
  background: var(--cm-primary);
  border-color: var(--cm-primary);
  color: #fff;
}
html.theme--calm-mist .chip-list__item a,
html.theme--calm-mist .chip-list__item .typo-a {
  display: inline-flex;
  border-radius: var(--cm-radius-pill);
  background: var(--cm-surface-2);
  border: 1px solid var(--cm-line);
  padding: 4px 11px;
  font-size: 12px;
  color: #4E635D;
}
html.theme--calm-mist .chip-list__item a:hover { background: var(--cm-primary); border-color: var(--cm-primary); color: #fff; }

/* ---------- Tabs ---------- */
html.theme--calm-mist .section__tab-header { border-bottom: 1px solid var(--cm-line); }
html.theme--calm-mist .section__tab-header-item {
  color: var(--cm-muted);
  border-top: 3px solid transparent;
  border-radius: 10px 10px 0 0;
  font-weight: 550;
  transition: border-color .15s, background .15s, color .15s;
}
html.theme--calm-mist .section__tab-header-item:hover { border-top-color: #BFDDD2; background: #F7FCFA; color: var(--cm-text); }
html.theme--calm-mist .section__tab-header-item.selected,
html.theme--calm-mist .section__tab-header-item.tab--active { border-top-color: var(--cm-primary); color: var(--cm-primary-deep); }
/* ui-default 对非沉浸式 tab 用了更高特异性，这里对齐覆盖为薄荷青 */
html.theme--calm-mist .section__tab-container:not(.immersive) .section__tab-header-item.tab--active,
html.theme--calm-mist .section__tab-container:not(.immersive) .section__tab-header-item.selected {
  border-color: var(--cm-primary);
  color: var(--cm-primary-deep);
  background: transparent;
}
html.theme--calm-mist .section__tab-header-item { color: var(--cm-muted); }
html.theme--calm-mist .section__tab-header-item.selected:after { display: none; }
html.theme--calm-mist .tab__item { color: var(--cm-muted); }
html.theme--calm-mist .tab__item:hover { color: var(--cm-text); }
html.theme--calm-mist .tab__item.active,
html.theme--calm-mist .tab--active { color: var(--cm-primary-deep); }

/* ---------- 侧栏菜单 ---------- */
html.theme--calm-mist .section.side .menu { padding: 8px; margin: 0; list-style: none; }
html.theme--calm-mist .section.side .menu__item { margin: 2px 0; }
html.theme--calm-mist .section.side .menu__link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border: 0;
  border-radius: 9px;
  color: #4E635D;
  font-size: 13.5px;
  width: 100%;
}
html.theme--calm-mist .section.side .menu__link:hover { background: var(--cm-surface-2); color: var(--cm-primary-deep); text-decoration: none; }
html.theme--calm-mist .section.side .menu__link.highlight,
html.theme--calm-mist .section.side .menu__link.active {
  background: var(--cm-primary-soft);
  color: var(--cm-primary-deep);
  border-left-color: transparent;
  font-weight: 600;
}
html.theme--calm-mist .section.side .menu__link.highlight:hover,
html.theme--calm-mist .section.side .menu__link.active:hover { background: #D9F1E9; color: var(--cm-primary-deep); }
html.theme--calm-mist .section.side .menu__seperator { margin: 6px 12px; border: 0; border-top: 1px solid var(--cm-line); }
html.theme--calm-mist .section.side .menu__link .icon { color: var(--cm-faint); }

/* 复选框 / 单选框选中态（ui-default 用粉色） */
html.theme--calm-mist .checkbox input:checked { background: var(--cm-primary); border-color: var(--cm-primary); }
html.theme--calm-mist .checkbox input:enabled:hover { border-color: var(--cm-primary); }
html.theme--calm-mist .checkbox input:focus { border-color: var(--cm-primary); }

/* ---------- 标题旁元信息 ---------- */
html.theme--calm-mist .section__header .supplementary.list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 10px 0 4px;
  padding: 0;
  list-style: none;
  font-size: 12px;
  color: var(--cm-muted);
}
html.theme--calm-mist .section__header .supplementary.list > li {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: 7px;
  background: var(--cm-surface-2);
  border: 1px solid var(--cm-line);
  line-height: 1.6;
}
html.theme--calm-mist .section__header .supplementary.list > li a { color: var(--cm-muted); }
html.theme--calm-mist .section__header .supplementary.list > li a:hover { color: var(--cm-primary-deep); }
html.theme--calm-mist .section__header .section__title { letter-spacing: -.2px; }

/* ---------- 首页 Hero ---------- */
html.theme--calm-mist .cm-hero {
  position: relative;
  max-width: 1200px;
  margin: 6px auto 26px;
  padding: 44px 48px 40px;
  border-radius: 28px;
  border: 1px solid #DCEDE5;
  background: linear-gradient(115deg, #E9F7F1 0%, #F4FBF7 52%, #ECF5FB 100%);
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: 44px;
  align-items: center;
}
html.theme--calm-mist .cm-hero__glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(30px);
  pointer-events: none;
}
html.theme--calm-mist .cm-hero__glow--a {
  width: 340px; height: 340px; right: -70px; top: -150px;
  background: radial-gradient(circle, rgba(14, 159, 138, .20), transparent 65%);
}
html.theme--calm-mist .cm-hero__glow--b {
  width: 300px; height: 300px; right: 210px; bottom: -170px;
  background: radial-gradient(circle, rgba(255, 138, 91, .15), transparent 65%);
}
html.theme--calm-mist .cm-hero__left { position: relative; z-index: 2; }
html.theme--calm-mist .cm-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: var(--cm-radius-pill);
  background: rgba(14, 159, 138, .10);
  border: 1px solid rgba(14, 159, 138, .16);
  color: var(--cm-primary-deep);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .15em;
}
html.theme--calm-mist .cm-eyebrow i { width: 6px; height: 6px; border-radius: 50%; background: var(--cm-primary); }
html.theme--calm-mist .cm-hero h1 {
  margin: 20px 0 14px;
  font-size: 48px;
  line-height: 1.16;
  font-weight: 750;
  letter-spacing: -1.4px;
  color: #0D1F1B;
}
html.theme--calm-mist .cm-hero h1 em {
  font-style: normal;
  background: linear-gradient(100deg, #0E9F8A, #0A7F6C 55%, #0B8F7B);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
html.theme--calm-mist .cm-hero__sub {
  max-width: 470px;
  margin: 0;
  color: #4C615B;
  font-size: 15px;
  line-height: 1.8;
}
html.theme--calm-mist .cm-hero__cta { display: flex; align-items: center; gap: 12px; margin-top: 26px; }
html.theme--calm-mist .cm-btn { height: 44px; padding: 0 24px; border-radius: var(--cm-radius-pill); font-size: 14px; }
html.theme--calm-mist .cm-btn--primary { box-shadow: 0 8px 20px rgba(14, 159, 138, .26); }
html.theme--calm-mist .cm-btn--ghost { background: #fff; }
html.theme--calm-mist .cm-arrow { font-weight: 700; transform: translateY(-.5px); }
html.theme--calm-mist .cm-stats {
  display: flex;
  gap: 34px;
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px dashed rgba(11, 61, 54, .16);
}
html.theme--calm-mist .cm-stat b {
  display: block;
  font-size: 25px;
  font-weight: 750;
  letter-spacing: -.8px;
  line-height: 1.15;
  color: #102722;
  font-variant-numeric: tabular-nums;
}
html.theme--calm-mist .cm-stat span { display: block; margin-top: 3px; font-size: 12.5px; color: var(--cm-muted); }
html.theme--calm-mist .cm-hero__meta { margin: 16px 0 0; font-size: 12.5px; color: var(--cm-muted); }
html.theme--calm-mist .cm-hero__right { position: relative; z-index: 2; display: flex; justify-content: center; }
html.theme--calm-mist .cm-today {
  position: relative;
  width: 100%;
  max-width: 360px;
  padding: 22px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid #E4F0EA;
  box-shadow: 0 24px 50px rgba(11, 61, 54, .13);
}
html.theme--calm-mist .cm-today__bar {
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 4px;
  border-radius: 22px 22px 0 0;
  background: linear-gradient(90deg, #0E9F8A, #5BE3C4 55%, #FFB28F);
}
html.theme--calm-mist .cm-today__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
html.theme--calm-mist .cm-today__label { font-size: 12px; font-weight: 700; color: var(--cm-primary-deep); letter-spacing: .06em; }
html.theme--calm-mist .cm-today__date { font-size: 11.5px; color: var(--cm-faint); }
html.theme--calm-mist .cm-today h3 { margin: 0 0 4px; font-size: 20px; letter-spacing: -.3px; }
html.theme--calm-mist .cm-today__pid { color: var(--cm-faint); font-weight: 500; font-size: 15px; margin-right: 7px; font-family: var(--cm-mono); }
html.theme--calm-mist .cm-today__tags { display: flex; gap: 6px; margin: 10px 0 16px; flex-wrap: wrap; }
html.theme--calm-mist .cm-today__tag {
  display: inline-flex;
  padding: 3px 9px;
  border-radius: 7px;
  background: #F1F7F4;
  border: 1px solid #E3EEE8;
  color: #4E635D;
  font-size: 11.5px;
  font-weight: 600;
}
html.theme--calm-mist .cm-today__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(180deg, #12B29A, #0B8F7B);
  color: #fff !important;
  font-size: 14px;
  font-weight: 650;
  box-shadow: 0 6px 16px rgba(14, 159, 138, .22);
  transition: transform .15s, box-shadow .15s;
}
html.theme--calm-mist .cm-today__btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(14, 159, 138, .28); }
html.theme--calm-mist .cm-hero__empty {
  width: 100%;
  max-width: 360px;
  padding: 26px;
  border-radius: 22px;
  background: rgba(255, 255, 255, .72);
  border: 1px dashed #CBE3D9;
  text-align: center;
  color: var(--cm-muted);
}
html.theme--calm-mist .cm-hero__empty-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  margin-bottom: 10px;
  border-radius: 14px;
  background: linear-gradient(145deg, #14B69C, #0A8574);
  color: #fff;
  font-weight: 800;
  font-size: 18px;
}
html.theme--calm-mist .cm-hero__empty p { margin: 0 0 14px; font-size: 13px; }

/* ---------- 首页 section 内列表 ---------- */
html.theme--calm-mist .section.side .section__header { padding: 16px 20px 6px; }
html.theme--calm-mist .section.side h1.section__title { font-size: 1rem; }
html.theme--calm-mist .section.side h2.section__title { font-size: .9rem; }
html.theme--calm-mist .section.side .section__body { font-size: 13.5px; padding: 8px 20px; }
html.theme--calm-mist .section.side .section__body:last-child { padding-bottom: 16px; }
html.theme--calm-mist .section__body > p { line-height: 1.8; margin: .55em 0; }
html.theme--calm-mist .section__body ul,
html.theme--calm-mist .section__body ol { line-height: 1.9; margin: .5em 0; padding-left: 1.35em; }
html.theme--calm-mist .section.side .typo p { padding: 9px 0; margin: 0; border-bottom: 1px dashed var(--cm-line); }
html.theme--calm-mist .section.side .typo p:last-child { border-bottom: 0; }
html.theme--calm-mist .group-list__item h2.section__title { font-size: 12px; color: var(--cm-faint); font-weight: 650; margin: 14px 0 8px; letter-spacing: .02em; }
html.theme--calm-mist .chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
html.theme--calm-mist .chip-list__item { margin: 0; }
html.theme--calm-mist .contest__list { padding: 0 24px 18px; }
html.theme--calm-mist .contest__item { border-bottom: 1px solid var(--cm-line); transition: background .14s; border-radius: 12px; }
html.theme--calm-mist .contest__item:last-child { border-bottom: 0; }
html.theme--calm-mist .contest__item:hover { background: #F8FCFA; }
html.theme--calm-mist .contest__title { font-size: 15px; font-weight: 650; }
html.theme--calm-mist .contest__date.numbox { background: var(--cm-surface-2); border: 1px solid var(--cm-line); border-radius: 14px; padding: 8px 10px; }
html.theme--calm-mist .numbox__num.large { color: var(--cm-primary-deep); font-weight: 750; }
html.theme--calm-mist .contest-type-tag { background: #F2F7F5; }

/* 首页一言 / 推荐 等小卡片 */
html.theme--calm-mist .section.side .chip-list__item a { font-size: 11.5px; }

/* ---------- typo 内容排版 ---------- */
html.theme--calm-mist .typo { color: #2C443D; line-height: 1.85; }
html.theme--calm-mist .typo h1,
html.theme--calm-mist .typo h2,
html.theme--calm-mist .typo h3 { margin: 1.2em 0 .5em; line-height: 1.4; }
html.theme--calm-mist .typo h1 { font-size: 1.5rem; }
html.theme--calm-mist .typo h2 { font-size: 1.25rem; }
html.theme--calm-mist .typo h3 { font-size: 1.1rem; }
html.theme--calm-mist .typo p { margin: .7em 0; }
html.theme--calm-mist .typo ul,
html.theme--calm-mist .typo ol { padding-left: 1.4em; }
html.theme--calm-mist .typo a { color: var(--cm-primary-deep); text-decoration: none; border-bottom: 1px solid rgba(14, 159, 138, .25); }
html.theme--calm-mist .typo a:hover { border-bottom-color: var(--cm-primary); }
html.theme--calm-mist .typo blockquote {
  margin: 1em 0;
  padding: 10px 16px;
  border-left: 3px solid var(--cm-primary);
  background: var(--cm-surface-2);
  border-radius: 0 10px 10px 0;
  color: #3C504A;
}
html.theme--calm-mist .typo code {
  background: #F1F7F4;
  border: 1px solid #E3EEE8;
  border-radius: 6px;
  padding: 1px 6px;
  font-size: .9em;
  color: #0B6B5C;
}
html.theme--calm-mist .typo pre {
  background: #0F241F;
  border-radius: 14px;
  padding: 16px 18px;
  overflow: auto;
  color: #D7EFE8;
  border: 0;
}
html.theme--calm-mist .typo pre code { background: transparent; border: 0; color: inherit; padding: 0; }
html.theme--calm-mist .typo table { border-collapse: collapse; margin: 1em 0; }
html.theme--calm-mist .typo table th,
html.theme--calm-mist .typo table td { border: 1px solid var(--cm-line); padding: 8px 12px; }
html.theme--calm-mist .typo table th { background: var(--cm-surface-2); font-weight: 650; }
html.theme--calm-mist .typo hr { border: 0; border-top: 1px dashed var(--cm-line-strong); margin: 1.4em 0; }
html.theme--calm-mist .typo img { max-width: 100%; border-radius: 12px; }

/* ---------- 页脚 ---------- */
html.theme--calm-mist .cm-footer {
  margin-top: 12px;
  border-top: 1px solid var(--cm-line);
  background: rgba(255, 255, 255, .62);
}
html.theme--calm-mist .cm-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 0 28px;
  font-size: 12.5px;
  color: var(--cm-faint);
  flex-wrap: wrap;
}
html.theme--calm-mist .cm-footer__brand { display: inline-flex; align-items: center; gap: 9px; }
html.theme--calm-mist .cm-footer__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px; height: 24px;
  border-radius: 8px;
  background: linear-gradient(145deg, #14B69C, #0A8574);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
html.theme--calm-mist .cm-footer__name { color: #334742; font-weight: 650; font-size: 13px; }
html.theme--calm-mist .cm-footer__tag { color: var(--cm-faint); font-size: 11px; letter-spacing: .08em; }
html.theme--calm-mist .cm-footer__links { display: flex; align-items: center; gap: 18px; }
html.theme--calm-mist .cm-footer__links a { color: var(--cm-muted); }
html.theme--calm-mist .cm-footer__links a:hover { color: var(--cm-primary-deep); }
html.theme--calm-mist .cm-footer__copy a { color: var(--cm-muted); }
html.theme--calm-mist .cm-footer__copy a:hover { color: var(--cm-primary-deep); }

/* ---------- 系统提示 / 通知 ---------- */
html.theme--calm-mist blockquote.note,
html.theme--calm-mist blockquote.tip { border-left-color: var(--cm-primary); background: var(--cm-surface-2); }
html.theme--calm-mist blockquote.warn { border-left-color: var(--cm-warn); background: #FFF8EA; }
html.theme--calm-mist blockquote.danger,
html.theme--calm-mist blockquote.error { border-left-color: var(--cm-danger); background: #FEF2F2; }
html.theme--calm-mist .hint { background: #FFF8EA; color: #7A6435; border-bottom: 1px solid #F0E6CF; }

/* ---------- 页面标题条（由 theme.js 注入） ---------- */
html.theme--calm-mist .cm-page-head { max-width: 1200px; margin: 0 auto 18px; padding: 0 12px; }
html.theme--calm-mist .cm-page-head__inner { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
html.theme--calm-mist .cm-page-head h1 { margin: 0; font-size: 26px; font-weight: 750; letter-spacing: -.6px; color: #0D1F1B; }
html.theme--calm-mist .cm-page-head p { margin: 0; font-size: 13px; color: var(--cm-muted); }
@media only screen and (max-width: 600px) {
  html.theme--calm-mist .cm-page-head { padding: 0 16px; }
  html.theme--calm-mist .cm-page-head h1 { font-size: 21px; }
}

/* ---------- 登录 / 注册等沉浸式页面 ---------- */
html.theme--calm-mist.layout--immersive .main { padding: 92px 16px 60px; }
html.theme--calm-mist.layout--immersive .immersive--content.immersive--center {
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  padding: 38px 38px 30px;
  background: var(--cm-surface);
  border: 1px solid var(--cm-line);
  border-radius: 24px;
  box-shadow: var(--cm-shadow-lift);
}
html.theme--calm-mist.layout--immersive .immersive--content > h1 {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 750;
  letter-spacing: -.4px;
  text-align: center;
  color: var(--cm-text);
}
html.theme--calm-mist.layout--immersive .immersive--content .row { margin: 0; }
html.theme--calm-mist.layout--immersive .immersive--content .columns { padding: 0; }
html.theme--calm-mist.layout--immersive label.material.textbox {
  display: block;
  width: 100%;
  margin: 4px 0 6px;
  padding: 0;
  color: var(--cm-muted) !important;
  font-size: 12.5px;
  font-weight: 600;
}
html.theme--calm-mist.layout--immersive label.material.textbox input {
  display: block;
  width: 100%;
  height: 42px;
  margin-top: 2px;
  padding: 4px 2px;
  border: 0;
  border-bottom: 1px solid var(--cm-line-strong);
  background: transparent;
  color: var(--cm-text);
  font-family: var(--cm-font);
  font-size: 14px;
  outline: none;
  box-shadow: none;
}
html.theme--calm-mist.layout--immersive label.material.textbox input:focus { border-bottom-color: var(--cm-primary); }
html.theme--calm-mist.layout--immersive .immersive--content .checkbox {
  color: var(--cm-text) !important;
  font-size: 13px;
  margin: 12px 0 0;
}
html.theme--calm-mist.layout--immersive .immersive--content .text-center { margin-top: 16px; }
html.theme--calm-mist.layout--immersive .immersive--content .button.primary {
  height: 44px;
  border: 0;
  background: linear-gradient(180deg, #12B29A, #0B8F7B) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(14, 159, 138, .26);
}
html.theme--calm-mist.layout--immersive .immersive--content .button.primary:hover { background: linear-gradient(180deg, #14BFA5, #0B8F7B) !important; }
html.theme--calm-mist.layout--immersive .immersive--content .supplementary { color: var(--cm-muted); font-size: 12.5px; }
html.theme--calm-mist.layout--immersive .immersive--content .supplementary a { color: var(--cm-muted); }
html.theme--calm-mist.layout--immersive .immersive--content .supplementary a:hover { color: var(--cm-primary-deep); }

/* ---------- 比赛页顶部状态横幅 ---------- */
html.theme--calm-mist.page--contest_main .section--contest.live,
html.theme--calm-mist.page--contest_main .section--contest.ready {
  background: linear-gradient(120deg, #EAF7F2 0%, #F4FBF7 60%, #ECF5FB 100%);
  border: 1px solid #DCEDE5;
  box-shadow: var(--cm-shadow);
  color: var(--cm-text);
}
html.theme--calm-mist.page--contest_main .section--contest .status_title {
  display: inline-block;
  padding: 4px 11px;
  border-radius: var(--cm-radius-pill);
  background: var(--cm-primary-soft);
  color: var(--cm-primary-deep);
  font-size: 12px;
  font-weight: 650;
}
html.theme--calm-mist.page--contest_main .section--contest h1 { color: var(--cm-text); font-size: 24px; font-weight: 750; letter-spacing: -.4px; }
html.theme--calm-mist.page--contest_main .section--contest .info { color: var(--cm-muted); }
html.theme--calm-mist.page--contest_main .section--contest .info .icon { color: var(--cm-primary); }
html.theme--calm-mist.page--contest_main .section--contest .attandance { color: var(--cm-muted); }
html.theme--calm-mist.page--contest_main .section--contest .detail-button {
  display: inline-block;
  width: auto;
  min-width: 110px;
  padding: 0 24px;
  line-height: 40px;
  white-space: nowrap;
  text-align: center;
  border-radius: var(--cm-radius-pill);
  background: linear-gradient(180deg, #12B29A, #0B8F7B);
  color: #fff !important;
  font-weight: 650;
  box-shadow: 0 6px 16px rgba(14, 159, 138, .24);
  overflow: hidden;
}
html.theme--calm-mist.page--contest_main .section--contest .detail-button:hover {
  background: linear-gradient(180deg, #14BFA5, #0B8F7B);
  box-shadow: 0 10px 22px rgba(14, 159, 138, .3);
}
html.theme--calm-mist.page--contest_main .section--contest .info li { color: var(--cm-muted); }

/* 比赛类型 / Rated 标签 */
html.theme--calm-mist .contest-type-tag,
html.theme--calm-mist .contest-type--acm .contest-type-tag,
html.theme--calm-mist .contest-type--oi .contest-type-tag,
html.theme--calm-mist .contest-type--ioi .contest-type-tag,
html.theme--calm-mist .contest-type--ledo .contest-type-tag,
html.theme--calm-mist .contest-type--homework .contest-type-tag,
html.theme--calm-mist .contest-type--strictioi .contest-type-tag {
  background: var(--cm-surface-2);
  border: 1px solid var(--cm-line);
  color: var(--cm-primary-deep);
  border-radius: 7px;
  padding: 1px 9px;
}
html.theme--calm-mist .contest-type-tag:hover,
html.theme--calm-mist .contest-type--acm .contest-type-tag:hover,
html.theme--calm-mist .contest-type--oi .contest-type-tag:hover {
  background: var(--cm-primary);
  border-color: var(--cm-primary);
  color: #fff;
}
html.theme--calm-mist .contest-tag-rated {
  background: #FFF4E3;
  border: 1px solid #F5E3C3;
  color: #A55A00;
  border-radius: 7px;
  padding: 1px 9px;
}
html.theme--calm-mist .contest__item.live { border-left-color: var(--cm-primary); }
html.theme--calm-mist .contest__item.ready { border-left-color: #F2B45C; }
html.theme--calm-mist .page--contest_main .contest__item .numbox__num,
html.theme--calm-mist .page--contest_main .contest__item .numbox__num .time { color: var(--cm-primary-deep); }
html.theme--calm-mist .page--contest_main .contest__item .numbox__text,
html.theme--calm-mist .page--contest_main .contest__item .numbox__text .time { color: var(--cm-faint); }

/* 讨论列表的置顶/高亮竖线改为薄荷青 */
html.theme--calm-mist.page--discussion_main .discussion__item.highlight,
html.theme--calm-mist.page--discussion_node .discussion__item.highlight,
html.theme--calm-mist.page--blog_main .discussion__item.highlight,
html.theme--calm-mist.page--user_detail .discussion__item.highlight { border-left-color: var(--cm-primary); }
html.theme--calm-mist .discussion__item { border-left-color: transparent; }
html.theme--calm-mist .discussion__item:hover { background: #F8FCFA; }

/* 记录页管理操作链接 */
html.theme--calm-mist button.link,
html.theme--calm-mist .link.text-maroon { color: var(--cm-faint) !important; }
html.theme--calm-mist button.link:hover,
html.theme--calm-mist .link.text-maroon:hover { color: var(--cm-primary-deep) !important; }
html.theme--calm-mist .record-status--text.pass { color: var(--cm-success) !important; }
html.theme--calm-mist .record-status--text.fail { color: var(--cm-danger) !important; }
html.theme--calm-mist .record-status--text.progress { color: var(--cm-warn) !important; }
html.theme--calm-mist td.record-status--border { border-left-width: 3px; border-left-style: solid; }
html.theme--calm-mist td.record-status--border.pass { border-left-color: var(--cm-success); }
html.theme--calm-mist td.record-status--border.fail { border-left-color: var(--cm-danger); }
html.theme--calm-mist td.record-status--border.progress { border-left-color: var(--cm-warn); }

/* 404 / 错误页 */
html.theme--calm-mist.page--error .error__twd2 {
  background: radial-gradient(circle at 35% 32%, #E3F6EF 0%, #D3EEE4 55%, #C7E9DD 100%);
  border-radius: 50%;
  box-shadow: 0 18px 40px rgba(11, 61, 54, .10);
}
html.theme--calm-mist.page--error .error__text-container { color: var(--cm-muted); }
html.theme--calm-mist.page--error .error__text-container h1 { color: var(--cm-text); font-weight: 750; letter-spacing: -1px; }
html.theme--calm-mist.page--error .error__container { margin: 40px auto; }

/* ---------- 响应式 ---------- */
@media only screen and (max-width: 1280px) {
  html.theme--calm-mist .cm-hero { margin-left: 16px; margin-right: 16px; }
}
@media only screen and (max-width: 1000px) {
  html.theme--calm-mist .cm-hero { grid-template-columns: 1fr; padding: 32px 28px; gap: 26px; }
  html.theme--calm-mist .cm-hero h1 { font-size: 38px; }
  html.theme--calm-mist .cm-hero__right { justify-content: flex-start; }
  html.theme--calm-mist .cm-today { max-width: 100%; }
  html.theme--calm-mist .cm-nav-search { display: none; }
}
@media only screen and (max-width: 600px) {
  html.theme--calm-mist .main { padding: 0 0 24px; }
  html.theme--calm-mist .cm-hero { margin: 0; border-radius: 0 0 24px 24px; padding: 26px 20px 24px; }
  html.theme--calm-mist .cm-hero h1 { font-size: 30px; letter-spacing: -.8px; }
  html.theme--calm-mist .cm-stats { gap: 18px; flex-wrap: wrap; }
  html.theme--calm-mist .cm-stat b { font-size: 21px; }
  html.theme--calm-mist .section { border-radius: 16px; margin-left: 12px; margin-right: 12px; }
  html.theme--calm-mist .cm-footer__inner { padding: 18px 16px 24px; }
}
