*{
margin:0;
padding:0;
box-sizing:border-box;
}

:root{
--black:#0a0a0a;
--black-soft:#141414;
--black-light:#1d1d1d;
--white:#fff;
--off-white:#f7f7f5;
--gray-50:#fafafa;
--gray-100:#f1f1f1;
--gray-200:#e5e5e5;
--gray-300:#d4d4d4;
--gray-400:#a3a3a3;
--gray-500:#737373;
--gray-600:#525252;
--gray-700:#404040;
--gray-800:#262626;
--green:#17a673;
--red:#dc3545;
--orange:#f59e0b;
--radius-sm:10px;
--radius-md:16px;
--radius-lg:24px;
--transition:.3s ease;
}

html{
scroll-behavior:smooth;
}

body{
font-family:"Roboto",Arial,sans-serif;
background:var(--off-white);
color:var(--black);
min-height:100vh;
overflow-x:hidden;
-webkit-font-smoothing:antialiased;
}

button,
input{
font:inherit;
}

button{
cursor:pointer;
}

button:disabled{
cursor:not-allowed;
opacity:.65;
}

button:focus-visible,
input:focus-visible,
a:focus-visible{
outline:3px solid var(--black);
outline-offset:3px;
}

a{
color:inherit;
text-decoration:none;
}

svg{
display:block;
fill:none;
stroke:currentColor;
stroke-width:1.7;
stroke-linecap:round;
stroke-linejoin:round;
}

.hidden{
display:none!important;
}

.sr-only{
position:absolute!important;
width:1px!important;
height:1px!important;
padding:0!important;
margin:-1px!important;
overflow:hidden!important;
clip:rect(0,0,0,0)!important;
white-space:nowrap!important;
border:0!important;
}

.auth-page{
display:grid;
grid-template-columns:42% 58%;
min-height:100vh;
}

.auth-brand{
position:relative;
min-height:100vh;
background:var(--black);
color:var(--white);
padding:48px 56px;
display:flex;
flex-direction:column;
overflow:hidden;
}

.auth-brand:before{
content:"";
position:absolute;
width:520px;
height:520px;
border:1px solid rgba(255,255,255,.08);
border-radius:50%;
right:-250px;
top:-150px;
pointer-events:none;
}

.auth-brand:after{
content:"";
position:absolute;
width:340px;
height:340px;
border:1px solid rgba(255,255,255,.05);
border-radius:50%;
left:-170px;
bottom:60px;
pointer-events:none;
}

.brand-logo{
position:relative;
z-index:2;
font-size:24px;
font-weight:700;
letter-spacing:-.8px;
width:max-content;
}

.brand-content{
position:relative;
z-index:2;
margin:auto 0;
max-width:520px;
}

.brand-eyebrow{
font-size:11px;
letter-spacing:3px;
font-weight:700;
color:var(--gray-400);
margin-bottom:25px;
}

.brand-content h2{
font-size:clamp(42px,5vw,76px);
font-weight:500;
line-height:1.02;
letter-spacing:-3px;
margin-bottom:28px;
}

.brand-content>p:last-child{
font-size:16px;
line-height:1.8;
color:var(--gray-400);
max-width:430px;
}

.brand-footer{
position:relative;
z-index:2;
display:flex;
gap:28px;
font-size:10px;
font-weight:700;
letter-spacing:2px;
color:var(--gray-500);
}

.auth-content{
min-height:100vh;
background:var(--white);
position:relative;
padding:35px 55px 60px;
}

.auth-topbar{
display:flex;
justify-content:space-between;
align-items:center;
gap:20px;
}

.back-home{
display:inline-flex;
align-items:center;
gap:9px;
font-size:13px;
font-weight:600;
}

.back-home svg{
width:19px;
height:19px;
transition:transform var(--transition);
}

.back-home:hover svg{
transform:translateX(-4px);
}

.voice-toggle{
border:1px solid var(--gray-200);
background:var(--white);
border-radius:100px;
display:flex;
align-items:center;
gap:9px;
padding:10px 16px;
font-size:12px;
font-weight:600;
transition:var(--transition);
}

