/* AgentFlow Product UI v4 — operational, calm and intervention-first.
   v4 令牌映射到主设计系统（styles.css），亮/暗双主题自动跟随。 */
:root,html[data-theme="light"]{
  --v4-canvas:var(--bg-soft);--v4-navy:var(--panel);--v4-cyan:var(--cyan);--v4-blue:var(--blue);
  --v4-lime:var(--green);--v4-warm:var(--amber);--v4-shadow:var(--shadow);
  --v3-bg:var(--v4-canvas);--v3-accent:var(--v4-blue);--v3-accent-ink:var(--blue-dim);--v3-accent-soft:var(--blue-soft);
}
html[data-theme="dark"]{--v4-canvas:var(--bg);--v4-navy:var(--panel);--v4-shadow:var(--shadow)}

/* Frame: robust modern CSS grid layout, responsive navigation & chrome */
:root {
  --rail-w: 56px;
  --sidebar-w: 304px;
  --shell-canvas: #fff;
  --shell-inset-x: 14px;
  --rail-surface: #fff;
  --rail-hover: #ededed;
  --rail-active: #eaeaea;
  --rail-ink: #18181b;
  --rail-muted: #66666f;
}
html[data-theme="dark"] {
  --shell-canvas: #141417;
  --rail-surface: #0a0a0b;
  --rail-hover: #202025;
  --rail-active: #26262c;
  --rail-ink: #ededf0;
  --rail-muted: #a1a1aa;
}
.app-shell {
  display: grid !important;
  grid-template-columns: var(--rail-w) var(--sidebar-w) minmax(0, 1fr) !important;
  width: 100vw;
  height: 100vh;
  box-sizing: border-box;
  padding-left: var(--shell-inset-x);
  overflow: hidden;
  background: var(--shell-canvas);
  transition: grid-template-columns var(--ease, 0.2s ease);
}
@media (max-width: 850px) {
  :root {
    --shell-inset-x: 0px;
  }
}
body.ai-assistant-open .app-shell {
  grid-template-columns: var(--rail-w) var(--sidebar-w) minmax(0, 1fr) var(--ai-panel-w, 380px) !important;
}
body.ai-assistant-open .shell-main {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  min-width: 0 !important;
}
body.ai-assistant-resizing .app-shell,
body.ai-assistant-resizing .shell-main,
body.ai-assistant-resizing .ai-assistant {
  transition: none !important;
}

/* 执行机器与个人设置视图：隐藏二级菜单侧边栏，页面独占主体空间 */
body.no-sidebar .app-shell {
  grid-template-columns: var(--rail-w) minmax(0, 1fr) !important;
}
body.no-sidebar.ai-assistant-open .app-shell {
  grid-template-columns: var(--rail-w) minmax(0, 1fr) var(--ai-panel-w, 380px) !important;
}
body.no-sidebar .platform-sidebar {
  display: none !important;
}

/* --- Grasp 风格全局图标导航 --- */
.platform-rail {
  position: relative !important;
  width: var(--rail-w) !important;
  max-width: var(--rail-w) !important;
  transition: width var(--rail-expand-duration, 240ms) cubic-bezier(.16, 1, .3, 1), max-width var(--rail-expand-duration, 240ms) cubic-bezier(.16, 1, .3, 1);
  height: calc(100vh - 28px) !important;
  height: calc(100dvh - 28px) !important;
  min-height: 0;
  margin: 14px 0 !important;
  box-sizing: border-box !important;
  background: var(--rail-surface) !important;
  border-right: 0;
  border-radius: 16px 0 0 16px;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 10px 0 8px !important;
  z-index: 100;
  user-select: none;
  flex-shrink: 0;
  overflow: visible !important;
}
.platform-rail nav,
.platform-rail .rail-nav,
.platform-rail .rail-bottom {
  overflow: visible !important;
}

/* 导航区 */
.rail-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
  flex: 1 1 auto;
  position: relative;
}
@media (max-height: 560px) {
  .platform-rail {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
  .platform-rail .rail-nav {
    min-height: 0;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-width: none;
  }
}

/* 小栏通用按钮样式 */
.platform-rail .rail-btn {
  position: relative;
  width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: transparent !important;
  color: var(--rail-muted) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  transition: background-color 0.16s ease, color 0.16s ease !important;
  box-shadow: none !important;
  outline: none;
  flex-shrink: 0;
}
.platform-rail .rail-btn svg {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.platform-rail .rail-btn:hover {
  background: var(--rail-hover) !important;
  color: var(--rail-ink) !important;
  transform: none;
}
.platform-rail .rail-btn:active {
  transform: none;
}
.platform-rail .rail-btn:disabled,
.platform-rail .rail-btn:disabled:hover {
  background: transparent !important;
  color: var(--rail-muted) !important;
  opacity: .4;
  cursor: default;
}

/* 选中背景留在原位，只有 Harness 图标内部播放动效。 */
.platform-rail .rail-btn.active {
  background: var(--rail-active) !important;
  color: var(--rail-ink) !important;
  box-shadow: none !important;
}
.platform-rail .rail-btn.active svg {
  stroke: currentColor;
}
.platform-rail .rail-btn.active svg circle {
  fill: none;
}
.platform-rail .rail-btn.active svg [fill="currentColor"] {
  fill: currentColor;
}

/* 现代浮动 Tooltip：支持所有带 data-tooltip 的小栏元素 */
.platform-rail [data-tooltip] {
  position: relative;
}
.platform-rail [data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%) translateX(-4px);
  background: rgba(24, 24, 27, 0.94);
  color: #ffffff;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  white-space: nowrap;
  padding: 5px 9px;
  border-radius: 6px;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
  z-index: 99999;
}
.platform-rail [data-tooltip]::before {
  content: "";
  position: absolute;
  left: calc(100% + 5px);
  top: 50%;
  transform: translateY(-50%) translateX(-4px);
  border-width: 5px 5px 5px 0;
  border-style: solid;
  border-color: transparent rgba(24, 24, 27, 0.94) transparent transparent;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  z-index: 99999;
}
.platform-rail [data-tooltip]:hover::after,
.platform-rail [data-tooltip]:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}
html[data-theme="dark"] .platform-rail [data-tooltip]::after {
  background: rgba(39, 39, 42, 0.96);
  color: #f4f4f5;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
html[data-theme="dark"] .platform-rail [data-tooltip]::before {
  border-color: transparent rgba(39, 39, 42, 0.96) transparent transparent;
}

/* 待我确认 badge 徽标 */
.platform-rail .nav-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 8px;
  height: 8px;
  background: #ef4444;
  border: 1.5px solid var(--panel);
  border-radius: 99px;
  font-size: 0;
  display: block;
  z-index: 2;
}
.platform-rail .nav-badge:not([hidden]):not(:empty) {
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  top: 2px;
  right: 2px;
  font-size: 9px;
  font-weight: 700;
  line-height: 13px;
  text-align: center;
  color: #fff;
  border: 1px solid var(--panel);
}

/* 分割线 */
.rail-divider {
  width: 26px;
  height: 1px;
  background: transparent;
  margin: 6px auto;
  flex-shrink: 0;
}

/* 底部功能区 */
.rail-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
  flex-shrink: 0;
}

/* 图标栏默认只有图标。开关把它展开成和设置导航一样的文字行，不把整栏收掉。 */
.platform-rail .rail-label {
  display: none;
}
body.platform-rail-expanded {
  --rail-w: 240px;
}
body.platform-rail-expanded .platform-rail {
  align-items: stretch !important;
  padding: 12px 10px 10px !important;
}
body.platform-rail-expanded .rail-nav,
body.platform-rail-expanded .rail-bottom {
  align-items: stretch;
}
body.platform-rail-expanded .platform-rail .rail-btn {
  width: 100% !important;
  height: 38px !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 0 10px !important;
  border-radius: 10px !important;
  justify-content: flex-start !important;
  gap: 10px;
}
body.platform-rail-expanded .platform-rail .rail-label {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
}
body.platform-rail-expanded .platform-rail .rail-btn.active .rail-label {
  font-weight: 600;
}
body.platform-rail-expanded .platform-rail [data-tooltip]::after,
body.platform-rail-expanded .platform-rail [data-tooltip]::before {
  display: none !important;
}
body.platform-rail-expanded .rail-divider {
  width: auto;
  margin: 8px 8px;
}
body.platform-rail-expanded .platform-rail .nav-badge:not([hidden]) {
  position: static;
  margin-left: auto;
}
body.platform-rail-expanded .platform-rail .user-badge.rail-user {
  width: 100% !important;
  height: 38px !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 0 8px !important;
  border: 0 !important;
  border-radius: 10px !important;
  justify-content: flex-start !important;
  gap: 10px;
  background: transparent !important;
}
body.platform-rail-expanded .platform-rail .user-badge.rail-user:hover,
body.platform-rail-expanded .platform-rail .rail-profile-wrap.is-open .user-badge.rail-user {
  border-color: transparent !important;
  background: var(--rail-hover) !important;
  box-shadow: none !important;
}
body.platform-rail-expanded .platform-rail .user-avatar-circle.rail-user-avatar {
  width: 28px !important;
  height: 28px !important;
  flex: none;
}
body.platform-rail-expanded .platform-rail #userName {
  max-width: none;
  flex: 1;
  font-size: 14px;
  font-weight: 500;
}
@media (prefers-reduced-motion: reduce) {
  .app-shell,
  .platform-rail {
    transition: none !important;
  }
}

/* 底部用户头像与 Profile 弹窗整合（承接原本右上角的全部功能） */
.rail-profile-wrap {
  position: relative !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-top: 4px;
}
.platform-rail .user-badge.rail-user {
  width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--hover) !important;
  border: 1.5px solid var(--line) !important;
  cursor: pointer !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease !important;
  flex-shrink: 0 !important;
}
.platform-rail .user-badge.rail-user:hover,
.platform-rail .rail-profile-wrap.is-open .user-badge.rail-user {
  border-color: var(--blue) !important;
  background: var(--blue-soft) !important;
  box-shadow: 0 0 0 2px var(--blue-soft) !important;
}
.platform-rail .user-avatar-circle.rail-user-avatar {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, var(--blue), #8b5cf6) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  overflow: hidden !important;
  position: relative !important;
}
.platform-rail .user-badge.is-guest .user-avatar-circle.rail-user-avatar {
  background: var(--panel-2) !important;
  color: var(--muted) !important;
  border: 1px dashed var(--line-strong) !important;
}
.platform-rail .user-avatar-circle.rail-user-avatar img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}
.platform-rail .rail-user-avatar .user-avatar-text {
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
.upp-avatar-lg {
  position: relative !important;
}
.upp-avatar-lg img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}

/* 浮动个人信息与设置卡片：向右展开，固定在左下角上方 */
.rail-profile-wrap .user-profile-popover {
  position: fixed !important;
  left: calc(var(--rail-w) + var(--shell-inset-x) + 8px) !important;
  bottom: 12px !important;
  top: auto !important;
  right: auto !important;
  width: min(320px, calc(100vw - var(--rail-w) - var(--shell-inset-x) - 16px)) !important;
  max-height: calc(100vh - 24px) !important;
  overflow-y: auto !important;
  z-index: 999999 !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28), 0 2px 10px rgba(0, 0, 0, 0.12) !important;
  transform: translateX(-4px) !important;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s !important;
}
.rail-profile-wrap .user-profile-popover::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: -24px !important;
  right: auto !important;
  width: 24px !important;
  height: 100% !important;
  pointer-events: auto !important;
}
.rail-profile-wrap:hover .user-profile-popover,
.rail-profile-wrap.is-open .user-profile-popover {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) !important;
  pointer-events: auto !important;
}

/* 激活或展开 profile 时隐藏头像 tooltip 避免遮挡冲突 */
.rail-profile-wrap:hover [data-tooltip]::after,
.rail-profile-wrap:hover [data-tooltip]::before,
.rail-profile-wrap.is-open [data-tooltip]::after,
.rail-profile-wrap.is-open [data-tooltip]::before {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* 侧边栏底部的“配置与管理”和“设置”两个tab在所有模式下均彻底隐藏（图2的两个tab不再需要） */
.platform-sidebar .sidebar-bottom {
  display: none !important;
}
.platform-sidebar nav {
  padding-bottom: 16px !important;
}
.platform-sidebar {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  max-width: var(--sidebar-w) !important;
  height: 100vh !important;
  padding: 0 12px;
  background: var(--v4-navy, var(--panel));
  border: 0;
  border-right: 1px solid var(--line);
  color: var(--muted);
  box-sizing: border-box;
  overflow: hidden !important;
  z-index: 50;
  display: flex !important;
  flex-direction: column !important;
}
.shell-main {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  height: 100vh !important;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--v3-bg, var(--bg));
}
.platform-sidebar .brand {
  display: none !important;
}
.brand-mark{background:transparent!important;box-shadow:none!important}
.brand-mark .brand-logo{width:30px;height:30px;object-fit:contain;display:block;filter:drop-shadow(0 2px 6px rgba(59,130,246,.25))}
.brand-text b{color:var(--text);font-size:14px;font-weight:700}.brand-text small,.workspace-switch small{color:var(--muted-2)}
.workspace-switch{background:var(--panel-2);border-color:var(--line-strong)}
.workspace-switch b{color:var(--text)}.workspace-switch>span{background:var(--accent-gradient)}
.platform-sidebar nav {
  flex: 1 1 0% !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 12px 0 8px !important;
  overscroll-behavior-y: contain;
}
.platform-sidebar nav::-webkit-scrollbar:horizontal,
.platform-sidebar::-webkit-scrollbar:horizontal {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
.platform-sidebar nav p{color:var(--muted-2)}
.platform-sidebar .nav{
  color:var(--muted);
  transform: none !important;
  box-sizing: border-box !important;
  max-width: 100% !important;
}
.platform-sidebar .nav:hover{
  background:var(--hover);
  color:var(--text);
  transform: none !important;
}
.platform-sidebar .nav.active{background:var(--blue-soft);color:var(--blue);box-shadow:var(--shadow-sm)}
.platform-sidebar .nav.active .nav-icon{background:var(--blue-soft);color:var(--blue)}
.sidebar-bottom{
  flex-shrink: 0 !important;
  position:static;
  left:auto;
  right:auto;
  bottom:auto;
  min-height:0;
  padding:12px 4px 16px;
  background:transparent;
  border-color:var(--line);
  backdrop-filter:none;
  box-shadow:none;
}
.sidebar-bottom b{color:var(--muted)}.sidebar-bottom small{color:var(--muted-2)}

/* Topbar Chrome & Elements */
.topbar{
  height: 66px;
  padding: 0 28px;
  background: color-mix(in srgb,var(--v3-surface,var(--panel)) 94%,transparent);
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  box-sizing: border-box;
  border-bottom: 1px solid var(--line);
}
.page-context{display:flex;align-items:baseline;gap:8px;flex-shrink:0;min-width:0}
.page-context b{font-size:15px;font-weight:680;white-space:nowrap;color:var(--text)}
.page-context span{font-size:12px;color:var(--muted-2);white-space:nowrap}
/* The page heading already names the view; the topbar keeps only global controls. */
body.view-has-heading .topbar .page-context{display:none}
body.view-has-heading .topbar .command-trigger{margin-left:0 !important}

/* Search bar (command-trigger) and shortcut badge */
.command-trigger{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  height: 38px !important;
  padding: 0 10px 0 12px !important;
  border-radius: 10px !important;
  background: var(--v3-soft, var(--bg-soft)) !important;
  border: 1px solid var(--v3-line, var(--line)) !important;
  color: var(--v3-ink-3, var(--muted-2)) !important;
  cursor: pointer;
  box-sizing: border-box !important;
  flex: 0 1 300px !important;
  min-width: 140px !important;
  max-width: 360px !important;
  margin-left: clamp(10px, 1.8vw, 24px) !important;
  overflow: hidden !important;
  transition: border-color .15s ease, background .15s ease;
}
.command-trigger:hover{
  border-color: var(--v3-line-2, var(--line-strong)) !important;
  color: var(--v3-ink-2, var(--text)) !important;
}
.command-trigger span{font-size:14px !important;line-height:1 !important;flex-shrink:0 !important}
.command-trigger b{
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-align: left !important;
}
.command-trigger kbd,
.command-search kbd{
  margin-left: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 20px !important;
  min-height: 20px !important;
  max-height: 20px !important;
  padding: 0 6px !important;
  border: 1px solid var(--v3-line, var(--line)) !important;
  border-radius: 5px !important;
  background: var(--v3-surface, var(--panel)) !important;
  color: var(--v3-ink-3, var(--muted-2)) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  font-family: inherit !important;
  line-height: 1 !important;
  letter-spacing: 0.5px !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
  pointer-events: none !important;
}

.topbar-spacer{flex:1 1 auto;min-width:6px}
.topbar-project{display:flex;align-items:center;gap:8px;flex-shrink:0}
.project-global-switch{
  min-width: 160px;
  max-width: 220px;
  height: 38px;
  padding: 0 32px 0 12px;
  background: var(--v3-soft, var(--bg-soft));
  border: 1px solid var(--v3-line, var(--line));
  border-radius: 10px;
  color: var(--v3-ink, var(--text));
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:0}
.user-profile-wrap{flex-shrink:0}
.theme-toggle{width:38px;height:38px;flex-shrink:0}
.ai-launch{height:38px;flex-shrink:0}

/* ================= 全局页面与核心容器全宽自适应 (Widescreen Full-Width Adaptive) ================= */
.page-view.active {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  padding: 28px clamp(20px, 2.2vw, 36px) 54px;
}

/* 全局与所有业务视图的头部标题栏、工具栏、主网格、面板彻底消除 max-width 与 margin: 0 auto 居中限制 */
.page-heading,
.dash-heading,
.dash-grid,
.dash-feed-card,
.stat-grid,
.sync-panel,
.project-context-bar,
.issue-heading,
.issue-toolbar,
.issue-board,
.issue-board.kanban-mode,
.obs-heading,
.obs-tabs,
.obs-body,
.agent-layout,
.runs-layout,
.asset-tabs,
.access-summary,
#accessSummary,
.access-tabs,
.access-toolbar,
.access-table-wrap,
.access-tokens,
.access-grid,
.quick-wrap,
.quick-hero,
.quick-onboard,
.quick-after,
.setup-done,
.personal-settings-card,
.catalog-toolbar,
.definition-card-grid,
.sop-page,
.sop-overview,
.sop-toolbar,
.sop-catalog,
.sop-stats,
.approval-stats,
.approval-list,
.runner-onboarding,
.runner-list-heading,
.runner-grid,
.platform-admin-panel,
.platform-metric-grid,
.platform-admin-layout {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.page-heading{margin-bottom:20px}.page-heading h1{font-size:22px}
.page-heading>div>p:last-child{max-width:min(960px, 75vw)}

/* 接入指南全宽自适应与一致布局 */
.access-tabs{margin:0 0 16px 0 !important;width:100% !important;box-sizing:border-box !important}
.access-summary{width:100% !important;max-width:none !important;margin:0 0 16px 0 !important;box-sizing:border-box !important}
.quick-wrap{width:100% !important;max-width:none !important;margin:0 !important;box-sizing:border-box !important}
.quick-hero{width:100% !important;max-width:none !important;margin:0 0 16px 0 !important;box-sizing:border-box !important}
.quick-hero-text p{max-width:min(840px, 70vw)}
.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%;margin-bottom:16px;box-sizing:border-box}
.setup-card{box-sizing:border-box;width:100%}
.setup-done{width:100% !important;max-width:none !important;box-sizing:border-box !important;margin:0 !important}
.quick-onboard{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,0.9fr);width:100%;margin-bottom:16px;box-sizing:border-box}
.quick-after{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:16px;width:100%;box-sizing:border-box}
.access-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,0.9fr);gap:16px;width:100%;margin:0 !important;box-sizing:border-box}

