body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-container{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;max-width:400px;overflow:hidden;padding:0;width:100%}.login-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px 20px 20px;text-align:center}.login-header h1{font-size:24px;font-weight:600;margin:0 0 5px}.login-header h2{font-size:16px;font-weight:400;margin:0 0 10px;opacity:.9}.login-header .version{font-size:12px;margin:0;opacity:.7}.login-form{padding:30px}.login-form h3{color:#333;font-size:18px;font-weight:500;margin:0 0 25px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#555;font-size:14px;font-weight:500;margin-bottom:6px}.form-group input{border:2px solid #e1e5e9;border-radius:6px;box-sizing:border-box;font-size:14px;padding:12px 15px;transition:all .3s ease;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.7}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;margin-top:10px;padding:12px 20px;transition:all .3s ease;width:100%}.login-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33}.error-message,.success-message{font-size:14px;padding:10px 15px}.success-message{background-color:#efe;border:1px solid #cfc;border-radius:6px;color:#3c3;margin-bottom:20px}.auth-switch{border-top:1px solid #eee;margin-top:25px;padding-top:20px;text-align:center}.auth-switch p{color:#666;font-size:14px;margin:0}.switch-btn{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;font-weight:500;margin-left:5px;text-decoration:underline}.switch-btn:hover:not(:disabled){color:#764ba2}.switch-btn:disabled{color:#ccc;cursor:not-allowed;text-decoration:none}@media (max-width:480px){.login-page{padding:10px}.login-container{max-width:100%}.login-header{padding:25px 15px 15px}.login-header h1{font-size:20px}.login-header h2{font-size:14px}.login-form{padding:25px 20px}}.report-list{background-color:#f8f9fa;display:flex;flex-direction:column;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.report-list-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:15px;padding:15px 20px}.header-left{text-align:left}.header-right{align-items:center;display:flex}.report-list-header h1{color:#007bff;font-size:2.2em;font-weight:600;margin:0}.version{font-size:1.1em;margin:10px 0 0}.search-section{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;flex-shrink:0;margin-bottom:15px;padding:15px 20px}.search-section h2{border-bottom:2px solid #007bff;color:#333;margin-bottom:12px;padding-bottom:8px}.search-filters{display:flex;flex-direction:column;gap:10px}.filter-row{grid-gap:15px;align-items:end;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#333;font-weight:500;margin-bottom:5px}.filter-group input,.filter-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.filter-group input:focus,.filter-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.filter-actions{align-items:end;display:flex}.clear-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;height:-webkit-fit-content;height:fit-content;padding:8px 16px}.clear-btn:hover{background-color:#545b62}.reports-section{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;flex-direction:column;height:calc(100vh - 140px);overflow-y:auto;padding:20px}.section-header{align-items:center;border-bottom:2px solid #007bff;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.section-header h2{color:#333;margin:0}.create-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 20px}.create-btn:hover{background-color:#218838}.import-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 20px}.import-btn:hover:not(:disabled){background-color:#138496}.import-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.export-all-btn{background-color:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 20px}.export-all-btn:hover:not(:disabled){background-color:#e68900}.export-all-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.section-actions{display:flex;gap:10px}.admin-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 20px}.admin-btn:hover{background-color:#c82333}.database-error{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-top:20px;padding:20px}.error-message{background-color:#fff5f5;border:2px solid #fed7d7;border-radius:8px;color:#c53030;padding:40px;text-align:center}.error-message h2{color:#c53030;font-size:1.8em;margin-bottom:15px}.error-message p{color:#9c4221;font-size:1.1em;line-height:1.5;margin-bottom:20px}.retry-btn{background-color:#3182ce;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:background-color .2s ease}.retry-btn:hover{background-color:#2c5aa0}.reports-grid{align-content:start;flex:1 1 auto;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));min-height:-webkit-fit-content;min-height:fit-content}.report-card{border:1px solid #dee2e6;box-shadow:0 2px 4px #0000001a;padding:10px 12px}.report-card:hover{border-color:#007bff;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.report-card-header{border-bottom:1px solid #e9ecef;margin-bottom:8px;padding-bottom:6px}.report-card-header .header-left{align-items:center;display:flex;gap:12px}.delete-icon-btn{background:none;border:none;cursor:pointer;font-size:20px;opacity:.6;padding:5px 10px;transition:opacity .2s,transform .2s}.delete-icon-btn:hover{opacity:1;transform:scale(1.1)}.report-id{color:#007bff;font-size:1em;margin:0}.report-category{background-color:#e3f2fd;border-radius:12px;color:#1976d2;font-size:11px;font-weight:500;padding:3px 10px}.report-card-body,.report-info{margin-bottom:6px}.report-info{display:flex;font-size:.9em;gap:12px}.info-item{align-items:center;gap:4px}.info-item .label{color:#6c757d;font-weight:500;white-space:nowrap}.info-item .value{color:#333}.report-purpose .label{color:#6c757d;display:block;font-weight:500;margin-bottom:5px}.purpose-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#333;display:-webkit-box;line-height:1.4;margin:0;overflow:hidden;text-overflow:ellipsis}.report-card-footer{border-top:1px solid #e9ecef;padding-top:8px;text-align:center}.click-hint{color:#6c757d;font-size:12px;font-style:italic}@media (max-width:768px){.report-list{padding:10px}.filter-row{grid-template-columns:1fr}.section-header{align-items:stretch;flex-direction:column;gap:15px}.create-btn{width:100%}.reports-grid{grid-template-columns:1fr}.report-card-header{align-items:flex-start;flex-direction:column;gap:10px}.info-item{flex-direction:column;gap:2px}.info-item .value{text-align:left}}.user-info{gap:15px}.user-display,.user-info{align-items:center;display:flex}.user-display{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;gap:10px;padding:10px 15px;transition:background-color .2s}.user-display:hover{background:#e9ecef}.user-icon{color:#007bff;font-size:24px}.user-text{align-items:flex-start;display:flex;flex-direction:column}.user-name{color:#333;font-size:14px;font-weight:600}.user-account{color:#6c757d;font-size:12px}.logout-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.logout-btn:hover{background:#c82333}.profile-modal{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.profile-modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:500px;min-width:400px;padding:0}.profile-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.profile-header h3{color:#333;font-size:18px;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:background-color .2s;width:30px}.close-btn:hover{background:#dee2e6;color:#333}.profile-body{display:flex;flex-direction:column;gap:16px;padding:24px}.profile-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:12px 0}.profile-item:last-child{border-bottom:none}.profile-item label{color:#495057;font-weight:600;min-width:80px}.profile-item span{color:#333;text-align:right}.role-badge{border-radius:20px;font-weight:600;padding:4px 12px;text-transform:uppercase}.role-badge.admin{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.role-badge.user{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.role-badge.supervisor{background:#fff3cd;border:1px solid #ffeeba;color:#856404}.profile-footer{background:#f8f9fa;border-radius:0 0 8px 8px;border-top:1px solid #dee2e6;padding:16px 24px;text-align:right}.profile-close-btn{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 20px;transition:background-color .2s}.profile-close-btn:hover{background:#5a6268}.compare-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-left:10px;padding:10px 20px;transition:all .3s ease}.compare-btn:hover{background:linear-gradient(135deg,#218838,#1fb88a);box-shadow:0 4px 12px #28a7454d;transform:translateY(-1px)}.compare-btn.active{background:linear-gradient(135deg,#dc3545,#e74c3c)}.compare-btn.active:hover{background:linear-gradient(135deg,#c82333,#dc2626)}.compare-mode-info{animation:slideIn .3s ease-out;background:linear-gradient(135deg,#e3f2fd,#f0f9ff);border:2px solid #2196f3;border-radius:8px;flex-shrink:0;margin-bottom:20px;padding:15px}.compare-instruction{align-items:center;color:#1565c0;display:flex;font-size:16px;font-weight:500;gap:10px}.selected-count{color:#28a745;font-weight:600}.first-selected{background:#28a7451a;border-left:4px solid #28a745;color:#155724;font-size:14px;margin-top:10px;padding:8px 12px}.report-card.compare-mode{cursor:pointer;position:relative;transition:all .3s ease}.report-card.compare-mode:hover{border-color:#007bff;box-shadow:0 8px 25px #007bff33;transform:translateY(-3px)}.report-card.selected{background:linear-gradient(135deg,#f8fff9,#e8f5e8);border:3px solid #28a745;box-shadow:0 6px 20px #28a7454d;transform:translateY(-2px)}.compare-hint{color:#007bff;font-size:14px;font-weight:500}.report-card.selected .compare-hint{color:#28a745}.selected-indicator{align-items:center;animation:checkmark .3s ease-out;background:#28a745;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:700;height:25px;justify-content:center;position:absolute;right:10px;top:10px;width:25px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes checkmark{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.report-card.compare-mode .report-card-footer{background:#007bff0d;border-top:1px solid #e9ecef}.report-card.selected .report-card-footer{background:#28a7451a;border-top-color:#28a745}.admin-btn-header{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.admin-btn-header:hover{background-color:#c82333}.tab-switch{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;flex-shrink:0;gap:0;margin-bottom:15px;overflow:hidden}.tab-btn{color:#6c757d;padding:14px 20px;transition:all .2s ease}.tab-btn:hover{color:#333}.tab-btn.active{background:#f0f7ff;border-bottom-color:#007bff;color:#007bff;font-weight:600}.plans-list{align-content:start;display:flex;flex:1 1 auto;flex-direction:column;gap:12px;min-height:-webkit-fit-content;min-height:fit-content}.experiment-plan-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;gap:20px;padding:12px 16px;transition:all .2s ease}.experiment-plan-card:hover{border-color:#007bff;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.plan-card-left{flex:0 0 auto;min-width:280px}.plan-card-header{align-items:center;display:flex;gap:10px;margin-bottom:8px}.plan-id{color:#007bff;font-size:1.1em;font-weight:600;margin:0}.plan-status{border-radius:12px;font-size:11px;font-weight:600;padding:3px 10px}.plan-status.open{background:#d4edda;color:#155724}.plan-status.closed{background:#f8d7da;color:#721c24}.plan-card-meta{display:flex;flex-direction:column;font-size:.85em;gap:4px}.plan-meta-item{color:#333}.meta-label{color:#6c757d;font-weight:500}.plan-card-right{align-items:center;border-left:1px solid #e9ecef;display:flex;flex:1 1;min-width:0;padding-left:20px}.plan-purpose{width:100%}.purpose-label{color:#6c757d;display:block;font-size:.85em;font-weight:500;margin-bottom:4px}.plan-purpose-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#333;display:-webkit-box;font-size:.9em;line-height:1.4;margin:0;overflow:hidden;text-overflow:ellipsis}@media (max-width:768px){.experiment-plan-card{flex-direction:column;gap:10px}.plan-card-left{min-width:0;min-width:auto}.plan-card-right{border-left:none;border-top:1px solid #e9ecef;padding-left:0;padding-top:10px}.tab-btn{font-size:14px;padding:12px 10px}}.test-report-form-v2{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.test-report-form-v2 .header{align-items:center;border-bottom:2px solid #007bff;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:10px}.test-report-form-v2 .header h2{color:#333;margin:0}.test-report-form-v2 .header .version{background-color:#007bff;border-radius:4px;color:#fff;font-size:12px;font-weight:700;padding:4px 8px}.test-report-form-v2 h3{color:#555;font-size:1.2em;margin:20px 0 15px}.field-group{margin-bottom:15px}.field-group label{color:#333;display:block;font-weight:500;margin-bottom:5px}.field-group input,.field-group select,.field-group textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.field-group input:focus,.field-group select:focus,.field-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.readonly-field{background-color:#f8f9fa!important;color:#6c757d!important;cursor:not-allowed}.basic-fields{background-color:#f8f9fa}.basic-fields,.custom-fields{border:1px solid #e9ecef;border-radius:6px;margin-bottom:20px;padding:20px}.custom-field-item{background-color:#fff;border:1px solid #dee2e6;border-radius:6px;margin-bottom:15px;padding:15px;position:relative}.custom-field-header{grid-gap:15px;align-items:end;display:grid;gap:15px;grid-template-columns:1fr 150px auto;margin-bottom:15px}.chart-options{background-color:#f1f3f4;border-radius:4px;flex-direction:column;gap:10px;grid-column:1/-1;padding:10px}.chart-options .field-group{margin-bottom:0}.chart-options label{align-items:center;display:flex;font-weight:400;gap:8px}.chart-options input[type=checkbox]{margin:0;width:auto}.remove-field-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;height:-webkit-fit-content;height:fit-content;padding:6px 12px}.remove-field-btn:hover{background-color:#c82333}.add-field-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:10px;padding:10px 20px}.add-field-btn:hover{background-color:#218838}.data-table-section{border:1px solid #e9ecef;border-radius:6px;margin-bottom:20px;padding:20px}.data-table-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.data-table-header h3{margin:0}.data-table-actions{display:flex;gap:10px}.add-row-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.add-row-btn:hover{background-color:#138496}.clear-data-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.clear-data-btn:hover{background-color:#c82333}.data-table{background:#fff;border-collapse:collapse;min-width:600px;width:100%}.data-table td,.data-table th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left;vertical-align:top}.data-table th{background-color:#f8f9fa;color:#495057;font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:10}.data-table td,.data-table th{border-right:1px solid #dee2e6}.data-table td input,.data-table td textarea{border:1px solid #ddd;border-radius:3px;font-size:13px;min-width:120px;padding:6px 8px;width:100%}.data-table td input:focus,.data-table td textarea:focus{border-color:#007bff;box-shadow:0 0 0 1px #007bff40;outline:none}.data-table td textarea{min-height:50px;resize:vertical}.delete-row-btn{background-color:#dc3545;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:12px;padding:4px 8px}.delete-row-btn:hover{background-color:#c82333}.no-fields-message{background-color:#f8f9fa;border:1px dashed #dee2e6;border-radius:6px;color:#6c757d;font-style:italic;padding:40px;text-align:center}.form-actions{border-top:1px solid #e9ecef}.save-btn{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 30px}.save-btn:hover{background-color:#0056b3}.cancel-btn{background-color:#6c757d;font-size:16px;font-weight:500;padding:10px 30px}.cancel-btn:hover{background-color:#545b62}@media (max-width:768px){.test-report-form-v2{margin:10px;padding:15px}.custom-field-header{gap:10px;grid-template-columns:1fr}.data-table-header{align-items:stretch;flex-direction:column;gap:15px}.data-table-actions{justify-content:center}.form-actions{flex-direction:column}.cancel-btn,.save-btn{width:100%}.data-table td,.data-table th{font-size:13px;padding:8px}}.test-parameters{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;margin-bottom:25px;padding:20px}.test-parameters h3{color:#495057;margin-top:0}.parameter-item{background-color:#fff;border:1px solid #ced4da;border-radius:4px;margin-bottom:15px;padding:15px}.parameter-header{grid-gap:15px;align-items:end;display:grid;gap:15px;grid-template-columns:1fr 1fr 1fr auto}.remove-parameter-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;height:38px;padding:10px 16px}.remove-parameter-btn:hover{background-color:#c82333}.add-parameter-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px}.add-parameter-btn:hover{background-color:#218838}.test-parameters-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.test-parameters-header h3{margin:0}.reference-btn{align-items:center;background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:5px;padding:8px 16px}.reference-btn:hover{background-color:#138496}.reference-dialog-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.reference-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-height:80vh;max-width:900px;overflow-y:auto;padding:30px;width:100%}.reference-dialog h3{color:#17a2b8;font-size:1.5em;margin:0 0 10px}.reference-dialog>p{color:#666;margin:0 0 20px}.reference-list{margin-bottom:20px}.no-reports{background-color:#f8f9fa;border:1px dashed #dee2e6;border-radius:6px;color:#6c757d;font-style:italic;padding:40px;text-align:center}.reports-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));max-height:400px;overflow-y:auto;padding:10px}.report-card{background:#fff;border:2px solid #dee2e6;border-radius:8px;cursor:pointer;padding:15px;transition:all .2s ease}.report-card:hover{border-color:#17a2b8;box-shadow:0 2px 8px #17a2b833}.report-card.selected{background-color:#e3f9fd;border-color:#17a2b8;box-shadow:0 2px 8px #17a2b84d}.report-card-header{align-items:center;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:10px}.report-card-header .report-id{color:#007bff;font-size:1.05em;font-weight:600}.report-card-header .report-category{background-color:#e3f2fd;border-radius:12px;color:#1976d2;font-size:13px;font-weight:500;padding:4px 12px}.report-card-info{color:#495057;font-size:14px;margin-bottom:10px}.report-card-info div{margin-bottom:5px}.report-parameters-preview{background-color:#f8f9fa;border-radius:4px;margin-top:10px;padding:10px}.report-parameters-preview strong{color:#495057;font-size:13px}.report-parameters-preview ul{color:#666;font-size:13px;margin:8px 0 0;padding-left:20px}.report-parameters-preview li{margin-bottom:3px}.confirm-reference-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px}.confirm-reference-btn:hover:not(:disabled){background-color:#138496}.confirm-reference-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.cancel-reference-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.cancel-reference-btn:hover{background-color:#545b62}@media (max-width:768px){.reference-dialog{max-width:95%;padding:20px}.reports-grid{grid-template-columns:1fr}.test-parameters-header{align-items:flex-start;flex-direction:column;gap:10px}.reference-btn{justify-content:center;width:100%}}.test-chart-v2{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:20px 0;padding:20px}.test-chart-v2 h3{border-bottom:2px solid #007bff;color:#333;margin-bottom:20px;padding-bottom:10px}.chart-section{background-color:#fafafa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:40px;padding:20px}.chart-section h4{border-bottom:1px solid #dee2e6;color:#555;font-size:1.1em;margin-bottom:20px;padding-bottom:8px}.no-chart-data{background-color:#f8f9fa;border:1px dashed #dee2e6;border-radius:6px;color:#6c757d;font-style:italic;padding:40px;text-align:center}.chart-container{border-radius:6px;margin-bottom:20px;padding:15px}.field-statistics{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:15px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.stat-item{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;flex-direction:column;padding:10px}.stat-item label{color:#6c757d;font-size:12px;font-weight:500;margin-bottom:5px}.stat-item span{color:#2e7d2e;font-size:16px;font-weight:600}.chart-legend{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-top:30px;padding:20px}.legend-section h4{border-bottom:1px solid #dee2e6;color:#555;font-size:1.1em;margin-bottom:15px;padding-bottom:8px}.legend-items{display:flex;flex-direction:column;gap:12px}.legend-item{background-color:#fff;border:1px solid #e9ecef;border-radius:4px;gap:10px;padding:8px}.legend-symbol{border-radius:2px;height:12px;width:20px}.point-symbol{background-color:#000;border-radius:50%;height:12px;width:12px}.line-symbol{background-color:#007bff;height:3px}.mean-line{background-color:#28a745;height:3px}.limit-line{background-color:#dc3545;height:3px}.chart-options{align-items:flex-start;background:#fff;border:1px solid #e9ecef;border-radius:6px;gap:30px;margin-bottom:15px}.option-group{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:200px}.option-group label{align-items:center;color:#495057;cursor:pointer;display:flex;font-size:14px;gap:8px}.option-group input[type=checkbox]{cursor:pointer;margin:0}.limit-input{border:1px solid #ced4da;border-radius:4px;font-size:13px;padding:4px 8px;width:100px}.limit-input::placeholder{color:#6c757d;font-size:12px}@media (max-width:768px){.chart-section,.test-chart-v2{padding:15px}.chart-container{padding:10px}.chart-options{flex-direction:column;gap:15px}.option-group{flex:none;min-width:auto}.limit-input{width:80px}.stats-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.stat-item{padding:8px}.stat-item span{font-size:14px}.legend-items{gap:8px}.legend-item{padding:6px}}.test-chart-v2{position:relative}.test-chart-v2 .loading-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.test-chart-v2 .loading-spinner{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000004d;padding:40px 60px;text-align:center}.test-chart-v2 .loading-spinner .spinner{animation:spin 1s linear infinite;border:6px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:60px;margin:0 auto 20px;width:60px}.test-chart-v2 .loading-spinner p{color:#333;font-size:1.2em;font-weight:500;margin:0}.report-view-v2{background-color:#f8f9fa;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.report-view-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.header-left{align-items:center;display:flex;gap:20px}.back-btn{background-color:#6c757d;padding:8px 16px;text-decoration:none}.back-btn:hover{background-color:#545b62}.report-view-header h1{color:#007bff;font-size:1.8em;font-weight:600;margin:0}.edit-btn{background-color:#007bff;font-size:14px;padding:8px 16px}.edit-btn:hover{background-color:#0056b3}.duplicate-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.duplicate-btn:hover{background-color:#138496}.export-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.export-btn:hover{background-color:#218838}.delete-btn{background-color:#dc3545;font-size:14px;padding:8px 16px}.delete-btn:hover{background-color:#c82333}.report-content{display:flex;flex-direction:column;gap:20px}.basic-info-section,.data-table-section,.fields-info-section{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.basic-info-section h2,.data-table-section h2,.fields-info-section h2{border-bottom:2px solid #007bff;color:#333;margin-bottom:20px;padding-bottom:10px}.info-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-item{gap:5px}.info-item label{color:#495057;font-size:14px;font-weight:600}.info-item span,.purpose-content{color:#333;font-size:16px}.report-id{color:#007bff!important;font-size:18px;font-weight:600}.category-badge{background-color:#e3f2fd!important;border-radius:12px;color:#1976d2!important;display:inline-block;font-size:14px;font-weight:500;padding:4px 12px}.purpose-content{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;line-height:1.6;padding:15px;white-space:pre-wrap}.fields-table{overflow-x:auto}.data-table,.fields-table table{background:#fff;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%}.data-table td,.data-table th,.fields-table td,.fields-table th{border-bottom:1px solid #dee2e6;padding:12px 15px;text-align:left}.data-table th,.fields-table th{background-color:#f8f9fa;color:#495057;font-weight:600}.data-table td,.fields-table td{color:#333}.data-table tr:hover,.fields-table tr:hover{background-color:#f8f9fa}.data-table tr:last-child td,.fields-table tr:last-child td{border-bottom:none}.field-name{color:#007bff;font-weight:500}.type-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px;text-transform:uppercase}.type-badge.string{background-color:#e3f2fd;color:#1976d2}.type-badge.number{background-color:#e8f5e8;color:#2e7d2e}.chart-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.chart-badge.point{background-color:#fff3cd;color:#856404}.chart-badge.line{background-color:#d4edda;color:#155724}.no-chart{color:#6c757d}.na,.no-chart{font-style:italic}.na{color:#adb5bd}.data-table-container{border:1px solid #dee2e6;border-radius:6px;overflow-x:auto}.data-table{min-width:800px}.row-number{color:#007bff;font-weight:600;text-align:center}.string-value{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;max-height:100px;max-width:200px;overflow-y:auto;padding:8px 12px;white-space:pre-wrap;word-break:break-word}.number-value{color:#2e7d2e;font-weight:500;text-align:right}.no-data{background-color:#f8f9fa;border:1px dashed #dee2e6;border-radius:6px;color:#6c757d;font-style:italic;padding:40px;text-align:center}.delete-confirm-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.delete-confirm-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-width:400px;padding:30px;width:90%}.delete-confirm-dialog h3{color:#dc3545;font-size:1.3em;margin:0 0 15px}.delete-confirm-dialog p{color:#333;line-height:1.5;margin:0 0 25px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-delete-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.confirm-delete-btn:hover{background-color:#c82333}.cancel-delete-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.cancel-delete-btn:hover{background-color:#545b62}.confirm-export-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.confirm-export-btn:hover{background-color:#218838}.cancel-export-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.cancel-export-btn:hover{background-color:#545b62}.filename-input{border:1px solid #ced4da;border-radius:4px;font-size:14px;margin-bottom:15px;padding:8px 12px;width:100%}.filename-input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}@media (max-width:768px){.report-view-v2{padding:10px}.report-view-header{align-items:stretch;flex-direction:column;gap:15px}.header-left{justify-content:space-between}.header-actions{flex-wrap:wrap;justify-content:center}.info-grid{grid-template-columns:1fr}.data-table-container{font-size:14px}.data-table td,.data-table th{padding:8px 10px}.string-value{max-width:150px}.delete-confirm-dialog{margin:20px;padding:20px}.dialog-actions{flex-direction:column}}.audit-logs-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:30px;padding:20px}.audit-logs-section h2{color:#333;font-size:1.4em;margin:0 0 15px}.audit-logs-table{overflow-x:auto}.audit-logs-table table{background:#fff;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%}.audit-logs-table td,.audit-logs-table th{border-bottom:1px solid #dee2e6;padding:12px 15px;text-align:left}.audit-logs-table th{background-color:#f8f9fa;color:#495057;font-weight:600}.audit-logs-table td{color:#333}.audit-logs-table tr:hover{background-color:#f8f9fa}.audit-logs-table tr:last-child td{border-bottom:none}.loading,.no-logs{color:#6c757d;font-style:italic;padding:20px;text-align:center}.test-parameters-section{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:25px;padding:20px}.test-parameters-section h2{border-bottom:2px solid #007bff;color:#495057;font-size:1.3em;margin-bottom:20px;margin-top:0;padding-bottom:10px}.parameters-grid{grid-gap:15px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.parameter-item-view{align-items:center;background-color:#fff;border:1px solid #ced4da;border-radius:6px;display:flex;justify-content:space-between;padding:12px 16px}.parameter-item-view label{color:#495057;font-weight:600;margin-right:12px}.parameter-item-view .parameter-value{color:#212529;font-size:1.05em}.user-management{margin:0 auto;max-width:1400px;padding:20px}.header{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px}.header h2{color:#333;margin:0}.version{background:#e9ecef;border-radius:4px;color:#666;padding:4px 8px}.add-user-btn{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.add-user-btn:hover{background:#218838}.back-btn{border-radius:4px}.back-btn:hover{background:#5a6268}.access-denied{background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;padding:40px;text-align:center}.error-message{background:#f8d7da;margin-bottom:20px}.modal-overlay{z-index:1000}.user-form-modal{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-height:90vh;max-width:90vw;overflow-y:auto;padding:30px;width:500px}.user-form-modal h3{color:#333;margin:0 0 20px;text-align:center}.form-group{margin-bottom:15px}.form-group label{color:#333;display:block;font-weight:700;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:10px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-actions{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;margin-top:25px;padding-top:20px}.submit-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.submit-btn:hover{background:#0056b3}.cancel-btn{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px}.cancel-btn:hover{background:#5a6268}.loading{color:#666;padding:40px;text-align:center}.users-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.users-table{border-collapse:collapse;width:100%}.users-table td,.users-table th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left}.users-table th{border-bottom:2px solid #dee2e6;color:#495057;font-weight:700}.users-table th,.users-table tr:hover{background:#f8f9fa}.role-badge{border-radius:12px;font-size:12px;font-weight:700;padding:4px 8px;text-align:center}.role-badge.admin{background:#dc3545;color:#fff}.role-badge.user{background:#28a745;color:#fff}.role-badge.supervisor{background:#ff9800;color:#fff}.action-buttons{display:flex;gap:8px}.edit-btn{background:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px}.edit-btn:hover{background:#138496}.delete-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px}.delete-btn:hover:not(:disabled){background:#c82333}.delete-btn:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}@media (max-width:768px){.users-table-container{overflow-x:auto}.users-table{min-width:800px}.header{align-items:flex-start;flex-direction:column;gap:10px}.header-actions{justify-content:flex-end;width:100%}.user-form-modal{width:95vw}}.compare-analysis{background-color:#f8f9fa;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.compare-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:20px;padding:20px}.compare-header h1{color:#007bff;font-size:1.8em;font-weight:600;margin:0}.back-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background .3s ease}.back-btn:hover{background:#545b62}.version{color:#6c757d;font-size:14px}.reports-info{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:1fr auto 1fr;margin-bottom:30px}.report-info-card{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.report-info-card h3{border-bottom:2px solid #e9ecef;color:#495057;font-size:1.2em;margin:0 0 15px;padding-bottom:10px}.info-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.info-item{display:flex;flex-direction:column}.info-item.full-width{grid-column:1/-1}.info-item .label{color:#495057;font-size:13px;font-weight:600;margin-bottom:4px}.info-item .value{color:#212529;font-size:14px}.purpose{background:#f8f9fa;border-radius:4px;font-size:14px;line-height:1.4;margin:4px 0 0;padding:10px}.vs-indicator{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3);border-radius:50%;box-shadow:0 4px 15px #007bff4d;color:#fff;display:flex;font-size:18px;font-weight:700;height:60px;justify-content:center;width:60px}.analysis-tabs{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;margin-bottom:20px;overflow:hidden}.tab-btn{background:#fff;border:none;border-bottom:3px solid #0000;color:#495057;cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:15px 20px;transition:all .3s ease}.tab-btn:hover{background:#f8f9fa;color:#007bff}.tab-btn.active{background:#007bff;border-bottom-color:#0056b3;color:#fff}.analysis-content{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;min-height:400px;padding:20px}.incompatible-warning{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #ffc107;border-radius:8px;color:#856404;font-size:16px;font-weight:500;padding:20px;text-align:center}.fields-comparison{display:flex;flex-direction:column;gap:20px}.field-comparison{background:#fafafa;border:1px solid #e9ecef;border-radius:8px;padding:20px}.field-comparison h4{align-items:center;color:#495057;display:flex;font-size:1.1em;justify-content:space-between;margin:0 0 10px}.avg-diff{border-radius:4px;font-size:14px;font-weight:600;padding:4px 8px}.avg-diff.positive{background:#d4edda;color:#155724}.avg-diff.negative{background:#f8d7da;color:#721c24}.statistics-container{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:15px;padding:15px}.statistics-container strong{color:#495057;display:block;font-size:15px;margin-bottom:10px}.statistics-table{overflow-x:auto}.statistics-table table{background:#fff;border-collapse:collapse;width:100%}.statistics-table th{background:linear-gradient(135deg,#667eea,#764ba2);border:1px solid #fff3;color:#fff;font-size:14px;font-weight:600;padding:12px 10px;text-align:left}.statistics-table td{border:1px solid #e9ecef;color:#495057;font-size:14px;padding:10px}.statistics-table tbody tr:hover{background:#f8f9fa}.statistics-table .report-label{color:#007bff;font-weight:600}.values-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-top:15px}.values-column h5{border-bottom:1px solid #dee2e6;color:#495057;font-size:1em;margin:0 0 10px;padding:8px 0}.values-column ul{list-style:none;margin:0;padding:0}.values-column li{border-bottom:1px solid #f1f3f4;font-size:14px;padding:6px 0}.compare-chart{padding:20px 0}.chart-controls{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px}.chart-type-selector,.field-selector{align-items:center;display:flex;gap:10px}.chart-type-selector label,.field-selector label{color:#495057;font-weight:600}.field-selector select{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:8px 12px}.chart-type-buttons{display:flex;gap:5px}.chart-type-buttons button{background:#fff;border:1px solid #ced4da;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 15px;transition:all .3s ease}.chart-type-buttons button:hover{background:#e9ecef}.chart-type-buttons button.active{background:#007bff;border-color:#007bff;color:#fff}.chart-options{background:#f8f9fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px;padding:15px}.chart-option-item{align-items:center;display:flex;gap:10px}.chart-option-item label{align-items:center;color:#495057;cursor:pointer;display:flex;font-weight:500;gap:8px}.chart-option-item input[type=checkbox]{cursor:pointer;height:18px;width:18px}.chart-option-item input[type=number]{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:6px 10px;width:120px}.chart-statistics{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:15px}.chart-statistics h4{color:#495057;font-size:1.1em;margin:0 0 15px}.stats-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.stat-group{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px}.stat-group h5{border-bottom:2px solid #007bff;color:#007bff;font-size:1.05em;margin:0 0 12px;padding-bottom:8px}.stat-item{border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;padding:8px 0}.stat-item:last-child{border-bottom:none}.stat-label{color:#6c757d;font-size:14px;font-weight:500}.stat-value{color:#495057;font-size:14px;font-weight:600}.stat-value.positive{color:#28a745}.stat-value.negative{color:#dc3545}.overall-statistics{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;margin-top:15px;padding:20px}.overall-statistics h5{border-bottom:2px solid #ffffff4d;color:#fff;font-size:1.15em;margin:0 0 15px;padding-bottom:10px}.overall-statistics .stat-item{border-bottom-color:#fff3}.overall-statistics .stat-label{color:#ffffffe6;font-size:14px}.overall-statistics .stat-value{color:#fff;font-size:15px;font-weight:700}.chart-container{background:#fff;border:1px solid #e9ecef;border-radius:8px;margin:20px 0;padding:20px}.chart-legend{display:flex;gap:30px;justify-content:center;margin-top:15px}.legend-item{align-items:center;display:flex;font-size:14px;font-weight:500;gap:8px}.legend-color{border-radius:3px;height:16px;width:16px}.no-numeric-data{color:#6c757d;padding:40px 20px;text-align:center}.no-numeric-data h3{margin-bottom:15px}.ai-analyzer{display:flex;flex-direction:column;height:600px}.ai-header{margin-bottom:15px}.ai-title{align-items:center;display:flex;gap:10px}.ai-icon{font-size:24px}.ai-title h3{color:#495057;font-size:1.2em;margin:0}.ai-status{background:#28a745;border-radius:12px;color:#fff;font-size:12px;font-weight:500;padding:4px 8px}.chat-container{display:flex;flex:1 1;flex-direction:column;gap:15px}.messages-container{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;flex:1 1;overflow-y:auto;padding:15px}.message{margin-bottom:15px;max-width:80%}.message.user{margin-left:auto}.message.assistant,.message.system{margin-right:auto}.message-header{align-items:center;color:#6c757d;display:flex;font-size:12px;gap:8px;margin-bottom:5px}.role-icon{font-size:16px}.message-content{background:#fff;border:1px solid #e9ecef;border-radius:12px;font-size:14px;line-height:1.5;padding:12px 15px}.message.user .message-content{background:#007bff;border-color:#007bff;color:#fff}.message.system .message-content{background:#e3f2fd;border-color:#2196f3}.message.loading .message-content{background:#f1f3f4}.typing-indicator{align-items:center;display:flex;gap:4px}.typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:#6c757d;border-radius:50%;height:8px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.quick-questions{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:15px}.quick-questions-label{color:#495057;font-size:14px;font-weight:600;margin-bottom:10px}.quick-questions-buttons{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.quick-question-btn{background:#fff;border:1px solid #ced4da;border-radius:6px;cursor:pointer;font-size:13px;padding:8px 12px;text-align:left;transition:all .3s ease}.quick-question-btn:hover:not(:disabled){background:#e9ecef;border-color:#007bff}.quick-question-btn:disabled{cursor:not-allowed;opacity:.6}.input-container{align-items:flex-end;display:flex;gap:10px}.input-container textarea{border:1px solid #ced4da;border-radius:8px;flex:1 1;font-family:inherit;font-size:14px;min-height:60px;padding:12px;resize:vertical}.input-container textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.send-btn{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;transition:background .3s ease;white-space:nowrap}.send-btn:hover:not(:disabled){background:#0056b3}.send-btn:disabled{background:#6c757d;cursor:not-allowed}@media (max-width:768px){.reports-info{gap:15px;grid-template-columns:1fr}.vs-indicator{display:none}.analysis-tabs,.chart-controls{flex-direction:column}.chart-controls{gap:15px}.quick-questions-buttons,.values-grid{grid-template-columns:1fr}}.test-parameters-comparison{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:30px;padding:25px}.test-parameters-comparison h2{border-bottom:3px solid #007bff;color:#495057;font-size:1.4em;margin:0 0 20px;padding-bottom:12px}.parameters-grid{display:flex;flex-direction:column;gap:15px}.parameter-comparison-row{grid-gap:15px;align-items:center;background:#f8f9fa;border-radius:6px;display:grid;gap:15px;grid-template-columns:200px 1fr;padding:12px}.parameter-name{background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:15px;font-weight:600;padding:10px}.parameter-values{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.parameter-value{background:#fff;border-radius:6px;padding:12px;transition:all .3s ease}.parameter-value.has-difference{animation:pulse-red 2s ease-in-out infinite;background:#fff5f5}@keyframes pulse-red{0%,to{box-shadow:0 0 0 0 #dc354566}50%{box-shadow:0 0 0 8px #dc354500}}.parameter-value .report-label{color:#6c757d;font-size:12px;font-weight:600;margin-bottom:6px;text-transform:uppercase}.parameter-value .value{color:#212529;font-size:15px;font-weight:500}.parameter-value .no-data{color:#dc3545;font-style:italic;font-weight:500}@media (max-width:768px){.parameter-comparison-row{gap:10px;grid-template-columns:1fr}.parameter-values{grid-template-columns:1fr}}.experiment-plan-detail{background-color:#f8f9fa;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.detail-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:15px;padding:15px 20px}.detail-header .header-left{text-align:left}.detail-header h1{color:#007bff;font-size:2em;font-weight:600;margin:0}.detail-header .version{color:#6c757d;font-size:1em;margin:5px 0 0}.header-actions{align-items:center;display:flex;gap:10px}.header-actions .export-btn{background-color:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.header-actions .export-btn:hover:not(:disabled){background-color:#e68900}.header-actions .export-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.header-actions .edit-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.header-actions .edit-btn:hover{background-color:#138496}.header-actions .close-case-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.header-actions .close-case-btn:hover{background-color:#c82333}.header-actions .close-case-btn.reopen{background-color:#28a745}.header-actions .close-case-btn.reopen:hover{background-color:#218838}.header-actions .back-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.header-actions .back-btn:hover{background-color:#545b62}.plan-info-section{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:15px;padding:20px}.plan-info-grid{margin-bottom:20px}.info-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-bottom:12px}.plan-info-section .info-item{align-items:center;display:flex;gap:8px}.info-label{color:#6c757d;font-weight:500;min-width:100px;white-space:nowrap}.info-value{color:#333;font-weight:400}.info-value.id-value{color:#007bff;font-size:1.1em;font-weight:600}.plan-status-badge{border-radius:20px;font-size:12px;font-weight:600;padding:4px 12px}.plan-status-badge.open{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.plan-status-badge.closed{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.plan-content-section{border-top:1px solid #e9ecef;padding-top:15px}.content-block{margin-bottom:15px}.content-block h3{border-bottom:1px solid #e9ecef;color:#333;font-size:1em;margin-bottom:8px;padding-bottom:4px}.content-text{word-wrap:break-word;background:#f8f9fa;border-radius:4px;color:#333;font-size:14px;line-height:1.6;padding:8px 12px;white-space:pre-wrap}.associated-reports-section{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.associated-reports-section .section-header{align-items:center;border-bottom:2px solid #007bff;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.associated-reports-section .section-header h2{color:#333;margin:0}.associated-reports-section .section-actions{display:flex;gap:10px}.associated-reports-section .create-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.associated-reports-section .create-btn:hover{background-color:#218838}.associated-reports-section .import-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.associated-reports-section .import-btn:hover:not(:disabled){background-color:#138496}.associated-reports-section .import-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.associated-reports-section .export-all-btn{background-color:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.associated-reports-section .export-all-btn:hover:not(:disabled){background-color:#e68900}.associated-reports-section .export-all-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.associated-reports-section .compare-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .3s ease}.associated-reports-section .compare-btn:hover{background:linear-gradient(135deg,#218838,#1fb88a)}.associated-reports-section .compare-btn.active{background:linear-gradient(135deg,#dc3545,#e74c3c)}.associated-reports-section .compare-mode-info{background:linear-gradient(135deg,#e3f2fd,#f0f9ff);border:2px solid #2196f3;border-radius:8px;margin-bottom:20px;padding:15px}.associated-reports-section .compare-instruction{color:#1565c0;font-size:14px;font-weight:500}.associated-reports-section .selected-count{color:#28a745;font-weight:600}.associated-reports-section .selected-reports-info{align-items:center;display:flex;justify-content:space-between;margin-top:10px}.associated-reports-section .selected-list{color:#333;font-size:13px}.associated-reports-section .selected-item{color:#007bff;font-weight:500}.associated-reports-section .start-compare-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:6px 16px}.associated-reports-section .start-compare-btn:disabled{background-color:#6c757d;cursor:not-allowed}.associated-reports-section .reports-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.associated-reports-section .report-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;padding:10px 12px;transition:all .2s ease}.associated-reports-section .report-card:hover{border-color:#007bff;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.associated-reports-section .report-card.compare-mode:hover{box-shadow:0 8px 25px #007bff33}.associated-reports-section .report-card.selected{background:linear-gradient(135deg,#f8fff9,#e8f5e8);border:3px solid #28a745}.associated-reports-section .report-card-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:8px;padding-bottom:6px}.associated-reports-section .card-header-left{align-items:center;display:flex;gap:12px}.associated-reports-section .report-id{color:#007bff;font-size:1em;font-weight:600;margin:0}.associated-reports-section .report-category{background-color:#e3f2fd;border-radius:12px;color:#1976d2;font-size:11px;font-weight:500;padding:3px 10px}.associated-reports-section .delete-icon-btn{background:none;border:none;cursor:pointer;font-size:20px;opacity:.6;padding:5px 10px;transition:opacity .2s,transform .2s}.associated-reports-section .delete-icon-btn:hover{opacity:1;transform:scale(1.1)}.associated-reports-section .report-card-body{margin-bottom:6px}.associated-reports-section .report-info{display:flex;font-size:.9em;gap:12px;margin-bottom:6px}.associated-reports-section .report-info .info-item{align-items:center;display:flex;gap:4px}.associated-reports-section .report-info .label{color:#6c757d;font-weight:500;white-space:nowrap}.associated-reports-section .report-info .value{color:#333}.associated-reports-section .report-purpose .label{color:#6c757d;display:block;font-weight:500;margin-bottom:5px}.associated-reports-section .purpose-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#333;display:-webkit-box;line-height:1.4;margin:0;overflow:hidden;text-overflow:ellipsis}.associated-reports-section .report-card-footer{border-top:1px solid #e9ecef;padding-top:8px;text-align:center}.associated-reports-section .compare-hint{color:#007bff;font-size:14px;font-weight:500}.associated-reports-section .report-card.selected .compare-hint{color:#28a745}.associated-reports-section .reports-loading{padding:50px 40px;text-align:center}.reports-loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:40px;margin:0 auto 15px;width:40px}.associated-reports-section .reports-loading p{color:#6c757d;font-size:15px;font-weight:500;margin:0}.associated-reports-section .no-reports{background-color:#f8f9fa;border:1px dashed #dee2e6;border-radius:6px;color:#6c757d;font-style:italic;padding:40px;text-align:center}.header-actions .delete-plan-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.header-actions .delete-plan-btn:hover{background-color:#c82333}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.add-report-modal{background:#fff;border-radius:12px;box-shadow:0 8px 30px #0003;max-width:90vw;padding:30px;text-align:center;width:400px}.add-report-modal h3{color:#333;font-size:1.3em;margin:0 0 10px}.add-report-modal p{color:#666;margin:0 0 20px}.add-report-options{display:flex;flex-direction:column;gap:12px;margin-bottom:15px}.option-btn{background:#fff;border:2px solid #dee2e6;border-radius:8px;cursor:pointer;font-size:15px;font-weight:500;padding:14px 20px;transition:all .2s}.option-btn.existing{border-color:#17a2b8;color:#17a2b8}.option-btn.existing:hover{background:#17a2b8;color:#fff}.option-btn.new{border-color:#28a745;color:#28a745}.option-btn.new:hover{background:#28a745;color:#fff}.cancel-modal-btn{background:none;border:none;color:#6c757d;cursor:pointer;font-size:14px;padding:8px 16px}.cancel-modal-btn:hover{color:#333}.report-picker-modal{background:#fff;border-radius:12px;box-shadow:0 8px 30px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:95vw;width:700px}.picker-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:20px 24px 15px}.picker-header h3{color:#333;margin:0}.close-picker-btn{background:none;border:none;color:#6c757d;cursor:pointer;font-size:24px;line-height:1;padding:0 4px}.close-picker-btn:hover{color:#333}.picker-filters{border-bottom:1px solid #e9ecef;display:flex;gap:10px;padding:15px 24px}.picker-search{border:1px solid #dee2e6;border-radius:4px;flex:1 1;font-size:14px;padding:8px 12px}.picker-search:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.picker-category{border:1px solid #dee2e6;border-radius:4px;font-size:14px;min-width:140px;padding:8px 12px}.picker-list{flex:1 1;max-height:50vh;overflow-y:auto;padding:10px 24px}.picker-empty{color:#6c757d;font-style:italic;padding:40px;text-align:center}.picker-item{border:1px solid #dee2e6;border-radius:6px;cursor:pointer;margin-bottom:8px;padding:12px 15px;transition:all .2s}.picker-item:hover{background:#f0f7ff;border-color:#007bff}.picker-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.picker-item-id{color:#007bff;font-size:14px;font-weight:600}.picker-item-category{background:#e3f2fd;border-radius:10px;color:#1976d2;font-size:11px;font-weight:500;padding:2px 8px}.picker-item-info{color:#6c757d;display:flex;font-size:12px;justify-content:space-between;margin-bottom:4px}.picker-item-purpose{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#333;display:-webkit-box;font-size:13px;overflow:hidden}.picker-item-linked{color:#ff9800;font-size:11px;font-style:italic;margin-top:4px}.picker-loading{border-top:1px solid #e9ecef;color:#007bff;font-weight:500;padding:10px;text-align:center}.experiment-plan-detail .loading-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.experiment-plan-detail .loading-spinner{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000004d;padding:40px 60px;text-align:center}.experiment-plan-detail .loading-spinner .spinner{animation:spin 1s linear infinite;border:6px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:60px;margin:0 auto 20px;width:60px}.experiment-plan-detail .loading-spinner p{color:#333;font-size:1.2em;font-weight:500;margin:0}.content-link{color:#007bff;text-decoration:underline;transition:color .2s;word-break:break-all}.content-link:hover{color:#0056b3}.content-image-container{display:block;margin:12px 0}.content-image-link{border-radius:8px;box-shadow:0 2px 8px #00000026;cursor:pointer;display:inline-block;overflow:hidden;transition:transform .2s,box-shadow .2s}.content-image-link:hover{box-shadow:0 4px 16px #0003;transform:scale(1.02)}.content-image{display:block;height:auto;max-height:400px;max-width:100%;object-fit:contain;width:auto}.image-error{background:#f8d7da;border-radius:4px;color:#721c24;display:inline-block;font-size:12px;padding:8px 12px;word-break:break-all}@media (max-width:768px){.experiment-plan-detail{padding:10px}.detail-header{align-items:flex-start;flex-direction:column;gap:10px}.header-actions{flex-wrap:wrap}.info-row{grid-template-columns:1fr}.associated-reports-section .section-header{align-items:stretch;flex-direction:column;gap:10px}.associated-reports-section .section-actions{flex-wrap:wrap}.associated-reports-section .reports-grid{grid-template-columns:1fr}.content-image{max-height:250px}}.experiment-plan-form{background-color:#f8f9fa;margin:0 auto;max-width:900px;min-height:100vh;padding:20px}.experiment-plan-form .header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:20px;padding:15px 20px}.experiment-plan-form .header h2{color:#007bff;font-size:1.8em;margin:0}.experiment-plan-form .header-right-area{align-items:center;display:flex;gap:15px}.experiment-plan-form .version{color:#6c757d;font-size:1em}.import-word-btn{background-color:#6f42c1;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.import-word-btn:hover:not(:disabled){background-color:#5a32a3}.import-word-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.experiment-plan-form .form-section{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:15px;padding:20px}.experiment-plan-form .form-section h3{border-bottom:2px solid #007bff;color:#333;margin-bottom:15px;padding-bottom:8px}.experiment-plan-form .field-group{margin-bottom:15px}.experiment-plan-form .field-group label{color:#333;display:block;font-weight:500;margin-bottom:5px}.experiment-plan-form .field-group input,.experiment-plan-form .field-group select,.experiment-plan-form .field-group textarea{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:14px;padding:8px 12px;width:100%}.experiment-plan-form .field-group textarea{font-family:inherit;resize:vertical}.experiment-plan-form .field-group input:focus,.experiment-plan-form .field-group select:focus,.experiment-plan-form .field-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.experiment-plan-form .readonly-field{background-color:#e9ecef;cursor:not-allowed}.experiment-plan-form .form-actions{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;display:flex;gap:10px;justify-content:flex-end;padding:20px}.experiment-plan-form .save-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 30px;transition:background-color .2s}.experiment-plan-form .save-btn:hover{background-color:#218838}.experiment-plan-form .cancel-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:10px 30px;transition:background-color .2s}.experiment-plan-form .cancel-btn:hover{background-color:#545b62}@media (max-width:768px){.experiment-plan-form{padding:10px}.experiment-plan-form .header{align-items:flex-start;flex-direction:column;gap:10px}.experiment-plan-form .form-actions{flex-direction:column}.experiment-plan-form .cancel-btn,.experiment-plan-form .save-btn{width:100%}}.app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}*{box-sizing:border-box}body{background-color:#f8f9fa;margin:0;padding:0}button{transition:all .2s ease}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{font-family:inherit}input:focus,select:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.loading{align-items:center;color:#6c757d;display:flex;font-size:18px;height:200px;justify-content:center}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin:10px 0;padding:12px}.success-message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;margin:10px 0;padding:12px}.warning-message{background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;margin:10px 0;padding:12px}@media (max-width:768px){.app{padding:0}}.loading-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-spinner{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000004d;padding:40px 60px;text-align:center}.loading-spinner .spinner{animation:spin 1s linear infinite;border:6px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:60px;margin:0 auto 20px;width:60px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-spinner p{color:#333;font-size:1.2em;font-weight:500;margin:0}