/* panels.css */
/* General styles for all panels and modules */

:root {
    --button-square-size: 30px; 
    --button-square-size-small-osc: 22px; 
}

/* === UNIFIED PANEL HEADER STYLING (for .module direct children) === */
.module > .control-group-heading.custom-heading-with-controls {
    display: flex;
    align-items: center; 
    margin-bottom: 10px; 
    padding-bottom: 5px; 
    border-bottom: 1px solid #4f4f4f; 
    font-size: var(--font-size-module-title) !important;
    font-weight: bold !important;
    color: #f0f0f0 !important;
    text-align: left;
    min-height: 28px; 
    flex-wrap: nowrap !important; 
}
.module > .control-group-heading.custom-heading-with-controls > span:not(.osc-onoff-symbol-toggle):not(.osc-title-span):not(.osc-header-spacer) { 
    flex-grow: 1; 
    margin-right: 8px; 
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.module > .control-group-heading.custom-heading-with-controls .heading-controls-right { 
    display: flex;
    align-items: center;
    gap: 6px; 
    flex-shrink: 0; 
    margin-left: auto; 
}

/* === UNIFIED PANEL HEADER BUTTON STYLING === */
.panel-header-button {
    background-color: #4a4a4a; 
    color: #bbb; 
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    padding: 0; 
    font-family: Arial, sans-serif; 
    font-weight: normal;
    text-align: center;
    cursor: pointer;
    user-select: none;
    transition: background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, transform 0.1s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 24px; 
    min-width: 24px; 
    line-height: 24px; 
    margin: 0 !important; 
    box-sizing: border-box;
    font-size: 1.0em; 
    overflow: hidden; 
}

.panel-header-button:hover {
    background-color: #5a5a5a; 
    color: #fff; 
}

.panel-header-button:active { 
    background-color: #6a6a6a; 
    transform: translateY(1px); 
}

.panel-header-button.active { 
    background-color: #e0e0e0 !important; 
    color: #222222 !important;        
    border-color: #c0c0c0 !important;
    box-shadow: inset 0 0 3px rgba(0,0,0,0.2);
}

/* Common styling for waveform symbols if needed across multiple panel types */
.waveform-symbol { display: inline-block; vertical-align: middle; }
.waveform-symbol-square { width: 1.2em; height: 1.2em; background-color: #bbb; } /* Default, active state might be in specific panel CSS */
.panel-header-button.active .waveform-symbol-square { background-color: #222222; }


/* General styling for fader + LFO mod combination */
.fader-label-lfo-wrapper { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    margin-bottom: 2px; 
    min-height: 18px; 
}
.fader-label-lfo-wrapper .control-group-label { 
    margin-bottom: 0; 
    padding-left: 0; 
    text-transform: uppercase;
} 
.fader-label-lfo-wrapper .lfo-mod-control { 
    margin-top: 0; 
    margin-right: -2px; 
}

/* General styling for compact input rows used in multiple panels */
.input-row-compact { 
    margin-top: 0; 
    margin-bottom: 6px; 
    display: flex !important; 
    flex-direction: row !important; 
    flex-wrap: nowrap !important; 
    gap: 6px !important;           
} 
.input-row-compact .inline-control-item { 
    flex: 1 1 0px !important; 
    min-width: 0 !important; 
    display: flex; 
    flex-direction: column;
}
.input-row-compact .inline-control-item input,
.input-row-compact .inline-control-item select {
    width: 100% !important; 
    box-sizing: border-box;
}

/* Responsive adjustments for compact input rows if widely applicable */
@media (max-width: 600px) {
    /* Any general adjustments for compact rows on small screens */
}