/* Shared phone/tablet behaviour; keep desktop layout and user zoom intact. */
:root { --visible-height:100vh; --visible-top:0px; --visible-bottom:0px; }
@supports (height:100dvh) { :root { --visible-height:100dvh; } }
body.assistant-opened { overflow:hidden; }
@media (max-width:700px), (pointer:coarse) {
  /* 16px inputs avoid Safari's automatic focus zoom. */
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size:16px; }
  .store-assistant {
    --dialog-gap:8px;
    top:calc(var(--visible-top) + var(--dialog-gap));
    bottom:auto;
    height:min(760px, calc(var(--visible-height) - 2 * var(--dialog-gap)));
    max-height:calc(var(--visible-height) - 2 * var(--dialog-gap));
  }
  .assistant-head > div { min-width:0; }
  .assistant-close { flex:none; min-width:44px; min-height:44px; }
  .assistant-search { padding-bottom:max(14px, env(safe-area-inset-bottom, 0px)); }
  .assistant-scroll, .choice-list, .drawer, .category-modal { -webkit-overflow-scrolling:touch; }
  .category-modal, .drawer {
    top:var(--visible-top); bottom:auto; height:var(--visible-height);
    max-height:var(--visible-height);
  }
  .category-modal-shell { min-height:var(--visible-height); }
  .drawer { padding-bottom:max(32px, env(safe-area-inset-bottom, 0px)); }
  .drawer .qty button, .choice-close { min-width:44px; min-height:44px; }
  .store-assistant-launcher { bottom:calc(14px + env(safe-area-inset-bottom, 0px)); }
  .quote-floating { bottom:calc(78px + env(safe-area-inset-bottom, 0px)); }
  body.modal-open .quote-floating { bottom:calc(16px + var(--visible-bottom) + env(safe-area-inset-bottom, 0px)); }
  .compact-viewport .assistant-head { padding:8px 12px; }
  .compact-viewport .assistant-head span, .compact-viewport .assistant-search small { display:none; }
  .compact-viewport .assistant-search { padding:8px 12px; }
  .compact-viewport .assistant-search > label { margin-bottom:6px; }
}
@media (max-width:640px) {
  .choice-panel {
    bottom:calc(10px + var(--visible-bottom));
    max-height:min(620px, calc(var(--visible-height) - 20px));
  }
}
@media (max-width:1100px) {
  .header nav.open { max-height:calc(var(--visible-height) - 112px); overflow-y:auto; overscroll-behavior:contain; }
}
