/* ═══════════════════════════════════════════════════════════════════
   ROVIMEN Dashboard Widget — astromania.org
   Matches the Elementor kit: #141314 bg · Inter · teal #00AAC4 primary
   Uses Elementor global vars where available, with hardcoded fallbacks.
   ═══════════════════════════════════════════════════════════════════ */

.rovimen-dashboard {
	/* Elementor kit tokens — fall back to kit values if vars not resolved */
	--rov-primary:     var(--e-global-color-primary,   #00AAC4);
	--rov-secondary:   var(--e-global-color-secondary,  #F7A715);
	--rov-accent:      var(--e-global-color-accent,     #EA5D14);
	--rov-text:        var(--e-global-color-text,       #E6E1E3);

	/* Surface / structure — derived from kit body (#141314) */
	--rov-bg:          #141314;
	--rov-surface:     #1e1d1e;
	--rov-surface-alt: #252325;
	--rov-border:      #2e2c2e;
	--rov-border-mid:  #3a383a;
	--rov-muted:       #6b6869;

	/* Typography — kit uses Inter 17px/27px */
	--rov-font: var(--e-global-typography-text-font-family, "Inter"), system-ui, sans-serif;

	/* Derived tints */
	--rov-primary-dim:  rgba(0, 170, 196, 0.12);
	--rov-primary-glow: rgba(0, 170, 196, 0.25);

	/* Layout */
	--rov-radius-sm: 6px;
	--rov-radius:    10px;
	--rov-radius-lg: 16px;
	--rov-gap:       1.25rem;

	font-family:             var(--rov-font);
	color:                   var(--rov-text);
	-webkit-font-smoothing:  antialiased;
	-moz-osx-font-smoothing: grayscale;
	max-width:               1140px;
	margin:                  0 auto;
	padding:                 0;
	box-sizing:              border-box;
	position:                relative;
}

/* ── Loading state: collapse dashboard to spinner height only ────── */
.rovimen-dashboard.rovd-loading-state {
	height:   320px;
	overflow: hidden;
}

/* ── Loading overlay ─────────────────────────────────────────────── */
.rovd-loading-overlay {
	position:        absolute;
	inset:           0;
	z-index:         200;
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	justify-content: center;
	background:      var(--rov-bg);
	border-radius:   var(--rov-radius-lg);
	transition:      opacity 0.5s ease;
	min-height:      420px;
}
.rovd-loading-overlay.rovd-hiding {
	opacity:         0;
	pointer-events:  none;
}
.rovd-spinner {
	width:            44px;
	height:           44px;
	border:           3px solid var(--rov-border-mid);
	border-top-color: var(--rov-primary);
	border-radius:    50%;
	animation:        rovd-spin 0.75s linear infinite;
	margin-bottom:    1rem;
}
@keyframes rovd-spin { to { transform: rotate(360deg); } }
.rovd-loading-overlay p {
	color:          var(--rov-muted);
	font-size:      0.82rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin:         0;
}
.rovd-dyk-label {
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
#rovd-dyk-text {
	max-width:   380px;
	font-size:   0.85rem;
	line-height: 1.6;
	color:       var(--rov-muted);
	margin:      0.3rem 0 0;
	text-align:  center;
}

.rovimen-dashboard *,
.rovimen-dashboard *::before,
.rovimen-dashboard *::after {
	box-sizing: inherit;
}

/* ── Header ─────────────────────────────────────────────────────── */
.rovd-header {
	margin-bottom: 2rem;
	text-align:    center;
}

.rovd-title {
	font-family:    var(--rov-font);
	font-size:      clamp(1.2rem, 2.5vw, 2rem);
	font-weight:    700;
	color:          #fff;
	margin:         0 0 .5rem;
	letter-spacing: -.01em;
	line-height:    1.2;
}

.rovd-title-expand {
	color: var(--rov-primary);
}

.rovd-subtitle {
	font-size:   .9rem;
	color:       #CCCCCC;
	margin:      0;
	line-height: 1.6;
}


.rovd-subtitle a {
	color:           var(--rov-primary);
	text-decoration: none;
	transition:      color 150ms ease;
}

.rovd-subtitle a:hover {
	color: var(--rov-secondary);
}

.rovd-contact-link {
	color:           var(--rov-primary);
	text-decoration: none;
	cursor:          pointer;
}

.rovd-contact-link:hover {
	text-decoration: underline;
}

/* ── Contact modal ───────────────────────────────────────────────── */
.rovd-contact-modal {
	display:         none;
	position:        fixed;
	inset:           0;
	z-index:         9999;
	align-items:     center;
	justify-content: center;
	background:      rgba(0,0,0,.65);
	backdrop-filter: blur(3px);
}

.rovd-contact-modal-inner {
	background:    var(--rov-surface-alt);
	border-radius: var(--rov-radius-lg);
	padding:       2rem;
	width:         90%;
	max-width:     400px;
	position:      relative;
	box-shadow:    0 8px 40px rgba(0,0,0,.6);
}

.rovd-contact-modal-close {
	position:    absolute;
	top:         1rem;
	right:       1rem;
	background:  none;
	border:      none;
	color:       var(--rov-muted);
	font-size:   1rem;
	cursor:      pointer;
	line-height: 1;
	padding:     0;
	transition:  color 150ms ease;
}

.rovd-contact-modal-close:hover {
	color: var(--rov-text);
}

.rovd-contact-modal-title {
	margin:         0 0 1.5rem;
	font-size:      1rem;
	font-weight:    700;
	color:          var(--rov-text);
}

.rovd-contact-entries {
	display:        flex;
	flex-direction: column;
	gap:            1rem;
}

.rovd-contact-entry {
	display:        flex;
	flex-direction: column;
	gap:            .2rem;
}

.rovd-contact-name {
	font-size:   .75rem;
	font-weight: 600;
	color:       var(--rov-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
}

.rovd-contact-email {
	font-size:       .9rem;
	color:           var(--rov-primary);
	text-decoration: none;
	transition:      color 150ms ease;
}

.rovd-contact-email:hover {
	color: var(--rov-secondary);
}

/* ── Data notice ────────────────────────────────────────────────── */
.rovd-data-notice-card {
	margin-bottom:  1.5rem;
	padding:        .65rem 1.25rem;
	background:     var(--rov-surface);
	border:         1px solid var(--rov-border);
	border-radius:  var(--rov-radius);
	font-size:      .72rem;
	color:          var(--rov-muted);
	text-transform: uppercase;
	letter-spacing: .07em;
	line-height:    1.7;
}

/* ── Stats grid ─────────────────────────────────────────────────── */
.rovd-stats {
	display:               grid;
	grid-template-columns: repeat(3, 1fr);
	gap:                   var(--rov-gap);
	margin-bottom:         2.5rem;
}

@media (max-width: 600px) {
	.rovd-stats { grid-template-columns: 1fr; }
}

.rovd-stat {
	background:     var(--rov-surface);
	border:         1px solid var(--rov-border);
	border-radius:  var(--rov-radius);
	padding:        1.25rem 1rem;
	display:        flex;
	flex-direction: column;
	align-items:    center;
	text-align:     center;
	transition:     border-color 200ms ease, box-shadow 200ms ease;
}

.rovd-stat:hover {
	border-color: var(--rov-primary);
	box-shadow:   0 0 12px var(--rov-primary-glow);
}

.rovd-stat-value {
	font-size:      1.9rem;
	font-weight:    700;
	color:          var(--rov-primary);
	line-height:    1;
	margin-bottom:  .4rem;
	letter-spacing: -.02em;
}
.rovd-stat-value.rovd-stat-loading {
	color:     var(--rov-muted);
	animation: rovd-pulse 1.2s ease-in-out infinite;
}
@keyframes rovd-pulse {
	0%, 100% { opacity: 1; }
	50%       { opacity: .35; }
}

.rovd-stat-label {
	font-size:      .72rem;
	color:          var(--rov-muted);
	text-transform: uppercase;
	letter-spacing: .07em;
}

/* ── Four-card full-width row ───────────────────────────────────── */
.rovd-stat-row {
	grid-column: 1 / -1;
	display:     flex;
	flex-wrap:   wrap;
	gap:         var(--rov-gap);
}

.rovd-stat-row .rovd-stat {
	flex:     1;
	min-width: 140px;
}

/* ── Thin full-width stat cards ─────────────────────────────────── */
.rovd-stat--thin {
	grid-column:     1 / -1;
	flex-direction:  row;
	justify-content: center;
	align-items:     center;
	flex-wrap:       wrap;
	gap:             .6em;
	padding:         .75rem 1.25rem;
}

.rovd-stat-thin-label {
	font-size:      .72rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	color:          var(--rov-muted);
}

.rovd-stat-thin-sep {
	color:     var(--rov-border-mid);
	font-size: .9rem;
}

.rovd-stat-thin-value {
	font-size:   1rem;
	font-weight: 600;
	color:       var(--rov-primary);
}

.rovd-cov-cards {
	display:       flex;
	gap:           var(--rov-gap);
	margin-bottom: 2.5rem;
}

.rovd-cov-cards .rovd-stat {
	flex: 1;
}

.rovd-cov-values {
	display:         flex;
	gap:             1.5rem;
	justify-content: center;
	margin-bottom:   .5rem;
	width:           100%;
}

.rovd-cov-values > div {
	display:        flex;
	flex-direction: column;
	align-items:    center;
}

.rovd-cov-title {
	margin-bottom: .75rem;
}

.rovd-cov-sections {
	display:         flex;
	width:           100%;
	justify-content: center;
}

.rovd-cov-section {
	display:        flex;
	flex-direction: column;
	align-items:    center;
	flex:           1;
}

.rovd-cov-section + .rovd-cov-section {
	padding-left: 2rem;
	border-left:  1px solid var(--rov-border);
	margin-left:  2rem;
}

.rovd-cov-note {
	margin-top: .4rem;
}

/* ── Section headings ───────────────────────────────────────────── */
.rovd-section {
	margin-bottom: 2.5rem;
}

.rovd-section-title {
	font-size:     1.05rem;
	font-weight:   600;
	color:         #fff;
	margin:        0 0 .3rem;
	display:       flex;
	align-items:   center;
	gap:           .5rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--rov-border);
}

.rovd-section-desc {
	font-size:    .82rem;
	color:        var(--rov-muted);
	margin:       0 0 1rem;
	line-height:  1.5;
}

.rovd-night-summary-card {
	margin-bottom:  2rem;
	gap:            1rem;
	padding-bottom: .75rem;
}

.rovd-night-records-card {
	margin-top:     1.5rem;
	padding-top:    1rem;
	padding-bottom: 1rem;
}

.rovd-hof-grid {
	display:         flex;
	gap:             var(--rov-gap);
	justify-content: center;
	margin-top:      1rem;
	margin-bottom:   .5rem;
}

.rovd-hof-card {
	flex: 1;
}

.rovd-hof-badge {
	position:        absolute;
	top:             .45rem;
	left:            .45rem;
	background:      rgba(0, 170, 196, 0.15);
	color:           var(--rov-primary);
	border:          1px solid rgba(0, 170, 196, 0.35);
	font-size:       .63rem;
	font-weight:     700;
	padding:         2px .5rem;
	border-radius:   999px;
	text-transform:  uppercase;
	letter-spacing:  .05em;
	backdrop-filter: blur(4px);
}

.rovd-night-counts {
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             2.5rem;
	width:           100%;
}

.rovd-night-count-item {
	display:        flex;
	flex-direction: column;
	align-items:    center;
}

.rovd-night-count-divider {
	width:         1px;
	height:        3rem;
	background:    var(--rov-border);
	flex-shrink:   0;
}

.rovd-night-sentence {
	font-size:   .82rem;
	color:       var(--rov-muted);
	line-height: 1.6;
	margin:      0;
	text-align:  center;
}

.rovd-night-sentence strong {
	color:       var(--rov-primary);
	font-weight: 600;
}

.rovd-hof-note {
	text-transform: uppercase;
	letter-spacing: .04em;
	margin-top:     .75rem;
}

.rovd-events-summary {
	text-align:  center;
	font-size:   .88rem;
	color:       var(--rov-muted);
	line-height: 1.6;
	margin:      0 0 1.5rem;
}

.rovd-events-summary strong {
	color:       var(--rov-primary);
	font-weight: 600;
}

.rovd-date-label {
	font-size:  .72rem;
	color:      var(--rov-muted);
	font-weight: 400;
}

/* ── Map ────────────────────────────────────────────────────────── */
.rovd-map {
	position:      relative;
	height:        480px;
	border-radius: var(--rov-radius);
	border:        1px solid var(--rov-border);
	overflow:      hidden;
}
.rovd-map .leaflet-container { background: #1a1a1a; }
.rovd-map .leaflet-container *,
.rovd-map .leaflet-container *:before,
.rovd-map .leaflet-container *:after { box-sizing: content-box; }
.rovd-map .leaflet-tile,
.rovd-map .leaflet-container img {
	max-width: none !important;
	max-height: none !important;
	height: auto !important;
}
.rovd-map .leaflet-container img.leaflet-tile {
	mix-blend-mode: plus-lighter !important;
}

.rovd-map-controls {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
}
.rovd-layer-btns {
	display: flex;
	gap: 2px;
}
.rovd-layer-btn {
	background: rgba(20,19,20,.85);
	border: 1px solid var(--rov-border-mid);
	color: var(--rov-text);
	padding: 3px 8px;
	font-size: .72rem;
	font-family: var(--rov-font);
	cursor: pointer;
	border-radius: 4px;
	transition: background .15s;
}
.rovd-layer-btn:hover  { background: var(--rov-surface-alt); }
.rovd-layer-btn.active { background: var(--rov-primary); color: #fff; border-color: var(--rov-primary); }
.rovd-brightness-row input[type="range"] {
	width: 90px;
	accent-color: var(--rov-primary);
	cursor: pointer;
}

.rovd-map-popup {
	font-size:   .85rem;
	line-height: 1.5;
	font-family: var(--rov-font);
}

.rovd-map-popup strong {
	display:       block;
	margin-bottom: 2px;
	font-weight:   600;
	color:         #1a202c;
}

.rovd-map-popup .rovd-popup-cameras {
	color:     #555;
	font-size: .75rem;
}

/* ── Events grid ────────────────────────────────────────────────── */
.rovd-events-grid {
	display:               grid;
	grid-template-columns: repeat(4, 1fr);
	gap:                   var(--rov-gap);
}

.rovd-event-card {
	background:    var(--rov-surface);
	border:        1px solid var(--rov-border);
	border-radius: var(--rov-radius);
	overflow:      hidden;
	cursor:        pointer;
	transition:    border-color 200ms ease, box-shadow 200ms ease;
}

.rovd-event-card:hover {
	border-color: var(--rov-primary);
	box-shadow:   0 4px 16px rgba(0,0,0,.4);
}

.rovd-event-img-wrap {
	position:     relative;
	aspect-ratio: 16/9;
	background:   #000;
	overflow:     hidden;
}

.rovd-event-img-wrap img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	display:    block;
}

.rovd-event-badge {
	position:       absolute;
	bottom:         .5rem;
	left:           .5rem;
	background:     rgba(0, 170, 196, 0.15);
	color:          var(--rov-primary);
	border:         1px solid rgba(0, 170, 196, 0.35);
	font-size:      .67rem;
	font-weight:    600;
	padding:        2px .5rem;
	border-radius:  999px;
	text-transform: uppercase;
	letter-spacing: .05em;
	backdrop-filter: blur(4px);
}

.rovd-event-foot {
	padding:    .5rem .75rem;
	border-top: 1px solid var(--rov-border);
}

.rovd-event-time {
	font-size: .74rem;
	color:     var(--rov-muted);
}

/* ── Play icon ──────────────────────────────────────────────────── */
.rovd-play-icon {
	position:   absolute;
	top:        50%;
	left:       50%;
	transform:  translate(-50%, -50%);
	width:      34px;
	height:     34px;
	background: rgba(0, 170, 196, 0.2);
	border:     1px solid rgba(0, 170, 196, 0.5);
	border-radius: 50%;
	display:    flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	opacity:    0;
	transition: opacity 150ms ease;
	backdrop-filter: blur(4px);
}

.rovd-play-icon::after {
	content:     '';
	display:     block;
	width:       0;
	height:      0;
	border:      7px solid transparent;
	border-left: 12px solid #fff;
	margin-left: 3px;
}

.rovd-event-card:hover .rovd-play-icon,
.rovd-clip-thumb:hover .rovd-play-icon,
.rovd-clip-card:hover .rovd-play-icon {
	opacity: 1;
}

/* ── Pagination ─────────────────────────────────────────────────── */
.rovd-pagination {
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             1rem;
	margin-top:      1.25rem;
}

.rovd-page-btn {
	background:    var(--rov-surface);
	border:        1px solid var(--rov-border);
	border-radius: var(--rov-radius);
	color:         var(--rov-primary);
	font-size:     1rem;
	padding:       .3rem .9rem;
	cursor:        pointer;
	transition:    border-color 150ms ease, opacity 150ms ease;
}

.rovd-page-btn:hover:not(:disabled) {
	border-color: var(--rov-primary);
}

.rovd-page-btn:disabled {
	opacity: .3;
	cursor:  default;
}

.rovd-page-info {
	font-size:      .75rem;
	color:          var(--rov-muted);
	text-transform: uppercase;
	letter-spacing: .07em;
	min-width:      4rem;
	text-align:     center;
}

/* ── Clips grid ─────────────────────────────────────────────────── */
.rovd-clips-grid {
	display:               grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap:                   var(--rov-gap);
}

.rovd-clip-card {
	background:    var(--rov-surface);
	border:        1px solid var(--rov-border);
	border-radius: var(--rov-radius);
	overflow:      hidden;
	cursor:        pointer;
	transition:    border-color 150ms ease, box-shadow 150ms ease;
}

.rovd-clip-card:hover {
	border-color: var(--rov-primary);
	box-shadow:   0 0 12px var(--rov-primary-glow);
}

.rovd-clip-img-wrap {
	position:     relative;
	aspect-ratio: 16/9;
	background:   #000;
	overflow:     hidden;
}

.rovd-clip-img-wrap img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	display:    block;
}

.rovd-clip-footer {
	padding:    .45rem .75rem;
	border-top: 1px solid var(--rov-border);
}

.rovd-clip-station {
	font-size:     .74rem;
	color:         var(--rov-muted);
	white-space:   nowrap;
	overflow:      hidden;
	text-overflow: ellipsis;
}

.rovd-clip-meta-row {
	font-size:     .68rem;
	color:         var(--rov-primary);
	margin-top:    .18rem;
	white-space:   nowrap;
	overflow:      hidden;
	text-overflow: ellipsis;
}

/* ── +N more badge (events and clips) ───────────────────────────── */
.rovd-clip-more {
	position:       absolute;
	top:            .5rem;
	right:          .5rem;
	background:     rgba(0,0,0,.7);
	color:          #fff;
	font-size:      .72rem;
	font-weight:    600;
	padding:        .18rem .45rem;
	border-radius:  999px;
	backdrop-filter: blur(4px);
	border:         1px solid rgba(255,255,255,.15);
	pointer-events: none;
}

/* Timelapse cards still use the old thumbnail style */
.rovd-clip-thumb {
	position:      relative;
	aspect-ratio:  16/9;
	background:    var(--rov-surface);
	border:        1px solid var(--rov-border);
	border-radius: var(--rov-radius-sm);
	overflow:      hidden;
	cursor:        pointer;
	transition:    border-color 150ms ease, box-shadow 150ms ease;
}

.rovd-clip-thumb:hover {
	border-color: var(--rov-primary);
	box-shadow:   0 0 10px var(--rov-primary-glow);
}

.rovd-clip-thumb img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	display:    block;
}

.rovd-clip-meta {
	position:   absolute;
	bottom:     0;
	left:       0;
	right:      0;
	padding:    .3rem .4rem;
	background: linear-gradient(transparent, rgba(0,0,0,.85));
	font-size:  .63rem;
	color:      #bbb;
	white-space: nowrap;
	overflow:   hidden;
	text-overflow: ellipsis;
}

/* ── Timelapse grid (ranking card + hero + 4-up sub-grid) ───────── */
.rovd-tl-ranking-card,
.rovd-clips-header-card {
	margin-bottom: var(--rov-gap);
	padding:       .75rem 1rem;
}

.rovd-tl-ranking-title {
	font-size:      .85rem;
	font-weight:    600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color:          var(--rov-text);
	margin:         0;
}

.rovd-tl-rank-badge {
	position:       absolute;
	top:            .5rem;
	right:          .5rem;
	background:     var(--rov-primary);
	color:          #000;
	border-radius:  2rem;
	font-size:      .7rem;
	font-weight:    800;
	letter-spacing: .04em;
	padding:        .2rem .6rem;
	pointer-events: none;
}

.rovd-tl-hero {
	width:         100%;
	aspect-ratio:  16/7;
	margin-bottom: var(--rov-gap);
}

.rovd-tl-sub-grid {
	display:               grid;
	grid-template-columns: repeat(4, 1fr);
	gap:                   var(--rov-gap);
}

@media (max-width: 640px) {
	.rovd-tl-sub-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Timelapse card overlay (replaces .rovd-clip-meta for timelapses) */
.rovd-tl-overlay {
	position:   absolute;
	bottom:     0;
	left:       0;
	right:      0;
	padding:    .5rem .6rem .4rem;
	background: linear-gradient(transparent, rgba(0,0,0,.9));
}

.rovd-tl-label {
	font-size:     .7rem;
	color:         #ddd;
	margin-bottom: .25rem;
	white-space:   nowrap;
	overflow:      hidden;
	text-overflow: ellipsis;
}

.rovd-tl-stats {
	display:   flex;
	flex-wrap: wrap;
	gap:       .25rem .5rem;
}

.rovd-tl-stats span {
	font-size:      .6rem;
	color:          var(--rov-primary);
	text-transform: uppercase;
	letter-spacing: .04em;
}

/* ── Timelapse placeholder (when no thumbnail) ──────────────────── */
.rovd-timelapse-placeholder {
	width:      100%;
	height:     100%;
	background: linear-gradient(135deg, var(--rov-surface-alt) 0%, #0a090a 100%);
}

/* ── Modal ──────────────────────────────────────────────────────── */
.rovd-modal {
	position:        fixed;
	inset:           0;
	z-index:         99999;
	display:         flex;
	align-items:     center;
	justify-content: center;
}

.rovd-modal[hidden] {
	display: none;
}

.rovd-modal-backdrop {
	position:        absolute;
	inset:           0;
	background:      rgba(0,0,0,.88);
	backdrop-filter: blur(6px);
}

.rovd-modal-box {
	position:      relative;
	width:         min(92vw, 900px);
	background:    var(--rov-surface);
	border-radius: var(--rov-radius-lg);
	overflow:      hidden;
	border:        1px solid var(--rov-border-mid);
	box-shadow:    0 24px 64px rgba(0,0,0,.6);
}

.rovd-modal-close {
	position:        absolute;
	top:             .65rem;
	right:           .75rem;
	background:      var(--rov-surface-alt);
	border:          1px solid var(--rov-border-mid);
	color:           var(--rov-muted);
	font-size:       1.2rem;
	line-height:     1;
	width:           2rem;
	height:          2rem;
	border-radius:   50%;
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
	z-index:         1;
	transition:      background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.rovd-modal-close:hover {
	background:   var(--rov-primary-dim);
	border-color: var(--rov-primary);
	color:        #fff;
}

.rovd-modal-video-wrap {
	position:    relative;
	cursor:      pointer;
	line-height: 0;
	background:  #000;
}

.rovd-modal-video {
	width:        100%;
	display:      block;
	aspect-ratio: 16/9;
	background:   #000;
}

.rovd-modal-playbtn {
	position:        absolute;
	inset:           0;
	display:         flex;
	align-items:     center;
	justify-content: center;
	font-size:       2.5rem;
	color:           rgba(255,255,255,.9);
	opacity:         1;
	transition:      opacity 200ms ease;
	pointer-events:  none;
	text-shadow:     0 2px 12px rgba(0,0,0,.6);
}

.rovd-modal-video-wrap.vp-playing    .rovd-modal-playbtn { opacity: 0; }
.rovd-modal-video-wrap.vp-playing:hover .rovd-modal-playbtn { opacity: .35; }

/* ── Timeline ────────────────────────────────────────────────────── */
.rovd-modal-timeline {
	padding:     .55rem 1rem .35rem;
	background:  rgba(0,0,0,.25);
	border-top:  1px solid var(--rov-border);
}

.rovd-timeline-bar {
	position:     relative;
	height:       6px;
	background:   var(--rov-border);
	border-radius: 3px;
	margin:       .4rem 0 .25rem;
	cursor:       pointer;
}

.rovd-timeline-progress {
	position:      absolute;
	left:          0;
	top:           0;
	height:        100%;
	background:    rgba(0, 170, 196, .35);
	border-radius: 3px;
	pointer-events: none;
}

.rovd-timeline-playhead {
	position:  absolute;
	top:       -7px;
	width:     14px;
	height:    20px;
	transform: translateX(-50%);
	cursor:    grab;
	z-index:   2;
}

.rovd-timeline-playhead::after {
	content:       '';
	position:      absolute;
	left:          50%;
	top:           0;
	transform:     translateX(-50%);
	width:         2px;
	height:        100%;
	background:    #fff;
	border-radius: 1px;
}

.rovd-timeline-det-marker {
	position:      absolute;
	top:           -6px;
	width:         2px;
	height:        18px;
	background:    var(--rov-secondary);
	border-radius: 1px;
	pointer-events: none;
}

.rovd-timeline-det-marker::before {
	content:   '◆';
	position:  absolute;
	top:       -13px;
	left:      50%;
	transform: translateX(-50%);
	font-size: 8px;
	color:     var(--rov-secondary);
	line-height: 1;
}

.rovd-timeline-labels {
	display:     flex;
	justify-content: space-between;
	font-size:   .65rem;
	font-family: monospace;
	color:       var(--rov-muted);
	padding-top: .15rem;
}

.rovd-tl-det {
	color:       var(--rov-secondary);
	font-weight: 600;
	flex:        1;
	text-align:  center;
}

.rovd-modal-meta {
	padding:    .6rem 1rem;
	font-size:  .78rem;
	color:      var(--rov-muted);
	border-top: 1px solid var(--rov-border);
}

/* ── Modal nav & filmstrip ───────────────────────────────────────── */
.rovd-modal-video-wrap {
	position: relative;
}

.rovd-modal-nav {
	position:       absolute;
	top:            50%;
	transform:      translateY(-50%);
	background:     rgba(0,0,0,.55);
	border:         1px solid rgba(255,255,255,.15);
	color:          #fff;
	font-size:      1.6rem;
	line-height:    1;
	width:          2.25rem;
	height:         2.25rem;
	border-radius:  50%;
	cursor:         pointer;
	display:        flex;
	align-items:    center;
	justify-content: center;
	z-index:        2;
	transition:     background 150ms ease;
	backdrop-filter: blur(4px);
}

.rovd-modal-nav:hover {
	background: rgba(0, 170, 196, .45);
}

.rovd-modal-prev { left:  .75rem; }
.rovd-modal-next { right: .75rem; }

.rovd-modal-strip {
	display:        flex;
	gap:            .5rem;
	padding:        .65rem 1rem;
	overflow-x:     auto;
	border-top:     1px solid var(--rov-border);
	scrollbar-width: thin;
	scrollbar-color: var(--rov-border-mid) transparent;
}

.rovd-strip-thumb {
	flex:          0 0 80px;
	cursor:        pointer;
	border-radius: var(--rov-radius-sm);
	overflow:      hidden;
	border:        2px solid transparent;
	transition:    border-color 150ms ease;
}

.rovd-strip-thumb.active {
	border-color: var(--rov-primary);
}

.rovd-strip-thumb img {
	width:        100%;
	aspect-ratio: 16/9;
	object-fit:   cover;
	display:      block;
}

.rovd-strip-placeholder {
	width:        100%;
	aspect-ratio: 16/9;
	background:   var(--rov-surface-alt);
}

.rovd-strip-label {
	font-size:     .62rem;
	color:         var(--rov-muted);
	padding:       .2rem .3rem;
	white-space:   nowrap;
	overflow:      hidden;
	text-overflow: ellipsis;
	text-align:    center;
}

/* ── Orbits table ───────────────────────────────────────────────── */
.rovd-orbit-note {
	font-size:    .78rem;
	color:        var(--rov-muted);
	margin:       0 0 .75rem;
}

.rovd-orbits-table-wrap {
	overflow-x: auto;
	border:        1px solid var(--rov-border);
	border-radius: var(--rov-radius);
}

.rovd-orbits-table {
	width:           100%;
	border-collapse: collapse;
	font-size:       .82rem;
	white-space:     nowrap;
}

.rovd-orbits-table thead th {
	padding:        .55rem .85rem;
	text-align:     left;
	font-size:      .68rem;
	font-weight:    600;
	color:          var(--rov-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
	border-bottom:  1px solid var(--rov-border);
	background:     var(--rov-surface);
}

.rovd-orbit-row {
	cursor:     pointer;
	transition: background 120ms ease;
}

.rovd-orbit-row:hover {
	background: var(--rov-surface-alt);
}

.rovd-orbits-table tbody tr:not(.rovd-orbit-detail) + tr:not(.rovd-orbit-detail) td {
	border-top: 1px solid var(--rov-border);
}

.rovd-orbits-table td {
	padding:     .5rem .85rem;
	color:       var(--rov-text);
	border-top:  1px solid var(--rov-border);
}

.rovd-orbit-row:first-child td {
	border-top: none;
}

.rovd-orbit-time {
	color:     var(--rov-muted);
	font-size: .75rem;
}

.rovd-orbit-cams {
	font-size: .75rem;
	color:     var(--rov-primary);
}

.rovd-orbit-chevron {
	color:      var(--rov-muted);
	font-size:  1.1rem;
	text-align: center;
	width:      1.5rem;
	transition: transform 200ms ease;
}

/* Expanded detail row */
.rovd-orbit-detail td {
	border-top:  none;
	padding:     0 .85rem .85rem;
	background:  var(--rov-surface);
}

.rovd-orbit-details-grid {
	display:               grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap:                   .6rem .85rem;
	padding:               .75rem 0 .25rem;
	border-top:            1px solid var(--rov-border-mid);
}

.rovd-orbit-dg {
	display:        flex;
	flex-direction: column;
	gap:            .15rem;
}

.rovd-orbit-dl {
	font-size:      .65rem;
	color:          var(--rov-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
}

.rovd-orbit-dv {
	font-size:   .82rem;
	color:       #fff;
	font-weight: 500;
}

/* ── Loading / error ────────────────────────────────────────────── */
.rovd-loading {
	color:     var(--rov-muted);
	font-size: .85rem;
	padding:   1rem 0;
}

.rovd-error {
	color:         #f87171;
	font-size:     .82rem;
	padding:       .75rem 1rem;
	background:    rgba(248,113,113,.07);
	border-radius: var(--rov-radius-sm);
	border:        1px solid rgba(248,113,113,.2);
}

/* ── 3-D Orbit Globe ────────────────────────────────────────────── */
.rovd-globe-header-card {
	margin-bottom:   var(--rov-gap);
	padding:         .75rem 1rem;
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             .75rem;
	flex-wrap:       wrap;
}
.rovd-globe-ctrl-row {
	display:     flex;
	align-items: center;
	gap:         .35rem;
	flex-shrink: 0;
}
.rovd-globe-month-nav {
	font-size:   .75rem;
	color:       var(--rov-muted);
	min-width:   4.5rem;
	text-align:  center;
}
.rovd-globe-ctrl-btn {
	background:    rgba(0, 0, 0, .45);
	border:        1px solid var(--rov-border);
	border-radius: 4px;
	color:         var(--rov-text);
	font-size:     .8rem;
	padding:       .2rem .55rem;
	cursor:        pointer;
	line-height:   1.5;
	transition:    background 120ms, border-color 120ms;
}
.rovd-globe-ctrl-btn:hover:not(:disabled) {
	background:   rgba(0, 212, 245, .15);
	border-color: var(--rov-primary);
}
.rovd-globe-ctrl-btn:disabled { opacity: .3; cursor: not-allowed; }
.rovd-globe-ctrl-btn.active {
	background:   var(--rov-primary-dim);
	border-color: var(--rov-primary);
	color:        var(--rov-primary);
}

.rovd-globe-container {
	position:      relative;
	width:         100%;
	background:    #050e18;
	border-radius: var(--rov-radius);
	overflow:      hidden;
	cursor:        grab;
	user-select:   none;
	touch-action:  none;
}
.rovd-globe-container:active { cursor: grabbing; }

#rovd-globe-canvas { width: 100%; display: block; }

.rovd-globe-tooltip {
	position:       absolute;
	background:     rgba(0, 0, 0, .88);
	border:         1px solid var(--rov-border);
	border-radius:  4px;
	padding:        .35rem .65rem;
	font-size:      .72rem;
	color:          var(--rov-text);
	pointer-events: none;
	white-space:    nowrap;
	z-index:        10;
}

.rovd-globe-legend {
	position:       absolute;
	bottom:         .75rem;
	left:           1rem;
	display:        flex;
	flex-direction: column;
	gap:            .3rem;
}
.rovd-globe-leg-item {
	font-size:      .62rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color:          var(--rov-muted);
	padding-left:   .9rem;
	position:       relative;
}
.rovd-globe-leg-item::before {
	content:   '';
	position:  absolute;
	left:      0;
	top:       50%;
	transform: translateY(-50%);
	width:     .55rem;
	height:    2px;
}
.rovd-globe-leg-bright::before { background: #ffffff; }
.rovd-globe-leg-mid::before    { background: #00d4f5; }
.rovd-globe-leg-faint::before  { background: #005f70; }

.rovd-globe-zoom {
	position:       absolute;
	top:            .75rem;
	right:          .75rem;
	display:        flex;
	flex-direction: column;
	gap:            .25rem;
}
.rovd-globe-zoom-btn {
	width:           2rem;
	height:          2rem;
	background:      rgba(0, 0, 0, .55);
	border:          1px solid var(--rov-border);
	border-radius:   4px;
	color:           var(--rov-text);
	font-size:       1.15rem;
	line-height:     1;
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
}
.rovd-globe-zoom-btn:hover {
	background:    rgba(0, 212, 245, .15);
	border-color:  var(--rov-primary);
}

/* ── Orbit click hint ───────────────────────────────────────────── */
/* ── Globe row ──────────────────────────────────────────────────── */
.rovd-globe-row {
	display:     flex;
	gap:         var(--rov-gap);
	align-items: flex-start;
}
.rovd-globe-row .rovd-globe-container {
	flex:      1 1 0;
	min-width: 0;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 700px) {
	.rovd-events-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.rovimen-dashboard {
		overflow-x: hidden;
		width:      100%;
	}

	.rovd-map {
		height: 240px;
	}

	/* Stat rows: force 2-column grid so 4 cards always wrap to 2×2 */
	.rovd-stat-row {
		display:               grid;
		grid-template-columns: 1fr 1fr;
	}

	/* Prose cards always span the full row */
	.rovd-stat--prose {
		grid-column: 1 / -1;
	}

	.rovd-stat {
		padding: .85rem .7rem;
	}

	.rovd-stat-value {
		font-size: 1.35rem;
	}

	.rovd-stat-label {
		font-size: .65rem;
	}

	/* Main stats grid: single column */
	.rovd-stats {
		grid-template-columns: 1fr;
	}

	.rovd-events-grid {
		grid-template-columns: 1fr 1fr;
	}

	.rovd-clips-grid {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	}

	.rovd-cov-sections {
		flex-direction: column;
		gap:            var(--rov-gap);
	}

	.rovd-cov-section + .rovd-cov-section {
		padding-left: 0;
		border-left:  none;
		margin-left:  0;
	}

	.rovd-section-title {
		font-size: 1rem;
	}

	.rovd-night-sentence {
		font-size: .78rem;
	}

	.rovd-hof-grid {
		grid-template-columns: 1fr;
	}
}
