
  .ui-alert.svelte-onfukj {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    padding: var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
  }

  .ui-alert-icon.svelte-onfukj {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--text-tertiary);
  }

  .ui-alert-content.svelte-onfukj {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    flex: 1;
    min-width: 0;
  }

  .ui-alert-title.svelte-onfukj {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
  }

  .ui-alert-body.svelte-onfukj {
    font-size: var(--text-sm);
    color: var(--text-secondary);
    word-break: break-word;
  }

  .ui-alert-close.svelte-onfukj {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--control-xs);
    height: var(--control-xs);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-alert-close.svelte-onfukj:hover {
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-alert-close.svelte-onfukj:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-alert--info.svelte-onfukj {
    border-color: color-mix(in srgb, var(--status-info) 45%, transparent);
    background: color-mix(in srgb, var(--status-info) 10%, var(--bg-elevated));
  }

  .ui-alert--info.svelte-onfukj .ui-alert-icon:where(.svelte-onfukj) {
    color: var(--status-info);
  }

  .ui-alert--success.svelte-onfukj {
    border-color: color-mix(in srgb, var(--status-ok) 45%, transparent);
    background: color-mix(in srgb, var(--status-ok) 10%, var(--bg-elevated));
  }

  .ui-alert--success.svelte-onfukj .ui-alert-icon:where(.svelte-onfukj) {
    color: var(--status-ok);
  }

  .ui-alert--warn.svelte-onfukj {
    border-color: color-mix(in srgb, var(--status-warn) 45%, transparent);
    background: color-mix(in srgb, var(--status-warn) 10%, var(--bg-elevated));
  }

  .ui-alert--warn.svelte-onfukj .ui-alert-icon:where(.svelte-onfukj) {
    color: var(--status-warn);
  }

  .ui-alert--error.svelte-onfukj {
    border-color: color-mix(in srgb, var(--status-error) 45%, transparent);
    background: color-mix(in srgb, var(--status-error) 10%, var(--bg-elevated));
  }

  .ui-alert--error.svelte-onfukj .ui-alert-icon:where(.svelte-onfukj) {
    color: var(--status-error);
  }


  /* ── 静默形态（默认）：纯文字 + 可选状态点，零框零底 ── */
  .ui-badge.svelte-15692yb {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--text-secondary);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    line-height: 1;
    white-space: nowrap;
  }

  .ui-badge-dot.svelte-15692yb {
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    background: currentColor;
    flex-shrink: 0;
  }

  /* ok/info：点上色，文字维持次级灰——正常态不喊（68 §2.1 绿色预算） */
  .ui-badge--ok.svelte-15692yb {
    color: var(--text-secondary);
  }

  .ui-badge--ok.svelte-15692yb .ui-badge-dot:where(.svelte-15692yb) {
    color: var(--status-ok);
  }

  .ui-badge--info.svelte-15692yb {
    color: var(--text-secondary);
  }

  .ui-badge--info.svelte-15692yb .ui-badge-dot:where(.svelte-15692yb) {
    color: var(--status-info);
  }

  /* warn/error：点与文字同步变色——它们是警报器 */
  .ui-badge--warn.svelte-15692yb {
    color: var(--status-warn);
  }

  .ui-badge--error.svelte-15692yb {
    color: var(--status-error);
  }

  .ui-badge--mono.svelte-15692yb {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
  }

  /* ── 强形态（strong）：浅底彩面 + 描边，6px 方角（不再是胶囊） ── */
  .ui-badge--strong.svelte-15692yb {
    height: 20px;
    padding: 0 var(--space-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-sunken);
  }

  .ui-badge--strong.ui-badge--ok.svelte-15692yb {
    border-color: color-mix(in srgb, var(--status-ok) 45%, transparent);
    background: color-mix(in srgb, var(--status-ok) 14%, var(--bg-elevated));
    color: var(--status-ok);
  }

  .ui-badge--strong.ui-badge--warn.svelte-15692yb {
    border-color: color-mix(in srgb, var(--status-warn) 45%, transparent);
    background: color-mix(in srgb, var(--status-warn) 14%, var(--bg-elevated));
    color: var(--status-warn);
  }

  .ui-badge--strong.ui-badge--error.svelte-15692yb {
    border-color: color-mix(in srgb, var(--status-error) 45%, transparent);
    background: color-mix(in srgb, var(--status-error) 14%, var(--bg-elevated));
    color: var(--status-error);
  }

  .ui-badge--strong.ui-badge--info.svelte-15692yb {
    border-color: color-mix(in srgb, var(--status-info) 45%, transparent);
    background: color-mix(in srgb, var(--status-info) 14%, var(--bg-elevated));
    color: var(--status-info);
  }


  .ui-btn.svelte-1rfilsm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    height: var(--control-md);
    padding: 0 var(--space-3);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-elevated);
    color: var(--text-primary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition:
      background var(--duration-fast) var(--ease-smooth),
      border-color var(--duration-fast) var(--ease-smooth),
      color var(--duration-fast) var(--ease-smooth),
      filter var(--duration-fast) var(--ease-smooth);
  }

  .ui-btn--sm.svelte-1rfilsm {
    height: var(--control-sm);
    padding: 0 var(--space-2);
  }

  .ui-btn--square.svelte-1rfilsm {
    width: var(--control-md);
    padding: 0;
  }

  .ui-btn--sm.ui-btn--square.svelte-1rfilsm {
    width: var(--control-sm);
  }

  /* 实心彩面前景一律 on-color 令牌（02 §2.1 用色纪律） */
  .ui-btn--primary.svelte-1rfilsm {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--accent-text);
  }

  .ui-btn--danger.svelte-1rfilsm {
    border-color: var(--status-error);
    background: var(--status-error);
    color: var(--on-error);
  }

  .ui-btn--ghost.svelte-1rfilsm {
    border-color: transparent;
    background: transparent;
    color: var(--text-secondary);
  }

  .ui-btn.svelte-1rfilsm:hover:not(:disabled) {
    border-color: var(--accent);
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-btn--primary.svelte-1rfilsm:hover:not(:disabled) {
    border-color: var(--accent-hover);
    background: var(--accent-hover);
    color: var(--accent-text);
  }

  .ui-btn--danger.svelte-1rfilsm:hover:not(:disabled) {
    border-color: var(--status-error);
    background: var(--status-error);
    color: var(--on-error);
    filter: brightness(1.1);
  }

  .ui-btn--ghost.svelte-1rfilsm:hover:not(:disabled) {
    border-color: transparent;
    /* 用 --bg-control-hover 而非 --bg-sunken：表格行 hover 底已是 sunken，再 hover
       按钮必须抬一档才看得见反馈（同色=无交互）。不用 --bg-hover：那是插件域令牌
       （品牌色），壳控件在插件子树内会被其劫持而泛品牌色，违反同语义同外观 */
    background: var(--bg-control-hover);
    color: var(--text-primary);
  }

  /* 行内危险操作（68 §4.3）：无框红字，比普通 ghost 可扫但不抢数据视线 */
  .ui-btn--ghost-danger.svelte-1rfilsm {
    color: var(--status-error);
  }

  .ui-btn--ghost-danger.svelte-1rfilsm:hover:not(:disabled) {
    border-color: transparent;
    background: var(--bg-control-hover);
    color: var(--status-error);
  }

  .ui-btn.svelte-1rfilsm:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }

  .ui-btn.svelte-1rfilsm:disabled {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
    color: var(--text-disabled);
    cursor: not-allowed;
    filter: none;
  }

  /* ghost 系列禁用态保持静默（无框无底色），仅降低透明度——不破坏行内文字操作的
     极简外观（如用户表本人行「删除」禁用：仍是红字的淡形，而非突兀灰方块） */
  .ui-btn--ghost.svelte-1rfilsm:disabled {
    border-color: transparent;
    background: transparent;
    opacity: 0.45;
  }

  .ui-btn--ghost-danger.svelte-1rfilsm:disabled {
    color: var(--status-error);
  }

  .ui-btn-spinner.svelte-1rfilsm {
    width: 12px;
    height: 12px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: var(--radius-full);
    animation: svelte-1rfilsm-ui-spin var(--duration-base) linear infinite;
  }

  @keyframes svelte-1rfilsm-ui-spin {
    to {
      transform: rotate(360deg);
    }
  }


  .ui-card.svelte-gs5s16 {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
    overflow: hidden;
  }

  .ui-card-header.svelte-gs5s16 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
  }

  .ui-card-title.svelte-gs5s16 {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
  }

  .ui-card-actions.svelte-gs5s16 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
  }

  .ui-card-body.svelte-gs5s16 {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
    flex: 1; /* 卡片被拉伸（同行等高）时内容体填满，页脚沉底 */
    padding: var(--space-4);
  }

  .ui-card-body--flush.svelte-gs5s16 {
    padding: 0;
  }

  /* 平面变体（68 §3.4）：去外框/底色/圆角裁剪；header 仅以留白与内容分隔（不画线，
     避免与表格首行线双线）。表格用自身 hairline 行线分区，直接长在画布上。 */
  .ui-card--plain.svelte-gs5s16 {
    border-color: transparent;
    border-radius: 0;
    background: transparent;
  }

  .ui-card--plain.svelte-gs5s16 .ui-card-header:where(.svelte-gs5s16) {
    padding: 0 0 var(--space-3);
    border-bottom: none;
  }

  .ui-card--plain.svelte-gs5s16 .ui-card-body--flush:where(.svelte-gs5s16) {
    padding: 0;
  }


  .ui-cmdk-overlay.svelte-966p5d {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--space-8) var(--space-4) var(--space-4);
    background: color-mix(in srgb, var(--gray-975) 60%, transparent);
    animation: svelte-966p5d-ui-cmdk-fade var(--duration-fast) var(--ease-smooth);
  }

  @keyframes svelte-966p5d-ui-cmdk-fade {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }

  .ui-cmdk.svelte-966p5d {
    display: flex;
    flex-direction: column;
    width: 560px;
    max-width: 100%;
    max-height: 60vh;
    overflow: hidden;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-overlay);
    box-shadow: var(--shadow-overlay);
    animation: svelte-966p5d-ui-cmdk-drop var(--duration-base) var(--ease-smooth);
  }

  @keyframes svelte-966p5d-ui-cmdk-drop {
    from {
      transform: translateY(calc(-1 * var(--space-2)));
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  .ui-cmdk-input-row.svelte-966p5d {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-tertiary);
    transition: border-color var(--duration-fast) var(--ease-smooth);
  }

  /* 复合控件组焦点：焦点驻留搜索框时整行底边转强调色（输入框自身去 outline，
     以 :focus-within 承载可见焦点，符合焦点不可缺失规范） */
  .ui-cmdk-input-row.svelte-966p5d:focus-within {
    border-bottom-color: var(--accent);
  }

  .ui-cmdk-search-icon.svelte-966p5d {
    display: inline-flex;
    flex-shrink: 0;
  }

  .ui-cmdk-input.svelte-966p5d {
    flex: 1;
    min-width: 0;
    height: var(--control-md);
    border: 0;
    background: transparent;
    color: var(--text-primary);
    font-size: var(--text-base);
    font-family: var(--font-sans);
    outline: none;
  }

  .ui-cmdk-input.svelte-966p5d::placeholder {
    color: var(--text-tertiary);
  }

  .ui-cmdk-kbd.svelte-966p5d {
    display: inline-flex;
    align-items: center;
    height: var(--control-xs);
    padding: 0 var(--space-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-secondary);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    line-height: 1;
  }

  .ui-cmdk-list.svelte-966p5d {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-2);
  }

  .ui-cmdk-empty.svelte-966p5d {
    margin: 0;
    padding: var(--space-5) 0;
    text-align: center;
    font-size: var(--text-sm);
    color: var(--text-tertiary);
  }

  .ui-cmdk-group.svelte-966p5d {
    padding: var(--space-2) var(--space-3) var(--space-1);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-tertiary);
  }

  .ui-cmdk-group.svelte-966p5d:not(:first-child) {
    margin-top: var(--space-2);
  }

  .ui-cmdk-item.svelte-966p5d {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    width: 100%;
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
  }

  /* 选中/悬停同导航项选中语义（bg-sunken + 主文字色，同语义同外观） */
  .ui-cmdk-item.svelte-966p5d:hover,
  .ui-cmdk-item--selected.svelte-966p5d {
    background: var(--bg-sunken);
  }

  .ui-cmdk-item-label.svelte-966p5d {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
  }

  .ui-cmdk-item-hint.svelte-966p5d {
    flex-shrink: 0;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-cmdk-footer.svelte-966p5d {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-2) var(--space-4);
    border-top: 1px solid var(--border-subtle);
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-cmdk-footer-hint.svelte-966p5d {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
  }


  .ui-confirm.svelte-191k9qo {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .ui-confirm-icon.svelte-191k9qo {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--status-info);
  }

  .ui-confirm-icon--danger.svelte-191k9qo {
    color: var(--status-error);
  }

  .ui-confirm-body.svelte-191k9qo {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }

  .ui-confirm-message.svelte-191k9qo {
    margin: 0;
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--text-primary);
    word-break: break-word;
  }

  .ui-confirm-details.svelte-191k9qo {
    border-top: 1px solid var(--border-subtle);
    padding-top: var(--space-3);
  }

  .ui-confirm-actions.svelte-191k9qo {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
  }


  /* 表格视觉全部来自契约类（contract.css .data-table 族）——单一真相，
     本组件只补 flex 布局收敛（父容器窄时表格收缩不撑破） */
  .ui-datatable.svelte-1rbbkb2 {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  /* 展开钮列：窄列收在行首（特异性 (0,2,1) > 契约 .data-table td (0,1,1)，不触碰契约类名） */
  .ui-datatable.svelte-1rbbkb2 td.ui-datatable-toggle-col:where(.svelte-1rbbkb2) {
    width: var(--control-sm);
    padding: 0 var(--space-1);
  }

  .ui-datatable-toggle.svelte-1rbbkb2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--control-sm);
    height: var(--control-sm);
    border: none;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-datatable-toggle.svelte-1rbbkb2:hover {
    background: var(--bg-elevated);
    color: var(--text-primary);
  }

  .ui-datatable-toggle.svelte-1rbbkb2:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  /* 展开行：只读详情区（自动高度 + 沉底背景与行 hover 区分；特异性压过契约 td） */
  .ui-datatable.svelte-1rbbkb2 tr.ui-datatable-detail-row:where(.svelte-1rbbkb2) > td:where(.svelte-1rbbkb2) {
    height: auto;
    padding: var(--space-3) var(--space-4);
    background: var(--bg-sunken);
  }

  .ui-datatable-detail.svelte-1rbbkb2 {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }


  .ui-dl.svelte-fk0f7z {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2);
    margin: 0;
  }

  .ui-dl--two.svelte-fk0f7z {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
  }

  .ui-dl-row.svelte-fk0f7z {
    display: grid;
    grid-template-columns: minmax(96px, auto) 1fr;
    gap: var(--space-3);
    align-items: baseline;
    min-width: 0;
  }

  /* 字段名：xs / 600 / 界面正体（中文化后不再 mono） */
  .ui-dl-term.svelte-fk0f7z {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-tertiary);
  }

  .ui-dl-value.svelte-fk0f7z {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--text-primary);
    word-break: break-all;
  }

  .ui-dl-value--mono.svelte-fk0f7z {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
  }


  .ui-dc.svelte-1l915m9 {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
  }

  .ui-dc-trigger.svelte-1l915m9 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    height: var(--control-md);
    padding: 0 var(--space-2);
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    text-align: left;
    cursor: pointer;
  }

  .ui-dc-trigger.svelte-1l915m9:hover {
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-dc-trigger.svelte-1l915m9:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
  }

  .ui-dc-caret.svelte-1l915m9 {
    display: inline-flex;
    color: var(--text-tertiary);
    transition: transform var(--duration-fast) var(--ease-smooth);
  }

  .ui-dc--open.svelte-1l915m9 .ui-dc-caret:where(.svelte-1l915m9) {
    transform: rotate(180deg);
  }

  .ui-dc--open.svelte-1l915m9 .ui-dc-trigger:where(.svelte-1l915m9) {
    color: var(--text-primary);
  }

  .ui-dc-title.svelte-1l915m9 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* 0fr→1fr 展开动画（纯 CSS，无需 JS 测量） */
  .ui-dc-body.svelte-1l915m9 {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--duration-base) var(--ease-smooth);
  }

  .ui-dc--open.svelte-1l915m9 .ui-dc-body:where(.svelte-1l915m9) {
    grid-template-rows: 1fr;
  }

  .ui-dc-body-inner.svelte-1l915m9 {
    overflow: hidden;
    min-height: 0;
    padding: 0 var(--space-3);
  }

  .ui-dc--open.svelte-1l915m9 .ui-dc-body-inner:where(.svelte-1l915m9) {
    padding-bottom: var(--space-3);
  }


  .ui-empty.svelte-14lhkr6 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-7) var(--space-4);
    text-align: center;
  }

  .ui-empty-icon.svelte-14lhkr6 {
    display: inline-flex;
    color: var(--text-disabled);
  }

  .ui-empty-title.svelte-14lhkr6 {
    margin: 0;
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .ui-empty-description.svelte-14lhkr6 {
    margin: 0;
    max-width: 380px;
    font-size: var(--text-sm);
    color: var(--text-tertiary);
  }

  .ui-empty-actions.svelte-14lhkr6 {
    display: flex;
    gap: var(--space-2);
    margin-top: var(--space-2);
  }


  .ui-fieldhint.svelte-18c5216 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--control-xs);
    height: var(--control-xs);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: help;
  }

  .ui-fieldhint.svelte-18c5216:hover,
  .ui-fieldhint--active.svelte-18c5216 {
    color: var(--accent-on-canvas);
  }

  .ui-fieldhint.svelte-18c5216:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-fieldhint-pop.svelte-18c5216 {
    position: fixed;
    z-index: var(--z-dropdown);
    max-width: 240px;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-overlay);
    box-shadow: var(--shadow-overlay);
    color: var(--text-secondary);
    font-size: var(--text-xs);
    line-height: var(--leading-normal);
    animation: svelte-18c5216-ui-fieldhint-in var(--duration-fast) var(--ease-smooth);
  }

  .ui-fieldhint-pop--top.svelte-18c5216 {
    transform: translateY(-100%);
  }

  @keyframes svelte-18c5216-ui-fieldhint-in {
    from {
      opacity: 0;
    }
  }


  .ui-savebar.svelte-sbc0q3 {
    position: sticky;
    bottom: 0;
    z-index: var(--z-sticky);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
  }

  /* 固定底栏：父级 flex 列末项，贴底边；仅顶分隔线、零圆角零左右下边距 */
  .ui-savebar--pinned.svelte-sbc0q3 {
    position: static;
    flex-shrink: 0;
    border: 0;
    border-top: 1px solid var(--border-subtle);
    border-radius: 0;
  }

  .ui-savebar-message.svelte-sbc0q3 {
    min-width: 0;
    font-size: var(--text-sm);
    color: var(--text-secondary);
  }

  .ui-savebar-actions.svelte-sbc0q3 {
    display: flex;
    gap: var(--space-2);
  }


  .ui-icon.svelte-1t3kzp {
    display: inline-block;
    vertical-align: -0.15em;
    flex-shrink: 0;
  }


  .ui-field.svelte-3dvwp1 {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  /* 默认包裹层不生成盒子（display:contents）：input 仍是字段列的直接项，
     与历史单 input 结构布局逐像素一致；仅尾随动作态升为同行 flex，
     动作与输入框垂直居中——与 label/hint 行数无关，根除对到 hint 底边的错位 */
  .ui-field-control.svelte-3dvwp1 {
    display: contents;
  }

  .ui-field-control--trailing.svelte-3dvwp1 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
  }

  .ui-input--grow.svelte-3dvwp1 {
    flex: 1;
    min-width: 0;
  }

  /* 字段标签：xs / 600 / 界面正体（中文化后不再用 mono，避免雅黑+Consolas 混排） */
  .ui-field-label.svelte-3dvwp1 {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .ui-input.svelte-3dvwp1 {
    height: var(--control-md);
    padding: 0 var(--space-2);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-size: var(--text-sm);
  }

  .ui-input.svelte-3dvwp1::placeholder {
    color: var(--text-tertiary);
  }

  /* 有框控件聚焦：仅单一变蓝边框（极简，禁止再叠 outline 形成双线；焦点环保留给无框按钮/图标钮） */
  .ui-input.svelte-3dvwp1:focus-visible {
    outline: none;
    border-color: var(--accent);
  }

  .ui-input.svelte-3dvwp1:disabled {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-input--invalid.svelte-3dvwp1 {
    border-color: var(--status-error);
  }

  .ui-input--invalid.svelte-3dvwp1:focus-visible {
    outline: none;
    border-color: var(--status-error);
  }

  .ui-input--mono.svelte-3dvwp1 {
    font-family: var(--font-mono);
  }

  /* 辅助说明：xs / 界面正体（02 §2.2） */
  .ui-field-desc.svelte-3dvwp1 {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-field-desc--error.svelte-3dvwp1 {
    color: var(--status-error);
  }


  .ui-field.svelte-m2exhl {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  .ui-field-label.svelte-m2exhl {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .md-editor.svelte-m2exhl {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
  }

  .md-toolbar.svelte-m2exhl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
  }

  .md-tools.svelte-m2exhl {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
  }

  /* 块级组与行内组的分隔（38 §5.3 工具栏增强） */
  .md-sep.svelte-m2exhl {
    align-self: center;
    width: 1px;
    height: calc(var(--control-sm) * 0.6);
    background: var(--border-subtle);
  }

  .md-tool.svelte-m2exhl {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--control-sm);
    height: var(--control-sm);
    padding: 0;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
    color: var(--text-secondary);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    cursor: pointer;
  }

  .md-tool.svelte-m2exhl:hover:not(:disabled) {
    border-color: var(--border-strong);
    color: var(--text-primary);
  }

  .md-tool.svelte-m2exhl:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .md-tool.svelte-m2exhl:disabled {
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .md-tool--bold.svelte-m2exhl {
    font-weight: var(--font-weight-bold);
  }

  .md-tool--italic.svelte-m2exhl {
    font-style: italic;
  }

  .md-tool--strike.svelte-m2exhl {
    text-decoration: line-through;
  }

  .md-tool--mono.svelte-m2exhl {
    font-size: var(--text-xs);
  }

  .md-panes.svelte-m2exhl {
    display: grid;
    gap: var(--space-2);
  }

  .md-panes.split.svelte-m2exhl {
    grid-template-columns: 1fr 1fr;
  }

  .md-src.svelte-m2exhl {
    width: 100%;
    padding: var(--space-2);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    resize: vertical;
    min-height: 0;
  }

  .md-editor--invalid.svelte-m2exhl .md-src:where(.svelte-m2exhl) {
    border-color: var(--status-error);
  }

  .md-src.svelte-m2exhl::placeholder {
    color: var(--text-tertiary);
  }

  /* 有框控件聚焦：仅单一变蓝边框（极简，禁止再叠 outline 形成双线） */
  .md-src.svelte-m2exhl:focus-visible {
    outline: none;
    border-color: var(--accent);
  }

  .md-src.svelte-m2exhl:disabled,
  .md-src.svelte-m2exhl:read-only {
    border-color: var(--border-subtle);
  }

  .md-src.svelte-m2exhl:disabled {
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  /* 预览窗格：与源码窗格同行等高（grid stretch）；钉顶大纲 + 正文独立滚动（75 P1-2） */
  .md-preview.svelte-m2exhl {
    display: flex;
    flex-direction: column;
    padding: var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
    min-height: 0;
    overflow: hidden;
  }

  /* 正文滚动容器（TOC 钉在其上方不随内容滚走） */
  .md-preview-body.svelte-m2exhl {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
  }

  .ui-field-desc.svelte-m2exhl {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-field-desc--error.svelte-m2exhl {
    color: var(--status-error);
  }


  /* ── aside：右侧悬浮目录（公开长文，sticky 随读）── */
  .md-toc--aside.svelte-1op7ddf {
    position: sticky;
    top: calc(var(--topbar-height, 48px) + var(--space-3));
    align-self: start;
    max-height: calc(100vh - var(--topbar-height, 48px) - var(--space-6));
    overflow-y: auto;
  }

  .md-toc-title.svelte-1op7ddf {
    margin: 0 0 var(--space-2);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-tertiary);
    letter-spacing: var(--tracking-wide, 0.04em);
  }

  .md-toc-list.svelte-1op7ddf {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }

  .md-toc-link.svelte-1op7ddf {
    display: block;
    padding: var(--space-1) var(--space-2);
    border-left: 2px solid var(--border-subtle);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .md-toc-link.svelte-1op7ddf:hover {
    color: var(--text-primary);
    border-left-color: var(--border-strong);
  }

  .md-toc-link.svelte-1op7ddf:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .md-toc-link.is-active.svelte-1op7ddf {
    color: var(--accent-on-canvas);
    border-left-color: var(--accent);
    font-weight: var(--font-weight-semibold);
  }

  /* 层级缩进：L1=space-2，每深一级 +space-3（calc 数值倍乘，无内联 style/硬编码） */
  .md-toc-l2.svelte-1op7ddf { padding-left: calc(var(--space-2) + var(--space-3)); }
  .md-toc-l3.svelte-1op7ddf { padding-left: calc(var(--space-2) + var(--space-3) * 2); }
  .md-toc-l4.svelte-1op7ddf { padding-left: calc(var(--space-2) + var(--space-3) * 3); }
  .md-toc-l5.svelte-1op7ddf { padding-left: calc(var(--space-2) + var(--space-3) * 4); }
  .md-toc-l6.svelte-1op7ddf { padding-left: calc(var(--space-2) + var(--space-3) * 5); }

  /* ── inline：编辑器分屏预览顶部紧凑大纲（横向 chips，可换行不横滚）── */
  .md-toc--inline.svelte-1op7ddf {
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--border-subtle);
  }

  .md-toc--inline.svelte-1op7ddf .md-toc-list:where(.svelte-1op7ddf) {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--space-1);
  }

  .md-toc--inline.svelte-1op7ddf .md-toc-link:where(.svelte-1op7ddf) {
    border-left: 0;
    border-radius: var(--radius-full, 999px);
    background: var(--bg-sunken);
    padding: var(--space-1) var(--space-2);
    font-size: var(--text-xs);
    white-space: normal;
    max-width: 100%;
  }

  .md-toc--inline.svelte-1op7ddf .md-toc-l2:where(.svelte-1op7ddf),
  .md-toc--inline.svelte-1op7ddf .md-toc-l3:where(.svelte-1op7ddf),
  .md-toc--inline.svelte-1op7ddf .md-toc-l4:where(.svelte-1op7ddf),
  .md-toc--inline.svelte-1op7ddf .md-toc-l5:where(.svelte-1op7ddf),
  .md-toc--inline.svelte-1op7ddf .md-toc-l6:where(.svelte-1op7ddf) {
    padding-left: var(--space-2);
  }

  .md-toc--inline.svelte-1op7ddf .md-toc-link.is-active:where(.svelte-1op7ddf) {
    background: var(--accent);
    color: var(--accent-text);
    border-left-color: transparent;
  }

  /* 窄屏：右侧悬浮目录隐藏（正文全宽，无横滚）；inline chips 保留 */
  @media (max-width: 1023px) {
    .md-toc--aside.svelte-1op7ddf {
      display: none;
    }
  }


  /* .md-body 样式契约段（18 §8）：全令牌引用，双主题自动成立；零硬编码色/距/字号 */
  .md-body.svelte-1uo84nv {
    color: var(--text-primary);
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    overflow-wrap: break-word;
  }

  /* toc 两栏（75 §7.2 P1-2）：正文自适应 + 22ch 目录列；窄屏单列（侧栏自隐）。
     minmax(0,1fr) 防内容（长代码/URL）撑破栅格导致横滚。 */
  .md-doc.svelte-1uo84nv {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22ch;
    gap: var(--space-6);
    align-items: start;
  }

  @media (max-width: 1023px) {
    .md-doc.svelte-1uo84nv {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  /* 段落（软换行已由渲染器并入空格） */
  .md-body.svelte-1uo84nv p {
    margin: 0 0 var(--space-3);
  }

  .md-body.svelte-1uo84nv ul:last-child,
  .md-body.svelte-1uo84nv ol:last-child,
  .md-body.svelte-1uo84nv blockquote:last-child,
  .md-body.svelte-1uo84nv .md-code:last-child,
  .md-body.svelte-1uo84nv table:last-child {
    margin-bottom: 0;
  }

  /* 标题阶梯 h1=xl → h6=xs（18 §8）；首标题去顶距。
     scroll-margin-top（75 §7.2 P1-4）：TOC 锚点跳转/浏览器「页内查找」定位时，
     标题不被吸顶栏遮挡——后台壳 --topbar-height(48) 与公开页 sticky SiteNav 都留余量。 */
  .md-body.svelte-1uo84nv h1,
  .md-body.svelte-1uo84nv h2,
  .md-body.svelte-1uo84nv h3,
  .md-body.svelte-1uo84nv h4,
  .md-body.svelte-1uo84nv h5,
  .md-body.svelte-1uo84nv h6 {
    scroll-margin-top: calc(var(--topbar-height, 48px) + var(--space-3));
  }

  .md-body.svelte-1uo84nv h1 {
    margin: var(--space-5) 0 var(--space-2);
    font-size: var(--text-xl);
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-tight);
  }

  .md-body.svelte-1uo84nv h2 {
    margin: var(--space-5) 0 var(--space-2);
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-tight);
  }

  .md-body.svelte-1uo84nv h3 {
    margin: var(--space-4) 0 var(--space-2);
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-tight);
  }

  .md-body.svelte-1uo84nv h4,
  .md-body.svelte-1uo84nv h5 {
    margin: var(--space-3) 0 var(--space-1);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-tight);
  }

  .md-body.svelte-1uo84nv h6 {
    margin: var(--space-3) 0 var(--space-1);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-tight);
  }

  .md-body.svelte-1uo84nv h1:first-child,
  .md-body.svelte-1uo84nv h2:first-child,
  .md-body.svelte-1uo84nv h3:first-child,
  .md-body.svelte-1uo84nv h4:first-child,
  .md-body.svelte-1uo84nv h5:first-child,
  .md-body.svelte-1uo84nv h6:first-child,
  .md-body.svelte-1uo84nv p:first-child {
    margin-top: 0;
  }

  /* 引用：左竖线 + 次级文本（18 §2 TRAE 参照） */
  .md-body.svelte-1uo84nv blockquote {
    margin: 0 0 var(--space-3);
    padding: var(--space-1) var(--space-3);
    border-left: 2px solid var(--border-strong);
    color: var(--text-secondary);
  }

  .md-body.svelte-1uo84nv blockquote p {
    margin: 0 0 var(--space-2);
  }

  .md-body.svelte-1uo84nv blockquote p:last-child {
    margin-bottom: 0;
  }

  /* 列表：嵌套缩进由原生 padding 承载 */
  .md-body.svelte-1uo84nv ul,
  .md-body.svelte-1uo84nv ol {
    margin: 0 0 var(--space-3);
    padding-left: var(--space-5);
  }

  .md-body.svelte-1uo84nv li {
    margin: var(--space-1) 0;
  }

  .md-body.svelte-1uo84nv li > ul,
  .md-body.svelte-1uo84nv li > ol {
    margin: var(--space-1) 0;
  }

  /* 任务列表：checkbox 对齐文本首行基线（18 §8）；去项目符号 */
  .md-body.svelte-1uo84nv li.md-task {
    display: flex;
    align-items: first baseline;
    gap: var(--space-2);
    list-style: none;
  }

  .md-body.svelte-1uo84nv li.md-task input[type='checkbox'] {
    width: var(--text-base);
    height: var(--text-base);
    flex-shrink: 0;
    margin: 0;
    accent-color: var(--accent);
  }

  /* 行内代码：等宽 + 弱底色 */
  .md-body.svelte-1uo84nv code {
    padding: 0 var(--space-1);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
  }

  /* 代码块装饰结构（18 §7.2）：语言标签 + 复制按钮 + pre>code */
  .md-body.svelte-1uo84nv .md-code {
    margin: 0 0 var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-sunken);
  }

  .md-body.svelte-1uo84nv .md-code-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--space-2);
    border-bottom: 1px solid var(--border-subtle);
  }

  .md-body.svelte-1uo84nv .md-code-lang {
    color: var(--text-tertiary);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    line-height: var(--control-sm);
  }

  .md-body.svelte-1uo84nv .md-code-copy {
    height: var(--control-sm);
    padding: 0 var(--space-1);
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--text-xs);
    cursor: pointer;
  }

  .md-body.svelte-1uo84nv .md-code-copy:hover {
    background: var(--bg-elevated);
    color: var(--text-primary);
  }

  .md-body.svelte-1uo84nv .md-code-copy:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
  }

  .md-body.svelte-1uo84nv .md-code pre {
    margin: 0;
    padding: var(--space-3);
  }

  /* 块内代码覆写行内样式；禁横向滚动（UI 布局纪律：内容换行） */
  .md-body.svelte-1uo84nv .md-code code {
    padding: 0;
    border-radius: 0;
    background: transparent;
    white-space: pre-wrap;
    overflow-wrap: break-word;
    line-height: var(--leading-normal);
  }

  /* 语法高亮映射（38 §5.2 D-3）：预渲染物化产物携带 md-hl-* class span
     （Shiki token→class，零内联 style 过 CSP），颜色由 --syntax-* 令牌对
     承载（02 §2.7，亮暗成对）；无 class 纯文本继承 code 前景色 */
  .md-body.svelte-1uo84nv .md-hl-keyword {
    color: var(--syntax-keyword);
  }

  .md-body.svelte-1uo84nv .md-hl-string {
    color: var(--syntax-string);
  }

  .md-body.svelte-1uo84nv .md-hl-comment {
    color: var(--syntax-comment);
  }

  .md-body.svelte-1uo84nv .md-hl-number {
    color: var(--syntax-number);
  }

  .md-body.svelte-1uo84nv .md-hl-function {
    color: var(--syntax-function);
  }

  .md-body.svelte-1uo84nv .md-hl-constant {
    color: var(--syntax-constant);
  }

  .md-body.svelte-1uo84nv .md-hl-variable {
    color: var(--syntax-variable);
  }

  .md-body.svelte-1uo84nv .md-hl-operator {
    color: var(--syntax-operator);
  }

  .md-body.svelte-1uo84nv .md-hl-type {
    color: var(--syntax-type);
  }

  .md-body.svelte-1uo84nv .md-hl-tag {
    color: var(--syntax-tag);
  }

  .md-body.svelte-1uo84nv .md-hl-attr {
    color: var(--syntax-attr);
  }

  /* GFM 表格：全宽 + 表头底色 + 行线 + 对齐三态（18 §4.1） */
  .md-body.svelte-1uo84nv table {
    width: 100%;
    margin: 0 0 var(--space-3);
    border-collapse: collapse;
    font-size: var(--text-sm);
  }

  .md-body.svelte-1uo84nv th,
  .md-body.svelte-1uo84nv td {
    padding: var(--space-2);
    border: 1px solid var(--border-subtle);
    text-align: left;
  }

  .md-body.svelte-1uo84nv th {
    background: var(--bg-sunken);
    font-weight: var(--font-weight-semibold);
  }

  .md-body.svelte-1uo84nv .al-center {
    text-align: center;
  }

  .md-body.svelte-1uo84nv .al-right {
    text-align: right;
  }

  /* 分割线 */
  .md-body.svelte-1uo84nv hr {
    margin: var(--space-4) 0;
    border: 0;
    border-top: 1px solid var(--border-subtle);
  }

  /* 图片自适应（防横滚）+ 外链色（18 §8） */
  .md-body.svelte-1uo84nv img {
    max-width: 100%;
    height: auto;
  }

  .md-body.svelte-1uo84nv a {
    color: var(--accent-on-canvas);
    text-decoration: underline;
    text-underline-offset: var(--link-underline-offset);
  }

  .md-body.svelte-1uo84nv a:hover {
    color: var(--accent-on-canvas);
    opacity: 0.82;
  }

  .md-body.svelte-1uo84nv del {
    color: var(--text-tertiary);
  }

  /* ==高亮==（75 §7.2 P1-5 GFM mark）：amber 弱底，双主题自动成立；
     透明底不触发打印黑块；color-mix 派生保证前景对比、零硬编码色 */
  .md-body.svelte-1uo84nv mark.md-mark {
    background: color-mix(in srgb, var(--status-warn) 22%, transparent);
    color: inherit;
    padding: 0 var(--space-1);
    border-radius: var(--radius);
  }

  /* 脚注（75 §7.2 P1-5）：上标引用 + 文末脚注区，全令牌化 */
  .md-body.svelte-1uo84nv sup.md-fnref {
    font-size: 0.72em;
    line-height: 0;
  }

  .md-body.svelte-1uo84nv sup.md-fnref a {
    color: var(--accent-on-canvas);
    text-decoration: none;
  }

  .md-body.svelte-1uo84nv sup.md-fnref a:hover {
    text-decoration: underline;
    text-underline-offset: var(--link-underline-offset);
  }

  .md-body.svelte-1uo84nv section.md-footnotes {
    margin-top: var(--space-6);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border-subtle);
  }

  .md-body.svelte-1uo84nv section.md-footnotes ol {
    margin: 0;
    padding-left: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }

  .md-body.svelte-1uo84nv section.md-footnotes li {
    font-size: var(--text-sm);
    color: var(--text-secondary);
  }

  .md-body.svelte-1uo84nv .md-fn-num {
    color: var(--text-tertiary);
  }

  .md-body.svelte-1uo84nv .md-fn-back {
    text-decoration: none;
    color: var(--accent-on-canvas);
  }

  /* ── prose 出版物排版变体（68 §3.5，仅公开站长文；后台内嵌文档不启用）──
     只管纵向节奏：16/1.7、标题上展示阶梯；英文标题微收紧靠 --tracking-tight
     （经 :lang 不可靠，统一负字距对中文影响轻微——display 档以拉丁/数字为主）。
     行宽约束独立为 md-body--measure——页面构建器块内宽度归块样式槽裁决时
     可只留排版、放掉 68ch（缺省两类同挂，裸用方行为不变）。 */
  .md-body.md-body--prose.svelte-1uo84nv {
    /* 82：正文走内容角色变量（默认回落 --text-prose=16，与历史逐字一致）；
       站点字号档在 [data-site]、块排版档在 data-text-scale wrapper 覆盖该变量，
       非 prose 裸用方仍走 --text-base，零扰动。 */
    font-size: var(--font-role-body, var(--text-prose));
    line-height: var(--leading-prose);
  }

  /* ── 阅读行宽约束（68ch 限宽居中，68 §3.5 长文阅读栏）：
     prose 缺省同挂；MarkdownDoc 等接受外层宽度调度的块显式关闭。 ── */
  .md-body.md-body--measure.svelte-1uo84nv {
    max-width: var(--prose-w);
    margin-inline: auto;
  }

  .md-body.md-body--prose.svelte-1uo84nv h1 {
    margin-top: var(--space-6);
    /* 82：页面标题角色（默认回落 display-sm=24，与历史一致）；站点/块档位可覆盖 */
    font-size: var(--font-role-page-title, var(--text-display-sm));
    line-height: var(--leading-display);
    letter-spacing: var(--tracking-tight);
  }

  .md-body.md-body--prose.svelte-1uo84nv h2 {
    margin-top: var(--space-6);
    /* 82：分区标题角色（默认回落 text-xl=20） */
    font-size: var(--font-role-section-title, var(--text-xl));
  }

  .md-body.md-body--prose.svelte-1uo84nv h3 {
    /* h3 无独立角色：块级 data-text-scale 仍经 --text-lg 缩放；站点档不细分到 h3 */
    font-size: var(--text-lg);
  }

  .md-body.md-body--prose.svelte-1uo84nv p {
    margin-bottom: var(--space-4);
  }

  /* 82 批次3 补漏：prose 态表格/行内代码/代码块/低层标题/脚注此前仍读后台密度令牌
     （--text-base=13/--text-sm=12），导致「默认跟随站点」反而比块级「紧凑」档更小的
     倒挂。现统一接回内容角色变量，与正文同一缩放体系，默认态单调、随站点/块档缩放。 */
  .md-body.md-body--prose.svelte-1uo84nv table {
    /* 表格为密集型内容，比正文低一档：默认说明角色 14（正文 16） */
    font-size: var(--font-role-caption);
  }

  /* 行内代码（含表格内 md5sum/路径等）：随表格/正文走说明角色，默认 14 */
  .md-body.md-body--prose.svelte-1uo84nv code {
    font-size: var(--font-role-caption);
  }

  /* 代码块正文：与阅读正文同档（默认 16），技术报告代码为主体内容不宜缩太小；
     其内语言标签/复制按钮为控件 chrome，保留后台密度档不随内容档缩放 */
  .md-body.md-body--prose.svelte-1uo84nv .md-code code {
    font-size: var(--font-role-body);
  }

  /* h4/h5：说明角色（默认 14，靠字重/颜色分层）；h6 同档再弱化色阶 */
  .md-body.md-body--prose.svelte-1uo84nv h4,
  .md-body.md-body--prose.svelte-1uo84nv h5 {
    font-size: var(--font-role-caption);
  }

  .md-body.md-body--prose.svelte-1uo84nv h6 {
    font-size: var(--font-role-caption);
  }

  .md-body.md-body--prose.svelte-1uo84nv section.md-footnotes li {
    font-size: var(--font-role-caption);
  }

  /* ── 打印样式（75 §7.2 P1-4）：去交互噪音、防代码块/表格截断、链接不溢出 ──
     颜色不强制 print-color-adjust——深色主题打印由浏览器「背景图形」选项决定，
     平台不注入背景色到正文（正文默认透明底），文字本身即黑，打印可读。 */
  @media print {
    /* 复制按钮/语言标签是交互装饰，打印隐藏（pre 代码本体保留） */
    .md-body.svelte-1uo84nv .md-code-head {
      display: none;
    }

    /* 代码块去边框/底色，避免深底打印成黑块；保留等宽与内边距 */
    .md-body.svelte-1uo84nv .md-code {
      border: 0;
      background: transparent;
    }

    /* 代码块允许跨页时内部断行（white-space 见 .md-code code，已 pre-wrap），
       figure/pre 不被整体压到下一页造成大片空白 */
    .md-body.svelte-1uo84nv .md-code pre {
      white-space: pre-wrap;
    }

    /* 表格/图片不截断在分页处；图片不超出页宽 */
    .md-body.svelte-1uo84nv tr,
    .md-body.svelte-1uo84nv img {
      break-inside: avoid;
    }

    /* 标题不与其后首段分离 */
    .md-body.svelte-1uo84nv h1,
    .md-body.svelte-1uo84nv h2,
    .md-body.svelte-1uo84nv h3,
    .md-body.svelte-1uo84nv h4 {
      break-after: avoid;
    }

    /* ==高亮== 打印去底色（避免灰底/色块），文字保留 */
    .md-body.svelte-1uo84nv mark.md-mark {
      background: transparent;
      padding: 0;
    }

    /* 打印不需要锚点顶部留白（无吸顶栏） */
    .md-body.svelte-1uo84nv h1,
    .md-body.svelte-1uo84nv h2,
    .md-body.svelte-1uo84nv h3,
    .md-body.svelte-1uo84nv h4,
    .md-body.svelte-1uo84nv h5,
    .md-body.svelte-1uo84nv h6 {
      scroll-margin-top: 0;
    }
  }


  .ui-modal-overlay.svelte-ww1cx1 {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--space-8) var(--space-4) var(--space-4);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: color-mix(in srgb, var(--gray-975) 60%, transparent);
  }

  .ui-modal.svelte-ww1cx1 {
    display: flex;
    flex-direction: column;
    width: 480px;
    max-width: 100%;
    max-height: 100%;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-overlay);
    box-shadow: var(--shadow-overlay);
  }

  .ui-modal--sm.svelte-ww1cx1 {
    width: 360px;
  }

  .ui-modal--lg.svelte-ww1cx1 {
    width: 640px;
  }

  .ui-modal--xl.svelte-ww1cx1 {
    width: 880px;
  }

  .ui-modal-header.svelte-ww1cx1 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
  }

  .ui-modal-title.svelte-ww1cx1 {
    margin: 0;
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
  }

  .ui-modal-close.svelte-ww1cx1 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--control-xs);
    height: var(--control-xs);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-modal-close.svelte-ww1cx1:hover {
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-modal-close.svelte-ww1cx1:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-modal-body.svelte-ww1cx1 {
    padding: var(--space-4);
    overflow-y: auto;
    /* 容器查询锚点（74）：弹窗内表单/画廊契约（form-grid/media-grid）在 Modal
       这个独立宽度上下文内按 @container 自适应，不依赖页根 page-shell */
    container-type: inline-size;
  }

  .ui-modal-footer.svelte-ww1cx1 {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--border-subtle);
  }


  .ui-nprogress.svelte-gxvhfl {
    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--z-toast);
    height: var(--progress-h);
    background: var(--accent);
    transition: width var(--duration-base) var(--ease-smooth);
    pointer-events: none;
  }


  .ui-navside.svelte-1olpqtf {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .ui-navside-list.svelte-1olpqtf {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    width: var(--nav-width);
    flex-shrink: 0;
    padding: var(--space-3) var(--space-2);
    border-right: 1px solid var(--border-subtle);
    overflow-y: auto;
  }

  .ui-navside-title.svelte-1olpqtf {
    margin: 0 0 var(--space-1);
    padding: 0 var(--space-2);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
  }

  .ui-navside-group.svelte-1olpqtf {
    margin: var(--space-2) 0 0;
    padding: 0 var(--space-2);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-tertiary);
    text-transform: uppercase;
  }

  .ui-navside-items.svelte-1olpqtf {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .ui-navside-item.svelte-1olpqtf {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    height: var(--control-md);
    padding: 0 var(--space-2);
    border-radius: var(--radius);
    border-left: 2px solid transparent;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    text-decoration: none;
    cursor: pointer;
  }

  .ui-navside-item.svelte-1olpqtf:hover {
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-navside-item.svelte-1olpqtf:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
  }

  .ui-navside-item--active.svelte-1olpqtf {
    border-left-color: var(--accent);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-weight: var(--font-weight-semibold);
  }

  .ui-navside-item-label.svelte-1olpqtf {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ui-navside-main.svelte-1olpqtf {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
  }


  .ui-pagination.svelte-177wrhw {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
  }

  /* 计数信息：xs / mono（02 §2.2 辅助说明档）；tabular-nums 防翻页数字宽度抖动 */
  .ui-pagination-info.svelte-177wrhw {
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    color: var(--text-tertiary);
  }

  .ui-pagination-controls.svelte-177wrhw {
    display: flex;
    align-items: center;
    gap: var(--space-2);
  }

  .ui-pagination-page.svelte-177wrhw {
    min-width: 48px;
    text-align: center;
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
  }


  .ui-field.svelte-pey6us {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  .ui-field-label.svelte-pey6us {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .ui-password.svelte-pey6us {
    position: relative;
    display: flex;
    width: 100%;
  }

  .ui-password-input.svelte-pey6us {
    width: 100%;
    height: var(--control-md);
    padding: 0 var(--space-6) 0 var(--space-2);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-size: var(--text-sm);
  }

  .ui-password-input.svelte-pey6us::placeholder {
    color: var(--text-tertiary);
  }

  /* 有框控件聚焦：仅单一变蓝边框（极简，禁止再叠 outline 形成双线） */
  .ui-password-input.svelte-pey6us:focus-visible {
    outline: none;
    border-color: var(--accent);
  }

  .ui-password-input.svelte-pey6us:disabled {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-password-input--invalid.svelte-pey6us {
    border-color: var(--status-error);
  }

  .ui-password-input--invalid.svelte-pey6us:focus-visible {
    outline: none;
    border-color: var(--status-error);
  }

  .ui-password-toggle.svelte-pey6us {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--control-sm);
    height: var(--control-sm);
    margin-right: var(--space-1);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-password-toggle.svelte-pey6us:hover:not(:disabled) {
    color: var(--text-primary);
    /* 输入框底即 sunken：内嵌图标钮 hover 抬一档（--bg-control-hover），
       避免与输入框同色=无底色反馈（同 SearchInput 清除钮） */
    background: var(--bg-control-hover);
  }

  .ui-password-toggle.svelte-pey6us:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-password-toggle.svelte-pey6us:disabled {
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-field-desc.svelte-pey6us {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-field-desc--error.svelte-pey6us {
    color: var(--status-error);
  }


  .ui-row-actions.svelte-kh2zeh {
    display: inline-flex;
    align-items: center;
    /* 统一左对齐：操作组从单元格起始线排起（与各列同一起始线，极简一致） */
    justify-content: flex-start;
    gap: var(--space-2);
    /* 首按钮文字与列头对齐：sm ghost 按钮左内边距 var(--space-2)=8px，
       单元格左 padding var(--space-3)=12px，按钮文字因此比列头缩进 8px。
       用负边距把整组拉回 8px，使首文字落在列起始线；hover 胶囊底色仍保留在
       按钮自身内边距区，负边距只移动按钮盒位置、不削减点击热区。 */
    margin-left: calc(-1 * var(--space-2));
  }


  .ui-search.svelte-1ib4ipp {
    position: relative;
    display: flex;
    width: 100%;
  }

  .ui-search-icon.svelte-1ib4ipp {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: inline-flex;
    padding: 0 var(--space-2);
    color: var(--text-tertiary);
    pointer-events: none;
  }

  .ui-search-input.svelte-1ib4ipp {
    width: 100%;
    height: var(--control-md);
    padding: 0 var(--space-7) 0 var(--space-6);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-size: var(--text-sm);
  }

  /* type=search 原生清除钮与自绘清除互斥：隐藏原生 */
  .ui-search-input.svelte-1ib4ipp::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
  }

  .ui-search-input.svelte-1ib4ipp::placeholder {
    color: var(--text-tertiary);
  }

  /* 有框控件聚焦：仅单一变蓝边框（极简，禁止再叠 outline 形成双线） */
  .ui-search-input.svelte-1ib4ipp:focus-visible {
    outline: none;
    border-color: var(--accent);
  }

  .ui-search-input.svelte-1ib4ipp:disabled {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-search-clear.svelte-1ib4ipp {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--control-sm);
    height: var(--control-sm);
    margin-right: var(--space-1);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-search-clear.svelte-1ib4ipp:hover {
    color: var(--text-primary);
    /* 输入框底即 sunken：内嵌图标钮 hover 必须抬一档（--bg-control-hover），
       否则与输入框同色=无底色反馈；同表格 ghost 钮的分层规则 */
    background: var(--bg-control-hover);
  }

  .ui-search-clear.svelte-1ib4ipp:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }


  .ui-seg.svelte-1i64aop {
    position: relative;
    display: inline-flex;
    /* flex 列容器内默认 stretch 会把轨道横向拉满（右侧空旷）；
       分段器语义=内容自适应宽度，显式 width:100% 的撑满场景不受影响 */
    align-self: flex-start;
    gap: 0;
    padding: 0;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-sunken);
  }

  .ui-seg-thumb.svelte-1i64aop {
    position: absolute;
    top: var(--border-thin);
    bottom: var(--border-thin);
    left: 0;
    width: 0;
    border: 1px solid var(--border-strong);
    border-radius: calc(var(--radius) - 1px);
    background: var(--bg-elevated);
    box-sizing: border-box;
    pointer-events: none;
    opacity: 0;
  }

  /* 底缘 accent 指示条（跟随 thumb 圆角，不超出） */
  .ui-seg-thumb.svelte-1i64aop::after {
    content: '';
    position: absolute;
    left: 6px;
    right: 6px;
    bottom: 0;
    height: 2px;
    border-radius: 2px 2px 0 0;
    background: var(--accent);
  }

  /* 就绪后：仅位移/宽度过渡，不动 paint 结构；live 前无过渡（首屏瞬切就位） */
  .ui-seg--ready.svelte-1i64aop .ui-seg-thumb:where(.svelte-1i64aop) {
    opacity: 1;
  }

  .ui-seg--live.ui-seg--ready.svelte-1i64aop .ui-seg-thumb:where(.svelte-1i64aop) {
    transition:
      left var(--duration-seg) var(--ease-smooth),
      width var(--duration-seg) var(--ease-smooth),
      border-color var(--duration-fast) var(--ease-smooth);
  }

  /* hover 轨道：thumb 描边泛蓝，给出「可点按」的整体暗示 */
  .ui-seg--live.svelte-1i64aop:hover:not(:focus-within) .ui-seg-thumb:where(.svelte-1i64aop) {
    border-color: color-mix(in srgb, var(--accent-on-canvas) 45%, var(--border-strong));
  }

  .ui-seg-item.svelte-1i64aop {
    /* 必须为定位元素：否则静态按钮会被绝对定位的 thumb 整块盖住文字
       （定位元素恒在非定位元素之上）。同为 positioned 且无 z-index 时，
       thumb 先于按钮渲染，按钮自然在上层——不引 z-index 字面量（守 R4）。 */
    position: relative;
    height: var(--control-sm);
    padding: 0 var(--space-3);
    border: 0;
    border-radius: calc(var(--radius) - 1px);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    transition:
      color var(--duration-fast) var(--ease-smooth);
  }

  .ui-seg-item.svelte-1i64aop:hover:not(:disabled) {
    color: var(--text-primary);
  }

  /* 按下压感：文字瞬时收一档反馈 */
  .ui-seg-item.svelte-1i64aop:active:not(:disabled) {
    color: var(--text-tertiary);
  }

  .ui-seg-item.svelte-1i64aop:focus-visible {
    outline: var(--focus-ring);
    outline-offset: -2px;
  }

  .ui-seg-item--active.svelte-1i64aop {
    color: var(--text-primary);
    font-weight: var(--font-weight-semibold);
  }

  .ui-seg-item.svelte-1i64aop:disabled {
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-seg.svelte-1i64aop:has(.ui-seg-item:where(.svelte-1i64aop):disabled) {
    opacity: 0.5;
  }

  @media (prefers-reduced-motion: reduce) {
    .ui-seg--live.ui-seg--ready.svelte-1i64aop .ui-seg-thumb:where(.svelte-1i64aop) {
      transition: border-color var(--duration-fast) var(--ease-smooth);
    }
  }


  .ui-field.svelte-rvmapr {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  .ui-field-label.svelte-rvmapr {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .ui-select.svelte-rvmapr {
    position: relative;
    display: flex;
    width: 100%;
  }

  .ui-select-native.svelte-rvmapr {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    height: var(--control-md);
    padding: 0 var(--space-6) 0 var(--space-2);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-size: var(--text-sm);
    cursor: pointer;
  }

  /* 有框控件聚焦：仅单一变蓝边框（极简，禁止再叠 outline 形成双线） */
  .ui-select-native.svelte-rvmapr:focus-visible {
    outline: none;
    border-color: var(--accent);
  }

  .ui-select-native.svelte-rvmapr:disabled {
    border-color: var(--border-subtle);
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-select-native--invalid.svelte-rvmapr {
    border-color: var(--status-error);
  }

  .ui-select-native--invalid.svelte-rvmapr:focus-visible {
    outline: none;
    border-color: var(--status-error);
  }

  .ui-select-native--mono.svelte-rvmapr {
    font-family: var(--font-mono);
  }

  .ui-select-caret.svelte-rvmapr {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: inline-flex;
    padding: 0 var(--space-2);
    color: var(--text-tertiary);
    pointer-events: none;
  }

  .ui-field-desc.svelte-rvmapr {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-field-desc--error.svelte-rvmapr {
    color: var(--status-error);
  }


  .ui-skeleton.svelte-1vepe48 {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    width: 100%;
  }

  .ui-skeleton-row.svelte-1vepe48 {
    display: flex;
    gap: var(--space-2);
  }

  .ui-skeleton-block.svelte-1vepe48 {
    height: 12px;
    border-radius: var(--radius);
    background: var(--bg-sunken);
    animation: svelte-1vepe48-ui-skeleton-pulse 1.2s var(--ease-smooth) infinite;
  }

  .ui-skeleton-block--heading.svelte-1vepe48 {
    height: 16px;
    width: 40%;
    margin-bottom: var(--space-2);
  }

  .ui-skeleton-block--short.svelte-1vepe48 {
    width: 60%;
  }

  @keyframes svelte-1vepe48-ui-skeleton-pulse {
    50% {
      opacity: 0.45;
    }
  }


  .ui-sc.svelte-12r8mss {
    position: relative;
    display: inline-flex;
  }

  /* 灯组常态：无边无底，与页头文字同层，不构成「卡片」 */
  .ui-sc-trigger.svelte-12r8mss,
  .ui-sc-static.svelte-12r8mss {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-1) var(--space-2);
    border: none;
    border-radius: var(--radius);
    background: transparent;
    cursor: default;
  }

  .ui-sc-trigger.svelte-12r8mss {
    cursor: pointer;
  }

  .ui-sc-trigger.svelte-12r8mss:hover {
    background: var(--bg-elevated);
  }

  .ui-sc-trigger.svelte-12r8mss:focus-visible {
    outline: var(--focus-ring);
    outline-offset: var(--focus-offset);
  }

  .ui-sc-item.svelte-12r8mss {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    white-space: nowrap;
  }

  /* 静默圆点：ok/off 均灰——正常运行不出绿（68 §2.1） */
  .ui-sc-dot.svelte-12r8mss {
    width: var(--space-2);
    height: var(--space-2);
    border-radius: var(--radius-full);
    background: var(--text-tertiary);
    flex-shrink: 0;
  }

  .ui-sc-dot--warn.svelte-12r8mss {
    background: var(--status-warn);
  }

  .ui-sc-dot--error.svelte-12r8mss {
    background: var(--status-error);
  }

  .ui-sc-dot--connecting.svelte-12r8mss {
    background: var(--accent);
    animation: svelte-12r8mss-ui-sc-pulse var(--duration-pulse) var(--ease-smooth) infinite;
  }

  .ui-sc-label.svelte-12r8mss {
    font-size: var(--text-xs);
    color: var(--text-tertiary);
    line-height: 1;
  }

  /* 异常时对应文案升一档，保证灯组仍「几乎隐形但异常可扫到」 */
  .ui-sc-trigger--active.svelte-12r8mss .ui-sc-label:where(.svelte-12r8mss) {
    color: var(--text-secondary);
  }

  @keyframes svelte-12r8mss-ui-sc-pulse {
    50% {
      opacity: 0.35;
    }
  }

  /* 原地展开面板：浮层语义（surface + hairline + overlay 阴影），非外框卡片 */
  .ui-sc-panel.svelte-12r8mss {
    position: absolute;
    top: calc(100% + var(--space-1));
    right: 0;
    z-index: var(--z-dropdown);
    min-width: 280px;
    max-width: min(560px, 80vw);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-overlay);
    box-shadow: var(--shadow-overlay);
  }


  .ui-statusdot.svelte-lfwkxk {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    white-space: nowrap;
  }

  .ui-statusdot-dot.svelte-lfwkxk {
    width: var(--space-2);
    height: var(--space-2);
    border-radius: var(--radius-full);
    background: var(--text-tertiary);
    flex-shrink: 0;
  }

  .ui-statusdot--ok.svelte-lfwkxk .ui-statusdot-dot:where(.svelte-lfwkxk) {
    background: var(--status-ok);
  }

  .ui-statusdot--warn.svelte-lfwkxk .ui-statusdot-dot:where(.svelte-lfwkxk) {
    background: var(--status-warn);
  }

  .ui-statusdot--error.svelte-lfwkxk .ui-statusdot-dot:where(.svelte-lfwkxk) {
    background: var(--status-error);
  }

  .ui-statusdot--connecting.svelte-lfwkxk .ui-statusdot-dot:where(.svelte-lfwkxk) {
    background: var(--accent);
  }

  .ui-statusdot--off.svelte-lfwkxk .ui-statusdot-dot:where(.svelte-lfwkxk) {
    background: var(--text-tertiary);
  }

  /* 呼吸：循环透明度脉冲（进行中反馈，非装饰动画） */
  .ui-statusdot-dot--pulse.svelte-lfwkxk {
    animation: svelte-lfwkxk-ui-statusdot-pulse var(--duration-pulse) var(--ease-smooth) infinite;
  }

  @keyframes svelte-lfwkxk-ui-statusdot-pulse {
    50% {
      opacity: 0.35;
    }
  }

  .ui-statusdot-label.svelte-lfwkxk {
    font-size: var(--text-sm);
    color: var(--text-secondary);
    line-height: 1;
  }

  /* 状态色联动文案（无 label 时纯圆点不上色文案） */
  .ui-statusdot--ok.svelte-lfwkxk .ui-statusdot-label:where(.svelte-lfwkxk) {
    color: var(--status-ok);
  }

  .ui-statusdot--warn.svelte-lfwkxk .ui-statusdot-label:where(.svelte-lfwkxk) {
    color: var(--status-warn);
  }

  .ui-statusdot--error.svelte-lfwkxk .ui-statusdot-label:where(.svelte-lfwkxk) {
    color: var(--status-error);
  }

  .ui-statusdot--connecting.svelte-lfwkxk .ui-statusdot-label:where(.svelte-lfwkxk) {
    color: var(--accent-on-canvas);
  }


  .ui-switch.svelte-dm5ct5 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
  }

  /* 设置行形态：文字在左占满，轨道钉在右侧并与标题首行顶边对齐（多行说明不下坠到垂直居中）。
     DOM 顺序保持「轨道在前」（焦点/读屏先到控件），仅用 row-reverse 反转视觉次序，
     否则 space-between 会把轨道钉到最左、文字挤到右（与设计语义相反，74 实测回归）。 */
  .ui-switch--end.svelte-dm5ct5 {
    width: 100%;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: flex-start;
  }

  .ui-switch--end.svelte-dm5ct5 .ui-switch-text:where(.svelte-dm5ct5) {
    flex: 1;
  }

  /* 16px 轨道对 18px 首行行盒（12px×1.5）下沉 1px 光学居中；不再用 4px（实测明显低于标题首行）。
     走 transform 而非 margin：1px 非 4px 栅格阶梯会被设计资产门禁 R3 拦截，且 transform
     纯视觉位移不占布局、不推高 flex 行盒（对齐语义比 margin 更精确）。 */
  .ui-switch--end.svelte-dm5ct5 .ui-switch-track:where(.svelte-dm5ct5) {
    transform: translateY(1px);
  }

  .ui-switch-track.svelte-dm5ct5 {
    position: relative;
    flex-shrink: 0;
    width: 28px;
    height: 16px;
    padding: 0;
    border: 1px solid var(--border-strong);
    /* 68 §3.2：轨道统一 6px 方角（不再胶囊），开合语义靠颜色承载 */
    border-radius: var(--radius);
    background: var(--bg-sunken);
    cursor: pointer;
    transition:
      background var(--duration-fast) var(--ease-smooth),
      border-color var(--duration-fast) var(--ease-smooth);
  }

  .ui-switch-track.svelte-dm5ct5:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-switch-track[aria-checked='true'].svelte-dm5ct5 {
    border-color: var(--accent);
    background: var(--accent);
  }

  .ui-switch-knob.svelte-dm5ct5 {
    position: absolute;
    top: 1px;
    left: 1px;
    width: 12px;
    height: 12px;
    border-radius: var(--radius-full);
    background: var(--accent-text);
    transition: transform var(--duration-fast) var(--ease-smooth);
  }

  .ui-switch-track[aria-checked='true'].svelte-dm5ct5 .ui-switch-knob:where(.svelte-dm5ct5) {
    transform: translateX(12px);
  }

  .ui-switch--disabled.svelte-dm5ct5 .ui-switch-track:where(.svelte-dm5ct5) {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
    cursor: not-allowed;
  }

  .ui-switch--disabled.svelte-dm5ct5 .ui-switch-track[aria-checked='true']:where(.svelte-dm5ct5) {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
  }

  /* 锁定但开启：保留开启主题色，仅以不可点光标表达「固有授予、不可改」，不染灰 */
  .ui-switch-track--locked.svelte-dm5ct5 {
    cursor: not-allowed;
  }

  .ui-switch-track--locked[aria-checked='true'].svelte-dm5ct5 {
    border-color: var(--accent);
    background: var(--accent);
    opacity: 0.78;
  }

  .ui-switch-track--locked[aria-checked='false'].svelte-dm5ct5 {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
  }

  .ui-switch--disabled.svelte-dm5ct5 .ui-switch-knob:where(.svelte-dm5ct5) {
    background: var(--text-disabled);
  }

  .ui-switch-text.svelte-dm5ct5 {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
  }

  .ui-switch-label.svelte-dm5ct5 {
    font-size: var(--text-sm);
    color: var(--text-primary);
    cursor: pointer;
  }

  .ui-switch-desc.svelte-dm5ct5 {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }


  .ui-tabs.svelte-1d2fue1 {
    display: flex;
    gap: var(--space-1);
    border-bottom: 1px solid var(--border-subtle);
  }

  .ui-tab.svelte-1d2fue1 {
    height: var(--control-sm);
    padding: 0 var(--space-3);
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    transition:
      color var(--duration-fast) var(--ease-smooth),
      border-color var(--duration-fast) var(--ease-smooth);
  }

  .ui-tab.svelte-1d2fue1:hover {
    color: var(--text-primary);
  }

  .ui-tab.svelte-1d2fue1:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
    border-radius: var(--radius);
  }

  .ui-tab--active.svelte-1d2fue1 {
    color: var(--text-primary);
    font-weight: var(--font-weight-semibold);
    border-bottom-color: var(--accent);
  }


  .ui-tag-field.svelte-9tono0 {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  .ui-field-label.svelte-9tono0 {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .ui-taginput.svelte-9tono0 {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .ui-taginput-chips.svelte-9tono0 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1);
    min-height: var(--control-md);
    padding: var(--space-1) var(--space-2);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    cursor: text;
  }

  .ui-taginput--focus.svelte-9tono0 .ui-taginput-chips:where(.svelte-9tono0) {
    border-color: var(--accent);
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-taginput--invalid.svelte-9tono0 .ui-taginput-chips:where(.svelte-9tono0) {
    border-color: var(--status-error);
  }

  .ui-tag-chip.svelte-9tono0 {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    max-width: 100%;
    height: 24px;
    padding: 0 var(--space-1) 0 var(--space-2);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
    color: var(--text-secondary);
    font-size: var(--text-xs);
    line-height: 1;
  }

  .ui-tag-chip-label.svelte-9tono0 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ui-tag-chip-x.svelte-9tono0 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-tag-chip-x.svelte-9tono0:hover {
    color: var(--text-primary);
    background: var(--bg-sunken);
  }

  .ui-tag-chip-x.svelte-9tono0:focus-visible,
  .ui-taginput-opt.svelte-9tono0:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -1px;
  }

  .ui-taginput-input.svelte-9tono0 {
    flex: 1 1 80px;
    min-width: 80px;
    height: 24px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text-primary);
    font-size: var(--text-sm);
  }

  .ui-taginput-input.svelte-9tono0::placeholder {
    color: var(--text-tertiary);
  }

  .ui-taginput-pop.svelte-9tono0 {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    z-index: var(--z-dropdown);
    display: flex;
    flex-direction: column;
    padding: var(--space-1);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-elevated);
  }

  .ui-taginput-opt.svelte-9tono0 {
    padding: var(--space-1) var(--space-2);
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    text-align: left;
    cursor: pointer;
  }

  .ui-taginput-opt.svelte-9tono0:hover {
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-field-desc.svelte-9tono0 {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-field-desc--error.svelte-9tono0 {
    color: var(--status-error);
  }


  .ui-field.svelte-rfttb4 {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  .ui-field-label.svelte-rfttb4 {
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--text-secondary);
  }

  .ui-textarea.svelte-rfttb4 {
    width: 100%;
    padding: var(--space-2);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    background: var(--bg-sunken);
    color: var(--text-primary);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    resize: vertical;
    min-height: 0;
  }

  .ui-textarea.svelte-rfttb4::placeholder {
    color: var(--text-tertiary);
  }

  /* 有框控件聚焦：仅单一变蓝边框（极简，禁止再叠 outline 形成双线） */
  .ui-textarea.svelte-rfttb4:focus-visible {
    outline: none;
    border-color: var(--accent);
  }

  .ui-textarea.svelte-rfttb4:disabled,
  .ui-textarea.svelte-rfttb4:read-only {
    border-color: var(--border-subtle);
    background: var(--bg-sunken);
  }

  .ui-textarea.svelte-rfttb4:disabled {
    color: var(--text-disabled);
    cursor: not-allowed;
  }

  .ui-textarea--invalid.svelte-rfttb4 {
    border-color: var(--status-error);
  }

  .ui-textarea--invalid.svelte-rfttb4:focus-visible {
    outline: none;
    border-color: var(--status-error);
  }

  .ui-textarea--mono.svelte-rfttb4 {
    font-family: var(--font-mono);
  }

  .ui-field-desc.svelte-rfttb4 {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-tertiary);
  }

  .ui-field-desc--error.svelte-rfttb4 {
    color: var(--status-error);
  }


  .ui-toasts.svelte-owez4n {
    position: fixed;
    right: var(--space-4);
    bottom: var(--space-4);
    z-index: var(--z-toast);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2);
    pointer-events: none;
  }

  .ui-toast.svelte-owez4n {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    max-width: 380px;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--bg-overlay);
    box-shadow: var(--shadow-overlay);
    color: var(--text-primary);
    font-size: var(--text-sm);
    pointer-events: auto;
    animation: svelte-owez4n-ui-toast-in var(--duration-base) var(--ease-smooth);
  }

  .ui-toast-icon.svelte-owez4n {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--text-tertiary);
  }

  .ui-toast--success.svelte-owez4n .ui-toast-icon:where(.svelte-owez4n) {
    color: var(--status-ok);
  }

  .ui-toast--error.svelte-owez4n .ui-toast-icon:where(.svelte-owez4n) {
    color: var(--status-error);
  }

  .ui-toast--warn.svelte-owez4n .ui-toast-icon:where(.svelte-owez4n) {
    color: var(--status-warn);
  }

  .ui-toast--info.svelte-owez4n .ui-toast-icon:where(.svelte-owez4n) {
    color: var(--status-info);
  }

  .ui-toast-message.svelte-owez4n {
    min-width: 0;
    word-break: break-word;
  }

  .ui-toast-action.svelte-owez4n {
    flex-shrink: 0;
    padding: 0 var(--space-2);
    height: var(--control-xs);
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--accent-on-canvas);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
  }

  .ui-toast-action.svelte-owez4n:hover {
    background: var(--bg-sunken);
  }

  .ui-toast-action.svelte-owez4n:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  .ui-toast-close.svelte-owez4n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--control-xs);
    height: var(--control-xs);
    padding: 0;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
  }

  .ui-toast-close.svelte-owez4n:hover {
    background: var(--bg-sunken);
    color: var(--text-primary);
  }

  .ui-toast-close.svelte-owez4n:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
  }

  @keyframes svelte-owez4n-ui-toast-in {
    from {
      opacity: 0;
      transform: translateX(8px);
    }
  }
