/* 设计系统（2026-10-18 第八轮“全新升级”）：两个版本共用的组件外观。
   最后加载，覆盖 main.css / console.css 里层层叠加的旧样式；颜色只读 --ds-* 变量，由 theme-company.css / theme-school.css 各自给值。
   覆盖范围：页面标题区、卡片 / 面板、按钮、表单控件、表格、页签、标签与状态、提示条、弹窗、分页、空状态、井空间页头与页签。 */
:root {
    --ds-radius-sm: 6px; --ds-radius: 10px; --ds-radius-lg: 14px;
    --ds-font: "Inter", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
    --ds-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
    --ds-shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);
    --ds-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 8px 24px rgba(16, 24, 40, .06);
    --ds-shadow-lg: 0 12px 40px rgba(16, 24, 40, .14);
    --ds-success: #12805c; --ds-success-soft: #e7f6ef;
    --ds-warning: #b25e09; --ds-warning-soft: #fff4e5;
    --ds-danger: #c4320a; --ds-danger-soft: #fdeeea;
    --ds-info-soft: #eef4ff;
    /* 旧组件读的变量统一指过来 */
    --xc-brand: var(--ds-primary); --xc-brand-hover: var(--ds-primary-hover); --xc-brand-active: var(--ds-primary-ink);
    --xc-brand-bg: var(--ds-primary-soft); --xc-page: var(--ds-bg); --xc-card: var(--ds-surface);
    --xc-line: var(--ds-border-strong); --xc-line-soft: var(--ds-border); --xc-hover: var(--ds-surface-2);
    --xc-text: var(--ds-text); --xc-text-2: var(--ds-text-2); --xc-text-3: var(--ds-text-3);
    --xc-radius: var(--ds-radius); --xc-shadow-card: var(--ds-shadow-sm);
    --xc-success: var(--ds-success); --xc-success-bg: var(--ds-success-soft);
    --xc-warning: var(--ds-warning); --xc-warning-bg: var(--ds-warning-soft);
    --xc-danger: var(--ds-danger); --xc-danger-bg: var(--ds-danger-soft);
    --xc-font: var(--ds-font);
}
body.ds { margin: 0; background: var(--ds-bg); color: var(--ds-text); font-family: var(--ds-font); font-size: 14px; line-height: 1.6;
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
body.ds a { color: var(--ds-link, var(--ds-primary)); }
body.ds a:hover { color: var(--ds-primary-hover); }
body.ds ::selection { background: var(--ds-primary-soft); }
body.ds :focus-visible { outline: 2px solid var(--ds-primary); outline-offset: 2px; }
body.ds .shell { width: auto; max-width: none; margin: 0; padding: 28px 32px 40px; }

/* ---------------------------------------------------------------- 页面标题区 */
body.ds .xc-page { display: flex; flex-direction: column; gap: 18px; }
body.ds .xc-page__head, body.ds .page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px;
    margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
body.ds .xc-page__title, body.ds .page-head h1 { margin: 0; font-family: var(--ds-font-head, var(--ds-font)); font-size: 24px; line-height: 1.3; font-weight: 700;
    letter-spacing: -.01em; color: var(--ds-text); }
body.ds .xc-page__desc, body.ds .page-head p { margin: 6px 0 0; max-width: 820px; color: var(--ds-text-2); font-size: 14px; line-height: 1.7; }
body.ds .xc-page__actions, body.ds .xc-page__ops { display: flex; flex-wrap: wrap; gap: 8px; }
body.ds .xc-crumb { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; color: var(--ds-text-3); font-size: 12px; }
body.ds .xc-crumb a { color: var(--ds-text-2); text-decoration: none; }

/* ---------------------------------------------------------------- 卡片 / 面板 */
body.ds .xc-card, body.ds .panel, body.ds .ws-card, body.ds .research-panel {
    border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); background: var(--ds-surface); box-shadow: var(--ds-shadow-sm); }
body.ds .xc-card + .xc-card { margin-top: 0; }
body.ds .xc-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 16px 20px;
    border-bottom: 1px solid var(--ds-border); }
