/* VIVI Life Journal shared activity styles */
.vivi-lite-activity-page{
	background:var(--vivi-color-bg);
	color:var(--vivi-color-text);
}
.vivi-activity-main{
	width:min(100% - 20px,var(--vivi-container));
	margin:0 auto;
	padding:var(--vivi-page-main-padding-top) 0 var(--vivi-page-main-padding-bottom);
	font-family:var(--vivi-font-body);
}

.vivi-activity-toolbar{
	margin:8px 0 22px;
	padding:16px;
	background:var(--vivi-color-card);
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-activity-filter{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	align-items:end;
}
.vivi-activity-search-field{
	flex:1 1 320px;
	min-width:240px;
	display:grid;
	gap:7px;
}
.vivi-activity-search-field span{
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.06em;
}
.vivi-activity-search-field input{
	width:100%;
	min-height:44px;
	padding:0 14px;
	border:1px solid var(--vivi-form-border, var(--vivi-color-border));
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-form-bg, var(--vivi-color-bg));
	color:var(--vivi-form-text, var(--vivi-color-text));
	outline:none;
}
.vivi-activity-search-field input:focus{
	border-color:var(--vivi-form-border-focus, var(--vivi-color-primary));
	box-shadow:0 0 0 4px var(--vivi-form-focus-ring, rgba(166,112,24,.12));
}

.vivi-activity-load-more{
	min-height:44px;
	padding:0 16px;
	border-radius:var(--vivi-radius, 8px);
	border:1px solid var(--vivi-color-border);
	background:var(--vivi-color-card);
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	transition:background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease,transform .18s ease;
	cursor:pointer;
}
.vivi-activity-load-more{
	border-color:var(--vivi-color-primary);
	background:var(--vivi-color-primary);
	color:var(--vivi-color-text-inverse);
}
.vivi-activity-load-more:hover{
	transform:translateY(-1px);
}
.vivi-activity-layout{
	display:block;
}
.vivi-activity-feed{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:18px;
	align-items:stretch;
	width:100%;
}
.vivi-activity-card.vivi-story-card{
	position:relative;
	min-width:0;
	display:grid;
	grid-template-rows:auto 1fr;
	height:100%;
	overflow:hidden;
	background:var(--vivi-color-card);
	border:1px solid var(--vivi-border, var(--vivi-color-border));
	border-radius:var(--vivi-radius, 8px);
	box-shadow:var(--vivi-shadow-soft);
	transition:transform .2s ease, box-shadow .2s ease;
}
.vivi-activity-card.vivi-story-card:hover{
	transform:translateY(-2px);
	box-shadow:var(--vivi-shadow);
}
.vivi-activity-card .vivi-activity-image-wrap{
	position:relative;
	overflow:visible;
}
.vivi-activity-card .vivi-story-image-link{
	display:block;
	margin:0;
	border:0;
}
.vivi-activity-card .vivi-story-image{
	display:block;
	width:100%;
	min-height:190px;
	background-size:cover;
	background-position:center;
	background-color:var(--vivi-color-bg-soft);
}
.vivi-activity-card .vivi-activity-image-empty{
	background-image:linear-gradient(135deg,var(--vivi-color-accent),var(--vivi-color-bg) 48%,var(--vivi-color-red));
}
.vivi-activity-card .vivi-activity-card-body{
	display:flex;
	flex-direction:column;
	min-height:0;
	padding:18px;
}
.vivi-activity-card .vivi-story-meta{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:0;
	margin:0 0 8px;
	color:var(--vivi-blue, var(--vivi-color-primary));
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.08em;
	line-height:1.55;
}
.vivi-activity-card .vivi-story-group-link,
.vivi-activity-card .vivi-story-user-link{
	margin-top:0 !important;
	color:inherit;
	font-size: inherit !important;
	font-weight: inherit;
	letter-spacing:inherit;
	border-bottom:1px solid currentColor;
}
.vivi-activity-card .vivi-story-meta-sep{
	margin:0 .35em;
}
.vivi-activity-card h3{
	margin:0;
	min-height:56px;
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-h3);
	font-weight: var(--vivi-fw-bold);
	line-height:1.42;
}
.vivi-activity-card h3.vivi-activity-title-line{
	display:block;
	min-width:0;
}
.vivi-activity-card-head{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	align-items:start;
	gap:10px;
	position:relative;
}
.vivi-activity-time{
	display:block;
	margin-top:6px;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.04em;
	line-height:1.4;
	white-space:nowrap;
}
/* 更多選單按鈕的基礎樣式已移至 assets/css/vivi-base.css，
   此檔只保留動態頁特殊覆寫與卡片內容樣式。 */
.vivi-activity-card h3 a{
	display:inline;
	margin:0;
	color:inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height:inherit;
	border:0;
}
.vivi-activity-card .vivi-story-excerpt{
	margin-top:12px;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-body);
	font-weight: var(--vivi-fw-regular);
	line-height:1.7;
}
.vivi-activity-card-footer{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	margin-top:auto;
	padding-top:18px;
}
.vivi-activity-counts{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:6px 14px;
	min-width:0;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.4;
}

.vivi-activity-count{
	display:inline-flex;
	align-items:center;
	gap:6px;
	white-space:nowrap;
}

/* Activity counts icon labels: keep accessible text hidden in Lite Page output. */
.vivi-activity-count .screen-reader-text{
	position:absolute !important;
	width:1px !important;
	height:1px !important;
	padding:0 !important;
	margin:-1px !important;
	overflow:hidden !important;
	clip:rect(0,0,0,0) !important;
	white-space:nowrap !important;
	border:0 !important;
}

.vivi-activity-card .vivi-story-readmore{
	display:inline-flex;
	margin-top:0 !important;
	margin-left:auto;
	flex:0 0 auto;
	align-self:flex-end;
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	border-bottom:1px solid currentColor;
}
.vivi-activity-system-note,
.vivi-activity-empty{
	grid-column:1/-1;
	padding:18px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-card);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-activity-empty h3{
	margin:0 0 8px;
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-h3);
	font-weight: var(--vivi-fw-bold);
}
.vivi-activity-empty p{
	margin:0;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:var(--vivi-lh-body);
}
.vivi-activity-system-note{
	margin:18px 0;
	color:var(--vivi-color-primary);
	font-weight: var(--vivi-fw-bold);
}
.vivi-activity-initial-loading{
	grid-column:1 / -1;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	min-height:180px;
	padding:28px;
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-body);
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:color-mix(in srgb, var(--vivi-color-surface) 92%, transparent);
}
.vivi-activity-load-wrap{
	display:flex;
	justify-content:center;
	padding:26px 0 0;
}
.vivi-activity-load-more.is-hidden{display:none;}
.vivi-activity-feed.is-loading,
.vivi-activity-load-more.is-loading{
	opacity:.58;
	pointer-events:none;
}
@media (max-width: 1180px){
	.vivi-activity-main{width:min(100% - 20px,var(--vivi-container));}
	.vivi-activity-feed{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 900px){
	.vivi-activity-main{
		width:calc(100% - 20px);
		padding:var(--vivi-mobile-page-main-padding-top) 0 var(--vivi-mobile-page-main-padding-bottom);
	}

	.vivi-activity-toolbar{padding:14px;margin-bottom:18px;}
	.vivi-activity-filter{
		display:grid;
		grid-template-columns:1fr;
	}
	.vivi-activity-search-field{min-width:0;}
	.vivi-activity-feed{
		grid-template-columns:1fr;
		gap:14px;
	}
	.vivi-activity-card .vivi-story-image{min-height:178px;}
	.vivi-activity-card h3{
		min-height:auto;
		font-size: var(--vivi-fs-h3);
	}
}

/* Activity detail Popup: existing vivi-activity-detail output with Life Feed styling and comments below. */
.vivi-activity-modal-lock{
	overflow:hidden;
}
.vivi-activity-modal{
	position:fixed;
	top:var(--vivi-header-height, 78px);
	right:0;
	bottom:0;
	left:0;
	display:none;
	z-index:9999;
	--vivi-popup-standard-radius: var(--vivi-radius, 8px);
	--vivi-activity-radius-card: var(--vivi-radius, 8px);
	--vivi-activity-radius-control: var(--vivi-radius, 8px);
	--vivi-btn-radius: var(--vivi-radius, 8px);
}
.vivi-activity-modal.is-open{
	display:block;
}
.admin-bar .vivi-activity-modal{
	top:calc(var(--vivi-header-height, 78px) + 32px);
}
.vivi-activity-modal-backdrop{
	position:absolute;
	inset:0;
	background:var(--vivi-popup-standard-backdrop, rgba(17,24,39,.52));
	backdrop-filter:blur(var(--vivi-popup-standard-backdrop-blur, 8px));
	-webkit-backdrop-filter:blur(var(--vivi-popup-standard-backdrop-blur, 8px));
}
.vivi-activity-modal-panel{
	position:relative;
	width:min(760px, calc(100vw - 20px));
	max-height:calc(100vh - var(--vivi-header-height, 78px) - 32px);
	margin:16px auto;
	border:var(--vivi-popup-standard-border, 1px solid var(--vivi-color-border));
	border-radius:var(--vivi-radius, 8px) !important;
	background:var(--vivi-popup-standard-bg, var(--vivi-color-card));
	box-shadow:var(--vivi-popup-standard-shadow, var(--vivi-shadow-card));
	overflow:hidden;
}

.vivi-activity-modal-close,
.vivi-activity-modal .vivi-more-toggle,
.vivi-activity-modal .vivi-more-menu,
.vivi-activity-modal .vivi-more-menu a,
.vivi-activity-modal .vivi-more-menu button,
.vivi-activity-modal .vivi-activity-gallery-nav,
.vivi-activity-modal .vivi-activity-gallery-dots{
	border-radius:var(--vivi-radius, 8px) !important;
}

.vivi-activity-modal-inner{
	max-height:calc(100vh - 48px);
	overflow:auto;
	padding:26px;
}
.vivi-activity-modal-title{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}
.vivi-activity-modal-loading,
.vivi-activity-modal-error{
	padding:42px 18px;
	text-align:center;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
}
.vivi-activity-modal-error h3{
	margin:0 0 10px;
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-h3);
}
.vivi-activity-detail{
	display:block;
}
.vivi-activity-modal .vivi-activity-detail-post,
.vivi-activity-single-card .vivi-activity-detail-post{
	position:relative;
	overflow:visible;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-card);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-activity-detail-head{
	display:grid;
	grid-template-columns:44px minmax(0, 1fr);
	align-items:center;
	gap:var(--vivi-space-sm);
	margin:0;
	padding:var(--vivi-space-md) 56px var(--vivi-space-sm) var(--vivi-space-md);
}
.vivi-activity-detail-avatar{
	display:block;
	width:44px;
	height:44px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	overflow:hidden;
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-detail-avatar img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}
.vivi-activity-detail-author{
	min-width:0;
}
.vivi-activity-detail-meta.vivi-activity-detail-author-line{
	display:flex;
	align-items:center;
	flex-wrap:nowrap;
	gap:6px;
	min-width:0;
	overflow:hidden;
	color:var(--vivi-color-text-light);
	font-size:var(--vivi-fs-xs);
	font-weight:var(--vivi-fw-regular);
	letter-spacing:0;
	line-height:var(--vivi-lh-compact);
	white-space:nowrap;
}
.vivi-activity-detail-meta.vivi-activity-detail-author-line a{
	border-bottom:0;
}
.vivi-activity-detail-author-name{
	display:block;
	flex:0 1 auto;
	min-width:0;
	overflow:hidden;
	color:var(--vivi-color-heading);
	font-size:var(--vivi-fs-body);
	font-weight:var(--vivi-fw-bold);
	line-height:var(--vivi-lh-compact);
	text-overflow:ellipsis;
	white-space:nowrap;
}
.vivi-activity-detail-author-name:hover,
.vivi-activity-detail-group-link:hover{
	color:var(--vivi-color-orange);
}
.vivi-activity-detail-author-separator,
.vivi-activity-detail-time{
	flex:0 0 auto;
	margin:0;
	color:var(--vivi-color-text-light);
	font-size:var(--vivi-fs-xs);
	font-weight:var(--vivi-fw-regular);
	letter-spacing:0;
	line-height:var(--vivi-lh-compact);
}
.vivi-activity-detail-group-link{
	flex:0 1 auto;
	min-width:0;
	overflow:hidden;
	color:var(--vivi-color-text-muted);
	font-weight:var(--vivi-fw-label);
	text-overflow:ellipsis;
	white-space:nowrap;
}
.vivi-activity-detail-body{
	padding:0 var(--vivi-space-md) var(--vivi-space-sm);
}
.vivi-activity-detail-title{
	margin:0 0 var(--vivi-space-xs);
	color:var(--vivi-color-heading);
	font-size:var(--vivi-fs-h3);
	font-weight:var(--vivi-fw-heading);
	line-height:1.42;
	letter-spacing:0;
}
.vivi-activity-detail-content{
	color:var(--vivi-color-text);
	font-size:var(--vivi-fs-body);
	font-weight:var(--vivi-fw-regular);
	line-height:var(--vivi-lh-body);
	overflow-wrap:anywhere;
	word-break:break-word;
}
.vivi-activity-detail-text{
	position:relative;
}
.vivi-activity-detail-text:not(.is-expanded):not(.is-measuring) .vivi-activity-detail-content{
	max-height:var(--vivi-feed-collapsed-height, 8.4em);
	overflow:hidden;
}
.vivi-activity-detail-text.is-measuring .vivi-activity-detail-content,
.vivi-activity-detail-text.is-expanded .vivi-activity-detail-content{
	max-height:none;
	overflow:visible;
}
.vivi-activity-detail-expand{
	display:none;
	margin:20px 0 0;
	padding:0;
	border:0;
	border-bottom:1px solid currentColor;
	border-radius:0 !important;
	background:transparent;
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-small);
	font-weight:var(--vivi-fw-bold);
	line-height:1.4;
}
.vivi-activity-detail-expand:hover{
	color:var(--vivi-color-orange);
}
.vivi-activity-detail-text.is-collapsible .vivi-activity-detail-expand{
	display:flex;
	width:max-content;
}
.vivi-activity-detail-body.has-vivi-feed-expand{
	padding-bottom:20px;
}
.vivi-activity-detail-content > :first-child{
	margin-top:0;
}
.vivi-activity-detail-content > :last-child{
	margin-bottom:0;
}
.vivi-activity-detail-content p{
	margin:0 0 .9em;
	white-space:normal;
}
.vivi-activity-detail-content ul,
.vivi-activity-detail-content ol{
	margin:.8em 0;
	padding-left:1.5em;
}
.vivi-activity-detail-content blockquote{
	margin:.9em 0;
	padding-left:var(--vivi-space-sm);
	border-left:3px solid var(--vivi-color-border-strong);
	color:var(--vivi-color-text-muted);
}
.vivi-activity-detail-content img,
.vivi-activity-detail-content video{
	max-width:100%;
	height:auto;
	border-radius:var(--vivi-radius, 8px);
}
.vivi-activity-detail-video{
	position:relative;
	overflow:hidden;
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-detail-foot{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	gap:0;
	margin:0;
	padding:var(--vivi-space-xs) var(--vivi-space-md) var(--vivi-space-sm);
	border:0;
}
.vivi-activity-detail-counts{
	display:flex;
	align-items:center;
	width:100%;
	gap:14px;
	padding-top:var(--vivi-space-xs);
	border-top:1px solid var(--vivi-color-border);
	color:var(--vivi-loop-action-icon-color, var(--vivi-color-text-muted));
	font-size:var(--vivi-fs-xs);
	font-weight:var(--vivi-fw-bold);
	line-height:1.4;
}
.vivi-activity-detail-counts .vivi-loop-action-icon{
	min-height:36px;
}
@media (max-width:767px){
	.vivi-activity-modal-panel{
		width:calc(100vw - 18px);
		max-height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 14px);
		margin:7px auto;
		border-radius:var(--vivi-radius, 8px) !important;
	}
	.vivi-activity-modal-inner{
		max-height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 14px);
		padding:20px 16px 92px;
	}
	.vivi-activity-detail-head{
		padding:var(--vivi-space-md) 48px var(--vivi-space-sm) var(--vivi-space-md);
	}
	.vivi-activity-detail-title{
		font-size:var(--vivi-fs-h3);
	}
	.vivi-activity-detail-foot{
		align-items:center;
		flex-direction:row;
	}
}

