/* r112: читаемая таблица объектов и редактор требований. */
@media screen {
  .registry-object-table thead th,
  .registry-object-table th.registry-action-column {
    box-sizing: border-box;
    height: 58px;
    min-height: 58px;
    padding: 10px 14px;
    vertical-align: middle;
    text-align: center;
    color: #0b5f3a;
    font-family: Inter, "Segoe UI", Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
  }

  .requirements-admin-workspace {
    gap: 20px;
  }

  .requirements-catalog-list,
  .requirement-admin-editor {
    padding: 22px;
  }

  .requirements-catalog-list {
    gap: 14px;
  }

  .requirements-catalog-list > input[type="search"] {
    min-height: 52px;
    padding: 12px 15px;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.4;
  }

  .requirements-visible-count,
  .requirements-catalog-list .report-checkbox {
    color: #111;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.45;
  }

  .requirements-catalog-list .report-checkbox input {
    width: 22px;
    height: 22px;
  }

  .requirement-catalog-item {
    gap: 8px;
    padding: 16px 13px;
  }

  .requirement-catalog-item > span > b {
    color: #111;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.3;
  }

  .requirement-catalog-item strong {
    color: #111;
    font-family: Inter, "Segoe UI", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
  }

  .requirement-catalog-item small {
    color: #667983;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
  }

  .requirement-catalog-item .risk-label {
    font-size: 14px !important;
    font-weight: 600 !important;
  }

  .requirement-admin-editor {
    gap: 17px;
  }

  .requirement-admin-editor > header {
    align-items: center;
  }

  .requirement-admin-editor h2 {
    color: #0b5f3a;
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.25;
  }

  .requirement-admin-editor header small {
    display: block;
    margin-top: 5px;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.4;
  }

  .requirement-editor-row label,
  .requirement-editor-field {
    gap: 8px;
    color: #536a76;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.35;
  }

  .requirement-admin-editor input,
  .requirement-admin-editor select,
  .requirement-admin-editor textarea {
    padding: 12px 14px;
    color: #111 !important;
    font-family: Inter, "Segoe UI", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
  }

  .requirement-admin-editor input,
  .requirement-admin-editor select {
    min-height: 50px;
  }

  .requirement-admin-editor textarea {
    min-height: 96px;
  }

  .requirement-admin-editor input:disabled,
  .requirement-admin-editor select:disabled,
  .requirement-admin-editor textarea:disabled {
    color: #111 !important;
    font-weight: 400 !important;
    -webkit-text-fill-color: #111;
  }

  .requirement-group-field small {
    color: #667983;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
  }

  .requirement-admin-editor .secondary-button,
  .requirement-admin-editor .primary-button,
  .requirement-admin-editor .danger-button,
  .requirements-catalog-list > .secondary-button {
    min-height: 46px;
    font-size: 14px !important;
  }
}

