/* ──────────────────────────────────────────────────────────────────────────
 * LaoEdTech — Canvas login (centered card)
 * Matches Sign In.html v2 (2026-05-20): centered white card with logo,
 * "Welcome back." heading, soft radial gradients on canvas background.
 *
 * Drop into Theme Editor → "Login Screen → CSS file" (or paste into the
 * brand-config css overrides). Reversible: revert brand_config_md5.
 *
 * Brand:
 *   ink     #0B1F3A   (navy)
 *   accent  #1AA0E2   (brand cyan-blue)
 *   orange  #F2A516   (logo head)
 *   canvas  #f6f5f1   (off-white)
 * ──────────────────────────────────────────────────────────────────────── */

@import url("https://fonts.googleapis.com/css2?family=Geist:wght@300;400;450;500;600;700&family=Instrument+Serif:ital@0;1&display=swap");

:root {
  --lao-ink:       #0B1F3A;
  --lao-canvas:    #f6f5f1;
  --lao-line:      #e8e5dc;
  --lao-muted:     #6b7280;
  --lao-muted-2:   #9aa1ad;
  --lao-accent:    #1AA0E2;
  --lao-orange:    #F2A516;
  --lao-danger:    #c8362a;
  --lao-radius:    10px;
  --lao-shadow:    0 1px 0 rgba(11,31,58,.04), 0 30px 60px -30px rgba(11,31,58,.15);
}

/* ── Strip the split layout, hide noise ─────────────────────────────────── */
.lao-hero,
.lao-form__sub,
.lao-form-bottom,
.lao-topbar,
.lao-cta,
.lao-signup,
.lao-request-access,
.ic-Login__content > .ic-Login__greeting,
.ic-Login__topbar,
.ic-Login__header,
.ic-Login__signup,
.ic-Login__signup-link,
.ic-Login__container > .ic-Login__signup,
.ic-Login a[href*="register"],
.ic-Login a[href*="signup"],
.ic-Login a[href*="sign_up"],
.ic-Login a[href*="register_from_website"],
.ic-Login__panel-content > div:first-child:has(a[href*="register"]),
.login-logo,
#flash_message_holder { display: none !important; }

/* ── Hide the entire forgot-password page (route: /login/canvas/forgot_password) ── */
body.with-forgot-password-screen .lao-form-panel,
body.with-forgot-password-screen #f1_container,
body.with-forgot-password-screen #login_form,
body.with-forgot-password-screen form#forgot_password_form,
body.with-ic-Login form#forgot_password_form,
.ic-Login form[action*="forgot_password"],
.ic-Login form[action*="password_reset"] { display: none !important; }

/* ── Page = canvas color + soft brand-blue + navy radial gradient washes ─ */
body.with-ic-Login,
.ic-Login {
  background: var(--lao-canvas) !important;
  background-image:
    radial-gradient(1200px 600px at 50% -10%, rgba(26,160,226,.08), transparent 60%),
    radial-gradient(800px 400px at 50% 110%, rgba(11,31,58,.05), transparent 60%) !important;
  color: var(--lao-ink) !important;
  font: 15px/1.5 "Geist", "Geist Fallback", ui-sans-serif, system-ui, sans-serif !important;
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.ic-Login {
  display: grid !important;
  grid-template-columns: 1fr !important;
  place-items: center !important;
  padding: 48px 20px !important;
  min-height: 100vh !important;
}

.ic-Login,
.ic-Login * { box-sizing: border-box; }

/* ── Centered card (460px max-width, white, 16px radius, soft shadow) ──── */
.lao-form-panel,
.ic-Login__content {
  width: 100% !important;
  max-width: 460px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: block !important;
  background: transparent !important;
}

.lao-form-panel form,
.lao-form-panel .lao-form,
.ic-Login__content form,
.ic-Login form {
  width: 100% !important;
  background: #fff !important;
  border: 1px solid var(--lao-line) !important;
  border-radius: 16px !important;
  padding: 36px 40px 28px !important;
  box-shadow: var(--lao-shadow) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}

/* ── Centered logo above the eyebrow ───────────────────────────────────── */
.ic-Login__logo,
.lao-form-panel .lao-brand,
.lao-form-panel img.lao-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 0 28px !important;
  color: var(--lao-ink) !important;
  font-weight: 500 !important;
  letter-spacing: -.025em !important;
  font-size: 18px !important;
  max-height: 48px !important;
}

