/* Authentication: the login composition follows the official signin.html. */
html[data-theme] .design-auth { margin: 0; background: var(--tp-surface-page); color: var(--tp-text-primary); font-family: var(--tp-type-body-md-family); }
.design-auth *, .design-auth *::before, .design-auth *::after { box-sizing: border-box; }
html[data-theme] .design-auth .form-label { color: var(--tp-text-primary); font-size: var(--tp-type-label-md-size); font-weight: var(--tp-type-label-md-weight); line-height: var(--tp-type-label-md-line-height); gap: var(--tp-space-2); margin: var(--tp-space-5) 0; }
html[data-theme] .design-auth .field { display: block; width: 100%; min-width: 0; height: auto; min-height: var(--tp-control-height); padding: var(--tp-space-3) var(--tp-space-4); border: var(--tp-border-width) solid var(--tp-border-strong); border-radius: var(--tp-radius-md); background: var(--tp-surface-card); color: var(--tp-text-primary); font: inherit; font-weight: var(--tp-type-body-md-weight); font-size: var(--tp-type-body-md-size); }
html[data-theme] .design-auth .field::placeholder { color: var(--tp-text-secondary); opacity: 1; }
html[data-theme] .design-auth .password-field .field { padding-right: calc(var(--tp-control-height) + var(--tp-space-2)); }
html[data-theme] .design-auth .password-field button { top: 50%; right: var(--tp-space-half); transform: translateY(-50%); width: var(--tp-control-height); height: var(--tp-control-height); display: grid; place-items: center; color: var(--tp-action-primary); border-radius: var(--tp-radius-sm); }
html[data-theme] .design-auth .login-submit { display: flex; align-items: center; justify-content: center; gap: var(--tp-space-2); height: auto; min-height: var(--tp-control-height); padding: var(--tp-space-3) var(--tp-space-4); border: 0; border-radius: var(--tp-radius-md); background: var(--tp-action-primary); color: var(--tp-action-primary-foreground); font: var(--tp-type-label-md-weight) var(--tp-type-label-md-size)/var(--tp-type-label-md-line-height) var(--tp-type-label-md-family); margin-top: var(--tp-space-5); }
html[data-theme] .design-auth .login-submit:hover:not(:disabled) { background: var(--tp-action-primary-hover); }
html[data-theme] .design-auth .login-submit:active:not(:disabled):not([aria-disabled=true]) { background: var(--tp-action-primary-active); }
html[data-theme] .design-auth .login-submit:disabled { background: var(--tp-action-primary-disabled); cursor: wait; }
html[data-theme] .design-auth :is(input, button):focus-visible { outline: var(--tp-component-focus-ring); outline-offset: var(--tp-focus-offset); }
html[data-theme] .design-auth .login-error { color: var(--tp-status-danger-foreground); background: var(--tp-status-danger-background); border: var(--tp-border-width) solid var(--tp-status-danger-border); border-radius: var(--tp-radius-md); padding: var(--tp-space-3); font-size: var(--tp-type-body-sm-size); line-height: var(--tp-type-body-sm-line-height); }
@font-face{font-family:"Passo Variable";src:url("../design-system/assets/fonts/passo/Passo-Variable.woff") format("woff");font-weight:100 800;font-style:normal;font-display:swap}
/* Login reproduces the approved CMP composition, including its effective form spacing. */
html[data-theme] :is(.internal-login,.password-change) {--font-login:"Passo Variable","Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;--font-brand:var(--font-login);--font-ui:var(--font-login);--tp-type-body-md-family:var(--font-login);--tp-type-label-md-family:var(--font-login);--tp-type-heading-lg-family:var(--font-login);font-family:var(--font-login);font-size:16px;line-height:1.5;background:var(--tp-surface-card)}
html[data-theme] .internal-login .login-shell {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:100vh;width:100%;overflow:visible;background:var(--tp-surface-card)}
html[data-theme] .internal-login .login-form-panel {display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:100vh;padding:0 clamp(28px,7vw,96px);background:var(--tp-surface-card)}
.internal-login .login-topbar {display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:444px;margin:0 auto;padding:38px 0 18px}
.internal-login .login-context {color:var(--tp-text-secondary);font-size:.875rem;line-height:1.5}
.internal-login .login-theme-actions {position:relative;flex:none;margin:0}
.internal-login .login-theme-actions>svg {position:absolute;left:12px;top:12px;width:20px;height:20px;pointer-events:none;color:var(--tp-text-secondary)}
.internal-login #themeToggle .material-symbols-rounded {display:none}
html[data-design-system] body.internal-login #themeToggle {display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;border:1px solid var(--tp-border-default);border-radius:50%;color:var(--tp-text-secondary);background:var(--tp-surface-card)}
html[data-design-system] body.internal-login #themeToggle:hover {color:var(--tp-action-primary);background:var(--tp-soft);border-color:var(--tp-action-primary)}
.internal-login .login-form-content {display:block;align-self:center;width:100%;max-width:444px;margin:0 auto;padding:34px 0 44px}
.internal-login .login-card {width:100%;max-width:none;min-width:0}
html[data-theme] .internal-login .login-mobile-brand {display:none;min-height:52px;margin:0 0 36px;padding:0;align-items:center}
html[data-theme] .internal-login .login-heading {margin-bottom:38px}
html[data-theme] .internal-login .login-card h1 {font-family:var(--font-brand);font-size:clamp(2rem,4vw,2.35rem);font-weight:700;line-height:1.1;letter-spacing:-.035em;color:var(--tp-text-primary);margin:0 0 10px}
html[data-theme] .internal-login .login-intro {color:var(--tp-text-secondary);font-size:.9rem;line-height:1.55;margin:0}
.internal-login #loginForm {display:grid;gap:14px}
html[data-theme] .internal-login #loginForm>.form-label {display:flex;align-items:baseline;gap:2px;margin:0 0 7px;font-size:.875rem;line-height:1.35;font-weight:600}
html[data-theme] .internal-login #loginForm>.form-label:not(:first-child) {margin-top:20px}
.internal-login .auth-required {display:inline;color:var(--tp-status-danger-foreground);line-height:1}
html[data-theme] .internal-login #loginForm .field {height:46px;min-height:46px;padding:10px 12px;background:var(--tp-surface-card);border-color:var(--color-palette-silver);border-radius:6px;font-size:16px;line-height:24px;box-shadow:0 1px 2px rgb(37 0 45 / 4%)}
html[data-theme] .internal-login #loginForm .field::placeholder {color:color-mix(in srgb,var(--tp-text-secondary) 68%,transparent)}
html[data-theme="dark"] .internal-login #loginForm .field {border-color:var(--tp-border-default)}
html[data-theme] .internal-login #loginForm .field:hover {border-color:var(--color-palette-battleship)}
html[data-theme] .internal-login #loginForm .field:focus {border-color:var(--tp-action-primary);outline:3px solid color-mix(in srgb,var(--tp-action-primary) 13%,transparent);outline-offset:0}
html[data-theme] .internal-login #loginForm .password-field .field {padding-right:12px}
html[data-theme] .internal-login .password-field button {right:5px;width:38px;height:38px;min-height:0;padding:0;display:grid;place-items:center;color:var(--tp-text-secondary);border:0;border-radius:6px;background:transparent;cursor:pointer}
html[data-theme] .internal-login .password-field button:hover {color:var(--tp-action-primary);background:var(--tp-soft)}
.internal-login .admin-login-eye-hide {display:none}
.internal-login [data-toggle-password][aria-pressed=true] .admin-login-eye-show {display:none}
.internal-login [data-toggle-password][aria-pressed=true] .admin-login-eye-hide {display:block}
html[data-theme] .internal-login .login-submit {width:100%;margin:28px 0 0;min-height:46px;height:46px;padding:0 20px;font:600 .94rem/1.5 var(--tp-type-body-md-family);border-radius:8px;background:var(--tp-action-primary);color:var(--tp-action-primary-foreground);box-shadow:0 8px 20px rgb(107 0 128 / 18%)}
html[data-theme] .internal-login .login-submit:hover:not(:disabled) {background:var(--tp-action-primary-hover)}
html[data-theme] .internal-login .login-submit:active:not(:disabled):not([aria-disabled=true]) {background:var(--tp-action-primary-active)}
html[data-theme] .internal-login .login-submit:disabled {background:var(--tp-action-primary-disabled)}
html[data-theme] .internal-login .login-error {margin:0;padding:12px 14px;border-radius:8px;font:400 16px/1.55 var(--font-login)}
html[data-theme] .internal-login .login-reference-panel {display:grid;place-items:center;min-width:0;min-height:100vh;padding:0;background:linear-gradient(135deg,var(--color-brand-dark) 0%,var(--color-brand-primary) 58%,var(--color-brand-mid) 100%)}
.internal-login .login-reference-panel::after {content:'';position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 82% 14%,color-mix(in srgb,var(--color-brand-accent) 13%,transparent),transparent 34%),radial-gradient(circle at 36% 86%,color-mix(in srgb,var(--color-brand-soft) 10%,transparent),transparent 40%)}
.internal-login .login-brand-content {position:relative;z-index:2;display:block;text-align:center;width:min(78%,540px);margin:0 auto}
.internal-login .login-brand-content .tp-brand {display:inline-flex;padding:36px;margin:0 auto 36px}
.internal-login .login-brand-tagline {font-family:var(--font-brand);font-size:clamp(1.8rem,3vw,2.25rem);font-weight:700;line-height:1.15;letter-spacing:-.025em;color:var(--tp-text-inverse);margin:0 0 16px}
.internal-login .login-brand-description {font:400 clamp(1rem,1.7vw,1.18rem)/1.55 var(--tp-type-body-md-family);color:color-mix(in srgb,var(--tp-text-inverse) 82%,transparent);margin:0 auto;max-width:470px}
.internal-login .tp-orb {top:-18%;left:-13%;width:min(46vw,580px);height:auto;aspect-ratio:1;background:linear-gradient(145deg,color-mix(in srgb,var(--color-brand-accent) 22%,transparent),color-mix(in srgb,var(--color-brand-dark) 4%,transparent))}
.internal-login .tp-arc-outline {right:-31%;bottom:-38%;width:min(62vw,790px);height:auto;aspect-ratio:1;border-color:color-mix(in srgb,var(--tp-text-inverse) 17%,transparent)}
.internal-login .tp-accent-line {top:25%;right:10%;width:116px;height:4px;box-shadow:0 0 22px color-mix(in srgb,var(--color-brand-accent) 36%,transparent)}
.internal-login .tp-dots {bottom:8%;left:8%;display:block;width:48px;height:48px;opacity:.62;background:radial-gradient(circle,#fff 3px,transparent 4px) 0 0 / 16px 16px}
.internal-login .tp-dots i {display:none}
/* Password change retains the compact account-security card. */
.design-auth .auth-brand { display: inline-flex; flex-shrink: 0; padding: var(--tp-logo-protection); margin: 0; max-width: 100%; }
.design-auth .auth-brand img { display: block; width: var(--tp-logo-width); min-width: var(--tp-logo-width); height: auto; object-fit: contain; margin: 0; filter: none; }
.design-auth .auth-brand .auth-brand-negative { display: none; }
html[data-theme="dark"] .design-auth .auth-brand-positive { display: none; }
html[data-theme="dark"] .design-auth .auth-brand .auth-brand-negative { display: block; }
html[data-theme] .design-auth .eyebrow { display: block; font: var(--tp-type-label-sm-weight) var(--tp-type-label-sm-size)/var(--tp-type-label-sm-line-height) var(--tp-type-label-sm-family); letter-spacing: var(--tp-type-label-sm-letter-spacing); color: var(--tp-action-primary); }
html[data-theme] .design-auth .password-card h1 { color: var(--tp-text-primary); font-family: var(--tp-type-heading-lg-family); font-size: var(--tp-type-heading-lg-size); font-weight: var(--tp-type-heading-lg-weight); line-height: var(--tp-type-heading-lg-line-height); letter-spacing: var(--tp-type-heading-lg-letter-spacing); margin: var(--tp-space-3) 0 var(--tp-space-4); overflow-wrap: anywhere; }
html[data-theme] .design-auth :is(.password-card > p, .password-rules) { color: var(--tp-text-secondary); font-size: var(--tp-type-body-sm-size); line-height: var(--tp-type-body-sm-line-height); }
.design-auth .password-card > p { margin-bottom: var(--tp-space-6); }
html[data-theme] .design-auth .password-page { min-height: 100svh; padding: var(--tp-space-6) var(--tp-space-4); background: var(--tp-surface-page); }
html[data-theme] .design-auth .password-card { width: 100%; max-width: 520px; min-width: 0; padding: var(--tp-space-6); border: var(--tp-border-width) solid var(--tp-border-default); border-radius: var(--tp-radius-xl); background: var(--tp-surface-card); color: var(--tp-text-primary); box-shadow: var(--tp-elevation-1); }
.design-auth .password-card .auth-brand { margin-bottom: var(--tp-space-5); }
.design-auth .password-rules { margin-top: calc(-1 * var(--tp-space-3)); }
@media (max-width:1023px) {
 html[data-theme] .internal-login .login-shell {grid-template-columns:minmax(0,1fr)}
 html[data-theme] .internal-login .login-reference-panel {display:none}
 html[data-theme] .internal-login .login-form-panel {padding-inline:clamp(24px,8vw,72px)}
 html[data-theme] .internal-login .login-mobile-brand {display:flex;margin-bottom:36px}
}
@media (max-width:620px) {
 html[data-theme] .internal-login .login-form-panel {padding-inline:20px}
 .internal-login .login-topbar {padding-top:22px}
 .internal-login .login-form-content {padding-top:22px}
 html[data-theme] .internal-login .login-heading {margin-bottom:30px}
 html[data-theme] .internal-login .login-mobile-brand {margin-bottom:28px}
}
@media (max-width:400px) {html[data-theme] .design-auth .password-card {padding:var(--tp-space-5)}}

/* Account security shares authentication controls while retaining its compact card. */
html[data-theme] .password-change .password-topbar {display:flex;justify-content:flex-end;align-items:center;min-height:44px;margin:0 0 16px;padding:0}
html[data-design-system] body.password-change #themeToggle {position:static;display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;border:1px solid var(--tp-border-default);border-radius:50%;color:var(--tp-text-secondary);background:var(--tp-surface-card)}
html[data-design-system] body.password-change #themeToggle:hover {background:var(--tp-soft);border-color:var(--tp-action-primary);color:var(--tp-action-primary)}
html[data-theme] .password-change .password-card .field {height:46px;min-height:46px;padding:10px 12px;border-radius:6px;border-color:var(--color-palette-silver);background:var(--tp-surface-card);font:400 16px/24px var(--font-login);box-shadow:0 1px 2px rgb(37 0 45 / 4%)}
html[data-theme="dark"] .password-change .password-card .field {border-color:var(--tp-border-default)}
html[data-theme] .password-change .password-card .field:hover {border-color:var(--color-palette-battleship)}
html[data-theme] .password-change .password-card .field:focus {border-color:var(--tp-action-primary);outline:3px solid color-mix(in srgb,var(--tp-action-primary) 13%,transparent);outline-offset:0}
html[data-theme] .password-change .form-label {font:600 14px/1.35 var(--font-login);gap:7px}
html[data-theme] .password-change .login-submit {height:46px;min-height:46px;padding:0 20px;border-radius:8px;font:600 15.04px/1.5 var(--font-login);box-shadow:0 8px 20px rgb(107 0 128 / 18%)}
html[data-theme] .password-change .login-error {font:400 16px/1.55 var(--font-login);padding:12px 14px;border-radius:8px}

/* Password recovery keeps the same authentication composition and control metrics. */
html[data-theme] .internal-login .login-forgot,
html[data-theme] .internal-login .login-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--tp-radius-sm);
  background: transparent;
  color: var(--tp-action-primary);
  font: 600 .875rem/1.35 var(--font-login);
  cursor: pointer;
}
html[data-theme] .internal-login .login-forgot { justify-self: end; margin: -4px 0 0; }
html[data-theme] .internal-login :is(.login-forgot, .login-secondary):hover { background: var(--tp-soft); }
html[data-theme] .internal-login .password-reset-panel { width: 100%; }
html[data-theme] .internal-login .password-reset-panel .login-heading { margin-bottom: 30px; }
html[data-theme] .internal-login .password-reset-panel form { display: grid; gap: 14px; }
html[data-theme] .internal-login .password-reset-panel .form-label { display: flex; align-items: baseline; gap: 2px; }
html[data-design-system] body.internal-login .password-reset-panel .form-label { display: inline-flex; align-items: baseline; flex-wrap: nowrap; width: max-content; max-width: 100%; white-space: nowrap; gap: 2px; }
html[data-theme] .internal-login .password-reset-panel .form-label:not(:first-child) { margin-top: 20px; }
html[data-theme] .internal-login .password-reset-panel .login-submit { margin-top: 14px; }
html[data-theme] .internal-login .password-reset-message {
  margin: 0;
  padding: 12px 14px;
  border: var(--tp-border-width) solid var(--tp-status-success-border);
  border-radius: var(--tp-radius-md);
  background: var(--tp-status-success-background);
  color: var(--tp-status-success-foreground);
  font: 400 14px/1.5 var(--font-login);
}
html[data-theme] .internal-login .password-reset-panel .login-secondary { width: 100%; margin-top: 2px; }
