:root {
  --bg: #071017;
  --panel: #0d1b25;
  --panel-2: #102633;
  --line: #203a4b;
  --text: #e5f3f8;
  --muted: #8fb0be;
  --cyan: #3ee6c5;
  --blue: #58a6ff;
  --amber: #ffd166;
  --danger: #ff6b6b;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: radial-gradient(circle at top left, rgba(62, 230, 197, .10), transparent 34%), var(--bg);
  color: var(--text);
  font: 14px/1.6 "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
}
a { color: inherit; text-decoration: none; }

.shell { display: grid; grid-template-columns: 284px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
  border-right: 1px solid var(--line);
  background: rgba(8, 20, 29, .92);
  padding: 22px 18px;
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.brand { display: block; }
.brand-title { font-size: 22px; font-weight: 700; letter-spacing: 0; line-height: 1.25; word-break: keep-all; }
.brand-sub { font-size: 11px; color: var(--muted); text-transform: uppercase; }
.nav {
  margin-top: 28px;
  display: grid;
  gap: 8px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-bottom: 12px;
}
.nav a {
  padding: 10px 12px;
  border: 1px solid transparent;
  color: var(--muted);
}
.nav a:hover {
  color: var(--text);
  border-color: var(--line);
  background: rgba(62,230,197,.06);
}
.userbox {
  flex: 0 0 auto;
  display: flex; justify-content: space-between; gap: 12px; color: var(--muted);
  border-top: 1px solid var(--line); padding-top: 14px; margin-top: 12px;
}
.main { padding: 26px; min-width: 0; }
.page-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
h1 { margin: 0; font-size: 26px; }
p { margin: 0; }
.page-head p, .muted { color: var(--muted); }
.date-chip, .ghost-btn {
  border: 1px solid var(--line);
  background: rgba(62,230,197,.06);
  padding: 8px 12px;
  color: var(--cyan);
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(520px, 1.15fr) minmax(360px, .85fr);
  gap: 14px;
  margin-bottom: 18px;
  align-items: stretch;
}
.metric-card {
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(16,38,51,.96), rgba(13,27,37,.96));
  padding: 16px;
}
.metric-card span { display: block; color: var(--muted); }
.metric-card strong { display: inline-block; margin-top: 8px; font-size: 32px; color: var(--cyan); }
.metric-card em { color: var(--muted); font-style: normal; margin-left: 4px; }

.panel {
  border: 1px solid var(--line);
  background: rgba(13,27,37,.90);
  padding: 16px;
  margin-bottom: 18px;
}
.panel-title { font-weight: 700; margin-bottom: 12px; color: var(--cyan); }
.pie-panel {
  display: grid;
  grid-template-columns: 240px minmax(220px, 1fr);
  gap: 20px;
  align-items: center;
}
.pie-panel .panel-title {
  grid-column: 1 / -1;
  margin-bottom: 0;
}
.report-home-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.report-home-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.report-home-head strong {
  display: block;
  color: var(--text);
  font-size: 18px;
  line-height: 1.35;
}
.report-home-head span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  margin-top: 6px;
}
.report-home-head i {
  flex: 0 0 auto;
  font-style: normal;
  color: var(--cyan);
  border: 1px solid rgba(62,230,197,.35);
  background: rgba(62,230,197,.08);
  padding: 3px 8px;
  font-size: 13px;
}
.report-home-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}
.report-home-stats span {
  border: 1px solid var(--line);
  background: rgba(88,166,255,.06);
  color: var(--muted);
  padding: 8px 10px;
  font-size: 13px;
}
.report-home-stats strong {
  display: block;
  color: var(--cyan);
  font-size: 22px;
  line-height: 1.15;
}
.report-home-preview {
  color: var(--muted);
  line-height: 1.75;
  margin: 0 0 14px;
  white-space: pre-line;
}
.report-home-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: auto;
}
.pie-wrap {
  position: relative;
  width: 220px;
  height: 220px;
  margin: 0 auto;
}
.pie-chart {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: conic-gradient(
    var(--cyan) 0 var(--a),
    var(--blue) var(--a) var(--b),
    var(--amber) var(--b) var(--c),
    #9aa7b2 var(--c) 100%
  );
  box-shadow: 0 0 38px rgba(62,230,197,.12);
}
.pie-chart::after {
  content: "";
  position: absolute;
  inset: 34px;
  border-radius: 50%;
  background: var(--panel);
  border: 1px solid var(--line);
}
.pie-center {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  align-content: center;
  font-size: 30px;
  font-weight: 700;
  color: var(--text);
  z-index: 1;
}
.pie-center span {
  font-size: 12px;
  color: var(--muted);
  margin-top: -8px;
}
.legend {
  display: grid;
  gap: 10px;
}
.legend div {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 8px 0;
}
.legend i {
  width: 10px;
  height: 10px;
  display: inline-block;
}
.lg-pol { background: var(--cyan); }
.lg-ter { background: var(--blue); }
.lg-data { background: var(--amber); }
.lg-other { background: #9aa7b2; }
.narrow { max-width: 560px; }
table { width: 100%; border-collapse: collapse; table-layout: fixed; }
th, td {
  border-bottom: 1px solid var(--line);
  padding: 10px;
  text-align: left;
  vertical-align: top;
  word-break: break-word;
}
th { color: #cce9f1; background: rgba(88,166,255,.08); font-weight: 700; }
tbody tr:hover { background: rgba(62,230,197,.05); cursor: pointer; }
.stars { color: var(--amber); white-space: nowrap; }
.event-table { min-width: 1240px; }
.event-table th { white-space: nowrap; }
.event-table th:nth-child(1), .event-table td:nth-child(1) { width: 4%; }
.event-table th:nth-child(2), .event-table td:nth-child(2) { width: 6%; white-space: nowrap; }
.event-table th:nth-child(3), .event-table td:nth-child(3) { width: 8%; white-space: nowrap; }
.event-table th:nth-child(4), .event-table td:nth-child(4) { width: 8%; white-space: nowrap; }
.event-table th:nth-child(5), .event-table td:nth-child(5) { width: 10%; }
.event-table th:nth-child(6), .event-table td:nth-child(6) { width: 10%; }
.event-table th:nth-child(7), .event-table td:nth-child(7) { width: 27%; }
.event-table th:nth-child(8), .event-table td:nth-child(8) { width: 13%; }
.event-table th:nth-child(9), .event-table td:nth-child(9) { width: 14%; }
.event-table td:nth-child(7),
.event-table td:nth-child(8),
.event-table td:nth-child(9) {
  word-break: normal;
  overflow-wrap: anywhere;
}
.event-table td:nth-child(7) { line-height: 1.65; }
.event-table td:nth-child(8), .event-table td:nth-child(9) { line-height: 1.55; }
.empty { text-align: center; color: var(--muted); }
.pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  padding-top: 14px;
  color: var(--muted);
}
.pager a, .pager span {
  border: 1px solid var(--line);
  padding: 6px 12px;
}
.pager a { color: var(--cyan); }
.pager strong { color: var(--text); }

.form { display: grid; gap: 10px; }
label { color: var(--muted); }
input, select {
  width: 100%;
  border: 1px solid var(--line);
  background: #07131b;
  color: var(--text);
  padding: 10px 12px;
}
input[type="hidden"] {
  display: none !important;
}
.password-field {
  position: relative;
}
.password-field input {
  padding-right: 44px;
}
.password-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  min-height: 30px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
}
.password-toggle:hover {
  background: rgba(62,230,197,.08);
  color: var(--cyan);
}
.password-toggle svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.date-picker {
  position: relative;
  min-width: 0;
}
.date-display {
  width: 100%;
  min-height: 44px;
  border-color: var(--line);
  background: #07131b;
  color: var(--text);
  text-align: left;
  padding: 10px 38px 10px 12px;
}
.date-display::after {
  content: "日";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--cyan);
  font-size: 12px;
  pointer-events: none;
}
.date-display.is-empty {
  color: var(--muted);
}
.native-date {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}
button {
  border: 1px solid var(--cyan);
  background: rgba(62,230,197,.12);
  color: var(--cyan);
  padding: 10px 14px;
  cursor: pointer;
}
button:hover { background: rgba(62,230,197,.20); }
.mini { padding: 6px 10px; }
button.danger {
  border-color: rgba(255,107,107,.65);
  color: var(--danger);
  background: rgba(255,107,107,.10);
}
button.danger:hover { background: rgba(255,107,107,.18); }
.check { display: flex; gap: 8px; align-items: center; }
.check input { width: auto; }
.filter { min-width: 260px; }
.filter-wide {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) 118px 150px 150px auto;
  gap: 8px;
  align-items: center;
  min-width: min(800px, 100%);
}
.download-bar {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-bottom: 12px;
}
.download-bar a {
  border: 1px solid var(--line);
  color: var(--cyan);
  padding: 8px 12px;
  background: rgba(62,230,197,.06);
}
.graph-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.graph-tabs a, .file-grid a {
  border: 1px solid var(--line);
  background: rgba(62,230,197,.06);
  color: var(--cyan);
  padding: 8px 12px;
}
.graph-frame-wrap {
  position: relative;
  min-height: 760px;
  background: #07131b;
  border: 1px solid var(--line);
}
.graph-frame {
  width: 100%;
  height: 760px;
  border: 0;
  background: #07131b;
  display: block;
}
.graph-loading {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 16px;
  background: rgba(7, 16, 23, .92);
  transition: opacity .22s ease, visibility .22s ease;
}
.graph-frame-wrap.is-loaded .graph-loading {
  opacity: 0;
  visibility: hidden;
}
.graph-loading p {
  color: var(--muted);
  font-size: 13px;
}
.box-loading {
  display: flex;
  gap: 6px;
  width: min(420px, calc(100vw - 96px));
}
.box-loading span {
  flex: 1;
  height: 7px;
  background: #222a38;
  border-radius: 2px;
  animation: blockLight 1.6s infinite ease;
}
.box-loading span:nth-child(1) { animation-delay: 0s; }
.box-loading span:nth-child(2) { animation-delay: .15s; }
.box-loading span:nth-child(3) { animation-delay: .3s; }
.box-loading span:nth-child(4) { animation-delay: .45s; }
.box-loading span:nth-child(5) { animation-delay: .6s; }
.box-loading span:nth-child(6) { animation-delay: .75s; }
.box-loading span:nth-child(7) { animation-delay: .9s; }
.box-loading span:nth-child(8) { animation-delay: 1.05s; }
@keyframes blockLight {
  0%, 100% {
    background: #222a38;
    box-shadow: none;
  }
  50% {
    background: #4299e1;
    box-shadow: 0 0 8px rgba(66, 153, 225, .4);
  }
}
.graph-desc {
  margin: 12px 2px 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.table-preview {
  margin-top: 16px;
  overflow-x: auto;
}
.table-preview + .table-preview {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.table-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  color: var(--cyan);
}
.table-preview-head a {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  background: rgba(62,230,197,.06);
  color: var(--cyan);
  padding: 6px 10px;
}
.table-preview table {
  min-width: 980px;
}
.help-tip {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  margin-left: 6px;
  border: 1px solid rgba(62,230,197,.55);
  border-radius: 50%;
  color: var(--cyan);
  font-size: 11px;
  line-height: 1;
  font-style: normal;
  font-weight: 700;
  cursor: help;
  vertical-align: middle;
}
.help-tip-small {
  width: 14px;
  height: 14px;
  font-size: 10px;
}
.help-tip > span {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  z-index: 20;
  width: min(320px, 72vw);
  transform: translateX(-50%) translateY(4px);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  border: 1px solid var(--line);
  background: rgba(6, 16, 24, .98);
  box-shadow: 0 12px 34px rgba(0,0,0,.32);
  color: var(--text);
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.6;
  font-weight: 400;
  text-align: left;
  white-space: normal;
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.help-tip > span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--line);
}
.help-tip:hover > span,
.help-tip:focus > span {
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.floating-tip {
  position: fixed;
  z-index: 1000;
  width: min(340px, calc(100vw - 24px));
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  border: 1px solid var(--line);
  background: rgba(6, 16, 24, .98);
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
  color: var(--text);
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.6;
  transition: opacity .14s ease, visibility .14s ease;
}
.floating-tip.is-visible {
  visibility: visible;
  opacity: 1;
}
.help-tip > span {
  display: none;
}
.file-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}
.file-grid a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.file-grid em {
  color: var(--muted);
  font-style: normal;
  white-space: nowrap;
}
.inline-files {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}
.inline-files a { color: var(--cyan); }

