/* The same cartoon palette as the portal/console, on the separate admin door.
   Authentication DOM, SSO destination and password handlers remain unchanged. */
body.cartoon-theme.admin-login {
    --login-paper: var(--cartoon-paper);
    --login-surface: var(--cartoon-sheet);
    --login-ink: var(--cartoon-ink);
    --login-muted: var(--cartoon-muted);
    --login-line: var(--cartoon-line);
    --login-accent: var(--cartoon-blue-ink);
    color-scheme: light;
}
[data-theme="dark"] body.cartoon-theme.admin-login { color-scheme: dark; }
.cartoon-theme .admin-login-brand { gap: 14px; }
.cartoon-theme .admin-login-brand strong { display: block; font-size: 23px; font-weight: 800; line-height: 1.3; }
.cartoon-theme .admin-login-brand small { display: block; margin-top: 4px; color: var(--login-muted); font-size: 10px; font-weight: 500; letter-spacing: 1px; }
.cartoon-theme .admin-login-mark { align-items: center; width: 40px; height: 42px; border: 2px solid var(--cartoon-outline); border-radius: 13px; background: var(--cartoon-coral); color: #283747; font: 24px/1 sans-serif; transform: rotate(-6deg); box-shadow: 2px 2px 0 var(--cartoon-shadow); }
.cartoon-theme .admin-login-panel { border: 2px solid var(--cartoon-outline); border-radius: 22px; box-shadow: 6px 6px 0 var(--cartoon-shadow); }
.cartoon-theme .admin-login-context { position: relative; background: var(--cartoon-blue); border-color: var(--cartoon-outline); }
.cartoon-theme .admin-login-context .admin-login-character { isolation: isolate; width: min(260px, 100%); margin-block: 18px 22px; }
.cartoon-theme .admin-login-character::before { content: ""; position: absolute; z-index: -1; inset: 24% -4% 3%; border: 1.5px solid var(--cartoon-outline); border-radius: 47% 53% 49% 51%; background: var(--cartoon-sheet); transform: rotate(-7deg); }
.cartoon-theme .admin-login-context h1 { font-weight: 800; font-size: 31px; line-height: 1.5; }
.cartoon-theme .admin-login-context p { color: var(--login-muted); }
.cartoon-theme .admin-login-context-note { border-color: var(--cartoon-line); color: var(--cartoon-blue-ink); }
.cartoon-theme .admin-login-eyebrow { display: inline-flex; align-items: center; border: 1px solid var(--cartoon-outline); background: var(--cartoon-sheet); border-radius: 8px; padding: 5px 9px; color: var(--login-ink); width: fit-content; }
.cartoon-theme .admin-login-section-number { color: var(--cartoon-blue-ink); }
.cartoon-theme .admin-login-form-heading h2 { font-weight: 800; font-size: 29px; }
.cartoon-theme .admin-login-field input { background: var(--cartoon-paper); border: 1.5px solid var(--cartoon-line); border-radius: 10px; min-height: 48px; }
.cartoon-theme .admin-login-field input::placeholder { color: var(--cartoon-muted); }
.cartoon-theme .admin-login-field input[aria-invalid="true"] { border-color: var(--cartoon-danger); }
.cartoon-theme.admin-login .error-message { color: var(--cartoon-danger); }
.cartoon-theme :is(.admin-login-button,.admin-login-sso) { border: 2px solid var(--cartoon-outline); border-radius: 11px; min-height: 48px; font-weight: 700; box-shadow: 3px 3px 0 var(--cartoon-shadow); transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease; }
.cartoon-theme .admin-login-button { background: var(--cartoon-coral); color: #283747; }
.cartoon-theme .admin-login-button:hover:not(:disabled) { background: var(--cartoon-coral-hover); }
.cartoon-theme .admin-login-sso { background: var(--cartoon-mint); color: var(--cartoon-green) !important; }
.cartoon-theme .admin-login-sso:hover { background: color-mix(in srgb,var(--cartoon-mint) 70%,var(--cartoon-sheet)); }
.cartoon-theme :is(.admin-login-button,.admin-login-sso):hover:not(:disabled) { transform: translate(-1px,-1px); box-shadow: 4px 4px 0 var(--cartoon-shadow); }
.cartoon-theme :is(.admin-login-button,.admin-login-sso):active:not(:disabled) { transform: translate(2px,2px); box-shadow: none; }
.cartoon-theme .admin-login-button:disabled { box-shadow: none; }
.cartoon-theme .admin-login-button[aria-busy="true"]::after { border-color: #28374750; border-top-color: #283747; }
.cartoon-theme .admin-login-divider { gap: 12px; }
.cartoon-theme .admin-login-workspace-link { color: var(--cartoon-blue-ink); }
.cartoon-theme.admin-login .language-btn { border: 1px solid var(--cartoon-line); background: var(--cartoon-sheet); border-radius: 10px; }
.cartoon-theme.admin-login .language-dropdown { border: 1.5px solid var(--cartoon-outline); border-radius: 12px; box-shadow: 3px 3px 0 var(--cartoon-shadow); }
.cartoon-theme.admin-login .language-option:is(.active,:hover) { background: var(--cartoon-blue); }
.cartoon-theme #adminSessionStatus { color: var(--cartoon-blue-ink); }
@media (max-width:700px) {
    .cartoon-theme .admin-login-main { padding-top: 20px; }
    .cartoon-theme .admin-login-panel { border-radius: 17px; box-shadow: 4px 4px 0 var(--cartoon-shadow); }
    .cartoon-theme .admin-login-context { padding-block: 15px; }
    .cartoon-theme .admin-login-context .admin-login-character { width: 96px; margin: 0; }
    .cartoon-theme .admin-login-eyebrow { font-size: 10px; padding: 4px 7px; }
    .cartoon-theme .admin-login-context-note { font-size: 10px; line-height: 1.6; }
    .cartoon-theme .admin-login-form-heading h2 { font-size: 26px; }
}
@media (max-width:360px) {
    .cartoon-theme .admin-login-brand { gap: 10px; }
    .cartoon-theme .admin-login-brand strong { font-size: 21px; }
    .cartoon-theme .admin-login-context .admin-login-character { width: 84px; }
}
@media (prefers-reduced-motion:reduce) {
    body.cartoon-theme.admin-login { transition: none !important; }
}
