/* ============================================================
 * 指南星 — 极简设计系统 v2.0
 * 统一设计令牌、组件规范、布局系统
 * 所有页面共享，禁止各页面 :root 覆盖
 * ============================================================ */

/* ── 设计令牌 ── */
:root {
  /* 主色 — 绿色系 */
  --primary: #10B981;
  --primary-hover: #059669;
  --primary-light: #ECFDF5;
  --primary-disabled: #6EE7B7;

  /* 文字 */
  --text-primary: #0F1419;
  --text-secondary: #6B7280;
  --text-placeholder: #9CA3AF;

  /* 边框与背景 */
  --border: #E7E7EA;
  --border-hover: #D1D5DB;
  --bg-light: #F9F9FB;
  --bg-white: #FFFFFF;

  /* 状态色 */
  --success: #10B981;
  --success-bg: #ECFDF5;
  --warning: #F59E0B;
  --warning-bg: #FFFBEB;
  --error: #EF4444;
  --error-bg: #FEF2F2;
  --info: #3B82F6;
  --info-bg: #EFF6FF;

  /* 圆角 — 4 级 */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  /* 间距 — 4px 基准 */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;

  /* 字体 */
  --font-family: 'NotoSansSC', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* 字号 — 6 级 */
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 14px;
  --text-md: 15px;
  --text-lg: 18px;
  --text-xl: 22px;

  /* 字重 */
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* 组件尺寸 — 统一 */
  --btn-height: 40px;
  --btn-height-sm: 32px;
  --btn-height-lg: 48px;
  --input-height: 40px;

  /* Z-index 层级 */
  --z-sticky: 50;
  --z-dropdown: 100;
  --z-modal-overlay: 1000;
  --z-modal: 1001;
  --z-toast: 9999;

  /* 阴影 — 极简，优先 border */
  --shadow-sm: 0 1px 2px rgba(15,20,25,0.04);
  --shadow-md: 0 1px 2px rgba(15,20,25,0.04), 0 4px 12px rgba(15,20,25,0.06);

  /* 向后兼容别名 — 旧代码引用 */
  --text: var(--text-primary);
  --bg: var(--bg-light);
  --white: var(--bg-white);
  --radius: var(--radius-lg);
  --warn: var(--warning);
  --warn-bg: var(--warning-bg);
}

/* ── 全局重置 ── */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
body {
  font-family: var(--font-family);
  font-size: var(--text-base);
  background: var(--bg-light);
  color: var(--text-primary);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }

/* ── 顶栏 + 全局导航 ── */
.top-bar {
  height: 56px;
  background: var(--bg-white);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-6);
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
}
.top-bar .logo {
  font-size: var(--text-lg);
  font-weight: var(--fw-bold);
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.top-bar .logo svg { width: 22px; height: 22px; flex-shrink: 0; }
.top-bar .nav {
  display: flex;
  gap: var(--space-1);
  align-items: center;
}
.top-bar .nav a {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  transition: all 0.15s;
  font-weight: var(--fw-medium);
}
.top-bar .nav a:hover {
  background: var(--bg-light);
  color: var(--text-primary);
}
.top-bar .nav a.active {
  background: var(--primary-light);
  color: var(--primary);
}
.top-bar .user {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.top-bar .avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
}
.top-bar .username {
  font-size: var(--text-sm);
  color: var(--text-primary);
}
.top-bar .logout {
  font-size: var(--text-xs);
  color: var(--text-secondary);
  cursor: pointer;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg-white);
  font-family: inherit;
  transition: all 0.15s;
}
.top-bar .logout:hover {
  border-color: var(--border-hover);
  background: var(--bg-light);
}

/* ── 用户下拉菜单 ── */
.top-bar .user-dropdown {
  display: none;
  position: absolute;
  top: 44px;
  right: 0;
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  min-width: 140px;
  z-index: var(--z-dropdown);
  overflow: hidden;
}
.top-bar .user-dropdown.show { display: block; }
.top-bar .user-dropdown .dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  color: var(--text-primary);
  text-decoration: none;
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  font-family: inherit;
  text-align: left;
  transition: background 0.1s;
}
.top-bar .user-dropdown .dropdown-item:hover { background: var(--bg-light); }
.top-bar .user-dropdown .dropdown-item svg { width: 16px; height: 16px; color: var(--text-secondary); }
.top-bar .user-dropdown .dropdown-divider { height: 1px; background: var(--border); }

