/* Mobile layer: отдельная адаптация интерфейса для телефонов.
   Desktop-стили не трогаем: этот файл включается только через media query. */

.mobile-only {
  display: none;
}

@media (max-width: 768px) {
  :root {
    --mobile-page-padding: 14px;
    --mobile-radius: 22px;
  }

  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  body {
    display: block !important;
    background: #f4f7fb !important;
  }

  .mobile-only {
    display: initial;
  }

  .app {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 100vh !important;
    display: block !important;
    overflow: visible !important;
  }

  .sidebar {
    position: sticky !important;
    top: 0 !important;
    z-index: 30 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px var(--mobile-page-padding) 10px !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(128, 143, 166, 0.18) !important;
    background: rgba(248, 250, 253, 0.94) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    box-shadow: 0 16px 34px rgba(38, 54, 77, 0.08) !important;
  }

  .logo-area {
    padding: 0 !important;
    margin: 0 0 10px !important;
  }

  .logo {
    min-width: 0 !important;
    gap: 10px !important;
  }

  .logo-icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }

  .logo-title {
    font-size: 18px !important;
    line-height: 1.1 !important;
  }

  .logo-subtitle {
    max-width: 250px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
  }

  .mode-switcher {
    margin: 0 !important;
  }

  .mode-toggle {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding: 2px 0 4px !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .mode-toggle::-webkit-scrollbar {
    display: none !important;
  }

  .mode-btn {
    flex: 0 0 auto !important;
    min-width: 126px !important;
    min-height: 44px !important;
    padding: 9px 12px !important;
    border-radius: 16px !important;
    scroll-snap-align: start !important;
  }

  .mode-btn-icon {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
  }

  .mode-btn-label {
    font-size: 12px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
  }

  .sidebar-actions,
  .sidebar-section {
    display: none !important;
  }

  #account-box.account-box {
    margin: 10px 0 0 !important;
    padding: 10px 12px !important;
    border-radius: 16px !important;
  }

  #account-box .account-title,
  #account-box .account-subtitle,
  #account-box .account-access {
    font-size: 12px !important;
  }

  #account-box .account-actions {
    gap: 8px !important;
  }

  #account-box .account-btn {
    min-height: 38px !important;
    border-radius: 13px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
  }

  .main {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    display: block !important;
  }

  .main-header {
    position: relative !important;
    display: block !important;
    padding: 16px var(--mobile-page-padding) 12px !important;
    border-radius: 0 !important;
  }

  .main-title {
    font-size: 21px !important;
    line-height: 1.18 !important;
    letter-spacing: -0.03em !important;
  }

  .main-subtitle {
    margin-top: 8px !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .dataset-meta-line {
    margin-top: 12px !important;
    width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: flex-start !important;
  }

  .dataset-meta-item {
    min-height: 32px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
  }

  .dataset-meta-line[hidden] {
    display: none !important;
  }

  .mode-panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: none !important;
  }

  .mode-panel.active {
    display: block !important;
  }

  #mode-search,
  #mode-protocol,
  #mode-oa_check,
  #mode-account {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .identity-area,
  .conditions-area,
  .results-area,
  .protocol-check-shell,
  .oa-check-shell,
  .oa-compare-shell,
  .oa-sort-shell,
  .account-shell {
    width: calc(100% - var(--mobile-page-padding) * 2) !important;
    max-width: calc(100% - var(--mobile-page-padding) * 2) !important;
    margin: 12px var(--mobile-page-padding) !important;
    padding: 14px !important;
    border-radius: var(--mobile-radius) !important;
    overflow: visible !important;
  }

  .identity-header,
  .conditions-header,
  .results-header,
  .section-header,
  .compact-head,
  .oa-mode-header,
  .protocol-check-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .identity-actions,
  .condition-actions,
  .results-actions,
  .results-toolbar,
  .search-export-actions,
  .protocol-check-actions,
  .oa-actions,
  .oa-sort-actions,
  .cabinet-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: flex-start !important;
  }

  .identity-row,
  .condition-row,
  .condition-table,
  .identity-table,
  .protocol-table-wrapper,
  .oa-table-wrapper,
  .results-table-shell {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .identity-table table,
  .condition-table table {
    min-width: 720px !important;
  }

  .condition-row input,
  .identity-row input,
  .condition-row select,
  .identity-row select,
  textarea {
    min-height: 44px !important;
    font-size: 15px !important;
  }

  .action-bar {
    width: calc(100% - var(--mobile-page-padding) * 2) !important;
    max-width: calc(100% - var(--mobile-page-padding) * 2) !important;
    margin: 12px var(--mobile-page-padding) !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .action-bar button,
  .btn-search,
  .btn-secondary,
  .btn-outline,
  .search-export-btn,
  .results-view-btn {
    min-height: 46px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
  }

  .btn-search {
    grid-column: 1 / -1 !important;
  }

  .results-summary {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .summary-card,
  .mini-stat-card {
    min-width: 0 !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }

  #results-count,
  #search-stats {
    font-size: 13px !important;
  }

  .results-view-toggle {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    padding: 5px !important;
    border-radius: 18px !important;
  }

  .results-view-btn {
    width: 100% !important;
  }

  .search-export-actions {
    width: 100% !important;
  }

  .search-export-btn {
    flex: 1 1 calc(50% - 4px) !important;
  }

  #results-grid.results-grid,
  .results-grid,
  .results-grid.results-grid-table-mode {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    overflow: visible !important;
  }

  .lab-card {
    width: 100% !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 15px !important;
    border-radius: 22px !important;
  }

  .lab-card-top,
  .lab-card-top.compact-top {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .lab-name {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    white-space: normal !important;
    font-size: 15px !important;
    line-height: 1.32 !important;
    letter-spacing: -0.01em !important;
  }


  .lab-name.fsa-lab-link {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    white-space: normal !important;
  }

  .selected-lab-name.fsa-lab-link {
    display: inline-block !important;
    max-width: 100% !important;
  }

  .lab-status {
    flex: 0 0 auto !important;
    border-radius: 999px !important;
    font-size: 11px !important;
  }

  .lab-meta-line,
  .lab-location,
  .reasons-preview,
  .lab-tags {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  .lab-tags {
    display: flex !important;
    gap: 6px !important;
    overflow-x: auto !important;
    padding-bottom: 2px !important;
  }

  .lab-tag {
    flex: 0 0 auto !important;
  }

  .lab-card-side,
  .lab-card-side.compact-side {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  .lab-match,
  .lab-rows-count {
    width: 100% !important;
    margin: 0 !important;
    padding: 10px !important;
    border-radius: 16px !important;
    background: rgba(247, 249, 252, 0.9) !important;
  }

  .lab-card-actions {
    grid-column: 1 / -1 !important;
  }

  .btn-open {
    width: 100% !important;
    min-height: 44px !important;
    border-radius: 16px !important;
  }

  .results-table-shell {
    border-radius: 20px !important;
    border: 1px solid rgba(128, 143, 166, 0.18) !important;
  }

  .results-table {
    min-width: 1040px !important;
  }

  .results-table th,
  .results-table td {
    padding: 10px 12px !important;
    font-size: 12px !important;
  }

  .right-panel,
  .details-panel,
  #details-panel {
    display: none !important;
  }

  .suggest-list,
  .account-suggest-list {
    max-width: calc(100vw - 32px) !important;
    left: 0 !important;
    right: 0 !important;
    font-size: 14px !important;
  }

  .auth-card,
  .verify-email-card,
  .reset-card,
  .account-modal-card {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
    border-radius: 26px !important;
    padding: 22px !important;
  }

  .auth-actions,
  .verify-email-actions,
  .reset-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .account-modal-panel,
  .account-modal-card {
    max-height: calc(100vh - 24px) !important;
    overflow-y: auto !important;
  }

  .account-modal-grid,
  .cabinet-grid,
  .account-lab-grid,
  .oa-grid,
  .oa-compare-grid,
  .oa-sort-grid,
  .protocol-check-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .empty-card {
    padding: 18px !important;
    border-radius: 22px !important;
    font-size: 14px !important;
  }

  .source-note-page {
    margin: 16px var(--mobile-page-padding) 28px !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
  }

  .mobile-back-to-search {
    position: fixed !important;
    right: 14px !important;
    bottom: 14px !important;
    z-index: 40 !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(128, 143, 166, 0.22) !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.94) !important;
    color: #26354d !important;
    box-shadow: 0 16px 36px rgba(38, 54, 77, 0.18) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    font-weight: 700 !important;
  }

  body:not(.mobile-has-results) .mobile-back-to-search {
    display: none !important;
  }
}

/* --------------------------------------------------------------------------
   Mobile fix v2: условия поиска на телефоне показываем карточками, не таблицей.
   На desktop ничего не меняется, потому что правила живут внутри max-width: 768px.
---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .conditions-area {
    overflow: visible !important;
  }

  .conditions-table-wrap,
  .conditions-table-wrap.compact-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .conditions-table,
  .conditions-table.compact-table,
  .conditions-table tbody,
  .conditions-table tr,
  .conditions-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .conditions-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: fixed !important;
  }

  .conditions-table thead {
    display: none !important;
  }

  .conditions-table tbody {
    display: grid !important;
    gap: 12px !important;
  }

  .conditions-table tbody tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 12px !important;
    border: 1px solid rgba(128, 143, 166, 0.18) !important;
    border-radius: 20px !important;
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 14px 28px rgba(38, 54, 77, 0.06) !important;
  }

  .conditions-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.94) !important;
  }

  .conditions-table td {
    padding: 0 !important;
    border: 0 !important;
    vertical-align: top !important;
  }

  .conditions-table td::before {
    display: block !important;
    margin: 0 0 5px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: #718096 !important;
    letter-spacing: 0.01em !important;
  }

  .conditions-table td:nth-child(1) {
    grid-column: 1 / -1 !important;
    width: auto !important;
    text-align: left !important;
    color: #3b6fe0 !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    padding: 0 0 2px !important;
  }

  .conditions-table td:nth-child(1)::before {
    display: inline !important;
    content: "Условие " !important;
    margin: 0 !important;
    color: #3b6fe0 !important;
    font-size: 12px !important;
  }

  .conditions-table td:nth-child(2),
  .conditions-table td:nth-child(3),
  .conditions-table td:nth-child(7) {
    grid-column: 1 / -1 !important;
  }

  .conditions-table td:nth-child(2)::before { content: "Методика / документ" !important; }
  .conditions-table td:nth-child(3)::before { content: "Показатель" !important; }
  .conditions-table td:nth-child(4)::before { content: "Ед. измерения" !important; }
  .conditions-table td:nth-child(5)::before { content: "От" !important; }
  .conditions-table td:nth-child(6)::before { content: "До" !important; }
  .conditions-table td:nth-child(7)::before { content: "Объект / продукция" !important; }
  .conditions-table td:nth-child(8)::before { content: "ОКПД2" !important; }
  .conditions-table td:nth-child(9)::before { content: "ТН ВЭД" !important; }
  .conditions-table td:nth-child(10)::before { content: "Важность" !important; }
  .conditions-table td:nth-child(11)::before { content: "Режим" !important; }

  .conditions-table td:nth-child(12) {
    grid-column: 1 / -1 !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    min-height: 0 !important;
  }

  .conditions-table td:nth-child(12)::before {
    content: "" !important;
    display: none !important;
  }

  .conditions-table td input,
  .conditions-table td select,
  .conditions-table.compact-table td input,
  .conditions-table.compact-table td select {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(128, 143, 166, 0.26) !important;
    border-radius: 14px !important;
    background-color: #ffffff !important;
    font-size: 15px !important;
    line-height: 44px !important;
    box-sizing: border-box !important;
  }

  .conditions-table td select {
    padding-right: 32px !important;
    line-height: normal !important;
  }

  .conditions-table td input:focus,
  .conditions-table td select:focus {
    border-color: rgba(59, 111, 224, 0.7) !important;
    box-shadow: 0 0 0 3px rgba(59, 111, 224, 0.10) !important;
    background-color: #ffffff !important;
  }

  .conditions-table td .input-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    position: relative !important;
  }

  .conditions-table .row-del {
    width: auto !important;
    min-width: 120px !important;
    height: 40px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    opacity: 1 !important;
    background: rgba(231, 76, 60, 0.08) !important;
    color: #b42318 !important;
    font-size: 20px !important;
  }

  .floating-suggest-box {
    max-width: calc(100vw - 28px) !important;
  }
}

@media (max-width: 420px) {
  .conditions-table tbody tr {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .conditions-table td:nth-child(2),
  .conditions-table td:nth-child(3),
  .conditions-table td:nth-child(4),
  .conditions-table td:nth-child(5),
  .conditions-table td:nth-child(6),
  .conditions-table td:nth-child(7),
  .conditions-table td:nth-child(8),
  .conditions-table td:nth-child(9),
  .conditions-table td:nth-child(10) {
    grid-column: 1 / -1 !important;
  }
}


/* Priority conditions: mobile-friendly mandatory/optional selector */
@media (max-width: 768px) {
  .conditions-table td:nth-child(10),
  .conditions-table td:nth-child(11) {
    grid-column: 1 / -1 !important;
  }

  .conditions-table td:nth-child(12) {
    grid-column: 1 / -1 !important;
    display: flex !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 768px) {
  .selected-fsa-link {
    width: 100%;
    margin-top: 12px;
    padding: 11px 14px;
  }
}


/* --------------------------------------------------------------------------
   Desktop guard: кнопка «К поиску» нужна только на телефоне.
   На ПК она полностью скрыта, чтобы не занимать правую часть экрана.
---------------------------------------------------------------------------- */
.mobile-back-to-search {
  display: none !important;
}

@media (max-width: 768px) {
  body.mobile-has-results .mobile-back-to-search {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
  }

  body:not(.mobile-has-results) .mobile-back-to-search {
    display: none !important;
  }
}

@media (min-width: 769px) {
  .mobile-back-to-search,
  #mobile-back-to-search {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}


/* --------------------------------------------------------------------------
   Mobile scroll safety fix for Android Chrome / Poco devices.
   Задача: область результатов должна прокручиваться пальцем на всех телефонах.
   Частая причина проблемы на Android — невидимая правая панель или мобильная
   кнопка перекрывает результаты и забирает касание. Этот блок принудительно
   возвращает нормальную вертикальную прокрутку и отключает события у скрытых
   слоёв.
---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100% !important;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    touch-action: pan-y !important;
    overscroll-behavior-y: auto !important;
  }

  body {
    position: relative !important;
  }

  .app,
  .app-shell,
  .main,
  .main-content,
  .content,
  .workspace,
  .search-page,
  .search-layout,
  .page-shell,
  .shell,
  .layout {
    min-height: 100dvh !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  .results,
  .results-panel,
  .results-list,
  .search-results,
  .search-results-list,
  .lab-results,
  .labs-results,
  .result-list,
  .cards-list,
  #results,
  #resultsList,
  #searchResults,
  #labsResults {
    height: auto !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
    overscroll-behavior-y: auto !important;
  }

  .results * ,
  .results-panel * ,
  .results-list * ,
  .search-results * ,
  .search-results-list * ,
  .lab-results * ,
  .labs-results * ,
  .result-list * ,
  .cards-list * {
    touch-action: pan-y !important;
  }

  .lab-card,
  .result-card,
  .search-result-card,
  .result-item {
    position: relative !important;
    z-index: 1 !important;
    pointer-events: auto !important;
  }

  .selected-lab-panel,
  .details-panel,
  .right-panel,
  .side-panel,
  .summary-panel,
  .selected-lab,
  .lab-details-panel {
    max-width: 100% !important;
    touch-action: pan-y !important;
  }

  .selected-lab-panel:not(.is-open):not(.active):not(.mobile-open),
  .details-panel:not(.is-open):not(.active):not(.mobile-open),
  .right-panel:not(.is-open):not(.active):not(.mobile-open),
  .side-panel:not(.is-open):not(.active):not(.mobile-open),
  .summary-panel:not(.is-open):not(.active):not(.mobile-open) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .mobile-back-to-search,
  .mobile-back-search,
  .mobile-return-to-search,
  .back-to-search-mobile,
  #mobileBackToSearch,
  #backToSearchMobile,
  #mobile-back-to-search {
    width: auto !important;
    max-width: calc(100vw - 32px) !important;
    left: 16px !important;
    right: auto !important;
    pointer-events: auto !important;
    z-index: 40 !important;
  }

  .mobile-back-to-search::before,
  .mobile-back-search::before,
  .mobile-return-to-search::before,
  .back-to-search-mobile::before,
  #mobileBackToSearch::before,
  #backToSearchMobile::before,
  #mobile-back-to-search::before {
    pointer-events: none !important;
  }
}

/* На ПК мобильная кнопка возврата не должна занимать место и перекрывать экран. */
@media (min-width: 769px) {
  .mobile-back-to-search,
  .mobile-back-search,
  .mobile-return-to-search,
  .back-to-search-mobile,
  #mobileBackToSearch,
  #backToSearchMobile,
  #mobile-back-to-search {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }
}


/* Mobile: компактное отображение совпадений по методикам под результатами. */
@media (max-width: 768px) {
  .right-panel {
    display: block !important;
    width: calc(100% - var(--mobile-page-padding, 14px) * 2) !important;
    min-width: 0 !important;
    max-width: calc(100% - var(--mobile-page-padding, 14px) * 2) !important;
    margin: 12px var(--mobile-page-padding, 14px) 28px !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .right-panel > .panel-section:first-child {
    display: none !important;
  }

  .right-panel .selected-lab {
    display: block !important;
    padding: 16px !important;
    border: 1px solid rgba(128, 143, 166, 0.18) !important;
    border-radius: 24px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 16px 34px rgba(38, 54, 77, 0.08) !important;
  }

  .matches-summary-card {
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 7px !important;
  }

  .matches-summary-card > div {
    padding: 9px 7px !important;
  }

  .method-match-group summary {
    padding: 12px !important;
  }

  .method-match-body {
    padding: 10px !important;
  }

  .match-row-card {
    padding: 11px !important;
    border-radius: 17px !important;
  }

  .match-row-meta {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .match-row-meta span,
  .match-field-chip {
    justify-content: flex-start !important;
    width: 100% !important;
    white-space: normal !important;
  }
}


/* --------------------------------------------------------------------------
   Mobile scroll fix v2: Android Chrome / Poco.
   В desktop styles.css есть более сильное правило #mode-search .results-area
   с внутренней прокруткой. На некоторых Android это превращает область
   результатов в "мертвую" зону. Здесь специально используем такие же или
   более точные селекторы, чтобы на телефоне прокручивалась вся страница,
   а не вложенный scroll-контейнер результатов.
---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  html,
  body {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    touch-action: auto !important;
  }

  .app,
  .main {
    height: auto !important;
    min-height: 100vh !important;
    max-height: none !important;
    overflow: visible !important;
    touch-action: auto !important;
  }

  #mode-search,
  #mode-search:not([hidden]),
  #mode-search.mode-panel,
  #mode-search.mode-panel.active {
    display: block !important;
    flex: none !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    touch-action: auto !important;
  }

  #mode-search .identity-area,
  #mode-search .conditions-area,
  #mode-search .action-bar,
  #mode-search .source-note-page,
  #mode-search .results-area {
    flex: none !important;
  }

  #mode-search .results-area,
  body.is-mobile #mode-search .results-area,
  html.is-mobile #mode-search .results-area {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: auto !important;
    overscroll-behavior: auto !important;
    touch-action: auto !important;
  }

  #mode-search #results-grid,
  #mode-search .results-grid,
  #mode-search .lab-card,
  #mode-search .lab-card * {
    touch-action: auto !important;
  }

  #mode-search .results-table-shell {
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x pan-y !important;
  }

  /* Защита от невидимых слоёв поверх списка результатов. */
  .right-panel[hidden],
  .details-panel[hidden],
  .selected-lab[hidden],
  .account-modal[hidden],
  .auth-modal[hidden],
  .modal[hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  /* Кнопка возврата не должна растягиваться невидимым слоем. */
  #mobile-back-to-search,
  .mobile-back-to-search {
    width: auto !important;
    height: 44px !important;
    min-width: 0 !important;
    max-width: calc(100vw - 32px) !important;
    left: 16px !important;
    right: auto !important;
    bottom: max(14px, env(safe-area-inset-bottom)) !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

/* --------------------------------------------------------------------------
   Mobile first-impression fix: authorization / registration + first-run help.
   Цель: на телефонах окно входа/регистрации и подсказки всегда находятся
   по центру, не вылезают за экран и имеют доступную кнопку действия.
---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  body.auth-locked,
  body.help-modal-open,
  body.account-modal-open {
    overflow: hidden !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
  }

  .auth-gate,
  .email-verification-gate,
  .account-modal,
  .help-modal-root {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .auth-gate.hidden,
  .email-verification-gate.hidden,
  .account-modal.hidden,
  .help-modal-root.hidden {
    display: none !important;
  }

  .auth-gate::before,
  .email-verification-gate::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
      radial-gradient(circle at 18% 12%, rgba(68, 122, 238, 0.17), transparent 34%),
      radial-gradient(circle at 84% 86%, rgba(42, 112, 228, 0.10), transparent 32%),
      rgba(15, 23, 42, .42);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .auth-card,
  .auth-card-minimal,
  .email-verification-card,
  .account-modal-dialog {
    position: relative !important;
    width: min(100%, 430px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    margin: 0 auto !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    transform: none !important;
  }

  .auth-panel,
  .auth-panel-minimal,
  .email-verification-panel {
    width: 100% !important;
    max-height: calc(100dvh - 24px) !important;
    padding: 20px 16px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
  }

  .auth-panel-head.compact,
  .email-verification-head {
    margin-bottom: 14px !important;
    text-align: left !important;
  }

  .auth-brand {
    margin-bottom: 7px !important;
    font-size: 11px !important;
  }

  .auth-panel-title {
    font-size: clamp(22px, 7vw, 26px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.04em !important;
  }

  .auth-panel-subtitle {
    margin-top: 6px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
  }

  .auth-tabs {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    margin-bottom: 10px !important;
    padding: 5px !important;
    border-radius: 18px !important;
  }

  .auth-tab-btn {
    width: 100% !important;
    min-height: 40px !important;
    padding: 9px 8px !important;
    font-size: 13px !important;
    border-radius: 14px !important;
  }

  .auth-form {
    gap: 10px !important;
  }

  .auth-field {
    gap: 5px !important;
  }

  .auth-field label,
  .auth-label-row label {
    font-size: 12px !important;
  }

  .auth-label-row {
    gap: 8px !important;
    align-items: center !important;
  }

  .auth-field input {
    min-height: 42px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
    font-size: 16px !important; /* не даёт iOS/Android увеличивать страницу при фокусе */
  }

  .password-wrap input {
    padding-right: 82px !important;
  }

  .password-toggle {
    right: 6px !important;
    padding: 6px 7px !important;
    font-size: 11px !important;
  }

  .auth-message {
    min-height: 18px !important;
    margin-bottom: 8px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .auth-checks {
    gap: 8px !important;
    margin-top: 0 !important;
  }

  .auth-check {
    gap: 9px !important;
    font-size: 12px !important;
    line-height: 1.38 !important;
  }

  .auth-check input {
    width: 17px !important;
    height: 17px !important;
    margin-top: 1px !important;
  }

  .field-hint {
    min-height: 14px !important;
    font-size: 11px !important;
  }

  .auth-submit {
    width: 100% !important;
    min-height: 44px !important;
    padding: 11px 14px !important;
    margin-top: 2px !important;
    border-radius: 15px !important;
    font-size: 14px !important;
  }

  .auth-help.compact {
    margin-top: 10px !important;
    font-size: 12px !important;
    text-align: center !important;
  }

  .auth-legal-links {
    gap: 8px !important;
    margin-top: 12px !important;
    padding-top: 12px !important;
    justify-content: center !important;
    font-size: 11px !important;
    text-align: center !important;
  }

  .auth-legal-links a {
    padding: 4px 2px !important;
  }

  .email-verification-box,
  .email-verification-steps,
  .email-verification-actions,
  .email-verification-secondary-actions {
    width: 100% !important;
  }

  .email-verification-secondary-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .auth-secondary-btn {
    min-height: 40px !important;
  }

  .help-modal-root {
    z-index: 10000 !important;
  }

  .help-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    background:
      radial-gradient(circle at 18% 12%, rgba(55, 111, 224, 0.16), transparent 36%),
      rgba(15, 23, 42, 0.38) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
  }

  .help-modal-dialog {
    position: relative !important;
    width: min(100%, 430px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    margin: 0 auto !important;
    padding: 18px 14px 14px !important;
    border-radius: 24px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  .help-modal-dialog.is-visible {
    transform: none !important;
    opacity: 1 !important;
  }

  .help-modal-close {
    top: 12px !important;
    right: 12px !important;
    width: 34px !important;
    height: 34px !important;
    z-index: 2 !important;
  }

  .help-modal-head {
    padding-right: 42px !important;
    margin-bottom: 12px !important;
  }

  .help-modal-eyebrow {
    margin-bottom: 6px !important;
    font-size: 10px !important;
  }

  .help-modal-title {
    font-size: clamp(21px, 6.5vw, 25px) !important;
    line-height: 1.14 !important;
  }

  .help-modal-lead {
    margin-top: 8px !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  .help-steps-grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 12px 0 10px !important;
  }

  .help-step-card {
    min-height: 0 !important;
    grid-template-columns: 34px 1fr !important;
    gap: 10px !important;
    padding: 11px !important;
    border-radius: 18px !important;
  }

  .help-step-number {
    width: 30px !important;
    height: 30px !important;
    border-radius: 12px !important;
    font-size: 10px !important;
  }

  .help-step-title {
    font-size: 13px !important;
  }

  .help-step-text {
    margin-top: 4px !important;
    font-size: 11.5px !important;
    line-height: 1.42 !important;
  }

  .help-modal-note {
    padding: 10px 11px !important;
    border-radius: 16px !important;
    font-size: 11.5px !important;
    line-height: 1.42 !important;
  }

  .help-modal-footer {
    position: sticky !important;
    bottom: -14px !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin: 12px -14px -14px !important;
    padding: 12px 14px max(14px, env(safe-area-inset-bottom)) !important;
    border-top: 1px solid rgba(214, 224, 242, 0.92) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 -14px 30px rgba(15, 23, 42, 0.08) !important;
  }

  .help-modal-check {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .help-modal-primary {
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    border-radius: 15px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 380px), (max-height: 700px) {
  .auth-panel,
  .auth-panel-minimal,
  .email-verification-panel {
    padding: 16px 13px !important;
  }

  .auth-panel-title {
    font-size: 21px !important;
  }

  .auth-panel-subtitle,
  .auth-field label,
  .auth-check,
  .auth-help.compact {
    font-size: 11.5px !important;
  }

  .auth-form {
    gap: 8px !important;
  }

  .auth-field input {
    min-height: 40px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  .auth-checks {
    gap: 6px !important;
  }

  .auth-legal-links {
    margin-top: 10px !important;
    padding-top: 10px !important;
  }

  .help-modal-dialog {
    padding: 15px 12px 12px !important;
  }

  .help-step-card {
    padding: 10px !important;
  }

  .help-modal-note {
    display: none !important;
  }

  .help-modal-footer {
    margin-left: -12px !important;
    margin-right: -12px !important;
    margin-bottom: -12px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* --------------------------------------------------------------------------
   Mobile mode switch + protocol lab picker fix.
   1) На мобильных устройствах скрытые режимы должны быть реально скрыты.
      Ранее отдельное правило для #mode-search могло принудительно показывать
      поиск даже после перехода в «Проверку ОА» или «Проверку протокола».
   2) Блок выбора лаборатории в «Проверке протокола» превращается в компактную
      карточку и не выходит за ширину телефона.
---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  /* Главное правило: если режим скрыт атрибутом hidden, он не должен занимать
     место и не должен перекрывать текущую функцию. */
  .mode-page[hidden],
  #mode-search[hidden],
  #mode-protocol[hidden],
  #mode-oa-check[hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Активный режим снова становится обычным блоком. */
  #mode-search:not([hidden]),
  #mode-protocol:not([hidden]),
  #mode-oa-check:not([hidden]) {
    position: relative !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
  }

  /* На мобильном экране внутри конкретного активного режима не должны
     просвечивать области поиска лабораторий/условий из другого режима. */
  body:not(.mode-search) #mode-search,
  .app:not(.mode-search) #mode-search,
  body:not(.mode-protocol) #mode-protocol,
  .app:not(.mode-protocol) #mode-protocol,
  body:not(.mode-oa-check) #mode-oa-check,
  .app:not(.mode-oa-check) #mode-oa-check {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .app.mode-search #mode-search:not([hidden]),
  .app.mode-protocol #mode-protocol:not([hidden]),
  .app.mode-oa-check #mode-oa-check:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Проверка протокола: вся страница должна помещаться в ширину телефона. */
  #mode-protocol,
  #mode-protocol.protocol-page,
  #mode-protocol .protocol-card,
  #mode-protocol .protocol-identity-area,
  #mode-protocol .conditions-area,
  #mode-protocol .results-area,
  #mode-protocol .protocol-results-area {
    width: calc(100% - var(--mobile-page-padding, 14px) * 2) !important;
    max-width: calc(100% - var(--mobile-page-padding, 14px) * 2) !important;
    min-width: 0 !important;
    margin-left: var(--mobile-page-padding, 14px) !important;
    margin-right: var(--mobile-page-padding, 14px) !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  #mode-protocol.protocol-page {
    margin-top: 0 !important;
    padding: 0 0 28px !important;
  }

  /* Внутренние карточки уже имеют внешний отступ через общий контейнер. */
  #mode-protocol .protocol-card,
  #mode-protocol .conditions-area,
  #mode-protocol .results-area,
  #mode-protocol .protocol-results-area {
    margin-top: 12px !important;
    margin-bottom: 12px !important;
    padding: 14px !important;
    border-radius: var(--mobile-radius, 22px) !important;
  }

  /* Шапка выбора лаборатории в проверке протокола. */
  #mode-protocol .protocol-lab-picker,
  #mode-protocol .lab-picker.protocol-lab-picker {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  #mode-protocol .protocol-lab-picker .lab-table-head {
    display: none !important;
  }

  #mode-protocol .protocol-lab-picker #protocol-lab-row,
  #mode-protocol #protocol-lab-row {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  #mode-protocol .protocol-lab-picker .single-lab-row,
  #mode-protocol .single-lab-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 12px !important;
    border: 1px solid rgba(128, 143, 166, 0.18) !important;
    border-radius: 20px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 14px 28px rgba(38, 54, 77, 0.06) !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  #mode-protocol .protocol-lab-picker .lab-col,
  #mode-protocol .single-lab-row .lab-col,
  #mode-protocol .single-lab-row .lab-col.name,
  #mode-protocol .single-lab-row .lab-col.ra,
  #mode-protocol .single-lab-row .lab-col.inn,
  #mode-protocol .single-lab-row .lab-col.addr {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    grid-column: 1 / -1 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  #mode-protocol .single-lab-row .lab-col::before {
    display: block !important;
    margin: 0 0 5px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    color: #718096 !important;
  }

  #mode-protocol .single-lab-row .lab-col.name::before { content: "Лаборатория" !important; }
  #mode-protocol .single-lab-row .lab-col.ra::before { content: "№ записи в РАЛ" !important; }
  #mode-protocol .single-lab-row .lab-col.inn::before { content: "ИНН" !important; }
  #mode-protocol .single-lab-row .lab-col.addr::before { content: "Адрес / регион" !important; }

  #mode-protocol .single-lab-row .input-wrap,
  #mode-protocol .single-lab-row input,
  #mode-protocol .single-lab-row select,
  #mode-protocol .single-lab-row textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #mode-protocol .single-lab-row input {
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 12px !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    background: #fff !important;
  }

  #mode-protocol .selected-labs-count,
  #mode-protocol #protocol-selected-lab-count {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 10px !important;
    padding: 10px 12px !important;
    border-radius: 16px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    box-sizing: border-box !important;
  }

  /* Таблица строк протокола тоже не должна распирать экран. Она остаётся
     горизонтально прокручиваемой, но сама обёртка не выходит за viewport. */
  #mode-protocol .protocol-table-wrap,
  #mode-protocol .conditions-table-wrap.protocol-table-wrap,
  #mode-protocol .protocol-table-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    box-sizing: border-box !important;
  }

  #mode-protocol .protocol-table {
    min-width: 760px !important;
  }

  #mode-protocol .protocol-action-bar,
  #mode-protocol .compact-action-bar.protocol-action-bar {
    width: calc(100% - var(--mobile-page-padding, 14px) * 2) !important;
    max-width: calc(100% - var(--mobile-page-padding, 14px) * 2) !important;
    margin-left: var(--mobile-page-padding, 14px) !important;
    margin-right: var(--mobile-page-padding, 14px) !important;
    box-sizing: border-box !important;
  }

  #mode-protocol .protocol-action-bar .search-stats,
  #mode-protocol #protocol-stats {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  /* Подсказки в проверке протокола не должны быть шире экрана. */
  .protocol-suggest-box,
  #protocol-lab-suggests,
  #protocol-condition-suggests,
  [data-protocol-suggest-box],
  [data-suggest-owner="protocol"] {
    max-width: calc(100vw - 28px) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}


/* --------------------------------------------------------------------------
   V3 FIX: mobile protocol tab natural scroll + card layout
   Причина: на некоторых Android-устройствах горизонтальная таблица и область
   выбора лаборатории перехватывали касания. В результате страница как будто
   становилась "мёртвой" в зоне проверки протокола.

   Решение:
   1) на мобильнике вкладка проверки протокола прокручивается всей страницей;
   2) таблица строк протокола превращается в вертикальные карточки;
   3) выбор лаборатории не создаёт широкую невидимую область;
   4) подсказки ограничены по высоте и не перекрывают весь экран.
---------------------------------------------------------------------------- */
@media (max-width: 768px) {
  html,
  body,
  .app,
  .main,
  #mode-protocol,
  #mode-protocol * {
    -webkit-tap-highlight-color: transparent;
  }

  html,
  body {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-y !important;
  }

  .app,
  .main,
  .mode-page,
  #mode-protocol.protocol-page {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Вкладка проверки протокола должна быть обычной вертикальной страницей. */
  #mode-protocol:not([hidden]) {
    display: block !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 0 28px !important;
    margin: 0 !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  /* Карточки внутри протокола не должны быть внутренними scroll-контейнерами. */
  #mode-protocol .protocol-card,
  #mode-protocol .protocol-identity-area,
  #mode-protocol .conditions-area,
  #mode-protocol .protocol-results-area,
  #mode-protocol .results-area,
  #mode-protocol .action-bar,
  #mode-protocol .protocol-action-bar {
    width: calc(100% - 28px) !important;
    max-width: calc(100vw - 28px) !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  #mode-protocol .protocol-card,
  #mode-protocol .conditions-area,
  #mode-protocol .protocol-results-area,
  #mode-protocol .results-area {
    padding: 14px !important;
    border-radius: 22px !important;
  }

  #mode-protocol .identity-header,
  #mode-protocol .conditions-header,
  #mode-protocol .results-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
  }

  #mode-protocol .identity-actions,
  #mode-protocol .conditions-header .add-row-btn,
  #mode-protocol .add-row-btn {
    width: 100% !important;
    max-width: 100% !important;
  }

  #mode-protocol .identity-actions .btn-secondary-sm,
  #mode-protocol .add-row-btn,
  #mode-protocol .btn-search,
  #mode-protocol .btn-clear {
    min-height: 44px !important;
    border-radius: 15px !important;
    justify-content: center !important;
  }

  /* Выбор лаборатории: строго одна колонка, без широких невидимых grid-слоёв. */
  #mode-protocol .protocol-lab-picker,
  #mode-protocol .lab-picker,
  #mode-protocol #protocol-lab-row,
  #mode-protocol .single-lab-row,
  #mode-protocol .lab-row {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    touch-action: pan-y !important;
  }

  #mode-protocol .protocol-lab-picker .lab-table-head,
  #mode-protocol .lab-table-head {
    display: none !important;
  }

  #mode-protocol .single-lab-row {
    padding: 12px !important;
    border: 1px solid rgba(128, 143, 166, 0.18) !important;
    border-radius: 20px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 14px 28px rgba(38, 54, 77, 0.06) !important;
  }

  #mode-protocol .single-lab-row .lab-col,
  #mode-protocol .single-lab-row .lab-col.name,
  #mode-protocol .single-lab-row .lab-col.ra,
  #mode-protocol .single-lab-row .lab-col.inn,
  #mode-protocol .single-lab-row .lab-col.addr {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  #mode-protocol .single-lab-row .lab-col.num,
  #mode-protocol .single-lab-row .lab-col.del {
    display: none !important;
  }

  #mode-protocol .single-lab-row .lab-col::before {
    display: block !important;
    margin: 0 0 5px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    color: #718096 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }

  #mode-protocol .single-lab-row .lab-col.name::before { content: "Лаборатория" !important; }
  #mode-protocol .single-lab-row .lab-col.ra::before { content: "№ записи в РАЛ" !important; }
  #mode-protocol .single-lab-row .lab-col.inn::before { content: "ИНН" !important; }
  #mode-protocol .single-lab-row .lab-col.addr::before { content: "Адрес / регион" !important; }

  #mode-protocol .single-lab-row .input-wrap,
  #mode-protocol .single-lab-row input,
  #mode-protocol .single-lab-row select,
  #mode-protocol .single-lab-row textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #mode-protocol .single-lab-row input,
  #mode-protocol .protocol-table input,
  #mode-protocol .protocol-table select,
  #mode-protocol .protocol-table textarea {
    min-height: 44px !important;
    border-radius: 14px !important;
    font-size: 15px !important;
    background: #fff !important;
  }

  /* Главная правка: таблица строк протокола на мобильнике становится карточками.
     Так Android больше не попадает в горизонтальный scroll-контейнер. */
  #mode-protocol .conditions-table-wrap,
  #mode-protocol .compact-table-wrap,
  #mode-protocol .protocol-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    touch-action: pan-y !important;
  }

  #mode-protocol .protocol-table,
  #mode-protocol .conditions-table.protocol-table,
  #mode-protocol .protocol-table tbody,
  #mode-protocol .protocol-table tr,
  #mode-protocol .protocol-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  #mode-protocol .protocol-table thead {
    display: none !important;
  }

  #mode-protocol .protocol-table tbody tr {
    position: relative !important;
    margin: 0 0 12px !important;
    padding: 12px !important;
    border: 1px solid rgba(128, 143, 166, 0.18) !important;
    border-radius: 20px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 14px 28px rgba(38, 54, 77, 0.06) !important;
  }

  #mode-protocol .protocol-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.98) !important;
  }

  #mode-protocol .protocol-table td {
    padding: 0 0 10px !important;
    border: 0 !important;
    vertical-align: top !important;
  }

  #mode-protocol .protocol-table td:last-child {
    padding-bottom: 0 !important;
  }

  #mode-protocol .protocol-table td::before {
    display: block !important;
    margin: 0 0 5px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    color: #718096 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }

  #mode-protocol .protocol-table td:nth-child(1)::before { content: "Строка" !important; }
  #mode-protocol .protocol-table td:nth-child(2)::before { content: "Методика / документ" !important; }
  #mode-protocol .protocol-table td:nth-child(3)::before { content: "Показатель" !important; }
  #mode-protocol .protocol-table td:nth-child(4)::before { content: "Ед. измерения" !important; }
  #mode-protocol .protocol-table td:nth-child(5)::before { content: "Результат" !important; }
  #mode-protocol .protocol-table td:nth-child(6)::before { content: "Объект / продукция" !important; }
  #mode-protocol .protocol-table td:nth-child(7)::before { content: "ОКПД2" !important; }
  #mode-protocol .protocol-table td:nth-child(8)::before { content: "ТН ВЭД ЕАЭС" !important; }
  #mode-protocol .protocol-table td:nth-child(9)::before { content: "Статус" !important; }
  #mode-protocol .protocol-table td:nth-child(10)::before { content: "Действие" !important; }

  #mode-protocol .protocol-table td.row-num {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 5px 10px !important;
    margin: 0 0 10px !important;
    border-radius: 999px !important;
    background: rgba(59, 111, 224, 0.08) !important;
    color: #2f61d5 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
  }

  #mode-protocol .protocol-table td.row-num::before {
    display: none !important;
  }

  #mode-protocol .protocol-table .input-wrap,
  #mode-protocol .protocol-table input,
  #mode-protocol .protocol-table select,
  #mode-protocol .protocol-table textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #mode-protocol .protocol-check-col,
  #mode-protocol .protocol-status-cell {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-content: flex-start !important;
  }

  #mode-protocol .row-actions {
    width: 100% !important;
    text-align: left !important;
  }

  #mode-protocol .row-del {
    opacity: 1 !important;
    pointer-events: auto !important;
    width: 100% !important;
    height: 42px !important;
    border-radius: 14px !important;
    background: rgba(231, 76, 60, 0.08) !important;
    color: #b42318 !important;
    font-size: 20px !important;
  }

  #mode-protocol .protocol-action-bar,
  #mode-protocol .compact-action-bar.protocol-action-bar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  #mode-protocol .protocol-action-bar .btn-search,
  #mode-protocol .protocol-action-bar .btn-clear,
  #mode-protocol #protocol-stats,
  #mode-protocol .search-stats {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    text-align: left !important;
  }

  #mode-protocol .protocol-summary-grid {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  #mode-protocol .protocol-report-list,
  #mode-protocol .protocol-report-card,
  #mode-protocol .protocol-report-main,
  #mode-protocol .protocol-report-message,
  #mode-protocol .protocol-report-meta {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  /* Подсказки не должны становиться прозрачной стеной поверх страницы. */
  .floating-suggest-box,
  .protocol-suggest-box,
  #protocol-lab-suggests,
  #protocol-condition-suggests,
  [data-protocol-suggest-box],
  [data-suggest-owner="protocol"] {
    max-width: calc(100vw - 28px) !important;
    max-height: min(46dvh, 360px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain !important;
  }

  .floating-suggest-box:empty,
  .protocol-suggest-box:empty,
  #protocol-lab-suggests:empty,
  #protocol-condition-suggests:empty {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* === FIX: mobile search pagination === */
@media (max-width: 768px) {
  .results-pagination {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 12px !important;
    overflow: visible !important;
  }

  .pagination-panel {
    display: none !important;
  }

  .pagination-mobile-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .pagination-more-btn {
    width: 100% !important;
    max-width: 100% !important;
    touch-action: manipulation !important;
  }
}
/* === /FIX: mobile search pagination === */


/* === BRAND SYMBOL: mobile sizes === */
@media (max-width: 768px) {
  .logo .logo-symbol-img,
  .logo-icon.logo-symbol-img {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    object-fit: contain !important;
    display: block !important;
  }

  .auth-logo-symbol {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
  }
}
/* === /BRAND SYMBOL: mobile sizes === */


/* === COLLAPSIBLE PANELS: mobile safety === */
@media (max-width: 768px) {
  .sidebar-collapse-btn,
  .details-collapse-btn {
    display: none !important;
  }

  .app.sidebar-collapsed,
  .app.right-panel-collapsed {
    overflow: visible !important;
  }
}
/* === /COLLAPSIBLE PANELS: mobile safety === */

/* === Lab claim contacts mobile === */
@media (max-width: 768px) {
  .claim-contacts-block,
  .cabinet-contact-form {
    padding: 14px !important;
    border-radius: 16px !important;
  }
  .cabinet-check {
    font-size: 13px !important;
  }
  .cabinet-contact-form .cabinet-grid-2,
  .claim-contacts-block .cabinet-grid-2 {
    grid-template-columns: 1fr !important;
  }
}
/* === /Lab claim contacts mobile === */

/* === ACCOUNT CABINET TABS MOBILE v1 === */
@media (max-width: 768px) {
  .account-cabinet-dialog {
    width: calc(100vw - 14px) !important;
    max-width: calc(100vw - 14px) !important;
    max-height: calc(100dvh - 14px) !important;
    min-height: 0 !important;
    border-radius: 20px !important;
  }

  .account-cabinet-header {
    padding: 16px 16px 12px !important;
  }

  .account-cabinet-body {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
  }

  .account-tabs {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(226, 232, 240, .9) !important;
    padding: 10px 10px 9px !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: 8px !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .account-tab-btn {
    width: auto !important;
    min-width: max-content !important;
    min-height: 42px !important;
    padding: 8px 11px !important;
    border-radius: 14px !important;
  }

  .account-tab-btn small,
  .account-tab-icon {
    display: none !important;
  }

  .account-tab-content {
    min-height: 0 !important;
  }

  .account-tab-panel {
    padding: 12px !important;
  }

  .account-panel-card {
    border-radius: 18px !important;
    padding: 14px !important;
  }

  .account-claim-row > summary {
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
  }

  .account-claim-main strong,
  .account-claim-main small {
    white-space: normal !important;
  }

  .account-claim-details-grid {
    grid-template-columns: 1fr !important;
  }

  .account-new-claim-box > summary {
    align-items: flex-start !important;
  }

  .account-placeholder-card {
    display: block !important;
  }

  .account-placeholder-icon {
    margin-bottom: 10px !important;
  }
}
/* === /ACCOUNT CABINET TABS MOBILE v1 === */

/* === Account claim revision mobile === */
@media (max-width: 768px) {
  .account-suggest-list {
    max-width: calc(100vw - 20px) !important;
    max-height: min(280px, 46vh) !important;
    border-radius: 16px !important;
  }
}
/* === /Account claim revision mobile === */

/* --------------------------------------------------------------------------
   Mobile help modal readability fix.
   The first-run help cards must never be vertically compressed on Android.
   We let the whole modal scroll and keep every step card at natural height.
---------------------------------------------------------------------------- */
@media (max-width: 760px) {
  .help-modal-root:not(.hidden) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px !important;
    overflow: hidden !important;
  }

  .help-modal-dialog {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 !important;
    border-radius: 24px !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
  }

  .help-modal-head {
    display: block !important;
    padding: 22px 18px 10px !important;
    padding-right: 56px !important;
    margin: 0 !important;
  }

  .help-modal-eyebrow {
    margin: 0 0 7px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
  }

  .help-modal-title {
    margin: 0 !important;
    font-size: clamp(24px, 7vw, 30px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.045em !important;
  }

  .help-modal-lead {
    margin: 10px 0 0 !important;
    font-size: 14px !important;
    line-height: 1.48 !important;
  }

  .help-steps-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-rows: auto !important;
    align-items: stretch !important;
    gap: 10px !important;
    flex: none !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 12px 18px 14px !important;
  }

  .help-step-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 13px 12px !important;
    border-radius: 18px !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .help-step-card > * {
    min-width: 0 !important;
  }

  .help-step-number {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    border-radius: 13px !important;
    font-size: 10px !important;
    line-height: 1 !important;
  }

  .help-step-title,
  .help-step-text {
    position: static !important;
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
    word-break: normal !important;
  }

  .help-step-title {
    font-size: 14px !important;
    line-height: 1.25 !important;
  }

  .help-step-text {
    margin-top: 5px !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
  }

  .help-modal-note {
    display: flex !important;
    margin: 0 18px 12px !important;
    padding: 12px 13px !important;
    border-radius: 17px !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  .help-modal-footer {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 4 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 11px !important;
    margin: 0 !important;
    padding: 12px 18px max(18px, env(safe-area-inset-bottom)) !important;
    border-top: 1px solid rgba(214, 224, 242, 0.95) !important;
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow: 0 -14px 30px rgba(15, 23, 42, 0.08) !important;
  }

  .help-modal-check {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  .help-modal-primary {
    width: 100% !important;
    min-width: 0 !important;
    height: 46px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 380px) {
  .help-modal-title {
    font-size: 24px !important;
  }

  .help-modal-lead {
    font-size: 13px !important;
  }

  .help-step-title {
    font-size: 13px !important;
  }

  .help-step-text {
    font-size: 11.6px !important;
  }
}
/* === /Mobile help modal readability fix === */

/* === Mobile compact auth + result focus v20260518 === */
@media (max-width: 768px) {
  .auth-gate,
  .email-verification-gate {
    align-items: center !important;
    justify-content: center !important;
    padding: max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
  }

  .auth-card,
  .auth-card-minimal,
  .email-verification-card {
    width: min(100%, 420px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
    border-radius: 23px !important;
    overflow: hidden !important;
  }

  .auth-panel,
  .auth-panel-minimal,
  .email-verification-panel {
    max-height: calc(100dvh - 20px) !important;
    padding: 18px 15px max(16px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .auth-panel-head.compact,
  .email-verification-head {
    margin-bottom: 12px !important;
  }

  .auth-brand {
    margin-bottom: 6px !important;
  }

  .auth-panel-title {
    font-size: clamp(21px, 6.2vw, 25px) !important;
    line-height: 1.1 !important;
  }

  .auth-tabs {
    margin: 10px 0 8px !important;
  }

  .auth-form {
    gap: 8px !important;
  }

  .auth-field input {
    min-height: 40px !important;
    padding: 9px 12px !important;
  }

  .auth-checks {
    gap: 6px !important;
  }

  .auth-check {
    font-size: 11.5px !important;
  }

  .auth-submit {
    min-height: 42px !important;
  }

  body.search-results-focus #mode-search .identity-area,
  body.search-results-focus #mode-search .conditions-area,
  body.search-results-focus #mode-search .action-bar {
    display: none !important;
  }

  body.search-results-focus #mode-search .results-area {
    margin-top: 10px !important;
  }

  .results-search-summary {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-bottom: 12px !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }

  .results-search-summary[hidden] {
    display: none !important;
  }

  .results-search-summary-text {
    white-space: normal !important;
    overflow: visible !important;
  }

  .results-edit-search-btn {
    width: 100% !important;
    min-height: 40px !important;
  }

  .mobile-back-to-search {
    min-height: 44px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    font-size: 13px !important;
  }
}


/* === Compact auth + results focus v2 — stronger first impression fix === */
.auth-gate:not(.hidden),
.email-verification-gate:not(.hidden) {
  padding: 10px !important;
  overflow-y: auto !important;
  align-items: center !important;
}

.auth-card,
.auth-card-minimal,
.email-verification-card {
  width: min(100%, 392px) !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - 20px) !important;
  overflow: hidden !important;
  border-radius: 22px !important;
}

.auth-panel,
.auth-panel-minimal,
.email-verification-panel {
  padding: 20px 20px 16px !important;
  max-height: calc(100dvh - 20px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-gutter: stable !important;
}

.auth-panel-head.compact,
.email-verification-head {
  margin-bottom: 10px !important;
}

.auth-brand {
  margin-bottom: 6px !important;
  font-size: 10.5px !important;
  letter-spacing: .075em !important;
}

.auth-logo-symbol {
  width: 22px !important;
  height: 22px !important;
}

.auth-panel-title {
  font-size: 24px !important;
  line-height: 1.06 !important;
  letter-spacing: -0.045em !important;
}

.auth-panel-subtitle {
  margin-top: 5px !important;
  font-size: 12.5px !important;
  line-height: 1.35 !important;
}

.auth-tabs {
  margin: 10px 0 8px !important;
  padding: 4px !important;
  border-radius: 16px !important;
}

.auth-tab-btn {
  min-height: 34px !important;
  padding: 7px 10px !important;
  border-radius: 12px !important;
  font-size: 12.5px !important;
}

.auth-message {
  min-height: 10px !important;
  margin-bottom: 6px !important;
  font-size: 11.5px !important;
  line-height: 1.3 !important;
}

.auth-form {
  gap: 8px !important;
}

.auth-field {
  gap: 4px !important;
}

.auth-field label,
.auth-label-row label {
  font-size: 11.5px !important;
  line-height: 1.2 !important;
}

.auth-field input {
  min-height: 38px !important;
  padding: 8px 11px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
}

.password-wrap input {
  padding-right: 78px !important;
}

.password-toggle {
  right: 5px !important;
  padding: 5px 6px !important;
  font-size: 10.5px !important;
}

.auth-checks {
  gap: 6px !important;
  margin-top: 0 !important;
}

.auth-check {
  gap: 8px !important;
  font-size: 11.3px !important;
  line-height: 1.32 !important;
}

.auth-check input {
  width: 15px !important;
  height: 15px !important;
  margin-top: 1px !important;
}

.auth-submit {
  min-height: 40px !important;
  padding: 9px 13px !important;
  margin-top: 1px !important;
  border-radius: 13px !important;
  font-size: 13.5px !important;
}

.auth-help.compact {
  margin-top: 8px !important;
  font-size: 11.5px !important;
}

.auth-legal-links {
  gap: 8px !important;
  margin-top: 9px !important;
  padding-top: 9px !important;
  font-size: 10.5px !important;
}

/* После успешного поиска форма сворачивается на всех экранах. */
body.search-results-focus #mode-search .identity-area,
body.search-results-focus #mode-search .conditions-area,
body.search-results-focus #mode-search .action-bar {
  display: none !important;
}

body.search-results-focus #mode-search .results-area {
  margin-top: 8px !important;
  padding-top: 0 !important;
}

body.search-results-focus #mode-search .results-search-summary {
  display: flex !important;
}

body.search-results-focus #mode-search .results-search-summary[hidden] {
  display: none !important;
}

body.search-results-focus #mode-search .results-header {
  position: sticky;
  top: 0;
  z-index: 9;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

body.theme-dark.search-results-focus #mode-search .results-header,
html[data-theme="dark"] body.search-results-focus #mode-search .results-header {
  background: rgba(15,23,42,.84);
}

