/* =========================================================
   SJ.MK 2026 · 登录弹窗重构 / 移动端底部导航 / 图标字体兜底
   参照 rj.mk（rg_inner2026 弹窗体系 + nz-tabbar 底栏规范）
   仅样式层，不改动任何程序逻辑
   ========================================================= */

/* ---------------- 1. 登录 / 注册弹窗 ---------------- */
#signin-modal .modal-dialog{max-width:400px}

#signin-modal .modal-content{
	border:0;border-radius:22px;overflow:hidden;background:#fff;
	box-shadow:0 28px 70px -20px rgba(38,32,110,.34),0 2px 10px rgba(38,32,110,.06);
}

#signin-modal .modal-header{
	display:block;position:relative;padding:0;border:0;background:transparent;
}

/* 品牌头 */
.sj-auth-head{
	position:relative;display:flex;align-items:center;gap:12px;
	padding:24px 24px 16px;
	background:linear-gradient(155deg,#f4f1ff 0%,#eef1ff 52%,#ffffff 100%);
}
.sj-auth-head:after{
	content:"";position:absolute;right:-40px;top:-56px;width:140px;height:140px;border-radius:50%;
	background:radial-gradient(circle,rgba(109,94,242,.16),rgba(109,94,242,0) 70%);
	pointer-events:none;
}
.sj-auth-logo{
	position:relative;z-index:1;flex:0 0 auto;
	display:flex;align-items:center;justify-content:center;
	width:44px;height:44px;border-radius:14px;
	background:linear-gradient(140deg,#8b7cf6,#6d5ef2);color:#fff;
	font-size:21px;font-weight:800;line-height:1;letter-spacing:.5px;
	font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
	box-shadow:0 10px 20px -8px rgba(109,94,242,.65);
}
.sj-auth-txt{position:relative;z-index:1;min-width:0}
.sj-auth-txt b{
	display:block;font-size:16px;font-weight:700;color:#1f2340;letter-spacing:.2px;line-height:1.35;
}
.sj-auth-txt em{
	display:block;font-style:normal;font-size:12px;color:#8b90a8;line-height:1.5;margin-top:2px;
}

/* tab 胶囊 */
#signin-modal .modal-header .nav-tabs{
	display:flex;flex-wrap:nowrap;gap:6px;
	margin:0;padding:14px 24px 0;border:0;background:#fff;
}
#signin-modal .nav-tabs .nav-item{margin:0;flex:1 1 0;min-width:0}
#signin-modal .nav-tabs .nav-link{
	display:flex;align-items:center;justify-content:center;gap:6px;
	width:100%;padding:9px 6px;border:0 !important;border-radius:11px;
	font-size:14px;font-weight:600;line-height:1.2;
	color:#7a7f96;background:#f3f4fa;
	transition:color .18s,background .18s,box-shadow .18s;
}
#signin-modal .nav-tabs .nav-link:hover{color:#6d5ef2;background:#eeecfd}
#signin-modal .nav-tabs .nav-link.active{
	color:#fff;
	background:linear-gradient(135deg,#8b7cf6,#6d5ef2);
	box-shadow:0 8px 18px -8px rgba(109,94,242,.7);
}
#signin-modal .nav-tabs .nav-link i,
#signin-modal .nav-tabs .nav-link .iconfont{
	margin:0 !important;font-size:15px;line-height:1;top:0 !important;
}

/* 关闭按钮 */
#signin-modal .modal-header .close{
	position:absolute;z-index:3;top:12px;right:12px;
	display:flex;align-items:center;justify-content:center;
	width:30px;height:30px;padding:0;margin:0;
	border-radius:50%;border:1px solid #ececf6;background:rgba(255,255,255,.92);
	font-size:20px;font-weight:300;line-height:1;color:#8a8fa8;opacity:.9;
	box-shadow:0 2px 8px rgba(38,32,110,.06);
	transition:background .18s,color .18s;
}
#signin-modal .modal-header .close:hover{background:#fff;color:#6d5ef2;opacity:1}
#signin-modal .modal-header .close span{line-height:1;display:block;margin-top:-2px}

