@font-face{font-family:"HG Login Manrope";src:url("/login-assets/manrope-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"HG Login Manrope";src:url("/login-assets/manrope-semibold.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"HG Login Manrope";src:url("/login-assets/manrope-bold.ttf") format("truetype");font-weight:700;font-display:swap}
/* Login-only presentation. Existing department screens retain their theme/layout. */
body.hg-login {
  --login-page:#F7F8FA; --login-surface:#fff; --login-text:#202328;
  --login-muted:#5F6671; --login-border:#858D98; --login-button:#202328;
  --login-button-text:#fff; --login-focus:#3769B5; --login-drawing:#66717D; --login-error:#A32D35;
  display:block; padding:0; background:var(--login-page); color:var(--login-text); color-scheme:light;
  -webkit-font-smoothing:antialiased;
}
html[data-theme="dark"] body.hg-login {
  color-scheme:dark;
  --login-page:#16181C; --login-surface:#202328; --login-text:#F2F3F5;
  --login-muted:#A9AFB8; --login-border:#666E7A; --login-button:#F2F3F5;
  --login-button-text:#16181C; --login-focus:#9DBBFF; --login-drawing:#A2AAB4; --login-error:#FFABB1;
}
html[data-theme="fun"] body.hg-login {background:var(--login-page);color-scheme:light}
body.hg-login .hg-login-root {position:relative;max-width:none;min-height:100svh;overflow:hidden;padding:clamp(116px,19.444vh,210px) 24px 110px}
.hg-login .login-shell {position:relative;z-index:1;width:380px;max-width:100%;margin:0 auto}
.hg-login .login-brand {display:flex;flex-direction:column;align-items:center;gap:24px}
.hg-login .login-logo {width:78px;height:43px;object-fit:contain;mix-blend-mode:multiply}
html[data-theme="dark"] .hg-login .login-logo {filter:invert(1);mix-blend-mode:screen}
.hg-login .login-brand h1 {margin:0;font-size:32px;line-height:40px;letter-spacing:-.035em;font-weight:700}
.hg-login .login-welcome {text-align:center}
.hg-login .login-welcome h2 {margin:0;font-size:22px;line-height:30px;letter-spacing:-.02em}
.hg-login .login-welcome p {margin:10px 0 0;color:var(--login-muted);font-size:14px;line-height:22px}
.hg-login #lg-form {display:flex;flex-direction:column;gap:36px;margin-top:36px}
.hg-login .login-field {display:flex;flex-direction:column;gap:8px}
.hg-login .login-field label {font-family:system-ui,sans-serif;margin:0;color:var(--login-text);font-size:14px;line-height:20px;font-weight:600}
.hg-login .login-field input {box-sizing:border-box;width:100%;height:48px;min-width:0;margin:0;padding:0 16px;border:1px solid var(--login-border);border-radius:8px;background:var(--login-surface);color:var(--login-text);font:400 14px/22px system-ui,sans-serif}
.hg-login input::placeholder {color:var(--login-muted);opacity:1}
.hg-login .login-password {position:relative}
.hg-login .login-password input {padding-right:52px}
.hg-login .login-password input[type="password"] {font-size:17px;letter-spacing:.08em}
.hg-login #lg-visibility {position:absolute;right:2px;top:2px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;cursor:pointer;opacity:.75}
.hg-login #lg-visibility img {width:20px;height:20px}
html[data-theme="dark"] .hg-login #lg-visibility img {filter:invert(1)}
.hg-login #lg-submit {height:48px;width:100%;padding:0;border:0;border-radius:8px;color:var(--login-button-text);background:var(--login-button);font:700 16px/24px system-ui,sans-serif;cursor:pointer}
.hg-login #lg-submit:hover {opacity:.9}
.hg-login #lg-submit:active {transform:translateY(1px)}
.hg-login #lg-submit:disabled {cursor:wait;opacity:.75}
.hg-login button:focus-visible,.hg-login input:focus-visible {outline:2px solid var(--login-focus);outline-offset:3px}
.hg-login .login-field-error {color:var(--login-error);font-size:13px;line-height:20px}
.hg-login input[aria-invalid="true"] {border-color:var(--login-error)}
.hg-login .login-error {margin:0;padding:12px 14px;border:1px solid var(--login-error);border-radius:8px;color:var(--login-error);background:var(--login-page);font-size:14px;line-height:22px;overflow-wrap:anywhere}
.hg-login .login-error:empty {display:none}
.hg-login [hidden] {display:none!important}
.hg-login .login-art {position:absolute;inset:0;pointer-events:none;color:var(--login-drawing)}
/* Crisp decorative paths, rebuilt to follow the Paper section composition. */
.hg-login .login-art svg {position:absolute;width:100%;min-width:1440px;height:auto;left:50%;transform:translateX(-50%);top:0}
.hg-login .login-art path {vector-effect:non-scaling-stroke}
.hg-login .login-art .guides {opacity:.25}
.hg-login .login-art .structure {opacity:.78}
.hg-login .login-art .detail {opacity:.46}
.hg-login .login-art .hatching {opacity:.36}
.hg-login .login-art .datum {stroke-dasharray:.006 .004}
.hg-login .login-art.animating path {stroke-dasharray:1;stroke-dashoffset:1;animation:login-draw 600ms cubic-bezier(.22,.61,.36,1) var(--delay) both}
.hg-login .login-art.animating .guides path {animation-duration:180ms}
.hg-login .login-art.animating .detail path {animation-duration:500ms}
.hg-login .login-art.animating .hatching path {animation-duration:400ms}
@keyframes login-draw {to{stroke-dashoffset:0}}
@media(max-width:650px) {
  body.hg-login .hg-login-root {padding-top:116px;padding-bottom:110px}
  .hg-login .login-brand {gap:20px}
  .hg-login .login-brand h1 {font-size:30px}
  .hg-login #lg-form {gap:28px;margin-top:32px}
  .hg-login .login-field input {font-size:16px}
  .hg-login .login-art {mask-image:linear-gradient(to bottom,transparent 0,transparent 700px,#000 900px)}
  .hg-login .login-art svg {width:950px;min-width:950px;top:150px}
  .hg-login .login-art .detail {opacity:.27}
  .hg-login .login-art .hatching {opacity:.18}
}
@media(prefers-reduced-motion:reduce) {
  .hg-login .login-art.animating path {animation:none!important;stroke-dashoffset:0!important}
  .hg-login #lg-submit:active {transform:none}
}

/* Neutralize host-page layout only while its entry screen is active. */
body.hg-login{margin:0;height:auto;min-height:100svh;overflow:auto;font:400 14px/22px "HG Login Manrope",system-ui,sans-serif}
body.hg-login::before,body.hg-login::after{display:none!important}
body.hg-login .hg-login-root{display:block!important;position:relative!important;width:100%!important;max-width:none!important;height:auto!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:clamp(116px,19.444vh,210px) 24px 110px!important;min-height:100svh}
.hg-login .login-shell{display:block;padding:0;border:0;background:transparent;color:var(--login-text);text-align:left}
.hg-login .login-brand{position:static;padding:0;border:0;background:transparent;box-shadow:none;width:100%;text-transform:none;flex-wrap:nowrap}
.hg-login .login-brand h1,.hg-login .login-brand h2{color:var(--login-text);font-family:"HG Login Manrope",system-ui,sans-serif}
.hg-login .login-brand .login-logo{max-width:78px;margin:0;border:0;border-radius:0}
.hg-login .login-note{text-align:center;color:var(--login-muted);font-size:13px;margin:24px 0 0}
.hg-login .login-error{display:block;min-height:0;opacity:1}
.hg-login .login-error:empty{display:none}
.hg-auth-pending > :not(#hg-auth-loading):not(#hg-preview-toolbar){display:none!important}
.login-session-status{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:36px;color:var(--login-muted)}
.login-spinner{width:18px;height:18px;border:2px solid var(--login-border);border-top-color:var(--login-text);border-radius:50%;animation:login-spin 1s linear infinite}
@keyframes login-spin{to{transform:rotate(360deg)}}
@media(max-width:650px){body.hg-login .hg-login-root{padding-top:116px!important}}
@media(prefers-reduced-motion:reduce){.login-spinner{animation:none}}

/* Status-only recovery screen (Phase 1 P07/P08): same shell, one action, no artwork. */
.hg-login .login-notice .login-welcome p{max-width:380px;margin-left:auto;margin-right:auto}
.hg-login .login-notice-action{display:block;width:100%;height:48px;margin:64px 0 0;padding:0;border:0;border-radius:8px;color:var(--login-button-text);background:var(--login-button);font:600 14px/20px "HG Login Manrope",system-ui,sans-serif;cursor:pointer}
.hg-login .login-notice-action:hover{opacity:.9}
.hg-login .login-notice-action:active{transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){.hg-login .login-notice-action:active{transform:none}}
