/* Layout alternatives; controls inherit the actual dashboard theme and harmonized prototype styles. */
/* Filament normally injects these configured palette mappings in its server-rendered head. */
.ct-auth { --gray-50:oklch(0.985 0 0); --gray-100:oklch(0.967 0.001 286.375); --gray-200:oklch(0.92 0.004 286.32); --gray-300:oklch(0.871 0.006 286.286); --gray-400:oklch(0.705 0.015 286.067); --gray-500:oklch(0.552 0.016 285.938); --gray-600:oklch(0.442 0.017 285.786); --gray-700:oklch(0.37 0.013 285.805); --gray-800:oklch(0.274 0.006 286.033); --gray-900:oklch(0.21 0.006 285.885); --gray-950:oklch(0.141 0.005 285.823); --primary-50:oklch(0.979 0.021 166.113); --primary-100:oklch(0.95 0.052 163.051); --primary-200:oklch(0.905 0.093 164.15); --primary-300:oklch(0.845 0.143 164.978); --primary-400:oklch(0.765 0.177 163.223); --primary-500:oklch(0.696 0.17 162.48); --primary-600:oklch(0.596 0.145 163.225); --primary-700:oklch(0.508 0.118 165.612); --primary-800:oklch(0.432 0.095 166.913); --primary-900:oklch(0.378 0.077 168.94); --primary-950:oklch(0.262 0.051 172.552); --danger-50:oklch(0.971 0.013 17.38); --danger-100:oklch(0.936 0.032 17.717); --danger-200:oklch(0.885 0.062 18.334); --danger-300:oklch(0.808 0.114 19.571); --danger-400:oklch(0.704 0.191 22.216); --danger-500:oklch(0.637 0.237 25.331); --danger-600:oklch(0.577 0.245 27.325); --danger-700:oklch(0.505 0.213 27.518); --danger-800:oklch(0.444 0.177 26.899); --danger-900:oklch(0.396 0.141 25.723); --danger-950:oklch(0.258 0.092 26.042); }
.ct-auth { min-height:100svh; margin:0; display:flex; flex-direction:column; }
.ct-auth [hidden] { display:none !important; }
.ct-auth-symbols { position:absolute; width:0; height:0; overflow:hidden; }
.ct-auth svg { fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ct-auth-header { display:flex; flex-shrink:0; align-items:center; justify-content:flex-end; height:66px; padding:0 36px; z-index:1; }
.ct-auth-header-brand { display:none; align-items:center; gap:24px; }
.ct-auth-logo { display:block; width:123px; height:36px; object-fit:contain; }
.ct-auth-header-brand > span { padding-inline-start:24px; border-inline-start:1px solid var(--ct-border); color:var(--ct-muted); font-size:12px; }
.ct-auth-stage { display:flex; flex:1; min-width:0; }
.ct-auth-heading p { margin:8px 0 0; color:var(--ct-muted); font-size:13px; line-height:20px; }
.ct-auth .ct-auth-surface { margin:0; overflow:visible; }
.ct-auth .ct-auth-surface > .ct-panel-heading { padding:20px 24px; border-bottom:1px dashed var(--ct-border); }
.ct-auth .ct-auth-surface > .ct-panel-heading h2 { font-size:14px; line-height:20px; font-weight:600; }
.ct-auth .ct-auth-surface > .ct-panel-heading p { margin-top:4px; font-size:12px; line-height:20px; }
.ct-auth-fields { display:grid; gap:24px; padding:24px; }
.ct-auth-actions { display:grid; gap:24px; padding:0 24px 24px; }
.ct-auth .ct-auth-remember .fi-fo-field-label { width:fit-content; cursor:pointer; }
.ct-auth .ct-auth-submit { width:100%; }
/* Paint the native surface over the browser's autofill fill without changing the field geometry. */
.ct-auth .ct-auth-input .fi-input:is(:autofill,:-webkit-autofill) { box-shadow:inset 0 0 0 1000px var(--ct-surface); -webkit-text-fill-color:var(--gray-950); }
@media(forced-colors:active) {
    .ct-auth .ct-auth-input .fi-input:is(:autofill,:-webkit-autofill) { box-shadow:none; -webkit-text-fill-color:CanvasText; }
}
.ct-auth-submit:disabled { cursor:wait; }
.ct-auth-preview-note { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; margin:0; padding:16px 24px; border-top:1px dashed var(--ct-border); color:var(--ct-muted); font-size:12px; line-height:20px; }
.ct-auth-preview-note .ct-demo-label { font-size:11px; }
.ct-auth-result { display:flex; align-items:flex-start; gap:12px; margin:0 24px 24px; padding-top:20px; border-top:1px dashed var(--ct-border); color:var(--ct-primary); font-size:13px; line-height:20px; }
.ct-auth-result .ct-icon { margin-top:1px; }
.ct-auth-result p { margin:0; }

/* A: compact framed sign-in. */
.ct-auth-centered { align-self:center; width:min(100%,416px); margin:0 auto; padding-block:24px 96px; }
.ct-auth-centered > .ct-auth-logo { margin:0 auto 32px; }
.ct-auth-centered .ct-auth-heading { padding:24px; border-bottom:1px dashed var(--ct-border); }
[data-login-variant=A] .ct-auth-stage { padding-inline:24px; }

/* B: full-height identity area with a separate unframed form. */
[data-login-variant=B] .ct-auth-header { position:absolute; inset:0 0 auto; }
.ct-auth-split { display:grid; grid-template-columns:minmax(300px,42%) minmax(0,1fr); width:100%; min-height:100svh; }
.ct-auth-brand-space { display:flex; flex-direction:column; padding:40px 56px 112px; background:var(--ct-surface); border-inline-end:1px solid var(--ct-border); }
.ct-auth-brand-content { margin-block:auto; padding-block:64px; max-width:330px; }
.ct-auth-brand-content > .ct-type-page { margin:0; }
.ct-auth-brand-description { margin:16px 0 0; color:var(--ct-muted); font-size:14px; line-height:24px; }
.ct-auth-workspaces { display:grid; gap:0; margin:32px 0 0; padding:0; list-style:none; }
.ct-auth-workspaces li { display:flex; align-items:center; gap:12px; padding-block:16px; border-top:1px dashed var(--ct-border); font-size:14px; }
.ct-auth-workspaces .ct-icon { color:var(--ct-muted); }
.ct-auth-brand-footer { margin:0; }
.ct-auth-form-space { position:relative; isolation:isolate; display:grid; min-width:0; }
.ct-auth-form-space::before { position:absolute; z-index:-1; inset:0; pointer-events:none; background-position:center; background-repeat:no-repeat; background-size:cover; mask-image:radial-gradient(ellipse 390px 440px at 50% 48%,transparent 70%,#000 115%); }
[data-login-background=dots] .ct-auth-form-space::before { content:""; background-image:radial-gradient(circle,var(--ct-border-strong) 1px,transparent 1.2px); background-size:22px 22px; background-repeat:repeat; }
[data-login-background=flow] .ct-auth-form-space::before { content:""; background-image:url('./background-flow.svg'); }
[data-login-background=facets] .ct-auth-form-space::before { content:""; background-image:url('./background-facets.svg'); }
.ct-auth-split-form { align-self:center; justify-self:center; width:min(100%,368px); padding-block:100px 136px; }
.ct-auth-split-form .ct-auth-heading { margin-bottom:32px; }
.ct-auth-split-form .ct-auth-fields { padding:0; }
.ct-auth-split-form .ct-auth-actions { padding:24px 0 0; }
.ct-auth-split-form .ct-auth-preview-note { margin-top:32px; padding:20px 0 0; justify-content:flex-start; }
.ct-auth-split-form .ct-auth-result { margin:24px 0 0; }

/* C: workspace header and two-column native form. */
[data-login-variant=C] .ct-auth-header { justify-content:space-between; background:var(--ct-surface); border-bottom:1px solid var(--ct-border); }
[data-login-variant=C] .ct-auth-header-brand { display:flex; }
.ct-auth-workspace { width:min(100%,880px); margin:0 auto; padding-block:88px 112px; }
[data-login-variant=C] .ct-auth-stage { padding-inline:36px; }
.ct-auth-workspace .ct-auth-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ct-auth-workspace .ct-auth-actions { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 24px; border-top:1px dashed var(--ct-border); }
.ct-auth-workspace .ct-auth-submit { width:auto; min-width:132px; }
.ct-auth-workspace .ct-auth-preview-note { justify-content:flex-start; padding:16px 24px; }
.ct-auth-workspace .ct-auth-result { margin-top:20px; }

/* The browser owns modality and focus containment; the actual system owns window and choice styling. */
.ct-auth .ct-auth-language-dialog { position:fixed; inset:0; width:min(384px,calc(100vw - 32px)); height:fit-content; max-height:calc(100dvh - 48px); margin:clamp(24px,16vh,160px) auto auto; padding:0; border:0; overflow:visible; background:transparent; color:var(--ct-text); }
.ct-auth .ct-auth-language-dialog:not([open]) { display:none; }
.ct-auth .ct-auth-language-dialog[open] { display:block; }
.ct-auth .ct-auth-language-dialog::backdrop { background:rgb(0 0 0 / .1); }
.ct-auth .ct-auth-language-dialog > .fi-modal-window-ctn { position:static; display:block; min-height:0; padding:0; overflow:visible; }
.ct-auth .ct-auth-language-dialog .fi-modal-window { width:100%; max-height:calc(100dvh - 48px); overflow:auto; margin:0; }
.ct-auth-language-dialog[open] .fi-modal-window { animation:ct-auth-dialog-in var(--ct-motion) var(--ct-ease); }
@keyframes ct-auth-dialog-in { from { opacity:0; transform:translateY(32px); } to { opacity:1; transform:translateY(0); } }
.ct-auth .ct-auth-language-dialog:focus-visible { outline:none; }

/* Prototype comparison chrome. */
.ct-auth .ct-auth-switcher { left:50%; bottom:16px; gap:8px; padding:6px 8px; max-width:calc(100vw - 24px); border-radius:10px; direction:ltr; }
.ct-auth-switcher-label { padding-inline:6px 12px; border-inline-end:1px solid #525252; color:#d4d4d4; }
.ct-auth .ct-auth-switcher button { display:flex; align-items:center; justify-content:center; gap:6px; min-width:32px; min-height:36px; padding:6px 10px; border:0; border-radius:6px; color:#d4d4d4; background:transparent; font-size:11px; font-weight:500; transition:background-color var(--ct-motion) var(--ct-ease),color var(--ct-motion) var(--ct-ease); }
.ct-auth .ct-auth-switcher button:hover { background:#404040; color:white; }
.ct-auth .ct-auth-switcher button[aria-pressed=true] { background:white; color:#262626; }
.ct-auth .ct-auth-switcher button:focus-visible { outline-color:#a7f3d0; outline-offset:1px; }
.ct-auth-switcher .ct-icon { width:14px; height:14px; }
.ct-auth-variant-options { display:flex; gap:4px; }
.ct-auth-noscript { padding:32px; text-align:center; }
@media(max-width:960px) {
    .ct-auth-brand-space { padding-inline:32px; }
    .ct-auth-split-form { width:100%; max-width:400px; padding-inline:32px; }
}
@media(max-width:700px) {
    .ct-auth-header { padding-inline:20px; }
    .ct-auth-centered { padding-block:24px 104px; }
    [data-login-variant=A] .ct-auth-stage,[data-login-variant=C] .ct-auth-stage { padding-inline:16px; }
    .ct-auth-split { display:flex; flex-direction:column; }
    .ct-auth-form-space { display:flex; flex-direction:column; flex:1; }
    .ct-auth-form-space::before { mask-image:radial-gradient(ellipse 300px 400px at 50% 30%,transparent 70%,#000 115%); }
    .ct-auth-brand-space { padding:24px 24px 28px; border-inline-end:0; border-bottom:1px solid var(--ct-border); }
    .ct-auth-brand-content { max-width:none; padding:36px 0 0; }
    .ct-auth-brand-description { margin-top:8px; }
    .ct-auth-workspaces,.ct-auth-brand-footer { display:none; }
    .ct-auth-split-form { align-self:center; padding:32px 24px 112px; max-width:440px; }
    .ct-auth-workspace { padding-block:40px 112px; }
    .ct-auth-workspace .ct-auth-fields { grid-template-columns:minmax(0,1fr); }
    .ct-auth-header-brand { gap:16px; }
    .ct-auth-header-brand > span { padding-inline-start:16px; }
    .ct-auth-switcher-label { display:none; }
}
@media(max-width:400px) {
    .ct-auth .ct-auth-switcher { gap:4px; padding-inline:4px; }
    .ct-auth .ct-auth-switcher button { gap:4px; padding-inline:7px; }
    .ct-auth-variant-options { flex:1; min-width:0; }
    .ct-auth .ct-auth-variant-options button { flex:1; flex-direction:column; gap:0; min-width:0; white-space:normal; }
    .ct-auth-header-brand > span { display:none; }
    .ct-auth-workspace .ct-auth-actions { flex-direction:column; align-items:stretch; gap:20px; }
    .ct-auth-workspace .ct-auth-submit { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
    .ct-auth-language-dialog[open] .fi-modal-window { animation:none; }
}
