/**
 * uptab-nav 组件层:磁贴、文件夹、侧边栏、Dock、弹窗、右键菜单
 */

/* ===================== 更好的圆角(G2 连续) ===================== */
.uptab-app--better-radius .uptab-tile__icon,
.uptab-app--better-radius .uptab-tile__letter,
.uptab-app--better-radius .uptab-folder__mini,
.uptab-app--better-radius .uptab-dock__item,
.uptab-app--better-radius .uptab-add__icon {
	border-radius: 22%;
}

/* 异形(非 1:1)磁贴/文件夹圆角必须用具体 px,避免百分比椭圆角 */
.uptab-app--better-radius .uptab-tile.is-h2 .uptab-tile__icon,
.uptab-app--better-radius .uptab-tile.is-v2 .uptab-tile__icon,
.uptab-app--better-radius .uptab-tile.is-big .uptab-tile__icon,
.uptab-app--better-radius .uptab-folder__inner {
	border-radius: var(--uptab-icon-radius, 16px);
}

/* ===================== 磁贴(书签) ===================== */
/* 书签项:透明容器,图标块与名称分开(图标在上,名称在下) */
.uptab-tile {
	grid-column: span var(--w, 1);
	grid-row: span var(--h, 1);
	cursor: pointer;
	position: relative;
	user-select: none;
	background: transparent;
}

.uptab-tile__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	padding-top: 10px;
	box-sizing: border-box;
	/* 不设 height 100%:行高=图标,图标块+名称自然撑开并溢出到 rowGap 区间,避免 flex 压缩图标块 */
}

/* 图标块:独立圆角方块,背景/圆角/阴影;底色优先用书签底色(--uptab-color),否则用主题遮罩色 */
.uptab-tile__icon {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--uptab-icon-size, 56px);
	height: var(--uptab-icon-size, 56px);
	border-radius: var(--uptab-icon-radius, 16px);
	background: var(--uptab-color, var(--uptab-icon-bg, rgba(255, 255, 255, 0.92)));
	box-shadow: 0 1px 2px rgba(20, 34, 61, 0.10), 0 6px 16px rgba(20, 34, 61, 0.12);
	overflow: hidden;
	opacity: var(--uptab-icon-opacity, 1);
	flex-shrink: 0; /* 禁止 flex 压缩,保证 1:1 */
	transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.uptab-tile:hover .uptab-tile__icon {
	transform: translateY(-2px);
	box-shadow: 0 2px 4px rgba(20, 34, 61, 0.12), 0 12px 26px rgba(20, 34, 61, 0.2);
}

/* 跨格遮罩跟随 span 形状:1×2 = 横向长条(宽 2 列),2×1 = 竖向长条(高 2 行) */
.uptab-tile.is-h2 .uptab-tile__icon {
	width: calc(var(--uptab-icon-size, 56px) * 2 + var(--uptab-col-gap, 18px));
	height: var(--uptab-icon-size, 56px);
}

.uptab-tile.is-v2 .uptab-tile__icon {
	width: var(--uptab-icon-size, 56px);
	height: calc(var(--uptab-icon-size, 56px) * 2 + var(--uptab-row-gap, 44px));
}

/* 2×2:遮罩与图片都放大到 2×2,占 4 个图标范围 */
.uptab-tile.is-big .uptab-tile__icon {
	width: calc(var(--uptab-icon-size, 56px) * 2 + var(--uptab-col-gap, 18px));
	height: calc(var(--uptab-icon-size, 56px) * 2 + var(--uptab-row-gap, 44px));
}

/* 图片本体:贴满遮罩,contain 保比例不变形(正方形 logo 满铺,异形 logo 长边贴满) */
.uptab-tile__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
	flex-shrink: 0;
	border-radius: inherit;
	box-sizing: border-box;
	/* 禁用图片原生拖拽:避免浏览器截取图片 ghost 打断自定义拖拽 */
	-webkit-user-drag: none;
	user-select: none;
	-webkit-user-select: none;
}

