/**
 * iPA Store 全局弹窗 — 白底简约风（与捐赠支付弹窗一致）
 * 覆盖：IpaModal 动态弹窗 + template-parts/modal UIkit 静态弹窗
 */

:root {
	--ipa-modal-overlay: rgba(15, 23, 42, .42);;
	--ipa-modal-surface: #fff;
	--ipa-modal-border: #eceef2;
	--ipa-modal-text: #1d2129;
	--ipa-modal-muted: #86909c;
	--ipa-modal-primary: #1875ff;
	--ipa-modal-primary-hover: #0d53ff;
	--ipa-modal-primary-soft: rgba(24, 117, 255, .08);
	--ipa-modal-primary-border: rgba(24, 117, 255, .28);
	--ipa-modal-radius: 16px;
	--ipa-modal-radius-lg: 18px;
	--ipa-modal-shadow: 0 20px 50px rgba(24, 117, 255, .08), 0 8px 32px rgba(15, 23, 42, .1);
}

/* ── 滚动锁 ── */
html.ipa-modal-lock,
html.ipa-modal-lock body {
	overflow: hidden;
}

/* ══════════ 动态弹窗（IpaModal JS） ══════════ */
.ipa-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity .22s ease, visibility .22s ease;
}

.ipa-modal--open {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
}

.ipa-modal__backdrop {
	position: absolute;
	inset: 0;
	background: var(--ipa-modal-overlay);
}

/* 经典 UIkit 弹窗（登录 / 搜索等）与新版 shell 共用遮罩色 */
.ipa-store-modal.uk-modal,
.ipa-modal-shell.uk-modal {
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	background: var(--ipa-modal-overlay) !important;
}

/* ══════════ 面板 / 头部 / 关闭 / 内容（动态 + 静态共用） ══════════ */
.ipa-modal__panel {
	position: relative;
	z-index: 1;
	width: min(376px, 100%);
	max-height: min(90vh, 640px);
	display: flex;
	flex-direction: column;
	background: var(--ipa-modal-surface);
	border-radius: var(--ipa-modal-radius);
	box-shadow: var(--ipa-modal-shadow);
	overflow: hidden;
}

.ipa-modal .ipa-modal__panel {
	transform: translateY(12px) scale(.96);
	opacity: 0;
	transition: transform .24s cubic-bezier(.22, 1, .36, 1), opacity .24s ease;
}

.ipa-modal--open .ipa-modal__panel--visible {
	transform: translateY(0) scale(1);
	opacity: 1;
}

.ipa-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 22px 0;
	border-bottom: 0;
	flex-shrink: 0;
	background: transparent;
}

.ipa-modal__head--stack {
	align-items: flex-start;
}

.ipa-modal__head-text {
	flex: 1;
	min-width: 0;
}

.ipa-modal__sub {
	margin: 6px 0 0;
	font-size: 13px;
	font-weight: 400;
	color: var(--ipa-modal-muted);
	line-height: 1.5;
}

.ipa-modal__title {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: var(--ipa-modal-text);
	line-height: 1.4;
	letter-spacing: -.01em;
}

.ipa-modal__close {
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #f7f8fa;
	color: var(--ipa-modal-muted);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .15s, color .15s, box-shadow .15s;
	box-shadow: none;
}

.ipa-modal__close:hover {
	background: var(--ipa-modal-primary-soft);
	color: var(--ipa-modal-primary);
	box-shadow: none;
}

.ipa-modal__close .iconfont {
	font-size: 16px;
	color: inherit;
}

.ipa-modal__body {
	padding: 14px 22px 22px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	flex: 0 0 auto;
}

/* 沉浸式内容区：主体 + 底部操作同一视觉块，无分割条 */
.ipa-modal__content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 8px 22px 22px;
}

