body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif}#root{width:100%;min-height:100vh}:root{--bg:#f7f7f5;--card:#fff;--card-hover:#fafaf9;--text:#1a1a1a;--text-secondary:#6b7280;--text-muted:#9ca3af;--border:#e5e5e0;--border-light:#f0f0eb;--accent:#1a1a1a;--accent-hover:#333;--good:#059669;--good-bg:#ecfdf5;--warn:#d97706;--warn-bg:#fffbeb;--bad:#dc2626;--bad-bg:#fef2f2;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,Helvetica Neue,sans-serif;line-height:1.6}.app{max-width:760px;min-height:100vh;margin:0 auto;padding:20px 20px 60px}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;letter-spacing:.01em;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 24px;font-size:15px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.995)}.btn-primary:disabled{cursor:not-allowed;background:#d1d5db;transform:none}.btn-outline{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:8px 18px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn-outline:hover{background:var(--card-hover);border-color:#ccc}.error-msg{color:var(--bad);background:var(--bad-bg);border-radius:var(--radius);border:1px solid #fecaca;margin-bottom:16px;padding:10px 14px;font-size:13px}.loading-text{text-align:center;color:var(--text-secondary);padding:48px 20px;font-size:14px}.home-header{text-align:center;padding:48px 0 32px}.home-header h1{color:var(--text);letter-spacing:-.02em;margin-bottom:8px;font-size:32px;font-weight:700}.home-header .subtitle{color:var(--text-secondary);max-width:400px;margin:0 auto;font-size:15px;line-height:1.7}.upload-section{background:var(--card);border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;box-shadow:var(--shadow-sm);margin-bottom:24px;padding:32px 20px;transition:all .2s}.upload-section:hover,.upload-section.drag-over{background:var(--card-hover);border-color:#999}.upload-section.has-file{border-style:solid;border-color:var(--border);background:var(--card-hover)}.upload-icon{margin-bottom:10px;font-size:32px;display:block}.upload-title{margin-bottom:4px;font-size:15px;font-weight:600}.upload-hint{color:var(--text-muted);margin-bottom:12px;font-size:13px}.upload-formats{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.format-badge{color:var(--text-secondary);background:var(--bg);border:1px solid var(--border-light);border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500}.file-info{justify-content:center;align-items:center;gap:10px;margin-top:10px;display:flex}.file-name{font-size:14px;font-weight:500}.file-remove{color:var(--text-muted);cursor:pointer;font-size:12px;text-decoration:underline}.file-remove:hover{color:var(--bad)}.resume-preview{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);max-height:100px;box-shadow:var(--shadow-sm);margin-bottom:24px;padding:12px 14px;position:relative;overflow:hidden}.resume-preview p{color:var(--text-secondary);white-space:pre-wrap;font-size:13px;line-height:1.5}.resume-preview:after{content:"";background:linear-gradient(transparent, var(--card));height:30px;position:absolute;bottom:0;left:0;right:0}.job-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px}.job-section h2{color:var(--text);margin-bottom:16px;font-size:15px;font-weight:600}.job-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}@media (width<=480px){.job-grid{grid-template-columns:repeat(2,1fr)}}.job-card{background:var(--bg);border:1.5px solid var(--border-light);border-radius:var(--radius);cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;padding:12px 14px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.job-card:hover{color:var(--text);border-color:#bbb}.job-card.selected{border-color:var(--accent);color:var(--accent);background:#fafaf9;font-weight:600}.job-icon{flex-shrink:0;font-size:18px}.pressure-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px}.pressure-section h2{color:var(--text);margin-bottom:16px;font-size:15px;font-weight:600}.pressure-grid{flex-direction:column;gap:8px;display:flex}.pressure-card{background:var(--bg);border:1.5px solid var(--border-light);border-radius:var(--radius);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.pressure-card:hover{border-color:#bbb}.pressure-card.selected{border-color:var(--accent);background:#fafaf9}.pressure-name{color:var(--text);flex-shrink:0;min-width:72px;font-size:14px;font-weight:600}.pressure-card.selected .pressure-name{color:var(--accent)}.pressure-desc{color:var(--text-muted);font-size:13px}.pressure-card.selected .pressure-desc{color:var(--text-secondary)}.features-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;display:grid}@media (width<=480px){.features-row{grid-template-columns:1fr}}.feature-item{text-align:center;color:var(--text-secondary);padding:20px 14px}.feature-item .ficon{margin-bottom:6px;font-size:22px;display:block}.feature-item strong{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:600;display:block}.feature-item span{font-size:12px;line-height:1.5}.interview{flex-direction:column;height:100vh;max-height:100vh;display:flex}.interview-header{justify-content:space-between;align-items:center;padding:14px 0;display:flex}.back-link{color:var(--text-secondary);cursor:pointer;font-size:13px;text-decoration:none;transition:color .15s}.back-link:hover{color:var(--text)}.interview-meta{align-items:center;gap:10px;display:flex}.meta-badge{color:var(--text-secondary);background:var(--bg);border:1px solid var(--border-light);border-radius:4px;padding:4px 10px;font-size:12px;font-weight:500}.meta-progress{color:var(--text-muted);font-size:12px;font-weight:500}.progress-track{background:var(--border);border-radius:1px;height:2px;margin-bottom:16px}.progress-fill{background:var(--accent);border-radius:1px;height:100%;transition:width .35s}.chat-area{flex:1;padding:8px 0 20px;overflow-y:auto}.message{gap:12px;margin-bottom:24px;display:flex}.message.user{flex-direction:row-reverse}.msg-avatar{border:1px solid var(--border-light);background:var(--card);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;display:flex}.message.interviewer .msg-avatar{background:#fafaf9}.message.user .msg-avatar{color:#fff;background:#1a1a1a;border:none}.msg-bubble{border-radius:14px;max-width:75%;padding:14px 18px;font-size:14px;line-height:1.7}.message.interviewer .msg-bubble{background:var(--card);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-top-left-radius:4px}.message.user .msg-bubble{background:var(--accent);color:#fff;border-top-right-radius:4px}.msg-bubble .speaker-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.message.user .msg-bubble .speaker-tag{color:#fff9}.msg-bubble p{white-space:pre-wrap;word-break:break-word}.msg-loading{color:var(--text-muted);font-size:13px;font-style:italic}.input-area{border-top:1px solid var(--border);background:var(--bg);padding:14px 0 6px}.input-row{align-items:flex-end;gap:10px;display:flex}.input-row textarea{border:1px solid var(--border);border-radius:var(--radius);resize:none;background:var(--card);flex:1;padding:11px 14px;font-family:inherit;font-size:14px;line-height:1.5}.input-row textarea:focus{border-color:#aaa;outline:none;box-shadow:0 0 0 3px #0000000d}.btn-send{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;padding:11px 22px;font-size:14px;font-weight:600;transition:all .15s}.btn-send:hover{background:var(--accent-hover)}.btn-send:disabled{cursor:not-allowed;background:#d1d5db}.btn-report{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;padding:13px;font-size:15px;font-weight:600;transition:all .15s}.btn-report:hover{background:var(--accent-hover)}.report-nav{justify-content:space-between;padding:14px 0 20px;display:flex}.score-hero{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:36px 28px}.score-ring{border:4px solid;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:110px;height:110px;margin:0 auto 14px;display:flex}.score-value{font-size:38px;font-weight:700;line-height:1}.score-level{color:var(--text-secondary);font-size:12px;font-weight:500}.score-summary{color:var(--text-secondary);max-width:420px;margin:0 auto;font-size:14px;line-height:1.7}.dimensions-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.dimensions-card h3{color:var(--text);margin-bottom:18px;font-size:15px;font-weight:600}.dim-item:not(:last-child){margin-bottom:18px}.dim-top{justify-content:space-between;margin-bottom:8px;display:flex}.dim-name{color:var(--text);font-size:14px;font-weight:500}.dim-score{font-size:16px;font-weight:700}.dim-track{background:var(--border-light);border-radius:2px;height:4px;margin-bottom:6px;overflow:hidden}.dim-fill{border-radius:2px;height:100%;transition:width .5s}.dim-comment{color:var(--text-secondary);font-size:13px;line-height:1.5}.insights-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=480px){.insights-grid{grid-template-columns:1fr}}.insight-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 22px}.insight-box h3{align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.insight-box ul{padding-left:18px}.insight-box li{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:1.5}
