:root{--bg-primary: #09090b;--bg-secondary: #18181b;--bg-card: #27272a;--bg-hover: #3f3f46;--text-primary: #fafafa;--text-secondary: #a1a1aa;--accent-primary: #fafafa;--accent-muted: #52525b;--confirm: #22c55e;--danger: #ef4444;--warning: #eab308;--border-color: #3f3f46;--radius: 4px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Geist Mono,Inter,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow:hidden;font-size:14px;line-height:1.5}#app{display:flex;flex-direction:column;height:100vh}.app-header{background:var(--bg-primary);padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;position:relative;height:60px}.app-header h1{font-size:1rem;font-weight:500;color:var(--text-primary);letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}.header-logo{height:32px;width:auto}.app-header .tagline{display:none}.hamburger-btn{position:absolute;left:1.5rem;top:50%;transform:translateY(-50%);width:24px;height:16px;background:transparent;border:none;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;padding:0;z-index:100}.hamburger-btn span{display:block;width:100%;height:2px;background:var(--text-primary);transition:all .2s ease}.hamburger-btn.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger-btn.active span:nth-child(2){opacity:0}.hamburger-btn.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.app-layout{display:grid;grid-template-columns:1fr 300px;flex:1;overflow:hidden;position:relative}.sidebar{background:var(--bg-primary);padding:1.5rem;overflow-y:auto;border-left:1px solid var(--border-color)}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--accent-muted);border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.controls-sidebar{position:absolute;left:0;top:0;bottom:0;width:300px;background:var(--bg-primary);border-right:1px solid var(--border-color);transform:translate(-100%);transition:transform .2s cubic-bezier(.16,1,.3,1);z-index:50;padding:80px 1.5rem 1.5rem;overflow-y:auto}.controls-sidebar::-webkit-scrollbar{width:6px}.controls-sidebar::-webkit-scrollbar-track{background:transparent}.controls-sidebar::-webkit-scrollbar-thumb{background:var(--accent-muted);border-radius:3px}.controls-sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.controls-sidebar.open{transform:translate(0)}.simulation-area{position:relative;background:var(--bg-primary);min-height:400px}canvas#simulation-canvas{width:100%;height:100%;display:block}h2{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}h3{font-size:.75rem;font-weight:500;color:var(--text-primary);margin-bottom:.75rem}.control-section{margin-bottom:2rem}.button-group{display:flex;gap:.75rem;flex-wrap:wrap}.button-group.vertical{flex-direction:column;gap:.5rem}.btn{padding:.6rem 1rem;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:var(--radius);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:inherit;display:inline-flex;align-items:center;justify-content:center;width:100%;text-align:center}.btn:hover{background:var(--bg-hover);border-color:var(--text-secondary);transform:translateY(-1px)}.btn:active{background:var(--bg-card);transform:translateY(1px);border-color:var(--accent-muted)}.btn-primary{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary);font-weight:600}.btn-primary:hover{background:#fff;box-shadow:0 4px 12px #ffffff1a}.btn-primary:active{background:#e5e5e5;transform:translateY(1px)}.btn-danger{color:var(--danger);border-color:var(--border-color);background:transparent}.btn-danger:hover{background:#ef44441a;border-color:var(--danger)}.btn-danger:active{background:#ef444426}.btn-success{border-left:3px solid #2ecc71;justify-content:center}.btn-warning{border-left:3px solid #e74c3c;justify-content:center}.btn.active{background:#6366f1!important;color:#fff!important;border-color:#6366f1!important;font-weight:600;box-shadow:0 0 12px #6366f166}.slider-container{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.slider-container input[type=range]{width:100%;height:4px;background:var(--bg-card);border-radius:2px;appearance:none;cursor:pointer}.slider-container input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);cursor:pointer;border:2px solid var(--bg-primary)}.slider-container span{font-size:.75rem;color:var(--text-secondary);text-align:right}.checkbox-matrix{display:flex;flex-direction:column;gap:.5rem}.driver-checkbox{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:transparent;border-radius:var(--radius);cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color)}.driver-checkbox:hover{background:var(--bg-secondary)}.driver-checkbox input[type=checkbox]{appearance:none;width:14px;height:14px;border:1px solid var(--text-secondary);border-radius:2px;position:relative;cursor:pointer}.driver-checkbox input[type=checkbox]:checked{background:var(--text-primary);border-color:var(--text-primary)}.driver-checkbox input[type=checkbox]:checked:after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid var(--bg-primary);border-width:0 2px 2px 0;transform:rotate(45deg)}.driver-label{font-size:.8rem;font-weight:500;flex:1}.driver-desc{font-size:.7rem;color:var(--text-secondary)}.type-a{border-left:2px solid hsl(210,70%,50%)}.type-b{border-left:2px solid hsl(15,80%,50%)}.type-c{border-left:2px solid hsl(145,60%,45%)}.placement-hint{margin-top:.5rem;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);font-size:.75rem;color:var(--text-secondary);text-align:center}.capacity-indicator{padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);text-align:center;font-size:.875rem;color:var(--text-secondary)}.capacity-indicator strong{color:var(--text-primary);font-weight:600}.metrics-grid{display:grid;grid-template-columns:1fr;gap:1rem}.metric-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border-color)}.metric-card:last-child{border-bottom:none}.metric-icon{display:none}.metric-content{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;width:100%}.metric-value{font-size:1.25rem;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums}.metric-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}@media(max-width:900px){.app-layout{grid-template-columns:1fr;grid-template-rows:1fr auto}.sidebar{border-left:none;border-top:1px solid var(--border-color)}}.tutorial-overlay{position:fixed;inset:0;background:#09090bd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .3s ease}.tutorial-overlay.fade-out{opacity:0;pointer-events:none}.tutorial-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:2.5rem;max-width:500px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tutorial-header{text-align:center;margin-bottom:2rem}.tutorial-header h2{font-size:1.5rem;color:var(--text-primary);margin-bottom:.5rem;border-bottom:none;text-transform:none}.tutorial-header p{color:var(--text-secondary);font-size:.95rem}.tutorial-content{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.tutorial-step{display:flex;gap:1rem;align-items:flex-start}.step-icon{font-size:1.5rem;background:var(--bg-secondary);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.step-text strong{display:block;color:var(--text-primary);margin-bottom:.25rem;font-size:.95rem}.step-text p{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.btn-large{width:100%;padding:.85rem;font-size:1rem}
