.login-body{min-height:100vh;font-family:var(--font-sans,"Plus Jakarta Sans", sans-serif);color:#1a202c;background-color:#f8f3ea;background-image:radial-gradient(circle at 50% 0,#faf6f0 0%,#e7e0d8 100%);justify-content:center;align-items:center;margin:0;padding:30px 20px;display:flex}.login-wrapper{width:100%;max-width:920px;margin:0 auto}.login-split-card{background:#fff;border:1px solid #0000000f;border-radius:24px;grid-template-columns:340px 1fr;min-height:560px;display:grid;overflow:hidden;box-shadow:0 25px 60px #0000001f}.login-left-panel{color:#fff;background:linear-gradient(#0f172abf 0%,#0f172aeb 100%),url(/images/tn_villas.jpg) 50%/cover no-repeat;flex-direction:column;justify-content:space-between;padding:40px 32px;display:flex;position:relative;overflow:hidden}.login-left-panel:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 20%,#eb5e2826,#0000 40%);position:absolute;inset:0}.login-left-content{z-index:2;flex-direction:column;justify-content:space-between;height:100%;display:flex;position:relative}.login-brand-logo{filter:brightness(0)invert();object-fit:contain;height:42px}.login-left-illustration{justify-content:center;align-items:center;margin:auto 0;display:flex}.house-graphic-box{color:#eb5e28;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff26;border-radius:28px;justify-content:center;align-items:center;width:110px;height:110px;font-size:3.5rem;display:flex;box-shadow:0 16px 36px #00000040}.login-left-tagline{color:#ffffffd9;border-top:1px solid #ffffff1a;padding-top:24px;font-size:.95rem;font-weight:500;line-height:1.65}.login-right-panel{background:#fff;flex-direction:column;padding:44px 48px;display:flex}.back-home-link{color:#4a5568;align-items:center;gap:6px;margin-bottom:24px;font-size:.85rem;font-weight:700;text-decoration:none;transition:color .2s;display:inline-flex}.back-home-link:hover{color:#e52e3d}.auth-mode-container{flex-direction:column;display:none}.auth-mode-container.active-mode{display:flex}.auth-heading{color:#1a202c;font-size:1.8rem;font-weight:800;font-family:var(--font-sans,"Plus Jakarta Sans", sans-serif);margin-bottom:24px}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-label{letter-spacing:.08em;color:#718096;text-transform:uppercase;font-size:.72rem;font-weight:800}.input-icon-wrap{align-items:center;display:flex;position:relative}.field-icon{color:#a0aec0;pointer-events:none;font-size:1.1rem;position:absolute;left:14px}.toggle-pw-icon{color:#a0aec0;cursor:pointer;font-size:1.1rem;transition:color .2s;position:absolute;right:14px}.toggle-pw-icon:hover{color:#2d3748}.auth-input,.auth-select{color:#2d3748;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:12px 14px 12px 42px;font-size:.92rem;transition:all .2s}.auth-input:focus,.auth-select:focus{background:#fff;border-color:#e52e3d;box-shadow:0 0 0 3px #e52e3d1f}.auth-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A0AEC0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 14px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.forgot-link{color:#3182ce;font-size:.78rem;font-weight:700;text-decoration:none}.forgot-link:hover{text-decoration:underline}.auth-checkbox-row{margin-top:4px}.checkbox-label{color:#4a5568;cursor:pointer;align-items:center;gap:8px;font-size:.85rem;font-weight:500;display:inline-flex}.checkbox-label input{accent-color:#e52e3d;width:16px;height:16px}.auth-submit-btn{color:#fff;cursor:pointer;background:#e52e3d;border:none;border-radius:10px;width:100%;margin-top:6px;padding:14px;font-size:.95rem;font-weight:700;transition:all .25s;box-shadow:0 6px 18px #e52e3d4d}.auth-submit-btn:hover{background:#d92332;transform:translateY(-1px);box-shadow:0 10px 24px #e52e3d66}.auth-toggle-footer{text-align:center;color:#718096;margin-top:14px;font-size:.88rem}.auth-link{color:#3182ce;font-weight:700;text-decoration:none}.auth-link:hover{text-decoration:underline}.recaptcha-widget{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;margin-top:4px;padding:12px 16px;transition:all .25s;display:flex}.recaptcha-checkbox-area{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;display:inline-flex}.recaptcha-checkbox{background:#fff;border:2px solid #c4cbd4;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;position:relative}.recaptcha-spinner{border:2.5px solid #1a73e833;border-top-color:#1a73e8;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spinRecaptcha;display:none}@keyframes spinRecaptcha{to{transform:rotate(360deg)}}.recaptcha-checkmark{color:#fff;font-size:1.2rem;font-weight:800;animation:.25s cubic-bezier(.16,1,.3,1) checkPop;display:none}@keyframes checkPop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.recaptcha-text{color:#2d3748;font-size:.9rem;font-weight:600}.recaptcha-brand{text-align:center;flex-direction:column;align-items:center;display:flex}.email-dispatch-banner{transition:all .2s}.email-dispatch-banner:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3182ce1f;background:#e1effe!important;border-color:#90cdf4!important}.otp-icon-circle{color:#e52e3d;background:#e52e3d1a;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 12px;font-size:1.85rem;display:flex}.otp-inputs-row{justify-content:center;gap:10px;margin:10px 0;display:flex}.otp-box{text-align:center;color:#1a202c;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;outline:none;width:46px;height:54px;font-size:1.5rem;font-weight:800;transition:all .2s}.otp-box:focus{background:#fff;border-color:#e52e3d;box-shadow:0 0 0 3px #e52e3d26}.demo-logins-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:24px;padding:16px}.demo-logins-title{color:#718096;align-items:center;gap:6px;margin-bottom:12px;font-size:.78rem;font-weight:600;display:flex}.demo-logins-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.demo-user{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;transition:all .2s}.demo-user:hover{border-color:#e52e3d;transform:translateY(-1px);box-shadow:0 4px 10px #0000000d}.demo-role{color:#2d3748;font-size:.78rem;font-weight:700}.demo-email{color:#718096;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.login-brand-area{text-align:center;justify-content:center;align-items:center;width:100%;margin-bottom:24px;display:flex}.login-brand-area img{object-fit:contain;max-width:100%;height:68px;transition:transform .3s}.login-brand-area img:hover{transform:scale(1.03)}@media (width<=768px){.login-split-card{border-radius:18px;grid-template-columns:1fr}.login-left-panel{min-height:auto;padding:24px 20px 16px}.login-brand-area{margin-bottom:0}.login-brand-area img{height:54px}.login-left-tagline{display:none}.login-right-panel{padding:28px 20px}}