/* 文字图标:填满容器,色底 + 圆角 */
.uptab-tile__letter {
	width: 100%;
	height: 100%;
	border-radius: inherit;
	background: var(--uptab-color, #24406b);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: calc(var(--uptab-icon-size, 56px) * 0.42);
	font-weight: 700;
	color: #fff;
	line-height: 1;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	flex-shrink: 0;
}

.uptab-tile__name {
	margin-top: 8px;
	font-size: var(--uptab-name-size, 14px);
	font-weight: 500;
	color: var(--uptab-text);
	text-align: center;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1.35;
	min-height: 1.35em;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.16);
}

.uptab-tile__desc {
	margin-top: 2px;
	font-size: 11px;
	color: var(--uptab-text-2);
	text-align: center;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

/* ===================== 文件夹 ===================== */
/* 文件夹:透明容器,液态玻璃块 + 名称,占位=span 网格区域 */
.uptab-folder {
	grid-column: span var(--w, 1);
	grid-row: span var(--h, 1);
	cursor: pointer;
	position: relative;
	user-select: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 10px; /* 与普通磁贴图标块顶部对齐 */
	box-sizing: border-box;
	background: transparent;
}

/* 文件夹块:边缘=图标块×span+间距(宽高都用横向间距,保持正方形体系),液态玻璃(半透明+模糊) */
.uptab-folder__inner {
	width: calc(var(--uptab-icon-size, 56px) * var(--w, 1) + (var(--w, 1) - 1) * var(--uptab-col-gap, 18px));
	height: calc(var(--uptab-icon-size, 56px) * var(--h, 1) + (var(--h, 1) - 1) * var(--uptab-col-gap, 18px));
	padding: 8px; /* 与 JS 的 tileSize 计算一致 */
	border-radius: var(--uptab-icon-radius, 16px);
	background: var(--uptab-folder-bg, rgba(255, 255, 255, 0.45));
	backdrop-filter: blur(var(--uptab-folder-blur, 12px)) saturate(1.3);
	-webkit-backdrop-filter: blur(var(--uptab-folder-blur, 12px)) saturate(1.3);
	border: 1px solid rgba(255, 255, 255, 0.18);
	box-shadow: 0 1px 2px rgba(20, 34, 61, 0.10), 0 6px 16px rgba(20, 34, 61, 0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-sizing: border-box;
	flex-shrink: 0; /* 防止 flex 容器压缩,保证 2×2 等尺寸为正方形 */
	transform: translateZ(0); /* 独立合成层:隔离邻居动态 widget(时钟/倒计时)每秒重绘对 backdrop-filter 的干扰,消除闪烁 */
}

/* 子图标网格:铺满布局区,按 w×h 排 */
.uptab-folder__slots {
	display: grid;
	gap: 4px; /* 固定子图标间距,对齐 LeafTab */
	width: 100%;
	height: 100%;
	align-items: center;
	justify-items: center;
	align-content: center;
	justify-content: center;
	min-width: 0;
	min-height: 0;
}

/* 子图标:正方形(尺寸由 JS 计算),与外部图标同款遮罩/底色,圆角按比例跟随主图标 */
.uptab-folder__mini {
	border-radius: calc(var(--uptab-icon-radius, 15px) / var(--uptab-icon-size, 81px) * 100%);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--uptab-color, var(--uptab-icon-bg, rgba(255, 255, 255, 0.92)));
	min-width: 0;
	min-height: 0;
	flex: none;
}

.uptab-folder__mini .uptab-tile__img {
	width: 88%;
	height: 88%;
	object-fit: contain;
	border-radius: inherit;
}

.uptab-folder__mini .uptab-tile__letter {
	width: 100%;
	height: 100%;
	border-radius: inherit;
	font-size: calc(var(--uptab-icon-size, 56px) * 0.2);
	font-weight: 700;
	color: #fff;
	background: var(--uptab-color, #24406b);
}

.uptab-folder__mini.is-empty {
	background: transparent;
}

/* 非 1×1 文件夹:子图标可点击直接打开,悬停高亮提示 */
.uptab-folder__mini.is-clickable {
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.uptab-folder__mini.is-clickable:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(20, 34, 61, 0.12), 0 8px 18px rgba(20, 34, 61, 0.18);
}

/* 名称:布局区下方(透明区),样式同普通磁贴名称(顶部 margin 对齐 8px,保证与图标名称同一行) */
.uptab-folder__label {
	margin-top: 8px;
	font-size: var(--uptab-name-size, 14px);
	font-weight: 500;
	color: var(--uptab-text);
	text-align: center;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1.35;
	min-height: 1.35em;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.16);
}

/* ===================== 添加按钮(磁贴) ===================== */
.uptab-add {
	grid-column: span 1;
	grid-row: span 1;
	cursor: pointer;
	user-select: none;
}

/* 添加按钮:视觉同普通磁贴,上方图标容器 + 下方名称 */
.uptab-add__icon {
	color: var(--uptab-text-2);
}

.uptab-add:hover .uptab-add__icon {
	color: var(--uptab-accent);
}

.uptab-add__plus {
	font-size: calc(var(--uptab-icon-size, 56px) * 0.42);
	line-height: 1;
	font-weight: 300;
}

/* ===================== 右侧边栏(书签页) ===================== */
.uptab-sidebar {
	position: fixed;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 20;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 10px 8px;
	border-radius: 18px;
	background: var(--uptab-card-bg);
	border: 1px solid var(--uptab-card-border);
	box-shadow: var(--uptab-shadow);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

/* 菜单位置:左侧 */
.uptab-app--menu-left .uptab-sidebar {
	right: auto;
	left: 16px;
}

/* 侧边栏自动隐藏:平时贴右边缘藏起(留窄边可触发),鼠标悬停划出 */
.uptab-app--sidebar-auto .uptab-sidebar {
	transform: translate(calc(100% - 5px), -50%);
	opacity: 0.35;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.uptab-app--sidebar-auto .uptab-sidebar:hover {
	transform: translate(0, -50%);
	opacity: 1;
}

/* 自动隐藏 + 菜单在左侧:贴左边缘 */
.uptab-app--sidebar-auto.uptab-app--menu-left .uptab-sidebar {
	transform: translate(calc(-100% + 5px), -50%);
}

.uptab-app--sidebar-auto.uptab-app--menu-left .uptab-sidebar:hover {
	transform: translate(0, -50%);
}

/* 侧栏名称显示 */
.uptab-app--sidebar-name .uptab-sidebar__page,
.uptab-app--sidebar-name .uptab-sidebar__add {
	width: auto;
	min-width: 40px;
	padding: 0 8px;
	gap: 6px;
	flex-direction: row;
}

.uptab-app--sidebar-name .uptab-sidebar__tooltip {
	position: static;
	transform: none;
	padding: 0;
	background: transparent;
	color: var(--uptab-text);
	opacity: 1;
	font-size: 12px;
	white-space: nowrap;
}

.uptab-sidebar__page {
	position: relative;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--uptab-text-2);
	transition: all 0.18s ease;
}

.uptab-sidebar__page:hover {
	background: rgba(127, 127, 127, 0.16);
	color: var(--uptab-text);
}

.uptab-sidebar__page.is-active {
	background: var(--uptab-accent);
	color: #fff;
	box-shadow: 0 4px 12px rgba(20, 34, 61, 0.35);
}

/* 侧栏激活项:左侧琥珀金指示条(点缀之一) */
.uptab-sidebar__page.is-active::before {
	content: "";
	position: absolute;
	left: -8px;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 18px;
	border-radius: 3px;
	background: var(--uptab-gold, #c9a227);
}

.uptab-sidebar__page svg,
.uptab-sidebar__page .uptab-sidebar__letter {
	width: 20px;
	height: 20px;
}

.uptab-sidebar__page .uptab-sidebar__letter {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
}

/* 全局 SVG 图标样式(linear 风格,统一 stroke/fill) */
.uptab-sidebar__page svg,
.uptab-market__addto-item svg,
.uptab-market__nav-item svg,
.uptab-dock__item svg,
.uptab-menu__item svg,
.uptab-file-name svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.uptab-dock__item svg {
	width: 24px;
	height: 24px;
}

.uptab-market__addto-item svg {
	width: 16px;
	height: 16px;
}

.uptab-sidebar__tooltip {
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%);
	padding: 5px 10px;
	border-radius: 8px;
	background: rgba(15, 23, 42, 0.9);
	color: #fff;
	font-size: 12px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s;
}

.uptab-sidebar__page:hover .uptab-sidebar__tooltip {
	opacity: 1;
}

.uptab-sidebar__divider {
	width: 22px;
	height: 1px;
	background: rgba(127, 127, 127, 0.3);
	margin: 2px 0;
}

.uptab-sidebar__add {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--uptab-text-2);
	transition: all 0.18s ease;
}

.uptab-sidebar__add:hover {
	background: rgba(127, 127, 127, 0.16);
	color: var(--uptab-accent);
}

/* 侧栏功能入口(返回主页/设置):复用页面项尺寸与悬停,支持 tooltip */
.uptab-sidebar__act {
	position: relative;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--uptab-text-2);
	transition: all 0.18s ease;
}

