/* ── Reset & base ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 13px;
  background: #f0f2f5;
  color: #1a1a1a;
  height: 100vh;
  overflow: hidden;
}

/* ── Login page ───────────────────────────────────────────────────────────── */
body.login-body {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1c2128;
  overflow: auto;
  height: 100vh;
}

.login-card {
  background: white;
  padding: 44px 48px;
  border-radius: 12px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.4);
  width: 360px;
  text-align: center;
}

.login-logo { margin-bottom: 18px; }

.login-logo-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #1c2128;
  color: #e6edf3;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.login-title {
  font-size: 20px;
  font-weight: 700;
  color: #1f2328;
  margin-bottom: 4px;
}

.login-sub {
  font-size: 12px;
  color: #8b949e;
  margin-bottom: 24px;
}

.login-error {
  background: #fff0f0;
  border: 1px solid #f97583;
  border-radius: 6px;
  padding: 9px 12px;
  font-size: 12.5px;
  color: #b31d28;
  margin-bottom: 16px;
  text-align: left;
}

.login-form { text-align: left; }

.login-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #57606a;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 5px;
}

.login-input {
  display: block;
  width: 100%;
  border: 1px solid #d0d7de;
  border-radius: 6px;
  padding: 8px 11px;
  font-size: 13px;
  margin-bottom: 16px;
  outline: none;
  color: #1f2328;
  transition: border-color 0.15s;
}