.workbench {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr) 320px;
  gap: 14px;
  align-items: stretch;
}
.graph-workbench-v2 {
  grid-template-columns: 300px minmax(0, 1fr) 320px;
}
.analysis-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 4px;
}
.analysis-switch button {
  border-color: var(--line);
  background: rgba(88,166,255,.07);
  color: var(--muted);
}
.analysis-switch button.is-active {
  color: var(--cyan);
  border-color: rgba(62,230,197,.65);
  background: rgba(62,230,197,.12);
}
.mode-panel {
  display: grid;
  gap: 10px;
}
.group-list {
  min-height: 320px;
  padding: 4px;
}
.group-list option {
  padding: 8px 6px;
  border-bottom: 1px solid rgba(32,58,75,.55);
}
.level-options {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  background: rgba(7,19,27,.55);
  padding: 10px;
}
.level-options label {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--text);
  font-size: 13px;
}
.level-options input {
  width: auto;
}
.graph-filter {
  display: grid;
  align-content: start;
  gap: 10px;
}
.graph-filter label {
  color: var(--muted);
  font-size: 12px;
}
.graph-filter select,
.graph-filter input {
  width: 100%;
}
.checkline {
  display: flex;
  align-items: center;
  gap: 8px;
}
.checkline input {
  width: auto;
}
.filter-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}
.graph-main {
  min-width: 0;
}
.view-tabs,
.table-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.view-tabs button,
.table-tabs button {
  border-color: var(--line);
  background: rgba(88,166,255,.07);
  color: var(--muted);
  padding: 8px 10px;
}
.view-tabs button.is-active,
.table-tabs button.is-active {
  color: var(--cyan);
  border-color: rgba(62,230,197,.65);
  background: rgba(62,230,197,.10);
}
.graph-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}
.graph-toolbar span {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}
.graph-canvas,
.matrix-panel,
.timeline-panel {
  height: 660px;
  border: 1px solid var(--line);
  background: #07131b;
  overflow: auto;
}
/* .graph-canvas uses Cytoscape which handles its own pan/zoom */
.graph-canvas { overflow: hidden; }
.graph-summary {
  min-height: 38px;
  margin-bottom: 10px;
  border-left: 3px solid var(--cyan);
  background: rgba(62,230,197,.06);
  color: var(--muted);
  padding: 8px 10px;
  line-height: 1.6;
}
.graph-loading-inline {
  height: 100%;
  min-height: 420px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  color: var(--muted);
}
.is-hidden {
  display: none !important;
}
.node-detail {
  overflow: auto;
  max-height: 820px;
}
.node-detail h3 {
  margin: 0 0 4px;
  font-size: 18px;
  line-height: 1.4;
}
.score-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.score-line span {
  border: 1px solid var(--line);
  background: rgba(62,230,197,.06);
  color: var(--cyan);
  padding: 4px 8px;
  font-size: 12px;
}
.reason-box {
  border-left: 3px solid var(--cyan);
  background: rgba(62,230,197,.06);
  padding: 10px;
  color: var(--text);
  margin: 10px 0 12px;
  line-height: 1.7;
}
.node-detail .kv {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 8px 0;
}
.node-detail .kv span {
  color: var(--muted);
}
.node-detail button {
  width: 100%;
  margin-top: 8px;
}
.evidence-list {
  padding-left: 18px;
}
.evidence-list li {
  margin-bottom: 10px;
}
.evidence-list p {
  color: var(--muted);
}
.matrix-panel table,
.research-table-wrap table {
  min-width: 980px;
}
.heat-cell {
  display: inline-block;
  min-width: 46px;
  text-align: center;
  background: rgba(62,230,197, calc(.08 + var(--v) * .42));
  color: var(--text);
  padding: 4px 8px;
}
.timeline-panel {
  padding: 18px;
}
.timeline-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 18px;
  align-items: center;
}
.timeline-intro p,
.timeline-card p {
  color: var(--muted);
}
.timeline-rule-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.timeline-rule-grid span {
  border: 1px solid var(--line);
  background: rgba(62,230,197,.06);
  color: var(--cyan);
  padding: 8px 10px;
}
.timeline-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.timeline-card {
  overflow-x: auto;
}
.timeline-card-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 16px;
  margin-bottom: 12px;
}
.timeline-card-head strong {
  min-width: 72px;
  text-align: center;
  border: 1px solid var(--line);
  background: rgba(88,166,255,.08);
  color: var(--cyan);
  padding: 8px 12px;
  font-size: 26px;
  line-height: 1.2;
}
.timeline-card table {
  min-width: 980px;
}
.timeline-high .panel-title { color: var(--danger); }
.timeline-focus .panel-title { color: var(--amber); }
.timeline-watch .panel-title { color: var(--cyan); }
.report-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
}
.report-toolbar .filter-wide {
  flex: 1 1 auto;
  grid-template-columns: minmax(240px, 1fr) 110px 110px 110px;
}
.report-stat {
  border: 1px solid var(--line);
  background: rgba(62,230,197,.06);
  padding: 8px 10px;
  min-height: 44px;
}
.report-stat span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.1;
}
.report-stat strong {
  display: block;
  color: var(--cyan);
  font-size: 22px;
  line-height: 1.2;
}
.report-template ol {
  margin: 0;
  padding-left: 22px;
  color: var(--muted);
}
.report-template li {
  margin: 6px 0;
}
.report-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.report-meta span {
  border: 1px solid var(--line);
  background: rgba(88,166,255,.07);
  color: var(--muted);
  padding: 4px 8px;
  font-size: 12px;
}
.report-content {
  max-height: none;
  font-size: 15px;
  line-height: 1.9;
  color: var(--text);
}
.time-row {
  display: grid;
  grid-template-columns: 120px minmax(80px, 1fr) 90px;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}