/* r128: верхняя панель без взаимного наложения и переносов элементов. */
@media screen and (min-width: 761px) {
  .topbar:has(.breadcrumbs) {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: minmax(390px, 440px) minmax(0, 1fr);
    align-items: center !important;
    justify-content: initial !important;
    gap: 16px;
    min-height: 92px;
    padding-top: 8px;
    padding-bottom: 8px;
    container-type: inline-size;
    container-name: inspection-topbar;
  }

  .topbar .breadcrumbs {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    display: grid !important;
    grid-template-columns: max-content max-content minmax(0, 1fr);
    align-items: start !important;
    column-gap: 8px;
    white-space: nowrap;
  }

  .topbar .breadcrumbs > span,
  .topbar .breadcrumbs > i,
  .topbar .breadcrumb-object strong {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .topbar .breadcrumb-object {
    width: 100%;
    max-width: none;
  }

  .topbar .breadcrumb-object small {
    display: -webkit-box !important;
    max-width: 100%;
    overflow: hidden;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  .topbar .top-actions {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end;
    gap: clamp(6px, .65vw, 12px);
  }

  .topbar .top-actions > *,
  .topbar .save-indicator,
  .topbar .edit-inspection-card-button,
  .topbar .mode-switch,
  .topbar .mode-switch button,
  .topbar .profile-button {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .topbar .top-actions > * {
    flex: 0 0 auto;
  }

  .topbar #requirement-edition-control {
    flex: 1 1 260px;
    min-width: 210px;
    max-width: 400px;
  }

  .topbar #requirement-edition-control .edition-chip {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: center;
    overflow: hidden;
  }

  .topbar #requirement-edition-control .edition-chip span,
  .topbar #requirement-edition-control .edition-chip b {
    flex: 0 1 auto;
    min-width: 0;
    white-space: nowrap !important;
  }

  .topbar #requirement-edition-control .edition-chip b {
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .topbar .save-indicator {
    flex: 0 0 auto;
    padding-left: 14px;
  }

  .topbar .edit-inspection-card-button {
    min-width: 0 !important;
    width: auto !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .topbar .mode-switch {
    flex: 0 0 auto;
  }

  .app-shell:has(.topbar .breadcrumbs) .filter-bar {
    top: 92px !important;
  }
}

@container inspection-topbar (max-width: 1650px) {
  .topbar #requirement-edition-control .edition-chip span {
    display: none !important;
  }

  .topbar .top-actions {
    gap: 6px;
  }

  .topbar .edit-inspection-card-button {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

@media screen and (min-width: 761px) and (max-width: 1500px) {
  .topbar:has(.breadcrumbs) {
    grid-template-columns: minmax(330px, 390px) minmax(0, 1fr);
    gap: 10px;
    padding-left: 18px;
    padding-right: 18px;
  }

  .topbar #requirement-edition-control .edition-chip span {
    display: none !important;
  }

  .topbar .top-actions {
    gap: 6px;
  }

  .topbar .edit-inspection-card-button {
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 11px !important;
  }
}

/* r127: адрес объекта под номером в верхней панели проверки. */
@media screen and (min-width: 761px) {
  .topbar .breadcrumbs {
    align-items: flex-start;
  }

  .topbar .breadcrumbs > span,
  .topbar .breadcrumbs > i {
    margin-top: 2px;
  }

  .topbar .breadcrumb-object {
    min-width: 0;
    max-width: min(360px, 32vw);
    display: grid;
    gap: 4px;
    text-align: left;
  }

  .topbar .breadcrumb-object strong,
  .topbar .breadcrumb-object small {
    display: block;
    min-width: 0;
    text-align: left;
  }

  .topbar .breadcrumb-object small {
    color: #788791 !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    overflow-wrap: anywhere;
  }
}

/* r126: круглая сенсорная кнопка удаления фотографии. */
@media screen {
  .media-remove-marker,
  button.media-remove-marker,
  [role="button"].media-remove-marker,
  .requirement-details .photo-grid figure > button,
  .photo-column .photo-grid figure > button {
    box-sizing: border-box !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    max-width: 38px !important;
    max-height: 38px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, .82) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .72) !important;
    color: #d52b25 !important;
    -webkit-text-fill-color: #d52b25 !important;
    font-family: Arial, sans-serif !important;
    font-size: 25px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
    text-indent: 0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .2) !important;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    top: 10px !important;
    right: 10px !important;
    overflow: hidden !important;
  }

  .media-remove-marker:hover,
  .requirement-details .photo-grid figure > button:hover,
  .photo-column .photo-grid figure > button:hover {
    background: rgba(255, 255, 255, .9) !important;
    color: #b91f1a !important;
  }

  .media-remove-marker:focus-visible,
  .requirement-details .photo-grid figure > button:focus-visible,
  .photo-column .photo-grid figure > button:focus-visible {
    outline: 3px solid rgba(213, 43, 37, .42) !important;
    outline-offset: 2px;
  }
}

@media screen and (max-width: 1180px) {
  .registry-object-table thead th,
  .registry-object-table th.registry-action-column {
    font-size: 14px !important;
  }

  .requirement-admin-editor h2 {
    font-size: 24px !important;
  }
}

@media screen and (max-width: 760px) {
  .requirements-catalog-list,
  .requirement-admin-editor {
    padding: 16px;
  }

  .requirement-catalog-item strong,
  .requirement-admin-editor input,
  .requirement-admin-editor select,
  .requirement-admin-editor textarea {
    font-size: 16px !important;
  }
}