.ipa-modal__content > .ipa-modal__body {
	padding: 0;
	flex: 0 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.ipa-modal__content > .ipa-modal__foot {
	flex-shrink: 0;
	margin-top: 16px;
	padding: 0;
	border-top: 0;
	background: transparent;
	box-shadow: none;
}

.ipa-modal__content > .ipa-modal__foot--bar {
	margin-top: 16px;
	padding: 0;
}

.ipa-modal__body:has(+ .ipa-modal__foot) {
	padding-bottom: 12px;
}

.ipa-modal__foot {
	flex-shrink: 0;
	padding: 14px 22px 22px;
	border-top: 0;
	background: var(--ipa-modal-surface);
}

.ipa-modal__foot--bar {
	padding-top: 14px;
	margin-top: 0;
	border-top: 0;
}

.ipa-modal__btn--block {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	box-sizing: border-box;
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	border-radius: 12px;
	transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.ipa-modal__btn--primary,
.ipa-modal-shell .notice-option .btn,
.ipa-modal-shell .search-form .search-btn-box .btn,
.ipa-modal-shell .ipa-modal-search-form .ipa-modal__btn--primary {
	background: var(--ipa-modal-primary) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: 0 6px 16px rgba(24, 117, 255, .22) !important;
	font-weight: 600 !important;
}

.ipa-modal__btn--primary:hover,
.ipa-modal-shell .notice-option .btn:hover,
.ipa-modal-shell .search-form .search-btn-box .btn:hover,
.ipa-modal-shell .ipa-modal-search-form .ipa-modal__btn--primary:hover {
	background: var(--ipa-modal-primary-hover) !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(24, 117, 255, .28) !important;
	transform: translateY(-1px);
}

/* ══════════ UIkit 静态弹窗壳（template-parts/modal） ══════════ */
/*
 * 关闭时 uk-open 会先被移除，UIkit 默认 translateY(-100px) 会把面板甩到左上角。
 * 改用 fixed 视口居中 + 仅 opacity 过渡，关闭过程不再跳动。
 */
.ipa-modal-shell .uk-modal-dialog,
.ipa-modal-shell .ipa-modal__panel,
.ipa-modal-shell .ipa-store-modal-container {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	transform: translate(-50%, -50%) !important;
	width: min(376px, calc(100vw - 32px)) !important;
	max-width: calc(100vw - 32px) !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	height: auto !important;
	opacity: 1;
	transition: opacity .2s ease !important;
	transition-property: opacity !important;
}

.ipa-modal-shell.uk-modal.uk-open {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.ipa-modal-shell .ipa-modal__panel {
	width: 100%;
	height: auto !important;
	max-height: min(calc(90vh - 48px), 640px);
	display: flex;
	flex-direction: column;
}

.ipa-modal-shell--wide .uk-modal-dialog,
.ipa-modal-shell--wide .ipa-modal__panel {
	width: min(560px, calc(100vw - 32px)) !important;
}

.ipa-modal-shell--chat .uk-modal-dialog,
.ipa-modal-shell--chat .ipa-modal__panel {
	width: min(720px, calc(100vw - 32px)) !important;
	max-height: min(88vh, 800px);
}

/* 取消旧版右上角浮动关闭钮 */
.ipa-modal-shell .uk-modal-close {
	position: static !important;
	top: auto !important;
	right: auto !important;
	width: 30px !important;
	height: 30px !important;
	box-shadow: none !important;
	transform: none !important;
	background: #f7f8fa !important;
	color: var(--ipa-modal-muted) !important;
}

.ipa-modal-shell .uk-modal-close:hover {
	transform: none !important;
	background: var(--ipa-modal-primary-soft) !important;
	color: var(--ipa-modal-primary) !important;
	box-shadow: none !important;
}

.ipa-modal-shell .uk-modal-close-default {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 2;
}

/* ══════════ 尺寸与内容区 ══════════ */
.ipa-modal-shell .ipa-store-modal-title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--ipa-modal-text);
}

.ipa-store-modal-content {
	font-size: 13px;
	line-height: 1.65;
	color: #4e5969;
	margin-bottom: 0;
}

.ipa-store-modal.ipa-modal-shell .ipa-store-modal-content {
	margin-bottom: 0;
}

.ipa-store-modal-content strong {
	font-size: 14px;
	font-weight: 600;
	color: var(--ipa-modal-primary);
}

.ipa-store-modal-content p {
	margin: 0 0 12px;
}

.ipa-store-modal-content p:last-child {
	margin-bottom: 0;
}

.ipa-store-modal-content a {
	color: var(--ipa-modal-primary);
	text-decoration: none;
	font-weight: 500;
}

.ipa-store-modal-content a:hover {
	color: var(--ipa-modal-primary-hover);
	text-decoration: underline;
}

/* ══════════ 按钮 ══════════ */
.ipa-modal__btn {
	min-width: 96px;
	height: 40px;
	padding: 0 18px;
	border: 0;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s, color .15s;
}

.ipa-modal__btn--ghost {
	background: #f2f3f5;
	color: #4e5969;
}

.ipa-modal__btn--ghost:hover {
	background: #e5e6eb;
	color: var(--ipa-modal-text);
}

/* ══════════ 捐赠支付弹窗 ══════════ */
.ipa-modal--pay .ipa-modal__panel {
	border-radius: var(--ipa-modal-radius-lg);
	box-shadow: var(--ipa-modal-shadow);
}

.ipa-modal--pay .erphpdown-type-desc {
	text-align: center;
	padding: 8px 0 22px;
}

.ipa-modal--pay .erphpdown-type-desc .type-name {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ipa-modal-muted);
}