.time-row b {
  display: block;
  height: 10px;
  background: linear-gradient(90deg, var(--cyan), var(--blue));
}
.time-row span,
.time-row em {
  color: var(--muted);
  font-style: normal;
}
.research-tables {
  overflow-x: hidden;
}
.research-table-wrap {
  overflow-x: auto;
}
.table-caption {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  margin: 2px 0 10px;
}
.research-table-wrap th {
  white-space: nowrap;
}
.research-table-wrap th > span:first-child {
  vertical-align: middle;
}
.table-help {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  margin-left: 6px;
  border: 1px solid rgba(62,230,197,.65);
  border-radius: 50%;
  color: var(--cyan);
  font-size: 10px;
  line-height: 1;
  font-style: normal;
  cursor: help;
  vertical-align: middle;
}
.table-help > span {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  z-index: 30;
  width: min(320px, 70vw);
  transform: translateX(-50%) translateY(4px);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  border: 1px solid var(--line);
  background: rgba(6, 16, 24, .98);
  color: var(--text);
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
  padding: 9px 10px;
  border-radius: 4px;
  font-size: 12px;
  line-height: 1.6;
  white-space: normal;
  text-align: left;
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.table-help > span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--line);
}
.table-help:hover > span,
.table-help:focus > span {
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; }
.field { margin-bottom: 18px; }
.field label, .kv span { display: block; color: var(--muted); margin-bottom: 6px; }
pre {
  white-space: pre-wrap;
  background: #07131b;
  border: 1px solid var(--line);
  padding: 12px;
  margin: 0;
  max-height: 520px;
  overflow: auto;
}
.kv { border-bottom: 1px solid var(--line); padding: 10px 0; }
.kv strong { display: block; font-weight: 600; }

.login-page {
  display: grid;
  place-items: center;
  min-height: 100vh;
  overflow: hidden;
}
.login-panel {
  width: min(420px, calc(100vw - 32px));
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(13,27,37,.92), rgba(7,16,23,.96));
  padding: 28px;
  position: relative;
  z-index: 2;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .34), 0 0 0 1px rgba(62,230,197,.06) inset;
}
.login-panel-simple {
  width: min(380px, calc(100vw - 32px));
  backdrop-filter: blur(12px);
}
.login-title {
  display: grid;
  gap: 4px;
  margin-bottom: 22px;
  text-align: center;
}
.login-title strong {
  font-size: 24px;
  line-height: 1.25;
  letter-spacing: 0;
}
.login-title span {
  color: var(--muted);
  font-size: 13px;
}
.flash { padding: 10px 12px; margin-bottom: 12px; border: 1px solid var(--line); }
.flash.error { border-color: rgba(255,107,107,.6); color: var(--danger); }
.flash.ok { border-color: rgba(62,230,197,.6); color: var(--cyan); }

.monitor-head { gap: 14px; }
.monitor-actions, .monitor-toolbar, .monitor-filter, .monitor-savebar, .monitor-account-footer {
  display: flex;
  align-items: center;
  gap: 10px;
}
.monitor-actions form, .monitor-account-footer form { margin: 0; }
.account-switcher {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 12px;
  margin-bottom: 6px;
  -webkit-overflow-scrolling: touch;
}
.account-tab, .account-add {
  flex: 0 0 auto;
  min-height: 52px;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--text);
  border-radius: 6px;
}
.account-tab {
  min-width: 150px;
  padding: 9px 12px;
  display: grid;
  gap: 3px;
  text-decoration: none;
}
.account-tab span { color: var(--muted); font-size: 12px; }
.account-tab.active { border-color: var(--cyan); box-shadow: 0 0 0 1px rgba(62,230,197,.18) inset; }
.account-add { width: 52px; padding: 0; font-size: 24px; }
.account-add-panel[hidden] { display: none; }
.account-add-form select { width: 100%; }
.monitor-panel { overflow: visible; }
.monitor-toolbar { justify-content: space-between; flex-wrap: wrap; margin-bottom: 14px; }
.monitor-search { flex: 1 1 260px; }
.monitor-search input { width: 100%; }
.monitor-filter .active { border-color: var(--cyan); color: var(--cyan); }
.monitor-select-all { margin: 0; white-space: nowrap; }
.monitor-table-wrap { max-height: 62vh; overflow: auto; border: 1px solid var(--line); }
.monitor-table { min-width: 680px; margin: 0; }
.monitor-table thead { position: sticky; top: 0; z-index: 1; background: var(--panel); }
.monitor-table td:first-child, .monitor-table th:first-child { width: 68px; text-align: center; }
.monitor-table td:nth-child(3), .monitor-table th:nth-child(3) { width: 86px; }
.monitor-table td:nth-child(4), .monitor-table th:nth-child(4) { width: 210px; }
.monitor-table strong, .monitor-table small { display: block; }
.monitor-table small { color: var(--muted); margin-top: 4px; }
.monitor-table tr[hidden] { display: none; }
.monitor-savebar { justify-content: space-between; margin-top: 14px; }
.monitor-savebar span, .monitor-account-footer span { color: var(--muted); }
.monitor-account-footer { justify-content: space-between; margin-top: 14px; }

.source-head-actions, .source-head-actions form, .source-search, .source-batchbar, .source-pager, .source-pager div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.source-head-actions form { margin: 0; }
.source-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-bottom: 0;
  background: var(--panel);
}
.source-tabs a {
  min-height: 58px;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  border-right: 1px solid var(--line);
  border-bottom: 3px solid transparent;
}
.source-tabs a:last-child { border-right: 0; }
.source-tabs a:hover { color: var(--text); background: rgba(255,255,255,.025); }
.source-tabs a.active { color: var(--text); border-bottom-color: var(--cyan); background: rgba(62,230,197,.055); }
.source-tabs strong { min-width: 32px; text-align: right; font-size: 18px; color: var(--text); }
.source-panel { border-top-left-radius: 0; border-top-right-radius: 0; overflow: visible; }
.source-search { margin-bottom: 14px; }
.source-search select { flex: 0 0 190px; width: 190px; }
.source-search input[type="search"] { flex: 1 1 360px; min-width: 180px; }
.candidate-import { display: flex; align-items: center; gap: 12px; padding: 12px; margin-bottom: 12px; border: 1px solid var(--line); background: var(--panel-2); }
.candidate-import > div { flex: 1 1 auto; display: grid; gap: 3px; }
.candidate-import > div span { color: var(--muted); font-size: 12px; }
.file-picker { position: relative; display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border: 1px solid var(--line); color: var(--text); cursor: pointer; white-space: nowrap; }
.file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-picker:hover { border-color: var(--cyan); color: var(--cyan); }
.button-link { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); }
.source-table-wrap { overflow: auto; border: 1px solid var(--line); }
.source-table { width: 100%; min-width: 760px; margin: 0; }
.source-table thead { position: sticky; top: 0; z-index: 1; background: var(--panel-2); }
.source-table th:first-child, .source-table td:first-child { width: 128px; text-align: center; }
.source-table th:nth-child(3), .source-table td:nth-child(3) { width: 90px; }
.source-table th:nth-child(4), .source-table td:nth-child(4) { width: 190px; }
.source-table th:last-child, .source-table td:last-child { width: 150px; }
.source-table strong, .source-table small { display: block; }
.source-table small { margin-top: 3px; color: var(--muted); overflow-wrap: anywhere; }
.candidate-table { min-width: 1250px; table-layout: fixed; }
.candidate-table th:first-child, .candidate-table td:first-child { width: 118px; }
.candidate-table th:nth-child(2), .candidate-table td:nth-child(2) { width: 245px; }
.candidate-table th:nth-child(3), .candidate-table td:nth-child(3) { width: auto; min-width: 430px; }
.candidate-table th:nth-child(4), .candidate-table td:nth-child(4) { width: 82px; }
.candidate-table th:nth-child(5), .candidate-table td:nth-child(5) { width: 86px; }
.candidate-table th:nth-child(6), .candidate-table td:nth-child(6) { width: 145px; }
.candidate-intro {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  line-height: 1.65;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  color: var(--text);
}
.intro-loading { color: var(--muted); }
.source-select { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.status-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 2px 8px; border: 1px solid var(--line); font-size: 12px; white-space: nowrap; }
.status-badge.active { color: var(--cyan); border-color: rgba(62,230,197,.45); background: rgba(62,230,197,.07); }
.status-badge.ready { color: var(--amber); border-color: rgba(255,209,102,.42); background: rgba(255,209,102,.06); }
.status-badge.muted { color: var(--muted); }
.source-batchbar { justify-content: space-between; min-height: 58px; padding-top: 12px; }
.source-batchbar > div { display: flex; align-items: center; gap: 8px; }
.source-batchbar span { color: var(--muted); }
.source-batchbar strong { color: var(--text); }
.source-batchbar button:disabled { cursor: not-allowed; opacity: .45; }
.source-batchbar select { width: auto; min-width: 170px; }
.exit-job-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding: 10px 12px; margin-bottom: 12px; border: 1px solid var(--line); background: var(--panel-2); }
.exit-job-summary span { color: var(--muted); }
.danger-text { color: var(--danger) !important; }
.source-pager { justify-content: space-between; padding-top: 12px; color: var(--muted); }
.source-pager a, .source-pager .disabled, .source-pager strong { display: inline-flex; align-items: center; min-height: 34px; padding: 0 10px; border: 1px solid var(--line); }
.source-pager a { color: var(--text); }
.source-pager a:hover { border-color: var(--cyan); color: var(--cyan); }
.source-pager .disabled { opacity: .5; }
.source-pager strong { color: var(--text); font-weight: 500; }
.join-console-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.join-console-head > div { display: grid; gap: 3px; }
.join-console-head > div > strong { font-size: 17px; }
.join-console-head > div > span { color: var(--muted); font-size: 12px; }
.join-progress-summary { display: grid; grid-template-columns: repeat(5, minmax(110px, 1fr)); gap: 8px; margin-bottom: 10px; }
.join-progress-summary > div { border: 1px solid var(--line); background: var(--panel-2); padding: 10px 12px; display: grid; gap: 3px; }
.join-progress-summary span { color: var(--muted); font-size: 12px; }
.join-progress-summary strong { font-size: 18px; }
.join-progress-track { height: 8px; background: rgba(255,255,255,.06); margin-bottom: 14px; overflow: hidden; }
.join-progress-track span { display: block; height: 100%; background: var(--cyan); transition: width .25s ease; }
.join-job-switcher { display: flex; gap: 7px; overflow-x: auto; margin: 14px 0 10px; }
.join-job-switcher a { flex: 0 0 auto; border: 1px solid var(--line); padding: 6px 10px; color: var(--muted); }
.join-job-switcher a.active { border-color: var(--cyan); color: var(--text); }
.join-job-switcher span { margin-left: 6px; }
.join-table th:first-child, .join-table td:first-child { width: 64px; }
.join-table { min-width: 1120px; table-layout: fixed; }
.join-table th:nth-child(2), .join-table td:nth-child(2) { width: 230px; }
.join-table th:nth-child(3), .join-table td:nth-child(3) { width: auto; }
.join-table th:nth-child(4), .join-table td:nth-child(4) { width: 150px; }
.join-table th:last-child, .join-table td:last-child { width: 260px; }
.status-badge.pending { color: var(--muted); }
.status-badge.joining { color: var(--blue); border-color: rgba(88,166,255,.45); background: rgba(88,166,255,.07); }
.status-badge.needs_review { color: var(--amber); border-color: rgba(255,209,102,.45); background: rgba(255,209,102,.07); }
.status-badge.failed { color: var(--danger); border-color: rgba(255,107,107,.45); background: rgba(255,107,107,.07); }
.status-badge.joined { color: var(--cyan); border-color: rgba(62,230,197,.45); background: rgba(62,230,197,.07); }

