.layout{display:flex;flex-direction:column;height:100vh}.top-bar{background-color:#1a1a1a;color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.top-bar h1{font-size:1.5rem;font-weight:600}.top-bar-right{display:flex;gap:1rem;align-items:center}.env-badge{background-color:#10b981;color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600}.main-container{display:flex;flex:1;overflow:hidden}.side-nav{width:240px;background-color:#2d2d2d;padding:1rem 0;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.nav-group{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.nav-group-title{color:#888;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.5rem 1.5rem;margin-top:.5rem}.nav-item{color:#d4d4d4;text-decoration:none;padding:.75rem 1.5rem;transition:all .2s;font-weight:500;display:flex;align-items:center;gap:.75rem}.nav-item:hover{background-color:#3d3d3d;color:#fff}.nav-item.active{background-color:#0d7490;color:#fff;border-left:3px solid #06b6d4}.nav-icon{font-size:1.1rem;min-width:1.5rem;display:inline-flex;justify-content:center}.nav-label{font-size:.9rem}.content{flex:1;padding:2rem;overflow-y:auto;background-color:#f5f5f5}.dashboard-enhanced{padding:2rem;max-width:1800px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.dashboard-header h1{font-size:2rem;color:#1a1a1a;margin:0 0 .5rem}.header-controls{display:flex;gap:1rem;align-items:center}.time-range-select{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer}.refresh-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.refresh-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.kpi-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem;transition:transform .2s}.kpi-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:8px;flex-shrink:0}.kpi-icon.jobs{background:#eff6ff;color:#3b82f6}.kpi-icon.utilization{background:#f0fdf4;color:#10b981}.kpi-icon.makespan{background:#fef3c7;color:#f59e0b}.kpi-icon.throughput{background:#f5f3ff;color:#8b5cf6}.kpi-icon.bottleneck{background:#fef2f2;color:#ef4444}.kpi-icon.ok{background:#f0fdf4;color:#10b981}.kpi-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.kpi-value{font-size:2rem;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:.25rem}.kpi-subtitle{font-size:.8125rem;color:#6b7280}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:1.5rem;margin-bottom:2rem}.chart-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.chart-card.wide{grid-column:1 / -1}.bottleneck-alert-section{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #fecaca;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;color:#991b1b}.section-header h3{font-size:1.25rem;margin:0}.bottleneck-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:1.5rem}.bottleneck-stats .stat{background:#fff;border-radius:6px;padding:1rem}.stat-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.stat-value{font-size:1.75rem;font-weight:700;color:#1a1a1a}.top-bottlenecks h4{font-size:1rem;color:#991b1b;margin:0 0 1rem}.bottleneck-list{display:flex;flex-direction:column;gap:.75rem}.bottleneck-item{background:#fff;border-radius:6px;padding:1rem;display:flex;justify-content:space-between;align-items:center}.bottleneck-machine{font-weight:700;color:#1a1a1a;font-size:1rem}.bottleneck-metrics{display:flex;gap:1.5rem}.bottleneck-metrics .metric{font-size:.875rem;color:#6b7280}.bottleneck-metrics .metric strong{color:#1a1a1a}.performance-table-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.performance-table-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.performance-table{width:100%;border-collapse:collapse}.performance-table th,.performance-table td{padding:.75rem;text-align:left;border-bottom:1px solid #e5e7eb}.performance-table th{background-color:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.performance-table tbody tr:hover{background-color:#f9fafb}.machine-name{font-weight:600;color:#1a1a1a}.utilization-cell{display:flex;align-items:center;gap:.75rem}.utilization-bar{flex:1;height:24px;background:#f3f4f6;border-radius:4px;overflow:hidden}.utilization-fill{height:100%;transition:width .3s ease}.utilization-text{font-weight:600;font-size:.875rem;min-width:50px}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge.critical{background-color:#fef2f2;color:#991b1b;border:1px solid #fecaca}.status-badge.warning{background-color:#fffbeb;color:#92400e;border:1px solid #fde68a}.status-badge.ok{background-color:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.status-badge.idle{background-color:#f3f4f6;color:#4b5563;border:1px solid #d1d5db}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#8b5cf6;border-radius:50%;animation:spin 1s linear infinite}.loading-container p{color:#6b7280;font-size:1rem}.algorithm-summary{display:flex;flex-direction:column;gap:1.5rem;height:300px}.recent-run{flex:1;display:flex;flex-direction:column;gap:1rem}.run-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.run-label{font-size:.875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.run-date{font-size:.875rem;color:#6b7280}.run-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.run-stat{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f9fafb;border-radius:6px}.stat-icon-small{width:40px;height:40px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon-small.jobs{background:#eff6ff;color:#3b82f6}.stat-icon-small.machines{background:#fef3c7;color:#f59e0b}.stat-label-small{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.stat-value-small{font-size:1.25rem;font-weight:700;color:#1a1a1a}.improvement-badge{display:flex;align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #10b981;border-radius:8px}.improvement-badge svg{color:#10b981;flex-shrink:0}.improvement-label{font-size:.75rem;color:#065f46;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.improvement-value{font-size:1.5rem;font-weight:700;color:#10b981}.makespan-comparison{display:flex;flex-direction:column;gap:.5rem}.makespan-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:4px}.makespan-item.ga{background:#f5f3ff;border-left:3px solid #8b5cf6}.makespan-item.rule{background:#fef3c7;border-left:3px solid #f59e0b}.makespan-label{font-size:.75rem;color:#6b7280;font-weight:500}.makespan-value{font-size:.875rem;font-weight:700;color:#1a1a1a}.algorithm-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.algo-stat{padding:1rem;background:#f9fafb;border-radius:6px;text-align:center}.algo-stat-label{font-size:.75rem;color:#6b7280;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.algo-stat-value{font-size:1.5rem;font-weight:700;color:#8b5cf6}@media (max-width: 1200px){.charts-grid{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-enhanced{padding:1rem}.dashboard-header{flex-direction:column;gap:1rem}.header-controls{width:100%;flex-direction:column}.time-range-select,.refresh-btn{width:100%}.kpi-cards,.run-stats,.algorithm-stats-grid{grid-template-columns:1fr}}.ai-chatbot-page{display:flex;height:calc(100vh - 60px);background:#f5f7fa}.chatbot-sidebar{width:300px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column}.sidebar-header{padding:20px;border-bottom:1px solid #e0e0e0}.sidebar-header h2{margin:0 0 15px;font-size:18px;color:#333}.btn-new-chat{width:100%;padding:10px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600}.btn-new-chat:hover{background:#0056b3}.conversations-list{flex:1;overflow-y:auto;padding:10px}.conversation-item{padding:15px;margin-bottom:8px;background:#f8f9fa;border-radius:6px;cursor:pointer;transition:all .2s}.conversation-item:hover{background:#e9ecef}.conversation-item.active{background:#e7f3ff;border-left:4px solid #007bff}.conv-title{font-weight:600;color:#333;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-meta{display:flex;justify-content:space-between;font-size:11px;color:#999}.chatbot-main{flex:1;display:flex;flex-direction:column;background:#fff}.chatbot-header{display:flex;align-items:center;gap:15px;padding:20px;border-bottom:1px solid #e0e0e0;background:#fff}.btn-toggle-sidebar{padding:8px 12px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:16px}.btn-toggle-sidebar:hover{background:#e9ecef}.chatbot-header h1{flex:1;margin:0;font-size:20px;color:#333}.header-status{display:flex;align-items:center}.status-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-badge.online{background:#d4edda;color:#155724}.status-badge.offline{background:#f8d7da;color:#721c24}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.welcome-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}.welcome-icon{font-size:80px;margin-bottom:20px}.welcome-screen h2{margin:0 0 10px;color:#333}.welcome-screen p{color:#666;margin-bottom:30px;max-width:500px}.btn-start-chat{padding:12px 32px;background:#007bff;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;margin-bottom:30px}.btn-start-chat:hover{background:#0056b3}.messages-area{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:15px}.message{display:flex;gap:12px;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.message.assistant .message-avatar{background:#e7f3ff}.message.user .message-avatar{background:#d4edda}.message-content{max-width:70%;display:flex;flex-direction:column;gap:5px}.message.user .message-content{align-items:flex-end}.message-text{padding:12px 16px;border-radius:12px;background:#f8f9fa;color:#333;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.message.user .message-text{background:#007bff;color:#fff}.message.assistant .message-text{background:#f0f0f0}.message-references{font-size:11px;color:#666;padding:4px 8px;background:#f8f9fa;border-radius:4px}.message.user .message-references{background:#e7f3ff}.message-time{font-size:11px;color:#999;padding:0 8px}.typing-indicator{display:flex;gap:4px;padding:12px 16px;background:#f0f0f0;border-radius:12px}.typing-indicator span{width:8px;height:8px;background:#999;border-radius:50%;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-10px);opacity:1}}.input-area{border-top:1px solid #e0e0e0;padding:15px 20px;background:#fff}.quick-actions{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.quick-btn{padding:6px 12px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:20px;font-size:12px;cursor:pointer;transition:all .2s}.quick-btn:hover{background:#e9ecef;border-color:#007bff;color:#007bff}.input-container{display:flex;gap:10px;align-items:flex-end}.input-container textarea{flex:1;padding:12px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;resize:none;max-height:120px}.input-container textarea:focus{outline:none;border-color:#007bff}.input-container textarea:disabled{background:#f8f9fa;cursor:not-allowed}.btn-send{padding:12px 24px;background:#007bff;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-send:hover:not(:disabled){background:#0056b3}.btn-send:disabled{background:#ccc;cursor:not-allowed}.ai-predictive-page{padding:20px;background:#f5f7fa;min-height:100vh}.header-info{display:flex;gap:10px}.info-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:1px solid #e0e0e0;border-radius:20px;font-size:14px;color:#666}.badge-icon{font-size:18px}.tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:600;color:#666;transition:all .3s}.tab-content{background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.tab-content h2{margin:0 0 20px;color:#333;font-size:18px}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.model-card{background:#f8f9fa;padding:20px;border-radius:8px;border:1px solid #e0e0e0}.model-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.model-header h3{margin:0;color:#333;font-size:16px}.model-version{padding:4px 8px;background:#007bff;color:#fff;border-radius:4px;font-size:11px;font-weight:600}.model-info{display:flex;flex-direction:column;gap:12px}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:14px}.info-row .label{color:#666;font-weight:600}.info-row .value{color:#333}.accuracy-bar{position:relative;width:150px;height:20px;background:#e0e0e0;border-radius:10px;overflow:hidden}.accuracy-fill{height:100%;background:linear-gradient(90deg,#28a745,#20c997);transition:width .5s}.accuracy-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:600;color:#333}.forecast-chart{display:flex;justify-content:space-around;align-items:flex-end;gap:15px;padding:20px;background:#f8f9fa;border-radius:8px;min-height:300px}.forecast-item{display:flex;flex-direction:column;align-items:center;gap:10px;flex:1}.forecast-date{font-size:12px;font-weight:600;color:#666}.forecast-bar-container{display:flex;align-items:flex-end;height:150px}.forecast-bar{width:50px;background:linear-gradient(180deg,#007bff,#0056b3);border-radius:4px 4px 0 0;position:relative;display:flex;align-items:flex-start;justify-content:center;padding-top:5px;transition:height .5s}.forecast-value{color:#fff;font-weight:600;font-size:14px}.forecast-confidence{font-size:11px;color:#999}.forecast-trend{font-size:16px}.prediction-table{width:100%;border-collapse:collapse}.prediction-table th{background:#f8f9fa;padding:12px;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;font-size:13px}.prediction-table td{padding:12px;border-bottom:1px solid #dee2e6;font-size:13px}.prediction-table tr:hover{background:#f8f9fa}.risk-bar-container,.probability-bar-container{position:relative;width:100%;height:24px;background:#e0e0e0;border-radius:12px;overflow:hidden}.risk-bar,.probability-bar{height:100%;transition:width .5s}.risk-text,.probability-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:600;color:#333}.risk-badge,.status-badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;text-transform:uppercase}.priority-badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.priority-badge.urgent{background:#dc3545;color:#fff}.priority-badge.normal{background:#28a745;color:#fff}.prediction-table tr.risk-high{background:#fff5f5}.prediction-table tr.risk-medium{background:#fffbf0}.prediction-table tr.status-delayed{background:#fff5f5}.prediction-table tr.status-at_risk{background:#fffbf0}.prediction-table tr.status-on_track{background:#f0fff4}.ai-recommendations-page{padding:20px;background:#f5f7fa;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h1{margin:0;color:#333}.header-actions{display:flex;gap:10px}.btn-generate{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px}.btn-generate:hover:not(:disabled){background:#0056b3}.btn-generate:disabled{background:#ccc;cursor:not-allowed}.tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #e0e0e0}.tab{position:relative;padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:600;color:#666;transition:all .3s;display:flex;align-items:center;gap:8px}.tab:hover{color:#007bff}.tab.active{color:#007bff;border-bottom-color:#007bff}.tab-badge{padding:2px 8px;background:#dc3545;color:#fff;border-radius:10px;font-size:11px;font-weight:700}.content-layout{display:flex;gap:20px}.list-section{flex:1;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.list-section.full-width{flex:1;max-width:100%}.list-section h2{margin:0 0 20px;color:#333;font-size:18px}.detail-section{width:450px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-height:calc(100vh - 160px);overflow-y:auto}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #e0e0e0}.detail-header h2{margin:0;color:#333;font-size:18px}.btn-close{padding:4px 8px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:16px}.btn-close:hover{background:#e9ecef}.loading{text-align:center;padding:60px;color:#999;font-size:16px}.empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:60px;margin-bottom:20px}.empty-state p{color:#999;margin-bottom:20px}.recommendations-list{display:flex;flex-direction:column;gap:15px}.recommendation-card{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:8px;padding:15px;cursor:pointer;transition:all .3s}.recommendation-card:hover{border-color:#007bff;box-shadow:0 4px 12px #007bff1a}.recommendation-card.selected{border-color:#007bff;background:#e7f3ff}.card-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.rec-icon{font-size:32px;flex-shrink:0}.rec-info{flex:1}.rec-info h3{margin:0 0 5px;color:#333;font-size:16px}.rec-type{margin:0;font-size:12px;color:#666}.rec-meta{display:flex;align-items:center;gap:8px}.priority-badge{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;color:#fff}.card-body{margin-bottom:10px}.rec-description{margin:0 0 10px;color:#666;font-size:14px;line-height:1.5}.rec-stats{display:flex;gap:15px}.stat{flex:1}.stat-label{display:block;font-size:11px;color:#999;margin-bottom:5px}.confidence-bar{position:relative;height:20px;background:#e0e0e0;border-radius:10px;overflow:hidden}.confidence-fill{height:100%;background:linear-gradient(90deg,#28a745,#20c997);transition:width .5s}.confidence-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:600;color:#333}.card-footer{padding-top:10px;border-top:1px solid #e0e0e0}.card-footer small{color:#999;font-size:11px}.detail-content{display:flex;flex-direction:column;gap:20px}.detail-row{display:flex;align-items:center;gap:12px}.detail-icon{font-size:40px}.detail-row h3{margin:0 0 5px;color:#333;font-size:18px}.detail-type{margin:0;font-size:12px;color:#666}.detail-section-item{padding:15px;background:#f8f9fa;border-radius:6px}.detail-section-item h4{margin:0 0 10px;color:#333;font-size:14px;font-weight:600}.detail-section-item p{margin:0;color:#666;font-size:14px;line-height:1.6}.confidence-bar-large{position:relative;height:30px;background:#e0e0e0;border-radius:15px;overflow:hidden}.confidence-bar-large .confidence-fill{height:100%;background:linear-gradient(90deg,#28a745,#20c997)}.confidence-bar-large .confidence-text{font-size:13px;font-weight:700}.affected-items{display:flex;flex-wrap:wrap;gap:8px}.affected-tag{padding:4px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;color:#666}.detail-actions{display:flex;gap:10px;padding-top:10px}.detail-actions button{flex:1;padding:10px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s}.btn-apply{background:#28a745;color:#fff}.btn-apply:hover{background:#218838}.btn-accept{background:#007bff;color:#fff}.btn-accept:hover{background:#0056b3}.btn-reject{background:#dc3545;color:#fff}.btn-reject:hover{background:#c82333}.insights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.insight-card{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:8px;padding:15px;cursor:pointer;transition:all .3s}.insight-card.unread{border-color:#007bff;background:#e7f3ff}.insight-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.insight-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.insight-icon{font-size:32px;flex-shrink:0}.insight-info{flex:1}.insight-info h3{margin:0 0 5px;color:#333;font-size:16px}.insight-type{margin:0;font-size:12px;color:#666}.insight-meta{display:flex;align-items:center;gap:8px}.severity-badge{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;color:#fff}.unread-dot{color:#007bff;font-size:20px}.insight-body{margin-bottom:10px}.insight-body p{margin:0;color:#666;font-size:14px;line-height:1.5}.insight-footer{padding-top:10px;border-top:1px solid #e0e0e0}.insight-footer small{color:#999;font-size:11px}.ai-optimization-page{padding:2rem;max-width:1600px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e2e8f0}.header-content{display:flex;align-items:center;gap:1.5rem}.header-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,#8b5cf6,#6366f1);border-radius:12px;color:#fff}.page-header h1{font-size:2rem;font-weight:700;color:#1e293b;margin:0 0 .5rem}.page-description{color:#64748b;font-size:1rem;margin:0}.time-range-selector{display:flex;gap:.5rem;background:#f1f5f9;padding:4px;border-radius:8px}.time-range-selector button{padding:.5rem 1.5rem;border:none;background:transparent;color:#64748b;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s}.time-range-selector button:hover{background:#e2e8f0;color:#1e293b}.time-range-selector button.active{background:#fff;color:#8b5cf6;box-shadow:0 2px 4px #0000001a}.summary-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;gap:1rem;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.summary-card.highlight{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff}.summary-card .card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:#fff3;border-radius:10px;color:inherit}.summary-card:not(.highlight) .card-icon{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#8b5cf6}.card-label{font-size:.875rem;color:inherit;opacity:.8;margin-bottom:.25rem}.summary-card.highlight .card-label{color:#fff}.card-value{font-size:2rem;font-weight:700;color:inherit;line-height:1.2}.card-sublabel{font-size:.75rem;color:inherit;opacity:.7;margin-top:.25rem}.improvement-indicator{position:absolute;top:1rem;right:1rem;opacity:.3}.improvement-indicator.positive{color:#10b981}.summary-card.highlight .improvement-indicator{color:#fff}.tab-navigation{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid #e2e8f0;padding-bottom:0}.tab-navigation button{display:flex;align-items:center;gap:.5rem;padding:1rem 1.5rem;border:none;background:transparent;color:#64748b;font-weight:500;font-size:1rem;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;position:relative;top:2px}.tab-navigation button:hover{color:#8b5cf6;background:#f8f5ff}.tab-navigation button.active{color:#8b5cf6;border-bottom-color:#8b5cf6}.tab-content{min-height:600px}.comparison-table-wrapper{overflow-x:auto;margin-top:1rem}.comparison-table{width:100%;border-collapse:collapse;font-size:.95rem}.comparison-table thead{background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.comparison-table th{padding:1rem;text-align:left;font-weight:600;color:#1e293b;border-bottom:2px solid #e2e8f0;white-space:nowrap}.comparison-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background-color .2s}.comparison-table tbody tr:hover{background-color:#f8fafc}.comparison-table tbody tr.ai-algorithm{background-color:#faf5ff}.comparison-table tbody tr.ai-algorithm:hover{background-color:#f3e8ff}.comparison-table td{padding:1rem;color:#475569}.algorithm-badge{display:inline-block;padding:.5rem 1rem;border-radius:6px;color:#fff;font-weight:600;font-size:.875rem}.metric-cell{font-weight:500;position:relative}.best-badge{margin-left:.5rem;padding:.25rem .5rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:.75rem;font-weight:700;border-radius:4px}.rank-cell{font-weight:700;font-size:1.125rem;color:#8b5cf6}.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.chart-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014}.chart-card h3{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0 0 1rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:2rem}.kpi-impact-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.kpi-impact-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.kpi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.kpi-header h4{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0}.severity-badge{padding:.25rem .75rem;border-radius:6px;color:#fff;font-size:.75rem;font-weight:600;text-transform:uppercase}.kpi-comparison{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.kpi-before,.kpi-after{text-align:center;flex:1}.kpi-label{font-size:.875rem;color:#64748b;margin-bottom:.5rem}.kpi-value{font-size:2rem;font-weight:700;color:#1e293b}.kpi-value.highlight{color:#8b5cf6}.kpi-arrow{display:flex;align-items:center;justify-content:center}.kpi-improvement{margin-top:1rem}.improvement-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.improvement-fill{height:100%;border-radius:4px;transition:width .5s ease}.improvement-text{font-size:.875rem;color:#64748b;text-align:right}.improvement-text strong{color:#1e293b;font-size:1rem}.kpi-explanation-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 8px #00000014}.explanation-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.explanation-header h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0}.explanation-content{display:flex;flex-direction:column;gap:1.5rem}.explanation-section h4{font-size:1rem;font-weight:600;color:#1e293b;margin:0 0 .75rem}.explanation-section p{color:#475569;line-height:1.6;margin:0 0 .75rem}.causal-chain{list-style:none;padding:0;margin:0}.causal-chain li{padding:.5rem 0;color:#475569;font-size:.95rem}.causal-chain li:not(:last-child){border-left:2px solid #8b5cf6;padding-left:1rem;margin-left:.5rem}.recommendations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.recommendations-header h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0}.recommendations-stats{display:flex;gap:2rem}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-label{font-size:.875rem;color:#64748b}.stat-value{font-size:1.5rem;font-weight:700;color:#8b5cf6}.recommendations-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.recommendation-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.recommendation-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.recommendation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.rec-title-section{display:flex;align-items:center;gap:1rem;flex:1}.recommendation-header h4{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0}.priority-badge{padding:.25rem .75rem;border-radius:6px;color:#fff;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;white-space:nowrap}.status-badge.completed{background:#d1fae5;color:#065f46}.status-badge.in-progress{background:#fed7aa;color:#92400e}.status-badge.pending{background:#e0e7ff;color:#3730a3}.recommendation-description{color:#475569;line-height:1.6;margin:0 0 1rem}.recommendation-impact{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#f8f5ff;border-left:3px solid #8b5cf6;border-radius:6px}.impact-icon{display:flex;align-items:center;justify-content:center;color:#8b5cf6}.impact-text{color:#475569;font-size:.95rem;line-height:1.5}.impact-text strong{color:#1e293b}.next-steps-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 8px #00000014}.next-steps-card h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 1.5rem}.next-steps-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.next-steps-list li{padding-left:2rem;position:relative;color:#475569;line-height:1.6}.next-steps-list li:before{content:"•";position:absolute;left:.75rem;color:#8b5cf6;font-weight:700;font-size:1.25rem}@media (max-width: 1200px){.chart-grid{grid-template-columns:1fr}.chart-card.full-width{grid-column:1}}@media (max-width: 768px){.ai-optimization-page{padding:1rem}.page-header{flex-direction:column;gap:1rem}.header-content{gap:1rem}.header-icon{width:48px;height:48px}.page-header h1{font-size:1.5rem}.summary-cards{grid-template-columns:1fr}.tab-navigation{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-navigation button{white-space:nowrap}.kpi-grid{grid-template-columns:1fr}.kpi-comparison{flex-direction:column;gap:1.5rem}.kpi-arrow{transform:rotate(90deg)}.recommendations-header{flex-direction:column;align-items:flex-start;gap:1rem}.recommendation-header{flex-direction:column}.rec-title-section{flex-direction:column;align-items:flex-start}}.master-data-page{padding:1.5rem;max-width:1600px}.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e5e7eb;flex-wrap:wrap}.tabs button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;font-size:.875rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;margin-bottom:-2px}.tabs button:hover{color:#374151;background-color:#f9fafb}.tabs button.active{color:#3b82f6;border-bottom-color:#3b82f6;background-color:#eff6ff}.content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem;min-height:400px}.overview-section{display:flex;flex-direction:column;gap:2rem}.connection-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.connection-card{background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000000d;transition:transform .2s,box-shadow .2s}.connection-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.connection-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.connection-icon{width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.connection-info{flex:1}.connection-info h3{margin:0 0 .5rem;font-size:1.125rem;color:#1a1a1a}.connection-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.detail-row .label{color:#6b7280}.detail-row .value{font-weight:500;color:#1a1a1a}.btn-sync-small{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:4px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-sync-small:hover{background-color:#e5e7eb}.btn-sync-small:disabled{opacity:.5;cursor:not-allowed}.data-summary{background:#f9fafb;border-radius:8px;padding:1.5rem}.data-summary h3{margin:0 0 1.5rem;font-size:1.125rem;color:#1a1a1a}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.summary-item{background:#fff;border-radius:8px;padding:1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:0 1px 3px #0000000d;transition:transform .2s}.summary-item:hover{transform:translateY(-2px)}.summary-icon{color:#3b82f6}.summary-value{font-size:1.75rem;font-weight:700;color:#1a1a1a;line-height:1}.summary-label{font-size:.875rem;color:#6b7280;margin-top:.25rem}.table-section{display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{margin:0;font-size:1.25rem;color:#1a1a1a}.section-actions{display:flex;gap:.5rem}.table-container{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px}.table-container table{width:100%;border-collapse:collapse}.table-container thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.table-container th{padding:.75rem 1rem;text-align:left;font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap}.table-container tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.table-container tbody tr:hover{background-color:#f9fafb}.table-container tbody tr:last-child{border-bottom:none}.table-container td{padding:.875rem 1rem;font-size:.875rem;color:#1f2937}.table-container td strong{color:#1a1a1a;font-weight:600}.status-cell{display:flex;align-items:center;gap:.5rem}.status-icon.success{color:#10b981}.status-icon.error{color:#ef4444}.status-icon.warning{color:#f59e0b}.status-icon.progress{color:#3b82f6}.error-message{color:#ef4444;font-size:.8125rem}@media (max-width: 768px){.master-data-page{padding:1rem}.page-header{flex-direction:column;gap:1rem}.header-actions{width:100%}.header-actions button{flex:1}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tabs button{white-space:nowrap}.connection-cards,.summary-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.section-actions{width:100%}.section-actions button{flex:1}.table-container{overflow-x:auto}.table-container table{min-width:600px}}.jobs-page{padding:1.5rem;max-width:1600px}.page-header h2{font-size:1.75rem;margin:0 0 .25rem;color:#1a1a1a}.page-subtitle{font-size:.875rem;color:#6b7280;margin:0}.btn-primary{display:flex;align-items:center;gap:.5rem;background-color:#3b82f6;color:#fff;padding:.625rem 1.25rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.filters-section{display:flex;gap:1rem;margin-bottom:1.5rem}.search-box{flex:1;display:flex;align-items:center;gap:.75rem;background:#fff;padding:.75rem 1rem;border-radius:6px;border:1px solid #e5e7eb}.search-box input{flex:1;border:none;outline:none;font-size:.875rem}.filter-group{display:flex;align-items:center;gap:.75rem;background:#fff;padding:.75rem 1rem;border-radius:6px;border:1px solid #e5e7eb}.filter-group select{border:none;outline:none;font-size:.875rem;cursor:pointer}.jobs-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.jobs-table{width:100%;border-collapse:collapse}.jobs-table thead{background-color:#f9fafb}.jobs-table th{padding:.75rem 1rem;text-align:left;font-size:.875rem;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.jobs-table td{padding:.75rem 1rem;font-size:.875rem;color:#1a1a1a;border-bottom:1px solid #e5e7eb}.jobs-table tbody tr:hover{background-color:#f9fafb}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff}.priority-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:500}.priority-badge.high{background-color:#fee2e2;color:#991b1b}.priority-badge.medium{background-color:#dbeafe;color:#1e40af}.priority-badge.low{background-color:#f3f4f6;color:#4b5563}.progress-container{position:relative;width:100px;height:20px;background-color:#e5e7eb;border-radius:10px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);transition:width .3s}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:600;color:#1a1a1a}.overdue{color:#ef4444;font-weight:600}.btn-icon{padding:.375rem;background:transparent;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s}.btn-icon:hover{background-color:#f3f4f6;color:#1a1a1a}.btn-icon.danger:hover{background-color:#fee2e2;color:#ef4444;border-color:#ef4444}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.empty-state p{margin-top:1rem;font-size:.9375rem}.modal-content{background:#fff;border-radius:8px;padding:1.5rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.machines-page{padding:1.5rem;max-width:1600px}.stat-icon.utilization{background-color:#8b5cf6}.machines-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.machine-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s}.machine-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.machine-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f9fafb,#fff)}.machine-title{display:flex;align-items:center;gap:.75rem}.machine-icon{font-size:2rem}.machine-title h3{margin:0;font-size:1.125rem;color:#1a1a1a}.machine-title p{margin:.25rem 0 0;font-size:.875rem;color:#6b7280}.machine-body{padding:1.25rem}.machine-info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.machine-info-row:last-of-type{border-bottom:none}.machine-info-row .label{font-size:.875rem;color:#6b7280}.machine-info-row .value{font-size:.875rem;font-weight:500;color:#1a1a1a}.machine-info-row .value.highlight{color:#3b82f6;font-weight:600}.utilization-section{margin-top:1rem;padding:1rem;background-color:#f9fafb;border-radius:6px}.utilization-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.utilization-header .label{font-size:.875rem;color:#6b7280}.utilization-header .value{font-size:1.25rem;font-weight:700}.utilization-bar{height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.utilization-fill{height:100%;transition:width .3s,background-color .3s}.maintenance-info{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.maintenance-row{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;font-size:.875rem}.maintenance-row .label{color:#6b7280}.maintenance-row .value{font-weight:500;color:#1a1a1a;margin-left:auto}.machine-actions{padding:1rem 1.25rem;border-top:1px solid #e5e7eb;background-color:#f9fafb}.status-select{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;background-color:#fff;cursor:pointer}.status-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}@media (max-width: 768px){.machines-grid,.stats-cards{grid-template-columns:1fr}}.resources-page{padding:1.5rem;max-width:1600px}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-icon.in-use{background-color:#3b82f6}.stat-icon.low-stock{background-color:#f59e0b}.stat-icon.out-of-stock{background-color:#ef4444}.resources-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.resources-table{width:100%;border-collapse:collapse}.resources-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.resources-table th{padding:.75rem 1rem;text-align:left;font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap}.resources-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.resources-table tbody tr:hover{background-color:#f9fafb}.resources-table tbody tr.out-of-stock-row{background-color:#fef2f2}.resources-table tbody tr.out-of-stock-row:hover{background-color:#fee2e2}.resources-table td{padding:.875rem 1rem;font-size:.875rem;color:#1f2937}.type-cell{display:flex;align-items:center;gap:.5rem}.low-quantity{color:#ef4444;font-weight:600}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff}.quantity-controls{display:flex;gap:.5rem}.btn-quantity{width:32px;height:32px;border:1px solid #d1d5db;background-color:#fff;border-radius:4px;font-size:1.125rem;font-weight:600;color:#374151;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.btn-quantity:hover{background-color:#f3f4f6;border-color:#9ca3af}.btn-quantity:active{background-color:#e5e7eb}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;padding:1.5rem}.modal-content h3{margin:0 0 1.5rem;font-size:1.25rem;color:#1a1a1a}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group input,.form-group select{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}@media (max-width: 768px){.resources-table-container{overflow-x:auto}.resources-table{min-width:800px}.stats-cards,.form-grid{grid-template-columns:1fr}}.workflow-progress{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 1px 3px #0000001a}.workflow-steps{display:flex;align-items:center;justify-content:space-between;gap:.5rem;overflow-x:auto;padding:.5rem 0}.workflow-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:120px;position:relative}.step-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;transition:all .3s}.workflow-step.completed .step-icon{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.workflow-step.current .step-icon{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea66;animation:pulse 2s infinite}.workflow-step.upcoming .step-icon{background:#f1f5f9;color:#94a3b8}.step-info{text-align:center}.step-number{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.workflow-step.completed .step-number{color:#059669}.workflow-step.current .step-number{color:#667eea}.workflow-step.upcoming .step-number{color:#94a3b8}.step-label{font-size:.875rem;font-weight:500;white-space:nowrap}.workflow-step.completed .step-label{color:#1e293b}.workflow-step.current .step-label{color:#667eea;font-weight:600}.workflow-step.upcoming .step-label{color:#64748b}.step-connector{display:flex;align-items:center;color:#cbd5e1;flex-shrink:0}.step-connector.completed{color:#10b981}@keyframes pulse{0%,to{box-shadow:0 4px 12px #667eea66}50%{box-shadow:0 4px 20px #667eea99}}@media (max-width: 1400px){.workflow-steps{justify-content:flex-start}.workflow-step{min-width:100px}.step-label{font-size:.8125rem}}@media (max-width: 768px){.workflow-progress{padding:1rem}.workflow-steps{gap:.25rem}.workflow-step{min-width:80px}.step-icon{width:36px;height:36px}.step-icon svg{width:18px;height:18px}.step-number{font-size:.625rem}.step-label{font-size:.75rem}.step-connector svg{width:16px;height:16px}}.production-plan-input-page{padding:2rem;max-width:1600px;margin:0 auto}.header-content{display:flex;align-items:center;gap:1rem}.header-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff}.page-description{color:#64748b;font-size:.95rem;margin-top:.5rem}.erp-connection-status{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.connection-info{display:flex;align-items:center;gap:1rem}.connection-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#f1f5f9;border-radius:8px}.connection-details h3{margin:0;font-size:1.1rem;color:#1e293b}.connection-details p{margin:.25rem 0 0;font-size:.875rem;color:#64748b}.connection-actions{display:flex;gap:.75rem}.btn-refresh{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s}.btn-refresh:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.search-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem;margin-bottom:1.5rem}.search-filters{display:flex;align-items:center;gap:1rem}.filter-group{display:flex;align-items:center;gap:.75rem;flex:1}.filter-group label{font-size:.875rem;font-weight:500;color:#475569;white-space:nowrap}.filter-group input[type=date]{padding:.5rem .75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem;color:#1e293b}.filter-group span{color:#94a3b8}.btn-search{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.5rem;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;box-shadow:0 2px 4px #667eea4d;transition:all .2s}.btn-search:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.btn-search:disabled{opacity:.6;cursor:not-allowed;transform:none}.plan-actions{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem}.plan-summary{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:500;color:#475569}.action-buttons{display:flex;gap:.75rem}.btn-select-all{padding:.5rem 1rem;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s}.btn-select-all:hover{background:#f8fafc;border-color:#94a3b8}.btn-import-aps{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;box-shadow:0 2px 4px #10b9814d;transition:all .2s}.btn-import-aps:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #10b98166}.btn-import-aps:disabled{opacity:.5;cursor:not-allowed;transform:none}.plans-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;margin-bottom:1.5rem}.plans-table{width:100%;border-collapse:collapse;font-size:.875rem}.plans-table thead{background:#f8fafc;border-bottom:2px solid #e2e8f0}.plans-table thead th{padding:.875rem 1rem;text-align:left;font-weight:600;color:#475569;font-size:.8125rem;text-transform:uppercase;letter-spacing:.025em}.plans-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background-color .15s}.plans-table tbody tr:hover{background:#fafbfc}.plans-table tbody tr.selected{background:#eff6ff}.plans-table tbody td{padding:.875rem 1rem;color:#1e293b}.plans-table tbody td input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea}.plans-table tbody td input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.plan-id{font-weight:600;color:#667eea}.item-name{font-weight:500}.qty{text-align:right;font-weight:500}.code{font-family:Monaco,Courier New,monospace;font-size:.8125rem;color:#64748b}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.status-new{background:#e0e7ff;color:#4338ca}.status-imported{background:#d1fae5;color:#065f46}.status-optimizing{background:#fef3c7;color:#92400e}.status-completed{background:#dbeafe;color:#1e40af}.priority-badge{display:inline-block;padding:.25rem .625rem;border-radius:10px;font-size:.75rem;font-weight:600;color:#fff}.date-overdue{color:#ef4444;font-weight:600}.date-urgent{color:#f59e0b;font-weight:600}.date-normal{color:#64748b}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.empty-state h3{margin:1.5rem 0 .5rem;color:#1e293b;font-size:1.25rem}.empty-state p{margin:0;color:#64748b;font-size:.95rem;text-align:center;max-width:500px}.info-panel{background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.info-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.info-header h4{margin:0;color:#92400e;font-size:1rem}.info-list{margin:0;padding-left:1.5rem;color:#78350f}.info-list li{margin-bottom:.75rem;line-height:1.6}.info-list li:last-child{margin-bottom:0}.info-list strong{color:#92400e;font-weight:600}.next-step-guide{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-left:4px solid #10b981;border-radius:8px;margin-top:1.5rem}.guide-content{display:flex;align-items:center;gap:1rem;flex:1}.guide-content h4{margin:0 0 .25rem;color:#065f46;font-size:1rem}.guide-content p{margin:0;color:#047857;font-size:.875rem}.btn-next-step{padding:.75rem 1.5rem;border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;box-shadow:0 2px 4px #10b9814d;transition:all .2s;white-space:nowrap}.btn-next-step:hover{transform:translateY(-1px);box-shadow:0 4px 8px #10b98166}@media (max-width: 1200px){.plans-table{font-size:.8125rem}.plans-table thead th,.plans-table tbody td{padding:.75rem .875rem}}@media (max-width: 768px){.production-plan-input-page{padding:1rem}.search-filters,.filter-group{flex-direction:column;align-items:stretch}.plan-actions{flex-direction:column;align-items:stretch;gap:1rem}.action-buttons{justify-content:space-between}.next-step-guide{flex-direction:column;gap:1rem;text-align:center}.btn-next-step{width:100%}.plans-table-container{overflow-x:auto}.plans-table{min-width:1200px}}.plans-page-advanced{padding:1.5rem;max-width:1800px}.filter-section{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;gap:2rem}.date-filter-group{display:flex;align-items:center;gap:.75rem;flex:1}.date-filter-group label{font-weight:600;color:#374151;font-size:.875rem}.date-input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;color:#374151;transition:border-color .2s}.date-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.quick-date-buttons{display:flex;gap:.5rem;margin-left:.5rem}.btn-quick-date{padding:.5rem 1rem;border:1px solid #d1d5db;background:#fff;color:#6b7280;font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s}.btn-quick-date:hover{background:#f3f4f6;border-color:#9ca3af}.btn-quick-date.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.mes-transfer-group{display:flex;align-items:center;gap:.75rem}.btn-select-all{padding:.5rem 1rem;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:.875rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s}.btn-select-all:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.btn-select-all:disabled{opacity:.5;cursor:not-allowed}.btn-transfer-mes{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #10b98133}.btn-transfer-mes:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.btn-transfer-mes:disabled{opacity:.5;cursor:not-allowed;transform:none}.gantt-legend{display:flex;gap:2rem;padding:1rem 1.5rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151}.legend-color{width:24px;height:16px;border-radius:3px}.gantt-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.gantt-header-row{display:grid;grid-template-columns:280px 1fr;border-bottom:2px solid #e5e7eb;background:#f9fafb}.gantt-machine-column{padding:1rem 1.5rem;border-right:2px solid #e5e7eb}.gantt-timeline-column{padding:1rem 1.5rem;position:relative}.machine-header-label{font-weight:600;font-size:.875rem;color:#374151;text-transform:uppercase;letter-spacing:.05em}.timeline-header{display:flex;justify-content:space-between;font-size:.875rem;font-weight:500;color:#6b7280}.gantt-body{max-height:calc(100vh - 400px);overflow-y:auto}.gantt-row{display:grid;grid-template-columns:280px 1fr;border-bottom:1px solid #e5e7eb;transition:background-color .2s}.gantt-row:hover{background-color:#f9fafb}.gantt-row.drop-target{background-color:#dbeafe;border:2px dashed #3b82f6}.machine-info{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.machine-name-row{display:flex;flex-direction:column;gap:.25rem}.machine-code{font-size:.8125rem;font-weight:600;color:#1a1a1a}.machine-name{font-size:.75rem;color:#6b7280}.machine-load{display:flex;align-items:center;gap:.75rem}.load-bar-container{flex:1;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.load-bar{height:100%;background:linear-gradient(90deg,#10b981,#3b82f6);border-radius:4px;transition:width .3s}.load-bar.overload{background:linear-gradient(90deg,#f59e0b,#ef4444)}.load-text{font-size:.8125rem;font-weight:600;color:#374151;min-width:45px;text-align:right}.load-text.overload{color:#ef4444}.machine-jobs-count{font-size:.75rem;color:#9ca3af}.timeline-grid{position:relative;height:80px;padding:1.25rem 1.5rem}.gantt-job-bar{position:absolute;height:36px;background:#fff;border:2px solid #e5e7eb;border-left-width:5px;border-radius:6px;cursor:grab;transition:all .2s;display:flex;align-items:center;gap:.5rem;padding:0 .75rem;box-shadow:0 1px 3px #0000001a}.job-checkbox{width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:#10b981}.gantt-job-bar:hover{transform:translateY(-2px);box-shadow:0 4px 6px #00000026;z-index:10}.gantt-job-bar.dragging{cursor:grabbing;transform:rotate(2deg);box-shadow:0 8px 16px #0003}.gantt-job-bar.locked{cursor:not-allowed;opacity:.7;background:#f9fafb}.gantt-job-bar.locked:hover{transform:none}.job-bar-content{display:flex;align-items:center;gap:.5rem;flex:1;overflow:hidden}.job-wo-label{font-size:.75rem;font-weight:600;color:#1a1a1a;white-space:nowrap}.job-item-label{font-size:.6875rem;color:#6b7280;white-space:nowrap}.job-lock-icon{font-size:.875rem;opacity:.5}.job-details-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.job-details-panel{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e5e7eb}.panel-header h3{margin:0;font-size:1.25rem;color:#1a1a1a}.panel-body{padding:1.5rem}.detail-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.detail-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0}.detail-row label{font-size:.875rem;color:#6b7280;font-weight:500}.detail-row span{font-size:.875rem;color:#1a1a1a;font-weight:400}.detail-value-large{font-size:1.125rem!important;font-weight:600!important;color:#3b82f6!important}.freeze-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff}.lock-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.lock-badge.locked{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.lock-badge.unlocked{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.move-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.move-badge.can{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.move-badge.cannot{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}@media (max-width: 1024px){.gantt-header-row,.gantt-row{grid-template-columns:220px 1fr}.gantt-legend{flex-wrap:wrap;gap:1rem}}@media (max-width: 768px){.plans-page-advanced{padding:1rem}.gantt-header-row,.gantt-row{grid-template-columns:180px 1fr}.machine-info,.timeline-grid{padding:1rem}.gantt-job-bar{height:32px;padding:0 .5rem}.job-wo-label{font-size:.6875rem}.job-item-label{display:none}}.events-page-advanced{padding:1.5rem;max-width:1800px}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-wrapper svg{position:absolute;left:.75rem;color:#9ca3af}.search-input-wrapper input{padding-left:2.5rem;width:100%}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.form-group input,.form-group select,.form-group textarea{padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-group textarea{resize:vertical;font-family:inherit}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1rem}.event-card{background:#fff;border-radius:8px;border:2px solid #e5e7eb;padding:1.25rem;cursor:pointer;transition:all .2s}.event-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.event-card.critical{border-left:4px solid #991b1b;background:linear-gradient(135deg,#fff,#fef2f2)}.event-card.high{border-left:4px solid #ef4444}.event-card.medium{border-left:4px solid #f59e0b}.event-card.low{border-left:4px solid #10b981}.event-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.event-type-badge{padding:.375rem .75rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.75rem;font-weight:600;color:#374151}.status-badge-event{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff}.event-card-body h3{margin:0 0 .75rem;font-size:1rem;color:#1a1a1a;line-height:1.4}.event-meta{display:flex;gap:1rem;font-size:.8125rem;color:#6b7280}.event-card-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.event-impact{display:flex;align-items:center;gap:.5rem;flex:1}.impact-label{font-size:.75rem;color:#6b7280}.impact-bar-container{flex:1;height:6px;background-color:#e5e7eb;border-radius:3px;overflow:hidden}.impact-bar{height:100%;border-radius:3px;transition:width .3s}.impact-value{font-size:.75rem;font-weight:600;color:#374151;min-width:30px;text-align:right}.event-time{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#9ca3af}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content,.modal-content-large{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;overflow-y:auto}.modal-content{width:90%;max-width:500px}.modal-content-large{width:90%;max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e5e7eb}.modal-header h3{margin:0;font-size:1.25rem;color:#1a1a1a}.close-btn{background:none;border:none;cursor:pointer;color:#6b7280;transition:color .2s;padding:.25rem;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#ef4444}.event-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:2px solid #e5e7eb}.event-type-large{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.875rem;font-weight:600;color:#374151}.detail-section{margin-bottom:1.5rem}.detail-section:last-child{margin-bottom:0}.detail-section h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1a1a1a}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.375rem}.detail-item label{font-size:.75rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.detail-item span{font-size:.875rem;color:#1a1a1a;font-weight:500}.severity-badge{display:inline-flex;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;color:#fff}.event-description{margin:0;font-size:.875rem;color:#374151;line-height:1.6}.recommended-action{display:flex;gap:.75rem;padding:1rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.recommended-action svg{flex-shrink:0;color:#f59e0b}.recommended-action p{margin:0;font-size:.875rem;color:#374151;line-height:1.6}@media (max-width: 1024px){.events-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.detail-grid{grid-template-columns:1fr}}@media (max-width: 768px){.events-page-advanced{padding:1rem}.events-grid{grid-template-columns:1fr}.stats-cards{grid-template-columns:repeat(2,1fr)}}.task-guidance{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem;margin-bottom:1.5rem}.guidance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.guidance-header h3{margin:0;font-size:1.125rem;color:#1a1a1a}.guidance-progress{display:flex;align-items:center;gap:1rem}.progress-text{font-size:.875rem;font-weight:600;color:#374151;min-width:80px}.progress-bar-bg{width:200px;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.progress-bar-fg{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;transition:width .3s}.guidance-steps{display:flex;flex-direction:row;gap:1rem;align-items:stretch}.task-step{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;border-radius:8px;transition:all .2s;cursor:pointer;position:relative;flex:1;min-width:0;border:2px solid #e5e7eb}.task-step:hover{background-color:#f9fafb;transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.task-step.current{background-color:#eff6ff;border:2px solid #3b82f6}.task-step.completed{opacity:.85;border-color:#10b981;background-color:#f0fdf4}.task-step.in-progress{background-color:#fef3c7;border:2px solid #f59e0b}.task-step.warning{background-color:#fef2f2;border:2px solid #ef4444}.task-step.info{background-color:#eff6ff;border:2px solid #3b82f6}.step-indicator{display:flex;flex-direction:row;align-items:center;gap:.5rem;flex-shrink:0}.step-number{width:32px;height:32px;border-radius:50%;background-color:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.task-step.completed .step-number{background-color:#10b981;color:#fff}.task-step.in-progress .step-number{background-color:#f59e0b;color:#fff}.task-step.warning .step-number{background-color:#ef4444;color:#fff}.task-step.info .step-number{background-color:#3b82f6;color:#fff}.status-icon.in-progress{color:#f59e0b;animation:pulse 2s infinite}.status-icon.warning{color:#ef4444}.status-icon.info{color:#3b82f6}.status-icon.pending{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%}.step-content{flex:1;text-align:center;display:flex;flex-direction:column;gap:.5rem}.step-title{margin:0;font-size:.95rem;font-weight:600;color:#1a1a1a}.step-description{margin:0;font-size:.8rem;color:#6b7280;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.step-action-btn{margin-top:.75rem;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.step-action-btn:hover{background-color:#2563eb}.step-connector{position:absolute;left:100%;top:50%;transform:translateY(-50%);width:1rem;height:2px;background-color:#e5e7eb}.task-step.completed .step-connector{background-color:#10b981}.task-step:last-child .step-connector{display:none}@media (max-width: 1024px){.guidance-steps{flex-direction:column}.task-step{flex-direction:row;text-align:left}.step-content{text-align:left}.step-connector{left:2.25rem;top:100%;transform:none;width:2px;height:1rem}.task-step:last-child .step-connector{display:none}}@media (max-width: 768px){.guidance-header{flex-direction:column;align-items:flex-start;gap:1rem}.guidance-progress{width:100%}.progress-bar-bg{flex:1}.task-step{padding:1rem}.step-title{font-size:.9rem}.step-description{font-size:.75rem}}.next-step-guide{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-radius:8px;margin-top:2rem;gap:1.5rem;animation:slideIn .5s ease-out}.guide-content{display:flex;align-items:flex-start;gap:1rem;flex:1}.guide-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#ffffff80;border-radius:50%;flex-shrink:0}.guide-text{flex:1}.guide-text h4{margin:0 0 .5rem;font-size:1rem;font-weight:600}.guide-text p{margin:0;font-size:.875rem;line-height:1.5}.btn-next-step{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;color:#fff;font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 4px #0000001a;transition:all .2s;flex-shrink:0}.btn-next-step:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn-next-step:active{transform:translateY(0)}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.next-step-guide{flex-direction:column;align-items:stretch;gap:1rem;text-align:center}.guide-content{flex-direction:column;align-items:center;text-align:center}.btn-next-step{width:100%;justify-content:center}}.algorithm-comparison-page{padding:2rem;max-width:1800px;margin:0 auto}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem;border-left:4px solid #6b7280}.summary-card.ga{border-left-color:#8b5cf6}.summary-card.best-rule{border-left-color:#10b981}.summary-card.improvement{border-left-color:#f59e0b}.summary-card.ga .card-icon{color:#8b5cf6}.summary-card.best-rule .card-icon{color:#10b981}.summary-card.improvement .card-icon{color:#f59e0b}.card-content h3{font-size:1rem;color:#6b7280;margin:0 0 .75rem}.best-rule-name{font-size:1.5rem;font-weight:700;color:#10b981;margin-bottom:.75rem}.improvement-value{font-size:2.5rem;font-weight:700;color:#8b5cf6;margin-bottom:.5rem}.improvement-desc{font-size:.875rem;color:#6b7280;margin:0}.metrics{display:flex;flex-direction:column;gap:.5rem}.metric{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#f9fafb;border-radius:4px}.metric .label{font-size:.75rem;color:#6b7280}.metric .value{font-size:.875rem;font-weight:600;color:#1a1a1a}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(550px,1fr));gap:1.5rem;margin-bottom:2rem}.dispatch-rules-table{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.dispatch-rules-table h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.dispatch-rules-table table{width:100%;border-collapse:collapse}.dispatch-rules-table th,.dispatch-rules-table td{padding:.75rem;text-align:left;border-bottom:1px solid #e5e7eb}.dispatch-rules-table th{background-color:#f9fafb;font-weight:600;color:#374151;font-size:.875rem}.dispatch-rules-table tr.best{background-color:#f0fdf4}.dispatch-rules-table .badge{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;background-color:#10b981;color:#fff;border-radius:4px;font-size:.75rem;font-weight:600}@media (max-width: 1400px){.charts-section{grid-template-columns:1fr}}@media (max-width: 768px){.algorithm-comparison-page{padding:1rem}.control-panel{flex-direction:column;align-items:stretch}.param-group input{width:100%}.summary-cards{grid-template-columns:1fr}.dispatch-rules-table{overflow-x:auto}}.bottleneck-analysis-page{padding:2rem;max-width:1600px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header p{color:#6b7280;font-size:1rem;margin:0}.control-panel{display:flex;gap:1.5rem;align-items:flex-end;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.param-group{display:flex;flex-direction:column;gap:.5rem}.param-group label{font-size:.875rem;font-weight:500;color:#374151}.param-group input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9375rem;width:120px}.run-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.5rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.run-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.run-btn:disabled{opacity:.6;cursor:not-allowed}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.card-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:8px;background:#f9fafb;flex-shrink:0}.card-icon.bottleneck{color:#ef4444}.card-icon.utilization{color:#8b5cf6}.card-icon.jobs{color:#10b981}.card-content{flex:1}.card-content h3{font-size:.875rem;color:#6b7280;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:2rem;font-weight:700;color:#1a1a1a;margin-bottom:.25rem}.stat-label{font-size:.875rem;color:#6b7280;margin:0}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:1.5rem;margin-bottom:2rem}.chart-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.chart-card.full-width{grid-column:1 / -1}.chart-card h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.heatmap-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.heatmap-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1.5rem}.heatmap-grid{display:flex;flex-direction:column;gap:.75rem}.heatmap-row{display:grid;grid-template-columns:100px 1fr 120px;gap:1rem;align-items:center}.heatmap-label{font-weight:600;color:#374151;font-size:.875rem}.heatmap-bar{height:32px;background:#f3f4f6;border-radius:4px;overflow:hidden}.heatmap-fill{height:100%;transition:width .3s ease}.heatmap-value{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#1a1a1a;font-size:.875rem}.bottleneck-badge{display:inline-block;padding:.125rem .5rem;background-color:#ef4444;color:#fff;border-radius:4px;font-size:.75rem;font-weight:600}.analysis-details{margin-bottom:2rem}.analysis-details h3{font-size:1.25rem;color:#1a1a1a;margin:0 0 1.5rem}.analysis-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:1.5rem}.analysis-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border-left:4px solid #6b7280}.analysis-card.bottleneck{border-left-color:#ef4444}.analysis-card.normal{border-left-color:#10b981}.analysis-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.analysis-title{display:flex;align-items:center;gap:.75rem}.analysis-title h4{margin:0;font-size:1.25rem;color:#1a1a1a}.icon-bottleneck{color:#ef4444}.icon-normal{color:#10b981}.analysis-score{font-size:1.5rem;font-weight:700;color:#ef4444;background:#fef2f2;padding:.5rem 1rem;border-radius:6px}.analysis-score.ok{color:#10b981;background:#f0fdf4}.analysis-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.metric{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#f9fafb;border-radius:4px}.metric-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:1.125rem;font-weight:600;color:#1a1a1a}.recommendations h5{font-size:.875rem;color:#6b7280;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em}.recommendation{padding:1rem;border-radius:6px;margin-bottom:.75rem;border:1px solid #e5e7eb}.recommendation.high{background:#fef2f2;border-color:#fecaca}.recommendation.medium{background:#fffbeb;border-color:#fde68a}.recommendation.low{background:#eff6ff;border-color:#bfdbfe}.recommendation.info{background:#f0fdf4;border-color:#bbf7d0}.rec-header{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}.rec-icon{flex-shrink:0}.rec-title{flex:1;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.rec-title strong{color:#1a1a1a;font-size:.9375rem}.priority-badge{padding:.125rem .5rem;border-radius:4px;font-size:.625rem;font-weight:700;letter-spacing:.05em}.priority-badge.high{background-color:#ef4444;color:#fff}.priority-badge.medium{background-color:#f59e0b;color:#fff}.priority-badge.low{background-color:#3b82f6;color:#fff}.priority-badge.info{background-color:#10b981;color:#fff}.rec-description{font-size:.875rem;color:#374151;margin:0 0 .75rem;line-height:1.5}.rec-actions{margin:0;padding-left:1.25rem}.rec-actions li{font-size:.8125rem;color:#6b7280;margin-bottom:.25rem}.whatif-scenario-page{padding:2rem;max-width:1600px;margin:0 auto}.header-actions{display:flex;gap:1rem}.compare-btn,.create-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.compare-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.compare-btn:hover,.create-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.template-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.template-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#f5f3ff;border-radius:8px;color:#8b5cf6;flex-shrink:0}.scenarios-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.scenarios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.scenario-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;transition:all .2s}.scenario-card.selected{border-color:#10b981;background:#f0fdf4}.scenario-card:hover{box-shadow:0 4px 12px #00000026}.scenario-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.scenario-checkbox{margin-top:.25rem;width:18px;height:18px;cursor:pointer}.scenario-title{flex:1;display:flex;justify-content:space-between;align-items:center}.scenario-title h4{font-size:1.125rem;color:#1a1a1a;margin:0}.status-icon.running{color:#f59e0b;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.status-icon.draft{color:#6b7280}.scenario-description{font-size:.875rem;color:#6b7280;margin:0 0 1rem;line-height:1.5}.scenario-meta{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.75rem;background:#f9fafb;border-radius:4px}.meta-item{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.scenario-results{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.75rem;background:#eff6ff;border-radius:4px}.result-metric{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.result-label{color:#1e40af;font-weight:500}.result-value{color:#1e3a8a;font-weight:700}.scenario-actions{display:flex;gap:.5rem}.action-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border:none;border-radius:4px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s;flex:1;justify-content:center}.action-btn.run{background:#8b5cf6;color:#fff}.action-btn.run:hover:not(:disabled){background:#7c3aed}.action-btn.run:disabled{opacity:.6;cursor:not-allowed}.action-btn.clone{background:#f3f4f6;color:#374151}.action-btn.clone:hover{background:#e5e7eb}.modal-content{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content.large{max-width:1200px}.comparison-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:2rem;margin-bottom:2rem}.chart-container h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.comparison-table{margin-top:2rem}.comparison-table h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.comparison-table table{width:100%;border-collapse:collapse}.comparison-table th{background-color:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.comparison-table .scenario-name{font-weight:600;color:#1a1a1a}.constraint-management-page{padding:2rem;max-width:1600px;margin:0 auto}.summary-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem}.summary-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:8px;flex-shrink:0}.summary-icon.total{background:#f5f3ff;color:#8b5cf6}.summary-icon.active{background:#f0fdf4;color:#10b981}.summary-icon.violations{background:#fffbeb;color:#f59e0b}.summary-icon.critical{background:#fef2f2;color:#ef4444}.summary-content{flex:1}.summary-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.summary-value{font-size:2rem;font-weight:700;color:#1a1a1a}.templates-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.template-card{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 2px 4px #0000001a;cursor:pointer;transition:all .2s;display:flex;gap:1rem;border:2px solid transparent}.template-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#f5f3ff;border-radius:6px;color:#8b5cf6;flex-shrink:0}.template-info h4{font-size:.9375rem;color:#1a1a1a;margin:0 0 .5rem}.template-info p{font-size:.8125rem;color:#6b7280;margin:0;line-height:1.4}.constraints-section{margin-bottom:2rem}.constraints-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.constraints-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.constraints-table{width:100%;border-collapse:collapse}.constraints-table th,.constraints-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb}.constraints-table th{background-color:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.constraints-table tbody tr{transition:background .2s}.constraints-table tbody tr:hover{background-color:#f9fafb}.constraints-table tbody tr.inactive{opacity:.6}.constraint-name{display:flex;flex-direction:column;gap:.25rem}.constraint-name strong{font-size:.9375rem;color:#1a1a1a}.constraint-desc{font-size:.8125rem;color:#6b7280}.type-badge{display:inline-block;padding:.25rem .75rem;background:#f3f4f6;color:#374151;border-radius:4px;font-size:.8125rem;font-weight:500}.priority-badge{display:inline-block;padding:.25rem .75rem;color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:4px;font-size:.8125rem;font-weight:500}.status-badge.inactive{background:#f3f4f6;color:#4b5563}.violation-count{display:inline-flex;align-items:center;gap:.375rem;color:#ef4444;font-weight:600}.no-violations{color:#6b7280}.action-buttons{display:flex;gap:.5rem}.action-btn{display:flex;align-items:center;justify-content:center;padding:.5rem;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.action-btn.toggle{background:#f3f4f6;color:#374151}.action-btn.toggle:hover{background:#e5e7eb}.violations-section{margin-bottom:2rem}.violations-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.violations-list{display:flex;flex-direction:column;gap:1rem}.violation-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border-left:4px solid #6b7280}.violation-card.critical{border-left-color:#ef4444;background:#fef2f2}.violation-card.warning{border-left-color:#f59e0b;background:#fffbeb}.violation-card.info{border-left-color:#3b82f6;background:#eff6ff}.violation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.violation-title{display:flex;align-items:center;gap:.75rem;color:#1a1a1a}.violation-constraint{font-weight:600;font-size:1rem}.severity-badge{padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.severity-badge.critical{background:#ef4444;color:#fff}.severity-badge.warning{background:#f59e0b;color:#fff}.severity-badge.info{background:#3b82f6;color:#fff}.resolve-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:#10b981;color:#fff;border:none;border-radius:4px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s}.resolve-btn:hover{background:#059669}.violation-description{font-size:.9375rem;color:#374151;margin:0 0 1rem;line-height:1.5}.violation-meta{display:flex;gap:.75rem;flex-wrap:wrap}.meta-tag{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;background:#0000000d;border-radius:4px;font-size:.8125rem;color:#374151}.meta-tag.penalty{background:#fef2f2;color:#991b1b;font-weight:600}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.job-sequence-page{padding:2rem;max-width:1600px;margin:0 auto}.create-btn,.optimize-btn,.compare-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.optimize-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.optimize-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.compare-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.compare-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.optimization-results{margin-bottom:2rem}.optimization-results h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.result-card{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;transition:all .2s}.result-card:hover{border-color:#10b981;transform:translateY(-2px);box-shadow:0 4px 12px #10b98133}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.result-header h4{font-size:1rem;color:#1a1a1a;margin:0}.score-badge{padding:.25rem .75rem;background:#f0fdf4;color:#166534;border-radius:4px;font-size:.75rem;font-weight:600}.result-metrics{display:flex;flex-direction:column;gap:.5rem}.metric{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.metric-value{color:#1a1a1a;font-weight:600}.sequences-section{margin-bottom:2rem}.sequences-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.sequences-list{display:flex;flex-direction:column;gap:1rem}.sequence-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;transition:all .2s}.sequence-card.selected{border-color:#8b5cf6;background:#faf5ff}.sequence-card:hover{box-shadow:0 4px 8px #00000026}.sequence-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.sequence-checkbox{width:18px;height:18px;cursor:pointer}.sequence-title{display:flex;align-items:center;gap:.75rem;flex:1}.sequence-title h4{font-size:1.125rem;color:#1a1a1a;margin:0}.status-badge.active{background:#f0fdf4;color:#166534}.status-badge.draft{background:#fffbeb;color:#92400e}.status-badge.archived{background:#f3f4f6;color:#4b5563}.sequence-description{font-size:.9375rem;color:#6b7280;margin:0 0 1rem}.sequence-meta{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}.meta-item{display:flex;gap:.5rem;font-size:.875rem}.meta-label{color:#6b7280}.meta-value{color:#1a1a1a;font-weight:600}.sequence-metrics{display:flex;gap:1.5rem;padding:1rem;background:#f9fafb;border-radius:6px;margin-bottom:1rem}.metric-item{display:flex;flex-direction:column;gap:.25rem}.metric-item .metric-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.metric-item .metric-value{font-size:1.125rem;color:#1a1a1a;font-weight:700}.job-list{margin:1rem 0;padding:1rem;background:#f9fafb;border-radius:6px}.job-list-header{margin-bottom:.75rem;font-size:.875rem;color:#374151}.job-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border-radius:4px;margin-bottom:.5rem;border:1px solid #e5e7eb;transition:all .2s}.job-item:hover{border-color:#8b5cf6;box-shadow:0 2px 4px #8b5cf61a}.grip-icon{color:#9ca3af;cursor:grab}.job-number{font-weight:600;color:#6b7280;min-width:30px}.job-id{flex:1;color:#1a1a1a;font-weight:500}.job-actions{display:flex;gap:.25rem}.move-btn{display:flex;align-items:center;justify-content:center;padding:.25rem;background:#f3f4f6;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.move-btn:hover:not(:disabled){background:#8b5cf6;color:#fff}.move-btn:disabled{opacity:.3;cursor:not-allowed}.sequence-actions{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn.view{background:#f3f4f6;color:#374151}.action-btn.view:hover{background:#e5e7eb}.action-btn.apply{background:#f0fdf4;color:#166534}.action-btn.apply:hover{background:#dcfce7}.action-btn.clone{background:#eff6ff;color:#1e40af}.action-btn.clone:hover{background:#dbeafe}.modal-content.large{max-width:1000px}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.comparison-chart{margin-bottom:2rem}.comparison-chart h3,.comparison-table h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.comparison-table table{width:100%;border-collapse:collapse;font-size:.875rem}.comparison-table th,.comparison-table td{padding:.75rem;text-align:left;border-bottom:1px solid #e5e7eb}.comparison-table th{background:#f9fafb;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.comparison-table tbody tr:hover{background:#f9fafb}.comparison-table .best-row{background:#f0fdf4}.comparison-table .best-row:hover{background:#dcfce7}.sequence-name{font-weight:600;color:#1a1a1a}.best-badge{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;background:#10b981;color:#fff;border-radius:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase}.score-cell{font-weight:700;color:#8b5cf6}.realtime-monitoring-page{padding:2rem;max-width:1800px;margin:0 auto;background:#f9fafb}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a}.subtitle{font-size:.875rem;color:#6b7280;margin:0}.header-actions{display:flex;gap:1rem;align-items:center}.refresh-control{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f3f4f6;border-radius:6px}.refresh-control label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151;cursor:pointer}.refresh-control input[type=checkbox]{cursor:pointer}.refresh-interval{padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;background:#fff}.refresh-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.refresh-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:2rem}.kpi-card{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;transition:all .2s}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.kpi-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;flex-shrink:0}.kpi-card.production .kpi-icon{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.kpi-card.quality .kpi-icon{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.kpi-card.efficiency .kpi-icon{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.kpi-card.delivery .kpi-icon{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.kpi-card.alerts .kpi-icon{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.kpi-content{flex:1}.kpi-label{font-size:.875rem;color:#6b7280;margin-bottom:.25rem;font-weight:500}.kpi-value{font-size:1.875rem;font-weight:700;color:#1a1a1a;line-height:1.2}.critical-badge{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;background:#fef2f2;color:#991b1b;border-radius:4px;font-size:.75rem;font-weight:600}.kpi-subtitle{font-size:.75rem;color:#9ca3af;margin-top:.25rem}.monitoring-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.monitoring-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.monitoring-section h2{font-size:1.25rem;color:#1a1a1a;margin:0 0 1.25rem;font-weight:600}.machines-section{grid-column:1 / -1}.machines-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.machine-card{padding:1.25rem;border-radius:8px;border:2px solid transparent;transition:all .2s;background:#f9fafb}.machine-card.running{border-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.machine-card.idle{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.machine-card.setup{border-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.machine-card.maintenance,.machine-card.breakdown{border-color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.machine-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.machine-title{display:flex;align-items:center;gap:.5rem}.machine-name{font-size:1.125rem;font-weight:700;color:#1a1a1a}.status-icon{flex-shrink:0}.status-icon.running{color:#10b981}.status-icon.idle{color:#f59e0b}.status-icon.setup{color:#3b82f6}.status-icon.maintenance,.status-icon.breakdown{color:#ef4444}.alert-indicator{color:#ef4444;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.machine-status-label{display:inline-block;padding:.25rem .75rem;background:#0000001a;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.machine-job{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#ffffffb3;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.job-label{color:#6b7280;font-weight:500}.job-value{color:#1a1a1a;font-weight:700}.progress-section{margin-bottom:1rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#374151}.progress-value{color:#8b5cf6}.progress-bar{height:8px;background:#0000001a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease}.time-remaining{margin-top:.375rem;font-size:.75rem;color:#6b7280;text-align:right}.machine-metrics{display:flex;gap:1rem}.metric-item{flex:1;padding:.75rem;background:#ffffffb3;border-radius:6px;display:flex;justify-content:space-between;font-size:.875rem}.metric-label{color:#6b7280}.metric-value{font-weight:700;color:#1a1a1a}.machine-idle-info{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:.75rem}.idle-icon{color:#9ca3af;opacity:.5}.machine-idle-info p{margin:0;color:#6b7280;font-size:.9375rem;text-transform:capitalize}.no-data{display:flex;align-items:center;justify-content:center;height:300px;color:#9ca3af;font-size:1rem}.alerts-list{display:flex;flex-direction:column;gap:.75rem;max-height:500px;overflow-y:auto}.alert-card{padding:1rem;border-radius:8px;border-left:4px solid;background:#f9fafb;transition:all .2s}.alert-card:hover{transform:translate(4px);box-shadow:0 2px 8px #0000001a}.alert-card.critical{border-left-color:#ef4444;background:linear-gradient(90deg,#fef2f2,#f9fafb)}.alert-card.error{border-left-color:#f97316;background:linear-gradient(90deg,#fff7ed,#f9fafb)}.alert-card.warning{border-left-color:#f59e0b;background:linear-gradient(90deg,#fffbeb,#f9fafb)}.alert-card.info{border-left-color:#3b82f6;background:linear-gradient(90deg,#eff6ff,#f9fafb)}.alert-header{display:flex;gap:.75rem;margin-bottom:.75rem}.severity-icon{flex-shrink:0}.severity-icon.critical{color:#ef4444}.severity-icon.error{color:#f97316}.severity-icon.warning{color:#f59e0b}.severity-icon.info{color:#3b82f6}.alert-title-section{flex:1}.alert-title{font-size:.9375rem;font-weight:600;color:#1a1a1a;margin-bottom:.25rem}.alert-meta{display:flex;gap:.375rem;align-items:center;font-size:.75rem;color:#6b7280}.alert-category{font-weight:600;text-transform:uppercase;letter-spacing:.05em}.alert-separator{color:#d1d5db}.alert-machine{font-weight:600}.alert-message{font-size:.875rem;color:#374151;margin-bottom:.75rem;line-height:1.5}.alert-actions{display:flex;gap:.5rem}.acknowledge-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#fff;border:1px solid #d1d5db;border-radius:4px;font-size:.8125rem;font-weight:600;color:#374151;cursor:pointer;transition:all .2s}.acknowledge-btn:hover{background:#f3f4f6;border-color:#9ca3af}.no-alerts{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#10b981;gap:1rem}.no-alerts p{margin:0;font-size:1.125rem;color:#6b7280}@media (max-width: 1400px){.monitoring-grid{grid-template-columns:1fr}.machines-section{grid-column:auto}}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.header-actions{width:100%;flex-direction:column}.kpi-grid,.machines-grid{grid-template-columns:1fr}}.reports-page{padding:2rem;max-width:1600px;margin:0 auto}.create-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.quick-export-section{margin-bottom:2rem}.quick-export-section h2{font-size:1.25rem;color:#1a1a1a;margin:0 0 1rem;font-weight:600}.export-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.export-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;transition:all .2s}.export-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.export-icon{color:#8b5cf6;margin-bottom:1rem}.export-card h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 .5rem}.export-card p{font-size:.875rem;color:#6b7280;margin:0 0 1rem}.export-actions{display:flex;gap:.5rem}.export-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:1px solid;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.export-btn.csv{background:#f0fdf4;color:#166534;border-color:#86efac}.export-btn.csv:hover{background:#dcfce7}.export-btn.json{background:#eff6ff;color:#1e40af;border-color:#93c5fd}.export-btn.json:hover{background:#dbeafe}.templates-section{margin-bottom:2rem}.templates-section h2{font-size:1.25rem;color:#1a1a1a;margin:0 0 1rem;font-weight:600}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.template-card{display:flex;flex-direction:column;background:#fff;padding:1.25rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;transition:all .2s;border:2px solid transparent}.template-card:hover{border-color:#8b5cf6;transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf633}.template-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#f3e8ff,#e9d5ff);border-radius:8px;color:#8b5cf6;margin-bottom:1rem}.template-content h3{font-size:1rem;color:#1a1a1a;margin:0 0 .5rem}.template-content p{font-size:.875rem;color:#6b7280;margin:0 0 .75rem;flex:1}.template-meta{margin-bottom:1rem}.template-type{display:inline-block;padding:.25rem .75rem;background:#f3f4f6;color:#374151;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.use-template-btn{padding:.625rem 1rem;background:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.use-template-btn:hover{background:#7c3aed}.reports-section{margin-bottom:2rem}.reports-section h2{font-size:1.25rem;color:#1a1a1a;margin:0 0 1rem;font-weight:600}.reports-list{display:flex;flex-direction:column;gap:1rem}.report-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;transition:all .2s}.report-card:hover{box-shadow:0 4px 8px #00000026}.report-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.report-title-section{display:flex;align-items:flex-start;gap:.75rem}.report-title-section h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 .25rem}.report-type{font-size:.875rem;color:#6b7280;margin:0}.status-icon{flex-shrink:0;margin-top:.125rem}.status-icon.completed{color:#10b981}.status-icon.failed{color:#ef4444}.status-icon.generating{color:#f59e0b;animation:spin 1s linear infinite}.status-icon.pending{color:#6b7280}.status-badge{padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge.completed{background:#f0fdf4;color:#166534}.status-badge.failed{background:#fef2f2;color:#991b1b}.status-badge.generating{background:#fffbeb;color:#92400e}.status-badge.pending{background:#f3f4f6;color:#4b5563}.report-description{font-size:.9375rem;color:#6b7280;margin:0 0 1rem}.report-meta{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:#6b7280}.report-actions{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn.view{background:#eff6ff;color:#1e40af}.action-btn.view:hover{background:#dbeafe}.action-btn.download{background:#f0fdf4;color:#166534}.action-btn.download:hover{background:#dcfce7}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:#9ca3af;gap:1rem}.modal-content.large{max-width:900px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.cancel-btn,.submit-btn,.download-report-btn{padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.submit-btn,.download-report-btn{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.submit-btn:hover:not(:disabled),.download-report-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.report-view{display:flex;flex-direction:column;gap:1.5rem}.report-info{display:flex;gap:2rem;padding:1rem;background:#f9fafb;border-radius:8px}.info-item{font-size:.875rem;color:#374151}.info-item strong{color:#1a1a1a;margin-right:.5rem}.report-summary h3,.report-data h3{font-size:1.125rem;color:#1a1a1a;margin:0 0 1rem}.summary-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.summary-metric{padding:1rem;background:#f9fafb;border-radius:8px;text-align:center}.metric-value{font-size:1.5rem;font-weight:700;color:#8b5cf6}.data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.data-item{padding:1rem;background:#f9fafb;border-radius:8px}.data-label{font-size:.75rem;color:#6b7280;text-transform:capitalize;margin-bottom:.5rem}.data-value{font-size:1.125rem;font-weight:700;color:#1a1a1a}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.export-cards,.templates-grid,.form-row,.summary-metrics,.data-grid{grid-template-columns:1fr}}.settings-page{padding:2rem;max-width:1400px;margin:0 auto}.settings-page.loading{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:1.125rem;color:#6b7280}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-header h1{font-size:2rem;color:#1a1a1a;margin:0 0 .5rem}.subtitle{font-size:1rem;color:#6b7280;margin:0}.save-btn,.reset-btn,.create-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.save-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.save-btn:disabled{opacity:.6;cursor:not-allowed}.reset-btn{background:#f3f4f6;color:#374151}.reset-btn:hover{background:#e5e7eb}.create-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.create-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e5e7eb}.tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;font-size:1rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s;margin-bottom:-2px}.tab:hover{color:#1a1a1a}.tab.active{color:#8b5cf6;border-bottom-color:#8b5cf6}.settings-content{display:flex;flex-direction:column;gap:2rem}.settings-section{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a}.section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.section-header h2{font-size:1.25rem;color:#1a1a1a;margin:0;font-weight:600}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.setting-item{display:flex;flex-direction:column;gap:.5rem}.setting-item label{font-size:.875rem;font-weight:600;color:#374151}.setting-input,.setting-select{padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9375rem;transition:all .2s}.setting-input:focus,.setting-select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.checkbox-item{flex-direction:row;align-items:center}.checkbox-item label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}.presets-content{display:flex;flex-direction:column;gap:2rem}.presets-section h2{font-size:1.25rem;color:#1a1a1a;margin:0 0 1rem;font-weight:600}.presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1rem}.preset-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;transition:all .2s;border:2px solid transparent}.preset-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.preset-card.system{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fff)}.preset-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.preset-title{display:flex;align-items:center;gap:.75rem;flex:1}.preset-title h3{font-size:1.125rem;color:#1a1a1a;margin:0}.favorite-btn{display:flex;align-items:center;justify-content:center;padding:.375rem;background:none;border:none;color:#d1d5db;cursor:pointer;transition:all .2s}.favorite-btn:hover,.favorite-btn.active{color:#f59e0b}.system-badge{display:inline-block;padding:.25rem .75rem;background:#f59e0b;color:#fff;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.usage-count{font-size:.75rem;color:#6b7280;font-weight:500}.preset-description{font-size:.9375rem;color:#6b7280;margin:0 0 1rem;line-height:1.5}.preset-config{margin-bottom:1rem;padding:.75rem;background:#f9fafb;border-radius:6px}.preset-config strong{display:block;font-size:.75rem;color:#6b7280;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.preset-config pre{margin:0;font-size:.8125rem;font-family:Courier New,monospace;color:#374151;overflow-x:auto}.preset-type-badge{display:inline-block;padding:.25rem .75rem;background:#e0e7ff;color:#4f46e5;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.preset-actions{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.action-btn.use{background:#eff6ff;color:#1e40af}.action-btn.use:hover{background:#dbeafe}.action-btn.duplicate{background:#f0fdf4;color:#166534}.action-btn.duplicate:hover{background:#dcfce7}.action-btn.delete{background:#fef2f2;color:#991b1b}.action-btn.delete:hover{background:#fee2e2}.use-preset-btn{width:100%;padding:.625rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.use-preset-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:#9ca3af;gap:1rem}.empty-state p{margin:0;font-size:1.125rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-content{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:1.5rem;color:#1a1a1a;margin:0}.close-btn{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:#f3f4f6;color:#1a1a1a}.modal-body{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.form-input,.form-textarea,.form-select{width:100%;padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9375rem;transition:all .2s}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.form-textarea{resize:vertical;font-family:inherit}.form-textarea.code{font-family:Courier New,monospace;font-size:.875rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid #e5e7eb}.cancel-btn,.submit-btn{padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn{background:#f3f4f6;color:#374151}.cancel-btn:hover{background:#e5e7eb}.submit-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.submit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.header-actions{width:100%}.settings-grid,.presets-grid{grid-template-columns:1fr}.tabs{overflow-x:auto}}.production-plan-page{padding:2rem;max-width:1800px;margin:0 auto}.sync-status-card{background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a}.sync-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.sync-status-title{display:flex;align-items:center;gap:1rem}.sync-status-title svg{color:#3b82f6}.sync-status-title h3{margin:0 0 .25rem;font-size:1.125rem;color:#1a1a1a}.sync-status-title p{margin:0;font-size:.875rem;color:#6b7280}.sync-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500}.sync-indicator.connected{background-color:#d1fae5;color:#065f46}.sync-indicator.syncing{background-color:#dbeafe;color:#1e40af}.sync-indicator.error{background-color:#fee2e2;color:#991b1b}.sync-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1rem}.sync-stat-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:6px;border:1px solid #e5e7eb}.sync-stat-item .label{font-size:.875rem;color:#6b7280}.sync-stat-item .value{font-size:1.25rem;font-weight:700;color:#1a1a1a}.sync-stat-item .value.warning{color:#f59e0b}.sync-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.sync-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;color:#fff;cursor:pointer;transition:all .2s}.sync-btn:disabled{opacity:.5;cursor:not-allowed}.sync-btn.erp{background-color:#8b5cf6}.sync-btn.erp:hover:not(:disabled){background-color:#7c3aed}.sync-btn.mes{background-color:#ec4899}.sync-btn.mes:hover:not(:disabled){background-color:#db2777}.sync-btn.aps{background-color:#06b6d4}.sync-btn.aps:hover:not(:disabled){background-color:#0891b2}.stat-icon.planned{background-color:#8b5cf6}.stat-icon.in-progress{background-color:#3b82f6}.stat-icon.delayed{background-color:#ef4444}.plans-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.plans-table{width:100%;border-collapse:collapse}.plans-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.plans-table th{padding:.75rem 1rem;text-align:left;font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap}.plans-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.plans-table tbody tr:hover{background-color:#f9fafb}.plans-table tbody tr:last-child{border-bottom:none}.plans-table td{padding:.875rem 1rem;font-size:.875rem;color:#1f2937;white-space:nowrap}.plans-table td strong{color:#1a1a1a;font-weight:600}.source-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff;white-space:nowrap}.priority-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;font-size:.875rem;font-weight:600;color:#fff}.priority-badge.priority-high{background-color:#ef4444}.priority-badge.priority-medium{background-color:#f59e0b}.priority-badge.priority-low{background-color:#10b981}.synced-time{font-size:.8125rem;color:#6b7280}.btn-send-mes{display:flex;align-items:center;justify-content:center;padding:.5rem;background-color:#ec4899;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s}.btn-send-mes:hover{background-color:#db2777}@media (max-width: 768px){.production-plan-page{padding:1rem}.sync-status-header{flex-direction:column;align-items:flex-start;gap:1rem}.sync-stats,.sync-actions,.stats-cards{grid-template-columns:1fr}.filters-section{flex-direction:column}.filter-group{width:100%}.plans-table-container{overflow-x:auto}.plans-table{min-width:1200px}}.work-order-page{padding:1.5rem;max-width:1800px}.btn-send{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#ec4899;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-send:hover:not(:disabled){background-color:#db2777}.btn-send:disabled{background-color:#9ca3af;cursor:not-allowed}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-icon.created{background-color:#6b7280}.stat-icon.released{background-color:#8b5cf6}.stat-icon.in-work{background-color:#3b82f6}.stat-icon.sent{background-color:#ec4899}.work-orders-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.work-orders-table{width:100%;border-collapse:collapse}.work-orders-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.work-orders-table th{padding:.75rem;text-align:left;font-size:.8125rem;font-weight:600;color:#374151;white-space:nowrap}.work-orders-table th input[type=checkbox]{cursor:pointer;width:16px;height:16px}.work-orders-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.work-orders-table tbody tr:hover{background-color:#f9fafb}.work-orders-table tbody tr:last-child{border-bottom:none}.work-orders-table td{padding:.75rem;font-size:.8125rem;color:#1f2937;white-space:nowrap}.work-orders-table td input[type=checkbox]{cursor:pointer;width:16px;height:16px}.work-orders-table td input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.work-orders-table td strong{color:#1a1a1a;font-weight:600}.mes-status{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;white-space:nowrap}.mes-status.confirmed{background-color:#d1fae5;color:#065f46}.mes-status.pending{background-color:#fef3c7;color:#92400e}.btn-send-small{display:flex;align-items:center;justify-content:center;padding:.5rem;background-color:#ec4899;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s}.btn-send-small:hover{background-color:#db2777}@media (max-width: 768px){.work-order-page{padding:1rem}.stats-cards{grid-template-columns:repeat(2,1fr)}.work-orders-table-container{overflow-x:auto}.work-orders-table{min-width:1400px}}.production-result-page{padding:1.5rem;max-width:1800px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.metric-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.metric-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.metric-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.metric-icon.total{background-color:#6b7280}.metric-icon.good{background-color:#10b981}.metric-icon.defect{background-color:#ef4444}.metric-icon.efficiency{background-color:#3b82f6}.metric-icon.defect-rate{background-color:#f59e0b}.metric-icon.achievement{background-color:#8b5cf6}.metric-trend{display:flex;align-items:center;gap:.25rem;padding:.375rem .625rem;border-radius:12px;font-size:.75rem;font-weight:500}.metric-trend.up{background-color:#d1fae5;color:#065f46}.metric-trend.down{background-color:#fee2e2;color:#991b1b}.metric-value{font-size:2rem;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:.5rem}.metric-label{font-size:.875rem;color:#6b7280}.results-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.results-table{width:100%;border-collapse:collapse}.results-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.results-table th{padding:.75rem;text-align:left;font-size:.8125rem;font-weight:600;color:#374151;white-space:nowrap}.results-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.results-table tbody tr:hover{background-color:#f9fafb}.results-table tbody tr:last-child{border-bottom:none}.results-table td{padding:.75rem;font-size:.8125rem;color:#1f2937;white-space:nowrap}.results-table td strong{color:#1a1a1a;font-weight:600}.shift-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:10px;font-size:.75rem;font-weight:500;white-space:nowrap}.shift-badge.day{background-color:#fef3c7;color:#92400e}.shift-badge.night{background-color:#dbeafe;color:#1e40af}.over-plan{color:#10b981;font-weight:600}.under-plan{color:#f59e0b;font-weight:500}.good-qty{color:#10b981;font-weight:500}.defect-qty{color:#ef4444;font-weight:600}.high-defect{color:#ef4444;font-weight:700}.low-defect{color:#10b981;font-weight:500}.high-efficiency{color:#10b981;font-weight:700}.medium-efficiency{color:#3b82f6;font-weight:500}.low-efficiency{color:#ef4444;font-weight:600}.synced-time{font-size:.75rem;color:#6b7280}@media (max-width: 768px){.production-result-page{padding:1rem}.metrics-grid{grid-template-columns:repeat(2,1fr)}.results-table-container{overflow-x:auto}.results-table{min-width:1600px}}.wip-monitoring-page{padding:1.5rem;max-width:1800px}.total-stats-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.total-stat-item{display:flex;align-items:center;gap:1rem}.total-stat-icon{width:56px;height:56px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.total-stat-icon.success{background:linear-gradient(135deg,#10b981,#059669)}.total-stat-icon.progress{background:linear-gradient(135deg,#f59e0b,#d97706)}.total-stat-icon.error{background:linear-gradient(135deg,#ef4444,#dc2626)}.total-stat-icon.info{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.total-stat-content{flex:1}.total-stat-value{font-size:1.75rem;font-weight:700;color:#1a1a1a;line-height:1}.total-stat-label{font-size:.875rem;color:#6b7280;margin-top:.25rem}.workcenter-summary{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.workcenter-summary h3{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.workcenter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.workcenter-card{background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem}.workcenter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.workcenter-header h4{margin:0;font-size:1rem;color:#1a1a1a}.wc-total{padding:.25rem .75rem;background-color:#3b82f6;color:#fff;border-radius:12px;font-size:.75rem;font-weight:600}.workcenter-stats{display:flex;gap:.75rem;margin-bottom:1rem}.wc-stat{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500}.wc-stat.running{background-color:#d1fae5;color:#065f46}.wc-stat.paused{background-color:#fef3c7;color:#92400e}.wc-stat.delayed{background-color:#fee2e2;color:#991b1b}.wc-progress{display:flex;align-items:center;gap:.75rem}.wc-progress-bar{flex:1;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.wc-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;transition:width .3s}.wc-progress-text{font-size:.875rem;font-weight:600;color:#374151;min-width:45px}.wip-items-section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.wip-items-section h3{margin:0 0 1.5rem;font-size:1.125rem;color:#1a1a1a}.wip-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.wip-card{background:linear-gradient(135deg,#fff,#f9fafb);border:2px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:all .2s}.wip-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.wip-card.running{border-color:#10b981}.wip-card.paused{border-color:#f59e0b}.wip-card.delayed{border-color:#ef4444}.wip-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem;background:linear-gradient(135deg,#f9fafb,#fff);border-bottom:1px solid #e5e7eb}.wip-card-header h4{margin:0 0 .25rem;font-size:1rem;color:#1a1a1a}.wip-wo-no{margin:0;font-size:.8125rem;color:#6b7280}.wip-card-body{padding:1.25rem}.wip-info-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #f3f4f6;font-size:.875rem}.wip-info-row:last-of-type{border-bottom:none;margin-bottom:1rem}.wip-info-row .label{color:#6b7280}.wip-info-row .value{font-weight:500;color:#1a1a1a}.wip-progress-section{margin:1rem 0;padding:1rem;background-color:#f9fafb;border-radius:6px}.wip-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem}.wip-progress-header .label{color:#6b7280}.wip-progress-header .value{font-weight:700;color:#1a1a1a;font-size:1rem}.wip-progress-bar{height:10px;background-color:#e5e7eb;border-radius:5px;overflow:hidden}.wip-progress-fill{height:100%;border-radius:5px;transition:width .3s}.wip-quantities{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1rem 0}.wip-qty-item{text-align:center;padding:.75rem;background-color:#f9fafb;border-radius:6px}.qty-label{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.qty-value{font-size:1.125rem;font-weight:700;color:#1a1a1a}.qty-value.good{color:#10b981}.qty-value.progress{color:#3b82f6}.qty-value.defect{color:#ef4444}.wip-times{display:flex;gap:1rem;margin-top:1rem}.wip-time-item{flex:1;display:flex;align-items:center;gap:.5rem;padding:.625rem;background-color:#f3f4f6;border-radius:6px;font-size:.8125rem;color:#374151}.wip-time-item svg{color:#6b7280;flex-shrink:0}.wip-card-footer{padding:.75rem 1.25rem;background-color:#f9fafb;border-top:1px solid #e5e7eb}.last-updated{font-size:.75rem;color:#6b7280}@media (max-width: 768px){.wip-monitoring-page{padding:1rem}.total-stats-card{grid-template-columns:repeat(2,1fr)}.workcenter-grid,.wip-items-grid{grid-template-columns:1fr}.wip-quantities{grid-template-columns:repeat(2,1fr)}}.simulation-page{max-width:1600px;padding:1rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h2{font-size:1.75rem;color:#1a1a1a;margin:0}.btn-primary{background-color:#3b82f6;color:#fff;padding:.625rem 1.25rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-secondary{background-color:#6b7280;color:#fff;padding:.625rem 1.25rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-secondary:hover{background-color:#4b5563}.create-scenario-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.create-scenario-form h3{margin-top:0;margin-bottom:1rem;font-size:1.125rem;color:#1a1a1a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-actions{display:flex;gap:.75rem;justify-content:flex-end}.simulation-container{display:grid;grid-template-columns:400px 1fr;gap:1.5rem;align-items:start}.scenarios-panel{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 200px);overflow-y:auto}.scenarios-panel h3{margin-top:0;margin-bottom:1rem;font-size:1.125rem;color:#1a1a1a}.scenario-list{display:flex;flex-direction:column;gap:.75rem}.scenario-card{padding:1rem;border:2px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s;position:relative}.scenario-card:hover{border-color:#3b82f6;background-color:#f9fafb}.scenario-card.active{border-color:#3b82f6;background-color:#eff6ff}.scenario-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.scenario-header h4{margin:0;font-size:.9375rem;color:#1a1a1a}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;color:#fff;font-weight:500}.scenario-desc{font-size:.875rem;color:#6b7280;margin:.5rem 0;line-height:1.4}.scenario-meta{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem}.algorithm-tag{padding:.25rem .5rem;background-color:#dbeafe;color:#1e40af;border-radius:4px;font-size:.75rem;font-weight:500}.scenario-date{font-size:.75rem;color:#9ca3af}.btn-run-sim{margin-top:.75rem;width:100%;background-color:#10b981;color:#fff;padding:.5rem;border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-run-sim:hover{background-color:#059669}.btn-run-sim:disabled{background-color:#9ca3af;cursor:not-allowed}.results-panel{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;min-height:500px}.results-panel h3{margin-top:0;margin-bottom:1.5rem;font-size:1.125rem;color:#1a1a1a}.running-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.running-state p,.empty-state p{margin:.5rem 0;font-size:.9375rem}.hint{font-size:.875rem!important;color:#9ca3af!important}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.result-content{display:flex;flex-direction:column;gap:1.5rem}.result-summary h4,.result-details h4,.bottleneck-section h4{margin:0 0 1rem;font-size:1rem;color:#1a1a1a}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.metric-card{padding:1rem;background-color:#f9fafb;border-radius:6px;border-left:4px solid #3b82f6}.metric-label{font-size:.8125rem;color:#6b7280;margin-bottom:.5rem}.metric-value{font-size:1.5rem;font-weight:700;color:#1a1a1a}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-item{display:flex;justify-content:space-between;padding:.75rem;background-color:#f9fafb;border-radius:4px}.stat-label{font-size:.875rem;color:#6b7280}.stat-value{font-size:.875rem;font-weight:600;color:#1a1a1a}.bottleneck-section{padding:1rem;background-color:#fef3c7;border-radius:6px;border-left:4px solid #f59e0b}.bottleneck-list{display:flex;flex-wrap:wrap;gap:.5rem}.bottleneck-badge{padding:.375rem .75rem;background-color:#fbbf24;color:#78350f;border-radius:4px;font-size:.875rem;font-weight:500}.loading{text-align:center;padding:2rem;color:#6b7280}@media (max-width: 1024px){.simulation-container{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.form-grid,.metrics-grid,.stats-grid{grid-template-columns:1fr}}.digital-twin-page{padding:1.5rem;max-width:1800px}.auto-refresh-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:6px}.auto-refresh-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.auto-refresh-toggle label{font-size:.875rem;color:#374151;cursor:pointer;margin:0}.stat-icon.error{background-color:#ef4444}.stat-icon.efficiency{background-color:#8b5cf6}.twin-container{display:grid;grid-template-columns:350px 1fr;gap:1.5rem;margin-top:1.5rem}.equipment-list{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 350px);overflow-y:auto}.equipment-list h3{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.equipment-item{padding:1rem;border:2px solid #e5e7eb;border-radius:8px;margin-bottom:.75rem;cursor:pointer;transition:all .2s}.equipment-item:hover{border-color:#3b82f6;background-color:#f9fafb}.equipment-item.active{border-color:#3b82f6;background-color:#eff6ff}.equipment-item.warning{border-left:4px solid #f59e0b}.equipment-item.critical{border-left:4px solid #ef4444}.equipment-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.equipment-item-header h4{margin:0 0 .25rem;font-size:1rem;color:#1a1a1a}.equipment-item-header p{margin:0;font-size:.8125rem;color:#6b7280}.equipment-item-metrics{display:flex;gap:1rem}.metric-mini{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:#374151}.metric-mini svg{color:#6b7280}.equipment-detail{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:1.5rem;border-bottom:2px solid #e5e7eb;margin-bottom:1.5rem}.sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.sensor-card{background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem}.sensor-icon{width:64px;height:64px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:1rem}.sensor-icon.temp{background:linear-gradient(135deg,#ef4444,#dc2626)}.sensor-icon.vibration{background:linear-gradient(135deg,#f59e0b,#d97706)}.sensor-icon.pressure{background:linear-gradient(135deg,#3b82f6,#2563eb)}.sensor-icon.speed{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.sensor-info{margin-bottom:.75rem}.sensor-label{font-size:.875rem;color:#6b7280;margin-bottom:.25rem}.sensor-value{font-size:2rem;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:.25rem}.sensor-range{font-size:.8125rem;color:#9ca3af}.sensor-bar{height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.sensor-bar-fill{height:100%;border-radius:4px;transition:width .3s}.performance-metrics{background:#f9fafb;border-radius:8px;padding:1.5rem;margin-bottom:1rem}.performance-metrics h4{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.metric-item{background:#fff;padding:1.25rem;border-radius:8px}.metric-value-large{font-size:2.5rem;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:.75rem}.metric-bar{height:12px;background-color:#e5e7eb;border-radius:6px;overflow:hidden}.metric-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:6px;transition:width .3s}.update-info{display:flex;align-items:center;gap:.5rem;padding:.75rem;background-color:#f0fdf4;border-radius:6px;font-size:.875rem;color:#166534}.update-info svg{color:#10b981}@media (max-width: 1024px){.twin-container{grid-template-columns:1fr}.equipment-list{max-height:400px}.sensor-grid{grid-template-columns:repeat(2,1fr)}.metrics-grid{grid-template-columns:1fr}}@media (max-width: 768px){.digital-twin-page{padding:1rem}.sensor-grid{grid-template-columns:1fr}}.scenario-management-page{padding:1.5rem;max-width:1600px}.scenarios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.scenario-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;transition:transform .2s,box-shadow .2s}.scenario-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.scenario-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.scenario-header h3{margin:0;font-size:1.25rem;color:#1a1a1a}.scenario-actions{display:flex;gap:.25rem}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#f3f4f6;border:none;border-radius:6px;cursor:pointer;transition:all .2s;color:#374151}.btn-icon:hover{background:#e5e7eb;color:#1a1a1a}.btn-icon.delete{color:#ef4444}.btn-icon.delete:hover{background:#fee2e2;color:#dc2626}.scenario-description{margin:0 0 1.5rem;font-size:.875rem;color:#6b7280;line-height:1.5}.scenario-parameters{background:#f9fafb;border-radius:6px;padding:1rem;margin-bottom:1rem}.param-item{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #e5e7eb}.param-item:last-child{border-bottom:none}.param-label{font-size:.875rem;color:#6b7280}.param-value{font-weight:600;color:#1a1a1a}.scenario-footer{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:#9ca3af}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;padding:2rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-content h3{margin:0 0 .5rem;font-size:1.5rem;color:#1a1a1a}.modal-description{margin:0 0 1.5rem;color:#6b7280}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:.875rem;font-weight:500;color:#374151}.form-group input,.form-group textarea{padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.form-group textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}@media (max-width: 768px){.scenarios-grid,.form-grid{grid-template-columns:1fr}}.simulation-results-page{padding:1.5rem;max-width:1800px}.results-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.summary-card{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;gap:1rem}.summary-icon{width:56px;height:56px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff}.summary-icon.total{background:linear-gradient(135deg,#6b7280,#4b5563)}.summary-icon.completed{background:linear-gradient(135deg,#10b981,#059669)}.summary-icon.average{background:linear-gradient(135deg,#3b82f6,#2563eb)}.summary-icon.best{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.summary-info{flex:1}.summary-value{font-size:1.875rem;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:.375rem}.summary-label{font-size:.875rem;color:#6b7280}.results-container{display:grid;grid-template-columns:350px 1fr;gap:1.5rem;margin-bottom:1.5rem}.results-list{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 400px);overflow-y:auto}.results-list h3{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.result-item{padding:1rem;border:2px solid #e5e7eb;border-radius:8px;margin-bottom:.75rem;cursor:pointer;transition:all .2s}.result-item:hover{border-color:#3b82f6;background-color:#f9fafb}.result-item.active{border-color:#3b82f6;background-color:#eff6ff}.result-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.result-item-header h4{margin:0;font-size:1rem;color:#1a1a1a}.status-badge-small{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border-radius:12px;font-size:.6875rem;font-weight:500;color:#fff}.status-badge-small.completed{background-color:#10b981}.status-badge-small.failed{background-color:#ef4444}.status-badge-small.in_progress{background-color:#3b82f6}.result-item-info{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.75rem}.info-row{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:#6b7280}.info-row svg{flex-shrink:0}.result-item-metrics{display:flex;gap:1rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.metric-small{display:flex;flex-direction:column;gap:.25rem}.metric-small .label{font-size:.75rem;color:#9ca3af}.metric-small .value{font-size:.9375rem;font-weight:600;color:#1a1a1a}.result-detail{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.detail-header{padding-bottom:1.5rem;border-bottom:2px solid #e5e7eb;margin-bottom:1.5rem}.detail-header h3{margin:0 0 .5rem;font-size:1.5rem;color:#1a1a1a}.detail-header p{margin:0;font-size:.875rem;color:#6b7280}.metrics-section{margin-bottom:1.5rem}.metrics-section h4{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.metrics-grid-large{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.metric-card-large{background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem;display:flex;gap:1rem}.metric-icon-large{width:64px;height:64px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.metric-icon-large.jobs{background:linear-gradient(135deg,#10b981,#059669)}.metric-icon-large.utilization{background:linear-gradient(135deg,#3b82f6,#2563eb)}.metric-icon-large.time{background:linear-gradient(135deg,#f59e0b,#d97706)}.metric-icon-large.efficiency{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.metric-content{flex:1}.metric-label{font-size:.875rem;color:#6b7280;margin-bottom:.5rem}.metric-value-huge{font-size:2.5rem;font-weight:700;color:#1a1a1a;line-height:1;margin-bottom:.75rem}.metric-detail{font-size:.8125rem;color:#9ca3af}.metric-progress-bar{height:10px;background-color:#e5e7eb;border-radius:5px;overflow:hidden;margin-top:.5rem}.metric-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:5px;transition:width .3s}.performance-details{background:#f9fafb;border-radius:8px;padding:1.5rem}.performance-details h4{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.detail-item{background:#fff;padding:1rem;border-radius:6px;display:flex;flex-direction:column;gap:.5rem}.detail-label{font-size:.875rem;color:#6b7280}.detail-value{font-size:1.5rem;font-weight:700;color:#1a1a1a}.detail-value.success{color:#10b981}.detail-value.warning{color:#f59e0b}.comparison-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.comparison-section h3{margin:0 0 1.5rem;font-size:1.25rem;color:#1a1a1a}.comparison-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.comparison-chart{background:#f9fafb;border-radius:8px;padding:1.25rem}.comparison-chart h4{margin:0 0 1rem;font-size:1rem;color:#1a1a1a}.chart-bars{display:flex;flex-direction:column;gap:1rem}.chart-bar-item{display:flex;flex-direction:column;gap:.5rem}.bar-label{font-size:.875rem;font-weight:500;color:#374151}.bar-container{position:relative;height:32px;background-color:#e5e7eb;border-radius:6px;overflow:hidden}.bar-fill{height:100%;display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem;border-radius:6px;transition:width .5s ease}.bar-fill.completion{background:linear-gradient(90deg,#10b981,#059669)}.bar-fill.utilization{background:linear-gradient(90deg,#3b82f6,#2563eb)}.bar-fill.efficiency{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.bar-value{font-size:.8125rem;font-weight:600;color:#fff;white-space:nowrap}@media (max-width: 1400px){.results-summary{grid-template-columns:repeat(2,1fr)}.comparison-grid{grid-template-columns:1fr}}@media (max-width: 1024px){.results-container{grid-template-columns:1fr}.results-list{max-height:400px}.metrics-grid-large{grid-template-columns:1fr}.details-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.simulation-results-page{padding:1rem}.results-summary,.details-grid{grid-template-columns:1fr}}.equipment-status-page{padding:1.5rem;max-width:1800px}.stat-icon.idle{background-color:#6b7280}.stat-icon.average{background-color:#8b5cf6}.critical-alerts-banner{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #ef4444;border-radius:8px;margin-bottom:1.5rem;color:#991b1b;font-weight:500}.critical-alerts-banner svg{color:#ef4444}.main-content{display:grid;grid-template-columns:1fr 380px;gap:1.5rem}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.equipment-status-card{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #0000001a;border-left:4px solid #e5e7eb;transition:all .2s;position:relative}.equipment-status-card:hover{box-shadow:0 4px 6px #0000001a}.equipment-status-card.running{border-left-color:#10b981}.equipment-status-card.idle{border-left-color:#6b7280}.equipment-status-card.maintenance{border-left-color:#f59e0b}.equipment-status-card.breakdown{border-left-color:#ef4444;background:linear-gradient(135deg,#fff,#fef2f2)}.equipment-status-card.setup{border-left-color:#3b82f6}.equipment-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.equipment-card-header h3{margin:0 0 .25rem;font-size:1.125rem;color:#1a1a1a}.equipment-code{margin:0;font-size:.8125rem;color:#6b7280}.current-job{background:#f9fafb;padding:1rem;border-radius:6px;margin-bottom:1rem}.job-info{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.job-label{font-size:.8125rem;color:#6b7280}.job-code{font-size:.875rem;font-weight:600;color:#1a1a1a}.job-progress{display:flex;align-items:center;gap:.75rem}.equipment-metrics{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.metric-row{display:flex;gap:1rem}.metric-item-small{flex:1;display:flex;align-items:center;gap:.5rem;padding:.625rem;background:#f9fafb;border-radius:6px}.metric-item-small svg{color:#6b7280;flex-shrink:0}.metric-name{font-size:.75rem;color:#6b7280;flex:1}.metric-value-small{font-size:.875rem;font-weight:600;color:#1a1a1a}.metric-value-small.warning{color:#f59e0b}.metric-value-small.critical{color:#ef4444}.equipment-footer{display:flex;flex-wrap:wrap;gap:1rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.footer-item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:#6b7280}.footer-item svg{color:#9ca3af}.footer-label{color:#9ca3af}.footer-value{color:#374151;font-weight:500}.error-badge{position:absolute;top:1rem;right:1rem;display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;font-size:.75rem;font-weight:500;color:#dc2626}.alerts-panel{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;max-height:calc(100vh - 350px);display:flex;flex-direction:column}.alerts-panel h3{margin:0 0 1rem;font-size:1.125rem;color:#1a1a1a;display:flex;align-items:center;gap:.5rem}.alerts-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.alert-item{padding:1rem;border-radius:8px;border:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;transition:all .2s}.alert-item.critical{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fecaca}.alert-item.warning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fde68a}.alert-item.info{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#bfdbfe}.alert-item.acknowledged{opacity:.6;background:#f9fafb;border-color:#e5e7eb}.alert-header{display:flex;gap:.75rem;flex:1}.alert-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px}.alert-item.critical .alert-icon{background-color:#fecaca;color:#dc2626}.alert-item.warning .alert-icon{background-color:#fde68a;color:#d97706}.alert-item.info .alert-icon{background-color:#bfdbfe;color:#2563eb}.alert-item.acknowledged .alert-icon{background-color:#e5e7eb;color:#6b7280}.alert-content{flex:1}.alert-equipment{font-size:.875rem;font-weight:600;color:#1a1a1a;margin-bottom:.375rem}.alert-message{font-size:.875rem;color:#374151;margin-bottom:.375rem}.alert-timestamp{font-size:.75rem;color:#9ca3af}.btn-ack{flex-shrink:0;padding:.5rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-ack:hover{background-color:#2563eb}.ack-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;font-size:.8125rem;font-weight:500;color:#166534}.ack-badge svg{color:#10b981}@media (max-width: 1400px){.main-content{grid-template-columns:1fr 340px}.equipment-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width: 1024px){.main-content{grid-template-columns:1fr}.alerts-panel{max-height:500px}.equipment-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 768px){.equipment-status-page{padding:1rem}.equipment-grid{grid-template-columns:1fr}.stats-cards{grid-template-columns:repeat(2,1fr)}}.graph-page{max-width:1800px;margin:0 auto;padding:2rem}.graph-page h2{margin-bottom:1.5rem;font-size:1.75rem;color:#1a1a1a}.edge-stats-section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.edge-stats-section h3{margin-bottom:1rem;font-size:1.125rem;color:#1a1a1a}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{padding:1.5rem;background-color:#f9fafb;border-radius:8px;border:2px solid #e5e7eb}.stat-card.total{background-color:#dbeafe;border-color:#0d7490}.stat-card h4{font-size:.875rem;color:#6b7280;margin-bottom:.5rem;font-weight:500}.stat-card.total h4{color:#0d7490}.stat-value{font-size:2rem;font-weight:700;color:#1a1a1a}.stat-card.total .stat-value{color:#0d7490}.rebuild-section{padding:1.5rem;background-color:#fef3c7;border-radius:8px;border:1px solid #fbbf24}.rebuild-btn{padding:.75rem 1.5rem;background-color:#f59e0b;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:1rem;margin-bottom:.5rem}.rebuild-btn:hover:not(:disabled){background-color:#d97706}.rebuild-btn:disabled{opacity:.5;cursor:not-allowed}.rebuild-note{font-size:.875rem;color:#92400e}@media (max-width: 768px){.graph-page{padding:1rem}.stats-cards{grid-template-columns:1fr}.stat-card{padding:1rem}}.ontology-tree-view{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.tree-header{padding:16px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;background:#f9fafb}.tree-header h3{margin:0;font-size:16px;font-weight:600;color:#111827}.tree-stats{display:flex;gap:16px;font-size:13px;color:#6b7280}.tree-stats span{padding:4px 8px;background:#e5e7eb;border-radius:4px}.tree-controls{padding:12px;border-bottom:1px solid #e5e7eb;display:flex;gap:8px;background:#fff}.tree-search,.tree-filter{display:flex;align-items:center;gap:8px;flex:1;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff}.tree-search:focus-within,.tree-filter:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.tree-search svg,.tree-filter svg{color:#9ca3af;flex-shrink:0}.tree-search input{border:none;outline:none;flex:1;font-size:14px;color:#111827}.tree-search input::placeholder{color:#9ca3af}.tree-filter select{border:none;outline:none;flex:1;font-size:14px;color:#111827;background:transparent;cursor:pointer}.tree-content{flex:1;overflow-y:auto;padding:8px}.tree-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af;font-size:14px}.tree-node{margin:2px 0}.tree-node-content{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.tree-node-content:hover{background:#f3f4f6}.tree-node-content.selected{background:#dbeafe;border-left:3px solid #3b82f6;padding-left:5px}.tree-node-toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .15s ease;flex-shrink:0}.tree-node-toggle:hover:not(:disabled){background:#e5e7eb;color:#111827}.tree-node-toggle:disabled{cursor:default;opacity:.3}.tree-node-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.tree-node-label{flex:1;font-size:14px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node-type{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;white-space:nowrap;flex-shrink:0;opacity:.9}.tree-node-count{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#e5e7eb;border-radius:10px;font-size:11px;font-weight:600;color:#6b7280;flex-shrink:0}.tree-node-children{margin-left:0}.tree-content::-webkit-scrollbar{width:8px}.tree-content::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.tree-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.tree-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width: 768px){.tree-header{flex-direction:column;align-items:flex-start;gap:8px}.tree-controls{flex-direction:column}.tree-node-type{display:none}.tree-node-label{font-size:13px}}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.tree-node-children{animation:slideDown .2s ease-out}.ontology-detail-panel{height:100%;overflow-y:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.ontology-detail-panel.empty{display:flex;align-items:center;justify-content:center}.empty-state{text-align:center;color:#9ca3af;padding:40px}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#6b7280}.empty-state p{margin:0;font-size:14px;color:#9ca3af}.detail-header{padding:24px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:#f9fafb}.entity-title{display:flex;align-items:flex-start;gap:12px;flex:1}.entity-title svg{flex-shrink:0;margin-top:4px}.entity-title h2{margin:0 0 4px;font-size:20px;font-weight:700;color:#111827}.entity-id{margin:0;font-size:13px;color:#6b7280;font-family:Courier New,monospace}.entity-type-badge{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap;flex-shrink:0}.detail-section{padding:24px;border-bottom:1px solid #e5e7eb}.detail-section:last-child{border-bottom:none}.detail-section h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#111827;display:flex;align-items:center;gap:8px}.detail-section h3 svg{color:#6b7280}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item.full-width{grid-column:1 / -1}.info-item label{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.info-item span{font-size:14px;color:#111827}.info-item p{margin:0;font-size:14px;color:#374151;line-height:1.6}.link-button{display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:none;color:#3b82f6;font-size:14px;cursor:pointer;transition:color .15s ease}.link-button:hover{color:#2563eb;text-decoration:underline}.source-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#dbeafe;border-radius:6px;color:#1e40af;font-size:13px;font-weight:500}.attribute-table{overflow-x:auto}.attribute-table table{width:100%;border-collapse:collapse}.attribute-table thead{background:#f9fafb}.attribute-table th{padding:10px 12px;text-align:left;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb}.attribute-table td{padding:12px;border-bottom:1px solid #e5e7eb;font-size:14px}.attribute-table tbody tr:hover{background:#f9fafb}.attr-name{display:flex;flex-direction:column;gap:4px}.attr-name strong{color:#111827}.attr-description{font-size:12px;color:#6b7280}.attr-type{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;font-family:Courier New,monospace}.attr-type.type-string{background:#dbeafe;color:#1e40af}.attr-type.type-number{background:#d1fae5;color:#065f46}.attr-type.type-boolean{background:#fce7f3;color:#9f1239}.attr-type.type-date,.attr-type.type-datetime,.attr-type.type-time{background:#fef3c7;color:#92400e}.attr-type.type-enum{background:#ede9fe;color:#5b21b6}.attr-required{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px}.attr-required.required{background:#d1fae5;color:#065f46}.attr-required.optional{background:#f3f4f6;color:#9ca3af}.attr-source{display:flex;align-items:center;gap:6px;color:#6b7280;font-size:13px;font-family:Courier New,monospace}.attr-no-source{color:#d1d5db}.relation-list{display:flex;flex-direction:column;gap:12px}.relation-item{padding:12px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb;transition:all .15s ease}.relation-item:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000001a}.relation-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.relation-type{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px}.relation-label{font-size:14px;font-weight:500;color:#111827;flex:1}.relation-cardinality{padding:2px 6px;background:#e5e7eb;border-radius:4px;font-size:11px;font-weight:600;color:#6b7280;font-family:Courier New,monospace}.relation-target{display:flex;align-items:center;gap:6px;padding:8px 12px;width:100%;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#3b82f6;font-size:13px;font-family:Courier New,monospace;cursor:pointer;transition:all .15s ease}.relation-target:hover{border-color:#3b82f6;background:#eff6ff}.relation-target span{flex:1;text-align:left}.relation-attributes{margin-top:8px;padding-top:8px;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:8px}.relation-attr{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#fff;border-radius:4px;font-size:12px}.relation-attr .attr-key{color:#6b7280;font-weight:600}.relation-attr .attr-value{color:#111827;font-family:Courier New,monospace}.empty-message{padding:16px;text-align:center;color:#9ca3af;font-size:14px;background:#f9fafb;border-radius:6px;border:1px dashed #d1d5db}.ontology-detail-panel::-webkit-scrollbar{width:8px}.ontology-detail-panel::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.ontology-detail-panel::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.ontology-detail-panel::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width: 768px){.info-grid{grid-template-columns:1fr}.detail-header{flex-direction:column;align-items:flex-start}.attribute-table{font-size:12px}.attribute-table th,.attribute-table td{padding:8px}}.ontology-page{display:flex;flex-direction:column;height:100vh;background:#f3f4f6}.ontology-page.loading,.ontology-page.error{display:flex;align-items:center;justify-content:center}.loading-spinner{text-align:center}.spinner{width:48px;height:48px;margin:0 auto 16px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.loading-spinner p{color:#6b7280;font-size:14px}.page-header{padding:20px 24px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.header-right{display:flex;align-items:center;gap:16px}.view-mode-toggle{display:flex;background:#f3f4f6;border-radius:8px;padding:4px;gap:4px}.view-mode-toggle button{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:#6b7280;font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease}.view-mode-toggle button:hover:not(:disabled){background:#e5e7eb;color:#111827}.view-mode-toggle button.active{background:#fff;color:#3b82f6;box-shadow:0 1px 3px #0000001a}.view-mode-toggle button:disabled{opacity:.5;cursor:not-allowed}.view-mode-toggle .badge{padding:2px 6px;background:#fef3c7;color:#92400e;font-size:10px;font-weight:600;border-radius:4px;text-transform:uppercase}.header-actions{display:flex;gap:8px}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary{background:#3b82f6;color:#fff}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.metadata-bar{padding:12px 24px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.metadata-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#6b7280}.metadata-item svg{color:#9ca3af}.page-content{flex:1;display:grid;grid-template-columns:400px 1fr;gap:16px;padding:16px;overflow:hidden}.content-left,.content-right{overflow:hidden}.graph-view-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#9ca3af;text-align:center;padding:40px}.graph-view-placeholder svg{margin-bottom:16px;opacity:.5}.graph-view-placeholder h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#6b7280}.graph-view-placeholder p{margin:0;font-size:14px;color:#9ca3af}@media (max-width: 1024px){.page-content{grid-template-columns:1fr;grid-template-rows:300px 1fr}}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start}.header-right{width:100%;flex-direction:column;align-items:stretch}.view-mode-toggle,.header-actions{width:100%}.view-mode-toggle button,.header-actions button{flex:1}.metadata-bar{flex-direction:column;align-items:flex-start;gap:8px}.page-content{grid-template-rows:250px 1fr;padding:8px;gap:8px}}.csv-importer{display:flex;flex-direction:column;gap:24px;padding:24px;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.importer-header{text-align:center}.importer-header h2{margin:0 0 8px;font-size:24px;font-weight:700;color:#111827}.importer-header p{margin:0;font-size:14px;color:#6b7280}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;border:2px dashed #d1d5db;border-radius:8px;background:#f9fafb;cursor:pointer;transition:all .2s ease}.upload-zone:hover{border-color:#3b82f6;background:#eff6ff}.upload-zone.dragging{border-color:#3b82f6;background:#dbeafe;border-style:solid}.upload-zone svg{color:#9ca3af;transition:color .2s ease}.upload-zone:hover svg,.upload-zone.dragging svg{color:#3b82f6}.upload-zone h3{margin:0;font-size:16px;font-weight:600;color:#374151}.upload-zone p{margin:0;font-size:14px;color:#9ca3af}.sample-download{display:flex;justify-content:center}.btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.import-stats{display:flex;gap:16px;padding:16px;background:#f9fafb;border-radius:8px}.stat-item{display:flex;align-items:center;gap:12px;flex:1;padding:12px 16px;background:#fff;border-radius:6px;border:1px solid #e5e7eb}.stat-item svg{color:#6b7280;flex-shrink:0}.stat-item.success svg{color:#10b981}.stat-item.error svg{color:#ef4444}.stat-item div{display:flex;flex-direction:column;gap:2px}.stat-value{font-size:20px;font-weight:700;color:#111827}.stat-label{font-size:12px;color:#6b7280}.error-list{padding:16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.error-list h3{margin:0 0 12px;font-size:14px;font-weight:600;color:#991b1b;display:flex;align-items:center;gap:8px}.error-items{display:flex;flex-direction:column;gap:8px}.error-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:4px;font-size:13px}.error-row{padding:2px 6px;background:#fee2e2;color:#991b1b;border-radius:4px;font-weight:600;font-size:11px}.error-column{padding:2px 6px;background:#fef3c7;color:#92400e;border-radius:4px;font-weight:600;font-size:11px}.error-message{color:#374151;flex:1}.error-more{margin:8px 0 0;padding:8px 12px;background:#fff;border-radius:4px;font-size:13px;color:#6b7280;text-align:center}.data-preview{display:flex;flex-direction:column;gap:12px}.data-preview h3{margin:0;font-size:14px;font-weight:600;color:#111827}.table-container{overflow-x:auto;border:1px solid #e5e7eb;border-radius:6px}.table-container table{width:100%;border-collapse:collapse;font-size:13px}.table-container thead{background:#f9fafb;position:sticky;top:0}.table-container th{padding:10px 12px;text-align:left;font-weight:600;color:#6b7280;border-bottom:2px solid #e5e7eb;white-space:nowrap}.table-container td{padding:10px 12px;border-bottom:1px solid #e5e7eb;color:#374151;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-container tbody tr:hover{background:#f9fafb}.row-number{color:#9ca3af;font-weight:600;text-align:center;background:#f9fafb;border-right:1px solid #e5e7eb}.importer-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid #e5e7eb}.btn-primary{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:6px;background:#3b82f6;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 6px #3b82f64d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;font-size:14px}.error-message svg{flex-shrink:0}.complete-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;text-align:center}.complete-state svg{color:#10b981}.complete-state h2{margin:0;font-size:24px;font-weight:700;color:#111827}.complete-state p{margin:0;font-size:14px;color:#6b7280}.processing-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#ffffffe6;z-index:1000}.spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.processing-overlay p{font-size:14px;color:#6b7280}.table-container::-webkit-scrollbar{height:8px}.table-container::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.table-container::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.table-container::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width: 768px){.csv-importer{padding:16px}.upload-zone{padding:40px 20px}.import-stats{flex-direction:column}.importer-actions{flex-direction:column-reverse}.importer-actions button{width:100%}.table-container th,.table-container td{padding:8px;font-size:12px}}.data-import-page{display:flex;flex-direction:column;height:100vh;background:#f3f4f6}.page-header{padding:20px 24px;background:#fff;border-bottom:1px solid #e5e7eb}.header-left h1{margin:0 0 4px;font-size:24px;font-weight:700;color:#111827;display:flex;align-items:center;gap:12px}.header-left h1 svg{color:#3b82f6}.header-left p{margin:0;font-size:14px;color:#6b7280}.page-content{flex:1;display:grid;grid-template-columns:320px 1fr;gap:16px;padding:16px;overflow:hidden}.import-sidebar{display:flex;flex-direction:column;gap:16px;background:#fff;border-radius:8px;border:1px solid #e5e7eb;padding:20px;overflow-y:auto}.import-sidebar h3{margin:0;font-size:16px;font-weight:600;color:#111827}.import-types{display:flex;flex-direction:column;gap:8px}.import-type-btn{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.import-type-btn:hover{border-color:#3b82f6;background:#eff6ff}.import-type-btn.active{border-color:#3b82f6;background:#dbeafe;box-shadow:0 0 0 3px #3b82f61a}.type-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#f3f4f6;border-radius:8px;color:#6b7280;flex-shrink:0;transition:all .15s ease}.import-type-btn:hover .type-icon,.import-type-btn.active .type-icon{background:#3b82f6;color:#fff}.type-info{flex:1;display:flex;flex-direction:column;gap:4px}.type-label{font-size:14px;font-weight:600;color:#111827}.type-description{font-size:12px;color:#6b7280}.type-status{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#d1fae5;border-radius:4px;color:#065f46;font-size:12px;font-weight:600;flex-shrink:0}.type-status svg{flex-shrink:0}.import-main{overflow-y:auto}.import-sidebar::-webkit-scrollbar,.import-main::-webkit-scrollbar{width:8px}.import-sidebar::-webkit-scrollbar-track,.import-main::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.import-sidebar::-webkit-scrollbar-thumb,.import-main::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.import-sidebar::-webkit-scrollbar-thumb:hover,.import-main::-webkit-scrollbar-thumb:hover{background:#9ca3af}@media (max-width: 1024px){.page-content{grid-template-columns:1fr;grid-template-rows:auto 1fr}.import-sidebar{max-height:200px}.import-types{flex-direction:row;overflow-x:auto}.import-type-btn{min-width:250px}}@media (max-width: 768px){.page-header{padding:16px}.page-content{padding:8px;gap:8px}.import-sidebar{padding:12px}.import-type-btn{padding:12px;min-width:220px}.type-icon{width:36px;height:36px}}*{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}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.page-header h2{margin:0 0 .5rem;font-size:1.75rem;color:#1a1a1a}.page-subtitle{margin:0;font-size:.875rem;color:#6b7280}.header-actions{display:flex;gap:.75rem}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:#2563eb}.btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#fff;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background-color:#f9fafb;border-color:#9ca3af}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-sync{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-sync:hover{background-color:#2563eb}.btn-sync:disabled{background-color:#9ca3af;cursor:not-allowed}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;gap:1rem}.stat-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.stat-icon.total{background-color:#6b7280}.stat-icon.available{background-color:#10b981}.stat-icon.running{background-color:#3b82f6}.stat-icon.maintenance{background-color:#f59e0b}.stat-icon.breakdown{background-color:#ef4444}.stat-icon.completed{background-color:#10b981}.stat-info{flex:1}.stat-value{font-size:1.75rem;font-weight:700;color:#1a1a1a;line-height:1}.stat-label{font-size:.875rem;color:#6b7280;margin-top:.25rem}.filters-section{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:center}.filter-group{display:flex;flex-direction:row;align-items:center;gap:.75rem;min-width:250px}.filter-group label{font-size:.875rem;font-weight:500;color:#374151;white-space:nowrap}.filter-group select,.filter-group input{padding:.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background-color:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff;white-space:nowrap}.progress-cell{display:flex;align-items:center;gap:.75rem;min-width:120px}.progress-bar-container{flex:1;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .3s}.progress-text{font-size:.8125rem;font-weight:600;color:#374151;min-width:40px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:#6b7280}.loading-state p{margin-top:1rem;font-size:.875rem}.empty-state{padding:3rem;text-align:center;color:#6b7280}.empty-state svg{margin:0 auto 1rem;opacity:.5}.empty-state p{margin:0;font-size:.875rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}