.ipa-modal--pay .erphpdown-type-desc .type-price {
	font-size: 32px;
	font-weight: 700;
	color: var(--ipa-modal-primary);
	line-height: 1.15;
	letter-spacing: -.02em;
}

.ipa-modal--pay .erphpdown-type-desc .type-price span {
	font-variant-numeric: tabular-nums;
}

.ipa-modal--pay .erphpdown-type-payment {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ipa-modal--pay .erphpdown-type-payment .erphpdown-type-link,
.ipa-modal--pay .ipa-modal__body > a.erphpdown-type-credit {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 54px;
	padding: 10px 14px 10px 12px;
	border: 1px solid var(--ipa-modal-border);
	border-radius: 14px;
	background: #fff;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	color: var(--ipa-modal-text) !important;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.ipa-modal--pay .erphpdown-type-payment .erphpdown-type-link:hover,
.ipa-modal--pay .ipa-modal__body > a.erphpdown-type-credit:hover {
	border-color: var(--ipa-modal-primary-border);
	background: var(--ipa-modal-primary-soft);
	box-shadow: 0 4px 14px rgba(24, 117, 255, .12);
	color: var(--ipa-modal-text) !important;
	transform: none;
	filter: none;
}

.ipa-modal--pay .erphpdown-type-alipay,
.ipa-modal--pay .erphpdown-type-wxpay,
.ipa-modal--pay .erphpdown-type-paypal,
.ipa-modal--pay .erphpdown-type-qqpay {
	background: #fff;
}

.ipa-modal--pay .ipa-pay-icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	object-fit: contain;
	border-radius: 8px;
}

.ipa-modal--pay .ipa-pay-icon--wallet {
	display: inline-block;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: #f5f6f8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='6' width='18' height='13' rx='2' stroke='%234e5969' stroke-width='1.5'/%3E%3Cpath d='M3 10h18' stroke='%234e5969' stroke-width='1.5'/%3E%3Ccircle cx='16' cy='14' r='1.2' fill='%234e5969'/%3E%3C/svg%3E") center/20px 20px no-repeat;
}

.ipa-modal--pay .ipa-pay-label {
	margin-left: auto;
	font-size: 15px;
	font-weight: 500;
	color: var(--ipa-modal-text);
}

.ipa-modal--pay .ipa-modal__body > a.erphpdown-type-credit {
	margin-top: 4px;
}

.ipa-modal--pay .erphpdown-promo {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px dashed #e5e6eb;
	font-size: 13px;
	color: var(--ipa-modal-muted);
}

.ipa-modal--pay .ipa-modal__body {
	padding-top: 8px;
}

.ipa-modal--confirm .ipa-modal__body {
	padding-top: 14px;
	text-align: center;
}

.ipa-modal__confirm-text {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 1.6;
	color: #4e5969;
}

.ipa-modal__confirm-actions {
	display: flex;
	gap: 10px;
	justify-content: center;
}

/* ══════════ 登录 / 搜索：自定义 shell + 经典居中标题 / 浮动关闭钮 ══════════ */
.ipa-modal-shell--centered .ipa-modal__panel {
	overflow: visible !important;
}

.ipa-modal-shell--centered .ipa-modal__head--center {
	display: block;
	padding: 26px 30px 0;
	text-align: center;
}

.ipa-modal-shell--centered .ipa-modal__title {
	text-align: center !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	width: 100%;
	margin: 0;
}

.ipa-modal-shell--centered .ipa-modal__body {
	padding: 12px 30px 30px !important;
}

.ipa-store-modal.ipa-modal-shell--centered .ipa-modal__close,
.ipa-store-modal.ipa-modal-shell--centered .uk-modal-close {
	position: absolute !important;
	top: -6px !important;
	right: -6px !important;
	z-index: 10 !important;
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	max-width: 34px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: #666 !important;
	box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .05) !important;
	transform: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer;
}

