/* Mobile & tablet adaptation — 320px–768px (desktop unchanged at ≥769px) */

:root {
  --bp-phone-max: 480px;
  --bp-tablet-max: 768px;
  --bp-desktop-min: 769px;
  --touch-min: 2.75rem; /* 44px */
  --touch-gap: 0.5rem; /* 8px */
  --cabinet-mobile-nav-height: 4.5rem;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --keyboard-inset: 0px;
  --z-mobile-nav: 200;
  --z-modal: 1000;
  --z-toast: 1100;
}

/* --- OS theme (light default + dark) --- */

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --color-bg: #1c1c1e;
    --color-text: #f5f5f7;
    --color-text-muted: rgba(245, 245, 247, 0.62);
    --color-border: rgba(245, 245, 247, 0.14);
    --color-surface: #2c2c2e;
    --color-accent: #0a84ff;
    --color-accent-hover: #409cff;
    --color-focus: rgba(10, 132, 255, 0.5);
    --header-bg: rgba(28, 28, 30, 0.88);
    --header-border: rgba(245, 245, 247, 0.1);
  }

  .site-header.is-scrolled::before {
    background: rgba(28, 28, 30, 0.94);
  }

  .site-header__nav {
    background: rgba(255, 255, 255, 0.04);
  }

  .card,
  .site-header__panel.is-open {
    background: var(--color-bg);
  }
}

@media (prefers-color-scheme: light) {
  :root {
    color-scheme: light;
  }
}

/* Align utility classes with 769px desktop breakpoint */
@media (max-width: 768px) {
  .desktop-only {
    display: none !important;
  }

  .mobile-only {
    display: block;
  }

  .cabinet-mobile-header.mobile-only,
  .cabinet-mobile-nav.mobile-only {
    display: flex;
  }

  .order-cards.mobile-only {
    display: grid;
  }

  .mobile-quick-actions.mobile-only {
    display: grid;
  }
}

/* Cabinet bottom nav — fixed bar on ≤768px */
@media (max-width: 768px) {
  body.cabinet-page {
    padding-bottom: calc(var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  .cabinet-mobile-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--z-mobile-nav, 200);
    pointer-events: auto;
    transition: transform 0.2s ease, visibility 0.2s ease;
  }

  .cabinet-mobile-nav__item {
    min-width: var(--touch-min);
    min-height: var(--touch-min);
  }

  body.modal-open .cabinet-mobile-nav {
    transform: translateY(110%);
    visibility: hidden;
    pointer-events: none;
  }

  .modal:not([hidden]) {
    z-index: var(--z-modal, 1000);
  }

  .modal__dialog {
    max-height: calc(100dvh - 1rem);
  }

  .modal__actions,
  .application-form-modal__actions,
  .application-photo-sheet__actions,
  .application-detail__actions {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  }
}

@media (min-width: 769px) {
  .mobile-only {
    display: none !important;
  }
}

/* --- Layout: no horizontal page scroll --- */

@media (max-width: 768px) {
  html {
    overflow-x: clip;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    overflow-x: clip;
  }

  main {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
    padding-top: var(--space-lg);
    padding-bottom: var(--space-xl);
  }

  .page-wrap,
  .catalog-wrap,
  .calculator-wrap {
    padding-left: 0;
    padding-right: 0;
  }

  .section-block {
    margin-bottom: var(--space-xl);
  }

  .prose {
    font-size: 1rem;
    line-height: 1.6;
  }

  .prose p + p {
    margin-top: 0.875rem;
  }
}

/* Phone-only (320–480px) */
@media (max-width: 480px) {
  main {
    padding-top: var(--space-md);
  }

  .section-title {
    font-size: clamp(1.375rem, 5vw, 1.75rem);
  }

  .card {
    border-radius: var(--radius-md);
  }
}

