/* CSS Variables */ :root { --keyboard-bg: #fafafa; --inactive-key-bg: #e0e0e0; --border-color: #e5e5e5; --slider-track: #393a39; --slider-thumb: #000000; } /* Base styles */ html, body, #root, .wrapper, main, .main-container { min-height: 100vh; margin: 0; padding: 0; width: 100%; max-width: 100%; } body { font-family: 'Roboto', sans-serif; font-size: 1rem; line-height: 1.5; overflow-x: hidden; transition: background-color 0.2s ease; } /* Keyboard layout */ .keyboard-container { width: 100%; padding: 1.5rem; background: var(--keyboard-bg); border: 1px solid var(--border-color); border-radius: 4px; user-select: none; color: #333; } .keyboard-row { display: flex; gap: 0.25rem; margin-bottom: 0.25rem; width: 100%; } /* Key styles */ .key { width: calc((100% - 2.75rem) / 12); aspect-ratio: 1; min-width: 40px; flex: none; padding: 0.5rem; border: 2px solid var(--border-color); border-radius: 4px; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; align-items: center; justify-content: center; } .key:hover { transform: translateY(-1px); } .key:active { transform: translateY(0); } .key.inactive, .key:disabled { background: var(--inactive-key-bg); } .key-label { font-size: 0.875rem; font-weight: 500; color: #333; } .note-label { font-size: 0.75rem; margin-top: 0.25rem; color: #666; } /* Controls section */ .controls-section { margin: 1em 0; padding: 1em; } .controls-row { display: flex; gap: 1em; margin: 1em 0; } .control-group { margin: 1em 0; } .control-group.half-width { flex: 1; margin: 0; } /* Labels and values */ .slider-label, h3 { display: block; margin-bottom: 0.5em; font-size: 0.9em; color: #333; } h3 { margin-top: 0; font-size: 1rem; font-weight: 500; } /* Range inputs */ input[type="range"] { width: 100%; height: 24px; background: transparent; border-radius: 2px; appearance: none; cursor: pointer; margin: 0.5em 0; padding: 10px 0; } input[type="range"]::-webkit-slider-thumb { appearance: none; width: 16px; height: 16px; background: var(--slider-thumb); border-radius: 50%; cursor: pointer; margin-top: -6px; } input[type="range"]::-webkit-slider-runnable-track { background: var(--slider-track); height: 4px; border-radius: 2px; } input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; background: var(--slider-thumb); border: none; border-radius: 50%; cursor: pointer; } input[type="range"]::-moz-range-track { background: var(--slider-track); height: 4px; border-radius: 2px; } /* Mobile styles */ @media (max-width: 768px) { .control-group { min-width: 100%; } .key { min-width: 35px; } .key-label { font-size: 0.75rem; } input[type="range"] { height: 32px; padding: 14px 0; } input[type="range"]::-webkit-slider-thumb { width: 28px; height: 28px; } } .release-value, .reverb-mix-value, .master-value, .root-value, .column-value, .row-value { color: black; }