/* MDL 48 · Compact spacing inside MainLayout only.
   Screen-only: public pages, security/participant layouts and WASM remain independent.
   Keep DOM order, complete labels, validation/helper text and 44px action targets. */
@media screen {
    .mdl-visual-system .app-frame.portal-workspace {
        --portal-page-inset: 16px;
        --portal-card-inset: 18px;
        --portal-section-gap: 16px;
        --mdl-action-gap: 8px;
    }
    .mdl-visual-system .app-frame.portal-workspace .workspace.page-shell {
        padding: 16px var(--portal-page-inset) 24px;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-contextbar.topbar {
        min-height: 56px;
        padding: 6px var(--portal-page-inset);
        gap: 8px 12px;
        align-items: center;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-sidebar-brand {
        min-height: 64px;
        padding-block: 10px;
    }
    .mdl-visual-system .app-frame.portal-workspace .sidebar-density {
        margin-block: 8px;
    }
    .mdl-visual-system .app-frame.portal-workspace .app-footer {
        padding: 10px var(--portal-page-inset);
        gap: 8px 16px;
    }

    /* Headings and actions share a top edge; descriptions can grow naturally. */
    .mdl-visual-system .app-frame.portal-workspace :is(.page-heading,.section-heading) {
        align-items: flex-start;
        gap: 12px 16px;
        margin-bottom: 14px;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack > .page-heading {
        margin-block: 0;
    }
    .mdl-visual-system .app-frame.portal-workspace .page-heading > div:first-child {
        flex: 1 1 280px;
    }
    .mdl-visual-system .app-frame.portal-workspace .page-heading > .button-row {
        align-self: flex-start;
        margin: 0;
        gap: 8px;
    }
    .mdl-visual-system .app-frame.portal-workspace .page-heading h1 {
        font-size: clamp(1.75rem,2.1vw,2.1rem);
        line-height: 1.2;
        margin-bottom: 4px;
    }
    .mdl-visual-system .app-frame.portal-workspace .page-heading .eyebrow {
        margin-bottom: 4px;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.page-heading,.section-heading) p {
        margin-block: 4px 0;
        line-height: 1.5;
    }
    .mdl-visual-system .app-frame.portal-workspace .section-heading :is(h2,h3) {
        margin-bottom: 4px;
    }

    /* Remove doubled vertical spacing from grid fields and their action row. */
    .mdl-visual-system .app-frame.portal-workspace :is(.portal-form-grid,.assessment-generation .form-grid,
        .assessment-generation .portal-form-grid,.email-setup-grid) {
        gap: 12px 16px;
        min-width: 0;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-form-grid > .field {
        margin-block: 0;
        gap: 6px;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-form-grid > .portal-action {
        margin-bottom: 0;
        align-self: end;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.filters,.seller-filter-grid,.seller-sales-filter-grid,
        .seller-dashboard-filter-grid,.commercial-filter-grid,.explorer-filter-grid,
        .organization-filter-grid,.admin-commercial-filter-grid,.results-longitudinal-filters,
        .instrument-catalog-filter) {
        gap: 12px;
        align-items: end;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.filters,.commercial-filter-grid,
        .explorer-filter-grid,.organization-filter-grid,.results-longitudinal-filters) .field {
        margin-block: 0;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.commercial-form-actions,.instrument-editor-actions,
        .company-portal-actions,.commercial-detail-actions,.explorer-filter-actions,.seller-filter-actions) {
        gap: 8px;
        align-items: center;
    }
    .mdl-visual-system .app-frame.portal-workspace .commercial-form-actions {
        margin-top: 14px;
    }
    .mdl-visual-system .app-frame.portal-workspace .assessment-generation .generation-section {
        padding: 16px;
        gap: 12px;
    }
    .mdl-visual-system .app-frame.portal-workspace .email-setup .email-setup-section {
        margin-block: 16px;
    }
    .mdl-visual-system .app-frame.portal-workspace .email-setup .email-setup-section:first-child {
        margin-top: 0;
    }
    .mdl-visual-system .app-frame.portal-workspace .email-setup details {
        margin-block: 12px;
    }

    /* Operational lists only. Report tables keep their own cell geometry. */
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack .dashboard-table table :is(th,td),
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack table.dashboard-table :is(th,td),
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack .history-table-scroll table :is(th,td) {
        padding: 10px 12px;
        vertical-align: middle;
        line-height: 1.5;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack .dashboard-table table th,
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack table.dashboard-table th,
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack .history-table-scroll table th {
        font-size: .8125rem;
        letter-spacing: 0;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack :is(.dashboard-table,.history-table-scroll) .table-subline {
        margin-top: 2px;
    }
    .mdl-visual-system .app-frame.portal-workspace .portal-page-stack .results-card > .pagination,
    .mdl-visual-system .app-frame.portal-workspace .pagination {
        padding: 10px var(--portal-card-inset);
        gap: 8px 12px;
        flex-wrap: wrap;
        align-items: center;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.row-actions,.history-row-actions,.security-row-actions) {
        align-items: center;
        gap: 6px;
    }

    /* Dashboard cards use content height instead of extra decorative whitespace. */
    .mdl-visual-system .app-frame.portal-workspace :is(.commercial-kpi-grid,.dashboard-grid,.admin-menu-grid) {
        gap: 12px;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.dashboard-metric,.admin-menu-item) {
        padding: 16px;
    }
    .mdl-visual-system .app-frame.portal-workspace .dashboard-metric .metric-value {
        margin-block: 8px 4px;
    }
}
@media screen and (min-width: 1024px) {
    .mdl-visual-system .app-frame.portal-workspace:not(.sidebar-compact) {
        grid-template-columns: 232px minmax(0,1fr);
    }
}
@media screen and (max-width: 760px) {
    .mdl-visual-system .app-frame.portal-workspace {
        --portal-page-inset: 12px;
        --portal-card-inset: 16px;
        --portal-section-gap: 12px;
    }
    .mdl-visual-system .app-frame.portal-workspace .workspace.page-shell {
        padding-block: 12px 20px;
    }
    .mdl-visual-system .app-frame.portal-workspace .page-heading > div:first-child {
        flex-basis: auto;
    }
    .mdl-visual-system .app-frame.portal-workspace .page-heading > .button-row {
        justify-content: flex-start;
        width: 100%;
    }
    .mdl-visual-system .app-frame.portal-workspace :is(.portal-form-grid,.assessment-generation .form-grid,
        .assessment-generation .portal-form-grid,.email-setup-grid) {
        gap: 12px;
    }
}