.voice-toggle svg{
width:17px;
height:17px;
}

.voice-toggle:hover,
.voice-toggle.active{
background:var(--black);
color:var(--white);
border-color:var(--black);
}

.auth-container{
width:min(100%,520px);
margin:75px auto 0;
}

.auth-panel{
display:none;
animation:panelIn .4s ease;
}

.auth-panel.active{
display:block;
}

@keyframes panelIn{
from{
opacity:0;
transform:translateY(14px);
}
to{
opacity:1;
transform:translateY(0);
}
}

.auth-eyebrow{
font-size:10px;
letter-spacing:2.5px;
font-weight:700;
color:var(--gray-500);
margin-bottom:15px;
}

.auth-panel>h1{
font-size:38px;
font-weight:500;
line-height:1.15;
letter-spacing:-1.5px;
margin-bottom:12px;
}

.auth-subtitle{
font-size:14px;
color:var(--gray-500);
line-height:1.7;
margin-bottom:35px;
}

.login-methods{
display:grid;
gap:12px;
}

.method-card{
width:100%;
border:1px solid var(--gray-200);
background:var(--white);
border-radius:var(--radius-md);
padding:19px;
display:grid;
grid-template-columns:48px 1fr 22px;
align-items:center;
gap:15px;
text-align:left;
color:var(--black);
transition:var(--transition);
}

.method-card:hover{
border-color:var(--black);
transform:translateY(-2px);
box-shadow:0 12px 35px rgba(0,0,0,.06);
}

.method-icon{
width:48px;
height:48px;
border-radius:13px;
background:var(--gray-100);
display:flex;
align-items:center;
justify-content:center;
}

.method-icon svg{
width:23px;
height:23px;
}

.method-info{
display:flex;
flex-direction:column;
gap:5px;
}

.method-info strong{
font-size:14px;
font-weight:600;
}

.method-info span{
font-size:12px;
line-height:1.5;
color:var(--gray-500);
}

.method-arrow{
width:18px;
height:18px;
color:var(--gray-400);
transition:transform var(--transition);
}

.method-card:hover .method-arrow{
transform:translateX(3px);
color:var(--black);
}

.accessibility-method{
background:var(--black);
border-color:var(--black);
color:var(--white);
}

.accessibility-method .method-icon{
background:rgba(255,255,255,.12);
}

.accessibility-method .method-info span{
color:var(--gray-400);
}

.accessibility-method .method-arrow{
color:var(--gray-400);
}

.accessibility-method:hover{
background:var(--black-soft);
border-color:var(--black-soft);
}

.auth-register-link{
display:flex;
align-items:center;
justify-content:center;
gap:6px;
font-size:13px;
color:var(--gray-500);
margin-top:30px;
}

.auth-register-link button{
border:0;
background:none;
font-weight:700;
color:var(--black);
padding:5px;
}

.auth-register-link button:hover{
text-decoration:underline;
}

.panel-back{
display:flex;
align-items:center;
gap:7px;
border:0;
background:none;
font-size:12px;
font-weight:600;
color:var(--gray-500);
margin-bottom:32px;
padding:3px 0;
}

.panel-back svg{
width:17px;
height:17px;
transition:transform var(--transition);
}

.panel-back:hover{
color:var(--black);
}

.panel-back:hover svg{
transform:translateX(-3px);
}

.auth-form{
display:grid;
gap:19px;
}

.form-group{
display:grid;
gap:8px;
}

.form-group label{
font-size:12px;
font-weight:600;
}

.input-wrapper{
height:54px;
border:1px solid var(--gray-200);
border-radius:var(--radius-sm);
display:flex;
align-items:center;
background:var(--white);
transition:var(--transition);
}

.input-wrapper:focus-within{
border-color:var(--black);
box-shadow:0 0 0 3px rgba(0,0,0,.05);
}

.input-wrapper>svg{
width:18px;
height:18px;
margin-left:17px;
color:var(--gray-500);
flex-shrink:0;
}

