/* =================================================
PASSWORD GATE
================================================= */

body.is-locked{
overflow:hidden;
}

.case-gate{
position:fixed;
inset:0;
z-index:20000;
display:flex;
align-items:center;
justify-content:center;
padding:24px;
}

.case-gate[hidden]{
display:none !important;
}

.case-gate__backdrop{
position:absolute;
inset:0;
background:
radial-gradient(circle at top left, rgba(64,103,217,0.18), transparent 38%),
radial-gradient(circle at bottom right, rgba(57,143,186,0.14), transparent 34%),
rgba(245,247,250,0.82);
backdrop-filter:blur(14px);
-webkit-backdrop-filter:blur(14px);
}

.case-gate__card{
position:relative;
width:min(100%, 520px);
background:rgba(255,255,255,0.88);
border:1px solid rgba(15,23,42,0.08);
border-radius:28px;
padding:32px;
box-shadow:
0 24px 60px rgba(15,23,42,0.16),
0 8px 24px rgba(15,23,42,0.08);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
}

.case-gate__brand{
display:flex;
align-items:center;
gap:12px;
margin-bottom:24px;
}

.case-gate__logo{
width:72px;
height:auto;
}

.case-gate__tag{
display:inline-flex;
align-items:center;
padding:8px 12px;
border-radius:999px;
background:#eef3ff;
color:#165C7D;
font:600 13px/1 "Montserrat", system-ui, sans-serif;
}

.case-gate__copy{
margin-bottom:22px;
}

.case-gate__eyebrow{
margin-bottom:10px;
font:700 12px/1.2 "Montserrat", system-ui, sans-serif;
letter-spacing:.08em;
text-transform:uppercase;
color:#4067D9;
}

.case-gate__title{
margin:0 0 12px;
font:700 clamp(28px, 4vw, 40px)/1.08 "EB Garamond", serif;
color:#1F2933;
}

.case-gate__text{
margin:0;
font:400 16px/1.65 "IBM Plex Sans", "Noto Sans", system-ui, sans-serif;
color:#5b6472;
}

.case-gate__form{
display:grid;
gap:14px;
}

.case-gate__label{
font:600 14px/1.2 "Montserrat", system-ui, sans-serif;
color:#2b3147;
}

.case-gate__inputwrap{
position:relative;
}

.case-gate__input{
width:100%;
height:58px;
padding:0 88px 0 18px;
border:1px solid rgba(31,41,51,0.12);
border-radius:16px;
background:#fff;
color:#1F2933;
font:500 16px/1 "IBM Plex Sans", system-ui, sans-serif;
outline:none;
transition:border-color .2s ease, box-shadow .2s ease;
}

.case-gate__input::placeholder{
color:#94a0ae;
}

.case-gate__input:focus{
border-color:#4067D9;
box-shadow:0 0 0 4px rgba(64,103,217,0.12);
}

.case-gate__toggle{
position:absolute;
top:50%;
right:10px;
transform:translateY(-50%);
height:40px;
padding:0 14px;
border-radius:12px;
background:#f5f7fa;
color:#2b3147;
font:600 13px/1 "Montserrat", system-ui, sans-serif;
cursor:pointer;
transition:background .2s ease;
}

.case-gate__toggle:hover{
background:#e9eef7;
}

.case-gate__error{
min-height:20px;
font:500 14px/1.4 "IBM Plex Sans", system-ui, sans-serif;
color:#D14343;
}

.case-gate__button{
height:56px;
border-radius:16px;
background:linear-gradient(135deg, #4067D9, #398fba);
color:#fff;
font:700 15px/1 "Montserrat", system-ui, sans-serif;
cursor:pointer;
box-shadow:0 14px 28px rgba(64,103,217,0.18);
transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.case-gate__button:hover{
transform:translateY(-1px);
box-shadow:0 18px 34px rgba(64,103,217,0.22);
}

.case-gate__button:active{
transform:translateY(0);
}

.protected-site[hidden]{
display:none !important;
}

@media (max-width: 640px){
.case-gate{
padding:16px;
}

.case-gate__card{
padding:22px;
border-radius:22px;
}

.case-gate__title{
font-size:30px;
}
}

.case-gate__back{
display:block;
text-align:center;
margin-top:16px;
font:600 14px "Montserrat", system-ui;
color:#4067D9;
text-decoration:none;
}

.case-gate__back:hover{
text-decoration:underline;
}