.flash-bg {
  position: fixed;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 42%, rgba(62,230,197,.12), transparent 34%),
    linear-gradient(rgba(62,230,197,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(62,230,197,.035) 1px, transparent 1px);
  background-size: auto, 42px 42px, 42px 42px;
}
.flash-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 0 42%, rgba(62,230,197,.16) 48%, transparent 55% 100%);
  transform: translateX(-120%);
  animation: loginFlashSweep 4.6s ease-in-out infinite;
}
.flash-bg::after {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(62,230,197,.12);
  box-shadow: 0 0 80px rgba(62,230,197,.06) inset;
}
.spark {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #e5fffb;
  box-shadow: 0 0 16px rgba(62,230,197,.95), 0 0 32px rgba(88,166,255,.35);
  animation: sparkle 2.8s ease-in-out infinite;
}
.s1 { left: 18%; top: 26%; animation-delay: .2s; }
.s2 { left: 74%; top: 24%; animation-delay: 1.1s; }
.s3 { left: 27%; top: 72%; animation-delay: 1.8s; }
.s4 { left: 65%; top: 68%; animation-delay: .7s; }
.s5 { left: 51%; top: 16%; animation-delay: 2.2s; }
.login-scan {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  top: 50%;
  background: linear-gradient(90deg, transparent, rgba(62,230,197,.75), transparent);
  box-shadow: 0 0 18px rgba(62,230,197,.55);
  animation: loginScan 3.8s ease-in-out infinite;
}
@keyframes sparkle {
  0%, 100% { opacity: .16; transform: scale(.65); }
  45% { opacity: 1; transform: scale(1.45); }
}
@keyframes loginScan {
  0%, 100% { transform: translateY(-140px); opacity: 0; }
  30% { opacity: .8; }
  65% { opacity: .8; }
  100% { transform: translateY(140px); }
}
@keyframes loginFlashSweep {
  0%, 40% { transform: translateX(-120%); opacity: 0; }
  55% { opacity: .85; }
  100% { transform: translateX(120%); opacity: 0; }
}