body.ds .xc-card__title, body.ds .ws-card h2 { margin: 0; font-size: 15px; font-weight: 650; color: var(--ds-text); letter-spacing: 0; }
body.ds .xc-card__body { padding: 18px 20px; }
body.ds .panel__title { font-weight: 650; }

/* ---------------------------------------------------------------- 按钮 */
body.ds .button, body.ds button.button, body.ds .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 0 14px;
    border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm); background: var(--ds-surface); color: var(--ds-text);
    font: 500 14px/1 var(--ds-font); text-decoration: none; cursor: pointer; box-shadow: var(--ds-shadow-sm);
    transition: background .15s, border-color .15s, color .15s, box-shadow .15s; white-space: nowrap; }
body.ds .button:hover { border-color: var(--ds-text-3); background: var(--ds-surface-2); color: var(--ds-text); }
body.ds .button--primary, body.ds button.button--primary { border-color: var(--ds-primary); background: var(--ds-primary); color: var(--ds-on-primary, #fff); }
body.ds .button--primary:hover { border-color: var(--ds-primary-hover); background: var(--ds-primary-hover); color: var(--ds-on-primary, #fff); }
body.ds .button--ghost { border-color: transparent; background: transparent; box-shadow: none; color: var(--ds-text-2); }
body.ds .button--ghost:hover { background: var(--ds-surface-2); color: var(--ds-text); }
body.ds .button--danger { border-color: var(--ds-danger); background: var(--ds-surface); color: var(--ds-danger); }
body.ds .button--danger:hover { background: var(--ds-danger-soft); color: var(--ds-danger); }
body.ds .button--small { height: 30px; padding: 0 10px; font-size: 13px; }
body.ds .button--full { width: 100%; height: 42px; font-size: 15px; }
body.ds .button[disabled], body.ds .button.is-disabled { opacity: .5; cursor: not-allowed; }
body.ds .button .svg-icon { width: 16px; height: 16px; }

/* ---------------------------------------------------------------- 表单 */
body.ds .shell input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),
body.ds .shell select, body.ds .shell textarea {
    box-sizing: border-box; min-height: 36px; padding: 7px 11px; border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-sm);
    background: var(--ds-surface); color: var(--ds-text); font: 14px/1.4 var(--ds-font); box-shadow: inset 0 1px 1px rgba(16, 24, 40, .03);
    transition: border-color .15s, box-shadow .15s; }
body.ds .shell textarea { line-height: 1.6; }
body.ds .shell input:focus, body.ds .shell select:focus, body.ds .shell textarea:focus {
    outline: none; border-color: var(--ds-primary); box-shadow: 0 0 0 3px var(--ds-primary-ring, rgba(37, 99, 235, .15)); }
body.ds .shell input::placeholder, body.ds .shell textarea::placeholder { color: var(--ds-text-3); }
body.ds .stack-form { display: grid; gap: 14px; }
body.ds .stack-form label, body.ds .xc-field { display: grid; gap: 6px; color: var(--ds-text-2); font-size: 13px; font-weight: 500; }
body.ds .stack-form label > span:first-child { color: var(--ds-text-2); }
body.ds .compact-note { color: var(--ds-text-2); font-size: 13px; line-height: 1.7; }

/* ---------------------------------------------------------------- 表格 */
body.ds .xc-table-wrap { overflow-x: auto; }
body.ds table.xc-table, body.ds .shell table { border-collapse: separate; border-spacing: 0; font-size: 13.5px; }
body.ds table.xc-table thead th, body.ds .shell table thead th {
    position: sticky; top: 0; z-index: 1; padding: 10px 14px; border-bottom: 1px solid var(--ds-border); background: var(--ds-surface-2);
    color: var(--ds-text-2); font-size: 12.5px; font-weight: 600; text-align: left; letter-spacing: .01em; white-space: nowrap; }
body.ds table.xc-table td, body.ds .shell table td { padding: 11px 14px; border-bottom: 1px solid var(--ds-border); color: var(--ds-text); vertical-align: middle; }
body.ds table.xc-table tbody tr:hover td, body.ds .shell table tbody tr:hover td { background: var(--ds-row-hover, var(--ds-surface-2)); }
body.ds table.xc-table tbody tr:last-child td { border-bottom: 0; }

/* ---------------------------------------------------------------- 页签 */
body.ds .xc-tabs { display: flex; gap: 4px; padding: 4px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius); background: var(--ds-surface-2); width: max-content; max-width: 100%; overflow-x: auto; }
body.ds .xc-tabs__item { position: relative; padding: 7px 14px; border-radius: var(--ds-radius-sm); color: var(--ds-text-2); font-weight: 500; text-decoration: none; white-space: nowrap; }
body.ds .xc-tabs__item.is-active { background: var(--ds-surface); color: var(--ds-text); box-shadow: var(--ds-shadow-sm); }
body.ds .xc-tabs__item.is-active::after { display: none; }

/* ---------------------------------------------------------------- 标签 / 状态 */
body.ds .xc-tag, body.ds .ws-chip, body.ds .ds-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px;
    background: var(--ds-surface-2); color: var(--ds-text-2); border: 1px solid var(--ds-border); font-size: 12px; font-weight: 500; line-height: 18px; }
