/* ================================================================
   CORA 1.9.18 — AUTH STABILITY
   Final authority for the access dialog.
   - isolates the real Cora orb from legacy dock positioning/backgrounds
   - makes mobile auth a true visual-viewport surface with its own scroll owner
   ================================================================ */

/* ---------- Desktop / tablet orb isolation ---------- */
#authDialog.auth-v0550 .auth-aside-main{
  min-width:0!important;
  min-height:0!important;
}
#authDialog.auth-v0550 .auth-aside-orb.auth-listening-stage{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:220px!important;
  height:220px!important;
  min-width:220px!important;
  min-height:220px!important;
  margin:0 auto!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
  isolation:isolate!important;
}
#authDialog.auth-v0550 .auth-aside-orb.auth-listening-stage::before,
#authDialog.auth-v0550 .auth-aside-orb.auth-listening-stage::after{
  display:none!important;
  content:none!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock.assistant-dock{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:166px!important;
  height:166px!important;
  min-width:166px!important;
  min-height:166px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  overflow:visible!important;
  pointer-events:none!important;
  z-index:2!important;
  contain:layout style!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock.assistant-dock::before{
  left:50%!important;
  top:50%!important;
  width:184px!important;
  height:184px!important;
  transform:translate3d(-50%,-50%,0) scale(1.02)!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock.assistant-dock::after{
  display:none!important;
  content:none!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock .assistant-console{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:166px!important;
  height:166px!important;
  min-width:166px!important;
  min-height:166px!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
  transform:none!important;
  pointer-events:none!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock .liquid-orb{
  position:relative!important;
  inset:auto!important;
  width:132px!important;
  height:132px!important;
  min-width:132px!important;
  min-height:132px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  transform:none!important;
  pointer-events:none!important;
  cursor:default!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock .liquid-orb canvas{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:276px!important;
  height:276px!important;
  max-width:none!important;
  max-height:none!important;
  transform:translate3d(-50%,-50%,0)!important;
  pointer-events:none!important;
}
#authDialog.auth-v0550 .auth-public-orb-dock .orb-glass{
  display:block!important;
}

/* ---------- Mobile: dialog belongs to the visual viewport, not the page ---------- */
@media(max-width:820px){
  #authDialog.auth-v0550,
  #authDialog.auth-v0550.dialog-fallback-open,
  #authDialog.auth-v0550.cora-dialog-fallback{
    position:fixed!important;
    inset:auto!important;
    top:var(--cora-vv-top,0px)!important;
    left:var(--cora-vv-left,0px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--cora-vvw,100vw)!important;
    max-width:var(--cora-vvw,100vw)!important;
    height:var(--cora-vvh,100dvh)!important;
    max-height:var(--cora-vvh,100dvh)!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    transform:none!important;
    background:linear-gradient(155deg,#fbfbfe 0%,#f8f6ff 100%)!important;
    overscroll-behavior:none!important;
  }
  #authDialog.auth-v0550[open]{display:block!important}
  #authDialog.auth-v0550 .auth-layout{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    display:block!important;
    overflow:hidden!important;
    background:transparent!important;
  }
  #authDialog.auth-v0550 .auth-aside{display:none!important}
  #authDialog.auth-v0550 .auth-pane{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:max(24px,calc(env(safe-area-inset-top) + 18px)) max(18px,env(safe-area-inset-right)) max(34px,calc(env(safe-area-inset-bottom) + 22px)) max(18px,env(safe-area-inset-left))!important;
    display:block!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:auto!important;
    scroll-padding-top:76px!important;
    scroll-padding-bottom:max(220px,calc(env(safe-area-inset-bottom) + 160px))!important;
    background:transparent!important;
  }
  #authDialog.auth-v0550 .auth-pane::-webkit-scrollbar{display:none!important}
  #authDialog.auth-v0550 .auth-pane>.dialog-close{
    position:fixed!important;
    top:calc(var(--cora-vv-top,0px) + max(12px,env(safe-area-inset-top)))!important;
    right:max(14px,env(safe-area-inset-right))!important;
    left:auto!important;
    bottom:auto!important;
    z-index:50!important;
    width:42px!important;
    height:42px!important;
    margin:0!important;
    border-radius:14px!important;
    background:rgba(247,245,251,.94)!important;
    box-shadow:0 7px 24px rgba(53,42,86,.08)!important;
  }
  #authDialog.auth-v0550 .auth-mobile-brand{
    display:block!important;
    position:relative!important;
    width:96px!important;
    margin:0 0 26px!important;
    padding:0!important;
  }
  #authDialog.auth-v0550 .auth-mobile-brand img{
    display:block!important;
    width:96px!important;
    max-width:100%!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:left center!important;
  }
  #authDialog.auth-v0550 .auth-form,
  #authDialog.auth-v0550 #loginForm,
  #authDialog.auth-v0550 #registerForm{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    max-width:560px!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0 auto!important;
    padding:0 0 28px!important;
    display:block!important;
    transform:none!important;
  }
  #authDialog.auth-v0550 .auth-form[hidden]{display:none!important}
  #authDialog.auth-v0550 .auth-form-head{padding-right:48px!important}
  #authDialog.auth-v0550 .auth-form-head h2,
  #authDialog.auth-v0550 .auth-form h2{
    max-width:100%!important;
    margin:9px 0 13px!important;
    font-size:clamp(38px,10.8vw,50px)!important;
    line-height:.96!important;
    letter-spacing:-.052em!important;
    text-wrap:balance!important;
    overflow-wrap:normal!important;
  }
  #authDialog.auth-v0550 .auth-form-head>p,
  #authDialog.auth-v0550 .auth-form>p{
    max-width:560px!important;
    margin:0 0 18px!important;
    font-size:13px!important;
    line-height:1.55!important;
  }
  #authDialog.auth-v0550 .auth-continuity{
    margin:0 0 17px!important;
    padding:12px 13px!important;
  }
  #authDialog.auth-v0550 .auth-fields-grid,
  #authDialog.auth-v0550 .auth-fields-grid.auth-fields-login{
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    margin:0 0 15px!important;
  }
  #authDialog.auth-v0550 .auth-field,
  #authDialog.auth-v0550 .auth-field.full{
    width:100%!important;
    min-width:0!important;
    grid-column:auto!important;
  }
  #authDialog.auth-v0550 .auth-field input:not([type=radio]):not([type=checkbox]){
    width:100%!important;
    min-width:0!important;
    height:56px!important;
    min-height:56px!important;
    font-size:16px!important;
  }
  #authDialog.auth-v0550 .auth-submit{
    width:100%!important;
    min-height:56px!important;
    margin:0!important;
  }
  #authDialog.auth-v0550 .auth-privacy,
  #authDialog.auth-v0550 .auth-data-note{
    margin-top:13px!important;
    padding:12px 13px!important;
  }
  #authDialog.auth-v0550 .register-security{grid-template-columns:1fr!important}
}

