/* Phone workbench. Loaded last; desktop geometry and saved column order stay intact. */
.mobile-row-disclosure, .mobile-report-context, .report-view-mobile-hint, .mobile-kit-back, .mobile-request-collapse, .mobile-metric-label { display: none; }
.report-mobile-need-coverage { display: none; }
.report-value-mobile { display: none; }
.mobile-assembly-component-index { display: none; }
.mobile-supplier-filter-open, .mobile-supplier-choices { display: none; }
.supplier-order-filter-fields { display: contents; }

.report-view-settings-popover > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.report-view-close { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border: 1px solid #d5e1e9; border-radius: 8px; background: #f7fafc; color: #416579; font-size: 20px; }

@media (max-width: 920px) {
    /* A page's sticky/filter layers cannot escape into the navigation layer. */
    .ui-redesign .workspace { position: relative; isolation: isolate; z-index: 0; }
    .ui-redesign #app-sidebar { z-index: 1000; overscroll-behavior: contain; }
    .ui-redesign .sidebar-overlay { z-index: 999; touch-action: none; }
    .ui-redesign.sidebar-open { overflow: hidden; overscroll-behavior: none; }
    .ui-redesign .topbar { z-index: 300; min-height: 58px; }
    .ui-redesign .content-shell { padding: 16px 12px calc(28px + env(safe-area-inset-bottom)); }
    .ui-redesign .page-heading-row h1 { font-size: 25px; line-height: 1.2; }
    /* The phone topbar already carries the page name. Keep heading actions,
       but remove the repeated title block and its empty row. */
    .ui-redesign .workspace:has(> .topbar [data-mobile-page-title]) .page-heading-row:has(> div:only-child > h1) { display: none; }
    .ui-redesign .workspace:has(> .topbar [data-mobile-page-title]) .page-heading-row > div:first-child:has(> h1) { display: none; }
    .ui-redesign :is(.procurement-report-controls, .rk-procurement-controls) { z-index: 20; }
    .ui-redesign :is(input, select, textarea) { font-size: 16px; }
    .ui-redesign :is(button, summary, label, a) { -webkit-tap-highlight-color: transparent; }
    /* Periods stay visible in their form; the full-width filters action follows them. */
    .ui-redesign .procurement-report-controls { padding: 0; border: 0; background: transparent; box-shadow: none; }
    .ui-redesign .workbench-control-deck { display: contents; }
    .ui-redesign .workbench-control-deck [data-mobile-sticky-periods].is-mobile-period-floating {
        position: fixed;
        z-index: 250;
        top: calc(var(--topbar-height, 58px) + 6px);
        right: var(--page-gutter, 12px);
        left: var(--page-gutter, 12px);
        width: auto !important;
        max-width: none !important;
        padding: 8px;
        border: 1px solid #d5e1e8;
        border-radius: 12px;
        background: rgba(247, 250, 252, .97);
        box-shadow: 0 8px 24px rgb(20 49 67 / 14%);
        backdrop-filter: blur(10px);
        animation: mobile-period-reveal .16s ease-out;
    }
    .report-value-desktop { display: none; }
    .report-value-mobile { display: inline; }
    .ui-redesign .workbench-control-deck .catalog-filter-switcher { display: none; }
    .ui-redesign .workbench-control-deck > .catalog-filter-workbench { padding: 0; border: 0; margin: 0; min-height: 0; }
    .mobile-report-context { display: flex; width: 100%; margin-top: 10px; }
    .mobile-report-context > button { display: flex; align-items: center; justify-content: center; gap: 8px; flex: 1; width: 100%; min-width: 0; min-height: 46px; padding: 9px 12px; border: 1px solid #cedde6; border-radius: 8px; background: #fff; color: #274e63; font-size: 14px; font-weight: 500; }
    .mobile-report-context > button > span { min-width: 0; overflow-wrap: anywhere; }
    .mobile-report-context svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
    .mobile-report-context b { padding: 2px 6px; border-radius: 6px; background: #dceef8; font-size: 12px; font-variant-numeric: tabular-nums; }
    .mobile-report-context .has-selection { border-color: #8cb8cf; background: #f0f8fc; }
    .ui-redesign .procurement-table-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px; }
    .ui-redesign .report-table-search > span { font-size: 12px; }
    .ui-redesign .report-table-search input { height: 46px; font-size: 16px; }
    .ui-redesign .report-top-turnover-toggle { width: 100%; min-height: 46px; height: auto; justify-content: space-between; padding: 7px 9px 7px 13px; }
    .ui-redesign .report-top-turnover-toggle strong { font-size: 14px; }
    .ui-redesign .report-top-turnover-select-wrap { min-width: 88px; }
    .ui-redesign .report-top-turnover-select-wrap select { height: 36px; font-size: 14px; }
    .ui-redesign .report-mode-switcher { display: flex; align-items: stretch; width: 100%; height: auto; min-height: 50px; padding: 4px; gap: 4px; }
    .ui-redesign .report-mode-switcher button { display: flex; align-items: center; justify-content: center; flex: 1; min-width: 0; height: auto; min-height: 40px; padding: 8px; font-size: 13px; line-height: 1.35; }
    .ui-redesign .report-table-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; }
    .ui-redesign :is(.report-view-settings > summary, .report-table-actions > a) { min-height: 44px; font-size: 13px; }
    .ui-redesign .mobile-report-panel-dialog { position: fixed; inset: 0; margin: auto; width: calc(100% - 24px) !important; max-width: 520px !important; max-height: min(85dvh, 700px) !important; padding: 0; border: 1px solid #d5e1e9; border-radius: 16px; background: #fff; color: #24485d; box-shadow: 0 24px 70px #09223740; overflow: hidden; }
    .ui-redesign .mobile-report-panel-dialog[open] { display: flex; flex-direction: column; }
    .mobile-report-panel-dialog::backdrop { background: #09162378; backdrop-filter: blur(2px); }
    .ui-redesign .mobile-report-panel-dialog > header,
    .ui-redesign .mobile-report-view-dialog .report-view-settings-popover > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex: 0 0 auto; padding: 14px 16px; border-bottom: 1px solid #e1e8ee; background: #fff; }
    .ui-redesign .mobile-report-panel-dialog header strong { color: #204457; font-size: 17px; line-height: 1.35; }
    .ui-redesign .mobile-report-panel-dialog header button { display: grid; place-items: center; min-width: 40px; min-height: 40px; padding: 0; flex: 0 0 40px; border: 1px solid #d4e0e8; border-radius: 10px; background: #f7fafc; color: #416579; font-size: 23px; }
    .mobile-report-panel-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
    .mobile-report-panel-dialog > footer { padding: 12px 16px; flex: 0 0 auto; border-top: 1px solid #e1e8ee; background: #f8fafb; }
    .mobile-report-panel-dialog > footer button { min-height: 44px; width: 100%; font-size: 14px; }
    /* A definite height avoids WebKit shrinking a max-height-only flex dialog to its footer. */
    .ui-redesign .mobile-report-view-dialog { height: min(85dvh, 700px); }
    .ui-redesign .mobile-report-view-dialog .mobile-report-panel-body { display: flex; flex: 1 1 auto; min-height: 0; overflow: hidden; }
    .ui-redesign .mobile-report-view-dialog .report-view-settings-popover { position: static; inset: auto; display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; min-width: 0; width: 100%; max-height: none; padding: 0; margin: 0; border: 0; border-radius: 0; overflow: hidden; transform: none; box-shadow: none; }
    .ui-redesign .report-view-desktop-hint { display: none; }
    .ui-redesign .report-view-mobile-hint { display: block; color: #607c8c; margin-top: 4px; font-size: 12px; font-weight: 400; line-height: 1.5; }
    .ui-redesign .mobile-report-view-dialog .report-view-column-list { display: block; flex: 1; min-height: 0; max-height: none; padding: 4px 16px; overflow-y: auto; overscroll-behavior: contain; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-column] { display: block; padding: 0; border: 0; border-bottom: 1px solid #edf1f4; border-radius: 0; background: #fff; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-column] > label { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 0; cursor: pointer; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-column] > label > strong { flex: 1; font-size: 14px; line-height: 1.45; font-weight: 500; color: #284d61; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-column] > label > span { width: 20px; height: 20px; flex: 0 0 20px; border-radius: 6px; font-size: 13px; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-column] > div { display: none; }
    .ui-redesign .mobile-report-view-dialog .report-view-settings-popover > footer { flex: 0 0 auto; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 7px 8px; padding: 10px 12px; background: #f8fafb; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-reset] { grid-column: 1; grid-row: 1; padding: 8px 10px; min-height: 44px; border: 1px solid #cedde6; border-radius: 9px; background: #fff; color: #365f75; font-size: 13px; font-weight: 600; line-height: 1.35; }
    .ui-redesign .mobile-report-view-dialog [data-mobile-panel-close] { grid-column: 2; grid-row: 1; min-height: 44px; padding: 8px 12px; border-radius: 9px; background: #205b73; color: #fff; font-size: 14px; }
    .ui-redesign .mobile-report-view-dialog [data-report-view-save-status] { grid-column: 1 / -1; grid-row: 2; width: 100%; font-size: 11px; line-height: 1.35; text-align: center; color: #69818f; }
    .mobile-row-disclosure svg, .mobile-kit-back svg, .mobile-request-collapse svg, .mobile-metric-label svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

    /* Tap is the only phone tooltip action. Suppress CSS hover/focus copies. */
    .ui-redesign :is(.report-merge-indicator, .report-demand-forecast-indicator, .report-need-scenario-indicator, .has-report-tooltip) :is(.report-merge-tooltip, .report-heading-tooltip) { display: none !important; visibility: hidden !important; pointer-events: none !important; }
    .ui-redesign :is(.report-merge-indicator, .report-demand-forecast-indicator, .report-need-scenario-indicator, .report-tooltip-marker) { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: manipulation; }
    .ui-redesign .global-report-tooltip-portal { top: var(--mobile-tooltip-center, 50%) !important; bottom: auto !important; transform: translateY(-50%) !important; height: auto; max-height: var(--mobile-tooltip-height, calc(100dvh - 32px)) !important; }
    .ui-redesign .mobile-report-tooltip-head > span:first-child { display: none; }
    .ui-redesign .mobile-report-column-dialog { inset: 0; margin: auto; width: calc(100% - 24px); max-height: min(80dvh, 640px); }
    .ui-redesign .mobile-report-column-dialog > section { max-height: min(80dvh, 640px); }
    .ui-redesign .mobile-report-column-dialog .report-column-search > svg { position: static; width: 16px; height: 16px; flex: 0 0 16px; transform: none; }

    /* Catalog filters are one searchable list in a modal, not an expanding staircase. */
    .mobile-catalog-filter-dialog { inset: 0; margin: auto; width: calc(100% - 24px) !important; max-width: 600px !important; max-height: min(85dvh, 720px) !important; padding: 0; overflow: hidden; border: 1px solid #d5e1e9; border-radius: 15px; background: #fff; color: #23465c; box-shadow: 0 24px 70px #09223740; }
    .mobile-catalog-filter-dialog[open] { display: flex; flex-direction: column; }
    .mobile-catalog-filter-dialog::backdrop { background: #09162378; backdrop-filter: blur(2px); }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-palette { display: flex; flex-direction: column; min-height: 0; position: static; inset: auto; width: 100%; max-height: none; padding: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; overflow: hidden; transform: none; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-palette > header { position: static; display: grid; grid-template-columns: minmax(0, 1fr) auto 40px; gap: 10px; min-height: 0; padding: 14px; flex: 0 0 auto; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-palette > header strong { font-size: 17px; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-palette > header > div small { display: none; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-palette > header > button { font-size: 13px; min-height: 40px; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-search { grid-column: 1 / -1; grid-row: 2; width: 100%; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-search input { height: 44px; font-size: 16px; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; min-height: 0; padding: 12px; overflow-y: auto; overscroll-behavior: contain; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-chip { min-width: 0; margin: 0; position: relative; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-chip > span { display: flex; align-items: center; gap: 10px; height: auto; min-height: 56px; padding: 12px 12px 12px 42px; border: 1px solid #d9e4eb; border-radius: 10px; font-size: 14px; line-height: 1.45; white-space: normal; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-chip > span::before { content: ""; position: absolute; left: 13px; top: calc(50% - 9px); width: 18px; height: 18px; border: 1px solid #aac0cf; border-radius: 5px; background: #fff; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-chip input:checked + span::before { content: "✓"; display: grid; place-items: center; color: #fff; background: #1d728f; border-color: #1d728f; font-size: 14px; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-chip b { flex: 1; min-width: 0; font-size: 14px; line-height: 1.45; font-weight: 500; white-space: normal; overflow-wrap: anywhere; overflow: visible; text-overflow: clip; -webkit-line-clamp: unset; }
    .ui-redesign .mobile-catalog-filter-dialog .catalog-filter-chip small { flex: 0 0 auto; font-size: 12px; color: #657f90; }
    .ui-redesign .mobile-catalog-filter-dialog #fob-filter-palette .catalog-filter-chip > span { flex-wrap: wrap; }
    .ui-redesign .mobile-catalog-filter-dialog #fob-filter-palette .catalog-filter-chip small { flex: 1 0 100%; white-space: normal; }
    .mobile-catalog-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); flex: 0 0 auto; gap: 4px; padding: 10px 12px 0; }
    .mobile-catalog-tabs > button { min-width: 0; min-height: 40px; padding: 6px 3px; overflow: hidden; border: 0; border-bottom: 2px solid transparent; border-radius: 7px 7px 0 0; background: transparent; color: #648090; font-size: 11.5px; font-weight: 500; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
    .mobile-catalog-tabs > button[aria-pressed="true"] { color: #195d7d; background: #eef6fb; border-bottom-color: #3686aa; font-weight: 650; }
    .mobile-catalog-tabs:has(> button:only-child) { display: none; }
    .mobile-catalog-filter-dialog > footer { display: flex; align-items: center; gap: 12px; padding: 12px 14px; flex: 0 0 auto; border-top: 1px solid #dce5eb; background: #f8fafc; }
    .mobile-catalog-filter-dialog > footer span { flex: 1; font-size: 13px; }
    .mobile-catalog-filter-dialog > footer button { min-height: 44px; min-width: 110px; font-size: 14px; }
    /* One page scroll, not a small scrolling table inside a scrolling screen. */
    .ui-redesign :is(.procurement-report-scroll, .rk-procurement-scroll) { height: auto !important; max-height: none !important; min-height: 0; overflow: visible !important; border: 0; scrollbar-gutter: auto; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) { display: block; width: 100%; min-width: 0 !important; --report-icon-size: 24px; --report-type-size: 17px; --report-unit-size: 12px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) > colgroup,
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) > thead { display: none; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-report-row-number],
    .ui-redesign .procurement-report-table[data-report-selection-table] tbody > tr > td.report-selection-cell { display: none !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) > tbody { display: grid !important; gap: 14px; padding: 0 10px 12px; background: #eef3f6; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > :is([data-report-row], [data-rk-procurement-row]) { position: relative; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 4px 0 0; margin: 0; width: 100%; min-width: 0; background: #fff; border: 1px solid #dce5eb; border-radius: 14px; box-shadow: 0 2px 6px rgb(31 64 83 / 4%); overflow: visible; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > :is(.is-in-purchase-request, .is-in-request) { border-color: #dce5eb; box-shadow: 0 2px 6px rgb(31 64 83 / 4%); }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key] {
        position: static !important; display: flex !important; flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; column-gap: 4px;
        grid-column: auto; order: 10; min-width: 0 !important; max-width: none; width: auto !important; height: auto; min-height: 72px;
        padding: 12px 14px; border: 0; border-bottom: 1px solid #edf1f4; background: #fff !important; color: #183e55; box-shadow: none;
        font-size: 17px; line-height: 1.4; font-weight: 550; white-space: normal; overflow-wrap: anywhere; text-align: left !important;
    }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key]::before { display: block !important; flex: 0 0 100%; margin: 0 0 7px; content: attr(data-label) !important; color: #617988; font-size: 12px; font-weight: 450; letter-spacing: 0; line-height: 1.35; text-transform: none; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="name"] { grid-column: 1 / -1; order: 0; min-height: 64px; padding: 14px 68px 10px 14px; border: 0; border-radius: 14px 14px 0 0; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="name"]::before { display: none !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-column-key="name"] :is(span, strong, .report-product-name-line, .gost-product-name-line) { color: #15394c; font-size: 17px !important; line-height: 1.45; font-weight: 650; white-space: normal; overflow: visible; text-overflow: clip; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td:is([data-column-key="article"], [data-column-key="gost"], [data-column-key="brand"]) { order: 1; min-height: 48px; padding-block: 3px 12px; color: #587180; font-size: 13px; border: 0; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td:is([data-column-key="article"], [data-column-key="gost"], [data-column-key="brand"])::before { margin-bottom: 3px; font-size: 11px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tr:not(:has(> [data-column-key="gost"], > [data-column-key="article"])) > td[data-column-key="brand"] { grid-column: 1 / -1; min-height: 32px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tr:not(:has(> [data-column-key="gost"], > [data-column-key="article"])) > td[data-column-key="brand"]::before { display: none !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="need_units"] { grid-column: 1 / -1; order: 2; min-height: 86px; padding: 12px 14px; background: #eef7fb !important; border-block: 1px solid #d7e9f2; color: #124f6b; font-size: 26px !important; font-weight: 700; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="need_units"]::before { content: "Потребность, шт." !important; color: #3c6a80; font-size: 12px; font-weight: 600; margin-bottom: 5px; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] .report-need-scenario-value { display: flex; width: auto; max-width: 100%; margin-inline: auto; justify-content: center; align-items: center; flex-wrap: wrap; gap: 5px; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] .report-need-scenario-value > strong { font-size: 26px; font-weight: 700; line-height: 1.2; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] .report-mobile-need-coverage { display: inline-flex; align-items: baseline; margin-left: 5px; padding-left: 10px; border-left: 1px solid #b9d3df; color: #315f75; font-size: 16px; font-weight: 700; line-height: 1.25; white-space: nowrap; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] .report-mobile-need-coverage.is-critical { border-left-color: #dda7a8; color: #b33f43; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] .report-need-scenario-indicator { margin-left: 6px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="need_units"] { justify-content: center; text-align: center !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="need_units"]::before { text-align: center; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] > .mobile-metric-label { justify-content: center; }
    .ui-redesign .procurement-report-table td[data-column-key="need_units"] > :is(.report-need-risk-caption, .report-need-early-caption) { flex-basis: 100%; text-align: center; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="available"] { order: 3; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="in_transit"] { order: 4; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="sold"] { order: 5; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="in_requests"] { order: 6; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="assembly"] { grid-column: 1 / -1; order: 8; min-height: 56px; padding: 10px 14px; }
    .ui-redesign .procurement-report-table .repair-kit-assembly-status { font-size: 14px; font-weight: 500; line-height: 1.45; }
    .ui-redesign .procurement-report-table td[data-column-key="assembly"] .repair-kit-assembly-status { min-height: 44px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) .report-sales-with-merge { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; width: 100%; }
    .ui-redesign .report-sales-with-merge:has(> .report-merge-indicator):has(> .report-demand-forecast-indicator)::after { content: ""; order: 1; flex-basis: 100%; }
    .ui-redesign .report-sales-with-merge:has(> .report-merge-indicator):has(> .report-demand-forecast-indicator) > :is(.report-merge-indicator, .report-demand-forecast-indicator) { order: 2; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-column-key] > strong { font-size: inherit; font-weight: inherit; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-cell-unit, .rk-component-name ~ td > small, .report-sales-with-merge > small) { font-size: 12px; line-height: 1.3; color: #69808f; font-weight: 400; margin-left: 3px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-need-risk-caption, .report-need-early-caption, .report-sales-basis > small) { font-size: 12px; line-height: 1.5; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) .rk-status-text { font-size: 14px; white-space: normal; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-report-service-cell] { position: absolute !important; inset: 14px 14px auto auto !important; display: block !important; width: 44px !important; min-width: 44px !important; height: 44px; min-height: 44px; padding: 0; border: 0; background: transparent !important; z-index: 2; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-report-service-cell]::before { display: none !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-request-picker, .gost-request-picker) { width: 44px; height: 44px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-request-picker > summary, .gost-request-open, [data-rk-request-open]) { width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important; border-radius: 11px; color: #1d6482; border: 1px solid #bbd6e5; background: #eff8fc; font-size: 23px !important; }
    /* Compact phone actions; numbers retain their larger reading size. */
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-merge-indicator, .report-demand-forecast-indicator, .report-need-scenario-indicator) { width: 24px !important; height: 24px !important; min-width: 24px !important; flex: 0 0 24px !important; margin: 0 !important; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; font-size: 14px !important; line-height: 1; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-merge-indicator, .report-need-scenario-indicator) > svg { display: block !important; width: 13px !important; height: 13px !important; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-column-key] .empty-value { font-size: 14px; color: #8495a1; font-weight: 400; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-secondary]:not([data-mobile-promoted]) { order: 21; font-size: 16px; background: #f8fafb !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr:not(.is-mobile-expanded) > td[data-mobile-secondary]:not([data-mobile-promoted]) { display: none !important; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key^="transit_"]:not([hidden]) { display: flex !important; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="in_requests"] { order: 2; grid-column: 1; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="in_transit"] { order: 3; grid-column: 2; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="transit_signed"] { order: 10; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="transit_factory_ready"] { order: 11; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="transit_departed"] { order: 12; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="transit_customs"] { order: 13; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="transit_rail_loaded"] { order: 14; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tbody > tr > td[data-column-key="transit_rail_unloaded"] { order: 15; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td.mobile-row-disclosure { display: block !important; grid-column: 1 / -1; order: 20; width: auto !important; min-height: 44px; height: auto; padding: 0; border: 0; border-radius: 0 0 14px 14px; background: transparent !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td.mobile-row-disclosure::before { display: none !important; }
    .mobile-row-disclosure button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; padding: 12px 14px; border: 0; border-radius: 0 0 14px 14px; background: transparent; color: #496b80; font-size: 13px; font-weight: 600; }
    .mobile-row-disclosure svg { width: 16px; height: 16px; }
    .mobile-row-disclosure [aria-expanded="true"] svg { transform: rotate(180deg); }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tr:not(:has(> td[data-mobile-secondary]:not([data-mobile-promoted]):not([hidden]))) > .mobile-row-disclosure { display: none !important; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tr:not(:has(> td[data-mobile-secondary]:not([data-mobile-promoted]):not([hidden]):not([data-column-key^="transit_"]))) > .mobile-row-disclosure { display: none !important; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[hidden] { display: none !important; }
    .ui-redesign .procurement-report-table tbody > tr > td:has(> .mobile-metric-label)::before { display: none !important; }
    .ui-redesign .procurement-report-table .mobile-metric-label { display: flex; flex: 0 0 100%; align-items: center; gap: 5px; width: 100%; min-height: 30px; padding: 0 0 5px; margin: -3px 0 3px; border: 0; background: transparent; color: #54768a; font-size: 12px; font-weight: 500; line-height: 1.4; text-align: left; }
    .ui-redesign .procurement-report-table .mobile-metric-label svg { flex: 0 0 14px; width: 14px; height: 14px; }
    .ui-redesign .procurement-report-table .mobile-metric-label:disabled { cursor: default; opacity: 1; }
    .ui-redesign .procurement-report-table .mobile-metric-label:disabled svg { display: none; }
    /* Secondary data reads as aligned facts, never a checkerboard with empty slots. */
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-secondary]:not([data-mobile-promoted]) { grid-column: 1 / -1; min-height: 48px; padding: 8px 14px; align-items: center; flex-wrap: wrap; justify-content: flex-end; font-size: 15px; font-variant-numeric: tabular-nums; background: #f8fafb !important; }
    .ui-redesign .procurement-report-table td[data-mobile-secondary]:not([data-mobile-promoted]) > .mobile-metric-label { flex: 1 1 45%; width: auto; min-height: 30px; margin: 0 auto 0 0; padding: 0 8px 0 0; font-size: 13px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-secondary]:not([data-mobile-promoted])::before { flex: 1 1 45%; width: auto; margin: 0 auto 0 0; padding-right: 8px; font-size: 13px; }
    .ui-redesign .procurement-report-table td[data-mobile-secondary]:not([data-mobile-promoted]) > :is(.report-sales-basis, .report-sales-with-merge) { width: auto; flex: 0 1 auto; text-align: right; }
    .ui-redesign .procurement-report-table tbody > tr > td[data-column-key="name"] { min-height: 54px; padding-bottom: 6px; }
    .ui-redesign .procurement-report-table tbody > tr > td[data-column-key="brand"] { position: relative !important; justify-self: start; align-self: start; align-items: center; min-height: 30px !important; padding: 5px 30px 5px 10px; margin: 0 14px 12px; border: 1px solid #dce7ee; border-radius: 7px; background: #f4f8fa !important; font-size: 12px; font-weight: 600; line-height: 1.4; }
    .ui-redesign .procurement-report-table tbody > tr > td[data-column-key="brand"]::before { display: none !important; }
    .ui-redesign .procurement-report-table td[data-column-key="brand"] > .mobile-metric-label { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0 7px; justify-content: flex-end; }
    .ui-redesign .procurement-report-table td[data-column-key="brand"] > .mobile-metric-label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .ui-redesign .procurement-report-table tbody > tr > td[data-column-key="brand"] > :not(.mobile-metric-label) { font-size: 12px; }
    .ui-redesign .procurement-report-table tbody > tr > td:is([data-column-key="article"], [data-column-key="gost"]) { min-height: 30px; padding-block: 4px 12px; align-items: center; font-size: 12px; }
    .ui-redesign .procurement-report-table td:is([data-column-key="article"], [data-column-key="gost"]) > .mobile-metric-label { flex: 0 0 auto; width: auto; min-height: 24px; margin: 0; padding: 0; font-size: 11px; }

    /* Full RK name, with the separate brand directly below it. */
    .ui-redesign .repair-kit-need-report-table tbody > tr > td[data-column-key="name"] { order: -1; }
    .ui-redesign .repair-kit-need-report-table tbody > tr > td[data-column-key="brand"] { grid-column: 1 / -1; order: 0; align-self: start; }

    /* The desktop expanded-row stripe must not decorate the floating + cell. */
    .ui-redesign .repair-kit-need-report-table tr[data-report-row].is-assembly-expanded > td:first-child,
    .ui-redesign .repair-kit-need-report-table tr[data-report-row].is-assembly-expanded > td[data-report-service-cell] { box-shadow: none; border: 0; background: transparent !important; }

    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-report-service-cell] { width: 34px !important; min-width: 34px !important; height: 34px; min-height: 34px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-request-picker, .gost-request-picker) { width: 34px; height: 34px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) :is(.report-request-picker > summary, .gost-request-open, [data-rk-request-open]) { width: 34px !important; height: 34px !important; min-width: 34px !important; min-height: 34px !important; font-size: 20px !important; border-radius: 9px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td[data-column-key="name"] { padding-right: 58px; }
    .ui-redesign .procurement-report-table .repair-kit-assembly-chevron { width: 24px !important; height: 24px !important; min-width: 24px; padding: 5px; border-radius: 6px; }

    /* Reuse live controls beside the caption; never put a second tooltip there. */
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) tbody > tr > td:has(> .mobile-metric-heading)::before { display: none !important; }
    .ui-redesign .mobile-metric-heading { display: flex; align-items: center; justify-content: flex-start; gap: 4px; flex: 0 0 100%; min-width: 0; max-width: 100%; min-height: 24px; margin: 0 0 7px; color: #617988; }
    .ui-redesign .procurement-report-table .mobile-metric-heading > .mobile-metric-label,
    .ui-redesign .mobile-metric-heading > .mobile-metric-caption { display: flex; align-items: center; gap: 3px; flex: 0 1 auto; width: auto; min-width: 0; min-height: 24px; margin: 0; padding: 0; color: #54768a; font-size: 11px; font-weight: 500; line-height: 1.35; }
    .ui-redesign .procurement-report-table .mobile-metric-heading > .mobile-metric-label > span { min-width: 0; overflow-wrap: normal; }
    .ui-redesign .procurement-report-table .mobile-metric-label svg { width: 10px; height: 10px; flex-basis: 10px; }
    .ui-redesign .mobile-metric-tools { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 3px; }
    .ui-redesign .procurement-report-table .mobile-metric-tools > [data-repair-kit-assembly-toggle] { width: 24px; min-width: 24px; max-width: 24px; height: 24px; min-height: 24px !important; padding: 0; gap: 0; font-size: 0 !important; line-height: 0; }
    .ui-redesign .procurement-report-table td[data-column-key="assembly"] > .mobile-assembly-state { min-height: 0; font-size: 14px; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-column-key="need_units"] > .mobile-metric-heading { justify-content: center; }
    /* Assembly coverage is one full-width, centered section in RK demand. */
    .ui-redesign .repair-kit-need-report-table tbody > tr > td[data-column-key="assembly"] { grid-column: 1 / -1; justify-content: center; text-align: center !important; }
    .ui-redesign .repair-kit-need-report-table td[data-column-key="assembly"] > .mobile-metric-heading { justify-content: center; }
    .ui-redesign .repair-kit-need-report-table tbody tr[data-report-row] > td[data-column-key="assembly"] > .repair-kit-assembly-status { flex-basis: 100%; min-height: 0; justify-content: center; text-align: center; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-mobile-secondary]:not([data-mobile-promoted]) > .mobile-metric-heading { flex: 1 1 50%; width: auto; margin: 0 auto 0 0; }
    .ui-redesign :is(.procurement-report-table, .rk-procurement-table) td[data-mobile-secondary]:not([data-mobile-promoted]) > .mobile-metric-heading > :is(.mobile-metric-label, .mobile-metric-caption) { font-size: 12px; }

    .ui-redesign .procurement-report-table:not(.repair-kit-need-report-table):not([data-report-table-mode="transit"]) tr:not(:has(> td[data-column-key="sold"]:not([hidden]))) > td[data-column-key="in_requests"],
    .ui-redesign .procurement-report-table:not(.repair-kit-need-report-table):not([data-report-table-mode="transit"]) tr:not(:has(> td[data-column-key="in_requests"]:not([hidden]))) > td[data-column-key="sold"],
    .ui-redesign .procurement-report-table:not(.repair-kit-need-report-table):not([data-report-table-mode="transit"]) tr:not(:has(> td[data-column-key="available"]:not([hidden]))) > td[data-column-key="in_transit"],
    .ui-redesign .procurement-report-table:not(.repair-kit-need-report-table):not([data-report-table-mode="transit"]) tr:not(:has(> td[data-column-key="in_transit"]:not([hidden]))) > td[data-column-key="available"] { grid-column: 1 / -1; }

    /* RK summaries always pack into two useful pairs, including SSR and appended rows. */
    .ui-redesign :is(.repair-kit-need-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-summary-slot]:not([hidden]) { display: flex !important; grid-column: auto; min-height: 82px; padding: 12px 14px; align-items: baseline; justify-content: flex-start; font-size: 17px; background: #fff !important; }
    .ui-redesign :is(.repair-kit-need-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-summary-slot="1"] { order: 3; grid-column: 1; }
    .ui-redesign :is(.repair-kit-need-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-summary-slot="2"] { order: 4; grid-column: 2; }
    .ui-redesign :is(.repair-kit-need-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-summary-slot="3"] { order: 5; grid-column: 1; }
    .ui-redesign :is(.repair-kit-need-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-summary-slot="4"] { order: 6; grid-column: 2; }
    .ui-redesign :is(.repair-kit-need-report-table, .rk-procurement-table) tbody > tr > td[data-mobile-summary-wide] { grid-column: 1 / -1; }
    .ui-redesign .rk-procurement-table tbody > tr > td[data-column-key="assembly"] { grid-column: 1; order: 8; min-height: 100px; padding: 12px 14px; align-items: center; align-content: start; }
    .ui-redesign .rk-procurement-table tbody > tr > td[data-column-key="positions"] { grid-column: 2; order: 9; min-height: 100px; padding: 12px 14px; align-items: center; align-content: start; }
    .ui-redesign .rk-procurement-table tbody > tr > td:is([data-column-key="assembly"], [data-column-key="positions"]) { display: grid !important; grid-template-columns: minmax(0, 1fr) 24px; grid-template-rows: 24px 24px; align-items: center; gap: 5px 4px; min-height: 78px; padding: 10px 12px; }
    .ui-redesign .rk-procurement-table td:is([data-column-key="assembly"], [data-column-key="positions"]) > .mobile-metric-heading { grid-column: 1 / -1; grid-row: 1; margin: 0; }
    .ui-redesign .rk-procurement-table tbody > tr > td:is([data-column-key="assembly"], [data-column-key="positions"])::before { grid-column: 1; grid-row: 1; margin: 0; font-size: 12px; }
    .ui-redesign .rk-procurement-table :is(.rk-status-cell, .rk-source-cell) > .report-merge-indicator { grid-column: 2; grid-row: 1; margin: 0; }
    .ui-redesign .rk-procurement-table .rk-status-cell > .rk-status-text { grid-column: 1 / -1; grid-row: 2; min-width: 0; font-size: 13px; line-height: 24px; white-space: nowrap; }
    .ui-redesign .rk-procurement-table .rk-source-cell > .rk-source-count { grid-column: 1 / -1; grid-row: 2; line-height: 24px; }
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tr:not(:has(> td[data-column-key="in_requests"]:not([hidden]))) > td[data-column-key="in_transit"],
    .ui-redesign .procurement-report-table[data-report-table-mode="transit"] tr:not(:has(> td[data-column-key="in_transit"]:not([hidden]))) > td[data-column-key="in_requests"] { grid-column: 1 / -1; }

    /* Expanded kit requirements use the same readable phone metrics. */
    .ui-redesign .repair-kit-assembly-component-name strong { font-size: 16px; line-height: 1.45; }
    .ui-redesign .repair-kit-assembly-component-name small { font-size: 12px; line-height: 1.45; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-metric { min-height: 66px; padding: 10px; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-metric::before { font-size: 12px; line-height: 1.4; letter-spacing: 0; margin-bottom: 5px; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-metric strong { font-size: 17px; line-height: 1.35; font-weight: 600; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-metric > small { min-width: 0; white-space: normal; overflow-wrap: anywhere; font-size: 12px; line-height: 1.45; }

    /* One rounded outer frame, without the legacy table row's square blue rule. */
    .ui-redesign .procurement-report-table tbody .repair-kit-assembly-detail-row { margin: 0; border: 0; border-radius: 14px; overflow: hidden !important; background: transparent; box-shadow: none; }
    .ui-redesign .procurement-report-table tbody .repair-kit-assembly-detail-row > td { border-radius: inherit; background: transparent !important; }
    .ui-redesign .repair-kit-assembly-panel { background: #eef3f6; border: 1px solid #c2d3df; border-radius: 14px; overflow: hidden; }
    .ui-redesign .repair-kit-assembly-overview { padding: 16px 14px; background: #eaf3f8; border-top: 0; border-bottom: 1px solid #cbdbe5; }
    .ui-redesign .repair-kit-assembly-overview > header { padding: 0; background: transparent; }
    .ui-redesign .repair-kit-assembly-overview h3 { font-size: 18px; font-weight: 700; color: #163f55; }
    .ui-redesign .repair-kit-assembly-overview header span { font-size: 12px; font-weight: 650; letter-spacing: .04em; color: #326a87; }
    .ui-redesign .repair-kit-assembly-summary { padding-top: 14px; background: transparent; }
    .ui-redesign .repair-kit-assembly-summary > span { padding: 0 12px; }
    .ui-redesign .repair-kit-assembly-summary > span:first-child { padding-left: 0; }
    .ui-redesign .repair-kit-assembly-summary > span:first-child::before { display: none; }
    .ui-redesign .repair-kit-assembly-summary small { font-size: 12px; line-height: 1.4; color: #536f81; }
    .ui-redesign .repair-kit-assembly-summary strong { font-size: 21px; font-weight: 650; }
    .ui-redesign .repair-kit-assembly-components { display: grid; gap: 18px; padding: 14px 10px; background: #eaf0f4; }
    .ui-redesign .repair-kit-assembly-component:not(.is-heading) { margin: 0; padding: 0 10px 10px; gap: 8px; align-items: stretch; background: #fff; background-image: none; border: 1px solid #b7cbd8; border-radius: 12px; box-shadow: 0 3px 6px #1c415b0d; overflow: hidden; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-component-name { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 10px; row-gap: 4px; align-items: start; margin: 0 -10px 4px; padding: 13px 12px; background: #f1f6f9; border-bottom: 1px solid #cbd9e3 !important; }
    .ui-redesign .repair-kit-assembly-component-name .mobile-assembly-component-index { display: grid; place-items: center; grid-column: 1; grid-row: 1 / 3; width: 28px; height: 28px; border-radius: 7px; color: #fff; background: #315f79; font-size: 13px; font-weight: 700; line-height: 1; }
    .ui-redesign .repair-kit-assembly-component-name > strong { grid-column: 2; color: #183e54; font-size: 16px; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
    .ui-redesign .repair-kit-assembly-component-name > small { grid-column: 2; margin: 0; color: #5f798b; font-size: 12px; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-metric { background: #f7f9fb; }
    .ui-redesign .repair-kit-assembly-component > .repair-kit-assembly-deficit { background: #eaf7f0; border: 1px solid #c4e2d4 !important; }
    .ui-redesign .repair-kit-assembly-component.is-shortage > .repair-kit-assembly-deficit { background: #fff0f1; border-color: #edc7cd !important; }

    /* Requests: editable quantity is the main action; three stock facts below. */
    .ui-redesign .requests-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
    .ui-redesign .request-heading-actions { display: contents; }
    .ui-redesign .requests-heading .request-archive-link { width: auto; grid-column: 2; grid-row: 1; min-height: 38px; font-size: 13px; }
    .ui-redesign .requests-heading .request-create-form { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) 126px; gap: 8px; align-items: end; }
    .ui-redesign .requests-heading .request-create-form label { min-width: 0; grid-column: auto; }
    .ui-redesign .requests-heading .request-create-form input { font-size: 16px; height: 46px; }
    .ui-redesign .requests-heading .request-create-form .primary-button { grid-column: auto; min-height: 46px; font-size: 12px; padding-inline: 8px; }
    .ui-redesign .request-board { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .ui-redesign .request-card { height: auto !important; min-height: 0 !important; max-height: none !important; overflow: hidden; }
    .ui-redesign .request-card-header { min-height: 0; padding: 16px 14px 0; }
    .ui-redesign .request-card-number-row { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 4px; }
    .ui-redesign .request-card-number-row > .request-card-number { font-size: 12px; }
    .ui-redesign .request-card-utilities { gap: 4px; margin-left: auto; width: auto; }
    .ui-redesign .request-card .request-title-editor { margin: 0; min-height: 0; padding: 0; }
    .ui-redesign .request-card .request-card-utilities :is(a, button) { min-height: 40px; font-size: 12px; padding-inline: 8px; }
    .ui-redesign .request-card :is(.request-title-value, .request-title-form input) { font-size: 22px; min-height: 48px; line-height: 1.4; }
    .ui-redesign .request-period-form { width: 100%; }
    .ui-redesign .request-period-switch { width: 100%; padding: 4px; gap: 4px; }
    .ui-redesign .request-card .request-period-option { min-height: 40px; padding: 8px 5px; font-size: 13px; }
    .mobile-request-collapse { display: flex; align-items: center; width: 100%; gap: 8px; padding: 12px 0; min-height: 46px; border: 0; border-top: 1px solid #dfe7ed; background: transparent; color: #49697c; font-size: 13px; text-align: left; }
    .mobile-request-collapse b { margin-left: auto; font-size: 12px; font-weight: 500; }
    .mobile-request-collapse svg { width: 16px; height: 16px; transform: rotate(180deg); }
    .mobile-request-collapse[aria-expanded="false"] svg { transform: none; }
    .ui-redesign .request-card.is-mobile-collapsed .request-card-content { display: none; }
    .ui-redesign .request-card .request-table-wrap { max-height: none !important; height: auto; overflow: visible; scrollbar-gutter: auto; }
    .ui-redesign .request-card .request-table { display: block; }
    .ui-redesign .request-card .request-table thead { display: none; }
    .ui-redesign .request-card .request-table tbody { display: grid; gap: 12px; padding: 10px; }
    .ui-redesign .request-card .request-table tbody tr { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); padding: 4px 0 0; gap: 0; border: 1px solid #dce5eb; border-radius: 12px; overflow: hidden; }
    .ui-redesign .request-card .request-table tbody td:nth-child(n) { position: static; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; grid-column: span 2; order: 5; min-width: 0; width: auto !important; min-height: 70px; height: auto; padding: 12px 10px; border: 0; border-top: 1px solid #e8eef2; background: #fff; color: #244a60; font-size: 16px; line-height: 1.45; }
    .ui-redesign .request-card .request-table tbody td:nth-child(n)::before { margin: 0 0 6px; color: #6b7f8d; font-size: 11px; text-transform: none; letter-spacing: 0; font-weight: 400; line-height: 1.4; }
    .ui-redesign .request-card .request-table tbody td:nth-child(1) { grid-column: 1 / -1; order: 0; padding: 14px 54px 14px 14px; min-height: 64px; border: 0; }
    .ui-redesign .request-card .request-table tbody td:nth-child(1)::before { display: none; }
    .ui-redesign .request-card .request-table .request-product-cell strong { font-size: 17px; line-height: 1.45; font-weight: 650; white-space: normal; }
    .ui-redesign .request-card .request-table tbody td:nth-child(2),
    .ui-redesign .request-card .request-table tbody td:nth-child(7) { grid-column: span 3; order: 1; padding: 4px 14px 12px; min-height: 45px; border: 0; font-size: 13px; }
    .ui-redesign .request-card .request-table tbody td:nth-child(3) { grid-column: 1 / -1; order: 2; padding: 12px 14px; min-height: 86px; background: #eef7fb; border-block: 1px solid #d7e9f2; }
    .ui-redesign .request-card .request-table tbody td:nth-child(3)::before { content: "Количество в заявке · нажмите, чтобы изменить"; font-size: 12px; color: #3c6a80; }
    .ui-redesign .request-card .request-table td strong { font-size: inherit; font-weight: 600; }
    .ui-redesign .request-card .request-table .request-quantity-value { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0; color: #124f6b; }
    .ui-redesign .request-card .request-table .request-quantity-value > span { font-size: 26px; font-weight: 700; }
    .ui-redesign .request-card .request-table .request-quantity-value i { margin-left: 6px; font-size: 18px; opacity: 1; }
    .ui-redesign .request-card .request-table tbody td:nth-child(3)::before { width: 100%; text-align: center; }
    .ui-redesign .request-card .request-table tbody td.request-row-action { position: absolute !important; z-index: 2; top: 10px; right: 10px; width: 34px !important; min-height: 34px; height: 34px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; }
    .ui-redesign .request-card .request-table tbody td.request-row-action::before { display: none; }
    .ui-redesign .request-card .request-row-action .request-remove-button { width: 34px; height: 34px; font-size: 22px; }
    .ui-redesign .request-card .request-table .request-quantity-editor { width: 100%; justify-content: center; }
    .ui-redesign .request-card .request-table .request-cell-unit { font-size: 12px; color: #69808f; }
    .ui-redesign .request-card .request-table .request-quantity-form input { font-size: 20px; height: 44px; }
    .ui-redesign .request-card .request-table .request-quantity-confirm { width: 44px; height: 44px; }
    .ui-redesign .request-card .request-table .request-period-column { background: var(--request-period-cell) !important; }
    .ui-redesign .request-card .request-card-empty { min-height: 160px; padding: 24px 18px; }

    /* Orders keep search in sight; filter choices are edited together in one dialog. */
    .ui-redesign .supplier-order-filters { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 0; padding: 12px; border: 0; }
    .ui-redesign .supplier-order-search { grid-column: 1; }
    .ui-redesign .supplier-order-search > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .ui-redesign .supplier-order-search input { min-width: 0; height: 46px; font-size: 16px; }
    .ui-redesign .supplier-order-filters > .supplier-order-filter-fields { display: none; }
    .ui-redesign .mobile-supplier-filter-open { display: flex; align-items: center; gap: 6px; min-height: 46px; padding: 9px 11px; border: 1px solid #cadce7; border-radius: 9px; background: #f1f8fc; color: #265c76; font-size: 13px; font-weight: 600; }
    .mobile-supplier-filter-open svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
    .mobile-supplier-filter-open b { padding: 2px 5px; border-radius: 5px; background: #dceef8; font-size: 11px; }
    .ui-redesign .mobile-supplier-filter-dialog .supplier-order-filter-fields { display: grid; gap: 18px; padding: 16px; }
    .ui-redesign .mobile-supplier-filter-dialog label > span { font-size: 13px; font-weight: 600; color: #4b697d; }
    .ui-redesign .mobile-supplier-filter-dialog select { height: 46px; font-size: 16px; }
    .ui-redesign .mobile-supplier-filter-dialog select:is([name="state"], [name="scope"]) { display: none; }
    .mobile-supplier-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .mobile-supplier-choices.is-state > button:first-child { grid-column: 1 / -1; }
    .mobile-supplier-choices.is-scope { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .mobile-supplier-choices button { min-width: 0; min-height: 44px; padding: 9px 8px; border: 1px solid #d5e1e9; border-radius: 9px; background: #f7fafc; color: #496779; font-size: 13px; line-height: 1.4; text-align: left; }
    .mobile-supplier-choices.is-scope button { padding-inline: 4px; font-size: 12px; text-align: center; }
    .mobile-supplier-choices button[aria-pressed="true"] { border-color: #72a9c3; background: #eaf5fb; color: #195d7e; box-shadow: inset 0 0 0 1px #72a9c3; font-weight: 600; }
    .ui-redesign .mobile-supplier-filter-dialog > footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 8px; }

    /* Catalog -> composition: two full phone views, with a remembered return. */
    .ui-redesign .rk-compositions-page .repair-kit-purchase-workspace { display: block; height: auto; min-height: 0; }
    .ui-redesign .rk-compositions-page :is(.repair-kit-catalog, .repair-kit-composer) { height: auto !important; max-height: none !important; min-height: 0; overflow: visible; }
    .ui-redesign .rk-compositions-page .repair-kit-catalog { display: block; }
    .ui-redesign .rk-compositions-page .repair-kit-catalog > header { padding: 16px; min-height: 60px; }
    .ui-redesign .rk-compositions-page .repair-kit-catalog h2 { font-size: 18px; }
    .ui-redesign .rk-compositions-page .repair-kit-catalog-controls { padding: 12px; }
    .ui-redesign .rk-compositions-page .repair-kit-list { height: auto; max-height: none; overflow: visible; padding: 8px; scrollbar-gutter: auto; }
    .ui-redesign .rk-compositions-page .repair-kit-list-item { min-height: 84px; padding: 14px 12px; margin: 0 0 6px; border: 1px solid #e2eaf0; border-radius: 10px; }
    .ui-redesign .rk-compositions-page .repair-kit-list-copy strong { font-size: 15px; font-weight: 600; line-height: 1.5; }
    .ui-redesign .rk-compositions-page .repair-kit-list-copy small { font-size: 13px; margin-top: 5px; }
    .ui-redesign .rk-compositions-page .repair-kit-list-meta { white-space: nowrap; flex-wrap: nowrap; }
    .ui-redesign .rk-compositions-page .repair-kit-list-meta > b { font-size: 13px; }
    .ui-redesign .rk-compositions-page .repair-kit-list-meta > small { font-size: 12px; }
    .ui-redesign .rk-compositions-page :is(.repair-kit-list-search input, .repair-kit-list-filters select) { font-size: 16px; min-height: 44px; }
    .ui-redesign .rk-compositions-page .repair-kit-list-filters label > span { font-size: 12px; }
    .ui-redesign .rk-compositions-page [data-mobile-kit-view="catalog"] > .repair-kit-composer,
    .ui-redesign .rk-compositions-page [data-mobile-kit-view="composition"] > .repair-kit-catalog { display: none; }
    .mobile-kit-back { display: flex; align-items: center; gap: 10px; padding: 14px 16px; min-height: 48px; border-bottom: 1px solid #e2eaf0; color: #235d7a; font-size: 14px; font-weight: 600; }
    .mobile-kit-back svg { width: 18px; height: 18px; }
    .ui-redesign .rk-compositions-page .repair-kit-composer-header { padding: 16px; }
    .ui-redesign .rk-compositions-page .repair-kit-composer-header h2 { font-size: 20px; line-height: 1.4; }
    .ui-redesign .rk-compositions-page .repair-kit-composer-header p { font-size: 14px; }
    .ui-redesign .rk-compositions-page .repair-kit-add-panel { padding: 14px; }
    .ui-redesign .rk-compositions-page .repair-kit-add-panel form { display: grid; grid-template-columns: minmax(0, 1fr) 90px; gap: 12px; }
    .ui-redesign .rk-compositions-page .repair-kit-add-panel label > span { font-size: 12px; line-height: 1.4; }
    .ui-redesign .rk-compositions-page .repair-kit-add-panel input { font-size: 16px; height: 46px; }
    .ui-redesign .rk-compositions-page .repair-kit-add-panel .primary-button { width: 100%; min-height: 46px; font-size: 14px; }
    .ui-redesign .rk-compositions-page .repair-kit-composition-table-wrap { max-height: none; overflow: visible; }
    .ui-redesign .rk-compositions-page .repair-kit-composition-table tbody { padding: 0 10px 12px; }
    .ui-redesign .rk-compositions-page .repair-kit-composition-table tbody tr { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; gap: 10px; }
    .ui-redesign .rk-compositions-page .repair-kit-composition-table tbody td { font-size: 16px; }
    .ui-redesign .rk-compositions-page .repair-kit-composition-table tbody td::before { font-size: 12px; line-height: 1.4; color: #69808f; text-transform: none; }
    .ui-redesign .rk-compositions-page .repair-kit-composition-table tbody td:first-child strong { font-size: 16px; line-height: 1.45; }
    .ui-redesign .rk-compositions-page .repair-kit-search-results { width: 100%; max-height: min(60dvh, 480px); }
    .ui-redesign .rk-compositions-page .repair-kit-search-columns { display: none; }
    .ui-redesign .rk-compositions-page .repair-kit-search-result { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ui-redesign .rk-compositions-page .repair-kit-search-result > span { grid-column: 1 / -1; }
}

@keyframes mobile-period-reveal {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