.ipa-store-modal.ipa-modal-shell--centered .ipa-modal__close:hover,
.ipa-store-modal.ipa-modal-shell--centered .uk-modal-close:hover {
	background: #fff !important;
	color: #666 !important;
	box-shadow: 0 0 4px 0 rgba(0, 0, 0, .05) !important;
	transform: translate(-2px, 2px) !important;
}

.ipa-store-modal.ipa-modal-shell--centered .uk-modal-close .iconfont {
	display: inline-flex !important;
	font-size: 22px;
	line-height: 1;
	color: #666;
}

#ipa-store-login.ipa-modal-shell .ipa-modal__panel,
#ipa-store-login.ipa-modal-shell .uk-modal-dialog {
	width: min(366px, calc(100vw - 32px)) !important;
	border-radius: 12px !important;
}

#ipa-store-search.ipa-modal-shell .ipa-modal__panel,
#ipa-store-search.ipa-modal-shell .uk-modal-dialog,
#ipa-store-old-search.ipa-modal-shell .ipa-modal__panel,
#ipa-store-old-search.ipa-modal-shell .uk-modal-dialog {
	width: min(600px, calc(100vw - 32px)) !important;
	border-radius: 12px !important;
}

#ipa-store-login .title-minor,
#ipa-store-login .title-minor > span {
	text-align: center;
	color: #a2aabb;
	font-size: 14px;
	font-weight: 400;
	margin: 0 0 12px;
}

#ipa-store-search.ipa-modal-shell .search-form input,
#ipa-store-old-search.ipa-modal-shell .search-form input {
	width: 100%;
	box-sizing: border-box;
	background: #f6f7f9;
	border-color: transparent;
}

#ipa-store-search.ipa-modal-shell .search-form .search-btn-box,
#ipa-store-old-search.ipa-modal-shell .search-form .search-btn-box {
	display: flex;
	justify-content: center;
	margin-top: 16px;
}

#ipa-store-search.ipa-modal-shell .search-form .search-btn-box .btn,
#ipa-store-old-search.ipa-modal-shell .search-form .search-btn-box .btn {
	color: #fff;
	display: inline-flex;
	align-items: center;
	border-radius: 16px;
	cursor: pointer;
	font-size: 13px;
	height: 36px;
	justify-content: center;
	background: #3858f6;
	padding: 4px 22px;
	box-shadow: 8px 8px 20px 0 rgba(55, 99, 170, .1);
	border: none;
}

/* ══════════ 群组弹窗 — 支付行风格 ══════════ */
#ipa-store-group.ipa-modal-shell .ipa-modal__sub,
#ipa-store-group.ipa-modal-shell .tips {
	text-align: left !important;
	margin: 0;
}

.ipa-modal-shell .group-box {
	display: flex;
	flex-direction: column;
	margin: 0;
	gap: 10px;
}

.ipa-modal-shell .group-box .group {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 52px;
	padding: 10px 14px;
	border: 1px solid var(--ipa-modal-border);
	border-radius: 14px;
	background: #fff;
	color: var(--ipa-modal-text);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: border-color .15s, box-shadow .15s, background .15s;
}

#ipa-store-group.ipa-modal-shell .group-box .group .tips {
	position: static;
	flex-shrink: 0;
	margin-left: 8px;
	font-size: 10px;
	color: #fff;
	padding: 2px 8px;
	border-radius: 999px;
}

.ipa-modal-shell .group-box .group .tips.green {
	background: #00b42a;
}

.ipa-modal-shell .group-box .group .tips.red {
	background: #f53f3f;
}

.ipa-modal-shell .group-box .group:hover {
	border-color: var(--ipa-modal-primary-border);
	background: var(--ipa-modal-primary-soft);
	box-shadow: 0 4px 14px rgba(24, 117, 255, .1);
	color: var(--ipa-modal-text);
}