.input-wrapper input{
width:100%;
height:100%;
border:0;
outline:0;
background:transparent;
padding:0 15px;
font-size:13px;
color:var(--black);
min-width:0;
}

.input-wrapper input::placeholder{
color:var(--gray-400);
}

.input-wrapper input:-webkit-autofill{
-webkit-box-shadow:0 0 0 1000px var(--white) inset;
-webkit-text-fill-color:var(--black);
}

.password-toggle{
width:50px;
height:100%;
border:0;
background:none;
display:flex;
align-items:center;
justify-content:center;
color:var(--gray-500);
flex-shrink:0;
}

.password-toggle:hover{
color:var(--black);
}

.password-toggle svg{
width:19px;
height:19px;
}

.btn{
min-height:53px;
border-radius:var(--radius-sm);
border:1px solid transparent;
padding:0 22px;
display:inline-flex;
align-items:center;
justify-content:center;
gap:10px;
font-size:13px;
font-weight:600;
transition:var(--transition);
}

.btn svg{
width:19px;
height:19px;
}

.btn-primary{
background:var(--black);
border-color:var(--black);
color:var(--white);
}

.btn-primary:hover:not(:disabled){
background:var(--gray-800);
transform:translateY(-1px);
}

.btn-secondary{
background:var(--white);
border-color:var(--gray-300);
color:var(--black);
}

.btn-secondary:hover:not(:disabled){
border-color:var(--black);
}

.btn-outline{
background:transparent;
border-color:var(--gray-300);
color:var(--black);
}

.btn-outline:hover:not(:disabled){
border-color:var(--black);
background:var(--gray-50);
}

.btn-text{
background:transparent;
color:var(--gray-500);
}

.btn-text:hover:not(:disabled){
color:var(--black);
}

.btn-full{
width:100%;
}

.form-message{
display:none;
padding:12px 14px;
border-radius:8px;
font-size:12px;
line-height:1.6;
}

.form-message.show{
display:block;
}

.form-message.error{
display:block;
background:#fff2f3;
color:#a51c2a;
border:1px solid #ffd7da;
}

.form-message.success{
display:block;
background:#edfdf7;
color:#087653;
border:1px solid #c5f4e3;
}

.auth-divider{
display:flex;
align-items:center;
gap:14px;
margin:24px 0;
font-size:11px;
color:var(--gray-400);
}

.auth-divider:before,
.auth-divider:after{
content:"";
height:1px;
background:var(--gray-200);
flex:1;
}

.camera-container{
position:relative;
width:100%;
aspect-ratio:4/3;
background:var(--black);
border-radius:var(--radius-lg);
overflow:hidden;
margin-bottom:18px;
isolation:isolate;
}

.camera-container video{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
transform:scaleX(-1);
z-index:1;
background:var(--black);
}

.camera-container canvas{
position:absolute;
inset:0;
width:100%;
height:100%;
z-index:2;
pointer-events:none;
transform:scaleX(-1);
}

.camera-placeholder{
position:absolute;
inset:0;
z-index:6;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:12px;
color:var(--gray-400);
background:var(--black);
transition:opacity .3s ease;
}

.camera-placeholder.hidden{
display:none;
}

.camera-placeholder svg{
width:45px;
height:45px;
}

.camera-placeholder span{
font-size:12px;
letter-spacing:.5px;
}

.face-frame{
position:absolute;
z-index:5;
left:50%;
top:50%;
width:48%;
height:68%;
transform:translate(-50%,-50%);
border-radius:45% 45% 42% 42%;
pointer-events:none;
}

.corner{
position:absolute;
width:40px;
height:40px;
border-color:var(--white);
border-style:solid;
filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));
}

.corner-tl{
top:0;
left:0;
border-width:3px 0 0 3px;
border-radius:16px 0 0;
}

.corner-tr{
top:0;
right:0;
border-width:3px 3px 0 0;
border-radius:0 16px 0 0;
}

.corner-bl{
bottom:0;
left:0;
border-width:0 0 3px 3px;
border-radius:0 0 0 16px;
}

