:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{font-family:Noto Sans KR,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1f2328;background:#f0f2f5}*{box-sizing:border-box;margin:0}body{margin:0}.container{max-width:720px;margin:0 auto;padding:40px 20px 60px}header{text-align:center;margin-bottom:28px}header h1{font-size:26px;font-weight:700;margin-bottom:6px}header p{color:#666;font-size:15px}.card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px #0000000f}.upload-card{display:flex;flex-direction:column;gap:16px;align-items:center}.upload{display:flex;align-items:center;gap:12px}.file-label{display:inline-block;padding:10px 20px;background:#f0f2f5;border:1px dashed #ccc;border-radius:10px;cursor:pointer;font-size:14px;color:#444;transition:background .2s}.file-label:hover{background:#e4e7ec}.file-name{font-size:13px;color:#888}.preview{width:100%;max-width:400px;border-radius:12px;border:1px solid #e5e7eb}button{background:#111827;color:#fff;border:none;padding:12px 32px;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;transition:opacity .2s}button:hover:not(:disabled){opacity:.85}button:disabled{opacity:.5;cursor:not-allowed}.error{color:#dc2626;font-size:14px}.candidates-section{margin-top:20px;text-align:center}.candidates-title{font-size:20px;font-weight:700;margin-bottom:6px}.candidates-subtitle{font-size:14px;color:#666;margin-bottom:16px}.candidates-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.candidate-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;border:2px solid #e5e7eb;border-radius:14px;padding:20px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.candidate-card:hover{border-color:#6366f1;box-shadow:0 4px 16px #6366f126}.candidate-name{font-size:17px;font-weight:700;color:#1f2328;margin-bottom:2px}.candidate-name-en{font-size:13px;color:#888;margin-bottom:10px}.candidate-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.candidate-meta span{font-size:12px;padding:3px 10px;background:#f0f2f5;border-radius:20px;color:#555}.candidate-brief{font-size:13px;line-height:1.5;color:#555;margin-bottom:12px;flex:1}.candidate-confidence{width:100%;display:flex;align-items:center;gap:8px}.confidence-bar{flex:1;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.confidence-fill{height:100%;background:#6366f1;border-radius:3px;transition:width .3s}.confidence-label{font-size:12px;color:#888;white-space:nowrap}.loading-section{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:32px}.loading-spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:14px;color:#666}.report{background:#fff;border-radius:16px;padding:32px;margin-top:20px;box-shadow:0 2px 12px #0000000f}.report-header{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #e5e7eb}.report-title{font-size:22px;font-weight:700;line-height:1.3;flex:1}.badge{display:inline-block;padding:4px 12px;background:#fef3c7;color:#92400e;font-size:13px;font-weight:600;border-radius:20px;white-space:nowrap}.report-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.meta-item{background:#f8f9fb;padding:14px 16px;border-radius:10px}.meta-label{display:block;font-size:12px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.meta-value{font-size:16px;font-weight:500;color:#1f2328}.report-section{margin-bottom:20px}.report-section h3{font-size:15px;font-weight:700;color:#374151;margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid #e5e7eb}.report-section p{font-size:15px;line-height:1.75;color:#374151}.key-points{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.key-points li{padding:10px 14px;background:#f8f9fb;border-radius:8px;font-size:14px;line-height:1.5;color:#374151;border-left:3px solid #6366f1}.disclaimer{margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb;font-size:12px;color:#9ca3af;text-align:center}.reset-btn{display:block;margin:24px auto 0;background:#f0f2f5;color:#374151;font-size:14px;padding:10px 24px}.reset-btn:hover{background:#e4e7ec}footer{text-align:center;margin-top:28px;color:#9ca3af;font-size:13px}@media(max-width:480px){.container{padding:20px 16px 40px}.report{padding:20px}.report-meta{grid-template-columns:1fr}.report-title{font-size:19px}.candidates-grid{grid-template-columns:1fr}.candidate-card{padding:16px}}