body.ds .xc-tag--green, body.ds .ds-chip--ok { background: var(--ds-success-soft); border-color: transparent; color: var(--ds-success); }
body.ds .xc-tag--orange, body.ds .ds-chip--warn { background: var(--ds-warning-soft); border-color: transparent; color: var(--ds-warning); }
body.ds .xc-tag--red, body.ds .ds-chip--bad { background: var(--ds-danger-soft); border-color: transparent; color: var(--ds-danger); }
body.ds .xc-tag--blue, body.ds .ws-chip--status, body.ds .ds-chip--info { background: var(--ds-primary-soft); border-color: transparent; color: var(--ds-primary-ink); }
body.ds .xc-status--warn { color: var(--ds-warning); }

/* ---------------------------------------------------------------- 提示条 */
body.ds .flash, body.ds .xc-alert, body.ds .ws-alert, body.ds .wi-notice { margin: 0; padding: 11px 14px; border: 1px solid var(--ds-border); border-left: 3px solid var(--ds-primary);
    border-radius: var(--ds-radius-sm); background: var(--ds-surface); color: var(--ds-text); font-size: 13.5px; box-shadow: var(--ds-shadow-sm); }
body.ds .flash--error { border-left-color: var(--ds-danger); background: var(--ds-danger-soft); }

/* ---------------------------------------------------------------- 弹窗 / 分页 */
body.ds .xc-modal__dialog { border: 1px solid var(--ds-border); border-radius: var(--ds-radius-lg); box-shadow: var(--ds-shadow-lg); }
body.ds .xc-modal__head { padding: 16px 20px; border-bottom: 1px solid var(--ds-border); }
body.ds .xc-modal__title { font-size: 16px; font-weight: 650; }
body.ds .xc-modal__foot { padding: 14px 20px; border-top: 1px solid var(--ds-border); background: var(--ds-surface-2); border-radius: 0 0 var(--ds-radius-lg) var(--ds-radius-lg); }
body.ds .xc-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 20px; color: var(--ds-text-2); font-size: 13px; }
body.ds .xc-pager__nav a, body.ds .xc-pager__nav span { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; margin-left: 4px;
    padding: 0 8px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-sm); color: var(--ds-text-2); text-decoration: none; }
