/* CinderRot Community — fits feed, upload modal, vote drops */

.cr-community { padding-block: 40px; }
.cr-community__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 32px;
	gap: 16px;
	flex-wrap: wrap;
}
.cr-community__empty { text-align: center; padding-block: 60px; color: var(--cr-mid, #666); }
.cr-community__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
}

.cr-fit-card { border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid #e4e1db; }
.cr-fit-card__media { position: relative; display: block; aspect-ratio: 4/5; }
.cr-fit-card__media img { width: 100%; height: 100%; object-fit: cover; }
.cr-fit-card__media-video { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.cr-fit-card__tribe {
	position: absolute; top: 10px; left: 10px;
	background: rgba(0,0,0,0.5); backdrop-filter: blur(4px);
	color: #fff; font-size: 11px; font-weight: 700;
	padding: 4px 10px; border-radius: 999px;
}
.cr-fit-card__footer {
	display: flex; align-items: center; justify-content: space-between;
	padding: 10px 12px;
}
.cr-fit-card__author { font-size: 13px; font-weight: 600; }
.cr-like-btn {
	display: flex; align-items: center; gap: 5px;
	background: none; border: none; color: #888;
	font-size: 12px; font-weight: 700; padding: 4px;
	transition: color 0.15s;
}
.cr-like-btn:hover, .cr-like-btn.is-liked { color: #e63946; }
.cr-like-btn.cr-like-pulse { animation: cr-like-pulse 0.3s ease; }
@keyframes cr-like-pulse { 50% { transform: scale(1.3); } }

/* ── Visual Polish to Vote Drops (Roadmap item 91) ─────────────────────── */
.cr-vote-drops { margin-bottom: 40px; display: grid; gap: 20px; }
.cr-vote-drop-card {
	background: var(--cr-surface, #ffffff);
	border: 1px solid var(--cr-surface-border, #e4e1db);
	border-radius: var(--cr-radius, 16px);
	padding: 24px;
	box-shadow: var(--cr-shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.08));
	position: relative;
	overflow: hidden;
}
[data-theme="dark"] .cr-vote-drop-card {
	background: #111115;
	border-color: #22222a;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}
.cr-vote-drop-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
	flex-wrap: wrap;
	gap: 8px;
}
.cr-vote-drop-card__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	background: rgba(230, 57, 70, 0.12);
	color: var(--cr-red, #e63946);
	border: 1px solid rgba(230, 57, 70, 0.3);
	border-radius: var(--cr-radius-sm, 8px);
	font-family: var(--cr-font-display, sans-serif);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
[data-theme="dark"] .cr-vote-drop-card__badge {
	background: rgba(230, 57, 70, 0.2);
	color: #ff6b6b;
	border-color: rgba(255, 107, 107, 0.35);
}
.cr-vote-drop-card__designs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 16px;
	margin-top: 16px;
}
.cr-vote-option {
	background: #f7f5f1;
	border: 2px solid transparent;
	border-radius: 12px;
	padding: 12px;
	text-align: left;
	cursor: pointer;
	position: relative;
	transition: border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease, background-color 0.2s ease;
}
[data-theme="dark"] .cr-vote-option {
	background: #18181e;
	border-color: #262632;
}
.cr-vote-option:hover:not(:disabled) {
	border-color: var(--cr-red, #e63946);
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(230, 57, 70, 0.2);
}
.cr-vote-option.is-voted {
	border-color: var(--cr-red, #e63946);
	background: #fff5f5;
	box-shadow: 0 0 16px rgba(230, 57, 70, 0.25);
}
[data-theme="dark"] .cr-vote-option.is-voted {
	background: #201216;
	border-color: #ff5564;
	box-shadow: 0 0 20px rgba(255, 85, 100, 0.35);
}
.cr-vote-option.is-voted::after {
	content: 'VOTED';
	position: absolute;
	top: 18px;
	right: 18px;
	padding: 2px 6px;
	background: var(--cr-red, #e63946);
	color: #ffffff;
	font-family: var(--cr-font-display, sans-serif);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.05em;
	border-radius: 4px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
	animation: cr-voted-pop 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes cr-voted-pop {
	0% { transform: scale(0.6); opacity: 0; }
	100% { transform: scale(1); opacity: 1; }
}
.cr-vote-option:disabled { cursor: not-allowed; opacity: 0.8; }
.cr-vote-option img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
	margin-bottom: 10px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.cr-vote-option__name {
	display: block;
	font-size: 13px;
	font-weight: 700;
	font-family: var(--cr-font-display, sans-serif);
	letter-spacing: -0.01em;
	margin-bottom: 8px;
	color: var(--cr-ink, #0d0d0f);
}
[data-theme="dark"] .cr-vote-option__name {
	color: #f0f0f4;
}
.cr-vote-option__bar {
	display: block;
	height: 6px;
	background: #e4e1db;
	border-radius: 999px;
	overflow: hidden;
	position: relative;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
[data-theme="dark"] .cr-vote-option__bar {
	background: #2a2a36;
}
.cr-vote-option__bar span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #e63946, #ff6b6b);
	border-radius: 999px;
	transition: width 0.4s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 0 8px rgba(230, 57, 70, 0.5);
}
.cr-vote-option.is-voted .cr-vote-option__bar span {
	background: linear-gradient(90deg, #06b6d4, #22d3ee);
	box-shadow: 0 0 10px rgba(6, 182, 212, 0.6);
}
.cr-vote-option__pct {
	font-size: 11px;
	font-weight: 700;
	font-family: var(--cr-font-display, sans-serif);
	color: var(--cr-mid, #666);
	margin-top: 6px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
[data-theme="dark"] .cr-vote-option__pct {
	color: #9999aa;
}


/* Upload modal */
.cr-fit-upload-modal {
	position: fixed; inset: 0; z-index: 200;
	background: rgba(0,0,0,0.5); backdrop-filter: blur(4px);
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.cr-fit-upload-modal__panel {
	background: #fff; border-radius: 20px; padding: 32px;
	max-width: 420px; width: 100%; position: relative;
}
.cr-fit-upload-modal__close {
	position: absolute; top: 16px; right: 16px;
	background: none; border: none; font-size: 24px; line-height: 1; color: #888;
}
.cr-fit-upload-dropzone {
	display: flex; align-items: center; justify-content: center;
	border: 2px dashed #e4e1db; border-radius: 12px;
	height: 160px; margin: 20px 0 12px;
	cursor: pointer; text-align: center; font-size: 13px; color: #888;
	position: relative; overflow: hidden;
}
.cr-fit-upload-dropzone.has-preview { border-style: solid; }
.cr-fit-upload-dropzone img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cr-fit-upload-dropzone input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
#cr-fit-upload-form textarea, #cr-fit-upload-form select {
	width: 100%; border: 1px solid #e4e1db; border-radius: 10px;
	padding: 10px 12px; font-family: inherit; font-size: 14px; margin-bottom: 12px;
}
.cr-fit-caption-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: -8px;
	margin-bottom: 12px;
}
.cr-char-counter {
	font-size: 11px;
	font-weight: 600;
	color: #888891;
	transition: color 0.15s ease;
}
.cr-char-counter.is-warning {
	color: #d97706;
}
.cr-char-counter.is-max {
	color: #e63946;
	font-weight: 700;
}
.cr-fit-upload-note { font-size: 11px; color: #888; text-align: center; margin-top: 10px; }

/* Toast */
.cr-toast {
	position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
	background: #18181c; color: #fff; padding: 12px 22px; border-radius: 999px;
	font-size: 13px; font-weight: 600; z-index: 300;
	opacity: 0; transition: opacity 0.2s;
	pointer-events: none;
}
.cr-toast.is-visible { opacity: 1; }
.cr-toast.is-error { background: #e63946; }

/* Feed Tabs (Roadmap Item 450) */
.cr-community__feed-controls {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 28px 0 24px;
}
.cr-community__tabs {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #111015;
	padding: 5px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.08);
}
.cr-community__tab {
	background: transparent;
	border: none;
	color: #9b9ba7;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 8px 18px;
	border-radius: 999px;
	cursor: pointer;
	transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.cr-community__tab:hover {
	color: #ffffff;
}
.cr-community__tab.is-active {
	background: #c5221f;
	color: #ffffff;
	box-shadow: 0 2px 10px rgba(197, 34, 31, 0.35);
}

/* Rewards Dashboard & Achievement Tiers (Roadmap Items 82 & 135) */
.cr-rewards-dashboard {
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin: 32px 0;
}
.cr-rewards-card {
	background: #111015;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	padding: 28px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}
.cr-rewards-header {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}
.cr-rewards-badge-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: rgba(255, 255, 255, 0.04);
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	flex-shrink: 0;
}
.cr-tier-badge {
	display: inline-block;
	vertical-align: middle;
	stroke-width: 2;
}
.cr-tier-badge--lg {
	width: 42px;
	height: 42px;
}
.cr-rewards-identity {
	flex: 1;
	min-width: 200px;
}
.cr-rewards-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #71717a;
	font-weight: 700;
	display: block;
	margin-bottom: 4px;
}
.cr-rewards-tier-name {
	font-size: 22px;
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 6px;
	letter-spacing: -0.01em;
}
.cr-rewards-active-perk {
	font-size: 13px;
	color: #a1a1aa;
	margin: 0;
	line-height: 1.4;
}
.cr-rewards-balance {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}
.cr-rewards-balance__num {
	font-size: 32px;
	font-weight: 900;
	color: #ffffff;
	line-height: 1;
	font-family: monospace, sans-serif;
}
.cr-rewards-balance__label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #a1a1aa;
	margin-top: 4px;
}
.cr-rewards-progress-wrap {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.cr-rewards-progress-meta {
	display: flex;
	justify-content: space-between;
	font-size: 12px;
	color: #a1a1aa;
}
.cr-rewards-bar {
	height: 8px;
	background: rgba(255, 255, 255, 0.06);
	border-radius: 999px;
	overflow: hidden;
	position: relative;
}
.cr-rewards-bar__fill {
	height: 100%;
	border-radius: 999px;
	transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 0 10px currentColor;
}
.cr-rewards-section-title {
	font-size: 16px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #ffffff;
	margin: 0 0 16px;
}
.cr-tier-nodes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.cr-tier-node {
	background: #111015;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 10px;
	padding: 16px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	transition: border-color 0.2s;
}
.cr-tier-node.is-current {
	border-color: rgba(255, 255, 255, 0.3);
	background: rgba(255, 255, 255, 0.03);
}
.cr-tier-node.is-locked {
	opacity: 0.6;
}
.cr-tier-node__icon {
	flex-shrink: 0;
	margin-top: 2px;
}
.cr-tier-node__details {
	flex: 1;
}
.cr-tier-node__top {
	display: flex;
	justify-content: space-between;
	font-size: 13px;
	color: #ffffff;
	margin-bottom: 4px;
}
.cr-tier-node__pts {
	font-size: 11px;
	color: #71717a;
	font-family: monospace;
}
.cr-tier-node__perk {
	font-size: 11px;
	color: #a1a1aa;
	margin: 0;
	line-height: 1.35;
}
.cr-tier-badge-pill {
	font-size: 10px;
	font-weight: 700;
	padding: 3px 6px;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.cr-tier-badge-pill.is-active {
	background: #c5221f;
	color: #ffffff;
}
.cr-tier-badge-pill.is-cleared {
	color: #10b981;
}
.cr-rewards-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
@media (max-width: 768px) {
	.cr-rewards-split {
		grid-template-columns: 1fr;
	}
}
.cr-rewards-earn-box, .cr-rewards-history-box {
	background: #111015;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 10px;
	padding: 20px;
}
.cr-earn-list, .cr-ledger-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.cr-earn-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.cr-earn-badge {
	font-size: 12px;
	font-weight: 800;
	color: #10b981;
	background: rgba(16, 185, 129, 0.1);
	border: 1px solid rgba(16, 185, 129, 0.25);
	padding: 3px 8px;
	border-radius: 6px;
	flex-shrink: 0;
	font-family: monospace;
}
.cr-earn-list strong {
	display: block;
	font-size: 13px;
	color: #ffffff;
	margin-bottom: 2px;
}
.cr-earn-list p {
	font-size: 12px;
	color: #a1a1aa;
	margin: 0;
	line-height: 1.35;
}
.cr-ledger-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.cr-ledger-source {
	display: block;
	font-size: 13px;
	color: #ffffff;
	font-weight: 600;
}
.cr-ledger-time {
	display: block;
	font-size: 11px;
	color: #71717a;
}
.cr-ledger-delta {
	font-size: 14px;
	font-family: monospace;
}
.cr-ledger-delta.is-pos { color: #10b981; }
.cr-ledger-delta.is-neg { color: #e63946; }
.cr-empty-ledger {
	font-size: 13px;
	color: #71717a;
	margin: 0;
	font-style: italic;
}

/* ==========================================================================
   Micro-Batch 24 Community Additions (Items 113, 118, 127)
   ========================================================================== */

/* Feed Controls: Sort and Multi-Tribe Filters (Item 127) */
.cr-community__controls-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 16px;
}
.cr-community__sort-select {
	background: #18181e;
	border: 1px solid #262632;
	color: #e4e4e7;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-family: inherit;
	cursor: pointer;
	outline: none;
	transition: border-color 0.2s ease;
}
.cr-community__sort-select:focus {
	border-color: var(--cr-red, #c5221f);
}
.cr-community__tribe-filter-bar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	margin-bottom: 24px;
}
.cr-community__filter-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	/* #71717a on this label's light #f5f3ef background is 4.36:1, just
	   under WCAG AA's 4.5:1 minimum for bold 12px text (real regression
	   caught by the item-478 axe-core scan) — darkened to zinc-600
	   (6.97:1) rather than the darker shades used elsewhere against dark
	   backgrounds, which don't apply here. */
	color: #d4d4d8;
}
.cr-community__tribe-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.cr-tribe-pill-btn {
	background: #121216;
	border: 1px solid #27272a;
	color: #a1a1aa;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.cr-tribe-pill-btn:hover {
	border-color: #3f3f46;
	color: #ffffff;
}
.cr-tribe-pill-btn.is-active {
	background: rgba(197, 34, 31, 0.15);
	border-color: var(--cr-red, #c5221f);
	color: #ffffff;
	box-shadow: 0 0 12px rgba(197, 34, 31, 0.3);
}

/* Drag and Drop Dropzone & Preview (Item 118) */
.cr-fit-upload-dropzone {
	position: relative;
	border: 2px dashed #2e2e38;
	border-radius: 12px;
	padding: 24px 16px;
	text-align: center;
	background: #141419;
	cursor: pointer;
	transition: all 0.2s ease;
	margin-bottom: 16px;
	overflow: hidden;
}
.cr-fit-upload-dropzone.is-dragover {
	border-color: var(--cr-red, #c5221f);
	background: rgba(197, 34, 31, 0.08);
	transform: scale(1.01);
}
.cr-fit-upload-dropzone.has-preview {
	padding: 0;
	border-style: solid;
}
.cr-fit-dropzone-prompt {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.cr-dropzone-icon {
	font-size: 32px;
}
.cr-fit-preview-wrapper {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	background: #09090b;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cr-fit-preview-wrapper img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cr-fit-preview-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 14px;
	background: #18181e;
	border-top: 1px solid #262632;
}
.cr-fit-tag-hint {
	font-size: 11px;
	color: #a1a1aa;
}

/* Pinpoint Tagging Overlay & Picker (Item 113) */
.cr-fit-tagging-layer {
	position: absolute;
	inset: 0;
	pointer-events: auto;
}
.cr-fit-pin {
	position: absolute;
	transform: translate(-50%, -50%);
	z-index: 10;
	pointer-events: auto;
}
.cr-fit-pin__dot {
	display: block;
	width: 14px;
	height: 14px;
	background: var(--cr-red, #c5221f);
	border: 2px solid #ffffff;
	border-radius: 50%;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.8), 0 0 12px var(--cr-red, #c5221f);
}
.cr-fit-pin--temp .cr-fit-pin__pulse {
	position: absolute;
	top: -5px;
	left: -5px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: rgba(197, 34, 31, 0.4);
	animation: cr-pulse-ring 1.5s infinite;
}
@keyframes cr-pulse-ring {
	0% { transform: scale(0.6); opacity: 1; }
	100% { transform: scale(1.8); opacity: 0; }
}
.cr-fit-pin__badge {
	position: absolute;
	top: 18px;
	left: 50%;
	transform: translateX(-50%);
	background: #18181e;
	border: 1px solid #2e2e3a;
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 4px;
	white-space: nowrap;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
	display: flex;
	align-items: center;
	gap: 6px;
}
.cr-fit-pin-remove {
	background: transparent;
	border: none;
	color: #ef4444;
	font-size: 14px;
	cursor: pointer;
	padding: 0;
	line-height: 1;
}
.cr-fit-tagging-panel {
	background: #18181e;
	border: 1px solid #2e2e3a;
	padding: 12px;
	border-radius: 8px;
	margin-bottom: 14px;
}
.cr-fit-tag-input-row {
	display: flex;
	gap: 8px;
	align-items: center;
}
.cr-fit-tag-input-row .cr-input {
	flex: 1;
	font-size: 12px;
	padding: 6px 10px;
}

/* Card Media Hotspots */
.cr-fit-card__media-wrap {
	position: relative;
	overflow: hidden;
}
.cr-fit-hotspots {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.cr-fit-hotspot {
	position: absolute;
	transform: translate(-50%, -50%);
	pointer-events: auto;
	z-index: 5;
}
.cr-fit-hotspot__pin {
	position: relative;
	width: 22px;
	height: 22px;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cr-fit-hotspot__dot {
	width: 10px;
	height: 10px;
	background: #ffffff;
	border: 2px solid var(--cr-red, #c5221f);
	border-radius: 50%;
	box-shadow: 0 0 8px rgba(0, 0, 0, 0.8);
	position: relative;
	z-index: 2;
}
.cr-fit-hotspot__pulse {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgba(197, 34, 31, 0.5);
	animation: cr-pulse-ring 2s infinite ease-out;
}
.cr-fit-hotspot__popover {
	position: absolute;
	bottom: 26px;
	left: 50%;
	transform: translateX(-50%) translateY(4px);
	background: #121216;
	border: 1px solid #27272a;
	padding: 6px 12px;
	border-radius: 6px;
	white-space: nowrap;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.8);
	opacity: 0;
	visibility: hidden;
	transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
	pointer-events: none;
}
.cr-fit-hotspot:hover .cr-fit-hotspot__popover,
.cr-fit-hotspot:focus-within .cr-fit-hotspot__popover {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
	pointer-events: auto;
}
.cr-fit-hotspot__link {
	font-size: 11px;
	font-weight: 700;
	color: #ffffff;
	text-decoration: none;
}
.cr-fit-hotspot__link:hover {
	color: var(--cr-red, #c5221f);
}

/* ── Live Vote Drop Activity Ticker (Roadmap Item 128) ── */
.cr-vote-drop-card__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}
.cr-vote-activity-ticker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 12px;
	background: rgba(197, 34, 31, 0.08);
	border: 1px solid rgba(197, 34, 31, 0.25);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	color: #d4d4d8;
}
.cr-vote-activity-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #c5221f;
	box-shadow: 0 0 6px #c5221f;
	flex-shrink: 0;
	transition: transform 0.2s, background 0.2s;
}
.cr-vote-activity-dot.is-pulsing {
	transform: scale(1.6);
	background: #ff4d4f;
	box-shadow: 0 0 10px #ff4d4f;
}
.cr-vote-activity-text {
	transition: opacity 0.25s ease-in-out;
}

/* ── Mobile Pull-to-Refresh Indicator (Roadmap Item 144) ── */
.cr-pull-indicator {
	height: 0;
	opacity: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	transition: opacity 0.2s ease-out;
	color: #a1a1aa;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.cr-pull-sigil {
	font-size: 18px;
	color: #c5221f;
	display: inline-block;
	transition: transform 0.1s linear;
}
.cr-pull-indicator.is-ready .cr-pull-sigil {
	color: #ff4d4f;
	text-shadow: 0 0 8px rgba(255, 77, 79, 0.8);
}
.cr-pull-indicator.is-refreshing .cr-pull-sigil {
	animation: cr-sigil-spin 0.8s infinite linear;
}
@keyframes cr-sigil-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* ── Alt Text Field (Roadmap Item 160) ── */
.cr-fit-alt-text-wrap {
	margin-top: 12px;
	margin-bottom: 12px;
}
.cr-fit-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #a1a1aa;
	margin-bottom: 6px;
}

