.login-container { min-height: 100vh; background-color: #FFFFFF; background-image: url('../../static/images/bg-header.svg'); background-size: 100% auto; background-repeat: no-repeat; background-position: top center; display: flex; flex-direction: column; align-items: center; position: relative; padding: 0 40rpx; } .login-header { margin-top: 22vh; // slightly pulled up to fit nicely inside the enriched colored background display: flex; flex-direction: column; align-items: center; .logo-box { width: 140rpx; height: 140rpx; background-color: $brand-primary; border-radius: 24rpx; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 50rpx; box-shadow: 0 16rpx 32rpx rgba(31, 108, 255, 0.15); // soft shadow .logo-text1, .logo-text2 { color: #FFFFFF; font-size: 32rpx; font-weight: bold; letter-spacing: 4rpx; line-height: 1.4; } } .login-title { font-size: 52rpx; font-weight: 600; color: #1A1A1A; margin-bottom: 24rpx; } .login-subtitle { font-size: 30rpx; color: #888888; letter-spacing: 1rpx; } } .login-body { width: 100%; margin-top: 100rpx; // Space between title and buttons .btn-primary { background-color: $brand-primary; color: #FFFFFF; font-size: 34rpx; font-weight: 500; border-radius: 48rpx; // Pill shape for modern look height: 96rpx; line-height: 96rpx; margin-bottom: 30rpx; &::after { border: none; } &:active { opacity: 0.8; } } .agreement-box { display: flex; justify-content: center; align-items: flex-start; padding: 0 20rpx; .checkbox-label { display: flex; align-items: center; flex-wrap: wrap; // Text might wrap font-size: 26rpx; } .agreement-text { color: #888888; line-height: 1.6; } .link-text { color: $brand-primary; line-height: 1.6; margin: 0 4rpx; // small gap } } } .login-footer { position: absolute; bottom: calc(env(safe-area-inset-bottom) + 80rpx); width: 100%; box-sizing: border-box; padding: 0 40rpx; .divider-text { text-align: center; font-size: 26rpx; color: #CCCCCC; margin-bottom: 50rpx; position: relative; display: flex; align-items: center; justify-content: center; &::before, &::after { content: ""; width: 80rpx; height: 1rpx; background-color: #E5E5E5; margin: 0 20rpx; } } .icon-grid { display: flex; justify-content: space-around; padding: 0 20rpx; .icon-item { display: flex; flex-direction: column; align-items: center; .icon-circle { width: 100rpx; height: 100rpx; background-color: rgba(31, 108, 255, 0.08); // Semi-transparent brand blue border-radius: 50%; display: flex; justify-content: center; align-items: center; margin-bottom: 20rpx; transition: transform 0.2s, background-color 0.2s; &:active { background-color: rgba(31, 108, 255, 0.15); transform: scale(0.95); } .icon-img { width: 48rpx; height: 48rpx; } } .icon-text { font-size: 24rpx; color: #555555; } } } } .custom-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 999; visibility: hidden; opacity: 0; transition: all 0.3s; display: flex; justify-content: center; align-items: center; &.is-show { visibility: visible; opacity: 1; .modal-content { transform: scale(1); opacity: 1; } } .modal-mask { position: absolute; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); } .modal-content { position: relative; width: 600rpx; background-color: #FFFFFF; border-radius: 24rpx; transform: scale(0.9); opacity: 0; transition: all 0.3s; padding-bottom: 40rpx; .modal-header { text-align: center; padding-top: 50rpx; .modal-title { font-size: 34rpx; font-weight: bold; color: #1A1A1A; } } .modal-body { font-size: 32rpx; text-align: center; padding: 40rpx 40rpx 50rpx; line-height: 1.6; .modal-text-wrapper { .modal-text { color: #555555; } .link-text { color: $brand-primary; } } } .modal-footer { display: flex; justify-content: space-between; padding: 0 40rpx; view { flex: 1; height: 88rpx; display: flex; justify-content: center; align-items: center; font-size: 32rpx; border-radius: 44rpx; transition: opacity 0.2s; &:active { opacity: 0.8; } } .btn-cancel { background-color: #F4F5F7; color: #555555; margin-right: 20rpx; } .btn-confirm { background-color: $brand-primary; color: #FFFFFF; font-weight: 500; margin-left: 20rpx; } } } &.doc-modal { .doc-modal-content { width: 660rpx; // Slightly wider for easier text reading .modal-header { padding-top: 40rpx; padding-bottom: 20rpx; } .doc-modal-body { max-height: 55vh; text-align: left; padding: 10rpx 40rpx 30rpx; // scroll-view will handle overflow box-sizing: border-box; font-size: 28rpx; } .modal-footer { justify-content: center; padding-bottom: 20rpx; .full-width { flex: none; width: 100%; margin: 0; // Overrides any side margins } } } } }