.corner-br{
bottom:0;
right:0;
border-width:0 3px 3px 0;
border-radius:0 0 16px;
}

.scan-line{
position:absolute;
left:5%;
right:5%;
height:2px;
top:10%;
background:linear-gradient(90deg,transparent,var(--white),transparent);
box-shadow:0 0 12px rgba(255,255,255,.8);
animation:faceScan 2.5s ease-in-out infinite;
}

@keyframes faceScan{
0%{
top:8%;
opacity:.3;
}
50%{
top:88%;
opacity:1;
}
100%{
top:8%;
opacity:.3;
}
}

.camera-container.scanning .corner{
border-color:#fff;
}

.camera-container.face-found .corner{
border-color:#54e5a7;
}

.camera-container.face-error .corner{
border-color:#ff737d;
}

.camera-container.face-found .scan-line{
background:linear-gradient(90deg,transparent,#54e5a7,transparent);
box-shadow:0 0 12px rgba(84,229,167,.8);
}

.camera-container.face-error .scan-line{
background:linear-gradient(90deg,transparent,#ff737d,transparent);
box-shadow:0 0 12px rgba(255,115,125,.8);
}

.face-status{
min-height:48px;
border:1px solid var(--gray-200);
border-radius:var(--radius-sm);
padding:12px 14px;
display:flex;
align-items:center;
gap:10px;
font-size:12px;
line-height:1.5;
color:var(--gray-600);
margin-bottom:14px;
}

.status-dot{
width:8px;
height:8px;
border-radius:50%;
background:var(--orange);
box-shadow:0 0 0 5px rgba(245,158,11,.12);
flex-shrink:0;
}

.face-status.success{
border-color:#c5f4e3;
background:#f4fffb;
color:#087653;
}

.face-status.success .status-dot{
background:var(--green);
box-shadow:0 0 0 5px rgba(23,166,115,.12);
}

.face-status.error{
border-color:#ffd7da;
background:#fff8f8;
color:#a51c2a;
}

.face-status.error .status-dot{
background:var(--red);
box-shadow:0 0 0 5px rgba(220,53,69,.12);
}

.face-status.scanning .status-dot{
background:var(--orange);
animation:statusPulse 1s ease infinite;
}

.face-register-progress{
display:grid;
grid-template-columns:auto 1fr auto 1fr auto;
align-items:start;
margin-bottom:28px;
}

.progress-item{
display:flex;
flex-direction:column;
align-items:center;
gap:7px;
color:var(--gray-400);
min-width:60px;
}

.progress-item span{
width:32px;
height:32px;
border:1px solid var(--gray-300);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:11px;
font-weight:700;
background:var(--white);
transition:var(--transition);
}

.progress-item p{
font-size:9px;
font-weight:600;
text-align:center;
white-space:nowrap;
}

.progress-item.active{
color:var(--black);
}

.progress-item.active span{
background:var(--black);
border-color:var(--black);
color:var(--white);
}

.progress-item.complete{
color:var(--green);
}

.progress-item.complete span{
background:var(--green);
border-color:var(--green);
color:var(--white);
}

.progress-line{
height:1px;
background:var(--gray-200);
margin-top:16px;
}

.assistant-registration-status{
display:flex;
align-items:center;
gap:14px;
border:1px solid var(--gray-200);
background:var(--gray-50);
border-radius:var(--radius-md);
padding:15px;
margin-bottom:25px;
}

.assistant-registration-status>div:last-child{
display:grid;
gap:4px;
}

.assistant-registration-status strong{
font-size:12px;
}

.assistant-registration-status p{
font-size:11px;
line-height:1.5;
color:var(--gray-500);
}

.assistant-orb{
width:42px;
height:42px;
border-radius:50%;
background:var(--black);
display:flex;
align-items:center;
justify-content:center;
gap:3px;
flex-shrink:0;
}

.assistant-orb span{
width:2px;
height:10px;
background:var(--white);
border-radius:5px;
animation:voiceMini 1s ease-in-out infinite;
}

.assistant-orb span:nth-child(2){
height:18px;
animation-delay:.15s;
}

.assistant-orb span:nth-child(3){
height:12px;
animation-delay:.3s;
}

@keyframes voiceMini{
0%,100%{
transform:scaleY(.5);
}
50%{
transform:scaleY(1);
}
}

.success-panel{
text-align:center;
padding-top:40px;
}

.success-icon{
width:84px;
height:84px;
margin:0 auto 28px;
border-radius:50%;
background:var(--black);
display:flex;
align-items:center;
justify-content:center;
color:var(--white);
}

.success-icon svg{
width:42px;
height:42px;
}

.success-panel .auth-subtitle{
max-width:360px;
margin-left:auto;
margin-right:auto;
}

.assistant-large-orb{
width:130px;
height:130px;
margin:0 auto 35px;
position:relative;
display:flex;
align-items:center;
justify-content:center;
}

.orb-ring{
position:absolute;
inset:0;
border:1px solid var(--gray-200);
border-radius:50%;
animation:orbPulse 2s ease-out infinite;
}

.orb-ring:before,
.orb-ring:after{
content:"";
position:absolute;
border:1px solid var(--gray-200);
border-radius:50%;
}

.orb-ring:before{
inset:12px;
}

.orb-ring:after{
inset:24px;
}

.orb-core{
width:72px;
height:72px;
border-radius:50%;
background:var(--black);
color:var(--white);
display:flex;
align-items:center;
justify-content:center;
position:relative;
z-index:2;
}

.orb-core svg{
width:31px;
height:31px;
}

@keyframes orbPulse{
0%{
transform:scale(.85);
opacity:1;
}
100%{
transform:scale(1.25);
opacity:0;
}
}

#disabledLoginQuestionPanel{
text-align:center;
}

#disabledLoginQuestionPanel .auth-subtitle{
font-size:17px;
color:var(--black);
max-width:410px;
margin-left:auto;
margin-right:auto;
}