/* Activity interaction icons: Loop Item and Popup detail both read vivi-base.css Loop Item Action Icons. */
.vivi-activity-counts .vivi-activity-count,
.vivi-activity-detail-counts .vivi-activity-count{
	appearance:none;
	-webkit-appearance:none;
	border:0;
	background:transparent;
	padding:0;
	margin:0;
	font:inherit;
	color:inherit;
	cursor:pointer;
}
.vivi-activity-count .vivi-bb-icon{
	font-size: var(--vivi-loop-action-icon-size, var(--vivi-fs-h2));
	line-height:1;
}
.vivi-activity-detail-counts .vivi-activity-count .vivi-bb-icon{
	font-size: var(--vivi-loop-action-icon-size, var(--vivi-fs-h2));
	width: var(--vivi-loop-action-icon-size, var(--vivi-fs-h2));
	height: var(--vivi-loop-action-icon-size, var(--vivi-fs-h2));
	min-width: var(--vivi-loop-action-icon-size, var(--vivi-fs-h2));
}
.vivi-activity-like-count.is-liked,
.vivi-activity-like-count.is-liked .vivi-bb-icon,
.vivi-activity-like-count.is-liked .vivi-activity-count-number{
	color:var(--vivi-blue, var(--vivi-color-primary, #996515)) !important;
}
.vivi-activity-count:hover,
.vivi-activity-count:focus-visible{
	color:var(--vivi-blue, var(--vivi-color-primary, #996515));
}
.vivi-activity-count.is-disabled,
.vivi-activity-count:disabled{
	cursor:not-allowed;
	opacity:.45;
}
.vivi-activity-count.is-disabled:hover,
.vivi-activity-count.is-disabled:focus-visible,
.vivi-activity-count:disabled:hover,
.vivi-activity-count:disabled:focus-visible{
	color:inherit;
}
.vivi-activity-count.is-loading{
	pointer-events:none;
	opacity:.64;
}

/* Activity Popup gallery: same media order and edge-to-edge treatment as the Life Feed card. */
.vivi-activity-detail-gallery{
	position:relative;
	width:100%;
	max-width:100%;
	min-width:0;
	margin:0 0 var(--vivi-popup-media-gap-bottom, 18px);
	padding:0;
	box-sizing:border-box;
	border-radius:0;
	background:var(--vivi-popup-media-bg, var(--vivi-color-bg-soft));
	overflow:hidden;
	transition:height 220ms ease;
}
.vivi-activity-detail-gallery-viewport{
	display:flex;
	align-items:flex-start;
	width:100%;
	max-width:100%;
	height:auto;
	max-height:none;
	min-height:0;
	overflow-x:auto;
	overflow-y:hidden;
	scroll-snap-type:x mandatory;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	box-sizing:border-box;
	background:var(--vivi-popup-media-bg, var(--vivi-color-bg-soft));
	transition:transform 320ms ease, height 220ms ease;
}
.vivi-activity-detail-gallery-viewport::-webkit-scrollbar{
	display:none;
}
.vivi-activity-detail-gallery-slide{
	display:flex;
	flex:0 0 100%;
	align-items:center;
	justify-content:center;
	width:100%;
	max-width:100%;
	height:auto;
	max-height:none;
	min-height:0;
	margin:0;
	overflow:hidden;
	border-radius:0;
	scroll-snap-align:center;
	scroll-snap-stop:always;
	box-sizing:border-box;
	background:var(--vivi-popup-media-bg, var(--vivi-color-bg-soft));
}
.vivi-activity-detail-gallery-slide > a{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	min-width:0;
	min-height:0;
	color:inherit;
	text-decoration:none;
	cursor:zoom-in;
}
.vivi-activity-detail-gallery-slide img{
	display:block;
	width:100%;
	max-width:100%;
	min-width:0;
	height:auto;
	max-height:none;
	min-height:0;
	margin:0;
	padding:0;
	border-radius:0;
	object-fit:contain;
	object-position:center center;
	background:var(--vivi-popup-media-bg, var(--vivi-color-bg-soft));
	box-sizing:border-box;
}
.vivi-activity-detail-gallery-slide.is-vivi-detail-cropped img{
	height:100%;
	max-height:100%;
	object-fit:cover;
	object-position:center center;
}
.vivi-activity-gallery-nav{
	position:absolute;
	top:50%;
	z-index:2;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:38px;
	height:38px;
	padding:0;
	border:1px solid rgba(255,255,255,.72);
	border-radius:var(--vivi-radius, 8px);
	background:rgba(255,255,255,.9);
	color:var(--vivi-color-heading);
	box-shadow:0 10px 28px rgba(15,23,42,.16);
	font-size:var(--vivi-fs-h2);
	font-weight:var(--vivi-fw-bold);
	line-height:1;
	cursor:pointer;
	transform:translateY(-50%);
}
.vivi-activity-gallery-prev{
	left:12px;
}
.vivi-activity-gallery-next{
	right:12px;
}
.vivi-activity-gallery-nav:hover,
.vivi-activity-gallery-nav:focus-visible{
	background:var(--vivi-blue, var(--vivi-color-primary, #996515));
	border-color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	color:#fff;
}
.vivi-activity-gallery-dots{
	position:absolute;
	left:50%;
	bottom:12px;
	z-index:2;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	padding:6px 8px;
	border-radius:var(--vivi-radius, 8px);
	background:rgba(255,255,255,.82);
	box-shadow:0 8px 20px rgba(15,23,42,.12);
	transform:translateX(-50%);
}
.vivi-activity-gallery-dot{
	width:7px;
	height:7px;
	padding:0;
	border:0;
	border-radius:var(--vivi-radius, 8px);
	background:rgba(15,23,42,.24);
	cursor:pointer;
}
.vivi-activity-gallery-dot.is-active{
	width:22px;
	background:var(--vivi-blue, var(--vivi-color-primary, #996515));
}
@media (max-width:767px){
	.vivi-activity-detail-gallery-slide,
	.vivi-activity-detail-gallery-slide img{
		max-height:min(68svh, 560px);
	}
	.vivi-activity-gallery-nav{
		width:34px;
		height:34px;
		font-size:var(--vivi-fs-h2);
	}
	.vivi-activity-gallery-prev{
		left:8px;
	}
	.vivi-activity-gallery-next{
		right:8px;
	}
}

/* v242: Keep popup gallery swipeable on touch devices without showing hand/grab cursor. */
.vivi-activity-detail-gallery-viewport{
	cursor:default;
	touch-action:pan-y;
	user-select:none;
	-webkit-user-select:none;
}
.vivi-activity-detail-gallery-viewport img{
	pointer-events:none;
	-webkit-user-drag:none;
}
.vivi-activity-detail-gallery-viewport:active{
	cursor:default;
}
.vivi-activity-detail-gallery-slide,
.vivi-activity-detail-gallery-slide img{
	cursor:default;
}

/* v240: Transform-based gallery loop. Avoid native scroll-snap reset animation. */
.vivi-activity-detail-gallery{
	overflow:hidden;
}
.vivi-activity-detail-gallery-viewport{
	overflow:visible;
	scroll-snap-type:none;
	scroll-behavior:auto;
	will-change:transform;
}
.vivi-activity-detail-gallery-slide{
	scroll-snap-align:none;
}

/* v243: Center gallery arrow glyphs/dots and prevent vertical wheel from changing images. */
.vivi-activity-gallery-nav{
	font-family:Arial, Helvetica, sans-serif;
	font-size: 0;
	line-height:0;
	text-align:center;
}
.vivi-activity-gallery-nav::before{
	display:block;
	font-size: var(--vivi-fs-h2);
	line-height:1;
	width:1em;
	text-align:center;
	transform:translateY(-1px);
}
.vivi-activity-gallery-prev::before{
	content:'\2039';
}
.vivi-activity-gallery-next::before{
	content:'\203A';
}
.vivi-activity-gallery-dots{
	left:50%;
	right:auto;
	display:flex;
	align-items:center;
	justify-content:center;
	line-height:0;
}
.vivi-activity-gallery-dot{
	display:block;
	flex:0 0 auto;
}
@media (max-width: 767px){
	.vivi-activity-gallery-nav::before{
		font-size: var(--vivi-fs-h2);
	}
}

/* v244: YouTube activity support. YouTube content replaces the image/gallery area when present. */
.vivi-story-video-wrap{
	position:relative;
	width:100%;
	background:var(--vivi-color-bg-soft);
	overflow:hidden;
}
.vivi-activity-youtube{
	position:relative;
	width:100%;
	background:var(--vivi-color-bg-soft);
	overflow:hidden;
}
.vivi-activity-youtube::before{
	content:"";
	display:block;
	padding-top:56.25%;
}
.vivi-activity-youtube iframe{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	border:0;
	display:block;
	background:#000;
}
.vivi-activity-youtube-card{
	min-height:190px;
}
.vivi-activity-youtube-card::before{
	padding-top:max(56.25%, 190px);
}
.vivi-activity-youtube-detail{
	margin:0 0 var(--vivi-popup-media-gap-bottom, 18px);
	border-radius:0;
	box-shadow:none;
}
@media (max-width:760px){
	.vivi-activity-youtube-card{
		min-height:0;
	}
	.vivi-activity-youtube-card::before{
		padding-top:56.25%;
	}
	.vivi-activity-youtube-detail{
		border-radius:0;
		margin-bottom:var(--vivi-popup-media-gap-bottom, 18px);
	}
}

/* v250: External link preview fallback for Popup. Loop item still uses preview image only. */
.vivi-activity-link-preview{
	margin:18px 0 20px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:#fff;
	overflow:hidden;
}
.vivi-activity-link-preview .bb-link-preview{
	display:block;
	color:inherit;
	text-decoration:none;
}
.vivi-activity-link-preview-image{
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-link-preview-image img{
	display:block;
	width:100%;
	height:auto;
	max-height:420px;
	object-fit:cover;
}
.vivi-activity-link-preview-content{
	padding:12px 14px 14px;
}
.vivi-activity-link-preview-site{
	margin-bottom:6px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.04em;
	color:var(--vivi-blue, var(--vivi-color-primary));
}
.vivi-activity-link-preview-title{
	font-size: var(--vivi-fs-body);
	font-weight: var(--vivi-fw-bold);
	line-height:1.45;
	color:var(--vivi-color-text);
}
.vivi-activity-link-preview-description{
	margin-top:6px;
	font-size: var(--vivi-fs-small);
	line-height:1.6;
	color:var(--vivi-color-text-muted);
}

/* v253: Popup polish and interaction refinements. */
.vivi-activity-card .vivi-story-meta{
	font-size: var(--vivi-fs-small);
}
.vivi-activity-detail-meta{
	font-size: var(--vivi-fs-small);
	letter-spacing:.06em;
}
.vivi-activity-modal-panel{
	height:calc(100vh - var(--vivi-header-height, 78px) - 32px);
	max-height:none;
}
.admin-bar .vivi-activity-modal-panel{
	height:calc(100vh - var(--vivi-header-height, 78px) - 32px - 32px);
}
.vivi-activity-modal-inner{
	height:100%;
	max-height:none;
	overflow-y:auto;
	overflow-x:hidden;
	scrollbar-width:thin;
	scrollbar-color:rgba(153,101,21,.5) rgba(15,23,42,.06);
}
.vivi-activity-modal-inner::-webkit-scrollbar{
	width:9px;
}
.vivi-activity-modal-inner::-webkit-scrollbar-track{
	background:rgba(15,23,42,.04);
	border-radius:var(--vivi-radius, 8px);
	margin:16px 0;
}
.vivi-activity-modal-inner::-webkit-scrollbar-thumb{
	background:rgba(153,101,21,.5);
	border-radius:var(--vivi-radius, 8px);
	border:2px solid rgba(255,255,255,.78);
}
.vivi-activity-modal-inner::-webkit-scrollbar-thumb:hover{
	background:rgba(153,101,21,.72);
}
.vivi-activity-modal-inner::-webkit-scrollbar-button{
	display:none;
	width:0;
	height:0;
}

.vivi-activity-modal-loading{
	min-height:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:12px;
	padding:48px 18px;
}
.vivi-activity-loading-spinner{
	display:block;
	width:34px;
	height:34px;
	border-radius:var(--vivi-radius, 8px);
	border:3px solid rgba(153,101,21,.18);
	border-top-color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	animation:viviActivitySpin .78s linear infinite;
}
@keyframes viviActivitySpin{
	to{transform:rotate(360deg);}
}
.vivi-activity-detail-foot{
	position:relative;
	z-index:1;
}
.vivi-activity-detail-counts .vivi-activity-count.is-static{
	cursor:default;
}
.vivi-activity-detail-counts .vivi-activity-count.is-static:hover,
.vivi-activity-detail-counts .vivi-activity-count.is-static:focus-visible{
	color:inherit;
}
@media (max-width: 767px){
	.vivi-activity-modal-panel{
		height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 14px);
		max-height:none;
	}
	.admin-bar .vivi-activity-modal-panel{
		height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 14px - 46px);
	}
	.vivi-activity-modal-inner{
		height:100%;
		max-height:none;
	}
}

/* v254: Popup comments and BuddyBoss-style interaction area. */
.vivi-activity-comments{
	margin-top:20px;
	padding-bottom:8px;
}
.vivi-activity-comments-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:14px;
}
.vivi-activity-comments-head h3{
	margin:0;
	font-size: var(--vivi-fs-body-lg);
	line-height:1.35;
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text);
}
.vivi-activity-comments-head span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:28px;
	height:28px;
	padding:0 10px;
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
	color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
}
.vivi-activity-comments-list{
	list-style:none;
	margin:0;
	padding:0;
}
.vivi-activity-comment{
	margin:0 0 14px;
}
.vivi-activity-comment-main{
	display:grid;
	grid-template-columns:36px minmax(0, 1fr);
	gap:10px;
	align-items:flex-start;
}
.vivi-activity-comment-avatar{
	display:block;
	width:36px;
	height:36px;
	border-radius:var(--vivi-radius, 8px);
	overflow:hidden;
	background:var(--vivi-color-bg-soft);
	border:1px solid var(--vivi-color-border);
}
.vivi-activity-comment-avatar img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}
.vivi-activity-comment-body{
	min-width:0;
	padding:10px 12px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:#fff;
}
.vivi-activity-comment-meta{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:8px;
	margin-bottom:4px;
}
.vivi-activity-comment-author{
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1.3;
	color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	text-decoration:none;
}
.vivi-activity-comment-time{
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text-muted);
}
.vivi-activity-comment-content{
	font-size: var(--vivi-fs-small);
	line-height:1.7;
	color:var(--vivi-color-text);
}
.vivi-activity-comment-content p{
	margin:.35em 0;
}
.vivi-activity-comments-empty,
.vivi-activity-comments-note{
	margin:8px 0 14px;
	font-size: var(--vivi-fs-small);
	line-height:1.6;
	color:var(--vivi-color-text-muted);
}
.vivi-activity-comment-form{
	margin-top:16px;
	padding-top:16px;
	border-top:1px solid var(--vivi-color-border);
}
.vivi-activity-comment-form textarea{
	display:block;
	width:100%;
	min-height:86px;
	resize:vertical;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	padding:12px 14px;
	font:inherit;
	font-size: var(--vivi-fs-small);
	line-height:1.6;
	color:var(--vivi-color-text);
	background:#fff;
	outline:none;
}
.vivi-activity-comment-form textarea:focus{
	border-color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	box-shadow:0 0 0 3px rgba(153,101,21,.12);
}
.vivi-activity-comment-form-actions{
	margin-top:10px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}
.vivi-activity-comment-message{
	font-size: var(--vivi-fs-xs);
	color:var(--vivi-color-text-muted);
}
.vivi-activity-comment-form button{
	appearance:none;
	border:0;
	border-radius:var(--vivi-radius, 8px);
	padding:9px 18px;
	background:var(--vivi-blue, var(--vivi-color-primary, #996515));
	color:#fff;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-activity-comment-form.is-loading button{
	opacity:.6;
	pointer-events:none;
}
@media (max-width: 767px){
	.vivi-activity-comment-main{
		grid-template-columns:32px minmax(0, 1fr);
		gap:8px;
	}
	.vivi-activity-comment-avatar{
		width:32px;
		height:32px;
	}
	.vivi-activity-comment-form-actions{
		align-items:flex-start;
		flex-direction:column;
	}
}

/* v255: share action and share modal. */
.vivi-activity-share-count{
	display:inline-flex;
	align-items:center;
	gap:4px;
}

.vivi-activity-share-panel h2{
	margin:0 44px 8px 0;
	font-size: var(--vivi-fs-h3);
	line-height:1.25;
}
.vivi-activity-share-panel p{
	margin:0 0 18px;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-small);
}

.vivi-activity-share-options{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:10px;
	margin-bottom:16px;
}
.vivi-activity-share-option{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
	color:var(--vivi-color-text);
	font-family:inherit;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1.2;
	text-decoration:none;
	cursor:pointer;
	padding:0 16px;
	appearance:none;
	-webkit-appearance:none;
}
.vivi-activity-share-option:hover,
.vivi-activity-share-option:focus-visible{
	border-color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	color:var(--vivi-blue, var(--vivi-color-primary, #996515));
}
.vivi-activity-share-copy{
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto;
	gap:8px;
}
.vivi-activity-share-copy input{
	min-width:0;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	padding:10px 14px;
	font-size: var(--vivi-fs-xs);
	color:var(--vivi-color-text);
	background:#fff;
}
.vivi-activity-share-copy button{
	white-space:nowrap;
}
.vivi-activity-share-note{
	min-height:18px;
	margin-top:10px;
	font-size: var(--vivi-fs-xs);
	color:var(--vivi-color-text-muted);
}
@media (max-width: 520px){
	.vivi-activity-share-options{
		grid-template-columns:1fr;
	}
	.vivi-activity-share-copy{
		grid-template-columns:1fr;
	}
}

/* v262: Popup comment delete only. */
.vivi-activity-comment-actions{
	margin-top: 6px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.vivi-activity-comment-delete{
	appearance: none;
	border: 0;
	background: transparent;
	padding: 0;
	font: inherit;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height: 1.3;
	color: var(--vivi-color-muted, #777);
	cursor: pointer;
}
.vivi-activity-comment-delete:hover,
.vivi-activity-comment-delete:focus-visible{
	color: var(--vivi-color-primary, #996515);
	text-decoration: underline;
	outline: none;
}
.vivi-activity-comment-delete.is-loading,
.vivi-activity-comment-delete:disabled{
	opacity: .55;
	cursor: wait;
}

/* v263: mobile popup bottom safe area; keep modal above shared bottom shortcut nav. */
@media (max-width: 860px){
	body.vivi-lite-activity-page .vivi-activity-modal{
		top:var(--vivi-header-height-mobile, 68px);
		bottom:var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom)));
	}
	body.admin-bar.vivi-lite-activity-page .vivi-activity-modal{
		top:calc(var(--vivi-header-height-mobile, 68px) + 46px);
	}
	body.vivi-lite-activity-page .vivi-activity-modal-panel{
		width:calc(100vw - 18px);
		height:calc(100vh - var(--vivi-header-height-mobile, 68px) - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
		height:calc(100dvh - var(--vivi-header-height-mobile, 68px) - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
		max-height:none;
		margin:7px auto;
		border-radius:var(--vivi-radius, 8px);
	}
	body.admin-bar.vivi-lite-activity-page .vivi-activity-modal-panel{
		height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 46px - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
		height:calc(100dvh - var(--vivi-header-height-mobile, 68px) - 46px - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
	}
	body.vivi-lite-activity-page .vivi-activity-modal-inner{
		height:100%;
		max-height:none;
		padding-bottom:36px;
	}
}

/* VIVI Activity Composer v0.9.282 */
.vivi-activity-composer{
	margin:8px 0 16px;
	padding:16px;
	background:var(--vivi-color-card);
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-activity-compose-form{
	display:grid;
	gap:12px;
}
.vivi-activity-compose-head{
	display:flex;
	align-items:center;
	gap:12px;
}
.vivi-activity-compose-avatar{
	width:44px;
	height:44px;
	flex:0 0 44px;
	overflow:hidden;
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
	border:1px solid var(--vivi-color-border);
}
.vivi-activity-compose-avatar img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}
.vivi-activity-compose-copy{
	display:grid;
	gap:2px;
	min-width:0;
}
.vivi-activity-compose-copy strong,
.vivi-activity-compose-login-note strong{
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-body);
	font-weight: var(--vivi-fw-bold);
	line-height:1.35;
}
.vivi-activity-compose-copy span,
.vivi-activity-compose-login-note span{
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.55;
}
.vivi-activity-compose-field{
	display:grid;
	gap:8px;
}
.vivi-activity-compose-label{
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.35;
}
.vivi-activity-compose-form input[type="text"],
.vivi-activity-compose-form input[type="datetime-local"],
.vivi-activity-compose-form textarea{
	width:100%;
	padding:14px 16px;
	border:1px solid var(--vivi-form-border, var(--vivi-color-border));
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-form-bg, var(--vivi-color-bg));
	color:var(--vivi-form-text, var(--vivi-color-text));
	font-size: var(--vivi-fs-body);
	font-weight: var(--vivi-fw-regular);
	line-height:var(--vivi-lh-body);
	outline:none;
}
.vivi-activity-compose-form textarea{
	min-height:104px;
	resize:vertical;
}
.vivi-activity-compose-form input[type="text"]:focus,
.vivi-activity-compose-form input[type="datetime-local"]:focus,
.vivi-activity-compose-form textarea:focus{
	border-color:var(--vivi-form-border-focus, var(--vivi-color-primary));
	box-shadow:0 0 0 4px var(--vivi-form-focus-ring, rgba(166,112,24,.12));
}

.vivi-group-schedule-field{
	padding:14px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
}
.vivi-group-schedule-toggle{
	display:flex;
	align-items:flex-start;
	gap:10px;
	cursor:pointer;
}
.vivi-group-schedule-toggle input{
	flex:0 0 auto;
	width:18px;
	height:18px;
	margin-top:3px;
	accent-color:var(--vivi-color-primary);
}
.vivi-group-schedule-toggle span{
	display:grid;
	gap:3px;
	min-width:0;
}
.vivi-group-schedule-toggle strong{
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1.35;
}
.vivi-group-schedule-toggle em,
.vivi-group-schedule-note{
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-style:normal;
	font-weight: var(--vivi-fw-bold);
	line-height:1.45;
}
.vivi-group-schedule-controls{
	display:grid;
	gap:8px;
	margin-top:12px;
}
.vivi-group-schedule-controls[hidden]{
	display:none;
}

.vivi-activity-image-upload{
	appearance:none;
	-webkit-appearance:none;
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	width:100%;
	margin:0;
	padding:14px 16px;
	border:1px dashed var(--vivi-form-border, var(--vivi-color-border));
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
	color:inherit;
	font:inherit;
	text-align:left;
	touch-action:manipulation;
	cursor:pointer;
	transition:border-color .18s ease, background .18s ease;
}
.vivi-activity-image-upload:hover{
	border-color:var(--vivi-color-primary);
	background:rgba(166,112,24,.06);
}

.vivi-activity-compose-image-field.is-disabled .vivi-activity-image-upload{
	cursor:not-allowed;
	opacity:.68;
}
.vivi-activity-compose-image-field.is-disabled .vivi-activity-image-upload:hover{
	border-color:var(--vivi-form-border, var(--vivi-color-border));
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-file-input{
	position:fixed !important;
	top:0 !important;
	left:-10000px !important;
	width:1px !important;
	height:1px !important;
	margin:0 !important;
	padding:0 !important;
	overflow:hidden !important;
	border:0 !important;
	opacity:0 !important;
	clip-path:inset(50%) !important;
	pointer-events:none !important;
}
.vivi-activity-image-upload-main{
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
}
.vivi-activity-image-upload-note{
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	text-align:right;
}
.vivi-activity-image-preview{
	display:none;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:10px;
}
.vivi-activity-image-preview.has-items{
	display:grid;
}
.vivi-activity-image-preview-item{
	position:relative;
	overflow:hidden;
	aspect-ratio:1/1;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-image-preview-item img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}
.vivi-activity-image-preview-remove{
	position:absolute;
	top:6px;
	right:6px;
	width:26px;
	height:26px;
	border:0;
	border-radius:var(--vivi-radius, 8px);
	background:rgba(0,0,0,.72);
	color:#fff;
	font-size: var(--vivi-fs-body-lg);
	font-weight: var(--vivi-fw-bold);
	line-height:26px;
	cursor:pointer;
}
.vivi-activity-image-preview-meta{
	position:absolute;
	left:6px;
	bottom:6px;
	padding:3px 7px;
	border-radius:var(--vivi-radius, 8px);
	background:rgba(0,0,0,.66);
	color:#fff;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.25;
}
.vivi-activity-compose-actions{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:12px;
}
.vivi-activity-compose-message{
	min-height:1.45em;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
}
.vivi-activity-compose-actions button{
	min-height:42px;
	padding:0 18px;
	border:1px solid var(--vivi-color-primary);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-primary);
	color:var(--vivi-color-text-inverse);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
	transition:opacity .18s ease, transform .18s ease;
}
.vivi-activity-compose-actions button:hover{
	transform:translateY(-1px);
}
.vivi-activity-compose-form.is-loading .vivi-activity-compose-actions button{
	opacity:.55;
	pointer-events:none;
}
.vivi-activity-compose-login-note{
	display:grid;
	gap:4px;
}
.vivi-activity-compose-login-btn{
	justify-self:start;
	margin-top:10px;
}
.vivi-activity-card.is-newly-posted{
	animation:viviActivityNewPost 1.2s ease;
}
@keyframes viviActivityNewPost{
	0%{transform:translateY(-8px);box-shadow:0 18px 46px rgba(166,112,24,.18);}
	100%{transform:translateY(0);box-shadow:var(--vivi-shadow-soft);}
}

@media (max-width: 767px){
	.vivi-activity-composer{
		margin:6px 0 14px;
		padding:14px;
		border-radius:var(--vivi-radius, 8px);
	}
	.vivi-activity-compose-actions{
		align-items:stretch;
		flex-direction:column;
	}
	.vivi-activity-compose-actions button{
		width:100%;
	}

	.vivi-activity-image-upload{
		align-items:flex-start;
		flex-direction:column;
	}
	.vivi-activity-image-upload-note{
		text-align:left;
	}
	.vivi-activity-image-preview{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}
}

/* v279: VIVI Lite Pages lightweight BuddyBoss moderation report popup. */
/* v280: Disable activity like buttons for logged-out visitors. */
.vivi-activity-report-action.is-reported{
	color:var(--vivi-color-text-muted);
	cursor:default;
}

.admin-bar

.admin-bar
.vivi-activity-report-panel h2{
	margin:0 44px 6px 0;
	font-size: var(--vivi-fs-h3);
	line-height:1.25;
	color:var(--vivi-color-heading);
}
.vivi-activity-report-panel p{
	margin:0 0 12px;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	line-height:1.55;
}
.vivi-activity-report-form{
	display:flex;
	flex-direction:column;
	min-height:0;
}

.vivi-activity-report-options{
	display:grid;
	gap:8px;
	max-height:min(330px, 39vh);
	overflow:auto;
	overscroll-behavior:contain;
	-webkit-overflow-scrolling:touch;
	padding-right:4px;
	margin-bottom:12px;
}
.vivi-activity-report-options::-webkit-scrollbar{
	width:6px;
}
.vivi-activity-report-options::-webkit-scrollbar-thumb{
	border-radius:var(--vivi-radius, 8px);
	background:rgba(15,23,42,.18);
}
.vivi-activity-report-option{
	display:flex;
	gap:10px;
	align-items:flex-start;
	padding:10px 12px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
	cursor:pointer;
}
.vivi-activity-report-option input{
	margin-top:3px;
}
.vivi-activity-report-option span{
	display:grid;
	gap:2px;
	font-size: var(--vivi-fs-small);
	line-height:1.4;
	color:var(--vivi-color-text);
}
.vivi-activity-report-option strong{
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-heading);
}
.vivi-activity-report-option em{
	font-style:normal;
	font-size: var(--vivi-fs-xs);
	color:var(--vivi-color-text-muted);
}
.vivi-activity-report-note-label{
	display:block;
	margin:4px 0 8px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-heading);
}
.vivi-activity-report-form textarea{
	width:100%;
	min-height:86px;
	max-height:150px;
	resize:vertical;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	padding:12px 14px;
	font:inherit;
	font-size: var(--vivi-fs-small);
	color:var(--vivi-color-text);
	background:#fff;
	box-sizing:border-box;
}
.vivi-activity-report-message{
	min-height:18px;
	margin-top:8px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text-muted);
}
.vivi-activity-report-message.is-error{
	color:#b91c1c;
}
.vivi-activity-report-message.is-success{
	color:var(--vivi-blue, var(--vivi-color-primary, #996515));
}
.vivi-activity-report-actions{
	display:flex;
	justify-content:flex-end;
	gap:10px;
	margin-top:12px;
	padding-top:2px;
	background:#fff;
}
.vivi-activity-report-actions button{
	min-height:42px;
	border-radius:var(--vivi-radius, 8px);
	padding:10px 18px;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-activity-report-cancel{
	border:1px solid var(--vivi-color-border);
	background:#fff;
	color:var(--vivi-color-text);
	font-family:inherit;
	touch-action:manipulation;
}
.vivi-activity-report-submit{
	border:0;
	background:var(--vivi-blue, var(--vivi-color-primary, #996515));
	color:#fff;
}
.vivi-activity-report-submit:disabled{
	opacity:.55;
	cursor:wait;
}
@media (max-width: 860px){
	body.vivi-lite-activity-page
	body.admin-bar.vivi-lite-activity-page
	body.vivi-lite-activity-page
	body.admin-bar.vivi-lite-activity-page
	.vivi-activity-report-panel h2{
		font-size: var(--vivi-fs-body-lg);
	}
	.vivi-activity-report-panel p{
		margin-bottom:10px;
		font-size: var(--vivi-fs-xs);
	}

	.vivi-activity-report-options{
		gap:8px;
		max-height:32vh;
		margin-bottom:10px;
	}
	.vivi-activity-report-option{
		padding:9px 10px;
		border-radius:var(--vivi-radius, 8px);
	}
	.vivi-activity-report-option span{
		font-size: var(--vivi-fs-xs);
	}
	.vivi-activity-report-form textarea{
		min-height:78px;
	}
	.vivi-activity-report-actions{
		flex-direction:column-reverse;
		gap:8px;
		margin-top:10px;
	}
	.vivi-activity-report-actions button{
		width:100%;
	}
}
@media (max-width: 360px){
	.vivi-activity-report-option em{
		display:none;
	}
}

/* v289: lightweight activity edit modal. Basic title/content edit only. */
.vivi-activity-edit-action{
	font-weight: var(--vivi-fw-bold);
}

.vivi-activity-edit-panel h2{
	margin:0 44px 6px 0;
	font-size: var(--vivi-fs-h3);
	line-height:1.25;
	color:var(--vivi-color-heading);
}
.vivi-activity-edit-panel p{
	margin:0 0 14px;
	font-size: var(--vivi-fs-xs);
	line-height:1.55;
	color:var(--vivi-color-text-muted);
}

.vivi-activity-edit-form{
	display:grid;
	gap:14px;
}
.vivi-activity-edit-field{
	display:grid;
	gap:8px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-heading);
}
.vivi-activity-edit-field input,
.vivi-activity-edit-field textarea{
	width:100%;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	padding:12px 14px;
	font:inherit;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1.6;
	color:var(--vivi-color-text);
	background:#fff;
	box-sizing:border-box;
}
.vivi-activity-edit-field textarea{
	min-height:150px;
	resize:vertical;
}
.vivi-activity-edit-field input:focus,
.vivi-activity-edit-field textarea:focus{
	outline:none;
	border-color:var(--vivi-blue, var(--vivi-color-primary, #996515));
	box-shadow:0 0 0 3px rgba(153,101,21,.12);
}
.vivi-activity-edit-message{
	min-height:18px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text-muted);
}
.vivi-activity-edit-message.is-error{
	color:#b91c1c;
}
.vivi-activity-edit-message.is-success{
	color:var(--vivi-blue, var(--vivi-color-primary, #996515));
}
.vivi-activity-edit-actions{
	display:flex;
	justify-content:flex-end;
	gap:10px;
	padding-top:2px;
	background:#fff;
}
.vivi-activity-edit-actions button{
	min-height:42px;
	border-radius:var(--vivi-radius, 8px);
	padding:10px 18px;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-activity-edit-cancel{
	border:1px solid var(--vivi-color-border);
	background:#fff;
	color:var(--vivi-color-text);
}
.vivi-activity-edit-submit{
	border:0;
	background:var(--vivi-blue, var(--vivi-color-primary, #996515));
	color:#fff;
}
.vivi-activity-edit-submit:disabled,
.vivi-activity-edit-form.is-loading .vivi-activity-edit-submit{
	opacity:.55;
	cursor:wait;
}
@media (max-width: 860px){

	.vivi-activity-edit-panel h2{
		font-size: var(--vivi-fs-body-lg);
	}
	.vivi-activity-edit-panel p{
		font-size: var(--vivi-fs-xs);
	}

	.vivi-activity-edit-field textarea{
		min-height:128px;
	}
	.vivi-activity-edit-actions{
		flex-direction:column-reverse;
		gap:8px;
	}
	.vivi-activity-edit-actions button{
		width:100%;
	}
}

/* v294: edit activity media management. Existing images are only deleted after saving. */
.vivi-activity-edit-media{
	border:1px solid rgba(17,24,39,.1);
	border-radius:var(--vivi-radius, 8px);
	padding:14px;
	background:rgba(248,250,252,.78);
}
.vivi-activity-edit-media-head{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
	margin-bottom:12px;
}
.vivi-activity-edit-media-head strong{
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text);
}
.vivi-activity-edit-media-head span{
	font-size: var(--vivi-fs-xs);
	color:var(--vivi-color-muted);
	text-align:right;
	line-height:1.45;
}
.vivi-activity-edit-media-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:10px;
	margin-bottom:12px;
}
.vivi-activity-edit-current-images,
.vivi-activity-edit-media .vivi-activity-image-preview{
	display:contents;
}
.vivi-activity-edit-current-images:not(.has-items){
	display:block;
	grid-column:1/-1;
}
.vivi-activity-edit-media .vivi-activity-image-preview:not(.has-items){
	display:none;
}
.vivi-activity-edit-media .vivi-activity-image-preview.has-items{
	display:contents;
}
.vivi-activity-edit-media-empty{
	font-size: var(--vivi-fs-xs);
	color:var(--vivi-color-muted);
	padding:12px;
	border:1px dashed rgba(17,24,39,.16);
	border-radius:var(--vivi-radius, 8px);
	background:#fff;
}
.vivi-activity-edit-media-item{
	position:relative;
	border-radius:var(--vivi-radius, 8px);
	overflow:hidden;
	background:#fff;
	border:1px solid rgba(17,24,39,.1);
	min-height:96px;
}
.vivi-activity-edit-media-item img{
	display:block;
	width:100%;
	aspect-ratio:1/1;
	height:auto;
	object-fit:cover;
}
.vivi-activity-edit-media-item.is-marked-remove img{
	filter:grayscale(1);
	opacity:.42;
}
.vivi-activity-edit-media-remove{
	position:absolute;
	top:7px;
	right:7px;
	border:0;
	border-radius:var(--vivi-radius, 8px);
	background:rgba(0,0,0,.68);
	color:#fff;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	padding:6px 9px;
	cursor:pointer;
}
.vivi-activity-edit-media-item.is-marked-remove .vivi-activity-edit-media-remove{
	background:var(--vivi-color-accent);
}
.vivi-activity-edit-media-badge{
	position:absolute;
	left:7px;
	bottom:7px;
	border-radius:var(--vivi-radius, 8px);
	background:rgba(255,255,255,.92);
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	padding:5px 8px;
	box-shadow:0 6px 16px rgba(15,23,42,.14);
}
.vivi-activity-edit-image-picker{
	appearance:none;
	-webkit-appearance:none;
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	width:100%;
	min-height:46px;
	margin:0;
	padding:0 14px;
	border:1px dashed rgba(17,24,39,.18);
	border-radius:var(--vivi-radius, 8px);
	background:#fff;
	color:var(--vivi-color-text);
	font-family:inherit;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1.2;
	touch-action:manipulation;
	cursor:pointer;
}
.vivi-activity-edit-media .vivi-activity-image-preview{
	margin-top:0;
}
@media (max-width: 767px){
	.vivi-activity-edit-media{
		padding:12px;
		border-radius:var(--vivi-radius, 8px);
	}
	.vivi-activity-edit-media-head{
		flex-direction:column;
		align-items:flex-start;
		gap:4px;
	}
	.vivi-activity-edit-media-head span{
		text-align:left;
	}
	.vivi-activity-edit-media-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

/* v303: edit media order follows BuddyBoss menu_order. */
.vivi-activity-edit-media-item{
	cursor:grab;
}
.vivi-activity-edit-media-item.is-dragging{
	opacity:.58;
	cursor:grabbing;
}
.vivi-activity-edit-media-item.is-drop-target{
	outline:2px solid var(--vivi-color-accent);
	outline-offset:2px;
}
.vivi-activity-edit-media-item.is-new-upload .vivi-activity-edit-media-badge{
	background:rgba(166,116,24,.94);
	color:#fff;
}

.vivi-activity-edit-media-item .vivi-activity-image-preview-remove{
	position:absolute;
	top:7px;
	right:7px;
}
@media (max-width: 767px){
	.vivi-activity-edit-media-item{
		cursor:default;
	}

}



/* =========================================================
   v311: Desktop design-token alignment for VIVI Activity page.
   Scope: desktop visual cleanup only. No BuddyBoss / AJAX / media logic.
   Purpose: keep activity page styling driven by vivi-base.css tokens.
========================================================= */
body.vivi-lite-activity-page{
	--vivi-activity-surface:var(--vivi-color-card);
	--vivi-activity-surface-soft:var(--vivi-color-bg-soft);
	--vivi-activity-border:var(--vivi-color-border);
	--vivi-activity-border-strong:var(--vivi-color-border-strong, var(--vivi-color-border));
	--vivi-activity-primary:var(--vivi-color-primary);
	--vivi-activity-radius-card: var(--vivi-radius, 8px);
	--vivi-activity-radius-panel: var(--vivi-radius, 8px);
	--vivi-activity-radius-control: var(--vivi-radius, 8px);
	--vivi-activity-shadow:var(--vivi-shadow-soft);
	--vivi-activity-shadow-panel:var(--vivi-shadow-card);
	--vivi-activity-space-xs:var(--vivi-space-xs);
	--vivi-activity-space-sm:var(--vivi-space-sm);
	--vivi-activity-space-md:var(--vivi-space-md);
	--vivi-activity-space-lg:var(--vivi-space-lg);
	--vivi-activity-control-height:var(--vivi-btn-height);
}

@media (min-width:768px){
	body.vivi-lite-activity-page{
		font-family:var(--vivi-font-body);
		font-size: var(--vivi-fs-body);
		line-height:var(--vivi-lh-body);
		background:var(--vivi-color-bg);
		color:var(--vivi-color-text);
	}

	body.vivi-lite-activity-page .vivi-activity-main{
		width:min(100% - 20px, var(--vivi-container));
		padding:var(--vivi-page-main-padding-top) 0 var(--vivi-page-main-padding-bottom);
	}

	body.vivi-lite-activity-page .vivi-activity-modal-title,
body.vivi-lite-activity-page .vivi-activity-edit-panel h2,
body.vivi-lite-activity-page .vivi-activity-report-panel h2{
		font-family:var(--vivi-font-heading);
		font-weight: var(--vivi-fw-bold);
		line-height:var(--vivi-lh-heading);
		color:var(--vivi-color-heading);
	}

	body.vivi-lite-activity-page .vivi-activity-toolbar,
body.vivi-lite-activity-page .vivi-activity-composer,
body.vivi-lite-activity-page .vivi-activity-card.vivi-story-card{
		background:var(--vivi-activity-surface);
		border:1px solid var(--vivi-activity-border);
		border-radius:var(--vivi-radius, 8px);
		box-shadow:var(--vivi-activity-shadow);
	}

	body.vivi-lite-activity-page .vivi-activity-toolbar,
body.vivi-lite-activity-page .vivi-activity-composer{
		padding:var(--vivi-activity-space-md);
	}

	body.vivi-lite-activity-page .vivi-activity-feed{
		gap:var(--vivi-activity-space-lg);
	}

	body.vivi-lite-activity-page .vivi-activity-card .vivi-activity-card-body{
		padding:var(--vivi-activity-space-md);
	}

	body.vivi-lite-activity-page .vivi-activity-card h3{
		font-family:var(--vivi-font-heading);
		font-size: var(--vivi-fs-h3);
		font-weight: var(--vivi-fw-bold);
		line-height:var(--vivi-lh-compact);
		color:var(--vivi-color-heading);
	}

	body.vivi-lite-activity-page .vivi-activity-search-field input,
body.vivi-lite-activity-page .vivi-activity-compose-form input[type="text"],
body.vivi-lite-activity-page .vivi-activity-compose-form textarea,
body.vivi-lite-activity-page .vivi-activity-edit-field input,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea,
body.vivi-lite-activity-page .vivi-activity-report-form textarea,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea{
		background:var(--vivi-form-bg, var(--vivi-activity-surface));
		color:var(--vivi-form-text, var(--vivi-color-text));
		border:1px solid var(--vivi-form-border, var(--vivi-activity-border));
		border-radius:var(--vivi-radius, 8px);
		font-family:var(--vivi-font-body);
		font-size: var(--vivi-fs-body);
		font-weight: var(--vivi-fw-regular);
		line-height:var(--vivi-lh-body);
	}

	body.vivi-lite-activity-page .vivi-activity-search-field input{
		min-height:var(--vivi-activity-control-height);
		border-radius:var(--vivi-radius, 8px);
	}


		body.vivi-lite-activity-page .vivi-activity-load-more,
body.vivi-lite-activity-page .vivi-activity-compose-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-actions button,
body.vivi-lite-activity-page .vivi-activity-report-actions button,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button{
		min-height:var(--vivi-activity-control-height);
		border-radius:var(--vivi-radius, 8px);
		font-family:var(--vivi-font-body);
		font-size: var(--vivi-fs-button);
		font-weight: var(--vivi-fw-bold);
		line-height:var(--vivi-lh-compact);
	}

	body.vivi-lite-activity-page .vivi-activity-load-more,
body.vivi-lite-activity-page .vivi-activity-compose-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-submit,
body.vivi-lite-activity-page .vivi-activity-report-submit,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button{
		border-color:var(--vivi-activity-primary);
		background:var(--vivi-activity-primary);
		color:var(--vivi-color-text-inverse);
	}

	body.vivi-lite-activity-page .vivi-activity-edit-cancel,
body.vivi-lite-activity-page .vivi-activity-report-cancel{
		border-color:var(--vivi-activity-border) !important;
		background:var(--vivi-activity-surface) !important;
		color:var(--vivi-color-text) !important;
	}

	body.vivi-lite-activity-page .vivi-activity-more-menu{
		background:var(--vivi-activity-surface);
		border:1px solid var(--vivi-activity-border);
		border-radius:var(--vivi-radius, 8px);
		box-shadow:var(--vivi-activity-shadow-panel);
	}

	body.vivi-lite-activity-page .vivi-activity-more-toggle,
body.vivi-lite-activity-page .vivi-activity-image-upload,
body.vivi-lite-activity-page .vivi-activity-edit-media,
body.vivi-lite-activity-page .vivi-activity-report-option{
		background:var(--vivi-activity-surface-soft);
		border-color:var(--vivi-activity-border);
		border-radius:var(--vivi-radius, 8px);
	}

	body.vivi-lite-activity-page .vivi-activity-image-upload:hover{
		background:color-mix(in srgb, var(--vivi-activity-primary) 6%, var(--vivi-activity-surface));
		border-color:var(--vivi-activity-primary);
	}

	body.vivi-lite-activity-page .vivi-activity-image-preview-item,
body.vivi-lite-activity-page .vivi-activity-edit-media-item,
body.vivi-lite-activity-page .vivi-activity-edit-image-picker,
body.vivi-lite-activity-page .vivi-activity-edit-media-empty{
		background:var(--vivi-activity-surface);
		border-color:var(--vivi-activity-border);
		border-radius:var(--vivi-radius, 8px);
	}
}

/* =========================================================
   v312: Strict desktop alignment with vivi-base.css controls.
   Fixes v311 local activity tokens that still made buttons / inputs look inconsistent.
   Scope: desktop visual tokens only. No PHP / AJAX / media logic.
========================================================= */
body.vivi-lite-activity-page{
	--vivi-activity-radius-card: var(--vivi-radius, 8px);
	--vivi-activity-radius-control: var(--vivi-radius, 8px);
	--vivi-activity-control-height:var(--vivi-btn-height);
}

@media (min-width:768px){
	body.vivi-lite-activity-page .vivi-activity-toolbar,
body.vivi-lite-activity-page .vivi-activity-composer,
body.vivi-lite-activity-page .vivi-activity-card.vivi-story-card{
		border-radius:var(--vivi-radius, 8px);
	}

	body.vivi-lite-activity-page .vivi-activity-search-field input,
body.vivi-lite-activity-page .vivi-activity-compose-form input[type="text"],
body.vivi-lite-activity-page .vivi-activity-compose-form textarea,
body.vivi-lite-activity-page .vivi-activity-edit-field input,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea,
body.vivi-lite-activity-page .vivi-activity-report-form textarea,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea{
		min-height:44px;
		padding-inline:14px;
		border-radius:var(--vivi-radius, 8px);
		background:var(--vivi-form-bg);
		color:var(--vivi-form-text);
		border-color:var(--vivi-form-border);
		font-size: var(--vivi-fs-body);
		font-weight: var(--vivi-fw-regular);
		line-height:var(--vivi-lh-body);
	}

	body.vivi-lite-activity-page .vivi-activity-compose-form textarea,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea,
body.vivi-lite-activity-page .vivi-activity-report-form textarea,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea{
		padding-block:12px;
	}


	body.vivi-lite-activity-page .vivi-activity-search-field input:focus,
body.vivi-lite-activity-page .vivi-activity-compose-form input[type="text"]:focus,
body.vivi-lite-activity-page .vivi-activity-compose-form textarea:focus,
body.vivi-lite-activity-page .vivi-activity-edit-field input:focus,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea:focus,
body.vivi-lite-activity-page .vivi-activity-report-form textarea:focus,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea:focus{
		border-color:var(--vivi-form-border-focus);
		box-shadow:0 0 0 4px var(--vivi-form-focus-ring);
	}

	body.vivi-lite-activity-page .vivi-activity-load-more,
body.vivi-lite-activity-page .vivi-activity-compose-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-actions button,
body.vivi-lite-activity-page .vivi-activity-report-actions button,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button{
		display:inline-flex;
		align-items:center;
		justify-content:center;
		gap:var(--vivi-space-xs);
		min-height:var(--vivi-btn-height);
		padding:0 var(--vivi-btn-padding-x);
		border-radius:var(--vivi-radius, 8px);
		font-family:var(--vivi-font-body);
		font-size: var(--vivi-fs-button);
		font-weight: var(--vivi-fw-bold);
		line-height:1;
		white-space:nowrap;
		transition:transform var(--vivi-transition), opacity var(--vivi-transition), background-color var(--vivi-transition), color var(--vivi-transition), border-color var(--vivi-transition);
	}

	body.vivi-lite-activity-page .vivi-activity-load-more,
body.vivi-lite-activity-page .vivi-activity-compose-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-submit,
body.vivi-lite-activity-page .vivi-activity-report-submit,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button{
		background:var(--vivi-color-red);
		border-color:var(--vivi-color-red);
		color:var(--vivi-color-text-inverse);
	}

	body.vivi-lite-activity-page .vivi-activity-load-more:hover,
body.vivi-lite-activity-page .vivi-activity-compose-actions button:hover,
body.vivi-lite-activity-page .vivi-activity-edit-submit:hover,
body.vivi-lite-activity-page .vivi-activity-report-submit:hover,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button:hover{
		transform:translateY(-1px);
		opacity:.92;
	}

	body.vivi-lite-activity-page .vivi-activity-edit-cancel,
body.vivi-lite-activity-page .vivi-activity-report-cancel{
		background:color-mix(in srgb, var(--vivi-color-card) 62%, transparent) !important;
		border-color:var(--vivi-color-black) !important;
		color:var(--vivi-color-black) !important;
	}

	body.vivi-lite-activity-page .vivi-activity-image-upload,
body.vivi-lite-activity-page .vivi-activity-edit-media,
body.vivi-lite-activity-page .vivi-activity-edit-image-picker,
body.vivi-lite-activity-page .vivi-activity-edit-media-empty,
body.vivi-lite-activity-page .vivi-activity-report-option{
		border-radius:var(--vivi-radius, 8px);
	}

}

/* v316: write activity entry below filter, full-width button + compose popup */
.vivi-activity-write-entry{
	width:min(100% - 20px, var(--vivi-container));
	margin:12px auto 22px;
	display:flex;
	justify-content:stretch;
	align-items:center;
}
.vivi-activity-write-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:100%;
	min-height:var(--vivi-btn-height, 44px);
	padding:0 var(--vivi-btn-padding-x, 20px);
	border:1px solid var(--vivi-color-primary);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-primary);
	color:var(--vivi-color-text-inverse, #fff);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1;
	cursor:pointer;
	box-shadow:var(--vivi-shadow-soft);
	transition:opacity .18s ease, transform .18s ease, box-shadow .18s ease;
}
.vivi-activity-write-button:hover{
	transform:translateY(-1px);
	box-shadow:var(--vivi-shadow-card, var(--vivi-shadow-soft));
}
.vivi-activity-compose-modal{
	position:fixed;
	top:var(--vivi-header-height, 76px);
	right:0;
	bottom:0;
	left:0;
	z-index:99997;
	display:none;
	align-items:flex-start;
	justify-content:center;
	padding:18px 24px 24px;
	box-sizing:border-box;
}
.admin-bar .vivi-activity-compose-modal{
	top:calc(var(--vivi-header-height, 76px) + 32px);
}
.vivi-activity-compose-modal.is-open{
	display:flex;
}
.vivi-activity-compose-backdrop{
	position:absolute;
	inset:0;
	background:rgba(17,24,39,.52);
	backdrop-filter:blur(8px);
}
.vivi-activity-compose-panel{
	position:relative;
	z-index:1;
	width:min(760px, calc(100vw - 20px));
	max-height:calc(100vh - var(--vivi-header-height, 76px) - 54px);
	max-height:calc(100dvh - var(--vivi-header-height, 76px) - 54px);
	overflow:auto;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-card, #fff);
	box-shadow:0 24px 70px rgba(15,23,42,.28);
	padding:22px;
	box-sizing:border-box;
}
.admin-bar .vivi-activity-compose-panel{
	max-height:calc(100vh - var(--vivi-header-height, 76px) - 32px - 54px);
	max-height:calc(100dvh - var(--vivi-header-height, 76px) - 32px - 54px);
}
.vivi-activity-compose-modal-title{
	margin:0 44px 14px 0;
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-h3);
	font-weight: var(--vivi-fw-bold);
	line-height:1.25;
}

.vivi-activity-compose-modal .vivi-activity-composer{
	margin:0;
	padding:0;
	border:0;
	border-radius:0;
	box-shadow:none;
	background:transparent;
}
.vivi-activity-compose-panel::-webkit-scrollbar{
	width:8px;
}
.vivi-activity-compose-panel::-webkit-scrollbar-track{
	background:transparent;
	margin:18px 0;
}
.vivi-activity-compose-panel::-webkit-scrollbar-thumb{
	border-radius:var(--vivi-radius, 8px);
	background:rgba(153,101,21,.42);
}
.vivi-activity-compose-panel::-webkit-scrollbar-button,
.vivi-activity-compose-panel::-webkit-scrollbar-button:single-button,
.vivi-activity-compose-panel::-webkit-scrollbar-button:vertical,
.vivi-activity-compose-panel::-webkit-scrollbar-button:vertical:start,
.vivi-activity-compose-panel::-webkit-scrollbar-button:vertical:end,
.vivi-activity-compose-panel::-webkit-scrollbar-button:vertical:start:decrement,
.vivi-activity-compose-panel::-webkit-scrollbar-button:vertical:end:increment{
	display:none!important;
	width:0!important;
	height:0!important;
}

@media (max-width: 767px){
	.vivi-activity-write-entry{
		width:min(100% - 20px, var(--vivi-container));
		margin-bottom:14px;
	}
	.vivi-activity-write-button{
		width:100%;
	}
	.vivi-activity-compose-modal{
		padding:var(--vivi-mobile-padding-x, 10px) var(--vivi-mobile-padding-x, 10px) var(--vivi-mobile-page-main-padding-bottom);
	}
	.vivi-activity-compose-panel{
		width:min(var(--vivi-popup-width, 760px), calc(100vw - 20px));
		max-height:calc(100dvh - var(--vivi-header-height, 76px) - 112px);
		border-radius:var(--vivi-radius, 8px);
		padding:18px 16px;
	}
	.vivi-activity-compose-modal-title{
		font-size: var(--vivi-fs-h3);
	}
}

/* v317: align write entry with activity blocks and add BuddyBoss Article icon */
.vivi-activity-write-entry{
	width:100%;
	max-width:none;
	margin:12px 0 22px;
}
.vivi-activity-write-button{
	gap:8px;
}
.vivi-activity-write-button .bb-icon-article{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size: 1.1em;
	line-height:1;
	margin:0;
}
.vivi-activity-write-button .bb-icon-article:before{
	margin:0;
	width:1em;
}
@media (max-width: 767px){
	.vivi-activity-write-entry{
		width:100%;
		margin:10px 0 16px;
	}
}

/* v326: Activity archive fine tune - load status follows brand archive style without touching brand archive files. */
body.vivi-lite-activity-page .vivi-activity-load-wrap{
	display:block;
	max-width:850px;
	margin:24px auto 0;
	padding:0;
	text-align:center;
}
body.vivi-lite-activity-page .vivi-activity-load-more,
body.vivi-lite-activity-page .vivi-activity-load-complete{
	width:100%;
	max-width:850px;
	min-height:auto;
	margin:0 auto;
	padding:14px 0;
	border:0;
	border-radius:0;
	background:transparent;
	box-shadow:none;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:var(--vivi-line-height-body, var(--vivi-lh-body));
	text-align:center;
	transform:none;
}
body.vivi-lite-activity-page .vivi-activity-load-more{
	cursor:pointer;
}
body.vivi-lite-activity-page .vivi-activity-load-more:hover{
	background:transparent;
	color:var(--vivi-color-text);
	transform:none;
	opacity:1;
}
body.vivi-lite-activity-page .vivi-activity-load-more[hidden],
body.vivi-lite-activity-page .vivi-activity-load-complete[hidden],
body.vivi-lite-activity-page .vivi-activity-load-more.is-hidden{
	display:none !important;
}
body.vivi-lite-activity-page .vivi-activity-load-more-status{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:32px;
}
body.vivi-lite-activity-page .vivi-activity-load-more.is-loading .vivi-activity-load-more-status::before{
	content:"";
	width:14px;
	height:14px;
	margin-right:8px;
	border:2px solid var(--vivi-color-border-strong);
	border-top-color:var(--vivi-color-primary);
	border-radius:var(--vivi-radius, 8px);
	animation:vivi-activity-load-spin .8s linear infinite;
}
@keyframes vivi-activity-load-spin{
	to{transform:rotate(360deg)}
}

/* v334: Activity Loop Item 更多按鈕狀態修正。
   只補回 vivi-base.css More Action Button 的一般 / hover / open 狀態，
   不改網站基礎設定載入方式、不改其他頁面邏輯。 */
body.vivi-lite-activity-page .vivi-activity-more-toggle{
	background:var(--vivi-more-button-bg);
	border-color:var(--vivi-more-button-border);
	border-radius:var(--vivi-radius, 8px);
	color:var(--vivi-more-button-color);
}

body.vivi-lite-activity-page .vivi-activity-more.is-open .vivi-activity-more-toggle,
body.vivi-lite-activity-page .vivi-activity-more-toggle:hover{
	background:var(--vivi-more-button-hover-bg);
	border-color:var(--vivi-more-button-hover-border);
	color:var(--vivi-more-button-hover-color);
}

/* VIVI Activity Single Page v0.10.148
   The single activity page uses the same outer surface, spacing, detail card,
   typography, media, interaction and comment styling as the activity Popup. */
body.vivi-lite-activity-single-page{
	background:var(--vivi-color-bg, #f7f3ec);
}
body.vivi-lite-activity-single-page .vivi-activity-single-main{
	width:100%;
	max-width:none;
	padding:var(--vivi-page-main-padding-top) var(--vivi-page-padding-x, 10px) var(--vivi-page-main-padding-bottom);
	box-sizing:border-box;
}
.vivi-activity-single-shell{
	width:min(760px, 100%);
	margin:0 auto;
}
.vivi-activity-single-topbar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	margin-bottom:14px;
}
.vivi-activity-single-back{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:auto;
}
.vivi-activity-single-card{
	padding:26px;
	border:var(--vivi-popup-standard-border, 1px solid var(--vivi-color-border));
	border-radius:var(--vivi-radius, 8px) !important;
	background:var(--vivi-popup-standard-bg, var(--vivi-color-card));
	box-shadow:var(--vivi-popup-standard-shadow, var(--vivi-shadow-card));
	overflow:hidden;
}
.vivi-activity-single-error{
	padding:42px 18px;
}
@media (max-width:860px){
	body.vivi-lite-activity-single-page .vivi-activity-single-main{
		width:100%;
		padding:var(--vivi-mobile-page-main-padding-top) 9px var(--vivi-mobile-page-main-padding-bottom);
	}
	body.vivi-lite-activity-single-page .vivi-activity-single-shell{
		width:100%;
		max-width:760px;
	}
}
@media (max-width:767px){
	body.vivi-lite-activity-single-page .vivi-activity-single-card{
		padding:var(--vivi-mobile-page-main-padding-top) var(--vivi-mobile-padding-x) var(--vivi-space-xl, 32px);
		border-radius:var(--vivi-radius, 8px) !important;
	}
}

/* =========================================================
   v333: Activity mobile design-token alignment.
   Scope: CSS only. Align mobile activity archive / popup / single page with vivi-base.css tokens.
   No PHP, AJAX, BuddyBoss, media, header, footer, or bottom shortcut logic changed.
========================================================= */
body.vivi-lite-activity-page,
body.vivi-lite-activity-single-page{
	font-family:var(--vivi-font-body);
	font-size: var(--vivi-fs-body);
	line-height:var(--vivi-lh-body);
	background:var(--vivi-color-bg);
	color:var(--vivi-color-text);
}

body.vivi-lite-activity-page .vivi-activity-detail-meta,
body.vivi-lite-activity-page .vivi-activity-comment-author,
body.vivi-lite-activity-page .vivi-activity-comment-form button,
body.vivi-lite-activity-page .vivi-activity-share-option,
body.vivi-lite-activity-page .vivi-activity-edit-actions button,
body.vivi-lite-activity-page .vivi-activity-report-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-image-picker,
body.vivi-lite-activity-page .vivi-activity-edit-media-head strong{
	font-size: var(--vivi-fs-small);
}

body.vivi-lite-activity-page .vivi-activity-detail-time,
body.vivi-lite-activity-page .vivi-activity-comment-time,
body.vivi-lite-activity-page .vivi-activity-comment-message,
body.vivi-lite-activity-page .vivi-activity-comment-delete,
body.vivi-lite-activity-page .vivi-activity-edit-media-head span,
body.vivi-lite-activity-page .vivi-activity-edit-media-empty{
	font-size: var(--vivi-fs-xs);
}

body.vivi-lite-activity-page .vivi-activity-search-field input,
body.vivi-lite-activity-page .vivi-activity-compose-form input[type="text"],
body.vivi-lite-activity-page .vivi-activity-compose-form textarea,
body.vivi-lite-activity-page .vivi-activity-edit-field input,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea,
body.vivi-lite-activity-page .vivi-activity-report-form textarea,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea{
	font-family:var(--vivi-font-body);
	font-size: var(--vivi-fs-body);
	line-height:var(--vivi-lh-body);
	background:var(--vivi-form-bg);
	color:var(--vivi-form-text);
	border-color:var(--vivi-form-border);
	border-radius:var(--vivi-radius, 8px);
}

body.vivi-lite-activity-page .vivi-activity-search-field input::placeholder,
body.vivi-lite-activity-page .vivi-activity-compose-form input[type="text"]::placeholder,
body.vivi-lite-activity-page .vivi-activity-compose-form textarea::placeholder,
body.vivi-lite-activity-page .vivi-activity-edit-field input::placeholder,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea::placeholder,
body.vivi-lite-activity-page .vivi-activity-report-form textarea::placeholder,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea::placeholder{
	color:var(--vivi-form-placeholder);
}

body.vivi-lite-activity-page .vivi-activity-search-field input:focus,
body.vivi-lite-activity-page .vivi-activity-compose-form input[type="text"]:focus,
body.vivi-lite-activity-page .vivi-activity-compose-form textarea:focus,
body.vivi-lite-activity-page .vivi-activity-edit-field input:focus,
body.vivi-lite-activity-page .vivi-activity-edit-field textarea:focus,
body.vivi-lite-activity-page .vivi-activity-report-form textarea:focus,
body.vivi-lite-activity-page .vivi-activity-comment-form textarea:focus{
	border-color:var(--vivi-form-border-focus);
	box-shadow:0 0 0 4px var(--vivi-form-focus-ring);
}

body.vivi-lite-activity-page .vivi-activity-write-button,
body.vivi-lite-activity-page .vivi-activity-compose-actions button,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-actions button,
body.vivi-lite-activity-page .vivi-activity-report-actions button,
body.vivi-lite-activity-single-page .vivi-activity-single-back{
	min-height:var(--vivi-btn-height);
	border-radius:var(--vivi-radius, 8px);
	font-family:var(--vivi-font-body);
	font-size: var(--vivi-fs-button);
	font-weight: var(--vivi-fw-bold);
	line-height:1;
}

body.vivi-lite-activity-page .vivi-activity-compose-actions button,
body.vivi-lite-activity-page .vivi-activity-comment-form-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-submit,
body.vivi-lite-activity-page .vivi-activity-report-submit{
	background:var(--vivi-color-primary);
	border-color:var(--vivi-color-primary);
	color:var(--vivi-color-text-inverse);
}

@media (max-width: 900px){
	body.vivi-lite-activity-page .vivi-activity-main{
		width:calc(100% - (var(--vivi-mobile-padding-x) * 2));
		padding:var(--vivi-mobile-page-main-padding-top) 0 var(--vivi-mobile-page-main-padding-bottom);
	}
	body.vivi-lite-activity-page .vivi-activity-toolbar,
body.vivi-lite-activity-page .vivi-activity-composer,
body.vivi-lite-activity-page .vivi-activity-card.vivi-story-card{
		border-radius:var(--vivi-radius, 8px);
	}
	body.vivi-lite-activity-page .vivi-activity-toolbar,
body.vivi-lite-activity-page .vivi-activity-composer,
body.vivi-lite-activity-page .vivi-activity-card .vivi-activity-card-body{
		padding:var(--vivi-space-md);
	}
	body.vivi-lite-activity-page .vivi-activity-card h3{
		font-size: var(--vivi-fs-h3);
		font-weight: var(--vivi-fw-bold);
		line-height:var(--vivi-lh-compact);
	}
	body.vivi-lite-activity-page .vivi-activity-write-entry{
		width:100%;
		margin:var(--vivi-space-sm) 0 var(--vivi-space-md);
	}
}

@media (max-width: 860px){
	body.vivi-lite-activity-page .vivi-activity-compose-modal{
		top:var(--vivi-header-height-mobile, 68px);
		bottom:var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom)));
		padding:var(--vivi-space-sm) var(--vivi-mobile-padding-x) var(--vivi-space-sm);
	}
	body.admin-bar.vivi-lite-activity-page .vivi-activity-compose-modal{
		top:calc(var(--vivi-header-height-mobile, 68px) + 46px);
	}
	body.vivi-lite-activity-page .vivi-activity-compose-panel{
		width:100%;
		max-height:calc(100vh - var(--vivi-header-height-mobile, 68px) - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 24px);
		max-height:calc(100dvh - var(--vivi-header-height-mobile, 68px) - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 24px);
		padding:var(--vivi-space-md);
		border-radius:var(--vivi-radius, 8px);
	}
	body.admin-bar.vivi-lite-activity-page .vivi-activity-compose-panel{
		max-height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 46px - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 24px);
		max-height:calc(100dvh - var(--vivi-header-height-mobile, 68px) - 46px - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 24px);
	}
}

@media (max-width: 767px){
	body.vivi-lite-activity-page .vivi-activity-modal-inner{
		padding:var(--vivi-mobile-page-main-padding-top) var(--vivi-mobile-padding-x) var(--vivi-mobile-page-main-padding-bottom);
	}
	body.vivi-lite-activity-page .vivi-activity-detail-title,
body.vivi-lite-activity-single-page .vivi-activity-detail-title{
		font-size: var(--vivi-fs-h3);
		line-height:var(--vivi-lh-compact);
	}
	body.vivi-lite-activity-page .vivi-activity-detail-head{
		gap:var(--vivi-space-sm);
	}
	body.vivi-lite-activity-page .vivi-activity-comment-body,
body.vivi-lite-activity-page .vivi-activity-image-upload,
body.vivi-lite-activity-page .vivi-activity-edit-media,
body.vivi-lite-activity-page .vivi-activity-edit-image-picker,
body.vivi-lite-activity-page .vivi-activity-edit-media-empty,
body.vivi-lite-activity-page .vivi-activity-report-option,
body.vivi-lite-activity-page .vivi-activity-link-preview{
		border-radius:var(--vivi-radius, 8px);
	}
	body.vivi-lite-activity-page .vivi-activity-comment-form-actions button,
body.vivi-lite-activity-page .vivi-activity-edit-actions button,
body.vivi-lite-activity-page .vivi-activity-report-actions button,
body.vivi-lite-activity-page .vivi-activity-compose-actions button{
		width:100%;
		min-height:var(--vivi-btn-height);
	}
	body.vivi-lite-activity-page
	body.vivi-lite-activity-page
}

/* v401: icon-only controls should not display fallback text and pseudo icon at the same time. */
.vivi-activity-gallery-nav{
	font-size: 0 !important;
	line-height:0 !important;
}
.vivi-activity-gallery-nav::before{
	font-size: var(--vivi-fs-h2);
	line-height:1;
}

/* v422: 首頁 / V生活誌動態 Popup 手機板高度同步扣除全站底部快捷按鈕，避免內容被快捷列覆蓋。 */
@media (max-width: 860px){
	.vivi-activity-modal{
		top:var(--vivi-header-height-mobile, 68px);
		bottom:var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom)));
	}

	.admin-bar .vivi-activity-modal{
		top:calc(var(--vivi-header-height-mobile, 68px) + 46px);
	}

	.vivi-activity-modal-panel{
		width:calc(100vw - 18px);
		height:calc(100vh - var(--vivi-header-height-mobile, 68px) - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
		height:calc(100dvh - var(--vivi-header-height-mobile, 68px) - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
		max-height:none;
		margin:7px auto;
	}

	.admin-bar .vivi-activity-modal-panel{
		height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 46px - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
		height:calc(100dvh - var(--vivi-header-height-mobile, 68px) - 46px - var(--vivi-mobile-bottom-nav-height, calc(69px + env(safe-area-inset-bottom))) - 14px);
	}

	.vivi-activity-modal-inner{
		height:100%;
		max-height:none;
		padding-bottom:var(--vivi-space-xl, 32px);
	}
}

/* v558: Popup 外框與關閉按鈕已統一由 vivi-base.css 控制；本檔不再保留檢舉 Popup 外框/關閉按鈕覆蓋。 */

/* v439: V社團已排程動態第一階段：查看與取消排程。按鈕外觀改由共用動態工具列樣式控制。 */
.vivi-group-scheduled-modal{
	position:fixed;
	top:var(--vivi-header-height, 76px);
	right:0;
	bottom:0;
	left:0;
	z-index:99998;
	display:none;
	align-items:flex-start;
	justify-content:center;
	padding:18px 24px 24px;
	box-sizing:border-box;
}
.admin-bar .vivi-group-scheduled-modal{
	top:calc(var(--vivi-header-height, 76px) + 32px);
}
.vivi-group-scheduled-modal.is-open{
	display:flex;
}
.vivi-group-scheduled-backdrop{
	position:absolute;
	inset:0;
	background:rgba(17, 24, 39, .42);
	backdrop-filter:blur(4px);
}
.vivi-group-scheduled-panel{
	position:relative;
	z-index:1;
	width:min(820px, 100%);
	max-height:calc(100vh - var(--vivi-header-height, 76px) - 48px);
	overflow:auto;
	scrollbar-width:thin;
	scrollbar-color:rgba(153, 101, 21, .52) rgba(15, 23, 42, .05);
	scrollbar-gutter:stable;
	background:var(--vivi-color-surface, #fff);
	border:1px solid var(--vivi-color-border, #e5e0d8);
	border-radius:var(--vivi-radius, 8px);
	box-shadow:0 24px 80px rgba(17, 24, 39, .24);
	padding:var(--vivi-space-xl, 28px);
	box-sizing:border-box;
}
.vivi-group-scheduled-panel::-webkit-scrollbar{
	width:8px;
	height:8px;
}
.vivi-group-scheduled-panel::-webkit-scrollbar-track{
	background:rgba(15, 23, 42, .05);
	border-radius:var(--vivi-radius, 8px);
	margin:18px 0;
}
.vivi-group-scheduled-panel::-webkit-scrollbar-thumb{
	background:rgba(153, 101, 21, .52);
	border:2px solid var(--vivi-color-surface, #fff);
	border-radius:var(--vivi-radius, 8px);
}
.vivi-group-scheduled-panel::-webkit-scrollbar-thumb:hover{
	background:rgba(153, 101, 21, .72);
}
.vivi-group-scheduled-panel::-webkit-scrollbar-button,
.vivi-group-scheduled-panel::-webkit-scrollbar-button:single-button,
.vivi-group-scheduled-panel::-webkit-scrollbar-button:vertical,
.vivi-group-scheduled-panel::-webkit-scrollbar-button:vertical:start,
.vivi-group-scheduled-panel::-webkit-scrollbar-button:vertical:end,
.vivi-group-scheduled-panel::-webkit-scrollbar-button:vertical:start:decrement,
.vivi-group-scheduled-panel::-webkit-scrollbar-button:vertical:end:increment{
	display:none;
	width:0;
	height:0;
}
.vivi-group-scheduled-panel::-webkit-scrollbar-corner{
	background:transparent;
}

.vivi-group-scheduled-head{
	padding-right:44px;
	margin-bottom:var(--vivi-space-md, 16px);
}
.vivi-group-scheduled-head h2{
	margin:4px 0 8px;
	font-size: var(--vivi-fs-h3);
	line-height:var(--vivi-lh-heading, 1.25);
}
.vivi-group-scheduled-head p:not(.vivi-kicker){
	margin:0;
	color:var(--vivi-color-text-muted, #666);
	font-size: var(--vivi-fs-small);
	line-height:var(--vivi-lh-body, 1.7);
}
.vivi-group-scheduled-message{
	min-height:22px;
	margin-bottom:var(--vivi-space-sm, 12px);
	color:var(--vivi-color-text-muted, #666);
	font-size: var(--vivi-fs-small);
}
.vivi-group-scheduled-message.is-error{
	color:var(--vivi-color-danger, #b42318);
}
.vivi-group-scheduled-message.is-success{
	color:var(--vivi-color-primary);
}
.vivi-group-scheduled-list-inner{
	display:grid;
	gap:var(--vivi-space-sm, 12px);
}
.vivi-group-scheduled-item{
	display:flex;
	flex-direction:column;
	align-items:stretch;
	gap:0;
	padding:var(--vivi-space-md, 16px);
	border:1px solid var(--vivi-color-border, #e5e0d8);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-surface, #fff);
}
.vivi-group-scheduled-meta{
	display:flex;
	flex-wrap:wrap;
	gap:8px 12px;
	margin-bottom:6px;
	color:var(--vivi-color-text-muted, #666);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
}
.vivi-group-scheduled-item h3{
	margin:0 0 6px;
	font-size: var(--vivi-fs-body-lg);
	line-height:var(--vivi-lh-heading, 1.3);
	color:var(--vivi-color-text, #222);
}
.vivi-group-scheduled-item p{
	margin:0;
	color:var(--vivi-color-text-muted, #666);
	font-size: var(--vivi-fs-small);
	line-height:var(--vivi-lh-body, 1.65);
}

.vivi-group-scheduled-actions{
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:8px;
	align-items:stretch;
	margin-top:var(--vivi-space-sm, 12px);
	padding-top:var(--vivi-space-sm, 12px);
	border-top:1px solid rgba(0, 0, 0, .06);
}
.vivi-group-scheduled-secondary,
.vivi-group-scheduled-publish,
.vivi-group-scheduled-cancel{
	width:100%;
	white-space:nowrap;
}
.vivi-group-scheduled-secondary,
.vivi-group-scheduled-publish{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:36px;
	padding:0 10px;
	border-radius:var(--vivi-radius, 8px);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-group-scheduled-secondary{
	border:1px solid var(--vivi-color-border, #e5e0d8);
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-text, #222);
}
.vivi-group-scheduled-secondary:hover{
	background:var(--vivi-color-bg-soft, #f7f5f2);
	border-color:rgba(153, 101, 21, .34);
	color:var(--vivi-color-primary);
}
.vivi-group-scheduled-publish{
	border:1px solid var(--vivi-color-primary);
	background:var(--vivi-color-primary);
	color:#fff;
}
.vivi-group-scheduled-publish:hover{
	filter:brightness(.95);
}
.vivi-group-scheduled-secondary[disabled],
.vivi-group-scheduled-publish[disabled]{
	opacity:.56;
	cursor:wait;
}
.vivi-group-scheduled-editor{
	margin:0 0 var(--vivi-space-md, 16px);
	padding:var(--vivi-space-md, 16px);
	border:1px solid rgba(153, 101, 21, .28);
	border-radius:var(--vivi-radius, 8px);
	background:linear-gradient(180deg, rgba(153, 101, 21, .08), rgba(255,255,255,.96));
}
.vivi-group-scheduled-editor[hidden]{
	display:none !important;
}
.vivi-group-scheduled-editor-head{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:var(--vivi-space-md, 16px);
	margin-bottom:var(--vivi-space-sm, 12px);
}
.vivi-group-scheduled-editor-head h3{
	margin:0 0 4px;
	font-size: var(--vivi-fs-body-lg);
	line-height:var(--vivi-lh-heading, 1.3);
}
.vivi-group-scheduled-editor-head p{
	margin:0;
	color:var(--vivi-color-text-muted, #666);
	font-size: var(--vivi-fs-xs);
	line-height:1.6;
}
.vivi-group-scheduled-editor-close{
	border:1px solid var(--vivi-color-border, #e5e0d8);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-text-muted, #666);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	padding:8px 12px;
	cursor:pointer;
}
.vivi-group-scheduled-editor-form{
	display:grid;
	gap:var(--vivi-space-sm, 12px);
}
.vivi-group-scheduled-editor-field{
	display:grid;
	gap:6px;
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text, #222);
}
.vivi-group-scheduled-editor-field input,
.vivi-group-scheduled-editor-field textarea{
	width:100%;
	border:1px solid var(--vivi-color-border, #e5e0d8);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-text, #222);
	font-size: var(--vivi-fs-body);
	line-height:1.6;
	padding:11px 13px;
	box-sizing:border-box;
}
.vivi-group-scheduled-editor-field textarea{
	min-height:150px;
	resize:vertical;
}
.vivi-group-scheduled-editor-field small{
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-regular);
	color:var(--vivi-color-text-muted, #666);
}
.vivi-group-scheduled-editor-message{
	min-height:20px;
	font-size: var(--vivi-fs-small);
	color:var(--vivi-color-text-muted, #666);
}
.vivi-group-scheduled-editor-message.is-error{
	color:var(--vivi-color-danger, #b42318);
}
.vivi-group-scheduled-editor-message.is-success{
	color:var(--vivi-color-primary);
}
.vivi-group-scheduled-editor-actions{
	display:flex;
	justify-content:flex-end;
	gap:10px;
}
.vivi-group-scheduled-editor-cancel,
.vivi-group-scheduled-editor-submit{
	min-height:40px;
	padding:0 18px;
	border-radius:var(--vivi-radius, 8px);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-group-scheduled-editor-cancel{
	border:1px solid var(--vivi-color-border, #e5e0d8);
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-text-muted, #666);
}
.vivi-group-scheduled-editor-submit{
	border:1px solid var(--vivi-color-primary);
	background:var(--vivi-color-primary);
	color:#fff;
}
.vivi-group-scheduled-editor-form.is-loading .vivi-group-scheduled-editor-submit{
	opacity:.62;
	cursor:wait;
}

.vivi-group-scheduled-cancel{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:36px;
	padding:0 10px;
	border:1px solid var(--vivi-color-border, #e5e0d8);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-danger, #b42318);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-group-scheduled-cancel:hover{
	background:rgba(180, 35, 24, .08);
	border-color:rgba(180, 35, 24, .28);
}
.vivi-group-scheduled-cancel[disabled]{
	opacity:.56;
	cursor:wait;
}
.vivi-group-scheduled-empty,
.vivi-group-scheduled-loading{
	padding:28px 18px;
	border:1px dashed var(--vivi-color-border, #e5e0d8);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft, #f7f5f2);
	color:var(--vivi-color-text-muted, #666);
	text-align:center;
	font-size: var(--vivi-fs-small);
}
.vivi-group-scheduled-footer{
	display:flex;
	justify-content:center;
	margin-top:var(--vivi-space-md, 16px);
}
.vivi-group-scheduled-load-more{
	min-height:40px;
	padding:0 18px;
	border:1px solid var(--vivi-color-primary);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-primary);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-group-scheduled-load-more[disabled]{
	opacity:.6;
	cursor:wait;
}
@media (max-width: 767px){
	.vivi-group-scheduled-modal{
		padding:var(--vivi-mobile-padding-x, 10px) var(--vivi-mobile-padding-x, 10px) var(--vivi-mobile-page-main-padding-bottom);
	}
	.vivi-group-scheduled-panel{
		max-height:calc(100vh - var(--vivi-header-height, 76px) - var(--vivi-mobile-nav-height, 72px) - 20px);
		border-radius:var(--vivi-radius, 8px);
		padding:var(--vivi-space-lg, 20px);
	}
	.vivi-group-scheduled-actions{
		grid-template-columns:repeat(4, minmax(0, 1fr));
		gap:6px;
	}
	.vivi-group-scheduled-secondary,
.vivi-group-scheduled-publish,
.vivi-group-scheduled-cancel{
		min-height:34px;
		padding:0 6px;
		font-size: var(--vivi-fs-xs);
	}
	.vivi-group-scheduled-editor-head,
.vivi-group-scheduled-editor-actions{
		flex-direction:column;
		align-items:stretch;
	}
	.vivi-group-scheduled-editor-cancel,
.vivi-group-scheduled-editor-submit{
		width:100%;
	}
	.vivi-group-scheduled-cancel{
		width:100%;
	}
}

/* =========================================================
   VIVI Activity Loop Title: single-line ellipsis
   - 標題完整輸出，依卡片寬度自動單行省略
   - 字級與字重仍由網站基礎設定管理
========================================================= */
body.vivi-lite-activity-page .vivi-activity-card h3.vivi-activity-title-line{
	display:block;
	min-width:0;
	min-height:auto !important;
	max-width:100%;
	overflow:hidden;
	white-space:nowrap;
	text-overflow:ellipsis;
	font-size:var(--vivi-fs-h3);
	font-weight:var(--vivi-fw-bold);
}
body.vivi-lite-activity-page .vivi-activity-card h3.vivi-activity-title-line a{
	display:block;
	min-width:0;
	max-width:100%;
	overflow:hidden;
	white-space:nowrap;
	text-overflow:ellipsis;
	font-size:inherit;
	font-weight:inherit;
	line-height:inherit;
}

/* =========================================================
   VIVI Activity Loop Brand Name: single-line ellipsis only
   - 不調整分隔線 .vivi-story-meta-sep
   - 只限制品牌名稱 .vivi-story-user-link 超出時顯示 ...
   - 字級與字重仍由網站基礎設定管理
========================================================= */
body.vivi-lite-activity-page .vivi-activity-card .vivi-story-user-link{
	display:inline-block !important;
	min-width:0;
	max-width:min(62%, calc(100% - 7.2em));
	overflow:hidden;
	white-space:nowrap;
	text-overflow:ellipsis;
	vertical-align:bottom;
}

/* =========================================================
   VIVI Activity Loop Excerpt: 5-line clamp
   - 內容摘要固定最多 5 行
   - 超過的內容以 ... 省略
   - 字級與字重仍由網站基礎設定管理
========================================================= */
body.vivi-lite-activity-page .vivi-activity-card .vivi-story-excerpt{
	display:-webkit-box !important;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:5;
	overflow:hidden !important;
	text-overflow:ellipsis;
	overflow-wrap:anywhere;
	word-break:break-word;
	font-size:var(--vivi-fs-body);
	font-weight:var(--vivi-fw-regular);
	line-height:1.7;
}

/* =========================================================
   VIVI Activity Detail Links
   - Popup 內長網址不可撐破手機版面
   - 內容中的網址保持可點擊，並由 PHP 設定新視窗開啟
========================================================= */
.vivi-activity-detail-content,
.vivi-activity-detail-content p{
	max-width:100%;
	overflow-wrap:anywhere;
	word-break:break-word;
}
.vivi-activity-detail-content a,
.vivi-activity-detail-content .vivi-activity-content-link{
	max-width:100%;
	white-space:normal;
	overflow-wrap:anywhere;
	word-break:break-word;
	color:inherit;
	font-weight:inherit;
	text-decoration:underline;
	text-underline-offset:2px;
}
.vivi-activity-link-preview,
.vivi-activity-link-preview .bb-link-preview{
	max-width:100%;
	overflow:hidden;
}
.vivi-activity-link-preview-title,
.vivi-activity-link-preview-description,
.vivi-activity-link-preview-site{
	overflow-wrap:anywhere;
	word-break:break-word;
}

/* v501: Profile 動態 Filter 文字字級鎖定網站基礎設定。 */
body.vivi-lite-profile-activity-page .vivi-activity-search-field input{
  font-family: var(--vivi-font-body) !important;
  font-size: var(--vivi-fs-body) !important;
  line-height: var(--vivi-lh-compact) !important;
  font-weight: var(--vivi-fw-regular) !important;
}

/* v658: hide image ordering controls only inside activity create/edit media area. */

/* v0.9.707 多社團單一動態發布：沿用發佈表單與網站基礎設定 tokens。 */
.vivi-activity-publish-groups-field{
	margin:0;
	padding:14px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-publish-groups-field > legend{
	display:block;
	padding:0;
	margin:0 0 10px;
}
.vivi-activity-publish-groups{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:10px;
}
.vivi-activity-publish-group-option{
	display:flex;
	align-items:flex-start;
	gap:10px;
	min-height:58px;
	padding:12px 14px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-bg);
	cursor:pointer;
	transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.vivi-activity-publish-group-option:hover{
	border-color:var(--vivi-color-primary);
	background:rgba(166,112,24,.06);
}
.vivi-activity-publish-group-option input{
	flex:0 0 auto;
	margin-top:3px;
	accent-color:var(--vivi-color-primary);
}
.vivi-activity-publish-group-option span{
	display:grid;
	gap:3px;
	min-width:0;
}
.vivi-activity-publish-group-option strong{
	color:var(--vivi-color-heading);
	font-size:var(--vivi-fs-small);
	font-weight:var(--vivi-fw-bold);
	line-height:1.35;
}
.vivi-activity-publish-group-option em,
.vivi-activity-publish-group-note{
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-xs);
	font-style:normal;
	font-weight:var(--vivi-fw-bold);
	line-height:1.45;
}
.vivi-activity-publish-group-option:has(input:checked){
	border-color:var(--vivi-color-primary);
	background:rgba(166,112,24,.08);
	box-shadow:0 0 0 3px rgba(166,112,24,.08);
}
.vivi-activity-publish-group-note{
	margin:10px 0 0;
}
@media (max-width: 767px){
	.vivi-activity-publish-groups{
		grid-template-columns:1fr;
	}
	.vivi-activity-publish-groups-field{
		padding:12px;
	}
}

/* v0.9.708 舊文章編輯：多社團關聯維護，沿用 v0.9.707 發佈社團選擇樣式。 */
.vivi-activity-edit-groups-field[hidden]{
	display:none !important;
}
.vivi-activity-edit-group-option.is-locked{
	cursor:default;
	opacity:.88;
}
.vivi-activity-edit-group-option.is-locked input{
	cursor:not-allowed;
}
.vivi-activity-edit-group-option.is-locked:hover{
	border-color:var(--vivi-color-border);
	background:var(--vivi-color-bg);
}
.vivi-activity-edit-group-option.is-locked:has(input:checked){
	border-color:var(--vivi-color-primary);
	background:rgba(166,112,24,.08);
}

/* v0.9.710 修正多社團選擇在編輯視窗被 .vivi-activity-edit-field input 通用表單樣式覆蓋，導致 checkbox 與文字排版變形。 */
.vivi-activity-publish-groups-field .vivi-activity-publish-group-option{
	display:flex !important;
	flex-direction:row !important;
	align-items:flex-start !important;
	justify-content:flex-start !important;
	gap:10px !important;
	width:100% !important;
	box-sizing:border-box !important;
}
.vivi-activity-publish-groups-field .vivi-activity-publish-group-option input[type="checkbox"],
body.vivi-lite-activity-page .vivi-activity-publish-groups-field .vivi-activity-publish-group-option input[type="checkbox"],
body.vivi-lite-profile-activity-page .vivi-activity-publish-groups-field .vivi-activity-publish-group-option input[type="checkbox"],
body.vivi-lite-group-activity-page .vivi-activity-publish-groups-field .vivi-activity-publish-group-option input[type="checkbox"]{
	appearance:auto !important;
	-webkit-appearance:checkbox !important;
	position:static !important;
	display:block !important;
	flex:0 0 auto !important;
	width:18px !important;
	min-width:18px !important;
	max-width:18px !important;
	height:18px !important;
	min-height:18px !important;
	max-height:18px !important;
	margin:3px 0 0 !important;
	padding:0 !important;
	border:1px solid var(--vivi-color-border) !important;
	border-radius:var(--vivi-radius, 8px) !important;
	background-color:var(--vivi-color-bg, #fff) !important;
	box-shadow:none !important;
	accent-color:var(--vivi-color-primary) !important;
}
.vivi-activity-publish-groups-field .vivi-activity-publish-group-option span,
body.vivi-lite-activity-page .vivi-activity-publish-groups-field .vivi-activity-publish-group-option span,
body.vivi-lite-profile-activity-page .vivi-activity-publish-groups-field .vivi-activity-publish-group-option span,
body.vivi-lite-group-activity-page .vivi-activity-publish-groups-field .vivi-activity-publish-group-option span{
	display:flex !important;
	flex-direction:column !important;
	align-items:flex-start !important;
	justify-content:flex-start !important;
	gap:3px !important;
	min-width:0 !important;
	width:auto !important;
	writing-mode:horizontal-tb !important;
	text-orientation:mixed !important;
	white-space:normal !important;
}
.vivi-activity-publish-groups-field .vivi-activity-publish-group-option strong,
.vivi-activity-publish-groups-field .vivi-activity-publish-group-option em{
	display:block !important;
	width:100% !important;
	writing-mode:horizontal-tb !important;
	text-orientation:mixed !important;
	white-space:normal !important;
	word-break:break-word !important;
	overflow-wrap:anywhere !important;
}

/* v0.9.713：主要發佈社團鎖定狀態，沿用發佈社團卡片樣式，不允許取消。 */
.vivi-activity-publish-group-option.is-locked{
	cursor:default;
}
.vivi-activity-publish-group-option.is-locked input{
	cursor:not-allowed;
}
.vivi-activity-publish-group-option.is-locked:hover{
	border-color:var(--vivi-color-primary);
	background:rgba(166,112,24,.08);
}

/* v0.9.725: 新增動態圖片預覽支援拖曳排序；送出時依畫面順序上傳。 */
.vivi-activity-image-preview-item[draggable="true"]{
	cursor:grab;
}
.vivi-activity-image-preview-item.is-dragging{
	opacity:.58;
	cursor:grabbing;
}
.vivi-activity-image-preview-item.is-drop-target{
	outline:2px solid var(--vivi-color-accent);
	outline-offset:2px;
}
@media (max-width: 767px){
	.vivi-activity-image-preview-item[draggable="true"]{
		cursor:default;
	}
}

/* VIVI activity mention autocomplete */
.vivi-activity-mention-menu{
	width: 100%;
	margin-top: 8px;
	padding: 6px;
	border: 1px solid var(--vivi-border-color, #e5e7eb);
	border-radius: var(--vivi-radius, 8px);
	background: #fff;
	box-shadow: 0 14px 32px rgba(15, 23, 42, 0.12);
	max-height: 260px;
	overflow-y: auto;
	z-index: 10020;
}

.vivi-activity-mention-menu[hidden]{
	display: none !important;
}

.vivi-activity-mention-option{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 10px 12px;
	border: 0;
	border-radius: var(--vivi-radius, 8px);
	background: transparent;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.vivi-activity-mention-option:hover,
.vivi-activity-mention-option:focus-visible{
	background: rgba(0, 0, 0, 0.06);
	outline: none;
}

.vivi-activity-mention-option strong{
	font-weight: 600;
	color: var(--vivi-text-color, #111827);
}

.vivi-activity-mention-option span{
	font-size: 13px;
	color: var(--vivi-muted-color, #6b7280);
	white-space: nowrap;
}

.vivi-activity-mention-empty{
	padding: 10px 12px;
	font-size: 14px;
	color: var(--vivi-muted-color, #6b7280);
}

.vivi-activity-mention-link{
	font-weight: 600;
	text-decoration: none;
	color: inherit;
}

.vivi-activity-mention-link:hover{
	text-decoration: underline;
}

/* v753: Isolate mention autocomplete options from comment submit button styles. */
.vivi-activity-comment-form .vivi-activity-mention-menu,
.vivi-activity-compose-field .vivi-activity-mention-menu,
.vivi-activity-edit-field .vivi-activity-mention-menu,
.vivi-group-scheduled-editor-field .vivi-activity-mention-menu{
	box-sizing: border-box;
	background: #fff;
}

.vivi-activity-comment-form .vivi-activity-mention-option,
.vivi-activity-compose-field .vivi-activity-mention-option,
.vivi-activity-edit-field .vivi-activity-mention-option,
.vivi-group-scheduled-editor-field .vivi-activity-mention-option{
	appearance: none;
	min-height: 0;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	border: 0;
	border-radius: var(--vivi-radius, 8px);
	background: transparent;
	color: var(--vivi-color-text, #111827);
	font-family: var(--vivi-font-body, inherit);
	font-size: var(--vivi-fs-small, 14px);
	font-weight: var(--vivi-fw-regular, 400);
	line-height: 1.35;
	box-shadow: none;
}

.vivi-activity-comment-form .vivi-activity-mention-option:hover,
.vivi-activity-comment-form .vivi-activity-mention-option:focus-visible,
.vivi-activity-compose-field .vivi-activity-mention-option:hover,
.vivi-activity-compose-field .vivi-activity-mention-option:focus-visible,
.vivi-activity-edit-field .vivi-activity-mention-option:hover,
.vivi-activity-edit-field .vivi-activity-mention-option:focus-visible,
.vivi-group-scheduled-editor-field .vivi-activity-mention-option:hover,
.vivi-group-scheduled-editor-field .vivi-activity-mention-option:focus-visible{
	background: rgba(153, 101, 21, 0.08);
	color: var(--vivi-color-text, #111827);
}

.vivi-activity-comment-form .vivi-activity-mention-option strong,
.vivi-activity-comment-form .vivi-activity-mention-option span,
.vivi-activity-compose-field .vivi-activity-mention-option strong,
.vivi-activity-compose-field .vivi-activity-mention-option span,
.vivi-activity-edit-field .vivi-activity-mention-option strong,
.vivi-activity-edit-field .vivi-activity-mention-option span,
.vivi-group-scheduled-editor-field .vivi-activity-mention-option strong,
.vivi-group-scheduled-editor-field .vivi-activity-mention-option span{
	color: inherit;
}

.vivi-activity-comment-form .vivi-activity-mention-option span,
.vivi-activity-compose-field .vivi-activity-mention-option span,
.vivi-activity-edit-field .vivi-activity-mention-option span,
.vivi-group-scheduled-editor-field .vivi-activity-mention-option span{
	color: var(--vivi-muted-color, #6b7280);
}

/* 0.10.143：動態 #文字使用品牌橘色與正常字重。 */
.vivi-activity-hashtag{
	color:var(--vivi-color-orange, #996515) !important;
	font-weight:var(--vivi-fw-regular, 400) !important;
	text-decoration:none;
	cursor:pointer;
}
.vivi-activity-hashtag:hover,
.vivi-activity-hashtag:focus-visible{
	color:var(--vivi-color-orange, #996515) !important;
	text-decoration:underline;
	text-underline-offset:2px;
}


/* v0.10.146: Activity Popup rectangular mention suggestions use the same 8px corner standard. */
.vivi-activity-modal .vivi-activity-mention-menu,
.vivi-activity-modal .vivi-activity-mention-option{
	border-radius:var(--vivi-radius, 8px);
}

/* v0.10.149: 發佈新動態 Popup 的矩形元件統一使用 8px 圓角；頭像與原生核取方塊維持原形。 */
.vivi-activity-compose-modal{
	--vivi-popup-standard-radius: var(--vivi-radius, 8px);
	--vivi-btn-radius: var(--vivi-radius, 8px);
}
.vivi-activity-compose-modal .vivi-activity-compose-panel,
.vivi-activity-compose-modal .vivi-activity-compose-close,
.vivi-activity-compose-modal .vivi-activity-compose-form input[type="text"],
.vivi-activity-compose-modal .vivi-activity-compose-form input[type="datetime-local"],
.vivi-activity-compose-modal .vivi-activity-compose-form textarea,
.vivi-activity-compose-modal .vivi-activity-image-upload,
.vivi-activity-compose-modal .vivi-activity-image-preview-item,
.vivi-activity-compose-modal .vivi-activity-image-preview-remove,
.vivi-activity-compose-modal .vivi-activity-image-preview-meta,
.vivi-activity-compose-modal .vivi-activity-publish-groups-field,
.vivi-activity-compose-modal .vivi-activity-publish-group-option,
.vivi-activity-compose-modal .vivi-group-schedule-field,
.vivi-activity-compose-modal .vivi-activity-compose-actions button,
.vivi-activity-compose-modal .vivi-activity-compose-login-btn,
.vivi-activity-compose-modal .vivi-activity-mention-menu,
.vivi-activity-compose-modal .vivi-activity-mention-option{
	border-radius:var(--vivi-radius, 8px) !important;
}
.vivi-activity-compose-modal .vivi-activity-compose-panel::-webkit-scrollbar-track,
.vivi-activity-compose-modal .vivi-activity-compose-panel::-webkit-scrollbar-thumb{
	border-radius:var(--vivi-radius, 8px) !important;
}

/* 0.10.156 — 全站新增動態入口統一使用生活誌的 44px icon 按鈕。 */
.vivi-activity-create-icon-button{
	appearance:none;
	-webkit-appearance:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 44px;
	width:44px;
	height:44px;
	min-width:44px;
	min-height:44px;
	margin:0;
	padding:0;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-card);
	color:var(--vivi-color-text);
	box-shadow:none;
	cursor:pointer;
	font:inherit;
	line-height:1;
	transition:border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}
.vivi-activity-create-icon-button:hover{
	border-color:color-mix(in srgb, var(--vivi-color-orange) 36%, var(--vivi-color-border));
	background:color-mix(in srgb, var(--vivi-color-orange) 7%, var(--vivi-color-card));
	color:var(--vivi-color-orange);
	transform:none;
}
.vivi-activity-create-icon-button:focus-visible{
	outline:2px solid color-mix(in srgb, var(--vivi-color-orange) 62%, transparent);
	outline-offset:2px;
}
.vivi-activity-create-icon-button:active{
	transform:translateY(1px);
}
.vivi-activity-create-icon-button > i,
.vivi-activity-create-icon-button > .bb-icon-article{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:auto;
	height:auto;
	margin:0;
	font-size:22px;
	line-height:1;
}
.vivi-activity-create-icon-button > i::before,
.vivi-activity-create-icon-button > .bb-icon-article::before{
	width:1em;
	margin:0;
}
.vivi-group-activity-topbar .vivi-activity-create-icon-button,
.vivi-profile-activity-topbar .vivi-activity-create-icon-button{
	margin-left:auto;
}


/* v0.10.240: activity deletion progress feedback and stable local removal. */
.vivi-activity-delete-hidden{
	display:none !important;
}

.vivi-activity-delete-status{
	box-sizing:border-box;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:12px;
	width:100%;
	min-width:0;
	min-height:0;
	padding:0 18px;
	overflow:hidden;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-card);
	color:var(--vivi-color-text-muted);
	box-shadow:var(--vivi-shadow-soft);
	font-size:var(--vivi-fs-small);
	font-weight:var(--vivi-fw-medium, 500);
	line-height:1.5;
	opacity:1;
	transition:height .26s ease,opacity .2s ease,padding .26s ease,border-width .26s ease,margin .26s ease;
}

.vivi-activity-delete-status-spinner{
	position:relative;
	box-sizing:border-box;
	flex:0 0 20px;
	width:20px;
	height:20px;
	border:2px solid color-mix(in srgb, var(--vivi-color-primary) 28%, transparent);
	border-top-color:var(--vivi-color-primary);
	border-radius:50%;
	animation:vivi-activity-delete-spin .72s linear infinite;
}

.vivi-activity-delete-status-message{
	min-width:0;
	text-align:center;
}

.vivi-activity-delete-status.is-success{
	border-color:color-mix(in srgb, var(--vivi-status-success) 30%, var(--vivi-color-border));
	background:color-mix(in srgb, var(--vivi-status-success) 7%, var(--vivi-color-card));
	color:var(--vivi-status-success);
}

.vivi-activity-delete-status.is-error{
	border-color:color-mix(in srgb, var(--vivi-status-error) 30%, var(--vivi-color-border));
	background:color-mix(in srgb, var(--vivi-status-error) 7%, var(--vivi-color-card));
	color:var(--vivi-status-error);
}

.vivi-activity-delete-status.is-success .vivi-activity-delete-status-spinner,
.vivi-activity-delete-status.is-error .vivi-activity-delete-status-spinner{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:0;
	animation:none;
}

.vivi-activity-delete-status.is-success .vivi-activity-delete-status-spinner::before{
	content:"\2713";
	font-size:18px;
	font-weight:var(--vivi-fw-bold);
	line-height:1;
}

.vivi-activity-delete-status.is-error .vivi-activity-delete-status-spinner::before{
	content:"!";
	font-size:17px;
	font-weight:var(--vivi-fw-bold);
	line-height:1;
}

.vivi-activity-delete-status.is-collapsing{
	min-height:0;
	padding-top:0;
	padding-bottom:0;
	border-top-width:0;
	border-bottom-width:0;
	opacity:0;
}

.vivi-activity-toast{
	position:fixed;
	z-index:1000000;
	left:50%;
	bottom:max(24px, env(safe-area-inset-bottom));
	display:flex;
	align-items:center;
	gap:10px;
	max-width:min(420px, calc(100vw - 32px));
	min-height:44px;
	padding:10px 16px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius, 8px);
	background:var(--vivi-color-card);
	color:var(--vivi-color-text);
	box-shadow:var(--vivi-shadow);
	font-size:var(--vivi-fs-small);
	font-weight:var(--vivi-fw-medium, 500);
	line-height:1.45;
	opacity:0;
	pointer-events:none;
	transform:translate(-50%, 12px);
	transition:opacity .2s ease,transform .2s ease;
}

.vivi-activity-toast.is-visible{
	opacity:1;
	transform:translate(-50%, 0);
}

.vivi-activity-toast-icon{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	box-sizing:border-box;
	flex:0 0 18px;
	width:18px;
	height:18px;
	border-radius:50%;
}

.vivi-activity-toast.is-loading .vivi-activity-toast-icon{
	border:2px solid color-mix(in srgb, var(--vivi-color-primary) 28%, transparent);
	border-top-color:var(--vivi-color-primary);
	animation:vivi-activity-delete-spin .72s linear infinite;
}

.vivi-activity-toast.is-success{
	border-color:color-mix(in srgb, var(--vivi-status-success) 30%, var(--vivi-color-border));
	background:color-mix(in srgb, var(--vivi-status-success) 7%, var(--vivi-color-card));
	color:var(--vivi-status-success);
}

.vivi-activity-toast.is-error{
	border-color:color-mix(in srgb, var(--vivi-status-error) 30%, var(--vivi-color-border));
	background:color-mix(in srgb, var(--vivi-status-error) 7%, var(--vivi-color-card));
	color:var(--vivi-status-error);
}

.vivi-activity-toast.is-success .vivi-activity-toast-icon::before{
	content:"\2713";
	font-size:17px;
	font-weight:var(--vivi-fw-bold);
	line-height:1;
}

.vivi-activity-toast.is-error .vivi-activity-toast-icon::before{
	content:"!";
	font-size:16px;
	font-weight:var(--vivi-fw-bold);
	line-height:1;
}

@keyframes vivi-activity-delete-spin{
	to{transform:rotate(360deg);}
}

@media (max-width: 640px){
	.vivi-activity-toast{
		bottom:max(16px, env(safe-area-inset-bottom));
		max-width:calc(100vw - 24px);
		width:max-content;
	}
}

@media (prefers-reduced-motion: reduce){
	.vivi-activity-delete-status,
	.vivi-activity-toast{
		transition:none;
	}
	.vivi-activity-delete-status-spinner,
	.vivi-activity-toast.is-loading .vivi-activity-toast-icon{
		animation-duration:1.4s;
	}
}

/* 0.10.281：動態圖片按鈕維持在自己的欄位層，不與文字欄位形成重疊點擊區。 */
.vivi-activity-compose-content-field,
.vivi-activity-compose-image-field,
.vivi-activity-edit-media{
	position:relative;
}
@media (max-width:860px){
	.vivi-activity-image-upload,
	.vivi-activity-edit-image-picker{
		position:relative;
		z-index:1;
	}
}