@media (max-width: 1000px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; padding: 14px; }
  .nav {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    margin-top: 14px;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
  }
  .nav a {
    flex: 0 0 auto;
    min-height: 42px;
    display: flex;
    align-items: center;
  }
  .userbox { position: static; margin-top: 20px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .detail-grid { grid-template-columns: 1fr; }
  .main { padding: 14px; }
  .page-head { align-items: start; flex-direction: column; }
  .filter { width: 100%; min-width: 0; }
  .filter-wide { grid-template-columns: 1fr 1fr; }
  .filter-wide select:first-child { grid-column: 1 / -1; }
  .filter-wide button { grid-column: 1 / -1; }
  .download-bar {
    justify-content: stretch;
    position: sticky;
    left: 0;
  }
  .download-bar a {
    flex: 1;
    text-align: center;
    min-height: 42px;
  }
  .panel { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { min-width: 860px; }
  .pie-panel { grid-template-columns: 1fr; }
  .timeline-intro { grid-template-columns: 1fr; }
  .timeline-rule-grid { grid-template-columns: 1fr 1fr; }
  .report-toolbar { flex-direction: column; align-items: stretch; }
  .report-toolbar .filter-wide { grid-template-columns: 1fr 1fr 1fr; }
  .report-toolbar .filter-wide select:first-child { grid-column: 1 / -1; }
  .pie-wrap { width: 190px; height: 190px; }
  .graph-frame-wrap { min-height: 620px; }
  .graph-frame { height: 620px; }
  .workbench { grid-template-columns: 1fr; }
  .graph-workbench-v2 { grid-template-columns: 1fr; }
  .group-list { min-height: 220px; }
  .graph-toolbar { grid-template-columns: 1fr 1fr; }
  .graph-toolbar span { grid-column: 1 / -1; text-align: left; }
  .graph-canvas, .matrix-panel, .timeline-panel { height: 560px; }
  .node-detail { max-height: none; }
}

@media (max-width: 520px) {
  body { font-size: 13px; }
  .brand-title { font-size: 17px; }
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .metric-card { padding: 12px; }
  .metric-card strong { font-size: 26px; }
  h1 { font-size: 22px; }
  .timeline-rule-grid { grid-template-columns: 1fr; }
  .timeline-card-head { flex-direction: column; }
  .timeline-card-head strong { min-width: 100%; }
  button, input, select { min-height: 44px; }
  .login-panel-simple { width: calc(100vw - 28px); }
  .pager { position: sticky; left: 0; }
  .monitor-actions { width: 100%; }
  .monitor-actions form { flex: 1; }
  .monitor-actions button { width: 100%; }
  .account-tab { min-width: 132px; }
  .monitor-panel { padding: 12px; }
  .monitor-toolbar { align-items: stretch; }
  .monitor-filter { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }
  .monitor-filter button { width: 100%; }
  .monitor-select-all { min-height: 44px; display: flex; align-items: center; }
  .monitor-table-wrap { max-height: 58vh; border: 0; }
  .monitor-table { min-width: 0; width: 100%; }
  .monitor-table thead { display: none; }
  .monitor-table tbody, .monitor-table tr, .monitor-table td { display: block; width: 100%; }
  .monitor-table tr {
    position: relative;
    padding: 12px 10px 12px 50px;
    border: 1px solid var(--line);
    border-radius: 6px;
    margin-bottom: 8px;
    min-height: 86px;
  }
  .monitor-table td { border: 0; padding: 2px 0; }
  .monitor-table td:first-child {
    position: absolute;
    left: 10px;
    top: 16px;
    width: 28px;
  }
  .monitor-table td:nth-child(3), .monitor-table td:nth-child(4) {
    display: inline;
    width: auto;
    color: var(--muted);
    font-size: 12px;
  }
  .monitor-table td:nth-child(3)::after { content: " · "; }
  .monitor-savebar { position: sticky; bottom: 0; background: var(--panel); padding-top: 10px; }
  .monitor-savebar button { flex: 0 0 auto; }
  .monitor-account-footer { align-items: stretch; flex-direction: column; }
  .source-head-actions { width: 100%; }
  .source-head-actions form { flex: 1; }
  .source-head-actions button { width: 100%; }
  .source-tabs a { min-height: 54px; padding: 8px 9px; }
  .source-tabs a { align-items: flex-start; flex-direction: column; gap: 0; }
  .source-tabs strong { min-width: 0; text-align: left; font-size: 16px; }
  .source-panel { padding: 12px; }
  .source-search { align-items: stretch; flex-wrap: wrap; }
  .source-search select { flex: 1 1 100%; width: 100%; }
  .candidate-import { align-items: stretch; flex-direction: column; }
  .source-search input[type="search"] { flex-basis: 100%; }
  .source-table-wrap { border: 0; }
  .source-table { min-width: 0; }
  .source-table thead { display: table-header-group; }
  .source-table th:not(:first-child) { display: none; }
  .source-table th:first-child { width: 100%; text-align: left; }
  .source-table tbody, .source-table tr, .source-table td { display: block; width: 100%; }
  .source-table tr { position: relative; padding: 12px 10px 12px 45px; border: 1px solid var(--line); margin-bottom: 8px; }
  .source-table td { border: 0; padding: 2px 0; }
  .source-table td:first-child { position: absolute; left: 10px; top: 15px; width: 26px; }
  .source-table td:nth-child(3), .source-table td:nth-child(4), .source-table td:last-child { display: inline-block; width: auto; margin: 5px 8px 0 0; color: var(--muted); font-size: 12px; }
  .candidate-table td:nth-child(3), .join-table td:nth-child(3) { display: block; width: 100%; margin: 8px 0; font-size: 13px; color: var(--text); }
  .candidate-table .candidate-intro, .join-table .candidate-intro { -webkit-line-clamp: 4; }
  .source-batchbar { position: sticky; bottom: 0; z-index: 2; background: var(--panel); border-top: 1px solid var(--line); padding: 10px 0; }
  .source-batchbar { align-items: stretch; flex-direction: column; }
  .source-batchbar > div { display: grid; grid-template-columns: 1fr; }
  .source-batchbar button, .source-batchbar select { width: 100%; }
  .join-console-head { align-items: stretch; flex-direction: column; }
  .join-progress-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .join-progress-summary > div:first-child { grid-column: 1 / -1; }
  .source-pager { align-items: stretch; flex-direction: column; }
  .source-pager div { width: 100%; }
  .source-pager a, .source-pager .disabled, .source-pager strong { flex: 1; justify-content: center; padding: 0 6px; }
}

/* Comprehensive data center UI */
.comprehensive-head { margin-bottom: 18px; }
.comprehensive-panel { width: 100%; max-width: none; padding: 20px 24px 24px; }
.comprehensive-filter-panel { padding: 16px; border: 1px solid var(--line); background: rgba(16,38,51,.72); border-radius: 10px; }
.comprehensive-filters { display: grid; grid-template-columns: minmax(150px,1fr) minmax(130px,1fr) minmax(130px,1fr) minmax(160px,1fr) auto minmax(160px,1fr) minmax(220px,1.5fr) minmax(170px,1fr) auto; align-items: end; gap: 12px; }
.comprehensive-filters label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; }
.comprehensive-filters select, .comprehensive-filters input { width: 100%; min-width: 0; height: 40px; padding: 0 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--text); }
.date-separator { align-self: end; padding-bottom: 12px; color: var(--muted); }
.comprehensive-stats { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 10px; margin: 16px 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(13,27,37,.7); }
.comprehensive-stats div { padding: 4px 14px; border-right: 1px solid var(--line); }
.comprehensive-stats div:last-child { border-right: 0; }
.comprehensive-stats span, .comprehensive-stats strong { display: block; }
.comprehensive-stats span { color: var(--muted); font-size: 12px; }
.comprehensive-stats strong { margin-top: 4px; color: var(--cyan); font-size: 23px; letter-spacing: .02em; }
.comprehensive-table-wrap { max-height: 70vh; overflow: auto; }
.comprehensive-table { min-width: 1380px; table-layout: fixed; }
.comprehensive-table th, .comprehensive-table td { padding: 11px 12px; }
.comprehensive-table th:nth-child(1), .comprehensive-table td:nth-child(1) { width: 110px; white-space: nowrap; }
.comprehensive-table th:nth-child(2), .comprehensive-table td:nth-child(2) { width: 110px; white-space: nowrap; }
.comprehensive-table th:nth-child(3), .comprehensive-table td:nth-child(3) { width: 110px; white-space: nowrap; }
.comprehensive-table th:nth-child(4), .comprehensive-table td:nth-child(4) { width: 220px; }
.comprehensive-table th:nth-child(5), .comprehensive-table td:nth-child(5) { width: 390px; }
.comprehensive-table th:nth-child(6), .comprehensive-table td:nth-child(6) { width: 170px; }
.comprehensive-table th:nth-child(7), .comprehensive-table td:nth-child(7) { width: 110px; white-space: nowrap; }
.comprehensive-table th:nth-child(8), .comprehensive-table td:nth-child(8) { width: 190px; }
.comprehensive-table td:nth-child(4), .comprehensive-table td:nth-child(5), .comprehensive-table td:nth-child(6), .comprehensive-table td:nth-child(8) { white-space: normal; word-break: normal; overflow-wrap: anywhere; }
.truncate-group, .truncate-initiator { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.truncate-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; line-height: 1.55; }
.truncate-identifiers { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; line-height: 1.45; }
@media (max-width: 1250px) { .comprehensive-filters { grid-template-columns: repeat(4, minmax(150px, 1fr)); } .date-separator { display: none; } .filter-search { grid-column: span 2; } }
@media (max-width: 700px) { .comprehensive-panel { padding: 14px; } .comprehensive-filters { grid-template-columns: 1fr 1fr; } .filter-search { grid-column: 1 / -1; } .comprehensive-stats { grid-template-columns: repeat(2, 1fr); } .comprehensive-stats div { border-right: 0; } }

/* Comprehensive workspace refactor */
.comprehensive-head { margin-bottom: 20px; }
.comprehensive-panel { width: 100%; max-width: none; padding: 0; background: transparent; border: 0; }
.comprehensive-filter-panel, .comprehensive-table-wrap, .comprehensive-stats { width: 100%; box-sizing: border-box; }
.comprehensive-filter-panel { padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.comprehensive-filters { display: grid; gap: 18px; }
.filter-row { display: grid; align-items: end; gap: 14px; }
.filter-conditions { grid-template-columns: repeat(3, minmax(150px, 1fr)) minmax(170px, 1fr) 26px minmax(170px, 1fr) minmax(170px, 1fr); }
.filter-actions { grid-template-columns: minmax(280px, 1fr) auto auto; }
.filter-row label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; }
.filter-row input, .filter-row select { width: 100%; min-width: 0; height: 46px; box-sizing: border-box; padding: 0 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel-2); color: var(--text); }
.date-separator { align-self: end; padding-bottom: 15px; text-align: center; color: var(--muted); }
.filter-primary, .filter-secondary { height: 46px; min-width: 96px; padding: 0 20px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; text-decoration: none; box-sizing: border-box; }
.filter-primary { border: 1px solid var(--cyan); background: var(--cyan); color: #06131a; }
.filter-secondary { border: 1px solid var(--line); background: transparent; color: var(--text); }
.comprehensive-stats { grid-template-columns: repeat(5, 1fr); margin: 18px 0; padding: 14px 18px; }
.comprehensive-table-wrap { max-height: 70vh; overflow: auto; border-radius: 9px; }
.comprehensive-table { min-width: 1500px; table-layout: fixed; }
.comprehensive-table col.col-date { width: 120px; }.comprehensive-table col.col-category { width: 120px; }.comprehensive-table col.col-risk { width: 110px; }.comprehensive-table col.col-group { width: 220px; }.comprehensive-table col.col-summary { width: 420px; }.comprehensive-table col.col-initiator { width: 180px; }.comprehensive-table col.col-id-status { width: 120px; }.comprehensive-table col.col-identifiers { width: 180px; }.comprehensive-table col.col-action { width: 100px; }
.comprehensive-table th, .comprehensive-table td { padding: 12px 14px; height: 68px; box-sizing: border-box; }
.comprehensive-table th { position: sticky; top: 0; z-index: 2; white-space: nowrap; }
.comprehensive-table td { vertical-align: middle; }
.comprehensive-table td:nth-child(1), .comprehensive-table td:nth-child(2), .comprehensive-table td:nth-child(3), .comprehensive-table td:nth-child(7), .comprehensive-table td:nth-child(9) { white-space: nowrap; }
.truncate-group, .truncate-summary, .truncate-initiator, .truncate-identifiers { overflow: hidden; text-overflow: ellipsis; word-break: normal; overflow-wrap: normal; }
.truncate-group, .truncate-summary, .truncate-identifiers { display: -webkit-box; -webkit-box-orient: vertical; }
.truncate-group, .truncate-identifiers { -webkit-line-clamp: 2; }.truncate-summary { -webkit-line-clamp: 3; line-height: 1.5; }.truncate-initiator { display: block; white-space: nowrap; }
.detail-button { border: 1px solid var(--line); border-radius: 6px; padding: 7px 12px; background: transparent; color: var(--cyan); cursor: pointer; }.detail-button:hover { border-color: var(--cyan); background: rgba(62,230,197,.08); }
.detail-dialog { width: min(760px, calc(100vw - 32px)); max-height: 86vh; overflow: auto; border: 1px solid var(--line); border-radius: 10px; padding: 0; background: var(--panel); color: var(--text); }.detail-dialog::backdrop { background: rgba(0,0,0,.64); }.detail-dialog-head { position: sticky; top: 0; display: flex; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--line); background: var(--panel); }.detail-dialog-head button { border: 0; background: transparent; color: var(--muted); font-size: 24px; cursor: pointer; }.detail-dialog [data-detail-body] { padding: 20px; }.detail-dialog .detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.detail-dialog .detail-grid > div { padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel-2); }.detail-dialog .detail-grid span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 12px; }.detail-dialog .detail-grid p { margin: 0; line-height: 1.7; white-space: pre-wrap; }.detail-dialog .detail-wide { grid-column: 1 / -1; }.detail-link { display: inline-block; margin-top: 16px; color: var(--cyan); }
@media (min-width: 1400px) { .main { padding-left: 30px; padding-right: 30px; } }
@media (max-width: 1100px) { .filter-conditions { grid-template-columns: repeat(3, minmax(150px, 1fr)); }.date-separator { display: none; }.filter-actions { grid-template-columns: 1fr auto auto; } }
@media (max-width: 700px) { .comprehensive-filter-panel { padding: 14px; }.filter-conditions, .filter-actions { grid-template-columns: 1fr; }.date-separator { display: none; }.filter-primary, .filter-secondary { width: 100%; }.comprehensive-stats { grid-template-columns: repeat(2, 1fr); }.comprehensive-table { min-width: 1500px; }.detail-dialog .detail-grid { grid-template-columns: 1fr; }.detail-dialog .detail-wide { grid-column: auto; } }

