/* ============ 深色模式 ============
   每个页面自己的 <style> 里都重复定义了一份 :root（--pink/--dark/--ink3 等），
   不方便逐一覆盖。这里用 html[data-theme="dark"] 这种"属性选择器+元素"组合，
   选择器优先级比单纯的 :root 更高，能直接覆盖掉每个页面自己声明的同名变量，
   不需要把所有页面的 :root 都删掉重写。
   --card-bg / --footer-bg / --error-bg / --error-border / --error-text 是新增变量，
   页面原来都是写死的 white/#fff/#fff5f5 等字面量，已经统一替换成 var(...) 引用。 */
:root {
  --card-bg: #ffffff;
  --footer-bg: #1a1a1a;
  --error-bg: #fff5f5;
  --error-border: #fca5a5;
  --error-text: #dc2626;
  --nav-bg: rgba(251, 251, 251, 0.95);
}

html[data-theme="dark"] {
  --pink: #ff5d96;
  --pink-bg: rgba(255, 93, 150, 0.14);
  --near-white: #14151a;
  --light-gray: #1f2025;
  --dark: #ececec;
  --mid: #cfcfd2;
  --ink3: #9a9aa0;
  --ink4: #55565c;
  --border: rgba(255, 255, 255, 0.08);
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 4px 16px rgba(0, 0, 0, 0.3);
  --shadow-up: 0 12px 32px rgba(255, 93, 150, 0.18), 0 4px 12px rgba(0, 0, 0, 0.4);
  --card-bg: #1c1d22;
  --footer-bg: #0e0f12;
  --error-bg: rgba(220, 38, 38, 0.12);
  --error-border: rgba(252, 165, 165, 0.35);
  --error-text: #ff8080;
  --nav-bg: rgba(20, 21, 26, 0.85);
}

html[data-theme="dark"] body { background: var(--near-white); color: var(--dark); }

.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--border, #ebebeb); background: none; cursor: pointer;
  color: var(--ink3, #888); font-size: 16px; margin-left: 8px;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.theme-toggle:hover { color: var(--pink, #e94c88); border-color: var(--pink, #e94c88); background: var(--pink-bg, #fdf0f6); }

body, nav, footer, .upload-area, .file-list, .file-item, .options, .options-panel,
.progress-area, .result-area, .error-area, .tool-card, .editor-banner,
.thumb-card, .form-card, .principle-card, .category-row, .cta, .translate-panel {
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

/* 移动端响应式 */
@media (max-width: 900px) {
  nav { padding: 0 20px !important; height: 56px !important; }
  .nav-links { gap: 0 !important; }
  .nav-links a { padding: 6px 10px !important; font-size: 12px !important; }
  main { padding-left: 20px !important; padding-right: 20px !important; }
  .hero {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    padding: 48px 0 40px !important;
    margin-bottom: 48px !important;
  }
  .hero h1 { font-size: 36px !important; }
  .hero-sub { font-size: 14px !important; }
  .hero-pills { flex-direction: row !important; flex-wrap: wrap !important; }
  .section-header { flex-direction: column; align-items: flex-start; gap: 4px; }
  .tools-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important; }
  .editor-banner-inline { grid-column: 1 / -1 !important; }
  .footer-main { grid-template-columns: 1fr 1fr !important; gap: 32px !important; padding: 40px 20px 32px !important; }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; padding: 16px 20px !important; }
  .footer-badges { flex-wrap: wrap; justify-content: center; }
  .tool-desc { margin-left: 0 !important; margin-top: 12px; }
  .tool-header h1 { font-size: 26px !important; }
  .info-grid { grid-template-columns: 1fr !important; }
  .upload-area { padding: 36px 20px !important; }
  .translate-box { flex-direction: column !important; }
  .translate-panel { min-height: 180px !important; }
}

.upload-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--pink, #e94c88); color: white;
  font-size: 13px; font-weight: 700; padding: 10px 24px;
  border-radius: 24px; border: none; cursor: pointer; font-family: inherit;
  transition: background 0.15s, transform 0.15s;
}
.upload-btn:hover { background: #d43d79; transform: translateY(-1px); }

/* 工具页说明与站内推荐 */
.seo-content { margin-top: 64px; border-top: 1px solid var(--border); padding-top: 40px; }
.seo-content h2 { font-family:'DengXian','等线','PingFang SC','Noto Sans SC',sans-serif; font-size:22px; font-weight:500; letter-spacing:.2px; line-height:1.4; margin-bottom:14px; color:var(--dark); }
.seo-content h3 { font-family:'DengXian','等线','PingFang SC','Noto Sans SC',sans-serif; font-size:16px; font-weight:500; letter-spacing:.2px; line-height:1.5; margin-bottom:10px; color:var(--dark); }
.seo-content p, .seo-content li { font-size: 14px; line-height: 1.85; color: var(--ink3); }
.seo-intro { margin-bottom: 28px; }
.seo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 36px; }
.seo-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; padding: 20px; }
.seo-card ol, .seo-card ul { padding-left: 20px; }
.seo-faq { margin-bottom: 36px; }
.seo-faq details { background: var(--card-bg); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; margin-top: 10px; }
.seo-faq summary { cursor:pointer; font-family:'DengXian','等线','PingFang SC','Noto Sans SC',sans-serif; font-size:14px; font-weight:500; color:var(--dark); }
.seo-faq details p { padding-top: 10px; }
.related-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.related-tool { display:flex; align-items:center; gap:10px; min-height:58px; padding:12px 14px; border:1px solid var(--border); border-radius:10px; background:var(--card-bg); color:var(--dark); text-decoration:none; font-family:'DengXian','等线','PingFang SC','Noto Sans SC',sans-serif; font-size:13px; font-weight:500; transition:border-color .15s,color .15s,transform .15s; }
.related-tool i { color: var(--pink); font-size: 18px; }
.related-tool:hover { color: var(--pink); border-color: var(--pink); transform: translateY(-1px); }

@media (max-width: 600px) {
  .nav-links { display: none !important; }
  .hero h1 { font-size: 30px !important; }
  .tool-title-row { flex-direction: column; align-items: flex-start; gap: 10px; }
  .footer-main { grid-template-columns: 1fr !important; }
  .option-row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .seo-content { margin-top: 48px; padding-top: 32px; }
  .seo-grid, .related-tools { grid-template-columns: 1fr !important; }
}