/* ============================================================
   PDF 工具内部组件 — 配合全站模版（/css/style.css）使用，仅工具页加载。
   令牌全部取自全站样式表（--bg/--panel/--border/--text/--accent…），
   明暗主题由全局的 prefers-color-scheme 变量自动切换。
   ============================================================ */
:root { --pdf-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; }

/* hidden 属性优先于组件自身的 display（如 .ready-row 为 flex） */
.pdf-tool [hidden], .pdf-tool .hidden { display: none !important; }

/* ---------------- 拖拽上传区 ---------------- */
.pdf-tool .dropzone {
  position: relative;
  border: 1px dashed var(--border);
  border-radius: 10px;
  padding: 44px 20px 40px; text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.pdf-tool .dropzone:hover, .pdf-tool .dropzone.drag {
  border-color: var(--accent-line);
  background: var(--accent-dim);
}
.pdf-tool .dz-icon { width: 40px; height: 40px; opacity: .95; }
.pdf-tool .dropzone h3 { margin: 14px 0 6px; font-size: 16.5px; font-weight: 700; }
.pdf-tool .dropzone p { margin: 0; color: var(--muted); font-size: 12.5px; font-family: var(--pdf-mono); letter-spacing: .05em; }
.pdf-tool .dropzone .btn-primary { margin-top: 20px; pointer-events: none; }

/* ---------------- 按钮 ---------------- */
.pdf-tool .btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--accent); color: var(--bg);
  border: 0; border-radius: 9px; padding: 11px 22px;
  font-size: 14.5px; font-weight: 700; font-family: inherit;
  cursor: pointer; transition: filter .12s, transform .12s, opacity .15s;
  text-decoration: none !important;
}
.pdf-tool .btn-primary:hover { filter: brightness(1.08); transform: translateY(-1px); text-decoration: none; }
.pdf-tool .btn-primary:active { transform: translateY(0); filter: brightness(.96); }
.pdf-tool .btn-primary:disabled { opacity: .38; cursor: not-allowed; transform: none; filter: grayscale(.4); }

.pdf-tool .btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  background: transparent; color: var(--text);
  border: 1px solid var(--border);
  border-radius: 9px; padding: 10px 18px;
  font-size: 14px; cursor: pointer; font-family: inherit;
  transition: border-color .15s, background .15s;
  text-decoration: none !important;
}
.pdf-tool .btn-outline:hover { border-color: var(--accent); background: var(--accent-dim); text-decoration: none; }

/* ---------------- 选项 / 高级设置 ---------------- */
.pdf-tool .advanced { margin-top: 16px; color: var(--text-2); font-size: 13.5px; }
.pdf-tool .advanced summary {
  cursor: pointer; user-select: none; color: var(--muted);
  font-family: var(--pdf-mono); font-size: 12px; letter-spacing: .08em;
}
.pdf-tool .advanced summary:hover { color: var(--text-2); }
.pdf-tool .advanced .row { display: flex; flex-wrap: wrap; gap: 14px 22px; margin-top: 14px; align-items: center; }
.pdf-tool .advanced label { display: inline-flex; gap: 7px; align-items: center; cursor: pointer; }
.pdf-tool .advanced select {
  background: var(--panel2); color: var(--text);
  border: 1px solid var(--border); border-radius: 7px;
  padding: 6px 10px; font-size: 13.5px; font-family: inherit;
}
.pdf-tool .advanced input[type="checkbox"] { accent-color: var(--accent); width: 15px; height: 15px; }

/* 运行时注入的选项行 / 提示 */
.pdf-tool .opt-row {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 13.5px; color: var(--text-2); margin-right: 22px;
}
.pdf-tool .opt-row > span {
  font-family: var(--pdf-mono); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--muted);
}
.pdf-tool .opt-row select, .pdf-tool .opt-row input[type="text"], .pdf-tool .opt-row input[type="password"] {
  background: var(--panel2); color: var(--text);
  border: 1px solid var(--border); border-radius: 7px;
  padding: 7px 10px; font-size: 13.5px; font-family: inherit;
}
.pdf-tool .opt-row input[type="text"] { min-width: 210px; }
.pdf-tool .opt-row input[type="password"] { min-width: 170px; }
.pdf-tool .opt-row label input[type="checkbox"] { accent-color: var(--accent); margin-right: 4px; }
.pdf-tool .opt-hint { color: var(--muted); font-size: 12.5px; margin: 6px 0 0; }
.pdf-tool .opt-hint.small { font-family: var(--pdf-mono); font-size: 11px; letter-spacing: .04em; }
.pdf-tool .opt-area {
  width: 100%; min-height: 130px; resize: vertical;
  background: var(--panel2); color: var(--text);
  border: 1px solid var(--border); border-radius: 9px;
  padding: 12px 14px; font: 12.5px/1.6 var(--pdf-mono);
  margin-top: 10px;
}
.pdf-tool .opt-area:focus { outline: none; border-color: var(--accent-line); }
.pdf-tool .img-count { font-family: var(--pdf-mono); font-size: 11.5px; color: var(--muted); letter-spacing: .04em; }

