/* VIVI Activity Test Page v0.9.392 */
.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-hero{
	display:block;
	padding:18px 0 24px;
}
.vivi-activity-hero-copy h1{
	margin:0 0 10px;
	color:var(--vivi-color-heading);
	font-family:var(--vivi-font-heading);
	font-size: var(--vivi-fs-h2);
	font-weight: var(--vivi-fw-bold);
	line-height:var(--vivi-lh-heading);
	letter-spacing:.04em;
}
.vivi-activity-hero-copy p:not(.vivi-kicker){
	max-width:760px;
	margin:0;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-regular);
	line-height:var(--vivi-lh-body);
}
.vivi-activity-hero-panel{display:none;}
.vivi-activity-toolbar{
	margin:8px 0 22px;
	padding:16px;
	background:var(--vivi-color-card);
	border:1px solid var(--vivi-color-border);
	border-radius:18px;
	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:999px;
	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-bb-filters{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	align-items:end;
}
.vivi-activity-filter-select-field{
	display:grid;
	gap:7px;
	min-width:150px;
}
.vivi-activity-filter-select-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-filter-select-field select{
	width:100%;
	min-height:var(--vivi-form-height, 44px);
	padding:0 42px 0 14px;
	border:1px solid var(--vivi-form-border, var(--vivi-color-border));
	border-radius:var(--vivi-radius-sm, 12px);
	background:var(--vivi-form-bg, var(--vivi-color-card));
	color:var(--vivi-form-text, var(--vivi-color-text));
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1.2;
	outline:none;
	appearance:none;
	-webkit-appearance:none;
	background-image:linear-gradient(45deg, transparent 50%, currentColor 50%),linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;
	background-size:5px 5px,5px 5px;
	background-repeat:no-repeat;
}
.vivi-activity-filter-select-field select: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-scope-tabs{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	align-items:center;
}
.vivi-activity-scope,
.vivi-activity-submit,
.vivi-activity-load-more{
	min-height:44px;
	padding:0 16px;
	border-radius:999px;
	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-scope:hover{
	background:var(--vivi-color-bg-soft);
	color:var(--vivi-color-text);
}
.vivi-activity-scope.is-active{
	border-color:var(--vivi-color-black);
	background:var(--vivi-color-black);
	color:var(--vivi-color-text-inverse);
}
.vivi-activity-submit,
.vivi-activity-load-more{
	border-color:var(--vivi-color-primary);
	background:var(--vivi-color-primary);
	color:var(--vivi-color-text-inverse);
}
.vivi-activity-submit:hover,
.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:18px;
	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:18px;
	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-lg);
	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-hero{padding-top:16px;}
	.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-scope-tabs{
		overflow-x:auto;
		flex-wrap:nowrap;
		padding-bottom:2px;
	}
	.vivi-activity-scope{flex:0 0 auto;}
	.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 lightweight modal: first-stage read-only popup */
.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-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-popup-standard-radius, var(--vivi-radius-lg));
	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-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-detail-head{
	display:flex;
	align-items:center;
	gap:12px;
	padding-right:48px;
	margin-bottom:18px;
}
.vivi-activity-detail-avatar{
	flex:0 0 auto;
	display:block;
	width:46px;
	height:46px;
	border-radius:999px;
	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{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:0;
	color:var(--vivi-blue, var(--vivi-color-primary));
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.08em;
	line-height:1.5;
}
.vivi-activity-detail-meta a{
	color:inherit;
	border-bottom:1px solid currentColor;
}
.vivi-activity-detail-meta span{
	margin:0 .35em;
}
.vivi-activity-detail-time{
	margin-top:4px;
	color:var(--vivi-color-text-muted);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.04em;
}
.vivi-activity-detail-title{
	margin:0 0 16px;
	color:var(--vivi-color-heading);
	font-size: var(--vivi-fs-h2);
	font-weight: var(--vivi-fw-bold);
	line-height:1.35;
	letter-spacing:-.03em;
}
.vivi-activity-detail-image{
	margin:0 0 18px;
	border-radius:18px;
	overflow:hidden;
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-detail-image img{
	display:block;
	width:100%;
	height:auto;
	max-height:58vh;
	object-fit:contain;
}
.vivi-activity-detail-content{
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-body);
	font-weight: var(--vivi-fw-regular);
	line-height:1.9;
}
.vivi-activity-detail-content p{
	margin:0 0 1em;
}
.vivi-activity-detail-content img,
.vivi-activity-detail-content video{
	max-width:100%;
	height:auto;
	border-radius:14px;
}
.vivi-activity-detail-foot{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	margin-top:22px;
	padding-top:18px;
	border-top:1px solid var(--vivi-color-border);
}
.vivi-activity-detail-counts{
	display:inline-flex;
	align-items:center;
	gap:14px;
	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;
}
@media (max-width: 767px){
	.vivi-activity-modal{
		top:var(--vivi-header-height-mobile, 68px);
	}
	.admin-bar .vivi-activity-modal{
		top:calc(var(--vivi-header-height-mobile, 68px) + 46px);
	}
	.vivi-activity-modal-panel{
		width:calc(100vw - 18px);
		max-height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 14px);
		margin:7px auto;
		border-radius:20px;
	}
	.vivi-activity-modal-inner{
		max-height:calc(100vh - var(--vivi-header-height-mobile, 68px) - 14px);
		padding:20px 16px 92px;
	}
	.vivi-activity-detail-head{
		padding-right:44px;
	}
	.vivi-activity-detail-title{
		font-size: var(--vivi-fs-h2);
	}
	.vivi-activity-detail-foot{
		align-items:stretch;
		flex-direction:column;
	}
}

