*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Arial,sans-serif;background:#f4f6f9;color:#1a1a2e;min-height:100vh}.app-header{background:linear-gradient(135deg,#1F3864,#2a5298);color:white;padding:24px 40px;display:flex;align-items:center;gap:16px}.app-header h1{font-size:22px;font-weight:600}.app-header .subtitle{font-size:13px;opacity:.7;margin-top:2px}.shield{font-size:32px}.container{max-width:800px;margin:40px auto;padding:0 20px}.card{background:white;border-radius:12px;padding:32px;box-shadow:0 2px 12px rgba(0,0,0,.06);margin-bottom:24px}.card h2{font-size:18px;color:#1F3864}.card h2,.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;color:#444;margin-bottom:4px}.form-group .hint{font-size:11px;color:#999;margin-top:2px}input,textarea{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;transition:border .2s}input:focus,textarea:focus{outline:none;border-color:#2a5298;box-shadow:0 0 0 3px rgba(42,82,152,.1)}textarea{resize:vertical;min-height:60px}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:#1F3864;color:white}.btn-primary:hover{background:#2a5298;transform:translateY(-1px)}.btn-primary:disabled{background:#999;cursor:not-allowed;transform:none}.btn-secondary{background:#e9ecef;color:#333}.btn-secondary:hover{background:#dee2e6}.candidate-list{display:flex;flex-direction:column;gap:12px}.candidate-card{border:2px solid #e9ecef;border-radius:10px;padding:16px 20px;cursor:pointer;transition:all .2s}.candidate-card:hover{border-color:#2a5298;background:#f8f9ff}.candidate-card.selected{border-color:#1F3864;background:#eef2ff}.candidate-card .name{font-size:16px;font-weight:600;color:#1F3864}.candidate-card .role{font-size:13px;color:#666;margin-top:2px}.candidate-card .details{font-size:12px;color:#888;margin-top:6px}.candidate-card .confidence{display:inline-block;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:600;margin-top:6px}.confidence-HIGH{background:#d4edda;color:#155724}.confidence-MEDIUM{background:#fff3cd;color:#856404}.confidence-LOW{background:#f8d7da;color:#721c24}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;color:#666}.progress-header .elapsed{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.progress-bar-track{width:100%;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden;margin-bottom:20px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#1F3864,#2a5298);border-radius:4px;transition:width .6s ease;position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.step-list{display:flex;flex-direction:column;gap:8px}.step{padding:12px 16px;background:#f8f9fa;border-radius:8px;font-size:14px;transition:background .3s}.step.running{background:#fffdf5;border-left:3px solid #ff9800}.step.completed{background:#f6fff6;border-left:3px solid #28a745}.step.failed{background:#fff6f6;border-left:3px solid #dc3545}.step .step-header{display:flex;align-items:center;gap:12px}.step .step-info{flex:1 1;min-width:0}.step .step-info strong{display:block}.step .step-sub{font-size:12px;color:#888}.step .step-timing{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;min-width:70px;text-align:right}.step .step-elapsed{font-size:14px;font-weight:600;color:#1F3864;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.step .step-est{font-size:11px;color:#999}.step .step-activity{display:block;font-size:12px;color:#2a5298;font-weight:500;margin-top:3px}.step .icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:15px;flex-shrink:0;font-weight:600}.step.pending .icon{background:#e9ecef;color:#aaa}.step.running .icon{background:#ff9800;color:#fff}.step.completed .icon{background:#28a745;color:#fff}.step.failed .icon{background:#dc3545;color:#fff}.step.running .icon:after{content:"\27F3";font-size:18px;animation:spin 1.5s linear infinite}.step.completed .icon:after{content:"\2713"}.step.failed .icon:after{content:"\2717"}.step-log{margin-top:8px;padding:8px 12px;background:#1a1a2e;color:#a8d8a8;border-radius:6px;font-family:Consolas,Monaco,monospace;font-size:11px;line-height:1.6;max-height:180px;overflow-y:auto}.step-log .log-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-log .log-line.url{color:#7ec8e3}.step-log .log-line.search{color:#f0c674}.step-log .log-line.info{color:#a8d8a8}.search-loading{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#f0f4ff;border-radius:10px;border:1px solid #d6e0f5}.search-loading .search-spinner-ring{width:28px;height:28px;border:3px solid #d6e0f5;border-top-color:#1f3864;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.search-loading .search-loading-text{font-size:14px;color:#1F3864;font-weight:500}.search-loading .search-loading-sub{font-size:12px;color:#666;margin-top:2px}.search-loading .search-elapsed{margin-left:auto;font-size:13px;color:#888;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.spinner{display:inline-block;width:18px;height:18px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error-msg{background:#f8d7da;color:#721c24;padding:12px 16px;border-radius:8px;font-size:13px}