/* 产品化第 1 步：专题“研究口径”页签（topic-profile.js）与“事件”页签的事件工作台（event-workbench.js）。
   作用域：.topic-tab-profile 与 .workbench；颜色全部取令牌（tokens.css），不写内联样式（CSP style-src 'self'）。
   状态层级配色：规划 --ss-plan、研制 --ss-warn、在轨 --ss-accent、常态 --ss-ink、异常 --ss-danger、待定 --ss-muted（不用绿色）。 */

/* ===== 研究口径 ===== */
.topic-tab-profile{max-width:880px}
.topic-tab-profile:focus:not(:focus-visible){outline:none}
.profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 16px}
.profile-head h2{margin:0;font-family:var(--ss-font-serif);font-size:var(--ss-text-xl);font-weight:600;line-height:1.4}
.profile-head .hint{margin:4px 0 0;color:var(--ss-muted);font-size:var(--ss-text-sm)}
.profile-head .profile-edit{flex:none}
.profile-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;margin:0 0 8px;border-top:1px solid var(--ss-ink);border-bottom:1px solid var(--ss-line)}
.profile-fact{padding:10px 16px 12px 0}
.profile-fact dt{color:var(--ss-muted);font-size:var(--ss-text-xs);letter-spacing:.1em}
.profile-fact dd{margin:2px 0 0;color:var(--ss-ink);font-size:var(--ss-text-md);font-weight:600;font-variant-numeric:tabular-nums}
.profile-fact dd.is-muted{color:var(--ss-muted);font-weight:400;font-size:var(--ss-text-sm)}
.profile-block{padding:16px 0;border-bottom:1px solid var(--ss-line)}
.profile-block>h3{margin:0 0 8px;color:var(--ss-ink-2);font-size:var(--ss-text-xs);font-weight:500;letter-spacing:.12em}
.profile-block>.hint{margin:8px 0 0;color:var(--ss-muted);font-size:var(--ss-text-xs);line-height:1.6}
.profile-text{margin:0;color:var(--ss-ink);font-family:var(--ss-font-serif);font-size:var(--ss-text-md);line-height:var(--ss-leading-read);white-space:pre-line}
.profile-text.is-muted{color:var(--ss-muted);font-family:var(--ss-font);font-size:var(--ss-text-sm)}
.profile-brief-title{margin:0;color:var(--ss-ink);font-weight:600}
.profile-brief{margin-top:6px}
.profile-brief summary{color:var(--ss-primary-text);font-size:var(--ss-text-sm);cursor:pointer}
.profile-brief .profile-text{margin-top:6px}
.profile-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.profile-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid var(--ss-line-2);border-radius:var(--ss-radius-pill);color:var(--ss-ink);font-size:var(--ss-text-sm)}
.profile-chip.is-extra{border-style:dashed;color:var(--ss-ink-2)}
.profile-type-domains{margin:8px 0 0;color:var(--ss-ink-2);font-size:var(--ss-text-sm);line-height:1.7}
.profile-chip-count{color:var(--ss-muted);font-size:var(--ss-text-xs);font-variant-numeric:tabular-nums}
/* 能力阶梯：横向台阶，有事件的台阶加声纳青底线；窄屏改为竖排 */
.profile-ladder{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:0;margin:0;padding:0;list-style:none;counter-reset:none}
.profile-step{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 12px 10px 0;border-bottom:3px solid var(--ss-line)}
.profile-step+.profile-step{padding-left:14px}
.profile-step+.profile-step::before{content:"";position:absolute;left:0;top:14px;width:7px;height:7px;border:solid var(--ss-muted);border-width:1.5px 1.5px 0 0;transform:rotate(45deg)}
.profile-step.has-events{border-bottom-color:var(--ss-accent)}
.profile-step-no{color:var(--ss-muted);font:500 var(--ss-text-xs)/1.4 var(--ss-font-mono)}
.profile-step-name{color:var(--ss-ink);font-weight:600}
.profile-step-count{color:var(--ss-muted);font-size:var(--ss-text-xs)}
.profile-step.has-events .profile-step-count{color:var(--ss-accent-text)}
.profile-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.profile-stage-group h4{display:flex;align-items:center;gap:6px;margin:0 0 6px;color:var(--ss-ink-2);font-size:var(--ss-text-sm);font-weight:600}
.profile-stage-group h4::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--level-color,var(--ss-muted))}
.profile-stage-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;font-size:var(--ss-text-sm);color:var(--ss-ink)}
.profile-stage-list li{display:flex;justify-content:space-between;gap:8px}
.profile-empty{max-width:640px;padding:24px 0}
.profile-empty h2{margin:0 0 8px;font-family:var(--ss-font-serif);font-size:var(--ss-text-xl)}
.profile-empty p{margin:0 0 16px;color:var(--ss-ink-2);line-height:1.7}
.profile-empty-actions{display:flex;flex-wrap:wrap;gap:8px}
/* 编辑视图 */
.profile-editor{display:flex;flex-direction:column;gap:16px;max-width:760px}
.profile-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.profile-editor-head h2{margin:0;font-family:var(--ss-font-serif);font-size:var(--ss-text-xl)}
.profile-editor-head select{width:auto}
.profile-fieldset{display:flex;flex-direction:column;gap:8px;margin:0;padding:12px 0 0;border:0;border-top:1px solid var(--ss-line)}
.profile-fieldset legend{padding:0 8px 0 0;color:var(--ss-ink);font-weight:600}
.profile-fieldset>.hint{margin:0;color:var(--ss-muted);font-size:var(--ss-text-xs);line-height:1.6}
.profile-area{width:100%;min-height:96px;resize:vertical;line-height:1.7}
.profile-area.is-short{min-height:64px}
.profile-dates,.profile-stage-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}
.profile-stage-fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.profile-editor-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0;border-top:1px solid var(--ss-line);background:var(--ss-bg)}
.profile-editor-actions [role=alert]{flex-basis:100%;margin:0;color:var(--ss-danger-text)}
.profile-editor-actions [role=alert]:empty{display:none}