/* 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: first image loads immediately; later slides lazy-load when the user navigates. */
.vivi-activity-detail-gallery{
	position:relative;
	margin:0 0 18px;
	border-radius:18px;
	background:var(--vivi-color-bg-soft);
	overflow:hidden;
}
.vivi-activity-detail-gallery-viewport{
	display:flex;
	overflow-x:auto;
	overflow-y:hidden;
	scroll-snap-type:x mandatory;
	scroll-behavior:smooth;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
}
.vivi-activity-detail-gallery-viewport::-webkit-scrollbar{
	display:none;
}
.vivi-activity-detail-gallery-slide{
	flex:0 0 100%;
	width:100%;
	margin:0;
	scroll-snap-align:center;
	scroll-snap-stop:always;
	background:var(--vivi-color-bg-soft);
}
.vivi-activity-detail-gallery-slide img{
	display:block;
	width:100%;
	height:auto;
	max-height:58vh;
	object-fit:contain;
	background:var(--vivi-color-bg-soft);
}
.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:999px;
	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:999px;
	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:999px;
	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{
		border-radius:16px;
	}
	.vivi-activity-detail-gallery-slide img{
		max-height:48vh;
	}
	.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:'‹';
}
.vivi-activity-gallery-next::before{
	content:'›';
}
.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 22px;
	border-radius:18px;
	box-shadow:var(--vivi-shadow-soft);
}
@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:14px;
		margin-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:16px;
	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:999px;
	margin:16px 0;
}
.vivi-activity-modal-inner::-webkit-scrollbar-thumb{
	background:rgba(153,101,21,.5);
	border-radius:999px;
	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:999px;
	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-detail-foot{
	margin-top:18px;
	padding:14px 0 10px;
	border-top:1px solid var(--vivi-color-border);
	border-bottom:1px solid var(--vivi-color-border);
	display:flex;
	align-items:center;
	justify-content:flex-start;
}
.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:999px;
	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:999px;
	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:14px;
	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:16px;
	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:999px;
	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:999px;
	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:999px;
	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:20px;
	}
	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:18px;
	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:999px;
	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:16px;
	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:18px;
	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-privacy-field{
	margin:0;
	padding:0;
	border:0;
}