/* ---------------- 已选文件 / 队列 ---------------- */
.pdf-tool .ready-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pdf-tool .file-chip {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px;
  border: 1px solid var(--border); border-radius: 9px;
  background: var(--panel2); font-size: 13.5px; max-width: 100%;
}
.pdf-tool .file-chip b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 300px; font-weight: 700; }
.pdf-tool .file-chip .meta { color: var(--muted); font-size: 11.5px; white-space: nowrap; font-family: var(--pdf-mono); letter-spacing: .03em; }
.pdf-tool .file-chip button.remove { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 14px; padding: 0 2px; }
.pdf-tool .file-chip button.remove:hover { color: var(--red); }

.pdf-tool .queue-list { margin-top: 14px; }
.pdf-tool .queue-title { font-size: 11px; letter-spacing: .14em; color: var(--muted); margin-bottom: 8px; }
.pdf-tool .queue-item {
  display: flex; align-items: center; gap: 10px;
  border: 1px solid var(--border); border-radius: 9px;
  padding: 8px 12px; margin-bottom: 6px; background: var(--panel2); font-size: 13px;
}
.pdf-tool .queue-item .q-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46%; color: var(--text); }
.pdf-tool .queue-item .meta { color: var(--muted); font-family: var(--pdf-mono); font-size: 11px; }
.pdf-tool .queue-item button {
  border: 1px solid var(--border); background: transparent; color: var(--text-2);
  width: 26px; height: 26px; border-radius: 7px; cursor: pointer; line-height: 1;
}
.pdf-tool .queue-item button:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
.pdf-tool .queue-item button:disabled { opacity: .35; cursor: not-allowed; }

/* ---------------- 进度 ---------------- */
.pdf-tool .progress-line { margin: 8px 0 2px; }
.pdf-tool .bar {
  height: 8px; border-radius: 4px; overflow: hidden;
  background: repeating-linear-gradient(90deg, var(--panel2) 0 9px, var(--bg) 9px 12px);
  border: 1px solid var(--border);
}
.pdf-tool .bar > i {
  display: block; height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--accent), var(--accent-line));
  transition: width .25s ease;
}
.pdf-tool .pct { font-size: 12px; color: var(--text-2); margin-top: 10px; font-family: var(--pdf-mono); letter-spacing: .04em; }

/* ---------------- 解析阶段（AI 工具步骤条） ---------------- */
.pdf-tool .stepper { list-style: none; display: flex; justify-content: space-between; padding: 4px 6px; margin: 6px 0 14px; position: relative; }
.pdf-tool .stepper li {
  position: relative; z-index: 1; text-align: center;
  font-family: var(--pdf-mono); font-size: 11px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--muted);
}
.pdf-tool .stepper .dot {
  width: 30px; height: 30px; border-radius: 8px; margin: 0 auto 8px;
  display: flex; align-items: center; justify-content: center;
  background: var(--panel2); border: 1px solid var(--border);
  font-family: var(--pdf-mono); font-size: 11px; color: var(--muted);
  transition: all .2s;
}
.pdf-tool .stepper li.active { color: var(--text); }
.pdf-tool .stepper li.active .dot { border-color: var(--accent-line); color: var(--accent); animation: pdf-pulse 1.6s infinite; }
.pdf-tool .stepper li.donep { color: var(--accent); }
.pdf-tool .stepper li.donep .dot { border-color: var(--accent-line); background: var(--accent-dim); color: var(--accent); animation: none; }
@keyframes pdf-pulse { 50% { box-shadow: 0 0 0 5px var(--accent-dim); } }

