        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: "Microsoft YaHei", sans-serif;
            background: #f5f5f5;
        }
        /* 登录弹框 */
        
        .rm-login-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.65);
            z-index: 10000;
            align-items: center;
            justify-content: center;
        }
        
        .rm-login-popup {
            width: 400px;
            background: #fff;
            border-radius: 12px;
            overflow: hidden;
            position: relative;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            animation: mhyPopupIn 0.3s ease;
        }
        
        @keyframes mhyPopupIn {
            from {
                opacity: 0;
                transform: translateY(-20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .rm-login-close {
            position: absolute;
            right: 16px;
            top: 16px;
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            color: #999;
            cursor: pointer;
            border-radius: 50%;
            transition: background 0.2s;
        }
        
        .rm-login-close:hover {
            background: #f2f2f2;
            color: #333;
        }
        
        .rm-login-header {
            padding: 32px 32px 16px;
            text-align: center;
        }
        
        .rm-login-header h2 {
            font-size: 22px;
            color: #1a1a1a;
            font-weight: 500;
            margin-bottom: 8px;
        }
        
        .rm-login-header p {
            font-size: 14px;
            color: #666;
        }
        
        .rm-login-body {
            padding: 0 32px 24px;
        }
        
        .rm-login-form .form-item {
            margin-bottom: 16px;
        }
        
        .rm-login-form .form-input {
            width: 100%;
            height: 44px;
            padding: 0 14px;
            border: 1px solid #409eff;
            border-radius: 8px;
            font-size: 14px;
            color: #333;
            outline: none;
            transition: border-color 0.2s;
        }
        
        .rm-login-form .form-input:focus {
            border-color: #409eff;
        }
        
        .rm-login-links {
            display: flex;
            justify-content: space-between;
            font-size: 13px;
            margin-bottom: 20px;
        }
        
        .rm-login-links a {
            color: #409eff;
            text-decoration: none;
        }
        
        .rm-login-links a:hover {
            text-decoration: underline;
        }
        
        .rm-login-submit {
            width: 100%;
            height: 48px;
            background-color: var(--rm-passport-color-primary, #409eff);
            color: #fff;
            border: none;
            border-radius: 8px;
            font-size: 16px;
            cursor: pointer;
            transition: background 0.2s;
        }
        
        .rm-login-submit:hover {
            background-color: #338eef;
        }
        
        .rm-login-other {
            padding: 16px 32px 24px;
            border-top: 1px solid #f0f0f0;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .rm-login-register {
            font-size: 13px;
            color: #666;
        }
        
        .rm-login-register a {
            color: #409eff;
            text-decoration: none;
        }
        
        .rm-overlay-show {
            display: flex !important;
        }
        
        .rm-body-no-scroll {
            overflow: hidden;
        }
        /* 登录弹框 end */
        
        .rm-passport-pc-navbar {
            position: fixed !important;
            top: 0 !important;
            left: 0 !important;
            right: 0 !important;
            z-index: 9999 !important;
            background: transparent !important;
            transition: all 0.3s ease !important;
        }
        
        .rm-passport-pc-navbar--scroll {
            background: #ffffff !important;
            box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05) !important;
        }
        /* 加载动画start */
        
        .rm-login-platform__loading {
            position: fixed;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            user-select: none;
            z-index: 100001;
            background: rgba(0, 0, 0, 0);
            display: none;
            /* 默认不显示 */
        }
        
        @-webkit-keyframes rotation {
            from {
                transform: rotate(0deg)
            }
            to {
                transform: rotate(360deg)
            }
        }
        
        .rm-login-platform__loading--rotation {
            width: 80px;
            height: 80px;
            background: #2b2e33;
            border-radius: 8px;
            display: flex;
            justify-content: center;
            align-items: center
        }
        
        .rm-login-platform__loading--rotation div {
            border: none;
            width: 46px;
            height: 46px;
            background-size: 46px;
            background-image: url(/static/images/jiazai.png);
            animation: rotation 1s linear infinite
        }
        
        .rm-login-platform__overflow-hidden {
            overflow: hidden !important
        }
        /* 加载动画end */
        /* 密码框小眼睛 */
        /* 密码外层相对定位 */
        
        .pwd-wrap {
            position: relative;
        }
        /* 统一图标样式：右侧居中、大小、点击指针 */
        
        .pwd-icon {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            cursor: pointer;
            user-select: none;
        }
        /* 默认：显示睁眼、隐藏闭眼 */
        
        .eye-close {
            display: none;
        }
        /* 明文状态：互换显示 */
        
        .pwd-active .eye-open {
            display: none;
        }
        
        .pwd-active .eye-close {
            display: block;
        }
        /* 获取验证码按钮 */
        
        .code-box {
            position: relative;
        }
        
        .code-btn {
            position: absolute;
            right: 8px;
            top: 50%;
            transform: translateY(-50%);
            height: 34px;
            padding: 0 12px;
            background: #409eff;
            color: #fff;
            border: none;
            border-radius: 6px;
            font-size: 12px;
            cursor: pointer;
            white-space: nowrap;
        }
        
        .code-btn:disabled {
            background: #ccc;
            cursor: not-allowed;
        }
        /* 验证码 */
        /* 验证码输入框外层 */
        
        .code-input-wrap {
            position: relative;
        }
        /* 右侧按钮容器 */
        
        .code-btn-box {
            position: absolute;
            right: 4px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            align-items: center;
            height: calc(100% - 8px);
        }
        /* 中间分割线 */
        
        .code-divider {
            width: 1px;
            height: 60%;
            background-color: #e5e7eb;
            margin: 0 12px;
        }
        /* 获取验证码按钮 */
        
        .get-code-btn {
            background: none;
            border: none;
            color: #409eff;
            font-size: 14px;
            cursor: pointer;
            white-space: nowrap;
            padding: 0 12px;
        }
        
        .get-code-btn:disabled {
            color: #999;
            cursor: not-allowed;
        }
        /* ========== 通用表单样式 ========== */
        .form-item {
            position: relative;
        }

        .clear-btn {
            position: absolute;
            right: 12px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 16px;
            color: #999;
            cursor: pointer;
            display: none;
            z-index: 10;
            pointer-events: auto;
        }

        .eye-btn {
            position: absolute;
            right: 40px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 18px;
            color: #999;
            cursor: pointer;
            z-index: 10;
            pointer-events: auto;
        }

        .form-item:hover .clear-btn {
            display: block !important;
        }

        .pwd-wrap .clear-btn {
            right: 40px;
        }

        .pwd-wrap .eye-btn {
            right: 12px;
        }

        /* ========== 协议勾选 ========== */
        .rm-login-agreement {
            display: flex;
            align-items: center;
            gap: 8px;
            margin: 10px 0 16px;
            font-size: 12px;
            color: #666;
            line-height: 1.5;
        }

        .rm-login-agreement input {
            cursor: pointer;
        }

        .rm-login-agreement a {
            color: #00B2FE;
            text-decoration: none;
        }

        .rm-login-agreement a:hover {
            text-decoration: underline;
        }

        /* ========== 按钮禁用 ========== */
        .rm-login-submit:disabled {
            background-color: #f0f1f5 !important;
            color: #f44336 !important;
            cursor: not-allowed;
            opacity: 0.7;
        }

        /* ========== 密码匹配提示 ========== */
        .pwd-match-hint {
            font-size: 12px;
            margin: -4px 0 8px 4px;
            display: none;
        }

        .pwd-match-hint.match {
            color: #2e7d32;
            display: block;
        }

        .pwd-match-hint.mismatch {
            color: #f44336;
            display: block;
        }

        .form-input.warning {
            border-color: #f44336 !important;
            box-shadow: 0 0 0 2px rgba(244, 67, 54, 0.12) !important;
        }

        .form-input.match {
            border-color: #2e7d32 !important;
            box-shadow: 0 0 0 2px rgba(46, 125, 50, 0.12) !important;
        }

        .form-input.input-error {
            border-color: #f44336 !important;
            box-shadow: 0 0 0 2px rgba(244, 67, 54, 0.12) !important;
        }

        /* ========== 滑块验证状态 ========== */
        .tncode.verified {
            border-color: #2e7d32 !important;
            background: #e8f5e9 !important;
            color: #2e7d32 !important;
            pointer-events: none;
            font-size: 14px;
        }

        .tncode.verified::after {
            content: '✓ 验证通过';
        }

        /* 验证已通过时 wrap 样式 */
        .verified-wrap {
            border: 1px solid #2e7d32 !important;
            background: #e8f5e9;
            border-radius: 8px;
            color: #2e7d32;
            font-size: 14px;
            height: 44px;
            line-height: 44px;
            text-align: center;
        }

        .verified-wrap::after {
            content: '✓ 滑块验证通过';
        }

        .verified-wrap #sharedSlider {
            display: none !important;
        }

        /* 共享滑块停放在 body 时保持隐藏，防止 .tncode 样式将其显示 */
        body>#sharedSlider {
            display: none !important;
        }


        /* ========== 滑块验证 (TnCode) ========== */
        .slider-wrap {
            margin: 10px 0;
            border-radius: 8px;
            overflow: hidden;
        }

        /* 初始按钮 */
        .tncode {
            display: block;
            border: 1px solid #d1d5db;
            border-radius: 8px;
            width: 100%;
            height: 44px;
            cursor: pointer;
            opacity: 1;
            line-height: 44px;
            text-align: center;
            font-size: 14px;
            color: #666;
            background: #fafafa;
            transition: all .2s;
            box-sizing: border-box;
        }

        .tncode:hover {
            background: #f0f0f0;
            border-color: #00B2FE;
            color: #00B2FE;
        }

        /* 遮罩层背景 */
        .tncode_div_bg {
            width: 100%;
            height: 100%;
            position: fixed;
            top: 0;
            left: 0;
            z-index: 100000;
            background-color: rgba(0, 0, 0, 0.5);
            display: none;
        }

        /* 滑块弹窗 */
        .tncode_div {
            display: none;
            background-color: white;
            z-index: 1000000;
            width: 260px;
            height: 260px;
            position: fixed;
            left: 50%;
            top: 50%;
            margin-top: -130px;
            margin-left: -130px;
            border: 1px solid #d1d1d1;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
        }

        .tncode_div .tncode_canvas_bg {
            z-index: 0;
        }

        .tncode_div .tncode_canvas_mark {
            z-index: 10000;
        }

        .tncode_div canvas {
            position: absolute;
            left: 10px;
            top: 10px;
        }

        .tncode_div .loading {
            padding-top: 60px;
            position: absolute;
            left: 10px;
            top: 10px;
            background-color: #ccc;
            width: 240px;
            height: 150px;
            text-align: center;
            box-sizing: border-box;
            display: none;
            /* 默认隐藏，由 JS refresh() 在图片加载前/后控制显隐 */
        }

        /* 闪光扫描效果 */
        .hgroup {
            z-index: 20000;
            content: "";
            position: absolute;
            left: -800px;
            top: 70px;
            width: 250px;
            height: 15px;
            background-color: rgba(255, 255, 255, .5);
            transform: rotate(-45deg);
            animation: searchLights 3s ease-in 0s infinite;
            display: none;
        }

        @keyframes searchLights {
            0% {
                left: -800px;
                top: 70px;
            }

            to {
                left: 350px;
                top: 70px;
            }
        }

        /* 消息提示 */
        .tncode_msg_ok {
            background-color: #24C628;
        }

        .tncode_msg_error {
            background-color: #DE5145;
        }

        .tncode_msg_ok,
        .tncode_msg_error {
            position: absolute;
            top: 136px;
            left: 10px;
            width: 220px;
            height: 20px;
            color: #fff;
            margin: 0;
            padding: 2px 10px;
            overflow: visible;
            font-size: 14px;
            opacity: 0;
            z-index: 10000;
        }

        /* 滑动条 */
        .slide,
        .slide_block,
        .tools .tncode_close,
        .tools .tncode_refresh {
            background-repeat: no-repeat;
            background-image: url('/static/images/icon.png');
        }

        .slide {
            position: absolute;
            top: 160px;
            width: 93.52%;
            height: 0px;
            background-color: white;
            background-size: 100%;
            margin: 5.39% 3.24%;
            padding: 0px 0px 13.67%;
            overflow: visible;
            background-position: 0px 0px;
        }

        .tools {
            position: absolute;
            top: 210px;
            width: 93.52%;
            height: 0px;
            background-color: white;
            background-size: 100%;
            margin: 5.39% 3.24%;
            padding: 5px 0px 13.67%;
            overflow: visible;
            background-position: 0px 0px;
            border-top: 1px solid #EEEEEE;
        }

        .slide_block {
            background-position: 0px 12.9794%;
            width: 65px;
            height: 65px;
            position: absolute;
            left: 0px;
            top: 0px;
            margin: -4.62% 0 0 -2.31%;
            cursor: pointer;
        }

        .slide_block_text {
            background-position: 0px 12.9794%;
            height: 65px;
            position: absolute;
            left: 65px;
            top: 20px;
            margin: -4.62% 0 0 -2.31%;
            cursor: pointer;
            font-size: 14px;
            color: rgb(136, 148, 157);
        }

        .tools .tncode_close {
            background-position: 0 50%;
            height: 30px;
            width: 30px;
            float: left;
            margin-right: 10px;
            cursor: pointer;
        }

        .tools .tncode_refresh {
            background-position: 0 94%;
            height: 30px;
            width: 30px;
            float: left;
            cursor: pointer;
        }

        .tools .tncode_tips {
            float: right;
        }

        .tools .tncode_tips a {
            text-decoration: none;
            font-size: 10px;
            color: rgb(136, 148, 157);
        }

        /* ========== 区号选择器 ========== */
        .area-select {
            height: 44px;
            padding: 0 8px;
            border-radius: 8px;
            border: 1px solid #d1d5db;
            font-size: 14px;
            outline: none;
            flex-shrink: 0;
            background: #fff;
            cursor: pointer;
            min-width: 120px;
        }

        /* ========== 获取验证码按钮 ========== */
        .code-input-wrap {
            display: flex;
            align-items: stretch;
            gap: 8px;
        }

        .code-input-wrap .input-cell {
            flex: 1;
            position: relative;
            min-width: 0;
            /* 防止 flex 子项无法收缩 */
        }

        .code-input-wrap .input-cell .form-input {
            width: 100%;
        }

        /* 兼容旧的直接放置写法（登录弹窗）*/
        .code-input-wrap .form-input {
            flex: 1;
            min-width: 0;
        }

        .get-code-btn {
            white-space: nowrap;
            width: 110px;
            /* 固定宽度，防止倒计时文字变长后挤压输入框 */
            min-width: 110px;
            height: 44px;
            border: 1px solid #00B2FE;
            border-radius: 8px;
            background: #fff;
            color: #00B2FE;
            font-size: 13px;
            cursor: pointer;
            flex-shrink: 0;
            transition: all .2s;
            text-align: center;
        }

        .get-code-btn:hover:not(:disabled) {
            background: #00B2FE;
            color: #fff;
        }

        .get-code-btn:disabled,
        .get-code-btn--disabled {
            border-color: #d1d5db;
            color: #9ca3af;
            cursor: not-allowed;
        }

        /* ========== 错误提示 ========== */
        .form-error {
            color: #f44336;
            font-size: 12px;
            margin: -6px 0 8px;
            text-align: center;
            display: none;
        }

        .form-error.show {
            display: block;
        }

        /* ========== 弹窗二次验证面板 ========== */
        .verify-panel {
            display: none;
        }

        .verify-panel.show {
            display: block;
        }

        .main-panel.hide {
            display: none;
        }