@media (max-width: 1100px) {
    :root {
        --shell: min(100% - 28px, 1040px);
    }

    .taxonomy-detail-grid,
    .taxonomy-detail-grid--category {
        grid-template-columns: 1fr;
    }

    .quote-workspace {
        grid-template-columns: 1fr;
    }

    .review-toolbar,
    .review-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .price-page-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .review-card-grid > div {
        border-right: 0;
        padding-right: 0;
    }

    .review-filter-count {
        justify-self: start;
    }

    .aside-panel,
    .sticky-heading {
        position: static;
    }
}

@media (max-width: 940px) {
    .taxonomy-item-summary,
    .taxonomy-item-summary--category {
        grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    }
}

@media (max-width: 820px) {
    :root {
        --shell: min(100% - 22px, 1040px);
    }

    .taxonomy-tabs {
        display: grid;
    }

    .taxonomy-item-summary,
    .taxonomy-item-summary--category {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px 12px;
        padding: 13px 14px;
    }

    .taxonomy-summary-main,
    .taxonomy-summary-preview,
    .taxonomy-summary-usage,
    .taxonomy-summary-action {
        grid-column: 1;
    }

    .taxonomy-summary-action {
        text-align: left;
    }

    .taxonomy-detail {
        padding: 12px 14px 14px;
    }

    .taxonomy-inline-add,
    .taxonomy-rule-form {
        grid-template-columns: 1fr;
    }

    .taxonomy-rule-card {
        grid-template-columns: 1fr;
    }

    .taxonomy-delete-form .button {
        width: 100%;
    }

    .topbar {
        position: static;
    }

    .topbar-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        padding: 12px 0;
        min-height: 0;
    }

    .main-nav {
        width: 100%;
        overflow: visible;
        flex-wrap: wrap;
    }

    .logout-form {
        margin-left: 0;
    }

    .nav-menu-panel {
        max-width: calc(100vw - 32px);
    }

    .page {
        margin-top: 18px;
    }

    .page-header-row,
    .section-heading,
    .action-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .association-workspace-head {
        align-items: stretch;
        flex-direction: column;
    }

    .association-workspace-actions,
    .table-action-row {
        justify-content: flex-start;
    }

    .price-history-source-card > div:first-child {
        align-items: flex-start;
        flex-direction: column;
    }

    .document-grid,
    .line-grid,
    .quote-row,
    .source-header-panel .inline-form,
    .source-row,
    .inline-form,
    .toolbar-panel,
    .filter-bar,
    .filter-bar.wide,
    .snapshot-command-bar,
    .snapshot-filter-toolbar,
    .list-toolbar,
    .compact-toolbar,
    .product-toolbar,
    .association-toolbar,
    .association-edit-grid,
    .supplier-association-grid {
        grid-template-columns: 1fr;
    }

    .source-row {
        min-width: 0;
    }

    .source-row-notes,
    .source-row-remove {
        grid-column: auto;
        grid-row: auto;
    }

    .summary-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .price-metric-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .price-metric-item:nth-child(2n) {
        border-right: 0;
    }

    .snapshot-command-group,
    .supplier-overview-head,
    .supplier-overview-foot {
        align-items: stretch;
        flex-direction: column;
    }

    .supplier-overview-grid {
        grid-template-columns: 1fr;
    }

    .pagination-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .pagination-links {
        justify-content: flex-start;
    }

    .match-suggestion,
    .candidate-card {
        grid-template-columns: 1fr;
    }

    .candidate-rank {
        display: none;
    }

    .candidate-score {
        justify-items: start;
        text-align: left;
    }

    .candidate-list-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .summary-item:nth-child(2n) {
        border-right: 0;
    }

    .responsive-table {
        overflow-x: visible;
    }

    .responsive-table :is(table, tbody, tr, td) {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .responsive-table table {
        min-width: 0;
    }

    .responsive-table :is(th:nth-child(n), td:nth-child(n)) {
        width: 100%;
    }

    .responsive-table thead {
        display: none;
    }

    .responsive-table tr {
        padding: 10px 0;
        border-bottom: 1px solid var(--line);
    }

    .responsive-table tr:last-child {
        border-bottom: 0;
    }

    .responsive-table td {
        display: grid;
        grid-template-columns: minmax(104px, .42fr) minmax(0, 1fr);
        gap: 12px;
        padding: 9px 14px;
        border-bottom: 0;
        background: transparent !important;
    }

    .responsive-table td > * {
        grid-column: 2;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .responsive-table td::before {
        content: attr(data-label);
        color: var(--muted);
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase;
    }

    .import-runs-table .import-detail-control-cell {
        display: flex;
        justify-content: flex-start;
        padding: 8px 14px 2px;
    }

    .import-runs-table .import-detail-control-cell::before,
    .import-runs-table .import-run-detail-row td::before {
        content: none;
    }

    .import-runs-table .import-run-detail-row td {
        display: block;
        padding: 0 14px 10px;
    }

    .responsive-table .empty {
        display: block;
        padding: 24px;
    }

    .responsive-table .empty::before {
        content: none;
    }

    .catalog-candidate {
        grid-template-columns: 1fr;
    }

    .catalog-candidate-side {
        justify-items: start;
        text-align: left;
    }

    .snapshot-title-cell strong {
        max-width: 100%;
    }

    .compact-detail {
        grid-template-columns: 1fr;
    }

    .document-grid .wide,
    .line-grid .check-label,
    .line-grid label:last-child,
    .span-2,
    .span-3 {
        grid-column: auto;
    }

    .line-fields {
        grid-template-columns: 1fr;
    }

    .review-toolbar,
    .review-card,
    .review-card-grid,
    .review-change-list {
        grid-template-columns: 1fr;
    }

    .import-schedule-grid,
    .import-schedule-fields {
        grid-template-columns: 1fr;
    }

    .import-schedule-card-head,
    .import-schedule-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .import-schedule-state {
        justify-items: start;
        text-align: left;
    }

    .review-toolbar {
        position: static;
    }

    .price-page-tab-shell {
        position: static;
        padding: 7px;
    }

    .price-page-tabs {
        display: flex;
        grid-template-columns: none;
        gap: 4px;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .price-page-tab {
        flex: 0 0 auto;
        grid-template-columns: auto minmax(0, 1fr);
        min-width: 248px;
        scroll-snap-align: start;
    }

    .price-page-tab-action {
        grid-column: 2;
        justify-self: start;
        min-width: 0;
    }

    .snapshot-command-actions {
        flex-wrap: nowrap;
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: thin;
    }

    .snapshot-command-actions .button {
        flex: 0 0 auto;
    }

    .review-card-header,
    .review-card-id {
        grid-template-columns: 1fr;
        align-items: flex-start;
    }

    .review-card-header {
        gap: 6px;
    }

    .review-card-badges {
        justify-content: flex-start;
    }

    .review-change {
        grid-template-columns: 1fr;
    }

    .review-change-arrow {
        display: none;
    }

    .review-card-actions {
        flex-direction: row;
    }
}

@media print {
    body {
        background: #ffffff;
    }

    .no-print {
        display: none !important;
    }

    .print-page {
        padding: 0;
    }

    .print-table {
        page-break-inside: auto;
    }

    tr {
        page-break-inside: avoid;
    }

    @page {
        size: A4;
        margin: 12mm;
    }
}