/* Tablet (481–768px) */
@media (min-width: 481px) and (max-width: 768px) {
  .catalog-grid:not(.catalog-grid--list) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* --- Touch targets ≥44px --- */

@media (max-width: 768px) {
  .btn,
  .tab,
  .site-header__nav-link,
  .site-header__burger,
  .site-header__profile-toggle,
  .site-header__search-submit,
  .site-header__phone,
  .back-to-top,
  .cabinet-mobile-nav__item,
  .cabinet-mobile-nav__link,
  .applications-filter-tab,
  .faq-question,
  input[type="checkbox"],
  input[type="radio"] {
    min-height: var(--touch-min);
  }

  .btn-sm,
  .site-header__auth-link,
  .site-header__admin-link,
  .site-header__logout {
    min-height: var(--touch-min);
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .tab {
    min-width: var(--touch-min);
    padding: 0.75rem 1rem;
  }

  .site-header__nav-link {
    padding: 0.875rem 0.625rem;
  }

  .admin-order-action,
  .action-btn,
  .pl-pagination__btn,
  .pl-btn--icon {
    min-width: var(--touch-min);
    min-height: var(--touch-min);
  }

  .mounting-form__step {
    min-height: var(--touch-min);
    padding: 0.5rem 0.75rem;
    font-size: var(--text-sm);
  }

  .input,
  .select,
  textarea,
  .site-header__search-input,
  .mounting-phone-input,
  .mounting-num-input {
    min-height: var(--touch-min);
    font-size: 16px; /* prevent iOS zoom on focus */
  }

  .catalog-product__thumb {
    min-width: var(--touch-min);
    min-height: var(--touch-min);
  }
}

/* --- Forms: spacing & hints --- */

@media (max-width: 768px) {
  .field + .field,
  .mounting-form__grid .field {
    margin-top: 0.25rem;
  }

  .order-forms .tabs {
    gap: 0.5rem;
    margin-bottom: var(--space-md);
  }

  .order-forms {
    scroll-margin-top: calc(var(--header-offset, 4rem) + 0.5rem);
  }

  .field-hint {
    font-size: var(--text-sm);
    margin-top: 0.25rem;
  }

  .mounting-form__grid,
  .painting-form__grid,
  .delivery-form__grid {
    grid-template-columns: 1fr;
  }
}

/* --- Tables: contained scroll + card stack --- */

@media (max-width: 768px) {
  .table-wrap,
  .overflow-x-auto,
  .admin-orders-table-wrap,
  .mounting-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    margin-inline: -0.25rem;
    padding-inline: 0.25rem;
  }

  .data-table[data-stack="true"] thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .data-table[data-stack="true"] tbody tr {
    display: block;
    margin-bottom: 0.75rem;
    padding: 0.875rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg);
  }

  .data-table[data-stack="true"] tbody td {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.375rem 0;
    border: none;
    text-align: right;
  }

  .data-table[data-stack="true"] tbody td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--color-text-muted);
    text-align: left;
    flex-shrink: 0;
  }

  .data-table[data-stack="true"] tbody td[colspan] {
    display: block;
    text-align: center;
  }

  .data-table[data-stack="true"] tbody td[colspan]::before {
    display: none;
  }

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

  .data-table:not([data-stack="true"]) .table-wrap {
    scrollbar-width: thin;
  }
}

/* Admin orders: card rows on mobile */
@media (max-width: 768px) {
  .admin-orders-table thead {
    display: none;
  }

  .admin-orders-table tbody tr.admin-order-row {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "check number"
      "user user"
      "status date"
      "actions actions";
    gap: 0.5rem 0.75rem;
    padding: 1rem;
    margin-bottom: 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg);
  }

  .admin-orders-table tbody tr.admin-order-row:has(+ tr.admin-order-row__meta) {
    margin-bottom: 0;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
  }

  .admin-orders-table tbody tr.admin-order-row__meta {
    display: block;
    margin-top: -1px;
    margin-bottom: 0.75rem;
    padding: 0 1rem 0.75rem;
    border: 1px solid var(--color-border);
    border-top: none;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    background: var(--color-bg);
  }

  .admin-orders-table tbody tr.admin-order-row__meta[hidden] {
    display: none !important;
  }

  .admin-orders-table tbody tr.admin-order-row__meta:has(+ tr.admin-order-row__detail:not([hidden])) {
    margin-bottom: 0;
    border-radius: 0;
    border-bottom: none;
  }

  .admin-orders-table tbody tr.admin-order-row__meta td {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .admin-orders-table tbody tr.admin-order-row__detail[hidden] {
    display: none !important;
  }

  .admin-orders-table tbody tr.admin-order-row__detail:not([hidden]) {
    display: block;
    margin-top: -1px;
    margin-bottom: 0.75rem;
    padding: 0 1rem 1rem;
    border: 1px solid var(--color-border);
    border-top: none;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    background: var(--color-bg);
  }

  .admin-orders-table tbody tr.admin-order-row__detail td {
    display: block;
    padding: 0;
  }

  .admin-orders-table .admin-order-row__check {
    grid-area: check;
  }

  .admin-orders-table .admin-order-row__number {
    grid-area: number;
    font-weight: 600;
  }

  .admin-orders-table .admin-order-row__user {
    grid-area: user;
  }

  .admin-orders-table .admin-order-row__status {
    grid-area: status;
  }

  .admin-orders-table .admin-order-row__date {
    grid-area: date;
    text-align: right;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
  }

  .admin-orders-table .admin-order-row__actions {
    grid-area: actions;
  }

  .admin-orders-table .admin-order-row__quick {
    justify-content: flex-start;
    gap: 0.5rem;
  }

  .admin-orders-table__empty {
    display: block;
    text-align: center;
    padding: 1.5rem;
  }
}