/* Compact condition row and a clear action row. */
.comprehensive-filter-panel { padding: 14px 16px 16px; }
.comprehensive-filters { gap: 12px; }
.filter-row { gap: 10px; }
.filter-conditions { grid-template-columns: minmax(110px, .9fr) minmax(100px, .85fr) minmax(100px, .85fr) minmax(280px, 1.7fr) minmax(150px, 1.05fr); }
.date-range { display: grid; grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr); align-items: end; gap: 8px; min-width: 0; }
.date-range label { min-width: 0; }
.filter-row label { gap: 4px; font-size: 11px; }
.filter-row input, .filter-row select { height: 38px; padding: 0 9px; border-radius: 6px; font-size: 13px; }
.date-separator { padding-bottom: 11px; font-size: 12px; }
.filter-actions { grid-template-columns: minmax(280px, 1fr) auto auto; align-items: end; }
.filter-actions .filter-search input { height: 40px; }
.filter-primary, .filter-secondary { height: 40px; min-width: 82px; padding: 0 16px; font-size: 13px; }
@media (max-width: 1250px) {
  .filter-conditions { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .date-range { grid-column: span 2; }
}
@media (max-width: 700px) {
  .filter-conditions, .filter-actions { grid-template-columns: 1fr; }
  .date-range { grid-column: span 2; }
  .filter-primary, .filter-secondary { width: 100%; }
}

/* Comprehensive data center isolated layout (prevents legacy table/filter collisions). */
.comprehensive-panel { overflow: visible; }
.comprehensive-filter-panel { overflow: visible; padding: 16px; }
.cd-filter-form { display: grid; gap: 14px; width: 100%; }
.cd-condition-grid {
  display: grid;
  grid-template-columns: minmax(110px, .8fr) minmax(110px, .8fr) minmax(110px, .8fr) minmax(310px, 1.9fr) minmax(170px, 1fr);
  gap: 12px;
  align-items: end;
  min-width: 0;
}
.cd-condition-grid > label,
.cd-date-range > label,
.cd-action-row > label {
  display: grid;
  grid-template-rows: auto 40px;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
}
.cd-condition-grid select,
.cd-condition-grid input,
.cd-action-row input {
  display: block;
  width: 100%;
  min-width: 0;
  height: 40px;
  margin: 0;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel-2);
  color: var(--text);
  font: inherit;
  line-height: normal;
}
.cd-date-range {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) 22px minmax(130px, 1fr);
  gap: 8px;
  align-items: end;
  min-width: 0;
}
.cd-date-separator {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  color: var(--muted);
  font-size: 12px;
}
.cd-action-row {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) auto;
  gap: 12px;
  align-items: end;
  min-width: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(32,58,75,.72);
}
.cd-action-buttons { display: flex; align-items: end; gap: 10px; }
.cd-action-buttons .filter-primary,
.cd-action-buttons .filter-secondary { flex: 0 0 auto; height: 40px; min-width: 86px; }

.cd-table-wrap {
  width: 100%;
  max-height: 70vh;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(7,16,23,.35);
  scrollbar-gutter: stable;
}
.cd-table {
  width: 1500px;
  min-width: 1500px;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0;
}
.cd-table col.col-date { width: 120px; }
.cd-table col.col-category { width: 120px; }
.cd-table col.col-risk { width: 110px; }
.cd-table col.col-group { width: 230px; }
.cd-table col.col-summary { width: 430px; }
.cd-table col.col-initiator { width: 180px; }
.cd-table col.col-id-status { width: 120px; }
.cd-table col.col-identifiers { width: 190px; }
.cd-table col.col-action { width: 100px; }
.cd-table thead { display: table-header-group; }
.cd-table tbody { display: table-row-group; }
.cd-table tr { display: table-row; position: static; height: 76px; padding: 0; margin: 0; }
.cd-table th,
.cd-table td {
  display: table-cell;
  width: auto;
  height: auto;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  text-align: left;
  box-sizing: border-box;
}
.cd-table th {
  position: sticky;
  top: 0;
  z-index: 3;
  height: 52px;
  background: #17354a;
  color: var(--text);
  font-weight: 700;
  white-space: nowrap;
}
.cd-table tbody tr:hover td { background: rgba(62,230,197,.045); }
.cd-table td:nth-child(1),
.cd-table td:nth-child(2),
.cd-table td:nth-child(3),
.cd-table td:nth-child(7),
.cd-table td:nth-child(9) { white-space: nowrap; }
.cd-clamp {
  display: -webkit-box;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  word-break: normal;
  overflow-wrap: break-word;
}
.cd-group { -webkit-line-clamp: 2; line-height: 1.5; }
.cd-summary { -webkit-line-clamp: 3; line-height: 1.48; }
.cd-identifiers { -webkit-line-clamp: 2; line-height: 1.5; }
.cd-ellipsis {
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  word-break: keep-all;
}

@media (max-width: 1250px) {
  .cd-condition-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .cd-date-range { grid-column: span 2; }
}
@media (max-width: 760px) {
  .cd-condition-grid { grid-template-columns: 1fr 1fr; }
  .cd-date-range { grid-column: 1 / -1; }
  .cd-action-row { grid-template-columns: 1fr; }
  .cd-action-buttons { display: grid; grid-template-columns: 1fr 1fr; }
  .cd-action-buttons .filter-primary,
  .cd-action-buttons .filter-secondary { width: 100%; }
  .comprehensive-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 520px) {
  .cd-condition-grid { grid-template-columns: 1fr; }
  .cd-date-range { grid-column: auto; grid-template-columns: 1fr; }
  .cd-date-separator { height: auto; justify-content: flex-start; }
}

/* Comprehensive data center: compact controls, content-first workspace. */
.comprehensive-head { margin-bottom: 10px; }
.comprehensive-head h1 { margin-bottom: 3px; }
.comprehensive-filter-panel { padding: 11px 14px; }
.cd-filter-form { gap: 9px; }
.cd-condition-grid {
  grid-template-columns: minmax(100px,.72fr) minmax(100px,.72fr) minmax(105px,.76fr) minmax(285px,1.75fr) minmax(150px,.9fr);
  gap: 9px;
}
.cd-condition-grid > label,
.cd-date-range > label,
.cd-action-row > label { grid-template-rows: auto 36px; gap: 3px; font-size: 11px; }
.cd-condition-grid select,
.cd-condition-grid input,
.cd-action-row input { height: 36px; padding: 0 9px; }
.cd-date-separator { height: 36px; }
.cd-compact-bar {
  display: grid;
  grid-template-columns: minmax(360px, 1.25fr) minmax(520px, 1fr);
  gap: 12px;
  align-items: end;
  padding-top: 8px;
  border-top: 1px solid rgba(32,58,75,.72);
}
.cd-action-row { grid-template-columns: minmax(260px,1fr) auto; gap: 8px; padding: 0; border: 0; }
.cd-action-buttons { gap: 7px; }
.cd-action-buttons .filter-primary,
.cd-action-buttons .filter-secondary { height: 36px; min-width: 68px; padding: 0 14px; }
.cd-compact-bar .comprehensive-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(78px,1fr));
  gap: 0;
  min-height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.cd-compact-bar .comprehensive-stats div {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  padding: 7px 9px;
  border-right: 1px solid var(--line);
}
.cd-compact-bar .comprehensive-stats div:last-child { border-right: 0; }
.cd-compact-bar .comprehensive-stats span,
.cd-compact-bar .comprehensive-stats strong { display: inline; margin: 0; white-space: nowrap; }
.cd-compact-bar .comprehensive-stats span { font-size: 11px; }
.cd-compact-bar .comprehensive-stats strong { font-size: 17px; }
.cd-table-wrap {
  margin-top: 12px;
  height: calc(100vh - 245px);
  min-height: 520px;
  max-height: none;
}
.cd-table { width: 100%; min-width: 1500px; }
.cd-table col.col-date { width: 95px; }
.cd-table col.col-category { width: 88px; }
.cd-table col.col-risk { width: 88px; }
.cd-table col.col-group { width: 160px; }
.cd-table col.col-summary { width: 650px; }
.cd-table col.col-initiator { width: 130px; }
.cd-table col.col-id-status { width: 86px; }
.cd-table col.col-identifiers { width: 135px; }
.cd-table col.col-action { width: 68px; }
.cd-table tr { height: 82px; }
.cd-table th,
.cd-table td { padding: 10px 11px; }
.cd-summary { -webkit-line-clamp: 4; line-height: 1.48; }
.source-pager { margin-top: 9px; }

