/* SGK account bridge */
.vnn-sgk-assigned-banner{margin:12px 0 14px;padding:14px 16px;border:1px solid #b8dcd1;border-radius:16px;background:linear-gradient(135deg,#eefaf6,#fff);display:flex;align-items:center;justify-content:space-between;gap:14px}
.vnn-sgk-assigned-banner.hidden{display:none!important}.vnn-sgk-assigned-banner>div{display:grid;gap:3px}.vnn-sgk-assigned-banner span{font-size:12px;font-weight:950;color:#147060}.vnn-sgk-assigned-banner strong{font-size:18px;color:#173f36}.vnn-sgk-assigned-banner small{color:#61766f}
.vnn-sgk-assigned-banner button{min-height:44px;padding:9px 14px;border:0;border-radius:12px;background:#107565;color:#fff;font-weight:900;white-space:nowrap}
.vnn-sgk-sync-ok{padding:10px 12px;border-radius:12px;background:#edf8f4;color:#176858;font-weight:800}
@media(max-width:640px){.vnn-sgk-assigned-banner{align-items:stretch;flex-direction:column}.vnn-sgk-assigned-banner button{width:100%}.vnn-sgk-assigned-banner strong{font-size:16px}}


/* SGK v2.3.52 · dedicated student/parent login */
.vnn-sgk-login-gate{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  padding:18px;background:rgba(15,45,38,.58);backdrop-filter:blur(6px);
  /* The background stays locked; the overlay must be independently scrollable
     if the registration form exceeds the viewport on Safari/Android. */
  box-sizing:border-box;overflow-x:hidden;overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
.vnn-sgk-login-gate.hidden{display:none!important}
.vnn-sgk-login-card{
  width:min(460px,100%);
  display:grid;gap:12px;align-content:start;
  /* A long parent form otherwise extends beyond the fixed login overlay:
     body scroll is intentionally disabled while SGK authentication is shown. */
  flex:0 1 auto;min-height:0;
  max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);
  box-sizing:border-box;overflow-x:hidden;overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:22px;
  border:1px solid #c9ddd5;
  border-radius:22px;
  background:#fff;
  box-shadow:0 24px 70px rgba(12,45,37,.25);
}
.vnn-sgk-login-card h2{margin:0;color:#173f36;font-size:24px}
.vnn-sgk-login-card p{margin:0;color:#5d746c;line-height:1.55}
.vnn-sgk-login-card>small{color:#667a73;line-height:1.5}
.vnn-sgk-login-eyebrow{font-size:12px;font-weight:950;letter-spacing:.08em;color:#17715f}
.vnn-sgk-login-card label{display:grid;gap:6px}
.vnn-sgk-login-card label>span{font-size:12px;font-weight:900;color:#355d53}
.vnn-sgk-login-card input{
  width:100%;min-height:46px;box-sizing:border-box;
  border:1px solid #cbded7;border-radius:12px;padding:10px 12px;
  background:#fff;color:#173f36;font:inherit;outline:none;
}
.vnn-sgk-login-card input:focus{border-color:#4b9a85;box-shadow:0 0 0 3px rgba(75,154,133,.14)}
.vnn-sgk-login-pass{display:grid;grid-template-columns:1fr auto;gap:7px}
.vnn-sgk-login-pass button,.vnn-sgk-login-home{
  border:1px solid #d3e0db;border-radius:11px;background:#f6faf8;color:#42665c;font-weight:850;
}
.vnn-sgk-login-pass button{min-width:46px}
.vnn-sgk-login-home{justify-self:start;padding:8px 10px}
.vnn-sgk-remember{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;color:#62776f}
.vnn-sgk-remember input{width:16px;height:16px;min-height:0;accent-color:#157865}
.vnn-sgk-login-submit{
  min-height:48px;border:0;border-radius:12px;background:#117764;color:#fff;font-weight:950;font-size:15px;
}
.vnn-sgk-login-submit:disabled{opacity:.65}
.vnn-sgk-login-message{min-height:20px;font-size:12px;color:#62766f}
.vnn-sgk-login-message.bad{padding:8px 10px;border-radius:10px;background:#fff1ec;color:#88483d}
html.vnn-sgk-auth-required body{overflow:hidden}
@media(max-width:640px){
  .vnn-sgk-login-gate{align-items:flex-end;padding:0}
  .vnn-sgk-login-card{
    width:100%;max-width:100%;flex:0 1 auto;
    /* Keep the final consent checkbox and submit button reachable even with
       iPhone bottom toolbar/safe area and Safari dynamic viewport changes. */
    max-height:calc(100vh - 8px);
    max-height:calc(100dvh - env(safe-area-inset-top) - 8px);
    border-radius:22px 22px 0 0;
    padding:18px 16px calc(22px + env(safe-area-inset-bottom));
    -webkit-overflow-scrolling:touch;
  }
  .vnn-sgk-login-card h2{font-size:21px}
}

/* SGK v2.3.54 · assigned Lesson lock */
.lesson-map button.vnn-managed-lesson-locked{
  opacity:.58;
  cursor:not-allowed;
  border-color:#d9dfdc;
  background:#f4f6f5;
}
.lesson-map button.vnn-managed-lesson-locked .lesson-enter{
  color:#78847f;
}