.voice-transcript{
min-height:54px;
border:1px solid var(--gray-200);
background:var(--gray-50);
border-radius:var(--radius-sm);
display:flex;
align-items:center;
justify-content:center;
padding:12px;
font-size:12px;
line-height:1.5;
color:var(--gray-500);
margin-bottom:18px;
}

.voice-transcript.listening{
border-color:var(--black);
color:var(--black);
background:var(--white);
}

.voice-answer-buttons{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px;
}

.voice-instruction{
font-size:11px;
line-height:1.7;
color:var(--gray-500);
margin-top:18px;
}

.accessibility-modal{
position:fixed;
inset:0;
z-index:9999;
background:rgba(0,0,0,.78);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
display:none;
align-items:center;
justify-content:center;
padding:25px;
}

.accessibility-modal.active{
display:flex;
}

.accessibility-box{
width:min(100%,560px);
background:var(--white);
border-radius:26px;
padding:46px;
text-align:center;
box-shadow:0 30px 100px rgba(0,0,0,.3);
animation:modalIn .5s cubic-bezier(.2,.8,.2,1);
}

@keyframes modalIn{
from{
opacity:0;
transform:scale(.95) translateY(15px);
}
to{
opacity:1;
transform:scale(1) translateY(0);
}
}

.accessibility-icon{
width:70px;
height:70px;
border-radius:50%;
background:var(--black);
color:var(--white);
display:flex;
align-items:center;
justify-content:center;
margin:0 auto 24px;
}

.accessibility-icon svg{
width:32px;
height:32px;
}

.accessibility-label{
font-size:10px;
font-weight:700;
letter-spacing:2.5px;
color:var(--gray-500);
margin-bottom:12px;
}

.accessibility-box h1{
font-size:30px;
line-height:1.2;
letter-spacing:-1px;
margin-bottom:13px;
}

.accessibility-description{
font-size:14px;
line-height:1.7;
color:var(--gray-500);
max-width:400px;
margin:0 auto 20px;
}

.accessibility-status{
display:inline-flex;
align-items:center;
gap:9px;
background:var(--gray-100);
border-radius:100px;
padding:9px 14px;
font-size:11px;
color:var(--gray-600);
margin-bottom:25px;
}