/* 个人设置全宽布局 */
.personal-settings{padding:0 !important}
.personal-settings-card{width:100% !important;max-width:none !important;box-sizing:border-box !important;margin-top:16px !important}

#assetsView .page-heading,#projectsView .page-heading{align-items:center}
#assetsView .asset-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px}
/* Operational surfaces use stronger grouping and fewer floating decorations. */
.stat-grid{grid-template-columns:repeat(4,minmax(170px,1fr));gap:14px;width:100%;margin-bottom:16px}
.stat-card,.overview-metric,.run-overview-card{min-height:116px;padding:19px 20px;border-radius:16px}
.stat-card .value,.overview-metric b{font-size:30px}
.dash-grid{display:grid;grid-template-columns:minmax(280px, 0.95fr) minmax(360px, 1.25fr) minmax(300px, 1fr);gap:16px;width:100%;margin:0 0 16px}
.dash-grid .sh-card{border-radius:16px;box-shadow:none}
.sync-panel{border-left:4px solid var(--v4-cyan);border-radius:14px;width:100%;margin:0 0 14px}
.sync-panel-head{min-height:64px}.sync-panel-title>b{font-size:14px}.sync-panel-summary{padding-block:13px}
.sync-error-detail{max-width:min(620px,60vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.issue-toolbar{padding:9px 10px;border-radius:14px;width:100%}
.status.paused{background:rgba(245,158,11,.16);color:#d97706}
html[data-theme="dark"] .status.paused{color:var(--amber)}

#agentsView .page-heading,
#agentsView .catalog-toolbar,
#agentsView .definition-card-grid{
  max-width:none;
  width:100%;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}
#agentsView .catalog-toolbar{
  padding:0;
  min-height:36px;
  margin:0 0 14px;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}

#sopsView .page-heading,
#sopsView .sop-page{max-width:none;width:100%;margin-left:0;margin-right:0}
#sopsView .sop-page{display:flex;flex-direction:column;gap:12px}
#sopsView .sop-overview,
#sopsView .sop-toolbar,
#sopsView .sop-catalog,
#sopsView .sop-stats{max-width:none;width:100%;margin:0}
#sopsView .sop-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
#sopsView .sop-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;min-height:0;background:transparent;border:0;border-radius:0;box-shadow:none}
#sopsView .sop-toolbar-filters{display:flex;gap:8px;margin-left:auto}
#sopsView .sop-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));justify-content:stretch;gap:16px}

#approvalsView .page-heading,
#approvalsView .approval-stats,
#approvalsView .approval-list{
  max-width:none;width:100%;margin-left:0;margin-right:0;box-sizing:border-box;
}
#approvalsView .approval-stats{margin-bottom:16px}
#approvalsView .approval-list{gap:14px}
#approvalsView .approval-empty{
  width:100%;padding:56px 24px;border:1px solid var(--line);border-radius:16px;
  background:var(--panel);box-shadow:0 1px 2px rgba(15,23,42,.04);
}
#approvalsView .approval-empty .empty-box{padding:0}
.issue-view-toggle{background:var(--v3-soft);border-color:var(--v3-line)}
.issue-view-toggle button.active{background:var(--v3-surface);color:var(--v3-ink)}

/* Kanban & Board Container Containment */
.issue-board,
.issue-board.kanban-mode{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}
.issue-board::-webkit-scrollbar{height:7px;width:7px}
.issue-board::-webkit-scrollbar-track{background:transparent;border-radius:999px}
.issue-board::-webkit-scrollbar-thumb{background:var(--line-strong, rgba(148,163,184,.25));border-radius:999px}
.issue-board::-webkit-scrollbar-thumb:hover{background:var(--muted, rgba(148,163,184,.5))}

.kanban-column{min-height:440px;border-radius:14px;background:var(--v3-surface);border-color:var(--v3-line);transition:border-color .15s,box-shadow .15s}
.kanban-card{background:var(--v3-soft);border-color:var(--v3-line);border-radius:12px;transition:border-color .12s,box-shadow .12s,transform .12s}
.kanban-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.08)}
.kanban-column.drop-target{border-color:color-mix(in srgb,var(--v3-accent) 45%,var(--v3-line));background:color-mix(in srgb,var(--v3-accent-soft) 70%,var(--v3-surface));box-shadow:0 0 0 2px var(--blue-soft)}
.command-results button.selected{background:var(--v3-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--v3-accent) 35%,transparent)}
.toast.toast-ok{border-color:color-mix(in srgb,var(--v3-success, #34d399) 40%,var(--v3-line));background:color-mix(in srgb,var(--v3-success, #34d399) 10%,var(--v3-surface))}
.toast.toast-err{border-color:color-mix(in srgb,var(--v3-danger) 40%,var(--v3-line));background:color-mix(in srgb,var(--v3-danger) 10%,var(--v3-surface))}
.global-progress.active::after{background:linear-gradient(90deg,transparent,var(--v3-accent),transparent)}
.issue-table,.run-list-panel,.run-detail{border-radius:15px}
.issue-table{
  width:100%;
  max-width:100%;
  min-width:max(100%,calc(var(--issue-col-key,76px) + 840px));
  box-sizing:border-box;
  overflow:visible;
  background:transparent;
  border:0;
  box-shadow:none;
  --issue-col-key:76px;
  --issue-cols:var(--issue-col-key,76px) minmax(160px,1.2fr) minmax(68px,.45fr) minmax(80px,.5fr) 60px minmax(110px,.65fr) minmax(120px,.75fr) minmax(96px,104px) 144px;
}
.issue-table-row{width:100%;box-sizing:border-box}
.issue-table-row>:last-child,.issue-table-head>:last-child{padding-right:14px;display:flex;align-items:center;justify-content:flex-start}
.issue-table-head>span:first-child{text-align:left}
.issue-key-cell{justify-content:flex-start}
.issue-key-num{text-align:left}
.issue-table-head,.issue-table-head>span{font-size:11px;letter-spacing:0;text-transform:none;font-weight:650;white-space:nowrap}
.issue-table-head{background:transparent;border:0;box-shadow:none}
.issue-table-body .issue-table-row{min-height:58px}
.issue-stage-cell,.issue-progress-cell{text-align:left}
.issue-table-body>.issue-table-row.needs-attention .issue-title-cell>b{color:var(--text)!important}
.issue-table-body>.issue-table-row.needs-attention:hover .issue-title-cell>b{color:var(--blue)!important}
.issue-table-body>.issue-table-row.needs-confirm .issue-title-cell>b{color:var(--text)!important}
.issue-table-body>.issue-table-row.needs-confirm:hover .issue-title-cell>b{color:var(--blue)!important}
.issue-title-cell .issue-title-tag.tone-danger{color:#c63c4b}
.issue-title-cell .issue-title-tag.tone-warn{color:#b45309}
.issue-title-cell .issue-title-tag.tone-accent{color:#6d28d9}
.issue-title-cell .issue-title-tag.tone-cyan{color:#0e7490}
.issue-title-cell .issue-title-tag.tone-neutral{color:var(--muted)}
html[data-theme="dark"] .issue-title-cell .issue-title-tag.tone-danger{color:#f87171}
html[data-theme="dark"] .issue-title-cell .issue-title-tag.tone-warn{color:#fbbf24}
html[data-theme="dark"] .issue-title-cell .issue-title-tag.tone-accent{color:#c4b5fd}
html[data-theme="dark"] .issue-title-cell .issue-title-tag.tone-cyan{color:#67e8f9}
.kanban-card h4{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;-webkit-line-clamp:unset;line-clamp:unset}
.kanban-card h4 .issue-title-tag{min-width:0;max-width:100%}
.kanban-card h4 b{flex:0 0 100%;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;white-space:normal;font-size:12.5px;font-weight:650}

/* Agent library now communicates runtime behavior, not only attached assets. */
.definition-card-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:16px}
.definition-card{min-height:292px;padding:20px;border-radius:16px}
.definition-card header{align-items:flex-start}.definition-avatar{width:46px;height:46px;border-radius:13px}
.definition-card>p{min-height:44px;margin:16px 0 12px;font-size:12.5px}
.agent-runtime-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:13px}
.agent-runtime-summary span{padding:7px 9px;border:1px solid var(--v3-line);border-radius:8px;background:var(--v3-soft);color:var(--v3-ink-2);font-size:10.5px}
.agent-runtime-summary span.active{border-color:color-mix(in srgb,var(--v3-accent) 32%,var(--v3-line));background:var(--v3-accent-soft);color:var(--v3-accent-ink);font-weight:700}
.definition-assets{display:flex;gap:6px}.definition-card footer{margin-top:14px}

/* Agent Studio: the core definition experience. */
.agent-studio-card{width:min(1120px,96vw);height:min(880px,94vh);display:flex;flex-direction:column;overflow:hidden}
.agent-studio-card .wizard-head{padding:24px 30px 19px}.agent-studio-card .wizard-head h2{font-size:23px}
.agent-studio-card .wizard-steps{grid-template-columns:repeat(4,1fr);height:68px;padding-inline:36px;background:var(--v3-soft)}
.agent-studio-card .wizard-steps button{font-size:12px}.agent-studio-card .wizard-steps i{width:27px;height:27px}
.agent-studio-card .wizard-body{flex:1;overflow:auto;padding:26px 30px 34px}
.agent-studio-card .wizard-actions{flex:0 0 auto;padding:14px 28px}
.agent-policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.agent-taskbook-panel{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.agent-taskbook-panel [data-tp-list]{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--v3-line);border-radius:12px;background:var(--v3-soft)}
.agent-contract-panel{display:flex;flex-direction:column;gap:8px}
.agent-gate-list{display:flex;flex-direction:column;gap:8px}
.policy-card{display:flex;flex-direction:column;gap:10px;padding:17px;border:1px solid var(--v3-line);border-radius:14px;background:var(--v3-soft)}
.policy-card h3{margin:0 0 2px;color:var(--v3-ink);font-size:14px}.policy-card>label:not(.toggle-row){display:flex;flex-direction:column;gap:5px;color:var(--v3-ink-2);font-size:11px;font-weight:650}
.policy-card textarea{min-height:86px!important;background:var(--v3-surface)!important}.policy-card p{margin:0;color:var(--v3-ink-3);font-size:10.5px;line-height:1.5}
.policy-card .toggle-row{min-height:38px;padding:8px 10px;border-radius:9px;background:var(--v3-surface);font-size:11.5px}

/* Flow builder reads as a studio rather than an admin form. */
.flow-commandbar{margin:16px 22px 12px}.flow-workbench{grid-template-columns:var(--flow-outline-w,240px) 8px minmax(360px,1fr) 8px var(--flow-props-w,360px);padding:0 22px 22px;gap:0}
.workspace-wrap,.flow-outline-panel,.properties{border-radius:15px}.canvas{background-color:var(--bg-soft)}
.prop-pane>label.toggle-row{display:flex;align-items:center;gap:8px}
.prop-pane>label.toggle-row input[type="checkbox"]{margin:0;flex:0 0 auto}
@media(max-width:960px){.flow-workbench .properties{width:min(360px,calc(100vw - 28px));min-width:0}}
html[data-theme="dark"] .canvas{background-color:var(--bg)}

.issue-act.danger{background:#c63c4b;color:#fff;border-color:transparent}
.issue-act.danger:hover{background:#9f2d3a;color:#fff}
.sync-target-box[hidden]{display:none!important}

/* === Agent Studio v2 (merged — do not rely on separate agent-studio.css) === */
/* ================= 全局响应式布局体系 (Responsive Layout System) ================= */

/* --- 1. 中大屏 / 笔记本模式 (1280px 及以下) --- */
@media (max-width: 1280px) {
  :root {
    --sidebar-w: 304px;
  }
  .app-shell {
    grid-template-columns: var(--rail-w) var(--sidebar-w) minmax(0, 1fr) !important;
  }
  body.ai-assistant-open .app-shell {
    grid-template-columns: var(--rail-w) var(--sidebar-w) minmax(0, 1fr) var(--ai-panel-w, 380px) !important;
  }
  .platform-sidebar {
    width: var(--sidebar-w) !important;
    max-width: var(--sidebar-w) !important;
    padding: 0 10px;
  }
  .page-view.active {
    padding: 24px 22px 48px;
  }
  .topbar {
    padding: 0 20px;
    gap: 10px;
  }
  .page-context span {
    display: none !important; /* 隐藏长口号「／ Agent 原生研发协作平台」，节省近 200px */
  }
  .command-trigger {
    flex-basis: 240px;
  }
  .agent-policy-grid {
    grid-template-columns: 1fr;
  }
  .flow-workbench {
    grid-template-columns: var(--flow-outline-w, 200px) 8px minmax(320px, 1fr) 8px var(--flow-props-w, 320px);
    padding-inline: 12px;
  }
}

/* --- 2. 紧凑桌面 / 分屏模式 (1140px 及以下) --- */
@media (max-width: 1140px) {
  .topbar {
    padding: 0 14px;
    gap: 8px;
  }
  #manageRepositories {
    display: none !important; /* 隐藏次级「代码仓库」按钮，保留全局项目切换下拉 */
  }
  .project-global-switch {
    min-width: 110px;
    max-width: 155px;
    font-size: 11.5px;
    padding: 0 24px 0 8px;
  }
  .ai-launch b {
    display: none !important; /* 隐藏文字，保留高质感 ✦ 图标按钮 */
  }
  .ai-launch {
    padding: 0;
    width: 38px;
    justify-content: center;
  }
  .page-heading {
    flex-wrap: wrap !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }
  .page-heading > div {
    max-width: 100% !important;
  }
  .heading-actions {
    width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  .project-context-bar {
    flex-wrap: wrap !important;
    gap: 10px !important;
  }
  .project-context-metrics {
    width: 100% !important;
    flex-wrap: wrap !important;
    height: auto !important;
  }
  .issue-toolbar {
    flex-wrap: wrap !important;
    height: auto !important;
    gap: 10px !important;
  }
  .issue-search {
    flex: 1 1 200px !important;
    min-width: 160px !important;
  }
  .catalog-toolbar {
    flex-wrap: wrap !important;
    gap: 10px !important;
    height: auto !important;
  }
  .catalog-toolbar > div:first-child {
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  .catalog-search {
    min-width: 180px !important;
    flex: 1 1 auto !important;
  }
  .definition-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  }
}

/* --- 3. 平板 / 窄窗口图标导轨模式 (960px 及以下) --- */
@media (max-width: 960px) {
  .platform-rail {
    display: none !important;
  }
  :root {
    --sidebar-w: 304px;
  }
  .app-shell {
    grid-template-columns: 72px minmax(0, 1fr) !important;
  }
  body.ai-assistant-open .app-shell {
    grid-template-columns: 72px minmax(0, 1fr) var(--ai-panel-w, 380px) !important;
  }
  .platform-sidebar {
    width: 72px !important;
    max-width: 72px !important;
    padding: 0 6px !important;
    overflow-x: hidden !important;
    align-items: center;
  }
  .brand {
    justify-content: center !important;
    padding: 14px 0 !important;
  }
  .brand-text,
  .workspace-switch div,
  .platform-sidebar nav p,
  .sidebar-bottom div,
  .platform-sidebar .nav-label,
  .platform-sidebar .nav-badge,
  .platform-sidebar .nav-group-chevron,
  .platform-sidebar .nav-submenu {
    display: none !important;
  }
  .workspace-switch {
    width: 44px !important;
    height: 44px !important;
    margin: 6px auto 12px !important;
    padding: 0 !important;
    justify-content: center !important;
    border-radius: 10px !important;
  }
  .platform-sidebar nav {
    padding: 0 0 16px !important;
    overflow-x: hidden !important;
    scrollbar-width: none !important;
  }
  .platform-sidebar nav::-webkit-scrollbar {
    display: none !important;
  }
  .platform-sidebar .nav {
    width: 44px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    margin: 4px auto !important;
    justify-content: center !important;
    border-radius: 10px !important;
    gap: 0 !important;
  }
  .platform-sidebar .nav .nav-icon {
    margin: 0 !important;
    width: 22px !important;
    height: 22px !important;
  }
  .platform-sidebar .nav.active::before {
    display: none !important;
  }
  .sidebar-bottom {
    padding: 12px 0 !important;
    justify-content: center !important;
  }
  .sidebar-bottom .health-dot {
    margin: 0 !important;
  }
  .save-state {
    display: none !important;
  }
  .command-trigger {
    flex-basis: 160px;
    min-width: 120px;
  }
  .command-trigger kbd {
    display: none !important;
  }
  .project-global-switch {
    min-width: 90px;
    max-width: 130px;
  }
  .page-view.active {
    padding: 18px 14px 40px;
  }
  .stat-grid {
    grid-template-columns: 1fr 1fr;
  }
  .agent-studio-card {
    height: 96vh;
  }
  .agent-studio-card .wizard-steps span {
    display: none;
  }
  .agent-studio-card .wizard-body {
    padding: 20px;
  }
  .definition-card-grid {
    grid-template-columns: 1fr !important;
  }
}

.modal-card.agent-studio-v2,
.agent-studio-v2 {
  width:min(980px,94vw);height:min(860px,94vh);display:flex;flex-direction:column;
  padding:0;border-radius:18px;overflow:hidden;background:var(--panel);
  box-shadow:0 20px 60px rgba(15,23,42,.16),0 0 0 1px var(--line);
}
html[data-theme="dark"] .agent-studio-v2{box-shadow:0 18px 56px rgba(0,0,0,.42),0 0 0 1px var(--line)}

.agent-studio-v2 .modal-close{top:14px;right:14px;width:32px;height:32px;border-radius:8px;background:transparent;z-index:5}

.as-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:20px 24px 12px;border-bottom:0;
  background:var(--panel);
}
.as-top h2{margin:2px 0 0;font-size:19px;letter-spacing:-.02em;line-height:1.2}
.as-top .eyebrow{margin:0}
.as-top-copy{margin:6px 0 0;color:var(--muted-2);font-size:12px;line-height:1.5;max-width:560px}
.as-top-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-right:34px}
.as-summary-row{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:0 24px 10px;border-bottom:1px solid var(--line);background:var(--panel);
}
.as-summary-bar,.as-summary-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}
.as-version{
  display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;
  background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700;
}
.as-chip{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft);color:var(--muted);font-size:11px;font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.as-chip.on{border-color:color-mix(in srgb,var(--blue) 36%,var(--line));background:var(--blue-soft);color:var(--blue)}
.as-chip-goal{max-width:min(420px,48vw);color:var(--text);background:var(--panel-2)}

.as-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0 16px;
  border-bottom:1px solid var(--line);background:var(--bg-soft);
}
.as-steps button{
  position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 8px;
  border:0;border-bottom:2px solid transparent;background:transparent;
  color:var(--muted);cursor:pointer;text-align:center;font-size:13px;font-weight:650;
  transition:color .15s,border-color .15s,background .15s;
}
.as-steps button:not(:last-child)::after{
  content:"";position:absolute;right:0;top:22%;height:56%;width:1px;background:var(--line);
}
.as-steps button:hover{color:var(--text);background:color-mix(in srgb,var(--blue-soft) 40%,transparent)}
.as-steps button.active{color:var(--blue);border-bottom-color:var(--blue);background:var(--panel)}
.as-steps button.done{color:var(--text)}
.as-step-num{
  width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;border-radius:999px;
  background:var(--panel-2);color:var(--muted-2);font-size:11px;font-weight:800;font-style:normal;
}
.as-steps button.active .as-step-num{background:var(--blue);color:#fff;box-shadow:none}
.as-steps button.done .as-step-num{background:color-mix(in srgb,var(--green) 18%,var(--panel-2));color:var(--green)}
.as-step-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.as-step-text b{font-size:12px;font-weight:700}
.as-step-text small{font-size:10px;color:var(--muted-2);font-weight:500}

.as-main{overflow:auto;padding:20px 24px 28px;background:var(--panel)}

.as-pane{display:none;animation:asFade .2s ease}
.as-pane.active{display:block}
@keyframes asFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.as-lead{margin:0 0 16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--bg-soft)}
.as-lead b{display:block;margin-bottom:4px;font-size:14px;color:var(--text)}
.as-lead p{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}

.as-stack{display:flex;flex-direction:column;gap:14px}
.as-hint{margin:0 0 14px;font-size:12.5px;line-height:1.55;color:var(--muted)}
.as-hero textarea{
  min-height:112px;font-size:14px;line-height:1.55;padding:12px 14px;border-radius:12px;
}
.as-ph-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 16px;
}
.as-ph-bar>span{font-size:11px;font-weight:650;color:var(--muted-2);margin-right:2px}
.as-ph-bar button{
  height:26px;padding:0 8px;border:1px solid var(--line);border-radius:7px;
  background:var(--panel-2);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11px;cursor:pointer;
}
.as-ph-bar button:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}

.as-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);margin-bottom:12px}
.as-card-flat{background:var(--panel)}
.as-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.as-card-head b{font-size:14px;color:var(--text)}
.as-card-head small{display:block;margin-top:2px;font-size:10.5px;color:var(--muted-2);font-weight:500}
.as-card-head em{font-style:normal;font-size:11px;color:var(--muted-2);white-space:nowrap;padding-top:2px}

.as-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.as-grid-tight{margin-top:10px}
.as-grid.wide-left{grid-template-columns:1.2fr .8fr}
.as-field{display:flex;flex-direction:column;gap:6px}
.as-field.wide{grid-column:1/-1}
.as-field>span{font-size:12px;font-weight:700;color:var(--muted)}
.as-field>span small{margin-left:6px;font-size:11px;font-weight:500;color:var(--muted-2)}
.as-field input,.as-field select,.as-field textarea{
  width:100%;border:1px solid var(--line-strong);border-radius:10px;padding:9px 11px;
  background:var(--panel);color:var(--text);font-size:12px;line-height:1.45;outline:0;
  transition:border-color .15s,box-shadow .15s;
}
.as-field textarea{min-height:76px;resize:vertical;font-family:inherit}
.as-field input:focus,.as-field select:focus,.as-field textarea:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);
}
.as-field input:read-only{opacity:.72;cursor:not-allowed;background:var(--panel-2)}

.as-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:8px}
.as-preset{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:0;padding:12px;
  border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;text-align:left;
  transition:border-color .15s,transform .15s,box-shadow .15s;
}
.as-preset:hover{border-color:color-mix(in srgb,var(--blue) 45%,var(--line));transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.as-preset.active{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 2px var(--blue-soft)}
.as-preset-icon{
  width:36px;height:36px;display:grid;place-items:center;border-radius:11px;
  background:var(--panel-2);color:var(--blue);font-size:14px;font-weight:850;
}
.as-preset.active .as-preset-icon{background:var(--blue);color:#fff}
.as-preset b{font-size:13px;color:var(--text)}
.as-preset small{font-size:11px;line-height:1.45;color:var(--muted)}

.as-fold{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;margin-bottom:10px}
.as-fold>summary{
  display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;
  font-size:12px;font-weight:700;color:var(--text);user-select:none;
}
.as-fold>summary::-webkit-details-marker{display:none}
.as-fold>summary::before{content:"›";color:var(--muted-2);font-size:18px;transition:transform .15s}
.as-fold[open]>summary::before{transform:rotate(90deg)}
.as-fold>summary em{margin-left:auto;font-style:normal;font-size:11px;font-weight:600;color:var(--muted-2);padding:3px 8px;border-radius:999px;background:var(--panel-2)}
.as-fold-body{padding:0 14px 14px;border-top:1px solid var(--line)}
.as-fold-hint{margin:0 0 8px;font-size:10.5px;color:var(--muted)}
.as-fold-muted{background:var(--bg-soft)}
.as-fold-muted>summary{font-weight:650;color:var(--muted)}

.as-list{display:flex;flex-direction:column;gap:6px}
.as-list-row{
  display:grid;grid-template-columns:24px minmax(0,1fr) 28px;gap:8px;align-items:start;
}
.as-list-idx{
  height:24px;margin-top:6px;display:grid;place-items:center;border-radius:6px;
  background:var(--panel-2);color:var(--muted-2);font-size:10px;font-weight:800;
}
.as-list-row textarea{
  min-height:44px;border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;
  background:var(--panel);color:var(--text);font-size:12px;line-height:1.5;resize:vertical;font-family:inherit;
}
.as-list-row textarea:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 3px var(--blue-soft)}
.as-list-row button{
  height:28px;margin-top:6px;border:0;background:transparent;color:var(--muted-2);
  cursor:pointer;font-size:18px;border-radius:8px;
}
.as-list-row button:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}
.as-add{
  margin-top:8px;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;
  border:1px dashed var(--line-strong);border-radius:10px;background:transparent;
  color:var(--blue);font-size:11px;font-weight:650;cursor:pointer;
}
.as-add:hover{border-color:var(--blue);background:var(--blue-soft)}

