:root{font-family:system-ui,sans-serif;line-height:1.5;color:#0f172a;background:#f8fafc}*{box-sizing:border-box}body{margin:0;overflow-x:hidden}#root{max-width:100vw;overflow-x:hidden}.app{max-width:1200px;width:100%;margin:0 auto;padding:2rem;overflow-x:hidden}header h1{margin:0 0 .25rem}.header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.auth-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8125rem}.guest-hint{color:#64748b;max-width:220px}.auth-email{color:#334155;font-weight:500}.btn-secondary,.btn-primary-outline{padding:.4rem .75rem;border-radius:6px;font-size:.8125rem;cursor:pointer;border:1px solid #cbd5e1;background:#fff;color:#334155}.btn-primary-outline{border-color:#2563eb;color:#2563eb}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.auth-modal{background:#fff;border-radius:8px;padding:1.25rem;width:100%;max-width:360px;display:flex;flex-direction:column;gap:.75rem}.auth-modal h2{margin:0;font-size:1.125rem}.auth-modal label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.auth-modal input{padding:.5rem .75rem;border:1px solid #cbd5e1;border-radius:6px}.auth-modal-actions{display:flex;flex-direction:column;gap:.5rem}.auth-modal-actions button[type=submit]{padding:.55rem 1rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer}.auth-error{color:#dc2626;font-size:.8125rem;margin:0}.history-panel{margin:0 0 1rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.history-panel h3{margin:0 0 .75rem;font-size:1rem}.history-empty{color:#64748b;font-size:.875rem;margin:0}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;max-height:320px;overflow-y:auto}.history-row{display:flex;gap:.35rem;align-items:stretch}.history-item{flex:1;min-width:0;text-align:left;padding:.5rem .65rem;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;cursor:pointer;display:flex;flex-direction:column;gap:.15rem}.history-options{font-size:.7rem;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-actions{display:flex;flex-direction:column;gap:.2rem;flex-shrink:0}.btn-icon{padding:.25rem .4rem;font-size:.75rem;border:1px solid #e2e8f0;border-radius:4px;background:#fff;cursor:pointer;line-height:1}.btn-icon:hover{border-color:#2563eb;background:#eff6ff}.btn-icon-danger:hover{border-color:#dc2626;background:#fef2f2}.depth-label-row{display:inline-flex;align-items:center;gap:.35rem}.hint-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:50%;background:#e2e8f0;color:#475569;font-size:.7rem;font-weight:700;cursor:help}.sort-select{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:#475569}.sort-select select{padding:.25rem .4rem;border:1px solid #e2e8f0;border-radius:4px;font-size:.8125rem}.btn-sm{padding:.2rem .5rem;font-size:.75rem}.history-item:hover{border-color:#2563eb;background:#eff6ff}.history-url{font-size:.875rem;color:#0f172a;word-break:break-all}.history-meta{font-size:.75rem;color:#64748b}.settings-save-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.scan-form{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;margin:1.5rem 0;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.scan-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.scan-form input[type=url]{min-width:320px;padding:.5rem .75rem}.scan-form button{padding:.55rem 1.25rem;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer}.scan-form button:disabled{opacity:.6;cursor:not-allowed}.scan-options{flex:1 1 100%;font-size:.875rem;margin-top:.25rem}.scan-options summary{cursor:pointer;color:#2563eb;-webkit-user-select:none;user-select:none}.option-presets{display:flex;gap:.5rem;margin:.75rem 0}.option-filters{margin:0 0 .75rem;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px}.option-filters legend{font-size:.75rem;font-weight:600;color:#64748b;padding:0 .25rem}.option-slider{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem;font-size:.8125rem;color:#334155}.option-slider input[type=range]{width:100%;accent-color:#2563eb}.option-hint{margin:.5rem 0 0;font-size:.75rem;color:#94a3b8}.preset-btn{padding:.35rem .75rem;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;cursor:pointer;font-size:.8125rem}.preset-btn-fast{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem 1.25rem}.option-grid fieldset{margin:0;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px}.option-grid legend{font-size:.75rem;font-weight:600;color:#64748b;padding:0 .25rem}.option-grid label{display:flex;flex-direction:row;align-items:center;gap:.4rem;font-size:.8125rem;margin-top:.35rem;cursor:pointer}.option-grid label.option-sub{margin-left:.75rem;color:#475569}.option-key{display:flex;flex-direction:column;gap:.25rem;margin:.35rem 0 .5rem 1.5rem;font-size:.75rem;color:#64748b}.option-key input{padding:.35rem .5rem;border:1px solid #cbd5e1;border-radius:4px;font-size:.8125rem;font-family:ui-monospace,monospace}.key-hint{color:#16a34a;font-weight:400}.scan-mode-tag{font-size:.75rem;color:#64748b;margin-left:.5rem;font-weight:400}.filters{display:flex;gap:.5rem;flex-wrap:wrap}.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem}.view-controls{display:flex;gap:.5rem;flex-wrap:wrap}.view-controls button{padding:.4rem .9rem;border:1px solid #cbd5e1;background:#fff;border-radius:6px;cursor:pointer;font-size:.875rem}.view-controls button.active{background:#0f172a;color:#fff;border-color:#0f172a}.view-controls .btn-copy{background:#2563eb;color:#fff;border-color:#2563eb}.view-controls .btn-copy:disabled{opacity:.5;cursor:not-allowed}.results-panel{min-width:0;max-width:100%;overflow:hidden}.table-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.results-table{--results-cols: minmax(4.5rem, .5fr) 3.75rem minmax(0, 1.1fr) minmax(0, 1.6fr) minmax(4.5rem, .55fr) minmax(4.5rem, .55fr);display:grid;grid-template-columns:var(--results-cols);width:100%;min-width:0;max-width:100%;font-size:.8rem}.results-table-head,.results-table-body,.results-table-row{display:contents}.results-table [role=columnheader],.results-table [role=cell]{min-width:0;padding:.6rem .75rem;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}.results-table [role=columnheader]{background:#f8fafc;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.results-table [role=cell]{background:#fff}.results-table-row{cursor:pointer}.results-table-row:hover>[role=cell]{background:#f1f5f9}.results-table .row-danger>[role=cell]{background:#fef2f2}.results-table .row-danger:hover>[role=cell]{background:#fee2e2}.results-table .row-warning>[role=cell]{background:#fffbeb}.results-table .row-warning:hover>[role=cell]{background:#fef3c7}.results-table .cell-risk{white-space:nowrap}.results-table .cell-thumb{padding:.35rem .5rem}.results-table .cell-thumb a{display:block;line-height:0}.results-table .cell-thumb img{width:48px;height:48px;object-fit:cover;border-radius:4px;background:#f1f5f9;border:1px solid #e2e8f0}.results-table .cell-page{overflow:hidden}.results-table .cell-page a{display:block;max-width:100%;color:#2563eb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results-table .cell-action{white-space:nowrap}.results-table .btn-link{display:inline-block;padding:.25rem .55rem;font-size:.75rem;line-height:1.2;border:1px solid #2563eb;border-radius:4px;color:#2563eb;text-decoration:none;background:#fff}.results-table .btn-link:hover{background:#eff6ff}.results-table .cell-reasons{overflow:hidden;max-width:100%;word-break:break-all}.results-table .cell-reasons-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere;word-break:break-all;line-height:1.35;max-width:100%}.filters button{padding:.4rem .9rem;border:1px solid #cbd5e1;background:#fff;border-radius:999px;cursor:pointer}.filters button.active{background:#0f172a;color:#fff;border-color:#0f172a}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.card{content-visibility:auto;contain-intrinsic-size:auto 260px;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #00000014;cursor:pointer;border:3px solid transparent}.card.safe{border-color:#22c55e}.card.warning{border-color:#eab308}.card.danger{border-color:#ef4444}.card.suspect{border-color:#f97316}.card.dmca_protected{border-color:#3b82f6}.card.dmca_violation{border-color:#dc2626}.card.piracy_blacklist{border-color:#7f1d1d}.card img{width:100%;height:160px;object-fit:cover;display:block;background:#e2e8f0}.card-body{padding:.75rem;font-size:.8rem}.card.pending{border-color:#94a3b8;opacity:.85}.card.card-new{animation:fadeIn .35s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.badge.pending{background:#94a3b8;color:#fff}.card-url{margin-top:8px;word-break:break-all;font-size:inherit}.card-hint{margin:6px 0 0;font-size:.72rem;color:#b45309;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card.danger .card-hint{color:#b91c1c}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;color:#fff}.badge.safe{background:#22c55e}.badge.warning{background:#eab308;color:#422006}.badge.danger{background:#ef4444}.badge.suspect{background:#f97316}.badge.dmca_protected{background:#3b82f6}.badge.dmca_violation{background:#dc2626}.badge.piracy_blacklist{background:#7f1d1d}.badge.ai_generated{background:#a855f7}.ai-box{margin:0 0 1rem;padding:.75rem 1rem;background:#faf5ff;border:1px solid #e9d5ff;border-radius:6px;font-size:.875rem}.ai-box h3{margin:0 0 .5rem;font-size:.9rem}.evidence-empty{margin:0 0 1rem;padding:.75rem 1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#64748b}.card.ai_generated{border-color:#a855f7}.dmca-box{margin:0 0 1rem;padding:.75rem 1rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;font-size:.875rem}.dmca-box h3{margin:0 0 .5rem;font-size:.9rem}.dmca-list{margin:0;padding-left:1.25rem}.reconnect-notice{margin:0 0 1rem;padding:.65rem 1rem;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;font-size:.875rem;color:#78350f}.reconnect-notice .link-btn{margin-left:.75rem;padding:0;border:none;background:none;color:#92400e;text-decoration:underline;cursor:pointer;font:inherit}.progress{margin:1rem 0;padding:1rem;background:#eff6ff;border-radius:8px}.progress-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;font-size:.9rem}.scan-target-url{color:#475569;max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-bar{height:6px;background:#cbd5e1;border-radius:999px;margin-top:.75rem;overflow:hidden}.progress-fill{height:100%;background:#2563eb;transition:width .3s ease}.status-pill{padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;background:#dbeafe;color:#1e40af}.status-pill.paused{background:#fef3c7;color:#92400e}.status-pill.cancelled,.status-pill.failed{background:#fee2e2;color:#991b1b}.status-pill.done{background:#dcfce7;color:#166534}.pending-count{color:#64748b;font-size:.85rem}.checking-pulse{color:#2563eb;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.progress-hint{margin:.35rem 0 0;font-size:.8rem;color:#64748b}.card-checking{opacity:.92;border-color:#94a3b8!important}.card-checking .badge.pending{animation:pulse 1.5s ease-in-out infinite}.reasons-box.no-search{background:#fff7ed;border-color:#fdba74}.no-search-note{margin:0 0 .5rem;font-size:.85rem;color:#9a3412}.scan-controls{display:flex;gap:.5rem;margin-top:.75rem}.scan-controls button{padding:.4rem 1rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer}.scan-controls button:disabled{opacity:.5;cursor:not-allowed}.scan-controls .btn-stop{border-color:#fca5a5;color:#b91c1c}.error-msg{color:#b91c1c;margin:.5rem 0 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000007f;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.modal{background:#fff;border-radius:12px;max-width:min(960px,96vw);width:100%;max-height:90vh;overflow-x:hidden;overflow-y:auto;padding:1.5rem}.modal-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.modal-header h2{margin:0;font-size:1.15rem}.reasons-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;overflow:hidden}.reasons-box.danger{background:#fef2f2;border-color:#fecaca}.reasons-box h3{margin:0 0 .5rem;font-size:.9rem}.reasons-box ul{margin:0;padding-left:1.25rem;font-size:.875rem;line-height:1.5}.reasons-box li{overflow-wrap:anywhere;word-break:break-word}.modal-link{display:block;font-size:.75rem;line-height:1.4;color:#2563eb;overflow-wrap:anywhere;word-break:break-word;margin-top:.5rem;text-decoration:none}.modal-link:hover{text-decoration:underline}.engine-title{margin:.35rem 0 0;font-size:.85rem;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}.compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-width:0}.compare-triple{grid-template-columns:repeat(3,minmax(0,1fr))}.compare-col{min-width:0;overflow:hidden}.compare-col h3{margin:0 0 .5rem;font-size:.9rem}.engine-type{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;background:#e2e8f0;padding:.15rem .45rem;border-radius:4px;margin-bottom:.35rem;max-width:100%;overflow-wrap:anywhere}.engine-match-kind{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;margin-bottom:.35rem}.engine-match-kind.kind-exact{background:#fee2e2;color:#991b1b}.engine-match-kind.kind-similar{background:#fef3c7;color:#92400e}.engine-match-kind.kind-unverified{background:#f1f5f9;color:#475569}.engine-meta{font-size:.75rem;color:#64748b;margin-top:.35rem}.engine-empty{color:#94a3b8;font-size:.875rem;margin:0}.preview-placeholder{background:#e2e8f0;min-height:120px;border-radius:6px}.compare .preview-placeholder{min-height:200px}.compare img{width:100%;max-width:100%;max-height:280px;object-fit:contain;background:#f1f5f9;border-radius:6px}@media(max-width:768px){.compare,.compare-triple{grid-template-columns:1fr}}
