/* Shared tablet navigation and visual-viewport sizing. Loaded after common.css. */
:root { --wawa-visible-height: 100vh; --wawa-visible-top: 0px; }
@supports (height: 100dvh) { :root { --wawa-visible-height: 100dvh; } }

#im_pt_header .wawa-submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    min-height: 44px;
    padding: 4px;
    color: inherit;
    background: transparent;
    border: 0;
    cursor: pointer;
}
#im_pt_header .wawa-submenu-toggle .im_pt_menu_arrow { margin: 0; }
#im_pt_header .wawa-submenu-open > .im_pt_pc_menu_sub { display: block; }
#im_pt_header .im_pt_pc_menu_wrap>ul>li .im_pt_pc_menu_sub {
    max-height: calc(var(--wawa-visible-height) - 80px);
    overflow-y: auto;
    overscroll-behavior-y: contain;
}
#im_pt_header .im_pt_pc_menu_wrap>ul>li:last-child .im_pt_pc_menu_sub {
    left: auto;
    right: 0;
}
#im_pt_header [role="button"]:focus-visible,
#im_pt_header button:focus-visible,
#im_pt_header a:focus-visible { outline: 2px solid #2975eb; outline-offset: 2px; }
#im_pt_header .im_pt_mb_open_btn,
#im_pt_header .im_pt_mb_close_btn {
    min-width: 44px;
    min-height: 44px;
    top: 10px;
    cursor: pointer;
}
#im_pt_header .im_pt_mb_close_btn { display: flex; align-items: center; justify-content: center; }
#im_pt_header .im_pt_mb_open_btn table { min-height: 44px; }
#im_pt_header .im_pt_mb_wrap {
    box-sizing: border-box;
    width: min(420px, calc(100% - 36px));
    height: var(--wawa-visible-height);
    top: var(--wawa-visible-top);
    padding-bottom: max(24px, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y pinch-zoom;
    box-shadow: none;
    display: none;
    transition: none;
}
#im_pt_header .im_pt_mb_wrap.on { display: block; }
#im_pt_header .im_pt_mb_menu_wrap>li>ul:not([hidden]) { display: block; }
#im_pt_header .im_pt_mb_menu_wrap>li>ul[hidden] { display: none !important; }
#im_pt_header .im_pt_mb_menu_wrap a { min-height: 44px; }
.wawa-menu-backdrop {
    position: fixed;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgb(0 0 0 / 45%);
    z-index: 9997;
    touch-action: none;
}
.wawa-menu-backdrop[hidden] { display: none; }
html.wawa-menu-open, body.wawa-menu-open { overflow: hidden !important; overscroll-behavior: none; }
/* Always offer the complete navigation in compact layouts, including 961–1200px. */
@media (max-width: 1200px) {
    #im_pt_header .im_pt_pc_menu_wrap { display: none !important; }
    #im_pt_header .im_pt_mb_open_btn { display: block; }
    #im_pt_header .im_pt_mb_total_menu { display: block; }
}
@media (any-pointer: coarse) {
    #im_pt_header .wawa-submenu-toggle { min-width: 44px; }
    #im_pt_header .im_pt_pc_menu_sub>li>a { min-height: 44px; }
    /* Avoid automatic input zoom while retaining user pinch zoom. */
    input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
    textarea, select { font-size: max(16px, 1rem); }
}

/* Popup content, including its action buttons, remains reachable by scrolling. */
.im_pt_common_several_modal_area {
    max-height: calc(var(--wawa-visible-height) - 24px);
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
}
.im_pt_common_modal {
    overflow-y: auto;
    overscroll-behavior-y: contain;
}
.wawa-keyboard-spacer { height: 0; pointer-events: none; width: 1px; }
html.wawa-keyboard-open .wawa-keyboard-panel {
    position: fixed !important;
    top: var(--wawa-visible-top) !important;
    bottom: auto !important;
    height: var(--wawa-visible-height) !important;
    max-height: var(--wawa-visible-height) !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    box-sizing: border-box;
}
html.wawa-keyboard-open .wawa-keyboard-panel[id^="down_"],
html.wawa-keyboard-open .wawa-keyboard-panel.im_pt_code_modal_section {
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: calc(100% - 24px);
    transform: none !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    z-index: 10000;
}
html.wawa-keyboard-open .wawa-keyboard-panel[id^="down_"] > table {
    width: 100% !important;
}
html.wawa-keyboard-open .im_pt_common_filter_pop_wrap.modal-open .im_pt_common_filter_pop_content_wrap {
    top: var(--wawa-visible-top);
    height: var(--wawa-visible-height);
    max-height: var(--wawa-visible-height);
    overflow-y: auto;
    box-sizing: border-box;
    transition: none;
}
html.wawa-keyboard-open :is(input, textarea, [contenteditable="true"]) { scroll-margin-block: 16px; }
@media (prefers-reduced-motion: reduce) {
    #im_pt_header .im_pt_mb_wrap { transition: none; }
}
