/**
 * Easy Video Embed - 前端样式
 * 浏览器兼容性：IE11+, Edge, Chrome, Firefox, Safari, Opera
 */

/* ==================== 视频容器 ==================== */
.eve-video-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 20px 0;
    background: #000;
    border-radius: 0;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    /* 浏览器兼容性前缀 */
    -webkit-box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* ==================== 响应式容器 ==================== */
.eve-video-container.eve-responsive {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 宽高比 */
    height: 0;
    overflow: hidden;
}

.eve-video-container.eve-responsive.ratio-4-3 {
    padding-bottom: 75%; /* 4:3 宽高比 */
}

.eve-video-container.eve-responsive.ratio-21-9 {
    padding-bottom: 42.86%; /* 21:9 宽高比 */
}

.eve-video-container.eve-responsive.ratio-1-1 {
    padding-bottom: 100%; /* 1:1 宽高比 */
}

/* ==================== iframe样式 ==================== */
.eve-video-container iframe.eve-video-iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.eve-video-container:not(.eve-responsive) iframe.eve-video-iframe {
    position: relative;
    width: 100%;
    height: 500px;
}

/* ==================== HTML5 video样式 ==================== */
.eve-video-container video.eve-video-player {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* 浏览器兼容性 */
    -o-object-fit: contain;
}

.eve-video-container:not(.eve-responsive) video.eve-video-player {
    position: relative;
    width: 100%;
    height: auto;
}

/* ==================== 加载动画 ==================== */
.eve-video-container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50px;
    height: 50px;
    margin: -25px 0 0 -25px;
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: eve-spin 1s linear infinite;
    z-index: 1;
}

.eve-video-container.eve-loaded::before {
    display: none;
}

@keyframes eve-spin {
    to { 
        transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -o-transform: rotate(360deg);
    }
}

/* ==================== 错误提示 ==================== */
.eve-error {
    padding: 15px 20px;
    background: #fee;
    border-left: 4px solid #c33;
    color: #c33;
    border-radius: 4px;
    margin: 20px 0;
}

/* ==================== 移动端优化 ==================== */
/* 平板设备 */
@media (max-width: 1024px) {
    .eve-video-container {
        margin: 18px 0;
    }
    
    .eve-video-container:not(.eve-responsive) iframe.eve-video-iframe,
    .eve-video-container:not(.eve-responsive) video.eve-video-player {
        height: 400px;
    }
}

/* 手机横屏 */
@media (max-width: 768px) {
    .eve-video-container {
        margin: 15px 0;
        border-radius: 0;
    }
    
    .eve-video-container:not(.eve-responsive) iframe.eve-video-iframe,
    .eve-video-container:not(.eve-responsive) video.eve-video-player {
        height: 300px;
    }
    
    /* 移动端触摸优化 */
    .eve-video-container {
        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
    }
}

/* 手机竖屏 */
@media (max-width: 480px) {
    .eve-video-container {
        margin: 10px 0;
        border-radius: 0;
    }
    
    .eve-video-container:not(.eve-responsive) iframe.eve-video-iframe,
    .eve-video-container:not(.eve-responsive) video.eve-video-player {
        height: 250px;
    }
    
    /* 小屏幕优化 */
    .eve-video-container::before {
        width: 40px;
        height: 40px;
        margin: -20px 0 0 -20px;
        border-width: 3px;
    }
}

/* 超小屏幕 */
@media (max-width: 360px) {
    .eve-video-container:not(.eve-responsive) iframe.eve-video-iframe,
    .eve-video-container:not(.eve-responsive) video.eve-video-player {
        height: 200px;
    }
}

/* iOS设备特定优化 */
@supports (-webkit-touch-callout: none) {
    .eve-video-container video.eve-video-player {
        -webkit-playsinline: true;
        -webkit-media-controls-start-playback-button: true;
    }
}

/* Android设备特定优化 */
@media screen and (max-width: 768px) and (orientation: portrait) {
    .eve-video-container.eve-responsive {
        /* 确保在竖屏模式下正确显示 */
        max-height: 70vh;
    }
}

@media screen and (max-width: 768px) and (orientation: landscape) {
    .eve-video-container.eve-responsive {
        /* 横屏模式优化 */
        max-height: 90vh;
    }
}

/* ==================== 全屏支持 ==================== */
.eve-video-container:-webkit-full-screen {
    width: 100%;
    height: 100%;
}

.eve-video-container:-moz-full-screen {
    width: 100%;
    height: 100%;
}

.eve-video-container:-ms-fullscreen {
    width: 100%;
    height: 100%;
}

.eve-video-container:fullscreen {
    width: 100%;
    height: 100%;
}

/* ==================== 平台特定样式 ==================== */
.eve-video-container[data-type="bilibili"] {
    border: 2px solid #00a1d6;
}

.eve-video-container[data-type="youku"] {
    border: 2px solid #00a0e9;
}

.eve-video-container[data-type="tencent"] {
    border: 2px solid #ff6c00;
}

.eve-video-container[data-type="taobao"] {
    border: 2px solid #ff6a00;
}

.eve-video-container[data-type="mp4"] {
    border: 2px solid #666;
}

/* ==================== 移动端全屏按钮 ==================== */
.eve-fullscreen-btn {
    position: absolute;
    bottom: 10px;
    right: 10px;
    width: 44px;
    height: 44px;
    background: rgba(0, 0, 0, 0.7);
    border: 2px solid rgba(255, 255, 255, 0.8);
    border-radius: 8px;
    color: #fff;
    font-size: 20px;
    line-height: 40px;
    text-align: center;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.eve-fullscreen-btn:hover,
.eve-fullscreen-btn:active {
    background: rgba(0, 0, 0, 0.9);
    border-color: #fff;
    transform: scale(1.1);
    -webkit-transform: scale(1.1);
    -moz-transform: scale(1.1);
}

.eve-fullscreen-btn:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* 全屏状态下隐藏按钮 */
.eve-video-container:-webkit-full-screen .eve-fullscreen-btn,
.eve-video-container:-moz-full-screen .eve-fullscreen-btn,
.eve-video-container:-ms-fullscreen .eve-fullscreen-btn,
.eve-video-container:fullscreen .eve-fullscreen-btn {
    display: none;
}

/* ==================== 悬停效果 ==================== */
.eve-video-container {
    transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
}

.eve-video-container:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
    -moz-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
    transform: translateY(-2px);
    -webkit-transform: translateY(-2px);
    -moz-transform: translateY(-2px);
    -ms-transform: translateY(-2px);
    -o-transform: translateY(-2px);
}

/* ==================== IE11兼容性 ==================== */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    .eve-video-container.eve-responsive {
        height: 0;
        padding-bottom: 56.25%;
    }
    
    .eve-video-container iframe,
    .eve-video-container video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
}
