/* Scoped to the unauthenticated web entrance; operational tokens stay unchanged. */
html[data-auth="true"] body { min-width: 0; }
.login-shell, .boot-screen {
  --auth-surface: #ffffff;
  --auth-text: #18251f;
  --auth-muted: #56645d;
  --auth-border: #76877c;
  --auth-focus: #0a6b42;
  --auth-error: #a5222b;
  --auth-error-surface: #fff0f0;
  --auth-success: #12603b;
  --auth-success-surface: #edf7f0;
  color: var(--auth-text);
}
[data-theme="dark"] :is(.login-shell, .boot-screen) {
  --auth-surface: #182922;
  --auth-text: #f2f5f1;
  --auth-muted: #afbbb4;
  --auth-border: #81958a;
  --auth-focus: #22c55e;
  --auth-error: #ffb4b4;
  --auth-error-surface: #432326;
  --auth-success: #a0e7b8;
  --auth-success-surface: #173526;
}
[data-theme="earth"] :is(.login-shell, .boot-screen) {
  --auth-surface: #fffdf8;
  --auth-text: #302f29;
  --auth-muted: #625f53;
  --auth-border: #857e6b;
  --auth-focus: #365d38;
}
.login-shell .login-card { background: var(--auth-surface); color: var(--auth-text); min-width: 0; }
.login-shell :is(.login-help, .login-method-note, .login-method-divider, .login-card > p) { color: var(--auth-muted); }
.login-shell .auth-form input { color: var(--auth-text); background: var(--auth-surface); border-color: var(--auth-border); }
.login-shell .form-alert { color: var(--auth-error); background: var(--auth-error-surface); }
.login-shell .form-success { color: var(--auth-success); background: var(--auth-success-surface); }
.login-shell :is(button, input, [tabindex]):focus-visible { outline: 3px solid var(--auth-focus); outline-offset: 3px; box-shadow: none; }
.login-shell .auth-form input:focus { border-color: var(--auth-focus); }
.login-shell .auth-link { min-height: 44px; padding: 8px 4px; }
.login-shell :is(.form-alert, .form-success) { overflow-wrap: anywhere; }
.boot-screen img { width: min(440px, 90%); height: auto; }
.boot-screen h1 { font-size: 1.5rem; }
.auth-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 900px) {
  .login-shell .login-main { padding: 20px 16px; min-width: 0; }
  .login-shell .login-card { padding: 24px 16px; width: 100%; max-width: 470px; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-auth="true"] body, .login-shell *, .boot-screen * { transition: none; animation: none; }
}
@media (forced-colors: active) {
  .login-shell :is(input, button) { border: 1px solid ButtonText; }
  .login-shell :is(button, input, [tabindex]):focus-visible { outline-color: Highlight; }
  .login-shell :is(.form-alert, .form-success) { border: 1px solid CanvasText; }
}
/* Login V2: one approved master, a structural split, familiar web forms. */
.login-shell {
  --auth-canvas: #ffffff;
  --auth-provider-bg: #2f2f2f;
  --auth-provider-text: #ffffff;
  --auth-action: #0a6b42;
  --auth-action-text: #ffffff;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  min-height: 100vh;
  min-height: 100svh;
  background: var(--auth-canvas);
}
[data-theme="dark"] .login-shell { --auth-canvas: #182922; --auth-provider-bg: #ffffff; --auth-provider-text: #2f2f2f; --auth-action: #22c55e; --auth-action-text: #092519; }
[data-theme="earth"] .login-shell { --auth-canvas: #fffdf8; --auth-action: #365d38; }
.login-shell .login-brand-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  padding: 64px 48px;
  background: #14231d;
  color: #f4f2eb;
  min-width: 0;
}
.login-shell .login-brand-panel::after { content: none; }
/* Approved 2170×725 PNG alpha bounds: (67,27)–(2090,705).
   Compensate for its canvas: 67.5% visible width; alpha centre at 43.5% pane height. */
.login-shell .login-brand-lockup {
  display: block;
  position: absolute;
  width: calc(72.405% - 69.509px);
  height: auto;
  left: 50%;
  top: 43.5%;
  transform: translate(-49.70046%, -50.48276%);
}
.login-shell .auth-brand-context { position: absolute; bottom: 40px; left: 48px; right: 48px; margin: 0; color: #8b9d92; font-size: .8125rem; font-weight: 400; line-height: 1.5; text-align: center; }
.auth-brand-context span { margin-inline: 3px; }
.login-shell .login-main { display: grid; align-content: center; justify-items: center; min-width: 0; padding: 56px 48px; background: var(--auth-canvas); }
.login-shell .login-card { width: 100%; max-width: 416px; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.login-shell h1 { margin: 0; color: var(--auth-text); font-size: 2rem; font-weight: 720; line-height: 1.2; letter-spacing: -.035em; }
.login-shell .login-card > p { margin: 12px 0 28px; font-size: 1rem; line-height: 1.6; }
.login-shell h1 + .auth-provider { margin-top: 32px; }
.login-shell h1 + :is(.form-alert, .form-success) { margin-top: 24px; }
.login-shell .login-mark-mobile { display: none; }
.login-shell .microsoft-button { display: flex; width: 100%; align-items: center; justify-content: center; gap: 12px; min-height: 48px; height: auto; padding: 12px 16px; border: 1px solid var(--auth-provider-bg); border-radius: 5px; background: var(--auth-provider-bg); color: var(--auth-provider-text); font-family: "Segoe UI", var(--gc-font-family, sans-serif); font-size: 1rem; font-weight: 600; line-height: 1.4; }
.microsoft-button img { flex: 0 0 auto; }
.login-shell .microsoft-button:hover:enabled { filter: brightness(.92); }
.login-shell .microsoft-button:active:enabled { filter: brightness(.82); }
.login-shell .microsoft-button:disabled { opacity: 1; background: var(--auth-surface); color: var(--auth-muted); border-color: var(--auth-border); cursor: not-allowed; }
.login-shell .login-method-note { margin: 10px 0 0; font-size: .875rem; line-height: 1.5; }
.login-shell .login-method-divider { display: flex; align-items: center; gap: 14px; margin: 28px 0 24px; border: 0; padding: 0; font-size: .875rem; text-transform: none; letter-spacing: 0; }
.login-shell .login-method-divider::before, .login-shell .login-method-divider::after { content: ""; flex: 1; height: 1px; background: var(--gc-border); }
.login-shell .auth-local-heading { margin: 0 0 16px; color: var(--auth-text); font-size: 1rem; font-weight: 650; }
.login-shell .auth-form { gap: 18px; margin: 0; }
.login-shell .auth-form label { gap: 8px; font-size: .875rem; font-weight: 600; line-height: 1.5; }
.login-shell .auth-form input { width: 100%; min-width: 0; min-height: 48px; height: auto; padding: 12px; font-size: 1rem; line-height: 1.5; border-radius: 5px; }
.login-shell .auth-form .login-submit { width: 100%; min-height: 48px; height: auto; padding: 12px 16px; font-size: 1rem; font-weight: 650; line-height: 1.5; border-radius: 5px; background: var(--auth-surface); border: 1px solid var(--auth-action); color: var(--auth-action); box-shadow: none; }
.login-shell .auth-form .login-submit:hover:enabled { background: var(--gc-surface-subtle); }
.login-shell .auth-form .login-submit:active:enabled { border-width: 2px; padding: 11px 15px; }
.login-shell[data-microsoft-available="false"] #login-form .login-submit,
.login-shell :is(#forgot-password-form, #reset-password-form) .login-submit { background: var(--auth-action); color: var(--auth-action-text); }
.login-shell .auth-form .login-submit:disabled { opacity: 1; border-color: var(--auth-border); background: var(--auth-surface); color: var(--auth-muted); cursor: wait; }
.login-shell .auth-form-actions { display: flex; justify-content: flex-start; margin: 8px 0 0; }
.login-shell .auth-link { display: inline-flex; align-items: center; gap: 8px; color: var(--auth-action); font-size: .875rem; line-height: 1.5; font-weight: 600; min-height: 44px; padding: 10px 2px; border-radius: 2px; }
.login-shell .auth-link-back { margin-top: 16px; }
.login-shell .login-card > .login-help { margin: 20px 0 0; padding: 0; border: 0; border-radius: 0; background: var(--auth-canvas); color: var(--auth-muted); font-size: .875rem; line-height: 1.6; }
.login-shell :is(.form-alert, .form-success) { align-items: flex-start; margin: 0 0 24px; padding: 14px 16px; border-radius: 5px; font-size: .875rem; line-height: 1.6; }
.login-shell :is(.form-alert, .form-success) svg { flex: 0 0 auto; margin-top: 3px; }
.boot-screen { min-height: 100svh; padding: 32px 20px; gap: 16px; background: var(--auth-surface); color: var(--auth-text); }
.boot-screen img { padding: 0; }
.boot-screen h1, .boot-screen p { margin: 0; }
@media (max-width: 1100px) {
  .login-shell { grid-template-columns: minmax(0, 1fr); }
  .login-shell .login-brand-panel { display: none; }
  .login-shell .login-main { min-height: 100svh; padding: 40px 24px; }
  .login-shell .login-mark-mobile { display: block; width: 100%; max-width: 360px; height: auto; padding: 0; margin: 0 0 36px; background: transparent; border-radius: 0; }
  .login-shell .login-mark-mobile img { display: block; width: 100%; height: auto; }
}
@media (max-width: 480px) {
  .login-shell .login-main { padding: 28px 24px; align-content: start; }
  .login-shell .login-mark-mobile { margin-bottom: 28px; }
  .login-shell h1 { font-size: 1.75rem; }
  .login-shell .login-card > p { margin-bottom: 24px; }
  .login-shell .login-method-divider { margin: 24px 0 20px; }
}
@media (max-width: 350px) {
  .login-shell .login-main { padding: 24px 16px; }
}
.login-shell .auth-field-hint { margin: -10px 0 0; color: var(--auth-muted); font-size: .875rem; line-height: 1.5; }
.login-shell .auth-field-error { color: var(--auth-error); font-size: .875rem; font-weight: 500; line-height: 1.5; }
.login-shell input[aria-invalid="true"] { border-color: var(--auth-error); border-width: 2px; padding: 11px; }
.login-shell .auth-link:disabled { color: var(--auth-muted); cursor: wait; }
@media (forced-colors: active) {
  .login-shell :is(.auth-form .login-submit, .microsoft-button) { background: ButtonFace; color: ButtonText; border-color: ButtonText; }
  .login-shell .auth-form input[aria-invalid="true"] { border-color: CanvasText; border-style: dashed; }
}