/* ── 步骤指示器 ── */
.step-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: var(--space-8);
}
.step-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-sm);
  font-weight: var(--fw-semibold);
  background: var(--bg-light);
  color: var(--text-secondary);
  border: 2px solid var(--border);
  transition: all 0.3s;
  cursor: pointer;
  user-select: none;
}
.step-dot:hover:not(.active) {
  border-color: var(--primary);
  color: var(--primary);
}
.step-dot.active {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.step-dot.done {
  background: var(--primary-light);
  color: var(--primary);
  border-color: var(--primary);
}
.step-line {
  width: 80px;
  height: 2px;
  background: var(--border);
  margin: 0 var(--space-1);
  transition: background 0.3s;
}
.step-line.done { background: var(--primary); }

/* ── 卡片 — border 优先，不用 shadow ── */
.card {
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  transition: border-color 0.15s;
}
.card-hover {
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s;
}
.card-hover:hover {
  border-color: var(--primary);
  transform: translateY(-1px);
}
.card-title {
  font-size: var(--text-md);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  margin-bottom: var(--space-4);
}
.card-sm {
  border-radius: var(--radius-md);
}

/* ── 字段行 ── */
.field-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.field-label {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  min-width: 52px;
  padding-top: 2px;
}
.field-value {
  font-size: var(--text-base);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
}

/* ── 标签 ── */
.tag {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--space-2);
  border-radius: var(--radius-sm);
  font-size: var(--text-xs);
  font-weight: var(--fw-medium);
}
.tag-gray { background: #F3F4F6; color: var(--text-secondary); }
.tag-blue { background: var(--primary-light); color: var(--primary); }
.tag-green { background: var(--success-bg); color: var(--success); }
.tag-red { background: var(--error-bg); color: var(--error); }
.tag-yellow { background: var(--warning-bg); color: #92400E; }

/* ── Badge ── */
.badge {
  display: inline-block;
  padding: 2px var(--space-3);
  border-radius: 10px;
  font-size: var(--text-xs);
  font-weight: var(--fw-medium);
}
.badge-gray { background: #F3F4F6; color: var(--text-secondary); }
.badge-blue { background: var(--info-bg); color: #1E40AF; }
.badge-green { background: var(--success-bg); color: #065F46; }
.badge-yellow { background: var(--warning-bg); color: #92400E; }
.badge-red { background: var(--error-bg); color: #991B1B; }

/* ── 按钮 — 统一 40px 高 ── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  height: var(--btn-height);
  padding: 0 var(--space-5);
  border-radius: var(--radius-sm);
  font-size: var(--text-base);
  font-weight: var(--fw-medium);
  font-family: inherit;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s;
  white-space: nowrap;
}
.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-primary {
  background: var(--primary);
  color: #fff;
}
.btn-primary:hover:not(:disabled) {
  background: var(--primary-hover);
}
.btn-outline {
  background: var(--bg-white);
  color: var(--text-primary);
  border-color: var(--border);
}
.btn-outline:hover:not(:disabled) {
  border-color: var(--primary);
  color: var(--primary);
}
.btn-ghost {
  background: transparent;
  color: var(--text-secondary);
  border: none;
}
.btn-ghost:hover {
  background: var(--bg-light);
  color: var(--text-primary);
}
.btn-danger {
  background: var(--error);
  color: #fff;
  border-color: var(--error);
}
.btn-danger:hover:not(:disabled) {
  opacity: 0.85;
}
.btn-lg {
  height: var(--btn-height-lg);
  padding: 0 var(--space-8);
  font-size: var(--text-md);
}
.btn-sm {
  height: var(--btn-height-sm);
  padding: 0 var(--space-3);
  font-size: var(--text-sm);
}
.btn-full { width: 100%; }
.btn svg { width: 16px; height: 16px; flex-shrink: 0; }

/* ── 输入框 — 统一 40px 高 ── */
.input-box,
.input,
input[type="text"],
input[type="password"],
input[type="email"],
select {
  width: 100%;
  height: var(--input-height);
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0 var(--space-3);
  font-size: var(--text-base);
  font-family: inherit;
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.15s;
}
.input-box:focus,
.input:focus,
input[type="text"]:focus,
input[type="password"]:focus,
select:focus {
  border-color: var(--primary);
}
.input-box::placeholder,
.input::placeholder {
  color: var(--text-placeholder);
}
textarea.input {
  height: auto;
  padding: var(--space-3);
  resize: vertical;
  min-height: 80px;
}

/* ── 表单 ── */
.form-group {
  margin-bottom: var(--space-4);
}
.form-group label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--text-secondary);
  margin-bottom: var(--space-2);
}
.form-row {
  display: flex;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

/* ── 拖拽上传区 ── */
.drag-zone {
  border: 2px dashed var(--border);
  border-radius: var(--radius-xl);
  background: var(--bg-light);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  padding: var(--space-10) var(--space-8);
  text-align: center;
}
.drag-zone:hover,
.drag-zone.dragover {
  border-color: var(--primary);
  background: var(--primary-light);
}

/* ── 上传图标 ── */
.upload-icon {
  width: 56px;
  height: 56px;
  background: var(--primary-light);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.upload-icon svg { width: 28px; height: 28px; color: var(--primary); }

/* ── OCR 字段表单 ── */
.ocr-form-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}
.ocr-field {
  width: calc(33.333% - 11px);
  background: var(--bg-light);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.ocr-field-row2 { width: calc(33.333% - 11px); }
.ocr-field-label {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 2px;
}
.ocr-field-label .required-star {
  color: var(--error);
  font-weight: var(--fw-semibold);
}
.ocr-field-value {
  font-size: var(--text-md);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  word-break: break-all;
  min-height: 20px;
}
.ocr-merge-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  background: var(--primary-light);
  color: var(--primary);
  font-size: 11px;
  font-weight: var(--fw-semibold);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
  margin-top: var(--space-2);
}

/* ── 商标局识别结果确认表单 ── */
.ocr-form-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}
.ocr-form-row:last-child { margin-bottom: 0; }
.ocr-form-field { display: flex; flex-direction: column; gap: var(--space-2); }
.ocr-form-field-sm { flex: 0 0 180px; }
.ocr-form-field-md { flex: 0 0 320px; }
.ocr-form-field-lg { flex: 1; min-width: 0; }
.ocr-form-field-full { flex: 1; width: 100%; }
.ocr-form-label {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  font-weight: var(--fw-medium);
}
.ocr-form-label .required-star {
  color: var(--error);
  font-weight: var(--fw-semibold);
}
.ocr-form-hint {
  font-size: 11px;
  color: var(--text-placeholder);
  font-weight: var(--fw-normal);
}
.ocr-form-input,
.ocr-form-select {
  width: 100%;
  height: var(--input-height);
  padding: 0 var(--space-3);
  font-size: var(--text-base);
  font-family: inherit;
  color: var(--text-primary);
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  outline: none;
  transition: border-color 0.15s;
}
.ocr-form-input:focus,
.ocr-form-select:focus {
  border-color: var(--primary);
}
.ocr-form-display {
  height: var(--input-height);
  padding: 0 var(--space-3);
  display: flex;
  align-items: center;
  font-size: var(--text-base);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  background: var(--bg-light);
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
}
.ocr-form-display.muted { color: var(--text-secondary); }
.ocr-form-select:disabled {
  background: var(--bg-light);
  color: var(--text-placeholder);
  cursor: not-allowed;
}

/* ── 文件预览卡片 ── */
.ocr-file-preview-card {
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  margin-bottom: var(--space-3);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}
.ocr-file-preview-card:last-child { margin-bottom: 0; }
.ocr-file-preview-label {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  font-weight: var(--fw-medium);
  text-align: center;
}
.ocr-file-preview-thumb {
  width: 100%;
  height: 150px;
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  transition: border-color 0.15s;
}
.ocr-file-preview-thumb:hover {
  border-color: var(--primary);
}
.ocr-file-preview-thumb .thumb-eye {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.2s;
  width: 36px;
  height: 36px;
  background: rgba(15,20,25,0.6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ocr-file-preview-thumb:hover .thumb-eye { opacity: 1; }
.ocr-file-preview-name {
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
  text-align: center;
}
.ocr-file-preview-meta {
  font-size: 11px;
  color: var(--text-placeholder);
  text-align: center;
}
.ocr-file-preview-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--radius-sm);
}

/* ── 签章区 ── */
.signature-card {
  width: 380px;
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-8) var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.signature-canvas {
  width: 280px;
  height: 200px;
  background: var(--bg-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: var(--space-4);
  cursor: pointer;
}
.seal-circle {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--error);
}

/* ── 卡片编辑入口 ── */
.card-edit {
  font-size: var(--text-xs);
  color: var(--primary);
  cursor: pointer;
  font-weight: var(--fw-medium);
}
.card-edit:hover { text-decoration: underline; }

/* ── 提示文本 ── */
.archive-rule {
  font-size: var(--text-xs);
  color: var(--text-placeholder);
  text-align: center;
  margin-top: var(--space-3);
  line-height: 18px;
}

/* ── 文档缩略图 ── */
.thumb-card {
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  transition: border-color 0.15s;
  position: relative;
  overflow: hidden;
}
.thumb-card:hover { border-color: var(--primary); }
.thumb-preview {
  flex: 1;
  width: 100%;
  background: var(--bg-light);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  position: relative;
}
.thumb-info { padding: var(--space-2) var(--space-3); width: 100%; }
.thumb-info .name {
  font-size: var(--text-sm);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
}
.thumb-info .meta {
  font-size: 11px;
  color: var(--text-placeholder);
}
.thumb-badge {
  position: absolute;
  top: var(--space-2);
  right: var(--space-2);
  z-index: 2;
}
.thumb-eye {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  opacity: 0;
  transition: opacity 0.2s;
  width: 36px;
  height: 36px;
  background: rgba(15,20,25,0.6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.thumb-card:hover .thumb-eye { opacity: 1; }

/* ── 模态弹窗 ── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: var(--z-modal-overlay);
  display: none;
  align-items: center;
  justify-content: center;
}
.modal-overlay.active { display: flex; }
.modal-content,
.modal {
  background: var(--bg-white);
  border-radius: var(--radius-lg);
  width: 680px;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: var(--z-modal);
}
.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--border);
}
.modal-header h3 {
  font-size: var(--text-lg);
  font-weight: var(--fw-semibold);
}
.modal-body {
  flex: 1;
  padding: var(--space-6);
  overflow: auto;
}
.modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-6);
  border-top: 1px solid var(--border);
}

/* ── 页面容器 ── */
.page { display: none; background: var(--bg-light); min-height: 100vh; }
.page.active { display: block !important; }
.page-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-10) var(--space-6);
}

/* ── 欢迎页 ── */
.welcome-card {
  width: 380px;
  min-height: 380px;
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--space-10);
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s;
}
.welcome-card:hover {
  border-color: var(--primary);
  transform: translateY(-2px);
}

/* ── 表格 ── */
table {
  width: 100%;
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  border-collapse: collapse;
}
th {
  text-align: left;
  padding: var(--space-3) var(--space-4);
  border-bottom: 2px solid var(--border);
  background: var(--bg-light);
  color: var(--text-secondary);
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}
td {
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--border);
  font-size: var(--text-sm);
}
tr:last-child td { border-bottom: none; }
tr:hover { background: var(--bg-light); }

/* ── 统计卡片 ── */
.stats-row,
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}
.stat-card {
  background: var(--bg-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
}
.stat-card .v {
  font-size: var(--text-xl);
  font-weight: var(--fw-bold);
  color: var(--primary);
}
.stat-card .l {
  font-size: var(--text-xs);
  color: var(--text-secondary);
  margin-top: 2px;
}

/* ── Toast ── */
.toast {
  position: fixed;
  bottom: var(--space-6);
  left: 50%;
  transform: translateX(-50%);
  padding: var(--space-3) var(--space-6);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  z-index: var(--z-toast);
  box-shadow: var(--shadow-md);
  display: none;
}
.toast.success { background: var(--success-bg); color: #065F46; border: 1px solid #A7F3D0; }
.toast.error { background: var(--error-bg); color: #991B1B; border: 1px solid #FECACA; }
.toast.info { background: var(--info-bg); color: #1E40AF; border: 1px solid #BFDBFE; }

/* ── 分页 ── */
.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-4) 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
.pagination button {
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg-white);
  cursor: pointer;
  font-size: var(--text-xs);
  font-family: inherit;
  transition: border-color 0.15s;
}
.pagination button:hover:not(:disabled) {
  border-color: var(--primary);
  color: var(--primary);
}
.pagination button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* ── 辅助类 ── */
.hidden { display: none !important; }
.text-center { text-align: center; }
.flex { display: flex; }
.items-center { align-items: center; }
.gap-2 { gap: var(--space-2); }
.gap-4 { gap: var(--space-4); }

/* ── 响应式 ── */
@media (max-width: 768px) {
  .top-bar { padding: 0 var(--space-4); }
  .top-bar .nav { display: none; }
  .page-content { padding: var(--space-5) var(--space-4); }
  .two-col { flex-direction: column; }
  .two-col > .col-right { width: 100%; }
}

@media (max-width: 1100px) {
  .ocr-form-row { flex-direction: column; gap: var(--space-3); }
  .ocr-form-field-sm,
  .ocr-form-field-md,
  .ocr-form-field-lg,
  .ocr-form-field-full { width: 100%; flex: 1; }
}
