/* V5.0 TouristSaigon authentication identity; no changes to form fields or JS submit flows. */
:root{--ts50-navy:#113c61;--ts50-blue:#086d96;--ts50-gold:#ca9041;}
.login-body,.register-body{
 font-family:"Segoe UI",Roboto,"Noto Sans",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
 font-synthesis:none;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;
}
.login-body :is(input,button,textarea,select){font:inherit;}
.login-body .login-photo>img{object-fit:cover;object-position:56% 48%;}
.login-photo:after{background:linear-gradient(180deg,rgba(5,36,68,.39),rgba(6,37,68,.05) 36%,rgba(3,31,61,.86));}
.login-photo .wordmark{font-family:inherit;letter-spacing:-.035em;font-size:clamp(20px,2vw,26px);gap:12px;}
.ts50-auth-logo{display:block;flex:none;width:43px;height:43px;object-fit:contain;border-radius:12px;box-shadow:0 8px 20px rgba(4,32,58,.2);}
.login-photo .wordmark strong{color:#f9ce7c;}
.login-photo-content h1{font-family:inherit;font-weight:830;letter-spacing:-.045em;line-height:1.12;text-wrap:balance;}
.login-photo-content p{line-height:1.75;max-width:440px;}
.login-panel{background:linear-gradient(145deg,#fff,#fbfaf6);}
.login-card{border-radius:20px;min-width:0;}
.login-card>.eyebrow{color:#a26a2d;letter-spacing:.12em;line-height:1.65;}
.login-card h2{font-family:inherit;font-weight:830;color:#163954;letter-spacing:-.048em;text-wrap:balance;}
.login-card>.muted{color:#657684;line-height:1.65;}
.login-card form label{color:#29445d;font-weight:750;line-height:1.5;}
.login-card input{background:#fff;border:1.5px solid #dbe3e8;color:#1b3a53;box-shadow:0 1px 2px rgba(20,49,70,.035);font-size:16px!important;}
.login-card input::placeholder{color:#8496a7;opacity:1;}
.login-card input:focus{outline:none;border-color:#187e9e;box-shadow:0 0 0 4px rgba(26,137,160,.12);}
.login-card .btn.primary{background:linear-gradient(120deg,#0b5682,#147c91);box-shadow:0 11px 22px rgba(17,91,130,.2);min-height:52px;border-radius:12px;font-weight:800;transition:transform .2s ease,box-shadow .2s ease;}
.login-card .btn.primary:hover{box-shadow:0 14px 29px rgba(17,91,130,.28);}
.login-card .btn.primary:active{transform:scale(.988);}
.login-card .signup-link{color:#096c99;text-decoration:none;font-weight:800;text-underline-offset:3px;}
.login-card .signup-link:hover{text-decoration:underline;}
.login-card .login-help{line-height:1.75;}
.login-card .password-toggle{min-width:55px;min-height:37px;font-weight:750;color:#0e6689;}
.login-card .password-field input{padding-right:72px;}
.register-body .ts-register-top{display:none;}
.register-body .register-benefits{gap:8px;margin:13px 0 21px;}
.register-body .register-benefits span{border:1px solid #dce9eb;background:#f2f9fa;color:#327087;font-size:11px;font-weight:750;line-height:1.4;min-height:43px;}
.register-body .login-card>.muted{margin-bottom:10px;}
.register-body .label-line{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;}
.register-body .required-mark{color:#c84e5c;flex:none;}
.register-body .register-hint{color:#657788;line-height:1.6;}
.register-body .login-card form{gap:14px;}
.register-body .login-panel{padding-top:30px;padding-bottom:26px;}
.register-body .login-card{max-width:520px;}
.login-body .mobile-wordmark{align-items:center;gap:10px;letter-spacing:-.035em;}
.login-body .mobile-wordmark strong{color:#be8740;}
@media(max-width:960px){
 .login-layout{grid-template-columns:minmax(0,.9fr) minmax(380px,1fr);}
 .login-panel{padding:30px clamp(22px,4vw,62px);gap:15px;}
}
@media(max-width:750px){
 .login-layout{grid-template-columns:1fr;min-height:100dvh;}
 .login-photo{display:none;}
 .login-panel{min-height:100dvh;justify-content:center;padding:24px 18px 26px;}
 .login-card{background:#fff;padding:24px 22px;border:1px solid #e5eaec;box-shadow:0 13px 36px rgba(12,65,97,.09);}
 .login-body{background:linear-gradient(160deg,#e8f5f9,#faf9f3 55%,#fff2df);}
 .login-panel{background:transparent;}
 .login-body .mobile-wordmark{display:flex;margin:0 0 19px;color:#103d61;font-size:20px;}
 .register-body .register-benefits{grid-template-columns:1fr;gap:6px;margin:9px 0 14px;}
 .register-body .register-benefits span{min-height:32px;padding:6px 9px;text-align:left;justify-content:flex-start;}
 .login-card h2{font-size:clamp(27px,7vw,35px);}
 .login-card>.muted{margin-bottom:16px;}
 .register-body .login-card form{gap:11px;}
 .register-body .login-panel{padding:18px 12px;}
}
@media(max-width:360px){.login-card{padding:22px 17px}.register-body .login-card{padding:21px 17px}.login-card>.eyebrow{font-size:9.5px;}}
@media(prefers-reduced-motion:reduce){.login-card .btn.primary{transition:none!important;}}