.as-section-stack{display:flex;flex-direction:column;gap:14px}
.as-section-block{display:flex;flex-direction:column;gap:8px}
.as-section-head b{display:block;font-size:13px;color:var(--text)}
.as-section-head small{display:block;margin-top:2px;font-size:10.5px;color:var(--muted-2)}

.as-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.as-toggle{
  display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel);cursor:pointer;transition:border-color .15s,background .15s;
}
.as-toggle:has(input:checked){border-color:color-mix(in srgb,var(--blue) 45%,var(--line));background:var(--blue-soft)}
.as-toggle input{margin-top:2px}
.as-toggle div b{display:block;font-size:12.5px;color:var(--text)}
.as-toggle div small{display:block;margin-top:2px;font-size:11px;color:var(--muted-2);line-height:1.4}

.as-artifact,.as-gate,.as-hook{
  padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);margin-bottom:8px;
}
.as-artifact-head,.as-gate-head,.as-hook-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.as-artifact-head input,.as-gate-head input,.as-hook-head input{
  flex:1;height:34px;border:1px solid var(--line-strong);border-radius:10px;padding:0 10px;
  background:var(--panel);font-size:12px;font-weight:650;
}
.as-artifact-head button,.as-gate-head button,.as-hook-head button{
  width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:var(--muted-2);cursor:pointer;font-size:18px;
}
.as-artifact-head button:hover,.as-gate-head button:hover,.as-hook-head button:hover{color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent)}
.as-artifact label,.as-gate label{display:block;margin:0 0 6px;font-size:11px;font-weight:700;color:var(--muted)}
.as-artifact input[type=text],.as-gate textarea{
  width:100%;border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;
  background:var(--panel);color:var(--text);font-size:12px;font-family:var(--mono,ui-monospace),monospace;
}
.as-gate textarea{min-height:60px;resize:vertical;line-height:1.5}
.as-hook-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.as-hook label{display:block;margin:0 0 6px;font-size:11px;font-weight:700;color:var(--muted)}
.as-hook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.as-hook input,.as-hook select,.as-hook textarea{width:100%;border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;background:var(--panel);color:var(--text);font-size:12px}
.as-hook textarea,.script-editor{font-family:var(--mono,ui-monospace),monospace;resize:vertical;line-height:1.5}
.as-artifact-foot{display:flex;align-items:center;gap:12px;margin-top:10px}
.as-artifact-foot select{
  height:34px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--panel);font-size:12px;
}
.as-artifact-foot label{display:flex!important;align-items:center;gap:6px;margin:0!important;font-size:12px!important;color:var(--muted)!important;font-weight:600!important}

.as-assets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.as-asset-col{display:flex;flex-direction:column;min-height:280px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);overflow:hidden}
.as-asset-col-head{padding:12px 12px 8px;border-bottom:1px solid var(--line);background:var(--panel)}
.as-asset-col-head b{display:block;font-size:13px;color:var(--text)}
.as-asset-col-head span{font-size:11px;color:var(--muted-2)}
.as-asset-search{
  margin:10px 12px 0;height:34px;display:flex;align-items:center;gap:8px;padding:0 10px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel);
}
.as-asset-search input{flex:1;border:0!important;background:transparent!important;padding:0!important;font-size:12px;box-shadow:none!important}
.as-asset-list{flex:1;overflow:auto;padding:8px 10px 12px;display:flex;flex-direction:column;gap:6px;max-height:320px}
.as-asset-item{
  display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border:1px solid var(--line);
  border-radius:11px;background:var(--panel);cursor:pointer;transition:border-color .15s,background .15s;
}
.as-asset-item:has(input:checked){border-color:color-mix(in srgb,var(--blue) 45%,var(--line));background:var(--blue-soft)}
.as-asset-item input{margin-top:3px}
.as-asset-item div b{display:block;font-size:12px;color:var(--text)}
.as-asset-item div small{display:block;margin-top:2px;font-size:10.5px;color:var(--muted-2);line-height:1.35}

.as-empty{padding:28px 16px;text-align:center;color:var(--muted-2);font-size:12.5px;border:1px dashed var(--line);border-radius:14px;background:var(--panel)}

.as-footer{
  display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--line);
  background:var(--panel);flex-shrink:0;
}
.as-footer #agentStepHint{margin-right:auto;color:var(--muted-2);font-size:12.5px}
.as-footer #agentSave.ghost{margin-left:0}

.as-placeholders{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.as-placeholders code{
  padding:3px 8px;border-radius:6px;background:var(--panel-2);border:1px solid var(--line);
  font-size:10.5px;color:var(--muted);
}

@media(max-width:1024px){
  .as-presets{grid-template-columns:repeat(2,minmax(0,1fr))}
  .as-assets{grid-template-columns:1fr}
}
@media(max-width:720px){
  .agent-studio-v2{height:96vh;border-radius:0}
  .as-top{padding-right:44px}
  .as-top-meta{justify-content:flex-start;padding-right:0}
  .as-chip-goal{display:none}
  .as-steps button .as-step-text small{display:none}
  .as-grid,.as-toggle-grid{grid-template-columns:1fr}
  .as-presets{grid-template-columns:1fr}
}

.scope-switch{
  display:inline-flex;align-items:center;gap:4px;margin:0 0 12px;padding:4px;
  border-radius:999px;background:var(--panel-2);border:1px solid var(--line);
}
.scope-switch button{
  display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;
  border:0;border-radius:999px;background:transparent;color:var(--muted);
  font-size:13px;font-weight:650;cursor:pointer;
}
.scope-switch button.on{
  background:var(--panel);color:var(--blue);
  box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px color-mix(in srgb,var(--blue) 12%,transparent);
}
.scope-switch button span{
  min-width:22px;height:20px;padding:0 7px;border-radius:999px;
  display:inline-grid;place-items:center;background:color-mix(in srgb,var(--muted-2) 16%,transparent);
  color:inherit;font-size:11px;font-weight:750;
}
.scope-switch button.on span{background:var(--blue-soft);color:var(--blue)}
.scope-share{
  height:26px;padding:0 10px;border:1px solid var(--line);border-radius:999px;
  background:var(--panel);color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;
}
.scope-share.on{border-color:color-mix(in srgb,var(--blue) 40%,var(--line));background:var(--blue-soft);color:var(--blue)}
.scope-tag{
  display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;
  background:var(--panel-2);color:var(--muted-2);font-size:10.5px;font-weight:650;
}
.as-lead-line{margin:0 0 14px;font-size:13px;line-height:1.55;color:var(--muted)}
.as-share-toggle{margin-top:4px}
.as-role-field{max-width:360px;margin:0 0 16px}
.as-task-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.as-task-card{
  padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);
}
.as-task-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.as-task-card-head b{display:block;font-size:13px;color:var(--text)}
.as-task-card-head small{display:block;margin-top:3px;font-size:11px;line-height:1.45;color:var(--muted)}
.as-task-card-head em{font-style:normal;font-size:11px;font-weight:700;color:var(--muted-2);padding-top:2px}
.as-task-more{display:flex;flex-direction:column;gap:12px;padding-top:12px}
.as-loop-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft)}
.as-file-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--panel);flex-shrink:0}
.as-ph-bar button{font-family:inherit}
@media(max-width:860px){.as-task-grid{grid-template-columns:1fr}}

/* Agents catalog — cleaner cards on list page */
#agentsView .definition-card{
  border-radius:18px;background:var(--panel);border:1px solid var(--line);
  box-shadow:none;transition:border-color .18s,transform .18s,box-shadow .18s;
}
#agentsView .definition-card:hover{
  transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 40%,var(--line));
  box-shadow:0 12px 32px color-mix(in srgb,var(--blue) 8%,transparent);
}
#agentsView .agent-runtime-summary span{
  border-radius:999px;padding:5px 10px;font-size:10.5px;
}
#agentsView .definition-avatar{border-radius:14px;font-size:12px}

/* Runs page: list and detail share one height; Worker logs stay one-line and pin to the bottom. */
.shell-main>main:has(#runsView.active){display:flex;flex-direction:column;overflow:hidden}
#runsView.page-view.active{
  flex:1 1 auto;min-height:0;height:100%;max-height:100%;width:100%;max-width:none;
  display:flex !important;flex-direction:column;overflow:hidden;
  padding:10px 32px 12px;box-sizing:border-box;
}
#runsView .runs-heading{flex:0 0 auto}
#runsView .page-heading{margin-bottom:8px;align-items:center}
#runsView .runs-heading h1{margin:0 !important}
#runsView .runs-layout{
  flex:1 1 auto;min-height:0;display:block;align-items:stretch;overflow-y:auto;overscroll-behavior:contain;
  max-width:none !important;width:100%;margin:0;box-sizing:border-box;
}
/* 运行记录列表在宽屏下全宽展示，消除多余两侧留白 */
#runsView .runs-heading,
#runsView .run-panel{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;box-sizing:border-box}
#runsView .runs-layout>*{max-width:none !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;box-sizing:border-box}
#runsView .runs-detail-section{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;align-items:stretch;position:relative;
  max-width:none !important;width:100%;box-sizing:border-box;
}
/* 返回按钮放在 topbar 行最左，与打开需求等按钮同一行同高 */
/* 返回按钮与需求等操作按钮同高，排版呼吸感增强 */
#runsView .run-detail-header{
  padding:20px 24px 18px !important;
  background:var(--v3-surface) !important;
  border-bottom:1px solid var(--v3-line) !important;
}
#runsView .run-detail-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
  flex-wrap:nowrap;
}
#runsView .run-detail-topbar .run-breadcrumb{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:650;
  color:var(--v3-ink-3);
}
#runsView .run-detail-topbar .run-breadcrumb span:first-child{
  padding:2px 8px;
  background:var(--v3-soft);
  border:1px solid var(--v3-line);
  border-radius:6px;
  color:var(--v3-ink-2);
  font-size:11px;
}
#runsView .run-detail-topbar .run-breadcrumb span:last-child{
  color:var(--v3-ink);
  font-weight:700;
}
#runsView .run-back-inline{
  flex:0 0 auto;
  order:-1;
}
#runsView .run-detail-topbar .run-header-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
#runsView .run-detail-topbar .run-header-actions .button.small,
#runsView .run-detail-topbar .run-back-inline.button.small{
  min-height:0;
  height:30px !important;
  padding:0 12px !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  border-radius:8px !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  box-sizing:border-box !important;
}
#runsView .run-detail-topbar .run-header-actions .button.small:hover,
#runsView .run-detail-topbar .run-back-inline.button.small:hover{
  transform:translateY(-1px);
}
#runsView .run-header-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}
#runsView .run-header-main h2{
  font-size:22px !important;
  font-weight:750 !important;
  letter-spacing:-0.02em;
  color:var(--v3-ink);
  line-height:1.25;
  margin:0;
}
#runsView .run-header-main p{
  margin:6px 0 0 !important;
  font-size:12px !important;
  color:var(--v3-ink-3) !important;
  line-height:1.5;
}
#runsView .run-status-wrap{
  display:flex;
  align-items:center;
  gap:10px;
}
#runsView .run-status-wrap .status{
  height:30px;
  padding:0 14px;
  font-size:12px;
  font-weight:700;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
#runsView .run-status-wrap .button[data-resume-run]{
  height:30px !important;
  padding:0 16px !important;
  font-size:12px !important;
  font-weight:700 !important;
  border-radius:8px !important;
}
#runsView .run-header-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-top:14px;
  align-items:center;
}
#runsView .run-header-meta .run-meta-chip,
#runsView .run-header-meta>.run-trigger{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:8px;
  background:var(--v3-soft);
  border:1px solid var(--v3-line);
  color:var(--v3-ink-2);
  font-size:11px;
  font-weight:550;
  line-height:1.3;
}
#runsView .run-header-meta .run-id-chip{
  padding-right:4px;
}
#runsView .run-id-copy{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  margin-left:2px;
  padding:0;
  border:0;
  border-radius:5px;
  background:transparent;
  color:var(--v3-ink-3);
  cursor:pointer;
}
#runsView .run-id-copy:hover{
  background:var(--v3-line);
  color:var(--v3-ink);
}
#runsView .worker-log-heading-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
#runsView .run-header-meta code{
  font-family:var(--mono, monospace);
  font-size:11px;
  font-weight:600;
  color:var(--v3-accent);
}

/* 执行详情选项卡栏 */
#runsView .run-section-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 24px;
  background:var(--v3-surface);
  border-top:1px solid var(--v3-line);
  border-bottom:1px solid var(--v3-line);
}
#runsView .run-section-label b{
  font-size:13.5px;
  font-weight:700;
  color:var(--v3-ink);
}
#runsView .run-section-label-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
#runsView .run-tabs{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px;
  background:var(--v3-soft);
  border:1px solid var(--v3-line);
  border-radius:9px;
}
#runsView .run-tab{
  height:28px;
  padding:0 13px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--v3-ink-3);
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  transition:all 0.15s ease;
}
#runsView .run-tab:hover{
  color:var(--v3-ink);
}
#runsView .run-tab.active{
  background:var(--v3-surface) !important;
  color:var(--v3-accent) !important;
  font-weight:700 !important;
  box-shadow:0 1px 3px rgba(15,23,42,0.08);
}
#runsView .run-tab[data-run-tab="eval"].active{
  color:#7c3aed !important;
}

