.simulator{font-family:system-ui,-apple-system,sans-serif;max-width:1400px;margin:0 auto;padding:1rem}.simulator-header{text-align:center;margin-bottom:1.5rem}.simulator-header h2{margin:0 0 .5rem;font-size:1.5rem;color:var(--sl-color-white)}.simulator-header p{margin:0;color:var(--sl-color-gray-3);font-size:.9rem}.stats-bar{display:flex;justify-content:center;gap:2rem;padding:1rem;background:var(--sl-color-gray-6);border-radius:8px;margin-bottom:1.5rem}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.5rem;font-weight:700;color:var(--sl-color-white)}.stat-label{font-size:.75rem;color:var(--sl-color-gray-3);text-transform:uppercase}.simulator-grid{display:grid;grid-template-columns:280px 1fr 250px;grid-template-rows:auto auto;gap:1rem}.panel{background:var(--sl-color-gray-6);border-radius:8px;padding:1rem;overflow:hidden}.panel h3{margin:0 0 1rem;font-size:1rem;color:var(--sl-color-white);border-bottom:1px solid var(--sl-color-gray-5);padding-bottom:.5rem}.controls-panel{grid-row:span 2}.control-group{margin-bottom:.75rem}.control-group label{display:block;font-size:.75rem;color:var(--sl-color-gray-3);margin-bottom:.25rem}.control-group input[type=text],.control-group input[type=number],.control-group textarea{width:100%;padding:.5rem;border:1px solid var(--sl-color-gray-5);border-radius:4px;background:var(--sl-color-gray-7);color:var(--sl-color-white);font-size:.875rem;transition:border-color .2s,box-shadow .2s}.control-group input[type=text]:focus,.control-group input[type=number]:focus,.control-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f64d}.control-group input[type=range]:focus{outline:none}.control-group input[type=range]:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.control-group input[type=range]{width:calc(100% - 40px)}.control-group span{display:inline-block;width:35px;text-align:right;color:var(--sl-color-gray-2)}.control-row{display:flex;gap:.5rem}.control-group.half{flex:1}.button-group{display:flex;gap:.5rem;margin-bottom:.75rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:opacity .2s;flex:1}.btn:hover{opacity:.9}.btn:focus{outline:none}.btn:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.btn-primary{background:#3b82f6;color:#fff}.btn-secondary{background:#6b7280;color:#fff}.btn-success{background:#22c55e;color:#fff}.btn-warning{background:#f59e0b;color:#fff}.btn-danger{background:#ef4444;color:#fff}.btn-small{padding:.25rem .5rem;font-size:.75rem}hr{border:none;border-top:1px solid var(--sl-color-gray-5);margin:1rem 0}.shards-panel{grid-column:span 2}.shards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.shard{background:var(--sl-color-gray-7);border-radius:6px;padding:.75rem;min-height:100px}.shard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.shard-index{font-weight:700;color:var(--sl-color-white);font-size:.875rem}.shard-count{background:var(--sl-color-gray-5);padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;color:var(--sl-color-white);min-width:28px;text-align:center}.shard-jobs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:.75rem;min-height:32px}.job-dot{width:10px;height:10px;border-radius:50%;cursor:pointer;transition:transform .1s}.job-dot:hover{transform:scale(1.5)}.more-jobs{font-size:.75rem;color:var(--sl-color-gray-3);font-weight:500;display:flex;align-items:center;margin-left:4px}.shard-stats{display:flex;gap:.75rem;font-size:.75rem;padding-top:.5rem;border-top:1px solid var(--sl-color-gray-6)}.stat-mini{color:var(--sl-color-gray-3);font-weight:500}.legend{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1.25rem;padding-top:.75rem;border-top:1px solid var(--sl-color-gray-5);font-size:.8rem;color:var(--sl-color-gray-2)}.legend span{display:flex;align-items:center;gap:.5rem}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.queues-panel{max-height:300px;overflow-y:auto;min-width:200px}.empty{color:var(--sl-color-gray-4);font-style:italic;text-align:center;padding:1rem}.queue-list{display:flex;flex-direction:column;gap:.5rem}.queue-item{background:var(--sl-color-gray-7);border-radius:6px;padding:.6rem}.queue-item.paused{opacity:.6}.queue-item .badge.paused{margin-left:auto}.queue-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.queue-name{font-weight:600;color:var(--sl-color-white);font-size:.9rem}.queue-shard{font-size:.65rem;color:var(--sl-color-gray-3);background:var(--sl-color-gray-5);padding:.15rem .35rem;border-radius:3px;white-space:nowrap}.badge{font-size:.65rem;padding:.125rem .375rem;border-radius:4px;text-transform:uppercase}.badge.paused{background:#f59e0b;color:#fff}.badge.running{background:#22c55e;color:#fff}.badge.stopped{background:#ef4444;color:#fff}.queue-stats{display:flex;flex-wrap:nowrap;gap:.25rem;font-size:.7rem}.qs{padding:.2rem .35rem;border-radius:3px;font-weight:600;white-space:nowrap}.qs.waiting{background:#3b82f633;color:#60a5fa}.qs.delayed{background:#f59e0b33;color:#fbbf24}.qs.active{background:#22c55e33;color:#4ade80}.qs.completed{background:#6b728033;color:#9ca3af}.qs.dlq{background:#ef444433;color:#f87171}.workers-panel{max-height:300px;overflow-y:auto}.worker-list{display:flex;flex-direction:column;gap:.5rem}.worker-item{background:var(--sl-color-gray-7);border-radius:6px;padding:.75rem}.worker-item.stopped{opacity:.5}.worker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.worker-id{font-family:monospace;font-size:.8rem;color:var(--sl-color-gray-2)}.worker-info{display:flex;gap:1rem;font-size:.75rem;color:var(--sl-color-gray-3);margin-bottom:.5rem}.worker-stats{display:flex;gap:1rem;font-size:.75rem;color:var(--sl-color-gray-4);margin-bottom:.5rem}.events-panel{grid-column:span 3;max-height:200px}.events-list{max-height:150px;overflow-y:auto;font-family:monospace;font-size:.75rem}.event-item{display:flex;gap:.75rem;padding:.25rem 0;border-bottom:1px solid var(--sl-color-gray-6)}.event-time{color:var(--sl-color-gray-4);min-width:80px}.event-type{font-weight:600;min-width:120px}.event-item.pushed .event-type{color:#3b82f6}.event-item.pulled .event-type{color:#f59e0b}.event-item.completed .event-type{color:#22c55e}.event-item.failed .event-type{color:#ef4444}.event-item.dlq .event-type{color:#dc2626}.event-item.progress .event-type{color:#8b5cf6}.event-data{color:var(--sl-color-gray-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1200px){.simulator-grid{grid-template-columns:1fr 1fr}.controls-panel{grid-column:span 2;grid-row:auto}.shards-panel,.events-panel{grid-column:span 2}}@media(max-width:768px){.simulator-grid{grid-template-columns:1fr}.controls-panel,.shards-panel,.queues-panel,.workers-panel,.events-panel{grid-column:auto}.stats-bar{flex-wrap:wrap;gap:1rem}}.error-message{margin-top:.75rem;padding:.75rem;background:#ef444426;border:1px solid #ef4444;border-radius:4px;color:#f87171;font-size:.875rem;text-align:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
