/* ===== 工具箱（/tools/）—— 沿用 liuneng.v2.css 的变量与组件，只补工具页专用样式 ===== */
[hidden]{display:none!important}

.tb-hero{padding:56px 0 8px}
.tb-hero .ln-hero-sub{margin-bottom:0}
.tb-crumb{font-size:13px;color:var(--muted);margin-bottom:14px}
.tb-crumb a{color:#4b5563}
.tb-crumb a:hover{color:var(--ink)}

/* ── 工具列表 ── */
.tb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tb-tool{min-height:250px}
.tb-tool .ln-card-media{height:130px}
.tb-tool-desc{font-size:13px;color:#9aa0aa;line-height:1.6}
.tb-soon{background:#fff;color:var(--muted);border:1px dashed #d5d9e0;border-radius:var(--r-lg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:250px;text-align:center;padding:20px}
.tb-soon b{color:var(--ink);font-size:15px}

/* ── 工具主体 ── */
.tb-wrap{max-width:880px}
.tb-panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:24px}
/* 滚动定位时让出吸顶导航栏（64px）的高度，避免标题被遮住 */
.tb-panel{scroll-margin-top:84px}
.tb-panel + .tb-panel{margin-top:18px}
.tb-panel-title{font-size:16px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

.tb-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  border:1.5px dashed #cfd4dc;border-radius:var(--r);background:#fafbfc;padding:44px 20px;text-align:center;
  cursor:pointer;transition:.18s}
.tb-drop:hover,.tb-drop.dragover{border-color:#2563eb;background:#f5f8ff}
.tb-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.tb-drop-icon{width:56px;height:56px;border-radius:16px;background:var(--dark);color:#fff;display:flex;align-items:center;
  justify-content:center;font-weight:800;font-size:15px;letter-spacing:-.02em}
.tb-drop-title{font-size:16px;font-weight:700}
.tb-drop-sub{font-size:13px;color:var(--muted)}
.tb-private{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--green);
  background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;padding:4px 10px}

.tb-file{display:flex;align-items:center;gap:14px;background:#f8f9fb;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tb-file-badge{flex:0 0 auto;width:40px;height:40px;border-radius:10px;background:var(--dark);color:#fff;font-size:11px;
  font-weight:800;display:flex;align-items:center;justify-content:center}
.tb-file-main{flex:1;min-width:0}
.tb-file-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-file-meta{font-size:12px;color:var(--muted)}

.tb-options{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;margin-top:20px}
.tb-field-label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:8px}
.tb-field-label em{font-style:normal;font-weight:400;color:var(--muted)}
.tb-seg{display:flex;flex-wrap:wrap;gap:8px}
.tb-seg .ln-chip{border:1px solid var(--line);font-family:inherit;line-height:1.2}
.tb-seg .ln-chip small{display:block;font-size:11px;font-weight:400;opacity:.7;margin-top:2px}
.tb-input{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:14px;outline:none;
  transition:.15s;font-family:inherit;background:#fff}
.tb-input:focus{border-color:#b6bcc7;box-shadow:0 0 0 4px rgba(37,99,235,.08)}
.tb-range{width:100%;accent-color:#0b0b0c}
.tb-hint{font-size:12px;color:var(--muted);margin-top:6px}

.tb-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.tb-actions .ln-btn{font-family:inherit}
.ln-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}

.tb-err{margin-top:14px;color:var(--danger);font-size:13px;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 14px}

.tb-progress{height:8px;background:#eceef2;border-radius:999px;overflow:hidden}
.tb-progress-bar{height:100%;width:0;background:var(--grad);border-radius:999px;transition:width .2s}
.tb-progress-text{font-size:13px;color:var(--muted);margin-top:8px}

.tb-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.tb-page{background:#f8f9fb;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.tb-page-img{display:flex;align-items:center;justify-content:center;background:#eceef2;aspect-ratio:3/4;overflow:hidden}
.tb-page-img img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 1px 6px rgba(0,0,0,.12)}
.tb-page-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px}
.tb-page-no{font-size:13px;font-weight:600}
.tb-page-size{font-size:11px;color:var(--muted)}
.tb-page .ln-btn-sm{padding:7px 12px;font-size:12px}

.tb-faq{margin-top:18px}
.tb-faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-top:10px}
.tb-faq summary{cursor:pointer;font-weight:600;font-size:14px}
.tb-faq p{color:#4b5563;font-size:14px;margin:10px 0 0}

@media (max-width:900px){.tb-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media (max-width:640px){
  .tb-hero{padding:32px 0 4px}
  .tb-grid{grid-template-columns:1fr}
  .tb-options{grid-template-columns:1fr}
  .tb-panel{padding:18px}
  .tb-pages{grid-template-columns:repeat(2,1fr);gap:10px}
  .tb-actions .ln-btn{flex:1}
}
