.audio-mixer {
    --panel: #18191f;
    --edge: #3b3e49;
    --cyan: #36d5f2;
    color: #f8f9fa;
    background: linear-gradient(145deg, #252730, #111217);
    border: 1px solid var(--edge);
    border-radius: .8rem;
    padding: var(--mixer-panel-padding, .85rem);
    box-shadow: inset 0 1px rgba(255,255,255,.08), 0 18px 42px rgba(0,0,0,.45);
    font-family: system-ui, sans-serif;
    min-width: 0;
    max-width: 100%;
}

.audio-mixer__header {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: var(--mixer-gap-sm, .5rem);
}

    .audio-mixer__header > div:first-child {
        display: grid;
    }

    .audio-mixer__header span {
        color: #b8bdc9;
        font-size: .75rem;
    }

.audio-mixer__title strong {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.audio-mixer__snapshot-status {
    margin: .15rem 0 0;
    color: var(--bs-secondary-color, #adb5bd);
    font-size: .72rem;
    line-height: 1.25;
}

.audio-mixer__title small {
    color: #b8bdc9;
    font-size: .7rem;
    font-weight: 500;
}

.audio-mixer__actions {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

    .audio-mixer__actions select {
        width: auto;
        min-width: 7rem;
        background: #0d1117;
        color: #f8f9fa;
        border-color: var(--edge);
    }

.audio-mixer__body {
    min-width: 0;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
}

.audio-mixer__console {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
        "input input eq eq eq eq eq eq eq eq eq eq"
        "compressor compressor compressor compressor compressor compressor limiter limiter limiter limiter limiter limiter"
        "stereo stereo stereo stereo stereo output output output output output output output"
        "meter meter meter meter meter meter meter meter meter meter meter meter";
    gap: var(--mixer-gap-md, .75rem);
    align-items: stretch;
    min-width: 0;
}

.mixer-section {
    min-width: 0;
    margin: 0;
    padding: var(--mixer-panel-padding, .85rem);
    overflow: hidden;
    border: 1px solid var(--edge);
    border-radius: var(--mixer-panel-radius, .6rem);
    background: linear-gradient(#20222a,#15161b);
    box-shadow: inset 0 0 14px rgba(0,0,0,.3);
}

    .mixer-section legend {
        float: none;
        width: auto;
        margin: 0 auto .65rem;
        padding: 0 .45rem;
        color: #aeb4c2;
        font-size: .68rem;
        font-weight: 800;
        letter-spacing: .12em;
        text-transform: uppercase;
    }

.mixer-section--input {
    grid-area: input;
}

.mixer-section--eq {
    grid-area: eq;
}

.mixer-section--eq {
    display: grid;
    grid-template-rows: auto auto 1fr;
}

.mixer-eq-curve {
    position: relative;
    width: 100%;
    min-width: 0;
    height: clamp(190px, 24vw, 245px);
    min-height: 190px;
    margin-bottom: .8rem;
    overflow: visible;
    border: 1px solid #30343d;
    border-radius: .45rem;
    background: linear-gradient(180deg, rgba(7, 10, 15, .96), rgba(14, 17, 24, .96));
    box-shadow: inset 0 1px rgba(255, 255, 255, .035);
}

    .mixer-eq-curve svg {
        display: block;
        width: 100%;
        height: 100%;
        overflow: visible;
        touch-action: none;
    }

.mixer-eq-curve__grid,
.mixer-eq-curve__zero {
    vector-effect: non-scaling-stroke;
    stroke: rgba(174, 180, 194, .13);
    stroke-width: 1;
}

.mixer-eq-curve__zero {
    stroke: rgba(248, 249, 250, .62);
    stroke-width: 1.5;
}

.mixer-eq-curve__axis {
    fill: #858b98;
    font: 600 9px/1 ui-monospace, monospace;
    pointer-events: none;
}

.mixer-eq-curve__response {
    fill: none;
    stroke: var(--cyan);
    stroke-width: 2.5;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 0 4px rgba(54, 213, 242, .42));
    pointer-events: none;
}

.mixer-eq-curve__point {
    fill: #11151c;
    stroke: var(--eq-point-color);
    stroke-width: 3;
    vector-effect: non-scaling-stroke;
    cursor: grab;
    filter: drop-shadow(0 0 4px var(--eq-point-color));
}

    .mixer-eq-curve__point:focus-visible {
        outline: none;
        stroke: #fff;
        stroke-width: 5;
    }

    .mixer-eq-curve__point:active {
        cursor: grabbing;
    }

.mixer-eq-curve__tooltip {
    position: absolute;
    z-index: 3;
    display: grid;
    min-width: 6.5rem;
    padding: .4rem .55rem;
    border: 1px solid #596172;
    border-radius: .35rem;
    background: rgba(9, 11, 16, .96);
    color: #f8f9fa;
    font: 600 .68rem/1.35 ui-monospace, monospace;
    pointer-events: none;
    transform: translate(-50%, calc(-100% - 14px));
    box-shadow: 0 5px 16px rgba(0, 0, 0, .55);
}

    .mixer-eq-curve__tooltip[hidden],
    .mixer-eq-curve__empty[hidden] {
        display: none;
    }

.mixer-eq-curve__empty {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    gap: .25rem;
    padding: 1rem;
    border-radius: inherit;
    background: rgba(10, 12, 17, .82);
    color: #b8bdc9;
    text-align: center;
}

    .mixer-eq-curve__empty strong {
        color: #f8f9fa;
    }

.mixer-eq-curve.is-disabled .mixer-eq-curve__response,
.mixer-eq-curve.is-disabled .mixer-eq-curve__point {
    opacity: .35;
    pointer-events: none;
}

.mixer-section--compressor {
    grid-area: compressor;
}

.mixer-section--limiter {
    grid-area: limiter;
}

.mixer-section--stereo {
    grid-area: stereo;
}

.mixer-section--output {
    grid-area: output;
}

.mixer-section--meter {
    grid-area: meter;
}

.mixer-section__controls {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
    align-items: end;
    gap: .75rem;
    min-width: 0;
    height: 100%;
}

@media (max-width: 575.98px) {
    .mixer-eq-curve {
        height: 210px;
        min-height: 210px;
    }

    .mixer-eq-curve__point {
        stroke-width: 4;
    }
}

.audio-mixer--full .mixer-section--limiter,
.audio-mixer--full .mixer-section--stereo,
.audio-mixer--full .mixer-section--output {
    display: grid;
    grid-template-rows: auto 1fr;
    padding: .55rem .65rem .65rem;
}

    .audio-mixer--full .mixer-section--limiter legend,
    .audio-mixer--full .mixer-section--stereo legend,
    .audio-mixer--full .mixer-section--output legend {
        margin-bottom: .4rem;
    }

    .audio-mixer--full .mixer-section--limiter .mixer-section__controls,
    .audio-mixer--full .mixer-section--stereo .mixer-section__controls,
    .audio-mixer--full .mixer-section--output .mixer-section__controls {
        height: auto;
        align-self: start;
        align-items: start;
        gap: .6rem;
    }

    .audio-mixer--full .mixer-section--stereo .mixer-section__controls {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .audio-mixer--full .mixer-section--limiter .mixer-section__controls {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

    .audio-mixer--full .mixer-section--limiter .mixer-control,
    .audio-mixer--full .mixer-section--stereo .mixer-control {
        grid-template-rows: 1.35rem 56px 1.35rem;
        align-self: start;
    }

    .audio-mixer--full .mixer-section--output .mixer-control {
        align-self: start;
    }

.mixer-control {
    position: relative;
    display: grid;
    grid-template-rows: minmax(2rem,auto) 1fr auto;
    justify-items: center;
    align-items: center;
    gap: .45rem;
    min-width: 0;
}

.mixer-control-label {
    align-self: start;
    max-width: 100%;
    color: #d5d8df;
    font-size: .68rem;
    line-height: 1.25;
    text-align: center;
    overflow-wrap: anywhere;
}

.mixer-control-value {
    box-sizing: border-box;
    width: min(100%, 6.5rem);
    min-height: 1.35rem;
    padding: .16rem .3rem;
    overflow: hidden;
    border: 1px solid #30343d;
    border-radius: .25rem;
    background: #080a0e;
    color: var(--cyan);
    font: 700 .7rem/1.2 ui-monospace,monospace;
    font-variant-numeric: tabular-nums;
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.mixer-control-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
}

.mixer-widget {
    position: relative;
    display: grid;
    place-items: center;
    touch-action: none;
    cursor: ns-resize;
    outline: none;
}

    .mixer-widget:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 4px;
    }

.mixer-control--knob .mixer-widget {
    width: 56px;
    height: 56px;
    border: 2px solid #555b68;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%,#707584,#292c34 55%,#090a0d 58%);
    box-shadow: inset 0 0 9px #000,0 4px 8px rgba(0,0,0,.6);
}

    .mixer-control--knob .mixer-widget::before {
        content: "";
        position: absolute;
        inset: 6px;
        border: 1px solid rgba(255,255,255,.13);
        border-radius: 50%;
    }

    .mixer-control--knob .mixer-widget::after {
        content: "";
        position: absolute;
        top: 4px;
        width: 3px;
        height: 18px;
        border-radius: 2px;
        background: var(--cyan);
        box-shadow: 0 0 5px var(--cyan);
        transform-origin: 50% 24px;
        transform: rotate(var(--knob-angle,-135deg));
    }

.mixer-control--bipolar .mixer-widget {
    box-shadow: inset 0 0 9px #000,0 0 0 2px rgba(54,213,242,.12),0 4px 8px rgba(0,0,0,.6);
}

.mixer-control--fader .mixer-widget {
    width: 72px;
    height: 174px;
}

    .mixer-control--fader .mixer-widget::before {
        content: "";
        position: absolute;
        inset: 0 auto;
        width: 8px;
        border: 1px solid #30333a;
        border-radius: 5px;
        background: repeating-linear-gradient(to bottom,#07080a 0 4px,#111 4px 8px);
    }

.mixer-widget__indicator {
    position: absolute;
    left: 50%;
    top: calc(var(--fader-pos,50%) - 10px);
    width: 36px;
    height: 20px;
    margin-left: -18px;
    border: 2px solid #4e535e;
    border-radius: 3px;
    background: linear-gradient(to right,transparent 46%,#ec4e4e 46% 54%,transparent 54%),linear-gradient(#e5e7eb,#9297a2);
    box-shadow: 0 3px 8px #000;
}

.mixer-control--knob .mixer-widget__indicator {
    display: none;
}

.mixer-fader__scale {
    position: absolute;
    inset: 0 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #858b98;
    font-size: .5rem;
}

    .mixer-fader__scale b {
        font-weight: 500;
    }

.mixer-control--horizontal-fader {
    grid-template: 1.35rem 2.5rem 1.35rem / 1fr;
    width: 100%;
    gap: .25rem;
}

    .mixer-control--horizontal-fader .mixer-control-label {
        font-size: .72rem;
    }

    .mixer-control--horizontal-fader .mixer-widget {
        width: 100%;
        height: 2.5rem;
        cursor: ew-resize;
    }

        .mixer-control--horizontal-fader .mixer-widget::before {
            content: "";
            position: absolute;
            right: 0;
            left: 0;
            height: 8px;
            border: 1px solid #30333a;
            border-radius: 5px;
            background: repeating-linear-gradient(to right,#07080a 0 4px,#111 4px 8px);
        }

        .mixer-control--horizontal-fader .mixer-widget::after {
            content: "";
            position: absolute;
            left: 66.667%;
            width: 2px;
            height: 16px;
            border-radius: 2px;
            background: var(--cyan);
            box-shadow: 0 0 5px rgba(54,213,242,.8);
            transform: translateX(-1px);
        }

    .mixer-control--horizontal-fader .mixer-widget__indicator {
        top: 50%;
        left: var(--horizontal-fader-pos,66.667%);
        width: 20px;
        height: 30px;
        margin: -15px 0 0 -10px;
        background: linear-gradient(to bottom,transparent 46%,#ec4e4e 46% 54%,transparent 54%),linear-gradient(to right,#e5e7eb,#9297a2);
    }

    .mixer-control--horizontal-fader .mixer-fader__scale {
        inset: auto 0 0;
        flex-direction: row;
        align-items: end;
        font-size: .55rem;
    }

    .mixer-control--horizontal-fader .mixer-fader__neutral {
        color: var(--cyan);
        font-weight: 800;
        transform: translateX(33%);
    }

.mixer-switch {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .48rem;
    border: 1px solid #555b68;
    border-radius: .35rem;
    background: #292c34;
    color: #f5f5f5;
    font-size: .72rem;
    font-weight: 700;
}

    .mixer-switch i {
        width: .65rem;
        height: .65rem;
        border-radius: 50%;
        background: #555;
        box-shadow: inset 0 1px 2px #111;
    }

    .mixer-switch[aria-pressed=true] i {
        background: #ff594f;
        box-shadow: 0 0 8px #ff594f;
    }

.mixer-switch--bypass[aria-pressed=true] {
    border-color: #ff594f;
}

.mixer-switch .app-icon {
    color: #8b949e;
}

.mixer-switch[aria-pressed=true] .app-icon {
    color: #ff594f;
    filter: drop-shadow(0 0 4px #ff594f);
}

.audio-mixer__meter {
    display: grid;
    grid-template-columns: auto minmax(100px,1fr) 5rem;
    gap: .35rem .5rem;
    align-items: center;
}

    .audio-mixer__meter > div {
        height: .75rem;
        overflow: hidden;
        border: 1px solid #333;
        border-radius: 2px;
        background: repeating-linear-gradient(90deg,#050505 0 7px,#191b20 7px 9px);
    }

    .audio-mixer__meter i {
        display: block;
        width: 0;
        height: 100%;
        background: linear-gradient(90deg,#25cf6b 0 70%,#f2ce3d 70% 90%,#ff4d45 90%);
        transition: width .04s;
    }

    .audio-mixer__meter output {
        color: #b8bdc9;
        font: .68rem ui-monospace,monospace;
        text-align: right;
    }

    .audio-mixer__meter strong {
        color: #ff5a52;
    }

    .audio-mixer__meter small {
        grid-column: 2/4;
        color: #aeb4c2;
    }

.audio-mixer--compact {
    max-height: min(64vh,430px);
    overflow: hidden;
    padding: .7rem;
    border-radius: .7rem;
    box-shadow: 0 -12px 36px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.08);
}

    .audio-mixer--compact .audio-mixer__header {
        margin-bottom: .55rem;
    }

    .audio-mixer--compact .audio-mixer__title {
        display: flex;
        align-items: center;
        gap: .6rem;
        white-space: nowrap;
    }

    .audio-mixer--compact .audio-mixer__console {
        display: grid;
        grid-template-columns: repeat(9,minmax(68px,1fr));
        grid-template-areas: none;
        gap: .4rem;
        align-items: start;
    }

    .audio-mixer--compact .mixer-section {
        display: contents;
    }

        .audio-mixer--compact .mixer-section legend {
            display: none;
        }

    .audio-mixer--compact .mixer-section__controls {
        display: contents;
    }

    .audio-mixer--compact .mixer-control {
        grid-template-rows: 1.1rem 46px 1.25rem;
        gap: .2rem;
        padding: .25rem;
        border: 1px solid rgba(255,255,255,.08);
        border-radius: .4rem;
        background: rgba(0,0,0,.2);
    }

    .audio-mixer--compact .mixer-control--knob .mixer-widget {
        width: 46px;
        height: 46px;
    }

        .audio-mixer--compact .mixer-control--knob .mixer-widget::after {
            height: 15px;
            transform-origin: 50% 20px;
        }

    .audio-mixer--compact .mixer-control--fader .mixer-widget {
        width: 52px;
        height: 46px;
    }

        .audio-mixer--compact .mixer-control--fader .mixer-widget::before {
            width: 6px;
        }

    .audio-mixer--compact .mixer-widget__indicator {
        top: calc(var(--fader-pos,50%) - 7px);
        width: 30px;
        height: 14px;
        margin-left: -15px;
    }

    .audio-mixer--compact .mixer-control--horizontal-fader {
        grid-template-rows: 1.1rem 46px 1.25rem;
    }

        .audio-mixer--compact .mixer-control--horizontal-fader .mixer-widget {
            height: 46px;
        }

        .audio-mixer--compact .mixer-control--horizontal-fader .mixer-widget__indicator {
            top: 50%;
            left: var(--horizontal-fader-pos,66.667%);
            width: 20px;
            height: 30px;
            margin: -15px 0 0 -10px;
        }

.audio-mixer__advanced {
    grid-column: 1/-1;
    border-top: 1px solid var(--edge);
    padding-top: .4rem;
}

    .audio-mixer__advanced summary {
        width: max-content;
        color: #cbd0da;
        font-size: .72rem;
        font-weight: 700;
        cursor: pointer;
    }

        .audio-mixer__advanced summary:focus-visible {
            outline: 2px solid #fff;
            outline-offset: 2px;
        }

.audio-mixer__advanced-controls {
    display: grid;
    grid-template-columns: repeat(8,minmax(68px,1fr));
    gap: .4rem;
    margin-top: .4rem;
}

.audio-mixer button:focus-visible, .audio-mixer input:focus-visible, .audio-mixer select:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.mixer-page,
.mixer-page.mm-page-shell {
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: 100%;
    margin: 0;
    box-sizing: border-box;
}

.mixer-monitor-column,
.mixer-controls-column {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.mixer-mastering-actions {
    position: sticky;
    top: calc(var(--mm-topbar-height, 64px) + 1rem);
    display: grid;
    gap: .65rem;
    width: 100%;
    min-width: 0;
    max-height: calc(100vh - var(--mm-topbar-height, 64px) - 2rem);
    padding: .75rem;
    overflow-y: auto;
    overflow-x: clip;
    box-sizing: border-box;
    border: 1px solid #3b3e49;
    border-radius: .8rem;
    background: #111217;
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
}

.mixer-mastering-actions__title {
    margin: 0;
    color: #f0f2f5;
    font-size: 1rem;
    font-weight: 700;
}

.mixer-mastering-actions__primary {
    display: grid;
    gap: .5rem;
    min-width: 0;
    order: 3;
}

    .mixer-mastering-actions__primary .btn {
        order: 2;
        width: 100%;
        min-width: 0;
        white-space: normal;
    }

.mixer-mastering-actions__compact-label {
    display: none;
}

.mixer-mastering-actions__track {
    order: 1;
    min-width: 0;
    color: #b8bdc9;
    font-size: .72rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.audio-mixer__meter--console {
    order: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto 6rem auto auto;
    justify-content: center;
    gap: .2rem .75rem;
    min-width: 0;
}

    .audio-mixer__meter--console .audio-mixer__meter-channel {
        grid-row: 1;
        text-align: center;
    }

    .audio-mixer__meter--console .audio-mixer__meter-track {
        position: relative;
        width: .9rem;
        height: 6rem;
        justify-self: center;
        background: repeating-linear-gradient(0deg,#050505 0 7px,#191b20 7px 9px);
    }

    .audio-mixer__meter--console .audio-mixer__meter-track--left {
        grid-column: 1;
        grid-row: 2;
    }

    .audio-mixer__meter--console .audio-mixer__meter-track--right {
        grid-column: 2;
        grid-row: 2;
    }

    .audio-mixer__meter--console i {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100% !important;
        height: var(--meter-level, 0%);
        background: linear-gradient(0deg,#25cf6b 0 70%,#f2ce3d 70% 90%,#ff4d45 90%);
        transition: height .04s;
    }

    .audio-mixer__meter--console > output {
        grid-row: 3;
        text-align: center;
    }

.audio-mixer__meter--console {
    min-width: 0;
}

.audio-mixer__meter-status {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(min(5.5rem,100%),1fr));
    gap: .4rem;
    height: auto !important;
    min-width: 0;
    padding: .35rem;
    overflow: visible !important;
    border-color: rgba(255,255,255,.08) !important;
    border-radius: .55rem !important;
    background: rgba(5,6,9,.38) !important;
}

.audio-mixer__meter-stat {
    display: grid;
    align-content: center;
    gap: .12rem;
    min-width: 0;
    min-height: 2.7rem;
    padding: .35rem .45rem;
    border: 1px solid #353945;
    border-radius: .4rem;
    background: #1b1d24;
}

.audio-mixer__meter-stat-label {
    color: #8f97a8;
    font-size: .6rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.audio-mixer__meter .audio-mixer__meter-stat-value {
    overflow-wrap: anywhere;
    color: #e4e7ed;
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.2;
    text-align: left;
}

.audio-mixer__meter-stat--secondary .audio-mixer__meter-stat-value {
    color: #b8bdc9;
}

.audio-mixer__meter-stat--limiter {
    border-color: #355044;
}

    .audio-mixer__meter-stat--limiter .audio-mixer__meter-stat-value {
        color: #72dda0;
    }

    .audio-mixer__meter-stat--limiter.is-inactive {
        border-color: #454954;
    }

        .audio-mixer__meter-stat--limiter.is-inactive .audio-mixer__meter-stat-value {
            color: #b8bdc9;
        }

.audio-mixer__clip-count {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: .12rem .35rem;
    min-height: 2.7rem;
    padding: .3rem .5rem;
    color: #f0f2f5;
    text-align: left;
    border: 1px solid #637064;
    border-radius: .4rem;
    background: linear-gradient(135deg,#1d2922,#20242a);
    transition: color .15s, text-shadow .15s, transform .15s, border-color .15s, background .15s;
}

    .audio-mixer__clip-count .audio-mixer__meter-stat-label {
        color: #a9cbb6;
    }

.audio-mixer__clip-value {
    grid-column: 2;
    grid-row: 1 / span 2;
    color: #89e6ad;
    font: 800 1.25rem/1 ui-monospace,monospace;
}

.audio-mixer__clip-channels {
    color: #c4cad3;
    font: .62rem/1 ui-monospace,monospace;
    overflow-wrap: anywhere;
}

.audio-mixer__clip-count.is-clipping {
    color: #fff;
    text-shadow: 0 0 10px rgba(255,90,82,.45);
    border-color: #ff5a52;
    background: linear-gradient(135deg,#541d21,#32171a);
    box-shadow: inset 3px 0 0 #ff5a52,0 0 0 1px rgba(255,90,82,.15);
}

    .audio-mixer__clip-count.is-clipping .audio-mixer__meter-stat-label::before {
        content: "⚠ ";
    }

    .audio-mixer__clip-count.is-clipping .audio-mixer__meter-stat-label,
    .audio-mixer__clip-count.is-clipping .audio-mixer__clip-value {
        color: #fff;
    }

.audio-mixer__clip-count.is-clipping-now {
    animation: mixer-clip-pulse .55s ease-out;
}

@keyframes mixer-clip-pulse {
    50% {
        transform: scale(1.035);
    }
}

.audio-mixer__clip-tooltip {
    position: absolute;
    z-index: 1080;
    width: min(24rem,calc(100vw - 2rem));
    padding: .55rem .7rem;
    color: #f8f9fa;
    font-size: .75rem;
    line-height: 1.35;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    border: 1px solid #697181;
    border-radius: .4rem;
    background: #17191f;
    box-shadow: 0 8px 24px rgba(0,0,0,.45);
    transform: translateY(calc(-100% - .5rem));
}

.audio-mixer__clip-count:hover + .audio-mixer__clip-tooltip,
.audio-mixer__clip-count:focus-visible + .audio-mixer__clip-tooltip {
    visibility: visible;
    opacity: 1;
}

.audio-mixer__meter--global {
    margin: .35rem 0;
}

    .audio-mixer__meter--global .audio-mixer__meter-status {
        grid-column: 1 / -1;
    }

.mixer-mastering-progress {
    grid-column: 1/-1;
    order: 4;
    display: grid;
    grid-template-columns: minmax(0,1fr);
    align-items: center;
    gap: .65rem;
}

    .mixer-mastering-progress .progress {
        min-width: 0;
    }

.mixer-mastering-actions > [data-mixer-mastering-error] {
    grid-column: 1/-1;
    order: 5;
    margin: 0;
}

.mixer-mastering-confirm {
    max-width: min(34rem,calc(100vw - 2rem));
    color: #f8f9fa;
    background: #20222a;
    border: 1px solid #3b3e49;
    border-radius: .8rem;
}

    .mixer-mastering-confirm::backdrop {
        background: rgba(0,0,0,.7);
    }

@media (max-width:1199.98px) {
    .audio-mixer--full .audio-mixer__console {
        grid-template-areas: "input input input eq eq eq eq eq eq eq eq eq" "compressor compressor compressor compressor compressor compressor compressor compressor compressor compressor compressor compressor" "limiter limiter limiter limiter limiter limiter stereo stereo stereo stereo output output" "meter meter meter meter meter meter meter meter meter meter meter meter";
    }
}

@media (min-width:768px) {
    .audio-mixer--full .mixer-section--input, .audio-mixer--full .mixer-section--eq {
        padding-top: .55rem;
        padding-bottom: .55rem;
    }

        .audio-mixer--full .mixer-section--input legend, .audio-mixer--full .mixer-section--eq legend {
            margin-bottom: .4rem;
        }

        .audio-mixer--full .mixer-section--input .mixer-section__controls {
            align-items: center;
        }

        .audio-mixer--full .mixer-section--eq .mixer-section__controls {
            grid-template-columns: repeat(7,minmax(64px,1fr));
            gap: .5rem;
        }
}

@media (max-width:1199.98px) and (min-width:768px) {
    .audio-mixer--compact .audio-mixer__header {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .audio-mixer--compact .audio-mixer__console {
        grid-template-columns: repeat(5,minmax(68px,1fr));
    }

    .audio-mixer__advanced-controls {
        grid-template-columns: repeat(5,minmax(68px,1fr));
    }
}

@media (max-width:767.98px) {
    .audio-mixer__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .audio-mixer--full .audio-mixer__body {
        overflow-x: hidden;
    }

    .audio-mixer--full .audio-mixer__console {
        grid-template-columns: minmax(0,1fr);
        grid-template-areas: "input" "eq" "compressor" "limiter" "stereo" "output" "meter";
    }

    .audio-mixer--full .mixer-section__controls {
        grid-template-columns: repeat(auto-fit,minmax(68px,1fr));
    }

    .audio-mixer--full .mixer-section--input .mixer-section__controls {
        grid-template-columns: minmax(0,1fr);
    }

    .audio-mixer--compact {
        position: relative;
        max-height: min(68vh,560px);
        padding: .75rem;
        border-radius: 1rem 1rem 0 0;
    }

        .audio-mixer--compact .audio-mixer__header {
            gap: .5rem;
        }

        .audio-mixer--compact .audio-mixer__actions {
            width: 100%;
        }

            .audio-mixer--compact .audio-mixer__actions select {
                flex: 1;
                min-width: 8rem;
            }

        .audio-mixer--compact .audio-mixer__body {
            max-height: min(46vh,390px);
        }

        .audio-mixer--compact .audio-mixer__console, .audio-mixer__advanced-controls {
            grid-template-columns: repeat(2,minmax(0,1fr));
        }

    .mixer-control--fader .mixer-widget {
        height: 150px;
    }

    .audio-mixer--compact .mixer-control--fader .mixer-widget {
        height: 46px;
    }

    .mixer-mastering-actions {
        position: static;
        max-height: none;
        overflow: visible;
    }

    .mixer-mastering-actions__primary {
        grid-template-columns: 1fr;
    }

    .mixer-mastering-progress {
        grid-template-columns: 1fr;
    }
}

@container mm-page-host (max-width: 58rem) {
    .mixer-mastering-actions {
        position: static;
        grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr);
        max-height: none;
        overflow: visible;
    }

        .mixer-mastering-actions__title,
        .mixer-mastering-actions > input[type=hidden] {
            grid-column: 1 / -1;
        }
}

@container mm-page-host (max-width: 48rem) {
    .mixer-mastering-actions {
        grid-template-columns: minmax(0, 1fr);
    }
}


.mixer-mastering-actions .audio-mixer__clip-tooltip {
    left: .75rem;
    right: .75rem;
    width: auto;
    max-width: calc(100% - 1.5rem);
    box-sizing: border-box;
}

.audio-mixer--full .audio-mixer__body {
    overflow: visible;
}

@media (prefers-reduced-motion:reduce) {
    .audio-mixer__meter i, .audio-mixer__clip-count, .mixer-mastering-actions {
        transition: none;
    }

        .audio-mixer__clip-count.is-clipping-now {
            animation: none;
        }
}

.audio-mixer__processor-options {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: .65rem;
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.mixer-controls-column {
    display: grid;
    gap: 1rem;
}

.mixer-output-monitor,
.mixer-mastering-actions {
    width: 100%;
    min-width: 0;
    padding: 1rem;
    box-sizing: border-box;
    border: 1px solid #3b3e49;
    border-radius: .8rem;
    background: linear-gradient(145deg,#20222a,#111217);
    box-shadow: 0 8px 24px rgba(0,0,0,.3);
}

.mixer-output-monitor__header,
.mixer-mastering-actions__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .8rem;
}

    .mixer-output-monitor__header h2,
    .mixer-mastering-actions__heading h2 {
        margin: 0;
        color: #f0f2f5;
        font-size: .78rem;
        font-weight: 800;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .mixer-output-monitor__header p,
    .mixer-mastering-actions__heading p {
        margin: .15rem 0 0;
        color: #9da4b3;
        font-size: .72rem;
    }

.mixer-output-monitor__signal {
    flex: 0 0 auto;
    padding: .25rem .55rem;
    color: #72dda0;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    border: 1px solid #355044;
    border-radius: 999px;
    background: #17241e;
}

.audio-mixer__meter--console {
    display: grid;
    grid-template-columns: repeat(2, minmax(5rem, 7rem)) minmax(0, 1fr);
    grid-template-rows: minmax(8rem, auto);
    align-items: stretch;
    justify-content: start;
    gap: 1rem;
}

.audio-mixer__meter-channel-group {
    display: grid;
    grid-template-rows: auto minmax(8rem, 1fr) auto;
    justify-items: center;
    gap: .3rem;
    min-width: 0;
}

.audio-mixer__meter--console .audio-mixer__meter-channel-group .audio-mixer__meter-track {
    position: relative;
    grid-column: auto;
    grid-row: auto;
    width: 1rem;
    height: 100%;
    min-height: 8rem;
    background: repeating-linear-gradient(0deg,#050505 0 7px,#191b20 7px 9px);
}

.audio-mixer__meter--console .audio-mixer__meter-channel-group > output {
    grid-row: auto;
    color: #e4e7ed;
    font: 650 .72rem/1.2 ui-monospace,monospace;
    text-align: center;
}

.audio-mixer__meter--console .audio-mixer__meter-status {
    grid-column: 3;
    display: grid;
    grid-template-columns: repeat(3,minmax(7rem,1fr));
    align-content: center;
}

.mixer-mastering-actions {
    position: static;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: .75rem 1rem;
    max-height: none;
    overflow: visible;
}

.mixer-mastering-actions__heading {
    display: block;
    margin: 0;
}

.mixer-mastering-actions__primary {
    display: block;
    order: initial;
}

    .mixer-mastering-actions__primary .btn {
        width: auto;
        min-width: 12rem;
        white-space: nowrap;
    }

.mixer-mastering-progress,
.mixer-mastering-actions > [data-mixer-mastering-error] {
    grid-column: 1 / -1;
    order: initial;
}

.mixer-output-monitor .audio-mixer__clip-tooltip {
    right: 1rem;
    width: min(24rem,calc(100% - 2rem));
}

@media (max-width: 991.98px) {
    .audio-mixer__meter--console {
        grid-template-columns: repeat(2,minmax(4rem,6rem));
    }

        .audio-mixer__meter--console .audio-mixer__meter-status {
            grid-column: 1 / -1;
            grid-template-columns: repeat(3,minmax(0,1fr));
        }
}

@media (max-width: 575.98px) {
    .mixer-output-monitor,
    .mixer-mastering-actions {
        padding: .75rem;
    }

    .mixer-output-monitor__header {
        align-items: flex-start;
    }

    .audio-mixer__meter--console {
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: .65rem;
    }

        .audio-mixer__meter--console .audio-mixer__meter-status {
            grid-template-columns: repeat(2,minmax(0,1fr));
        }

    .mixer-mastering-actions {
        grid-template-columns: minmax(0,1fr);
    }

    .mixer-mastering-actions__primary .btn {
        width: 100%;
        min-width: 0;
        white-space: normal;
    }
}

.audio-mixer__processor-options label {
    display: grid;
    gap: .2rem;
    min-width: 8rem;
    font-size: .75rem;
}

.audio-mixer--compact .audio-mixer__processor-options {
    max-height: 12rem;
    overflow: auto;
}

.mixer-analysis {
    padding: 1rem;
    border-top: 1px solid var(--bs-border-color);
    background: linear-gradient(180deg,rgba(8,14,22,.92),rgba(3,8,14,.98));
}

.mixer-analysis__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}

    .mixer-analysis__toolbar div {
        display: grid;
    }

    .mixer-analysis__toolbar span {
        color: var(--bs-secondary-color);
        font-size: .75rem;
    }

.mixer-analysis__grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .75rem;
}

.mixer-analysis-card {
    min-width: 0;
    padding: .85rem;
    border: 1px solid rgba(126,173,204,.22);
    border-radius: .65rem;
    background: rgba(12,22,32,.86);
    box-shadow: inset 0 1px rgba(255,255,255,.035);
}

    .mixer-analysis-card h3, .mixer-analysis-card summary {
        margin: 0 0 .65rem;
        color: #c5dce9;
        font-size: .78rem;
        font-weight: 700;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

.mixer-analysis-card--wide {
    grid-column: span 2;
}

.mixer-analysis-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    min-height: 1.7rem;
}

    .mixer-analysis-card__header h3 {
        margin-bottom: .45rem;
    }

.mixer-analysis-card dl {
    display: grid;
    gap: .35rem;
    margin: 0;
}

    .mixer-analysis-card dl div {
        display: flex;
        justify-content: space-between;
        gap: .5rem;
    }

.mixer-analysis-card dt {
    color: #91a4af;
    font-size: .72rem;
    font-weight: 500;
}

.mixer-analysis-card dd {
    margin: 0;
    color: #f0f6f8;
    font: 600 .78rem ui-monospace,SFMono-Regular,monospace;
    text-align: right;
}

.mixer-analysis__metrics {
    grid-template-columns: repeat(2,minmax(0,1fr));
    column-gap: .85rem;
}

    .mixer-analysis__metrics div {
        min-width: 0;
    }

.mixer-analysis__state {
    display: block;
    margin-top: .65rem;
    color: #80d6bd;
    font-size: .68rem;
    letter-spacing: .08em;
}

.mixer-analog {
    position: relative;
    height: 5.5rem;
    margin-bottom: .65rem;
    overflow: hidden;
    border: 1px solid #4f5e60;
    border-radius: 5rem 5rem .4rem .4rem;
    background: radial-gradient(ellipse at 50% 110%,#d3b980 0,#9a855e 42%,#342f25 73%);
    box-shadow: inset 0 0 1.2rem #0009,0 1px #ffffff24;
}

    .mixer-analog::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(120deg,#fff2,transparent 34%);
        pointer-events: none;
    }

.mixer-analog__scale {
    display: flex;
    justify-content: space-around;
    padding: .8rem .65rem;
    color: #211e18;
    font: 700 .6rem ui-monospace,monospace;
}

.mixer-analog__needle {
    position: absolute;
    left: 50%;
    bottom: -.2rem;
    width: 1px;
    height: 4.4rem;
    background: #a71919;
    box-shadow: 0 0 3px #000;
    transform: rotate(var(--needle-angle,-58deg));
    transform-origin: 50% 100%;
    transition: transform 90ms linear;
}

.mixer-instrument-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .55rem;
}

.mixer-instrument-grid--three {
    grid-template-columns: repeat(3,minmax(0,1fr));
}

.mixer-instrument {
    display: grid;
    min-width: 0;
    align-content: start;
    text-align: center;
}

.mixer-instrument__label {
    min-height: 2.2em;
    margin-bottom: .3rem;
    color: #b7cbd5;
    font-size: .66rem;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
}

.mixer-instrument .mixer-analog {
    width: 100%;
    height: 4.7rem;
    margin-bottom: .35rem;
}

.mixer-instrument .mixer-analog__scale {
    padding: .7rem .2rem;
    font-size: .48rem;
}

.mixer-instrument output {
    color: #f5f1df;
    font: 700 .75rem ui-monospace,SFMono-Regular,monospace;
    white-space: nowrap;
}

.mixer-analysis__metrics--footer {
    margin-top: .7rem !important;
    padding-top: .55rem;
    border-top: 1px solid #ffffff12;
}

.mixer-analysis__variation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .7rem;
    padding: .55rem .65rem;
    border-radius: .35rem;
    background: #071018;
    color: #9eb2bd;
    font-size: .7rem;
}

    .mixer-analysis__variation strong {
        color: #edf5f7;
        white-space: nowrap;
    }

.mixer-analysis__note {
    margin: .65rem 0 0;
    color: #8296a1;
    font-size: .68rem;
    text-align: left;
}

.mixer-led-bank {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem .6rem;
}

.mixer-led {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    color: #83929a;
    font-size: .54rem;
    font-weight: 700;
    letter-spacing: .055em;
    white-space: nowrap;
}

    .mixer-led i {
        width: .55rem;
        height: .55rem;
        flex: 0 0 auto;
        border: 1px solid #692a2a;
        border-radius: 50%;
        background: #3c1114;
        box-shadow: inset 0 0 .18rem #000;
    }

    .mixer-led.is-active {
        color: #efb1ad;
    }

        .mixer-led.is-active i {
            background: #e13732;
            border-color: #ff7770;
            box-shadow: 0 0 .42rem #e1373288,inset 0 0 .12rem #fff8;
        }

    .mixer-led.is-critical i {
        animation: mixer-led-critical 2.2s ease-in-out infinite;
    }

@keyframes mixer-led-critical {
    50% {
        filter: brightness(1.35);
        box-shadow: 0 0 .62rem #f0443aaa,inset 0 0 .12rem #fff;
    }
}

.mixer-analysis-card--diagnostics {
    grid-column: span 4;
}

.mixer-diagnostic-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .55rem;
}

.mixer-diagnostic {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .25rem .5rem;
    min-width: 0;
    padding: .65rem;
    border: 1px solid #ffffff10;
    border-radius: .4rem;
    background: #071018;
}

    .mixer-diagnostic > span:first-child {
        color: #91a4af;
        font-size: .68rem;
    }

    .mixer-diagnostic output {
        color: #f0f6f8;
        font: 600 .76rem ui-monospace,SFMono-Regular,monospace;
        text-align: right;
    }

    .mixer-diagnostic .mixer-led {
        grid-column: 1/-1;
    }

.mixer-led--technical {
    margin-top: .7rem;
}

@container mm-page-host (max-width:64rem) {
    .mixer-analysis__grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .mixer-analysis-card--diagnostics {
        grid-column: span 2;
    }

    .mixer-diagnostic-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@container mm-page-host (max-width:40rem) {
    .mixer-analysis {
        padding: .7rem;
    }

    .mixer-analysis__grid {
        grid-template-columns: minmax(0,1fr);
    }

    .mixer-analysis-card--wide, .mixer-analysis-card--diagnostics {
        grid-column: auto;
    }

    .mixer-analysis__metrics {
        grid-template-columns: 1fr;
    }

    .mixer-instrument-grid, .mixer-instrument-grid--three {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .mixer-diagnostic-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion:reduce) {
    .mixer-analog__needle {
        transition: none;
    }

    .mixer-led.is-critical i {
        animation: none;
    }
}

/*
 * Pagina /mixer: monitor stereo nella colonna sinistra.
 * Il box deve avere l'altezza del proprio contenuto, restare visibile in alto
 * e non allungarsi fino al fondo della console.
 */
.mixer-page {
    --mixer-gap-xs: .3rem;
    --mixer-gap-sm: .5rem;
    --mixer-gap-md: .75rem;
    --mixer-panel-padding: clamp(.65rem, 1vw, .85rem);
    --mixer-panel-radius: .65rem;
    container: mm-page-host / inline-size;
    overflow-x: clip;
}

.mixer-workspace {
    display: grid;
    grid-template-columns: clamp(16rem, 19vw, 20rem) minmax(0,1fr);
    align-items: start;
    gap: var(--mixer-gap-md);
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.mixer-controls-column {
    min-width: 0;
    container: mixer-controls / inline-size;
}

.mixer-sidebar-monitor {
    position: sticky;
    top: calc(var(--mm-topbar-height,68px) + 1rem);
    bottom: auto;
    align-self: start;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: 100%;
    min-width: 0;
    height: auto;
    max-height: calc(100vh - var(--mm-topbar-height,68px) - 2rem);
    padding: .85rem;
    overflow: visible;
    box-sizing: border-box;
    border: 1px solid #3b3e49;
    border-radius: .8rem;
    background: linear-gradient(145deg,#20222a,#111217);
    box-shadow: 0 8px 24px #0005;
}

    .mixer-sidebar-monitor h2 {
        margin: 0;
        color: #f0f2f5;
        font-size: .78rem;
        font-weight: 800;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .mixer-sidebar-monitor > p {
        margin: .15rem 0 .8rem;
        color: #9da4b3;
        font-size: .68rem;
    }

.mixer-sidebar-monitor .audio-mixer__clip-count {
    width: 100%;
    min-width: 0;
}

.mixer-sidebar-monitor .audio-mixer__clip-tooltip {
    left: .75rem;
    width: calc(100% - 1.5rem);
}

.mixer-threshold-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: .65rem;
}

.mixer-threshold {
    display: grid;
    min-width: 0;
    gap: .35rem;
}

    .mixer-threshold > div:first-child,
    .mixer-diagnostic > div:first-child {
        display: flex;
        justify-content: space-between;
        gap: .5rem;
        color: #b7cbd5;
        font-size: .66rem;
    }

    .mixer-threshold output,
    .mixer-diagnostic output {
        color: #f5f1df;
        font: 700 .7rem ui-monospace,SFMono-Regular,monospace;
    }

    .mixer-threshold > span,
    .mixer-diagnostic > [data-threshold-state] {
        color: #9eb2bd;
        font-size: .62rem;
    }

.mixer-threshold__bar {
    --threshold-position: 0%;
    --threshold-marker: 50%;
    position: relative;
    height: .85rem;
    overflow: visible;
    border: 1px solid #56616a;
    border-radius: 999px;
    background: linear-gradient(90deg,#31a766 0 50%,#d2bb39 65%,#e5822f 82%,#d83c36 100%);
    box-shadow: inset 0 1px 4px #0009;
}

    .mixer-threshold__bar.is-minimum {
        background: linear-gradient(90deg,#d83c36 0 18%,#e5822f 34%,#d2bb39 50%,#31a766 68% 100%);
    }

    .mixer-threshold__bar > i {
        position: absolute;
        z-index: 2;
        top: -.22rem;
        left: clamp(2px,var(--threshold-position),calc(100% - 2px));
        width: 3px;
        height: 1.3rem;
        border-radius: 2px;
        background: #fff;
        box-shadow: 0 0 .3rem #000,0 0 .35rem #fff8;
        transform: translateX(-50%);
        transition: left 120ms linear;
    }

    .mixer-threshold__bar > b {
        position: absolute;
        top: -.15rem;
        left: var(--threshold-marker);
        width: 2px;
        height: 1.15rem;
        background: #101318;
        box-shadow: 0 0 0 1px #dce5e8;
        transform: translateX(-50%);
    }

    .mixer-threshold__bar[data-state=approaching] {
        outline: 1px solid #d2bb39;
    }

    .mixer-threshold__bar[data-state=attention] {
        outline: 1px solid #e5822f;
    }

    .mixer-threshold__bar[data-state=critical] {
        outline: 2px solid #e64b43;
    }

.mixer-diagnostic {
    grid-template-columns: minmax(0,1fr) auto;
}

    .mixer-diagnostic > div:first-child,
    .mixer-diagnostic > .mixer-threshold__bar {
        grid-column: 1/-1;
    }

    .mixer-diagnostic .mixer-led {
        grid-column: 2;
        grid-row: 3;
    }

/* La console si adatta alla larghezza reale della colonna, non a quella del viewport. */
.audio-mixer--full {
    container: audio-mixer / inline-size;
}

@container audio-mixer (max-width:58rem) {
    .audio-mixer--full .audio-mixer__console {
        grid-template-columns: repeat(6,minmax(0,1fr));
        grid-template-areas:
            "input input eq eq eq eq"
            "compressor compressor compressor compressor compressor compressor"
            "limiter limiter limiter stereo stereo stereo"
            "output output output output output output"
            "meter meter meter meter meter meter";
    }

    .audio-mixer--full .mixer-section--eq .mixer-section__controls {
        grid-template-columns: repeat(auto-fit,minmax(64px,1fr));
    }
}

@container audio-mixer (max-width:42rem) {
    .audio-mixer--full .audio-mixer__console {
        grid-template-columns: minmax(0,1fr);
        grid-template-areas:
            "input"
            "eq"
            "compressor"
            "limiter"
            "stereo"
            "output"
            "meter";
    }

    .audio-mixer--full .mixer-section--input .mixer-section__controls {
        grid-template-columns: minmax(0,1fr);
    }
}

/* Analisi e strumenti: nessun contenuto può imporre una larghezza fuori dal box. */
.mixer-analysis,
.mixer-analysis__grid,
.mixer-analysis-card,
.mixer-instrument-grid,
.mixer-instrument,
.mixer-analog {
    min-width: 0;
    max-width: 100%;
}

.mixer-analysis-card__header {
    flex-wrap: wrap;
}

.mixer-instrument__label {
    overflow-wrap: anywhere;
}

.mixer-instrument output {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

@container mixer-controls (max-width:64rem) {
    .mixer-analysis__grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .mixer-analysis-card--diagnostics {
        grid-column: span 2;
    }

    .mixer-diagnostic-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@container mixer-controls (max-width:44rem) {
    .mixer-analysis-card--wide,
    .mixer-analysis-card--diagnostics {
        grid-column: 1 / -1;
    }

    .mixer-instrument-grid,
    .mixer-instrument-grid--three {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@container mixer-controls (max-width:32rem) {
    .mixer-analysis {
        padding: .7rem;
    }

    .mixer-analysis__grid,
    .mixer-analysis__metrics,
    .mixer-diagnostic-grid,
    .mixer-threshold-grid {
        grid-template-columns: minmax(0,1fr);
    }

    .mixer-analysis-card--wide,
    .mixer-analysis-card--diagnostics {
        grid-column: auto;
    }
}

.audio-mixer__meter--sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: var(--mixer-gap-sm);
    min-width: 0;
}

/* Il monitor cambia orientamento in base allo spazio reale dell'area riservata. */
@container mm-page-host (max-width: 72rem) {
    .mixer-workspace {
        grid-template-columns: minmax(0,1fr);
    }

    .mixer-sidebar-monitor {
        position: relative;
        top: auto;
        max-height: none;
    }

    .audio-mixer__meter--sidebar {
        display: grid;
        grid-template-columns: minmax(12rem,18rem) minmax(9rem,12rem);
        align-items: end;
        justify-content: start;
        gap: var(--mixer-gap-md);
    }
}

@container mm-page-host (max-width: 40rem) {
    .audio-mixer__meter--sidebar {
        grid-template-columns: minmax(0,1fr);
    }

    .mixer-threshold-grid {
        grid-template-columns: minmax(0,1fr);
    }
}

@media (prefers-reduced-motion:reduce) {
    .mixer-threshold__bar > i,
    .mixer-rms-bar__fill {
        transition: none;
    }
}

/* Stereo monitor: isolated geometry prevents generic meter rules changing RMS bars. */
.audio-mixer__meter--sidebar > .mixer-rms-bar-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
    gap: .75rem;
    width: 100%;
    height: auto;
    min-height: 7.5rem;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.audio-mixer__meter--sidebar .mixer-rms-bar-channel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: .3rem;
    min-width: 0;
    height: auto;
    overflow: visible;
    border: 0;
    background: transparent;
}

.audio-mixer__meter--sidebar .mixer-rms-bar__track {
    position: relative;
    display: block;
    width: 1.75rem;
    height: 6rem;
    min-height: 6rem;
    overflow: hidden;
    border: 1px solid #3a4a52;
    border-radius: .25rem;
    background: repeating-linear-gradient( to top, rgba(255,255,255,.08) 0, rgba(255,255,255,.08) 1px, transparent 1px, transparent 8px ), #060d15;
    box-shadow: inset 0 0 .5rem rgba(0,0,0,.65);
}

.audio-mixer__meter--sidebar .mixer-rms-bar__fill {
    position: absolute;
    inset: auto 0 0;
    display: block;
    width: 100%;
    height: 0%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    background: linear-gradient( to top, #1db954 0%, #1db954 55%, #f1c40f 72%, #e5822f 87%, #e64b43 100% );
    box-shadow: 0 0 .35rem rgba(29,185,84,.35);
    transition: height 90ms linear;
    will-change: height;
}

.audio-mixer__meter--sidebar .mixer-rms-bar__value {
    min-height: 1rem;
    color: #f5f1df;
    font: 700 .66rem/1.15 ui-monospace, SFMono-Regular, monospace;
    font-variant-numeric: tabular-nums;
}

.audio-mixer__meter--sidebar .mixer-rms-bar__label {
    color: #b7cbd5;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.audio-mixer__meter--sidebar .mixer-led {
    min-height: 1rem;
}

@media (max-width: 575.98px) {
    .audio-mixer__meter--sidebar > .mixer-rms-bar-pair {
        min-height: 6.75rem;
    }

    .audio-mixer__meter--sidebar .mixer-rms-bar__track {
        height: 5.25rem;
        min-height: 5.25rem;
    }
}
.audio-mixer__snapshot-status[data-status="error"] {
    color: var(--bs-warning, #ffc107);
}