body.ds .xc-pager__nav .is-active, body.ds .xc-pager__nav [aria-current] { border-color: var(--ds-primary); background: var(--ds-primary); color: #fff; }

/* ---------------------------------------------------------------- 井空间页头与页签 */
body.ds .ws-head { padding: 22px 24px 16px; border: 1px solid var(--ds-border); border-bottom: 0; border-radius: var(--ds-radius-lg) var(--ds-radius-lg) 0 0;
    background: var(--ds-surface); }
body.ds .ws-head__title h1 { font-size: 24px; font-weight: 700; color: var(--ds-text); letter-spacing: -.01em; }
body.ds .ws-tabs { gap: 2px; padding: 0 16px; border: 1px solid var(--ds-border); border-top: 1px solid var(--ds-border); border-radius: 0 0 var(--ds-radius-lg) var(--ds-radius-lg);
    background: var(--ds-surface); }
body.ds .ws-tabs__item { padding: 13px 12px; color: var(--ds-text-2); font-weight: 500; }
body.ds .ws-tabs__num { display: none; }
body.ds .ws-tabs__item.is-active { color: var(--ds-primary-ink); font-weight: 650; }
body.ds .ws-tabs__item.is-active::after { left: 8px; right: 8px; height: 2px; border-radius: 2px; background: var(--ds-primary); }
body.ds .ws-card { margin-top: 16px; padding: 20px; }
body.ds .ws-next { border-color: var(--ds-primary-soft); background: linear-gradient(180deg, var(--ds-primary-soft) 0%, var(--ds-surface) 70%); }
body.ds .ws-step { border-color: var(--ds-border); border-radius: var(--ds-radius); }
body.ds .ws-step.is-first { border-color: var(--ds-primary); }

/* ---------------------------------------------------------------- 通用小件 */
body.ds .ds-grid { display: grid; gap: 16px; }
body.ds .ds-muted { color: var(--ds-text-3); font-size: 12.5px; }
body.ds .ds-empty { padding: 36px 20px; color: var(--ds-text-2); text-align: center; }
body.ds .ds-empty strong { display: block; margin-bottom: 4px; color: var(--ds-text); font-size: 15px; }
body.ds .svg-icon { flex: none; }
body.ds .page-watermark { opacity: .55; }

@media (max-width: 860px) {
    body.ds .shell { padding: 18px 14px 28px; }
    body.ds .xc-page__title { font-size: 20px; }
    body.ds .xc-card__head, body.ds .xc-card__body { padding-left: 14px; padding-right: 14px; }
}

/* === Unified business surfaces, 20261018.9 === */
:root {
 --bg:var(--ds-bg); --panel:var(--ds-surface); --panel-alt:var(--ds-surface-2); --panel-soft:var(--ds-surface-2);
 --border:var(--ds-border-strong); --border-soft:var(--ds-border); --text:var(--ds-text); --muted:var(--ds-text-2);
 --accent:var(--ds-primary); --accent-hover:var(--ds-primary-hover); --accent-press:var(--ds-primary-ink);
 --selection:var(--ds-primary-soft); --selection-border:var(--ds-border-strong); --radius:var(--ds-radius);
 --shadow:var(--ds-shadow-sm); --shadow-strong:var(--ds-shadow-lg);
}
html { scrollbar-gutter: stable; }
body.ds { overflow-x:hidden; font-size:13px; }
body.ds .shell { min-width:0; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
body.ds .shell > * { min-width:0; }
body.ds [hidden] { display:none !important; }
.ds-skip { position:fixed; left:16px; top:-80px; z-index:20000; padding:10px 16px; border-radius:6px; background:var(--ds-primary); color:#fff !important; }
.ds-skip:focus { top:12px; }
body.ds .page-watermark { inset:0; width:100%; height:100%; opacity:.16; }
body.ds h1,body.ds h2,body.ds h3 { text-wrap:balance; }
body.ds .page-head h1 .svg-icon { display:none; }
body.ds .xc-page,body.ds .workspace__main { min-width:0; }
body.ds .xc-page { gap:20px; }
body.ds .workspace--single,.ds .workspace--design { gap:20px; }
body.ds .workspace__main { display:flex; flex-direction:column; gap:20px; }
body.ds .workspace__sidebar { border-color:var(--ds-border); border-radius:var(--ds-radius); background:var(--ds-surface); }
body.ds .page-head h1,body.ds .section-heading h1 { font-size:24px; line-height:1.35; color:var(--ds-text); font-weight:650; }
body.ds .page-head p,body.ds .xc-page__desc { margin-top:8px; max-width:880px; color:var(--ds-text-2); font-size:12.5px; line-height:1.85; }
body.ds .xc-page__head { padding:0 0 2px; }
body.ds .xc-page__title { font-size:24px; font-weight:650; }
body.ds .panel { border:1px solid var(--ds-border); border-radius:10px; box-shadow:none; background:var(--ds-surface); overflow-wrap:anywhere; }
body.ds .panel .panel { box-shadow:none; }
body.ds .panel__head,body.ds .panel-head,body.ds .section-head { border-color:var(--ds-border); }
body.ds .panel__title,body.ds .section-heading h2,body.ds .section-heading h3 { font-size:15px; font-weight:650; letter-spacing:0; color:var(--ds-text); }
body.ds .xc-card { border-radius:10px; box-shadow:none; }
body.ds .xc-card__head { padding:18px 22px; }
body.ds .xc-card__title { font-size:14px; font-weight:650; }
body.ds .xc-card__head > a:not(.button) { font-size:11.5px; font-weight:500; }
body.ds .xc-card__body { padding:20px 22px; }
body.ds .button,body.ds button.button { height:36px; min-height:36px; line-height:1.1; border-radius:6px; font-size:12.5px; padding:0 14px; box-shadow:none; }
body.ds .button:active { transform:none; }
body.ds .button--small { height:30px; min-height:30px; font-size:11.5px; padding:0 10px; }
body.ds .button--danger-quiet { border-color:transparent; background:transparent; color:var(--ds-danger); box-shadow:none; }
body.ds .button--danger-quiet:hover { border-color:transparent; background:var(--ds-danger-soft); }
body.ds button:disabled { cursor:not-allowed; }
body.ds input[type=checkbox],body.ds input[type=radio] { accent-color:var(--ds-primary); width:15px; height:15px; }
body.ds .shell input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),
body.ds .shell select,body.ds .shell textarea { font-size:12.5px; min-height:36px; border-color:var(--ds-border-strong); box-shadow:none; border-radius:6px; }
body.ds .shell input[type=file] { max-width:100%; padding:10px; border:1px dashed var(--ds-border-strong); border-radius:6px; background:var(--ds-surface-2); font:12px var(--ds-font); color:var(--ds-text-2); }
body.ds input[type=file]::file-selector-button { padding:7px 12px; margin-right:12px; background:var(--ds-surface); border:1px solid var(--ds-border-strong); border-radius:4px; color:var(--ds-text); font:inherit; cursor:pointer; }
body.ds label small,body.ds .form-help,body.ds .form-note { display:block; margin-top:4px; color:var(--ds-text-3); font-size:11.5px; line-height:1.7; }
body.ds .compact-note { font-size:12px; color:var(--ds-text-2); }
body.ds .form-grid { gap:18px 20px; }
body.ds .stack-form { gap:18px; }
body.ds .stack-form label,body.ds .xc-field { color:var(--ds-text-2); font-size:12px; font-weight:500; gap:7px; }
body.ds .stack-form > fieldset,body.ds .form-section { margin:0; padding:20px; border:1px solid var(--ds-border); border-radius:8px; }
body.ds .form-actions { padding-top:16px; border-top:1px solid var(--ds-border); gap:8px; }
body.ds .table-wrap,body.ds .xc-table-wrap,body.ds .research-table-scroll { max-width:100%; overflow-x:auto; border-color:var(--ds-border); border-radius:0; }
body.ds .shell table { width:100%; font-size:12px; line-height:1.6; }
body.ds .shell table th { font-weight:600; }
body.ds .shell table thead th { padding:11px 16px; font-size:11px; letter-spacing:.02em; color:var(--ds-text-2); background:var(--ds-surface-2); border-color:var(--ds-border); }
body.ds .shell table td { padding:13px 16px; border-color:var(--ds-border); font-size:12px; }
body.ds .shell table td small { color:var(--ds-text-3); font-size:10.5px; }
body.ds .shell table td strong { font-weight:600; }
body.ds .shell table td a:not(.button) { color:var(--ds-primary-ink); }
body.ds .shell table tbody tr:hover td { background:var(--ds-row-hover); }
body.ds .data-table tr td:first-child,body.ds .xc-table tr td:first-child { white-space:normal; }
body.ds .status-chip,body.ds .pill,body.ds .tag,body.ds .badge { border:1px solid var(--ds-border); border-radius:4px; background:var(--ds-surface-2); font-size:10.5px; font-weight:500; line-height:20px; min-height:22px; padding:0 7px; color:var(--ds-text-2); }
body.ds .status-chip--ok,body.ds .status-chip--completed { background:var(--ds-success-soft); color:var(--ds-success); border-color:transparent; }
body.ds .status-chip--warn { background:var(--ds-warning-soft); color:var(--ds-warning); border-color:transparent; }
body.ds .status-chip--error,body.ds .status-chip--failed { background:var(--ds-danger-soft); color:var(--ds-danger); border-color:transparent; }
body.ds .ds-chip,body.ds .xc-tag,body.ds .ws-chip { border-radius:4px; font-size:10.5px; line-height:17px; padding:2px 7px; }
body.ds .xc-filterbar,body.ds .filterbar,body.ds .wi-filter { border:1px solid var(--ds-border); padding:18px 22px; background:var(--ds-surface); }
body.ds .wi-filter__form { gap:14px 16px; }
body.ds .wi-filter__item > span { font-size:11px; color:var(--ds-text-2); }
body.ds .wi-toolbar { padding:18px 22px; }
body.ds .wi-toolbar__title { font-size:14px; font-weight:650; }
body.ds .wi-summary { font-size:11px; color:var(--ds-text-3); }
body.ds .wi-seg { border:1px solid var(--ds-border); background:var(--ds-surface-2); border-radius:6px; padding:3px; }
body.ds .wi-seg__btn { border-radius:3px; font-size:11px; min-height:26px; }
body.ds .wi-seg__btn.is-active { background:#fff; color:var(--ds-primary-ink); box-shadow:0 1px 3px rgba(16,24,40,.08); }
body.ds .wi-loading,body.ds .we-empty { padding:38px 24px; color:var(--ds-text-3); font-size:12px; }
body.ds .wi-card { border:1px solid var(--ds-border); border-radius:8px; box-shadow:none; }
body.ds .wi-card:hover { border-color:var(--ds-border-strong); box-shadow:none; }
body.ds .wi-table td.wi-table__name a { font-size:12px; font-weight:600; }
body.ds .we-context { padding:20px 22px; }
body.ds .we-main { overflow:hidden; }
body.ds .we-tabs { width:100%; border:0; border-bottom:1px solid var(--ds-border); border-radius:0; padding:8px 14px 0; gap:4px; background:var(--ds-surface-2); }
body.ds .we-tabs .xc-tabs__item { padding:10px 14px; border-radius:6px 6px 0 0; font-size:12px; }
body.ds .we-tabs .xc-tabs__item.is-active { background:#fff; box-shadow:0 -1px 0 var(--ds-border),1px 0 0 var(--ds-border),-1px 0 0 var(--ds-border); color:var(--ds-primary-ink); }
body.ds .we-panel { padding:22px; }
body.ds .xc-tabs__item { font-size:12px; }
body.ds .xc-modal,body.ds .modal { backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(13,22,40,.38); }
body.ds .xc-modal__dialog,body.ds .modal__dialog { border:1px solid var(--ds-border); border-radius:12px; background:#fff; box-shadow:0 20px 60px rgba(13,22,40,.18); }
body.ds .xc-modal__title,body.ds .modal__head h2 { font-size:17px; font-weight:650; letter-spacing:-.01em; }
body.ds .xc-modal__body,body.ds .modal__body { padding:22px; }
body.ds .xc-modal__head,body.ds .modal__head { padding:18px 22px; border-bottom:1px solid var(--ds-border); }
body.ds .xc-modal__foot,body.ds .modal__foot { padding:16px 22px; border-top:1px solid var(--ds-border); background:var(--ds-surface-2); }
body.ds .xc-modal__close { width:28px; height:28px; border-radius:5px; color:var(--ds-text-3); }
body.ds .xc-modal__close:hover { background:var(--ds-surface-2); }
body.ds .xc-pager { padding:16px 22px; font-size:11px; border-top:1px solid var(--ds-border); }
body.ds .xc-pager__nav a,body.ds .xc-pager__nav span { min-width:28px; height:28px; font-size:11px; border-radius:4px; }
body.ds .xc-pager__nav .is-current { background:var(--ds-primary); border-color:var(--ds-primary); color:#fff; }
body.ds .xc-empty,body.ds .empty-state { padding:36px 24px; color:var(--ds-text-2); font-size:12px; text-align:center; }
body.ds .xc-empty strong,body.ds .empty-state strong { display:block; margin-bottom:6px; color:var(--ds-text); font-size:15px; }
body.ds .flash,body.ds .xc-alert,body.ds .research-notice { border:1px solid var(--ds-border); border-left:3px solid var(--ds-primary); border-radius:6px; box-shadow:none; font-size:12px; line-height:1.7; }
body.ds .flash--error,body.ds .xc-alert--error,.ds .research-notice[data-state=error] { border-left-color:var(--ds-danger); background:var(--ds-danger-soft); color:var(--ds-danger); }
body.ds .xc-alert--success { border-left-color:var(--ds-success); background:var(--ds-success-soft); color:var(--ds-success); }
body.ds .ws-page { min-width:0; }
body.ds .ws-head { padding:24px 24px 18px; }
body.ds .ws-head__title h1 { font-size:26px; font-weight:650; letter-spacing:-.03em; }
body.ds .ws-crumb { margin-bottom:7px; color:var(--ds-text-3); font-size:10.5px; }
body.ds .ws-head__meta { gap:8px 20px; margin-top:10px; color:var(--ds-text-3); font-size:11px; }
body.ds .ws-switch span { color:var(--ds-text-3); font-size:10.5px; }
body.ds .ws-tabs { overflow-x:auto; gap:4px; padding:0 18px; white-space:nowrap; flex-wrap:nowrap; scrollbar-width:thin; }
body.ds .ws-tabs__item { flex:none; padding:14px 12px; font-size:12px; }
body.ds .ws-tabdesc { margin:12px 2px 20px; color:var(--ds-text-3); font-size:12px; line-height:1.8; }
body.ds .ws-next { background:var(--ds-primary-soft); border-color:var(--ds-border); }
body.ds .ws-step { border-radius:8px; box-shadow:none; }
body.ds .ws-card h2 { font-size:14px; }
body.ds .research-head h1 { font-size:24px; font-weight:650; }
body.ds .research-head h1 > .svg-icon { display:none; }
body.ds .research-shell .panel { padding:22px; }
body.ds .research-section-head h2 { font-size:15px; font-weight:650; }
body.ds .research-section-head p,body.ds .research-muted { color:var(--ds-text-3); font-size:12px; line-height:1.8; }
body.ds .research-metric,body.ds .research-model-card,body.ds .research-run-card { border-color:var(--ds-border); background:var(--ds-surface-2); border-radius:7px; box-shadow:none; }
body.ds .research-context { background:var(--ds-surface); }
body.ds .research-flow { border-color:var(--ds-border); }
body.ds .research-field { font-size:11px; color:var(--ds-text-2); }
body.ds .research-track-wrap { border:1px solid var(--ds-border); border-radius:8px; background:#fff; }
body.ds .research-readout { background:var(--ds-surface-2); border-color:var(--ds-border); }
body.ds .research-table-scroll table { border:0; }
body.ds .research-launch,body.ds .research-window,body.ds .research-segment-controls { padding:16px; border:1px solid var(--ds-border); background:var(--ds-surface-2); border-radius:8px; }
body.ds .xc-wb .xc-wb__head { padding:0; background:transparent; border:0; box-shadow:none; }
body.ds .xc-wb__title h1 { font-size:24px; font-weight:650; }
body.ds .xc-wb__title p { color:var(--ds-text-3); font-size:12px; }
body.ds .xc-wb__well,body.ds .wb-hero { border:1px solid var(--ds-border); border-radius:10px; background:#fff; box-shadow:none; }
body.ds .xc-wb__well-head { padding:20px 22px; border-color:var(--ds-border); }
body.ds .xc-wb__well-main h2 { font-size:21px; }
body.ds .xc-wb__desc { background:var(--ds-surface-2); border-color:var(--ds-border); }
body.ds .xc-wb__desc dt { font-size:10.5px; color:var(--ds-text-3); }
body.ds .xc-wb__desc dd { font-size:12px; color:var(--ds-text); }
body.ds .xc-wb__notebook { border:1px solid var(--ds-border); border-radius:10px; overflow:hidden; }
body.ds .xc-wb__notebook .notebook__tabs { padding:0 22px; border-color:var(--ds-border); background:#fff; }
body.ds .xc-wb__notebook .notebook__tab { font-size:12px; }
body.ds .xc-wb__notebook .notebook__tab.is-active { color:var(--ds-primary); }
body.ds .wizard-upload { padding:24px; }
body.ds .wizard-section__head { margin-bottom:18px; }
body.ds .wizard-section__title { font-size:15px; font-weight:650; }
body.ds .wizard-section__hint { color:var(--ds-text-3); font-size:12px; }
body.ds .wizard-upload__grid { gap:20px; }
body.ds .wizard-upload__field > span { font-size:12px; font-weight:500; }
body.ds .wizard-upload__field--file { padding:20px; border:1px dashed var(--ds-border-strong); border-radius:8px; background:var(--ds-surface-2); }
body.ds .wizard-upload__field small { color:var(--ds-text-3); font-size:11.5px; line-height:1.8; }
body.ds .wizard-well-card { border:1px solid var(--ds-border); border-radius:8px; box-shadow:none; background:#fff; }
body.ds .wizard-well-card:hover { transform:none; box-shadow:none; border-color:var(--ds-border-strong); }
body.ds .design-hero { border-bottom:1px solid var(--ds-border); padding-bottom:20px; }
body.ds .design-hero__eyebrow { color:var(--ds-primary); font-size:11px; letter-spacing:.08em; }
body.ds .design-hero__meta { color:var(--ds-text-3); font-size:11px; }
body.ds .save-proposal-panel__summary { font-size:13px; padding:16px 20px; }
body.ds .save-proposal-panel__hint { font-size:11px; color:var(--ds-text-3); }
body.ds .report-cover { background:#fff; border-top-color:var(--ds-primary); box-shadow:none; }
body.ds .report-cover::after { display:none; }
body.ds .report-title { font:650 30px/1.3 var(--ds-font-head,var(--ds-font)); }
body.ds .report-subtitle { font-size:13px; line-height:1.8; color:var(--ds-text-2); }
body.ds .report-section,.ds .report-card { border-color:var(--ds-border); border-radius:8px; box-shadow:none; }
body.ds .report-section-title { font-size:17px; }
body.ds .report-section-note { color:var(--ds-text-3); font-size:12px; }
body.ds .public-info { border:1px solid var(--ds-border); border-radius:10px; padding:30px; box-shadow:none; }
body.ds .public-info,body.ds .public-info * { color:var(--ds-text-2) !important; }
body.ds .public-info h1,body.ds .public-info h2 { color:var(--ds-text) !important; }
body.ds .public-info h1 { font-size:26px; }
body.ds .public-info h2 { font-size:17px; margin-top:26px; }
body.ds .public-info p,body.ds .public-info li { font-size:13px; line-height:1.9; }
body.ds .public-info a { color:var(--ds-primary-ink) !important; }
body.ds .site-operator { font-size:11px; color:var(--ds-text-3) !important; }
body.ds .ds-empty { font-size:12px; }
body.ds code { font:11px var(--ds-mono); border-radius:3px; }
@media(max-width:860px) {
 body.ds .shell .page-head,body.ds .xc-page__head { align-items:flex-start; gap:14px; }
 body.ds .page-head h1,body.ds .xc-page__title { font-size:21px; }
 body.ds .xc-card__head,body.ds .xc-card__body,body.ds .wi-filter,body.ds .wi-toolbar { padding:16px; }
 body.ds .we-context,body.ds .we-panel,body.ds .research-shell .panel { padding:16px; }
 body.ds .ws-head { padding:18px 16px; }
 body.ds .ws-head__title h1 { font-size:23px; }
 body.ds .ws-tabs { padding:0 8px; }
 body.ds .ws-tabs__item { padding:13px 10px; font-size:11.5px; }
 body.ds .shell table td,body.ds .shell table thead th { padding:11px 12px; }
 body.ds .wizard-upload { padding:18px; }
 body.ds .public-info { padding:22px 18px; }
}
@media(prefers-reduced-motion:reduce) { body.ds *,body.ds *::before,body.ds *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
@media print {
 body.ds,body.ds .shell { overflow:visible; background:#fff; }
 body.ds .shell { padding:0; max-width:none; }
 body.ds .panel,body.ds .xc-card { box-shadow:none; break-inside:avoid; }
 body.ds .page-watermark { opacity:.14; }
}