body.search-results-focus #mode-search .results-edit-search-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-height: 760px), (max-width: 520px) {
  .auth-card,
  .auth-card-minimal,
  .email-verification-card {
    width: min(100%, 372px) !important;
    max-height: calc(100dvh - 14px) !important;
  }

  .auth-panel,
  .auth-panel-minimal,
  .email-verification-panel {
    padding: 16px 16px 14px !important;
    max-height: calc(100dvh - 14px) !important;
  }

  .auth-panel-title {
    font-size: 22px !important;
  }

  .auth-field input {
    min-height: 36px !important;
  }

  .auth-submit {
    min-height: 38px !important;
  }

  .auth-check {
    font-size: 10.8px !important;
  }
}

/* === Compact UI v3: persistent edit-search button + wider two-column registration === */
body.search-results-focus #mobile-back-to-search,
body.search-results-focus .mobile-back-to-search {
  display: inline-flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: 86px !important;
  z-index: 1600 !important;
  transform: translateX(-50%) !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: calc(100vw - 32px) !important;
  min-height: 42px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(59, 111, 224, 0.22) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--accent) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  box-shadow: 0 14px 34px rgba(29, 45, 78, 0.16) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease !important;
}

body.search-results-focus #mobile-back-to-search:hover,
body.search-results-focus .mobile-back-to-search:hover {
  transform: translateX(-50%) translateY(-1px) !important;
  border-color: rgba(59, 111, 224, 0.36) !important;
  box-shadow: 0 18px 42px rgba(29, 45, 78, 0.20) !important;
}

