: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}.card{padding:2em}#app{width:100%}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}.risk-filter-container{margin:20px 0;padding:16px;background-color:#fff;border-radius:8px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #00000014}.filter-label{font-weight:600;margin-bottom:12px;display:block;font-size:14px;color:#1e293b;letter-spacing:.2px}.risk-filter-options{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.risk-filter-option{display:flex;align-items:center;gap:6px;cursor:pointer;padding:8px 14px;border-radius:6px;background-color:#fff;border:1px solid #e2e8f0;transition:all .2s ease;position:relative;overflow:visible}.risk-filter-option:hover{background-color:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 2px 4px #00000014}.risk-filter-option:active{transform:translateY(0)}.risk-filter-option input[type=checkbox]{width:16px;height:16px;accent-color:#4361ee;cursor:pointer}.risk-filter-option input[type=checkbox]:checked+span{font-weight:600}.risk-level-label{cursor:pointer;padding:0 8px}.drug-item-row{position:relative;cursor:pointer}.drug-risk-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:1000;margin-top:8px;width:300px;max-width:90vw}.tooltip-content{background-color:#000000d9;color:#fff;padding:12px;border-radius:8px;word-wrap:break-word;white-space:normal;max-width:100%;box-shadow:0 4px 12px #00000026;font-size:14px;line-height:1.5}.tooltip-title{font-weight:600;margin-bottom:6px;color:gold}.tooltip-text{color:#f0f0f0;word-wrap:break-word;white-space:normal;max-width:100%}.risk-description-banner{padding:12px;margin-bottom:12px;background-color:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.risk-description-item{display:flex;flex-wrap:wrap;align-items:flex-start;margin-bottom:8px;transition:all .2s ease;padding:8px;border-radius:6px;background-color:#fff}.risk-description-item:hover{transform:translate(4px);box-shadow:0 2px 8px #0000001f;background-color:#f1f5f9}.risk-description-item:last-child{margin-bottom:0}.risk-description-label{font-weight:600;margin-right:12px;min-width:100px;color:#334155;flex-shrink:0}.risk-description-text{font-size:14px;color:#64748b;line-height:1.5;flex:1;word-wrap:break-word;white-space:normal}.clear-filter-btn{padding:8px 16px;background-color:#4361ee;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease;align-self:flex-start}.clear-filter-btn:hover{background-color:#3a0ca3;transform:translateY(-1px);box-shadow:0 2px 4px #4361ee4d}.clear-filter-btn:active{transform:translateY(0)}body{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:20px 0}.file-upload input{display:none}.container{max-width:1200px;width:90%;margin:30px auto;background:#fff;border-radius:16px;box-shadow:0 8px 32px #1f26871a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.18);overflow:hidden}.header{background:linear-gradient(45deg,#4361ee,#3a0ca3);color:#fff;padding:25px 30px}.header h1{font-size:24px;font-weight:600;margin-bottom:8px}.header p{font-size:14px;opacity:.9}.content{padding:30px}.section{margin-bottom:40px;padding-bottom:20px;border-bottom:1px solid #f0f2f5}.section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.section h2{font-size:18px;color:#1f2937;margin-bottom:20px;display:flex;align-items:center}.section h2:before{content:"";display:inline-block;width:4px;height:20px;background:#4361ee;border-radius:2px;margin-right:10px}.upload-wrapper{position:relative}.file-upload{padding:40px 20px;border:2px dashed #d1d5db;border-radius:12px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#f9fafb}.file-upload:hover{border-color:#4361ee;background-color:#f3f4f6;transform:translateY(-2px)}.file-upload i{font-size:40px;color:#4361ee;margin-bottom:15px}.file-upload p{color:#4b5563;font-size:15px;margin-bottom:8px}.file-upload .tip{font-size:12px;color:#9ca3af}#pdfFile{display:none}.upload-tip{margin:15px 0;font-size:14px;color:#6b7280;height:20px;line-height:20px}.upload-tip.success{color:#10b981}.upload-tip.error{color:#ef4444}.upload-tip.info{color:#3b82f6}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;margin-right:12px}.btn-primary{background:#4361ee;color:#fff}.btn-primary:hover{background:#3a56d4;box-shadow:0 4px 12px #4361ee4d}.btn-primary:disabled{background:#94a3b8;color:#e2e8f0;cursor:not-allowed;box-shadow:none}.btn-secondary{background:#f3f4f6;color:#1f2937;border:1px solid #d1d5db}.btn-secondary:hover{background:#e5e7eb}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.result-card{margin-top:20px;padding:20px;border-radius:12px;background-color:#f8fafc;border:1px solid #e2e8f0;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-card .result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.result-card .result-title{font-size:16px;font-weight:500;color:#1e293b}.result-card .result-msg{font-size:14px;color:#10b981}.result-card .task-id{font-size:14px;color:#475569;margin-bottom:10px}.result-card .task-id span{color:#4361ee;font-weight:500;font-family:Courier New,monospace}.json-list{margin-top:15px;display:flex;flex-direction:column;gap:10px}.json-item{padding:12px 15px;background-color:#fff;border-radius:8px;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease;gap:20px}.json-item:hover{border-color:#4361ee;background-color:#f8fafc}.json-item .json-name{font-size:14px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.json-item .json-link{padding:6px 12px;background-color:#4361ee;color:#fff;border-radius:6px;font-size:13px;text-decoration:none;transition:all .2s ease}.json-item .json-link:hover{background-color:#3a56d4}.status-text{margin-left:15px;font-size:14px;color:#6b7280;display:inline-flex;align-items:center}.loading{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite;margin-right:8px}.status-loading{color:#3b82f6}.status-success{color:#10b981}.status-error{color:#ef4444}.ai-analysis-card{margin-bottom:25px;padding:18px;border-radius:10px;background-color:#4361ee0d;border-left:4px solid #4361ee}.ai-analysis-card .ai-title{font-size:15px;font-weight:600;color:#4361ee;margin-bottom:10px;display:flex;align-items:center}.ai-analysis-card .ai-title i{margin-right:8px}.ai-analysis-card .ai-content{font-size:14px;color:#475569;line-height:1.6;white-space:pre-wrap;word-break:break-all}.patient-info-card{margin:20px 0;padding:20px;border-radius:12px;background-color:#f8fafc;border:1px solid #e2e8f0;animation:fadeIn .5s ease}.patient-info-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #e2e8f0}.patient-info-card .card-title{font-size:16px;font-weight:600;color:#1e293b;display:flex;align-items:center}.patient-info-card .card-title i{color:#4361ee;margin-right:8px}.patient-info-card .audit-tip{font-size:13px;color:#ef4444;font-weight:500}.patient-info-content{font-size:14px;color:#475569}.info-section{margin-bottom:18px}.info-section:last-child{margin-bottom:0}.info-section h3{font-size:15px;color:#1e293b;margin-bottom:10px;padding-left:8px;border-left:2px solid #4361ee}.info-table{width:100%;border-collapse:collapse;margin-bottom:12px}.info-table td{padding:8px 12px;border:1px solid #e2e8f0;vertical-align:top}.info-table td:first-child{width:35%;background-color:#f1f5f9;font-weight:500;color:#1e293b}.nested-section{margin:10px 0 10px 15px;padding-left:10px;border-left:1px dashed #cbd5e1}.nested-section h4{font-size:14px;color:#1e293b;margin-bottom:8px}.nested-list{margin-left:15px;list-style-type:disc}.nested-list li{margin:5px 0}.audit-btn-group{margin-top:20px;display:flex;justify-content:flex-end}.bill-category{margin-bottom:25px;border:1px solid #e2e8f0;border-radius:8px}.bill-category-header{background:linear-gradient(45deg,#4361ee,#3a0ca3);color:#fff;padding:12px 15px;font-weight:600;font-size:15px}.bill-items-table{width:100%;border-collapse:collapse;font-size:13px}.bill-items-table th{background-color:#f1f5f9;padding:10px 8px;text-align:left;font-weight:600;color:#1e293b;border-bottom:2px solid #e2e8f0}.bill-items-table td{padding:8px;border-bottom:1px solid #e2e8f0;vertical-align:top}.bill-items-table tr:hover{background-color:#f8fafc}.bill-summary{background-color:#f1f5f9;padding:15px;border-radius:8px;margin-top:20px}.bill-summary-row{display:flex;justify-content:space-between;margin-bottom:8px;padding:5px 0}.bill-summary-row.total{border-top:2px solid #e2e8f0;font-weight:600;font-size:16px;color:#1e293b;padding-top:10px}.bill-amount{font-weight:600;color:#1e293b}.bill-negative{color:#ef4444}.bill-positive{color:#10b981}.patient-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:15px;margin-bottom:20px}.patient-detail-card{border:1px solid #e2e8f0;border-radius:8px;padding:15px;background-color:#f8fafc}.patient-detail-card h4{color:#4361ee;margin-bottom:10px;font-size:14px;font-weight:600}.patient-detail-item{display:flex;justify-content:space-between;margin-bottom:5px;padding:3px 0}.patient-detail-label{font-weight:500;color:#475569}.patient-detail-value{color:#1e293b;font-weight:500}@media(max-width:768px){.header{padding:20px 25px}.header h1{font-size:20px}.content{padding:20px 25px}.section{margin-bottom:30px}.file-upload{padding:30px 15px}.file-upload i{font-size:32px}.btn{padding:10px 20px;font-size:14px;margin-right:0;margin-bottom:10px}.audit-btn-group{flex-direction:column}.json-item .json-name{max-width:50%}.ai-analysis-card,.patient-info-card{padding:15px}.info-table td{padding:6px 8px;font-size:13px}}@media(max-width:480px){.header h1{font-size:18px}.section h2{font-size:16px}.file-upload p{font-size:14px}.json-item{flex-direction:column;align-items:flex-start;gap:10px}.json-item .json-name{max-width:100%;width:100%}.json-item .json-link{width:100%;text-align:center}.info-table{display:block;overflow-x:auto}}@keyframes spin{to{transform:rotate(360deg)}}@media print{body *{visibility:hidden}#patientInfoCard,#patientInfoCard *{visibility:visible}#patientInfoCard{position:absolute;left:0;top:0;width:100%;border:none;box-shadow:none;background-color:#fff}#patientInfoCard .audit-btn-group{display:none!important}.bill-category,.bill-summary{page-break-inside:avoid}}.json-description{margin-top:10px;padding:12px;background-color:#f8fafc;border-radius:6px;border:1px solid #e2e8f0;font-size:13px;color:#334155;line-height:1.6;white-space:pre-line}.json-description strong{color:#1e293b;font-weight:600}.json-description br+br{display:block;margin-bottom:6px}@media(max-width:768px){.json-description{font-size:12px;padding:10px}}.risk-label{font-weight:700;padding:2px 6px;border-radius:3px;text-align:center;white-space:nowrap}.risk-label-high{background-color:#dc354533;color:#dc3545;border:1px solid #dc3545}.risk-label-medium{background-color:#ffc10733;color:#ffc107;border:1px solid #ffc107}.risk-label-low{background-color:#19875433;color:#198754;border:1px solid #198754}.risk-label-none{background-color:#6c757d33;color:#6c757d;border:1px solid #6c757d}
