:root {
  color-scheme:light;
  --ink:#202d3d;
  --muted:#697888;
  --line:#e2e8ee;
  --green:#146457;
  --soft:#f5f7f9;
  --amber:#fff7e7;
  --focus:#247b70;
  --nav-height:60px;
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  color:var(--ink);
  background:#fff;
}

a {
  color:var(--green);
  text-decoration:none;
  text-underline-offset:3px;
}

a:hover {
  text-decoration:underline;
}

button,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:40px;
  border:1px solid var(--green);
  border-radius:6px;
  background:var(--green);
  color:#fff;
  padding:8px 15px;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
}

button:hover,.button:hover {
  filter:brightness(.96);
  text-decoration:none;
}

button:disabled {
  opacity:.45;
  cursor:default;
}

.secondary {
  background:#fff;
  color:var(--green);
  border-color:#ccd6df;
}

.quiet {
  background:transparent;
  color:var(--muted);
  border-color:transparent;
  padding:6px 8px;
  font-weight:500;
}

button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex="0"]:focus-visible {
  outline:2px solid var(--focus);
  outline-offset:3px;
}

[tabindex="-1"]:focus {
  outline:none;
}

[hidden] {
  display:none!important;
}

.js-only {
  display:none!important;
}

.enhanced .js-only {
  display:initial!important;
}

.muted,small {
  color:var(--muted);
}

small {
  display:block;
  font-size:12px;
  line-height:1.6;
  overflow-wrap:anywhere;
}

h1,h2,h3,p {
  margin-top:0;
}

h1 {
  font-size:28px;
  line-height:1.35;
  margin-bottom:12px;
  font-weight:650;
  letter-spacing:-.4px;
}

h2 {
  font-size:20px;
  line-height:1.4;
  margin-bottom:16px;
  font-weight:650;
}

form {
  margin:0;
}

label {
  display:block;
  font-size:14px;
  font-weight:600;
  margin-bottom:22px;
}

input,textarea,select {
  display:block;
  width:100%;
  margin-top:8px;
  border:1px solid #cdd6df;
  border-radius:5px;
  padding:10px 12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-weight:400;
  line-height:1.65;
}

input::placeholder,textarea::placeholder {
  color:#8994a2;
}

.review-fields input[readonly],.review-fields textarea[readonly] {
  background:var(--soft);
}

textarea {
  resize:vertical;
  min-height:100px;
}

summary {
  cursor:pointer;
  overflow-wrap:anywhere;
}

summary::marker {
  color:#758491;
}