.accessibility-status .status-dot{
animation:statusPulse 1.5s ease infinite;
}

@keyframes statusPulse{
0%,100%{
opacity:.45;
transform:scale(.85);
}
50%{
opacity:1;
transform:scale(1);
}
}

.accessibility-actions{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px;
}

.accessibility-box .voice-instruction{
margin-bottom:14px;
}

.voice-indicator{
height:24px;
display:flex;
align-items:center;
justify-content:center;
gap:4px;
opacity:.5;
}

.voice-indicator.active{
opacity:1;
}

.voice-indicator span{
width:3px;
height:8px;
background:var(--black);
border-radius:10px;
animation:voiceWave 1s ease-in-out infinite;
animation-play-state:paused;
}

.voice-indicator.active span{
animation-play-state:running;
}

.voice-indicator span:nth-child(2){
height:15px;
animation-delay:.1s;
}

.voice-indicator span:nth-child(3){
height:22px;
animation-delay:.2s;
}

.voice-indicator span:nth-child(4){
height:15px;
animation-delay:.3s;
}

.voice-indicator span:nth-child(5){
height:8px;
animation-delay:.4s;
}

@keyframes voiceWave{
0%,100%{
transform:scaleY(.4);
opacity:.5;
}
50%{
transform:scaleY(1);
opacity:1;
}
}

.global-voice-assistant{
position:fixed;
z-index:8000;
right:25px;
bottom:25px;
width:min(360px,calc(100% - 50px));
background:var(--black);
color:var(--white);
border-radius:18px;
padding:17px;
display:grid;
grid-template-columns:46px 1fr 32px;
align-items:center;
gap:13px;
box-shadow:0 20px 60px rgba(0,0,0,.25);
animation:assistantIn .35s ease;
}

@keyframes assistantIn{
from{
opacity:0;
transform:translateY(15px);
}
to{
opacity:1;
transform:translateY(0);
}
}

.voice-assistant-icon{
width:46px;
height:46px;
border-radius:50%;
background:var(--white);
color:var(--black);
display:flex;
align-items:center;
justify-content:center;
}

.voice-assistant-icon svg{
width:22px;
height:22px;
}

.voice-assistant-content{
min-width:0;
}

.voice-assistant-content strong{
display:block;
font-size:11px;
margin-bottom:4px;
}

.voice-assistant-content p{
font-size:10px;
color:var(--gray-400);
line-height:1.4;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}

.voice-wave{
display:flex;
align-items:center;
gap:2px;
height:12px;
margin-top:7px;
}

.voice-wave span{
width:2px;
height:5px;
background:var(--white);
border-radius:5px;
animation:voiceWave 1s ease infinite;
}

.voice-wave span:nth-child(2){
height:10px;
animation-delay:.1s;
}

.voice-wave span:nth-child(3){
height:7px;
animation-delay:.2s;
}

.voice-wave span:nth-child(4){
height:11px;
animation-delay:.3s;
}

.voice-wave span:nth-child(5){
height:6px;
animation-delay:.4s;
}

#stopVoiceAssistant{
width:32px;
height:32px;
border:0;
border-radius:50%;
background:rgba(255,255,255,.1);
color:var(--white);
display:flex;
align-items:center;
justify-content:center;
}

#stopVoiceAssistant:hover{
background:rgba(255,255,255,.2);
}

#stopVoiceAssistant svg{
width:16px;
height:16px;
}

.loading-overlay{
position:fixed;
inset:0;
z-index:10000;
background:rgba(255,255,255,.92);
backdrop-filter:blur(6px);
-webkit-backdrop-filter:blur(6px);
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:18px;
}

.loader{
width:42px;
height:42px;
border:3px solid var(--gray-200);
border-top-color:var(--black);
border-radius:50%;
animation:loaderSpin .8s linear infinite;
}

@keyframes loaderSpin{
to{
transform:rotate(360deg);
}
}

.loading-overlay p{
font-size:12px;
font-weight:600;
}