.login-input:focus { border-color: #388bfd; }

.login-btn {
  display: block;
  width: 100%;
  background: #1f6feb;
  color: white;
  border: none;
  border-radius: 6px;
  padding: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: 20px;
  transition: background 0.15s;
}

.login-btn:hover { background: #388bfd; }

.login-hint {
  font-size: 11px;
  color: #8b949e;
  line-height: 1.6;
}

.login-hint code {
  background: #f6f8fa;
  border: 1px solid #d0d7de;
  border-radius: 3px;
  padding: 0 4px;
  font-size: 11px;
}

/* Review operations workspace */
.ops-body{height:auto;min-height:100vh;overflow:auto;background:#f7f8fa;color:#17212b}.ops-top{height:64px;background:#fff;border-bottom:1px solid #e3e7ec;display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:3}.ops-top>div{display:flex;align-items:center;gap:10px}.ops-mark{background:#183b56;color:#fff;border-radius:8px;padding:7px;font-size:11px;font-weight:800}.ops-top nav{display:flex;gap:22px}.ops-top a{color:#617181;text-decoration:none;font-size:13px}.ops-top a:hover{color:#1769aa}.ops-main{max-width:1280px;margin:0 auto;padding:38px 36px 70px}.ops-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-weight:700;color:#688094;font-size:11px;margin-bottom:7px}.ops-heading h1{font-size:30px;letter-spacing:-.03em;margin-bottom:6px}.ops-section{margin-top:52px}.ops-section h2,.ops-card h2{font-size:19px;margin-bottom:16px}.muted,.empty{color:#71808d}.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.kpi,.ops-card{background:#fff;border:1px solid #e1e7ed;border-radius:10px;padding:18px}.kpi span{display:block;color:#71808d;font-size:12px;margin-bottom:9px}.kpi strong{font-size:27px}.ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.work-row{display:grid;grid-template-columns:1fr 1.5fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f2;font-size:13px}.work-row:last-child{border-bottom:0}.work-row span,.work-row small{color:#71808d}.ops-button{background:#1769aa;color:white;border:0;border-radius:7px;padding:10px 15px;font-weight:700;cursor:pointer}.ops-button:hover{background:#0f568e}.ops-input{background:#fff;border:1px solid #ccd6de;border-radius:6px;padding:9px 11px;margin-left:7px;color:#24313c}.bulkbar{background:#edf5fb;padding:11px 14px;border-radius:8px;margin:10px 0;display:flex;align-items:center;gap:10px}.bulkbar span{margin-right:auto;font-weight:700}.table-wrap{background:#fff;border:1px solid #e1e7ed;border-radius:10px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#687a88;font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:#fbfcfd}th,td{padding:13px 14px;border-bottom:1px solid #edf0f2;white-space:nowrap}.status{display:inline-block;border-radius:20px;padding:5px 9px;background:#eef1f4;color:#445463;text-transform:capitalize}.status-complete{background:#e2f4ea;color:#17633a}.status-transcription_review,.status-translation_review{background:#fff3d7;color:#845d00}.status-unassigned{background:#f0f2f4}.flag{color:#9c4d13;font-weight:700}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.people-grid .work-row{display:grid;grid-template-columns:1fr;gap:5px}@media(max-width:800px){.ops-top{padding:0 16px}.ops-top nav{gap:8px}.ops-top nav a:nth-child(-n+3){display:none}.ops-main{padding:25px 16px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.ops-grid,.people-grid{grid-template-columns:1fr}.ops-heading{align-items:flex-start;flex-direction:column}.ops-input{margin:5px 0 0}}

/* ── App shell ────────────────────────────────────────────────────────────── */
.app {
  display: flex;
  height: 100vh;
}

/* ── Sidebar ──────────────────────────────────────────────────────────────── */
.sidebar {
  width: 256px;
  min-width: 256px;
  background: #1c2128;
  color: #cdd9e5;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-right: 1px solid #30363d;
}

.sidebar-header {
  padding: 14px 12px 10px;
  border-bottom: 1px solid #30363d;
  flex-shrink: 0;
}

.sidebar-header h1 {
  font-size: 13px;
  font-weight: 700;
  color: #e6edf3;
  margin-bottom: 8px;
  letter-spacing: 0.3px;
}

.project-switcher {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
}

.project-select {
  flex: 1;
  min-width: 0;
  background: #21262d;
  border: 1px solid #30363d;
  border-radius: 6px;
  color: #e6edf3;
  font-size: 11.5px;
  padding: 5px 7px;
  outline: none;
}

.project-select:focus { border-color: #388bfd; }

.project-add {
  width: 28px;
  border: 1px solid #30363d;
  border-radius: 6px;
  background: #2d333b;
  color: #cdd9e5;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}

.project-add:hover { background: #373e47; color: #fff; }

.legend {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.leg {
  font-size: 10.5px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.leg.reviewed        { color: #3fb950; }
.leg.needs-review    { color: #d29922; }
.leg.second-review   { color: #58a6ff; }

.sidebar-search {
  padding: 8px 10px;
  border-bottom: 1px solid #30363d;
  flex-shrink: 0;
}

.sidebar-search input {
  width: 100%;
  background: #21262d;
  border: 1px solid #30363d;
  border-radius: 6px;
  color: #cdd9e5;
  padding: 5px 9px;
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s;
}

.sidebar-search input::placeholder { color: #484f58; }
.sidebar-search input:focus { border-color: #388bfd; }

.sidebar-stats {
  padding: 5px 12px;
  font-size: 10.5px;
  color: #8b949e;
  border-bottom: 1px solid #30363d;
  flex-shrink: 0;
}

.doc-list {
  flex: 1;
  overflow-y: auto;
  padding: 4px 0;
}

.doc-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 12px;
  cursor: pointer;
  border-left: 3px solid transparent;
  transition: background 0.1s;
  min-height: 44px;
}

.doc-item:hover  { background: #22272e; }
.doc-item.active { background: #2d333b; border-left-color: #388bfd; }

.doc-icon {
  font-size: 15px;
  width: 20px;
  text-align: center;
  flex-shrink: 0;
  line-height: 1;
}

.status-reviewed            .doc-icon { color: #3fb950; }
.status-needs-review        .doc-icon { color: #d29922; }
.status-needs-second-review .doc-icon { color: #58a6ff; }

.doc-info { flex: 1; min-width: 0; }

.doc-name {
  font-size: 12px;
  color: #e6edf3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 5px;
}

.doc-meta {
  font-size: 10px;
  color: #8b949e;
  margin-top: 1px;
}

/* Confidence chip in sidebar */
.doc-conf {
  display: inline-block;
  padding: 0 5px;
  border-radius: 8px;
  font-size: 9.5px;
  font-weight: 600;
  flex-shrink: 0;
}

.doc-conf.conf-low    { background: rgba(220,38,38,0.2);   color: #f87171; }
.doc-conf.conf-medium { background: rgba(217,119,6,0.2);   color: #fbbf24; }

.sidebar-footer {
  padding: 10px 12px;
  border-top: 1px solid #30363d;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sidebar-account {
  display: flex;
  align-items: center;
  gap: 6px;
}

.sidebar-account .user-chip {
  flex: 1;
  min-width: 0;
  font-size: 11.5px;
  color: #8b949e;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-account .btn-users,
.sidebar-account .btn-logout {
  flex-shrink: 0;
  padding: 4px 8px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid #30363d;
  background: #21262d;
  color: #cdd9e5;
  cursor: pointer;
  text-decoration: none;
}

.sidebar-account .btn-users:hover,
.sidebar-account .btn-logout:hover { background: #30363d; }
.sidebar-account .btn-logout:hover { color: #ff7b72; }

.export-group { display: flex; flex-direction: column; gap: 4px; }

.export-btn {
  display: block;
  text-align: center;
  padding: 6px;
  border-radius: 6px;
  font-size: 11.5px;
  color: #8b949e;
  text-decoration: none;
  border: 1px solid #30363d;
  transition: background 0.1s, color 0.1s;
}

.export-btn:hover { background: #21262d; color: #cdd9e5; }

.export-btn-sub {
  font-size: 10.5px;
  padding: 4px 6px;
  color: #6e7681;
  border-color: #22272e;
}

/* ── Main area ────────────────────────────────────────────────────────────── */
.main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

/* ── Upload screen ────────────────────────────────────────────────────────── */
.upload-screen {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.upload-card {
  background: white;
  padding: 44px 48px;
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.10);
  text-align: center;
  max-width: 420px;
}

.upload-icon { font-size: 48px; margin-bottom: 16px; }
.upload-card h2 { font-size: 20px; margin-bottom: 10px; color: #111; }
.upload-card p  { color: #666; font-size: 13px; margin-bottom: 24px; line-height: 1.5; }

.upload-btn {
  display: inline-block;
  background: #2563eb;
  color: white;
  padding: 10px 26px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: background 0.15s;
}

.upload-btn:hover { background: #1d4ed8; }
.upload-status { margin-top: 14px; color: #666; font-size: 12px; min-height: 18px; }

/* ── Review interface ─────────────────────────────────────────────────────── */
.review-interface {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ── Toolbar ──────────────────────────────────────────────────────────────── */
.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 12px;
  background: white;
  border-bottom: 1px solid #e1e4e8;
  gap: 10px;
  flex-shrink: 0;
  min-height: 46px;
}

.toolbar-left  { display: flex; align-items: center; gap: 8px; min-width: 0; }
.toolbar-right { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }

.nav-btn {
  background: #f6f8fa;
  border: 1px solid #d0d7de;
  border-radius: 6px;
  width: 28px;
  height: 28px;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  color: #57606a;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.1s;
}

.nav-btn:hover:not(:disabled) { background: #eaeef2; color: #1f2328; }
.nav-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.doc-label {
  font-weight: 600;
  font-size: 13px;
  color: #1f2328;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 320px;
}

.doc-status-badge {
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  flex-shrink: 0;
}

.doc-status-badge.reviewed             { background: #dafbe1; color: #116329; }
.doc-status-badge.needs-review         { background: #fff8c5; color: #7d4e00; }
.doc-status-badge.needs-second-review  { background: #ddf4ff; color: #0550ae; }

/* Buttons */
.btn {
  padding: 5px 12px;
  border: 1px solid #d0d7de;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  background: #f6f8fa;
  color: #24292f;
  transition: background 0.1s, border-color 0.1s;
  white-space: nowrap;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.btn:hover:not(:disabled) { background: #eaeef2; }
.btn:disabled { opacity: 0.40; cursor: not-allowed; }

.btn-save        { background: #ddf4ff; border-color: #54aeff; color: #0550ae; }
.btn-save:hover:not(:disabled)        { background: #c8e6ff; }
.btn-review      { background: #dafbe1; border-color: #56d364; color: #116329; }
.btn-review:hover:not(:disabled)      { background: #b5f2c0; }
.btn-assign      { background: #fff8c5; border-color: #d4a72c; color: #7d4e00; }
.btn-assign:hover:not(:disabled)      { background: #fae17d; }
.btn-transcribe  { background: #f3e8ff; border-color: #c084fc; color: #6b21a8; }
.btn-transcribe:hover:not(:disabled)  { background: #ede9fe; }
.btn-transcribe.is-processing { background: #ede9fe; border-color: #9333ea; color: #581c87; }
.btn-translate   { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.btn-translate:hover:not(:disabled)   { background: #fed7aa; }
.btn-export-doc  { background: #f6f8fa; border-color: #d0d7de; color: #24292f; }
.btn-export-doc:hover { background: #eaeef2; }
.btn-infer-template { background: #fff8e1; border-color: #f59e0b; color: #92400e; }
.btn-infer-template:hover:not(:disabled) { background: #fef3c7; }
.btn-infer-template:disabled { opacity: .6; cursor: default; }

.doc-export-wrap { position: relative; display: inline-block; }
.doc-export-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  background: #fff;
  border: 1px solid #d0d7de;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
  min-width: 90px;
  z-index: 200;
  overflow: hidden;
}
.doc-export-menu button {
  display: block;
  width: 100%;
  padding: 7px 14px;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 13px;
  color: #24292f;
}
.doc-export-menu button:hover { background: #f6f8fa; }

.btn-gear        { padding: 5px 9px; font-size: 14px; background: #f6f8fa; }
.btn-users       { padding: 5px 9px; font-size: 14px; background: #f6f8fa; }
.btn-logout      { padding: 5px 9px; font-size: 14px; background: #f6f8fa; color: #57606a; }
.btn-logout:hover { background: #eaeef2; color: #b91c1c; text-decoration: none; }

/* User info chip in toolbar */
.user-chip {
  font-size: 11.5px;
  color: #57606a;
  white-space: nowrap;
  max-width: 100px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Backend badge */
.backend-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
  vertical-align: middle;
  border: 1px solid;
}

.badge-ollama    { background: #f0fdf4; border-color: #86efac; color: #166534; }
.badge-openai    { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.badge-paddleocr { background: #ecfeff; border-color: #67e8f9; color: #155e75; }
.badge-olmocr    { background: #fdf4ff; border-color: #d8b4fe; color: #6b21a8; }
.badge-textract  { background: #fff7ed; border-color: #fb923c; color: #c2410c; }

/* ── Panels ───────────────────────────────────────────────────────────────── */
.panels {
  flex: 1;
  display: flex;
  overflow: hidden;
}

.panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

.scan-panel        { border-right: 2px solid #e1e4e8; }
.translation-panel { border-left:  2px solid #e1e4e8; }

.panel-header {
  padding: 6px 14px;
  background: #f6f8fa;
  border-bottom: 1px solid #e1e4e8;
  font-size: 11.5px;
  font-weight: 600;
  color: #57606a;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}

.panel-hint { font-weight: 400; text-transform: none; color: #8b949e; }

.panel-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.panel-dl-btn {
  padding: 2px 8px;
  font-size: 10.5px;
  font-weight: 500;
  border: 1px solid #d0d7de;
  border-radius: 4px;
  cursor: pointer;
  background: #f6f8fa;
  color: #57606a;
  text-transform: none;
  letter-spacing: 0;
  transition: background 0.1s;
  white-space: nowrap;
}

.panel-dl-btn:hover:not(:disabled) { background: #eaeef2; color: #1f2328; }
.panel-dl-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.panel-body {
  flex: 1;
  overflow-y: auto;
  padding: 18px 16px;
  background: #f8f9fa;
}

.no-selection {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #8b949e;
  font-size: 13px;
}

/* ── Scan images ──────────────────────────────────────────────────────────── */
.scan-pages { display: flex; flex-direction: column; gap: 14px; }

.scan-page {
  position: relative;
  background: white;
  box-shadow: 0 1px 6px rgba(0,0,0,0.12);
  border-radius: 2px;
}

.scan-page .scan-img { width: 100%; display: block; border-radius: 2px; }

.scan-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% - 22px);
  pointer-events: none;
  border-radius: 2px 2px 0 0;
}

.page-label {
  font-size: 10px;
  color: #8b949e;
  text-align: center;
  padding: 4px 0 3px;
  background: #f6f8fa;
  border-top: 1px solid #e1e4e8;
  letter-spacing: 0.5px;
}

/* ── Confidence indicators ────────────────────────────────────────────────── */
.conf-badge {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  border-radius: 8px;
  font-size: 9.5px;
  font-weight: 600;
  vertical-align: middle;
  flex-shrink: 0;
}

.conf-badge.conf-low    { background: #fee2e2; color: #dc2626; }
.conf-badge.conf-medium { background: #fef3c7; color: #b45309; }
.conf-badge.conf-high   { background: #dcfce7; color: #16a34a; }

.conf-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #f8f9fa;
  border: 1px solid #e1e4e8;
  border-radius: 6px;
  font-size: 11px;
  color: #57606a;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

/* ── SARV Editable Form ───────────────────────────────────────────────────── */
.sarv-form {
  background: white;
  max-width: 680px;
  margin: 0 auto 40px;
  padding: 30px 36px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  font-size: 12px;
  color: #111;
  line-height: 1.45;
}

.sarv-form .form-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 10px;
  border-bottom: 2.5px solid #111;
  margin-bottom: 16px;
  gap: 12px;
}

.sarv-form .head-text .ht-org {
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.4px;
  color: #000;
  line-height: 1.3;
}

.sarv-form .head-text .ht-sub {
  font-size: 10.5px;
  font-weight: 400;
  color: #333;
  margin-top: 1px;
}

.sarv-form .head-logo {
  width: 70px;
  height: 70px;
  border: 1.5px solid #bbb;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f9f9f9;
  color: #ccc;
  font-size: 9px;
  text-align: center;
}

.sarv-form .section-heading {
  font-weight: 800;
  text-decoration: underline;
  font-size: 12.5px;
  margin-bottom: 12px;
  text-underline-offset: 2px;
}

.sarv-form .fields-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 28px;
  row-gap: 11px;
  margin-bottom: 20px;
}

.sarv-form .field {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding-bottom: 3px;
  border-bottom: 1px solid #444;
}

.sarv-form .field label {
  font-weight: 700;
  font-size: 11.5px;
  white-space: nowrap;
  flex-shrink: 0;
  color: #111;
}

.sarv-form .field input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  font-size: 12.5px;
  font-family: inherit;
  background: transparent;
  color: #1a3a8f;
  padding: 0 2px;
  border-radius: 3px;
  transition: background 0.15s;
}

.sarv-form .field input:focus { background: rgba(37, 99, 235, 0.04); }

/* Confidence bg on field inputs */
.sarv-form .field input.conf-low    { background: rgba(220,38,38,0.06); }
.sarv-form .field input.conf-medium { background: rgba(217,119,6,0.06); }
.sarv-form .field input.conf-high   { background: transparent; }

.sarv-form .question { margin-bottom: 18px; }

.sarv-form .q-label {
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.45;
  margin-bottom: 5px;
  color: #000;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0;
}

.sarv-form .q-label em {
  font-style: italic;
  font-weight: 400;
  font-size: 11.5px;
  color: #555;
  display: block;
  margin-top: 1px;
  flex-basis: 100%;
}

.sarv-form textarea.q-answer {
  display: block;
  width: 100%;
  border: none;
  border-bottom: 1px solid #ccc;
  outline: none;
  resize: none;
  overflow: hidden;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.75;
  color: #1a3a8f;
  padding: 4px 2px;
  min-height: 76px;
  background: transparent;
  border-radius: 3px;
  transition: border-color 0.15s, background 0.15s;
}

.sarv-form textarea.q-answer:focus {
  border-bottom-color: #2563eb;
  background: rgba(37, 99, 235, 0.03);
}

/* Confidence bg on textareas */
.sarv-form textarea.q-answer.conf-low    { background: rgba(220,38,38,0.04); border-bottom-color: rgba(220,38,38,0.3); }
.sarv-form textarea.q-answer.conf-medium { background: rgba(217,119,6,0.04);  border-bottom-color: rgba(217,119,6,0.3); }
.sarv-form textarea.q-answer.conf-high   { background: transparent; }

.sarv-form .page-sep {
  border: none;
  border-top: 2px dashed #d0d7de;
  margin: 24px 0;
  position: relative;
}

.sarv-form .page-sep::after {
  content: "Page 2";
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: white;
  padding: 0 12px;
  color: #aaa;
  font-size: 10px;
  letter-spacing: 0.5px;
}

.sarv-form .notes-section {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid #e1e4e8;
}

.sarv-form .notes-section label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #8b949e;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 5px;
}

.sarv-form textarea.notes-input {
  width: 100%;
  border: 1px solid #d0d7de;
  border-radius: 6px;
  padding: 7px 9px;
  font-size: 12px;
  font-family: inherit;
  resize: none;
  overflow: hidden;
  min-height: 52px;
  color: #57606a;
  outline: none;
  background: #f6f8fa;
  transition: border-color 0.15s, background 0.15s;
}

.sarv-form textarea.notes-input:focus {
  border-color: #388bfd;
  background: white;
}

/* ── Autosave indicator ───────────────────────────────────────────────────── */
.autosave-indicator {
  font-size: 10.5px;
  font-weight: 400;
  color: transparent;
  transition: color 0.2s;
  text-transform: none;
  letter-spacing: 0;
  white-space: nowrap;
}

.autosave-indicator.saving      { color: #d29922; }
.autosave-indicator.saved       { color: #3fb950; }
.autosave-indicator.transcribing { color: #6b21a8; }

/* ── Transcribe loading overlay ───────────────────────────────────────────── */
.transcribe-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.85);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 10;
  gap: 14px;
  backdrop-filter: blur(2px);
}

.transcribe-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid #e9d5ff;
  border-top-color: #9333ea;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

.transcribe-label {
  font-size: 13px;
  color: #6b21a8;
  font-weight: 500;
  max-width: 300px;
  text-align: center;
}

/* ── Modal ────────────────────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
}

.modal {
  background: white;
  padding: 28px 32px;
  border-radius: 10px;
  width: 420px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
  max-height: 90vh;
  overflow-y: auto;
}

.modal-wide { width: 540px; }

.modal h3 { font-size: 16px; margin-bottom: 8px; }
.modal p  { color: #57606a; font-size: 13px; margin-bottom: 16px; line-height: 1.5; }

.modal-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.modal-title-row h3 { margin-bottom: 0; }

.modal-close {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  color: #8b949e;
  line-height: 1;
  padding: 0 4px;
}

.modal-close:hover { color: #1f2328; }

.modal-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #57606a;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 4px;
}

.modal-label ~ .modal-input { margin-bottom: 14px; }
.modal-label:not(:first-of-type) { margin-top: 4px; }

.settings-note { font-size: 11.5px; color: #8b949e; margin: 4px 0 14px; line-height: 1.45; }
.settings-note code { background: #f6f8fa; border: 1px solid #d0d7de; border-radius: 3px; padding: 1px 4px; }

.modal-input {
  width: 100%;
  border: 1px solid #d0d7de;
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 13px;
  outline: none;
  margin-bottom: 14px;
  color: #1f2328;
  transition: border-color 0.15s;
  background: white;
}

.modal-input.sm { margin-bottom: 8px; font-size: 12px; padding: 6px 9px; }
.modal-input:focus { border-color: #388bfd; }

.modal-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 14px;
}

/* ── User management ──────────────────────────────────────────────────────── */
.user-list-header {
  font-size: 11px;
  font-weight: 600;
  color: #57606a;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 8px;
}

.user-list {
  border: 1px solid #e1e4e8;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 16px;
}

.user-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  border-bottom: 1px solid #f0f2f5;
  gap: 10px;
}

.user-row:last-child { border-bottom: none; }
.user-row:hover { background: #f8f9fa; }

.user-row-info {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}

.user-row-name {
  font-size: 12.5px;
  font-weight: 600;
  color: #1f2328;
}

.user-row-username {
  font-size: 11px;
  color: #8b949e;
}

.user-row-you {
  font-size: 10.5px;
  color: #8b949e;
  font-style: italic;
}

.user-row-actions {
  display: flex;
  gap: 5px;
  flex-shrink: 0;
}

.btn-tiny {
  padding: 3px 8px;
  font-size: 11px;
  border: 1px solid #d0d7de;
  border-radius: 4px;
  cursor: pointer;
  background: #f6f8fa;
  color: #24292f;
  transition: background 0.1s;
}

.btn-tiny:hover { background: #eaeef2; }
.btn-tiny.danger { border-color: #f97583; color: #b31d28; background: #fff0f0; }
.btn-tiny.danger:hover { background: #ffe0e0; }

.role-badge {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
  text-transform: capitalize;
}

.role-admin       { background: #fdf4ff; color: #7c3aed; border: 1px solid #ddd6fe; }
.role-reviewer    { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.role-transcriber { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }

.user-add-section {
  border-top: 1px solid #e1e4e8;
  padding-top: 14px;
  margin-bottom: 0;
}

.user-add-title {
  font-size: 11px;
  font-weight: 600;
  color: #57606a;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 10px;
}

.user-add-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.user-stats-section { margin-bottom: 8px; }

.user-stat-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 12px;
  background: #f8f9fa;
  border: 1px solid #e1e4e8;
  border-radius: 4px;
  margin-bottom: 4px;
  font-size: 11.5px;
  color: #57606a;
}

.change-pw-link {
  font-size: 12px;
  color: #0550ae;
  cursor: pointer;
  text-decoration: underline;
  flex: 1;
}

.change-pw-section {
  border-top: 1px solid #e1e4e8;
  padding-top: 14px;
  margin-top: 4px;
}

/* ── Translation overlay ─────────────────────────────────────────────────── */
.translate-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.85);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 10;
  gap: 14px;
  backdrop-filter: blur(2px);
}

.translation-view {
  background: white;
  max-width: 680px;
  margin: 0 auto 40px;
  padding: 24px 28px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  font-size: 13px;
  color: #1a1a1a;
  line-height: 1.6;
}

.tl-section {
  font-size: 10px;
  font-weight: 700;
  color: #8b949e;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 16px 0 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid #e1e4e8;
}

.tl-section:first-child { margin-top: 0; }

.tl-field {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}

.tl-label {
  font-weight: 600;
  font-size: 11.5px;
  color: #57606a;
  flex-shrink: 0;
  min-width: 110px;
}

.tl-value {
  color: #1a3a8f;
  font-size: 13px;
  white-space: pre-wrap;
  word-break: break-word;
}

.tl-q { margin-bottom: 16px; }

.tl-q-num {
  font-weight: 700;
  font-size: 11.5px;
  color: #57606a;
  margin-bottom: 4px;
}

.tl-q-value {
  color: #1a3a8f;
  font-size: 13px;
  white-space: pre-wrap;
  word-break: break-word;
  padding-left: 10px;
  border-left: 3px solid #e1e4e8;
  line-height: 1.65;
}

.tl-empty { color: #c0c0c0; font-style: italic; }

/* ── No-template hint ────────────────────────────────────────────────────── */
.no-template-hint {
  color: #8b949e;
  font-size: 12px;
  padding: 20px 0;
  text-align: center;
  line-height: 1.6;
}

/* ── Template selector in panel header ────────────────────────────────────── */
.template-select-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}

.template-select {
  font-size: 11px;
  border: 1px solid #d0d7de;
  border-radius: 5px;
  padding: 2px 6px;
  background: white;
  color: #57606a;
  outline: none;
  max-width: 160px;
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0;
}

.template-select:focus { border-color: #388bfd; }

.btn-tpl-mgr {
  background: none;
  border: 1px solid #d0d7de;
  border-radius: 5px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 2px 5px;
  color: #57606a;
  transition: background 0.1s, color 0.1s;
}

.btn-tpl-mgr:hover { background: #eaeef2; color: #1f2328; }

/* ── Template manager modal ───────────────────────────────────────────────── */
.modal-tpl {
  width: 600px;
  max-width: 96vw;
}

.tpl-list {
  border: 1px solid #e1e4e8;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 14px;
  min-height: 48px;
}

.tpl-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid #f0f2f5;
  gap: 12px;
}

.tpl-list-row:last-child { border-bottom: none; }
.tpl-list-row:hover { background: #f8f9fa; }

.tpl-list-name {
  font-size: 13px;
  font-weight: 600;
  color: #1f2328;
  flex: 1;
}

.tpl-list-actions {
  display: flex;
  gap: 5px;
  flex-shrink: 0;
}

/* ── Template editor ──────────────────────────────────────────────────────── */
.tpl-fields-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 14px 0 8px;
}

.tpl-add-btns {
  display: flex;
  gap: 4px;
}

.tpl-field-list {
  border: 1px solid #e1e4e8;
  border-radius: 6px;
  padding: 6px 8px;
  max-height: 340px;
  overflow-y: auto;
  margin-bottom: 14px;
  background: #f8f9fa;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tpl-field-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: white;
  border: 1px solid #e1e4e8;
  border-radius: 5px;
  padding: 7px 8px;
}

.tpl-type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 3px;
}

.tpl-type-text { background: #ddf4ff; color: #0550ae; }
.tpl-type-area { background: #f3e8ff; color: #6b21a8; }
.tpl-type-head { background: #fff8c5; color: #7d4e00; }
.tpl-type-sep  { background: #f0f2f5; color: #8b949e; }

.tpl-field-inputs {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.tpl-field-input {
  margin-bottom: 0 !important;
  font-size: 11.5px !important;
}

.tpl-field-btns {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex-shrink: 0;
  padding-top: 2px;
}

.btn-tiny-ph {
  display: inline-block;
  width: 32px;
  height: 22px;
}

/* ── Misc ─────────────────────────────────────────────────────────────────── */
.loading {
  padding: 20px;
  text-align: center;
  color: #8b949e;
  font-size: 12px;
}

::-webkit-scrollbar       { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #c8cdd3; border-radius: 3px; }

/* ── Sidebar footer: upload + export ────────────────────────────────────── */
.sidebar-upload-btn {
  display: block;
  width: 100%;
  padding: 7px 12px;
  background: #21262d;
  color: #cdd9e5;
  border: 1px solid #30363d;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
}
.sidebar-upload-btn:hover { background: #2d333b; color: #e6edf3; }

.export-btns {
  display: flex;
  gap: 4px;
}

.export-btn {
  flex: 1;
  padding: 5px 4px;
  background: transparent;
  border: 1px solid #30363d;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  color: #8b949e;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
}
.export-btn:hover { background: #21262d; color: #cdd9e5; }

.btn-danger-sm {
  display: block;
  width: 100%;
  padding: 5px 10px;
  background: transparent;
  border: 1px solid #f85149;
  border-radius: 5px;
  color: #f85149;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}
.btn-danger-sm:hover { background: rgba(248,81,73,0.1); }

/* ── Doc item actions ───────────────────────────────────────────────────── */
.doc-item {
  position: relative;
}
.doc-item-actions {
  display: none;
  gap: 3px;
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
}
.doc-item:hover .doc-item-actions { display: flex; }

.doc-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  background: #2d333b;
  border: 1px solid #30363d;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  color: #8b949e;
  line-height: 1;
}
.doc-action-btn:hover { background: #3d444d; color: #cdd9e5; }
.doc-action-btn.danger:hover { background: rgba(248,81,73,0.15); color: #f85149; border-color: #f85149; }

/* ── Upload options (upload screen) ─────────────────────────────────────── */
.upload-options {
  margin-bottom: 16px;
}
.upload-option-label {
  font-size: 12px;
  color: #57606a;
  display: flex;
  align-items: center;
  gap: 8px;
}
.upload-option-select {
  padding: 4px 8px;
  border: 1px solid #d0d7de;
  border-radius: 5px;
  font-size: 12px;
  background: white;
}

/* ── Upload modal ───────────────────────────────────────────────────────── */
.upload-mode-btns {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}
.upload-mode-opt {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  cursor: pointer;
  color: #444;
}
.modal-file-input {
  display: block;
  width: 100%;
  font-size: 12px;
  margin-bottom: 4px;
}

/* ── Print styles ───────────────────────────────────────────────────────── */
@media print {
  .sidebar, .toolbar, .panel.scan-panel,
  .modal-overlay, #transcribeOverlay,
  .template-select-wrap, .conf-legend { display: none !important; }

  body { overflow: auto; background: white; }
  .app { display: block; height: auto; }
  .main { display: block; height: auto; overflow: auto; }
  .panels { display: block; height: auto; }
  .panel.form-panel { display: block; width: 100%; height: auto; overflow: visible; }
  .panel-body { overflow: visible; height: auto; }
  .sarv-form { padding: 0; }
  .form-head { border: 1px solid #ccc; }
}
::-webkit-scrollbar-thumb:hover { background: #a0a7ae; }
.work-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #edf0f2}.work-card>div{display:grid;gap:5px}.work-card span,.work-card small{color:#71808d}.work-card .ops-button{white-space:nowrap;text-decoration:none}
.login-body{background:#f4f6f8!important;color:#17212b}.login-card{box-shadow:0 12px 32px rgba(31,49,67,.1);border:1px solid #e1e7ed;border-radius:14px}.login-logo-circle{background:#183b56;border-radius:10px}.login-title{font-size:24px;letter-spacing:-.02em}.login-sub{font-size:13px;line-height:1.5}.login-input{padding:11px 12px;border-color:#cbd5de;border-radius:7px}.login-input:focus{border-color:#1769aa;box-shadow:0 0 0 3px rgba(23,105,170,.12)}.login-btn{background:#1769aa;border-radius:7px;padding:11px}.login-btn:hover{background:#0f568e}
.filter-panel{display:grid;grid-template-columns:2fr repeat(6,minmax(120px,1fr));gap:12px;background:#fff;border:1px solid #e1e7ed;border-radius:10px;padding:14px;margin-bottom:12px}.filter-panel label,.user-form-grid label{display:grid;gap:6px;color:#5d6d7b;font-size:11px;font-weight:700}.filter-panel .ops-input,.user-form-grid .ops-input{margin:0;width:100%}.ops-input.number{min-width:90px}.ops-button.secondary{background:#fff;color:#1769aa;border:1px solid #b9cada}.ops-button.secondary:hover{background:#edf5fb}.inline-button{display:inline-block;text-decoration:none;margin-top:15px}.group-row td{background:#eef4f8;color:#28475e;font-weight:750}.group-row span{margin-left:8px;color:#708391;font-weight:500}.working-dot{color:#17633a;font-weight:700}.working-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#21a366;margin-right:6px}.owner-assigned{color:#24313c}.owner-empty{color:#8b98a3;font-weight:500}.work-row.linked{text-decoration:none;color:inherit;border-radius:6px;padding-left:7px;padding-right:7px}.work-row.linked:hover{background:#f3f7fa}.add-user-card{margin-bottom:16px}.form-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.form-heading h3{font-size:17px;margin-bottom:4px}.text-button{border:0;background:none;color:#1769aa;cursor:pointer}.user-form-grid{display:grid;grid-template-columns:1.3fr 1.3fr 1fr 1.2fr;gap:14px}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:18px}.person-card{background:#fff;border:1px solid #e1e7ed;border-radius:10px;padding:18px}.person-head{display:flex;gap:12px;align-items:center}.person-head h3{font-size:15px;margin-bottom:3px}.person-head span{color:#71808d;font-size:12px}.avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e8f1f7;color:#1769aa;font-weight:800}.person-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.person-stats div{display:grid;gap:3px}.person-stats strong{font-size:20px}.person-stats span{color:#71808d;font-size:11px}.person-card>a{color:#1769aa;text-decoration:none;font-weight:700;font-size:12px}@media(max-width:1100px){.filter-panel{grid-template-columns:repeat(3,1fr)}.user-form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.filter-panel,.user-form-grid{grid-template-columns:1fr}.bulkbar{align-items:stretch;flex-direction:column}.bulkbar span{margin:0}}
.filter-hint{font-size:10px;font-weight:500;color:#83919c}.multi-location{min-height:90px;padding:4px}.multi-location option{padding:5px 7px;border-radius:4px}.clear-filter{border:0;background:none;color:#1769aa;font-size:11px;text-align:left;padding:0;cursor:pointer;width:max-content}
.ops-top nav a.active{color:#1769aa;font-weight:750}.page-dashboard .ops-main>section:not(#dashboard),.page-documents .ops-main>section:not(#documents),.page-people .ops-main>section:not(#people),.page-exports .ops-main>section:not(#exports){display:none}.page-documents #documents,.page-people #people,.page-exports #exports{margin-top:0}
.workspace-body{height:100vh;overflow:hidden}.workspace-main{height:calc(100vh - 64px);display:grid;grid-template-columns:320px minmax(0,1fr);background:#eef2f5}.workspace-queue{background:#fff;border-right:1px solid #dce3e9;display:flex;flex-direction:column;min-height:0}.queue-heading{padding:24px 20px 16px}.queue-heading h1{font-size:22px;margin-bottom:6px}.queue-tabs{display:flex;padding:0 14px 10px;border-bottom:1px solid #e8edf1}.queue-tabs button{flex:1;border:0;background:none;padding:9px;color:#71808d;font-weight:700;cursor:pointer;border-radius:6px}.queue-tabs button.active{background:#eaf2f8;color:#1769aa}.queue-list{overflow:auto;padding:10px;display:grid;gap:6px}.queue-item{display:grid;text-align:left;border:1px solid transparent;background:#fff;border-radius:8px;padding:12px;cursor:pointer;gap:4px;color:#26343f}.queue-item:hover{background:#f6f9fb}.queue-item.active{background:#edf5fb;border-color:#a9c8dd}.queue-location{font-weight:750;font-size:14px}.queue-code{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#57606a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-file,.queue-meta{font-size:11px;color:#7a8995;overflow:hidden;text-overflow:ellipsis}.queue-stage{font-size:11px;color:#1769aa;font-weight:700;margin-top:3px}.queue-empty{padding:30px 14px;color:#71808d;text-align:center}.workspace-content{min-width:0;min-height:0;padding:18px}.workspace-empty{height:100%;display:grid;place-content:center;text-align:center;color:#71808d}.workspace-empty[hidden]{display:none}.workspace-empty .empty-icon{margin:0 auto 14px;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e2f4ea;color:#17633a;font-size:24px}.workspace-empty h2{color:#283844;margin-bottom:7px}.workspace-review{height:100%;background:#fff;border:1px solid #dce3e9;border-radius:10px;overflow:hidden}.workspace-context{height:76px;display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid #e5eaee}.workspace-context h2{font-size:17px;margin:2px 0}.back-to-queue{display:none;border:0;background:none;color:#1769aa;padding:0}.workspace-review iframe{width:100%;height:calc(100% - 76px);border:0}.embedded-review{height:100vh;background:#fff}.embedded-review .sidebar{display:none}.embedded-review .main{width:100%;min-width:0}.embedded-review .toolbar{padding-left:14px}.embedded-review #btnInferTemplate,.embedded-review #btnAssign{display:none!important}.embedded-review .review-interface{height:100vh}.embedded-review .panels{height:calc(100vh - 52px)}@media(max-width:850px){.workspace-main{grid-template-columns:1fr}.workspace-content{display:none}.workspace-main.document-open .workspace-queue{display:none}.workspace-main.document-open .workspace-content{display:block}.back-to-queue{display:block}}
.reviewer-switch-label{display:grid;gap:5px;margin-top:15px;color:#647685;font-size:11px;font-weight:700}.reviewer-switch-label .ops-input{margin:0;width:100%}
.embedded-review.admin-preview .autosave-indicator:after{content:"Acting on behalf of the assigned reviewer";color:#687a88}

/* Operations UX v2 --------------------------------------------------------- */
.ops-v2{--ink:#172b3a;--muted:#667987;--line:#dde5eb;--soft:#f4f7f9;--blue:#1268a5;--blue-soft:#eaf3f9;--green:#18794e;--amber:#9a6700;background:#f5f7f9;color:var(--ink)}
.ops-v2 .ops-top{padding:0 28px;gap:28px;box-shadow:0 1px 0 rgba(20,44,62,.03)}
.ops-brand{display:flex;align-items:center;gap:10px;color:var(--ink)!important;text-decoration:none;font-weight:760;white-space:nowrap}
.ops-v2 .ops-top nav{flex:1;align-self:stretch;display:flex;gap:4px}.ops-v2 .ops-top nav a{display:flex;align-items:center;padding:0 12px;border-bottom:2px solid transparent}.ops-v2 .ops-top nav a.active{border-bottom-color:var(--blue);color:var(--blue)}
.ops-signout{white-space:nowrap}.ops-v2 .ops-main{max-width:1360px;padding-top:34px}.ops-v2 .ops-heading{align-items:center}.ops-v2 .ops-heading h1{font-size:30px}.ops-v2 .ops-button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:40px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kpi-action-grid{grid-template-columns:repeat(5,1fr)}.kpi-action{display:block;text-decoration:none;color:var(--ink);transition:transform .12s,border-color .12s,box-shadow .12s;position:relative;overflow:hidden}.kpi-action:hover{transform:translateY(-2px);border-color:#b9ccd9;box-shadow:0 8px 20px rgba(35,61,78,.08)}.kpi-action em{display:block;margin-top:14px;font-style:normal;font-size:11px;color:var(--blue);font-weight:700}.kpi-action:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.kpi-action.attention:before,.kpi-action.warning:before{background:#d49b18}.kpi-action.active:before{background:#2487c5}.kpi-action.complete:before{background:#2c9b67}
.progress-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;margin-top:14px}.progress-copy{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.progress-copy>div{display:grid;gap:4px}.progress-copy span{font-size:12px;color:var(--muted)}.progress-copy>strong{font-size:20px;color:var(--blue)}.progress-track{height:8px;border-radius:99px;background:#e8eef2;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:#2f8f65;transition:width .3s}
.card-heading{display:flex;align-items:start;justify-content:space-between}.card-heading a{color:var(--blue);font-size:12px;text-decoration:none;font-weight:700}.activity-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:12px 4px;border-top:1px solid #edf1f3;text-decoration:none;color:var(--ink)}.activity-row:hover{background:#f7fafb}.activity-row div{display:grid;gap:3px}.activity-row span,.activity-row em{font-size:11px;color:var(--muted);font-style:normal}.activity-row em{color:var(--blue);font-weight:700}.avatar.small{width:32px;height:32px}.avatar.tiny{width:23px;height:23px;font-size:10px}.friendly-empty{display:grid;gap:5px;text-align:center;padding:34px 12px}.friendly-empty span{font-size:12px;color:var(--muted)}
.queue-toolbar{display:grid;grid-template-columns:minmax(250px,1fr) 190px 190px 180px 130px;gap:10px;position:relative}.queue-toolbar .ops-input{margin:0;width:100%;height:42px}.search-field input{padding-left:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2370808c' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E") no-repeat 13px center}.filter-button{height:42px;background:#fff;border:1px solid #ccd6de;border-radius:7px;padding:0 12px;color:#334754;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.filter-button:hover,.filter-button[aria-expanded=true]{border-color:#78aaca;box-shadow:0 0 0 3px rgba(18,104,165,.08)}
.location-filter-wrap{position:relative}.location-menu{position:absolute;z-index:8;top:48px;right:0;width:320px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 40px rgba(29,50,65,.16)}.location-menu .ops-input{height:38px}.location-options{max-height:290px;overflow:auto;margin:8px -4px}.location-options label{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:8px;border-radius:6px;cursor:pointer}.location-options label:hover{background:#f2f6f8}.location-options em{font-style:normal;color:var(--muted);font-size:11px}.location-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf1f3;padding-top:10px}.location-actions>button:first-child{border:0;background:none;color:var(--blue);cursor:pointer}.ops-button.small{min-height:32px;padding:6px 12px}
.active-filters{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.active-filters:empty{display:none}.active-filters button{border:1px solid #bcd0dc;background:#edf5f9;color:#31566d;border-radius:99px;padding:5px 9px;font-size:11px;cursor:pointer}.advanced-filters{display:flex;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;margin-top:10px}.advanced-filters label{display:grid;gap:5px;font-size:11px;color:var(--muted);font-weight:700}.advanced-filters .ops-input{margin:0;min-width:170px}.advanced-filters .text-button{margin-left:auto;margin-bottom:9px}
.floating-bulk{position:sticky;top:74px;z-index:5;margin:12px 0;background:#163e57;color:#fff;box-shadow:0 8px 20px rgba(24,54,73,.16)}.floating-bulk>div{display:grid;margin-right:auto}.floating-bulk>div span{font-weight:400;color:#c8d8e2;font-size:11px}.floating-bulk .secondary{background:transparent;color:#fff;border-color:#6f91a5}.floating-bulk .text-button{color:#d9e8f1}.queue-summary{display:flex;gap:8px;margin:16px 2px 8px;font-size:12px}.queue-summary span{color:var(--muted)}
.document-table-wrap{overflow:visible}.document-table th,.document-table td{padding:13px 12px}.document-table td:nth-child(2){white-space:normal;min-width:210px}.document-table td:nth-child(2) strong,.document-table td:nth-child(2) small{display:block}.document-table td:nth-child(2) small{color:var(--muted);margin-top:4px;font-size:10px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f6f9fb}.owner-pill{display:flex;align-items:center;gap:7px}.unassigned-label{color:#8a5b00;background:#fff7df;padding:5px 8px;border-radius:99px}.live-status{color:var(--green);font-size:11px;font-weight:700}.live-status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#25a66b;margin-right:6px}.priority-badge{display:inline-block;margin-left:5px;color:#8a5b00;background:#fff3cd;border-radius:99px;padding:4px 7px;font-size:9px;font-weight:800;text-transform:uppercase}.row-action{border:0;background:none;font-size:22px;color:#7b8c98;cursor:pointer}.table-empty{padding:50px}.document-table .status{text-transform:none}
.details-drawer,.dialog-shell{position:fixed;inset:0;z-index:30}.drawer-backdrop,.dialog-backdrop{position:absolute;inset:0;background:rgba(19,38,51,.32)}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(480px,94vw);background:#fff;box-shadow:-16px 0 40px rgba(23,43,57,.18);display:flex;flex-direction:column}.drawer-header{display:flex;justify-content:space-between;align-items:start;padding:22px;border-bottom:1px solid var(--line)}.drawer-header h2{font-size:21px}.icon-button{border:0;background:#eff3f5;width:32px;height:32px;border-radius:50%;font-size:21px;cursor:pointer}.drawer-body{padding:20px;overflow:auto;flex:1}.drawer-actions{padding:16px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}.detail-status{display:flex;gap:7px;margin-bottom:18px}.detail-list{display:grid}.detail-list>div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f3}.detail-list dt{color:var(--muted);font-size:11px}.detail-list dd{margin:0;font-weight:600}.attention-note{background:#fff8e5;border:1px solid #f0dca4;border-radius:8px;padding:12px;margin:18px 0}.attention-note p{margin-top:5px;line-height:1.5}.history-block{margin-top:22px}.history-block h3{font-size:14px;margin-bottom:10px}.history-event{display:grid;grid-template-columns:12px 1fr;gap:8px;padding:9px 0}.history-event i{width:8px;height:8px;border-radius:50%;background:#8ab3cc;margin-top:4px}.history-event div{display:grid;gap:3px}.history-event span{font-size:10px;color:var(--muted)}
.dialog-card{position:relative;width:min(560px,94vw);margin:8vh auto;background:#fff;border-radius:12px;box-shadow:0 24px 70px rgba(18,39,54,.25);padding-bottom:18px}.dialog-card>p{padding:16px 22px 8px}.reviewer-choices{padding:4px 16px;max-height:390px;overflow:auto}.reviewer-choices button{width:100%;display:grid;grid-template-columns:40px 1fr 22px;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:8px;padding:11px;margin:7px 0;cursor:pointer}.reviewer-choices button:hover,.reviewer-choices button.selected{border-color:#68a4c8;background:#f0f7fb}.reviewer-choices button div{display:grid;gap:3px}.reviewer-choices button span{color:var(--muted);font-size:11px}.reviewer-choices button i{font-style:normal;color:transparent}.reviewer-choices button.selected i{color:var(--blue)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px 0}
.toast-region{position:fixed;right:22px;bottom:22px;z-index:50;display:grid;gap:8px}.toast{width:min(390px,calc(100vw - 44px));display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;background:#173d52;color:#fff;border-radius:9px;padding:13px 15px;box-shadow:0 10px 30px rgba(20,42,56,.25)}.toast>span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#2aa36c}.toast.error>span{background:#cf4b4b}.toast p{line-height:1.4}
.people-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.person-card h2{font-size:15px}.current-assignment{display:grid;gap:4px;background:#f2f7fa;border-radius:7px;padding:10px;margin-bottom:14px}.current-assignment span{font-size:10px;color:var(--muted)}.current-assignment.available strong{color:var(--green)}.person-actions{display:flex;gap:14px}.person-actions a{color:var(--blue);text-decoration:none;font-weight:700;font-size:11px}.export-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.export-card{display:grid;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;text-decoration:none;color:var(--ink);transition:.12s}.export-card:hover{transform:translateY(-2px);border-color:#a8c3d4;box-shadow:0 8px 20px rgba(35,61,78,.08)}.export-card span{color:var(--muted);line-height:1.5}.export-card em{font-style:normal;color:var(--blue);font-weight:700;margin-top:14px}
.person-actions{align-items:center;flex-wrap:wrap}.person-actions button{border:0;background:none;color:var(--blue);font-weight:700;font-size:11px;padding:0;cursor:pointer}.person-actions button:hover,.person-actions a:hover{text-decoration:underline}.person-actions button.danger-link{color:#b42318}.person-card.archived{opacity:.62}.archived-badge{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#b42318;background:#fdecea;border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle}.password-dialog-card{width:min(520px,94vw)}.password-dialog-body{padding:20px 22px}.password-dialog-body>p{line-height:1.5;margin-bottom:18px}.password-dialog-body>label{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.password-input-row{display:grid;grid-template-columns:1fr auto;gap:8px}.password-input-row .ops-input{margin:0;width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.form-error{min-height:18px;color:#b42318;font-size:11px;margin:8px 0 0!important}.password-success{text-align:center}.success-symbol{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 12px;border-radius:50%;background:#e1f4e9;color:#18794e;font-size:22px}.password-success h3{font-size:18px;margin-bottom:6px}.password-success dl{margin:16px 0;text-align:left;border:1px solid var(--line);border-radius:8px;overflow:hidden}.password-success dl>div{display:grid;grid-template-columns:145px 1fr;padding:11px 12px;border-bottom:1px solid var(--line)}.password-success dl>div:last-child{border-bottom:0}.password-success dt{color:var(--muted);font-size:11px}.password-success dd{margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700;word-break:break-all}
@media(max-width:1050px){.kpi-action-grid{grid-template-columns:repeat(3,1fr)}.queue-toolbar{grid-template-columns:1fr 1fr 1fr}.search-field{grid-column:1/-1}.export-grid{grid-template-columns:1fr}.ops-v2 .ops-top nav a{padding:0 7px}}
@media(max-width:760px){.ops-v2 .ops-top{padding:0 14px}.ops-v2 .ops-top nav a:not(.active){display:none}.ops-signout{display:none}.kpi-action-grid{grid-template-columns:repeat(2,1fr)}.queue-toolbar{grid-template-columns:1fr}.advanced-filters{align-items:stretch;flex-direction:column}.advanced-filters .ops-input{width:100%}.document-table th:nth-child(4),.document-table td:nth-child(4),.document-table th:nth-child(7),.document-table td:nth-child(7){display:none}.floating-bulk{top:66px;flex-wrap:wrap}.dashboard-grid{grid-template-columns:1fr}}

/* Unified reviewer workspace v2 ------------------------------------------- */
.workspace-v2{--ink:#172b3a;--muted:#667987;--line:#dce5eb;--blue:#1268a5}.workspace-v2 .ops-top{padding:0 24px}.workspace-v2 .ops-top nav{flex:1}.preview-banner{height:52px;background:#fff3cd;border-bottom:1px solid #e8cf80;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#614700}.preview-banner>div{display:grid;gap:2px}.preview-banner span{font-size:11px}.preview-banner a{color:#765800;font-weight:700;text-decoration:none}.preview-banner:not([hidden])+.workspace-main{height:calc(100vh - 116px)}
.workspace-v2 .workspace-main{grid-template-columns:300px minmax(0,1fr);background:#eef3f6}.workspace-v2 .workspace-queue{border-color:var(--line)}.workspace-v2 .queue-heading{padding:20px 18px 14px}.workspace-v2 .queue-heading h1{font-size:22px}.queue-search{display:block;margin-top:14px}.queue-search .ops-input{margin:0;width:100%;padding-left:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='none' stroke='%2370808c' stroke-width='2'%3E%3Ccircle cx='6' cy='6' r='4'/%3E%3Cpath d='m10 10 4 4'/%3E%3C/svg%3E") no-repeat 11px center}.workspace-v2 .queue-tabs{padding:7px 10px;border-top:1px solid #edf1f3}.workspace-v2 .queue-tabs button{display:flex;justify-content:center;gap:6px}.workspace-v2 .queue-tabs span{display:inline-grid;place-items:center;min-width:20px;height:18px;border-radius:99px;background:#edf1f3;font-size:10px}.workspace-v2 .queue-tabs button.active span{background:#cfe4f2}.workspace-v2 .queue-list{padding:8px}.workspace-v2 .queue-item{border-bottom:1px solid #edf1f3;border-radius:7px;padding:13px 11px}.queue-item-top{display:flex;justify-content:space-between;align-items:center}.queue-item-top em{font-style:normal;font-size:9px;text-transform:uppercase;color:#8a5b00;background:#fff2c7;padding:3px 6px;border-radius:99px}.workspace-v2 .queue-empty{display:grid;gap:5px;padding:35px 15px}.workspace-v2 .queue-empty span{font-size:11px;line-height:1.5}
.workspace-v2 .workspace-content{padding:14px}.workspace-v2 .workspace-empty{background:#fff;border:1px solid var(--line);border-radius:11px}.workspace-v2 .workspace-empty p:not(.eyebrow){color:var(--muted);margin:4px 0 18px}.workspace-v2 .workspace-empty .ops-button{margin:auto}.workspace-v2 .workspace-review{border-radius:11px;border-color:var(--line)}.workspace-v2 .workspace-context{height:88px;padding:12px 18px}.workspace-v2 .workspace-context .eyebrow{margin-bottom:2px}.workspace-v2 .workspace-context h2{font-size:19px}.workspace-status{display:grid;justify-items:end;gap:7px}.autosave-promise{font-size:10px;color:var(--muted)}.workspace-v2 .workspace-review iframe{height:calc(100% - 88px)}
.embedded-review .toolbar{height:50px;background:#fff;border-bottom:1px solid #dce5eb}.embedded-review .toolbar-left #btnPrev,.embedded-review .toolbar-left #btnNext,.embedded-review #backendBadge,.embedded-review .btn-gear,.embedded-review #btnSave,.embedded-review #docExportWrap,.embedded-review #btnInferTemplate,.embedded-review #btnAssign{display:none!important}.embedded-review .toolbar-left{flex:1}.embedded-review .toolbar-right{margin-left:auto}.embedded-review #btnMarkReviewed{min-width:175px;padding:9px 16px;font-size:13px}.embedded-review .panels{height:calc(100vh - 50px)}.embedded-review .panel-header{padding:10px 14px;background:#f7f9fa}.embedded-review .panel-dl-btn{display:none!important}.embedded-review .btn-tpl-mgr{display:none!important}.embedded-review.workflow-complete .panel input,.embedded-review.workflow-complete .panel textarea{pointer-events:none;background:#f3f6f8}.embedded-review.workflow-complete #btnMarkReviewed{display:none!important}.embedded-review.workflow-translation .form-panel textarea,.embedded-review.workflow-translation .form-panel input{pointer-events:none;background:#f1f4f6;color:#536570}.save-warning{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:10000;display:flex;align-items:center;gap:10px;background:#a93232;color:#fff;border-radius:8px;padding:10px 14px;box-shadow:0 8px 24px rgba(80,22,22,.25)}.save-warning span{font-size:11px}.save-warning button{border:1px solid rgba(255,255,255,.6);background:transparent;color:#fff;border-radius:5px;padding:5px 8px;cursor:pointer}.autosave-indicator.error{color:#b42318;font-weight:700}
@media(max-width:850px){.workspace-v2 .workspace-main{grid-template-columns:1fr}.workspace-v2 .workspace-content{display:none}.workspace-v2 .workspace-main.document-open .workspace-queue{display:none}.workspace-v2 .workspace-main.document-open .workspace-content{display:block}.workspace-v2 .back-to-queue{display:block}.preview-banner{padding:0 12px}.preview-banner span{display:none}}
