:root {
  --phone-safe-top: calc(max(env(safe-area-inset-top, 0px), var(--tg-safe-area-inset-top, 0px)) + var(--tg-content-safe-area-inset-top, 0px));
  --phone-safe-bottom: calc(max(env(safe-area-inset-bottom, 0px), var(--tg-safe-area-inset-bottom, 0px)) + var(--tg-content-safe-area-inset-bottom, 0px));
  --phone-safe-left: max(env(safe-area-inset-left, 0px), var(--tg-safe-area-inset-left, 0px), var(--tg-content-safe-area-inset-left, 0px));
  --phone-safe-right: max(env(safe-area-inset-right, 0px), var(--tg-safe-area-inset-right, 0px), var(--tg-content-safe-area-inset-right, 0px));
  --phone-nav-height: 72px;
}
.mobile-account { display: none; }
.layout { min-height: var(--tg-viewport-stable-height, 100dvh); }
.payment-totals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 16px 0 24px; }
.payment-totals small,.payment-totals strong { display: block; overflow-wrap: anywhere; }
.payment-totals small { color: #647480; font-size: 12px; margin-bottom: 8px; }
.payment-totals strong { font-size: 18px; }
.quick-total { display: grid; gap: 4px; min-width: 0; overflow-wrap: anywhere; }
.quick-total small { font-size: 12px; color: #647480; }
.quick-total strong { font-size: 23px; }
@media (max-width: 720px), (hover: none) and (pointer: coarse) and (max-width: 1024px) {
  .sidebar { display: none; }
  .mobile-nav { display: flex; }
  html { scroll-padding-top: calc(90px + var(--phone-safe-top)); scroll-padding-bottom: calc(84px + var(--phone-safe-bottom)); }
  body { -webkit-text-size-adjust: 100%; }
  .top { padding: calc(10px + var(--phone-safe-top)) 16px 10px; flex-wrap: nowrap; min-height: 64px; gap: 12px; }
  .top .desktop-account { display: none; }
  .brandmark { gap: 10px; min-width: 0; }
  .brandmark .logo-app { width: 36px; }
  .top-title { font-size: 17px; }
  .mobile-account { display: block; position: relative; flex-shrink: 0; }
  .mobile-account>summary { list-style: none; display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 6px 12px; border: 1px solid #a8cddd; border-radius: 8px; color: #006c94; font-size: 13px; font-weight: 700; cursor: pointer; }
  .mobile-account>summary::-webkit-details-marker { display: none; }
  .account-content { position: absolute; z-index: 30; right: 0; top: calc(100% + 8px); width: 240px; max-width: calc(100vw - 32px); padding: 16px; background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px #17334022; overflow-wrap: anywhere; }
  .account-content strong,.account-content small { display: block; margin-bottom: 10px; }
  .account-content .btn { width: 100%; white-space: normal; }
  .environment-banner { padding: 8px 16px; font-size: 12px; line-height: 1.4; }
  .main { padding: 20px calc(12px + var(--phone-safe-right)) calc(100px + var(--phone-safe-bottom)) calc(12px + var(--phone-safe-left)); }
  .panel { padding: 16px; }
  input,select,textarea,.field input,.field select,.field textarea,.search-input,.basket-meta .field input,.login-card select { font-size: 16px; min-height: 48px; }
  input,select,textarea { scroll-margin-top: calc(90px + var(--phone-safe-top)); scroll-margin-bottom: 90px; }
  .btn,.btn.tiny,.filters button,.service-picker .filters button,.catalog-row .btn,.service-picker .catalog-row .btn,.suggestions button { min-height: 44px; min-width: 44px; }
  .btn { font-size: 14px; }
  .filters { gap: 8px; }
  .service-picker .filters button { padding: 8px 12px; font-size: 13px; }
  .service-picker .catalog-title { font-size: 14px; line-height: 1.45; }
  .service-picker .catalog-info { font-size: 12px; }
  .service-picker .catalog-row .btn { font-size: 13px; padding: 8px 10px; }
  .service-picker .catalog-list { max-height: min(42dvh, 360px); }
  .basket h3 { font-size: 16px; }
  .basket .basket-meta { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 10px; }
  .basket-meta .money { grid-column: 1/-1; font-size: 15px; padding: 0; text-align: right; }
  .basket-meta .field label,.field label,.basket-options { font-size: 13px; }
  .basket-options summary { min-height: 44px; display: flex; align-items: center; gap: 6px; }
  .basket-options summary::before { content: '▸'; }
  .basket-options[open] summary::before { content: '▾'; }
  .basket-options summary::-webkit-details-marker { display: none; }
  .basket-options summary { list-style: none; }
  .basket .manual-position .cols2 { grid-template-columns: 1fr; }
  .form-foot { flex-wrap: wrap; gap: 12px; }
  .form-foot>.btn[type=submit] { width: 100%; min-height: 50px; font-size: 16px; }
  .page-head>.btngroup { width: 100%; }
  .page-head>.btngroup>.btn { flex: 1 1 auto; white-space: normal; }
  .detail-grid { grid-template-columns: 92px minmax(0,1fr); font-size: 14px; }
  .mobile-nav { position:fixed;bottom:0;left:0;right:0;z-index:20;box-sizing:border-box;height:calc(var(--phone-nav-height) + var(--phone-safe-bottom));padding:8px calc(8px + var(--phone-safe-right)) calc(8px + var(--phone-safe-bottom)) calc(8px + var(--phone-safe-left));gap:4px;justify-content:space-around;background:#fff;border-top:1px solid var(--line);box-shadow:none; }
  .mobile-nav button { display:grid;align-content:center;justify-items:center;gap:4px;flex:0 1 80px;min-width:44px;min-height:52px;padding:4px 6px;font-family:inherit;font-size:11px;line-height:14px;border:0;border-radius:11px;background:transparent;color:#586f7b; }
  .mobile-nav button.active { border-radius:11px;background:var(--soft);color:#006c94;font-weight:700; }
  .mobile-nav button span { font-size:inherit; }
  .mobile-nav svg { width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }
  .mobile-nav button:focus-visible { outline:3px solid #007da8;outline-offset:1px; }
  .keyboard-open .mobile-nav { display: none; }
  .keyboard-open .top { position: static; }
  .keyboard-open .main { padding-bottom: 32px; }
  .quick-form { padding-bottom: 100px; }
  .quick-submit-bar { position: fixed; bottom: calc(var(--phone-nav-height) + var(--phone-safe-bottom)); left: 0; right: 0; z-index: 19; margin: 0; padding: 12px calc(16px + var(--phone-safe-right)) 12px calc(16px + var(--phone-safe-left)); background: white; border-top: 1px solid var(--line); display: flex; justify-content: space-between; flex-wrap: nowrap; gap: 16px; }
  .quick-submit-bar>.btn[type=submit] { width: auto; min-width: 155px; font-size: 15px; }
  .keyboard-open .quick-submit-bar { display: none; }
  .quick-form [role=alert] { scroll-margin-bottom: 180px; }
  .edit-dialog { max-height: calc(100dvh - var(--phone-safe-top) - var(--phone-safe-bottom) - 24px); }
}

button.btn.icon-button { width: 44px; min-width: 44px; min-height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.page-head>.btngroup>.btn.icon-button { flex: 0 0 44px; }
.sharpening-values { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.sharpening-values input { min-width: 0; width: 100%; }