.notification{
position:fixed;
z-index:9000;
top:25px;
right:25px;
width:min(370px,calc(100% - 50px));
background:var(--white);
border:1px solid var(--gray-200);
border-radius:14px;
padding:16px;
box-shadow:0 15px 50px rgba(0,0,0,.12);
display:grid;
grid-template-columns:10px 1fr;
gap:12px;
opacity:0;
visibility:hidden;
transform:translateY(-10px);
transition:var(--transition);
}

.notification.show{
opacity:1;
visibility:visible;
transform:translateY(0);
}

.notification-icon{
width:8px;
height:8px;
border-radius:50%;
background:var(--black);
margin-top:4px;
}

.notification.success .notification-icon{
background:var(--green);
}

.notification.error .notification-icon{
background:var(--red);
}

.notification.warning .notification-icon{
background:var(--orange);
}

.notification strong{
display:block;
font-size:12px;
margin-bottom:4px;
}

.notification p{
font-size:11px;
line-height:1.5;
color:var(--gray-500);
}

body.high-contrast{
--black:#000;
--white:#fff;
--off-white:#fff;
--gray-500:#242424;
}

body.high-contrast .btn-primary{
border:2px solid var(--black);
}

body.high-contrast .method-card,
body.high-contrast .input-wrapper{
border-width:2px;
}

body.large-accessibility-text{
font-size:120%;
}

body.large-accessibility-text .btn{
font-size:15px;
min-height:60px;
}

body.large-accessibility-text .form-group label{
font-size:14px;
}

body.large-accessibility-text .input-wrapper input{
font-size:15px;
}

@media(max-width:1100px){
.auth-page{
grid-template-columns:36% 64%;
}

.auth-brand{
padding:42px 35px;
}

.brand-content h2{
font-size:48px;
}

.auth-content{
padding:32px 40px 55px;
}
}

@media(max-width:850px){
.auth-page{
display:block;
}

.auth-brand{
display:none;
}

.auth-content{
min-height:100vh;
padding:25px 24px 50px;
}

.auth-container{
margin-top:55px;
}

.accessibility-box{
padding:38px 30px;
}
}

@media(max-width:600px){
.auth-content{
padding:20px 18px 45px;
}

.auth-topbar{
align-items:center;
}

.voice-toggle span{
display:none;
}

.voice-toggle{
width:42px;
height:42px;
padding:0;
justify-content:center;
}

.auth-container{
margin-top:45px;
}

.auth-panel>h1{
font-size:31px;
}

.auth-subtitle{
margin-bottom:28px;
}

.method-card{
grid-template-columns:45px 1fr 18px;
padding:15px;
gap:12px;
}

.method-icon{
width:45px;
height:45px;
}

.camera-container{
border-radius:18px;
}

.face-frame{
width:52%;
height:68%;
}

.accessibility-modal{
padding:15px;
}

.accessibility-box{
padding:34px 20px;
border-radius:20px;
}

.accessibility-box h1{
font-size:25px;
}

.accessibility-actions{
grid-template-columns:1fr;
}

.accessibility-actions .btn{
min-height:56px;
}

.voice-answer-buttons{
grid-template-columns:1fr;
}

.global-voice-assistant{
right:15px;
bottom:15px;
width:calc(100% - 30px);
}

.notification{
top:15px;
right:15px;
width:calc(100% - 30px);
}

.face-register-progress{
grid-template-columns:auto 1fr auto 1fr auto;
}

.progress-item{
min-width:48px;
}

.progress-item p{
font-size:8px;
}

.success-panel{
padding-top:15px;
}
}

@media(max-width:380px){
.auth-content{
padding-left:14px;
padding-right:14px;
}

.auth-panel>h1{
font-size:28px;
}

.accessibility-box{
padding:28px 16px;
}

.method-info span{
font-size:11px;
}

.face-frame{
width:57%;
height:68%;
}
}

@media(prefers-reduced-motion:reduce){
*,
*:before,
*:after{
animation-duration:.01ms!important;
animation-iteration-count:1!important;
transition-duration:.01ms!important;
scroll-behavior:auto!important;
}
}