.vivi-activity-privacy-field > legend,
.vivi-activity-privacy-field > .vivi-activity-compose-label{
	display:block;
	padding:0;
	margin:0 0 10px;
}
.vivi-activity-privacy-options{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:10px;
}
.vivi-activity-privacy-option{
	display:flex;
	align-items:flex-start;
	gap:10px;
	min-height:64px;
	padding:12px 14px;
	border:1px solid var(--vivi-color-border);
	border-radius:16px;
	background:var(--vivi-color-bg-soft);
	cursor:pointer;
	transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.vivi-activity-privacy-option:hover{
	border-color:var(--vivi-color-primary);
	background:rgba(166,112,24,.06);
}
.vivi-activity-privacy-option input{
	flex:0 0 auto;
	margin-top:3px;
	accent-color:var(--vivi-color-primary);
}
.vivi-activity-privacy-option span{
	display:grid;
	gap:3px;
	min-width:0;
}
.vivi-activity-privacy-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-privacy-option em{
	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-privacy-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-image-upload{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:14px 16px;
	border:1px dashed var(--vivi-form-border, var(--vivi-color-border));
	border-radius:16px;
	background:var(--vivi-color-bg-soft);
	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-image-upload input{
	position:absolute;
	width:1px;
	height:1px;
	overflow:hidden;
	clip:rect(0 0 0 0);
	white-space:nowrap;
	clip-path:inset(50%);
}
.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:14px;
	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:999px;
	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:999px;
	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:999px;
	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-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:16px;
	}
	.vivi-activity-compose-actions{
		align-items:stretch;
		flex-direction:column;
	}
	.vivi-activity-compose-actions button{
		width:100%;
	}
	.vivi-activity-privacy-options{
		grid-template-columns:1fr;
	}
	.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:999px;
	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:15px;
	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:16px;
	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:999px;
	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);
}
.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:14px;
	}
	.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:16px;
	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:999px;
	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:18px;
	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:14px;
	background:#fff;
}
.vivi-activity-edit-media-item{
	position:relative;
	border-radius:14px;
	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:999px;
	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:999px;
	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{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	min-height:46px;
	border:1px dashed rgba(17,24,39,.18);
	border-radius:14px;
	background:#fff;
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	cursor:pointer;
}
.vivi-activity-edit-image-picker input{
	display:none;
}
.vivi-activity-edit-media .vivi-activity-image-preview{
	margin-top:0;
}
@media (max-width: 767px){
	.vivi-activity-edit-media{
		padding:12px;
		border-radius:16px;
	}
	.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-drag-handle{
	position:absolute;
	left:7px;
	top:7px;
	width:28px;
	height:28px;
	border-radius:999px;
	background:rgba(255,255,255,.9);
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 8px 18px rgba(15,23,42,.16);
	pointer-events:none;
}
.vivi-activity-edit-media-move{
	position:absolute;
	top:42px;
	width:28px;
	height:28px;
	border:0;
	border-radius:999px;
	background:rgba(255,255,255,.92);
	color:var(--vivi-color-text);
	font-size: var(--vivi-fs-body-lg);
	font-weight: var(--vivi-fw-bold);
	line-height:1;
	cursor:pointer;
	box-shadow:0 8px 18px rgba(15,23,42,.16);
}
.vivi-activity-edit-media-move.is-prev{
	left:7px;
}
.vivi-activity-edit-media-move.is-next{
	left:41px;
}
.vivi-activity-edit-media-move:disabled{
	opacity:.38;
	cursor:not-allowed;
}
.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;
	}
	.vivi-activity-edit-media-drag-handle{
		display:none;
	}
}


.vivi-activity-edit-privacy-field{
	margin:0;
	padding:0;
	border:0;
}
.vivi-activity-edit-privacy-field legend{
	padding:0;
	margin:0 0 8px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-heading);
}

.vivi-activity-privacy-lock-hint{
	display:inline-block;
	margin-left:8px;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.4;
	color:var(--vivi-color-text-muted);
}
.vivi-activity-edit-privacy-field.is-disabled{
	opacity:.68;
}
.vivi-activity-edit-privacy-field.is-disabled .vivi-activity-privacy-option{
	cursor:not-allowed;
}
.vivi-activity-edit-privacy-note{
	margin:8px 0 0;
	font-size: var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.5;
	color:var(--vivi-color-text-muted);
}

.vivi-activity-edit-privacy-note:empty,
.vivi-activity-edit-privacy-note[hidden]{
	display:none;
}