pre {
  margin:10px 0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

code {
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

.prose {
  font:15px/1.85 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  margin:0;
  tab-size:4;
}

.nav {
  height:var(--nav-height);
  padding:0 28px;
  display:flex;
  align-items:center;
  gap:26px;
  border-bottom:1px solid var(--line);
  background:#fff;
}

.brand {
  font-size:20px;
  font-weight:750;
  color:var(--ink);
  white-space:nowrap;
  letter-spacing:-.4px;
}

.primary-nav { display:flex; align-items:center; gap:4px; padding:4px; border:1px solid var(--line); border-radius:9px; background:var(--soft); flex-shrink:0; }
.nav-link { display:flex; align-items:center; justify-content:center; min-height:32px; padding:4px 16px; border-radius:6px; color:var(--muted); font-size:13px; font-weight:500; white-space:nowrap; transition:background .15s,color .15s; }
.nav-link:hover { background:#eaf0ee; color:var(--green); text-decoration:none; }
.nav-link[aria-current="page"] { color:var(--green); background:#fff; font-weight:650; box-shadow:0 1px 3px #203c3020,inset 0 0 0 1px #dbe8e2; }
.nav-context { display:flex; align-items:center; gap:12px; min-width:0; }

.nav-case {
  font:12px ui-monospace,SFMono-Regular,monospace;
  color:var(--muted);
}

.nav-end {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:22px;
  font-size:13px;
}

.nav-end .quiet {
  font-size:13px;
}

.badge {
  font-size:12px;
  white-space:nowrap;
  padding:4px 9px;
  background:#edf5f2;
  color:var(--green);
  border-radius:4px;
}

.status-pending {
  background:#f2f4f6;
  color:#667482;
}

.status-ignored {
  background:#f2f4f6;
  color:#667482;
}

.status-resolved {
  background:#e9f4f0;
}

.case-id {
  font:12px/1.6 ui-monospace,SFMono-Regular,monospace;
  overflow-wrap:anywhere;
  color:var(--muted);
}

main {
  max-width:1440px;
  margin:38px auto;
  padding:0 32px;
}

.site-footer {
  text-align:center;
  color:var(--muted);
  font-size:12px;
  padding:28px 16px;
}

.heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:28px;
}

.heading p {
  margin-bottom:0;
}

.filters {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:end;
  margin:28px 0;
}

.filters label {
  min-width:170px;
  margin:0;
}

.filters a {
  font-size:13px;
  padding:10px 0;
}

.filters select {
  min-height:43px;
  max-width:280px;
}

.table-wrap {
  border:1px solid var(--line);
  border-radius:6px;
  overflow:auto;
}

table {
  border-collapse:collapse;
  width:100%;
  text-align:left;
}

th,td {
  padding:19px 20px;
  vertical-align:middle;
  border-bottom:1px solid var(--line);
}

th {
  font-size:12px;
  font-weight:500;
  color:var(--muted);
  background:#fafbfc;
}

tr:last-child td {
  border:0;
}

.cases { min-width:1360px; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:13px; }
.cases .case-id-col { width:112px; }
.cases .case-source-col { width:160px; }
.cases .case-time-col { width:192px; }
.cases .case-protocol-col { width:164px; }
.cases .case-model-col { width:236px; }
.cases .case-trajectory-col { width:114px; }
.cases .case-status-col { width:100px; }
.cases .case-action-col { width:76px; }
.cases th,.cases td { padding:12px 14px; overflow-wrap:anywhere; }
.cases thead th { background:var(--soft); font-weight:600; }
.cases tbody tr { background:#fff; }
.cases tbody tr:hover { background:#f7faf9; }
.cases tbody th { background:inherit; font-weight:400; }
.cases tbody tr:last-child > * { border-bottom:0; }
.cases .case-title { display:block; font:13px/1.6 ui-monospace,SFMono-Regular,monospace; white-space:nowrap; }
.cases .case-time { color:var(--muted); font-size:12px; white-space:nowrap; }
.cases .model-name { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.cases .source-key { display:block; font:12px/1.6 ui-monospace,SFMono-Regular,monospace; }
.cases .case-open { display:inline-block; padding:3px 0; font-weight:500; }
.cases td.empty { text-align:center; padding:32px 16px; }

.conversion-label {
  font-size:13px;
}

.pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  margin:24px 0;
}
.pagination-actions { display:flex; gap:8px; }

.empty {
  padding:50px 24px;
  color:var(--muted);
  text-align:center;
}

.empty h2 {
  font-size:18px;
}

.login {
  max-width:420px;
  margin:13vh auto 30px;
  padding:24px;
}

.login .brand {
  display:block;
  color:var(--green);
  margin-bottom:36px;
}

.login h1 {
  font-size:26px;
}

.login p {
  margin-bottom:30px;
}

.login button {
  width:100%;
}

.error-page {
  max-width:700px;
}

.raw-page {
  max-width:1200px;
}

.raw-page h1 {
  margin-top:24px;
}

.raw {
  background:var(--soft);
  padding:24px;
  border-radius:6px;
}

.alert {
  background:#fff5ed;
  border:1px solid #f0d5bb;
  padding:14px 16px;
  border-radius:5px;
  font-size:13px;
  overflow-wrap:anywhere;
}

dl {
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:8px;
  font-size:13px;
}

dt {
  color:var(--muted);
}

dd {
  margin:0;
  overflow-wrap:anywhere;
}

/* 高度固定在工作区；轨迹和表单分别滚动，避免长会话把复盘操作推到页面底部。 */
body:has(.workbench) {
  overflow:hidden;
}

.workbench {
  max-width:none;
  margin:0;
  padding:0;
  height:calc(100dvh - var(--nav-height));
  display:grid;
  grid-template-columns:minmax(0,1.9fr) minmax(380px,1fr);
}

.workbench~.site-footer {
  display:none;
}

.trace-pane,.review-pane {
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
}

.trace-pane {
  border-right:1px solid var(--line);
}

.trace-header {
  padding:24px 26px 16px;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:2;
  background:#fff;
}

.panel-heading {
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
}

.panel-heading h1 {
  font-size:20px;
  margin:0;
  letter-spacing:0;
}

.panel-heading>.muted {
  font-size:12px;
}

.case-context {
  margin-left:auto;
  font-size:12px;
}

.context-popover {
  position:absolute;
  right:24px;
  top:62px;
  width:min(430px,calc(100% - 40px));
  max-height:65vh;
  overflow:auto;
  padding:22px;
  background:#fff;
  border:1px solid #ccd6df;
  box-shadow:0 8px 26px #22334412;
  border-radius:6px;
  z-index:5;
}

.context-popover h2 {
  font-size:15px;
  margin:16px 0 8px;
}

.context-popover .prose {
  font-size:13px;
}

.reader-toolbar {
  display:flex;
  gap:10px;
  align-items:center;
}

.reader-toolbar .button {
  font-size:13px;
  min-height:38px;
  padding:7px 12px;
}

.directory {
  position:relative;
  flex-shrink:0;
}

.directory>summary {
  padding:7px 13px;
  border:1px solid #ccd6df;
  border-radius:5px;
  font-size:13px;
  min-height:38px;
}

.directory-menu {
  position:absolute;
  top:45px;
  left:0;
  width:min(420px,calc(100vw - 52px));
  max-height:60vh;
  overflow:auto;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:contain;
  border:1px solid #ccd6df;
  border-radius:6px;
  background:#fff;
  box-shadow:0 8px 26px #22334412;
  padding:6px;
  z-index:6;
}

.directory-menu a {
  display:block;
  padding:10px 12px;
  border-radius:4px;
  color:var(--ink);
  font-size:13px;
}

.directory-menu a:hover,.directory-menu a:focus {
  background:#edf5f2;
  text-decoration:none;
}

.directory-menu small {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
}

.enhanced .search-group {
  display:flex!important;
  align-items:center;
  flex:1;
  min-width:0;
  border:1px solid #ccd6df;
  border-radius:5px;
  height:38px;
}

.search-group input {
  min-width:0;
  width:100%;
  height:36px;
  border:0;
  margin:0;
  padding:7px 10px;
  font-size:13px;
  background:transparent;
}

.search-group #search-count {
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
  padding-right:6px;
}

.search-step {
  font-size:11px;
  min-height:30px;
  border:0;
  border-left:1px solid var(--line);
  border-radius:0;
  color:var(--muted);
  background:transparent;
  padding:5px 8px;
}

.trace-scroll {
  overflow:auto;
  min-height:0;
  flex:1;
  padding:0 26px 30px;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:contain;
  scrollbar-gutter:stable;
}

/* 长正文、system prompt、工具输入/输出和原始数据共用高度上限。
   内层必须允许滚动传递，到达上下边界后继续滚动外层轨迹；
   最外层仅限制纵向传递，横向保留浏览器返回/前进手势。 */
.trace-scroll pre {
  max-height:min(400px,50dvh);
  overflow:auto;
  overscroll-behavior:auto;
}

.trace-note {
  font-size:12px;
  color:var(--muted);
  margin:16px 0 2px;
}

.message {
  padding:24px 0;
  border-bottom:1px solid var(--line);
  scroll-margin-top:12px;
}

.message-heading {
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:12px;
}

.message-heading h2 {
  font-size:14px;
  margin:0;
}

.message-number {
  font:12px ui-monospace,SFMono-Regular,monospace;
  color:var(--muted);
  min-width:27px;
}

.message-body {
  padding-left:41px;
}

.part {
  margin:10px 0;
  scroll-margin-top:16px;
  min-width:0;
}

.part:last-child {
  margin-bottom:0;
}

.feedback {
  background:var(--amber);
  border-radius:5px;
  padding:14px 16px;
}

.feedback-label {
  display:block;
  font-size:12px;
  color:#9a5a0b;
  margin-bottom:7px;
}

.tool-block,.content-block {
  border:1px solid var(--line);
  border-radius:5px;
  overflow:hidden;
}

.tool-block>summary,.content-block>summary {
  padding:10px 13px;
  background:#f7f9fa;
  font-size:13px;
}

.tool-block summary strong {
  font-weight:650;
}

.tool-hint {
  margin-left:9px;
  color:#506176;
  overflow-wrap:anywhere;
}

.tool-block summary small {
  margin:3px 0 0 16px;
  font-size:11px;
}

.tool-content {
  padding:12px 16px;
}

.tool-content pre,.content-block>pre {
  padding:12px 14px;
  background:var(--soft);
  border-radius:4px;
}

.content-block>pre {
  margin:14px;
}

.tool-output {
  white-space:pre-wrap;
}

.content-label {
  font-size:12px;
  color:var(--muted);
  margin-top:6px;
  display:flex;
  justify-content:space-between;
  gap:10px;
}

.content-label a {
  font-size:11px;
}

.raw-data {
  margin-top:10px;
  font-size:12px;
  color:var(--muted);
}

.raw-data>summary {
  font-size:11px;
}

.raw-data pre {
  background:var(--soft);
  padding:12px;
  color:var(--ink);
}

.content-block>.raw-data {
  margin:14px;
}

.result-reference {
  font-size:12px;
  color:var(--muted);
  padding:8px 0;
}

.result-reference>a {
  margin-left:14px;
}

.code-block {
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:5px;
  margin:14px 0;
}

.code-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--muted);
  font-size:12px;
  padding:5px 12px;
  border-bottom:1px solid var(--line);
}

.code-heading button {
  min-height:25px;
  font-size:11px;
  padding:1px 6px;
}

.code-block pre {
  padding:12px 14px;
  margin:0;
  white-space:pre;
  tab-size:4;
}

.trace-end {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:12px;
  margin:26px 0;
}

.diagnostics {
  font-size:12px;
  margin:14px 0;
  padding-top:14px;
  border-top:1px solid var(--line);
}

.diagnostics p {
  margin-top:12px;
}

.search-current {
  outline:2px solid #ccad55!important;
  outline-offset:5px;
}

.jump-target {
  outline:2px solid #92bfb3!important;
  outline-offset:5px;
}

::highlight(trace-match) {
  background:#ffe6a4;
  color:#252c32;
}

.review-pane {
  background:#fcfdfd;
}

.review-header {
  padding:25px 26px 20px;
  display:flex;
  align-items:center;
  gap:16px;
}

.review-header h2 {
  margin:0;
  font-size:20px;
}

.review-header span {
  font-size:12px;
}

.review-header .dirty {
  color:#a26613;
}

#review-form {
  display:flex;
  flex-direction:column;
  min-height:0;
  flex:1;
}

.review-fields {
  overflow:auto;
  min-height:0;
  flex:1;
  padding:10px 26px 12px;
  overscroll-behavior-x:auto;
  overscroll-behavior-y:contain;
  scrollbar-gutter:stable;
}

.review-fields textarea {
  background:#fff;
  line-height:1.8;
  min-height:154px;
}

.review-fields textarea[name=best_practice] {
  min-height:108px;
}

.optional {
  font-weight:400;
  color:var(--muted);
}

.field-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.field-pair label {
  margin-bottom:12px;
}

.review-fields small {
  font-size:11px;
}

#last-saved {
  display:block;
  margin-top:6px;
}

