/* 成都理工大学 · 地质工程一体化钻井技术与工具研究中心 前端（2026-10-18 第七轮：对齐成都理工大学官方视觉）
   依据（成都理工大学官网公开页面）：
     · 学校标准色“成理蓝”，印刷色 C95 M85 Y40 K0（校标页）。屏幕色按 FOGRA39 涂布纸印刷特性、相对色度意图换算为 #3B456F，
       这是色彩管理换算值，不是学校公布的屏幕色值；拿到 VI 手册里的 RGB 值后只需改下面 --cd-blue 一处。
     · 校标为白底蓝色图文，校旗为蓝底白色校标与中英文校名；英文校名用大写印刷体。
     · 二级单位与学校标志组合：校名在前，单位名称在后（A4-09 规范；具体比例、留白未取得，这里按“校名 | 单位名”的常见形式排）。
   没有取得官方校标图形文件，所以页头只用文字组合，不画任何仿制校徽。
   与星通云共用全部页面内容，这里只换外壳与配色；页面组件读 --xc-* 变量，这里整体指到成理蓝。 */
:root {
    --cd-blue: #3b456f;          /* 成理蓝（屏幕换算值） */
    --cd-blue-d: #2b3354;        /* 深一级：导航条、页脚 */
    --cd-blue-dd: #1f2640;
    --cd-blue-l: #5a6592;
    --cd-tint: #e9ebf2;          /* 浅色底 */
    --cd-tint-2: #f4f5f9;
    --cd-ink: #1d2233;
    --cd-muted: #5f6680;
    --cd-line: #d8dce7;
    --cd-paper: #f5f6f9;
    --cd-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
    --cd-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif;
    --xc-brand: #3b456f;
    --xc-brand-hover: #4a5583;
    --xc-brand-active: #2b3354;
    --xc-brand-bg: #e9ebf2;
    --xc-page: #f5f6f9;
    --xc-line: #d8dce7;
    --xc-line-soft: #e6e9f0;
    --xc-hover: #eef0f6;
    --xc-radius: 2px;
    --xc-shadow-card: 0 1px 0 rgba(29, 34, 51, 0.04);
}
body.xc.cd { background: var(--cd-paper); color: var(--cd-ink); font-family: var(--cd-sans); }
body.xc.cd h1, body.xc.cd h2, body.xc.cd h3 { font-family: var(--cd-serif); letter-spacing: .02em; }
body.xc.cd .shell { max-width: 1240px; margin: 0 auto; padding: 22px 20px 28px; }
body.xc.cd .button--primary { background: var(--cd-blue); border-color: var(--cd-blue); }
body.xc.cd .button--primary:hover { background: var(--cd-blue-d); border-color: var(--cd-blue-d); }
body.xc.cd .xc-card, body.xc.cd .panel, body.xc.cd .ws-card { border-color: var(--cd-line); border-radius: 2px; }
body.xc.cd a { color: var(--cd-blue); }
body.xc.cd .xc-card__title { color: var(--cd-blue-d); }
body.xc.cd table thead th { background: var(--cd-tint-2); color: var(--cd-muted); }

