:root{--bg:#0c0c0f;--surface:#16161b;--surface2:#1e1e25;--border:#2a2a35;--text:#e8e6f0;--text-dim:#7a7888;--accent:#f0a040;--accent-light:#f5d090;--accent-glow:rgba(240,160,64,0.15);--highlight-bg:rgba(240,160,64,0.12);--highlight-text:#f5c06a;--green:#5ec49e;--red:#e85a6f;--blue:#5e9ec4;color-scheme:dark}
*{scrollbar-color:var(--border) transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}
html.light{--bg:#f4f2ef;--surface:#ffffff;--surface2:#f0ede8;--border:#ddd8d0;--text:#1c1a17;--text-dim:#7a7570;--accent:#c07820;--accent-light:#9a6018;--accent-glow:rgba(192,120,32,0.12);--highlight-bg:rgba(192,120,32,0.15);--highlight-text:#8a5510;--green:#2a8a60;--red:#c43a4f;--blue:#3a6ea8;color-scheme:light}
html.light .portrait{border-color:var(--accent);box-shadow:0 4px 24px rgba(192,120,32,.15)}
html.light .header h1{background:linear-gradient(135deg,#b06a10,#c07820);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
html.light .player-wrapper{box-shadow:0 -8px 48px rgba(0,0,0,.15)}
html.light .video-container{background:#111}
html.light .suggest-overlay{background:rgba(0,0,0,.35)}
/* === Sidebar === */
.sidebar{position:fixed;left:0;top:0;width:280px;height:100vh;height:100dvh;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;z-index:1100;transform:translateX(-100%);transition:transform .3s ease;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom,0)}
.sidebar.open{transform:translateX(0)}
.sidebar-header{padding:18px 16px 12px;padding-top:calc(18px + env(safe-area-inset-top,0));border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface);z-index:1}
.sidebar-header h3{font-size:.95rem;font-weight:700;color:var(--text);margin:0}
.sidebar-close{background:none;border:none;color:var(--text-dim);font-size:1.3rem;cursor:pointer;padding:0 4px}
.sidebar-close:hover{color:var(--text)}
.sidebar-section{padding:8px 0}
.sidebar-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:8px 16px 4px}
.sb-year{cursor:pointer;padding:5px 16px;font-size:.78rem;font-weight:400;color:var(--text);display:flex;align-items:center;gap:5px;user-select:none;transition:background .2s;line-height:1.3}
.sb-year:hover{background:var(--accent-glow)}
.sb-year-arrow{font-size:.6rem;transition:transform .2s;color:var(--text-dim)}
.sb-year.open .sb-year-arrow{transform:rotate(90deg)}
.sb-year-children{display:none;padding-left:8px}
.sb-year.open+.sb-year-children{display:block}
.sb-lecture{cursor:pointer;padding:5px 16px;font-size:.78rem;color:var(--text);display:flex;align-items:center;gap:5px;user-select:none;transition:background .2s;line-height:1.3}
.sb-lecture:hover{background:var(--surface2)}
.sb-lecture-arrow{font-size:.55rem;color:var(--text-dim);transition:transform .2s;flex-shrink:0}
.sb-lecture.open .sb-lecture-arrow{transform:rotate(90deg)}
.sb-lecture-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-parts{display:none;padding:2px 0 4px 28px}
.sb-lecture.open+.sb-parts{display:block}
.sb-part{cursor:pointer;padding:3px 12px;font-size:.72rem;font-family:JetBrains Mono,monospace;color:var(--text-dim);border-radius:4px;display:inline-block;transition:all .2s;margin:1px 2px}
.sb-part:hover{background:var(--accent-glow);color:var(--accent)}
.sb-part.active{background:var(--accent);color:#fff}
.sidebar-toggle{display:none}
.sidebar.open~.sidebar-toggle{display:none}
.sidebar-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:1050}
.sidebar-backdrop.active{display:block}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Outfit,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:0}
body.has-results{display:block;padding-bottom:80px}
body.player-open{padding-bottom:360px}
.container{max-width:960px;margin:0 auto;padding:48px 24px;position:relative;z-index:1;transition:margin-left .3s;width:100%}
/* Homepage centered state */
body:not(.has-results) .container{display:flex;flex-direction:column;align-items:center;max-width:640px;padding-top:0;padding-bottom:0}
body:not(.has-results) .search-options,
body:not(.has-results) .tabs,
body:not(.has-results) #results,
body:not(.has-results) .lecture-detail{display:none!important}
body:not(.has-results) .search-wrapper{width:100%}
body:not(.has-results) .portrait{width:90px;height:90px;border-width:3px}
body:not(.has-results) .header h1{font-size:2rem}
body:not(.has-results) .header .subtitle{font-size:.95rem}
body:not(.has-results) .header{margin-bottom:24px}
.header{text-align:center;margin-bottom:40px}
.portrait{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid var(--accent);box-shadow:0 4px 24px rgba(240,160,64,.2);margin-bottom:16px;opacity:0;animation:fadeIn .8s ease forwards}
.header h1{font-size:2.2rem;font-weight:900;letter-spacing:-1px;background:linear-gradient(135deg,var(--accent),var(--accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px;opacity:0;animation:fadeIn .8s ease .2s forwards}
.header .subtitle{color:var(--text-dim);font-weight:300;font-size:1.05rem;opacity:0;animation:fadeIn .8s ease .4s forwards}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.stats{display:flex;gap:24px;margin-bottom:28px;flex-wrap:wrap;opacity:0;animation:fadeIn .8s ease .5s forwards}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 20px;flex:1;min-width:120px}
.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:4px}
.stat-value{font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:600;color:var(--accent)}
.search-wrapper{position:relative;margin-bottom:16px;opacity:0;animation:fadeIn .8s ease .6s forwards}
.search-row{display:flex;gap:10px}
.search-input{flex:1;padding:18px 24px;background:var(--surface);border:2px solid var(--border);border-radius:14px;color:var(--text);font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:300;outline:none;transition:all .3s ease}
.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}
.search-input::placeholder{color:var(--text-dim)}
.random-row{display:flex;justify-content:center;margin-top:12px}
.random-btn{background:var(--surface);border:2px solid var(--border);border-radius:14px;color:var(--accent);cursor:pointer;padding:10px 24px;font-size:1.1rem;transition:all .3s;display:flex;align-items:center;gap:8px;white-space:nowrap}
.random-btn:hover{border-color:var(--accent);background:var(--accent-glow)}
.random-btn:disabled{opacity:.3;cursor:default}
.random-btn span{font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600}
.search-options{display:flex;gap:20px;margin-top:12px;align-items:center;flex-wrap:wrap}
.search-options label{display:flex;align-items:center;gap:6px;font-size:.88rem;color:var(--text-dim);cursor:pointer;user-select:none}
.search-options input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}
.result-count{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text-dim);margin-left:auto}
.result-count span{color:var(--accent);font-weight:600}
.tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--border)}
.tab{padding:12px 24px;font-size:.9rem;font-weight:600;color:var(--text-dim);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;user-select:none}
.tab:hover{color:var(--text)}
.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.tab .tab-count{font-family:JetBrains Mono,monospace;font-size:.72rem;background:var(--accent-glow);color:var(--accent);padding:2px 8px;border-radius:10px;margin-left:8px}
.tab.book-tab .tab-count{background:rgba(94,158,196,.12);color:var(--blue)}
.tab.book-tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.results{display:flex;flex-direction:column;gap:16px}
.result-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:all .2s ease}
.result-card:hover{border-color:var(--accent);box-shadow:0 4px 24px rgba(0,0,0,.3)}
.result-card.book-card:hover{border-color:var(--blue)}
.result-filename{padding:14px 18px;font-weight:600;font-size:.95rem;background:var(--surface2);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none}
.result-filename:hover{background:rgba(30,30,37,.8)}
.result-filename .open-icon{font-size:.7rem;color:var(--text-dim);margin-left:6px;opacity:0;transition:opacity .2s}
.result-filename:hover .open-icon{opacity:1}
.badge{font-family:JetBrains Mono,monospace;font-size:.72rem;background:var(--accent-glow);color:var(--accent);padding:3px 10px;border-radius:20px;font-weight:600;white-space:nowrap}
.badge.book-badge{background:rgba(94,158,196,.12);color:var(--blue)}
.file-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}
.result-matches{padding:0;max-height:600px;overflow-y:auto}
.result-matches::-webkit-scrollbar{width:6px}
.result-matches::-webkit-scrollbar-track{background:transparent}
.result-matches::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.match-line{padding:10px 18px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6;border-bottom:1px solid rgba(42,42,53,.5);display:flex;gap:16px;cursor:pointer;transition:background .15s}
.match-line:last-child{border-bottom:none}
.match-line:hover{background:rgba(240,160,64,.06)}
.match-line.book-line{cursor:pointer;flex-direction:column;gap:4px;padding:14px 20px;border-bottom:1px solid var(--border)}
.match-line.book-line:hover{background:rgba(94,158,196,.06)}
.match-line.book-line.expanded{background:rgba(94,158,196,.04)}
.book-chapter-tag{font-size:.72rem;font-family:Outfit,sans-serif;color:var(--text-dim);font-weight:300}
.match-line.book-line .line-text{font-family:Outfit,sans-serif;font-size:1rem;line-height:1.7;color:var(--text-dim);font-weight:300}
.match-line.book-line .line-text .ellipsis{color:var(--text-dim);opacity:.4}
.match-line.book-line .line-text mark{background:transparent;color:var(--accent-light);padding:0;border-radius:0;font-weight:600;text-decoration:underline;text-decoration-color:rgba(240,160,64,.4);text-underline-offset:3px}
.match-line.book-line .book-full-text{color:var(--text);font-weight:400;font-size:1.02rem;line-height:1.85;padding-top:6px}
.line-timestamp{color:var(--green);white-space:nowrap;min-width:80px;font-size:.78rem;padding-top:1px;flex-shrink:0}
.line-chapter{color:var(--blue);white-space:nowrap;font-size:.72rem;padding-top:1px;min-width:60px}
.line-text{color:var(--text);word-break:break-word}
.line-text mark{background:var(--highlight-bg);color:var(--highlight-text);padding:1px 4px;border-radius:3px;font-weight:600}
.context-panel{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin:6px 12px 12px;padding:0;overflow:hidden;animation:slideDown .2s ease}
@keyframes slideDown{from{opacity:0;max-height:0}to{opacity:1;max-height:600px}}
.context-line{padding:8px 16px;font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.6;display:flex;gap:14px;border-bottom:1px solid rgba(42,42,53,.3);transition:background .15s;cursor:pointer}
.context-line:last-child{border-bottom:none}
.context-line:hover{background:rgba(240,160,64,.05)}
.context-line.is-match{background:rgba(240,160,64,.08);border-left:3px solid var(--accent)}
.context-line .ctx-ts{color:var(--green);white-space:nowrap;min-width:80px;font-size:.75rem;flex-shrink:0}
.context-line .ctx-text{color:var(--text-dim);word-break:break-word}
.context-line.is-match .ctx-text{color:var(--text)}
.ctx-load-btn{padding:8px 16px;font-family:Outfit,sans-serif;font-size:.78rem;color:var(--accent);cursor:pointer;text-align:center;transition:background .15s;border-bottom:1px solid rgba(42,42,53,.3)}
.ctx-load-btn:hover{background:var(--accent-glow)}
.ctx-open-full{color:var(--blue);border-bottom:none}
.empty-state{text-align:center;padding:64px 24px;color:var(--text-dim)}
.empty-state .emoji{font-size:3rem;margin-bottom:16px;opacity:.5}
.loading{text-align:center;padding:20px;color:var(--text-dim);font-size:.9rem}
.player-wrapper{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:none;flex-direction:column;box-shadow:0 -8px 48px rgba(0,0,0,.8);border-top:2px solid var(--accent);transition:left .3s}
.player-wrapper.active{display:flex}
.video-container{display:none;background:#000;text-align:center;max-height:50vh;overflow:hidden;position:relative}
.video-container.active{display:flex;align-items:center;justify-content:center}
.video-container video{width:100%;max-height:50vh;display:block;object-fit:contain}
.pip-return-overlay{display:none;position:absolute;inset:0;background:rgba(0,0,0,.85);flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:10}
.pip-return-overlay.active{display:flex}
.pip-return-icon{font-size:2.5rem;opacity:.7}
.pip-return-text{font-family:Outfit,sans-serif;font-size:1.1rem;color:var(--text-dim);font-weight:500}
.pip-return-btn{background:var(--accent);border:none;color:var(--bg);padding:12px 28px;border-radius:10px;font-family:Outfit,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:filter .2s}
.pip-return-btn:hover{filter:brightness(1.15)}
/* === Share Popup === */
.share-popup{display:none;position:absolute;bottom:60px;left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;width:340px;max-width:90vw;box-shadow:0 8px 32px rgba(0,0,0,.4);z-index:50;font-family:Outfit,sans-serif}
.share-popup.active{display:block}
.share-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:700;font-size:.95rem;color:var(--text)}
.share-popup-close{background:none;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:0 4px}
.share-popup-close:hover{color:var(--text)}
.share-timestamp-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text);margin-bottom:12px;cursor:pointer;user-select:none}
.share-timestamp-toggle input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.share-url-row{display:flex;gap:8px}
.share-url-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:.75rem;outline:none;min-width:0}
.share-copy-btn{background:var(--accent);border:none;color:var(--bg);padding:8px 16px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .2s}
.share-copy-btn:hover{filter:brightness(1.15)}
@media(max-width:768px){.share-popup{bottom:50px;width:calc(100vw - 32px);left:16px;transform:none}}
.video-sub-overlay{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);max-width:85%;padding:6px 18px;background:rgba(0,0,0,.75);color:#fff;font-family:Outfit,sans-serif;font-size:1.35rem;line-height:1.5;font-weight:500;border-radius:6px;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s;text-shadow:0 1px 4px rgba(0,0,0,.8)}
.video-sub-overlay.visible{opacity:1}
@media(max-width:768px){.video-container,.video-container video{max-height:35vh}.video-sub-overlay{font-size:1.05rem;bottom:14px;padding:4px 12px}}
.subtitles-panel{background:var(--bg);max-height:260px;overflow-y:auto;scroll-behavior:smooth;padding:16px 0;transition:max-height .3s ease}
.video-container.active+.subtitles-panel{max-height:160px}
.video-container.active+.subtitles-panel.scissors-mode{max-height:calc(100vh - 50vh - 130px)}
.subtitles-panel.scissors-mode{max-height:calc(100vh - 130px)}
.subtitles-panel::-webkit-scrollbar{width:6px}
.subtitles-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.sub-line{padding:14px 32px;font-family:Outfit,sans-serif;font-size:1.15rem;line-height:1.7;color:var(--text-dim);transition:all .25s;cursor:pointer;opacity:.3}
.sub-line:hover{opacity:.6}
.sub-line.active{color:var(--text);background:rgba(240,160,64,.1);font-weight:600;font-size:1.2rem;opacity:1;border-left:3px solid var(--accent)}
.sub-line .sub-ts{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--green);margin-right:14px;opacity:.5}
.sub-line.active .sub-ts{opacity:1}
.player-bar{background:var(--surface2);padding:10px 24px;display:flex;flex-direction:column;gap:8px}
.player-controls{display:flex;align-items:center;gap:10px}
.player-title{font-size:.85rem;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;order:99;text-align:right;margin-left:auto}
.player-time{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--green);min-width:120px;text-align:right}
.ctrl-btn{background:none;border:1px solid var(--border);color:var(--accent);cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:4px}
.ctrl-btn:hover{background:var(--accent-glow);border-color:var(--accent)}
.ctrl-btn.play-btn{font-size:1.1rem;padding:6px 14px;border-color:var(--accent);color:var(--accent)}
.player-close{background:none;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:4px 8px}
.player-close:hover{color:var(--red)}
.vol-wrap{display:flex;align-items:center;gap:6px;margin-left:4px}
.vol-icon{font-size:.9rem;cursor:pointer;color:var(--text-dim);user-select:none;transition:color .2s}
.vol-icon:hover{color:var(--accent)}
.vol-bar{width:70px;height:4px;-webkit-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer}
.vol-bar::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-dim);cursor:pointer}
.vol-bar::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text-dim);cursor:pointer;border:none}
@media(max-width:768px){.vol-bar{width:50px}}
.sub-line{display:flex;align-items:flex-start}
.sub-line .sub-text{flex:1}
.suggest-edit-btn{display:none;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.8rem;padding:2px 6px;margin-left:auto;opacity:.4;transition:opacity .2s,color .2s;flex-shrink:0}
.sub-line:hover .suggest-edit-btn{display:inline-block}
.suggest-edit-btn:hover{opacity:1;color:var(--accent)}
.suggest-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:2000;display:flex;align-items:center;justify-content:center}
.suggest-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;width:90%;max-width:520px;box-shadow:0 8px 48px rgba(0,0,0,.5)}
.suggest-modal h3{font-size:1rem;font-weight:700;margin-bottom:16px;color:var(--accent)}
.suggest-modal .sg-info{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-dim);margin-bottom:12px}
.suggest-modal .sg-orig{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 16px;font-size:.92rem;color:var(--text-dim);margin-bottom:12px;line-height:1.6}
.suggest-modal textarea{width:100%;min-height:80px;padding:12px 16px;background:var(--bg);border:2px solid var(--border);border-radius:8px;color:var(--text);font-family:Outfit,sans-serif;font-size:.95rem;line-height:1.6;outline:none;resize:vertical;transition:border-color .3s;box-sizing:border-box}
.suggest-modal textarea:focus{border-color:var(--accent)}
.suggest-modal .sg-actions{display:flex;gap:10px;margin-top:16px;justify-content:flex-end}
.suggest-modal .sg-cancel{background:none;border:1px solid var(--border);color:var(--text-dim);padding:8px 20px;border-radius:8px;cursor:pointer;font-family:Outfit,sans-serif;font-size:.88rem}
.suggest-modal .sg-submit{background:var(--accent);border:none;color:var(--bg);padding:8px 24px;border-radius:8px;cursor:pointer;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600}
.suggest-modal .sg-submit:disabled{opacity:.4;cursor:default}
.suggest-modal .sg-status{font-size:.82rem;margin-top:10px;font-family:JetBrains Mono,monospace}
.suggest-modal .sg-status.success{color:var(--green)}
.suggest-modal .sg-status.error{color:#f06050}
.seek-bar{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:var(--border);border-radius:3px;outline:none;cursor:pointer;margin:0}
.seek-bar::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 0 6px rgba(240,160,64,.4)}
.seek-bar::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}
.scissors-btn{position:relative;font-size:.9rem}
.scissors-btn.active{border-color:var(--green);color:var(--green);background:rgba(94,196,158,.15);box-shadow:0 0 12px rgba(94,196,158,.3);border-width:2px}
/* Video-only buttons (expand, fullscreen, lang, pip) - hidden until video active */
.video-only-btn{display:none!important}
.player-wrapper.has-video .video-only-btn{display:flex!important}
/* PiP button active state */
#pipBtn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}
/* Expand button active state */
#expandBtn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}
/* === Expanded Video Mode === */
.expand-back-bar{padding:6px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10001}
.expand-back-btn{background:none;border:none;color:var(--accent);font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s}
.expand-back-btn:hover{background:var(--accent-glow)}
.player-wrapper.expanded{position:fixed;top:0;left:0!important;right:0;bottom:0;z-index:10000;background:var(--bg);flex-direction:column}
.player-wrapper.expanded .video-container{max-height:none;flex:1;display:flex;align-items:center;justify-content:center}
.player-wrapper.expanded .video-container video{max-height:none;height:100%;width:100%}
.player-wrapper.expanded .subtitles-panel{display:none}
.player-wrapper.expanded .subtitles-panel.scissors-mode{display:block!important;max-height:35vh}
.player-wrapper.expanded .clip-action-bar{display:none!important}
.player-wrapper.expanded .clip-action-bar.active{display:flex!important}
.player-wrapper.expanded .video-sub-overlay{bottom:80px;font-size:1.6rem;max-width:90%}
.player-wrapper.expanded .player-bar{background:var(--surface);backdrop-filter:blur(10px);padding-bottom:max(10px,env(safe-area-inset-bottom))}
/* Fullscreen mode */
.player-wrapper:fullscreen,.player-wrapper:-webkit-full-screen{background:var(--bg);flex-direction:column}
.player-wrapper:fullscreen .video-container,.player-wrapper:-webkit-full-screen .video-container{max-height:none;flex:1;display:flex;align-items:center;justify-content:center}
.player-wrapper:fullscreen .video-container video,.player-wrapper:-webkit-full-screen .video-container video{max-height:none;height:100%;width:100%}
.player-wrapper:fullscreen .expand-back-bar,.player-wrapper:-webkit-full-screen .expand-back-bar{display:none!important}
.player-wrapper:fullscreen .subtitles-panel,.player-wrapper:-webkit-full-screen .subtitles-panel{display:none}
.player-wrapper:fullscreen .subtitles-panel.scissors-mode,.player-wrapper:-webkit-full-screen .subtitles-panel.scissors-mode{display:block!important;max-height:35vh}
.player-wrapper:fullscreen .clip-action-bar,.player-wrapper:-webkit-full-screen .clip-action-bar{display:none!important}
.player-wrapper:fullscreen .clip-action-bar.active,.player-wrapper:-webkit-full-screen .clip-action-bar.active{display:flex!important}
.player-wrapper:fullscreen .video-sub-overlay,.player-wrapper:-webkit-full-screen .video-sub-overlay{bottom:80px;font-size:1.8rem;max-width:90%}
.player-wrapper:fullscreen .player-bar,.player-wrapper:-webkit-full-screen .player-bar{background:var(--surface);backdrop-filter:blur(10px);padding-bottom:max(10px,env(safe-area-inset-bottom))}
/* ESC hint */
.expand-hint{position:absolute;top:20px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#fff;padding:8px 16px;border-radius:6px;font-size:.85rem;font-family:JetBrains Mono,monospace;opacity:0;pointer-events:none;transition:opacity .3s;z-index:10002}
.expand-hint.visible{opacity:1}
/* === Language Selector === */
/* Sleep timer */
.sleep-timer-wrap{position:relative}
.sleep-timer-btn.has-timer{color:var(--accent)!important;border-color:var(--accent)!important}
.sleep-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:6px;min-width:140px;display:none;flex-direction:column;gap:2px;box-shadow:0 4px 24px rgba(0,0,0,.5);z-index:10003}
.sleep-menu.active{display:flex}
.sleep-menu-item{padding:8px 14px;border-radius:6px;cursor:pointer;font-family:Outfit,sans-serif;font-size:.82rem;color:var(--text);transition:background .15s}
.sleep-menu-item:hover{background:var(--accent-glow);color:var(--accent)}
.sleep-cancel{color:var(--red);border-top:1px solid var(--border);margin-top:4px;padding-top:10px}
.lang-selector{position:relative;margin-left:2px}
.lang-size-control{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border);margin-top:4px}
.lang-size-control>span{font-family:Outfit,sans-serif;font-size:.78rem;color:var(--text-dim)}
.lang-size-btns{display:flex;align-items:center;gap:6px}
.lang-size-btns button{background:var(--surface);border:1px solid var(--border);color:var(--text);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .15s;font-family:Outfit,sans-serif}
.lang-size-btns button:hover{background:var(--accent-glow);border-color:var(--accent)}
.lang-size-btns span{font-family:Outfit,sans-serif;font-size:.78rem;font-weight:700;color:var(--text);min-width:24px;text-align:center}
.lang-btn{background:none;border:1px solid var(--border);color:var(--text);cursor:pointer;padding:6px 10px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:600;display:flex;align-items:center;gap:4px;transition:all .2s;white-space:nowrap}
.lang-btn:hover{background:var(--accent-glow);border-color:var(--accent)}
.lang-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px;min-width:200px;display:none;flex-direction:column;gap:2px;box-shadow:0 4px 24px rgba(0,0,0,.5);z-index:10003}
.lang-menu.active{display:flex}
.lang-option{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .2s;user-select:none;font-size:.88rem;font-family:Outfit,sans-serif;color:var(--text)}
.lang-option:hover{background:var(--accent-glow)}
.lang-option input[type="checkbox"]{accent-color:var(--accent);cursor:pointer;width:16px;height:16px}
.lang-option input[type="checkbox"]:disabled{opacity:.5;cursor:default}
.lang-option .lang-flag{font-size:1.1rem}
.lang-option .lang-name{flex:1}
.lang-option .lang-unavail{font-size:.7rem;color:var(--text-dim);font-style:italic}
/* === Multi-Language Subtitle Overlay === */
.video-sub-overlay.multi{display:flex;flex-direction:column;gap:6px;align-items:center;background:none;padding:0}
.video-sub-overlay.multi .sub-lang-line{padding:5px 18px;background:rgba(0,0,0,.75);border-radius:5px;text-align:center;max-width:100%;word-wrap:break-word;text-shadow:0 1px 4px rgba(0,0,0,.8)}
.video-sub-overlay.multi .sub-lang-line.sub-en{font-size:1.35rem;font-weight:600}
.video-sub-overlay.multi .sub-lang-line.sub-translation{font-size:1.35rem;font-weight:600;background:rgba(0,0,0,.75)}
.video-sub-overlay.multi .sub-lang-line:empty{display:none}
@media(max-width:768px){
.player-wrapper.expanded .video-sub-overlay{bottom:70px;font-size:1.2rem}
.video-sub-overlay.multi .sub-lang-line.sub-en{font-size:1.05rem}
.video-sub-overlay.multi .sub-lang-line.sub-translation{font-size:1.05rem}
.lang-menu{right:auto;left:-60px}
}
.scissors-banner{position:sticky;top:0;z-index:10;background:var(--surface2);border-bottom:1px solid var(--border);padding:8px 24px;font-size:.82rem;color:var(--text-dim);font-family:JetBrains Mono,monospace;display:flex;align-items:center;gap:8px}
.scissors-banner .range-info{color:var(--green);font-weight:600}
.scissors-mode .sub-line{opacity:.5;transition:all .15s;border-left:3px solid transparent}
.scissors-mode .sub-line:hover{opacity:.8;background:rgba(94,196,158,.06)}
.scissors-mode .sub-line.clip-start{opacity:1;border-left-color:var(--green);background:rgba(94,196,158,.1)}
.scissors-mode .sub-line.clip-end{opacity:1;border-left-color:var(--red);background:rgba(232,90,111,.1)}
.scissors-mode .sub-line.clip-in-range{opacity:.85;background:rgba(240,160,64,.06);border-left-color:var(--accent)}
.scissors-mode .sub-line.active{border-left-color:var(--accent)}
.scissors-mode .sub-line.active.clip-start{border-left-color:var(--green)}
.scissors-mode .sub-line.active.clip-end{border-left-color:var(--red)}
.clip-action-bar{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 24px;display:flex;align-items:center;gap:12px;animation:slideDown .2s ease}
.clip-range-label{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-dim)}
.clip-range-label span{color:var(--green);font-weight:600}
.clip-duration{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--accent);background:var(--accent-glow);padding:2px 10px;border-radius:10px}
.clip-cut-btn{margin-left:auto;background:var(--green);color:var(--bg);border:none;border-radius:10px;padding:12px 28px;font-family:Outfit,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;letter-spacing:.3px;box-shadow:0 2px 8px rgba(94,196,158,.25)}
.clip-cut-btn:hover{filter:brightness(1.1);box-shadow:0 4px 20px rgba(94,196,158,.4);transform:translateY(-1px)}
.clip-cut-btn:disabled{opacity:.5;cursor:default;filter:none;box-shadow:none}
.clip-cancel-btn{background:none;border:none;color:var(--text-dim);font-family:Outfit,sans-serif;font-size:.82rem;cursor:pointer;padding:4px 8px}
.clip-cancel-btn:hover{color:var(--red)}
.clip-progress{flex:1;display:flex;align-items:center;gap:12px}
.clip-progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.clip-progress-bar-inner{height:100%;background:var(--green);border-radius:2px;width:0%;transition:width .3s}
.clip-progress-text{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-dim);white-space:nowrap;min-width:180px}
.clip-error{color:var(--red);font-size:.82rem;font-family:JetBrains Mono,monospace}
.clip-format-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-left:8px}
.clip-format-btn{background:none;border:none;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600;padding:6px 14px;cursor:pointer;transition:all .2s;white-space:nowrap}
.clip-format-btn:not(:last-child){border-right:1px solid var(--border)}
.clip-format-btn.active{background:var(--accent-glow);color:var(--accent)}
.clip-srt-label{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--text-dim);display:flex;align-items:center;gap:4px;cursor:pointer;user-select:none;white-space:nowrap}
.clip-srt-label input{accent-color:var(--accent);cursor:pointer}
.clip-share-btn{background:none;border:1px solid var(--border);color:var(--accent);border-radius:8px;padding:8px 16px;font-family:Outfit,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}
.clip-share-btn:hover{background:var(--accent-glow);border-color:var(--accent)}
.clip-copied{color:var(--green);font-family:JetBrains Mono,monospace;font-size:.72rem;animation:fadeIn .2s}
.clip-format-btn:hover:not(.active){background:rgba(255,255,255,.04)}
.load-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s}
.load-overlay.hidden{opacity:0;pointer-events:none}
.load-text{font-size:.95rem;color:var(--text-dim);margin-top:20px}
.load-bar{width:200px;height:3px;background:var(--border);border-radius:2px;margin-top:12px;overflow:hidden}
.load-bar-inner{height:100%;background:var(--accent);border-radius:2px;width:0%;transition:width .3s}
/* === Top Navigation (Google-style) === */
.top-nav{position:fixed;top:0;left:0;z-index:1020;display:flex;gap:4px;padding:12px 16px}
.top-nav-link{font-family:Outfit,sans-serif;font-size:.82rem;color:var(--text-dim);cursor:pointer;padding:6px 12px;border-radius:6px;transition:all .2s;user-select:none;text-decoration:none}
.top-nav-link:hover{color:var(--text);background:var(--surface2)}
.theme-toggle{position:fixed;top:16px;right:16px;z-index:10000;background:var(--surface);border:1px solid var(--border);width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all .3s;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.theme-toggle:hover{border-color:var(--accent);transform:scale(1.1)}

/* Lecture Detail View */
.lecture-detail{display:none}
.lecture-detail.active{display:block}
.lecture-back{display:inline-flex;align-items:center;gap:6px;color:var(--text-dim);font-size:.9rem;cursor:pointer;margin-bottom:16px;padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);transition:all .2s}
.lecture-back:hover{color:var(--accent);border-color:var(--accent)}
.lecture-title-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.lecture-title{font-size:1.3rem;font-weight:700;color:var(--text);word-break:break-word}
.lecture-meta{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text-dim);margin-bottom:16px}
.lecture-search-row{display:flex;gap:10px;margin-bottom:16px}
.lecture-search-input{flex:1;padding:12px 18px;background:var(--surface);border:2px solid var(--border);border-radius:10px;color:var(--text);font-family:Outfit,sans-serif;font-size:.95rem;outline:none;transition:border-color .3s}
.lecture-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
.lecture-search-input::placeholder{color:var(--text-dim)}
.lecture-play-btn{padding:6px 16px;background:var(--accent);border:none;border-radius:8px;color:var(--bg);font-family:Outfit,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}
.lecture-play-btn:hover{filter:brightness(1.1)}
.lecture-search-info{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-dim);margin-bottom:12px}
.lecture-search-info span{color:var(--accent);font-weight:600}
.lecture-lines{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;max-height:70vh;overflow-y:auto}
.lecture-lines::-webkit-scrollbar{width:6px}
.lecture-lines::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.lecture-line{padding:8px 18px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6;display:flex;gap:14px;border-bottom:1px solid rgba(42,42,53,.3);cursor:pointer;transition:background .15s}
.lecture-line:last-child{border-bottom:none}
.lecture-line:hover{background:rgba(240,160,64,.06)}
.lecture-line.is-match{background:var(--highlight-bg)}
.lecture-line .ll-ts{color:var(--green);white-space:nowrap;min-width:70px;font-size:.75rem;flex-shrink:0}
.lecture-line .ll-text{color:var(--text);word-break:break-word}
.lecture-line .ll-text mark{background:var(--highlight-bg);color:var(--highlight-text);padding:1px 4px;border-radius:3px;font-weight:600}
@media(min-width:769px){body.sidebar-open .player-wrapper{left:280px}}
@media(max-width:768px){.sidebar{width:260px}.sidebar.open~.sidebar-toggle{left:268px}
body.has-results .container{padding:0 14px}
body.has-results .results-topbar{gap:10px;padding:10px 0;flex-wrap:wrap}
body.has-results .results-topbar .topbar-portrait{width:30px;height:30px}
body.has-results .results-topbar .search-row-global .search-input{padding:10px 14px 10px 36px;font-size:.9rem}
body:not(.has-results) .portrait{width:72px;height:72px}
body:not(.has-results) .header h1{font-size:1.5rem}
body:not(.has-results) .container{padding:20px 14px}
.stats{display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:18px;flex-wrap:nowrap}
.stat{min-width:0;padding:8px 6px;border-radius:8px;text-align:center;overflow:hidden}
.stat-label{font-size:.5rem;letter-spacing:.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stat-value{font-size:.88rem}
.search-row{gap:8px}
.search-input{padding:12px 14px;font-size:.9rem;border-radius:10px}
.random-btn{padding:8px 16px;border-radius:10px}
.random-btn span{font-size:.78rem}
.search-options{gap:10px;margin-top:6px}
.search-options label{font-size:.75rem}
.result-count{font-size:.72rem}
.tabs{margin-bottom:12px}
.tab{padding:8px 14px;font-size:.78rem}
.result-filename{padding:8px 12px;font-size:.82rem}
.result-lines .line{padding:6px 12px;font-size:.75rem}
.line .ts{font-size:.65rem;min-width:52px}
.lecture-title{font-size:1rem}
.lecture-play-btn{padding:4px 10px;font-size:.72rem}
.lecture-title-row{gap:8px}
.lecture-search-input{padding:8px 12px;font-size:.84rem}
.lecture-line{padding:5px 12px;font-size:.75rem;gap:8px}
.lecture-line .ll-ts{font-size:.65rem;min-width:52px}
.top-nav{padding:8px 10px}
.top-nav-link{font-size:.75rem;padding:5px 8px}
.theme-toggle{width:34px;height:34px;font-size:.95rem;top:8px;right:8px}
.player-bar{padding:6px 8px;gap:5px}
.player-controls{flex-wrap:wrap;gap:6px}
.player-title{font-size:.74rem;min-width:0;flex-basis:100%;order:99;text-align:right}
.player-time{font-size:.66rem;min-width:auto;flex-shrink:0}
.player-close{flex-shrink:0}
.vol-wrap{display:none}
.ctrl-btn{padding:4px 7px;font-size:.65rem}
.ctrl-btn.play-btn{font-size:.9rem;padding:4px 9px}
.sub-line{padding:8px 14px;font-size:.92rem}
.sub-line .sub-ts{font-size:.62rem;margin-right:8px}
.match-line{padding:6px 12px;font-size:.75rem;gap:8px}
.line-timestamp{font-size:.66rem;min-width:52px}
.context-line{padding:5px 10px;font-size:.72rem;gap:8px}
.context-line .ctx-ts{font-size:.65rem;min-width:52px}
body.player-open{padding-bottom:260px}
}
@media(max-width:390px){
body.has-results .container{padding:18px 10px}
body.has-results .header{padding-top:40px}
body.has-results .portrait{width:64px;height:64px}
body.has-results .header h1{font-size:1.18rem}
body.has-results .header .subtitle{font-size:.72rem}
body:not(.has-results) .portrait{width:64px;height:64px}
body:not(.has-results) .header h1{font-size:1.3rem}
.stats{gap:6px;margin-bottom:14px}
.stat{padding:6px 4px;border-radius:6px}
.stat-label{font-size:.48rem;letter-spacing:.5px}
.stat-value{font-size:.82rem}
.search-input{padding:10px 12px;font-size:.85rem}
.random-btn{padding:6px 14px}
.random-btn span{font-size:.72rem}
.search-options label{font-size:.7rem}
}
/* === UX Redesign: Compact top bar in results mode === */
body.has-results .container{padding:0 24px}
body.has-results .header-compact{display:none}
body.has-results .search-wrapper-global{margin-bottom:0}
/* Results top bar: portrait left of search */
body.has-results .results-topbar{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border);margin-bottom:0;flex-wrap:wrap}
body.has-results .results-topbar .topbar-portrait{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);cursor:pointer;flex-shrink:0}
body.has-results .results-topbar .search-wrapper{flex:1;margin-bottom:0}
body.has-results .results-topbar .search-row-global .search-input{padding:12px 18px 12px 42px;font-size:1rem;border-radius:24px;border-width:1px;box-shadow:none}
body.has-results .results-topbar .search-row-global .search-input:focus{box-shadow:0 0 0 3px var(--accent-glow)}
body.has-results .results-topbar .search-icon-global{left:14px;font-size:1.1rem}
/* Hide the results-topbar when NOT in results mode */
.results-topbar{display:none}
/* Inline nav inside results topbar (only on narrow screens) */
.topbar-nav{display:none}
body.has-results .top-nav{display:none}
body.has-results .topbar-nav{display:flex;gap:4px;justify-content:center;width:100%;order:-1}
body.has-results #homeSearchWrapper{display:none}
.header-compact{margin-bottom:10px}
body.has-results .search-options{padding:8px 0 0}
body.has-results .results{padding-top:8px}
body.has-results .tabs{margin-top:4px}
/* === UX Redesign: Stats hidden === */
.stats{display:none!important}
/* Hide random button in results mode */
body.has-results .random-row{display:none}
/* === UX Redesign: Prominent Global Search === */
.search-wrapper-global{margin-bottom:12px}
.search-row-global{position:relative}
.search-icon-global{font-size:1.3rem;position:absolute;left:18px;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none;line-height:1}
.search-row-global .search-input{padding-left:48px;border:2px solid var(--accent);border-radius:12px;font-size:1.1rem;box-shadow:0 4px 20px var(--accent-glow)}
.search-row-global .search-input:focus{box-shadow:0 4px 24px var(--accent-glow),0 0 0 4px var(--accent-glow)}
/* === UX Redesign: Subtle Local Search === */
.lecture-search-input{background:var(--surface2)!important;border:1px solid var(--border)!important;border-radius:8px;font-size:.9rem;padding:10px 14px}
/* === UX Redesign: Back button === */
.lecture-back{color:var(--accent);border:none;background:none;font-family:Outfit,sans-serif;font-weight:500;font-size:.9rem;cursor:pointer;padding:4px 0;margin-bottom:12px;transition:opacity .2s}
.lecture-back:hover{opacity:.7}
/* === Sidebar Book Items === */
.sb-book{cursor:pointer;padding:10px 16px;font-size:.84rem;color:var(--text);display:flex;align-items:center;gap:8px;user-select:none;transition:background .2s;line-height:1.4}
.sb-book:hover{background:var(--surface2)}
.sb-book-icon{color:var(--blue);font-size:.9rem;flex-shrink:0}
.sb-book-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-clip{cursor:pointer;padding:10px 16px;transition:background .2s;user-select:none}
.sb-clip:hover{background:var(--surface2)}
.sb-clip-name{font-size:.84rem;color:var(--text);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-clip-meta{font-family:JetBrains Mono,monospace;font-size:.68rem;color:var(--text-dim);margin-top:2px}
/* === UX Redesign: Sidebar active highlight === */
.sb-part.current-lecture{background:var(--accent-glow);color:var(--accent);border:1px solid var(--accent);font-weight:700}
.sb-lecture.current-lecture .sb-lecture-name{color:var(--accent);font-weight:700}
/* === UX Redesign: Mini Player === */
.mini-player{display:none;position:fixed;bottom:0;left:0;right:0;z-index:999;background:var(--surface2);border-top:2px solid var(--accent);padding:10px 24px;align-items:center;gap:12px;box-shadow:0 -4px 20px rgba(0,0,0,.3);font-family:Outfit,sans-serif}
.mini-player.active{display:flex}
.mini-player-info{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer;overflow:hidden;padding:4px 8px;border-radius:6px;transition:background .15s}
.mini-player-info:hover{background:var(--accent-glow)}
.mini-player-icon{color:var(--accent);font-size:.9rem}
.mini-player-title{color:var(--accent);font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-player-hint{color:var(--text-dim);font-size:.72rem;flex-shrink:0}
.mini-player-controls{display:flex;align-items:center;gap:8px}
.mini-player-btn{background:var(--accent);border:none;color:var(--bg);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:filter .2s}
.mini-player-btn:hover{filter:brightness(1.1)}
.mini-player-close{background:none;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;padding:4px 8px;transition:color .2s}
.mini-player-close:hover{color:var(--red)}
@media(max-width:768px){
.mini-player{padding:8px 16px}
.mini-player-hint{display:none}
}
/* === Watch Together === */
.watch-btn{font-size:.85rem}
.watch-btn.active{color:var(--accent);background:var(--accent-glow)}
.watch-banner{display:flex;align-items:center;gap:10px;max-width:960px;margin:0 auto 12px;padding:12px 16px;background:rgba(94,156,196,.12);border:1px solid rgba(94,156,196,.3);border-radius:10px;font-size:.85rem;color:var(--blue);flex-wrap:wrap}
.watch-banner-icon{font-size:1.2rem;flex-shrink:0}
.watch-banner-text{white-space:nowrap}
.watch-banner-link{flex:1;min-width:180px;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:.78rem;outline:none}
.watch-banner-copy{padding:6px 14px;background:var(--blue);border:none;border-radius:6px;color:#fff;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;transition:filter .2s}
.watch-banner-copy:hover{filter:brightness(1.15)}
.watch-banner-viewers{font-size:.78rem;color:var(--text-dim)}
.watch-banner-viewers{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-dim);white-space:nowrap}
.watch-banner-stop{padding:6px 14px;background:var(--red);border:none;border-radius:6px;color:#fff;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;margin-left:auto;transition:filter .2s}
.watch-banner-stop:hover{filter:brightness(1.15)}
.watch-sync-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;transition:transform .15s}
.watch-sync-dot.pulse{transform:scale(1.6)}
@media(max-width:600px){
.watch-banner{font-size:.8rem;gap:8px;padding:10px 12px}
.watch-banner-link{min-width:0;font-size:.72rem}
}
/* Viewer mode: immersive fullscreen video */
body.watch-viewer{overflow:hidden!important;background:var(--bg)!important;padding:0!important;margin:0!important}
body.watch-viewer .container,
body.watch-viewer .sidebar,
body.watch-viewer .sidebar-backdrop,
body.watch-viewer .sidebar-toggle,
body.watch-viewer .theme-toggle,
body.watch-viewer .top-nav,
body.watch-viewer .mini-player,
body.watch-viewer #loadOverlay{display:none!important}
body.watch-viewer .player-wrapper{position:fixed!important;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex!important;flex-direction:column;border-radius:0!important;border:none!important;background:var(--bg)!important;padding:0!important;margin:0!important;gap:0!important;height:100vh!important;max-height:100vh!important;box-shadow:none!important}
body.watch-viewer .player-wrapper.active{display:flex!important}
body.watch-viewer .video-container,
body.watch-viewer .video-container.active{flex:1!important;min-height:0!important;max-height:none!important;display:flex!important;align-items:center;justify-content:center;overflow:hidden}
body.watch-viewer #videoPlayer{width:100%!important;height:100%!important;max-height:none!important;object-fit:contain}
body.watch-viewer .subtitles-panel{display:none!important}
body.watch-viewer .clip-action-bar{display:none!important}
body.watch-viewer .expand-back-bar{display:none!important}
body.watch-viewer .seek-bar,
body.watch-viewer .ctrl-btn,
body.watch-viewer .watch-btn,
body.watch-viewer .player-close{display:none!important}
body.watch-viewer #expandBtn{display:none!important}
body.watch-viewer #watchTogetherBtn{display:none!important}
body.watch-viewer #playPauseBtn{display:inline-flex!important;order:-1}
body.watch-viewer #fullscreenBtn{display:inline-flex!important}
body.watch-viewer .vol-wrap{display:inline-flex!important}
body.watch-viewer .lang-selector{display:inline-flex!important}
body.watch-viewer .player-title{display:inline-flex!important;font-size:.85rem;margin-left:auto;flex:1!important;order:99;text-align:right}
body.watch-viewer .player-time{display:inline-flex!important}
body.watch-viewer .player-controls{justify-content:space-between;padding:4px 12px;gap:10px}
body.watch-viewer .player-bar{background:var(--surface)!important;border-top:1px solid var(--border)!important;padding:2px 8px!important;min-height:0;flex-shrink:0}
body.watch-viewer .watch-banner{position:fixed;top:0;left:0;right:0;z-index:10000;margin:0;border-radius:0;max-width:none;opacity:.85;transition:opacity .3s}
body.watch-viewer .watch-banner:hover{opacity:1}
body.watch-viewer .video-sub-overlay{bottom:50px;font-size:1.4rem;max-width:85%}
@media(max-width:768px){
body.watch-viewer .vol-wrap{display:inline-flex!important}
body.watch-viewer .player-controls{flex-wrap:nowrap!important;gap:6px}
body.watch-viewer .player-title{flex-basis:auto!important;order:99!important;font-size:.68rem;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
body.watch-viewer .player-wrapper{height:100dvh!important;max-height:100dvh!important}
body.watch-viewer .video-container,
body.watch-viewer .video-container.active{max-height:none!important;flex:1!important;min-height:0!important}
body.watch-viewer .video-container video{max-height:none!important}
body.watch-viewer .player-bar{position:fixed!important;bottom:0;left:0;right:0;z-index:10001;padding:6px 10px env(safe-area-inset-bottom)!important;background:var(--surface)!important}
body.watch-viewer .video-sub-overlay{bottom:54px;font-size:1rem}
body.watch-viewer .player-time{font-size:.65rem}
body.watch-viewer #fullscreenBtn,
body.watch-viewer #playPauseBtn{padding:4px 8px!important;font-size:.85rem!important}
}
/* Host immersive mode: show controls that viewer hides */
body.watch-host .seek-bar{display:block!important}
body.watch-host .ctrl-btn{display:inline-flex!important}
body.watch-host .player-close{display:none!important}
body.watch-host .watch-btn{display:none!important}
body.watch-host #expandBtn{display:none!important}
body.watch-host #watchTogetherBtn{display:none!important}
body.watch-host .scissors-btn{display:none!important}
body.watch-host #playPauseBtn{order:0!important}
.host-paused-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.65);z-index:10;align-items:center;justify-content:center}
.host-paused-overlay.visible{display:flex}
.host-paused-text{color:#fff;font-family:Outfit,sans-serif;font-size:1.2rem;font-weight:500;padding:16px 32px;background:rgba(0,0,0,.5);border-radius:12px;text-align:center}

/* === Progress Tracking === */
.sb-lecture-progress{position:absolute;bottom:0;left:0;height:2px;background:var(--accent);border-radius:1px;transition:width .3s;opacity:.6}
.sb-lecture.sb-single,.sb-part{position:relative;overflow:hidden}
.sb-lecture-progress.completed{background:var(--green);opacity:.8}

/* Resume Listening bar */
.resume-bar{display:none;position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:998;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 18px;box-shadow:0 8px 32px rgba(0,0,0,.35);align-items:center;gap:14px;font-family:Outfit,sans-serif;max-width:600px;width:calc(100% - 32px)}
.resume-bar.visible{display:flex}
body.player-open .resume-bar,body.has-results .resume-bar{display:none!important}
.resume-bar-info{flex:1;min-width:0}
.resume-bar-title{font-size:.88rem;font-weight:700;color:var(--accent)}
.resume-bar-sub{font-size:.78rem;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resume-bar-btn{background:var(--accent);border:none;color:var(--bg);padding:9px 22px;border-radius:10px;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .2s;flex-shrink:0}
.resume-bar-btn:hover{filter:brightness(1.1)}
.resume-bar-dismiss{background:none;border:1px solid var(--border);color:var(--text-dim);padding:9px 16px;border-radius:10px;font-family:Outfit,sans-serif;font-size:.85rem;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .2s}
.resume-bar-dismiss:hover{color:var(--text);border-color:var(--text-dim)}
@media(max-width:768px){
.resume-bar{bottom:16px;padding:10px 14px;gap:10px;border-radius:12px}
.resume-bar-title{font-size:.82rem}
.resume-bar-sub{font-size:.72rem}
.resume-bar-btn{padding:8px 16px;font-size:.82rem}
.resume-bar-dismiss{padding:8px 12px;font-size:.78rem}
}

/* Resume / Auto-next Toast */
.player-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:1100;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 20px;box-shadow:0 8px 32px rgba(0,0,0,.4);display:flex;align-items:center;gap:12px;font-family:Outfit,sans-serif;font-size:.9rem;color:var(--text);max-width:500px;animation:slideUp .3s ease}
@keyframes slideUp{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.player-toast-text{flex:1}
.player-toast-text .toast-title{font-weight:600;color:var(--accent);font-size:.85rem;margin-bottom:2px}
.player-toast-text .toast-sub{font-size:.78rem;color:var(--text-dim)}
.player-toast-btn{background:var(--accent);border:none;color:var(--bg);padding:8px 16px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:filter .2s}
.player-toast-btn:hover{filter:brightness(1.1)}
.player-toast-cancel{background:none;border:1px solid var(--border);color:var(--text-dim);padding:8px 12px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.82rem;cursor:pointer;white-space:nowrap}
.player-toast-cancel:hover{color:var(--text);border-color:var(--text-dim)}
/* Auto-next toggle in player bar */
.auto-next-toggle{display:flex;align-items:center;gap:4px;font-size:.72rem;color:var(--text-dim);cursor:pointer;user-select:none;white-space:nowrap}
.auto-next-toggle input{accent-color:var(--accent);cursor:pointer}
@media(max-width:768px){
.player-toast{bottom:60px;left:10px;right:10px;transform:none;max-width:none;font-size:.82rem;padding:10px 14px}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.continue-btn{padding:8px 16px;border-radius:10px}
.continue-btn span{font-size:.78rem}
}
/* === Nerd Info (inside AI Search) === */
.ai-nerd-toggle{font-size:.82rem;color:var(--text-dim);cursor:pointer;padding:12px 0 4px;border-top:1px solid var(--border);margin-top:16px;transition:color .2s;user-select:none}
.ai-nerd-toggle:hover{color:var(--accent)}
.ai-nerd-arrow{font-size:.6rem;margin-left:4px;display:inline-block;transition:transform .2s}
.ai-nerd-arrow.open{transform:rotate(180deg)}
.ai-nerd-content{max-height:0;overflow:hidden;transition:max-height .3s ease}
.ai-nerd-content.open{max-height:800px}
.nerd-section{margin-bottom:12px;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:10px}
.nerd-section:first-child{margin-top:12px}
.nerd-title{font-size:.82rem;font-weight:700;color:var(--accent);margin-bottom:4px}
.nerd-text{font-size:.78rem;color:var(--text-dim);line-height:1.65}
.nerd-text strong{color:var(--text);font-weight:600}
.nerd-text code{background:var(--surface2);padding:1px 6px;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.75rem}
.nerd-footer{text-align:center;font-size:.72rem;color:var(--text-dim);opacity:.5;margin-top:8px;font-style:italic}
/* === AI Search Modal === */
.ai-search-btn{color:var(--blue)!important;border-color:var(--border)}
.ai-search-btn:hover{border-color:var(--blue);background:rgba(94,158,196,.12)}
.ai-search-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:2000;align-items:center;justify-content:center}
.ai-search-overlay.active{display:flex}
.ai-search-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;width:90%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 48px rgba(0,0,0,.5);position:relative}
.ai-search-modal h3{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:12px}
.ai-search-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-dim);font-size:1.4rem;cursor:pointer;padding:4px 8px;line-height:1}
.ai-search-close:hover{color:var(--text)}
.ai-search-desc{font-size:.88rem;color:var(--text-dim);line-height:1.6;margin-bottom:20px}
.ai-search-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.ai-step{display:flex;align-items:center;gap:12px;font-size:.88rem;color:var(--text)}
.ai-step-nr{width:26px;height:26px;border-radius:50%;background:var(--accent-glow);color:var(--accent);font-weight:700;font-size:.82rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ai-step a{color:var(--accent);text-decoration:none}
.ai-step a:hover{text-decoration:underline}
.ai-search-actions{margin-bottom:20px}
.ai-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:10px;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none}
.ai-download-btn{background:var(--blue);color:#fff;border:none}
.ai-download-btn:hover{filter:brightness(1.15)}
.ai-prompt-label{font-size:.78rem;font-weight:600;color:var(--text-dim);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.ai-copy-hint{font-weight:400;font-size:.72rem;color:var(--text-dim);opacity:.6}
.ai-prompt{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px;font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.7;color:var(--text);cursor:pointer;white-space:pre-wrap;word-break:break-word;transition:border-color .2s;margin:0}
.ai-prompt:hover{border-color:var(--accent)}
.ai-copied{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--green);margin-top:8px;opacity:0;transition:opacity .3s}
.ai-copied.visible{opacity:1}
@media(max-width:768px){
.ai-search-modal{padding:20px;border-radius:12px}
.ai-search-modal h3{font-size:1rem}
.ai-search-desc{font-size:.82rem}
.ai-step{font-size:.82rem}
.ai-prompt{font-size:.72rem}
}
/* === DocTV Start Overlay (iOS autoplay fix) === */
.doctv-start-overlay{display:none;position:fixed;inset:0;z-index:2000;background:var(--bg);align-items:center;justify-content:center;flex-direction:column}
.doctv-start-overlay.active{display:flex}
.doctv-start-content{text-align:center}
.doctv-start-icon{font-size:3rem;margin-bottom:12px}
.doctv-start-title{font-family:Outfit,sans-serif;font-size:2rem;font-weight:900;color:var(--accent);letter-spacing:1px;margin-bottom:24px}
.doctv-start-btn{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700;padding:16px 48px;background:var(--accent);color:var(--bg);border:none;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px rgba(240,160,64,.3)}
.doctv-start-btn:active{transform:scale(.96)}
/* === Hawkins TV === */
.tv-nav-link{color:var(--accent)!important;font-weight:600}
.tv-banner{display:none;position:fixed;top:0;left:0;right:0;z-index:1050;background:linear-gradient(135deg,rgba(240,160,64,.15),rgba(240,160,64,.08));border-bottom:1px solid rgba(240,160,64,.3);padding:10px 20px;align-items:center;gap:12px;font-family:Outfit,sans-serif;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.tv-banner.active{display:flex}
.tv-banner-icon{font-size:1.2rem}
.tv-banner-label{font-weight:700;font-size:.9rem;color:var(--accent);white-space:nowrap}
.tv-banner-now{flex:1;font-size:.82rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-banner-btn{background:none;border:1px solid var(--border);color:var(--text);padding:5px 14px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}
.tv-banner-btn:hover{background:var(--accent-glow);border-color:var(--accent);color:var(--accent)}
.tv-stop-btn:hover{border-color:var(--red);color:var(--red);background:rgba(232,90,111,.1)}
/* DocTV header above video */
.doctv-header{display:none;padding:10px 24px;background:linear-gradient(90deg,rgba(240,160,64,.12),transparent);border-bottom:1px solid rgba(240,160,64,.2);align-items:center;justify-content:space-between;gap:12px}
body.tv-mode .doctv-header{display:flex}
.doctv-header-left{display:flex;align-items:center;gap:10px}
.doctv-live-dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red);animation:tvPulse 2s ease-in-out infinite}
@keyframes tvPulse{0%,100%{opacity:1}50%{opacity:.4}}
.doctv-header-title{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:900;color:var(--accent);letter-spacing:.5px}
.doctv-viewer-count{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text-dim);display:flex;align-items:center;gap:6px}
.doctv-viewer-dot{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block}
/* DocTV live indicator (YouTube-style) */
.doctv-live-indicator{display:none;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;cursor:pointer;user-select:none;transition:all .2s;font-family:Outfit,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.5px;white-space:nowrap}
body.tv-mode .doctv-live-indicator{display:flex}
.doctv-live-indicator-dot{width:8px;height:8px;border-radius:50%;transition:all .3s}
.doctv-live-indicator.live{background:rgba(232,90,111,.15);color:var(--red)}
.doctv-live-indicator.live .doctv-live-indicator-dot{background:var(--red);box-shadow:0 0 6px var(--red);animation:tvPulse 2s ease-in-out infinite}
.doctv-live-indicator.behind{background:var(--surface);color:var(--text-dim);border:1px solid var(--border)}
.doctv-live-indicator.behind .doctv-live-indicator-dot{background:var(--text-dim);box-shadow:none;animation:none}
.doctv-live-indicator.behind:hover{border-color:var(--red);color:var(--red);background:rgba(232,90,111,.1)}
/* DocTV mode: hide non-essential player controls */
body.tv-mode .scissors-btn,
body.tv-mode .watch-btn,
body.tv-mode .auto-next-toggle,
body.tv-mode .player-close,
body.tv-mode .clip-action-bar{display:none!important}
.doctv-header-tagline{font-family:Outfit,sans-serif;font-size:.82rem;color:var(--text-dim);font-style:italic;font-weight:300}
@media(max-width:768px){
.tv-banner{padding:8px 14px;gap:8px}
.tv-banner-label{font-size:.78rem}
.tv-banner-now{font-size:.72rem}
.tv-banner-btn{padding:4px 10px;font-size:.72rem}
.doctv-header{padding:8px 16px}
.doctv-header-title{font-size:.9rem}
.doctv-header-tagline{font-size:.72rem}
}