.review-footer {
  flex-shrink:0;
  margin:0 26px;
  padding:16px 0 22px;
  border-top:1px solid var(--line);
  background:#fcfdfd;
}

.review-footer p {
  font-size:12px;
  color:var(--muted);
  margin-bottom:14px;
  overflow-wrap:anywhere;
}

.review-footer p.error {
  color:#a14c2e;
}

.review-footer p.success {
  color:var(--green);
}

.review-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
}

.review-actions button {
  font-size:13px;
  min-height:43px;
  padding:9px 13px;
}

.review-actions .quiet {
  margin-left:auto;
  font-size:12px;
  padding:7px 3px;
}

#relogin {
  font-size:12px;
}

.enhanced .mobile-switch {
  display:none!important;
}

@media(min-width:1500px) {
  .message-body {
    max-width:1050px;
  }
  .trace-header,.trace-scroll {
    padding-left:36px;
    padding-right:36px;
  }
  .review-fields,.review-header {
    padding-left:32px;
    padding-right:32px;
  }
}

@media(max-width:1000px) and (min-width:761px) {
  .nav {
    gap:14px;
    padding:0 20px;
  }
  .workbench {
    grid-template-columns:minmax(0,1.3fr) minmax(340px,1fr);
  }
  .trace-header {
    padding:20px 18px 14px;
  }
  .trace-scroll {
    padding-inline:18px;
  }
  .message-body {
    padding-left:0;
  }
  .search-step {
    padding-inline:4px;
    font-size:10px;
  }
  .reader-toolbar {
    gap:6px;
  }
  .reader-toolbar .button {
    padding-inline:8px;
  }
  .review-header,.review-fields {
    padding-inline:20px;
  }
  .review-footer {
    margin-inline:20px;
  }
  .review-actions button {
    padding-inline:8px;
    font-size:12px;
  }
  .field-pair {
    gap:10px;
  }
}