.pdf-tool .stat-line { color: var(--text-2); font-size: 13.5px; min-height: 22px; font-family: var(--pdf-mono); letter-spacing: .02em; }
.pdf-tool .stat-line::before { content: "> "; color: var(--accent); font-weight: 700; }
.pdf-tool .spin {
  display: inline-block; width: 12px; height: 12px;
  border: 1.5px solid var(--border); border-top-color: var(--accent);
  border-radius: 50%; animation: pdf-rot .8s linear infinite;
  vertical-align: -2px; margin-right: 7px;
}
@keyframes pdf-rot { to { transform: rotate(360deg); } }

/* ---------------- 完成区 / 结果列表 ---------------- */
.pdf-tool .done-head { display: flex; align-items: baseline; gap: 12px; }
.pdf-tool .done-head .tick { font-size: 22px; color: var(--accent); }
.pdf-tool .done-head h3 { margin: 0; font-size: 20px; font-weight: 800; }
.pdf-tool .done-meta { color: var(--muted); font-size: 12px; margin: 8px 0 20px; font-family: var(--pdf-mono); letter-spacing: .06em; }
.pdf-tool .export-row { display: flex; flex-wrap: wrap; gap: 11px; }

.pdf-tool .result-list .result-head { font-size: 11px; letter-spacing: .16em; color: var(--muted); margin-bottom: 10px; }
.pdf-tool .result-item {
  display: flex; align-items: center; gap: 14px;
  border: 1px solid var(--border); border-radius: 10px;
  padding: 12px 16px; margin-bottom: 8px; background: var(--panel2);
}
.pdf-tool .result-item .r-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--pdf-mono); font-size: 13px; color: var(--text); }
.pdf-tool .result-item .meta { color: var(--muted); font-size: 11.5px; font-family: var(--pdf-mono); white-space: nowrap; }
.pdf-tool #resultNote { color: var(--accent); font-size: 12.5px; margin: 4px 0 0; min-height: 18px; font-family: var(--pdf-mono); }

/* ---------------- 错误卡 ---------------- */
.pdf-tool .error-box { text-align: center; padding: 14px 0 6px; }
.pdf-tool .error-box .face { font-family: var(--pdf-mono); font-size: 15px; color: var(--red); letter-spacing: .3em; }
.pdf-tool .error-box pre.msg {
  white-space: normal; word-break: break-word;
  background: color-mix(in srgb, var(--red) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--red) 30%, transparent);
  color: var(--red); padding: 14px 18px; border-radius: 9px;
  font-family: var(--pdf-mono); font-size: 12.5px; line-height: 1.65;
}

/* ---------------- 预览（AI 工具） ---------------- */
.pdf-tool .preview-tabs { display: flex; gap: 4px; margin: 24px 0 12px; border-bottom: 1px solid var(--border); padding-bottom: 10px; }
.pdf-tool .preview-tabs button {
  border: 1px solid transparent; background: transparent; color: var(--muted);
  padding: 6px 14px; border-radius: 7px; cursor: pointer;
  font-size: 13px; font-family: var(--pdf-mono); letter-spacing: .05em;
}
.pdf-tool .preview-tabs button:hover { color: var(--text-2); }
.pdf-tool .preview-tabs button.on { color: var(--accent); background: var(--accent-dim); border-color: var(--accent-line); }

.pdf-tool #preview-src {
  width: 100%; height: 420px; resize: vertical;
  font-family: var(--pdf-mono); font-size: 12.5px; line-height: 1.7;
  border-radius: 10px; border: 1px solid var(--border);
  padding: 16px; background: var(--bg); color: var(--text-2);
}
.pdf-tool .prose h2 { color: var(--text); }
.pdf-tool .prose code { font-family: var(--pdf-mono); font-size: .88em; background: var(--panel2); padding: .14em .4em; border-radius: 4px; }

/* ---------------- Toast（挂在 body 下，工具页脚本弹出） ---------------- */
.toast {
  position: fixed; bottom: 26px; left: 50%; transform: translate(-50%, 20px);
  background: var(--panel); color: var(--text);
  border: 1px solid var(--border);
  padding: 11px 20px; border-radius: 10px;
  font-size: 13.5px; font-family: var(--pdf-mono);
  opacity: 0; pointer-events: none; transition: all .25s; z-index: 99; max-width: 88vw;
  box-shadow: 0 18px 46px -14px rgba(0, 0, 0, .55);
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.bad { border-color: var(--red); color: var(--red); }

@media (max-width: 680px) {
  .pdf-tool .stepper li { font-size: 9px; letter-spacing: .08em; }
  .pdf-tool .opt-row input[type="text"] { min-width: 100%; }
}