/* Mounting positions: no forced min-width on small screens */
@media (max-width: 768px) {
  .mounting-positions-table {
    min-width: 0;
    width: 100%;
  }

  .mounting-table-wrap {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
  }
}

/* --- Footer --- */

@media (max-width: 768px) {
  .site-footer {
    padding-bottom: calc(var(--space-lg) + var(--safe-bottom));
  }
}

/* --- Calculator --- */

@media (max-width: 768px) {
  .calculator-wrap {
    padding: var(--space-md) 0 var(--space-lg);
  }

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

@media (max-width: 480px) {
  .calculator-steps {
    grid-template-columns: 1fr;
  }
}

/* --- 200% text zoom: allow wrap --- */

@media (max-width: 768px) {
  .site-header__utility,
  .site-header__search,
  .flex-between,
  .catalog-toolbar {
    flex-wrap: wrap;
  }
}

/* --- Homepage & global mobile polish (≤768px, desktop unchanged) --- */

@media (max-width: 768px) {
  :root {
    --header-utility-height: 3.5rem;
    --header-offset: 3.5rem;
  }

  .site-header__inner {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }

  .site-header__phone--drawer {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-height: var(--touch-min);
    margin-bottom: 0.75rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    text-decoration: none;
    font-weight: 500;
  }

  .site-header__panel .site-header__account-cluster--desktop {
    display: inline-flex !important;
    margin-bottom: 0.5rem;
  }

  .site-header__panel .site-header__account-cluster--desktop [data-cart-toggle] {
    display: none !important;
  }

  main,
  .page-wrap,
  .container {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
    max-width: 100%;
  }

  .section-title {
    font-size: 1.875rem;
    line-height: 1.15;
    margin-bottom: var(--space-md);
  }

  .section-subtitle,
  .catalog-lead {
    font-size: 1.125rem;
    line-height: 1.4;
  }

  .catalog-featured__head {
    margin-bottom: var(--space-sm);
  }

  .catalog-featured .catalog-carousel__nav {
    display: none !important;
  }

  .catalog-featured .catalog-carousel__viewport {
    overflow: visible;
    scroll-snap-type: none;
  }

  .catalog-featured .catalog-carousel__track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  .catalog-featured .catalog-carousel__slide {
    flex: none;
    width: 100%;
    min-width: 0;
    scroll-snap-align: none;
  }

  .catalog-featured .catalog-carousel__slide .catalog-card {
    min-width: 0;
    width: 100%;
    height: 100%;
  }

  .catalog-featured .catalog-card__img {
    max-width: 100%;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  .hero-carousel {
    border-radius: 1.25rem;
    margin-bottom: var(--space-xl);
    overflow: hidden;
  }

  .carousel-track,
  .carousel-slide {
    min-height: 21.25rem;
  }

  .carousel-slide {
    isolation: isolate;
  }

  .carousel-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      105deg,
      rgba(0, 0, 0, 0.68) 0%,
      rgba(0, 0, 0, 0.38) 52%,
      rgba(0, 0, 0, 0.12) 100%
    );
  }

  .carousel-slide img {
    height: 21.25rem;
    min-height: 21.25rem;
    object-position: center right;
  }

  .carousel-caption {
    z-index: 2;
    inset-inline: 0;
    bottom: 0;
    top: auto;
    max-width: 88%;
    padding: 1.75rem 1.25rem 4.25rem;
    background: none;
  }

  .carousel-caption__title {
    font-size: 1.75rem;
    line-height: 1.15;
  }

  .carousel-caption__text {
    font-size: 1.125rem;
    line-height: 1.35;
    max-width: none;
  }

  .carousel-caption__cta .btn {
    font-size: 1rem;
    padding: 0.875rem 1.25rem;
    max-width: 100%;
    white-space: normal;
  }

  .carousel-controls,
  .carousel-control {
    display: none !important;
  }

  .carousel-indicators.carousel-indicators--glass {
    left: 1.25rem;
    right: auto;
    bottom: 1rem;
    transform: none;
    width: auto;
    padding: 0.375rem 0.625rem;
  }

  .carousel-indicator {
    min-width: 2.25rem;
    min-height: 2.25rem;
  }

  .carousel-indicator__dot {
    width: 0.375rem;
    height: 0.375rem;
  }
}

