/* ==========================================================================
   Sign in - assets/css/pages/signin.css
   Scoped to the /sign-in/ template (page-sign-in.php). Prefix: .signin-
   Composes shared v- classes; only the split app shell lives here.
   ========================================================================== */

/* Full-viewport app shell: dark brand rail + portal pane below fixed header */
.signin-main{position:relative;display:flex;flex-direction:column;min-height:100vh;
  padding-top:var(--header-h);background:var(--paper-soft)}
.signin-shell{flex:1;display:grid;grid-template-columns:minmax(400px,44%) 1fr;
  min-height:calc(100vh - var(--header-h))}

/* ---- Brand rail (dark; markup carries .v-dark .v-grain + .v-aurora) ---- */
.signin-brand{display:flex}
.signin-brand-inner{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;
  width:100%;max-width:560px;margin:0 auto;padding:64px 52px}
.signin-title{margin:18px 0 0;font-size:clamp(34px,3.4vw,46px);line-height:1.05;letter-spacing:-.032em}
.signin-lead{margin-top:16px}
.signin-facts{margin:32px 0 40px}
.signin-meta{margin-top:auto;padding-top:26px;display:flex;align-items:center;gap:18px;
  border-top:1px solid var(--d-line)}
.signin-meta .v-mono{color:var(--d-faint)}
.signin-meta-lines{display:grid;gap:7px}
.signin-meta-lines .v-mono{margin:0}
.signin-qr{flex:0 0 auto;border-radius:8px;overflow:hidden}

/* ---- Portal pane (Freemius [fs_members] output, container-relative) ---- */
.signin-portal{position:relative;background:var(--paper-soft);border-left:1px solid var(--line)}
.signin-portal #fs_dashboard_container{position:absolute!important;top:0!important;right:0!important;
  bottom:0!important;left:0!important;width:100%!important;height:100%!important;z-index:1!important}
.signin-portal #fs_dashboard_container iframe{display:block;width:100%!important;height:100%!important;border:0}

/* ---- Fallback pane (portal plugin inactive / keys missing) ---- */
.signin-side{display:grid;place-items:center;padding:60px 40px;background:var(--paper-soft);
  border-left:1px solid var(--line)}
.signin-card{width:100%;max-width:480px;text-align:center;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:46px 42px}
.signin-card .v-eyebrow{margin-bottom:18px}
.signin-card h2{margin:0;font-family:var(--display);font-size:clamp(26px,2.6vw,32px);
  font-weight:700;letter-spacing:-.025em;color:var(--ink)}
.signin-card p{margin:16px 0 0;color:var(--text);font-size:16px;line-height:1.65}
.signin-card .v-btn{margin-top:28px;width:100%}
.signin-card-note{margin-top:14px;font-size:13px;color:var(--faint)}
.signin-admin{margin:24px 0 0;font-family:var(--mono);font-size:11.5px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;line-height:1.75;color:var(--amber-d)}

/* Portal state is an app surface: the marketing footer drops out */
body:has(.signin-shell.has-portal) .v-footer{display:none!important}

/* ---- Responsive ---- */
@media(max-width:1024px){
  .signin-shell{grid-template-columns:1fr;min-height:0}
  .signin-brand-inner{max-width:none;padding:46px 36px}
  .signin-facts{margin:26px 0 0}
  .signin-meta{margin-top:40px}
  .signin-portal,.signin-side{border-left:0;border-top:1px solid var(--line)}
  .signin-portal{min-height:calc(100vh - var(--header-h))}
}
@media(max-width:768px){
  .signin-brand-inner{padding:40px 26px}
  .signin-title{font-size:clamp(30px,7vw,38px)}
  .signin-side{padding:44px 24px}
  .signin-card{padding:38px 26px}
}
@media(max-width:520px){
  .signin-brand-inner{padding:34px 20px}
  .signin-meta{gap:14px}
  .signin-portal{min-height:70vh}
}

/* ---- Reduced motion ----
   This file defines no transitions or animations of its own (the shell is
   static); shared-component motion is covered by the global rule in
   main.css. Block kept as a documented no-op guard. */
@media(prefers-reduced-motion:reduce){
  .signin-portal iframe{scroll-behavior:auto}
}
