.thsp{max-width:720px;margin:24px auto;padding:24px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(15,23,42,.06);font-family:inherit;color:#0f172a;box-sizing:border-box}
.thsp *{box-sizing:border-box}
.thsp [hidden]{display:none!important}
.thsp-drop{border:2px dashed #94a3b8;border-radius:12px;padding:44px 16px;text-align:center;cursor:pointer;transition:.15s;background:#f8fafc}
.thsp-drop:hover,.thsp-drop:focus,.thsp-drop.thsp-over{border-color:#2563eb;background:#eff6ff;outline:none}
.thsp-drop-icon{font-size:42px;line-height:1}
.thsp-drop-title{margin:10px 0 2px;font-size:18px;font-weight:600}
.thsp-drop-sub{margin:0;color:#64748b}
.thsp-file{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:#f1f5f9;border-radius:10px;margin-bottom:18px}
.thsp-filename{word-break:break-all}
.thsp-pages{display:inline-block;margin-left:8px;padding:2px 10px;background:#dbeafe;color:#1d4ed8;border-radius:999px;font-size:13px}
.thsp-link{background:none;border:0;color:#2563eb;cursor:pointer;text-decoration:underline;padding:0;font-size:14px}
.thsp-modes{border:0;margin:0;padding:0}
.thsp-modes legend{font-weight:600;margin-bottom:8px;padding:0}
.thsp-mode{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:8px;cursor:pointer}
.thsp-mode:hover{border-color:#93c5fd}
.thsp-mode small{color:#64748b}
.thsp-opt{margin:-2px 0 10px 4px;padding:10px 12px;background:#f8fafc;border-radius:10px}
.thsp-ranges,.thsp-chunk{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:16px}
.thsp-chunk{width:100px;margin-left:8px}
.thsp-check{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:14px}
.thsp-actions{margin-top:16px;text-align:center}
.thsp-btn{background:#2563eb;color:#fff;border:0;border-radius:10px;padding:12px 32px;font-size:17px;font-weight:600;cursor:pointer;transition:.15s}
.thsp-btn:hover{background:#1d4ed8}
.thsp-btn:disabled{opacity:.6;cursor:wait}
.thsp-msg{margin:14px 0 0;min-height:1.2em;text-align:center;font-size:15px}
.thsp-msg.thsp-err{color:#b91c1c}
.thsp-msg.thsp-ok{color:#15803d;font-weight:600}
.thsp-msg.thsp-info{color:#475569}
.thsp-note{margin:10px 0 0;text-align:center;font-size:13px;color:#64748b}
@media(max-width:480px){.thsp{padding:16px}.thsp-drop{padding:32px 12px}}
