:root{--primary-color: #3b82f6;--primary-dark: #2563eb;--primary-light: #93c5fd;--accent-color: #ef4444;--success-color: #22c55e;--warning-color: #f59e0b;--bg-color: #f1f5f9;--bg-secondary: #ffffff;--bg-tertiary: #e2e8f0;--text-color: #1e293b;--text-secondary: #64748b;--border-color: #cbd5e1;--shadow: 0 4px 20px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--radius: 12px}*{box-sizing:border-box}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;flex-direction:column;align-items:center;background:var(--bg-color);background-image:radial-gradient(ellipse at top,#e0f2fe 0%,transparent 50%),radial-gradient(ellipse at bottom right,#fce7f3 0%,transparent 40%);min-height:100vh;padding:16px 16px 30px;margin:0;color:var(--text-color)}h1{color:var(--text-color);margin:0 0 12px;font-size:1.5rem;font-weight:700;letter-spacing:-.5px;text-align:center}.controls{padding:16px 20px;background:var(--bg-secondary);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-color);display:grid;grid-template-columns:115px 1fr 65px;gap:10px 12px;align-items:center;width:600px;margin-top:12px}.controls label{font-weight:500;color:var(--text-secondary);font-size:.8rem;text-align:right}.controls>div:not(.control-buttons){grid-column:2 / 4;display:flex;align-items:center;gap:12px}.controls input[type=range]{flex-grow:1;height:6px;border-radius:3px;background:linear-gradient(to right,#e2e8f0,#cbd5e1);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:inset 0 1px 2px #0000001a}.controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));cursor:pointer;box-shadow:0 2px 6px #3b82f659;transition:transform .15s ease,box-shadow .15s ease;border:2px solid white}.controls input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 3px 8px #3b82f673}.controls input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));cursor:pointer;border:2px solid white;box-shadow:0 2px 6px #3b82f659}.controls input[type=range]:focus{outline:none}.value-display{min-width:55px;text-align:right;font-weight:600;color:var(--primary-dark);font-size:.8rem;font-family:SF Mono,Consolas,Monaco,monospace;background:linear-gradient(135deg,#eff6ff,#dbeafe);padding:4px 8px;border-radius:4px;border:1px solid var(--primary-light)}.control-buttons{grid-column:1 / 4;display:flex;justify-content:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.control-buttons button{padding:8px 24px;font-size:.85rem;font-weight:600;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;min-width:90px;letter-spacing:.3px}#startButton{background:linear-gradient(135deg,var(--success-color),#16a34a);box-shadow:0 2px 8px #22c55e4d}#pauseButton{background:linear-gradient(135deg,var(--warning-color),#d97706);box-shadow:0 2px 8px #f59e0b4d;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}#resetButton{background:linear-gradient(135deg,var(--accent-color),#dc2626);box-shadow:0 2px 8px #ef44444d}#startButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22c55e66}#pauseButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}#resetButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}button:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:grayscale(30%)}#simulationArea{position:relative;width:600px;height:400px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--border-color);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;box-shadow:0 -4px 20px #00000014}.peg{position:absolute;width:8px;height:8px;background:radial-gradient(circle at 30% 30%,#94a3b8,#475569);border-radius:50%;transform:translate(-50%,-50%);box-shadow:inset 0 -2px 4px #0003,0 1px 3px #00000026}.ball{position:absolute;width:10px;height:10px;background:radial-gradient(circle at 30% 30%,#fca5a5,var(--accent-color));border-radius:50%;left:0;top:0;will-change:transform;z-index:10;box-shadow:inset 0 -3px 6px #00000026,0 2px 8px #ef444459}#barChartWrapper{position:relative;width:600px;height:280px;border-radius:0 0 var(--radius) var(--radius);overflow:hidden;box-shadow:0 4px 20px #00000014}#barChartArea{display:flex;justify-content:flex-start;align-items:flex-end;width:100%;height:100%;background:linear-gradient(to bottom,#fff,#f8fafc);border:1px solid var(--border-color);border-top:none;padding:0;box-sizing:border-box;position:absolute;top:0;left:0}.bar-container{display:flex;align-items:flex-end;justify-content:center;height:100%}.bar{background:linear-gradient(to top,var(--primary-dark),var(--primary-color),var(--primary-light));border:none;border-radius:4px 4px 0 0;width:10px;margin:0 1px;height:0;position:relative;box-sizing:border-box;flex-shrink:0;transition:height .1s ease-out;box-shadow:inset 0 1px #ffffff4d,0 2px 8px #3b82f633}.bar-label{position:absolute;bottom:-22px;left:50%;transform:translate(-50%);font-size:10px;color:var(--text-secondary);white-space:nowrap;font-weight:600}#countLabelsContainer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;display:flex;align-items:flex-end}.bar-count{position:absolute;transform:translate(-50%);font-size:10px;color:var(--text-color);font-weight:600;white-space:nowrap;font-family:SF Mono,Consolas,Monaco,monospace}#theoreticalCurveSvg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}#theoreticalCurvePath{fill:none;stroke:var(--accent-color);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 1px 2px rgba(239,68,68,.3))}@media (max-width: 640px){.controls{width:100%;grid-template-columns:1fr;gap:12px}.controls label{text-align:left}.controls>div{grid-column:1}.control-buttons{grid-column:1;flex-wrap:wrap}#simulationArea,#barChartWrapper{width:100%}}
