:root {
  --collector-bg: #f5f7fa;
  --collector-surface: #ffffff;
  --collector-surface-soft: #f8fafc;
  --collector-line: #e3e8ef;
  --collector-line-strong: #d4dce7;
  --collector-text: #172033;
  --collector-muted: #718096;
  --collector-blue: #17499d;
  --collector-blue-soft: #eef4ff;
  --collector-green: #17745a;
  --collector-amber: #9a6412;
  --collector-red: #b23a3a;
  --collector-shadow: 0 20px 48px rgba(35, 51, 77, 0.08);
}

* { box-sizing: border-box; }

body.group-review-page {
  margin: 0;
  min-width: 320px;
  color: var(--collector-text);
  background: var(--collector-bg);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Noto Sans SC", sans-serif;
}

button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }

.group-review-app { min-height: 100vh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }
.group-review-sidebar { position: sticky; top: 0; height: 100vh; padding: 26px 18px 22px; background: #111b30; color: #d8e1f0; display: flex; flex-direction: column; }
.group-review-brand { color: white; text-decoration: none; display: grid; gap: 5px; padding: 0 12px 28px; }
.group-review-wordmark { font-size: 26px; font-weight: 650; letter-spacing: 0; }
.group-review-wordmark span { display: inline-block; margin-left: 3px; padding: 2px 5px 3px; border-radius: 5px; color: white; background: #2868c8; font-size: 13px; letter-spacing: 0; vertical-align: middle; }
.group-review-brand small { color: #8391aa; font-size: 10px; letter-spacing: 2.4px; }
.group-review-sidebar nav { display: grid; gap: 7px; }
.group-review-sidebar nav a { min-height: 44px; padding: 0 12px; border-radius: 11px; color: #9caac0; text-decoration: none; display: flex; align-items: center; gap: 12px; font-size: 14px; }
.group-review-sidebar nav a svg { width: 18px; height: 18px; }
.group-review-sidebar nav a.active { color: white; background: rgba(71, 129, 222, .22); box-shadow: inset 3px 0 #4b87e3; }
.group-review-sidebar nav b { margin-left: auto; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px; color: white; background: #d94b55; font-size: 11px; display: grid; place-items: center; }
.group-review-privacy { margin-top: auto; padding: 14px; border: 1px solid rgba(255,255,255,.09); border-radius: 14px; background: rgba(255,255,255,.04); display: flex; gap: 10px; }
.group-review-privacy svg { flex: 0 0 auto; width: 18px; color: #80a9ef; }
.group-review-privacy div { display: grid; gap: 4px; }
.group-review-privacy strong { font-size: 12px; color: #edf4ff; }
.group-review-privacy span { color: #8493aa; font-size: 11px; line-height: 1.55; }

.group-review-main { min-width: 0; padding: 30px clamp(22px, 3vw, 48px) 48px; }
.group-review-profile-entry .group-review-app { display: block; }
.group-review-profile-entry .group-review-sidebar { display: none; }
.group-review-profile-entry .group-review-main { width: min(1240px, 100%); margin: 0 auto; }
.group-review-profile-entry .group-review-mobile-back { position: absolute; left: 0; top: 1px; width: 38px; height: 38px; border: 1px solid var(--collector-line); border-radius: 11px; color: #324057; background: white; display: grid; place-items: center; }
.group-review-profile-entry .group-review-header > div:first-child { padding-left: 50px; }
.group-review-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.group-review-header > div:first-child { position: relative; }
.group-review-header p, .review-dialog header p { margin: 0 0 5px; color: #8b98ab; font-size: 10px; font-weight: 700; letter-spacing: 2.2px; }
.group-review-header h1 { margin: 0; font-size: clamp(25px, 2.4vw, 34px); letter-spacing: 0; }
.group-review-header > div:first-child > span { display: block; margin-top: 8px; color: var(--collector-muted); font-size: 13px; }
.group-review-mobile-back { display: none; }
.group-review-header-actions { display: flex; align-items: center; gap: 10px; }
.collector-health { height: 38px; padding: 0 13px; border: 1px solid #cce7dc; border-radius: 99px; color: var(--collector-green); background: #f2fbf7; display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 650; }
.collector-health svg { width: 15px; }

.review-primary-button, .review-secondary-button, .review-danger-button, .review-icon-button {
  min-height: 40px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-weight: 650; transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.review-primary-button { border: 1px solid var(--collector-blue); padding: 0 17px; color: white; background: var(--collector-blue); box-shadow: 0 8px 18px rgba(23,73,157,.18); }
.review-secondary-button { border: 1px solid var(--collector-line-strong); padding: 0 15px; color: #344258; background: white; }
.review-danger-button { border: 1px solid #efcccc; padding: 0 15px; color: var(--collector-red); background: #fff8f8; }
.review-icon-button { width: 40px; border: 1px solid var(--collector-line-strong); color: #41506a; background: white; }
.review-primary-button svg, .review-secondary-button svg, .review-danger-button svg, .review-icon-button svg { width: 17px; height: 17px; }
.review-primary-button:hover, .review-secondary-button:hover, .review-danger-button:hover, .review-icon-button:hover { transform: translateY(-1px); }
button:disabled { cursor: wait; opacity: .58; transform: none !important; }

.group-review-summary { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.group-review-summary article { min-height: 106px; padding: 16px 18px; border: 1px solid var(--collector-line); border-radius: 15px; background: white; box-shadow: 0 8px 24px rgba(35,51,77,.04); display: grid; grid-template-columns: 1fr auto; align-items: center; }
.group-review-summary span { color: #506079; font-size: 12px; font-weight: 650; }
.group-review-summary strong { grid-row: span 2; font-size: 30px; letter-spacing: 0; }
.group-review-summary small { color: #94a0b2; font-size: 10px; }

.group-review-workspace { min-height: 660px; border: 1px solid var(--collector-line); border-radius: 18px; background: var(--collector-surface); box-shadow: var(--collector-shadow); display: grid; grid-template-columns: minmax(410px, .88fr) minmax(520px, 1.12fr); overflow: hidden; }
.group-review-list-panel { min-width: 0; border-right: 1px solid var(--collector-line); }
.group-review-filters { padding: 16px; border-bottom: 1px solid var(--collector-line); display: grid; gap: 13px; }
.review-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.review-tabs::-webkit-scrollbar { display: none; }
.review-tabs button { flex: 0 0 auto; min-height: 34px; padding: 0 11px; border: 0; border-radius: 9px; color: #68778c; background: transparent; font-size: 12px; white-space: nowrap; }
.review-tabs button span { display: inline-grid; min-width: 19px; height: 19px; margin-left: 4px; place-items: center; border-radius: 99px; background: #edf1f6; font-size: 10px; }
.review-tabs button.active { color: #194b9c; background: var(--collector-blue-soft); font-weight: 700; }
.review-tabs button.active span { color: white; background: #2d68c3; }
.review-search { position: relative; display: block; }
.review-search svg { position: absolute; left: 12px; top: 50%; width: 16px; color: #8b98aa; transform: translateY(-50%); }
.review-search input { width: 100%; height: 40px; padding: 0 34px; border: 1px solid var(--collector-line); border-radius: 10px; color: var(--collector-text); background: #f8fafc; outline: none; font-size: 13px; }
.review-search input:focus { border-color: #86a9dc; box-shadow: 0 0 0 3px rgba(41,98,184,.09); }
.group-review-list { max-height: 780px; overflow-y: auto; }
.candidate-row { width: 100%; padding: 16px; border: 0; border-bottom: 1px solid #edf0f4; color: inherit; background: white; text-align: left; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 12px; }
.candidate-row:hover { background: #fafcff; }
.candidate-row.active { background: #f2f6fd; box-shadow: inset 3px 0 var(--collector-blue); }
.candidate-source-icon { width: 42px; height: 42px; border-radius: 12px; background: #edf3fb; color: var(--collector-blue); display: grid; place-items: center; }
.candidate-source-icon svg { width: 20px; }
.candidate-row-main { min-width: 0; display: grid; gap: 7px; }
.candidate-row-main > span { color: #6c7a8f; font-size: 11px; display: flex; align-items: center; gap: 7px; }
.candidate-row-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.candidate-row-main p { margin: 0; color: #637087; font-size: 12px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.candidate-row-meta { display: grid; align-content: space-between; justify-items: end; color: #8290a4; font-size: 10px; }
.candidate-confidence-dot { display: inline-flex; align-items: center; gap: 4px; color: var(--collector-green); font-weight: 700; }
.candidate-confidence-dot::before { content: ""; width: 6px; height: 6px; border-radius: 99px; background: currentColor; }
.review-empty { min-height: 420px; color: #91a0b3; display: grid; place-content: center; justify-items: center; gap: 8px; text-align: center; }
.review-empty svg { width: 36px; height: 36px; color: #bdc7d5; }
.review-empty strong { color: #5a687d; }
.review-empty span { font-size: 12px; }

.group-review-inspector { min-width: 0; max-height: 880px; overflow-y: auto; background: #fbfcfe; }
.review-inspector-empty { min-height: 620px; padding: 32px; color: #93a0b2; display: grid; place-content: center; justify-items: center; gap: 9px; text-align: center; }
.review-inspector-empty svg { width: 44px; height: 44px; color: #c0cad7; }
.review-inspector-empty strong { color: #536177; font-size: 16px; }
.review-inspector-empty span { max-width: 300px; font-size: 12px; line-height: 1.6; }
#inspectorContent { padding: 20px; }
.review-inspector-head { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.review-inspector-head > div { display: grid; gap: 6px; }
.review-inspector-head strong { font-size: 17px; }
.review-inspector-head small { color: #8996a8; font-size: 11px; }
.review-status-chip { width: fit-content; padding: 4px 8px; border-radius: 7px; color: #945f12; background: #fff5dd; font-size: 10px; font-weight: 700; }
.review-confidence { align-self: start; padding: 8px 10px; border: 1px solid #cde5dc; border-radius: 10px; color: var(--collector-green); background: #f4fbf8; font-size: 12px; font-weight: 750; }
.review-private-source, .review-draft-form, .review-audit-section { padding: 16px; border: 1px solid var(--collector-line); border-radius: 14px; background: white; }
.review-section-title { margin-bottom: 14px; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.review-section-title > div { display: flex; align-items: center; gap: 8px; }
.review-section-title svg { width: 16px; color: var(--collector-blue); }
.review-section-title strong { font-size: 13px; }
.review-section-title > span { color: #8b97a8; font-size: 10px; }
.review-source-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.review-source-actions > span { color: #8b97a8; font-size: 10px; }
.review-source-delete { min-height: 30px; padding: 0 9px; display: inline-flex; align-items: center; gap: 5px; color: #8a3a3a; border: 1px solid #ead7d7; border-radius: 9px; background: #fff; font-size: 10px; }
.review-source-delete svg { width: 13px; height: 13px; color: currentColor; }
.review-source-grid { display: grid; grid-template-columns: 42% minmax(0,1fr); gap: 14px; }
.review-source-screenshot { aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid #dce2e9; border-radius: 12px; background: #edf1f5; display: grid; place-items: center; color: #8b99ad; font-size: 11px; }
.review-source-screenshot img { width: 100%; height: 100%; object-fit: cover; }
.review-source-meta { margin: 0 0 10px; display: grid; gap: 7px; }
.review-source-meta div { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 8px; }
.review-source-meta dt { color: #8a97aa; font-size: 10px; }
.review-source-meta dd { margin: 0; color: #425068; font-size: 11px; overflow-wrap: anywhere; }
.review-original-text { max-height: 104px; padding: 10px; overflow: auto; border-radius: 9px; color: #4b586d; background: #f6f8fb; font-size: 11px; line-height: 1.62; white-space: pre-wrap; }
.review-privacy-warning { margin-top: 8px; padding: 9px 10px; border: 1px solid #eed9aa; border-radius: 9px; color: #76591d; background: #fffaf0; font-size: 10px; line-height: 1.55; }
.review-duplicate-warning { margin-top: 12px; padding: 12px; border: 1px solid #edcf9b; border-radius: 12px; color: #87540d; background: #fff9eb; display: flex; gap: 10px; }
.review-duplicate-warning svg { flex: 0 0 auto; width: 18px; }
.review-duplicate-warning div { display: grid; gap: 3px; }
.review-duplicate-warning strong { font-size: 12px; }
.review-duplicate-warning span { font-size: 10px; }

.review-draft-form { margin-top: 12px; display: grid; gap: 12px; }
.review-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.review-field { position: relative; display: grid; gap: 6px; }
.review-field > span { color: #526075; font-size: 11px; font-weight: 650; }
.review-field em { color: #9a6412; font-style: normal; font-weight: 500; }
.review-field input, .review-field textarea, .review-field select { width: 100%; border: 1px solid var(--collector-line-strong); border-radius: 10px; color: var(--collector-text); background: #fff; outline: none; font-size: 13px; }
.review-field input, .review-field select { height: 40px; padding: 0 11px; }
.review-field textarea { padding: 10px 11px; resize: vertical; line-height: 1.55; }
.review-field input:focus, .review-field textarea:focus, .review-field select:focus { border-color: #76a0da; box-shadow: 0 0 0 3px rgba(34,91,174,.08); }
.review-field > small { position: absolute; right: 9px; bottom: 8px; color: #9aa6b6; font-size: 9px; }
.review-checkbox { display: flex; gap: 9px; align-items: flex-start; color: #45536a; font-size: 11px; }
.review-checkbox input { width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--collector-blue); }
.review-checkbox span { display: grid; gap: 3px; }
.review-checkbox small { color: #8a97aa; }
.review-form-error { margin: 0; padding: 9px 11px; border-radius: 9px; color: var(--collector-red); background: #fff1f1; font-size: 11px; }
.review-form-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 3px; }
.review-audit-section { margin-top: 12px; }
.review-audit-list { display: grid; gap: 0; }
.review-audit-item { position: relative; min-height: 46px; padding: 0 0 14px 24px; display: grid; gap: 3px; }
.review-audit-item::before { content: ""; position: absolute; left: 6px; top: 4px; bottom: -4px; width: 1px; background: #e1e6ed; }
.review-audit-item::after { content: ""; position: absolute; left: 2px; top: 4px; width: 9px; height: 9px; border: 2px solid white; border-radius: 99px; background: #7895bd; box-shadow: 0 0 0 1px #b9c6d7; }
.review-audit-item:last-child::before { display: none; }
.review-audit-item strong { font-size: 11px; }
.review-audit-item span { color: #8a97a9; font-size: 9px; }

.review-dialog { width: min(860px, calc(100vw - 32px)); max-width: none; padding: 0; border: 0; border-radius: 18px; background: transparent; }
.review-dialog::backdrop { background: rgba(14,22,38,.48); backdrop-filter: blur(3px); }
.review-dialog-card { max-height: min(820px, calc(100vh - 40px)); padding: 20px; overflow: auto; border: 1px solid var(--collector-line); border-radius: 18px; background: white; box-shadow: 0 30px 80px rgba(14,28,52,.28); }
.review-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.review-dialog h2 { margin: 0; font-size: 21px; }
.review-pairing-actions { margin-top: 18px; padding: 14px; border: 1px solid #d8e3f2; border-radius: 13px; background: #f7faff; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.review-pairing-actions > div { display: grid; gap: 4px; }
.review-pairing-actions span { color: #7c899c; font-size: 11px; }
.review-pairing-code { margin-top: 12px; padding: 14px; border: 1px dashed #87a8d8; border-radius: 13px; background: #f3f7fe; text-align: center; display: grid; gap: 5px; }
.review-pairing-code span, .review-pairing-code small { color: #71809a; font-size: 10px; }
.review-pairing-code strong { color: var(--collector-blue); font-size: 30px; letter-spacing: 7px; }
.review-device-list, .review-group-list { margin-top: 16px; display: grid; gap: 8px; }
.review-device-card, .review-group-card { padding: 13px; border: 1px solid var(--collector-line); border-radius: 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
.review-device-card > div, .review-group-card > div { display: grid; gap: 4px; }
.review-device-card span, .review-group-card span { color: #7d8a9d; font-size: 10px; }
.review-device-card button, .review-group-card button { align-self: center; }
.review-action-dialog { width: min(420px, 100%); text-align: center; }
.review-action-icon { width: 46px; height: 46px; margin: 0 auto 12px; border-radius: 14px; color: #9b6515; background: #fff4db; display: grid; place-items: center; }
.review-action-icon svg { width: 22px; }
.review-action-dialog p { color: #6f7b8d; font-size: 12px; line-height: 1.6; }
.review-action-dialog .review-field { margin-top: 14px; text-align: left; }
.review-dialog-actions { margin-top: 18px; display: flex; justify-content: center; gap: 9px; }
.review-toast { position: fixed; left: 50%; bottom: 28px; z-index: 80; min-width: 220px; max-width: calc(100vw - 32px); padding: 12px 16px; border-radius: 11px; color: white; background: #1d2a40; box-shadow: 0 12px 32px rgba(11,22,40,.26); transform: translateX(-50%); text-align: center; font-size: 12px; }

@media (max-width: 1120px) {
  .group-review-app { grid-template-columns: 78px minmax(0,1fr); }
  .group-review-sidebar { padding-inline: 12px; }
  .group-review-brand { padding-inline: 3px; }
  .group-review-brand small, .group-review-sidebar nav span, .group-review-privacy div { display: none; }
  .group-review-sidebar nav a { justify-content: center; padding: 0; }
  .group-review-sidebar nav b { position: absolute; margin: -27px 0 0 25px; }
  .group-review-privacy { justify-content: center; }
  .group-review-workspace { grid-template-columns: minmax(340px,.82fr) minmax(460px,1.18fr); }
  .review-source-grid { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .group-review-app { display: block; }
  .group-review-sidebar { display: none; }
  .group-review-main { padding: 20px 14px calc(28px + env(safe-area-inset-bottom)); }
  .group-review-mobile-back { position: absolute; left: 0; top: 1px; width: 38px; height: 38px; border: 1px solid var(--collector-line); border-radius: 11px; color: #324057; background: white; display: grid; place-items: center; }
  .group-review-header > div:first-child { padding-left: 50px; }
  .collector-health { display: none; }
  .group-review-summary { grid-template-columns: 1fr 1fr; }
  .group-review-workspace { display: block; overflow: visible; }
  .group-review-list-panel { border-right: 0; }
  .group-review-list { max-height: none; }
  .group-review-inspector { position: fixed; inset: 0; z-index: 30; max-height: none; padding-top: env(safe-area-inset-top); transform: translateX(102%); transition: transform .22s ease; }
  .group-review-inspector.mobile-open { transform: translateX(0); }
  .group-review-inspector.mobile-open::before { content: "返回候选列表"; position: sticky; top: 0; z-index: 2; height: 46px; padding: 0 18px; border-bottom: 1px solid var(--collector-line); color: #3f4e66; background: rgba(255,255,255,.96); display: flex; align-items: center; font-size: 12px; font-weight: 650; }
  #inspectorContent { padding: 14px; }
  .review-source-grid { grid-template-columns: 38% minmax(0,1fr); }
}

@media (max-width: 560px) {
  .group-review-header { align-items: flex-start; }
  .group-review-header-actions .review-secondary-button { width: 40px; padding: 0; font-size: 0; }
  .group-review-header-actions .review-secondary-button svg { margin: 0; }
  .group-review-summary article { min-height: 86px; padding: 13px; }
  .group-review-summary strong { font-size: 24px; }
  .review-source-grid, .review-form-grid { grid-template-columns: 1fr; }
  .review-form-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .review-form-actions .review-primary-button { grid-column: 1 / -1; order: -1; }
  .review-pairing-actions { align-items: stretch; flex-direction: column; }
}