body:not(.search-results-focus) #mobile-back-to-search,
body:not(.search-results-focus) .mobile-back-to-search {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.search-form-expanded #mode-search .results-search-summary {
  display: none !important;
}

body.theme-dark.search-results-focus #mobile-back-to-search,
html[data-theme="dark"] body.search-results-focus #mobile-back-to-search,
body.theme-dark.search-results-focus .mobile-back-to-search,
html[data-theme="dark"] body.search-results-focus .mobile-back-to-search {
  background: rgba(15,23,42,.92) !important;
  color: #dbeafe !important;
  border-color: rgba(148,163,184,.22) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.28) !important;
}

@media (min-width: 760px) and (min-height: 600px) {
  body.auth-register-mode .auth-card,
  body.auth-register-mode .auth-card-minimal {
    width: min(100%, 610px) !important;
  }

  body.auth-register-mode .auth-panel,
  body.auth-register-mode .auth-panel-minimal {
    padding: 20px 22px 16px !important;
  }

  body.auth-register-mode #register-form.auth-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px 12px !important;
    align-items: start !important;
  }

  body.auth-register-mode #register-form .auth-checks,
  body.auth-register-mode #register-form #register-submit {
    grid-column: 1 / -1 !important;
  }

  body.auth-register-mode #register-form .auth-checks {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 6px 12px !important;
    margin-top: 2px !important;
  }

  body.auth-register-mode #register-form .auth-check {
    align-items: flex-start !important;
    min-width: 0 !important;
  }

  body.auth-register-mode #register-form .auth-check:nth-child(2) {
    grid-row: span 2 !important;
  }

  body.auth-register-mode #register-form #register-submit {
    margin-top: 2px !important;
  }
}