/* hidden 属性必须能真正隐藏区块：用 ID 特异性覆盖上面的 display:flex/block */
#runsView .runs-layout[hidden],#runsView .runs-detail-section[hidden]{display:none}
#runsView .run-detail{
  width:100%;max-width:none;margin:0;
  height:100%;max-height:100%;min-height:0;
  display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;
}
#runsView .run-list{display:block;overflow:visible;height:auto}
#runsView .run-detail-main{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;
}
#runsView .approval-callout{
  flex-shrink:0 !important;
  flex-grow:0 !important;
  height:auto !important;
  min-height:fit-content !important;
  overflow:visible !important;
}
#runsView .run-detail .empty-properties{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}

/* 工作区、日志、轨迹、前端预览：大屏幕下弹性伸展填满剩余可视高度，杜绝底部留白 */
#runsView .run-pane[data-run-pane="workspace"]:not([hidden]),
#runsView .run-pane[data-run-pane="logs"]:not([hidden]),
#runsView .run-pane[data-run-pane="trace"]:not([hidden]),
#runsView .run-pane[data-run-pane="preview"]:not([hidden]){
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}
#runsView .run-workspace.vscode-embed{
  flex:1 1 auto;
  min-height:520px;
  height:calc(100dvh - 230px);
  max-height:none;
}
#runsView .run-preview-pane{
  flex:1 1 auto;
  min-height:520px;
  height:calc(100dvh - 230px);
  max-height:none;
  border:0;
  border-radius:0;
}
#runsView .run-pane[data-run-pane="preview"] .workspace-loading,
#runsView .run-pane[data-run-pane="preview"] .workspace-unavailable{
  flex:1 1 auto;
  min-height:520px;
}
#runsView .worker-log-section{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  display:flex;
  flex-direction:column;
}
#runsView .worker-log-feed{
  flex:1 1 auto;
  min-height:360px;
  height:calc(100dvh - 330px);
  max-height:none;
  overflow:auto;
}
#runsView .trace-section{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}
#runsView .trace-section .telemetry-feed{
  flex:1 1 auto;
  min-height:360px;
  max-height:none;
}
@media(max-width:1000px){
  .shell-main>main:has(#runsView.active){overflow:auto}
  #runsView.page-view.active{overflow:auto;height:auto;max-height:none;flex:1 1 auto}
  #runsView .runs-layout{height:auto;align-items:start}
  #runsView .run-list-panel{max-height:360px;height:auto}
  #runsView .run-detail{height:auto;max-height:none;overflow:visible}
  #runsView .run-detail-main{overflow:visible;display:block}
  #runsView .run-pane[data-run-pane="workspace"]:not([hidden]),
  #runsView .run-pane[data-run-pane="logs"]:not([hidden]),
  #runsView .run-pane[data-run-pane="trace"]:not([hidden]),
  #runsView .run-pane[data-run-pane="preview"]:not([hidden]){flex:none;display:block}
  #runsView .run-workspace.vscode-embed{flex:none;height:520px;min-height:0}
  #runsView .run-preview-pane{flex:none;height:520px;min-height:0}
  #runsView .worker-log-section{flex:none;max-height:none;min-height:0;display:block}
  #runsView .worker-log-feed{height:280px;min-height:220px;max-height:280px}
}

/* 隐藏各页面标题区左上角的 eyebrow 小标题（排查/运行记录等），不影响模态框、向导、卡片内的 eyebrow */
.page-heading .eyebrow{display:none !important}
.run-trigger{display:inline-flex;align-items:center;margin-left:5px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:9px;font-weight:700;line-height:1.2;white-space:nowrap;vertical-align:middle}
.run-trigger.scheduled{border-color:color-mix(in srgb,var(--blue) 30%,transparent);background:var(--blue-soft);color:var(--blue)}
.run-trigger.manual{background:var(--panel);color:var(--muted)}
.run-header-meta>.run-trigger{margin-left:0}

#runsView.detail-open{
  padding:10px 20px 12px !important;
  max-width:none !important;
  width:100% !important;
}
#runsView.detail-open .run-toolbar,
#runsView.detail-open .runs-heading,
#runsView.detail-open .run-overview{display:none !important}
#runsView.detail-open #runsDetailSection,
#runsView.detail-open .runs-detail-section{
  width:100% !important;
  max-width:none !important;
  align-items:stretch !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
}
#runsView.detail-open #runDetail,
#runsView.detail-open .run-detail{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
#runsView.detail-open .run-detail-main{
  width:100% !important;
  max-width:none !important;
  overflow-x:hidden !important;
}
#runsView.detail-open .run-graph{
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  box-sizing:border-box !important;
}
/* Existing work-item clarification: optional, contextual, and separate from SOP execution. */
.clarify-overview{display:flex;align-items:center;gap:11px;margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.clarify-overview>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:9px;background:var(--blue-soft);color:var(--blue);font-weight:800}
.clarify-overview>div{min-width:0;flex:1}.clarify-overview b,.clarify-overview small{display:block}.clarify-overview small{margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clarify-overview.ready{border-color:color-mix(in srgb,#34d399 35%,var(--line));background:color-mix(in srgb,#34d399 7%,var(--panel))}
.clarify-overview.ready>span{background:color-mix(in srgb,#34d399 16%,transparent);color:#16a36a}
.clarify-overview.needs-user{border-color:color-mix(in srgb,#fbbf24 55%,var(--line));background:color-mix(in srgb,#fbbf24 10%,var(--panel))}
.clarify-overview.needs-user>span{background:color-mix(in srgb,#fbbf24 22%,transparent);color:#b76e00}
.clarify-check.warn{background:color-mix(in srgb,#fbbf24 22%,transparent);color:#b76e00}
.clarify-workspace{max-width:760px;margin:0 auto;padding:4px 0 28px}.clarify-workspace.clarify-empty{text-align:center;padding:48px 28px}
.clarify-orb{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 14px;border-radius:18px;background:linear-gradient(135deg,var(--blue-soft),color-mix(in srgb,#8b5cf6 18%,transparent));color:var(--blue);font-size:25px;font-weight:800}
.clarify-empty h3{margin:0 0 7px;font-size:18px}.clarify-empty p{max-width:480px;margin:0 auto 20px;color:var(--muted);line-height:1.65}
.clarify-intro,.clarify-ready-head{display:flex;align-items:center;gap:10px;margin-bottom:13px}.clarify-intro>span,.clarify-check{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--blue);color:white;font-weight:800}
.clarify-intro>div:nth-child(2){flex:1;min-width:0}
.clarify-model-field {
  position: relative !important;
  z-index: 15 !important;
  width: 230px !important;
  min-width: 190px !important;
  max-width: 260px !important;
  min-height: 36px !important;
  height: 36px !important;
  border: 1px solid var(--v3-line-2, #e2e8f0) !important;
  border-radius: 8px !important;
  background: var(--v3-soft, #f8fafc) !important;
  box-sizing: border-box !important;
  transition: all 0.15s ease !important;
}
.clarify-model-field:hover {
  border-color: var(--v3-accent, #3859ff) !important;
  background: var(--v3-surface, #ffffff) !important;
}
.clarify-model-field .ai-model-toggle {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--v3-ink, #0f172a) !important;
  gap: 8px !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
.clarify-model-field .ai-model-toggle [data-model-label] {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  text-align: left !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.clarify-model-field .ai-model-caret {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}
.clarify-model-field .ai-model-menu {
  left: 0 !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(100% + 8px) !important;
  width: max-content !important;
  min-width: 360px !important;
  max-width: 460px !important;
  max-height: min(48vh, 320px) !important;
  z-index: 100 !important;
  background: var(--v3-surface, #ffffff) !important;
  border: 1px solid var(--v3-line, #e2e8f0) !important;
  border-radius: 10px !important;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18) !important;
  padding: 6px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}
.clarify-intro .clarify-model-field .ai-model-menu {
  left: auto !important;
  right: 0 !important;
  top: calc(100% + 6px) !important;
  bottom: auto !important;
}
/* 角色向导里的模型/思考强度选择器：复用澄清同款外观，撑满字段。
   菜单向上弹（与 AI 助手一致）：向导正文 .as-main 是 overflow:auto 的滚动容器，
   向下弹会被弹窗底部/footer 边界裁剪（见反馈截图），向上弹则落在可视区内。 */
#agentModelPicker.clarify-model-field,
#agentEffortPicker.clarify-model-field {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  display: block !important;
}
#agentModelPicker .ai-model-menu,
#agentEffortPicker .ai-model-menu {
  left: 0 !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(100% + 6px) !important;
  min-width: 100% !important;
  max-width: min(420px, 92vw) !important;
  max-height: min(42vh, 300px) !important;
}
#agentEffortPicker .ai-model-option .ai-model-name { text-align: left !important; }
.clarify-model-field .ai-model-option {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: background 0.15s ease !important;
}
.clarify-model-field .ai-model-option:hover {
  background: var(--v3-soft, rgba(0, 0, 0, 0.04)) !important;
}
.clarify-model-field .ai-model-option.is-active {
  background: color-mix(in srgb, var(--v3-accent, #3859ff) 12%, transparent) !important;
  color: var(--v3-accent, #3859ff) !important;
}
.clarify-model-field .ai-model-name {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-size: 12.5px !important;
  font-weight: 550 !important;
  color: var(--v3-ink) !important;
  margin-right: 12px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.clarify-model-field .ai-model-credits {
  flex-shrink: 0 !important;
  margin-left: auto !important;
  font-size: 11px !important;
  color: var(--v3-ink-3) !important;
  font-variant-numeric: tabular-nums !important;
  background: rgba(100, 116, 139, 0.08) !important;
  padding: 2px 7px !important;
  border-radius: 999px !important;
}
.clarify-start-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px}
.clarify-empty .clarify-start-row{margin:16px auto 0}
.clarify-empty .clarify-model-field{margin:0}
.clarify-start-row .clarify-model-field{flex:0 1 220px}
.clarify-start-row .button.primary{flex:0 0 auto;white-space:nowrap}
.clarify-intro b,.clarify-intro small,.clarify-ready-head b,.clarify-ready-head small{display:block}.clarify-intro small,.clarify-ready-head small{margin-top:2px;color:var(--muted)}
.clarify-summary{padding:15px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);white-space:pre-wrap;line-height:1.7}.clarify-summary.compact{margin-bottom:14px}
.clarify-submitted{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.clarify-submitted b{display:block;margin-bottom:6px}.clarify-submitted p{margin:0;white-space:pre-wrap;line-height:1.5}
.issue-clarify-question{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.issue-clarify-question>b{display:block;margin-bottom:10px;line-height:1.45}
.issue-clarify-options{display:flex;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}
.issue-clarify-option{padding:7px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);cursor:pointer;white-space:normal;word-break:break-word;overflow-wrap:anywhere;max-width:100%;text-align:left;line-height:1.45;height:auto;box-sizing:border-box;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .1s ease;user-select:none}
.issue-clarify-option:hover{border-color:var(--line-strong);background:var(--panel-3);color:var(--text-strong);box-shadow:0 1px 4px rgba(15,23,42,.04)}
.issue-clarify-option.selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue);font-weight:500;box-shadow:0 0 0 1px var(--blue)}
.issue-clarify-option.selected:hover{border-color:var(--blue-dim);background:rgba(91,140,255,.22);color:var(--blue)}
.issue-clarify-option:active{transform:scale(.985)}
.issue-clarify-other{width:100%;box-sizing:border-box;margin-top:9px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text)}
.issue-clarify-composer{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.issue-clarify-composer textarea{width:100%;box-sizing:border-box;resize:vertical;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.issue-clarify-composer>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.issue-clarify-composer span{color:var(--muted);font-size:11px}
/* Clarification quality: informational only, never a gate. */
.clarify-score{display:flex;gap:14px;margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.clarify-score-total{display:grid;place-content:center;flex:0 0 78px;height:78px;border-radius:12px;background:var(--panel-2);text-align:center}
.clarify-score-total b{font-size:26px;line-height:1.1}.clarify-score-total span{display:block;margin-top:2px;color:var(--muted-2);font-size:10px}
.clarify-score-total.good b{color:#16a36a}.clarify-score-total.fair b{color:#b76e00}.clarify-score-total.weak b{color:#dc5151}
.clarify-score-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:7px}
.clarify-score-body>small{color:var(--muted-2);font-size:11px}
.clarify-bar{display:flex;align-items:center;gap:8px;font-size:12px}.clarify-bar>span{flex:0 0 92px;color:var(--muted)}.clarify-bar>i{flex:1;height:6px;border-radius:999px;background:var(--panel-3);overflow:hidden}.clarify-bar>i>b{display:block;height:100%;background:var(--blue)}.clarify-bar>em{flex:0 0 28px;text-align:right;font-style:normal;font-variant-numeric:tabular-nums}
/* ==================== 智能评测与架构巡检 面板 2.0 ==================== */
.run-eval-section {
  padding: 24px 28px 40px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 22px !important;
  background: var(--v3-surface) !important;
  min-height: 520px;
  box-sizing: border-box;
}

/* 顶部 Command & Action Hero 架构卡片 */
.run-eval-hero {
  position: relative !important;
  z-index: 10 !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 22px 26px;
  border-radius: 16px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--v3-accent) 7%, var(--v3-surface)) 0%, color-mix(in srgb, #8b5cf6 6%, var(--v3-surface)) 100%);
  border: 1px solid color-mix(in srgb, var(--v3-accent) 25%, var(--v3-line));
  box-shadow: 0 4px 20px -2px rgba(91, 140, 255, 0.08);
}
.run-eval-hero-info {
  flex: 1 1 auto;
  min-width: 0;
}
.run-eval-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--v3-accent) 14%, transparent);
  color: var(--v3-accent-ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 8px;
}
.run-eval-badge svg {
  color: var(--v3-accent);
}
.run-eval-hero-info h2 {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 750;
  color: var(--v3-ink);
  letter-spacing: -0.01em;
}
.run-eval-hero-info p {
  margin: 0 0 12px;
  font-size: 12.5px;
  color: var(--v3-ink-2);
  line-height: 1.5;
  max-width: 600px;
}
.run-eval-hero-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 11.5px;
  color: var(--v3-ink-3);
  font-weight: 550;
}
.run-eval-hero-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.run-eval-hero-meta .dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--v3-accent);
}

/* Hero 右侧操作控制卡 */
.run-eval-hero-action-card {
  position: relative !important;
  z-index: 12 !important;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--v3-surface);
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--v3-line);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}
.eval-control-label {
  font-size: 11px;
  font-weight: 650;
  color: var(--v3-ink-3);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.run-eval-toolbar-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.run-eval-model {
  position: relative !important;
  z-index: 15 !important;
  width: 240px !important;
  min-width: 200px !important;
  max-width: 280px !important;
  min-height: 36px !important;
  height: 36px !important;
  border: 1px solid var(--v3-line-2) !important;
  border-radius: 8px !important;
  background: var(--v3-soft) !important;
}
.run-eval-model .ai-model-toggle {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  height: 36px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--v3-ink) !important;
  gap: 8px !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
.run-eval-model .ai-model-toggle [data-model-label] {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  text-align: left !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.run-eval-model .ai-model-caret {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}
.schedule-model-field.run-eval-model .ai-model-menu,
.run-eval-model .ai-model-menu {
  left: 0 !important;
  right: auto !important;
  top: calc(100% + 8px) !important;
  bottom: auto !important;
  width: max-content !important;
  min-width: 360px !important;
  max-width: 460px !important;
  max-height: min(48vh, 320px) !important;
  z-index: 100 !important;
  background: var(--v3-surface, #ffffff) !important;
  border: 1px solid var(--v3-line, #e2e8f0) !important;
  border-radius: 10px !important;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18) !important;
  padding: 6px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}
.run-eval-model .ai-model-option {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: background 0.15s ease !important;
}
.run-eval-model .ai-model-option:hover {
  background: var(--v3-soft, rgba(0, 0, 0, 0.04)) !important;
}
.run-eval-model .ai-model-option.is-active {
  background: color-mix(in srgb, var(--v3-accent, #3859ff) 12%, transparent) !important;
  color: var(--v3-accent, #3859ff) !important;
}
.run-eval-model .ai-model-name {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-size: 12.5px !important;
  font-weight: 550 !important;
  color: var(--v3-ink) !important;
  margin-right: 12px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.run-eval-model .ai-model-credits {
  flex-shrink: 0 !important;
  margin-left: auto !important;
  font-size: 11px !important;
  color: var(--v3-ink-3) !important;
  font-variant-numeric: tabular-nums !important;
  background: rgba(100, 116, 139, 0.08) !important;
  padding: 2px 7px !important;
  border-radius: 999px !important;
}
.run-eval-launch-btn {
  height: 36px !important;
  padding: 0 18px !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, #4f46e5, #7c3aed) !important;
  border: none !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  box-shadow: 0 2px 8px rgba(124, 58, 237, 0.3) !important;
  transition: all 0.18s ease !important;
  cursor: pointer !important;
}
.run-eval-launch-btn:hover:not(:disabled) {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.45) !important;
  filter: brightness(1.05) !important;
}
.run-eval-launch-btn:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}
.eval-control-hint {
  font-size: 10px;
  color: var(--v3-ink-3);
  text-align: right;
}

/* 评测未启动时的 6 维度全景预览看板 */
.run-eval-pre-dashboard {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 22px 24px;
  border-radius: 14px;
  border: 1px solid var(--v3-line);
  background: var(--v3-surface);
}
.eval-pre-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--v3-line);
}
.eval-pre-title {
  display: flex;
  align-items: center;
  gap: 12px;
}
.eval-pre-icon {
  font-size: 22px;
  line-height: 1;
}
.eval-pre-title h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--v3-ink);
}
.eval-pre-title p {
  margin: 3px 0 0;
  font-size: 11.5px;
  color: var(--v3-ink-3);
}
.eval-policy-tag {
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--v3-soft);
  border: 1px solid var(--v3-line);
  font-size: 11px;
  color: var(--v3-ink-2);
}
.eval-policy-tag b {
  color: var(--v3-accent);
}

.run-eval-dim-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 14px;
}
.eval-dim-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--v3-soft);
  border: 1px solid var(--v3-line);
  transition: all 0.15s ease;
}
.eval-dim-card:hover {
  border-color: color-mix(in srgb, var(--v3-accent) 40%, var(--v3-line));
  transform: translateY(-1px);
  background: var(--v3-surface);
}
.eval-dim-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.eval-dim-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--v3-ink);
}
.eval-dim-weight {
  font-size: 10px;
  font-weight: 650;
  padding: 1px 7px;
  border-radius: 4px;
  background: var(--v3-surface);
  border: 1px solid var(--v3-line);
  color: var(--v3-ink-3);
}
.eval-dim-q {
  margin: 0;
  font-size: 11.5px;
  color: var(--v3-ink-2);
  line-height: 1.5;
}
.eval-pre-footer-tip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 9px;
  background: color-mix(in srgb, #8b5cf6 8%, var(--v3-surface));
  border: 1px solid color-mix(in srgb, #8b5cf6 25%, transparent);
  font-size: 11.5px;
  color: var(--v3-ink-2);
  line-height: 1.55;
}
.eval-pre-footer-tip p {
  margin: 0;
}
.eval-pre-footer-tip b {
  color: #7c3aed;
}

/* 正在评测状态 */
.run-eval-evaluating-card {
  padding: 24px 28px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--v3-accent) 35%, var(--v3-line));
  background: var(--v3-surface);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.evaluating-pulse-head {
  display: flex;
  align-items: center;
  gap: 14px;
}
.evaluating-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 3px solid color-mix(in srgb, var(--v3-accent) 20%, transparent);
  border-top-color: var(--v3-accent);
  animation: afSpin 0.8s linear infinite;
  flex-shrink: 0;
}
@keyframes afSpin {
  to { transform: rotate(360deg); }
}
.evaluating-pulse-head h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--v3-ink);
}
.evaluating-pulse-head p {
  margin: 3px 0 0;
  font-size: 12px;
  color: var(--v3-ink-3);
}
.run-eval-thoughts {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 18px;
  border-radius: 10px;
  background: var(--v3-soft);
  border: 1px solid var(--v3-line);
  max-height: 220px;
  overflow-y: auto;
}
.thought-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--v3-ink-2);
  line-height: 1.4;
}
.thought-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--v3-accent);
  flex-shrink: 0;
}

/* 错误卡片 */
.run-eval-error-card {
  padding: 20px 24px;
  border-radius: 12px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}
.run-eval-error-card pre {
  margin: 10px 0;
  padding: 12px;
  background: #ffffff;
  border-radius: 8px;
  font-size: 12px;
  overflow: auto;
}
.error-tip {
  margin: 0;
  font-size: 11.5px;
  color: #b91c1c;
}

/* 评测结果卡片组 */
.run-eval-result-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 20px;
}
.run-eval-scorecard {
  display: flex;
  gap: 22px;
  padding: 20px 24px;
  border-radius: 14px;
  background: var(--v3-surface);
  border: 1px solid var(--v3-line);
}
.eval-score-ring-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 0 0 100px;
  height: 100px;
  border-radius: 16px;
  background: var(--v3-soft);
  border: 2px solid var(--v3-line);
  text-align: center;
}
.eval-score-ring-wrap.good {
  border-color: #10b981;
  background: color-mix(in srgb, #10b981 8%, var(--v3-surface));
}
.eval-score-ring-wrap.good .eval-score-num { color: #059669; }
.eval-score-ring-wrap.fair {
  border-color: #f59e0b;
  background: color-mix(in srgb, #f59e0b 8%, var(--v3-surface));
}
.eval-score-ring-wrap.fair .eval-score-num { color: #d97706; }
.eval-score-ring-wrap.weak {
  border-color: #ef4444;
  background: color-mix(in srgb, #ef4444 8%, var(--v3-surface));
}
.eval-score-ring-wrap.weak .eval-score-num { color: #dc2626; }

.eval-score-num {
  font-size: 36px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: -0.02em;
}
.eval-score-label {
  font-size: 11px;
  font-weight: 700;
  margin-top: 4px;
  color: var(--v3-ink-2);
}
.eval-score-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.eval-score-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 11.5px;
  color: var(--v3-ink-3);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--v3-line);
}
.eval-score-meta b {
  color: var(--v3-ink);
}
.eval-dims-bars {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.clarify-bar i b.high { background: #10b981 !important; }
.clarify-bar i b.med { background: #f59e0b !important; }
.clarify-bar i b.low { background: #ef4444 !important; }

/* AI 架构师评估总述卡片 */
.run-eval-summary-card {
  padding: 20px 24px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--v3-accent) 4%, var(--v3-surface));
  border: 1px solid color-mix(in srgb, var(--v3-accent) 22%, var(--v3-line));
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.summary-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 750;
  color: var(--v3-ink);
}
.summary-icon {
  font-size: 16px;
}
.run-eval-summary-card p {
  margin: 0;
  font-size: 12.5px;
  color: var(--v3-ink-2);
  line-height: 1.65;
}

/* 关键发现 */
.run-eval-findings-box {
  padding: 20px 24px;
  border-radius: 14px;
  background: var(--v3-surface);
  border: 1px solid var(--v3-line);
}
.findings-box-head h4 {
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 750;
  color: var(--v3-ink);
}
.findings-box-head h4 span {
  font-weight: 500;
  color: var(--v3-ink-3);
  font-size: 12px;
}
.run-eval-findings {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.finding-item {
  padding: 12px 16px;
  border-radius: 9px;
  background: var(--v3-soft);
  border: 1px solid var(--v3-line);
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.finding-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.finding-badge {
  padding: 2px 7px;
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 700;
}
.finding-badge.error {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}
.finding-badge.warn {
  background: #fffbeb;
  color: #d97706;
  border: 1px solid #fde68a;
}
.finding-badge.info {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
}
.finding-dim {
  font-size: 12.5px;
  color: var(--v3-ink);
}
.finding-msg {
  margin: 0;
  font-size: 12px;
  color: var(--v3-ink-2);
  line-height: 1.5;
}
.finding-evidence {
  font-size: 11px;
  color: var(--v3-ink-3);
}

/* 改进建议 */
.run-eval-recs-box {
  padding: 20px 24px;
  border-radius: 14px;
  background: var(--v3-surface);
  border: 1px solid var(--v3-line);
}
.recs-head h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 750;
  color: var(--v3-ink);
}
.recs-head p {
  margin: 3px 0 14px;
  font-size: 11.5px;
  color: var(--v3-ink-3);
}
.recs-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media(max-width: 960px) {
  .run-eval-hero {
    flex-direction: column;
    align-items: stretch;
  }
  .run-eval-hero-action-card {
    width: 100%;
  }
  .run-eval-result-grid {
    grid-template-columns: 1fr;
  }
}
.clarify-rate{display:flex;align-items:center;gap:10px;font-size:12px}
.clarify-rate>span{flex:0 0 86px;color:var(--muted)}
.clarify-rate>i{flex:1;height:6px;border-radius:999px;background:var(--panel-3);overflow:hidden}
.clarify-rate>i>b{display:block;height:100%;border-radius:999px;background:#34d399}
.clarify-rate>i>b.fair{background:#fbbf24}.clarify-rate>i>b.weak{background:#f87171}
.clarify-rate>em{flex:0 0 26px;text-align:right;font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.clarify-missing{margin-top:10px;padding:12px 14px;border:1px solid color-mix(in srgb,#fbbf24 35%,var(--line));border-radius:12px;background:color-mix(in srgb,#fbbf24 7%,var(--panel))}
.clarify-missing-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:#b76e00}
html[data-theme="dark"] .clarify-missing-head{color:var(--amber,#fbbf24)}
.clarify-missing-head b{font-size:12px;font-weight:650;color:var(--text)}
.clarify-missing-list{display:flex;flex-wrap:wrap;gap:8px}
.clarify-missing-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:var(--panel);border:1px solid color-mix(in srgb,#fbbf24 40%,var(--line));font-size:12px;color:var(--text);line-height:1.3}
.clarify-missing-chip i{width:6px;height:6px;border-radius:50%;background:#f59e0b;flex-shrink:0}
.clarify-history{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.clarify-history>summary{padding:11px 14px;color:var(--muted);font-size:12px;cursor:pointer;list-style:none}
.clarify-history>summary::-webkit-details-marker{display:none}
.clarify-history>summary::before{content:"▸";display:inline-block;margin-right:7px;color:var(--muted-2)}
.clarify-history[open]>summary::before{content:"▾"}
.clarify-history[open]>summary{border-bottom:1px solid var(--line)}
.clarify-turns{padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.clarify-turn{display:flex;gap:9px;font-size:12px;line-height:1.65}
.clarify-turn>span{display:grid;place-items:center;flex:0 0 20px;height:20px;margin-top:1px;border-radius:6px;font-size:10px;font-weight:700}
.clarify-turn.ai>span{background:var(--blue-soft);color:var(--blue)}
.clarify-turn.me>span{background:color-mix(in srgb,#34d399 16%,transparent);color:#16a36a}
.clarify-turn ul{margin:0;padding-left:16px;color:var(--muted)}
.clarify-turn p{margin:0;white-space:pre-wrap}
.clarify-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.clarify-error{margin-top:10px;padding:10px 12px;border-radius:9px;background:color-mix(in srgb,#f87171 11%,transparent);color:#dc5151;font-size:12px}
.clarify-next-step-callout{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 12px;padding:9px 12px;border-radius:9px;background:color-mix(in srgb,var(--amber,#fbbf24) 10%,var(--panel,#fff));border:1px solid color-mix(in srgb,var(--amber,#fbbf24) 28%,var(--line,rgba(51,65,85,.12)));font-size:12px}
.clarify-next-step-callout .clarify-step-badge{display:inline-flex;align-items:center;gap:6px;font-weight:650;color:var(--text)}
.clarify-next-step-callout .clarify-step-badge.active{color:#b45309}
html[data-theme="dark"] .clarify-next-step-callout .clarify-step-badge.active{color:var(--amber,#fbbf24)}
.clarify-next-step-callout .step-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#b45309;color:#fff;font-size:10px;font-weight:750}
html[data-theme="dark"] .clarify-next-step-callout .step-num{background:var(--amber,#fbbf24);color:#1e293b}
.clarify-next-step-callout .clarify-step-arrow{color:var(--muted-2);font-size:11px}
.clarify-action-hint{width:100%;margin-top:6px;font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}
.clarify-action-hint.ok{color:var(--green)}

/* Runner onboarding and machine inventory. */
#runnersView{
  --rv-text:var(--hui-text);--rv-muted:var(--hui-muted);--rv-muted-2:var(--hui-tertiary);--rv-line:var(--hui-border);--rv-line-soft:var(--hui-border-soft);
  --rv-fill:var(--hui-canvas);--rv-hover:var(--hui-soft);--rv-surface:var(--hui-surface);
  --rv-term:#18181b;--rv-term-text:#e4e4e7;--rv-term-dim:#71717a;--rv-accent:#c4b5fd;
  --rv-ok:var(--hui-success);--rv-ok-fill:color-mix(in srgb,var(--hui-success) 12%,transparent);--rv-warn:var(--hui-warn);--rv-warn-fill:color-mix(in srgb,var(--hui-warn) 8%,var(--hui-surface));--rv-warn-line:color-mix(in srgb,var(--hui-warn) 23%,transparent);
  --rv-btn-dark:var(--hui-accent-soft);--rv-btn-dark-text:var(--hui-accent);--rv-tip-bg:var(--hui-text);--rv-tip-text:var(--hui-surface);--rv-codex:#18181b;
}
html[data-theme="dark"] #runnersView{--rv-term:#0a0a0b;--rv-codex:#3f3f46}
#runnersView .page-heading>div>p:last-child{max-width:680px}
#runnersView .runner-onboarding{margin:0;padding:20px;border:1px solid var(--rv-line);border-radius:14px;background:var(--rv-surface);box-shadow:var(--hui-panel-shadow)}
#runnersView .runner-onboarding .panel-heading{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 14px;padding:0;border:0}
#runnersView .runner-onboarding .panel-heading h2{margin:0;color:var(--rv-text);font-size:15px;font-weight:600}
#runnersView .runner-platforms{color:var(--rv-muted-2);font-size:12px}
#runnersView .runner-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px;padding:0;list-style:none}
#runnersView .runner-steps li{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:10px;background:var(--rv-fill);list-style:none}
#runnersView .runner-steps li::marker{content:""}
#runnersView .runner-step-no{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--rv-btn-dark);color:var(--rv-btn-dark-text);font-size:12px;font-weight:600;line-height:1}
#runnersView .runner-steps b{display:block;color:var(--rv-text);font-size:13px;font-weight:500}
#runnersView .runner-steps small{display:block;color:var(--rv-muted);font-size:12px}
#runnersView .runner-command-box{display:flex;align-items:center;gap:12px;padding:6px 6px 6px 16px;border:0;border-radius:10px;background:var(--rv-term)}
#runnersView .runner-command-box pre{flex:1;min-width:0;margin:0;padding:8px 0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;word-break:normal;border:0;background:transparent;color:var(--rv-term-text);font:12.5px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;scrollbar-width:none}
#runnersView .runner-command-box pre::-webkit-scrollbar{display:none}
#runnersView .runner-command-box:hover pre{scrollbar-width:thin;scrollbar-color:#3f3f46 transparent}
#runnersView .runner-command-box pre::before{content:"$ ";color:var(--rv-term-dim);user-select:none}
#runnersView #bindToken{color:var(--rv-accent)}
#runnersView .runner-command-box .button{flex:none;justify-content:center;min-width:84px;height:28px;padding:0 10px;border:1px solid #fff;border-radius:7px;background:#fff;color:#252529;font-size:12px;font-weight:500;box-shadow:none;transition:background-color .16s,border-color .16s,color .16s}
#runnersView .runner-command-box .button:hover{background:#e4e4e7;border-color:#e4e4e7}
#runnersView .runner-command-box .button.copied{background:#dcfce7;border-color:#dcfce7;color:#166534}
#runnersView .runner-command-box .button.dark{border-color:#fff;background:#fff;color:#252529}
#runnersView .runner-command-box .button.dark:hover:not(:disabled){border-color:#e4e4e7;background:#e4e4e7;color:#252529}
#runnersView .runner-command-box .button.dark.copied,#runnersView .runner-command-box .button.dark.copied:hover:not(:disabled){border-color:#dcfce7;background:#dcfce7;color:#166534}
#runnersView .runner-command-box.compact{margin-top:8px}
#runnersView .runner-command-box.compact pre{color:#a1a1aa;font-size:12px}
#runnersView .runner-command-box.compact .button{min-width:64px;border-color:#3f3f46;background:transparent;color:#e4e4e7}
#runnersView .runner-command-box.compact .button:hover{background:#27272a}
#runnersView .runner-command-box.compact .button.copied{border-color:#166534;background:transparent;color:#86efac}
#runnersView .runner-command-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-top:10px}
#runnersView .runner-command-note{display:flex;align-items:center;gap:4px;margin:0;color:var(--rv-muted);font-size:12px}
#runnersView .runner-command-note span{color:var(--rv-ok);font-weight:700}
#runnersView .runner-uninstall{min-width:0;max-width:100%}
#runnersView .runner-uninstall[open]{flex-basis:100%}
#runnersView .runner-uninstall summary{width:max-content;margin-left:auto;list-style:none;color:var(--rv-muted);font-size:12px;cursor:pointer;transition:color .16s}
#runnersView .runner-uninstall summary:hover{color:var(--rv-text)}
#runnersView .runner-uninstall summary::-webkit-details-marker{display:none}
#runnersView .runner-uninstall summary::after{content:"›";display:inline-block;margin-left:4px;transition:transform .16s}
#runnersView .runner-uninstall[open] summary::after{transform:rotate(90deg)}
#runnersView .runner-list-heading{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:28px 0 4px}
#runnersView .runner-list-heading h2{margin:0;color:var(--rv-text);font-size:15px;font-weight:600}
#runnersView .runner-count{color:var(--rv-muted);font-size:12px;font-variant-numeric:tabular-nums}
#runnersView .runner-pool-status{display:inline-flex;align-items:center;gap:7px;margin:0 0 0 auto;padding:0;border:0;color:var(--rv-muted);font-size:12.5px}
#runnersView .runner-pool-status::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--rv-ok);box-shadow:0 0 0 3px var(--rv-ok-fill)}
#runnersView .runner-pool-status:empty{display:none}
#runnersView .runner-pool-status.warn{padding:3px 10px;border:1px solid var(--rv-warn-line);border-radius:8px;background:var(--rv-warn-fill);color:var(--rv-warn)}
#runnersView .runner-pool-status.warn::before{background:var(--rv-warn);box-shadow:none}
#runnersView .runner-cli-update-notice{margin:0 0 12px;padding:0;border:0;background:none;color:var(--rv-muted-2);font-size:12px;line-height:1.6}
#runnersView .runner-cli-update-notice b{color:var(--rv-muted);font-weight:600}
#runnersView .runner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:14px}
#runnersView .runner-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:96px;border:1px dashed var(--hui-border-strong);border-radius:14px;color:var(--rv-muted);font-size:12.5px;text-align:center}
#runnersView .runner-empty b{color:var(--rv-text);font-size:13px;font-weight:500}
#runnersView .runner-card{position:relative;min-width:0;padding:16px 18px;overflow:visible;border:1px solid var(--rv-line);border-radius:14px;background:var(--rv-surface);box-shadow:none;transition:border-color .16s}
#runnersView .runner-card.is-default{border-color:color-mix(in srgb,var(--hui-accent) 45%,var(--rv-line));box-shadow:none}
#runnersView .runner-card-head{display:flex;align-items:center;gap:10px}
#runnersView .runner-card-title{flex:1;min-width:0}
#runnersView .runner-card-name{display:flex;align-items:center;gap:6px;min-width:0}
#runnersView .runner-card-name b{overflow:hidden;color:var(--rv-text);font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
#runnersView .runner-card-title small{display:block;margin-top:1px;color:var(--rv-muted);font-size:12px}
#runnersView .runner-tag{flex:none;padding:0 6px;border-radius:5px;background:var(--rv-hover);color:var(--rv-muted);font-size:11px;font-weight:600;line-height:18px}
#runnersView .runner-tag.default{background:var(--rv-btn-dark);color:var(--rv-btn-dark-text)}
#runnersView .runner-status{flex:none;display:inline-flex;align-items:center;gap:6px;color:var(--rv-muted);font-size:12px;font-weight:600}
#runnersView .runner-status i{width:7px;height:7px;border-radius:50%;background:var(--rv-muted-2)}
#runnersView .runner-status.online{color:var(--rv-ok)}
#runnersView .runner-status.online i{background:var(--rv-ok);box-shadow:0 0 0 3px var(--rv-ok-fill)}
#runnersView .runner-runtime-list{margin-top:12px;padding:0;border-top:1px solid var(--rv-line-soft);border-radius:0;background:none}
#runnersView .runner-runtime-row{display:flex;align-items:center;gap:10px;min-height:42px;margin:0;border-top:0;border-bottom:1px solid var(--rv-line-soft);color:var(--rv-text);font-size:13px;cursor:pointer}
#runnersView .runner-runtime-row input{flex:none;margin:0;cursor:pointer}
#runnersView .runner-runtime-icon{flex:none;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:6px;background:var(--rv-muted);color:#fff;font-size:11px;font-weight:700;transition:opacity .16s}
#runnersView .runner-runtime-icon.claude-code{background:#d97757}
#runnersView .runner-runtime-icon.codex{background:var(--rv-codex)}
#runnersView .runner-runtime-icon.codebuddy{background:#4f6ef7}
#runnersView .runner-runtime-name{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;transition:opacity .16s}
#runnersView .runner-runtime-name b{font-size:13px;font-weight:600;white-space:nowrap}
#runnersView .runner-runtime-name small{min-width:min(100%,7ch);max-width:100%;margin:0;overflow:hidden;color:var(--rv-muted-2);font:11px ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}
#runnersView .runner-runtime-row.off .runner-runtime-name,#runnersView .runner-runtime-row.off .runner-runtime-icon{opacity:.45}
#runnersView .runner-auth-select{flex:none;max-width:150px;height:28px;padding:0 22px 0 8px;border:1px solid var(--rv-line);border-radius:7px;background-color:var(--rv-surface);color:var(--rv-text);font-size:12px;cursor:pointer}
#runnersView .runner-auth-select.missing{border-color:var(--rv-warn-line);color:var(--rv-warn)}
#runnersView .runner-auth-fixed{flex:none;padding:0 8px;border-radius:0;background:none;color:var(--rv-muted);font-size:12px;font-weight:400}
#runnersView .runner-auth-fixed.missing{background:none;color:var(--rv-warn)}
#runnersView .runner-runtime-empty{padding:12px 0;border-bottom:1px solid var(--rv-line-soft);color:var(--rv-muted-2);font-size:12px}
#runnersView .runner-card-action{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:0;border:0}
#runnersView .runner-card-spacer{flex:1}
#runnersView .runner-card-action .button{height:28px;padding:0 10px;border-radius:8px;font-size:12px;font-weight:500;box-shadow:none;transition:background-color .16s,color .16s,opacity .16s}
#runnersView .runner-card-action .button.dark{border:1px solid var(--rv-btn-dark);background:var(--rv-btn-dark);color:var(--rv-btn-dark-text)}
#runnersView .runner-card-action .button.dark:hover{opacity:.9}
#runnersView .runner-card-action .button:disabled{opacity:.4;cursor:not-allowed}
#runnersView .runner-card-action .runner-text-button{border:1px solid transparent;background:transparent;color:var(--rv-muted)}
#runnersView .runner-card-action .runner-text-button:hover{background:var(--rv-hover);color:var(--rv-text)}
#runnersView .runner-run-limit{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border-radius:0;background:none}
#runnersView .runner-run-limit label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0;color:var(--rv-muted);font-size:12px;font-weight:400}
#runnersView .runner-run-limit input{width:56px;height:28px;padding:0 8px;border:1px solid var(--rv-line);border-radius:7px;background:var(--rv-surface);color:var(--rv-text);font-size:12px;text-align:right;box-shadow:none}
#runnersView .runner-run-limit input::placeholder{color:var(--rv-muted-2)}
#runnersView .runner-run-limit input:focus{outline:none;border-color:var(--rv-text);box-shadow:none}
#runnersView .runner-tip{position:relative;display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid var(--rv-line);border-radius:50%;color:var(--rv-muted-2);font-size:11px;font-weight:700;line-height:1;cursor:help;outline:none;transition:color .16s,border-color .16s}
#runnersView .runner-tip:hover,#runnersView .runner-tip:focus-visible{border-color:var(--rv-muted);color:var(--rv-text)}
#runnersView .runner-tip:focus-visible{box-shadow:0 0 0 3px var(--rv-hover)}
#runnersView .runner-tip::after{content:attr(data-tip);position:absolute;left:-10px;bottom:calc(100% + 8px);z-index:5;display:none;width:min(240px,calc(100vw - 96px));padding:8px 10px;border-radius:8px;background:var(--rv-tip-bg);color:var(--rv-tip-text);font-size:12px;font-weight:400;line-height:1.5;text-align:left;white-space:normal;pointer-events:none}
#runnersView .runner-tip:hover::after,#runnersView .runner-tip:focus::after{display:block}
@media(max-width:900px){
  #runnersView .runner-steps{grid-template-columns:1fr}
  #runnersView .runner-grid{grid-template-columns:minmax(0,1fr)}
  #runnersView .runner-pool-status{flex-basis:100%;margin-left:0}
  #runnersView .runner-pool-status.warn{flex-basis:auto}
}
@media(prefers-reduced-motion:reduce){#runnersView *,#runnersView *::after{transition:none !important}}

/* 多仓库选择（复选框组）：高优先级覆盖主题的 label/input 表单样式 */
.repo-checks{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow:auto;border:1px solid var(--line,#e5e7eb);border-radius:8px;padding:6px 8px;background:var(--panel-bg,#fff)}
.repo-checks .repo-check,
#issueForm .repo-checks .repo-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;padding:4px 6px;margin:0;border:0;background:transparent;cursor:pointer;font-size:12px;line-height:1.4;color:var(--text,#1f2937);border-radius:6px}
.repo-checks .repo-check:hover{background:var(--bg-hover,#f6f7f9)}
.repo-checks .repo-check input[type=checkbox],
#issueForm .repo-checks input[type=checkbox]{margin:0;flex:none}
.repo-checks .repo-check span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.repo-picker-field{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:4px 8px;border:1px solid var(--line-strong,#d1d5db);border-radius:var(--radius-sm,9px);background:var(--bg-soft,#f8fafc)}
.repo-picker-field:focus-within{border-color:var(--blue);box-shadow:var(--glow-blue,0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent))}
.repo-picker-tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border:1px solid var(--line,#e5e7eb);border-radius:999px;background:var(--panel-2,#f3f4f6);color:var(--text,#111827);font-size:12px;font-weight:650;line-height:1.4;cursor:pointer}
.repo-picker-tag span{flex:none;opacity:.5;font-size:13px;line-height:1}
.repo-picker-tag:hover{background:var(--bg-hover,#eef2f7)}
.repo-picker-select{flex:1;min-width:128px;margin:0;border:0;background:transparent;color:var(--text,#111827);font-size:13px;outline:none;padding:4px 0}
.repo-picker-select:disabled{color:var(--muted-2,#9ca3af)}
.repository-branches{display:flex;flex-direction:column;gap:10px}
.repository-branches[hidden]{display:none}
.repository-branches .repository-branch-row{display:flex;flex-direction:column;gap:4px;margin:0;font-size:12px}
.repository-branch-row>span{color:var(--muted);overflow-wrap:anywhere}


/* ================= 流程全局设置面板 2.0 (Flow Settings Panel) ================= */
.flow-settings-panel {
  position: absolute;
  top: 88px;
  left: 18px;
  right: 18px;
  max-width: 1140px;
  margin: 0 auto;
  z-index: 60;
  display: flex !important;
  flex-direction: column;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, var(--v3-line-2) 75%, transparent) !important;
  border-radius: 16px !important;
  background: var(--v3-surface) !important;
  box-shadow: 0 24px 56px -10px rgba(15, 23, 42, 0.22), 0 4px 16px -2px rgba(15, 23, 42, 0.08) !important;
  backdrop-filter: blur(16px);
  animation: flowSettingsSlideIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
}
.flow-settings-panel[hidden] {
  display: none !important;
}

@keyframes flowSettingsSlideIn {
  from {
    opacity: 0;
    transform: translateY(-10px) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 头部 Header */
.flow-settings-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 22px;
  background: color-mix(in srgb, var(--v3-soft) 40%, var(--v3-surface));
  border-bottom: 1px solid var(--v3-line);
}
.flow-settings-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}
.flow-settings-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--v3-accent-soft);
  color: var(--v3-accent);
  flex-shrink: 0;
}
.flow-settings-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.flow-settings-title-row b {
  font-size: 14px;
  font-weight: 700;
  color: var(--v3-ink);
  letter-spacing: -0.01em;
}
.flow-settings-pill {
  font-size: 10px;
  font-weight: 650;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--v3-soft);
  border: 1px solid var(--v3-line);
  color: var(--v3-ink-2);
}
.flow-settings-subtitle {
  margin: 3px 0 0;
  font-size: 11px;
  color: var(--v3-ink-3);
  line-height: 1.4;
}
.flow-settings-head-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}
.flow-settings-status-hint {
  font-size: 11px;
  color: var(--v3-ink-3);
}
.flow-settings-close-btn {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--v3-line);
  border-radius: 8px;
  background: var(--v3-surface);
  color: var(--v3-ink-3);
  cursor: pointer;
  font-size: 12px;
  transition: all 0.15s ease;
}
.flow-settings-close-btn:hover {
  background: var(--v3-soft);
  color: var(--v3-ink);
  border-color: var(--v3-line-2);
  transform: scale(1.05);
}

/* 主体内容 Body */
.flow-settings-body {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 24px;
  padding: 20px 22px;
  background: var(--v3-surface);
}

/* 栏目区块 Section */
.flow-settings-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.flow-settings-side {
  padding-left: 22px;
  border-left: 1px solid var(--v3-line);
}
.flow-settings-sec-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
}
.flow-settings-sec-head .sec-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--v3-accent);
}
.flow-settings-sec-head .sec-dot.accent {
  background: var(--green, #10b981);
}
.flow-settings-sec-head b {
  font-size: 13px;
  font-weight: 700;
  color: var(--v3-ink);
}
.flow-settings-sec-head small {
  font-size: 11px;
  color: var(--v3-ink-3);
}

/* 表单行与字段 Field */
.flow-form-row.two-col {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 14px;
}
.flow-field-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.flow-field-wrap.highlight {
  border-radius: 8px;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--v3-accent) 30%, transparent);
}
.flow-field-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px !important;
  font-weight: 650 !important;
  color: var(--v3-ink-2) !important;
  margin: 0 !important;
}
.flow-field-label .required-badge {
  font-size: 9.5px;
  font-weight: 600;
  color: var(--v3-accent);
  background: var(--v3-accent-soft);
  padding: 1px 5px;
  border-radius: 4px;
}
.flow-field-hint {
  font-size: 10.5px;
  color: var(--v3-ink-3);
  line-height: 1.35;
}
.flow-check-row{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:12.5px;
  font-weight:650;
  color:var(--v3-ink);
  cursor:pointer;
}
.flow-check-row input{
  margin-top:2px;
  flex:0 0 auto;
}
.flow-preview-fields{
  display:flex !important;
  flex-direction:column;
  gap:10px;
  margin:-4px 0 8px;
  padding:10px 12px;
  border:1px dashed var(--v3-line-2);
  border-radius:10px;
  background:var(--v3-soft);
}
.flow-preview-fields[hidden]{
  display:none !important;
}
.node-icon.preview{
  background:color-mix(in srgb, var(--v3-accent) 18%, transparent);
  color:var(--v3-accent);
}
.flow-node.preview-build{
  border-color:color-mix(in srgb, var(--v3-accent) 45%, var(--v3-line));
}

/* 输入框与控件样式 */
.flow-settings-panel .flow-input,
.flow-settings-panel .flow-select {
  height: 38px !important;
  padding: 0 12px !important;
  border: 1px solid var(--v3-line-2) !important;
  border-radius: 9px !important;
  background: var(--v3-soft) !important;
  color: var(--v3-ink) !important;
  font-size: 12.5px !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  box-sizing: border-box;
}
.flow-settings-panel .flow-input:focus,
.flow-settings-panel .flow-select:focus {
  outline: none;
  border-color: var(--v3-accent) !important;
  background: var(--v3-surface) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--v3-accent) 18%, transparent) !important;
}
.flow-settings-panel .flow-textarea {
  height: 80px !important;
  min-height: 64px !important;
  max-height: 180px !important;
  padding: 10px 12px !important;
  border: 1px solid var(--v3-line-2) !important;
  border-radius: 9px !important;
  background: var(--v3-soft) !important;
  color: var(--v3-ink) !important;
  font-size: 12.5px !important;
  line-height: 1.55 !important;
  resize: vertical !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  box-sizing: border-box;
}
.flow-settings-panel .flow-textarea:focus {
  outline: none;
  border-color: var(--v3-accent) !important;
  background: var(--v3-surface) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--v3-accent) 18%, transparent) !important;
}

/* 提示卡片 Callout */
.flow-settings-callout {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--v3-soft) 70%, var(--v3-surface));
  border: 1px solid var(--v3-line);
  margin-top: 2px;
}
.flow-settings-callout .callout-icon {
  font-size: 14px;
  line-height: 1.2;
}
.flow-settings-callout .callout-text b {
  display: block;
  font-size: 11.5px;
  font-weight: 650;
  color: var(--v3-ink-2);
}
.flow-settings-callout .callout-text p {
  margin: 3px 0 0;
  font-size: 11px;
  color: var(--v3-ink-3);
  line-height: 1.45;
}

/* 底部操作区 Footer */
.flow-settings-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 22px;
  background: color-mix(in srgb, var(--v3-soft) 50%, var(--v3-surface));
  border-top: 1px solid var(--v3-line);
}
.flow-settings-footer-tips {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--v3-ink-3);
}
.flow-settings-footer-tips span {
  color: var(--green, #10b981);
  font-size: 8px;
}
.flow-settings-footer-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.flow-settings-footer-actions .button {
  padding: 6px 14px;
  font-size: 11.5px;
  font-weight: 600;
  border-radius: 8px;
}

/* 响应式断点 */
@media (max-width: 1024px) {
  .flow-settings-body {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .flow-settings-side {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--v3-line);
    padding-top: 14px;
  }
}

/* Sidebar groups: children line up with the parent label, a hairline sits
   under the parent icon, and the active child marks that line in blue. */
.platform-sidebar .nav-group-toggle{margin-top:2px}
.platform-sidebar .nav-group-chevron{margin-left:auto;flex-shrink:0;color:var(--muted-2);opacity:.7;transform:rotate(90deg);transition:transform .16s ease,opacity .16s ease}
.platform-sidebar .nav-group-toggle[aria-expanded="false"] .nav-group-chevron{transform:none}
.platform-sidebar .nav-group-toggle:hover .nav-group-chevron{opacity:1}
.platform-sidebar .nav-group-toggle.child-active{color:var(--text);font-weight:600}
.platform-sidebar .nav-group-toggle.child-active .nav-icon{color:var(--blue)}
.platform-sidebar .nav-submenu{position:relative;display:flex;flex-direction:column;gap:1px;margin:2px 0 6px;padding:0;border:0}
.platform-sidebar .nav-submenu::before{content:"";position:absolute;left:21.5px;top:4px;bottom:4px;width:1px;background:var(--line)}
.platform-sidebar .nav.nav-child{position:relative;min-height:32px;height:32px;padding:0 10px 0 44px;font-size:13px;font-weight:450;color:var(--muted-2);box-shadow:none}
.platform-sidebar .nav.nav-child:hover{color:var(--text)}
.platform-sidebar .nav.nav-child.active{color:var(--blue);font-weight:600;background:var(--blue-soft);box-shadow:none}
.platform-sidebar .nav.nav-child.active::before{content:"";display:block;position:absolute;left:20.5px;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--blue)}


.asset-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 24px;text-align:center}
.asset-empty b{font-size:15px;color:var(--text)}
.asset-empty p{max-width:520px;margin:0 0 8px;color:var(--muted-2);font-size:13px;line-height:1.7}

.agent-contract-preview>div{grid-template-columns:max-content 1fr;gap:12px;align-items:baseline}
.agent-contract-preview dt{white-space:nowrap;min-width:5.5em}

/* Chinese eyebrows: readable size, no wide tracking */
.eyebrow{font-size:11px!important;letter-spacing:.04em!important}
.credential-eyebrow{font-size:11px;letter-spacing:.04em}
.asset-field-hint{margin:5px 2px 0;font-size:12px;color:var(--muted-2)}
/* 运行记录标题旁的并发规则提示（悬停 / 键盘聚焦展开） */
#runsView .runs-heading h1{display:inline-flex;align-items:center;gap:6px}
.info-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;cursor:help;outline:none}
.info-tip>i{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1.5px solid var(--muted-2);color:var(--muted-2);font-size:10px;font-style:normal;font-weight:800;line-height:1;transition:color .15s,border-color .15s}
.info-tip:hover>i,.info-tip:focus-visible>i{color:var(--blue);border-color:var(--blue)}
.info-tip:focus-visible>i{box-shadow:0 0 0 3px var(--blue-soft)}
.info-tip-panel{position:absolute;top:calc(100% + 8px);left:-12px;z-index:60;width:340px;max-width:calc(100vw - 48px);display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:10px;border:1px solid var(--line-strong);background:var(--panel);color:var(--text);box-shadow:0 12px 32px rgba(15,23,42,.18);font-size:12px;font-weight:400;line-height:1.6;letter-spacing:0;white-space:normal;text-align:left;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none}
.info-tip-panel b{font-size:12px;font-weight:700;color:var(--text-strong)}
.info-tip-panel strong{font-weight:700;color:var(--blue)}
.info-tip-panel>span{color:var(--muted)}
.info-tip:hover .info-tip-panel,.info-tip:focus .info-tip-panel,.info-tip:focus-within .info-tip-panel{opacity:1;visibility:visible;transform:none}

/* ==========================================================================
   角色定义页（#agentsView）与角色弹窗（#agentModal）：harness-ui 风格。
   只在这两个作用域内生效：.as-* 与流程设计器属性面板共用，.scope-switch 与其他页共用，
   全局令牌和共用类的原规则都不在这里改。
   ========================================================================== */
#agentsView,#agentModal{
  --hu-accent:var(--hui-accent);--hu-accent-hover:var(--hui-accent-hover);--hu-accent-soft:var(--hui-accent-soft);--hu-accent-2:var(--hui-accent);
  --hu-text:var(--hui-text);--hu-text-2:var(--hui-secondary);--hu-muted:var(--hui-muted);--hu-txt3:var(--hui-muted);--hu-faint:var(--hui-tertiary);
  --hu-overlay:var(--hui-border-strong);--hu-border:var(--hui-border);--hu-border-strong:var(--hui-border-strong);--hu-line-strong:var(--hui-border-strong);
  --hu-hover:var(--hui-soft);--hu-surface:var(--hui-surface);--hu-canvas:var(--hui-canvas);--hu-warn:var(--hui-warn);--hu-danger:var(--hui-error);
  --hu-r:6px;--hu-r-lg:8px;--hu-r-xl:12px;--hu-dur:160ms;--hu-ease:cubic-bezier(.16,1,.3,1);
  --hu-shadow:var(--hui-popover-shadow);
}
#agentModal [hidden],#agentsView [hidden]{display:none!important}

/* --- Tab：复刻 grasp StudioTabStrip --- */
#agentsView .agent-tabs,#agentModal .agent-tabs{
  position:relative;display:flex;align-items:stretch;gap:2px;min-width:max-content;
  margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
#agentsView .agent-tab,#agentModal .agent-tab{
  position:relative;display:inline-flex;align-items:center;gap:6px;height:40px;min-height:40px;padding:0 10px;margin:0;
  border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--hu-txt3);
  font:inherit;font-size:13px;font-weight:400;line-height:1;white-space:nowrap;cursor:pointer;outline:0;
  transform:none;transition:color var(--hu-dur);
  -webkit-tap-highlight-color:transparent;
}
#agentsView .agent-tab:hover,#agentModal .agent-tab:hover{color:var(--hu-text-2);background:transparent}
#agentsView .agent-tab::after,#agentModal .agent-tab::after{
  content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;border-radius:2px;
  background:transparent;transition:background-color var(--hu-dur);pointer-events:none;
}
#agentsView .agent-tab:not(.on):not([disabled]):hover::after,#agentModal .agent-tab:not(.on):not([disabled]):hover::after{background:var(--hu-line-strong)}
#agentsView .agent-tab.on,#agentModal .agent-tab.on{color:var(--hu-text);font-weight:500;background:transparent;box-shadow:none}
#agentsView .agent-tab:focus,#agentModal .agent-tab:focus{outline:0;box-shadow:none}
#agentsView .agent-tab:focus-visible,#agentModal .agent-tab:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--hu-accent-soft);border-radius:var(--hu-r)}
#agentsView .agent-tab[disabled],#agentModal .agent-tab[disabled]{cursor:default;color:var(--hu-faint)}
#agentsView .agent-tab-count,#agentModal .agent-tab-count{
  display:inline-block;min-width:18px;height:18px;padding:0 6px;margin:0;border:0;border-radius:999px;box-sizing:border-box;
  background:var(--hu-overlay);color:var(--hu-txt3);font-size:11px;font-weight:500;line-height:18px;text-align:center;
  font-variant-numeric:tabular-nums;transition:background-color var(--hu-dur),color var(--hu-dur);
}
#agentsView .agent-tab:hover .agent-tab-count,#agentModal .agent-tab:hover .agent-tab-count{color:var(--hu-text-2)}
#agentsView .agent-tab.on .agent-tab-count,#agentModal .agent-tab.on .agent-tab-count{background:var(--hu-accent-soft);color:var(--hu-accent-2)}
#agentModal .agent-tab-num{
  width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;flex:none;
  background:var(--hu-overlay);color:var(--hu-txt3);font-size:11px;font-weight:500;font-style:normal;
  transition:background-color var(--hu-dur),color var(--hu-dur);
}
#agentModal .agent-tab.on .agent-tab-num,#agentModal .agent-tab.done .agent-tab-num{background:var(--hu-accent-soft);color:var(--hu-accent-2)}
#agentsView .agent-tab-ind,#agentModal .agent-tab-ind{
  position:absolute;left:0;bottom:0;height:2px;width:0;border-radius:2px;background:var(--hu-accent);pointer-events:none;opacity:0;
  transition:transform var(--hu-dur) var(--hu-ease),width var(--hu-dur) var(--hu-ease),opacity var(--hu-dur);
}
@media (prefers-reduced-motion:reduce){#agentsView .agent-tab-ind,#agentModal .agent-tab-ind{transition:none}}

/* --- 通用控件：按钮 / 输入框 / 勾选 --- */
#agentsView .button,#agentModal .button{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;min-height:32px;padding:0 12px;
  border:1px solid var(--hu-border);border-radius:var(--hu-r);background:var(--hu-surface);color:var(--hu-text);
  font-size:13px;font-weight:500;line-height:1;white-space:nowrap;box-shadow:none;transform:none;
  transition:background-color var(--hu-dur),border-color var(--hu-dur),color var(--hu-dur);
}
#agentsView .button:hover,#agentModal .button:hover{background:var(--hu-hover);border-color:var(--hu-border-strong);box-shadow:none;transform:none}
#agentsView .button.text,#agentModal .button.text{border-color:transparent;background:transparent;color:var(--hu-muted)}
#agentsView .button.text:hover,#agentModal .button.text:hover{background:var(--hu-hover);color:var(--hu-text)}
#agentsView .button.small,#agentModal .button.small{height:28px;min-height:28px;padding:0 10px;font-size:12px}
#agentsView .button:focus-visible,#agentModal .button:focus-visible{outline:0;box-shadow:0 0 0 3px var(--hu-accent-soft)}
#agentsView .button:disabled,#agentModal .button:disabled{opacity:.5;cursor:not-allowed}
#agentModal .as-field input,#agentModal .as-field select,#agentModal .as-field textarea,
#agentModal .as-list-row textarea,#agentModal .as-artifact input[type=text],#agentModal .as-gate textarea,
#agentModal .as-artifact-head input,#agentModal .as-gate-head input,#agentModal .as-hook-head input,
#agentModal .as-hook input:not([type=checkbox]),#agentModal .as-hook select,#agentModal .as-hook textarea,#agentModal .as-artifact-foot select,
#agentModal .gate-script-trigger-wrap select,#agentModal .as-gate select{
  border:1px solid var(--hu-border);border-radius:var(--hu-r);background:var(--hu-surface);color:var(--hu-text);
  font-size:13px;box-shadow:none;outline:0;transition:border-color var(--hu-dur),box-shadow var(--hu-dur);
}
#agentModal .as-field input,#agentModal .as-field select,#agentModal .as-artifact-foot select,#agentModal .as-hook select,#agentModal .as-hook input:not([type=checkbox]),#agentModal .as-gate select{min-height:36px}
#agentModal .as-field input:focus,#agentModal .as-field select:focus,#agentModal .as-field textarea:focus,
#agentModal .as-list-row textarea:focus,#agentModal .as-artifact input:focus,#agentModal .as-gate textarea:focus,
#agentModal .as-artifact-head input:focus,#agentModal .as-gate-head input:focus,#agentModal .as-hook-head input:focus,
#agentModal .as-hook input:focus,#agentModal .as-hook select:focus,#agentModal .as-hook textarea:focus,#agentModal .as-artifact-foot select:focus,
#agentModal .as-gate select:focus{border-color:var(--hu-accent);box-shadow:0 0 0 3px var(--hu-accent-soft)}
#agentModal .as-field input:read-only{opacity:1;background:var(--hu-canvas);color:var(--hu-muted)}
#agentModal .as-hero textarea{border-radius:var(--hu-r-lg);font-size:14px}
#agentModal .as-field select{height:36px;padding:0 10px}
#agentModal .ai-model-toggle{
  min-height:36px;font-size:13px!important;font-weight:400!important;border:1px solid var(--hu-border)!important;border-radius:var(--hu-r)!important;
  background:var(--hu-surface)!important;color:var(--hu-text)!important;box-shadow:none!important;
}
#agentModal .ai-model-toggle:hover{border-color:var(--hu-border-strong)!important}
#agentModal .ai-model-toggle[aria-expanded="true"],#agentModal .ai-model-toggle:focus-visible{border-color:var(--hu-accent)!important;box-shadow:0 0 0 3px var(--hu-accent-soft)!important;outline:0}
#agentModal .agent-link,#agentsView .agent-link{
  display:inline;padding:0;margin:0;border:0;background:none;color:var(--hu-accent);font:inherit;font-size:12px;cursor:pointer;border-radius:4px;
}
#agentModal .agent-link:hover{color:var(--hu-accent-hover);text-decoration:underline}
#agentModal .agent-link:focus-visible{outline:0;box-shadow:0 0 0 3px var(--hu-accent-soft)}

/* --- 角色定义页：标题、工具栏、搜索 --- */
#agentsView .page-heading{align-items:flex-end;margin-bottom:16px}
#agentsView .page-heading h1{margin:0 0 4px}
#agentsView .agent-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin:0 0 4px;padding:0;
  border:0;border-bottom:1px solid var(--hu-border);background:transparent;box-shadow:none;box-sizing:border-box;
}
#agentsView .agent-toolbar .agent-tabs{margin-bottom:-1px}
#agentsView .agent-search{
  display:flex;align-items:center;gap:6px;width:260px;max-width:40vw;height:32px;min-height:32px;padding:0 10px;margin:0 0 4px;
  border:1px solid var(--hu-border);border-radius:var(--hu-r);background:var(--hu-surface);color:var(--hu-faint);
  box-shadow:none;box-sizing:border-box;transition:border-color var(--hu-dur),box-shadow var(--hu-dur);
}
#agentsView .agent-search>span{color:var(--hu-faint);font-size:14px;line-height:1}
#agentsView .agent-search input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--hu-text);font-size:13px;box-shadow:none}
#agentsView .agent-search:focus-within{border-color:var(--hu-accent);box-shadow:0 0 0 3px var(--hu-accent-soft)}

/* --- 角色定义页：单行列表 --- */
#agentsView .agent-list-table{display:block;width:100%;margin:4px 0 0}
#agentsView .agent-row{
  display:grid;grid-template-columns:minmax(0,1fr) 180px 220px 76px 32px;align-items:center;gap:16px;
  height:72px;padding:0 14px;border-radius:var(--hu-r);color:var(--hu-text);font-size:14px;cursor:pointer;outline:0;
  transition:background-color var(--hu-dur);
}
#agentsView .agent-row>*{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#agentsView .agent-row-head{height:34px;cursor:default;color:var(--hu-faint);font-size:12px}
#agentsView .agent-row-head>.agent-col-uses{text-align:right}
#agentsView .agent-row:not(.agent-row-head):hover,#agentsView .agent-row.menu-open{background:var(--hu-hover)}
#agentsView .agent-row:focus-visible{box-shadow:inset 0 0 0 2px var(--hu-accent-soft)}
#agentsView .agent-row+.agent-row:not(.agent-row-head){box-shadow:0 -1px 0 var(--hu-border)}
#agentsView .agent-row:not(.agent-row-head):hover,#agentsView .agent-row:hover+.agent-row,#agentsView .agent-row.menu-open,#agentsView .agent-row.menu-open+.agent-row{box-shadow:none}
#agentsView .agent-row-who{display:flex;align-items:center}
#agentsView .agent-row-who>div{flex:1;min-width:0;overflow:hidden;line-height:20px}
#agentsView .agent-row-who b{font-weight:500;line-height:20px;color:var(--hu-text)}
#agentsView .agent-row-who small{display:block;margin-top:6px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hu-muted);font-size:12px}
#agentsView .agent-row-tag{margin-left:6px;color:var(--hu-muted);font-size:12px;font-weight:400;line-height:1}
#agentsView .agent-row-tag.shared{color:var(--hu-accent)}
#agentsView .agent-row-model{color:var(--hu-text);font-size:13px}
#agentsView .agent-row-model.none{color:var(--hu-faint)}
#agentsView .agent-row-config{color:var(--hu-muted);font-size:13px}
#agentsView .agent-row-config .loop{color:var(--hu-accent)}
#agentsView .agent-row-config .empty{color:var(--hu-faint)}
#agentsView .agent-row-uses{color:var(--hu-muted);font-size:13px;text-align:right}
#agentsView .agent-row-uses.zero{color:var(--hu-faint)}
#agentsView .agent-row-more{display:flex;justify-content:flex-end;overflow:visible}
#agentsView .agent-more-btn{
  width:28px;height:28px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:var(--hu-r);
  background:transparent;color:var(--hu-faint);cursor:pointer;opacity:0;outline:0;
  transition:opacity var(--hu-dur),background-color var(--hu-dur),color var(--hu-dur);
}
#agentsView .agent-row:hover .agent-more-btn,#agentsView .agent-more-btn[aria-expanded="true"],#agentsView .agent-more-btn:focus-visible{opacity:1}
#agentsView .agent-more-btn:hover,#agentsView .agent-more-btn[aria-expanded="true"]{background:var(--hu-overlay);color:var(--hu-text)}
#agentsView .agent-more-btn:focus-visible{box-shadow:0 0 0 3px var(--hu-accent-soft)}
#agentsView .agent-list-table .catalog-empty{margin-top:12px;padding:56px 0;border:0;background:transparent;box-shadow:none;text-align:center;color:var(--hu-muted)}
#agentsView .agent-row-menu{
  position:fixed;z-index:1200;min-width:168px;max-width:240px;padding:4px;box-sizing:border-box;
  border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-surface);box-shadow:var(--hu-shadow);
}
#agentsView .agent-row-menu button{
  display:flex;align-items:center;width:100%;height:32px;padding:0 10px;border:0;border-radius:var(--hu-r);
  background:transparent;color:var(--hu-text);font:inherit;font-size:13px;text-align:left;cursor:pointer;outline:0;
}
#agentsView .agent-row-menu button:hover,#agentsView .agent-row-menu button:focus-visible{background:var(--hu-hover)}
#agentsView .agent-row-menu button.danger{color:var(--hu-danger)}
#agentsView .agent-row-menu button[disabled]{color:var(--hu-faint);background:none;cursor:not-allowed}
#agentsView .agent-row-menu hr{margin:4px 0;border:0;border-top:1px solid var(--hu-border)}
#agentsView .agent-row-menu small{display:block;padding:2px 10px 6px;color:var(--hu-faint);font-size:12px;line-height:1.45;white-space:normal}
@media (max-width:960px){
  #agentsView .agent-row{grid-template-columns:minmax(0,1fr) 150px 32px}
  #agentsView .agent-row>.agent-col-config,#agentsView .agent-row>.agent-col-uses{display:none}
  #agentsView .agent-search{width:180px}
}

/* --- 角色弹窗：外框、标题、导航、底栏 --- */
#agentModal .modal-card.agent-studio-v2{
  width:min(max(72vw,880px),1320px,94vw);height:min(max(84vh,640px),1000px,92vh);border:1px solid var(--hu-border);border-radius:var(--hu-r-xl);
  background:var(--hu-surface);color:var(--hu-text);box-shadow:var(--hu-shadow);
}
#agentModal .modal-card.agent-studio-v2[data-agent-mode="create"]{width:min(820px,94vw);height:min(640px,92vh)}
#agentModal .agent-studio-v2[data-agent-mode="create"] .agent-edit-only,
#agentModal .agent-studio-v2[data-agent-mode="edit"] .agent-create-only{display:none!important}
#agentModal .agent-studio-v2 .modal-close{top:14px;right:14px;width:28px;height:28px;border-radius:var(--hu-r);color:var(--hu-faint);background:transparent}
#agentModal .agent-studio-v2 .modal-close:hover{background:var(--hu-hover);color:var(--hu-text)}
#agentModal .as-top{padding:18px 56px 6px 20px;background:var(--hu-surface)}
#agentModal .as-top h2{margin:0;font-size:17px;font-weight:500;letter-spacing:-.01em;color:var(--hu-text)}
#agentModal .as-top-copy{margin:2px 0 0;color:var(--hu-muted);font-size:12px}
#agentModal .agent-edit-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px;color:var(--hu-muted);font-size:12px}
#agentModal .agent-edit-meta code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--hu-muted);background:none;padding:0}
#agentModal .agent-edit-meta .as-version{height:auto;padding:0;border:0;border-radius:0;background:none;color:var(--hu-muted);font-size:12px;font-weight:400}
#agentModal .as-summary-row{gap:6px;padding:6px 20px 8px;border:0;background:var(--hu-surface)}
#agentModal .as-chip{height:22px;padding:0 8px;border:0;border-radius:999px;background:var(--hu-overlay);color:var(--hu-txt3);font-size:12px;font-weight:500}
#agentModal .as-chip.on{background:var(--hu-accent-soft);color:var(--hu-accent-2)}
#agentModal .agent-modal-nav{position:relative;z-index:1;padding:0 10px;border-bottom:1px solid var(--hu-border);background:var(--hu-surface)}
#agentModal .agent-modal-nav .agent-tabs{margin-bottom:-1px}
#agentModal .as-main{flex:1 1 auto;min-height:0;padding:20px;background:var(--hu-surface)}
#agentModal .as-pane.active{animation:agentPaneIn .25s var(--hu-ease)}
@keyframes agentPaneIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#agentModal .as-pane.active{animation:none}}
#agentModal .as-footer{gap:8px;padding:12px 20px;border-top:1px solid var(--hu-border);background:var(--hu-surface)}
#agentModal .as-footer #agentStepHint{margin-right:auto;color:var(--hu-faint);font-size:12px}

/* --- 新建：起点、标识、确认 --- */
#agentModal .agent-start-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:0}
#agentModal .as-preset{gap:2px;padding:12px;border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-surface);box-shadow:none;transform:none;outline:0;transition:border-color var(--hu-dur),background-color var(--hu-dur)}
#agentModal .as-preset:hover{border-color:var(--hu-border-strong);background:var(--hu-hover);box-shadow:none;transform:none}
#agentModal .as-preset.active{border-color:var(--hu-accent);background:var(--hu-accent-soft);box-shadow:none}
#agentModal .as-preset:focus-visible{box-shadow:0 0 0 3px var(--hu-accent-soft)}
#agentModal .as-preset-icon,#agentModal .as-preset.active .as-preset-icon{width:28px;height:28px;margin-bottom:6px;border-radius:var(--hu-r);background:var(--hu-accent-soft);color:var(--hu-accent);font-size:11px;font-weight:500}
#agentModal .as-preset.active .as-preset-icon{background:var(--hu-surface)}
#agentModal .as-preset b{font-size:14px;font-weight:500;color:var(--hu-text)}
#agentModal .as-preset small{font-size:12px;color:var(--hu-muted)}
#agentModal .agent-id-line{margin:-6px 0 0;color:var(--hu-faint);font-size:12px}
#agentModal .agent-id-line code{margin:0 8px 0 4px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--hu-muted);background:none;padding:0}
#agentModal .agent-field-error{color:var(--hu-danger);font-size:12px;font-weight:400}
#agentModal .agent-runtime-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
#agentModal .agent-review{margin:0;border:1px solid var(--hu-border);border-radius:var(--hu-r-lg)}
#agentModal .agent-review>div{display:flex;gap:12px;padding:10px 14px;font-size:13px}
#agentModal .agent-review>div+div{border-top:1px solid var(--hu-border)}
#agentModal .agent-review dt{flex:none;width:96px;color:var(--hu-muted)}
#agentModal .agent-review dd{flex:1;min-width:0;margin:0;color:var(--hu-text);overflow-wrap:anywhere}
#agentModal .agent-review-tip{margin:12px 0 0;color:var(--hu-faint);font-size:12px}

/* --- 弹窗内面板：只改视觉 --- */
#agentModal .as-lead-line{margin:0 0 14px;color:var(--hu-muted);font-size:13px}
#agentModal .as-field{gap:6px}
#agentModal .as-field>span{color:var(--hu-text-2);font-size:13px;font-weight:500}
#agentModal .as-field>span small{color:var(--hu-faint);font-size:12px;font-weight:400}
#agentModal .as-section-head b,#agentModal .as-task-card-head b,#agentModal .as-asset-col-head b{color:var(--hu-text);font-size:13px;font-weight:500}
#agentModal .as-section-head small,#agentModal .as-task-card-head small,#agentModal .as-asset-col-head span{color:var(--hu-faint);font-size:12px}
#agentModal .as-task-card,#agentModal .as-loop-card{padding:14px;border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-surface)}
#agentModal .as-task-card-head em{color:var(--hu-faint);font-weight:500}
#agentModal .as-artifact,#agentModal .as-gate,#agentModal .as-hook{padding:12px;border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-canvas)}
#agentModal .as-artifact label,#agentModal .as-gate label,#agentModal .as-hook label{color:var(--hu-muted);font-size:12px;font-weight:500}
#agentModal .as-artifact-head button,#agentModal .as-gate-head button,#agentModal .as-hook-head button,#agentModal .as-list-row button{width:28px;height:28px;border-radius:var(--hu-r);color:var(--hu-faint)}
#agentModal .as-file-icon{width:28px;height:28px;border-radius:var(--hu-r);background:var(--hu-surface);border:1px solid var(--hu-border)}
#agentModal .as-list-idx{border-radius:var(--hu-r);background:var(--hu-overlay);color:var(--hu-txt3);font-weight:500}
#agentModal .as-toggle{border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-surface);transition:border-color var(--hu-dur),background-color var(--hu-dur)}
#agentModal .as-toggle:hover{border-color:var(--hu-border-strong)}
#agentModal .as-toggle:has(input:checked){border-color:var(--hu-accent);background:var(--hu-accent-soft)}
#agentModal .as-toggle div b{color:var(--hu-text);font-size:13px;font-weight:500}
#agentModal .as-toggle div small{color:var(--hu-muted);font-size:12px}
#agentModal .as-asset-col{border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-canvas)}
#agentModal .as-asset-col-head{border-bottom:1px solid var(--hu-border);background:var(--hu-surface)}
#agentModal .as-asset-search{height:32px;border:1px solid var(--hu-border);border-radius:var(--hu-r);background:var(--hu-surface);color:var(--hu-faint);transition:border-color var(--hu-dur),box-shadow var(--hu-dur)}
#agentModal .as-asset-search:focus-within{border-color:var(--hu-accent);box-shadow:0 0 0 3px var(--hu-accent-soft)}
#agentModal .as-asset-search input{outline:0;color:var(--hu-text)}
#agentModal .as-asset-item{border:1px solid var(--hu-border);border-radius:var(--hu-r);background:var(--hu-surface)}
#agentModal .as-asset-item:has(input:checked){border-color:var(--hu-accent);background:var(--hu-accent-soft)}
#agentModal .as-asset-item div b{color:var(--hu-text);font-weight:500}
#agentModal .as-asset-item div small{color:var(--hu-muted);font-size:11px}
#agentModal .as-add{height:32px;margin-top:8px;padding:0 12px;border:1px dashed var(--hu-border-strong);border-radius:var(--hu-r);background:transparent;color:var(--hu-accent);font-size:12px;font-weight:500}
#agentModal .as-add:hover{border-color:var(--hu-accent);background:var(--hu-accent-soft)}
#agentModal .as-ph-bar>span{color:var(--hu-faint);font-size:12px;font-weight:400}
#agentModal .as-ph-bar button{height:26px;border:1px solid var(--hu-border);border-radius:var(--hu-r);background:var(--hu-surface);color:var(--hu-muted);font-size:12px}
#agentModal .as-ph-bar button:hover{border-color:var(--hu-accent);background:var(--hu-accent-soft);color:var(--hu-accent-2)}
#agentModal .as-fold{border:1px solid var(--hu-border);border-radius:var(--hu-r-lg);background:var(--hu-surface)}
#agentModal .as-fold-muted{background:var(--hu-canvas)}
#agentModal .as-fold>summary{color:var(--hu-text-2);font-weight:500}
#agentModal .as-fold>summary em{background:var(--hu-overlay);color:var(--hu-txt3);font-weight:500}
#agentModal .as-fold-body{border-top:1px solid var(--hu-border)}
#agentModal .as-empty{border:1px dashed var(--hu-border-strong);border-radius:var(--hu-r-lg);background:var(--hu-canvas);color:var(--hu-faint);font-size:13px}
#agentModal .as-hook-section{border-top:1px solid var(--hu-border)}
#agentModal .script-editor-launch-btn{border-radius:var(--hu-r)}

/* --- 身份：名称行、运行方式、共享开关 --- */
#agentModal .as-name-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px}
#agentModal .agent-studio-v2[data-agent-mode="create"] .as-name-row{grid-template-columns:minmax(0,1fr)}
#agentModal .as-mono{font:13px ui-monospace,SFMono-Regular,Menlo,monospace}
#agentModal .as-count-wrap{position:relative;display:block}
#agentModal .as-count-wrap input{width:100%;padding-right:64px;box-sizing:border-box}
#agentModal .as-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--hu-faint);font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none}
#agentModal .as-section-label{padding-top:14px;border-top:1px solid var(--hu-border);color:var(--hu-muted);font-size:12px;font-weight:500}
#agentModal .agent-runtime-grid .ai-model-toggle{width:100%;height:36px;gap:8px;padding:0 10px!important;font-weight:400!important}
#agentModal .as-stack .as-field input:not([type=checkbox]){height:36px;box-sizing:border-box}
#agentModal .agent-runtime-grid .ai-model-icon[hidden]{display:none}
#agentModal .agent-runtime-grid .ai-model-caret{
  width:14px;height:14px;margin-left:auto;border:0;background:var(--hu-faint);transition:transform .2s var(--hu-ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/14px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/14px no-repeat;
}
#agentModal .agent-runtime-grid .ai-model-toggle[aria-expanded="true"] .ai-model-caret{transform:rotate(180deg)}
#agentModal .as-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0;cursor:pointer}
#agentModal .as-switch-row>input{flex:none}
#agentModal .as-stack>.as-switch-row{padding:14px 0 0;border-top:1px solid var(--hu-border)}
#agentModal .as-toggle-grid{gap:4px 24px}
#agentModal .as-switch-row b{display:block;color:var(--hu-text);font-size:13px;font-weight:500}
#agentModal .as-switch-row small{display:block;margin-top:2px;color:var(--hu-faint);font-size:12px}
#agentModal .agent-tab-count[hidden]{display:none}

/* --- 任务：prompt 编辑框与变量工具条 --- */
/* 弹窗高度固定，任务页的输入框撑满正文剩余高度 */
#agentModal .as-pane.active[data-agent-pane="task"]{display:flex;flex-direction:column;height:100%}
#agentModal #agentTaskBookPanel{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}
#agentModal .as-prompt-box{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;border:1px solid var(--hu-border-strong);border-radius:var(--hu-r-lg);background:var(--hu-surface);overflow:hidden;transition:border-color var(--hu-dur),box-shadow var(--hu-dur)}
#agentModal .as-prompt-box:focus-within{border-color:var(--hu-accent);box-shadow:0 0 0 3px var(--hu-accent-soft)}
#agentModal .as-prompt-box .as-ph-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:6px 8px;border-bottom:1px solid var(--hu-border);background:var(--hu-canvas)}
#agentModal .as-prompt-box textarea{display:block;flex:1 1 auto;width:100%;min-height:200px;box-sizing:border-box;padding:12px 14px;border:0;border-radius:0;background:transparent;color:var(--hu-text);font-family:inherit;font-size:14px;line-height:1.7;resize:none;box-shadow:none;outline:0}
#agentModal .as-prompt-box textarea::placeholder{color:var(--hu-faint)}
#agentModal .as-prompt-note{margin:8px 2px 0;color:var(--hu-faint);font-size:12px}
@media (max-width:720px){
  #agentModal .modal-card.agent-studio-v2,#agentModal .modal-card.agent-studio-v2[data-agent-mode="create"]{width:100vw;height:96vh;border-radius:0}
  #agentModal .agent-runtime-grid,#agentModal .as-name-row{grid-template-columns:1fr}
}

/* 运行记录列表：一体化面板（Harness UI 中性灰，颜色只表达真实状态）。详情态规则见上方 detail-open。 */
#runsView{
  --rl-surface:var(--hui-surface);--rl-text:var(--hui-text);--rl-muted:var(--hui-muted);--rl-muted-2:var(--hui-tertiary);--rl-line:var(--hui-border);--rl-line-soft:var(--hui-border-soft);
  --rl-neutral-fill:var(--hui-canvas);--rl-focus:var(--hui-accent);
  --rl-info:var(--hui-info);--rl-ok:var(--hui-success);--rl-err:var(--hui-error);--rl-warn:var(--hui-warn);
  --rl-hover:color-mix(in srgb,var(--rl-text) 3%,var(--rl-surface));
  --rl-selected:color-mix(in srgb,var(--rl-text) 6%,var(--rl-surface));
  --rl-track:color-mix(in srgb,var(--rl-text) 5%,var(--rl-surface));
}
#runsView .runs-heading{display:flex;align-items:center !important;justify-content:flex-start;flex-wrap:wrap;gap:14px !important;margin:0 0 16px}
#runsView .runs-heading h1{display:inline-flex;align-items:center;gap:6px;margin:0 !important;color:var(--rl-text);font-size:22px !important;font-weight:600;line-height:30px;letter-spacing:-.01em}
#runsView .run-hint-icon{display:inline-grid;place-items:center;width:18px;height:18px;color:var(--rl-muted-2);transition:color .18s}
#runsView .info-tip:hover .run-hint-icon,#runsView .info-tip:focus-visible .run-hint-icon{color:var(--rl-text)}
#runsView .info-tip:focus-visible{border-radius:50%;outline:2px solid color-mix(in srgb,var(--rl-focus) 60%,transparent);outline-offset:2px}
#runsView .run-live{display:inline-flex;align-items:center;gap:6px;color:var(--rl-muted);font-size:12px;line-height:18px}
#runsView .run-lamp{display:inline-grid;place-items:center;flex:none;width:13px;height:13px;color:var(--rl-muted-2)}
#runsView .run-lamp i{display:block;width:5px;height:5px;border-radius:50%;background:currentColor}
#runsView .run-live.active .run-lamp{color:var(--rl-ok)}
#runsView .run-live.active .run-lamp i{animation:runLampBreathe 1.6s ease-in-out infinite}
@keyframes runLampBreathe{50%{opacity:.45;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent)}}
#runsView .run-kpis{display:flex;align-items:baseline;gap:20px;margin-left:auto;color:var(--rl-muted);font-size:12px;white-space:nowrap}
#runsView .run-kpi b{margin:0 4px 0 6px;color:var(--rl-text);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
#runsView .run-kpi small{color:var(--rl-muted-2);font-size:12px}
#runsView .run-kpi[title]{cursor:help}
#runsView .run-icon-btn{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:1px solid var(--rl-line);border-radius:8px;background:var(--rl-surface);color:var(--rl-muted);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
#runsView .run-icon-btn:hover{background:var(--rl-hover);color:var(--rl-text);border-color:color-mix(in srgb,var(--rl-text) 18%,var(--rl-line))}
#runsView [data-run-icon]{line-height:0}

#runsView .run-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#runsView .run-panel[hidden],#runsView.detail-open .run-panel{display:none !important}
#runsView .run-panel-head{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--rl-line)}
#runsView .run-filters.sliding-tabs[data-sliding-tabs]{--sliding-surface:var(--rl-surface);--sliding-text:var(--rl-text);--sliding-muted:var(--rl-muted);flex:0 1 auto;height:34px !important;min-height:34px !important;padding:3px !important;border-radius:9px !important;background:var(--rl-track) !important}
#runsView .run-filters.sliding-tabs[data-sliding-tabs]>[data-sliding-indicator]{border-radius:6px;box-shadow:0 1px 3px #18181b0f,0 2px 5px #18181b06}
#runsView .run-filters.sliding-tabs[data-sliding-tabs]>[data-sliding-tab]{flex:0 0 auto;height:28px !important;min-height:28px !important;padding:0 10px !important;gap:5px !important;border-radius:6px !important;font-size:13px !important;line-height:28px !important}
#runsView .run-filters .sliding-tab-count{color:inherit;font-size:12px;font-weight:400;opacity:.6;font-variant-numeric:tabular-nums}
#runsView .run-filters .is-warn .sliding-tab-count{color:var(--rl-warn);font-weight:500;opacity:1}
#runsView .run-filters .is-danger .sliding-tab-count{color:var(--rl-err);font-weight:500;opacity:1}
#runsView .run-filters .is-zero .sliding-tab-count{opacity:.3}
#runsView .run-tools{display:flex;align-items:center;gap:8px;margin-left:auto}
#runsView .run-search{box-sizing:border-box;display:flex;align-items:center;gap:7px;width:220px;height:34px;padding:0 10px;border:1px solid var(--rl-line);border-radius:8px;background:var(--rl-surface);color:var(--rl-muted);transition:border-color .16s}
#runsView .run-search:hover{border-color:color-mix(in srgb,var(--rl-text) 24%,var(--rl-line))}
#runsView .run-search:focus-within{border-color:var(--rl-focus)}
#runsView .run-search input{flex:1;min-width:0;height:100%;margin:0;padding:0;border:0;outline:0;border-radius:0;background:transparent;box-shadow:none;color:var(--rl-text);font:inherit;font-size:13px}
#runsView .run-search input::placeholder{color:var(--rl-muted-2)}
#runsView .run-select{position:relative;display:flex;align-items:center}
#runsView .run-select select{box-sizing:border-box;width:170px;height:34px;margin:0;padding:0 30px 0 10px;border:1px solid var(--rl-line);border-radius:8px;background:var(--rl-surface);background-image:none;box-shadow:none;color:var(--rl-text);font:inherit;font-size:13px;text-overflow:ellipsis;cursor:pointer;appearance:none;-webkit-appearance:none;transition:border-color .16s}
#runsView .run-select select:hover{border-color:color-mix(in srgb,var(--rl-text) 24%,var(--rl-line))}
#runsView .run-select select:focus-visible{outline:2px solid color-mix(in srgb,var(--rl-focus) 60%,transparent);outline-offset:2px}
#runsView .run-select>[data-run-icon]{position:absolute;right:10px;color:var(--rl-muted);pointer-events:none}

#runsView .runs-layout{flex:1 1 auto}
#runsView .runs-layout:has(>.run-list>.run-list-empty){display:flex;flex-direction:column}
#runsView .run-list:has(>.run-list-empty){flex:1 1 auto;display:flex;flex-direction:column}
#runsView .run-row{box-sizing:border-box;display:grid;grid-template-columns:28px minmax(0,1fr) 104px 148px 64px 64px;gap:16px;align-items:center;width:100%;min-height:72px;margin:0;padding:14px 16px;border:0;border-radius:0;background:transparent;box-shadow:inset 0 -1px 0 var(--rl-line-soft);color:var(--rl-text);text-align:left;cursor:pointer;transition:background-color .18s}
#runsView .run-row:hover,#runsView .run-row:focus-within{background:var(--rl-hover)}
#runsView .run-row:focus-visible{outline:2px solid color-mix(in srgb,var(--rl-focus) 60%,transparent);outline-offset:-2px}
#runsView .run-glyph{box-sizing:border-box;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--rl-line-soft);border-radius:8px;background:var(--rl-neutral-fill);color:var(--rl-muted);transition:color .18s}
#runsView .run-row:hover .run-glyph{color:var(--rl-text)}
#runsView .run-row-main{min-width:0}
#runsView .run-row-title{display:block;overflow:hidden;color:var(--rl-text);font-size:14px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap}
#runsView .run-row-meta{display:flex;align-items:center;gap:6px;margin-top:6px;overflow:hidden;color:var(--rl-muted);font-size:12px;line-height:18px;white-space:nowrap}
#runsView .run-row-meta>*{flex:0 0 auto}
#runsView .run-row-meta>.run-meta-sop,#runsView .run-row-meta>.run-chip{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
#runsView .run-ref{color:var(--rl-muted-2);font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace);font-size:11.5px}
#runsView .run-sep{color:var(--rl-muted-2)}
#runsView .run-chip{display:inline-block;height:18px;padding:0 6px;border-radius:5px;background:var(--rl-track);color:var(--rl-muted);font-size:11px;line-height:18px;white-space:nowrap}
#runsView .run-row-progress{display:flex;align-items:center;gap:8px;color:var(--rl-muted);font-size:12px;font-variant-numeric:tabular-nums}
#runsView .run-row-progress.is-empty{color:var(--rl-muted-2)}
#runsView .run-progress-text{flex:0 0 30px}
#runsView .run-row .run-progress{flex:1;height:3px;margin:0;border-radius:2px;background:var(--rl-track);overflow:hidden}
#runsView .run-row .run-progress i{display:block;height:100%;border-radius:2px;background:color-mix(in srgb,var(--rl-text) 40%,transparent)}
#runsView .run-row .run-progress.tone-info i{background:var(--rl-info)}
#runsView .run-row .run-progress.tone-ok i{background:var(--rl-ok)}
#runsView .run-row .run-progress.tone-err i{background:var(--rl-err)}
#runsView .run-row .run-progress.tone-warn i{background:var(--rl-warn)}
#runsView .run-row-time{color:var(--rl-muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
#runsView .run-row-actions{display:flex;justify-content:flex-end;gap:2px;opacity:0;transition:opacity .16s}
#runsView .run-row:hover .run-row-actions,#runsView .run-row:focus-within .run-row-actions{opacity:1}
#runsView .run-row-action{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--rl-muted);cursor:pointer;transition:background-color .18s,color .18s}
#runsView .run-row-action:hover{background:var(--rl-selected);color:var(--rl-text)}
#runsView .run-row-action.run-del-btn:hover{background:color-mix(in srgb,var(--rl-err) 8%,var(--rl-surface));color:var(--rl-err)}
#runsView .run-row-action:focus-visible{outline:2px solid color-mix(in srgb,var(--rl-focus) 60%,transparent);outline-offset:-1px}
#runsView .run-list-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:56px 16px;color:var(--rl-muted);font-size:13px;text-align:center}
#runsView .run-list-empty .run-glyph{width:36px;height:36px;margin:0 auto 10px;font-size:inherit}
#runsView .run-list-empty b{display:block;margin:0 0 2px;color:var(--rl-text);font-size:14px;font-weight:500}
#runsView .run-list-empty p{margin:0;font-size:13px}
#runsView .run-panel-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 14px;color:var(--rl-muted);font-size:12px}
#runsView .run-panel-foot .pager{display:flex;margin:0;padding:0;border:0;background:transparent}
#runsView .run-panel-foot .pager-meta{display:none}
#runsView .run-panel-foot .pager-nav{gap:2px}
#runsView .run-panel-foot :is(.pager-btn,.pager-page){min-width:28px;height:28px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--rl-muted);font:400 12px/28px inherit;cursor:pointer;transition:background-color .18s,color .18s}
#runsView .run-panel-foot :is(.pager-btn,.pager-page):hover:not(:disabled){background:var(--rl-hover);color:var(--rl-text)}
#runsView .run-panel-foot .pager-page.active{background:var(--rl-selected);color:var(--rl-text);font-weight:500}
#runsView .run-panel-foot .pager-ellipsis{color:var(--rl-muted-2)}
@media(max-width:1180px){
  #runsView .run-tools{width:100%;margin-left:0}
  #runsView .run-search{flex:1;width:auto}
}
@media(max-width:860px){
  #runsView .run-kpis{order:3;width:100%;margin-left:0}
  #runsView #refreshRuns{margin-left:auto}
  #runsView .run-row{grid-template-columns:28px minmax(0,1fr) auto}
  #runsView .run-row-progress,#runsView .run-row-time,#runsView .run-row-actions{display:none}
}
@media(prefers-reduced-motion:reduce){
  #runsView .run-lamp i{animation:none !important}
  #runsView :is(.run-row,.run-glyph,.run-row-actions,.run-row-action,.run-icon-btn,.run-search,.run-select select,.run-hint-icon){transition:none !important}
}

/* 列表页：数据少或为空时主列表卡片与空状态填满视图剩余高度；内容超出一屏时视图自然撑高，仍由 main 滚动。 */
:is(#issuesView,#approvalsView,#sopsView,#agentsView,#assetsView,#botsView,#runnersView,#guideView).page-view.active{display:flex;flex-direction:column}
#approvalsView .approval-list:has(>.approval-empty){flex:1 1 auto}
#approvalsView .approval-list>.approval-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center}
#sopsView .sop-page:has(>#sopCatalog>.empty-properties){flex:1 1 auto}
#sopsView #sopCatalog:has(>.empty-properties){flex:1 1 auto;display:flex;flex-direction:column}
#sopsView #sopCatalog>.empty-properties{flex:1 1 auto;grid-column:1/-1;justify-content:center}
#agentsView #agentList:has(>.catalog-empty){flex:1 1 auto;display:flex;flex-direction:column}
#agentsView #agentList>.catalog-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center}
#botsView #botsContent{flex:1 1 auto}
#botsView #botsContent>.bot-panel{flex:1 1 auto}
#botsView #botsContent>.bot-panel:has(>.bot-guide:only-child){display:flex;flex-direction:column;justify-content:center}
#guideView #accessBody{flex:1 1 auto;display:flex;flex-direction:column}
#guideView #accessBody>:is(.quick-wrap:has(>.access-tokens:only-child),.access-tokens,.access-grid){flex:1 1 auto}
#guideView #accessBody>.quick-wrap:has(>.access-tokens:only-child),
#guideView #accessBody .access-tokens:has(>.token-empty){display:flex;flex-direction:column}
#guideView #accessBody>.quick-wrap>.access-tokens{flex:1 1 auto}
#guideView #accessBody .token-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center}
#projectsView .project-admin-layout{align-items:stretch}
#projectsView .project-admin-layout>aside{position:static}
#projectsView .project-admin-layout>aside>.project-admin-caption{position:sticky;top:26px;z-index:1;box-sizing:border-box;height:34px;background:inherit}
#projectsView .project-admin-layout>aside>.project-admin-list{position:sticky;top:60px}
@media(max-width:1100px){#projectsView .project-admin-layout>aside>:is(.project-admin-caption,.project-admin-list){position:static}}
/* The profile card owns the theme switcher on desktop; the node stays because assistant.js inserts its button before it. */
@media(min-width:1001px){.topbar #themeToggle{display:none!important}}