/* v310: Fix edit popup privacy radio layout.
   The generic edit-field input style must not apply to nested privacy radios. */
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-options{
	grid-template-columns:repeat(2, minmax(0, 1fr));
	align-items:stretch;
}
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-option{
	display:flex;
	align-items:flex-start;
	gap:10px;
	min-height:auto;
	padding:12px 14px;
	box-sizing:border-box;
}
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-option input[type="radio"]{
	width:auto !important;
	height:auto !important;
	min-width:0 !important;
	flex:0 0 auto !important;
	margin:3px 0 0 !important;
	padding:0 !important;
	border:0 !important;
	box-shadow:none !important;
	background:transparent !important;
	accent-color:var(--vivi-color-primary);
}
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-option > span{
	display:grid;
	gap:3px;
	min-width:0;
	width:auto;
	max-width:100%;
}
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-option strong,
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-option em{
	display:block;
	word-break:normal;
	overflow-wrap:anywhere;
}
@media (max-width: 767px){
	body.vivi-lite-activity-page .vivi-activity-edit-privacy-field .vivi-activity-privacy-options{
		grid-template-columns:1fr;
	}
}


/* =========================================================
   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-lg);
	--vivi-activity-radius-panel:var(--vivi-radius-xl);
	--vivi-activity-radius-control:var(--vivi-radius-pill);
	--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-hero{
		padding:var(--vivi-space-lg) 0 var(--vivi-space-lg);
	}

	body.vivi-lite-activity-page .vivi-activity-hero-copy h1,
	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-activity-radius-card);
		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-md);
		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-activity-radius-control);
	}

	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, var(--vivi-activity-primary));
		box-shadow:0 0 0 3px var(--vivi-form-focus-ring, color-mix(in srgb, var(--vivi-activity-primary) 16%, transparent));
		outline:none;
	}

	body.vivi-lite-activity-page .vivi-activity-scope,
	body.vivi-lite-activity-page .vivi-activity-submit,
	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-activity-radius-control);
		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-submit,
	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-md);
		box-shadow:var(--vivi-activity-shadow-panel);
	}

	body.vivi-lite-activity-page .vivi-activity-more-toggle,
	body.vivi-lite-activity-page .vivi-activity-privacy-option,
	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-md);
	}

	body.vivi-lite-activity-page .vivi-activity-privacy-option:hover,
	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-privacy-option:has(input:checked){
		background:color-mix(in srgb, var(--vivi-activity-primary) 8%, var(--vivi-activity-surface));
		border-color:var(--vivi-activity-primary);
		box-shadow:0 0 0 3px color-mix(in srgb, var(--vivi-activity-primary) 10%, transparent);
	}

	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-md);
	}
}


/* =========================================================
   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-md);
	--vivi-activity-radius-control:var(--vivi-btn-radius);
	--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-md);
	}

	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-sm);
		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::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-submit,
	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-btn-radius);
		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-submit,
	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-submit:hover,
	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-scope{
		min-height:34px;
		padding:0 14px;
		border-radius:var(--vivi-radius-pill);
		font-size: var(--vivi-fs-small);
		font-weight: var(--vivi-fw-bold);
		line-height:1;
	}

	body.vivi-lite-activity-page .vivi-activity-scope.is-active{
		background:var(--vivi-color-black);
		border-color:var(--vivi-color-black);
		color:var(--vivi-color-text-inverse);
	}

	body.vivi-lite-activity-page .vivi-activity-privacy-option,
	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-sm);
	}

	body.vivi-lite-activity-page .vivi-activity-privacy-option:has(input:checked){
		background:color-mix(in srgb, var(--vivi-color-red) 7%, var(--vivi-color-card));
		border-color:var(--vivi-color-red);
		box-shadow:0 0 0 4px var(--vivi-form-focus-ring);
	}
}

/* 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-btn-radius, var(--vivi-radius-sm));
	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-lg, 24px);
	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:999px;
	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-md, 18px);
		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:50%;
	animation:vivi-activity-load-spin .8s linear infinite;
}
@keyframes vivi-activity-load-spin{
	to{transform:rotate(360deg)}
}

/* VIVI Activity Single Page v0.9.332 */
body.vivi-lite-activity-single-page{
	background:var(--vivi-color-bg, #f7f3ec);
}
.vivi-activity-single-main{
	padding:var(--vivi-page-main-padding-top) var(--vivi-page-padding-x, 10px) var(--vivi-page-main-padding-bottom);
}
.vivi-activity-single-shell{
	width:min(920px, 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:clamp(18px, 3vw, 34px);
	border:1px solid var(--vivi-color-border, rgba(0,0,0,.1));
	border-radius:28px;
	background:var(--vivi-color-card, #fff);
	box-shadow:var(--vivi-shadow-card, 0 18px 55px rgba(0,0,0,.1));
}
.vivi-activity-single-card .vivi-activity-detail-head{
	padding-right:0;
}
.vivi-activity-single-error{
	padding:44px 18px;
}
@media (max-width: 860px){
	.vivi-activity-single-main{
		padding:var(--vivi-mobile-page-main-padding-top) var(--vivi-mobile-padding-x, 10px) var(--vivi-mobile-page-main-padding-bottom);
	}
	.vivi-activity-single-card{
		padding:18px 16px;
		border-radius:22px;
	}
	.vivi-activity-single-card .vivi-activity-detail-head{
		padding-right:0;
	}
	.vivi-activity-single-card .vivi-activity-detail-title{
		font-size: var(--vivi-fs-h2);
	}
}


/* =========================================================
   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,
body.vivi-lite-activity-page .vivi-activity-edit-privacy-field legend,
body.vivi-lite-activity-page .vivi-activity-privacy-lock-hint,
body.vivi-lite-activity-page .vivi-activity-edit-privacy-note{
	font-size: var(--vivi-fs-xs);
}

body.vivi-lite-activity-page .vivi-activity-search-field input,
body.vivi-lite-activity-page .vivi-activity-filter-select-field select,
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-sm);
}

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-filter-select-field select: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-submit,
body.vivi-lite-activity-page .vivi-activity-scope,
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-btn-radius);
	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-md);
	}
	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-md);
	}
	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-privacy-option,
	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-sm);
	}
	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 
}

@media (max-width: 860px){
	body.vivi-lite-activity-single-page .vivi-activity-single-main{
		padding:var(--vivi-mobile-page-main-padding-top) var(--vivi-mobile-padding-x) var(--vivi-mobile-page-main-padding-bottom);
	}
	body.vivi-lite-activity-single-page .vivi-activity-single-card{
		padding:var(--vivi-space-md);
		border-radius:var(--vivi-radius-md);
	}
}


/* v334: mobile activity scope select fills the filter row */
@media (max-width: 900px){
	body.vivi-lite-activity-page .vivi-activity-bb-filters{
		width:100%;
	}
	body.vivi-lite-activity-page .vivi-activity-filter-select-field{
		width:100%;
		min-width:0;
	}
	body.vivi-lite-activity-page [data-vivi-activity-scope-input]{
		width:100%;
		max-width:none;
		box-sizing:border-box;
	}
}

/* v335: single activity page mobile article width and back link refinement */
@media (max-width: 860px){
	body.vivi-lite-activity-single-page .vivi-activity-single-main{
		padding-left:var(--vivi-mobile-padding-x, 10px);
		padding-right:var(--vivi-mobile-padding-x, 10px);
	}
	body.vivi-lite-activity-single-page .vivi-activity-single-shell{
		width:100%;
		max-width:none;
	}
	body.vivi-lite-activity-single-page .vivi-activity-single-card{
		padding:12px;
	}
}

/* v392: V生活誌新增動態按鈕參照社團頁新增社團動態，改為搜尋列上方靠右、小尺寸按鈕。 */
body.vivi-lite-activity-page .vivi-activity-write-entry{
	width:100%;
	max-width:none;
	margin:0 0 var(--vivi-space-md, 16px);
	display:flex;
	align-items:center;
	justify-content:flex-end;
}

body.vivi-lite-activity-page .vivi-activity-write-button{
	width:auto;
	min-width:168px;
	margin:0;
	white-space:nowrap;
}

body.vivi-lite-activity-page .vivi-activity-toolbar{
	margin-top:0;
}

@media (max-width: 767px){
	body.vivi-lite-activity-page .vivi-activity-write-entry{
		width:100%;
		margin:0 0 var(--vivi-space-md, 16px);
		justify-content:stretch;
	}

	body.vivi-lite-activity-page .vivi-activity-write-button{
		width:100%;
		min-width:0;
	}
}

/* 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-lite-group-activity-page .vivi-group-activity-topbar{
	gap:var(--vivi-space-sm, 12px);
}
.vivi-lite-group-activity-page .vivi-group-scheduled-open-button{
	background:var(--vivi-color-surface, #fff);
	color:var(--vivi-color-primary);
	border-color:var(--vivi-color-primary);
	box-shadow:none;
}
.vivi-lite-group-activity-page .vivi-group-scheduled-open-button:hover{
	background:var(--vivi-color-bg-soft, #f7f5f2);
}
.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-xl, 24px);
	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:999px;
	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:999px;
}
.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-lg, 18px);
	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:999px;
	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-lg, 18px);
	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:999px;
	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-md, 14px);
	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:999px;
	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:999px;
	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-lg, 18px);
	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:999px;
	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-lite-group-activity-page .vivi-group-activity-topbar{
		align-items:stretch;
	}
	.vivi-lite-group-activity-page .vivi-group-activity-write-button,
	.vivi-lite-group-activity-page .vivi-group-scheduled-open-button{
		width:100%;
	}
	.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-lg, 18px);
		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%;
	}
}

/* v0.9.460: Popup media fixed display area standard.
   Requirement: keep top/left/right spacing inside popup, use a fixed media display area,
   and scale the actual image proportionally without cropping. */
:root{
  --vivi-popup-media-gap-x:22px;
  --vivi-popup-media-gap-top:22px;
  --vivi-popup-media-gap-bottom:18px;
  --vivi-popup-media-height:clamp(360px, 56vh, 560px);
  --vivi-popup-media-bg:var(--vivi-color-bg-soft, #F2F4F5);
  --vivi-popup-media-radius:18px;
}

/* restore content padding around the media area */
.vivi-popup-panel .vivi-activity-detail > .vivi-activity-detail-gallery,
.vivi-popup-panel .vivi-activity-detail > .vivi-activity-detail-image,
.vivi-popup-panel .vivi-ticket-popup-detail > .vivi-ticket-popup-media{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:var(--vivi-popup-media-height) !important;
  max-height:var(--vivi-popup-media-height) !important;
  min-height:0 !important;
  margin:0 0 var(--vivi-popup-media-gap-bottom) 0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  border-radius:var(--vivi-popup-media-radius) !important;
  background:var(--vivi-popup-media-bg) !important;
}

/* carousel/single image containers must fill the fixed display area */
.vivi-popup-panel .vivi-activity-detail-gallery-viewport,
.vivi-popup-panel .vivi-activity-detail-gallery-track,
.vivi-popup-panel .vivi-activity-detail-gallery-slide,
.vivi-popup-panel .vivi-activity-detail-image,
.vivi-popup-panel .vivi-ticket-popup-media{
  width:100% !important;
  max-width:100% !important;
  height:var(--vivi-popup-media-height) !important;
  max-height:var(--vivi-popup-media-height) !important;
  min-height:0 !important;
  box-sizing:border-box !important;
  background:var(--vivi-popup-media-bg) !important;
}

.vivi-popup-panel .vivi-activity-detail-gallery-slide,
.vivi-popup-panel .vivi-activity-detail-image,
.vivi-popup-panel .vivi-ticket-popup-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* actual media: proportional scaling, no cropping */
.vivi-popup-panel .vivi-activity-detail-gallery-slide img,
.vivi-popup-panel .vivi-activity-detail-image img,
.vivi-popup-panel .vivi-ticket-popup-main-img,
.vivi-popup-panel .vivi-ticket-popup-image-empty{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:100% !important;
  max-height:100% !important;
  min-height:0 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:0 !important;
  background:var(--vivi-popup-media-bg) !important;
  box-sizing:border-box !important;
}

/* keep close button above media but not inside the image display math */


@media (max-width:767px){
  :root{
    --vivi-popup-media-height:clamp(250px, 42vh, 390px);
    --vivi-popup-media-radius:16px;
  }
  .vivi-popup-panel .vivi-activity-detail > .vivi-activity-detail-gallery,
  .vivi-popup-panel .vivi-activity-detail > .vivi-activity-detail-image,
  .vivi-popup-panel .vivi-ticket-popup-detail > .vivi-ticket-popup-media{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    margin-top:0 !important;
  }
}


/* =========================================================
   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-group-link
   - 不調整分隔線 .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:var(--vivi-color-accent);
	font-weight:var(--vivi-fw-bold);
	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. */
[data-vivi-activity-edit-form] .vivi-activity-edit-media-drag-handle,
[data-vivi-activity-edit-form] .vivi-activity-edit-media-move,
[data-vivi-activity-compose-form] .vivi-activity-edit-media-drag-handle,
[data-vivi-activity-compose-form] .vivi-activity-edit-media-move{
	display:none !important;
}