/* 窄屏共用同一份 DOM/表单，切换工作区不会丢输入；无 JS 时恢复正常上下阅读。 */
@media(max-width:760px) {
  :root { --nav-height:104px; }
  /* 两个入口在窄屏都保留；导航占用的高度与轨迹工作区共用变量。 */
  .nav {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:52px 44px;
    grid-template-areas:"brand end" "links context";
    padding:0 16px 8px;
    gap:0 12px;
  }
  .nav > .brand { grid-area:brand; }
  .primary-nav { grid-area:links; justify-self:start; }
  .nav-link { padding-inline:14px; }
  .nav-context { grid-area:context; justify-self:end; }
  .brand {
    font-size:17px;
  }
  .nav-case {
    display:none;
  }
  .nav-end {
    grid-area:end;
    gap:8px;
  }
  .nav-end .quiet,.raw-link {
    font-size:12px;
  }
  .badge {
    font-size:11px;
    padding:3px 6px;
  }
  main {
    margin:25px auto;
    padding:0 18px;
  }
  .heading {
    align-items:start;
    flex-direction:column;
    gap:12px;
  }
  .heading h1 {
    font-size:25px;
  }
  .heading p {
    font-size:13px;
  }
  .filters {
    flex-wrap:wrap;
    gap:12px;
  }
  .filters label {
    min-width:0;
    flex:1 1 40%;
    font-size:12px;
  }
  .filters select {
    font-size:13px;
  }
  /* 窄屏保留表格列和案例定位，横向滚动仅发生在表格内。 */
  .cases tbody th,.cases thead th:first-child { position:sticky; left:0; z-index:1; }
  .login {
    margin:8vh auto 25px;
    padding:24px;
  }
  .raw {
    padding:15px;
  }
  .workbench {
    height:auto;
    display:block;
  }
  .trace-pane {
    border-right:0;
  }
  .trace-scroll {
    overflow:visible;
    padding:0 18px 24px;
  }
  .trace-header {
    padding:18px 16px 12px;
  }
  .panel-heading {
    gap:12px;
    margin-bottom:14px;
  }
  .panel-heading h1 {
    font-size:18px;
  }
  .panel-heading>.muted {
    font-size:11px;
  }
  .reader-toolbar {
    gap:7px;
    flex-wrap:wrap;
  }
  .reader-toolbar .button {
    font-size:12px;
    min-height:36px;
    padding:6px 9px;
  }
  .directory>summary {
    font-size:12px;
    min-height:36px;
    padding:6px 10px;
  }
  .enhanced .search-group {
    order:3;
    flex:1 0 100%;
    height:37px;
  }
  .search-group input {
    font-size:14px;
  }
  .search-step {
    font-size:11px;
  }
  .feedback-jump {
    margin-left:auto;
  }
  .context-popover {
    top:50px;
    right:16px;
    width:calc(100% - 32px);
  }
  .directory-menu {
    width:calc(100vw - 32px);
    max-height:50vh;
  }
  .message {
    padding:20px 0;
  }
  .message-body {
    padding-left:0;
  }
  .message-heading {
    gap:8px;
  }
  .prose {
    font-size:14px;
    line-height:1.85;
  }
  .tool-content {
    padding:10px;
  }
  .tool-hint {
    margin-left:5px;
  }
  .tool-content pre,.code-block pre {
    font-size:12px;
  }
  .trace-scroll pre {
    max-height:min(320px,50dvh);
  }
  .content-label {
    flex-wrap:wrap;
  }
  .review-header {
    padding:20px 20px 12px;
  }
  .review-header h2 {
    font-size:18px;
  }
  .review-fields {
    padding:10px 20px 20px;
  }
  .review-fields textarea {
    font-size:16px;
    min-height:145px;
  }
  .review-fields input {
    font-size:16px;
  }
  .review-fields label {
    font-size:13px;
  }
  .review-footer {
    margin-inline:20px;
    padding:12px 0 16px;
  }
  .review-footer p {
    margin-bottom:9px;
  }
  .review-actions {
    gap:8px;
  }
  .review-actions button {
    font-size:12px;
    padding:9px 11px;
  }
  .field-pair {
    gap:12px;
  }
  body:has(.workbench) {
    overflow:auto;
  }
  .enhanced body:has(.workbench) {
    overflow:hidden;
  }
  .enhanced .workbench {
    height:calc(100dvh - var(--nav-height));
    display:flex;
    flex-direction:column;
  }
  .enhanced .mobile-switch {
    display:flex!important;
    flex-shrink:0;
    border-bottom:1px solid var(--line);
    padding:0 16px;
    gap:24px;
    background:#fff;
  }
  .mobile-switch button {
    min-height:43px;
    border:0;
    border-bottom:2px solid transparent;
    border-radius:0;
    background:transparent;
    color:var(--muted);
    font-size:13px;
    padding:8px 0;
  }
  .mobile-switch button[aria-pressed=true] {
    border-bottom-color:var(--green);
    color:var(--green);
  }
  .enhanced .trace-pane,.enhanced .review-pane {
    flex:1;
    min-height:0;
  }
  .enhanced .trace-scroll {
    overflow:auto;
  }
  .enhanced .workbench[data-view=trace] .review-pane,.enhanced .workbench[data-view=review] .trace-pane {
    display:none;
  }
  .enhanced .review-fields {
    overflow:auto;
  }
  .enhanced .review-header {
    flex-shrink:0;
  }
}