/* ══════════ 下载弹窗 ══════════ */
#ipa-store-download {
	/* 4 × 54px 行 + 3 × 10px 间距；5 行 + 4 间距 = 310px（与 down.css 列表口径一致） */
	--ipa-download-min-h: 246px;
	--ipa-download-max-h: 310px;
}

.ipa-modal-shell--download .uk-modal-dialog,
.ipa-modal-shell--download .ipa-modal__panel {
	width: min(440px, calc(100vw - 32px)) !important;
	max-height: min(calc(90vh - 32px), 680px);
}

#ipa-store-download.ipa-modal-shell .ipa-modal__panel {
	background: #fff !important;
	border: 0;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	display: flex;
	flex-direction: column;
}

#ipa-store-download.ipa-modal-shell .ipa-modal__head.ipa-download-head {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	align-content: stretch;
	justify-content: flex-start;
	padding: 20px 22px 0;
	gap: 14px;
	width: 100%;
	box-sizing: border-box;
}

#ipa-store-download.ipa-modal-shell .ipa-modal__head--stack {
	align-items: stretch;
	padding-bottom: 0;
}

.ipa-download-head__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-width: 0;
}

#ipa-store-download.ipa-modal-shell .ipa-download-head__top .ipa-modal__title {
	flex: 1;
	min-width: 0;
}

#ipa-store-download.ipa-modal-shell .ipa-download-head__top .ipa-modal__close {
	margin-top: 0;
	flex-shrink: 0;
}

/* 分段切换器 — 标题下方全宽 */
.ipa-download-segment {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	width: 100%;
	flex: 0 0 auto;
	padding: 4px;
	border-radius: 14px;
	background: #f2f3f5;
	box-sizing: border-box;
}

.ipa-download-segment__indicator {
	position: absolute;
	top: 4px;
	left: 4px;
	width: calc(50% - 4px);
	height: calc(100% - 8px);
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 4px 12px rgba(24, 117, 255, .08);
	transition: transform .28s cubic-bezier(.22, 1, .36, 1), width .28s cubic-bezier(.22, 1, .36, 1);
	pointer-events: none;
	z-index: 0;
}

.ipa-download-segment.is-version .ipa-download-segment__indicator {
	transform: translateX(100%);
}

.ipa-download-tab {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 38px;
	padding: 0 10px;
	border: 0;
	border-radius: 11px;
	background: transparent;
	color: var(--ipa-modal-muted);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: color .2s ease;
	-webkit-tap-highlight-color: transparent;
}

.ipa-download-tab__icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	opacity: .72;
	transition: opacity .2s ease, transform .2s ease;
}

.ipa-download-tab__label {
	white-space: nowrap;
}

.ipa-download-tab:hover {
	color: #4e5969;
}

.ipa-download-tab:hover .ipa-download-tab__icon {
	opacity: .9;
}

.ipa-download-tab.is-active {
	color: var(--ipa-modal-primary);
}

.ipa-download-tab.is-active .ipa-download-tab__icon {
	opacity: 1;
	transform: scale(1.05);
}

.ipa-download-tab:focus-visible {
	outline: 2px solid var(--ipa-modal-primary-border);
	outline-offset: 2px;
}

.ipa-download-tab.is-loading {
	pointer-events: none;
	opacity: .72;
}

.ipa-download-viewport.is-loading {
	opacity: .55;
	transition: opacity .15s ease;
}

.ipa-download-viewport.is-loading::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent);
	background-size: 200% 100%;
	animation: ipa-download-shimmer 1s ease infinite;
	pointer-events: none;
}

@keyframes ipa-download-shimmer {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

.ipa-download-body {
	padding-top: 8px !important;
	padding-bottom: 16px !important;
}

.ipa-download-viewport {
	position: relative;
	min-height: var(--ipa-download-min-h, 246px);
	max-height: var(--ipa-download-max-h, 310px);
	overflow: hidden;
	border-radius: 0;
	background: transparent;
}

#ipa-store-download #ipa-download-iframe {
	width: 100%;
	border: 0;
	display: block;
	min-height: var(--ipa-download-min-h, 246px);
	max-height: var(--ipa-download-max-h, 310px);
	height: auto;
	background: transparent;
	vertical-align: top;
	transition: height .2s ease;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

#ipa-store-download #ipa-download-iframe::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

#ipa-store-download .ipa-store-version[hidden] {
	display: none !important;
}

