/* Один набор данных и элементов управления: на телефоне меняется только раскладка. */
.мобильная-навигация, .подпись-мобильного-поля, .мобильная-подсказка { display: none; }
.адаптивное-поле { display: contents; }
.мобильное-значение { display: contents; }

@media screen and (max-width: 900px) {
  body { min-width: 0; }
  main, main > *, section, .toolbar, .panel { min-width: 0; }
  body > aside { position: sticky; inset: auto; top: 0; z-index: 30; width: 100%; padding: 12px 16px; max-height: 85dvh; overflow-y: auto; }
  body > aside .brand { padding: 0 88px 0 0; font-size: 16px; line-height: 1.5; }
  body > aside .brand small { display: none; }
  .мобильная-навигация { position: absolute; right: 12px; top: 12px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 8px 12px; border: 1px solid #42484b; border-radius: 8px; background: #141719; color: #fff; font-size: 14px; }
  body > aside nav, body > aside .side-note { display: none; }
  body.меню-навигации-открыто > aside nav { display: grid; gap: 6px; margin-top: 14px; }
  body.меню-навигации-открыто > aside .side-note { display: block; position: static; margin-top: 16px; font-size: 13px; overflow-wrap: anywhere; }
  body > aside:has(nav[hidden]) .мобильная-навигация { display: none; }
  body > main { margin-left: 0; padding: 20px 16px; }
  body > main > header { margin-bottom: 14px; }
  body > main h1 { font-size: 26px; line-height: 1.25; overflow-wrap: anywhere; }
  body > main h2 { font-size: 19px; line-height: 1.4; overflow-wrap: anywhere; }
  body > main :is(input, select, textarea, .button, .tabs button, nav button), body > aside button { font-size: 16px; min-height: 44px; }
  body > main :is(input, select, textarea) { max-width: 100%; min-width: 0; }
  body > main :is(.panel, .card) { padding: 16px; }
  body > main .split { grid-template-columns: minmax(0, 1fr); }
  .toolbar > input, .toolbar > select { width: 100%; flex: 1 1 220px; max-width: 100%; min-width: 0; }
  body > main .tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  body > main .tabs button { min-width: 0; white-space: normal; }
  .pagination { flex-wrap: wrap; }
  .portfolio-toolbar-filters { display: grid; grid-template-columns: 82px minmax(0, 1fr) 58px; gap: 8px; width: 100%; }
  .portfolio-toolbar-filters.фильтр-загрузки { grid-template-columns: minmax(0, 1fr) 58px; }
  .portfolio-toolbar .toolbar-year, .portfolio-toolbar .toolbar-pm { width: auto; min-width: 0; }
  .portfolio-toolbar .toolbar-field select { padding-inline: 8px; font-size: 16px; }
  .portfolio-toolbar .button { padding-inline: 10px; }
  .portfolio-toolbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; }
  #import-projects { grid-column: 1 / -1; }
  .portfolio-toolbar .toolbar-checkbox { min-height: 44px; height: auto; white-space: normal; font-size: 14px; }
  body > main input[type=checkbox], dialog input[type=checkbox] { width: 22px; height: 22px; min-height: 22px; flex: 0 0 22px; }
  .portfolio-group > h3 { margin-bottom: 14px; padding: 12px; overflow-wrap: anywhere; }
  .portfolio-pm > h4 { overflow-wrap: anywhere; }
  .notice, .metric-rules, .empty { font-size: 14px; }
  .money-period label { width: 100%; font-size: 14px; }
  .money-metrics table, .money-metrics thead, .money-metrics tbody { display: block; }
  .money-metrics tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .money-metrics thead th:first-child { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
  .money-metrics tbody th { grid-column: 1 / -1; padding: 12px 8px 3px; border: 0; font-size: 14px; }
  .money-metrics tbody td { font-size: clamp(14px, 4vw, 20px); padding: 8px; }
  .year-statistics td, .year-statistics th { padding: 10px 6px; font-size: 13px; }

  /* Колонки обычной таблицы становятся подписанными полями одной карточки. */
  .адаптивная-таблица { display: block; width: 100% !important; min-width: 0 !important; font-size: 14px; }
  .адаптивная-таблица > colgroup { display: none; }
  .адаптивная-таблица > thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .адаптивная-таблица > tbody { display: grid; gap: 12px; }
  .адаптивная-таблица > tbody > tr { display: block; min-width: 0; border: 1px solid #dfe5e8; border-radius: 10px; padding: 12px; }
  .адаптивная-таблица > tbody > tr > td { display: grid; grid-template-columns: 105px minmax(0, 1fr); align-items: start; gap: 5px 12px; width: 100%; min-width: 0; padding: 9px 0; text-align: left; border-bottom: 1px solid #eef0f2; font-size: 14px; overflow-wrap: anywhere; }
  .адаптивная-таблица > tbody > tr > td::before { content: attr(data-label); font-size: 12px; color: #666d73; font-weight: 500; text-align: left; }
  .адаптивная-таблица > tbody > tr > td > * { grid-column: 2; min-width: 0; max-width: 100%; }
  .адаптивная-таблица .мобильное-значение { display: block; min-width: 0; }
  .адаптивная-таблица > tbody > tr > td:first-child { display: block; padding-top: 0; }
  .адаптивная-таблица > tbody > tr > td:first-child::before { display: block; margin-bottom: 5px; }
  .адаптивная-таблица > tbody > tr > td:last-child { border-bottom: 0; padding-bottom: 0; }
  .адаптивная-таблица td small { font-size: 12px; }
  .адаптивная-таблица .row-actions { display: flex !important; flex-wrap: wrap; gap: 8px; }
  .адаптивная-таблица .row-actions::before { flex-basis: 100%; }
  .адаптивная-таблица .row-actions > .мобильное-значение { display: flex; flex-wrap: wrap; flex: 1 1 100%; gap: 8px; }
  .адаптивная-таблица .row-actions .button { width: auto; flex: 1 1 125px; margin: 0; padding: 9px; font-size: 14px; }
  #workload input, #workload select { font-size: 16px; }
  .адаптивная-таблица .number { font-variant-numeric: tabular-nums; }
  dialog:not(.dialog-backdrop) { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); padding: 16px; overflow-y: auto; }
  dialog .form-grid, dialog .input-row { grid-template-columns: minmax(0, 1fr); }
  dialog :is(input, textarea, select, button) { max-width: 100%; min-height: 44px; font-size: 16px; }
  dialog h2 { clear: both; line-height: 1.4; overflow-wrap: anywhere; }
  dialog .close-dialog { margin: 0 0 12px 12px; }
  dialog .editor-footer { bottom: -16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); }
  dialog .editor-footer span { grid-column: 1 / -1; min-width: 0; }
  dialog :is(.panel, .checkbox-label, label) { min-width: 0; overflow-wrap: anywhere; }

  /* Редактор проекта: обычная прокрутка страницы и доступная история из того же DOM. */
  body.отчёт-приложение { display: block; height: auto; min-height: 100dvh; overflow: auto; padding-bottom: calc(52px + env(safe-area-inset-bottom)); }
  .отчёт-приложение .app-shell, .отчёт-приложение .app-shell.sidebar-collapsed { display: block; width: 100%; height: auto; min-height: 0; }
  .отчёт-приложение .app-shell > .sidebar { display: none; }
  .отчёт-приложение .workspace { overflow: visible; min-width: 0; padding: 18px 16px; }
  .отчёт-приложение .workspace .project-header { min-height: 0; padding-bottom: 16px; }
  .отчёт-приложение .workspace .project-title { font-size: 25px; margin: 18px 0 10px; }
  .отчёт-приложение .workspace .project-subtitle { font-size: 13px; line-height: 1.6; }
  .отчёт-приложение .workspace .content-panel { padding: 16px; min-height: 0; }
  #мобильное-меню-отчёта { display: block; margin-bottom: 16px; }
  #мобильное-меню-отчёта > summary { width: 100%; min-height: 44px; padding: 12px; border: 1px solid #d7dce0; border-radius: 8px; background: #fff; font-size: 15px; cursor: pointer; }
  #мобильное-меню-отчёта[open] { padding: 12px; border: 1px solid #e4e6e8; border-radius: 10px; background: #fff; }
  #мобильное-меню-отчёта[open] > summary { margin-bottom: 16px; }
  #мобильное-меню-отчёта .toolbar { gap: 16px; }
  #мобильное-меню-отчёта .sidebar-reports { display: flex; min-height: 0; margin-top: 18px; }
  #мобильное-меню-отчёта .sidebar-reports h2 { padding: 0; font-size: 14px; }
  #мобильное-меню-отчёта .list-box { display: grid; gap: 4px; max-height: 260px; overflow-y: auto; }
  #мобильное-меню-отчёта .list-item { background: #eef4f5; color: #17191c; font-size: 14px; min-height: 44px; }
  #мобильное-меню-отчёта .list-item.active { background: var(--cyan); }
  .отчёт-приложение .workspace :is(.tool-button, .mode-button, .small-button, .tab-button, .icon-button) { min-height: 44px; white-space: normal; }
  .отчёт-приложение .workspace :is(.control, .session-dialog input) { min-height: 44px; font-size: 16px; max-width: 100%; min-width: 0; }
  .отчёт-приложение .workspace .mode-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .отчёт-приложение .workspace .mode-button { font-size: 14px; }
  .отчёт-приложение .workspace .section-heading { flex-wrap: wrap; gap: 10px; }
  .отчёт-приложение .workspace .section-heading h2 { font-size: 20px; overflow-wrap: anywhere; }
  .отчёт-приложение .workspace .overview-badges { flex-wrap: wrap; }
  .отчёт-приложение .workspace .tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .отчёт-приложение .workspace .tab-button { min-width: 0; padding: 9px; font-size: 14px; }
  .отчёт-приложение .workspace .form-table { width: 100%; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .отчёт-приложение .workspace .form-label { padding: 14px 0 6px; font-size: 14px; }
  .отчёт-приложение .workspace .visibility-toggle { min-width: 0; max-width: 100%; white-space: normal; font-size: 14px; }
  .отчёт-приложение .workspace .visibility-toggle input { flex: 0 0 22px; width: 22px; height: 22px; }
  .отчёт-приложение .workspace .summary-grid { grid-template-columns: minmax(0, 1fr); }
  .отчёт-приложение .workspace :is(.finance-section, .summary-card, .text-block, .item-card, .item-editor) { padding: 14px; }
  .отчёт-приложение .workspace :is(.text-block, .item-card, .compact-result-item, .overview-issue, .changes-list) { min-width: 0; overflow-wrap: anywhere; font-size: 14px; }
  .отчёт-приложение .workspace .compact-result-item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; padding: 14px; }
  .отчёт-приложение .workspace .compact-result-item p { white-space: pre-wrap; overflow: visible; text-overflow: clip; }
  .отчёт-приложение .workspace .compact-result-item span { white-space: normal; }
  .отчёт-приложение .workspace :is(.item-card, .overview-issue) { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .отчёт-приложение .workspace :is(.item-card, .overview-issue) dl { grid-template-columns: 110px minmax(0, 1fr); font-size: 13px; }
  .отчёт-приложение .workspace :is(.item-card, .overview-issue) dd { min-width: 0; overflow-wrap: anywhere; }
  .отчёт-приложение .workspace .item-editors { overflow: visible; }
  .отчёт-приложение .workspace .item-editor-head { display: none; }
  .отчёт-приложение .workspace .item-editors .item-editor { min-width: 0; width: 100%; }
  .отчёт-приложение .workspace .item-editor-grid { min-width: 0; grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .отчёт-приложение .workspace .адаптивное-поле { display: grid; min-width: 0; gap: 7px; }
  .отчёт-приложение .workspace .подпись-мобильного-поля { display: block; color: var(--muted); font-size: 13px; }
  .отчёт-приложение .workspace .item-row-actions { gap: 8px; }
  .отчёт-приложение .workspace .icon-button { width: 44px; min-width: 44px; }
  .отчёт-приложение .workspace .table-wrap { max-height: none; overflow: visible; border: 0; }
  .отчёт-приложение .workspace .column-resizer { display: none; }
  .отчёт-приложение .workspace .адаптивная-таблица td.col-actions { display: block; }
  .отчёт-приложение .workspace .row-tools { flex-wrap: wrap; }
  .отчёт-приложение .workspace .gantt-heading-actions { justify-content: flex-start; }
  .отчёт-приложение .workspace .gantt-scale { display: flex; gap: 8px; }
  .отчёт-приложение .workspace .gantt-period-controls { flex-wrap: wrap; width: 100%; }
  .отчёт-приложение .workspace .gantt-period-controls label { display: grid; gap: 5px; min-width: 0; flex: 1 1 130px; }
  .отчёт-приложение .workspace .gantt-period-controls .control { width: 100%; }
  .отчёт-приложение .workspace .gantt-legend > span { white-space: normal; }
  .отчёт-приложение .workspace .gantt-scroller { width: 100%; height: min(65dvh, 620px); min-height: 260px; overscroll-behavior-x: contain; }
  .отчёт-приложение .workspace .gantt-grid:not(.fit) { --name-width: 140px !important; --owner-width: 90px !important; }
  .отчёт-приложение .workspace .gantt-name { font-size: 12px; }
  .отчёт-приложение .workspace .gantt-owner { font-size: 11px; overflow-wrap: anywhere; }
  .отчёт-приложение .workspace .gantt-name.level-1 { padding-left: 12px; }
  .отчёт-приложение .workspace .gantt-name.level-2 { padding-left: 20px; }
  .отчёт-приложение .workspace .gantt-name.level-3 { padding-left: 28px; }
  .отчёт-приложение .workspace .gantt-column-resizer { display: none; }
  .отчёт-приложение .workspace .readiness-table-wrap { width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  .отчёт-приложение .workspace .readiness-table { width: max-content; min-width: 100%; }
  .отчёт-приложение .workspace .readiness-data-column { width: 132px; }
  .отчёт-приложение .workspace .readiness-table td { min-width: 132px; height: 44px; padding: 6px; font-size: 14px; line-height: 1.5; }
  .отчёт-приложение .workspace .readiness-table td:first-child { position: sticky; left: 0; z-index: 2; min-width: 36px; width: 36px; }
  .отчёт-приложение .workspace .readiness-cell-editor { gap: 6px; }
  .отчёт-приложение .workspace .readiness-legend-item { width: auto; flex: 1 1 140px; padding: 8px; }
  .отчёт-приложение .workspace .readiness-legend-item span { font-size: 13px; }
  .отчёт-приложение .мобильная-подсказка { display: block; margin: 8px 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
  .отчёт-приложение .status-bar { position: fixed; inset: auto 0 0; z-index: 20; min-height: 44px; max-height: 96px; overflow-y: auto; overflow-wrap: anywhere; padding-bottom: max(10px, env(safe-area-inset-bottom)); line-height: 1.5; }
  .отчёт-приложение .toast { max-width: calc(100vw - 32px); left: 16px; right: 16px; bottom: 20px; overflow-wrap: anywhere; }
  .отчёт-приложение .dialog-backdrop { padding: 12px; overflow-y: auto; }
  .отчёт-приложение .dialog { max-height: calc(100dvh - 24px); width: min(520px, calc(100vw - 24px)); overflow-y: auto; padding: 18px; }
  .отчёт-приложение .dialog-actions { flex-wrap: wrap; }
  .отчёт-приложение .dialog-actions button { min-height: 44px; }
  .отчёт-приложение .session-dialog input { min-height: 44px; font-size: 16px; }
}

@media screen and (min-width: 601px) and (max-width: 900px) {
  .отчёт-приложение .workspace .item-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .отчёт-приложение .workspace .адаптивное-поле:is([data-field=content], [data-field=title], [data-field=details]) { grid-column: 1 / -1; }
}
@media screen and (max-width: 380px) {
  body > main, .отчёт-приложение .workspace { padding-inline: 12px; }
  body > main :is(.panel, .card), .отчёт-приложение .workspace .content-panel { padding: 12px; }
  .адаптивная-таблица > tbody > tr > td { grid-template-columns: 90px minmax(0, 1fr); gap: 6px; }
}

@media screen and (max-width:900px){body>aside .brand-heading{flex-direction:row;align-items:center;gap:12px;min-height:44px}body>aside .brand-logo{width:82px;flex:0 0 82px}}