@media (max-width: 720px), (max-height: 620px) {
  body.search-results-focus #mobile-back-to-search,
  body.search-results-focus .mobile-back-to-search {
    bottom: 74px !important;
    min-height: 40px !important;
    padding: 0 14px !important;
    font-size: 12.5px !important;
  }

  body.auth-register-mode #register-form.auth-form {
    display: flex !important;
    flex-direction: column !important;
  }
}


/* === Compact UI v4: visible edit button, laptop layout and tighter registration === */
body.search-results-focus #mode-search .results-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
  padding: 10px 0 10px !important;
  margin-bottom: 12px !important;
  background: linear-gradient(180deg, rgba(245,247,251,.96), rgba(245,247,251,.84)) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid rgba(128,143,166,.12) !important;
}

html[data-theme="dark"] body.search-results-focus #mode-search .results-header,
body.theme-dark.search-results-focus #mode-search .results-header {
  background: linear-gradient(180deg, rgba(15,23,42,.94), rgba(15,23,42,.78)) !important;
  border-bottom-color: rgba(148,163,184,.12) !important;
}

.results-toolbar-edit-btn {
  display: none;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid rgba(59,111,224,.20);
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--accent);
  font-family: inherit;
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(29,45,78,.055);
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}

body.search-results-focus .results-toolbar-edit-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
}