/* 状态层级的颜色变量（研究口径与工作台共用） */
.level-plan{--level-color:var(--ss-plan)}
.level-develop{--level-color:var(--ss-warn)}
.level-orbit{--level-color:var(--ss-accent)}
.level-routine{--level-color:var(--ss-ink)}
.level-anomaly{--level-color:var(--ss-danger)}
.level-unset{--level-color:var(--ss-muted)}

/* ===== 事件工作台 ===== */
.workbench-head{padding:14px var(--mx) 0}
.workbench-period{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0 0 10px;color:var(--ss-ink-2);font-size:var(--ss-text-sm)}
.workbench-period-key{color:var(--ss-muted);font-size:var(--ss-text-xs);letter-spacing:.1em}
.workbench-period-value{color:var(--ss-ink);font-weight:600;font-variant-numeric:tabular-nums}
.workbench-period-sep{color:var(--ss-faint)}
.workbench-missing{color:var(--ss-warn-text)}
/* 分布条：一行按层级比例分段的按钮；按下的一段加深边框，其余变淡 */
.workbench-dist{display:flex;gap:2px;margin:0 0 12px}
.workbench-seg{flex:1 1 0;display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:64px;min-height:36px;padding:6px 10px;border:0;border-top:4px solid var(--level-color);border-radius:0;background:var(--ss-surface-2);color:var(--ss-ink);font-size:var(--ss-text-xs);text-align:left;cursor:pointer}
.workbench-seg:hover{background:var(--ss-primary-softer)}
.workbench-seg[aria-pressed=true]{background:var(--ss-primary-soft);box-shadow:inset 0 -2px 0 var(--level-color)}
.workbench-dist:has([aria-pressed=true]) .workbench-seg[aria-pressed=false]{opacity:.6}
.workbench-seg:disabled{cursor:default;opacity:.5}
.workbench-seg-count{font:600 var(--ss-text-sm)/1 var(--ss-font-mono)}
.workbench-seg.grow-1{flex-grow:1}.workbench-seg.grow-2{flex-grow:2}.workbench-seg.grow-3{flex-grow:3}.workbench-seg.grow-4{flex-grow:4}
.workbench-seg.grow-5{flex-grow:5}.workbench-seg.grow-6{flex-grow:6}.workbench-seg.grow-7{flex-grow:7}.workbench-seg.grow-8{flex-grow:8}
.workbench-seg.grow-9{flex-grow:9}.workbench-seg.grow-10{flex-grow:10}.workbench-seg.grow-11{flex-grow:11}.workbench-seg.grow-12{flex-grow:12}
.workbench-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:0 var(--mx) 12px;border-bottom:1px solid var(--ss-line)}
.workbench-modes{display:inline-flex;border:1px solid var(--ss-line-2);border-radius:var(--ss-radius-control);overflow:hidden}
.workbench-modes button{min-height:32px;padding:0 12px;border:0;border-radius:0;background:transparent;color:var(--ss-ink-2);font-size:var(--ss-text-sm)}
.workbench-modes button+button{border-left:1px solid var(--ss-line-2)}
.workbench-modes button[aria-pressed=true]{background:var(--ss-navy);color:var(--ss-on-navy)}
.workbench-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1 1 360px}
.workbench-filters[hidden]{display:none}
.workbench-filters .search-box{flex:1 1 220px}
.workbench-filters select{width:auto;max-width:180px}
.workbench-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.workbench-timeline{padding:12px var(--mx) 24px}
.workbench-count{margin:0 0 8px;color:var(--ss-muted);font-size:var(--ss-text-xs)}
/* 附录清单 */
table.workbench-table thead th:nth-child(1){width:92px}
table.workbench-table thead th:nth-child(3){width:150px}
table.workbench-table thead th:nth-child(5){width:72px}
table.workbench-table td.workbench-no strong{display:block;color:var(--ss-ink);font:600 var(--ss-text-md)/1.3 var(--ss-font-mono)}
table.workbench-table td.workbench-no .workbench-date{display:block;color:var(--ss-ink-2);font:var(--ss-text-xs)/1.5 var(--ss-font-mono);white-space:nowrap}
table.workbench-table tr.is-background td{color:var(--ss-ink-2)}
table.workbench-table tr.is-background td.workbench-no strong{color:var(--ss-muted);font-family:var(--ss-font);font-size:var(--ss-text-xs);font-weight:500}
table.workbench-table td.workbench-title .link-button{color:var(--ss-ink);font-weight:600;text-align:left}
table.workbench-table td.workbench-title .cell-sub{display:block;color:var(--ss-muted);font-size:var(--ss-text-xs)}
.workbench-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.workbench-type-text{display:inline-flex;align-items:baseline;gap:6px;color:var(--ss-ink);font-size:var(--ss-text-sm)}
table.workbench-table td.workbench-type .workbench-area{display:block;margin-top:2px;color:var(--ss-muted);font-size:var(--ss-text-xs)}
.workbench-dot{flex:none;align-self:center;width:8px;height:8px;border-radius:2px;background:var(--level-color)}
table.workbench-table td.workbench-finding{color:var(--ss-ink);font-size:var(--ss-text-sm);line-height:1.65}
.workbench-codes{margin-left:4px;color:var(--ss-primary-text);font:var(--ss-text-xs)/1.4 var(--ss-font-mono);white-space:nowrap}
.workbench-todo{color:var(--ss-warn-text);font-size:var(--ss-text-sm)}
table.workbench-table th.workbench-group{padding:16px 0 6px 8px;color:var(--ss-ink-2);font-size:var(--ss-text-xs);font-weight:500;letter-spacing:.08em;text-align:left}
/* 记录卡片 */
.workbench-record .record-fields{grid-template-columns:76px minmax(0,1fr)}
.workbench-finding-block{display:flex;flex-direction:column;gap:4px}
.workbench-finding-block p{margin:0;color:var(--ss-ink);font-family:var(--ss-font-serif);line-height:1.75}
.workbench-finding-block p.workbench-todo{font-family:var(--ss-font)}
:is(.workbench-sources,.workbench-merged,.workbench-finding-block) .inspector-label{color:var(--ss-muted);font-size:var(--ss-text-xs);font-weight:500;letter-spacing:.1em}
.workbench-change{margin:0;color:var(--ss-ink-2);font-size:var(--ss-text-sm)}
.workbench-actions-row{display:flex;gap:8px}
.workbench-sources{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--ss-line)}
.workbench-source-list,.workbench-merged-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.workbench-source-list li,.workbench-merged-list li{display:flex;align-items:flex-start;gap:8px}
.workbench-code{flex:none;color:var(--ss-primary-text);font:600 var(--ss-text-xs)/1.9 var(--ss-font-mono)}
.workbench-source-main{display:flex;flex-direction:column;min-width:0;flex:1}
.workbench-source-main .link-button{color:var(--ss-ink);font-size:var(--ss-text-sm);text-align:left;overflow-wrap:anywhere}
.workbench-source-main .cell-sub{color:var(--ss-muted);font-size:var(--ss-text-xs)}
.workbench-evidence summary{color:var(--ss-primary-text);font-size:var(--ss-text-sm);cursor:pointer}
.workbench-merged{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--ss-line)}
.workbench-merged .hint{margin:0;color:var(--ss-muted);font-size:var(--ss-text-xs)}
/* 审核操作：三个核验按钮一行，归并一行（record-actions 默认按列排开，归并的下拉在抽屉里会被挤窄） */
.record-actions.workbench-review{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}
.workbench-merge{display:flex;gap:8px;grid-column:1 / -1}
.workbench-merge select{flex:1;min-width:0}
/* 新建 / 编辑事件对话框 */
.workbench-form .workbench-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 12px}
.workbench-field-stack{display:flex;flex-direction:column;gap:2px}
.workbench-counter{align-self:flex-end;margin:0;font-size:var(--ss-text-xs)}
.workbench-finding-input{min-height:80px;line-height:1.7}
.workbench-check{display:flex;align-items:center;gap:8px}
.workbench-more summary{color:var(--ss-primary-text);font-size:var(--ss-text-sm);cursor:pointer}
.workbench-more[open]{display:flex;flex-direction:column;gap:8px}
.workbench-picker{display:flex;flex-direction:column;gap:8px;margin:0;padding:12px 0 0;border:0;border-top:1px solid var(--ss-line)}
.workbench-picker legend{padding:0;font-weight:600}
.workbench-picker .hint{margin:0;font-size:var(--ss-text-xs)}
.workbench-picker-list{display:flex;flex-direction:column;max-height:240px;margin:0;padding:0;overflow:auto;list-style:none;border:1px solid var(--ss-line);border-radius:var(--ss-radius-control)}
.workbench-picker-list li{border-bottom:1px solid var(--ss-line)}
.workbench-picker-list li:last-child{border-bottom:0}
.workbench-pick{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;cursor:pointer}
.workbench-pick:hover{background:var(--ss-surface-2)}