/* r116: фильтр требований по наличию типовых замечаний. */
@media screen and (min-width: 1051px) {
  .filter-bar {
    grid-template-columns:
      minmax(230px, 1fr)
      minmax(175px, 0.65fr)
      160px
      minmax(190px, 0.62fr)
      auto
      auto !important;
  }

  .filter-bar .remark-history-filter {
    min-width: 190px;
    border-color: #9bc7ae;
    background: #f3faf6;
    color: #175f39;
    font-weight: 600;
  }
}

@media screen and (max-width: 1050px) {
  .filter-bar .remark-history-filter {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    width: 100% !important;
    color: #175f39 !important;
    border-color: #9bc7ae;
    background: #f3faf6;
    font-weight: 600;
  }
}

/* r115: состояние карточки и история замечаний видны без раскрытия. */
@media screen {
  .requirement-summary.has-unconfirmed {
    border-color: #dda94d !important;
    box-shadow: inset 4px 0 #d89a27;
  }

  .requirement-summary-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
  }

  .requirement-summary-meta em {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border: 1px solid;
    border-radius: 999px;
    font-family: Inter, "Segoe UI", Arial, sans-serif !important;
    font-size: 11px !important;
    font-style: normal !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
    white-space: nowrap;
  }

  .unconfirmed-summary-pill {
    border-color: #dda94d !important;
    background: #fff4dc;
    color: #8a5908;
  }

  .remark-count-pill {
    border-color: #9bc7ae !important;
    background: #edf7f1;
    color: #17613a;
  }

  .remark-count-pill.empty {
    border-color: #c8d4ce !important;
    background: #fff;
    color: #50665b;
  }

  .previous-remark-empty {
    box-sizing: border-box;
    margin: 3px 0 8px;
    padding: 9px 11px;
    border: 1px solid #d6e1dc;
    border-radius: 9px;
    background: #fff;
    color: #5d7067;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.4;
  }

  /* На тёмных заливках текст всегда остаётся светлым и контрастным. */
  .risk-label.critical,
  .status-critical,
  .status-badge.critical,
  .state-pill.critical,
  .result-pill.critical {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  /* Полная тонкая рамка строк и светлых ячеек реестра нарушений. */
  .violation-object-rows .violation-row {
    box-sizing: border-box;
    border: 1px solid #d3dfd9 !important;
    border-left-width: 3px !important;
    border-radius: 10px;
    margin-top: 8px;
  }

  .violation-object-rows .violation-row > time,
  .violation-object-rows .violation-row > i {
    box-sizing: border-box;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border: 1px solid #cedbd5 !important;
    border-radius: 999px;
  }

  .violation-object-rows .violation-row > time {
    background: #fff;
    color: #40564b;
  }

  .violation-object-rows .violation-row.deadline-overdue {
    border-left-color: #c94137 !important;
  }

  .violation-object-rows .violation-row.deadline-soon {
    border-left-color: #d99a23 !important;
  }

  .violation-object-rows .violation-row.deadline-closed {
    border-left-color: #27955a !important;
  }
}

@media screen and (max-width: 760px) {
  .requirement-summary-meta em {
    font-size: 10px !important;
    white-space: normal;
  }
}

