*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#react-target,.main-layout{min-height:100vh}.main-layout{display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:1.5rem 0;box-shadow:0 2px 10px rgba(0,0,0,.1)}.header .container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.logo{margin:0;font-size:1.8rem;font-weight:700}.nav{display:flex;gap:2rem}.nav-link{color:white;text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:5px;transition:background-color .3s}.nav-link:hover{background-color:rgba(255,255,255,.2)}.main-content{flex:1 1;max-width:1200px;margin:0 auto;padding:2rem;width:100%}.footer{background-color:#f5f5f5;text-align:center;padding:1.5rem;color:#666;margin-top:auto}.attribute-selector{width:100%}.attribute-item{display:flex;align-items:flex-start;padding:1rem;margin-bottom:1rem;background:#f8f9fa;border-radius:8px;border:2px solid #e9ecef;transition:all .2s;gap:1rem}.reorder-buttons{display:flex;flex-direction:column;gap:.25rem}.move-btn{width:30px;height:30px;border:2px solid #667eea;background:white;color:#667eea;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s}.move-btn:hover{background:#667eea;color:white;transform:scale(1.1)}.move-btn:active{transform:scale(.95)}.attribute-item:hover{border-color:#667eea;box-shadow:0 2px 8px rgba(102,126,234,.2)}.slider-container{display:flex;align-items:center;gap:1rem}.slider-value-input{min-width:80px}.number-input{width:100%;padding:.5rem;border:2px solid #ddd;border-radius:5px;font-size:.9rem;text-align:center}.number-input:focus{outline:none;border-color:#667eea}.attribute-info{flex:1 1}.attribute-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.attribute-name{font-weight:600;font-size:1.1rem;color:#333}.attribute-weight{font-weight:700;color:#667eea;font-size:1.1rem}.attribute-description{margin:0 0 .75rem;color:#666;font-size:.9rem}.weight-slider{width:100%;height:8px;border-radius:5px;background:#e9ecef;outline:none;-webkit-appearance:none}.weight-slider::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#667eea;cursor:pointer}.weight-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#667eea;cursor:pointer;border:none}.weight-summary{margin-top:1.5rem;padding:1rem;background:#f0f0f0;border-radius:8px;text-align:center}.total-weight{font-size:1.2rem;font-weight:700;display:block;margin-bottom:.5rem}.total-weight.valid{color:#28a745}.total-weight.invalid{color:#dc3545}.weight-warning{color:#dc3545;font-size:.9rem}.protocol-selector{width:100%}.protocol-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.protocol-card{cursor:pointer;background:white;position:relative}.protocol-card:hover{border-color:#667eea;transform:translateY(-3px);box-shadow:0 5px 15px rgba(102,126,234,.2)}.protocol-card.selected{border-color:#667eea;background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));box-shadow:0 5px 15px rgba(102,126,234,.3)}.protocol-checkbox{position:absolute;top:1rem;right:1rem;width:24px;height:24px;border:2px solid #667eea;border-radius:4px;display:flex;align-items:center;justify-content:center;background:white;color:#667eea;font-weight:700;font-size:1.2rem}.protocol-card.selected .protocol-checkbox{background:#667eea;color:white}.protocol-name{margin:.5rem 0;font-size:1.3rem;color:#333;font-weight:700}.protocol-description{margin:.5rem 0 0;color:#666;font-size:.9rem;line-height:1.5}.scenario-selector{width:100%}.scenario-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.scenario-card{border:2px solid #e9ecef;border-radius:8px;padding:1.25rem;cursor:pointer;transition:all .3s;background:white;position:relative;display:flex;align-items:flex-start}.scenario-card:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 3px 10px rgba(102,126,234,.2)}.scenario-card.selected{border-color:#667eea;background:linear-gradient(135deg,rgba(102,126,234,.05),rgba(118,75,162,.05))}.scenario-checkbox{width:20px;height:20px;border:2px solid #667eea;border-radius:4px;margin-right:1rem;display:flex;align-items:center;justify-content:center;background:white;color:#667eea;font-weight:700;flex-shrink:0}.scenario-card.selected .scenario-checkbox{background:#667eea;color:white}.scenario-content{flex:1 1}.scenario-name{margin:0 0 .5rem;font-size:1.1rem;color:#333;font-weight:600}.scenario-description{margin:0 0 .75rem;color:#666;font-size:.9rem;line-height:1.4}.scenario-params{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.85rem}.scenario-params span{background:#f0f0f0;padding:.25rem .5rem;border-radius:4px;color:#555}.selection-hint{text-align:center;color:#dc3545;margin-top:1rem;font-style:italic}.test-progress-log{background:#f8f9fa;border-radius:10px;padding:1.5rem;margin-top:1.5rem}.test-progress-log h4{margin:0 0 1rem;color:#667eea;font-size:1.1rem}.log-container{max-height:400px;background:white}.log-empty{padding:2rem;font-style:italic}.log-entry{padding:.75rem;margin-bottom:.75rem;background:#fafafa;border-left:3px solid #667eea;border-radius:4px;font-size:.9rem}.log-header{gap:.5rem;margin-bottom:.5rem}.log-icon{font-size:1.2rem}.log-type{font-weight:600;color:#333;font-size:.85rem}.log-time{margin-left:auto;color:#999;font-size:.8rem}.log-message{color:#555;margin-bottom:.5rem;line-height:1.4}.log-formula{background:#e8f4f8;padding:.5rem;border-radius:4px;margin-top:.5rem;font-size:.85rem;color:#2c5282;font-family:Courier New,monospace}.log-formula strong{color:#2d3748}.log-metrics{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap;font-size:.8rem;color:#666}.log-metrics span{background:#e9ecef;padding:.25rem .5rem;border-radius:3px}.configuration-page{min-height:100vh}.container{max-width:1200px;margin:0 auto}.page-title{font-size:2.5rem;margin-bottom:2rem;color:#333;text-align:center}.config-section{background:white;border-radius:10px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 10px rgba(0,0,0,.1)}.section-title{font-size:1.5rem;margin-bottom:.5rem;color:#667eea}.section-description{color:#666;margin-bottom:1.5rem;font-size:.95rem}.section-label{display:block;margin-bottom:1rem;font-weight:500;color:#333}.test-name-input{width:100%;padding:.75rem;margin-top:.5rem;border:2px solid #ddd;border-radius:5px;font-size:1rem;transition:border-color .3s}.test-name-input:focus{outline:none;border-color:#667eea}.start-test-btn{width:100%;padding:1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;border-radius:10px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:1rem}.start-test-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px rgba(102,126,234,.4)}.start-test-btn:disabled{opacity:.6;cursor:not-allowed}.protocol-config{gap:1.5rem}.config-field,.protocol-config{display:flex;flex-direction:column}.config-field{gap:.5rem}.config-field label{font-weight:500;color:#333;font-size:.95rem}.field-hint{display:block;font-weight:400;color:#888;font-size:.85rem;margin-top:.25rem;font-style:italic}.protocol-input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:5px;font-size:1rem;font-family:Courier New,monospace;transition:border-color .3s}.protocol-input:focus{outline:none;border-color:#667eea}.config-note{margin-top:1rem;padding:1rem;background:#f0f4ff;border-radius:5px;border-left:4px solid #667eea;color:#555;font-size:.9rem;line-height:1.6}.config-note code{background:#e0e6ff;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:.85em;color:#667eea}.dashboard{min-height:100vh}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard-header h1{margin:0;color:#333}.dashboard-content{display:flex;flex-direction:column;gap:2rem}.test-progress{background:#f8f9fa;padding:1.5rem;border-radius:10px;border-left:4px solid #667eea;margin-bottom:2rem}.test-progress h3{margin:0 0 1rem;color:#667eea}.progress-info{margin-bottom:1rem}.progress-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:1.1rem}.progress-percentage{font-weight:700;color:#667eea;font-size:1.2rem}.current-test{padding:.5rem;background:white;border-radius:5px;margin-top:.5rem;color:#666}.current-test strong{color:#333}.progress-bar{width:100%;height:12px;background:#e9ecef;border-radius:6px;overflow:hidden;margin:1rem 0;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .5s ease;border-radius:6px}.progress-message{margin:.5rem 0;color:#666;font-style:italic}.test-summary{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ddd;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.summary-item{font-size:.9rem;color:#555}.summary-item strong{color:#333;display:block;margin-bottom:.25rem}.results-section{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.results-section h2{margin-top:0;color:#667eea}.fitness-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem}.fitness-card{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:1.5rem;border-radius:10px;box-shadow:0 5px 15px rgba(102,126,234,.3)}.fitness-card h3{margin:0 0 1rem;font-size:1.3rem}.score-value{font-size:3rem;font-weight:700;margin:1rem 0}.recommendation{font-size:.9rem;opacity:.9;line-height:1.5}.chart-section{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.chart-section h2{margin-top:0;color:#667eea}.view-results-btn{padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s}.view-results-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px rgba(102,126,234,.4)}.live-progress-btn{padding:1rem 2rem;background:linear-gradient(135deg,#43e97b,#38f9d7);color:white;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s}.live-progress-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px rgba(67,233,123,.4)}.warning-message{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:1rem;margin:1rem 0;color:#856404;text-align:center}.results-page{min-height:100vh}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.results-header h1{margin:0;color:#333}.download-btn{padding:.75rem 1.5rem;background:#28a745;color:white;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s}.download-btn:hover{background:#218838}.results-content{display:flex;flex-direction:column;gap:2rem}.test-info{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.test-info h2{margin-top:0;color:#667eea}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:1rem}.info-item{display:flex;flex-direction:column;padding:1rem;background:#f8f9fa;border-radius:8px}.info-label{margin-bottom:.25rem}.info-value{font-size:1rem}.fitness-scores-section{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.fitness-scores-section h2{margin-top:0;color:#667eea}.rankings{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.ranking-card{display:flex;gap:1.5rem;padding:1.5rem;background:#f8f9fa;border-radius:10px;border-left:4px solid #667eea;position:relative}.ranking-card:first-child{background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));border-left-color:#28a745}.rank-badge{width:50px;height:50px;background:#667eea;color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;flex-shrink:0}.ranking-card:first-child .rank-badge{background:#28a745}.ranking-content{flex:1 1}.ranking-content h3{margin:0 0 1rem;font-size:1.5rem;color:#333}.score-display{display:flex;align-items:baseline;gap:1rem;margin-bottom:1rem}.score-label{font-weight:600;color:#666}.score-value-large{font-size:2.5rem;font-weight:700;color:#667eea}.recommendation-box{background:white;padding:1rem;border-radius:8px;margin-bottom:1rem;border-left:3px solid #667eea}.recommendation-box strong{display:block;margin-bottom:.5rem;color:#333}.recommendation-box p{margin:0;color:#666;line-height:1.6}.key-metrics{display:flex;gap:2rem;flex-wrap:wrap}.metric{display:flex;flex-direction:column}.metric-label{margin-bottom:.25rem}.metric-value{font-size:1.1rem}.action-buttons{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.back-btn,.new-test-btn{padding:1rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.back-btn{background:#6c757d;color:white}.back-btn:hover,.new-test-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,0,0,.2)}.error-message{text-align:center;padding:3rem;background:white;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.chart-empty{padding:2rem;text-align:center;color:#666}.results-page .header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.history-page{min-height:100vh}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.history-header h1{margin:0;color:#333}.new-test-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:white;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.new-test-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(102,126,234,.3)}.empty-state{text-align:center;padding:4rem 2rem;background:white;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.empty-state p{font-size:1.2rem;color:#666;margin-bottom:1.5rem}.empty-state button{padding:1rem 2rem;background:#667eea;color:white;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.test-runs-list{display:flex;flex-direction:column;gap:1.5rem}.test-run-card{background:white;border-radius:10px;padding:1.5rem;box-shadow:0 2px 10px rgba(0,0,0,.1);cursor:pointer;transition:transform .2s,box-shadow .2s}.test-run-card:hover{transform:translateY(-2px);box-shadow:0 5px 20px rgba(0,0,0,.15)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.card-header h3{margin:0;color:#333;font-size:1.3rem}.card-info{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.info-row{display:flex;justify-content:space-between;align-items:center}.info-label{font-weight:600;color:#666;font-size:.9rem}.info-value{color:#333;font-size:.9rem;text-align:right}.card-actions{display:flex;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #f0f0f0}.dashboard-btn,.view-btn{flex:1 1;padding:.75rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.view-btn{background:#667eea;color:white}.view-btn:hover{background:#5568d3}.dashboard-btn{background:#f0f0f0;color:#333}.dashboard-btn:hover{background:#e0e0e0}.status-badge{padding:.4rem .8rem;font-size:.85rem}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#666;background:white;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.live-progress-page{min-height:100vh;background:#f5f5f5}.page-header{background:white;padding:2rem;border-radius:10px;margin-bottom:2rem;box-shadow:0 2px 10px rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.header-left h1{margin:0 0 .5rem;color:#333;font-size:2rem}.test-info{display:flex;align-items:center;gap:1rem}.test-name{font-weight:600;color:#666}.status-badge{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem}.status-badge.running{background:#d4edda;color:#155724}.status-badge.completed{background:#cce5ff;color:#004085}.status-badge.failed{background:#f8d7da;color:#721c24}.header-actions{display:flex;gap:1rem}.action-btn{padding:.75rem 1.5rem;border:2px solid #667eea;background:white;color:#667eea;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.action-btn.primary,.action-btn:hover{background:#667eea;color:white}.action-btn.primary:hover{background:#5568d3}.overall-progress{background:white;padding:2rem;border-radius:10px;margin-bottom:2rem;box-shadow:0 2px 10px rgba(0,0,0,.1)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.progress-header h2{margin:0;color:#667eea}.progress-percent{font-size:2rem;font-weight:700;color:#667eea}.progress-bar-large{width:100%;height:20px;background:#e9ecef;border-radius:10px;overflow:hidden;margin-bottom:1rem}.progress-fill-large{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .5s ease;border-radius:10px}.progress-details{display:flex;gap:2rem;flex-wrap:wrap}.progress-item{font-size:.95rem;color:#666}.progress-item strong{color:#333}.progress-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:2rem}.protocol-status-section{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.protocol-status-section h2{margin:0 0 1.5rem;color:#667eea}.protocol-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.protocol-card{background:#f8f9fa;border:2px solid #e9ecef;border-radius:10px;padding:1.5rem;transition:all .3s}.protocol-card.active{border-color:#667eea;background:linear-gradient(135deg,rgba(102,126,234,.1),rgba(118,75,162,.1));box-shadow:0 5px 15px rgba(102,126,234,.3)}.protocol-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #e9ecef}.protocol-card h3{margin:0;color:#333;font-size:1.2rem}.active-badge{background:#667eea;color:white;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.protocol-metrics{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:white;border-radius:5px}.metric-label{font-size:.9rem;color:#666}.metric-value{font-weight:600;color:#333}.last-action{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:white;border-radius:5px;margin-bottom:.5rem;font-size:.9rem}.action-icon{font-size:1.2rem}.action-text{color:#555;flex:1 1}.log-count{text-align:center;font-size:.85rem;color:#999;padding-top:.5rem;border-top:1px solid #e9ecef}.charts-section{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.charts-section h2{margin:0 0 1.5rem;color:#667eea}.chart-container{margin-bottom:2rem;padding:1rem;background:#fafafa;border-radius:8px}.execution-log-section{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1);margin-bottom:2rem}.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.log-header h2{margin:0;color:#667eea}.log-controls{display:flex;gap:1rem;align-items:center}.auto-scroll-label{display:flex;align-items:center;gap:.5rem;color:#666}.auto-scroll-label,.clear-btn{cursor:pointer;font-size:.9rem}.clear-btn{padding:.5rem 1rem;background:#f0f0f0;border:none;border-radius:5px;transition:background .2s}.clear-btn:hover{background:#e0e0e0}.log-container{max-height:600px;overflow-y:auto;background:#fafafa;border-radius:8px;padding:1rem}.log-empty{text-align:center;padding:3rem;color:#999}.log-empty-hint{font-size:.9rem;margin-top:.5rem;font-style:italic}.log-entry-detailed{background:white;border-left:4px solid #667eea;border-radius:6px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 2px 5px rgba(0,0,0,.05);transition:transform .2s}.log-entry-detailed:hover{transform:translateX(5px);box-shadow:0 3px 10px rgba(0,0,0,.1)}.log-entry-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.log-icon-large{font-size:1.5rem;line-height:1}.log-meta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;flex:1 1}.log-type-badge{font-weight:700}.log-protocol,.log-type-badge{padding:.35rem .75rem;border-radius:12px;font-size:.75rem}.log-protocol{background:#e9ecef;color:#666}.log-timestamp{margin-left:auto;color:#999;font-size:.85rem}.log-message-detailed{color:#333;line-height:1.6;margin-bottom:.75rem;font-size:.95rem}.log-formula-box{background:#e8f4f8;border-left:3px solid #2c5282;padding:1rem;border-radius:5px;margin:.75rem 0}.formula-title{margin-bottom:.5rem;color:#2d3748}.formula-code,.formula-title{display:block;font-size:.9rem}.formula-code{font-family:Courier New,monospace;color:#2c5282;white-space:pre-wrap}.log-network-conditions{background:#fff3cd;border-left:3px solid #ffc107;padding:1rem;border-radius:5px;margin:.75rem 0;font-size:.9rem}.log-network-conditions strong{display:block;margin-bottom:.5rem;color:#856404}.log-network-conditions ul{margin:.5rem 0 0 1.5rem;color:#856404}.log-metrics-detailed{background:#d1ecf1;border-left:3px solid #0c5460;padding:1rem;border-radius:5px;margin:.75rem 0}.log-metrics-detailed strong{display:block;margin-bottom:.75rem;color:#0c5460}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.metric-box{background:white;padding:.75rem;border-radius:5px;text-align:center}.metric-name{display:block;font-size:.8rem;color:#666;margin-bottom:.25rem}.metric-number{display:block;font-size:1.1rem;font-weight:700;color:#0c5460}.log-message-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e9ecef;font-size:.9rem}.stat-item{background:#f0f0f0;padding:.5rem .75rem;border-radius:5px;color:#555}.stat-item strong{color:#333;margin-right:.25rem}.log-detail{margin-top:.5rem;font-size:.9rem;color:#666}.log-detail code{background:#f0f0f0;padding:.25rem .5rem;border-radius:3px;font-family:Courier New,monospace;color:#333}.config-summary{background:white;padding:2rem;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.config-summary h2{margin:0 0 1.5rem;color:#667eea}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.config-item{display:flex;flex-direction:column;gap:.5rem}.config-item strong{color:#333;font-size:.95rem}.protocol-tags,.scenario-tags{display:flex;flex-wrap:wrap;gap:.5rem}.protocol-tag{background:#667eea}.protocol-tag,.scenario-tag{color:white;padding:.4rem .8rem;border-radius:15px;font-size:.85rem;font-weight:600}.scenario-tag{background:#764ba2}.error-message,.loading{text-align:center;padding:3rem;background:white;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.error-message button{margin-top:1rem;padding:.75rem 1.5rem;background:#667eea;color:white;border:none;border-radius:5px;cursor:pointer;font-size:1rem}