/* If logo is an <img> uploaded via Theme Editor */
.ic-Login__logo img,
.lao-form-panel .lao-brand img,
.lao-form-panel img.lao-logo { max-height: 48px !important; width: auto !important; }

/* ── Eyebrow "— SIGN IN" ───────────────────────────────────────────────── */
.lao-eyebrow,
.lao-form-panel .lao-eyebrow {
  font-size: 12.5px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--lao-muted) !important;
  font-weight: 500 !important;
  margin: 0 auto 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  text-align: center !important;
  width: 100% !important;
}
.lao-eyebrow::before {
  content: "";
  width: 18px;
  height: 1px;
  background: currentColor;
  opacity: .4;
}

/* ── Title "Welcome back." / "Sign in" — centered ──────────────────────── */
.lao-form-panel h1,
.lao-form-panel .lao-title,
.ic-Login h1,
.ic-Login__content h1 {
  font-size: 36px !important;
  line-height: 1.05 !important;
  letter-spacing: -.025em !important;
  margin: 0 0 8px !important;
  font-weight: 450 !important;
  color: var(--lao-ink) !important;
  text-align: center !important;
}
.lao-form-panel h1 em,
.lao-form-panel .lao-title em,
.ic-Login h1 em,
.ic-Login__content h1 em {
  font-style: italic !important;
  font-family: "Instrument Serif", Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 1.05em !important;
}

/* Subhead — centered */
.lao-subhead,
.lao-form-panel .lao-subhead {
  color: var(--lao-muted) !important;
  font-size: 14.5px !important;
  margin: 0 0 28px !important;
  letter-spacing: -.005em !important;
  text-align: center !important;
}

/* ── Inputs ────────────────────────────────────────────────────────────── */
.ic-Login .ic-Form-control { margin-bottom: 0 !important; }

.ic-Login .ic-Label,
.ic-Login label:not(:has(input[type="checkbox"])) {
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .02em !important;
  color: var(--lao-ink) !important;
  opacity: .85 !important;
  margin-bottom: 8px !important;
  display: block !important;
}

.ic-Login .ic-Input,
.ic-Login input[type="text"],
.ic-Login input[type="email"],
.ic-Login input[type="password"] {
  width: 100% !important;
  padding: 14px 14px !important;
  font: inherit !important;
  color: var(--lao-ink) !important;
  background: #fff !important;
  border: 1px solid var(--lao-line) !important;
  border-radius: var(--lao-radius) !important;
  outline: 0 !important;
  letter-spacing: -.005em !important;
  transition: border-color .15s ease, box-shadow .15s ease !important;
  box-shadow: none !important;
}

