/*
 * JEEKO SuperApp v6 — UI Patch Build 8
 * Global Touch Premium
 */
html,body,body *{
    -webkit-tap-highlight-color:transparent!important;
}

a,button,input,select,textarea,summary,[role="button"],[tabindex],
.jeeko-clickable,.jeeko-card,.jeeko-banner-slide{
    outline:none!important;
    -webkit-focus-ring-color:transparent!important;
}

a:focus,a:focus-visible,
button:focus,button:focus-visible,
summary:focus,summary:focus-visible,
[role="button"]:focus,[role="button"]:focus-visible,
[tabindex]:focus,[tabindex]:focus-visible{
    outline:none!important;
    outline-offset:0!important;
}

body.jeeko-keyboard-navigation a:focus-visible,
body.jeeko-keyboard-navigation button:focus-visible,
body.jeeko-keyboard-navigation summary:focus-visible,
body.jeeko-keyboard-navigation [role="button"]:focus-visible,
body.jeeko-keyboard-navigation [tabindex]:focus-visible{
    box-shadow:
        0 0 0 3px rgba(7,94,247,.18),
        0 0 0 1px rgba(7,94,247,.72)!important;
}

input:focus,select:focus,textarea:focus,
input:focus-visible,select:focus-visible,textarea:focus-visible{
    outline:none!important;
    border-color:#075EF7!important;
    box-shadow:0 0 0 4px rgba(7,94,247,.10)!important;
}

.jeeko-touch-premium{
    position:relative!important;
    isolation:isolate;
    overflow:hidden;
    transform:translateZ(0);
    backface-visibility:hidden;
    transition:
        transform .14s cubic-bezier(.22,.75,.2,1),
        filter .14s ease,
        box-shadow .18s ease!important;
}

.jeeko-touch-premium:active,
.jeeko-touch-premium.is-jeeko-pressed{
    transform:scale(.975)!important;
    filter:brightness(.985);
}

nav .jeeko-touch-premium:active,
nav .jeeko-touch-premium.is-jeeko-pressed{
    transform:scale(.94)!important;
}

.jeeko-touch-ripple{
    position:absolute!important;
    z-index:-1!important;
    display:block!important;
    border-radius:50%!important;
    background:rgba(7,94,247,.14)!important;
    pointer-events:none!important;
    transform:scale(0);
    opacity:1;
    animation:jeekoTouchRipple .48s ease-out forwards;
}

.jeeko-touch-premium.jeeko-touch-on-dark .jeeko-touch-ripple{
    background:rgba(255,255,255,.23)!important;
}

@keyframes jeekoTouchRipple{
    to{transform:scale(1);opacity:0}
}

@media(hover:hover) and (pointer:fine){
    .jeeko-touch-premium:hover{
        transform:translateY(-1px);
        filter:brightness(1.02);
    }
}

input.jeeko-touch-premium,
select.jeeko-touch-premium,
textarea.jeeko-touch-premium{
    overflow:visible!important;
    isolation:auto;
}

@media(prefers-reduced-motion:reduce){
    .jeeko-touch-premium{transition:none!important}
    .jeeko-touch-ripple{display:none!important}
}

/*
 * JEEKO Belikan Build 4.5 — Stable Native Screen Lock
 * Mengunci viewport aplikasi agar tidak bergeser horizontal / zoom,
 * namun scroll vertikal tetap normal.
 */
html.jeeko-app-screen-locked,
html.jeeko-app-screen-locked body{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
}

html.jeeko-app-screen-locked body{
    position:relative!important;
    margin-left:0!important;
    margin-right:0!important;
    touch-action:pan-y!important;
}

html.jeeko-app-screen-locked .jeeko-enterprise-spa,
html.jeeko-app-screen-locked .jeeko-enterprise-stage,
html.jeeko-app-screen-locked .jeeko-enterprise-pane,
html.jeeko-app-screen-locked .jeeko-home6,
html.jeeko-app-screen-locked .jeeko-customer-app{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
}

html.jeeko-app-screen-locked .jeeko-enterprise-spa *,
html.jeeko-app-screen-locked .jeeko-home6 *,
html.jeeko-app-screen-locked .jeeko-customer-app *{
    box-sizing:border-box;
}

/* Bottom navigation tetap di tengah layar dan tidak ikut terseret horizontal. */
html.jeeko-app-screen-locked .jeeko-enterprise-nav{
    max-width:calc(100vw - 16px)!important;
    margin-left:0!important;
    margin-right:0!important;
    overscroll-behavior:none!important;
}

/* Hindari zoom otomatis browser saat input mendapat fokus pada mobile Safari/WebView. */
@media(max-width:768px){
    html.jeeko-app-screen-locked input,
    html.jeeko-app-screen-locked select,
    html.jeeko-app-screen-locked textarea{
        font-size:max(16px,1em)!important;
    }
}

/* Build 4.5 — hindari repaint/flicker pada Android WebView saat scroll vertikal. */
html.jeeko-app-screen-locked .jeeko-enterprise-spa,
html.jeeko-app-screen-locked .jeeko-home6{
    transform:none!important;
    -webkit-transform:none!important;
}


/* JEEKO v7.0.25: confirmation map overrides generic app pan-y lock. */
html.jm725-native-map-mode,
html.jm725-native-map-mode body{
  touch-action:none!important;
  overscroll-behavior:none!important;
  overflow:hidden!important;
}
html.jm725-native-map-mode .leaflet-container{
  touch-action:none!important;
  overscroll-behavior:none!important;
}


/* v7.0.26: native map confirmation overrides every generic app gesture rule. */
html.jm726-confirm-native,
html.jm726-confirm-native body{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
html.jm726-confirm-native .leaflet-container{
  touch-action:none!important;
  overscroll-behavior:none!important;
}


/* v7.0.27 — generic app gestures must not override confirmation map. */
html.jm727-confirm-native,
html.jm727-confirm-native body{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
html.jm727-confirm-native .leaflet-container{
  touch-action:none!important;
  overscroll-behavior:none!important;
}


/* v7.0.28 safe boxed confirmation map */
html.jm727-confirm-native .jm728-safe-map-box .leaflet-container{
  touch-action:none!important;
  overscroll-behavior:none!important;
}


/* JEEKO v7.0.30: allow tiny technical vertical scroll for Android WebView PTR guard. */
html.jm730-webview-ptr-guard,
html.jm730-webview-ptr-guard body{
  position:static!important;
  overflow-y:scroll!important;
  overscroll-behavior:none!important;
}
