/* Sun Videos — frontend */
.sun-vid-wrapper { --v-primary:#1565c0; --v-dark:#0d47a1; --v-gray:#eee; --v-g6:#666; --v-radius:8px; box-sizing:border-box; }
.sun-vid-wrapper *, .sun-vid-wrapper *::before, .sun-vid-wrapper *::after { box-sizing:inherit; }

.sun-vid-filters { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; background:#f4f4f4; border-radius:var(--v-radius); padding:14px; margin-bottom:16px; }
.sun-vid-fg { display:flex; flex-direction:column; gap:5px; }
.sun-vid-fg label { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--v-g6); }
.sun-vid-fg input, .sun-vid-fg select { height:38px; padding:0 10px; border:1px solid #ccc; border-radius:var(--v-radius); background:#fff; min-width:190px; }
.sun-vid-fg-actions { flex-direction:row; gap:8px; }

.sun-vid-btn { display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 16px; border:none; border-radius:var(--v-radius); font-weight:600; font-size:.9rem; cursor:pointer; text-decoration:none; }
.sun-vid-btn-primary { background:var(--v-primary); color:#fff; }
.sun-vid-btn-secondary { background:#cfcfcf; color:var(--v-dark); }
.sun-vid-btn-dl { background:var(--v-dark); color:#fff !important; height:auto; padding:6px 14px; font-size:.8rem; border-radius:4px; }
.sun-vid-btn:hover { opacity:.88; }

.sun-vid-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.sun-vid-count { font-size:.85rem; color:var(--v-g6); }
.sun-vid-views { display:flex; gap:6px; }
.sun-vid-vbtn { width:36px; height:36px; border:1px solid #ccc; border-radius:var(--v-radius); background:#fff; cursor:pointer; font-size:16px; line-height:1; }
.sun-vid-vbtn.active { background:var(--v-primary); color:#fff; border-color:var(--v-primary); }

.sun-vid-loading, .sun-vid-empty { text-align:center; padding:44px; color:var(--v-g6); }
.sun-vid-spin { display:inline-block; width:20px; height:20px; border:3px solid #ccc; border-top-color:var(--v-primary); border-radius:50%; animation:sun-vid-spin .7s linear infinite; vertical-align:middle; }
@keyframes sun-vid-spin { to { transform:rotate(360deg); } }

/* GRID JUSTIFICADO — horizontales y verticales en la misma rejilla (tipo Google
   Imágenes). Cada card crece proporcional a su relación de aspecto, de modo que
   todos los de una fila terminan con la misma altura sin deformarse. */
.sun-vid-justified {
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
	gap:14px;
	--row-h:210px;
}
.sun-vid-justified::after {           /* absorbe el hueco de la última fila */
	content:"";
	flex-grow:999999;
}
.sun-vid-card {
	flex-grow:var(--ar, 1.7778);
	flex-basis:calc(var(--ar, 1.7778) * var(--row-h));
	flex-shrink:1;
	min-width:150px;
	max-width:100%;
	background:#fff;
	border-radius:var(--v-radius);
	box-shadow:0 2px 8px rgba(0,0,0,.12);
	overflow:hidden;
	display:flex;
	flex-direction:column;
}
.sun-vid-media { width:100%; aspect-ratio:var(--ar, 1.7778); background:#000; }
.sun-vid-player { width:100%; height:100%; display:block; background:#000; object-fit:cover; }
.sun-vid-title {
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

@media (max-width:900px) { .sun-vid-justified { --row-h:170px; } }
@media (max-width:600px) { .sun-vid-justified { --row-h:132px; gap:10px; } }
.sun-vid-body { padding:12px; display:flex; flex-direction:column; gap:8px; }
.sun-vid-title { font-size:.98rem; font-weight:700; margin:0; line-height:1.35; }
.sun-vid-title a { color:inherit; text-decoration:none; }
.sun-vid-title a:hover { color:var(--v-primary); }
.sun-vid-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 10px; font-size:.78rem; color:var(--v-g6); }
/* En cards angostos (vertical) la fecha y el botón se apilan para no empalmarse. */
.sun-vid-card.is-vertical .sun-vid-meta { flex-direction:column; align-items:stretch; }
.sun-vid-card.is-vertical .sun-vid-btn-dl { justify-content:center; text-align:center; }

/* LIST */
.sun-vid-list-container { display:flex; flex-direction:column; gap:16px; }
.sun-vid-row { display:flex; gap:16px; background:#fff; border-radius:var(--v-radius); box-shadow:0 2px 8px rgba(0,0,0,.12); padding:12px; }
.sun-vid-row-media { flex:0 0 320px; max-width:42%; aspect-ratio:16/9; background:#000; border-radius:6px; overflow:hidden; }
.sun-vid-row.is-vertical .sun-vid-row-media { flex-basis:210px; max-width:32%; aspect-ratio:9/16; }
.sun-vid-row-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.sun-vid-excerpt { margin:0; font-size:.85rem; color:#555; }
.sun-vid-cat::before { content:"•"; margin:0 6px; }
.sun-vid-row-actions { flex-shrink:0; display:flex; align-items:flex-start; }

.sun-vid-pagination { display:flex; justify-content:center; gap:6px; margin-top:24px; flex-wrap:wrap; }
.sun-vid-pbtn { min-width:36px; height:36px; padding:0 10px; border:1px solid #ccc; border-radius:var(--v-radius); background:#fff; font-weight:600; cursor:pointer; }
.sun-vid-pbtn.active, .sun-vid-pbtn:hover { background:var(--v-primary); color:#fff; border-color:var(--v-primary); }
.sun-vid-pbtn:disabled { opacity:.4; cursor:not-allowed; }
.sun-vid-ell { align-self:center; color:var(--v-g6); }

/* Detalle del post */
.sun-vid-single { margin:24px 0; }
.sun-vid-single .sun-vid-player { width:100%; max-height:70vh; aspect-ratio:16/9; border-radius:var(--v-radius); }
.sun-vid-single-actions { margin-top:12px; }

@media (max-width:640px) {
	.sun-vid-filters { flex-direction:column; align-items:stretch; }
	.sun-vid-fg input, .sun-vid-fg select { min-width:0; width:100%; }
	.sun-vid-row { flex-direction:column; }
	.sun-vid-row-media { flex-basis:auto; max-width:none; width:100%; }
}