.ic-Login .ic-Input::placeholder,
.ic-Login input::placeholder { color: var(--lao-muted-2) !important; }
.ic-Login .ic-Input:hover,
.ic-Login input:hover { border-color: #cfcdc3 !important; }
.ic-Login .ic-Input:focus,
.ic-Login input:focus {
  border-color: var(--lao-ink) !important;
  box-shadow: 0 0 0 4px rgba(11,31,58,.06) !important;
}
.ic-Login .ic-Input.error,
.ic-Login input[aria-invalid="true"] {
  border-color: var(--lao-danger) !important;
  box-shadow: 0 0 0 4px rgba(200,54,42,.08) !important;
}

/* ── "Keep me signed in" + "Forgot password?" row ──────────────────────── */
/* Force them onto a single row, edge-to-edge, no text wrapping */
.lao-row-keep-forgot,
.ic-Login .ic-Form-action-box,
.ic-Login .lao-row,
.ic-Login form > .row-between,
.ic-Login form > div:has(input[type="checkbox"]):has(+ a[href*="forgot"]),
.ic-Login form > div:has(input[type="checkbox"] + label + a[href*="forgot"]) {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  flex-wrap: nowrap !important;
  margin-top: 4px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 !important;
}

/* Push checkbox to far left, forgot link to far right */
.lao-row-keep-forgot > * { flex-shrink: 0 !important; margin: 0 !important; }
.lao-row-keep-forgot > *:first-child { margin-right: auto !important; }
.lao-row-keep-forgot > *:last-child { margin-left: auto !important; }

.ic-Login .ic-Checkbox-group,
.ic-Login .ic-Checkbox__container,
.ic-Login label:has(input[type="checkbox"]) {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: var(--lao-ink) !important;
  font-size: 13.5px !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
}

.ic-Login input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  accent-color: var(--lao-ink) !important;
  border-radius: 4px !important;
  flex-shrink: 0 !important;
}

/* Forgot Password? — force single line, nuclear */
.ic-Login a[href*="forgot"],
.ic-Login a[href*="reset"],
.ic-Login a[href*="password"],
.ic-Login form a,
.ic-Login .lao-form-bottom a {
  color: var(--lao-muted) !important;
  text-decoration: none !important;
  font-size: 13.5px !important;
  border-bottom: 1px solid transparent !important;
  transition: border-color .15s ease, color .15s ease !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  max-width: none !important;
  width: auto !important;
}
.ic-Login a[href*="forgot"]:hover,
.ic-Login a[href*="reset"]:hover,
.ic-Login a[href*="password"]:hover {
  color: var(--lao-ink) !important;
  border-bottom-color: rgba(11,31,58,.4) !important;
}

/* If forgot link is in its own div not next to checkbox, lift it up next to the checkbox row */
.ic-Login form > div:has(> a[href*="forgot"]):not(:has(input[type="checkbox"])) {
  display: inline-block !important;
  margin-left: auto !important;
  white-space: nowrap !important;
}

/* ── Submit button ─────────────────────────────────────────────────────── */
.ic-Login .Button,
.ic-Login button[type="submit"],
.ic-Login input[type="submit"] {
  appearance: none !important;
  border: 0 !important;
  cursor: pointer !important;
  font: inherit !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  width: 100% !important;
  padding: 14px 18px !important;
  border-radius: var(--lao-radius) !important;
  background: var(--lao-ink) !important;
  color: #fff !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.08) inset,
    0 6px 14px -6px rgba(11,31,58,.5) !important;
  transition: background-color .15s ease, transform .08s ease, opacity .15s ease !important;
  margin-top: 10px !important;
}
.ic-Login .Button:hover,
.ic-Login button[type="submit"]:hover { background: #06182f !important; }
.ic-Login .Button:active,
.ic-Login button[type="submit"]:active { transform: translateY(1px); }
.ic-Login .Button:disabled { opacity: .6 !important; cursor: not-allowed !important; }

/* ── Footer-fine (terms / privacy) ─────────────────────────────────────── */
.lao-form-panel .lao-footer-fine,
.lao-form-panel form > p:last-child,
.ic-Login form > p:last-child {
  margin: 22px 0 0 !important;
  color: var(--lao-muted) !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  text-align: left !important;
}
.lao-form-panel .lao-footer-fine a,
.lao-form-panel form > p:last-child a,
.ic-Login form > p:last-child a {
  color: inherit !important;
  border-bottom: 1px solid rgba(11,31,58,.25) !important;
  text-decoration: none !important;
}

/* ── Mobile ────────────────────────────────────────────────────────────── */
@media (max-width: 560px) {
  .ic-Login { padding: 24px 16px !important; }
  .lao-form-panel form,
  .lao-form-panel .lao-form,
  .ic-Login form { padding: 28px 24px 22px !important; }
  .lao-form-panel h1,
  .lao-form-panel .lao-title,
  .ic-Login__content h1 { font-size: 30px !important; }
}