@media (max-width: 1350px) {
  .cd-compact-bar { grid-template-columns: 1fr; }
  .cd-compact-bar .comprehensive-stats { border-top: 1px solid rgba(32,58,75,.55); }
  .cd-table-wrap { height: calc(100vh - 300px); min-height: 460px; }
}
@media (max-width: 760px) {
  .cd-compact-bar { grid-template-columns: 1fr; }
  .cd-compact-bar .comprehensive-stats { grid-template-columns: repeat(5, minmax(82px,1fr)); overflow-x: auto; }
  .cd-table-wrap { height: calc(100vh - 360px); min-height: 420px; }
}

/* Administrator human-label review center */
.event-click-row{cursor:pointer}.event-click-row:hover td{background:#103140!important}.event-click-row:focus{outline:2px solid #35a9cf;outline-offset:-2px}.event-quick-dialog{width:min(1040px,calc(100vw - 36px));max-height:calc(100vh - 36px);padding:0;border:1px solid #28596c;border-radius:14px;background:#081d28;color:#dcecf3;box-shadow:0 24px 80px #000b}.event-quick-dialog::backdrop{background:rgba(0,10,16,.78);backdrop-filter:blur(3px)}.event-quick-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:#0b2633;border-bottom:1px solid #204756}.event-quick-head div{display:grid;gap:4px}.event-quick-head span{font-size:12px;color:#72cae8}.event-quick-head strong{font-size:19px}.event-quick-head button{width:38px;height:38px;border:0;border-radius:9px;background:#153846;color:#dff4fb;font-size:25px;cursor:pointer}.event-quick-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:18px 22px}.event-quick-meta div{display:grid;gap:5px;padding:11px 13px;border-radius:9px;background:#0d2936}.event-quick-meta span{font-size:12px;color:#7fa2b3}.event-quick-meta strong{word-break:break-word}.event-quick-content{display:grid;gap:14px;padding:0 22px 20px}.event-quick-content section{padding:15px;border:1px solid #1f4555;border-radius:10px;background:#0a222d}.event-quick-content h3{margin:0 0 9px;font-size:14px;color:#75d0ef}.event-quick-content p,.event-quick-content pre{margin:0;white-space:pre-wrap;word-break:break-word;font:inherit;line-height:1.8;color:#d2e3eb}.event-quick-review{position:sticky;bottom:0;display:flex;align-items:center;gap:16px;padding:15px 22px;background:#0b2633;border-top:1px solid #204756}.event-quick-review div{display:grid;gap:3px;flex:1}.event-quick-review span{color:#8da8b7;font-size:13px}.event-review-result{color:#7ee0b2!important}@media(max-width:760px){.event-quick-meta{grid-template-columns:1fr 1fr}.event-quick-review{align-items:stretch;flex-direction:column}.event-quick-review .button{width:100%}}
.topic-click-card{cursor:pointer;transition:border-color .16s ease,transform .16s ease,background .16s ease,box-shadow .16s ease}.topic-click-card:hover,.topic-click-card:focus-visible{border-color:#3b9aba;background:#0d2936;box-shadow:0 12px 30px rgba(0,0,0,.24);transform:translateY(-2px);outline:none}.topic-card-action{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:3px}.topic-card-action .button{min-width:126px}.topic-overview-dialog{width:min(1120px,calc(100vw - 36px));max-height:calc(100vh - 36px);padding:0;border:1px solid #28596c;border-radius:14px;background:#081d28;color:#dcecf3;box-shadow:0 24px 80px #000b}.topic-overview-dialog::backdrop{background:rgba(0,10,16,.78);backdrop-filter:blur(3px)}.topic-overview-meta{display:grid;grid-template-columns:repeat(6,minmax(100px,1fr));gap:1px;padding:18px 22px;background:#102a36}.topic-overview-meta span{display:grid;gap:5px;min-width:0;padding:10px 12px;border-right:1px solid #234452;color:#7fa2b3;font-size:12px}.topic-overview-meta span:last-child{border-right:0}.topic-overview-meta b{overflow:hidden;color:#e4f1f6;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.topic-overview-summary,.topic-overview-evidence{margin:0 22px 18px;padding:17px;border:1px solid #1f4555;border-radius:11px;background:#0a222d}.topic-overview-summary h3,.topic-overview-evidence h3{margin:0 0 10px;color:#75d0ef;font-size:15px}.topic-overview-summary p{margin:0;color:#d7e7ed;font-size:15px;line-height:1.8;white-space:pre-wrap}.topic-overview-evidence>div{display:grid;gap:10px;max-height:330px;overflow:auto;padding-right:4px}.topic-evidence-item{display:grid;gap:7px;padding:13px 14px;border:1px solid #214352;border-radius:9px;background:#0c2a36}.topic-evidence-item strong{color:#dff2f8;line-height:1.5}.topic-evidence-item span{color:#7fa5b5;font-size:13px}.topic-evidence-item p{margin:0;color:#b9ced8;line-height:1.65;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.topic-overview-confirm{position:sticky;bottom:0;display:flex;align-items:center;gap:18px;padding:16px 22px;background:#0b2633;border-top:1px solid #204756}.topic-overview-confirm div{display:grid;gap:4px;flex:1}.topic-overview-confirm span{color:#8da8b7;font-size:13px}.topic-overview-confirm button{min-width:170px}@media(max-width:900px){.topic-overview-meta{grid-template-columns:repeat(3,1fr)}.topic-overview-meta span:nth-child(3){border-right:0}}@media(max-width:620px){.topic-card-action,.topic-overview-confirm{align-items:stretch;flex-direction:column}.topic-card-action .button,.topic-overview-confirm button{width:100%}.topic-overview-meta{grid-template-columns:repeat(2,1fr)}.topic-overview-meta span:nth-child(3){border-right:1px solid #234452}.topic-overview-meta span:nth-child(even){border-right:0}.topic-overview-summary,.topic-overview-evidence{margin-left:14px;margin-right:14px}.topic-overview-dialog .event-quick-head{padding-left:15px;padding-right:15px}}
.topic-generation-progress{position:sticky;bottom:0;z-index:3;display:grid;gap:9px;padding:15px 22px;border-top:1px solid #2d6578;background:#0a2531;box-shadow:0 -12px 28px rgba(0,0,0,.2)}.topic-generation-progress[hidden]{display:none}.topic-progress-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.topic-progress-head strong{color:#dff3f8}.topic-progress-head span{min-width:48px;color:#72d7ee;font-variant-numeric:tabular-nums;text-align:right}.topic-generation-progress progress{width:100%;height:10px;overflow:hidden;border:0;border-radius:999px;background:#071820}.topic-generation-progress progress::-webkit-progress-bar{border-radius:999px;background:#071820}.topic-generation-progress progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,#248db1,#45dcc2);transition:width .35s ease}.topic-generation-progress progress::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,#248db1,#45dcc2)}.topic-generation-progress small{color:#8ca9b7;line-height:1.5}.topic-generation-progress.success{border-color:#2c8a70;background:#0c2b29}.topic-generation-progress.success .topic-progress-head strong{color:#83e5bd}.topic-generation-progress.error{border-color:#99514d;background:#321d22}.topic-generation-progress.error .topic-progress-head strong,.topic-generation-progress.error small{color:#ffc2bc}
.topic-overview-confirm.is-generating{display:none}
.label-review-page { display:grid; gap:20px; }
.event-review-request{display:grid;gap:8px;margin-top:18px}.event-review-request small{color:#8fa9bb;line-height:1.5}
.custom-rule-panel{display:grid;gap:14px}.custom-rule-panel h2{margin:0 0 4px}.custom-rule-panel p{margin:0;color:#8fa9bb}.custom-rule-form{display:grid;grid-template-columns:150px 150px minmax(280px,1fr) 120px auto;gap:12px;align-items:end}.custom-rule-form label{display:grid;gap:6px;color:#9db4c4}.custom-rule-form input,.custom-rule-form select{height:42px}.rule-chips{display:flex;gap:8px;flex-wrap:wrap}.rule-chips span,.source-origin-list span{border:1px solid #28586b;background:#102c38;color:#9ce6ff;border-radius:999px;padding:4px 9px;font-size:12px}.candidate-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.candidate-entry-grid .candidate-import{margin:0}.candidate-entry-grid textarea{min-width:260px;flex:1;background:#071b26;color:#e5f3fa;border:1px solid #285064;border-radius:8px;padding:9px}.source-origin-list{display:flex;gap:5px;flex-wrap:wrap;min-width:100px}.event-review-card pre{white-space:pre-wrap;max-height:200px;overflow:auto;color:#a9c2d0}
@media(max-width:1100px){.custom-rule-form{grid-template-columns:1fr 1fr}.rule-pattern{grid-column:1/-1}.candidate-entry-grid{grid-template-columns:1fr}}
.topic-intel-page{display:grid;gap:20px}.topic-date-filter{display:flex;align-items:end;gap:24px}.topic-date-filter label{display:grid;gap:7px;color:#9bb1c0}.topic-date-filter select{min-width:260px;height:42px}.section-head,.topic-report-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-head h2,.topic-report-actions h2{margin:0 0 5px}.section-head p{margin:0;color:#8fa9bb}.topic-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;margin-top:14px}.topic-card{display:grid;gap:12px;padding:18px;border:1px solid #214657;border-radius:12px;background:#0b222e}.topic-card-top,.topic-metrics{display:flex;align-items:center;justify-content:space-between;gap:10px}.topic-card h3{font-size:17px;line-height:1.5;margin:0;color:#e9f5fb}.topic-card p{margin:0;color:#a8bdc9;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.topic-board{color:#8edff8}.topic-stars{color:#f2c969;letter-spacing:2px}.topic-metrics{justify-content:flex-start}.topic-metrics span{padding:5px 9px;border-radius:8px;background:#102f3d;color:#9fb8c6}.topic-report-workbench{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px}.topic-report-list{display:grid;gap:8px;align-content:start}.topic-report-list h2{margin:0 0 8px}.topic-report-list a{display:grid;gap:5px;padding:11px;border:1px solid transparent;border-radius:9px;color:#d8e8ef;text-decoration:none}.topic-report-list a:hover,.topic-report-list a.active{border-color:#2c7894;background:#103241}.topic-report-list span,.topic-report-actions span{color:#89a6b6;font-size:13px}.topic-report-detail pre{white-space:pre-wrap;word-break:break-word;margin:20px 0 0;font-family:inherit;font-size:15px;line-height:1.85;color:#dceaf0}.topic-report-actions{padding-bottom:14px;border-bottom:1px solid #1d4353}@media(max-width:1000px){.topic-report-workbench{grid-template-columns:1fr}.topic-date-filter{align-items:stretch;flex-direction:column}.topic-date-filter select{width:100%}}
.review-title-row { display:flex; align-items:center; gap:10px; }
.label-review-page .page-head h1 { margin:0 0 6px; font-size:28px; color:#edf7ff; }
.label-review-page .page-head p { margin:0; color:#8fa9bb; }
.label-help { position:relative; display:inline-flex; align-items:center; justify-content:center; margin-top:-5px; outline:none; }
.label-help-icon { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border:1px solid #4ba9bb; border-radius:50%; background:#102d38; color:#79dbe8; font-family:Georgia,serif; font-size:15px; font-weight:700; font-style:italic; line-height:1; cursor:help; box-shadow:0 0 0 3px rgba(56,174,194,.08); }
.label-help-tooltip { position:absolute; z-index:30; left:32px; top:-10px; width:min(420px,70vw); padding:15px 17px; border:1px solid #376477; border-radius:10px; background:#0a1821; color:#b9ced9; font-size:13px; line-height:1.65; box-shadow:0 16px 40px rgba(0,0,0,.38); opacity:0; visibility:hidden; transform:translateY(5px); transition:opacity .16s ease,transform .16s ease,visibility .16s; pointer-events:none; }
.label-help-tooltip::before { content:""; position:absolute; left:-6px; top:15px; width:10px; height:10px; border-left:1px solid #376477; border-bottom:1px solid #376477; background:#0a1821; transform:rotate(45deg); }
.label-help-tooltip strong { display:block; margin-bottom:5px; color:#75deec; font-size:14px; letter-spacing:.03em; }
.label-help-tooltip span { display:block; }
.label-help:hover .label-help-tooltip,.label-help:focus .label-help-tooltip,.label-help:focus-within .label-help-tooltip { opacity:1; visibility:visible; transform:translateY(0); }
.review-recommendation { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:18px 20px; border:1px solid #28485a; border-radius:12px; background:#102633; }
.review-recommendation.urgent { border-color:#8d4b45; background:#2b1c20; }
.review-recommendation.pause { border-color:#316b5b; background:#132a27; }
.review-recommendation .eyebrow { display:block; margin-bottom:6px; color:#72bcd4; font-size:12px; letter-spacing:.08em; }
.review-recommendation strong { color:#edf7ff; font-size:16px; }
.recommendation-metrics { display:flex; flex-wrap:wrap; gap:16px; color:#9eb5c3; white-space:nowrap; }
.recommendation-metrics b { color:#7ee0ee; font-size:18px; }
.review-toolbar { display:flex; align-items:end; flex-wrap:wrap; gap:14px; padding:16px; border:1px solid #263d4b; border-radius:12px; background:#101e27; }
.review-toolbar label, .correction-grid label { display:grid; gap:7px; color:#9db2c1; font-size:13px; }
.review-toolbar select, .correction-grid select, .correction-grid input:not([type="checkbox"]), .correction-grid textarea { min-height:42px; border:1px solid #315064; border-radius:8px; background:#0b1820; color:#e6f1f6; padding:9px 11px; }
.coverage-grid { display:grid; grid-template-columns:repeat(4,minmax(180px,1fr)); gap:12px; }
.coverage-card { display:grid; gap:7px; padding:16px; border:1px solid #263f4f; border-radius:11px; background:#101e27; color:#a9bfcc; text-decoration:none; }
.coverage-card:hover { border-color:#3f8495; background:#122732; }
.coverage-card strong { color:#eef8fb; font-size:22px; }
.coverage-card small { color:#7892a2; }
.coverage-card progress { width:100%; height:7px; border:0; border-radius:6px; overflow:hidden; background:#0a151c; }
.coverage-card progress::-webkit-progress-bar { background:#0a151c; }
.coverage-card progress::-webkit-progress-value { background:#39a9bd; }
.review-list-head { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.review-list-head div { display:flex; align-items:center; gap:10px; color:#edf7ff; font-size:18px; }
.review-list-head span { color:#62cadd; }
.review-list-head p { margin:0; color:#7e98a8; }
.review-list { display:grid; gap:14px; }
.review-card { border:1px solid #294251; border-radius:12px; background:#0f1d26; overflow:hidden; }
.review-card-meta { display:flex; flex-wrap:wrap; gap:16px; padding:12px 16px; border-bottom:1px solid #203743; color:#85a1b2; font-size:13px; }
.review-content { padding:18px 20px; color:#e2edf2; font-size:16px; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; max-height:260px; overflow:auto; }
.machine-labels { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:12px 16px; background:#0b1820; color:#9db2be; }
.machine-labels b, .machine-labels span:not(.label-caption) { padding:4px 8px; border:1px solid #315266; border-radius:999px; color:#bfe8f0; font-size:12px; }
.machine-labels .junk { color:#ffc1b9; border-color:#70433f; }
.machine-labels small { margin-left:auto; color:#637f90; }
.label-caption { color:#718d9d; font-size:12px; }
.review-reasons { padding:10px 16px; border-top:1px solid #1d3440; color:#9fb6c3; font-size:13px; }
.review-actions { display:flex; align-items:start; gap:12px; padding:14px 16px; border-top:1px solid #203743; }
.correction-box { flex:1; }
.correction-box summary { width:max-content; padding:10px 14px; border:1px solid #385467; border-radius:8px; color:#bdd0da; cursor:pointer; }
.correction-box[open] summary { margin-bottom:14px; }
.correction-grid { display:grid; grid-template-columns:180px 150px minmax(260px,1fr); gap:12px; margin-bottom:12px; }
.correction-grid .check-label { grid-column:1 / 3; grid-row:2; display:flex; align-items:center; gap:9px; align-self:center; min-height:42px; color:#d5e5ec; font-size:15px; font-weight:600; white-space:nowrap; cursor:pointer; }
.correction-grid .check-label input[type="checkbox"] { appearance:auto; width:18px; height:18px; min-width:18px; min-height:18px; margin:0; padding:0; border:0; accent-color:#29b8c7; cursor:pointer; }
.correction-grid .tags-field { grid-column:3; grid-row:1; }
.correction-grid .note-field { grid-column:2 / 4; grid-row:2; }
.empty-panel { padding:40px; border:1px dashed #345063; border-radius:12px; color:#839ba9; text-align:center; }
.recent-reviews { padding:18px; border:1px solid #263f4f; border-radius:12px; background:#101e27; }
.recent-reviews h2 { margin:0 0 14px; color:#eaf5f9; font-size:18px; }
.recent-reviews table { width:100%; border-collapse:collapse; min-width:900px; }
.recent-reviews th, .recent-reviews td { padding:10px 12px; border-bottom:1px solid #213845; text-align:left; color:#a9bdc8; }
.recent-reviews th { color:#d9e7ed; background:#0b1820; }
@media (max-width:1200px) { .coverage-grid { grid-template-columns:repeat(2,1fr); } .review-recommendation { align-items:flex-start; flex-direction:column; } }
@media (max-width:760px) { .coverage-grid { grid-template-columns:1fr; } .correction-grid { grid-template-columns:1fr; } .correction-grid .tags-field,.correction-grid .note-field,.correction-grid .check-label { grid-column:1; grid-row:auto; } .review-actions { flex-direction:column; } .label-help-tooltip { left:auto; right:-12px; top:34px; width:min(340px,82vw); } .label-help-tooltip::before { left:auto; right:17px; top:-6px; transform:rotate(135deg); } }
