/* 中文注释：控制台使用低饱和深色背景，重点数据通过蓝紫色状态强调，长时间观察任务时减少视觉疲劳。 */
:root {
  --bg: #080b12;
  --sidebar: #0c1019;
  --panel: rgba(18, 23, 35, 0.94);
  --panel-soft: #101522;
  --border: #252c3c;
  --border-bright: #35405a;
  --text: #f4f7ff;
  --muted: #8993a8;
  --blue: #5b8cff;
  --violet: #996dff;
  --green: #31d49b;
  --orange: #ffae57;
  --red: #ff647c;
  --shadow: 0 22px 70px rgba(0, 0, 0, 0.28);
  font-family: Inter, "Segoe UI", "Microsoft YaHei", system-ui, sans-serif;
  color: var(--text);
  background: var(--bg);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body {
  background:
    radial-gradient(circle at 72% 0%, rgba(78, 91, 190, 0.13), transparent 34rem),
    radial-gradient(circle at 20% 85%, rgba(70, 194, 160, 0.06), transparent 30rem),
    var(--bg);
}
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 28px; }
.auth-card {
  width: min(440px, 100%);
  padding: 42px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(23, 29, 45, 0.98), rgba(12, 16, 26, 0.98));
  box-shadow: var(--shadow);
}
.brand-mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: white;
  font-weight: 800;
  letter-spacing: -0.05em;
  background: linear-gradient(135deg, var(--blue), var(--violet));
  box-shadow: 0 12px 32px rgba(91, 140, 255, 0.28);
}
.brand-mark.small { width: 40px; height: 40px; border-radius: 12px; font-size: 13px; }
.auth-card h1 { margin: 12px 0 10px; font-size: 30px; letter-spacing: -0.04em; }
.eyebrow { margin: 22px 0 0; color: #7183a8; font-size: 11px; font-weight: 700; letter-spacing: 0.15em; }
.muted, .section-intro p { color: var(--muted); line-height: 1.7; }
.auth-hint { display: flex; align-items: center; gap: 9px; margin-top: 24px; color: var(--muted); font-size: 12px; }
.form-error { min-height: 20px; margin: 10px 0 0; color: var(--red); font-size: 13px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 236px minmax(0, 1fr); }
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 24px 16px;
  border-right: 1px solid #1d2330;
  background: rgba(10, 13, 21, 0.93);
  backdrop-filter: blur(20px);
}
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 26px; }
.sidebar-brand strong, .sidebar-brand span { display: block; }
.sidebar-brand strong { font-size: 15px; }
.sidebar-brand span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.navigation { display: grid; gap: 6px; }
.nav-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 13px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #929db2;
  background: transparent;
  text-align: left;
  transition: 150ms ease;
}
.nav-item span { width: 19px; color: #68758e; text-align: center; }
.nav-item:hover { color: white; background: #151a27; }
.nav-item.active { color: white; border-color: #2e3850; background: linear-gradient(100deg, rgba(91, 140, 255, 0.18), rgba(153, 109, 255, 0.08)); }
.nav-item.active span { color: #83a5ff; }
.sidebar-footer { margin-top: auto; padding: 18px 8px 0; border-top: 1px solid #1e2431; }
.connection-state { display: flex; align-items: center; gap: 10px; }
.connection-state strong, .connection-state span { display: block; }
.connection-state strong { font-size: 12px; }
.connection-state div span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.status-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(49, 212, 155, 0.1); }
.sidebar-footer .text-button { margin-top: 16px; }

.workspace { min-width: 0; padding: 0 34px 50px; }
.topbar {
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid rgba(41, 49, 66, 0.72);
}
.topbar .eyebrow { margin: 0 0 8px; }
.topbar h2 { margin: 0; font-size: 22px; letter-spacing: -0.03em; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.live-pill, .count-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: #b5bfd1;
  background: #111622;
  font-size: 12px;
}

.page-section { display: none; padding-top: 28px; }
.page-section.active { display: block; animation: fade-in 180ms ease; }
@keyframes fade-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.metric-card {
  position: relative;
  overflow: hidden;
  min-height: 132px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(23, 29, 43, 0.96), rgba(13, 17, 27, 0.96));
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.15);
}
.metric-card::after { content: ""; position: absolute; right: -28px; bottom: -50px; width: 110px; height: 110px; border-radius: 50%; background: var(--accent); opacity: 0.1; filter: blur(8px); }
.metric-card span, .metric-card strong, .metric-card small { display: block; position: relative; z-index: 1; }
.metric-card span { color: #929db0; font-size: 12px; }
.metric-card strong { margin: 14px 0 6px; font-size: 30px; letter-spacing: -0.05em; }
.metric-card small { color: #6f7a8f; }
.accent-blue { --accent: var(--blue); border-top-color: rgba(91, 140, 255, 0.72); }
.accent-violet { --accent: var(--violet); border-top-color: rgba(153, 109, 255, 0.72); }
.accent-green { --accent: var(--green); border-top-color: rgba(49, 212, 155, 0.72); }
.accent-orange { --accent: var(--orange); border-top-color: rgba(255, 174, 87, 0.72); }

.content-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 16px; margin-top: 16px; align-items: start; }
.dashboard-content-grid { grid-template-columns: minmax(0, 1fr); }
.dashboard-recent-panel { grid-column: 1 / -1; }
.dashboard-alerts { display: grid; gap: 10px; margin-bottom: 16px; }
.dashboard-alerts[hidden] { display: none; }
.dashboard-alert { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 14px 16px; border: 1px solid rgba(245, 158, 11, 0.38); border-radius: 10px; background: linear-gradient(135deg, rgba(120, 53, 15, 0.28), rgba(42, 31, 17, 0.72)); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.16); }
.dashboard-alert-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #f59e0b; color: #1f1605; font-size: 17px; font-weight: 800; }
.dashboard-alert-content { min-width: 0; display: grid; gap: 4px; }
.dashboard-alert-content strong { color: #f8d58b; font-size: 13px; }
.dashboard-alert-content span { color: #d8c6a5; font-size: 11px; overflow-wrap: anywhere; }
.dashboard-alert-content small { color: #9d8d73; font-size: 10px; }
.panel { min-width: 0; border: 1px solid var(--border); border-radius: 16px; background: var(--panel); box-shadow: 0 14px 44px rgba(0, 0, 0, 0.12); }
.panel.span-two { grid-column: span 1; }
.panel-heading { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.panel-heading .eyebrow { margin: 0 0 5px; }
.panel h3, .section-intro h3 { margin: 0; font-size: 16px; }
.panel-subtitle { margin: 6px 0 0; color: #68758d; font-size: 11px; line-height: 1.5; }
.sticky-panel { position: sticky; top: 20px; }
.section-intro { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 4px 0 22px; }
.section-intro .eyebrow { margin: 0 0 8px; }
.section-intro h3 { font-size: 24px; }
.section-intro p { max-width: 680px; margin: 8px 0 0; font-size: 13px; }

/* 中文注释：测试页改为单列生成工作台；任务历史留在独立任务页，当前页面把全部宽度用于提示词和批量参考媒体。 */
.test-page-section { padding-top: 18px; }
.test-workspace { width: min(1180px, 100%); margin: 0 auto; }
.test-composer-panel { overflow: visible; background: linear-gradient(145deg, rgba(18, 23, 35, 0.98), rgba(11, 15, 24, 0.98)); }
.test-task-form { display: grid; gap: 18px; padding: 20px; }
.test-reference-section { display: grid; gap: 10px; }
.test-section-title { min-height: 25px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.test-section-title > div { display: flex; align-items: center; gap: 9px; }
.test-section-title h3, .test-section-title label { margin: 0; color: #dfe7f5; font-size: 13px; font-weight: 700; }
.test-section-title small { color: #66758d; font-size: 10px; }
.test-step { display: inline-flex; align-items: center; min-height: 21px; padding: 0 7px; border: 1px solid rgba(91, 140, 255, 0.24); border-radius: 6px; color: #83a5ff; background: rgba(91, 140, 255, 0.09); font-size: 9px; font-weight: 800; letter-spacing: 0.08em; }
.compact-reference-tray { min-height: 94px; display: grid; grid-template-columns: repeat(auto-fill, 72px); gap: 8px; align-content: start; padding: 10px; border: 1px solid #293247; border-radius: 13px; background: rgba(8, 12, 20, 0.66); }
/* 中文注释：display: contents 让每个缩略图直接进入父级方格，上传按钮会自然排在最后一个媒体后面。 */
.selected-resource-chips { display: contents; }
.selected-resource-chip { position: relative; overflow: hidden; width: 72px; height: 72px; border: 1px solid rgba(91, 140, 255, 0.3); border-radius: 10px; background: #0a0f19; }
.selected-resource-preview { position: absolute; inset: 0; display: grid; place-items: center; background: #0a0f19; }
.selected-resource-preview img, .selected-resource-preview video { width: 100%; height: 100%; object-fit: cover; }
.resource-kind-glyph { position: absolute; display: grid; place-items: center; inset: 0; color: #bfd0ff; background: rgba(6, 10, 18, 0.3); font-size: 15px; }
.selected-resource-tag { position: absolute; right: 4px; bottom: 4px; left: 4px; overflow: hidden; padding: 3px 4px; border-radius: 5px; color: #dce7ff; background: rgba(5, 9, 16, 0.76); font-size: 8px; font-weight: 750; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.selected-resource-chip button { position: absolute; top: 4px; right: 4px; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; color: #c2cbda; background: rgba(5, 9, 16, 0.78); cursor: pointer; }
.selected-resource-chip button:hover { color: #ffffff; background: rgba(255, 100, 124, 0.45); }
.resource-upload-dropzone { width: 72px; height: 72px; display: grid; place-items: center; align-content: center; gap: 4px; border: 1px dashed #3a4b69; border-radius: 10px; color: #98a8c0; background: linear-gradient(145deg, rgba(25, 37, 60, 0.62), rgba(11, 17, 28, 0.62)); text-align: center; cursor: pointer; transition: 160ms ease; }
.resource-upload-dropzone:hover, .resource-upload-dropzone.dragging { border-color: #668fee; background: rgba(48, 76, 133, 0.2); transform: translateY(-1px); }
.resource-upload-dropzone.uploading { opacity: 0.62; pointer-events: none; }
.resource-upload-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; color: #c6d5ff; background: rgba(91, 140, 255, 0.16); font-size: 18px; }
.resource-upload-dropzone strong { color: #aebddb; font-size: 9px; }
.resource-upload-status { min-height: 15px; color: #68778f; font-size: 9px; line-height: 1.5; }

.prompt-mention-field { position: relative; display: grid; gap: 8px; }
.prompt-mention-field textarea { min-height: 168px; padding: 16px 18px 54px; border-color: #303a4d; border-radius: 15px; font-size: 14px; line-height: 1.7; resize: vertical; background: rgba(9, 13, 21, 0.78); }
.prompt-mention-field textarea:focus { border-color: rgba(91, 140, 255, 0.72); box-shadow: 0 0 0 3px rgba(91, 140, 255, 0.08); }
.mention-trigger { position: absolute; right: 12px; bottom: 12px; min-height: 30px; padding: 0 10px; border: 1px solid rgba(91, 140, 255, 0.3); border-radius: 8px; color: #a9c0f6; background: rgba(17, 25, 41, 0.94); cursor: pointer; }
.mention-trigger:hover { border-color: #668fee; color: #ffffff; }
.resource-mention-menu { position: absolute; z-index: 15; right: 12px; bottom: 48px; overflow: auto; width: min(340px, calc(100% - 24px)); max-height: 320px; padding: 7px; border: 1px solid #34415c; border-radius: 12px; background: #101725; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.42); }
.resource-mention-menu button { width: 100%; min-height: 50px; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 6px 8px; border: 0; border-radius: 8px; color: #dce6f7; background: transparent; text-align: left; cursor: pointer; }
.resource-mention-menu button:hover { background: rgba(91, 140, 255, 0.12); }
.resource-mention-menu button span { color: #8fb0ff; font-size: 10px; }
.resource-mention-menu button strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.resource-mention-menu button small { color: #65748e; font-size: 10px; }
.resource-mention-menu .resource-mention-add { margin-bottom: 5px; border-bottom: 1px solid rgba(52, 65, 92, 0.7); border-radius: 8px 8px 3px 3px; }
.resource-mention-menu .resource-mention-add > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: rgba(91, 140, 255, 0.12); font-size: 18px; }
.resource-mention-thumb { position: relative; overflow: hidden; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 8px; background: #0a0f19; }
.resource-mention-thumb img, .resource-mention-thumb video { width: 100%; height: 100%; object-fit: cover; }
.resource-mention-thumb .resource-kind-glyph { font-size: 13px; }
.resource-mention-empty { padding: 18px; color: #6c7890; font-size: 11px; text-align: center; }

.generation-settings { display: grid; grid-template-columns: minmax(180px, 1.5fr) minmax(92px, 0.6fr) minmax(92px, 0.6fr) minmax(82px, 0.55fr); gap: 9px; align-items: end; }
.generation-control { min-width: 0; display: grid; gap: 7px; color: #7f8ca2; font-size: 10px; }
.generation-control select, .generation-control input { height: 41px; padding: 0 10px; border-radius: 10px; font-size: 11px; }
.input-with-unit { position: relative; display: block; }
.input-with-unit input { padding-right: 30px; }
.input-with-unit b { position: absolute; top: 50%; right: 10px; color: #68758d; font-size: 9px; transform: translateY(-50%); pointer-events: none; }
.aspect-ratio-control select { cursor: pointer; }
.test-submit-bar { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding-top: 1px; }
.credit-estimate { min-height: 42px; display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; align-content: center; column-gap: 6px; padding: 0 12px; border: 1px solid rgba(153, 109, 255, 0.25); border-radius: 11px; background: rgba(89, 59, 153, 0.11); }
.credit-estimate > span { grid-row: 1 / 3; align-self: center; color: #b996ff; font-size: 14px; }
.credit-estimate strong { color: #e5d8ff; font-size: 12px; line-height: 1.1; }
.credit-estimate small { color: #75658f; font-size: 8px; }
.test-generate-button { min-width: 150px; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; border-radius: 11px; }
.test-generate-button b { display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; color: #536fe2; background: #edf2ff; font-size: 13px; }

/* 中文注释：任务页移除重复标题后，用四个紧凑卡片先呈现全量状态，再进入可筛选的明细表。 */
.task-overview { margin: 4px 0 16px; }
.task-overview-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.task-overview-heading h3 { margin: 0; font-size: 18px; }
.task-overview-heading span { color: #71809a; font-size: 11px; }
.task-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.task-summary-card { min-height: 88px; padding: 16px 18px; border: 1px solid var(--border); border-radius: 13px; background: linear-gradient(130deg, rgba(24, 31, 45, 0.96), rgba(15, 20, 31, 0.92)); }
.task-summary-card span { display: block; color: #7c8aa4; font-size: 11px; }
.task-summary-card strong { display: block; margin-top: 9px; color: #eaf0fb; font-size: 27px; line-height: 1; }
.task-summary-card.completed { border-color: rgba(49, 212, 155, 0.28); }
.task-summary-card.completed strong { color: #61e4b4; }
.task-summary-card.pending { border-color: rgba(153, 109, 255, 0.3); }
.task-summary-card.pending strong { color: #cfb4ff; }
.task-summary-card.processing { border-color: rgba(91, 140, 255, 0.34); }
.task-summary-card.processing strong { color: #9ebdff; }

/* 中文注释：状态、模型和账号筛选分别使用合适宽度；清除按钮只影响下方明细，不影响总览卡片。 */
.task-filter-bar { display: flex; align-items: end; gap: 10px; margin: 0 0 16px; }
.task-filter-control { display: grid; gap: 6px; color: #8491a9; font-size: 11px; }
.task-filter-control select { height: 38px; padding: 0 10px; font-size: 12px; }
.task-status-filter { width: 132px; }
.task-model-filter { width: min(280px, 42vw); }
.task-account-filter { width: min(240px, 36vw); }
.task-clear-filter { min-height: 38px; padding: 0 13px; white-space: nowrap; }

/* 中文注释：批量导入工具与账号页标题处于同一行，账号表独占下一行，避免右侧表单压缩列表宽度。 */
.account-page-header { min-height: 112px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; margin: 4px 0 18px; }
.account-page-header .section-intro { align-items: center; margin: 0; }
.account-import-trigger { width: 156px; }
.account-file-summary { color: #66738a; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.account-file-summary.has-files { color: #73dcb8; }
.account-file-summary.has-errors { color: #ff91a1; }
.account-table-panel { min-height: 430px; }
.account-table-panel .empty-row td { height: 330px; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { padding: 12px 16px; color: #68758d; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-align: left; text-transform: uppercase; background: rgba(11, 15, 24, 0.45); }
td { padding: 14px 16px; border-top: 1px solid rgba(39, 46, 62, 0.8); color: #bbc4d5; vertical-align: middle; }
/* 中文注释：排序按钮保持与普通表头一致的视觉层级，只在悬停、焦点和激活排序时提示其可操作性。 */
.table-sort-button { display: inline-flex; align-items: center; gap: 5px; padding: 0; border: 0; color: inherit; background: transparent; font-size: inherit; font-weight: inherit; letter-spacing: inherit; text-transform: inherit; }
.table-sort-button:hover, .table-sort-button:focus-visible { color: #a9c3ff; outline: none; }
.table-sort-button:focus-visible { border-radius: 3px; box-shadow: 0 0 0 2px rgba(91, 140, 255, 0.36); }
.table-sort-button [data-credit-sort-indicator] { display: inline-block; width: 10px; color: #8297bf; font-size: 12px; line-height: 1; }
th[aria-sort="ascending"] .table-sort-button, th[aria-sort="descending"] .table-sort-button { color: #b8ccff; }
tbody tr { transition: background 120ms ease; }
tbody tr:hover { background: rgba(38, 47, 67, 0.28); }
.empty-row td { height: 160px; color: #647087; text-align: center; }
.id-cell { max-width: 230px; overflow: hidden; color: #8794ad; font-family: Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.name-cell strong, .name-cell span { display: block; }
.name-cell strong { color: #e7ebf5; font-weight: 600; }
.name-cell span { margin-top: 4px; color: #6e7a91; font-size: 10px; }
.field-list { max-width: 240px; color: #78859d; overflow-wrap: anywhere; }
/* 中文注释：进度值由每次任务刷新写入 --task-progress，填充层只读取该值；过渡动画让 69% 等中间进度有明显的长度变化。 */
.progress-track { width: 90px; height: 5px; overflow: hidden; border-radius: 999px; background: #252c3a; }
.progress-track .progress-fill { display: block; width: var(--task-progress, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blue), var(--violet)); transition: width 420ms ease-out; }
.progress-label { display: inline-block; margin-top: 5px; color: #69758c; font-size: 10px; }
.badge { display: inline-flex; align-items: center; padding: 5px 8px; border: 1px solid; border-radius: 7px; font-size: 10px; font-weight: 700; }
.badge.completed, .badge.enabled { color: #61e4b4; border-color: rgba(49, 212, 155, 0.24); background: rgba(49, 212, 155, 0.09); }
/* 中文注释：提取器签名包完整但尚未合并公共协议时使用独立状态名，视觉上仍表示导入校验通过。 */
.badge.signature-ready { color: #61e4b4; border-color: rgba(49, 212, 155, 0.24); background: rgba(49, 212, 155, 0.09); }
.badge.processing { color: #8eacff; border-color: rgba(91, 140, 255, 0.27); background: rgba(91, 140, 255, 0.1); }
.badge.queued, .badge.unchecked { color: #d3a9ff; border-color: rgba(153, 109, 255, 0.26); background: rgba(153, 109, 255, 0.1); }
.badge.failed, .badge.disabled, .badge.degraded { color: #ff8597; border-color: rgba(255, 100, 124, 0.28); background: rgba(255, 100, 124, 0.09); }
/* 中文注释：任务状态使用固定最小宽度和居中内容，四种中文状态在列表中能垂直对齐。 */
.task-status-cell { text-align: center; }
.task-status-badge { min-width: 62px; justify-content: center; }
.task-status-heading, .task-time-heading, .task-credit-heading { text-align: center; }
.task-prompt-cell { min-width: 220px; max-width: 360px; }
.task-prompt-cell strong, .task-prompt-cell span { display: block; overflow-wrap: anywhere; }
.task-prompt-cell strong { color: #e7ebf5; font-weight: 600; }
.task-prompt-cell span { margin-top: 4px; color: #6e7a91; font-size: 10px; }
/* 中文注释：模型和参数使用上下两行展示，避免拆成两列后压缩提示词、账号和状态等任务运行信息。 */
.task-model-cell { min-width: 150px; overflow-wrap: anywhere; }
.task-model-parameter-cell { min-width: 188px; text-align: center; }
.task-model-parameter-cell strong, .task-model-parameter-cell span { display: block; overflow-wrap: anywhere; }
/* 中文注释：模型名和参数都采用居中且稍大的字号，参数第二行不会显得像附属说明而与模型标题错位。 */
.task-model-parameter-cell strong { color: #dce6f8; font-size: 13px; }
.task-model-parameter-cell span { margin-top: 5px; color: #8b98b0; font-size: 11px; white-space: nowrap; }
.task-account-cell { min-width: 132px; }
.task-account-cell strong, .task-account-cell span, .account-task-count strong, .account-task-count span { display: block; overflow-wrap: anywhere; }
.task-account-cell strong, .account-task-count strong { color: #dce6f8; font-size: 11px; }
.task-account-cell span, .account-task-count span { margin-top: 4px; color: #73819a; font-size: 10px; }
.task-spec-cell { min-width: 78px; color: #d8e2f6; white-space: nowrap; }
.task-progress-cell { min-width: 164px; }
.task-time-cell { min-width: 126px; text-align: center; color: #d4ddec; white-space: nowrap; }
.task-credit-cell { min-width: 148px; text-align: center; white-space: nowrap; }
.task-credit-cell strong, .task-credit-cell span { display: block; }
.task-credit-cell strong { color: #e5ebf6; font-size: 12px; }
.task-credit-cell span { margin-top: 4px; color: #8f9bb2; font-size: 10px; }

/* 中文注释：账号并发与参数包的同时账号数都在详情首屏调整，两个卡片共用布局但分别写入独立字段。 */
.account-scheduling-card, .header-pack-scheduling-card { display: grid; grid-template-columns: minmax(180px, 1fr) 134px minmax(180px, 0.8fr) auto; align-items: end; gap: 12px; padding: 16px 0; border-bottom: 1px solid rgba(42, 50, 68, 0.8); }
.account-scheduling-summary span, .account-scheduling-summary strong, .account-scheduling-summary small, .header-pack-scheduling-summary span, .header-pack-scheduling-summary strong, .header-pack-scheduling-summary small { display: block; }
.account-scheduling-summary span, .header-pack-scheduling-summary span { color: #75839b; font-size: 11px; }
.account-scheduling-summary strong, .header-pack-scheduling-summary strong { margin-top: 6px; color: #dce6f8; font-size: 14px; }
.account-scheduling-summary small, .header-pack-scheduling-summary small { margin-top: 5px; color: #76839b; font-size: 10px; }
.account-scheduling-card label, .header-pack-scheduling-card label { display: grid; gap: 6px; color: #8491a9; font-size: 11px; }
.account-scheduling-card input, .account-scheduling-card select, .header-pack-scheduling-card input { height: 38px; padding: 0 10px; }
.header-pack-scheduling-card { grid-template-columns: minmax(180px, 1fr) 134px auto; }
.account-scheduling-card .primary-button, .header-pack-scheduling-card .primary-button { min-height: 38px; padding: 0 14px; white-space: nowrap; }

.stack-form { display: grid; gap: 12px; margin-top: 24px; }
.stack-form.compact { margin: 0; padding: 20px; }
.stack-form label { display: grid; gap: 7px; color: #8f9bb1; font-size: 12px; }
input, textarea, select {
  width: 100%;
  border: 1px solid #2b3448;
  border-radius: 9px;
  outline: none;
  color: #e8edf7;
  background: #0d121c;
  transition: 140ms ease;
}
input, select { height: 40px; padding: 0 11px; }
textarea { resize: vertical; padding: 11px; line-height: 1.55; }
input:focus, textarea:focus, select:focus { border-color: #5f83dc; box-shadow: 0 0 0 3px rgba(91, 140, 255, 0.1); }
input::placeholder, textarea::placeholder { color: #4f5a6e; }
.split-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* 中文注释：模型编辑器的清晰度复选项保持横向排列，窄屏时允许自然换行。 */
.resolution-options { display: flex; flex-wrap: wrap; gap: 12px; padding: 10px 12px; border: 1px solid #2b3448; border-radius: 9px; color: #8f9bb1; }
.resolution-options legend { padding: 0 5px; color: #8f9bb1; font-size: 11px; }
.resolution-options label { display: inline-flex; align-items: center; gap: 6px; color: #c2cadd; }
.resolution-options input { width: auto; }
/* 中文注释：模型页只承载标题、主操作和列表；低频录入统一移入弹窗，首屏空间全部留给模型目录。 */
.model-page-header { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 2px 0 14px; }
.model-page-header .section-intro { margin: 0; }
.model-create-trigger { min-width: 132px; }
.model-create-trigger span { margin-right: 3px; font-size: 17px; line-height: 0; }
.model-table-panel { min-height: 390px; }
.model-table-panel .empty-row td { height: 240px; }
.model-compact-table th:nth-child(1) { width: 24%; }
.model-compact-table th:nth-child(2) { width: 14%; }
.model-compact-table th:nth-child(3) { width: 14%; }
.model-compact-table th:nth-child(4) { width: 16%; }
.model-compact-table th:nth-child(5) { width: 12%; }
.model-compact-table th:nth-child(6) { width: 20%; }
.model-id-cell strong, .model-id-cell span, .model-duration-cell strong, .model-duration-cell span { display: block; }
.model-id-cell strong { color: #e5ecfb; font: 600 12px/1.5 Consolas, monospace; overflow-wrap: anywhere; }
.model-id-cell span, .model-duration-cell span { margin-top: 5px; color: #647189; font-size: 9px; }
.model-duration-cell strong { color: #c9d4e8; font-size: 12px; }
.model-spec-label-list { display: grid; justify-items: start; gap: 7px; }
.model-spec-label { --spec-tone: #8ed9c2; --spec-border: rgba(82, 195, 161, 0.38); --spec-bg: rgba(25, 105, 82, 0.16); min-width: 82px; min-height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0 9px; border: 1px solid var(--spec-border); border-radius: 7px; color: var(--spec-tone); background: var(--spec-bg); font: 700 10px/1 Consolas, monospace; white-space: nowrap; }
.resolution-tone-480p { --spec-tone: #91baff; --spec-border: rgba(91, 137, 220, 0.42); --spec-bg: rgba(42, 76, 137, 0.18); }
.resolution-tone-720p { --spec-tone: #c5a5ff; --spec-border: rgba(148, 101, 225, 0.44); --spec-bg: rgba(95, 53, 157, 0.2); }
.resolution-tone-1080p { --spec-tone: #f0b878; --spec-border: rgba(214, 142, 66, 0.44); --spec-bg: rgba(135, 77, 27, 0.2); }
.resolution-tone-default { --spec-tone: #8ed9c2; --spec-border: rgba(82, 195, 161, 0.38); --spec-bg: rgba(25, 105, 82, 0.16); }
.model-table-actions { min-width: 118px; }

/* 中文注释：录入窗口固定在视口内，两张分辨率卡片并排展示，超过两张时自动换到下一行。 */
.model-editor-dialog { width: min(1040px, calc(100vw - 32px)); max-height: min(840px, calc(100vh - 32px)); padding: 0; overflow: hidden; border: 1px solid #35435d; border-radius: 14px; color: var(--text); background: #0d121b; box-shadow: 0 28px 90px rgba(0, 0, 0, 0.55); }
.model-editor-dialog::backdrop { background: rgba(3, 6, 11, 0.78); backdrop-filter: blur(3px); }
.model-editor-dialog-shell { display: grid; grid-template-rows: auto minmax(0, 1fr); max-height: min(840px, calc(100vh - 32px)); }
.model-editor-toolbar { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 14px 8px 20px; border-bottom: 1px solid #293246; background: linear-gradient(115deg, rgba(29, 43, 73, 0.68), rgba(13, 18, 27, 0.96) 68%); }
.model-editor-mode-switch { display: flex; gap: 5px; }
.model-editor-mode-switch button { min-height: 32px; padding: 0 13px; border: 1px solid transparent; border-radius: 7px; color: #748199; background: transparent; font-size: 11px; }
.model-editor-mode-switch button:hover { color: #c7d4ec; background: #151d2b; }
.model-editor-mode-switch button.active { color: #dce7ff; border-color: #3d568c; background: #1a2946; box-shadow: inset 0 0 0 1px rgba(112, 151, 235, 0.08); }
.model-editor-mode-panel { min-height: 0; overflow: hidden; }
/* 中文注释：表单高度既要扣除视口边距和顶部工具栏，也要服从弹窗 840px 上限；否则高屏幕下会多出 16px 并被父容器裁掉底部按钮。 */
.model-editor-form { max-height: min(786px, calc(100vh - 86px)); padding: 16px 20px 0; overflow-y: auto; }
.model-identity-row { display: grid; grid-template-columns: minmax(260px, 1.8fr) repeat(2, minmax(120px, 0.7fr)); align-items: end; gap: 10px; padding-bottom: 15px; border-bottom: 1px solid #263044; }
.model-identity-row label, .resolution-card-primary-row label, .resolution-interface-row label { min-width: 0; display: grid; gap: 6px; color: #c4ccdc; font-size: 11px; }
.model-aspect-ratio-section { margin-top: 14px; padding: 12px; border: 1px solid #2d3a50; border-radius: 10px; background: #101722; }
.model-aspect-ratio-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 10px; }
.model-aspect-ratio-heading h4 { margin: 0; color: #dce5f5; font-size: 13px; }
.model-aspect-ratio-heading p { margin: 4px 0 0; color: #718098; font-size: 10px; }
.model-aspect-ratio-heading label { min-width: 150px; display: grid; gap: 5px; color: #c4ccdc; font-size: 11px; }
.model-aspect-ratio-options { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; border: 0; }
.model-aspect-ratio-options label { cursor: pointer; }
.model-aspect-ratio-options input { position: absolute; opacity: 0; pointer-events: none; }
.model-aspect-ratio-options span { display: inline-flex; min-height: 30px; align-items: center; justify-content: center; padding: 0 11px; border: 1px solid #34425a; border-radius: 999px; color: #8f9bb0; background: #0c121c; font-size: 11px; transition: 0.15s ease; }
.model-aspect-ratio-options input:checked + span { border-color: #5a79ba; color: #e2ebff; background: #1b2b49; box-shadow: inset 0 0 0 1px rgba(117, 156, 238, 0.12); }
.model-aspect-ratio-options input:focus-visible + span { outline: 2px solid #7ca0ec; outline-offset: 2px; }
.model-id-field input[readonly] { color: #8290a8; background: #101620; cursor: default; }
.model-resolution-section { margin-top: 16px; }
.model-resolution-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 11px; }
.model-resolution-section-heading h4 { margin: 0; color: #dce5f5; font-size: 13px; }
.model-resolution-section-heading p { margin: 5px 0 0; color: #68768e; font-size: 10px; }
/* 中文注释：限制 JSON 保持紧凑高度；内容超过可视区域时只滚动输入框，不再把整个模型弹窗继续撑高。 */
#videoModelReferenceLimits { height: 132px; min-height: 96px; max-height: 220px; overflow-y: auto; scrollbar-gutter: stable; font-family: Consolas, "SFMono-Regular", monospace; resize: vertical; }
.resolution-add-inline { display: grid; grid-template-columns: 130px auto; gap: 7px; }
.resolution-add-inline input { height: 36px; }
.resolution-add-inline .secondary-button { white-space: nowrap; }
.resolution-config-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.resolution-config-card { min-width: 0; padding: 12px; border: 1px solid #31415d; border-radius: 10px; background: linear-gradient(135deg, #111a29, #0d141f 72%); }
.resolution-card-heading { min-height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid #273348; }
.resolution-card-heading strong, .resolution-card-heading span { display: block; }
.resolution-card-heading strong { color: #d9e5fb; font: 700 12px/1.3 Consolas, monospace; }
.resolution-card-heading span { margin-top: 3px; color: #65738b; font-size: 9px; }
.resolution-card-primary-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 10px; }
.resolution-interface-row { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 8px; align-items: end; margin-top: 10px; padding: 10px; border: 1px solid #28344a; border-radius: 8px; background: #0a111b; }
.resolution-interface-label { grid-column: 1 / -1; }
.resolution-interface-label strong, .resolution-interface-label span { display: block; }
.resolution-interface-label strong { color: #aebddd; font-size: 10px; }
.resolution-interface-row label { font-size: 9px; }
.resolution-interface-row input { height: 36px; padding: 8px 9px; font-size: 10px; }
.model-editor-actions { position: sticky; bottom: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 9px; margin: 16px -20px 0; padding: 12px 20px 16px; border-top: 1px solid #263044; background: rgba(13, 18, 27, 0.96); backdrop-filter: blur(7px); }
.model-editor-actions .primary-button { min-width: 132px; }
.model-import-panel { padding: 22px 20px 16px; }
.model-import-dropzone { min-height: 240px; display: grid; place-items: center; align-content: center; gap: 9px; padding: 28px; border: 1px dashed #405579; border-radius: 11px; text-align: center; background: linear-gradient(145deg, rgba(33, 50, 83, 0.36), rgba(12, 18, 28, 0.7)); cursor: pointer; }
.model-import-dropzone:hover { border-color: #6385c7; background: linear-gradient(145deg, rgba(42, 66, 111, 0.46), rgba(12, 18, 28, 0.8)); }
.model-import-dropzone-icon { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #49679e; border-radius: 10px; color: #b7ccf8; background: #182743; font-size: 20px; }
.model-import-dropzone strong { color: #dce6f8; font-size: 14px; }
.model-import-dropzone > span:not(.model-import-dropzone-icon) { max-width: 510px; color: #6e7d96; font-size: 10px; line-height: 1.6; }
.model-import-dropzone em { margin-top: 4px; padding: 9px 15px; border-radius: 7px; color: white; background: linear-gradient(110deg, #527fe7, #805ce4); font-size: 11px; font-style: normal; }
.model-import-dialog-footer { display: flex; justify-content: flex-end; padding-top: 13px; }
.field-hint { margin: -3px 0 2px; color: #66738a; font-size: 11px; line-height: 1.5; }
.primary-button, .secondary-button, .text-button, .table-button {
  border: 0;
  border-radius: 9px;
  color: white;
}
.primary-button { min-height: 41px; padding: 0 16px; font-weight: 600; background: linear-gradient(110deg, #527fe7, #805ce4); box-shadow: 0 9px 22px rgba(91, 104, 224, 0.2); }
.primary-button:hover { filter: brightness(1.08); }
.primary-button:disabled { cursor: not-allowed; filter: grayscale(0.45); opacity: 0.48; box-shadow: none; }
.secondary-button { min-height: 36px; padding: 0 13px; border: 1px solid var(--border-bright); background: #151b28; }
.text-button { padding: 4px 0; color: #819cff; background: transparent; font-size: 12px; }
.table-button { padding: 6px 9px; border: 1px solid #30394d; color: #aeb9cc; background: #151b27; font-size: 10px; }
.table-button:hover, .secondary-button:hover { border-color: #52617e; background: #1b2333; }
.danger-button { color: #ff9eaa; border-color: rgba(255, 112, 132, 0.35); }
.danger-button:hover { color: #ffd8de; border-color: rgba(255, 112, 132, 0.7); background: #2a1720; }
.table-actions { display: flex; align-items: center; gap: 7px; min-width: 142px; }
.credit-cell strong, .credit-cell span { display: block; }
.credit-cell strong { color: #e5ebf6; font-size: 12px; }
.credit-cell span { margin-top: 4px; color: #68758d; font-size: 10px; }
.refresh-credit-button { width: 28px; height: 28px; padding: 0; font-size: 15px; }
.refresh-credit-button:disabled { cursor: not-allowed; opacity: 0.42; }
.count-pill { min-width: 30px; justify-content: center; padding: 5px 9px; }

/* 中文注释：每个接口占一列，列内从上到下显示方法、路径和签名头；表格过宽时由外层横向滚动。 */
.header-pack-table-panel table { min-width: 1500px; }
.pack-name-cell { width: 76px; min-width: 76px; max-width: 76px; }
.pack-name-cell strong, .pack-name-cell span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signature-interface-column-cell { width: 132px; min-width: 132px; vertical-align: top; }
.signature-interface-column { display: grid; align-content: start; justify-items: start; gap: 7px; min-height: 92px; padding: 4px 0; }
.signature-interface-column strong { color: #cfd8e8; font-size: 10px; font-weight: 700; }
.signature-interface-column small { max-width: 122px; color: #65738c; font: 9px/1.45 Consolas, monospace; overflow-wrap: anywhere; }
.signature-interface-column-headers { display: grid; justify-items: start; gap: 4px; color: #69758c; font-size: 10px; }
.signature-interface-column.empty { align-content: center; color: #68758d; }
.signature-chip { display: inline-flex; align-items: center; min-height: 20px; padding: 0 6px; border: 1px solid #34415a; border-radius: 4px; color: #9cb4ec; background: #182238; font-size: 9px; font-style: normal; white-space: nowrap; }
.signature-chip.optional { color: #f0bd76; border-color: #5d4728; background: #271f13; }
.usage-state { min-width: 105px; display: grid; grid-template-columns: 9px 1fr; align-items: center; gap: 2px 7px; }
.usage-state .status-dot { grid-row: 1 / span 2; width: 7px; height: 7px; }
.usage-state strong { color: #d7dfed; font-size: 11px; }
.usage-state small { color: #657188; font-size: 9px; }
.usage-state.idle .status-dot { background: #657188; box-shadow: 0 0 0 4px rgba(101, 113, 136, 0.1); }
.usage-state.busy .status-dot { background: var(--green); box-shadow: 0 0 0 4px rgba(49, 212, 155, 0.11); }
.header-pack-account-limit strong, .header-pack-account-limit span { display: block; text-align: center; }
.header-pack-account-limit strong { color: #dce6f8; font-size: 12px; }
.header-pack-account-limit span { margin-top: 4px; color: #73819a; font-size: 10px; }
.header-pack-action-cell .table-actions { min-width: 196px; }
.table-button.danger { color: #ff9ca7; border-color: #59313b; background: #21141a; }
.table-button.danger:hover { color: #ffd1d6; border-color: #8a4451; background: #321a22; }

/* 中文注释：参数包详情先显示通用范围、不同账号数和任务占用，再按接口分卡展示三个固定签名位。 */
.header-pack-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; padding: 20px 0; border-bottom: 1px solid rgba(42, 50, 68, 0.8); }
.header-pack-overview > div { min-width: 0; padding: 12px; border: 1px solid #273043; border-radius: 7px; background: #0d121b; }
.header-pack-overview span, .header-pack-overview strong { display: block; overflow-wrap: anywhere; }
.header-pack-overview span { color: #6f7c93; font-size: 10px; }
.header-pack-overview strong { margin-top: 7px; color: #dbe3f0; font-size: 12px; }
.header-interface-detail-section { padding: 20px 0 4px; }
.detail-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 13px; }
.detail-section-heading h4 { margin: 0; color: #dfe6f3; font-size: 14px; }
.detail-section-heading p { margin: 6px 0 0; color: #6d7990; font-size: 10px; }
.detail-section-heading > span { color: #8291aa; font-size: 10px; }
.header-interface-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.header-interface-detail-card { min-width: 0; padding: 13px; border: 1px solid #293349; border-radius: 7px; background: #0c1119; }
.header-interface-detail-title { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.header-interface-detail-title strong, .header-interface-detail-title span { display: block; }
.header-interface-detail-title strong { color: #dce4f2; font-size: 12px; }
.header-interface-detail-title span { margin-top: 5px; color: #68758d; font: 9px/1.5 Consolas, monospace; overflow-wrap: anywhere; }
.header-interface-detail-title em { flex: 0 0 auto; color: #7e8da7; font-size: 9px; font-style: normal; }
.header-slot-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.header-slot { min-width: 0; min-height: 52px; display: grid; align-content: center; gap: 5px; padding: 7px; border: 1px solid; border-radius: 6px; }
.header-slot span, .header-slot strong { overflow-wrap: anywhere; }
.header-slot span { font: 9px/1.3 Consolas, monospace; }
.header-slot strong { font-size: 9px; font-weight: 650; }
.header-slot.present { color: #73dcb8; border-color: #285746; background: #10231d; }
.header-slot.missing { color: #69758d; border-color: #2a3343; background: #121722; }

/* 中文注释：详情弹窗限制最大高度并让内容区独立滚动，长 Cookie 或 Base64 不会撑破桌面和手机布局。 */
.detail-dialog {
  width: min(900px, calc(100vw - 32px));
  max-height: min(820px, calc(100vh - 32px));
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border-bright);
  border-radius: 8px;
  color: var(--text);
  background: #111620;
  box-shadow: var(--shadow);
}
.detail-dialog::backdrop { background: rgba(4, 6, 10, 0.78); }
.detail-header { display: flex; align-items: start; justify-content: space-between; gap: 24px; padding: 20px 22px; border-bottom: 1px solid var(--border); }
.detail-header .eyebrow { margin: 0 0 7px; }
.detail-header h3 { margin: 0; font-size: 18px; }
.detail-meta { margin: 7px 0 0; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.icon-button { width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid var(--border); border-radius: 7px; color: #aeb9cc; background: #171d29; font-size: 22px; line-height: 1; }
.icon-button:hover { color: white; border-color: #52617e; }
.detail-toolbar { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 22px; border-bottom: 1px solid var(--border); color: #79869c; font-size: 11px; }
.detail-content { max-height: calc(100vh - 190px); overflow-y: auto; padding: 0 22px 24px; }
.detail-section { padding: 21px 0; border-bottom: 1px solid rgba(42, 50, 68, 0.8); }
.detail-section:last-child { border-bottom: 0; }
.detail-section h4 { margin: 0 0 13px; color: #dfe6f3; font-size: 13px; }
.detail-section dl { margin: 0; }
.detail-row { display: grid; grid-template-columns: minmax(150px, 0.35fr) minmax(0, 1fr); gap: 18px; padding: 8px 0; }
.detail-row dt { color: #748198; font-family: Consolas, monospace; font-size: 11px; overflow-wrap: anywhere; }
.detail-row dd { min-width: 0; margin: 0; color: #c5cedd; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.detail-row pre { max-height: 300px; margin: 0; padding: 11px; overflow: auto; border: 1px solid #273043; border-radius: 6px; color: #b8c6dc; background: #0b1018; font: 11px/1.65 Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
.empty-value { color: #59667b; }
.model-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.model-overview-grid > div { min-width: 0; padding: 11px; border: 1px solid #273043; border-radius: 7px; background: #0d121b; }
.model-overview-grid span, .model-overview-grid strong { display: block; overflow-wrap: anywhere; }
.model-overview-grid span { color: #6f7c93; font-size: 10px; }
.model-overview-grid strong { margin-top: 6px; color: #dbe3f0; font-size: 12px; }
.model-interface-detail-section { padding: 14px 0 0; border-bottom: 0; }
.model-interface-detail-section .detail-section-heading { margin-bottom: 8px; }
.model-interface-detail-section code { color: #9db5ea; font: 11px/1.55 Consolas, monospace; overflow-wrap: anywhere; }
.resolution-detail-card { margin-top: 12px; padding: 14px; border: 1px solid #2b3650; border-radius: 9px; background: #0c121c; }
.resolution-interface-notes { margin: 0 0 10px; color: #93a4c2; font-size: 11px; line-height: 1.6; }

/* 中文注释：任务日志改为宽内容区，让时间、事件、阶段、说明和耗时在同一行内完成阅读。 */
.task-execution-dialog { width: min(980px, calc(100vw - 32px)); }
/* 中文注释：左右与底部统一使用 22px；底部用真实占位块进入滚动高度，滚到末尾时最后一行不会贴住或越出窗口。 */
.task-execution-dialog .detail-content { padding: 0 22px; scrollbar-width: none; -ms-overflow-style: none; }
.task-execution-dialog .detail-content::after { content: ""; display: block; height: 22px; }
.task-execution-dialog .detail-content::-webkit-scrollbar { display: none; width: 0; height: 0; }
/* 中文注释：任务信息只保留一行指标和一行输入摘要，媒体用缩略方块代替完整 JSON，日志能更早进入首屏。 */
.task-execution-summary { padding: 16px 0 0; }
.task-execution-summary-heading { min-height: 25px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.task-execution-summary-heading h4 { margin: 0; color: #dfe6f3; font-size: 13px; }
.task-execution-summary-heading span { color: #71809a; font-size: 9px; }
.task-execution-summary-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.task-execution-metric { min-width: 0; min-height: 58px; display: grid; align-content: center; gap: 7px; padding: 8px 10px; border: 1px solid #293349; border-radius: 7px; background: #0d121b; }
.task-execution-metric > span { color: #6d7990; font-size: 9px; }
.task-execution-metric > strong { overflow: hidden; color: #d5deed; font-size: 11px; font-weight: 650; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.task-execution-metric .badge { width: max-content; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.task-execution-input-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); gap: 8px; margin-top: 8px; }
.task-execution-input-card { min-width: 0; min-height: 100px; padding: 11px 12px; border: 1px solid #293349; border-radius: 7px; background: #0d121b; }
.task-execution-input-card > span, .task-execution-input-heading span { color: #6d7990; font-size: 9px; }
.task-execution-prompt p { overflow: auto; max-height: 76px; margin: 8px 0 0; color: #cbd5e5; font-size: 11px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.task-execution-input-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.task-execution-input-heading b { display: grid; place-items: center; min-width: 22px; height: 18px; padding: 0 5px; border-radius: 999px; color: #93adE8; background: #18233a; font-size: 9px; }
.task-execution-media-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(126px, 1fr)); gap: 6px; overflow: auto; max-height: 64px; margin-top: 8px; }
.task-execution-media-item { min-width: 0; height: 56px; display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 8px; padding: 5px; border: 1px solid #273043; border-radius: 7px; background: #0a0f17; }
.task-execution-media-preview { position: relative; overflow: hidden; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 6px; color: #9bb6ef; background: #151e2e; }
.task-execution-media-preview img { width: 100%; height: 100%; object-fit: cover; }
.task-execution-media-preview > span { font-size: 15px; }
.task-execution-media-item > div:last-child { min-width: 0; display: grid; gap: 5px; }
.task-execution-media-item strong, .task-execution-media-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-execution-media-item strong { color: #9db8f3; font-size: 9px; }
.task-execution-media-item span { color: #c5cede; font-size: 9px; }
.task-execution-media-empty { min-height: 60px; display: grid; place-items: center; color: #59667b; font-size: 10px; }
.task-video-result { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 12px 0 0; padding: 13px 14px; border: 1px solid #2d4266; border-radius: 8px; background: #101927; }
.task-video-result-main { min-width: 0; display: grid; gap: 6px; }
.task-video-result-main span, .task-video-result-header > span { color: #71809a; font-size: 9px; }
.task-video-result-main code { overflow: hidden; color: #9db8f3; font: 10px/1.5 Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
/* 中文注释：结果操作固定为紧凑单行按钮，本地与 R2 长 URL 都不会再把按钮挤成竖排。 */
.task-video-copy-button { flex: 0 0 auto; min-height: 28px; padding: 6px 10px; white-space: nowrap; }
.task-video-result.original-url { border-color: #3b4b3c; background: #111b16; }
.task-video-result.original-url { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; align-items: stretch; }
.task-video-result-header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.task-video-result-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.task-video-result.original-url > code { max-height: 46px; overflow: auto; color: #a8d8ae; font: 10px/1.5 Consolas, monospace; overflow-wrap: anywhere; white-space: normal; }
.task-video-result.pending { border-color: #293349; background: #0d121b; }
.task-video-result.pending strong { color: #aeb9cc; font-size: 11px; }
/* 中文注释：持久化任务信息采用短字段网格，直接展示两个查询 ID，同时为长 ID 保留换行能力。 */
.task-persistence-details { margin-top: 12px; padding: 13px 14px; border: 1px solid #2b394f; border-radius: 8px; background: #0d121b; }
.task-persistence-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.task-persistence-heading h4 { margin: 0; color: #dfe6f3; font-size: 12px; }
.task-persistence-heading span { display: block; margin-top: 5px; color: #71809a; font-size: 9px; }
.task-persistence-heading b { padding: 4px 7px; border-radius: 999px; color: #a7c1ef; background: #18243a; font-size: 9px; white-space: nowrap; }
.task-persistence-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.task-persistence-grid > div { min-width: 0; display: grid; gap: 6px; padding: 9px 10px; border: 1px solid #273043; border-radius: 7px; background: #0a0f17; }
.task-persistence-grid span { color: #6d7990; font-size: 9px; }
.task-persistence-grid code { overflow-wrap: anywhere; color: #b8c9e9; font: 10px/1.45 Consolas, monospace; }
.task-error-diagnostics { margin: 14px 0 0; overflow: hidden; border: 1px solid #67323c; border-radius: 8px; background: #171015; }
.task-error-diagnostics-heading { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; border-bottom: 1px solid #67323c; background: #211218; }
.task-error-diagnostics-heading > div { display: flex; align-items: baseline; gap: 9px; }
.task-error-diagnostics-heading strong { color: #ffbac6; font-size: 12px; }
.task-error-diagnostics-heading span, .task-error-diagnostics-heading time { color: #a8757f; font-size: 9px; }
.task-error-diagnostic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #45242c; }
.task-error-diagnostic-grid > div { min-width: 0; display: grid; gap: 5px; padding: 10px 12px; background: #171015; }
.task-error-diagnostic-grid span { color: #a8757f; font-size: 9px; }
.task-error-diagnostic-grid strong { color: #f1c6cd; font: 10px/1.5 Consolas, monospace; overflow-wrap: anywhere; }
.task-error-official { padding: 12px 14px; border-top: 1px solid #67323c; }
.task-error-official span { color: #a8757f; font-size: 9px; }
.task-error-official pre { overflow: auto; max-height: 180px; margin: 8px 0 0; color: #e7bac2; font: 10px/1.55 Consolas, monospace; white-space: pre-wrap; }
.task-execution-log-panel { margin: 14px 0 0; overflow: hidden; border: 1px solid #293349; border-radius: 8px; background: #0d121b; }
.task-execution-log-heading { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; border-bottom: 1px solid #293349; background: #111824; }
.task-execution-log-heading strong { color: #dce5f5; font-size: 12px; }
.task-execution-log-heading span { color: #71809a; font: 10px/1.4 Consolas, monospace; }
.task-execution-log { margin: 0; padding: 0; list-style: none; }
.task-execution-event { min-height: 38px; display: grid; grid-template-columns: 6px 108px minmax(86px, 0.65fr) minmax(120px, 1fr) minmax(180px, 2fr) 62px; gap: 10px; align-items: center; padding: 7px 14px; border-bottom: 1px solid rgba(41, 51, 73, 0.72); }
.task-execution-event:last-child { border-bottom: 0; }
.task-execution-event-dot { width: 5px; height: 5px; border-radius: 50%; background: #84a5ff; box-shadow: 0 0 0 4px rgba(91, 140, 255, 0.1); }
.task-execution-event time { color: #69758c; font-size: 10px; white-space: nowrap; }
.task-execution-event strong { color: #dce5f5; font-size: 11px; }
.task-execution-event code { min-width: 0; color: #9bb5eb; font: 10px/1.4 Consolas, monospace; overflow-wrap: anywhere; }
.task-execution-event p { min-width: 0; margin: 0; color: #aeb9cc; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.task-execution-event-elapsed { color: #76d6b2; font-size: 10px; text-align: right; white-space: nowrap; }
.task-log-empty { min-height: 180px; display: grid; place-items: center; color: #69758c; font-size: 12px; text-align: center; }

/* 中文注释：导入窗口把文件选择和最终写入分成两个步骤，列表高度固定后大量文件也只在窗口内部滚动。 */
.account-import-dialog {
  width: min(820px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 32px));
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border-bright);
  border-radius: 8px;
  color: var(--text);
  background: #111620;
  box-shadow: var(--shadow);
}
.account-import-dialog::backdrop { background: rgba(4, 6, 10, 0.78); }
.account-import-dialog form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: min(760px, calc(100vh - 32px)); }
.account-import-body { min-height: 0; padding: 18px 22px; overflow: hidden; }
.account-upload-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.account-upload-button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; cursor: pointer; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.account-import-list { min-height: 260px; max-height: min(430px, calc(100vh - 270px)); overflow: auto; border: 1px solid var(--border); border-radius: 7px; background: #0c111a; }
.account-import-list-head, .account-import-row { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(220px, 1.4fr) 76px 44px; gap: 14px; align-items: center; }
.account-import-list-head { position: sticky; top: 0; z-index: 1; min-height: 40px; padding: 0 14px; border-bottom: 1px solid var(--border); color: #68758d; background: #101622; font-size: 10px; font-weight: 700; }
.account-import-row { min-height: 68px; padding: 10px 14px; border-bottom: 1px solid rgba(39, 46, 62, 0.8); }
.account-import-row:last-child { border-bottom: 0; }
.account-import-row .name-cell { min-width: 0; overflow-wrap: anywhere; }
.account-import-empty { min-height: 220px; display: grid; place-items: center; padding: 24px; color: #647087; font-size: 12px; text-align: center; }
.import-remove-button { width: 28px; height: 28px; font-size: 17px; }
.account-import-footer { min-height: 66px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 12px 22px; border-top: 1px solid var(--border); }
.account-import-footer .primary-button { min-width: 150px; }

/* 中文注释：服务器设置页把“当前运行值”和“下次启动值”并列展示，避免保存 R2 配置后误判为已热切换。 */
.settings-page-section { width: min(1120px, 100%); margin: 0 auto; }
.settings-intro { margin-bottom: 16px; }
.settings-intro p:last-child { max-width: 720px; color: #71809a; font-size: 12px; line-height: 1.65; }
.settings-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.settings-status-card { min-width: 0; display: grid; gap: 7px; padding: 16px 18px; border: 1px solid var(--border); border-radius: 10px; background: linear-gradient(145deg, #121824, #0d131d); }
.settings-status-card > span { color: #68758d; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; }
.settings-status-card strong { color: #dce6f8; font-size: 15px; }
.settings-status-card small { overflow-wrap: anywhere; color: #748198; font-size: 10px; line-height: 1.5; }
.settings-status-card.restart-required { border-color: rgba(240, 170, 72, 0.5); background: linear-gradient(145deg, rgba(69, 43, 15, 0.55), #11151d); }
.settings-status-card.restart-required strong { color: #ffc676; }
.settings-panel { overflow: hidden; }
.server-settings-form { display: grid; gap: 18px; padding: 20px; }
.settings-field { display: grid; gap: 7px; color: #9ba7ba; font-size: 11px; }
.settings-field small { color: #647188; font-size: 9px; line-height: 1.5; }
.settings-storage-select { width: min(520px, 100%); }
.r2-settings-fields { min-width: 0; margin: 0; padding: 18px; border: 1px solid #303a4d; border-radius: 10px; }
.r2-settings-fields legend { padding: 0 8px; color: #8fa7d6; font-size: 11px; font-weight: 700; }
.r2-settings-fields:disabled { opacity: 0.48; }
.settings-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.settings-check-field { min-height: 54px; display: flex; align-items: center; gap: 10px; padding: 8px 11px; border: 1px solid #2b3448; border-radius: 9px; background: #101620; cursor: pointer; }
.settings-check-field input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--blue); }
.settings-check-field span { display: grid; gap: 4px; }
.settings-check-field strong { color: #cbd5e6; font-size: 11px; }
.settings-check-field small { color: #647188; font-size: 9px; line-height: 1.45; }
.settings-connection-result { min-height: 42px; display: flex; align-items: center; padding: 10px 12px; border: 1px solid #29344a; border-radius: 9px; color: #73829c; background: #0d131d; font-size: 10px; line-height: 1.55; }
.settings-connection-result.success { color: #8ce3c4; border-color: rgba(49, 212, 155, 0.36); background: rgba(22, 70, 55, 0.18); }
.settings-connection-result.error { color: #ffadb8; border-color: rgba(255, 100, 124, 0.38); background: rgba(86, 28, 39, 0.18); }
.settings-form-actions { display: flex; justify-content: flex-end; gap: 10px; }
.settings-form-actions button { min-width: 150px; }

/* 中文注释：代理页展示配置与健康状态；新增节点改走多行文本队列，账号关系只在账号页维护。 */
.proxy-table-panel table { min-width: 1120px; }
.proxy-cell strong, .proxy-cell span, .task-proxy-cell strong, .task-proxy-cell span, .table-secondary { display: block; }
.proxy-cell strong, .task-proxy-cell strong { color: #dbe5f5; font-size: 11px; }
.proxy-cell span, .task-proxy-cell span, .table-secondary { margin-top: 4px; color: #6d7a92; font-size: 10px; }
.proxy-error { display: block; max-width: 180px; margin-top: 5px; color: #ff9dac; font-size: 9px; overflow-wrap: anywhere; }
.proxy-page-actions { display: flex; align-items: center; gap: 9px; }
.proxy-editor-dialog { width: min(820px, calc(100vw - 32px)); }
.proxy-editor-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: min(820px, calc(100vh - 32px)); }
.proxy-editor-body { display: grid; gap: 16px; padding: 20px 22px; overflow: auto; }
.proxy-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.proxy-field-grid label { display: grid; gap: 6px; color: #8794ab; font-size: 11px; }
.proxy-editor-test-result { margin-right: auto; color: #75839b; font-size: 10px; overflow-wrap: anywhere; }
.proxy-editor-test-result.success { color: #7be0bd; }
.proxy-editor-test-result.error { color: #ff9dac; }
.proxy-import-dialog { width: min(980px, calc(100vw - 32px)); }
.proxy-import-body { display: grid; gap: 14px; overflow: auto; }
.proxy-import-protocol-bar { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 11px 12px; border: 1px solid #29354b; border-radius: 7px; background: #101724; }
.proxy-import-protocol-bar label { min-width: 190px; display: grid; gap: 6px; color: #8794ab; font-size: 11px; }
.proxy-import-protocol-bar span { color: #71809a; font-size: 10px; line-height: 1.55; }
.proxy-import-protocol-bar code { color: #9cb8f6; font-family: Consolas, "SFMono-Regular", monospace; }
.proxy-import-input-label { display: grid; gap: 7px; color: #8794ab; font-size: 11px; }
.proxy-import-input-label textarea { min-height: 142px; font-family: Consolas, "SFMono-Regular", monospace; font-size: 12px; line-height: 1.65; }
.proxy-format-hints { display: flex; flex-wrap: wrap; gap: 7px; }
.proxy-format-hints code { padding: 6px 8px; border: 1px solid #29354b; border-radius: 6px; color: #8daef8; background: #101724; font-size: 10px; }
.proxy-import-list { min-height: 230px; }
.proxy-import-list-head, .proxy-import-row { grid-template-columns: minmax(130px, 0.8fr) minmax(260px, 1.55fr) minmax(180px, 1fr) minmax(150px, auto); }
.proxy-import-row strong, .proxy-import-row small { min-width: 0; display: block; overflow-wrap: anywhere; }
.proxy-import-row strong { color: #d4deee; font-size: 11px; }
.proxy-import-row small { margin-top: 4px; color: #6e7b92; font-size: 9px; }
.proxy-import-result { color: #8491a8; font-size: 10px; overflow-wrap: anywhere; }
.proxy-import-result.success { color: #7be0bd; }
.proxy-import-result.error { color: #ff9dac; }
.proxy-import-row .table-actions { flex-wrap: wrap; }
.proxy-import-dialog .account-import-footer .account-file-summary { margin-right: auto; }

.toast { position: fixed; right: 24px; bottom: 24px; z-index: 30; max-width: 390px; padding: 12px 16px; border: 1px solid #35405a; border-radius: 11px; color: #dce3f1; background: #171d2a; box-shadow: var(--shadow); opacity: 0; transform: translateY(12px); pointer-events: none; transition: 180ms ease; }
.toast.show { opacity: 1; transform: none; }
.toast.error { color: #ffd8de; border-color: rgba(255, 100, 124, 0.4); }

@media (max-width: 1080px) {
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-grid { grid-template-columns: 1fr; }
  .model-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sticky-panel { position: static; }
}
@media (max-width: 760px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: static; width: 100%; height: auto; }
  .navigation { grid-template-columns: repeat(2, 1fr); }
  .sidebar-footer { display: none; }
  .workspace { padding: 0 16px 40px; }
  .topbar { min-height: 88px; }
  .live-pill { display: none; }
  .summary-grid { grid-template-columns: 1fr; }
  .settings-status-grid, .settings-field-grid { grid-template-columns: 1fr; }
  .proxy-field-grid { grid-template-columns: 1fr; }
  .settings-form-actions { align-items: stretch; flex-direction: column; }
  .settings-form-actions button { width: 100%; }
  /* 中文注释：窄屏把六个摘要指标收成两列，并将提示词与媒体上下排列，避免弹窗横向挤压。 */
  .task-execution-summary-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-persistence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-execution-input-grid { grid-template-columns: 1fr; }
  .task-error-diagnostic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-execution-media-list { max-height: 126px; }
  .task-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-filter-bar { align-items: stretch; flex-wrap: wrap; }
  .task-status-filter, .task-model-filter, .task-account-filter { width: min(100%, 280px); flex: 1 1 160px; }
  .task-clear-filter { flex: 0 0 auto; }
  .account-scheduling-card, .header-pack-scheduling-card { grid-template-columns: 1fr; align-items: stretch; }
  .account-scheduling-card .primary-button, .header-pack-scheduling-card .primary-button { width: 100%; }
  .section-intro { align-items: start; flex-direction: column; }
  .account-page-header { min-height: 0; grid-template-columns: 1fr; align-items: start; gap: 14px; }
  .model-page-header { align-items: stretch; flex-direction: column; gap: 14px; }
  .model-page-header .model-create-trigger { width: 100%; }
  .model-identity-row, .resolution-config-editor, .resolution-card-primary-row, .resolution-interface-row { grid-template-columns: 1fr; }
  .model-aspect-ratio-heading { align-items: stretch; flex-direction: column; }
  .model-resolution-section-heading { align-items: stretch; flex-direction: column; }
  .resolution-add-inline { grid-template-columns: minmax(0, 1fr) auto; }
  .resolution-interface-label, .resolution-interface-url, .resolution-parameter-value { grid-column: 1; }
  .model-editor-actions { flex-direction: column-reverse; }
  .model-editor-actions .primary-button, .model-editor-actions .secondary-button { width: 100%; }
  .account-import-trigger { width: 100%; }
  .account-upload-bar { align-items: stretch; flex-direction: column; }
  .account-import-list-head { display: none; }
  .account-import-row { grid-template-columns: minmax(0, 1fr) 36px; gap: 8px; }
  .account-import-row > :nth-child(2), .account-import-row > :nth-child(3) { grid-column: 1; }
  .account-import-row > :nth-child(4) { grid-column: 2; grid-row: 1; }
  .account-import-footer { align-items: stretch; flex-direction: column-reverse; }
  .account-import-footer .primary-button { width: 100%; }
  .header-pack-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .header-interface-detail-grid { grid-template-columns: 1fr; }
  .auth-card { padding: 30px 24px; }
  .detail-row { grid-template-columns: 1fr; gap: 5px; }
  .model-overview-grid { grid-template-columns: 1fr; }
  /* 中文注释：窄屏仍是一条事件占一行，只隐藏阶段代码和耗时列，把空间留给事件说明。 */
  .task-execution-event { grid-template-columns: 6px 86px minmax(74px, 0.7fr) minmax(0, 1.8fr); gap: 8px; padding-inline: 10px; }
  .task-execution-event code, .task-execution-event-elapsed { display: none; }
  .task-video-result { align-items: stretch; flex-direction: column; }
  .task-video-result.original-url { display: grid; }
  .task-video-result-header { align-items: start; }
  .task-video-result-actions { flex-wrap: wrap; justify-content: flex-end; }
  .task-error-diagnostic-grid { grid-template-columns: 1fr; }
  .detail-toolbar { align-items: stretch; flex-direction: column; }
  .test-task-form { padding: 16px; }
  .compact-reference-tray { grid-template-columns: repeat(auto-fill, 64px); }
  .selected-resource-chip, .resource-upload-dropzone { width: 64px; height: 64px; }
  .generation-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .test-submit-bar { justify-content: stretch; }
  .credit-estimate { flex: 0 0 auto; }
  .test-submit-bar .primary-button { flex: 1 1 auto; }
  .resource-mention-menu button { grid-template-columns: 44px minmax(0, 1fr); }
  .resource-mention-menu button small { display: none; }
}