@media (max-width: 480px) {
  .section-title {
    font-size: clamp(1.375rem, 5vw, 1.75rem);
  }

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

@media (max-width: 390px) {
  main,
  .page-wrap,
  .container,
  .site-header__inner {
    padding-left: max(0.875rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.875rem, env(safe-area-inset-right, 0px));
  }

  .section-title {
    font-size: 1.625rem;
  }

  .section-subtitle,
  .catalog-lead {
    font-size: 1rem;
  }

  .carousel-caption__title {
    font-size: 1.625rem;
  }

  .carousel-caption__text {
    font-size: 1rem;
  }
}

/* ── Sprint 1: overflow, touch, cards, forms (≤768px) ── */

@media (max-width: 768px) {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  img,
  video,
  svg,
  canvas,
  iframe {
    max-width: 100%;
    height: auto;
  }

  .page-wrap,
  .container,
  .card,
  .dashboard-layout,
  .dashboard-content,
  .cabinet-panel,
  .order-forms,
  .calculator-wrap,
  .catalog-wrap,
  .catalog-grid,
  .orders-grid,
  .order-cards,
  .admin-orders-table-wrap {
    max-width: 100%;
    min-width: 0;
  }

  .flex-between,
  .flex-wrap,
  .dashboard-layout,
  .order-toolbar,
  .order-toolbar__main,
  .cabinet-topbar,
  .cabinet-topbar__tools,
  .orders-toolbar__main,
  .executor-toolbar,
  .mounting-form__toolbar,
  .calculator-estimate-toolbar {
    min-width: 0;
    gap: var(--touch-gap);
  }

  .order-card__line-text,
  .order-card__number,
  .breadcrumbs ol,
  .table-wrap,
  pre,
  code {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  /* Buttons (C2) */
  .btn,
  .btn-outline,
  .btn-ghost {
    min-height: var(--touch-min);
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .btn-sm {
    min-height: var(--touch-min);
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .order-form .btn[type="submit"],
  .mounting-form .btn[data-mounting-submit],
  .painting-form .btn[type="submit"],
  .calculator-mobile-summary .btn,
  .calculator-wizard-actions .btn[data-calc-order],
  .order-edit-form .btn[type="submit"] {
    width: 100%;
    justify-content: center;
  }

  .mounting-form__nav,
  .calculator-wizard-actions,
  .order-edit-page__actions,
  .form-actions-row {
    display: flex;
    flex-direction: column;
    gap: var(--touch-gap);
    width: 100%;
  }

  .calculator-wizard-actions {
    flex-direction: column-reverse;
  }

  /* Wizard nav: скрыт на desktop, под полями на mobile */
  .mounting-form__nav {
    display: none;
  }

  .mounting-form__nav .btn,
  .calculator-wizard-actions .btn,
  .order-edit-page__actions .btn {
    width: 100%;
  }

  /* Fields (C3) */
  .field,
  .prose-form .field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    width: 100%;
    min-width: 0;
  }

  .input,
  .select,
  textarea,
  .prose-form input,
  .prose-form select,
  .prose-form textarea {
    width: 100%;
    max-width: 100%;
    min-height: var(--touch-min);
    font-size: 16px;
    box-sizing: border-box;
  }

  .field-hint {
    margin-top: 0.25rem;
    font-size: 0.875rem;
  }

  .field-error {
    margin-top: 0.25rem;
  }

  /* Checkbox / consent — кликабельна вся строка */
  .order-consent label,
  .field--checkbox label,
  label:has(input[type="checkbox"]),
  label:has(input[type="radio"]) {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    min-height: var(--touch-min);
    padding: 0.375rem 0;
    cursor: pointer;
  }

  label:has(input[type="checkbox"]) input[type="checkbox"],
  label:has(input[type="radio"]) input[type="radio"] {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    min-height: 1.25rem;
    margin-top: 0.125rem;
  }

  /* Order cards (H4) */
  .orders-grid,
  .order-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    width: 100%;
    padding-inline: 0;
    justify-items: stretch;
  }

  .order-card {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    box-sizing: border-box;
  }

  .order-card[data-order-row] {
    cursor: pointer;
  }

  .order-action,
  .order-action--menu {
    min-height: var(--touch-min);
    min-width: var(--touch-min);
  }

  .order-toolbar__extras .order-action,
  .order-toolbar__extras a.order-action {
    min-height: var(--touch-min);
    width: 100%;
    justify-content: flex-start;
    padding: 0.625rem 0.75rem;
  }

  /* Bottom nav (M3) */
  .cabinet-mobile-nav__item.is-active {
    color: var(--color-accent);
    background: rgba(0, 122, 255, 0.08);
  }

  .cabinet-mobile-nav__label {
    max-width: 4.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Order edit (M4 partial) */
  .cabinet-order-edit-page .order-edit-page {
    max-width: 100%;
    min-width: 0;
  }

  .cabinet-order-edit-page .order-edit-form fieldset,
  .cabinet-order-edit-page .prose-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
  }

  .cabinet-order-edit-page .order-edit-page__head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .cabinet-order-edit-page .order-edit-page__head .btn {
    width: 100%;
    justify-content: center;
  }

  .cabinet-order-edit-page .order-edit-section {
    min-width: 0;
    border: 0;
    padding: 0;
    margin: 0 0 1rem;
  }

  .cabinet-order-edit-page .order-edit-section .section-subtitle {
    margin-bottom: 0.75rem;
  }

  .cabinet-order-edit-page .order-edit-item {
    min-width: 0;
  }

  .cabinet-order-edit-page .order-edit-item .field {
    width: 100%;
    min-width: 0;
  }

  .cabinet-order-edit-page .order-edit-page__submit-wrap {
    position: sticky;
    bottom: 0;
    z-index: 40;
    margin-top: 1rem;
    padding: 0.75rem 0 calc(0.75rem + var(--safe-bottom));
    background: linear-gradient(to top, var(--color-bg, #fff) 70%, transparent);
  }

  .orders-toolbar__controls {
    display: flex;
    flex-wrap: wrap;
    gap: var(--touch-gap);
    width: 100%;
  }

  .orders-toolbar__refresh,
  .executor-toolbar__refresh {
    min-height: var(--touch-min);
    white-space: nowrap;
    width: 100%;
    justify-content: center;
  }

  .executor-toolbar {
    display: flex;
    flex-direction: column;
    gap: var(--touch-gap);
  }

  .executor-toolbar__filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--touch-gap);
  }

  .executor-toolbar__filters .btn {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
  }

  .executor-toolbar__search {
    width: 100%;
    min-width: 0;
  }

  .executor-toolbar__search .input {
    width: 100%;
    min-width: 0;
  }

  /* Order detail — монтажник (L4) */
  .cabinet-order-detail-page .order-detail-page__head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .cabinet-order-detail-page .order-detail-page__head .btn {
    width: 100%;
    justify-content: center;
  }

  .cabinet-order-detail-page .order-detail-quick-nav,
  .cabinet-order-detail-page .order-detail-page__actions--stack,
  .cabinet-order-detail-page .order-detail-executor-mounting .flex-wrap,
  .cabinet-order-detail-page .order-detail-executor-price__form {
    display: flex;
    flex-direction: column;
    gap: var(--touch-gap);
    width: 100%;
  }

  .cabinet-order-detail-page .order-detail-page__actions--stack .btn,
  .cabinet-order-detail-page .order-detail-page__actions--stack form,
  .cabinet-order-detail-page .order-detail-quick-nav .btn,
  .cabinet-order-detail-page .order-detail-executor-mounting .btn,
  .cabinet-order-detail-page .order-detail-executor-price__form .btn {
    width: 100%;
    justify-content: center;
    min-height: var(--touch-min);
  }

  .cabinet-order-detail-page .order-detail__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.25rem;
    margin-bottom: 0.75rem;
  }

  .cabinet-order-detail-page .order-detail__row dt {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-text-muted);
  }

  .cabinet-order-detail-page .order-detail__phone {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch-min);
    padding: 0.125rem 0;
    color: var(--color-accent);
    text-decoration: none;
    font-weight: 600;
  }

  .cabinet-order-detail-page .order-detail__phone:hover,
  .cabinet-order-detail-page .order-detail__phone:focus-visible {
    text-decoration: underline;
  }

  .cabinet-order-detail-page .cabinet-timeline {
    font-size: 0.875rem;
    line-height: 1.45;
  }

  .cabinet-order-detail-page .cabinet-timeline li {
    margin-bottom: 0.5rem;
  }

  .file-upload,
  .file-upload__dropzone {
    min-height: var(--touch-min);
    width: 100%;
  }

  /* Mounting wizard steps (M1 partial) */
  .mounting-form__steps {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
    margin-bottom: 1rem;
  }

  .mounting-form__step {
    flex: 0 0 auto;
    scroll-snap-align: start;
    min-height: var(--touch-min);
    white-space: nowrap;
  }

  .mounting-form__step span:first-child {
    display: inline-grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    min-width: 1.75rem;
    border-radius: 999px;
    font-weight: 700;
  }

  /* Mounting positions single column (M2 partial) */
  .mounting-positions-container,
  .mounting-form__grid {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
  }

  .mounting-position-row,
  .mounting-item-card {
    min-width: 0;
    width: 100%;
  }

  .mounting-item-card .field,
  .mounting-position-row .field {
    width: 100%;
  }

  [data-mounting-add-row],
  [data-mounting-clear-rows] {
    width: 100%;
    justify-content: center;
  }

  button[data-mounting-remove-row],
  .mounting-item-card__remove {
    min-height: var(--touch-min);
    width: 100%;
  }

  /* Mounting wizard — один шаг на экране */
  .mounting-form--wizard fieldset[data-form-step] {
    display: none;
  }

  .mounting-form--wizard fieldset[data-form-step].is-wizard-visible {
    display: block;
  }

  .mounting-form--wizard .mounting-form__nav {
    display: flex;
    flex-direction: column;
    gap: var(--touch-gap);
    position: sticky;
    bottom: 0;
    z-index: 49;
    margin: 1rem 0 0;
    padding: 0.75rem 0 calc(0.75rem + var(--safe-bottom));
    background: linear-gradient(to top, var(--color-bg, #fff) 88%, transparent);
  }

  body.cabinet-page .mounting-form--wizard .mounting-form__nav {
    bottom: calc(var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  .mounting-form__nav .btn {
    width: 100%;
    justify-content: center;
  }

  .mounting-form--wizard .mounting-form__step.is-done {
    cursor: pointer;
  }

  /* Painting wizard + item editor sheet */
  .painting-form--wizard .painting-form__nav {
    flex-direction: column;
    position: sticky;
    bottom: 0;
    z-index: 49;
    margin: 1rem 0 0;
    padding: 0.75rem 0 calc(0.75rem + var(--safe-bottom));
    background: linear-gradient(to top, var(--color-bg, #fff) 88%, transparent);
  }

  body.cabinet-page .painting-form--wizard .painting-form__nav {
    bottom: calc(var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  .painting-form--wizard .painting-form__nav .btn {
    width: 100%;
    margin-left: 0;
    justify-content: center;
  }

  .painting-form--wizard .painting-form__nav [data-painting-next] {
    order: -1;
  }

  .painting-type-cards {
    grid-template-columns: 1fr;
  }

  .painting-item-editor__panel {
    width: 100%;
    border-radius: 0;
    animation: painting-editor-sheet-in 0.22s ease;
  }

  .painting-item-editor__mobile-step {
    display: block;
  }

  .painting-item-editor__steps {
    display: none;
  }

  @keyframes painting-editor-sheet-in {
    from { transform: translateY(24px); opacity: 0.7; }
    to { transform: translateY(0); opacity: 1; }
  }

  .painting-items-summary__card {
    flex-direction: column;
  }

  .painting-items-summary__actions {
    width: 100%;
  }

  .painting-items-summary__actions .btn {
    flex: 1;
    justify-content: center;
  }

  .painting-items-empty .btn {
    width: 100%;
    justify-content: center;
  }

  .mounting-review-modal .calculator-modal__body {
    max-height: 50vh;
    overflow-y: auto;
    margin-bottom: 1rem;
  }

  .mounting-review-modal .calculator-modal__close {
    min-width: var(--touch-min);
    min-height: var(--touch-min);
  }

  /* Sticky submit (H3) */
  .mounting-form__submit-wrap,
  .painting-form__submit-wrap {
    position: sticky;
    bottom: 0;
    z-index: 50;
    width: 100%;
    margin-top: 1rem;
    padding: 0.75rem 0 calc(0.75rem + var(--safe-bottom));
    background: linear-gradient(to top, var(--color-bg, #fff) 88%, transparent);
  }

  body.cabinet-page .mounting-form__submit-wrap,
  body.cabinet-page .painting-form__submit-wrap {
    bottom: calc(var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  .mounting-form__submit,
  .painting-form__submit {
    width: 100%;
    min-height: var(--touch-min);
  }

  .mounting-form__submit[disabled],
  .painting-form__submit[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .mounting-form__submit.is-loading,
  .painting-form__submit.is-loading {
    pointer-events: none;
    opacity: 0.85;
  }
}

@media (max-width: 480px) {
  .mounting-form__steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .mounting-form__step {
    white-space: normal;
    text-align: center;
    justify-content: center;
  }

  .cabinet-mobile-nav__label {
    font-size: 0.625rem;
  }
}

@media (max-width: 320px) {
  .cabinet-mobile-nav__label {
    max-width: 3.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mounting-form__steps,
  .calculator-wizard-steps {
    grid-template-columns: minmax(0, 1fr);
  }

  .mounting-form__step,
  .calculator-wizard-step {
    font-size: 0.6875rem;
  }

  .order-type-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0.375rem;
    padding-bottom: 0.25rem;
  }

  .order-type-tab {
    flex: 0 0 auto;
    min-width: 0;
  }

  .order-type-tab__label {
    max-width: 5.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mounting-positions-container,
  .mounting-form__grid,
  .painting-form__grid,
  .calculator-items {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* E3 — landscape phone (568×320, 844×390) */
@media (orientation: landscape) and (max-height: 480px) {
  body.cabinet-page {
    padding-bottom: calc(var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  .cabinet-mobile-nav.mobile-only {
    display: flex !important;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--z-mobile-nav, 200);
  }

  .mounting-form__grid,
  .painting-form__grid,
  .calculator-item__grid,
  .calculator-estimate-total__grid,
  .prose-form .field-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .mounting-form__submit-wrap,
  .painting-form__submit-wrap,
  .order-edit-page__submit-wrap,
  .calculator-mobile-summary {
    bottom: calc(var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  .calculator-wrap {
    padding-bottom: calc(6.5rem + var(--cabinet-mobile-nav-height) + var(--safe-bottom));
  }

  dialog.calculator-modal,
  dialog.mounting-review-modal {
    max-height: 100dvh;
  }

  .calculator-modal__box,
  .mounting-review-modal .calculator-modal__box {
    max-height: calc(100dvh - 1rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .calculator-modal__body,
  .mounting-review-modal .calculator-modal__body {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    max-height: none;
    min-height: 0;
  }
}

/* E4 — iOS keyboard / visualViewport */

body.keyboard-open .cabinet-mobile-nav {
  transform: translateY(110%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.2s ease, visibility 0.2s ease;
}

body.keyboard-open .mounting-form__submit-wrap,
body.keyboard-open .mounting-form--wizard .mounting-form__nav,
body.keyboard-open .painting-form__submit-wrap,
body.keyboard-open .order-edit-page__submit-wrap {
  bottom: calc(var(--keyboard-inset) + var(--safe-bottom));
}

body.keyboard-open .calculator-mobile-summary {
  bottom: var(--keyboard-inset);
}

body.keyboard-open.cabinet-page {
  padding-bottom: calc(var(--keyboard-inset) + var(--safe-bottom));
}