.uptab-sidebar__act:hover {
	background: rgba(127, 127, 127, 0.16);
	color: var(--uptab-accent);
}

.uptab-sidebar__act svg {
	width: 20px;
	height: 20px;
}

.uptab-sidebar__act:hover .uptab-sidebar__tooltip {
	opacity: 1;
}

/* ===================== Dock 栏 ===================== */
.uptab-dock {
	position: fixed;
	left: 50%;
	bottom: 18px;
	transform: translateX(-50%);
	z-index: 20;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 16px;
	border-radius: 22px;
	background: var(--uptab-card-bg);
	border: 1px solid var(--uptab-card-border);
	box-shadow: var(--uptab-shadow);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

.uptab-dock__item {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	overflow: hidden;
	background: var(--uptab-color, #24406b);
	transition: transform 0.18s ease;
}

.uptab-dock__item:hover {
	transform: scale(1.12);
}

/* Dock 外观开关 */
.uptab-dock.is-nobg {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.uptab-dock.is-noblur {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.uptab-dock.is-noscale .uptab-dock__item:hover {
	transform: none;
}

.uptab-dock__item .uptab-tile__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* 书签项:图片透明,文字图标用色底 */
.uptab-dock__item:has(.uptab-tile__img) {
	background: transparent;
}

.uptab-dock__item .uptab-tile__letter {
	width: 100%;
	height: 100%;
	border-radius: 14px;
	font-size: 22px;
	font-weight: 700;
	color: #fff;
	background: var(--uptab-color, #24406b);
}

/* ===================== 弹窗 ===================== */
/* 弹出层分层入场动画:遮罩淡入,内容轻微上浮放大,营造"从下方浮现"的空间感 */
@keyframes uptab-overlay-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes uptab-pop-in {
	from { opacity: 0; transform: translateY(10px) scale(0.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes uptab-menu-in {
	from { opacity: 0; transform: translateY(-6px) scale(0.97); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

.uptab-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: rgba(15, 23, 42, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	animation: uptab-overlay-in 0.18s ease;
}

.uptab-modal {
	width: min(560px, 94vw);
	max-height: 88vh;
	overflow: auto;
	border-radius: 20px;
	background: var(--uptab-glass-bg, rgba(28, 38, 58, 0.72));
	border: 1px solid var(--uptab-glass-border, rgba(255, 255, 255, 0.14));
	color: var(--uptab-glass-text, rgba(255, 255, 255, 0.92));
	box-shadow: var(--uptab-glass-shadow, 0 24px 64px rgba(10, 18, 34, 0.5));
	backdrop-filter: var(--uptab-glass-blur, blur(20px) saturate(140%));
	-webkit-backdrop-filter: var(--uptab-glass-blur, blur(20px) saturate(140%));
	padding: 22px;
	animation: uptab-pop-in 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

.uptab-modal__title {
	margin: 0 0 16px;
	font-size: 17px;
	font-weight: 700;
}

.uptab-modal__body {
	font-size: 14px;
}

.uptab-modal__footer {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 20px;
}

/* 统一居中弹框(confirm/alert/prompt),窄于表单弹窗,内容居中 */
.uptab-dialog {
	width: min(400px, 92vw);
}

.uptab-dialog .uptab-modal__title {
	margin-bottom: 12px;
}

.uptab-dialog__msg {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--uptab-glass-text, rgba(255, 255, 255, 0.92));
	white-space: pre-wrap;
	word-break: break-word;
}

.uptab-dialog__input {
	margin-top: 14px;
}

/* ===================== 表单 ===================== */
.uptab-field {
	margin-bottom: 16px;
}

.uptab-field__label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 600;
	color: var(--uptab-glass-text-2, rgba(255, 255, 255, 0.60));
}

.uptab-field__input {
	width: 100%;
	height: 40px;
	padding: 0 12px;
	border-radius: 10px;
	border: 1px solid #dfe3ea;
	background: #f7f8fa;
	font-size: 14px;
	color: #1f2329;
	outline: none;
	transition: border 0.2s, background 0.2s;
}

.uptab-field__input:focus {
	border-color: var(--uptab-accent, #24406b);
	background: #fff;
}

.uptab-field__textarea {
	width: 100%;
	min-height: 68px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid #dfe3ea;
	background: #f7f8fa;
	font-size: 14px;
	color: #1f2329;
	outline: none;
	resize: vertical;
}

.uptab-field__textarea:focus {
	border-color: var(--uptab-accent);
	background: #fff;
}

.uptab-btn {
	height: 38px;
	padding: 0 18px;
	border: none;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity 0.2s, transform 0.15s ease, box-shadow 0.2s ease;
}

.uptab-btn:hover {
	opacity: 0.88;
}

/* 键盘可见焦点环:琥珀金(点缀之一,WCAG 焦点可见) */
.uptab-btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--uptab-gold-ring, rgba(201, 162, 39, 0.45));
}

.uptab-btn--primary {
	background: var(--uptab-accent, #24406b);
	color: var(--uptab-text-invert, #ffffff);
	/* 主按钮双层阴影:贴地实影 + 墨蓝漂浮光晕 */
	box-shadow: 0 1px 2px rgba(20, 34, 61, 0.18), 0 6px 16px rgba(20, 34, 61, 0.24);
}

.uptab-btn--primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(20, 34, 61, 0.2), 0 10px 24px rgba(20, 34, 61, 0.3);
}

.uptab-btn--ghost {
	background: rgba(255, 255, 255, 0.10);
	color: var(--uptab-glass-text, rgba(255, 255, 255, 0.92));
}

.uptab-btn--danger {
	background: #ef4444;
	color: #fff;
}

/* ===================== 图标选择器(页面/图标) ===================== */
.uptab-icon-picker {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 8px;
	max-height: 220px;
	overflow: auto;
	padding: 4px;
}

.uptab-icon-picker__item {
	width: 100%;
	aspect-ratio: 1;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border: 2px solid transparent;
	transition: all 0.15s;
}

.uptab-icon-picker__item:hover {
	background: #eef0f4;
}

.uptab-icon-picker__item.is-active {
	border-color: var(--uptab-accent, #24406b);
	background: var(--uptab-accent-soft, rgba(36, 64, 107, 0.12));
}

.uptab-icon-picker__item svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ===================== 右键菜单 ===================== */
.uptab-menu {
	position: fixed;
	z-index: 120;
	min-width: 140px;
	padding: 5px;
	border-radius: 14px;
	background: var(--uptab-glass-bg, rgba(28, 38, 58, 0.72));
	border: 1px solid var(--uptab-glass-border, rgba(255, 255, 255, 0.14));
	color: var(--uptab-glass-text, rgba(255, 255, 255, 0.92));
	box-shadow: var(--uptab-glass-shadow, 0 16px 48px rgba(10, 18, 34, 0.42));
	backdrop-filter: var(--uptab-glass-blur, blur(20px) saturate(140%));
	-webkit-backdrop-filter: var(--uptab-glass-blur, blur(20px) saturate(140%));
	transform-origin: top left;
	animation: uptab-menu-in 0.16s cubic-bezier(0.16, 1, 0.3, 1);
}

.uptab-menu__item {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 7px 11px;
	border-radius: 8px;
	cursor: pointer;
	font-size: 12.5px;
	color: var(--uptab-glass-text, rgba(255, 255, 255, 0.92));
	transition: background 0.15s;
	animation: uptab-menu-item-in 0.22s ease backwards;
}

/* 分层入场:菜单项依次浮现(stagger) */
.uptab-menu__item:nth-child(1) { animation-delay: 0.02s; }
.uptab-menu__item:nth-child(2) { animation-delay: 0.05s; }
.uptab-menu__item:nth-child(3) { animation-delay: 0.08s; }
.uptab-menu__item:nth-child(4) { animation-delay: 0.11s; }
.uptab-menu__item:nth-child(5) { animation-delay: 0.14s; }
.uptab-menu__item:nth-child(6) { animation-delay: 0.17s; }

@keyframes uptab-menu-item-in {
	from { opacity: 0; transform: translateX(-4px); }
	to { opacity: 1; transform: translateX(0); }
}

.uptab-menu__item:hover {
	background: var(--uptab-glass-hover, rgba(255, 255, 255, 0.12));
}

.uptab-menu__item.is-danger {
	color: #ff8a8a;
}

.uptab-menu__divider {
	height: 1px;
	margin: 5px 4px;
	background: var(--uptab-glass-line, rgba(255, 255, 255, 0.10));
}

.uptab-menu__sizes {
	display: flex;
	gap: 6px;
	padding: 6px 8px;
}

.uptab-menu__size {
	flex: 1;
	height: 28px;
	border-radius: 7px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	cursor: pointer;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--uptab-glass-border, rgba(255, 255, 255, 0.14));
	color: var(--uptab-glass-text-2, rgba(255, 255, 255, 0.60));
	transition: all 0.15s;
}

.uptab-menu__size:hover {
	background: var(--uptab-glass-hover, rgba(255, 255, 255, 0.12));
	color: var(--uptab-glass-text, rgba(255, 255, 255, 0.92));
}

.uptab-menu__size.is-active {
	background: var(--uptab-gold, #c9a227);
	border-color: var(--uptab-gold, #c9a227);
	color: #1c1405;
	font-weight: 600;
}

/* 热榜渠道勾选区(右键菜单内联) */
.uptab-menu__section {
	padding: 4px 4px 2px;
}

.uptab-menu__section-title {
	font-size: 11px;
	color: var(--uptab-glass-text-2, rgba(255, 255, 255, 0.55));
	padding: 2px 8px 4px;
	letter-spacing: 0.03em;
}

.uptab-menu__channels {
	max-height: 184px;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}

.uptab-menu__hint {
	font-size: 11.5px;
	color: var(--uptab-glass-text-2, rgba(255, 255, 255, 0.5));
	padding: 4px 8px;
}

.uptab-menu__channel {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 9px;
	border-radius: 8px;
	cursor: pointer;
	font-size: 12.5px;
	transition: background 0.15s;
}

.uptab-menu__channel:hover {
	background: var(--uptab-glass-hover, rgba(255, 255, 255, 0.12));
}

.uptab-menu__check {
	width: 16px;
	height: 16px;
	border-radius: 5px;
	border: 1.5px solid var(--uptab-glass-border, rgba(255, 255, 255, 0.35));
	flex: 0 0 auto;
	position: relative;
	transition: all 0.15s;
}

.uptab-menu__channel.is-on .uptab-menu__check {
	background: #3b6cb0;
	border-color: #3b6cb0;
}

.uptab-menu__channel.is-on .uptab-menu__check::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 1.5px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* ===================== Toast 提示 ===================== */
.uptab-toast {
	position: fixed;
	left: 50%;
	bottom: 120px;
	transform: translateX(-50%) translateY(8px);
	z-index: 200;
	padding: 10px 18px;
	border-radius: 12px;
	background: rgba(15, 23, 42, 0.9);
	color: #fff;
	font-size: 13px;
	opacity: 0;
	transition: opacity 0.2s, transform 0.2s;
	pointer-events: none;
}

.uptab-toast.is-show {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

/* ===================== 响应式 ===================== */
@media (max-width: 720px) {
	.uptab-dock {
		display: none; /* 移动端不显示 Dock */
	}
	/* 侧栏:从右侧悬浮改为搜索框下方横向胶囊条(static,位于 stage 内网格前,由 app.js buildDOM 保证顺序) */
	.uptab-sidebar {
		position: static;
		transform: none;
		opacity: 1;
		flex-direction: row;
		width: auto;
		max-width: 92vw;
		margin: 0 0 4vh;
		padding: 6px 10px;
		border-radius: 999px;
		gap: 4px;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.uptab-sidebar::-webkit-scrollbar {
		display: none;
	}
	/* 覆盖 sidebar-auto / menu-left 的 transform 隐藏(触摸无 hover) */
	.uptab-app--sidebar-auto .uptab-sidebar,
	.uptab-app--sidebar-auto.uptab-app--menu-left .uptab-sidebar {
		transform: none;
		opacity: 1;
	}
	/* 横向条内:激活指示条(竖向左条)隐藏 */
	.uptab-sidebar__page.is-active::before {
		display: none;
	}
	/* tooltip 隐藏(触摸无 hover) */
	.uptab-sidebar__tooltip {
		display: none;
	}
	/* 分隔线改为短竖线 */
	.uptab-sidebar__divider {
		width: 1px;
		height: 18px;
		margin: 0 4px;
		flex-shrink: 0;
	}
	/* 按钮尺寸(触摸目标 ≥38px) */
	.uptab-sidebar__page,
	.uptab-sidebar__add,
	.uptab-sidebar__act {
		width: 38px;
		height: 38px;
		flex-shrink: 0;
	}
}

/* ===================== 无障碍:尊重"减少动态效果"偏好 ===================== */
@media (prefers-reduced-motion: reduce) {
	.uptab-modal-overlay,
	.uptab-modal,
	.uptab-menu,
	.uptab-menu__item,
	.uptab-search__dropdown {
		animation: none !important;
	}
	.uptab-btn--primary:hover,
	.uptab-tile:hover .uptab-tile__icon {
		transform: none;
	}
}

/* ===================== 触摸设备优化 ===================== */
/* 关闭 hover 上浮/缩放,避免点击后状态残留(iOS 点击会短暂触发 :hover) */
@media (hover: none) {
	.uptab-tile:hover .uptab-tile__icon,
	.uptab-widget:hover .uptab-widget__inner {
		transform: none;
	}
	.uptab-dock__item:hover,
	.uptab-btn--primary:hover {
		transform: none;
	}
}

/* 禁用 iOS 长按弹出系统菜单/文字选择放大镜(磁贴/小组件/文件夹/侧栏按钮) */
.uptab-tile,
.uptab-folder,
.uptab-widget,
.uptab-add,
.uptab-dock__item,
.uptab-sidebar__page,
.uptab-sidebar__add,
.uptab-sidebar__act {
	-webkit-touch-callout: none;
}

/* ===================== 动态小组件独立合成层 ===================== */
/* 时钟/倒计时等每秒重绘的 widget 提升为独立合成层,
   减少对其邻居文件夹 backdrop-filter 的干扰,防止再次出现闪烁 */
.uptab-widget {
	will-change: transform;
}
