/* ===== 全局重置 ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif; background: #f5f6fa; }
#app { max-width: 430px; margin: 0 auto; min-height: 100vh; position: relative; background: #f5f6fa; overflow: hidden; }

/* ===== 内容保护：全局禁止文本选中 ===== */
body, #app {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* 图片禁止拖拽 */
input, textarea {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}
/* 图片禁止拖拽 */
img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}
/* 链接和按钮允许点击但不允许拖拽 */
a, button {
  -webkit-user-drag: none;
  user-drag: none;
}

/* ===== 导航栏 ===== */
.nav-bar {
  position: sticky; top: 0; z-index: 100;
  height: 56px; background: #fff;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 16px;
  box-shadow: 0 1px 8px rgba(0,0,0,.08);
}
.nav-title { font-size: 17px; font-weight: 600; color: #1a1a2e; }
.nav-back, .nav-menu {
  background: none; border: none; font-size: 20px;
  cursor: pointer; color: #555; width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: background .2s;
}
.nav-back:hover, .nav-menu:hover { background: #f0f0f0; }

/* ===== 页面容器 ===== */
.page-container { position: relative; overflow: hidden; }
.page {
  display: none;
  padding-bottom: 80px;
  min-height: calc(100vh - 56px);
  /* 切换时不产生高度抖动 */
  will-change: auto;
}
.page.active {
  display: block;
}

/* ===== Hero区 ===== */
.hero {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  color: #fff; text-align: center; padding: 40px 20px 32px;
}
.hero-icon { font-size: 52px; margin-bottom: 12px; }
.hero h1 { font-size: 24px; font-weight: 700; margin-bottom: 8px; letter-spacing: .5px; }
.hero p { font-size: 14px; opacity: .8; }

/* ===== 搜索栏 ===== */
.search-bar {
  margin: 16px; background: #fff;
  border-radius: 12px; display: flex; align-items: center;
  padding: 10px 14px; box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.search-icon { font-size: 16px; margin-right: 8px; color: #aaa; }
.search-bar input { border: none; outline: none; flex: 1; font-size: 14px; color: #333; }

/* ===== 章节标题 ===== */
.section-title {
  font-size: 15px; font-weight: 600; color: #1a1a2e;
  padding: 0 16px 10px; margin-top: 8px;
}

/* ===== 国家网格 ===== */
.country-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 10px; padding: 0 16px;
}
.country-card {
  background: #fff; border-radius: 12px;
  padding: 12px 6px; text-align: center;
  cursor: pointer; transition: transform .15s, box-shadow .15s;
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
  position: relative;
}
.country-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.country-card:active { transform: scale(.96); }
.country-flag { font-size: 28px; display: block; margin-bottom: 4px; }
.country-name { font-size: 11px; color: #444; font-weight: 500; }

/* ===== 地区选项卡 ===== */
.region-tabs {
  display: flex; gap: 8px; padding: 0 16px 12px;
  overflow-x: auto; scrollbar-width: none;
}
.region-tabs::-webkit-scrollbar { display: none; }
.rtab {
  flex-shrink: 0; padding: 6px 14px;
  border-radius: 20px; border: 1.5px solid #ddd;
  background: #fff; font-size: 13px; cursor: pointer;
  transition: all .2s; color: #555;
}
.rtab.active { background: #0f3460; color: #fff; border-color: #0f3460; }

/* ===== 签证类型列表 ===== */
.country-header {
  background: linear-gradient(135deg, #0f3460, #533483);
  color: #fff; padding: 24px 20px 20px;
  font-size: 22px; font-weight: 700;
}
.country-header small { display: block; font-size: 13px; font-weight: 400; opacity: .8; margin-top: 4px; }

.visa-type-list { padding: 12px 16px; display: flex; flex-direction: column; gap: 12px; }
.vtype-card {
  background: #fff; border-radius: 14px;
  padding: 18px 16px; cursor: pointer;
  display: flex; align-items: center; gap: 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: transform .15s;
}
.vtype-card:active { transform: scale(.98); }
.vtype-icon { font-size: 32px; width: 48px; text-align: center; }
.vtype-info { flex: 1; }
.vtype-name { font-size: 16px; font-weight: 600; color: #1a1a2e; }
.vtype-desc { font-size: 12px; color: #888; margin-top: 3px; }
.vtype-tags { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.tag {
  padding: 2px 8px; border-radius: 10px; font-size: 11px;
  background: #eef2ff; color: #4361ee;
}
.tag.green { background: #e8f8f0; color: #2ecc71; }
.tag.orange { background: #fff3e0; color: #f39c12; }
.tag.red { background: #ffeaea; color: #e74c3c; }
.vtype-arrow { color: #ccc; font-size: 18px; }
.vtype-official-btn {
  background: linear-gradient(135deg, #00b09b, #38d9a9);
  color: #fff; border: none; border-radius: 8px;
  width: 32px; height: 32px; font-size: 14px;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: opacity .2s; flex-shrink: 0;
}
.vtype-official-btn:hover { opacity: .85; }

/* ===== 材料清单 ===== */
.checklist-header {
  background: linear-gradient(135deg, #533483, #7b2d8b);
  color: #fff; padding: 20px; border-radius: 0 0 20px 20px;
}
.checklist-header h2 { font-size: 18px; }
.checklist-header p { font-size: 12px; opacity: .85; margin-top: 4px; }

.progress-overview {
  margin: 16px; background: #fff; border-radius: 14px;
  padding: 16px; box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.progress-title { font-size: 13px; color: #888; margin-bottom: 8px; }
.progress-bar-wrap { background: #eee; border-radius: 6px; height: 8px; overflow: hidden; }
.progress-bar-fill { height: 100%; border-radius: 6px; background: linear-gradient(90deg, #4361ee, #7b2d8b); transition: width .4s; }
.progress-text { font-size: 12px; color: #666; margin-top: 6px; text-align: right; }

.checklist-body { padding: 0 16px; }
.cl-group { margin-bottom: 16px; }
.cl-group-title {
  font-size: 13px; font-weight: 600; color: #555;
  margin-bottom: 8px; display: flex; align-items: center; gap: 6px;
}
.cl-required-badge {
  font-size: 10px; padding: 2px 6px; border-radius: 8px;
  background: #ffeaea; color: #e74c3c;
}
.cl-optional-badge {
  font-size: 10px; padding: 2px 6px; border-radius: 8px;
  background: #e8f8f0; color: #27ae60;
}

.cl-item {
  background: #fff; border-radius: 12px; padding: 14px;
  margin-bottom: 8px; display: flex; align-items: flex-start;
  gap: 12px; box-shadow: 0 1px 4px rgba(0,0,0,.04);
  cursor: pointer; transition: opacity .2s;
}
.cl-item.checked { opacity: .7; }
.cl-checkbox {
  width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid #ddd; flex-shrink: 0; margin-top: 1px;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s; font-size: 12px;
}
.cl-item.checked .cl-checkbox { background: #2ecc71; border-color: #2ecc71; color: #fff; }
.cl-content { flex: 1; }
.cl-name { font-size: 14px; font-weight: 500; color: #222; }
.cl-item.checked .cl-name { text-decoration: line-through; color: #aaa; }
.cl-tip { font-size: 12px; color: #999; margin-top: 3px; line-height: 1.4; }
.cl-spec { font-size: 11px; color: #4361ee; margin-top: 4px; }

/* ===== 动作栏 ===== */
.action-bar {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 430px;
  background: #fff; padding: 12px 16px 24px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.08);
  display: flex; gap: 10px;
}
.btn-primary {
  flex: 2; padding: 13px; background: linear-gradient(135deg, #0f3460, #4361ee);
  color: #fff; border: none; border-radius: 12px; font-size: 15px;
  font-weight: 600; cursor: pointer; transition: opacity .2s;
}
.btn-primary:hover { opacity: .9; }
.btn-secondary {
  flex: 1; padding: 13px; background: #f0f0f0;
  color: #555; border: none; border-radius: 12px; font-size: 14px;
  cursor: pointer; transition: background .2s;
}
.btn-secondary:hover { background: #e0e0e0; }
.btn-official {
  flex: 1; padding: 13px;
  background: linear-gradient(135deg, #00b09b, #38d9a9);
  color: #fff; border: none; border-radius: 12px; font-size: 14px;
  font-weight: 600; cursor: pointer; transition: opacity .2s;
  white-space: nowrap;
}
.btn-official:hover { opacity: .88; }
.btn-danger {
  padding: 12px 24px; background: #fff; color: #e74c3c;
  border: 1.5px solid #e74c3c; border-radius: 12px; font-size: 14px;
  cursor: pointer; transition: all .2s;
}
.btn-danger:hover { background: #ffeaea; }

/* ===== 跟踪看板 ===== */
.tracker-tabs {
  display: flex; background: #fff;
  border-bottom: 1px solid #eee; padding: 0 16px;
}
.ttab {
  flex: 1; padding: 14px; background: none; border: none;
  font-size: 14px; color: #888; cursor: pointer;
  border-bottom: 2.5px solid transparent; transition: all .2s;
}
.ttab.active { color: #0f3460; border-color: #0f3460; font-weight: 600; }

.tracker-list { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.tracker-card {
  background: #fff; border-radius: 14px; padding: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06); cursor: pointer;
  transition: transform .15s;
}
.tracker-card:active { transform: scale(.98); }
.tc-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.tc-country { font-size: 16px; font-weight: 600; color: #1a1a2e; display: flex; align-items: center; gap: 8px; }
.tc-status {
  font-size: 11px; padding: 3px 10px; border-radius: 12px;
}
.tc-status.preparing { background: #fff3cd; color: #f39c12; }
.tc-status.submitted { background: #d4edda; color: #27ae60; }
.tc-status.reviewing { background: #cce5ff; color: #007bff; }
.tc-status.approved { background: #d4edda; color: #27ae60; }
.tc-status.rejected { background: #f8d7da; color: #dc3545; }

.tc-progress { margin-bottom: 8px; }
.tc-progress-bar { background: #eee; border-radius: 6px; height: 6px; overflow: hidden; }
.tc-progress-fill { height: 100%; border-radius: 6px; background: linear-gradient(90deg, #4361ee, #7b2d8b); }
.tc-meta { font-size: 12px; color: #aaa; display: flex; gap: 12px; }

.empty-state { text-align: center; padding: 60px 20px; color: #bbb; }
.empty-state .es-icon { font-size: 56px; margin-bottom: 12px; }
.empty-state p { font-size: 14px; }

/* ===== FAB按钮 ===== */
.fab {
  position: fixed; bottom: 90px; right: calc(50% - 215px + 16px);
  width: 52px; height: 52px; border-radius: 50%;
  background: linear-gradient(135deg, #0f3460, #4361ee);
  color: #fff; border: none; font-size: 26px;
  box-shadow: 0 4px 14px rgba(67,97,238,.4);
  cursor: pointer; transition: transform .2s;
  display: flex; align-items: center; justify-content: center;
}
.fab:hover { transform: scale(1.08); }

/* ===== 申请详情/步骤时间轴 ===== */
.detail-header {
  background: linear-gradient(135deg, #0f3460, #533483);
  color: #fff; padding: 20px;
}
.detail-header h2 { font-size: 20px; }
.detail-header p { font-size: 13px; opacity: .8; margin-top: 4px; }

.steps-timeline { padding: 20px 16px; }
.step-item {
  display: flex; gap: 14px; position: relative; margin-bottom: 0;
}
.step-item:not(:last-child)::after {
  content: ''; position: absolute; left: 19px; top: 40px;
  width: 2px; height: calc(100% - 10px); background: #e0e0e0;
}
.step-item.done::after { background: #2ecc71; }

.step-dot {
  width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; background: #eee; color: #bbb; z-index: 1;
  border: 2px solid #ddd; transition: all .3s;
}
.step-item.done .step-dot { background: #e8f8f0; color: #2ecc71; border-color: #2ecc71; }
.step-item.active .step-dot { background: #eef2ff; color: #4361ee; border-color: #4361ee; animation: pulse 1.5s infinite; }

@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(67,97,238,.3); }
  50% { box-shadow: 0 0 0 8px rgba(67,97,238,0); }
}

.step-content { flex: 1; padding-bottom: 28px; }
.step-name { font-size: 15px; font-weight: 600; color: #1a1a2e; }
.step-item.done .step-name { color: #2ecc71; }
.step-item.active .step-name { color: #4361ee; }
.step-desc { font-size: 12px; color: #888; margin-top: 4px; line-height: 1.5; }
.step-date { font-size: 11px; color: #bbb; margin-top: 4px; }
.step-actions { margin-top: 8px; display: flex; gap: 8px; flex-wrap: wrap; }
.step-btn {
  padding: 6px 14px; border-radius: 8px; font-size: 12px;
  border: 1.5px solid #4361ee; color: #4361ee; background: none;
  cursor: pointer; transition: all .2s;
}
.step-btn:hover { background: #eef2ff; }
.step-btn.done-btn { border-color: #2ecc71; color: #2ecc71; }
.step-btn.done-btn:hover { background: #e8f8f0; }

.detail-actions { padding: 16px; text-align: center; }

/* ===== 我的信息 ===== */
.profile-header {
  background: linear-gradient(135deg, #1a1a2e, #16213e);
  color: #fff; padding: 32px 20px 24px; text-align: center;
}
.avatar { font-size: 56px; margin-bottom: 8px; }
.profile-header h2 { font-size: 20px; font-weight: 600; }
.profile-header p { font-size: 13px; opacity: .7; margin-top: 4px; }

.form-card { margin: 16px; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.form-item {
  display: flex; align-items: center; padding: 14px 16px;
  border-bottom: 1px solid #f5f5f5;
}
.form-item:last-child { border-bottom: none; }
.form-label { font-size: 14px; color: #444; width: 90px; flex-shrink: 0; }
.form-item input, .form-item select {
  flex: 1; border: none; outline: none; font-size: 14px;
  color: #222; background: transparent; text-align: right;
}
.form-item input::placeholder { color: #ccc; }

/* ===== 底部导航 ===== */
.bottom-nav {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 430px; background: #fff;
  display: flex; border-top: 1px solid #eee;
  box-shadow: 0 -2px 8px rgba(0,0,0,.06); z-index: 99;
}
.bnav-item {
  flex: 1; background: none; border: none; padding: 10px 0 8px;
  display: flex; flex-direction: column; align-items: center;
  cursor: pointer; color: #bbb; font-size: 20px; transition: color .2s;
}
.bnav-item small { font-size: 10px; margin-top: 2px; }
.bnav-item.active { color: #0f3460; }

/* ===== Toast ===== */
.toast {
  position: fixed; bottom: 100px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: rgba(0,0,0,.75); color: #fff; padding: 10px 20px;
  border-radius: 24px; font-size: 14px; pointer-events: none;
  opacity: 0; transition: all .3s; z-index: 999; white-space: nowrap;
}
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ===== 弹窗 ===== */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  z-index: 200; display: none; backdrop-filter: blur(3px);
}
.modal-overlay.show { display: block; }
.modal {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%) translateY(100%);
  width: 100%; max-width: 430px; background: #fff;
  border-radius: 20px 20px 0 0; z-index: 201;
  transition: transform .3s; padding: 20px;
  max-height: 70vh; overflow-y: auto;
}
.modal.show { transform: translateX(-50%) translateY(0); }
.modal-body h3 { font-size: 18px; font-weight: 600; margin-bottom: 12px; }
.modal-body p { font-size: 14px; color: #666; line-height: 1.6; }
/* 弹窗按钮手机端优化：最小44px高度，更易点击 */
.modal-body #modalBtns {
  gap: 10px;
  flex-wrap: wrap;
}
.modal-body #modalBtns button {
  min-height: 44px;
  padding: 12px 16px;
  font-size: 14px;
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  border-radius: 12px;
  -webkit-tap-highlight-color: transparent;
}
.modal-link {
  display: block; margin-top: 16px; padding: 12px;
  background: #eef2ff; border-radius: 10px; color: #4361ee;
  text-decoration: none; font-size: 14px; text-align: center;
  font-weight: 500;
}

/* ===== 响应式：手机窄屏 ===== */
@media (max-width: 375px) {
  .country-grid { grid-template-columns: repeat(3, 1fr); }
  .tools-grid { grid-template-columns: 1fr; }
  .hero { padding: 32px 16px 24px; }
  .hero h1 { font-size: 20px; }
  .hero-icon { font-size: 44px; }
  .search-bar { margin: 12px 12px; }
  .section-title { padding: 0 12px 8px; }
  .evisa-banner { margin: 0 12px 4px; }
  .jobnav-country-grid { grid-template-columns: repeat(3, 1fr); }
  .arrival-country-grid { grid-template-columns: repeat(3, 1fr); }
  .idphoto-spec-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===== 响应式：手机常规屏（375-767px）touch优化 ===== */
@media (min-width: 376px) and (max-width: 767px) {
  /* 确保触控区域足够大（至少44px） */
  .country-card, .tool-card, .evisa-card, .vtype-card, .cl-item,
  .docgen-tab, .scan-slot, .feecard-header, .rescue-card-header,
  .jobnav-site-card, .jobnav-country-card, .agcheck-flag-card,
  .ins-card, .case-card, .schengen-country-card, .jobnav-employer-skilllist,
  .jobnav-employer-visa-row, .esp-official, .scc-btn, .step-btn,
  .pmap-country-row, .bankcheck-field, .remind-field {
    min-height: 44px;
  }
  /* 手机端求职卡片描述文字缩小 */
  .jobnav-site-desc { font-size: 11px; }
  .jobnav-country-card { padding: 14px 10px; }
  /* 手机端弹窗按钮换行显示 */
  .modal-body #modalBtns { flex-wrap: wrap; }
  .modal-body #modalBtns button { flex: 1 1 calc(50% - 8px); font-size: 13px; min-height: 44px; }
}

/* ===== 响应式：桌面端大屏 ===== */
@media (min-width: 768px) {
  /* 整体容器放宽，居中显示 */
  html { background: #e8eaed; }
  body { background: #e8eaed; }
  #app {
    max-width: 960px;
    border-left: 1px solid #d0d0d0;
    border-right: 1px solid #d0d0d0;
    box-shadow: 0 0 60px rgba(0,0,0,.12);
    border-radius: 0;
  }

  /* 导航栏 */
  .nav-bar { height: 60px; padding: 0 24px; }
  .nav-title { font-size: 19px; }
  .nav-back, .nav-menu { width: 40px; height: 40px; font-size: 22px; }

  /* Hero区 */
  .hero { padding: 56px 40px 44px; }
  .hero-icon { font-size: 64px; margin-bottom: 16px; }
  .hero h1 { font-size: 32px; }
  .hero p { font-size: 16px; }

  /* e-Visa Banner */
  .evisa-banner { margin: 0 24px 6px; padding: 18px 22px; border-radius: 16px; }
  .evisa-badge { font-size: 14px; margin-bottom: 8px; }
  .evisa-banner-title { font-size: 18px; }
  .evisa-banner-sub { font-size: 14px; }
  .evisa-banner-arrow { font-size: 32px; }

  /* 搜索栏 */
  .search-bar { margin: 20px 24px; padding: 14px 18px; border-radius: 14px; }
  .search-bar input { font-size: 16px; }

  /* 章节标题 */
  .section-title { font-size: 17px; padding: 0 24px 12px; }

  /* 国家网格：6列 */
  .country-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 14px; padding: 0 24px;
  }
  .country-card { padding: 16px 8px; border-radius: 14px; }
  .country-flag { font-size: 36px; }
  .country-name { font-size: 13px; }

  /* 地区选项卡 */
  .region-tabs { padding: 0 24px 14px; gap: 10px; }
  .rtab { padding: 8px 18px; font-size: 14px; border-radius: 22px; }

  /* 工具卡片网格：3列 */
  .tools-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 14px; padding: 0 24px;
  }
  .tool-card { padding: 22px 16px; border-radius: 16px; }
  .tool-icon { font-size: 36px; margin-bottom: 8px; }
  .tool-name { font-size: 15px; }
  .tool-desc { font-size: 12px; }

  /* 签证类型列表 */
  .visa-type-list { padding: 16px 24px; gap: 14px; }
  .vtype-card { padding: 22px 20px; border-radius: 16px; gap: 16px; }
  .vtype-icon { font-size: 38px; width: 56px; }
  .vtype-name { font-size: 18px; }
  .vtype-desc { font-size: 13px; }

  /* 材料清单 */
  .checklist-header { padding: 26px 24px; }
  .checklist-header h2 { font-size: 20px; }
  .progress-overview { margin: 20px 24px; padding: 20px; }
  .checklist-body { padding: 0 24px; }
  .cl-item { padding: 16px; border-radius: 14px; }
  .cl-name { font-size: 15px; }

  /* 国家详情头部 */
  .country-header { padding: 30px 28px 26px; font-size: 26px; }
  .country-header small { font-size: 15px; }

  /* 底部导航栏 */
  .bottom-nav { max-width: 960px; }
  .bnav-item { font-size: 22px; padding: 12px 0 10px; }
  .bnav-item small { font-size: 11px; }

  /* 动作栏 */
  .action-bar { max-width: 960px; padding: 14px 24px 28px; }
  .btn-primary { padding: 15px; font-size: 16px; }
  .btn-secondary { padding: 15px; font-size: 15px; }
  .btn-official { padding: 15px; font-size: 15px; }

  /* FAB按钮 */
  .fab { right: calc(50% - 480px + 24px); width: 58px; height: 58px; font-size: 28px; }

  /* 弹窗 - 桌面端居中显示 */
  .modal {
    max-width: 560px;
    padding: 28px;
    border-radius: 24px 24px 24px 24px;
    max-height: 80vh;
    bottom: auto;
    top: 50%;
    transform: translateX(-50%) translateY(-50%) scale(.95);
    opacity: 0;
    transition: transform .3s, opacity .3s;
  }
  .modal.show {
    transform: translateX(-50%) translateY(0) scale(1);
    opacity: 1;
  }
  .modal-body h3 { font-size: 20px; }
  .modal-body p { font-size: 15px; line-height: 1.8; }
  .modal-link { padding: 14px; font-size: 15px; border-radius: 12px; }

  /* Toast */
  .toast { font-size: 15px; padding: 12px 24px; }

  /* 页面内边距统一加大 */
  .page { padding-bottom: 100px; }
  .risk-hero, .schengen-hero, .calc-hero, .agent-hero { padding: 38px 28px 30px; }
  .risk-hero h2, .schengen-hero h2, .calc-hero h2, .agent-hero h2 { font-size: 24px; }
  .risk-hero p, .schengen-hero p, .calc-hero p, .agent-hero p { font-size: 15px; }
  .risk-intro, .schengen-intro, .agent-intro { margin: 18px 24px; font-size: 14px; padding: 16px 18px; }

  /* 护照地图统计 */
  .pmap-stats { margin: 0 24px 20px; }
  .pmap-stat { padding: 16px 8px; }
  .pmap-stat-num { font-size: 28px; }

  /* e-Visa列表 */
  .evisa-list { padding: 20px 24px; gap: 16px; }
  .evisa-card { border-radius: 18px; }
  .evisa-card-top { padding: 20px; }
  .evisa-card-flag { font-size: 40px; }
  .evisa-card-name { font-size: 18px; }
  .evisa-meta-item { padding: 12px 10px; }
  .evisa-meta-value { font-size: 14px; }
  .evisa-card-btn { padding: 15px; font-size: 15px; }

  /* 海外求职导航 */
  .jobnav-country-grid { grid-template-columns: repeat(8, 1fr); margin: 0 24px 20px; }
  .jobnav-country-card { padding: 14px 6px; }
  .jobnav-country-flag { font-size: 32px; }
  .jobnav-country-name { font-size: 12px; }
  .jobnav-intro { margin: 20px 24px 12px; padding: 18px 20px; }
  .jobnav-intro-icon { font-size: 40px; }
  .jobnav-intro-text { font-size: 14px; }
  .jobnav-sites-list { margin: 0 24px 16px; gap: 10px; }
  .jobnav-site-card { padding: 16px 18px; border-radius: 14px; }
  .jobnav-site-name { font-size: 15px; }
  .jobnav-detail-header { margin: 0 24px 16px; padding: 18px 20px; }
  .jobnav-detail-flag { font-size: 48px; }
  .jobnav-detail-name { font-size: 20px; }

  /* 入境须知 */
  .arrival-country-grid { grid-template-columns: repeat(8, 1fr); padding: 0 24px 20px; }
  .arrival-detail-card { margin: 0 24px; }
  .arrival-section { padding: 18px 22px; }

  /* 拒签急救包 */
  .rescue-list { padding: 0 24px; gap: 12px; }
  .rescue-card { border-radius: 16px; }
  .rescue-card-header { padding: 18px 20px; }

  /* 文件生成器 */
  .docgen-tabs { padding: 20px 24px; gap: 14px; }
  .docgen-tab { padding: 18px 14px; border-radius: 14px; }
  .docgen-tab-icon { font-size: 32px; }
  .docgen-form-card { margin: 0 24px; padding: 24px; }
  .docgen-result-card { margin: 20px 24px; padding: 22px; }

  /* 银行流水自测 */
  .bcheck-form { margin: 0 24px; padding: 24px; }
  .bcheck-result-card { margin: 20px 24px; padding: 24px; }

  /* 签证费用估算 */
  .feefilter-bar { margin: 16px 24px; }
  .feesummary-bar { margin: 0 24px 12px; padding: 14px 18px; font-size: 14px; }
  .feecard { margin: 0 24px 10px; }

  /* 签证进度追踪 */
  .vtracker-add-card { margin: 20px 24px; }
  .vtracker-stats { margin: 0 24px 16px; }

  /* 签证提醒 */
  .remind-form-card { margin: 0 24px; padding: 24px; }
  .remind-card { margin: 0 24px 12px; }

  /* 保险 */
  .ins-cards-wrap { padding: 0 24px; gap: 16px; }
  .ins-section-title { padding: 0 24px; }

  /* 材料扫描 */
  .scan-items-list { padding: 0 24px; gap: 12px; }

  /* 免责声明条 */
  .disclaimer-bar { margin: 16px 24px 0; padding: 12px 18px; font-size: 12px; }

  /* 工具页面hero */
  .tool-page-hero { padding: 40px 28px 32px; }
  .tool-page-icon { font-size: 48px; }
  .tool-page-hero h2 { font-size: 26px; }
  .tool-page-hero p { font-size: 15px; }

  /* 雇主担保移民 */
  .esp-hero { padding: 36px 28px 30px; }
  .esp-hero-icon { font-size: 46px; }
  .esp-hero-title { font-size: 26px; }
  .esp-country-header { margin: 16px 24px; padding: 20px; }
  .esp-country-flag { font-size: 42px; }
  .esp-country-name { font-size: 20px; }
  .esp-jobs-wrap { margin: 0 24px 6px; }
  .esp-visa-card { margin: 0 24px 12px; padding: 18px; }
  .esp-platform-card { margin: 0 24px 10px; padding: 14px 18px; }
  .esp-skillist { margin: 0 24px 20px; padding: 14px 18px; }
  .esp-tips-box { margin: 0 24px 20px; padding: 16px 18px; }
  .esp-official { margin: 0 24px 20px; padding: 14px 18px; }
  .esp-top-banner { margin: 16px 24px 0; padding: 14px 18px; }
  .esp-lock-box { margin: 0 24px 20px; padding: 28px 24px; }
  .esp-footer-cta { margin: 20px 24px; padding: 20px; }

  /* 证件照 */
  .idphoto-upload-area { margin: 20px 24px; padding: 52px 24px; }
  .idphoto-spec-grid { grid-template-columns: repeat(5, 1fr); }
  .idphoto-section { margin: 16px 24px; }
  .idphoto-actions { margin: 16px 24px; }
  .idphoto-preview-area { margin: 16px 24px; }

  /* 识别黑中介 */
  .agcheck-tabs { margin: 0 24px 16px; }
  .agcheck-panel { padding: 0 24px; }
  .agcheck-checklist-card { margin: 16px 24px 0; }

  /* 成功案例横滑 */
  .cases-scroll { padding: 6px 24px 12px; }
  .case-card { min-width: 300px; padding: 18px; }

  /* 桌面端显示滚动条 */
  ::-webkit-scrollbar { width: 6px; }
  ::-webkit-scrollbar-track { background: #f0f0f0; }
  ::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
  ::-webkit-scrollbar-thumb:hover { background: #aaa; }

  /* 桌面端允许文本选中（方便复制信息） */
  body, #app {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
  }
  /* 卡片内仍禁止选中（防止误选） */
  .country-card, .tool-card, .nav-bar, .bottom-nav, .bnav-item {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
  }

  /* 桌面端hover效果增强 */
  .country-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
  }
  .tool-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
  }
  .evisa-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
  }
  .vtype-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,.1);
  }
  .rescue-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
  }
  .jobnav-site-card:hover {
    transform: translateX(4px);
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
  }
  .jobnav-country-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    border-color: #388e3c;
  }
  .docgen-tab:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,.1);
  }
  .scan-slot:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
  .feecard-header:hover { box-shadow: 0 6px 18px rgba(0,0,0,.1); }
  .rescue-card-header:hover { box-shadow: 0 6px 18px rgba(0,0,0,.1); }
  .ins-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
  .case-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
  .schengen-country-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
  .agcheck-flag-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
  .esp-platform-card:hover { transform: translateX(4px); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
  .esp-official:hover { box-shadow: 0 4px 14px rgba(0,0,0,.1); border-color: #00695C; }
  .esp-skillist:hover { opacity: .9; box-shadow: 0 4px 14px rgba(0,105,92,.3); }
  .esp-top-banner:hover { opacity: .92; }
  .rq-btn:hover { border-color: #999; background: #f5f5f5; }
  .pmap-country-row:hover { background: #f0f7ff; }
  .scc-btn:hover { background: #e0e0e0; }
  .bankcheck-field:hover, .remind-field:hover { border-color: #ccc; }
  .cl-item:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
  .step-btn:hover { background: #eef2ff; box-shadow: 0 4px 14px rgba(0,0,0,.1); }
  .bnav-item:hover { color: #07c160; }
  .tracker-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.1); }
  .feecard:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
  .remind-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
  .idphoto-spec-item:hover { border-color: #e91e63; background: #fce4ec; }
  .ins-buy-btn:hover { opacity: .88; box-shadow: 0 4px 14px rgba(227,6,19,.3); }
  .esp-tab:hover { background: #f5f5f5; color: #333; }
  .jobnav-employer-skilllist:hover { opacity: .9; box-shadow: 0 4px 14px rgba(21,101,192,.3); }
  .jobnav-visa-btn:hover { opacity: .88; box-shadow: 0 4px 14px rgba(56,142,60,.3); }
  .jobnav-lock-banner:hover { background: linear-gradient(135deg,#fff3cd,#ffe082); }
  .pro-plan-btn:hover { opacity: .88; box-shadow: 0 4px 14px rgba(123,31,162,.3); }
  .pro-single-btn:hover { opacity: .88; }
  .schengen-rule:hover { background: #f8f9ff; }
  .evisa-banner:hover { opacity: .92; transform: scale(1.01); }

  /* 桌面端按钮cursor=pointer增强 */
  .btn-primary:hover { opacity: .88; box-shadow: 0 4px 16px rgba(15,52,96,.3); }
  .btn-secondary:hover { background: #e0e0e0; }
  .btn-official:hover { box-shadow: 0 4px 16px rgba(0,176,155,.4); }
}

/* 超大屏幕 */
@media (min-width: 1200px) {
  #app { max-width: 1080px; }
  .bottom-nav { max-width: 1080px; }
  .action-bar { max-width: 1080px; }
  .modal { max-width: 1080px; }
  .fab { right: calc(50% - 540px + 28px); }
}

/* ===== e-Visa Banner ===== */
.evisa-banner {
  margin: 0 16px 4px;
  background: linear-gradient(135deg, #00b09b, #96c93d);
  border-radius: 14px; padding: 14px 16px;
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer; transition: opacity .2s; color: #fff;
  box-shadow: 0 4px 14px rgba(0,176,155,.3);
}
.evisa-banner:hover { opacity: .92; }
.evisa-badge {
  display: inline-block; background: rgba(255,255,255,.25);
  border-radius: 10px; padding: 2px 10px;
  font-size: 12px; font-weight: 700; margin-bottom: 6px;
}
.evisa-banner-title { font-size: 16px; font-weight: 700; }
.evisa-banner-sub { font-size: 12px; opacity: .9; margin-top: 2px; }
.evisa-banner-arrow { font-size: 28px; opacity: .8; }

/* ===== 电子签证首页 hero ===== */
.evisa-hero {
  background: linear-gradient(135deg, #00b09b, #96c93d);
  color: #fff; text-align: center; padding: 36px 20px 28px;
}
.evisa-hero h2 { font-size: 22px; font-weight: 700; }
.evisa-hero p { font-size: 13px; opacity: .9; margin-top: 8px; line-height: 1.7; }

/* ===== 电子签国家列表 ===== */
.evisa-list { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.evisa-card {
  background: #fff; border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0,0,0,.07);
  overflow: hidden; cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
.evisa-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.1); }
.evisa-card:active { transform: scale(.98); }
.evisa-card-top {
  padding: 16px; display: flex; align-items: center; gap: 12px;
  border-bottom: 1px solid #f5f5f5;
}
.evisa-card-flag { font-size: 34px; }
.evisa-card-info { flex: 1; }
.evisa-card-name { font-size: 16px; font-weight: 700; color: #1a1a2e; }
.evisa-card-highlight { font-size: 12px; color: #00b09b; margin-top: 3px; font-weight: 500; }
.evisa-card-meta {
  display: flex; gap: 0; background: #f9fffe;
}
.evisa-meta-item {
  flex: 1; padding: 10px 8px; text-align: center;
  border-right: 1px solid #eee;
}
.evisa-meta-item:last-child { border-right: none; }
.evisa-meta-label { font-size: 10px; color: #aaa; margin-bottom: 3px; }
.evisa-meta-value { font-size: 13px; font-weight: 600; color: #333; }
.evisa-card-btn {
  width: 100%; padding: 13px;
  background: linear-gradient(135deg, #00b09b, #96c93d);
  color: #fff; border: none; font-size: 14px; font-weight: 600;
  cursor: pointer; letter-spacing: .5px;
}

/* ===== 电子签详情页 ===== */
.evisa-detail-header {
  background: linear-gradient(135deg, #00b09b, #96c93d);
  color: #fff; padding: 24px 20px 20px;
}
.evisa-detail-header h2 { font-size: 20px; font-weight: 700; }
.evisa-detail-header p { font-size: 13px; opacity: .85; margin-top: 4px; }

.evisa-detail-body { padding: 16px; }

.evisa-info-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px; margin-bottom: 16px;
}
.evisa-info-card {
  background: #fff; border-radius: 12px; padding: 14px;
  box-shadow: 0 2px 6px rgba(0,0,0,.05); text-align: center;
}
.evisa-info-icon { font-size: 22px; margin-bottom: 4px; }
.evisa-info-label { font-size: 11px; color: #aaa; }
.evisa-info-value { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-top: 2px; }

.evisa-section { margin-bottom: 16px; }
.evisa-section-title {
  font-size: 14px; font-weight: 700; color: #1a1a2e;
  margin-bottom: 10px; display: flex; align-items: center; gap: 6px;
}

.evisa-steps { display: flex; flex-direction: column; gap: 0; }
.evisa-step {
  display: flex; align-items: flex-start; gap: 12px;
  position: relative; padding-bottom: 14px;
}
.evisa-step:not(:last-child)::after {
  content: ''; position: absolute; left: 15px; top: 32px;
  width: 2px; height: calc(100% - 14px);
  background: linear-gradient(to bottom, #00b09b, #96c93d);
  opacity: .3;
}
.evisa-step-num {
  width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, #00b09b, #96c93d);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; z-index: 1;
}
.evisa-step-text { flex: 1; padding-top: 6px; font-size: 14px; color: #333; }

.evisa-materials { display: flex; flex-direction: column; gap: 6px; }
.evisa-material {
  background: #fff; border-radius: 10px; padding: 12px 14px;
  font-size: 13px; color: #444; display: flex; align-items: center; gap: 10px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.evisa-material::before { content: '📄'; font-size: 16px; }

.evisa-apply-btn {
  width: 100%; padding: 16px;
  background: linear-gradient(135deg, #00b09b, #96c93d);
  color: #fff; border: none; border-radius: 14px;
  font-size: 16px; font-weight: 700; cursor: pointer;
  margin-top: 8px; letter-spacing: .5px;
  box-shadow: 0 4px 14px rgba(0,176,155,.35);
  transition: opacity .2s;
}
.evisa-apply-btn:hover { opacity: .9; }
.evisa-tip-box {
  background: #fff9e6; border-left: 3px solid #f39c12;
  border-radius: 0 10px 10px 0; padding: 12px 14px;
  margin-top: 14px; font-size: 12px; color: #856404; line-height: 1.6;
}

/* 国家卡片上的 e-Visa 角标 */
.country-card .evisa-dot {
  position: absolute; top: 6px; right: 6px;
  width: 8px; height: 8px; border-radius: 50%;
  background: #00b09b;
  pointer-events: none;
}

/* ===== 工具卡片网格 ===== */
.tools-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px; padding: 0 16px;
}
.tool-card {
  background: #fff; border-radius: 14px; padding: 16px 12px;
  text-align: center; cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: transform .18s, box-shadow .18s;
}
.tool-card:active { transform: scale(.96); box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.tool-icon { font-size: 28px; margin-bottom: 6px; }
.tool-name { font-size: 13px; font-weight: 600; color: #1a1a2e; margin-bottom: 3px; }
.tool-desc { font-size: 11px; color: #999; }

/* ===== 成功案例横滑 ===== */
.cases-scroll {
  display: flex; gap: 12px; overflow-x: auto;
  padding: 4px 16px 8px; scrollbar-width: none;
}
.cases-scroll::-webkit-scrollbar { display: none; }
.case-card {
  min-width: 240px; background: #fff; border-radius: 14px;
  padding: 14px; box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.case-top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.case-flag { font-size: 26px; }
.case-country { font-size: 13px; font-weight: 600; color: #1a1a2e; }
.case-user { font-size: 11px; color: #07c160; margin-top: 2px; }
.case-comment { font-size: 12px; color: #666; line-height: 1.6; font-style: italic; }

/* ===== 免责声明条 ===== */
.disclaimer-bar {
  margin: 12px 16px 0; padding: 10px 14px;
  background: #fff8e1; border-radius: 10px;
  font-size: 11px; color: #856404; line-height: 1.5;
  border-left: 3px solid #f39c12;
}

/* ===== 拒签风险自检 ===== */
.risk-hero, .schengen-hero, .calc-hero, .agent-hero {
  background: linear-gradient(135deg, #1a1a2e, #16213e);
  color: #fff; text-align: center; padding: 28px 20px 24px;
}
.risk-hero h2, .schengen-hero h2, .calc-hero h2, .agent-hero h2 {
  font-size: 20px; font-weight: 700; margin-bottom: 6px;
}
.risk-hero p, .schengen-hero p, .calc-hero p, .agent-hero p {
  font-size: 13px; opacity: .8;
}
.risk-intro {
  margin: 14px 16px; padding: 12px 14px;
  background: #e8f4fd; border-radius: 10px;
  font-size: 13px; color: #1565c0;
}
.risk-question {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 10px 16px; background: #fff; border-radius: 14px;
  padding: 14px; box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.rq-num {
  background: #f0f0f0; color: #666; font-size: 11px; font-weight: 700;
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.rq-text { font-size: 13px; color: #333; line-height: 1.5; margin-bottom: 10px; }
.rq-btns { display: flex; gap: 8px; }
.rq-btn {
  padding: 6px 16px; border-radius: 8px; border: 1.5px solid #e0e0e0;
  font-size: 12px; cursor: pointer; background: #fff; color: #555;
  transition: all .15s;
}
.rq-btn.selected { background: #07c160; color: #fff; border-color: #07c160; }
.risk-result {
  margin: 14px 16px; padding: 18px; border-radius: 14px; text-align: center;
}
.risk-result.risk-high { background: #ffeaea; }
.risk-result.risk-medium { background: #fff8e1; }
.risk-result.risk-low { background: #e8f5e9; }
.risk-result-level { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.risk-result-summary { font-size: 13px; color: #555; line-height: 1.6; }
.risk-item {
  margin: 8px 16px; padding: 12px 14px; border-radius: 12px;
  font-size: 13px; line-height: 1.6;
}
.risk-item-high { background: #ffeaea; color: #c62828; border-left: 3px solid #e53935; }
.risk-item-med { background: #fff8e1; color: #856404; border-left: 3px solid #f9a825; }
.risk-item-ok { background: #e8f5e9; color: #2e7d32; border-left: 3px solid #43a047; }
#riskSubmitBtn { margin: 16px 16px; width: calc(100% - 32px); }

/* ===== 申根签专区 ===== */
.schengen-intro {
  margin: 14px 16px; padding: 12px 14px;
  background: #e8eaf6; border-radius: 10px;
  font-size: 13px; color: #3949ab; line-height: 1.6;
}
.schengen-rules { padding: 0 16px; display: flex; flex-direction: column; gap: 10px; }
.schengen-rule {
  display: flex; gap: 12px; align-items: flex-start;
  background: #fff; border-radius: 12px; padding: 14px;
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.schengen-rule-icon { font-size: 22px; flex-shrink: 0; }
.schengen-rule-title { font-size: 13px; font-weight: 600; color: #1a1a2e; margin-bottom: 4px; }
.schengen-rule-desc { font-size: 12px; color: #666; line-height: 1.5; }
.schengen-countries { padding: 0 16px; display: flex; flex-direction: column; gap: 10px; }
.schengen-country-card {
  background: #fff; border-radius: 14px; padding: 14px;
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.scc-name { font-size: 15px; font-weight: 700; color: #1a1a2e; margin-bottom: 4px; }
.scc-embassy { font-size: 12px; color: #07c160; margin-bottom: 4px; }
.scc-note { font-size: 12px; color: #888; margin-bottom: 10px; }
.scc-btn {
  padding: 8px 16px; background: #e8f4fd; color: #1565c0;
  border: none; border-radius: 8px; font-size: 12px; cursor: pointer;
}
.schengen-tips { padding: 0 16px; display: flex; flex-direction: column; gap: 8px; }
.schengen-tip {
  background: #fff; border-radius: 10px; padding: 12px 14px;
  font-size: 12px; color: #444; line-height: 1.6;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}

/* ===== 护照计算器 ===== */
.calc-card {
  margin: 14px 16px; background: #fff; border-radius: 16px;
  padding: 20px; box-shadow: 0 2px 10px rgba(0,0,0,.06);
}
.calc-item { margin-bottom: 16px; }
.calc-item:last-child { margin-bottom: 0; }
.calc-label { display: block; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 6px; }
.calc-input {
  width: 100%; padding: 12px 14px; border: 1.5px solid #e0e0e0;
  border-radius: 10px; font-size: 14px; color: #333;
  outline: none; transition: border .2s;
}
.calc-input:focus { border-color: #07c160; }
.calc-result { margin: 0 16px 14px; padding: 16px; border-radius: 14px; font-size: 13px; line-height: 1.7; }
.calc-ok { background: #e8f5e9; color: #2e7d32; }
.calc-warn { background: #fff8e1; color: #856404; }
.calc-bad { background: #ffeaea; color: #c62828; }
.calc-tip-box {
  margin: 14px 16px; background: #fff; border-radius: 14px;
  padding: 16px; box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.calc-tip-row {
  display: flex; justify-content: space-between;
  padding: 8px 0; border-bottom: 1px solid #f0f0f0;
  font-size: 12px; color: #555;
}
.calc-tip-row:last-child { border-bottom: none; }

/* ===== 代办服务 ===== */
.agent-intro {
  margin: 14px 16px; padding: 12px 14px;
  background: #e8f4fd; border-radius: 10px;
  font-size: 13px; color: #1565c0; line-height: 1.6;
}
.agent-card {
  margin: 10px 16px; background: #fff; border-radius: 16px;
  padding: 18px; box-shadow: 0 2px 10px rgba(0,0,0,.06);
}
.agent-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.agent-card-name { font-size: 16px; font-weight: 700; color: #1a1a2e; }
.agent-success { background: #e8f5e9; color: #2e7d32; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 20px; }
.agent-card-desc { font-size: 13px; color: #666; margin-bottom: 10px; line-height: 1.5; }
.agent-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.agent-tag { background: #f0f4ff; color: #3949ab; font-size: 11px; padding: 3px 10px; border-radius: 20px; }
.agent-meta { display: flex; gap: 16px; font-size: 12px; color: #888; }
.agent-disclaimer {
  margin: 12px 16px; padding: 12px 14px;
  background: #fff8e1; border-radius: 10px;
  font-size: 11px; color: #856404; line-height: 1.6;
  border-left: 3px solid #f9a825;
}

/* ===== 保险推荐卡片（变现模块）===== */
.ins-recommend-section {
  margin: 16px 0 0;
}
.ins-section-title {
  font-size: 15px; font-weight: 700; color: #1a1a2e;
  padding: 0 16px; margin-bottom: 8px;
}
.ins-tip-bar {
  margin: 0 16px 12px;
  padding: 10px 14px;
  background: linear-gradient(135deg, #fff7e6, #fff3cd);
  border-radius: 10px;
  border-left: 3px solid #fa8c16;
  font-size: 12px; color: #874d00; line-height: 1.5;
}
.ins-tip-bar strong { color: #d46b08; }
.ins-cards-wrap {
  display: flex; flex-direction: column; gap: 12px;
  padding: 0 16px;
}
.ins-card {
  background: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
  border: 1px solid #f0f0f0;
}
.ins-card-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 6px;
}
.ins-company {
  font-size: 12px; color: #888; font-weight: 500;
}
.ins-badge {
  font-size: 11px; color: #fff; font-weight: 700;
  padding: 2px 10px; border-radius: 20px;
}
.ins-name {
  font-size: 16px; font-weight: 700; color: #1a1a2e;
  margin-bottom: 4px;
}
.ins-coverage {
  font-size: 12px; color: #555; margin-bottom: 8px;
  background: #f5f7fa; display: inline-block;
  padding: 2px 10px; border-radius: 20px;
}
.ins-highlights {
  list-style: none; display: flex; flex-wrap: wrap; gap: 4px;
  margin-bottom: 12px;
}
.ins-highlights li {
  font-size: 11px; color: #3c6e47; background: #f0faf2;
  padding: 2px 8px; border-radius: 20px; line-height: 1.8;
}
.ins-footer {
  display: flex; align-items: center; justify-content: space-between;
}
.ins-price { display: flex; align-items: baseline; gap: 4px; }
.ins-price-num {
  font-size: 22px; font-weight: 800;
  color: #f5222d;
}
.ins-price-note { font-size: 11px; color: #aaa; }
.ins-buy-btn {
  background: linear-gradient(135deg, #1677ff, #4096ff);
  color: #fff; border: none; border-radius: 24px;
  padding: 9px 20px; font-size: 14px; font-weight: 700;
  cursor: pointer; letter-spacing: .5px;
  box-shadow: 0 4px 12px rgba(22,119,255,.35);
  transition: transform .15s, box-shadow .15s;
}
.ins-buy-btn:active {
  transform: scale(.97);
  box-shadow: 0 2px 6px rgba(22,119,255,.25);
}
.ins-disclaimer {
  margin: 10px 16px 0;
  font-size: 10px; color: #bbb; text-align: center;
}

/* 保险专页 hero */
.ins-page-hero {
  background: linear-gradient(135deg, #0958d9, #1677ff, #4096ff);
  color: #fff; text-align: center;
  padding: 28px 16px 24px;
}
.ins-page-hero h2 { font-size: 22px; font-weight: 800; margin-bottom: 6px; }
.ins-page-hero p { font-size: 13px; opacity: .85; }

/* 工具卡高亮变体 */
.tool-card--highlight {
  background: linear-gradient(135deg, #e8f4fd, #d6eaff) !important;
  border: 1.5px solid #91caff !important;
}
.tool-card--highlight .tool-icon { color: #0958d9; }
.tool-card--highlight .tool-name { color: #0958d9; }

/* ===== 拒签险专属样式 ===== */

/* 专页顶部横幅 */
.ins-refusal-banner {
  background: linear-gradient(135deg, #fff1f0, #ffe4e2);
  border-top: 3px solid #ff4d4f;
  padding: 18px 16px 14px;
  text-align: center;
  margin-bottom: 4px;
}
.ins-refusal-banner-title {
  font-size: 20px; font-weight: 800; color: #cf1322; margin-bottom: 6px;
}
.ins-refusal-banner-sub {
  font-size: 13px; color: #555; line-height: 1.6;
}

/* 红色提示栏变体 */
.ins-tip-bar--red {
  background: linear-gradient(135deg, #fff1f0, #ffe4e2) !important;
  border-left-color: #ff4d4f !important;
  color: #820014 !important;
}
.ins-tip-bar--red strong { color: #cf1322 !important; }

/* 拒签险卡片 */
.ins-card--refusal {
  border: 1.5px solid #ffa39e;
  background: linear-gradient(180deg, #fff, #fffafa);
}

/* 拒签险三项元信息 */
.ins-refusal-meta {
  display: flex; gap: 0; margin: 10px 0 10px;
  background: #fff8f8; border-radius: 10px; overflow: hidden;
  border: 1px solid #ffe7e7;
}
.ins-refusal-meta-item {
  flex: 1; padding: 8px 4px; text-align: center;
  border-right: 1px solid #ffe7e7;
}
.ins-refusal-meta-item:last-child { border-right: none; }
.ins-refusal-meta-label {
  font-size: 10px; color: #aaa; margin-bottom: 3px;
}
.ins-refusal-meta-val {
  font-size: 12px; font-weight: 700; color: #333;
}
.ins-refusal-meta-val--red { color: #f5222d; }

/* 适用国家 */
.ins-refusal-cover {
  font-size: 11px; color: #888; margin-bottom: 12px;
  line-height: 1.5;
}

/* 拒签险投保按钮（红色） */
.ins-buy-btn--refusal {
  background: linear-gradient(135deg, #f5222d, #ff4d4f) !important;
  box-shadow: 0 4px 12px rgba(245,34,45,.30) !important;
}
.ins-buy-btn--refusal:active {
  box-shadow: 0 2px 6px rgba(245,34,45,.20) !important;
}

/* FAQ 区块 */
.ins-refusal-faq {
  margin: 16px 16px 0;
  background: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  border: 1px solid #f5f5f5;
}
.ins-refusal-faq-title {
  font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 10px;
}
.ins-faq-item { margin-bottom: 10px; }
.ins-faq-item:last-child { margin-bottom: 0; }
.ins-faq-q { font-size: 12px; font-weight: 700; color: #333; margin-bottom: 2px; }
.ins-faq-a { font-size: 12px; color: #777; line-height: 1.6; }

/* 分隔线 */
.ins-divider {
  height: 8px; background: #f5f5f5;
  margin: 20px 0 0;
}

/* 材料清单页的拒签险内联横幅 */
.ins-refusal-inline {
  margin: 0 16px 12px;
  background: linear-gradient(135deg, #fff1f0, #ffe4e2);
  border-radius: 12px;
  border: 1.5px solid #ffccc7;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: background .15s;
}
.ins-refusal-inline:active { background: #ffe4e2; }
.ins-refusal-inline-left { flex: 1; }
.ins-refusal-inline-title {
  font-size: 13px; font-weight: 700; color: #cf1322; margin-bottom: 3px;
}
.ins-refusal-inline-sub {
  font-size: 11px; color: #555; line-height: 1.5; margin-bottom: 3px;
}
.ins-refusal-inline-price {
  font-size: 11px; color: #f5222d; font-weight: 600;
}
.ins-refusal-inline-arrow {
  font-size: 14px; color: #ff4d4f; font-weight: 700; padding-left: 8px;
}


/* =============================================
   材料扫描评分 全套样式
   ============================================= */

/* AI 工具卡（紫色渐变） */
.tool-card--ai {
  background: linear-gradient(135deg, #f9f0ff, #efdbff) !important;
  border: 1.5px solid #d3adf7 !important;
}
.tool-card--ai .tool-icon { color: #531dab; font-size: 22px; }
.tool-card--ai .tool-name { color: #531dab; }

/* 扫描页 hero */
.scan-hero {
  background: linear-gradient(135deg, #391085, #531dab, #722ed1);
  color: #fff; text-align: center;
  padding: 28px 16px 24px;
}
.scan-hero-icon { font-size: 40px; margin-bottom: 8px; }
.scan-hero h2 { font-size: 22px; font-weight: 800; margin-bottom: 6px; }
.scan-hero p { font-size: 13px; opacity: .85; }

/* 介绍卡 */
.scan-intro-card {
  margin: 14px 16px;
  background: linear-gradient(135deg, #f9f0ff, #efdbff);
  border-radius: 14px;
  padding: 14px 16px;
  border: 1px solid #d3adf7;
}
.scan-intro-top {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.scan-intro-country { font-size: 15px; font-weight: 700; color: #391085; }
.scan-intro-tag {
  font-size: 11px; background: #722ed1; color: #fff;
  padding: 2px 10px; border-radius: 20px; font-weight: 700;
}
.scan-intro-desc { font-size: 12px; color: #555; line-height: 1.7; }

/* 区块标题 */
.scan-section-title {
  font-size: 14px; font-weight: 700; color: #1a1a2e;
  padding: 0 16px; margin: 12px 0 8px;
}

/* 材料上传槽 */
.scan-items-list { display: flex; flex-direction: column; gap: 10px; padding: 0 16px; }

.scan-slot {
  background: #fff; border-radius: 14px;
  padding: 14px; border: 1.5px solid #f0f0f0;
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 1px 6px rgba(0,0,0,.05);
  transition: border-color .2s;
}
.scan-slot--uploaded { border-color: #b37feb; background: #faf5ff; }
.scan-slot-left { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.scan-slot-icon { font-size: 24px; flex-shrink: 0; }
.scan-slot-info { min-width: 0; }
.scan-slot-label {
  font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 3px;
  display: flex; align-items: center; gap: 6px;
}
.scan-slot-weight {
  font-size: 10px; background: #f0f0f0; color: #888;
  padding: 1px 7px; border-radius: 20px; font-weight: 400;
}
.scan-slot-desc { font-size: 11px; color: #999; }
.scan-slot-right { flex-shrink: 0; margin-left: 10px; }

/* 上传按钮 */
.scan-upload-btn {
  display: inline-flex; align-items: center; gap: 4px;
  background: linear-gradient(135deg, #722ed1, #9254de);
  color: #fff; font-size: 13px; font-weight: 700;
  padding: 8px 14px; border-radius: 24px; cursor: pointer;
  white-space: nowrap;
}
.scan-upload-btn:active { opacity: .85; }

/* 缩略图 */
.scan-thumb-wrap {
  position: relative; display: inline-block; margin-bottom: 4px;
}
.scan-thumb {
  width: 52px; height: 52px; border-radius: 8px; object-fit: cover;
  border: 2px solid #b37feb; display: block;
}
.scan-thumb-ok {
  position: absolute; top: -6px; right: -6px;
  background: #52c41a; color: #fff;
  font-size: 10px; font-weight: 700;
  width: 16px; height: 16px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.scan-reupload-btn {
  display: block; text-align: center;
  font-size: 11px; color: #722ed1; cursor: pointer;
  font-weight: 600; margin-top: 2px;
}

/* 分析按钮 */
.scan-analyze-btn {
  width: 100%; padding: 14px;
  background: linear-gradient(135deg, #531dab, #722ed1, #9254de);
  color: #fff; border: none; border-radius: 14px;
  font-size: 16px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 4px 16px rgba(114,46,209,.4);
  transition: opacity .2s, box-shadow .2s;
}
.scan-analyze-btn:disabled {
  background: #d9d9d9; box-shadow: none; cursor: not-allowed; color: #aaa;
}
.scan-analyze-btn-icon { font-size: 18px; }
.spin { animation: spin 1s linear infinite; display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }

/* 隐私说明 */
.scan-privacy-note {
  margin: 0 16px 16px;
  font-size: 11px; color: #aaa; text-align: center; line-height: 1.8;
}

/* 加载动画 */
.scan-loading {
  margin: 20px 16px;
  text-align: center;
}
.scan-loading-dots { display: flex; justify-content: center; gap: 6px; margin-bottom: 10px; }
.scan-loading-dots span {
  width: 10px; height: 10px; border-radius: 50%;
  background: #722ed1; display: inline-block;
  animation: dot-bounce 1.2s ease-in-out infinite;
}
.scan-loading-dots span:nth-child(2) { animation-delay: .2s; }
.scan-loading-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes dot-bounce {
  0%, 80%, 100% { transform: scale(.6); opacity: .4; }
  40% { transform: scale(1); opacity: 1; }
}
.scan-loading-text { font-size: 14px; color: #722ed1; font-weight: 600; }

/* 总分区 */
.scan-total-score-wrap {
  margin: 16px 16px 0;
  background: #fff; border-radius: 16px;
  padding: 20px 16px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
  border: 1px solid #f0f0f0;
}
.scan-total-score-label { font-size: 12px; color: #aaa; margin-bottom: 8px; }
.scan-total-score-ring {
  width: 88px; height: 88px; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  margin: 0 auto 10px;
  border: 5px solid #e6fffb;
}
.scan-grade--high .scan-total-score-ring { border-color: #95de64; background: #f6ffed; }
.scan-grade--mid  .scan-total-score-ring { border-color: #ffd666; background: #fffbe6; }
.scan-grade--low  .scan-total-score-ring { border-color: #ff9c6e; background: #fff7e6; }
.scan-grade--bad  .scan-total-score-ring { border-color: #ff7875; background: #fff1f0; }
.scan-total-score-num { font-size: 30px; font-weight: 900; color: #1a1a2e; line-height: 1; }
.scan-total-score-unit { font-size: 11px; color: #aaa; }

.scan-grade-badge {
  display: inline-block; font-size: 14px; font-weight: 700;
  padding: 4px 16px; border-radius: 24px; margin-bottom: 10px;
}
.scan-grade--high .scan-grade-badge { background: #f6ffed; color: #237804; }
.scan-grade--mid  .scan-grade-badge { background: #fffbe6; color: #ad6800; }
.scan-grade--low  .scan-grade-badge { background: #fff7e6; color: #ad4e00; }
.scan-grade--bad  .scan-grade-badge { background: #fff1f0; color: #a8071a; }

.scan-total-summary { font-size: 13px; color: #555; line-height: 1.7; text-align: left; }

/* 逐项评分卡 */
.scan-result-item {
  background: #fff; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px;
  border-left: 4px solid #d9d9d9;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.scan-result-item--good { border-left-color: #52c41a; }
.scan-result-item--ok   { border-left-color: #faad14; }
.scan-result-item--weak { border-left-color: #ff4d4f; }
.scan-result-item-header {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px;
}
.scan-result-item-name { font-size: 14px; font-weight: 700; color: #1a1a2e; }
.scan-result-score { font-size: 18px; font-weight: 800; }
.scan-result-score--good { color: #52c41a; }
.scan-result-score--ok   { color: #faad14; }
.scan-result-score--weak { color: #ff4d4f; }
.scan-score-bar-wrap {
  height: 6px; background: #f0f0f0; border-radius: 3px; margin-bottom: 8px; overflow: hidden;
}
.scan-score-bar { height: 100%; border-radius: 3px; transition: width .5s ease; }
.scan-result-issues { font-size: 11px; color: #d46b08; margin-bottom: 4px; }
.scan-result-tip { font-size: 11px; color: #555; }

/* 未上传材料 */
.scan-missing-section {
  margin: 12px 16px 0;
  background: #fffbe6; border-radius: 12px; padding: 12px 14px;
  border: 1px solid #ffe58f;
}
.scan-missing-title { font-size: 13px; font-weight: 700; color: #ad6800; margin-bottom: 8px; }
.scan-missing-item {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; color: #555; padding: 4px 0;
  border-bottom: 1px solid #fff1b8;
}
.scan-missing-item:last-child { border-bottom: none; }
.scan-missing-weight { color: #d46b08; font-weight: 600; font-size: 11px; }

/* CTA 行动区 */
.scan-cta-wrap {
  margin: 16px 16px 0;
  background: #fff; border-radius: 14px; padding: 14px 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.scan-cta-title { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 10px; }
.scan-cta-btns { display: flex; flex-direction: column; gap: 8px; }
.scan-cta-btn {
  width: 100%; padding: 12px; border-radius: 12px; border: none;
  font-size: 14px; font-weight: 700; cursor: pointer;
}
.scan-cta-btn--primary {
  background: linear-gradient(135deg, #531dab, #722ed1); color: #fff;
}
.scan-cta-btn--secondary {
  background: #f5f5f5; color: #555;
}

/* 升级提示 */
.scan-upgrade-note {
  margin: 12px 16px 0;
  font-size: 11px; color: #bbb; text-align: center; line-height: 1.7;
  padding: 8px; background: #fafafa; border-radius: 8px;
}

/* ===== 工具页面 Hero 通用 ===== */
.tool-page-hero {
  padding: 32px 20px 24px;
  text-align: center; color: #fff;
}
.tool-page-hero--blue  { background: linear-gradient(135deg,#1677ff,#0052cc); }
.tool-page-hero--green { background: linear-gradient(135deg,#27ae60,#1a7a42); }
.tool-page-hero--orange{ background: linear-gradient(135deg,#f39c12,#e67e22); }
.tool-page-hero--purple{ background: linear-gradient(135deg,#8e44ad,#6c3483); }
.tool-page-hero--teal  { background: linear-gradient(135deg,#16a085,#0e6655); }
.tool-page-hero--warn  { background: linear-gradient(135deg,#e67e22,#d35400); }
.tool-page-hero--dark  { background: linear-gradient(135deg,#2c3e50,#1a252f); }
.tool-page-icon { font-size: 40px; margin-bottom: 10px; }
.tool-page-hero h2 { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.tool-page-hero p  { font-size: 14px; opacity: .85; }

/* 新工具卡颜色 */
.tool-card--blue   { background: linear-gradient(135deg,#e8f4fd,#bde0fb); }
.tool-card--green  { background: linear-gradient(135deg,#e9f7ef,#a9dfbf); }
.tool-card--orange { background: linear-gradient(135deg,#fef9e7,#fdebd0); }
.tool-card--purple { background: linear-gradient(135deg,#f5eef8,#d7bde2); }
.tool-card--teal   { background: linear-gradient(135deg,#e8f8f5,#a2d9ce); }
.tool-card--warn   { background: linear-gradient(135deg,#fef5e7,#fad7a0); }
.tool-card--dark   { background: linear-gradient(135deg,#eaecee,#cacfd2); }
.tool-card--jobnav { background: linear-gradient(135deg,#e8f5e9,#a5d6a7); }
.tool-card--pro    { background: linear-gradient(135deg,#f3e5f5,#ce93d8); }
.tool-card--passport { background: linear-gradient(135deg,#e3f2fd,#90caf9); }
.tool-card--employer { background: linear-gradient(135deg,#e0f2f1,#80cbc4); }

/* ===== 雇主担保移民页面 ===== */
.esp-hero { background: linear-gradient(135deg,#004d40,#00695C); color:#fff; padding:28px 20px 24px; text-align:center; }
.esp-hero-icon { font-size:38px; margin-bottom:6px; }
.esp-hero-title { font-size:22px; font-weight:800; margin-bottom:4px; }
.esp-hero-sub { font-size:13px; opacity:.85; margin-bottom:14px; }
.esp-hero-tags { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.esp-hero-tag { background:rgba(255,255,255,.2); border-radius:20px; padding:4px 12px; font-size:12px; font-weight:600; }
.esp-tabs { display:flex; margin:0; border-bottom:2px solid #e0e0e0; background:#fff; }
.esp-tab { flex:1; text-align:center; padding:12px; font-size:14px; font-weight:600; color:#888; cursor:pointer; transition:all .2s; }
.esp-tab.active { color:#00695C; border-bottom:3px solid #00695C; }
.esp-section-title { font-size:14px; font-weight:700; color:#333; margin:16px 16px 10px; }
.esp-country-header { display:flex; align-items:center; gap:14px; padding:16px; color:#fff; margin:12px 16px; border-radius:14px; }
.esp-country-flag { font-size:36px; }
.esp-country-name { font-size:18px; font-weight:800; }
.esp-country-tagline { font-size:12px; opacity:.85; margin-top:2px; }
.esp-jobs-wrap { display:flex; flex-wrap:wrap; gap:8px; margin:0 16px 4px; }
.esp-job-tag { background:#e0f2f1; color:#00695C; border-radius:20px; padding:5px 12px; font-size:12px; font-weight:600; }
.esp-visa-card { background:#fff; border-radius:12px; padding:14px; margin:0 16px 10px; box-shadow:0 1px 5px rgba(0,0,0,0.08); border-left:4px solid #ddd; }
.esp-visa-card--hot { border-left-color:#00695C; }
.esp-visa-top { display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.esp-visa-code { color:#fff; border-radius:6px; padding:3px 10px; font-size:12px; font-weight:800; }
.esp-visa-name { font-size:14px; font-weight:700; color:#222; flex:1; }
.esp-visa-hot { background:#fff3e0; color:#e65100; border-radius:10px; padding:2px 8px; font-size:11px; font-weight:700; }
.esp-visa-desc { font-size:12px; color:#555; line-height:1.6; margin-bottom:8px; }
.esp-visa-footer { display:flex; gap:10px; }
.esp-visa-period { font-size:11px; color:#00695C; background:#e0f2f1; border-radius:4px; padding:2px 8px; }
.esp-visa-path { font-size:11px; color:#888; }
.esp-step { display:flex; gap:12px; align-items:flex-start; margin:0 16px 10px; }
.esp-step-num { width:28px; height:28px; color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; flex-shrink:0; }
.esp-step-body { flex:1; background:#fff; border-radius:10px; padding:10px 12px; box-shadow:0 1px 4px rgba(0,0,0,0.06); }
.esp-step-title { font-size:13px; font-weight:700; color:#222; }
.esp-step-desc { font-size:12px; color:#888; margin-top:3px; line-height:1.5; }
.esp-platform-card { display:flex; align-items:center; background:#fff; border-radius:10px; padding:12px 14px; margin:0 16px 8px; box-shadow:0 1px 4px rgba(0,0,0,0.07); cursor:pointer; }
.esp-platform-left { flex:1; }
.esp-platform-name { font-size:14px; font-weight:700; color:#222; }
.esp-platform-desc { font-size:12px; color:#888; margin-top:2px; }
.esp-platform-right { display:flex; align-items:center; gap:8px; }
.esp-platform-tag { color:#fff; border-radius:10px; padding:3px 8px; font-size:11px; font-weight:700; white-space:nowrap; }
.esp-platform-arrow { font-size:20px; color:#ccc; }
.esp-skillist { display:flex; align-items:center; gap:8px; background:#00695C; color:#fff; border-radius:10px; padding:12px 14px; margin:0 16px 16px; cursor:pointer; }
.esp-skillist span:first-child { font-weight:700; font-size:13px; flex-shrink:0; }
.esp-skillist-sub { font-size:11px; opacity:.85; flex:1; }
.esp-skillist-arrow { font-size:20px; }
.esp-tips-box { margin:0 16px 16px; background:#f0fdf4; border-radius:12px; padding:12px 14px; border-left:4px solid #00695C; }
.esp-tips-list { margin:0; padding-left:18px; }
.esp-tips-list li { font-size:12px; color:#444; line-height:2; }
.esp-official { display:flex; align-items:center; gap:8px; background:#fff; border:1px solid #e0e0e0; border-radius:10px; padding:12px 14px; margin:0 16px 16px; cursor:pointer; }
.esp-official span:first-child { font-size:13px; font-weight:700; color:#222; flex:1; }
.esp-official-sub { font-size:11px; color:#999; }
.esp-official-arrow { font-size:20px; color:#ccc; }
.esp-top-banner { margin:12px 16px 0; background:linear-gradient(135deg,#00695C,#004d40); color:#fff; border-radius:10px; padding:12px 16px; font-size:13px; cursor:pointer; text-align:center; line-height:1.6; }
.esp-lock-box { margin:0 16px 16px; background:#fff; border-radius:14px; padding:24px 20px; text-align:center; box-shadow:0 2px 8px rgba(0,0,0,0.08); }
.esp-lock-icon { font-size:36px; margin-bottom:8px; }
.esp-lock-title { font-size:16px; font-weight:800; color:#222; margin-bottom:6px; }
.esp-lock-desc { font-size:13px; color:#666; line-height:1.7; margin-bottom:18px; }
.esp-lock-btn { background:linear-gradient(135deg,#00695C,#004d40); color:#fff; border:none; border-radius:10px; padding:12px 32px; font-size:15px; font-weight:700; cursor:pointer; width:100%; margin-bottom:8px; }
.esp-lock-or { font-size:12px; color:#aaa; margin:8px 0; }
.esp-lock-btn-secondary { background:#f5f5f5; color:#444; border:none; border-radius:10px; padding:10px 20px; font-size:13px; font-weight:600; cursor:pointer; width:100%; }
.esp-footer-cta { margin:16px; background:#004d40; border-radius:14px; padding:16px; text-align:center; color:#fff; }
.esp-footer-cta-text { font-size:13px; margin-bottom:10px; opacity:.9; }
.esp-footer-cta-btn { background:#fff; color:#004d40; border:none; border-radius:8px; padding:10px 24px; font-size:13px; font-weight:700; cursor:pointer; }
.tool-page-hero--passport { background: linear-gradient(135deg,#0d47a1,#1565c0); }

/* ===== 海外求职导航 ===== */
.tool-page-hero--jobnav { background: linear-gradient(135deg,#1b5e20,#388e3c); }
.jobnav-intro { display: flex; align-items: center; gap: 12px; margin: 16px 16px 8px; background: #fff; border-radius: 14px; padding: 14px 16px; box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.jobnav-intro-icon { font-size: 32px; }
.jobnav-intro-text { font-size: 13px; color: #444; line-height: 1.7; }
.jobnav-tip { margin: 0 16px 12px; font-size: 12px; color: #888; text-align: center; background: #f0f7f0; border-radius: 8px; padding: 8px 12px; }
.jobnav-country-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 16px 16px; }
.jobnav-country-card { background: #fff; border-radius: 12px; padding: 12px 4px; text-align: center; cursor: pointer; box-shadow: 0 1px 8px rgba(0,0,0,.06); transition: all .2s; border: 2px solid transparent; }
.jobnav-country-card:active { transform: scale(.96); }
.jobnav-country-card.active { border-color: #388e3c; background: #f0fff0; box-shadow: 0 2px 12px rgba(56,142,60,.25); }
.jobnav-country-flag { font-size: 26px; margin-bottom: 4px; }
.jobnav-country-name { font-size: 11px; font-weight: 700; color: #1a1a2e; margin-bottom: 2px; }
.jobnav-country-sites { font-size: 10px; color: #888; }
.jobnav-detail-header { display: flex; align-items: center; gap: 14px; margin: 0 16px 12px; background: linear-gradient(135deg,#f0fff0,#e8f5e9); border-radius: 14px; padding: 14px 16px; }
.jobnav-detail-flag { font-size: 40px; }
.jobnav-detail-name { font-size: 16px; font-weight: 800; color: #1a1a2e; margin-bottom: 8px; }
.jobnav-detail-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.jobnav-meta-tag { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 20px; }
.jobnav-meta-visa   { background: #e3f2fd; color: #1565c0; }
.jobnav-meta-salary { background: #fff8e1; color: #e65100; }
.jobnav-meta-lang   { background: #f3e5f5; color: #6a1b9a; }
.jobnav-sites-title { margin: 0 16px 8px; font-size: 14px; font-weight: 700; color: #1a1a2e; }
.jobnav-sites-list { margin: 0 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.jobnav-site-card { display: flex; align-items: center; justify-content: space-between; background: #fff; border-radius: 12px; padding: 12px 14px; box-shadow: 0 1px 8px rgba(0,0,0,.06); text-decoration: none; border-left: 4px solid #388e3c; transition: all .2s; cursor: pointer; }
.jobnav-site-card:active { transform: scale(.98); background: #f0fff0; }
.jobnav-site-left { flex: 1; }
.jobnav-site-name { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 3px; }
.jobnav-site-desc { font-size: 12px; color: #888; line-height: 1.4; }
.jobnav-site-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; margin-left: 10px; }
.jobnav-site-tag { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 20px; background: #e8f5e9; color: #2e7d32; white-space: nowrap; }
.jobnav-site-card:has(.jobnav-site-tag-login) { border-left-color: #ccc; opacity: 0.75; }
.jobnav-site-tag-login { background: #f0f0f0 !important; color: #999 !important; }
.jobnav-site-arrow { font-size: 20px; color: #388e3c; font-weight: 700; }
.jobnav-visa-hint { margin: 0 16px 12px; background: linear-gradient(135deg,#e8f5e9,#f1f8e9); border-radius: 14px; padding: 14px 16px; border: 1px solid #c8e6c9; }
.jobnav-visa-hint-title { font-size: 13px; font-weight: 700; color: #2e7d32; margin-bottom: 8px; }
.jobnav-visa-hint-text { font-size: 12px; color: #555; line-height: 1.6; margin-bottom: 12px; }
.jobnav-visa-btn { background: linear-gradient(135deg,#388e3c,#2e7d32); color: #fff; border: none; border-radius: 20px; padding: 8px 20px; font-size: 13px; font-weight: 700; cursor: pointer; width: 100%; }
.jobnav-disclaimer { margin: 0 16px; font-size: 11px; color: #aaa; text-align: center; background: #f8f9fa; border-radius: 8px; padding: 8px; }
.jobnav-pro-badge { margin: 0 16px 12px; background: linear-gradient(135deg,#e8f5e9,#f1f8e9); color: #2e7d32; font-size: 13px; font-weight: 700; text-align: center; padding: 10px; border-radius: 10px; border: 1px solid #c8e6c9; }
.jobnav-lock-banner { margin: 0 16px 12px; background: linear-gradient(135deg,#fff8e1,#fff3cd); color: #e65100; font-size: 12px; text-align: center; padding: 10px 14px; border-radius: 10px; border: 1px solid #ffcc80; cursor: pointer; }
.jobnav-lock-banner span { font-weight: 700; text-decoration: underline; }
.req-mark { color: #e74c3c; font-weight: 700; }

/* ===== 雇主担保专区 ===== */
.jobnav-employer-section { margin: 12px 16px; background: linear-gradient(135deg,#e3f2fd,#f0f7ff); border-radius: 14px; padding: 14px; border: 1px solid #bbdefb; }
.jobnav-employer-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.jobnav-employer-badge { background: #1565C0; color: #fff; border-radius: 20px; padding: 4px 12px; font-size: 13px; font-weight: 700; }
.jobnav-employer-sub { font-size: 12px; color: #1565C0; font-weight: 600; }
.jobnav-employer-intro { font-size: 13px; color: #444; line-height: 1.7; margin-bottom: 12px; }
.jobnav-employer-block-title { font-size: 13px; font-weight: 700; color: #1565C0; margin: 12px 0 8px; }
.jobnav-employer-visa-row { display: flex; gap: 8px; align-items: flex-start; background: #fff; border-radius: 8px; padding: 10px; margin-bottom: 6px; box-shadow: 0 1px 3px rgba(21,101,192,0.08); }
.jobnav-employer-visa-code { background: #1565C0; color: #fff; border-radius: 6px; padding: 3px 8px; font-size: 11px; font-weight: 700; white-space: nowrap; height: fit-content; }
.jobnav-employer-visa-body { flex: 1; }
.jobnav-employer-visa-name { font-size: 13px; font-weight: 600; color: #222; }
.jobnav-employer-visa-desc { font-size: 12px; color: #666; margin-top: 2px; line-height: 1.5; }
.jobnav-employer-visa-note { font-size: 11px; color: #1565C0; background: #e3f2fd; border-radius: 4px; padding: 2px 6px; white-space: nowrap; height: fit-content; }
.jobnav-employer-skilllist { display: flex; align-items: center; gap: 8px; background: #1565C0; color: #fff; border-radius: 10px; padding: 10px 14px; cursor: pointer; margin-bottom: 4px; }
.jobnav-employer-skilllist span:first-child { font-weight: 700; font-size: 13px; flex-shrink: 0; }
.jobnav-employer-skilllist-desc { font-size: 11px; opacity: .85; flex: 1; }
.jobnav-employer-skilllist-arrow { font-size: 18px; font-weight: 700; }
.jobnav-employer-tips { margin: 0; padding-left: 18px; }
.jobnav-employer-tips li { font-size: 12px; color: #444; line-height: 2; }
.jobnav-site-card--employer { border-left: 3px solid #1565C0; }
.jobnav-site-tag-employer { background: #1565C0 !important; color: #fff !important; }

/* ===== VisaGo Pro 会员页 ===== */
.pro-hero { background: linear-gradient(135deg,#1a1a2e,#4a148c,#7b1fa2); text-align: center; padding: 36px 20px 28px; color: #fff; }
.pro-hero-crown { font-size: 48px; margin-bottom: 8px; }
.pro-hero-title { font-size: 26px; font-weight: 900; letter-spacing: 2px; margin-bottom: 6px; }
.pro-hero-sub { font-size: 13px; opacity: .85; line-height: 1.6; }
.pro-active-badge { margin-top: 14px; display: inline-block; background: rgba(255,255,255,.2); border-radius: 20px; padding: 6px 16px; font-size: 13px; font-weight: 700; }
.pro-section-title { margin: 16px 16px 8px; font-size: 14px; font-weight: 800; color: #1a1a2e; }
.pro-compare-card { margin: 0 16px; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.pro-compare-row { display: flex; align-items: center; padding: 10px 14px; border-bottom: 1px solid #f0f0f0; }
.pro-compare-row:last-child { border-bottom: none; }
.pro-compare-header { background: #f8f0ff; font-weight: 700; font-size: 12px; color: #888; }
.pro-compare-feat { flex: 2; font-size: 12px; color: #333; }
.pro-compare-free { flex: 1; font-size: 11px; color: #aaa; text-align: center; }
.pro-compare-pro { flex: 1; font-size: 11px; color: #aaa; text-align: center; }
.pro-compare-pro--val { color: #7b1fa2; font-weight: 700; }
.pro-plan-card { margin: 0 16px; background: #fff; border-radius: 16px; padding: 18px 16px; box-shadow: 0 2px 14px rgba(0,0,0,.08); position: relative; overflow: hidden; }
.pro-plan-card--featured { background: linear-gradient(135deg,#f3e5f5,#ede7f6); border: 2px solid #ab47bc; }
.pro-plan-card--owned { border-color: #7b1fa2; }
.pro-plan-badge { position: absolute; top: 12px; right: 12px; background: #7b1fa2; color: #fff; font-size: 10px; font-weight: 700; padding: 3px 10px; border-radius: 20px; }
.pro-plan-top { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 8px; }
.pro-plan-name { font-size: 18px; font-weight: 800; color: #1a1a2e; }
.pro-plan-price { font-size: 14px; font-weight: 700; color: #7b1fa2; }
.pro-plan-price span { font-size: 28px; }
.pro-plan-desc { font-size: 12px; color: #666; margin-bottom: 14px; line-height: 1.6; }
.pro-plan-btn { width: 100%; background: linear-gradient(135deg,#7b1fa2,#4a148c); color: #fff; border: none; border-radius: 24px; padding: 13px; font-size: 15px; font-weight: 800; cursor: pointer; }
.pro-plan-owned { text-align: center; color: #7b1fa2; font-size: 13px; font-weight: 700; padding: 8px 0; }
.pro-single-list { margin: 0 16px; display: flex; flex-direction: column; gap: 10px; }
.pro-single-card { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 14px; padding: 14px; box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.pro-single-card--owned { opacity: .7; }
.pro-single-icon { font-size: 28px; flex-shrink: 0; }
.pro-single-info { flex: 1; }
.pro-single-name { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 3px; }
.pro-single-desc { font-size: 12px; color: #888; }
.pro-single-btn { flex-shrink: 0; background: linear-gradient(135deg,#7b1fa2,#4a148c); color: #fff; border: none; border-radius: 20px; padding: 8px 14px; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.pro-single-owned { flex-shrink: 0; font-size: 12px; font-weight: 700; color: #7b1fa2; background: #f3e5f5; border-radius: 20px; padding: 6px 12px; }
.pro-disclaimer { margin: 16px 16px 0; font-size: 11px; color: #aaa; text-align: center; line-height: 1.8; }

/* ===== 文件生成器 ===== */
.docgen-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 16px; }
.docgen-tab { background: #fff; border-radius: 12px; padding: 14px 10px; text-align: center; cursor: pointer; border: 2px solid transparent; transition: all .2s; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.docgen-tab:active, .docgen-tab.active { border-color: #1677ff; background: #e8f4fd; }
.docgen-tab-icon { font-size: 26px; margin-bottom: 6px; }
.docgen-tab-name { font-size: 13px; font-weight: 600; color: #333; }
.docgen-form-card { margin: 0 16px; background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.docgen-form-header { margin-bottom: 16px; }
.docgen-form-header span:first-child { font-size: 16px; font-weight: 700; color: #1a1a2e; display: block; }
.docgen-form-desc { font-size: 12px; color: #888; margin-top: 4px; }
.docgen-field { margin-bottom: 14px; }
.docgen-label { display: block; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 6px; }
.docgen-input { width: 100%; padding: 10px 12px; border: 1.5px solid #e0e0e0; border-radius: 10px; font-size: 14px; background: #fafafa; transition: border-color .2s; }
.docgen-input:focus { outline: none; border-color: #1677ff; background: #fff; }
.docgen-generate-btn { width: 100%; margin-top: 8px; padding: 14px; background: linear-gradient(135deg,#1677ff,#0052cc); color: #fff; border: none; border-radius: 12px; font-size: 16px; font-weight: 700; cursor: pointer; letter-spacing: 1px; }
.docgen-result-card { margin: 16px; background: #fff; border-radius: 16px; padding: 18px; box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.docgen-result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 15px; font-weight: 700; color: #1a1a2e; }
.docgen-copy-btn { padding: 7px 14px; background: #f0f0f0; border: none; border-radius: 8px; font-size: 13px; cursor: pointer; color: #333; }
.docgen-copy-btn:active { background: #e0e0e0; }
.docgen-print-btn { background: linear-gradient(135deg,#1677ff,#0052cc) !important; color: #fff !important; font-weight: 600; }
.docgen-print-btn:active { opacity: .85; }
.docgen-result-text { font-size: 12px; line-height: 1.9; color: #333; white-space: pre-wrap; word-break: break-all; background: #f9f9f9; border-radius: 10px; padding: 14px; max-height: 360px; overflow-y: auto; border: 1px solid #eee; }
.docgen-tip { margin-top: 10px; font-size: 11px; color: #999; background: #fffbf0; padding: 8px 12px; border-radius: 8px; border-left: 3px solid #f39c12; }

/* ===== 护照地图 ===== */
.pmap-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: #eee; margin: 0 16px 16px; border-radius: 12px; overflow: hidden; }
.pmap-stat { background: #fff; padding: 12px 4px; text-align: center; }
.pmap-stat-num { font-size: 22px; font-weight: 800; }
.pmap-stat-label { font-size: 10px; color: #888; margin-top: 2px; }
.pmap-section-title { padding: 10px 16px 6px; font-size: 14px; font-weight: 700; }
.pmap-section-title--green { color: #27ae60; }
.pmap-section-title--red   { color: #e74c3c; }
.pmap-desc { padding: 0 16px 8px; font-size: 11px; color: #aaa; }
.pmap-grid { padding: 0 12px; display: flex; flex-direction: column; gap: 6px; }
.pmap-card { background: #fff; border-radius: 12px; padding: 12px 14px; display: flex; align-items: center; gap: 10px; box-shadow: 0 1px 6px rgba(0,0,0,.05); }
.pmap-card-flag { font-size: 28px; min-width: 36px; text-align: center; }
.pmap-card-info { flex: 1; }
.pmap-card-name { font-size: 14px; font-weight: 600; color: #1a1a2e; }
.pmap-card-days { font-size: 12px; color: #888; margin-top: 2px; }
.pmap-card-note { font-size: 11px; color: #aaa; margin-top: 2px; }
.pmap-card-badge { font-size: 11px; padding: 3px 8px; border-radius: 20px; font-weight: 600; white-space: nowrap; }
.pmap-badge--free   { background: #e9f7ef; color: #27ae60; }
.pmap-badge--arrival{ background: #e8f4fd; color: #1677ff; }
.pmap-badge--evisa  { background: #f0e6ff; color: #8e44ad; }
.pmap-badge--easy   { background: #e9f7ef; color: #27ae60; }
.pmap-badge--medium { background: #fef9e7; color: #f39c12; }
.pmap-badge--hard   { background: #fde8e8; color: #e74c3c; }
.pmap-disclaimer { padding: 12px 16px; font-size: 11px; color: #aaa; text-align: center; }

/* ===== 入境须知 ===== */
.arrival-intro { padding: 12px 16px; font-size: 14px; color: #555; }
.arrival-country-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; padding: 0 16px 16px; }
.arrival-country-btn { background: #fff; border-radius: 12px; padding: 10px 4px; text-align: center; cursor: pointer; box-shadow: 0 1px 6px rgba(0,0,0,.05); transition: all .15s; font-size: 12px; color: #333; }
.arrival-country-btn span:first-child { display: block; font-size: 24px; margin-bottom: 4px; }
.arrival-country-btn:active { background: #f0f7ff; transform: scale(.96); }
.arrival-detail-card { margin: 0 16px; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.arrival-detail-title { padding: 16px 18px; font-size: 16px; font-weight: 700; background: linear-gradient(135deg,#f39c12,#e67e22); color: #fff; }
.arrival-section { padding: 14px 18px; border-bottom: 1px solid #f0f0f0; }
.arrival-section:last-child { border-bottom: none; }
.arrival-section-head { font-size: 13px; font-weight: 700; color: #333; margin-bottom: 8px; }
.arrival-item { font-size: 13px; color: #555; padding: 5px 0; border-bottom: 1px dashed #f0f0f0; line-height: 1.5; }
.arrival-item:last-child { border-bottom: none; }
.arrival-cash-box { background: #fef9e7; border-radius: 8px; padding: 10px 12px; font-size: 13px; color: #b7770d; font-weight: 600; border-left: 3px solid #f39c12; }
.arrival-qa { background: #f8f9fa; border-radius: 10px; padding: 10px 12px; font-size: 13px; color: #444; line-height: 1.6; margin-bottom: 8px; }
.arrival-qa:last-child { margin-bottom: 0; }
.qa-q { color: #1677ff; font-weight: 700; }
.qa-a { color: #27ae60; font-weight: 700; }
.arrival-tip { font-size: 13px; color: #555; padding: 5px 0; display: flex; align-items: flex-start; gap: 6px; line-height: 1.5; }

/* ===== 拒签急救包 ===== */
.rescue-intro { padding: 12px 16px; font-size: 14px; color: #555; }
.rescue-list { padding: 0 16px; display: flex; flex-direction: column; gap: 10px; }
.rescue-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 1px 8px rgba(0,0,0,.06); cursor: pointer; transition: box-shadow .2s; }
.rescue-card:active { box-shadow: 0 2px 16px rgba(0,0,0,.1); }
.rescue-card--open { box-shadow: 0 4px 20px rgba(0,0,0,.1); }
.rescue-card-header { display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.rescue-emoji { font-size: 28px; min-width: 36px; }
.rescue-card-title-wrap { flex: 1; }
.rescue-card-title { font-size: 14px; font-weight: 700; color: #1a1a2e; }
.rescue-card-freq { font-size: 11px; color: #aaa; margin-top: 3px; }
.rescue-arrow { font-size: 20px; color: #ccc; transition: transform .25s; }
.rescue-card-body { padding: 0 16px 16px; border-top: 1px solid #f0f0f0; }
.rescue-desc { font-size: 13px; color: #888; padding: 12px 0 8px; line-height: 1.6; }
.rescue-fix-title { font-size: 12px; font-weight: 700; color: #555; margin-bottom: 6px; }
.rescue-fix-list { padding-left: 20px; }
.rescue-fix-list li { font-size: 13px; color: #444; line-height: 1.7; margin-bottom: 4px; }
.rescue-footer { font-size: 12px; padding: 8px 12px; border-radius: 8px; margin-top: 10px; font-weight: 600; }
.rescue-footer--ok   { background: #e9f7ef; color: #27ae60; }
.rescue-footer--warn { background: #fde8e8; color: #e74c3c; }
.rescue-action-btn { flex: 1; padding: 10px; border: none; border-radius: 10px; font-size: 13px; cursor: pointer; font-weight: 600; background: #f0f7ff; color: #1677ff; }
.rescue-action-btn--ins   { background: #fde8e8; color: #e74c3c; }
.rescue-action-btn--agent { width: 100%; background: #f0f7ff; color: #1677ff; padding: 10px; border: none; border-radius: 10px; font-size: 13px; cursor: pointer; font-weight: 600; }
.rescue-tip-box { margin: 16px; background: #fffbf0; border-radius: 12px; padding: 14px 16px; font-size: 13px; color: #b7770d; line-height: 1.6; border-left: 4px solid #f39c12; }

/* ===== 银行流水自测 ===== */
.bcheck-form { margin: 0 16px; background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.bcheck-field { margin-bottom: 14px; }
.bcheck-label { display: block; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 6px; }
.bcheck-input, .bcheck-select { width: 100%; padding: 10px 12px; border: 1.5px solid #e0e0e0; border-radius: 10px; font-size: 14px; background: #fafafa; }
.bcheck-input:focus, .bcheck-select:focus { outline: none; border-color: #1677ff; }
.bcheck-btn { width: 100%; margin-top: 8px; padding: 14px; background: linear-gradient(135deg,#16a085,#0e6655); color: #fff; border: none; border-radius: 12px; font-size: 16px; font-weight: 700; cursor: pointer; }
.bcheck-result-card { margin: 16px; background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.bcheck-result-header { font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.bcheck-result-bar { height: 10px; background: #eee; border-radius: 10px; overflow: hidden; margin-bottom: 6px; }
.bcheck-result-fill { height: 100%; border-radius: 10px; transition: width .6s ease; }
.bcheck-result-score { font-size: 22px; font-weight: 800; color: #1a1a2e; margin-bottom: 6px; }
.bcheck-result-conclusion { font-size: 14px; color: #555; margin-bottom: 14px; line-height: 1.5; }
.bcheck-breakdown { background: #f8f9fa; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.bcheck-breakdown-row { display: flex; justify-content: space-between; font-size: 13px; color: #555; padding: 4px 0; border-bottom: 1px solid #eee; }
.bcheck-breakdown-row:last-child { border-bottom: none; }
.bcheck-issues { background: #fde8e8; border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
.bcheck-issues-title { font-size: 13px; font-weight: 700; color: #e74c3c; margin-bottom: 6px; }
.bcheck-issue-item { font-size: 13px; color: #c0392b; line-height: 1.6; }
.bcheck-suggestions { background: #fef9e7; border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
.bcheck-sug-item { font-size: 13px; color: #b7770d; line-height: 1.6; }
.bcheck-rule-note { font-size: 12px; color: #888; background: #f8f9fa; border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; line-height: 1.5; }
.bcheck-action-btn { flex: 1; padding: 10px; border: none; border-radius: 10px; font-size: 13px; cursor: pointer; font-weight: 600; background: #e8f4fd; color: #1677ff; }
.bcheck-action-btn--ins { background: #fde8e8; color: #e74c3c; }

/* ===== 签证到期提醒 ===== */
.remind-form-card { margin: 0 16px; background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.remind-form-title { font-size: 15px; font-weight: 700; color: #1a1a2e; margin-bottom: 14px; }
.remind-field { margin-bottom: 12px; }
.remind-field label { display: block; font-size: 13px; font-weight: 600; color: #555; margin-bottom: 5px; }
.remind-input { width: 100%; padding: 10px 12px; border: 1.5px solid #e0e0e0; border-radius: 10px; font-size: 14px; background: #fafafa; }
.remind-input:focus { outline: none; border-color: #e67e22; }
.remind-add-btn { width: 100%; margin-top: 6px; padding: 13px; background: linear-gradient(135deg,#e67e22,#d35400); color: #fff; border: none; border-radius: 12px; font-size: 15px; font-weight: 700; cursor: pointer; }
.remind-list-title { padding: 16px 16px 8px; font-size: 14px; font-weight: 700; color: #555; }
.remind-empty { padding: 24px 16px; text-align: center; color: #bbb; font-size: 14px; }
.remind-card { background: #fff; border-radius: 14px; margin: 0 16px 10px; padding: 14px 16px; display: flex; justify-content: space-between; align-items: flex-start; box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.remind-card--urgent { border-left: 4px solid #e74c3c; background: #fffafa; }
.remind-card--expired { border-left: 4px solid #ccc; background: #f8f8f8; opacity: .7; }
.remind-card-country { font-size: 15px; font-weight: 700; color: #1a1a2e; }
.remind-card-date { font-size: 12px; color: #888; margin-top: 3px; }
.remind-card-note { font-size: 11px; color: #bbb; margin-top: 3px; }
.remind-status { font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 20px; }
.remind-status--ok      { background: #e9f7ef; color: #27ae60; }
.remind-status--warn    { background: #fef9e7; color: #f39c12; }
.remind-status--urgent  { background: #fde8e8; color: #e74c3c; }
.remind-status--expired { background: #f0f0f0; color: #999; }
.remind-del-btn { font-size: 11px; color: #bbb; background: none; border: 1px solid #ddd; border-radius: 6px; padding: 3px 8px; cursor: pointer; }
.remind-tip-box { margin: 8px 16px 0; background: #fffbf0; border-radius: 12px; padding: 12px 14px; font-size: 12px; color: #b7770d; line-height: 1.6; }

/* ===== 识别黑中介 ===== */
.agcheck-tabs { display: flex; gap: 0; margin: 0 16px 12px; background: #f0f0f0; border-radius: 12px; padding: 4px; }
.agcheck-tab { flex: 1; padding: 9px 4px; font-size: 12px; font-weight: 600; border: none; background: none; border-radius: 9px; cursor: pointer; color: #888; transition: all .2s; }
.agcheck-tab.active { background: #fff; color: #1a1a2e; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.agcheck-panel { padding: 0 16px; }
.agcheck-intro { font-size: 13px; margin-bottom: 10px; padding: 10px 14px; border-radius: 10px; font-weight: 600; }
.agcheck-intro--red  { background: #fde8e8; color: #e74c3c; }
.agcheck-intro--green{ background: #e9f7ef; color: #27ae60; }
.agcheck-intro--dark { background: #f0f0f0; color: #555; }
.agcheck-flag-card { background: #fff; border-radius: 14px; padding: 14px; margin-bottom: 8px; display: flex; gap: 12px; box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.agcheck-flag-card--red  { border-left: 4px solid #e74c3c; }
.agcheck-flag-card--green{ border-left: 4px solid #27ae60; }
.agcheck-flag-icon { font-size: 24px; min-width: 32px; }
.agcheck-flag-title { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 4px; }
.agcheck-flag-desc  { font-size: 12px; color: #888; line-height: 1.6; }
.agcheck-scam-card  { background: #fff; border-radius: 14px; padding: 14px 16px; margin-bottom: 8px; border-left: 4px solid #2c3e50; box-shadow: 0 1px 8px rgba(0,0,0,.06); }
.agcheck-scam-title { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 6px; }
.agcheck-scam-desc  { font-size: 13px; color: #555; line-height: 1.6; margin-bottom: 6px; }
.agcheck-scam-risk  { font-size: 12px; font-weight: 600; color: #e74c3c; }
.agcheck-checklist-card { margin: 12px 16px 0; background: #fff; border-radius: 16px; padding: 16px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.agcheck-checklist-title { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 12px; }
.agcheck-check-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f0f0f0; cursor: pointer; }
.agcheck-check-item:last-of-type { border-bottom: none; }
.agcheck-check-item.checked .agcheck-check-box { background: #27ae60; color: #fff; border-color: #27ae60; }
.agcheck-check-box { min-width: 22px; height: 22px; border: 2px solid #ddd; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: #ccc; transition: all .2s; }
.agcheck-check-text { font-size: 13px; color: #444; line-height: 1.6; }
.agcheck-check-tip { margin-top: 12px; font-size: 12px; color: #888; text-align: center; background: #f8f9fa; border-radius: 8px; padding: 8px; }

/* ===== 护照预约办理 ===== */
.tool-page-hero--passport { background: linear-gradient(135deg,#0d47a1,#1565c0); }
.tool-card--passport { background: linear-gradient(135deg,#e3f2fd,#90caf9); }

/* ===== 海外求职导航 ===== */
.tool-page-hero--jobnav { background: linear-gradient(135deg,#1b5e20,#388e3c); }
.tool-card--jobnav { background: linear-gradient(135deg,#e8f5e9,#a5d6a7); }

/* ===== 雇主担保移民 ===== */
.tool-page-hero--employer { background: linear-gradient(135deg,#004d40,#00695c); }
.tool-card--employer { background: linear-gradient(135deg,#e0f2f1,#80cbc4); }

/* ===== 智能证件照 ===== */
.tool-page-hero--pink  { background: linear-gradient(135deg,#e91e63,#ad1457); }
.tool-card--pink      { background: linear-gradient(135deg,#fce4ec,#f48fb1); }

.idphoto-upload-area {
  margin: 16px; padding: 40px 20px; text-align: center;
  background: #fff; border: 2px dashed #ccc; border-radius: 16px;
  cursor: pointer; transition: all .2s;
}
.idphoto-upload-area:active { border-color: #e91e63; background: #fce4ec; }
.idphoto-upload-icon { font-size: 48px; margin-bottom: 10px; }
.idphoto-upload-text { font-size: 16px; font-weight: 700; color: #333; margin-bottom: 6px; }
.idphoto-upload-hint { font-size: 12px; color: #aaa; }

.idphoto-section { margin: 12px 16px; }
.idphoto-section-title { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 10px; }

.idphoto-spec-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
.idphoto-spec-item {
  background: #fff; border-radius: 10px; padding: 10px 6px; text-align: center;
  cursor: pointer; border: 2px solid transparent; box-shadow: 0 1px 6px rgba(0,0,0,.05);
  transition: all .2s; display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.idphoto-spec-item:active { transform: scale(.96); }
.idphoto-spec-item.idphoto-spec-active { border-color: #e91e63; background: #fce4ec; }
.idphoto-spec-flag { font-size: 20px; }
.idphoto-spec-name { font-size: 11px; font-weight: 700; color: #333; }
.idphoto-spec-size { font-size: 10px; color: #999; }

.idphoto-bg-row { display: flex; gap: 12px; margin-bottom: 8px; }
.idphoto-bg-item {
  display: flex; align-items: center; gap: 6px; cursor: pointer;
  padding: 6px 12px; border-radius: 20px; border: 2px solid transparent;
  background: #fff; font-size: 13px; transition: all .2s;
}
.idphoto-bg-item.idphoto-bg-active { border-color: #e91e63; background: #fce4ec; }
.idphoto-bg-swatch { width: 24px; height: 24px; border-radius: 50%; }

.idphoto-tolerance-row { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #666; margin-top: 6px; }
.idphoto-tolerance-row input[type=range] { flex: 1; }

.idphoto-actions { display: flex; gap: 8px; margin: 12px 16px; flex-wrap: wrap; }
.idphoto-btn {
  flex: 1; min-width: 100px; padding: 11px 14px; border: none; border-radius: 10px;
  font-size: 14px; font-weight: 700; cursor: pointer; transition: all .15s;
}
.idphoto-btn:active { transform: scale(.97); }
.idphoto-btn--primary  { background: linear-gradient(135deg,#e91e63,#ad1457); color: #fff; }
.idphoto-btn--secondary { background: linear-gradient(135deg,#27ae60,#1a7a42); color: #fff; }
.idphoto-btn--outline  { background: #fff; color: #666; border: 1px solid #ddd; }

.idphoto-preview-area { display: flex; gap: 12px; margin: 12px 16px; }
.idphoto-preview-box { flex: 1; }
.idphoto-preview-label { font-size: 12px; font-weight: 700; color: #888; margin-bottom: 6px; text-align: center; }
.idphoto-info-box {
  min-width: 120px; background: #fce4ec; border-radius: 12px; padding: 12px;
}
.idphoto-info-title { font-size: 13px; font-weight: 700; color: #e91e63; margin-bottom: 8px; }
.idphoto-info-row { display: flex; justify-content: space-between; font-size: 12px; color: #555; padding: 4px 0; border-bottom: 1px solid rgba(233,30,99,.1); }
.idphoto-info-row span { color: #999; }
.idphoto-info-row:last-child { border-bottom: none; }

.idphoto-disclaimer { margin: 8px 16px; font-size: 11px; color: #aaa; line-height: 1.6; }

/* ===== 签证费用估算 ===== */
.tool-page-hero--fee    { background: linear-gradient(135deg,#f57c00,#e65100); }
.tool-card--fee        { background: linear-gradient(135deg,#fff3e0,#ffcc80); }

.feefilter-bar { display: flex; gap: 8px; margin: 12px 16px; }
.feefilter-input {
  flex: 1; padding: 10px 14px; border: 1px solid #e0e0e0; border-radius: 10px;
  font-size: 14px; outline: none; background: #fff;
}
.feefilter-input:focus { border-color: #f57c00; }
.feefilter-select {
  padding: 10px 12px; border: 1px solid #e0e0e0; border-radius: 10px;
  font-size: 13px; background: #fff; outline: none; color: #333;
}

.feesummary-bar {
  margin: 0 16px 10px; padding: 10px 14px; background: linear-gradient(135deg,#fff3e0,#ffe0b2);
  border-radius: 10px; font-size: 13px; color: #e65100; font-weight: 600;
}

.feecard {
  margin: 0 16px 8px; background: #fff; border-radius: 12px;
  box-shadow: 0 1px 8px rgba(0,0,0,.06); overflow: hidden;
}
.feecard-header {
  display: flex; align-items: center; gap: 8px; padding: 12px 14px;
  cursor: pointer; user-select: none;
}
.feecard-header:active { background: #f8f8f8; }
.feecard-flag { font-size: 24px; }
.feecard-country { flex: 1; font-size: 14px; font-weight: 700; color: #1a1a2e; }
.feecard-arrow { font-size: 12px; color: #aaa; transition: transform .2s; }
.feecard-open .feecard-arrow { transform: rotate(90deg); }
.feecard-body { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.feecard-open .feecard-body { max-height: 800px; }

.feerow {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 10px 14px; border-top: 1px solid #f0f0f0;
}
.feerow-left { flex: 1; }
.feerow-name { font-size: 13px; font-weight: 600; color: #333; margin-bottom: 2px; }
.feerow-note { font-size: 11px; color: #888; }
.feerow-right { text-align: right; white-space: nowrap; }
.feerow-fee { font-size: 16px; font-weight: 800; color: #e65100; }
.feerow-urgent { font-size: 11px; color: #e74c3c; font-weight: 600; }
.feerow-days { font-size: 11px; color: #999; margin-top: 2px; }
.feerow-tip {
  padding: 8px 14px; font-size: 11px; color: #f57c00;
  background: #fff8e1; border-top: 1px dashed #ffe0b2;
}

.feetag { font-size: 10px; padding: 2px 8px; border-radius: 20px; font-weight: 700; }
.freetag { background: #e8f5e9; color: #27ae60; }
.lowtag { background: #e8f5e9; color: #27ae60; }
.midtag { background: #fff3e0; color: #f57c00; }
.hightag { background: #fde8e8; color: #e74c3c; }

.visafee-disclaimer { margin: 12px 16px; font-size: 11px; color: #aaa; line-height: 1.6; }

/* ===== 签证进度追踪 ===== */
.tool-page-hero--vtracker { background: linear-gradient(135deg,#5c6bc0,#3949ab); }
.tool-card--vtracker     { background: linear-gradient(135deg,#e8eaf6,#9fa8da); }

.vtracker-add-card {
  margin: 16px; background: #fff; border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,.06); overflow: hidden;
}
.vtracker-add-title {
  padding: 14px 16px; font-size: 15px; font-weight: 700; color: #3949ab;
  background: linear-gradient(135deg,#e8eaf6,#c5cae9);
  border-bottom: 1px solid #c5cae9;
}
.vtracker-form { padding: 14px 16px; }
.vtracker-field { margin-bottom: 12px; }
.vtracker-field label {
  display: block; font-size: 12px; font-weight: 700; color: #666; margin-bottom: 4px;
}
.vtracker-field input, .vtracker-field select {
  width: 100%; padding: 10px 12px; border: 1px solid #e0e0e0; border-radius: 10px;
  font-size: 14px; outline: none; box-sizing: border-box;
}
.vtracker-field input:focus, .vtracker-field select:focus { border-color: #5c6bc0; }
.vtracker-row2 { display: flex; gap: 10px; }
.vtracker-row2 .vtracker-field { flex: 1; }
.vtracker-btn {
  width: 100%; padding: 12px; border: none; border-radius: 10px;
  background: linear-gradient(135deg,#5c6bc0,#3949ab); color: #fff;
  font-size: 15px; font-weight: 700; cursor: pointer;
}

.vtracker-stats {
  display: flex; gap: 8px; margin: 0 16px 12px;
}
.vtracker-stat-item {
  flex: 1; text-align: center; background: #fff; border-radius: 12px;
  padding: 12px 8px; box-shadow: 0 1px 6px rgba(0,0,0,.05);
}
.vtracker-stat-num { display: block; font-size: 22px; font-weight: 800; color: #3949ab; }
.vtracker-stat-label { font-size: 11px; color: #999; }

.vtracker-empty {
  text-align: center; padding: 40px 20px; color: #ccc; font-size: 14px;
}

.vtracker-card {
  margin: 0 16px 10px; background: #fff; border-radius: 14px;
  padding: 14px; box-shadow: 0 1px 8px rgba(0,0,0,.06); cursor: pointer;
  transition: all .15s;
}
.vtracker-card:active { transform: scale(.98); }
.vtracker-card-top {
  display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap;
}
.vtracker-card-country { font-size: 15px; font-weight: 700; color: #1a1a2e; }
.vtracker-card-type { font-size: 12px; color: #888; }
.vtracker-status-badge {
  font-size: 11px; padding: 3px 10px; border-radius: 20px; font-weight: 600;
}

.vtracker-progress-bar {
  height: 4px; background: #f0f0f0; border-radius: 2px; margin-bottom: 10px; overflow: hidden;
}
.vtracker-progress-fill {
  height: 100%; border-radius: 2px; transition: width .3s ease;
}

.vtracker-card-bottom {
  display: flex; justify-content: space-between; font-size: 12px; color: #999;
}

.vtracker-countdown {
  margin-top: 8px; padding: 8px 12px; background: #f0f4ff;
  border-radius: 8px; font-size: 13px; color: #3949ab;
}

.vtracker-card-note {
  margin-top: 6px; font-size: 12px; color: #888; padding-top: 6px;
  border-top: 1px dashed #f0f0f0;
}