/* ---------------------------------------------------------------- 页头：成理蓝通栏 + 白色文字组合（校名 | 单位名） */
.cd-header { position: sticky; top: 0; z-index: 210; background: var(--cd-blue); color: #fff; box-shadow: 0 1px 0 rgba(0, 0, 0, .15); }
.cd-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; max-width: 1240px; margin: 0 auto; padding: 14px 20px 12px; }
.cd-brand { display: flex; align-items: center; gap: 16px; color: #fff; text-decoration: none; min-width: 0; }
body.xc.cd .cd-brand, body.xc.cd .cd-brand:hover { color: #fff; }
.cd-brand__school { display: flex; flex-direction: column; flex: none; }
.cd-brand__cn { font-family: var(--cd-serif); font-size: 24px; font-weight: 700; letter-spacing: .12em; line-height: 1.15; }
.cd-brand__en { margin-top: 3px; font-family: Georgia, "Times New Roman", serif; font-size: 10px; letter-spacing: .08em; opacity: .85; white-space: nowrap; }
.cd-brand__rule { flex: none; width: 1px; height: 40px; background: rgba(255, 255, 255, .6); }
.cd-brand__unit { font-family: var(--cd-serif); font-size: 18px; font-weight: 600; letter-spacing: .06em; line-height: 1.35; min-width: 0; }
.cd-header__tools { display: flex; align-items: center; gap: 10px; }
.cd-header__link { color: #fff !important; font-size: 13px; opacity: .9; white-space: nowrap; }
.cd-search { position: relative; display: flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .8); }
.cd-search input { width: 210px; border: 0; background: transparent; font-size: 13px; color: #fff; outline: none; }
.cd-search input::placeholder { color: rgba(255, 255, 255, .62); }
.cd-search .svg-icon { width: 14px; height: 14px; }
.cd-search__results { position: absolute; top: 34px; right: 0; width: 300px; background: #fff; border: 1px solid var(--cd-line); box-shadow: 0 8px 24px rgba(29, 34, 51, .16); z-index: 300; }
.cd-search__results[hidden] { display: none; }
.cd-search__results a { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; color: var(--cd-ink) !important; text-decoration: none; font-size: 13px; }
.cd-search__results a span { color: var(--cd-muted); font-size: 12px; }
.cd-search__results a:hover, .cd-search__results a:first-child { background: var(--cd-tint); }
.cd-search__none { display: block; padding: 8px 12px; color: var(--cd-muted); font-size: 12px; }
.cd-user__trigger { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .35); background: transparent; color: #fff; cursor: pointer; }
.cd-user__trigger .xc-caret { border-top-color: rgba(255, 255, 255, .8); }
.cd-user__name { font-weight: 600; }
.cd-user__role { padding: 1px 6px; background: rgba(255, 255, 255, .16); color: #fff; font-size: 12px; }
.cd-user .xc-dropdown a { color: var(--cd-ink) !important; }
.cd-menu-toggle { display: none; align-items: center; gap: 4px; height: 32px; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .35); background: transparent; color: #fff; cursor: pointer; }

/* ---------------------------------------------------------------- 横向主菜单（深一级成理蓝，白字；当前栏目下划白线） */
.cd-nav { background: var(--cd-blue-d); }
.cd-nav__inner { display: flex; max-width: 1240px; margin: 0 auto; padding: 0 12px; }
.cd-nav__item { position: relative; }
.cd-nav__top { position: relative; display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 20px; color: rgba(255, 255, 255, .88) !important; font-size: 15px; letter-spacing: .1em; text-decoration: none; }
.cd-nav__top .xc-caret { border-top-color: rgba(255, 255, 255, .7); }
.cd-nav__item:hover .cd-nav__top, .cd-nav__item:focus-within .cd-nav__top { background: rgba(255, 255, 255, .1); color: #fff !important; }
.cd-nav__item.is-active .cd-nav__top { color: #fff !important; font-weight: 700; background: var(--cd-blue); }
.cd-nav__item.is-active .cd-nav__top::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; background: #fff; }
.cd-nav__menu { position: absolute; top: 44px; left: 0; min-width: 220px; padding: 8px 0; background: #fff; border: 1px solid var(--cd-line); border-top: 3px solid var(--cd-blue);
    box-shadow: 0 10px 28px rgba(29, 34, 51, .16); display: none; z-index: 220; }
.cd-nav__item:hover .cd-nav__menu, .cd-nav__item:focus-within .cd-nav__menu, .cd-nav__item.is-open .cd-nav__menu { display: block; }
.cd-nav__link { display: block; padding: 7px 18px; color: var(--cd-ink) !important; font-size: 14px; text-decoration: none; white-space: nowrap; }
.cd-nav__link:hover { background: var(--cd-tint); color: var(--cd-blue) !important; }
.cd-nav__link.is-active { color: var(--cd-blue) !important; font-weight: 700; border-left: 3px solid var(--cd-blue); padding-left: 15px; }
.cd-nav__group { margin: 4px 0; padding: 4px 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: var(--cd-tint-2); }
.cd-nav__group-title { padding: 4px 18px; color: var(--cd-muted); font-size: 12px; letter-spacing: .1em; }
.cd-nav__link--sub { padding-left: 30px; }
.cd-nav__link--sub.is-active { padding-left: 27px; }

.cd-crumb { background: #fff; border-bottom: 1px solid var(--cd-line); }
.cd-crumb__inner { display: flex; gap: 8px; max-width: 1240px; margin: 0 auto; padding: 9px 20px; color: var(--cd-muted); font-size: 12px; }
.cd-crumb__inner::before { content: "当前位置："; }
.cd-crumb__inner strong { color: var(--cd-blue); }
.cd-main { min-height: calc(100vh - 230px); }

/* ---------------------------------------------------------------- 页脚 */
.cd-footer { margin-top: 30px; background: var(--cd-blue-d); color: rgba(255, 255, 255, .8); font-size: 12px; border-top: 4px solid var(--cd-blue); }
.cd-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; max-width: 1240px; margin: 0 auto; padding: 22px 20px; line-height: 1.9; }
.cd-footer strong { color: #fff; font-family: var(--cd-serif); font-size: 14px; letter-spacing: .04em; }
.cd-footer__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; }
.cd-footer a { color: #fff !important; }

/* ---------------------------------------------------------------- 井空间页头 */
.cd .ws-head { background: #fff; border-color: var(--cd-line); border-radius: 0; border-top: 3px solid var(--cd-blue); }
.cd .ws-head__title h1 { color: var(--cd-blue-d); }
.cd .ws-tabs { border-color: var(--cd-line); border-radius: 0; background: var(--cd-tint-2); }
.cd .ws-tabs__item.is-active::after { background: var(--cd-blue); height: 3px; }
.cd .ws-tabs__item.is-active .ws-tabs__num { background: var(--cd-blue); }
.cd .ws-next { border-color: var(--cd-blue-l); background: linear-gradient(180deg, var(--cd-tint-2), #fff); }
.cd .ws-step.is-first { border-color: var(--cd-blue); }
.cd .xc-tabs__item.is-active::after { background: var(--cd-blue); }

/* ---------------------------------------------------------------- 未登录（登录 / 注册） */
.cd--guest .cd-main { display: flex; flex-direction: column; justify-content: center; background: linear-gradient(180deg, var(--cd-tint) 0%, var(--cd-paper) 60%); }
.cd--guest .login-card, .cd--guest .panel { border-top: 4px solid var(--cd-blue); }
.cd--guest .login-head__mark { background: var(--cd-tint) !important; color: var(--cd-blue) !important; }
.cd--guest .login-shell--split { display: grid; place-items: stretch; min-height: 0; grid-template-columns: minmax(0, 1.15fr) minmax(360px, 430px); max-width: 1060px; margin: 34px auto; padding: 0;
    background: #fff; border: 1px solid var(--cd-line); box-shadow: 0 18px 44px rgba(29, 34, 51, .1); }
.cd--guest .login-shell--split .login-card.panel { margin: 0; max-width: none; width: auto; border: 0; border-top: 4px solid var(--cd-blue); box-shadow: none; padding: 40px 40px 32px; }
.login-brand--cdut { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 42px 42px 30px; color: #fff; background: var(--cd-blue); }
.login-brand--cdut::after { content: ""; position: absolute; right: -80px; bottom: -80px; width: 320px; height: 320px; border-radius: 50%; border: 40px solid rgba(255, 255, 255, .05); pointer-events: none; }
.login-brand--cdut > * { position: relative; z-index: 1; }
.login-brand--cdut .login-brand__org { font-family: var(--cd-serif); font-size: 22px; font-weight: 700; letter-spacing: .14em; }
.login-brand--cdut .login-brand__en { margin-top: 2px; font-family: Georgia, "Times New Roman", serif; font-size: 11px; letter-spacing: .08em; opacity: .8; }
.login-brand--cdut .login-brand__title { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .35); color: #fff; font-family: var(--cd-serif); font-size: 24px; line-height: 1.45; letter-spacing: .04em; }
.login-brand--cdut .login-brand__lead { margin: 10px 0 0; color: rgba(255, 255, 255, .82); font-size: 14px; line-height: 1.8; }
.login-brand--cdut .login-brand__list { margin: 24px 0 0; padding: 0; list-style: none; counter-reset: cdstep; display: flex; flex-direction: column; gap: 14px; }
.login-brand--cdut .login-brand__list li { counter-increment: cdstep; position: relative; padding-left: 40px; }
.login-brand--cdut .login-brand__list li::before { content: counter(cdstep); position: absolute; left: 0; top: 1px; width: 26px; height: 26px; border: 1px solid rgba(255, 255, 255, .7);
    font-family: var(--cd-serif); font-size: 13px; line-height: 24px; text-align: center; }
.login-brand--cdut .login-brand__list strong { display: block; font-family: var(--cd-serif); font-size: 16px; }
.login-brand--cdut .login-brand__list span { display: block; margin-top: 2px; color: rgba(255, 255, 255, .74); font-size: 13px; }
.login-brand--cdut .login-brand__foot { margin: auto 0 0; padding-top: 28px; color: rgba(255, 255, 255, .6); font-size: 12px; }
.login-brand--cdut .login-brand__foot a { color: #fff !important; text-decoration: underline; }

/* ---------------------------------------------------------------- 研究中心首页 */
.cd-home__banner { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 30px; padding: 30px 32px; color: #fff; background: var(--cd-blue); }
.cd-home__banner::after { content: ""; position: absolute; right: -60px; top: -90px; width: 300px; height: 300px; border-radius: 50%; border: 36px solid rgba(255, 255, 255, .05); }
.cd-home__banner-text { position: relative; z-index: 1; flex: 1 1 520px; min-width: 0; }
.cd-home__banner h1 { margin: 0; font-size: 26px; color: #fff; }
.cd-home__banner p { margin: 8px 0 0; max-width: 760px; color: rgba(255, 255, 255, .86); line-height: 1.8; }
.cd-home__org { color: rgba(255, 255, 255, .9); font-family: var(--cd-serif); letter-spacing: .3em; font-size: 13px; }
.cd-home__continue { position: relative; z-index: 1; flex: 0 1 300px; display: flex; flex-direction: column; gap: 3px; padding: 14px 18px; border: 1px solid rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .06); color: #fff !important; text-decoration: none; }
.cd-home__continue:hover { background: rgba(255, 255, 255, .14); }
.cd-home__continue span { font-family: var(--cd-serif); font-size: 12px; letter-spacing: .25em; opacity: .85; }
.cd-home__continue strong { font-family: var(--cd-serif); font-size: 19px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cd-home__continue em { color: rgba(255, 255, 255, .78); font-style: normal; font-size: 12px; }
.cd-home__stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin-top: 18px; background: var(--cd-line); border: 1px solid var(--cd-line); }
.cd-home__stat { padding: 16px 18px; background: #fff; color: inherit !important; text-decoration: none; }
a.cd-home__stat:hover { background: var(--cd-tint-2); }
.cd-home__stat strong { display: block; color: var(--cd-blue); font-family: var(--cd-serif); font-size: 28px; }
.cd-home__stat strong small { color: var(--cd-muted); font-size: 14px; font-weight: 400; }
.cd-home__stat span { color: var(--cd-muted); font-size: 13px; }
.cd-home__section { margin-top: 24px; }
.cd-home__section > h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--cd-line); font-size: 18px; color: var(--cd-blue-d); }
.cd-home__section > h2::before { content: ""; width: 4px; height: 18px; background: var(--cd-blue); }
.cd-home__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.cd-home__card { display: block; padding: 16px 18px; background: #fff; border: 1px solid var(--cd-line); color: var(--cd-ink) !important; text-decoration: none; }
.cd-home__card:hover { border-color: var(--cd-blue); box-shadow: 0 6px 18px rgba(59, 69, 111, .12); }
.cd-home__card strong { display: block; color: var(--cd-blue-d); font-family: var(--cd-serif); font-size: 16px; }
.cd-home__card span { display: block; margin-top: 6px; color: var(--cd-muted); font-size: 13px; line-height: 1.7; }
.cd-home__card em { display: inline-block; margin-top: 8px; color: var(--cd-blue); font-style: normal; font-size: 12px; }
.cd-home__wells { width: 100%; min-width: 0; border-collapse: collapse; background: #fff; border: 1px solid var(--cd-line); font-size: 13px; }
.cd-home__wells th, .cd-home__wells td { padding: 9px 12px; border-bottom: 1px solid var(--cd-line); text-align: left; }
.cd-home__wells th { background: var(--cd-tint-2); color: var(--cd-muted); font-weight: 500; }
.cd-home__wells a { color: var(--cd-blue) !important; text-decoration: none; font-weight: 600; }
.cd-home__cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.cd-home__runs { margin: 0; padding: 0; list-style: none; background: #fff; border: 1px solid var(--cd-line); }
.cd-home__runs li { display: flex; align-items: center; gap: 12px; padding: 9px 14px; border-bottom: 1px solid var(--cd-line); font-size: 13px; }
.cd-home__runs li:last-child { border-bottom: 0; }
.cd-home__runs-no { flex: none; width: 42px; color: var(--cd-muted); font-family: var(--cd-serif); }
.cd-home__runs-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cd-home__runs-main a { color: var(--cd-blue) !important; font-weight: 600; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cd-home__runs em { color: var(--cd-muted); font-style: normal; font-size: 12px; }
.cd-home__runs-side { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.cd-home__runs-side b { padding: 0 6px; font-weight: 500; font-size: 12px; background: var(--cd-tint-2); color: var(--cd-muted); }
.cd-home__runs-side b.is-completed { background: var(--cd-tint); color: var(--cd-blue); }
.cd-home__runs-side b.is-failed { background: #f6e3df; color: #9b3a26; }

/* ---------------------------------------------------------------- 窄屏 */
@media (max-width: 1100px) { .cd-home__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cd-brand__unit { font-size: 16px; } }
@media (max-width: 992px) {
    .cd-search { display: none; }
    .cd-menu-toggle { display: inline-flex; }
    .cd-user__role { display: none; }
    .cd-nav { display: none; }
    .cd-nav.is-open { display: block; }
    .cd-nav__inner { flex-direction: column; padding: 0; }
    .cd-nav__menu { position: static; display: block; border: 0; box-shadow: none; padding: 0 0 6px; background: #fff; }
    .cd-nav__top { height: 40px; }
    .cd-nav__item.is-active .cd-nav__top::after { display: none; }
    .cd-home__grid { grid-template-columns: 1fr; }
    body.xc.cd .shell { padding: 14px 12px 22px; }
}
@media (max-width: 860px) {
    .cd--guest .login-shell--split { grid-template-columns: 1fr; margin: 14px auto; }
    .cd--guest .login-shell--split .login-card.panel { padding: 26px 22px; }
    .login-brand--cdut { padding: 22px 22px 18px; }
    .login-brand--cdut .login-brand__title { font-size: 19px; }
    .login-brand--cdut .login-brand__list, .login-brand--cdut .login-brand__foot { display: none; }
    .cd-home__cols { grid-template-columns: 1fr; }
    .cd-home__continue { flex-basis: 100%; }
}
@media (max-width: 700px) {
    .cd-brand { gap: 10px; }
    .cd-brand__cn { font-size: 18px; letter-spacing: .06em; }
    .cd-brand__en { display: none; }
    .cd-brand__rule { height: 30px; }
    .cd-brand__unit { font-size: 13px; letter-spacing: 0; }
}
@media (max-width: 560px) {
    .cd-home__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cd-header__inner { gap: 8px; padding: 10px 12px 8px; }
    .cd-header__tools { gap: 6px; }
    .cd-user__name { display: none; }
    .cd-user__avatar { display: inline-block; }
    .cd-menu-toggle span { display: none; }
    .cd-header__link + .cd-header__link { display: none; }
}
.cd-user__trigger, .cd-menu-toggle { white-space: nowrap; flex: none; }
.cd-user__avatar { display: none; width: 24px; height: 24px; border-radius: 50%; background: #fff; color: var(--cd-blue); font-size: 12px; line-height: 24px; text-align: center; }