.ipa-store-modal.ipa-modal-shell--download .ipa-modal__panel,
.ipa-store-modal.ipa-modal-shell--download .uk-modal-dialog {
	width: min(440px, calc(100vw - 32px)) !important;
}

/* ══════════ 公告弹窗 ══════════ */
#ipa-store-notice .ipa-store-modules,
#ipa-store-old-ipa-notice .ipa-store-modules {
	width: 100%;
	background: #f7f8fa;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 8px;
	padding: 12px;
	border-radius: 12px;
	border: 1px solid var(--ipa-modal-border);
}

#ipa-store-notice .module,
#ipa-store-old-ipa-notice .module {
	position: relative;
	display: flex;
	align-items: center;
	padding: 10px 14px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--ipa-modal-border);
	color: var(--ipa-modal-text);
	text-decoration: none;
	transition: border-color .15s, box-shadow .15s;
}

#ipa-store-notice .module:hover,
#ipa-store-old-ipa-notice .module:hover {
	border-color: var(--ipa-modal-primary-border);
	background: var(--ipa-modal-primary-soft);
	box-shadow: 0 4px 12px rgba(24, 117, 255, .1);
	color: var(--ipa-modal-text);
}

#ipa-store-notice .module:hover .name,
#ipa-store-old-ipa-notice .module:hover .name {
	color: var(--ipa-modal-primary);
}

#ipa-store-notice .module .name,
#ipa-store-old-ipa-notice .module .name {
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 4px;
}

#ipa-store-notice .module .desc,
#ipa-store-old-ipa-notice .module .desc {
	color: var(--ipa-modal-muted);
	font-size: 12px;
	margin: 0;
}

#ipa-store-notice .module .icon,
#ipa-store-old-ipa-notice .module .icon {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	margin-right: 10px;
	border-radius: 10px;
	background-color: #f2f3f5;
}

#ipa-store-notice .limit,
#ipa-store-old-ipa-notice .limit {
	position: absolute;
	top: 6px;
	right: 6px;
	font-size: 10px;
	color: #fff;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--ipa-modal-primary);
	box-shadow: 0 2px 6px rgba(24, 117, 255, .25);
}

#ipa-store-notice .notice-conent .tips,
#ipa-store-old-ipa-notice .notice-conent .tips {
	font-size: 12px;
	background: var(--ipa-modal-primary-soft);
	border: 1px solid rgba(24, 117, 255, .12);
	border-radius: 10px;
	color: #4e5969;
	padding: 10px 12px;
	text-align: left;
	margin-bottom: 12px;
	line-height: 1.55;
}

#ipa-store-notice .notice-option,
#ipa-store-old-ipa-notice .notice-option {
	display: flex;
	justify-content: flex-end;
	margin-top: 16px;
}

#ipa-store-notice .ipa-store-modal-container .module.main .icon {
	background-image: url('../images/logo.jpg');
	background-size: cover;
}

#ipa-store-notice .ipa-store-modal-container .module.dump .icon {
	background-image: url('../images/dump.jpg');
	background-size: cover;
}

#ipa-store-notice .ipa-store-modal-container .module.oldos .icon {
	background-image: url('../images/iphone4s.png');
	background-size: cover;
}

/* ══════════ 聊天弹窗 ══════════ */
#ipa-store-chat.ipa-modal-shell .ipa-modal__content {
	background: #fafafa;
	border-radius: 0 0 var(--ipa-modal-radius) var(--ipa-modal-radius);
}

#ipa-store-chat.ipa-modal-shell .ipa-modal__body {
	background: transparent;
	min-height: 280px;
}

#ipa-store-chat .chat-footer textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--ipa-modal-border);
	border-radius: 10px;
	background: #fff;
	resize: none;
}

#ipa-store-chat .send-box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 10px;
	font-size: 12px;
	color: var(--ipa-modal-muted);
}

