/* Global login uses the shared popup shell on desktop and the shared mobile
 * Bottom Sheet shell on small screens. Authentication/iframe behavior remains
 * specific to this module. */
.vivi-global-login[hidden]{display:none!important}
.vivi-global-login{position:fixed;top:var(--vivi-header-height,76px);right:0;bottom:0;left:0;z-index:100400;display:none;align-items:flex-start;justify-content:center;padding:18px 24px 24px;box-sizing:border-box;overflow:hidden;font-family:inherit;color:var(--vivi-color-text,#5a5a5a)}
.vivi-global-login.is-open{display:flex}
.admin-bar .vivi-global-login{top:calc(var(--vivi-header-height,76px) + 32px)}
.vivi-global-login__backdrop{position:absolute;inset:0;background:rgba(17,24,39,.52);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.vivi-global-login__panel{position:relative;z-index:1;display:flex!important;flex-direction:column!important;width:min(620px,calc(100vw - 48px));max-width:min(620px,calc(100vw - 48px));height:min(760px,calc(100dvh - var(--vivi-header-height,76px) - 54px));max-height:calc(100dvh - var(--vivi-header-height,76px) - 54px);min-height:0!important;margin:0;padding:0!important;border:1px solid var(--vivi-color-border,rgba(31,26,23,.12));border-radius:var(--vivi-radius,8px);background:var(--vivi-color-card,#fff)!important;box-shadow:0 24px 70px rgba(15,23,42,.28);overflow:hidden!important;outline:none;box-sizing:border-box}
.vivi-global-login__handle{display:none}
.vivi-global-login__header{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:78px;padding:18px 72px 16px 24px;border-bottom:1px solid var(--vivi-color-border,#ddd);background:var(--vivi-color-card,#fff);box-sizing:border-box}
.vivi-global-login__title-wrap{min-width:0}
.vivi-global-login__eyebrow{display:block;margin:0 0 5px;color:var(--vivi-color-primary,var(--vivi-color-orange,#a86d12));font-size:var(--vivi-fs-xs,12px);font-weight:700;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}
.vivi-global-login__title{margin:0;color:var(--vivi-color-heading,var(--vivi-color-text,#151515));font-family:var(--vivi-font-heading,inherit);font-size:var(--vivi-fs-h3,24px);font-weight:700;line-height:1.25}
.vivi-global-login__close{appearance:none;-webkit-appearance:none;position:absolute;top:18px;right:18px;z-index:12;display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;margin:0;padding:0;border:1px solid var(--vivi-color-border,#ddd);border-radius:var(--vivi-radius,8px);background:rgba(255,255,255,.96);color:var(--vivi-color-heading,var(--vivi-color-text,#151515));box-shadow:0 8px 22px rgba(15,23,42,.10);font-size:0;line-height:1;cursor:pointer}
.vivi-global-login__close span{display:block;font-size:22px;font-weight:400;line-height:1;transform:translateY(-1px)}
.vivi-global-login__body{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:var(--vivi-color-bg,#f7f7f7)}
.vivi-global-login__frame{display:block;width:100%;height:100%;border:0;background:#fff}
.vivi-global-login__loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:var(--vivi-space-sm,12px);padding:var(--vivi-space-lg,24px);background:var(--vivi-color-bg,#f7f7f7);color:var(--vivi-color-muted,#666);font-size:var(--vivi-fs-small,14px);transition:opacity .18s ease,visibility .18s ease}
.vivi-global-login.is-frame-ready .vivi-global-login__loading{opacity:0;visibility:hidden;pointer-events:none}
.vivi-global-login__spinner{width:22px;height:22px;border:2px solid var(--vivi-color-border,#ddd);border-top-color:var(--vivi-color-text,#111);border-radius:50%;animation:vivi-global-login-spin .8s linear infinite}
@keyframes vivi-global-login-spin{to{transform:rotate(360deg)}}
.vivi-global-login__footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--vivi-space-md,16px);min-height:52px;padding:8px 24px;border-top:1px solid var(--vivi-color-border,#ddd);background:var(--vivi-color-card,#fff);color:var(--vivi-color-muted,#666);font-size:var(--vivi-fs-xs,12px);box-sizing:border-box}
.vivi-global-login__footer a{color:var(--vivi-color-text,#111);font-weight:var(--vivi-fw-bold,600);text-decoration:none}

@media(min-width:861px){
  .vivi-global-login__panel{width:min(620px,calc(100vw - 48px))!important;max-width:min(620px,calc(100vw - 48px))!important;height:min(760px,calc(100dvh - var(--vivi-header-height,76px) - 54px))!important;max-height:calc(100dvh - var(--vivi-header-height,76px) - 54px)!important}
  body.admin-bar .vivi-global-login__panel{height:min(760px,calc(100dvh - var(--vivi-header-height,76px) - 32px - 54px))!important;max-height:calc(100dvh - var(--vivi-header-height,76px) - 32px - 54px)!important}
}

@media(max-width:860px){
  .vivi-global-login{top:0;right:0;bottom:0;left:0;inset:0;display:block;padding:0;pointer-events:none;background:transparent}
  .admin-bar .vivi-global-login{top:0}
  .vivi-global-login.is-open{display:block;pointer-events:auto}
  .vivi-global-login__backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
  .vivi-global-login__panel{position:absolute;left:0;right:0;bottom:0;width:100%;max-width:100%;height:min(calc(72dvh + var(--vivi-mobile-bottom-nav-height,calc(69px + env(safe-area-inset-bottom)))),calc(590px + var(--vivi-mobile-bottom-nav-height,calc(69px + env(safe-area-inset-bottom)))),calc(100dvh - var(--vivi-header-height-mobile,66px) - 8px));max-height:calc(100dvh - var(--vivi-header-height-mobile,66px) - 8px);border-width:1px 0 0;border-radius:var(--vivi-radius,8px) var(--vivi-radius,8px) 0 0;box-shadow:0 -18px 42px rgba(17,24,39,.18);transform:translateY(104%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
  .vivi-global-login.is-open .vivi-global-login__panel{transform:translateY(0)}
  .vivi-global-login__handle{position:absolute;top:8px;left:50%;z-index:6;display:block;width:38px;height:4px;border-radius:var(--vivi-radius,8px);background:#c4c7c5;transform:translateX(-50%)}
  .vivi-global-login__header{min-height:72px;padding:18px 58px 10px 18px;border-bottom:0}
  .vivi-global-login__title{font-size:15px}
  .vivi-global-login__eyebrow{margin:0;font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}
  .vivi-global-login__close{top:18px;right:14px;width:36px;height:36px;min-width:36px;min-height:36px;border:0;background:rgba(17,24,39,.06);box-shadow:none}
  .vivi-global-login__footer{min-height:52px;padding:8px 16px calc(8px + var(--vivi-mobile-bottom-nav-height,calc(69px + env(safe-area-inset-bottom))));flex-wrap:wrap}
}

@media(prefers-reduced-motion:reduce){
  .vivi-global-login__loading{transition:none!important}
}

.vivi-login-gate-main{min-height:calc(100dvh - var(--vivi-header-height,76px));display:grid;place-items:center;padding:calc(var(--vivi-header-height,76px) + 40px) var(--vivi-space-lg,24px) 60px;background:var(--vivi-color-bg,#f7f7f7)}
.vivi-login-gate-card{width:min(100%,620px);padding:32px;text-align:center;background:var(--vivi-color-card,#fff);border:1px solid var(--vivi-color-border,#ddd);border-radius:var(--vivi-radius,8px)}
.vivi-login-gate-kicker{display:block;margin-bottom:8px;color:var(--vivi-color-orange,#a86d12);font-size:12px;font-weight:600}
.vivi-login-gate-card h1{margin:0 0 12px;font-size:28px}
.vivi-login-gate-card p{margin:0 0 24px;color:var(--vivi-color-muted,#666)}
@media(max-width:860px){.vivi-login-gate-main{padding-left:16px;padding-right:16px}.vivi-login-gate-card{padding:24px 18px}}

/* BuddyBoss login widget is reduced to the shared VIVI login entry. */
.vivi-buddyboss-login-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:0 var(--vivi-space-md,16px);border:0;border-radius:var(--vivi-radius,8px);background:var(--vivi-color-text,#151515);color:#fff;font:inherit;font-weight:var(--vivi-fw-bold,600);cursor:pointer}
