/* blacklist.html 页面样式（由内联样式抽离，版本 20260909-1） */
        :root {
            --primary: #2563eb;
            --primary-dark: #1d4ed8;
            --danger: #dc2626;
            --danger-dark: #b91c1c;
            --warning: #d97706;
            --success: #059669;
            --text: #0f172a;
            --text-2: #475569;
            --text-3: #64748b;
            --line: #e2e8f0;
            --line-2: #cbd5e1;
            --bg: #f8fafc;
            --white: #fff;
            --soft-red: #fef2f2;
            --soft-blue: #eff6ff;
            --shadow: 0 18px 50px rgba(15, 23, 42, .10);
            --radius: 8px;
        }

        * { box-sizing: border-box; }
        html { scroll-behavior: smooth; }
        body {
            margin: 0;
            color: var(--text);
            background: var(--bg);
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
            line-height: 1.5;
        }
        a { color: inherit; text-decoration: none; }
        button, input { font: inherit; }
        button { cursor: pointer; }
        .page-wrap { width: min(1400px, calc(100% - 32px)); margin: 0 auto; }

        .query-hero {
            padding: 56px 0 42px;
            background:
                linear-gradient(180deg, #fff 0%, #f8fafc 78%),
                radial-gradient(circle at 20% 0%, rgba(220,38,38,.10), transparent 32%);
        }
        .hero-title {
            margin: 0;
            text-align: center;
            font-size: clamp(30px, 5vw, 48px);
            line-height: 1.14;
            letter-spacing: 0;
        }
        .hero-sub {
            max-width: 720px;
            margin: 14px auto 26px;
            text-align: center;
            color: var(--text-2);
            font-size: 16px;
        }

        .query-panel {
            width: min(100%, 1400px);
            margin: 0 auto;
            padding: 24px;
            border: 1px solid var(--line);
            border-radius: var(--radius);
            background: var(--white);
            box-shadow: var(--shadow);
        }
        .form-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 14px;
        }
        .field { min-width: 0; }
        .field label {
            display: flex;
            align-items: center;
            gap: 7px;
            margin-bottom: 8px;
            color: var(--text-2);
            font-size: 13px;
            font-weight: 800;
        }
        .field label svg { width: 16px; height: 16px; color: var(--danger); }
        .input-wrap {
            position: relative;
            height: 48px;
            border: 1px solid var(--line-2);
            border-radius: 8px;
            background: #fff;
            transition: border-color .18s, box-shadow .18s;
        }
        .input-wrap:focus-within {
            border-color: var(--danger);
            box-shadow: 0 0 0 3px rgba(220,38,38,.10);
        }
        .input-wrap.err {
            border-color: var(--danger);
            background: #fff7f7;
        }
        .input-wrap input {
            width: 100%;
            height: 100%;
            border: 0;
            outline: 0;
            padding: 0 13px;
            color: var(--text);
            background: transparent;
            font-size: 15px;
        }
        .input-wrap input::placeholder { color: #94a3b8; }
        .err-msg {
            display: none;
            margin-top: 6px;
            color: var(--danger);
            font-size: 12px;
        }
        .err-msg.show { display: block; }
        .action-row {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            margin-top: 20px;
            flex-wrap: wrap;
        }
        .btn {
            min-height: 44px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            border: 0;
            border-radius: 8px;
            padding: 0 20px;
            font-weight: 800;
            transition: transform .18s, box-shadow .18s, background .18s;
        }
        .btn svg { width: 18px; height: 18px; flex: 0 0 auto; }
        .btn-primary {
            min-width: 176px;
            color: #fff;
            background: var(--danger);
            box-shadow: 0 12px 24px rgba(220,38,38,.20);
        }
        .btn-primary:hover { background: var(--danger-dark); transform: translateY(-1px); }
        .btn-primary:disabled { opacity: .72; transform: none; cursor: not-allowed; }
        .btn-ghost {
            border: 1px solid var(--line);
            color: var(--text-2);
            background: #fff;
        }
        .btn-ghost:hover { color: var(--danger); border-color: #fecaca; background: var(--soft-red); }
        .btn .loader { display: none; }
        .btn.loading .loader { display: inline-block; }
        .btn.loading .txt { display: none; }

        .examples {
            display: flex;
            justify-content: center;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap;
        }
        .example-btn {
            height: 32px;
            border: 1px solid var(--line);
            border-radius: 8px;
            padding: 0 10px;
            color: var(--text-3);
            background: #fff;
            font-size: 12px;
            font-weight: 700;
        }
        .example-btn:hover { color: var(--danger); border-color: #fecaca; background: var(--soft-red); }

        .result-section { padding: 28px 0 62px; }
        .empty-state,
        .result-board {
            width: min(100%, 1400px);
            margin: 0 auto;
            border: 1px solid var(--line);
            border-radius: var(--radius);
            background: #fff;
        }
        .empty-state {
            padding: 42px 24px;
            text-align: center;
            color: var(--text-3);
        }
        .empty-icon {
            width: 56px;
            height: 56px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 12px;
            border-radius: 8px;
            color: var(--danger);
            background: var(--soft-red);
        }
        .empty-icon svg { width: 28px; height: 28px; }
        .empty-state h3 { margin: 0 0 8px; color: var(--text); font-size: 18px; }
        .empty-state p { margin: 0; }

        .result-board { display: none; overflow: hidden; box-shadow: var(--shadow); }
        .result-board.show { display: block; }
        .result-top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            padding: 18px 20px;
            border-bottom: 1px solid var(--line);
            background: #fff;
        }
        .result-title h2 { margin: 0; font-size: 19px; }
        .result-title p { margin: 4px 0 0; color: var(--text-3); font-size: 13px; }
        .result-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
        .mini-btn {
            height: 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            border: 1px solid var(--line);
            border-radius: 8px;
            padding: 0 12px;
            color: var(--text-2);
            background: #fff;
            font-size: 13px;
            font-weight: 800;
        }
        .mini-btn:hover { color: var(--danger); border-color: #fecaca; background: var(--soft-red); }
        .mini-btn svg { width: 15px; height: 15px; }

        .summary-grid {
            display: grid;
            grid-template-columns: 1.2fr repeat(3, minmax(0, .8fr));
            gap: 12px;
            padding: 18px 20px;
            background: #fbfdff;
        }
        .summary-card {
            min-height: 96px;
            padding: 16px;
            border: 1px solid var(--line);
            border-radius: 8px;
            background: #fff;
        }
        .summary-card.main { border-color: #fecaca; background: linear-gradient(180deg, #fff, #fff7f7); }
        .summary-card .k { color: var(--text-3); font-size: 12px; font-weight: 800; }
        .summary-card .v {
            margin-top: 8px;
            color: var(--text);
            font-size: 26px;
            font-weight: 900;
            line-height: 1.1;
        }
        .summary-card .s {
            margin-top: 7px;
            color: var(--text-3);
            font-size: 12px;
            word-break: break-all;
        }
        .risk-badge {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            height: 28px;
            margin-top: 8px;
            border-radius: 8px;
            padding: 0 10px;
            font-size: 13px;
            font-weight: 900;
        }
        .risk-badge.ok { color: #047857; background: #ecfdf5; }
        .risk-badge.danger { color: var(--danger-dark); background: var(--soft-red); }
        .risk-badge.warn { color: #92400e; background: #fffbeb; }
        .risk-dot {
            width: 8px;
            height: 8px;
            border-radius: 999px;
            background: currentColor;
        }

        .person-line {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 12px;
            padding: 0 20px 18px;
        }
        .info-item {
            padding: 13px 14px;
            border: 1px solid var(--line);
            border-radius: 8px;
            background: #fff;
            min-width: 0;
        }
        .info-item .k { color: var(--text-3); font-size: 12px; font-weight: 800; }
        .info-item .v {
            margin-top: 5px;
            color: var(--text);
            font-size: 15px;
            font-weight: 800;
            word-break: break-all;
        }
        .mono {
            font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
        }

        .table-block {
            margin: 0 20px 20px;
            border: 1px solid var(--line);
            border-radius: 8px;
            overflow: hidden;
            background: #fff;
        }
        .table-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 14px 16px;
            border-bottom: 1px solid var(--line);
        }
        .table-head h3 { margin: 0; font-size: 16px; }
        .table-head span { color: var(--text-3); font-size: 13px; }
        .source-section + .source-section { border-top: 1px solid var(--line); }
        .source-section > .table-head { background: #fff; }
        .table-scroll { overflow-x: auto; }
        table {
            width: 100%;
            border-collapse: collapse;
            min-width: 920px;
            font-size: 13px;
        }
        th, td {
            padding: 12px 14px;
            border-bottom: 1px solid #eef2f7;
            text-align: left;
            vertical-align: top;
        }
        th {
            color: var(--text-3);
            background: #f8fafc;
            font-size: 12px;
            font-weight: 900;
            white-space: nowrap;
        }
        td { color: var(--text-2); }
        tbody tr:last-child td { border-bottom: 0; }
        .case-code { color: var(--text); font-weight: 800; }
        .pill {
            display: inline-flex;
            align-items: center;
            height: 24px;
            border-radius: 8px;
            padding: 0 8px;
            font-size: 12px;
            font-weight: 900;
            white-space: nowrap;
        }
        .pill.danger { color: var(--danger-dark); background: var(--soft-red); }
        .pill.ok { color: var(--success); background: #ecfdf5; }
        .case-empty,
        .case-error {
            padding: 34px 18px;
            text-align: center;
            color: var(--text-3);
        }
        .case-empty b { color: var(--success); }
        .case-error b { color: var(--danger); }

        .toast {
            position: fixed;
            left: 50%;
            bottom: 28px;
            z-index: 1001;
            min-width: 180px;
            max-width: min(420px, calc(100vw - 32px));
            transform: translate(-50%, 18px);
            opacity: 0;
            pointer-events: none;
            border-radius: 8px;
            padding: 12px 16px;
            color: #fff;
            background: rgba(15,23,42,.92);
            text-align: center;
            font-size: 14px;
            transition: opacity .18s, transform .18s;
        }
        .toast.show { opacity: 1; transform: translate(-50%, 0); }

        @media (max-width: 920px) {
            .query-hero { padding-top: 36px; }
            .form-grid,
            .summary-grid,
            .person-line { grid-template-columns: 1fr; }
            .query-panel { padding: 18px; }
            .result-top { align-items: flex-start; flex-direction: column; }
            .result-actions { width: 100%; }
            .mini-btn { flex: 1; }
        }
        @media (max-width: 520px) {
            .page-wrap { width: min(100% - 24px, 1400px); }
            .hero-title { font-size: 28px; }
            .hero-sub { font-size: 14px; }
            .action-row .btn { width: 100%; }
        }