#ipa-store-chat .send-box .uk-button-primary {
	background: var(--ipa-modal-primary) !important;
	border-radius: 10px;
	border: 0;
	box-shadow: 0 4px 12px rgba(24, 117, 255, .22);
}

#ipa-store-chat .chat-footer textarea:focus {
	outline: none;
	border-color: var(--ipa-modal-primary);
	box-shadow: 0 0 0 3px var(--ipa-modal-primary-soft);
}

/* ══════════ 移动端侧栏（offcanvas） ══════════ */
.ipa-modal-offcanvas .uk-offcanvas-bar {
	width: min(320px, 85vw);
	background: #fff;
	padding: 20px 16px;
	box-shadow: 4px 0 24px rgba(15, 23, 42, .12);
}

.ipa-modal-offcanvas .logo {
	margin-bottom: 16px;
}

.ipa-modal-offcanvas .logo img {
	max-height: 36px;
	width: auto;
}

/* ══════════ 强制覆盖 style.css / old-device.css legacy（含 !important） ══════════ */
/* 外层 .uk-modal = 全屏遮罩；内层 .ipa-modal__panel = 白底卡片，勿把遮罩设 transparent */
.ipa-store-modal.ipa-modal-shell {
	text-align: left !important;
	padding: 0 !important;
	background: var(--ipa-modal-overlay) !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-store-modal-container,
.ipa-store-modal.ipa-modal-shell .ipa-modal__panel,
.ipa-store-modal.ipa-modal-shell .uk-modal-dialog {
	padding: 0 !important;
	margin: 0 !important;
	width: min(376px, calc(100vw - 32px)) !important;
	max-width: calc(100vw - 32px) !important;
	height: auto !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	transition-property: opacity !important;
	background: var(--ipa-modal-surface) !important;
	border: 0 !important;
	border-radius: var(--ipa-modal-radius) !important;
	box-shadow: var(--ipa-modal-shadow) !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__body {
	flex: 0 0 auto !important;
	overflow: visible !important;
	padding: 14px 22px 22px !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__content {
	padding: 8px 22px 22px !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__content > .ipa-modal__body {
	padding: 0 !important;
	overflow-y: auto !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__content > .ipa-modal__foot,
.ipa-store-modal.ipa-modal-shell .ipa-modal__content > .ipa-modal__foot--bar {
	margin-top: 16px !important;
	padding: 0 !important;
	border-top: 0 !important;
	background: transparent !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__body:has(+ .ipa-modal__foot) {
	padding-bottom: 12px !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__head {
	border-bottom: 0 !important;
	background: transparent !important;
	padding: 20px 22px 0 !important;
}

#ipa-store-download.ipa-modal-shell .ipa-modal__head.ipa-download-head {
	flex-direction: column !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	padding: 20px 22px 0 !important;
	gap: 14px !important;
}

#ipa-store-download.ipa-modal-shell .ipa-download-segment {
	width: 100% !important;
	flex: 0 0 auto !important;
}

#ipa-store-download.ipa-modal-shell .ipa-download-body {
	padding-top: 8px !important;
	padding-bottom: 16px !important;
}

.ipa-store-modal.ipa-modal-shell .ipa-modal__foot,
.ipa-store-modal.ipa-modal-shell .ipa-modal__foot--bar {
	border-top: 0 !important;
	margin-top: 0 !important;
	padding: 14px 22px 22px !important;
	background: transparent !important;
}

.ipa-store-modal.ipa-modal-shell.ipa-modal-shell--wide .ipa-modal__panel,
.ipa-store-modal.ipa-modal-shell.ipa-modal-shell--wide .uk-modal-dialog {
	width: min(560px, calc(100vw - 32px)) !important;
}

.ipa-store-modal.ipa-modal-shell:not(.ipa-modal-shell--centered) .ipa-modal__close,
.ipa-store-modal.ipa-modal-shell:not(.ipa-modal-shell--centered) .uk-modal-close {
	position: static !important;
	top: auto !important;
	right: auto !important;
	width: 30px !important;
	height: 30px !important;
	min-width: 30px !important;
	max-width: 30px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #f7f8fa !important;
	color: var(--ipa-modal-muted) !important;
	box-shadow: none !important;
	transform: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.ipa-store-modal.ipa-modal-shell:not(.ipa-modal-shell--centered) .ipa-modal__close:hover,
.ipa-store-modal.ipa-modal-shell:not(.ipa-modal-shell--centered) .uk-modal-close:hover {
	transform: none !important;
	background: var(--ipa-modal-primary-soft) !important;
	color: var(--ipa-modal-primary) !important;
	box-shadow: none !important;
}

.ipa-store-modal.ipa-modal-shell:not(.ipa-modal-shell--centered) .uk-modal-close .iconfont {
	display: none !important;
}

.ipa-store-modal.ipa-modal-shell:not(.ipa-modal-shell--centered) .ipa-modal__title {
	text-align: left !important;
	font-size: 15px !important;
	font-weight: 600 !important;
}

.ipa-store-modal.ipa-modal-shell .notice-option a,
.ipa-store-modal.ipa-modal-shell .notice-option .btn,
.ipa-store-modal.ipa-modal-shell .ipa-modal__foot .ipa-modal__btn--primary,
.ipa-store-modal.ipa-modal-shell .ipa-modal__foot .ipa-modal__btn--block {
	background: var(--ipa-modal-primary) !important;
	color: #fff !important;
	border-radius: 12px !important;
	box-shadow: 0 6px 16px rgba(24, 117, 255, .22) !important;
	transform: none !important;
}

.ipa-store-modal.ipa-modal-shell .notice-option a:hover,
.ipa-store-modal.ipa-modal-shell .notice-option .btn:hover,
.ipa-store-modal.ipa-modal-shell .ipa-modal__foot .ipa-modal__btn--primary:hover,
.ipa-store-modal.ipa-modal-shell .ipa-modal__foot .ipa-modal__btn--block:hover {
	background: var(--ipa-modal-primary-hover) !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(24, 117, 255, .28) !important;
	transform: translateY(-1px) !important;
}

#ipa-store-notice.ipa-modal-shell .ipa-store-modal-container,
#ipa-store-notice.ipa-modal-shell .ipa-modal__panel {
	background: #fff !important;
	background-image: none !important;
}

#ipa-store-download.ipa-modal-shell .ipa-store-modal-container,
#ipa-store-download.ipa-modal-shell .ipa-modal__panel {
	background: #fff !important;
	border: 0 !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

/* 登录 / 搜索 centered：覆盖上方 shell 通用 !important */
.ipa-modal-shell--centered .ipa-modal__panel,
.ipa-modal-shell--centered .uk-modal-dialog {
	overflow: visible !important;
}

#ipa-store-login.ipa-modal-shell .ipa-modal__panel,
#ipa-store-login.ipa-modal-shell .uk-modal-dialog {
	width: min(366px, calc(100vw - 32px)) !important;
	border-radius: 12px !important;
}

#ipa-store-search.ipa-modal-shell .ipa-modal__panel,
#ipa-store-search.ipa-modal-shell .uk-modal-dialog,
#ipa-store-old-search.ipa-modal-shell .ipa-modal__panel,
#ipa-store-old-search.ipa-modal-shell .uk-modal-dialog {
	width: min(600px, calc(100vw - 32px)) !important;
	border-radius: 12px !important;
}

.ipa-modal-shell--centered .ipa-modal__head--center {
	padding: 26px 30px 0 !important;
	text-align: center !important;
}

.ipa-modal-shell--centered .ipa-modal__title {
	text-align: center !important;
	font-size: 18px !important;
	font-weight: 700 !important;
}

.ipa-modal-shell--centered .ipa-modal__body {
	padding: 12px 30px 30px !important;
}

.ipa-store-modal.ipa-modal-shell--centered .ipa-modal__close,
.ipa-store-modal.ipa-modal-shell--centered .uk-modal-close {
	position: absolute !important;
	top: -6px !important;
	right: -6px !important;
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	max-width: 34px !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: #666 !important;
	box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .05) !important;
}

.ipa-store-modal.ipa-modal-shell--centered .ipa-modal__close:hover,
.ipa-store-modal.ipa-modal-shell--centered .uk-modal-close:hover {
	background: #fff !important;
	box-shadow: 0 0 4px 0 rgba(0, 0, 0, .05) !important;
	transform: translate(-2px, 2px) !important;
}

.ipa-store-modal.ipa-modal-shell--centered .uk-modal-close .iconfont {
	display: inline-flex !important;
}