.results-toolbar-edit-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(59,111,224,.36);
  box-shadow: 0 12px 24px rgba(29,45,78,.09);
}

html[data-theme="dark"] .results-toolbar-edit-btn,
body.theme-dark .results-toolbar-edit-btn {
  background: rgba(15,23,42,.88);
  color: #dbeafe;
  border-color: rgba(148,163,184,.22);
}

.floating-edit-search-btn {
  display: none;
}

body.search-results-focus:not(.search-form-expanded) .floating-edit-search-btn {
  display: inline-flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
  position: fixed !important;
  left: 50% !important;
  bottom: 118px !important;
  z-index: 2200 !important;
  transform: translateX(-50%) !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 0 17px !important;
  border: 1px solid rgba(59,111,224,.24) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--accent) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  box-shadow: 0 16px 38px rgba(29,45,78,.18) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
}

body.search-results-focus:not(.search-form-expanded) .floating-edit-search-btn:hover {
  transform: translateX(-50%) translateY(-1px) !important;
  box-shadow: 0 20px 46px rgba(29,45,78,.22) !important;
}

html[data-theme="dark"] body.search-results-focus:not(.search-form-expanded) .floating-edit-search-btn,
body.theme-dark.search-results-focus:not(.search-form-expanded) .floating-edit-search-btn {
  background: rgba(15,23,42,.92) !important;
  color: #dbeafe !important;
  border-color: rgba(148,163,184,.24) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.32) !important;
}

