/* Output Noise — walk on the left, lab fills the window. */

body.cl-page {
    height: 100dvh;
    max-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

body.cl-page .ai-header,
body.cl-page .output-noise-series-mount,
body.cl-page .ai-site-footer { flex-shrink: 0; }

body.cl-page .ai-site-footer {
    margin-top: 0;
    padding: 4px 12px 6px;
}

body.cl-page .control-loops-series-nav--bottom { display: none; }

body.cl-page .cl-workspace {
    flex: 1 1 auto;
    min-height: 0;
    max-width: none;
    overflow: hidden;
    align-items: stretch;
}

body.cl-page .cl-walk { max-height: 100%; }

body.cl-page .cl-lab {
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.cl-page .sn-scope-layout,
body.cl-page .vr-layout,
body.cl-page .ans-layout,
body.cl-page .nd-layout {
    max-width: none;
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

body.cl-page .sn-scope-section,
body.cl-page .sn-scope-panel,
body.cl-page .vr-panel,
body.cl-page .ans-panel,
body.cl-page .nd-panel,
body.cl-page .nd-body {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

body.cl-page .sn-scope-header,
body.cl-page .vr-header,
body.cl-page .ans-header,
body.cl-page .nd-header,
body.cl-page .sn-readouts,
body.cl-page .vr-readouts,
body.cl-page .ans-readouts,
body.cl-page .nd-readouts,
body.cl-page .sn-hint,
body.cl-page .vr-hint,
body.cl-page .ans-hint,
body.cl-page .nd-hint,
body.cl-page .nd-recipe-row,
body.cl-page .nd-band-block,
body.cl-page .nd-capstone,
body.cl-page .ans-algebra-wrap,
body.cl-page .vr-lf-note { flex-shrink: 0; }

body.cl-page .sn-scope-panel > canvas,
body.cl-page .vr-visual-row,
body.cl-page .ans-visual-row,
body.cl-page .nd-nsd-wrap,
body.cl-page .nd-time-row {
    flex: 1 1 auto;
    min-height: 120px;
}

body.cl-page .sn-scope-canvas,
body.cl-page .vr-scope-canvas,
body.cl-page .vr-hist-canvas,
body.cl-page .ans-scope-canvas,
body.cl-page .ans-hist-canvas,
body.cl-page .nd-nsd-canvas,
body.cl-page .nd-scope-canvas,
body.cl-page .nd-hist-canvas {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
}

body.cl-page .vr-scope-wrap,
body.cl-page .vr-hist-wrap,
body.cl-page .ans-scope-wrap,
body.cl-page .nd-scope-wrap,
body.cl-page .nd-hist-wrap {
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

body.cl-page .nd-header { padding: 8px 12px 4px; }
body.cl-page .nd-body {
    gap: 6px;
    padding: 6px 12px 6px;
}
body.cl-page .nd-band-block { padding: 0; }
body.cl-page .nd-readout { padding: 6px 8px; }

body.cl-page .nd-nsd-wrap {
    flex: 1 1 140px;
    min-height: 130px;
    display: flex;
    flex-direction: column;
}

body.cl-page .nd-time-row {
    flex: 1.3 1 160px;
    min-height: 148px;
}

body.cl-page .nd-nsd-canvas,
body.cl-page .nd-scope-canvas,
body.cl-page .nd-hist-canvas {
    flex: 1 1 auto;
    height: auto;
    min-height: 80px;
}

body.cl-page .vr-visual-row,
body.cl-page .ans-visual-row,
body.cl-page .nd-time-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

body.cl-page .ans-visual-row--three { grid-template-columns: 1fr 1fr 0.85fr; }

body.cl-page .nd-time-row { grid-template-columns: 1fr 1fr; }

body.cl-page .nd-channel {
    min-height: 0;
    min-width: 0;
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 6px;
}

body.cl-page .on-deeper {
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid var(--ai-gray-200);
    border-radius: var(--ai-radius-lg);
    padding: 8px 12px 12px;
}

body.cl-page .on-deeper summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--ai-blue-800);
}

body.cl-page .on-deeper[open] summary { margin-bottom: 8px; }

@media (max-width: 1100px) {
    body.cl-page { height: auto; max-height: none; overflow: auto; }
    body.cl-page .cl-workspace { overflow: visible; height: auto; }
    body.cl-page .vr-visual-row,
    body.cl-page .ans-visual-row,
    body.cl-page .nd-nsd-wrap,
    body.cl-page .nd-time-row { height: auto; min-height: 0; flex: none; }
    body.cl-page .sn-scope-canvas,
    body.cl-page .vr-scope-canvas,
    body.cl-page .vr-hist-canvas {
        height: min(58vh, 520px);
        min-height: 400px;
        flex: none;
    }
    body.cl-page .ans-scope-canvas,
    body.cl-page .ans-hist-canvas {
        height: min(48vh, 420px);
        min-height: 320px;
        flex: none;
    }
    body.cl-page .nd-nsd-canvas {
        height: 240px;
        min-height: 240px;
        flex: none;
    }
    body.cl-page .nd-scope-canvas,
    body.cl-page .nd-hist-canvas {
        height: 220px;
        min-height: 220px;
        flex: none;
    }
    body.cl-page .vr-visual-row,
    body.cl-page .ans-visual-row--three,
    body.cl-page .nd-time-row,
    body.cl-page .nd-channel { grid-template-columns: 1fr; }
}

@media (min-width: 1101px) {
    body.cl-page .sn-scope-layout,
    body.cl-page .vr-layout,
    body.cl-page .ans-layout,
    body.cl-page .nd-layout,
    body.cl-page .sn-scope-section,
    body.cl-page .sn-scope-panel,
    body.cl-page .vr-panel,
    body.cl-page .ans-panel,
    body.cl-page .nd-panel,
    body.cl-page .nd-body,
    body.cl-page .nd-nsd-wrap,
    body.cl-page .nd-time-row,
    body.cl-page .vr-visual-row,
    body.cl-page .ans-visual-row {
        flex: none;
        height: auto;
        min-height: 0;
        overflow: visible;
    }
    body.cl-page .sn-scope-panel > canvas,
    body.cl-page .sn-scope-canvas,
    body.cl-page .vr-scope-canvas,
    body.cl-page .vr-hist-canvas {
        flex: none;
        height: min(58vh, 520px);
        min-height: 400px;
    }
    body.cl-page .ans-scope-canvas,
    body.cl-page .ans-hist-canvas {
        flex: none;
        height: min(48vh, 420px);
        min-height: 320px;
    }
    body.cl-page .nd-nsd-canvas {
        flex: none;
        height: 280px;
        min-height: 280px;
    }
    body.cl-page .nd-scope-canvas,
    body.cl-page .nd-hist-canvas {
        flex: none;
        height: 220px;
        min-height: 220px;
    }
}