@media(max-width:420px){
  #authDialog.auth-v0550 .auth-pane{
    padding-left:max(16px,env(safe-area-inset-left))!important;
    padding-right:max(16px,env(safe-area-inset-right))!important;
  }
  #authDialog.auth-v0550 .auth-mobile-brand{width:88px!important;margin-bottom:22px!important}
  #authDialog.auth-v0550 .auth-mobile-brand img{width:88px!important}
  #authDialog.auth-v0550 .auth-form-head h2,
  #authDialog.auth-v0550 .auth-form h2{font-size:clamp(36px,11.4vw,46px)!important}
}

/* When the software keyboard is visible, content — not decoration — gets priority. */
body.keyboard-open #authDialog.auth-v0550 .auth-pane{
  padding-top:max(14px,env(safe-area-inset-top))!important;
  scroll-padding-bottom:max(260px,calc(env(safe-area-inset-bottom) + 220px))!important;
}
body.keyboard-open #authDialog.auth-v0550 .auth-mobile-brand{display:none!important}
body.keyboard-open #authDialog.auth-v0550 .auth-form-head{padding-right:48px!important}
body.keyboard-open #authDialog.auth-v0550 .auth-form-head h2,
body.keyboard-open #authDialog.auth-v0550 .auth-form h2{
  margin-top:0!important;
  font-size:30px!important;
  line-height:1!important;
}
body.keyboard-open #authDialog.auth-v0550 .auth-form-head>p,
body.keyboard-open #authDialog.auth-v0550 .auth-continuity,
body.keyboard-open #authDialog.auth-v0550 .auth-privacy,
body.keyboard-open #authDialog.auth-v0550 .auth-data-note{
  display:none!important;
}

/* Share-sheet authentication keeps its compact copy, but uses the same safe viewport. */
@media(max-width:820px){
  body.is-share-auth #authDialog.auth-v0550 .auth-share-head h2{font-size:34px!important;line-height:1!important}
  body.is-share-auth #authDialog.auth-v0550 .auth-share-head p{font-size:13px!important;line-height:1.5!important}
  body.is-share-auth #authDialog.auth-v0550 .auth-share-pending{margin-bottom:16px!important}
}

/* Higher-specificity authority for the Instagram/share-sheet return path. */
@media(max-width:820px){
  body.is-share-auth #authDialog.auth-v0550,
  body.is-share-auth #authDialog.auth-v0550.dialog-fallback-open,
  body.is-share-auth #authDialog.auth-v0550.cora-dialog-fallback{
    position:fixed!important;
    inset:auto!important;
    top:var(--cora-vv-top,0px)!important;
    left:var(--cora-vv-left,0px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--cora-vvw,100vw)!important;
    max-width:var(--cora-vvw,100vw)!important;
    height:var(--cora-vvh,100dvh)!important;
    max-height:var(--cora-vvh,100dvh)!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    transform:none!important;
  }
  body.is-share-auth #authDialog.auth-v0550 .auth-layout{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  body.is-share-auth #authDialog.auth-v0550 .auth-pane{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    padding:max(20px,calc(env(safe-area-inset-top) + 14px)) max(18px,env(safe-area-inset-right)) max(32px,calc(env(safe-area-inset-bottom) + 20px)) max(18px,env(safe-area-inset-left))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-padding-bottom:max(220px,calc(env(safe-area-inset-bottom) + 160px))!important;
  }
  body.is-share-auth #authDialog.auth-v0550 .auth-pane>.dialog-close{
    position:fixed!important;
    top:calc(var(--cora-vv-top,0px) + max(12px,env(safe-area-inset-top)))!important;
    right:max(14px,env(safe-area-inset-right))!important;
    margin:0!important;
    float:none!important;
  }
}