@media(prefers-reduced-motion:no-preference) {
  button,a {
    transition:background-color .12s,color .12s;
  }
}

[hidden].js-only {
  display:none!important;
}


.system-context > summary,
.long-text > summary {
  padding: 9px 12px;
  background: var(--soft);
  color: var(--muted);
  border-radius: 4px;
  font-size: 12px;
}
.system-context > summary {
  margin-left: 41px;
}
.system-context > summary span {
  display: inline-block;
  max-width: 60ch;
  overflow: hidden;
  vertical-align: bottom;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.system-context[open] > summary,
.long-text[open] > summary {
  margin-bottom: 12px;
}
@media (max-width: 1000px) {
  .system-context > summary { margin-left: 0; }
  .system-context > summary span { max-width: 100%; }
}

/* 发送预览复用左侧阅读区域，不增加第三个常驻面板。 */
.version-tabs { display:flex; gap:8px; align-items:center; margin:12px 0; flex-wrap:wrap; }
.enhanced .version-tabs { display:flex!important; }
.version-tabs button { padding:5px 12px; min-height:32px; background:transparent; color:var(--muted); border:1px solid var(--line); }
.version-tabs button[aria-pressed=true] { background:var(--soft); color:var(--accent); border-color:var(--accent); }
#send-state { font-size:12px; color:var(--muted); }
.enhanced .send-controls,.enhanced #rules-form,.enhanced .rules-try { display:block!important; }
.send-controls { margin-bottom:20px; border:1px solid var(--line); border-radius:5px; padding:12px; }
.send-controls summary { font-weight:600; }
.send-controls p,.send-controls small { font-size:12px; color:var(--muted); }
.send-controls label { margin-top:14px; }
.review-fields .send-controls textarea { min-height:85px; font-size:13px; }
.send-summary { margin:20px 0; padding:16px; border:1px solid var(--line); border-radius:5px; background:#fff; }
.send-summary h2 { font-size:18px; }
.send-summary h2 small { font-size:12px; font-weight:400; }
.send-summary details { margin:16px 0; }
.send-summary p,.send-summary summary { font-size:13px; }
.send-change { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 14px; margin:10px 0; border-top:1px solid var(--line); padding-top:8px; }
.send-change h3 { grid-column:1/-1; font-size:11px; color:var(--muted); overflow-wrap:anywhere; margin:0; }
.change-line { display:flex; min-width:0; gap:6px; align-items:baseline; }
.change-label { flex:0 0 3.5em; white-space:nowrap; font-size:11px; color:var(--muted); }
.change-line code { min-width:0; padding:3px 5px; font-size:12px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; background:var(--soft); }
.change-line mark { padding:1px; border-radius:3px; font-weight:500; color:inherit; }
.change-before mark { background:#ffe3dc; color:#8d3024; }
.change-after mark { background:#d8eee4; color:#205d47; }
.finding-list { font-size:12px; overflow:auto; max-height:260px; overflow-wrap:anywhere; }
.rules-page { max-width:1440px; margin:32px auto; padding:0 32px 48px; }
.rules-page h1 { font-size:26px; }
.rules-page p { color:var(--muted); }
.rules-actions { display:flex; gap:12px; align-items:center; margin:24px 0 12px; flex-wrap:wrap; }
.rule-row { border:1px solid var(--line); border-radius:5px; margin:14px 0; padding:16px; display:grid; grid-template-columns:70px 1fr 150px; gap:14px; min-width:0; }
.rule-row label { min-width:0; }
.rule-row label:has([name=pattern]) { grid-column:1/3; }
.rule-row input[type=checkbox] { width:18px; height:18px; display:block; }
.rule-row-actions { grid-column:1/-1; display:flex; gap:10px; }
.rules-try { margin-top:32px; border-top:1px solid var(--line); padding-top:20px; }
.rules-try pre { max-height:400px; overflow:auto; padding:16px; background:var(--soft); }
@media(max-width:760px) {
 .rule-row { grid-template-columns:1fr; }
 .rule-row label:has([name=pattern]) { grid-column:auto; }
 .version-tabs { margin:8px 0; }
 .send-summary { padding:12px; }
}

/* 回执只显示小字段，长提交 ID 不撑宽复盘栏；正文仍在左侧同一个阅读区。 */
.delivery-status { border:1px solid var(--border, #dfe3e8); border-radius:10px; padding:14px; margin-bottom:20px; background:var(--surface, #fff); overflow-wrap:anywhere; }
.delivery-status h3 { margin:0 0 8px; font-size:15px; }
.delivery-status p { margin:6px 0; font-size:12px; line-height:1.6; }
.delivery-status .delivery-success { color:#267044; }
.delivery-status .delivery-failed { color:#a13d31; }
#confirm-send, #retry-send { width:100%; margin:8px 0; }
.enhanced .delivery-status:not([hidden]) { display:block!important; }

/* 概览采用同一套表格列；编辑行按需展开，长模式不挤占日常浏览空间。 */
.rules-actions { background:var(--bg, #fff); padding:12px; border:1px solid var(--line); border-radius:6px; }
.rules-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.rules-section-heading { margin-top:32px; }
.rules-page h2 { font-size:19px; }
#builtin-count { font-size:13px; font-weight:400; }
.rules-table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:6px; }
.rules-table { width:100%; min-width:960px; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:13px; }
.rules-table .rule-name-col { width:170px; }
.rules-table .rule-kind-col { width:115px; }
.rules-table .rule-category-col { width:155px; }
.rules-table .rule-state-col { width:105px; }
.rules-table .rule-action-col { width:72px; }
.rules-table th,.rules-table td { padding:10px 14px; border:0; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; overflow-wrap:anywhere; }
.rules-table thead th { background:var(--soft); color:var(--muted); font-size:12px; font-weight:600; }
.rules-table .rule-title { font-size:13px; font-weight:600; color:var(--ink); background:inherit; }
.rules-table .rule-category { font:12px/1.5 ui-monospace,monospace; }
.rules-table .rule-kind { color:var(--muted); }
.rule-overview { background:#fff; }
.rule-group:last-child:not(.rule-open) .rule-overview > *,.rule-group:last-child .rule-editor > td { border-bottom:0; }
.rule-group.rule-off .rule-overview { background:var(--soft); }
.rule-group.rule-open .rule-overview { background:#eef6f3; }
.rule-overview:hover { background:#f7faf9; }
.rule-toggle { display:flex; align-items:center; gap:8px; white-space:nowrap; font-size:13px; margin:0; }
.rule-toggle input { width:17px; height:17px; margin:0; accent-color:var(--green); }
.rule-state { font-size:12px; font-weight:400; }
.rule-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--muted); line-height:1.6; }
.rule-edit-toggle { color:var(--green); min-height:32px; padding:4px 6px; font-size:13px; }
.rules-table .rule-editor > td { padding:20px; background:#fafcfb; }
.rule-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px 24px; max-width:960px; }
.rule-editor-description { grid-column:1/-1; margin:0; font-size:13px; }
.rule-fields label { min-width:0; margin:0; font-size:13px; }
.rule-fields label:has([name=pattern]),.rule-fields label:has([name=replacement]) { grid-column:1/-1; }
.rule-fields textarea { font-family:ui-monospace,monospace; font-size:13px; overflow-wrap:anywhere; resize:vertical; }
.rule-fields .rule-row-actions { margin-top:0; }
.rules-empty { padding:20px; border:1px dashed var(--line); border-radius:6px; font-size:13px; }
#rules-try { scroll-margin-top:90px; }
.settings-page { max-width:860px; margin:40px auto; padding:0 24px 40px; }
.enhanced #capture-settings-form { display:block!important; }
.settings-page form>label { display:block; margin-top:28px; }
.settings-page small { display:block; color:var(--muted); margin-top:8px; }
.settings-page input[name=keyword] { max-width:360px; }
.settings-examples,.settings-remote,.auto-status { padding:16px; margin:20px 0; border:1px solid var(--line); border-radius:8px; background:var(--soft); overflow-wrap:anywhere; }
.settings-examples p { margin:8px 0; }
.settings-examples span { display:block; margin-top:6px; color:var(--muted); }
.settings-page .settings-toggle { display:flex; align-items:center; gap:10px; }
.settings-toggle input { width:18px; height:18px; margin:0; }
.settings-actions { display:flex; align-items:center; gap:16px; margin-top:28px; }
@media(max-width:760px) {
 .rules-page { padding:0 16px 32px; margin-top:24px; }
 .rule-fields { grid-template-columns:minmax(0,1fr); width:calc(100vw - 74px); position:sticky; left:0; }
 .rules-actions { gap:10px; }
 /* 窄屏仅表格横向滚动，名称列保留定位；编辑表单随可视区显示。 */
 .rules-table .rule-title,.rules-table thead th:first-child { position:sticky; left:0; z-index:1; background:inherit; }
 .rules-table thead th:first-child { background:var(--soft); }
 .rules-table thead { background:var(--soft); }
}

/* 每个单元格都是原生链接，包含留白；整行悬停/键盘焦点提供一致反馈。 */
.cases .case-row>td,.cases .case-row>th { padding:0; }
.cases .case-cell,.cases .case-title,.cases .case-open { display:block; padding:16px 12px; min-height:58px; color:inherit; text-decoration:none; }
.cases .case-row:hover,.cases .case-row:focus-within { background:var(--accent-soft,#edf5f2); }
.cases .case-row a:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; }