/* 表单区 */
#signin-modal .modal-body{padding:18px 24px 26px}
#signin-modal .form-group{margin-bottom:13px}
#signin-modal .form-control{
	height:46px;padding:0 14px;border:1.5px solid #e8e9f2;border-radius:13px;
	background:#fafbff;font-size:14px;color:#2b2d42;
	transition:border-color .18s,box-shadow .18s,background .18s;
}
#signin-modal .form-control::placeholder{color:#a6abc2}
#signin-modal .form-control:focus{
	border-color:#8b7cf6;background:#fff;
	box-shadow:0 0 0 4px rgba(109,94,242,.10);
}
#signin-modal .form-control.is-invalid{border-color:#ef4444;background:#fff8f8}
#signin-modal .password-toggle .form-control{padding-right:48px}
#signin-modal .password-toggle-btn{right:8px}
#signin-modal .password-toggle-indicator{color:#a6abc2;font-size:17px}
#signin-modal .input-group .form-control{border-radius:13px 0 0 13px}
#signin-modal .input-group-append img,
#signin-modal .input-group-prepend img{border-radius:0 13px 13px 0;height:46px;object-fit:cover}
#signin-modal .input-group-prepend img{border-radius:13px 0 0 13px}

/* 忘记密码 / 辅助文案 */
#signin-modal .font-size-sm{font-size:12.5px;color:#7a7f96}
#signin-modal .font-size-sm:hover{color:#6d5ef2;text-decoration:none}
#signin-modal .modal-body > p.mt-4{margin-top:18px !important;margin-bottom:10px !important;font-size:12px;color:#a6abc2;letter-spacing:.4px}

/* 主按钮 */
#signin-modal .btn-primary{
	height:47px;border:0 !important;border-radius:14px;
	font-size:15px;font-weight:600;letter-spacing:.5px;color:#fff;
	background:linear-gradient(135deg,#8b7cf6,#6d5ef2) !important;
	box-shadow:0 12px 24px -12px rgba(109,94,242,.85);
	transition:transform .16s,box-shadow .16s,filter .16s;
}
#signin-modal .btn-primary:hover{filter:brightness(1.05);box-shadow:0 14px 28px -12px rgba(109,94,242,.9)}
#signin-modal .btn-primary:active{transform:translateY(1px)}
#signin-modal .btn-info{height:46px;border:0;border-radius:0 13px 13px 0;font-weight:600;background:#eef0ff !important;color:#6d5ef2 !important}

/* 第三方登录胶囊 */
#signin-modal .sj-oauth-list{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:0}
#signin-modal .sj-oauth-btn,
#signin-modal p.d-flex.justify-content-center > a{
	display:inline-flex;align-items:center;justify-content:center;
	width:54px;height:40px;margin:0 4px !important;border-radius:999px;
	background:#f6f7fc;border:1px solid #ececf6;
	transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;
}
#signin-modal .sj-oauth-btn:hover,
#signin-modal p.d-flex.justify-content-center > a:hover{
	background:#fff;border-color:#cfc9f8;transform:translateY(-1px);
	box-shadow:0 8px 18px -10px rgba(109,94,242,.6);
}
#signin-modal .sj-oauth-btn img,
#signin-modal p.d-flex.justify-content-center > a img{height:20px;width:auto;max-width:26px}

/* 移动端 */
@media (max-width:575.98px){
	#signin-modal .modal-dialog{max-width:calc(100% - 20px);margin:.55rem auto .55rem}
	#signin-modal .modal-content{border-radius:20px}
	.sj-auth-head{padding:20px 18px 14px}
	.sj-auth-logo{width:40px;height:40px;border-radius:13px;font-size:19px}
	.sj-auth-txt b{font-size:15px}
	.sj-auth-txt em{font-size:11.5px}
	#signin-modal .modal-header .nav-tabs{padding:12px 18px 0}
	#signin-modal .nav-tabs .nav-link{font-size:13.5px;padding:8px 4px}
	#signin-modal .modal-body{padding:16px 18px 22px}
}

/* ---------------- 2. 移动端底部导航（前台） ---------------- */
.sj-tabbar{display:none}