/* r113: выравнивание результата, безопасная прокрутка и локальные предупреждения. */
@media screen {
  /* Индикатор редакции является частью верхней панели и не перекрывает контент. */
  #requirement-edition-control {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    flex: 0 1 auto;
    min-width: 0;
  }

  #requirement-edition-control .edition-chip {
    max-width: 360px;
    min-height: 40px;
    box-shadow: none;
    white-space: nowrap;
  }

  .top-actions {
    min-width: 0;
  }

  /* У закреплённых элементов непересекающиеся уровни. */
  .topbar {
    z-index: 60 !important;
  }

  .filter-bar {
    top: 76px !important;
    z-index: 35 !important;
  }

  .result-column {
    top: 158px !important;
    z-index: 10;
  }

  /* Ответственный и срок начинаются и заканчиваются на одной высоте. */
  .corrective-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 10px;
  }

  .corrective-fields > label {
    box-sizing: border-box;
    min-width: 0;
    display: grid;
    grid-template-rows: minmax(38px, auto) 42px auto;
    align-content: start;
    gap: 5px;
    margin: 0;
    line-height: 1.25;
  }

  .corrective-fields > label:last-child {
    grid-template-rows: auto 42px auto;
  }

  .corrective-fields input,
  .corrective-fields select {
    box-sizing: border-box;
    height: 42px;
    min-height: 42px;
    margin: 0;
  }

  .field-unconfirmed-warning {
    display: block;
    box-sizing: border-box;
    margin: -8px 0 10px;
    padding: 5px 8px;
    border: 1px solid #e6bd73;
    border-radius: 6px;
    background: #fff8e9;
    color: #8a5b0c !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
  }

  .corrective-fields .field-unconfirmed-warning {
    margin: 0;
  }

  .previous-remark-suggestions {
    box-sizing: border-box;
    margin: 2px 0 12px;
    padding: 10px;
    border: 1px solid #cbded4;
    border-radius: 9px;
    background: #f6faf8;
  }

  .previous-remark-suggestions > header {
    display: grid;
    gap: 2px;
    margin-bottom: 8px;
  }

  .previous-remark-suggestions > header b {
    color: #174f35;
    font-size: 12px;
    line-height: 1.35;
  }

  .previous-remark-suggestions > header small {
    color: #667a70;
    font-size: 10px;
    line-height: 1.35;
  }

  .previous-remark-suggestions > div {
    display: grid;
    gap: 6px;
    max-height: 230px;
    overflow: auto;
  }

  .previous-remark-suggestions button {
    box-sizing: border-box;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(116px, auto) minmax(0, 1fr);
    gap: 4px 9px;
    padding: 8px 9px;
    border: 1px solid #c9d9d1;
    border-radius: 7px;
    background: #fff;
    color: #111;
    text-align: left;
    cursor: pointer;
  }

  .previous-remark-suggestions button:hover,
  .previous-remark-suggestions button:focus-visible {
    border-color: #65a884;
    background: #eef8f2;
  }

  .previous-remark-suggestions code {
    grid-row: 1 / span 2;
    align-self: start;
    padding: 4px 6px;
    border: 1px solid #aed0bd;
    border-radius: 5px;
    background: #edf6f1;
    color: #075f35;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
  }

  .previous-remark-suggestions button > span {
    min-width: 0;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
  }

  .previous-remark-suggestions button > small {
    color: #6a7c73;
    font-size: 9px;
    line-height: 1.3;
  }

  .confirmation-state {
    border: 1px solid #e6bd73;
  }

  .confirmation-state.confirmed {
    border-color: #9bcbb1;
  }

  .save-indicator.has-unconfirmed {
    border-color: #dda94d !important;
    background: #fff7e8 !important;
    color: #895a0a !important;
  }

  /* Единая тонкая обводка кодов, рисков, результатов и состояний. */
  .requirement-code,
  .risk-label,
  .status-pill,
  .status-actions button,
  .applicability-actions button,
  .save-indicator,
  .comparison-status,
  .inspection-status,
  .status-badge,
  .state-pill,
  .result-pill,
  .edition-chip {
    box-sizing: border-box;
    border-width: 1px !important;
    border-style: solid !important;
    border-color: #c9d9d1 !important;
  }

  .requirement-code {
    border-color: #d9e5df !important;
  }

  .risk-label.critical,
  .risk-label.high,
  .status-pill.noncompliant,
  .status-actions button.active[data-status="noncompliant"] {
    border-color: #e7aaa4 !important;
  }

  .risk-label.critical {
    border-color: #5d1111 !important;
  }

  .risk-label.medium {
    border-color: #e5c98d !important;
  }

  .risk-label.low,
  .status-pill.compliant,
  .status-actions button.active[data-status="compliant"],
  .applicability-actions button.active[data-applicability="yes"] {
    border-color: #94c9aa !important;
  }

  .status-pill.unchecked,
  .status-pill.not_applicable,
  .status-actions button.active[data-status="unchecked"] {
    border-color: #c6d1d7 !important;
  }
}

@media screen and (max-width: 1100px) {
  #requirement-edition-control .edition-chip span {
    display: none;
  }

  #requirement-edition-control .edition-chip {
    max-width: 220px;
  }
}

@media screen and (max-width: 760px) {
  .filter-bar {
    top: 68px !important;
  }

  .result-column {
    position: static !important;
    top: auto !important;
  }

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

  .corrective-fields > label,
  .corrective-fields > label:last-child {
    grid-column: auto;
    grid-template-rows: auto 44px auto;
  }
}