/* На ноутбуках 1024–1180 px интерфейс не должен жить тремя колонками. */
@media (max-width: 1180px) and (min-width: 769px) {
  .sidebar {
    width: 220px !important;
    min-width: 220px !important;
  }

  .logo-area {
    padding: 15px 14px 12px !important;
  }

  .logo-subtitle {
    font-size: 10.5px !important;
    line-height: 1.22 !important;
  }

  .mode-switcher {
    padding: 12px 10px 8px !important;
  }

  .mode-btn {
    min-height: 42px !important;
    padding: 9px 10px !important;
  }

  .sidebar-actions,
  .sidebar-section {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .account-box {
    margin: auto 10px 10px !important;
    padding: 10px !important;
  }

  .right-panel {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .main-header {
    padding: 18px 24px 0 !important;
  }

  .main-title {
    font-size: 21px !important;
    line-height: 1.18 !important;
  }

  .main-subtitle {
    font-size: 13px !important;
    line-height: 1.38 !important;
  }

  .mode-page,
  .identity-area,
  .conditions-area,
  .results-area {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  body.search-results-focus .floating-edit-search-btn {
    bottom: 104px !important;
  }
}

@media (max-height: 820px) and (min-width: 769px) {
  .sidebar {
    overflow-y: auto !important;
  }

  .logo-area {
    padding-top: 13px !important;
    padding-bottom: 10px !important;
  }

  .mode-btn {
    min-height: 40px !important;
  }

  .sidebar-section-title {
    margin-bottom: 7px !important;
  }

  #search-history .history-item,
  .history-item {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .account-box {
    padding: 9px !important;
  }
}

/* Регистрация: шире и ниже по высоте на ноутбуках, но без двух колонок на телефоне. */
@media (min-width: 640px) and (min-height: 560px) {
  body.auth-register-mode .auth-card,
  body.auth-register-mode .auth-card-minimal {
    width: min(92vw, 700px) !important;
  }

  body.auth-register-mode .auth-panel,
  body.auth-register-mode .auth-panel-minimal {
    padding: 18px 22px 14px !important;
  }

  body.auth-register-mode #register-form.auth-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 12px !important;
    row-gap: 7px !important;
    align-items: start !important;
  }

  body.auth-register-mode #register-form .auth-checks,
  body.auth-register-mode #register-form #register-submit {
    grid-column: 1 / -1 !important;
  }

  body.auth-register-mode #register-form .auth-checks {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 5px 12px !important;
    margin-top: 2px !important;
  }

  body.auth-register-mode #register-form .auth-check {
    font-size: 11px !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 768px) {
  body.search-results-focus #mode-search .results-header {
    top: 0 !important;
    padding: 8px 0 8px !important;
  }

  .results-toolbar {
    gap: 6px !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }

  .results-toolbar-edit-btn {
    min-height: 34px !important;
    padding: 0 12px !important;
  }

  body.search-results-focus:not(.search-form-expanded) .floating-edit-search-btn {
    bottom: 72px !important;
    min-height: 40px !important;
    padding: 0 14px !important;
    font-size: 12.5px !important;
  }

  /* На маленьких экранах не показываем выбранную лабораторию выше поиска:
     она полезна после выбора результата, но не должна закрывать сам поиск. */
  body:not(.search-results-focus) .right-panel {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