@media (max-width:991.98px){
	.sj-tabbar{
		display:flex;align-items:stretch;
		position:fixed;left:0;right:0;bottom:0;z-index:1035;
		padding:6px 4px calc(6px + env(safe-area-inset-bottom));
		background:rgba(255,255,255,.97);
		-webkit-backdrop-filter:saturate(180%) blur(16px);
		backdrop-filter:saturate(180%) blur(16px);
		border-top:1px solid #ececf6;
		box-shadow:0 -8px 26px -16px rgba(38,32,110,.32);
	}
	.sj-tabbar a{
		flex:1 1 0;min-width:0;
		display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
		padding:3px 0;color:#9aa0b4;text-decoration:none;
		font-size:10.5px;line-height:1.25;font-weight:500;
		-webkit-tap-highlight-color:transparent;
		transition:color .18s;
	}
	.sj-tabbar a i{font-size:21px;line-height:1;display:block;transition:transform .2s}
	.sj-tabbar a.on{color:#6d5ef2;font-weight:600}
	.sj-tabbar a.on i{transform:translateY(-1px) scale(1.06)}
	body.sj-has-tabbar{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
}

/* ---------------- 3. 会员中心底栏统一 ---------------- */
.cz-handheld-toolbar{
	background:rgba(255,255,255,.97) !important;
	border-top:1px solid #ececf6 !important;
	box-shadow:0 -8px 26px -16px rgba(38,32,110,.32);
	-webkit-backdrop-filter:saturate(180%) blur(16px);
	backdrop-filter:saturate(180%) blur(16px);
	padding-bottom:env(safe-area-inset-bottom);
}
.cz-handheld-toolbar-item{color:#9aa0b4}
.cz-handheld-toolbar-item .cz-handheld-toolbar-icon{line-height:1}
.cz-handheld-toolbar-item .cz-handheld-toolbar-icon i,
.cz-handheld-toolbar-item .cz-handheld-toolbar-icon .iconfont{
	font-size:21px !important;line-height:1;display:block;
}
.cz-handheld-toolbar-label{font-size:10.5px !important;margin-top:3px;font-weight:500;letter-spacing:.2px}
.cz-handheld-toolbar-item:active .cz-handheld-toolbar-icon,
.cz-handheld-toolbar-item.active .cz-handheld-toolbar-icon{color:#6d5ef2}
.cz-handheld-toolbar-item .text-info{color:#6d5ef2 !important}

/* ---------------- 4. 图标字体兜底 ----------------
   icomoon.css 内 [class^="icon-"]{font-family:icomoon!important} 会强制接管所有 icon-* 类，
   但其中 185 个类在 icomoon 字体中并无字形（content 仅定义于 bs46/iconfont.css），
   导致手机端导航与按钮出现空白/豆腐块。此处按类把字体族回退到 iconfont，
   只修正字形来源，不改动任何布局与尺寸。
   ------------------------------------------------ */
.icon-add,.icon-add-circle,.icon-add-document,.icon-add-location,.icon-add-user{
	font-family:'iconfont' !important;
}
.icon-announcement,.icon-arrow-down-circle,.icon-arrow-left,.icon-arrow-left-circle,.icon-arrow-right{
	font-family:'iconfont' !important;
}
.icon-arrow-right-circle,.icon-arrow-up-circle,.icon-arrows-horizontal,.icon-arrows-vertical,.icon-avocado{
	font-family:'iconfont' !important;
}
.icon-bag,.icon-battery,.icon-bianji,.icon-bilibili,.icon-bleach{
	font-family:'iconfont' !important;
}
.icon-blogger,.icon-bluetooth,.icon-bluetooth-circle,.icon-bookmark,.icon-caidan2{
	font-family:'iconfont' !important;
}
.icon-caidan3,.icon-caifutong,.icon-camera,.icon-card,.icon-caret{
	font-family:'iconfont' !important;
}
.icon-chat,.icon-check,.icon-check-circle,.icon-clip,.icon-close{
	font-family:'iconfont' !important;
}
.icon-close-circle,.icon-cloud,.icon-cloud-check,.icon-cloud-download,.icon-cloud-upload{
	font-family:'iconfont' !important;
}
.icon-coin,.icon-coins,.icon-compare,.icon-currency-exchange,.icon-delete-document{
	font-family:'iconfont' !important;
}
.icon-delete-folder,.icon-delete-location,.icon-delivery,.icon-diamond,.icon-dingdan{
	font-family:'iconfont' !important;
}
.icon-dingtalk,.icon-dingtalk1,.icon-discount,.icon-document,.icon-document-alt{
	font-family:'iconfont' !important;
}
.icon-dollar,.icon-dollar-circle,.icon-douban,.icon-drag,.icon-dribbble{
	font-family:'iconfont' !important;
}
.icon-dry-clean,.icon-edit,.icon-edit-alt,.icon-exit-full-screen,.icon-facebook{
	font-family:'iconfont' !important;
}
.icon-filter,.icon-filter-alt,.icon-fish,.icon-folder,.icon-forward{
	font-family:'iconfont' !important;
}
.icon-full-screen,.icon-gitee,.icon-globe,.icon-gmail,.icon-gold{
	font-family:'iconfont' !important;
}
.icon-gold2,.icon-gold3,.icon-gold4,.icon-hangouts,.icon-heart-circle{
	font-family:'iconfont' !important;
}
.icon-help,.icon-hongbao,.icon-hongbao2,.icon-hongbao3,.icon-huawei{
	font-family:'iconfont' !important;
}
.icon-idea,.icon-increase,.icon-instagram,.icon-jianshu,.icon-joystick{
	font-family:'iconfont' !important;
}
.icon-lable,.icon-lightning,.icon-line,.icon-linkedin,.icon-loading{
	font-family:'iconfont' !important;
}
.icon-locked,.icon-loudspeaker,.icon-mail,.icon-map,.icon-menu{
	font-family:'iconfont' !important;
}
.icon-menu-circle,.icon-message,.icon-messenger,.icon-momo,.icon-money-bag{
	font-family:'iconfont' !important;
}
.icon-money-box,.icon-monitor,.icon-moon,.icon-navigation,.icon-odnoklassniki{
	font-family:'iconfont' !important;
}
.icon-ok,.icon-open,.icon-package,.icon-paypal,.icon-percent{
	font-family:'iconfont' !important;
}
.icon-plane,.icon-play,.icon-play-circle,.icon-printer,.icon-qq2{
	font-family:'iconfont' !important;
}
.icon-qq3,.icon-reduce,.icon-reload,.icon-remove-document,.icon-remove-folder{
	font-family:'iconfont' !important;
}
.icon-reply,.icon-rocket,.icon-ruler,.icon-scroll,.icon-security-announcement{
	font-family:'iconfont' !important;
}
.icon-security-check,.icon-security-close,.icon-security-prohibition,.icon-send,.icon-server-alt{
	font-family:'iconfont' !important;
}
.icon-settings,.icon-share-alt,.icon-sign-in,.icon-sign-out,.icon-smile{
	font-family:'iconfont' !important;
}
.icon-sound-waves,.icon-star,.icon-star-filled,.icon-sun,.icon-support{
	font-family:'iconfont' !important;
}
.icon-tag,.icon-target,.icon-telegram,.icon-thumb-up,.icon-time{
	font-family:'iconfont' !important;
}
.icon-tongji,.icon-tongji2,.icon-trash,.icon-tumblr,.icon-turn-off{
	font-family:'iconfont' !important;
}
.icon-twitter,.icon-unlocked,.icon-user-circle,.icon-viber,.icon-video{
	font-family:'iconfont' !important;
}
.icon-view-grid,.icon-view-list,.icon-vimeo,.icon-vk,.icon-wallet{
	font-family:'iconfont' !important;
}
.icon-wash,.icon-watch,.icon-weather,.icon-weibo1,.icon-weibo2{
	font-family:'iconfont' !important;
}
.icon-weixin,.icon-weixin1,.icon-weixin2,.icon-weixin21,.icon-weixin3{
	font-family:'iconfont' !important;
}
.icon-weixinzhifu,.icon-windows,.icon-wordpress,.icon-youtube,.icon-youtube-outline{
	font-family:'iconfont' !important;
}
.icon-youtube1,.icon-zhanghu2,.icon-zhifubao,.icon-zhifubao2,.icon-zhihu{
	font-family:'iconfont' !important;
}

/* ---------------- 4. 弹窗遮罩与入场（2026-11-08 补） ---------------- */
.modal-backdrop.show{
	background:radial-gradient(120% 90% at 50% 18%,#2b2360 0%,#171233 62%,#100c26 100%);
	opacity:.62;
	-webkit-backdrop-filter:saturate(120%) blur(3px);
	backdrop-filter:saturate(120%) blur(3px);
}
@media (max-width:575.98px){
	.modal-backdrop.show{opacity:.66}
}
#signin-modal.fade .modal-dialog{
	transform:translateY(14px) scale(.985);
	transition:transform .24s cubic-bezier(.22,.9,.28,1),opacity .24s;
}
#signin-modal.show .modal-dialog{transform:none}
/* 底栏在详情/列表页的底部留白兜底 */
@media (max-width:991.98px){
	body.sj-has-tabbar{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
	body.sj-has-tabbar .sj-tabbar ~ *{}
	body.sj-has-tabbar #sj_top{bottom:calc(70px + env(safe-area-inset-bottom))}
}

/* ===== 第三方登录：品牌色胶囊（sj-auth2026 v11） ===== */
#signin-modal .sj-oauth-list{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:0}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth{
	display:inline-flex;align-items:center;justify-content:center;gap:6px;
	width:auto;min-width:86px;height:40px;padding:0 16px;
	margin:0 !important;border-radius:999px;border:1px solid transparent;
	font-size:13px;font-weight:600;line-height:1;letter-spacing:.2px;
	text-decoration:none !important;background-image:none;
	transition:background .18s,border-color .18s,box-shadow .18s,transform .18s,color .18s;
}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth i{font-size:17px;line-height:1;display:inline-block}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth span{white-space:nowrap}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth:hover{transform:translateY(-1px);opacity:1}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth-qq{color:#0b93d0;background:#eaf7fe;border-color:#c5e8fa}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth-qq:hover{color:#fff;background:#12b7f5;border-color:#12b7f5;box-shadow:0 8px 18px -10px rgba(18,183,245,.85)}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth-weibo{color:#d53a4f;background:#fff0f2;border-color:#ffd3d9}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth-weibo:hover{color:#fff;background:#e6162d;border-color:#e6162d;box-shadow:0 8px 18px -10px rgba(230,22,45,.8)}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth-weixin{color:#099b53;background:#eafaf1;border-color:#c4efd9}
#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth-weixin:hover{color:#fff;background:#07c160;border-color:#07c160;box-shadow:0 8px 18px -10px rgba(7,193,96,.8)}
@media (max-width:575.98px){
	#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth{min-width:0;padding:0 13px;height:38px;font-size:12.5px;gap:5px}
	#signin-modal .sj-oauth-list > a.sj-oauth.sj-oauth i{font-size:16px}
}

/* ===== v5（2026-11-08）遮罩提亮 + 登录协议行可读性 ===== */
.modal-backdrop.show{
	background:radial-gradient(120% 95% at 50% 16%,#8b80d8 0%,#5b5196 58%,#463d7a 100%);
	opacity:.22;
	-webkit-backdrop-filter:blur(2px) saturate(115%);
	backdrop-filter:blur(2px) saturate(115%);
}
@media (max-width:575.98px){
	.modal-backdrop.show{opacity:.16}
}
#signin-modal .sj-auth-agree{
	margin:12px 0 0;font-size:12.5px;line-height:1.75;text-align:center;
	color:#4a4a5c;letter-spacing:.2px;
}
#signin-modal .sj-auth-agree a{
	color:var(--v26-primary,#6d5ef2);font-weight:600;text-decoration:none;
	border-bottom:1px solid rgba(109,94,242,.42);padding-bottom:1px;
}
#signin-modal .sj-auth-agree a:hover{border-bottom-color:currentColor}
@media (max-width:575.98px){
	#signin-modal .sj-auth-agree{font-size:13px;color:#3f3f52}
}

/* ---------------- 8. 小屏适配 v5（2026-11 / sj14） ---------------- */
@media (max-width:575.98px){
	/* 弹窗不超过视口，留出 12px 呼吸边距 */
	#signin-modal .modal-dialog{
		max-width:calc(100% - 20px);margin:12px auto;
		max-height:calc(100vh - 24px);
		display:flex;align-items:stretch;
	}
	#signin-modal .modal-content{
		max-height:calc(100vh - 24px);
		display:flex;flex-direction:column;overflow:hidden;
	}
	/* 内容区独立滚动，头部（logo+tab）常驻可见 */
	#signin-modal .modal-body{
		overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
	}
	#signin-modal .modal-header{flex:0 0 auto;background:#fff;box-shadow:0 1px 0 rgba(38,32,110,.05)}
	/* 关闭按钮触控热区 40x40（视觉上仍为圆形小钮） */
	#signin-modal .modal-header .close{
		width:40px;height:40px;top:8px;right:8px;font-size:22px;
		border-color:transparent;background:transparent;box-shadow:none;
	}
	#signin-modal .modal-header .close span{margin-top:-3px}
}
