@media (max-width:768px){body{padding-bottom:calc(78px + min(env(safe-area-inset-bottom,0px),10px))}.nav-links,.nav-search-container,.banner-grid,.user-menu{display:none!important}.navbar{display:none!important}.mobile-search-container{position:relative!important;top:0!important;left:0!important;width:100%!important;z-index:30!important;padding-top:8px!important;padding-bottom:12px!important;margin-bottom:-68px!important;background:transparent!important}.mobile-search-container .container{display:flex;align-items:stretch;gap:12px;position:relative;z-index:30}.mobile-home-logo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 16px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-secondary);color:var(--primary);text-decoration:none;font-size:15px;font-weight:800;letter-spacing:0.08em;line-height:1;white-space:nowrap}.mobile-search-box,.mobile-search-wrapper{position:relative;z-index:30}.mobile-search-box{flex:1;min-width:0;width:auto;padding:0;border-radius:0;background:transparent;box-shadow:none}.mobile-search-wrapper{width:100%;height:48px;min-height:48px;border-radius:14px}body.video-page .video-detail,body.video-page .premium-layout{position:relative;z-index:1;padding-top:88px!important}}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:140;display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:62px;padding:8px 10px calc(8px + min(env(safe-area-inset-bottom,0px),10px));border-top:1px solid rgba(148,163,184,0.16);border-radius:18px 18px 0 0;background:rgba(31,41,55,0.96);box-shadow:0 -8px 24px rgba(15,23,42,0.12);backdrop-filter:blur(18px)}[data-theme="light"] .mobile-bottom-nav{background:rgba(255,255,255,0.96);border-top-color:rgba(148,163,184,0.24);box-shadow:0 -8px 22px rgba(15,23,42,0.08)}.mobile-bottom-tab{appearance:none;-webkit-appearance:none;border:none;background:transparent;color:var(--text-secondary);text-decoration:none;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:44px;margin:0;padding:7px 2px;border-radius:12px;font-size:11px;font-weight:600;line-height:1.2;font-family:inherit;letter-spacing:0.01em;position:relative;transition:transform 0.2s ease,background 0.2s ease,color 0.2s ease}.mobile-bottom-tab i{font-size:16px}.mobile-bottom-tab:focus-visible{outline:none}.mobile-bottom-tab.has-badge{padding-right:10px}.mobile-bottom-badge{position:absolute;top:4px;right:10px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:linear-gradient(135deg,#fb7185,#ef4444);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;box-shadow:0 10px 20px rgba(239,68,68,0.38)}.mobile-sheet-overlay{position:fixed;inset:0;z-index:135;background:rgba(15,23,42,0.5);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity 0.24s ease,visibility 0.24s ease}.mobile-sheet-overlay.active{opacity:1;visibility:visible}.mobile-menu-sheet{position:fixed;left:0;right:0;bottom:0;z-index:145;max-height:calc(100vh - 80px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 18px calc(88px + env(safe-area-inset-bottom,0px));border-radius:22px 22px 0 0;background:var(--bg-primary);box-shadow:0 -18px 40px rgba(15,23,42,0.22);transform:translateY(calc(100% + 24px));transition:transform 0.28s ease}.mobile-menu-sheet.active{transform:translateY(0)}.mobile-sheet-handle{width:54px;height:5px;border-radius:999px;background:var(--border-color);margin:0 auto 14px}.mobile-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.mobile-sheet-title{font-size:18px;font-weight:800;color:var(--text-primary)}.mobile-sheet-subtitle{margin-top:4px;font-size:12px;color:var(--text-secondary)}.mobile-sheet-close{width:38px;height:38px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-secondary);color:var(--text-primary);font-size:16px;cursor:pointer}.mobile-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mobile-menu-item{display:flex;align-items:center;gap:12px;min-height:68px;padding:14px 16px;border-radius:20px;border:1px solid var(--border-color);background:linear-gradient(180deg,var(--bg-secondary),var(--bg-primary));color:var(--text-primary);text-decoration:none;transition:transform 0.2s ease,box-shadow 0.2s ease,border-color 0.2s ease}.mobile-menu-item-button{width:100%;appearance:none;-webkit-appearance:none;font:inherit;text-align:left;cursor:pointer}.mobile-menu-item:hover,.mobile-menu-item:focus-visible{transform:translateY(-2px);box-shadow:0 14px 28px rgba(15,23,42,0.12);border-color:rgba(79,70,229,0.35);outline:none}.mobile-menu-icon{width:44px;height:44px;flex-shrink:0;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#6366f1,#06b6d4);box-shadow:0 12px 24px rgba(79,70,229,0.22);font-size:17px}.mobile-menu-text{display:flex;flex-direction:column;gap:2px;min-width:0}.mobile-menu-text strong{font-size:14px;line-height:1.3}.mobile-menu-text span{font-size:11px;line-height:1.4;color:var(--text-secondary)}.mobile-menu-item-danger .mobile-menu-icon{background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 12px 24px rgba(239,68,68,0.22)}.mobile-theme-toggle .mobile-menu-icon{background:linear-gradient(135deg,#8b5cf6,#4f46e5);box-shadow:0 12px 24px rgba(99,102,241,0.26)}.mobile-theme-toggle .mobile-menu-text span:last-child{color:var(--primary);font-weight:600}body.mobile-sheet-open{overflow:hidden}@media (min-width:769px){.mobile-bottom-nav,.mobile-sheet-overlay,.mobile-menu-sheet{display:none!important}}/* ===== 播出信息模块 ===== */
.broadcast-info-module {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 12px 14px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    backdrop-filter: blur(8px);
    position: relative;
    overflow: hidden;
}
[data-theme="light"] .broadcast-info-module {
    background: #F8F7F4;
    border-color: rgba(0,0,0,0.07);
}

.bc-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1;
    min-width: 0;
}
.bc-row-label {
    font-size: 12px;
    color: var(--text-tertiary);
    flex-shrink: 0;
    font-weight: 500;
}
.bc-platform-tag {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 600;
    background: color-mix(in srgb, var(--ptag-color, #94a3b8) 14%, transparent);
    color: var(--ptag-color, #cbd5e1);
    white-space: nowrap;
    line-height: 1.5;
    flex-shrink: 0;
}
[data-theme="light"] .bc-platform-tag {
    background: color-mix(in srgb, var(--ptag-color, #94a3b8) 12%, transparent);
}
.bc-sep {
    color: var(--text-tertiary);
    font-size: 12px;
    opacity: 0.5;
    flex-shrink: 0;
}
.bc-schedule-text {
    font-size: 12.5px;
    color: var(--text-secondary);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}


/* 编辑按钮 */
.bc-edit-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 6px;
    color: rgba(255,255,255,0.6);
    font-size: 11px;
    padding: 4px 10px;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.bc-edit-btn:hover {
    background: rgba(124,58,237,0.2);
    border-color: rgba(124,58,237,0.4);
    color: #c084fc;
}
[data-theme="light"] .bc-edit-btn {
    background: rgba(0,0,0,0.05);
    border-color: rgba(0,0,0,0.1);
    color: #64748b;
}
[data-theme="light"] .bc-edit-btn:hover {
    background: rgba(124,58,237,0.08);
    color: #7c3aed;
}

/* 管理员空态 */
.bc-empty-admin {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
    padding-right: 66px;
}

/* ===== 播出信息 Dialog（完全独立，不继承任何外部modal类）===== */
#broadcastModal {
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.7);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
#broadcastModal.active {
    display: flex;
}
#broadcastModal * { box-sizing: border-box; }
.bc-dialog {
    position: relative;
    width: 92%;
    max-width: 460px;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    background: var(--bg-primary);
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
    overflow: hidden;
    animation: bcDialogIn 0.25s ease-out;
}
@keyframes bcDialogIn {
    from { opacity: 0; transform: scale(0.95) translateY(-10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}
.bc-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-color);
    flex-shrink: 0;
}
.bc-dialog-title {
    font-size: 16px;
    font-weight: 700;
    margin: 0;
    color: var(--text-primary);
}
.bc-dialog-close {
    background: none;
    border: none;
    font-size: 22px;
    cursor: pointer;
    color: var(--text-secondary);
    width: 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    transition: all 0.2s;
    line-height: 1;
}
.bc-dialog-close:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
}
.bc-dialog-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}
.bc-dialog-footer {
    display: flex;
    gap: 8px;
    padding: 14px 20px;
    border-top: 1px solid var(--border-color);
    flex-shrink: 0;
    background: var(--bg-primary);
}
.bc-dialog-btn {
    flex: 1;
    height: 38px;
    padding: 0 12px;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.bc-btn-primary {
    background: linear-gradient(135deg,#7c3aed,#6d28d9);
    color: #fff;
}
.bc-btn-primary:hover { opacity: 0.9; }
.bc-btn-secondary {
    background: var(--bg-secondary);
    color: var(--text-primary);
}
.bc-btn-secondary:hover { background: var(--bg-tertiary); }

/* Modal 内容区块 */
.bc-modal-section {
    margin-bottom: 18px;
}
.bc-modal-section:last-child { margin-bottom: 0; }
.bc-modal-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 10px;
}

/* 平台多选 */
.bc-platform-checkboxes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.bc-pcheck {
    position: relative;
    cursor: pointer;
}
.bc-pcheck input { display: none; }
.bc-pcheck-inner {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 12px;
    background: var(--bg-secondary);
    border: 2px solid transparent;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    transition: all 0.2s;
    cursor: pointer;
    user-select: none;
}
.bc-pcheck-inner:hover {
    border-color: var(--pcheck-color, rgba(124,58,237,0.4));
    background: var(--bg-tertiary);
}
.bc-pcheck.checked .bc-pcheck-inner {
    border-color: var(--pcheck-color, #7c3aed);
    background: rgba(124,58,237,0.08);
    color: var(--text-primary);
}

/* 更新频率单选 */
.bc-radio-group {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.bc-radio-label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--bg-secondary);
    border: 2px solid transparent;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    user-select: none;
    color: var(--text-primary);
}
.bc-radio-label input { accent-color: #7c3aed; }
.bc-radio-label:has(input:checked) {
    border-color: #7c3aed;
    background: rgba(124,58,237,0.08);
}

/* 周几选择 */
.bc-day-checkboxes {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.bc-daychk {
    position: relative;
    cursor: pointer;
}
.bc-daychk input { display: none; }
.bc-daychk > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 36px;
    background: var(--bg-secondary);
    border: 2px solid transparent;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    transition: all 0.2s;
    cursor: pointer;
    user-select: none;
}
.bc-daychk > span:hover {
    border-color: rgba(124,58,237,0.4);
    color: var(--text-primary);
}
.bc-daychk.checked > span {
    border-color: #7c3aed;
    background: rgba(124,58,237,0.15);
    color: #c084fc;
}

/* 时间输入 */
.bc-time-input {
    width: 160px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: 14px;
    transition: all 0.2s;
    outline: none;
}
.bc-time-input:focus {
    border-color: #7c3aed;
    box-shadow: 0 0 0 3px rgba(124,58,237,0.1);
}

/* 移动端适配 */
@media (max-width: 768px) {
    .broadcast-info-module {
        padding: 10px 12px;
        gap: 6px;
        margin-top: 14px;
    }
    .bc-row {
        gap: 5px;
    }
    .bc-edit-btn {
        top: 9px;
        right: 9px;
        font-size: 11px;
        padding: 3px 8px;
    }
    .bc-platform-tag {
        font-size: 10.5px;
        padding: 2px 7px;
    }
    .bc-schedule-text {
        font-size: 11.5px;
    }
    .bc-platform-checkboxes {
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }
    .bc-pcheck-inner {
        padding: 7px 10px;
        font-size: 12px;
    }
    .bc-radio-group { gap: 6px; }
    .bc-radio-label { padding: 7px 10px; font-size: 12px; }
    .bc-daychk > span { width: 40px; height: 32px; font-size: 11px; }
    .bc-day-checkboxes { gap: 4px; }
    .bc-dialog { width: 96%; max-height: 88vh; }
    .bc-dialog-header { padding: 14px 16px; }
    .bc-dialog-body { padding: 14px 16px; }
    .bc-dialog-footer { padding: 12px 16px; gap: 6px; }
    .bc-dialog-btn { font-size: 12px; height: 36px; }
}

/* ===== 豆瓣评分一键获取 ===== */
.dr-search-row {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}
.dr-search-input {
    flex: 1;
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: 14px;
    outline: none;
    transition: all 0.2s;
    min-width: 0;
}
.dr-search-input:focus {
    border-color: #7c3aed;
    box-shadow: 0 0 0 3px rgba(124,58,237,0.1);
}
.dr-search-btn {
    flex-shrink: 0;
    height: 38px;
    padding: 0 16px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg,#7c3aed,#6d28d9);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: opacity 0.2s;
    white-space: nowrap;
}
.dr-search-btn:hover { opacity: 0.9; }

.dr-results-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 260px;
    overflow-y: auto;
}
.dr-result-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: var(--bg-secondary);
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
}
.dr-result-item:hover {
    border-color: rgba(124,58,237,0.4);
    background: rgba(124,58,237,0.06);
}
.dr-result-item.dr-loading-item {
    opacity: 0.6;
    pointer-events: none;
}
.dr-result-img {
    width: 40px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    flex-shrink: 0;
    background: var(--bg-tertiary);
}
.dr-result-img-empty {
    display: flex;
    align-items: center;
    justify-content: center;
}
.dr-result-info {
    flex: 1;
    min-width: 0;
}
.dr-result-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dr-result-sub {
    font-size: 11.5px;
    color: var(--text-tertiary);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dr-result-arrow {
    flex-shrink: 0;
    color: var(--text-tertiary);
    font-size: 12px;
}
.dr-loading, .dr-empty {
    text-align: center;
    padding: 20px;
    color: var(--text-tertiary);
    font-size: 13px;
}

.dr-score-input {
    width: 140px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: 16px;
    font-weight: 600;
    outline: none;
    transition: all 0.2s;
}
.dr-score-input:focus {
    border-color: #7c3aed;
    box-shadow: 0 0 0 3px rgba(124,58,237,0.1);
}
.dr-score-hint {
    margin-top: 8px;
    font-size: 12px;
    color: var(--text-tertiary);
    min-height: 16px;
}
.dr-score-hint-success {
    color: #34d399;
}

@media (max-width: 768px) {
    .dr-search-row { flex-direction: column; }
    .dr-search-btn { width: 100%; }
    .dr-result-img { width: 34px; height: 48px; }
    .dr-result-title { font-size: 12.5px; }
    .dr-result-sub { font-size: 11px; }
}