/* ===== 窄屏 ===== */
@media (max-width:1100px){
  .profile-stages{grid-template-columns:repeat(3,minmax(0,1fr))}
  /* 1100 以下事件页签不再贴边（site.css），页头与工具条不再另加左右留白 */
  .topic-events-tab .workbench-head,.topic-events-tab .workbench-toolbar{padding-left:0;padding-right:0}
}
@media (max-width:800px){
  .profile-head{flex-direction:column}
  .profile-dates{grid-template-columns:1fr}
  .profile-stages{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-ladder{grid-template-columns:1fr}
  .profile-step+.profile-step{padding-left:0}
  .profile-step+.profile-step::before{display:none}
  .workbench-dist{flex-wrap:wrap}
  .workbench-seg{flex:1 1 30%}
  .workbench-actions{margin-left:0}
  /* 附录清单逐行堆叠：第 1 行编号与日期 · 核验，第 2 行事件，第 3 行事件类型与研究领域，第 4 行事实与能力状态（窄屏不丢列） */
  table.workbench-table,table.workbench-table tbody{display:block}
  table.workbench-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  table.workbench-table tr.group-row,table.workbench-table th.workbench-group{display:block}
  table.workbench-table tr[data-event-id]{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"no status" "title title" "type type" "finding finding";gap:4px 12px;padding:10px 8px;border-bottom:1px solid var(--ss-line)}
  table.workbench-table.data-table tr[data-event-id]>td{display:block;min-width:0;padding:0;border:0}
  table.workbench-table.data-table tr[data-event-id]>td.workbench-no{grid-area:no;display:flex;align-items:baseline;gap:8px}
  table.workbench-table td.workbench-no strong,table.workbench-table td.workbench-no .workbench-date{display:inline}
  table.workbench-table td.workbench-status{grid-area:status}
  table.workbench-table td.workbench-title{grid-area:title}
  table.workbench-table.data-table tr[data-event-id]>td.workbench-type{grid-area:type;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
  table.workbench-table td.workbench-type .workbench-area{margin-top:0}
  table.workbench-table td.workbench-finding{grid-area:finding}
  table.workbench-table tr[data-event-id][aria-current=true]{box-shadow:inset 2px 0 0 var(--ss-accent)}
  table.workbench-table .empty-cell{display:block}
}
@media (max-width:480px){
  .workbench-modes button,.workbench-seg,.profile-empty-actions button,.workbench-toolbar select,.workbench-toolbar input{min-height:44px}
  table.workbench-table td.workbench-title .link-button{display:flex;align-items:center;min-height:44px}
}

/* ===== 打印与强制颜色 ===== */
@media print{
  .workbench-toolbar,.workbench-dist,.profile-edit,.record-card{display:none}
}
@media (forced-colors:active){
  .workbench-seg,.profile-step{border-color:CanvasText}
  .workbench-seg[aria-pressed=true]{outline:2px solid Highlight}
  .workbench-dot,.profile-stage-group h4::before{forced-color-adjust:none;background:CanvasText}
}
