:root{--bg: #0f0f0f;--bg-elevated: #212121;--bg-hover: #2a2a2a;--border: #303030;--text: #f1f1f1;--text-dim: #aaaaaa;--accent: #ff4444;--accent-hover: #ff6666;--topbar-h: 56px;--sidebar-w: 240px;--radius: 12px;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.app-shell{min-height:100%}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--bg);border-bottom:1px solid var(--border);z-index:20}.topbar .brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.15rem;white-space:nowrap}.topbar .brand .logo{color:var(--accent);font-size:1.4rem}.search-form{flex:1;max-width:560px;margin:0 auto;display:flex}.search-form input{flex:1;height:40px;padding:0 16px;border:1px solid var(--border);border-right:none;border-radius:20px 0 0 20px;background:#121212;color:var(--text);font-size:.95rem;outline:none}.search-form input:focus{border-color:#3ea6ff}.search-form button{width:64px;border:1px solid var(--border);border-left:none;border-radius:0 20px 20px 0;background:var(--bg-elevated);color:var(--text-dim);display:grid;place-items:center}.search-form button:hover{background:var(--bg-hover);color:var(--text)}.sidebar a svg{flex:0 0 auto;color:var(--text-dim)}.sidebar a.active svg{color:var(--text)}.topbar .user-chip{display:flex;align-items:center;gap:8px;white-space:nowrap;position:relative}.search-wrap{flex:1;max-width:560px;margin:0 auto;position:relative}.search-wrap .search-form{margin:0;max-width:none}.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;overflow:hidden;z-index:30;box-shadow:0 8px 28px #00000080;padding:6px}.sd-group+.sd-group{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.sd-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:6px 10px 2px}.sd-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;border:none;background:none;color:var(--text);border-radius:8px;font-size:.9rem}.sd-row:hover{background:var(--bg-hover)}.sd-avatar{width:26px;height:26px;font-size:.75rem;flex:0 0 auto}.sd-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-count{font-size:.8rem;flex:0 0 auto}.sd-all{width:100%;text-align:left;padding:8px 10px;border:none;background:none;color:#3ea6ff;border-radius:8px;font-size:.85rem;margin-top:4px}.sd-all:hover{background:var(--bg-hover)}.avatar-btn{border:none;padding:0}.user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;overflow:hidden;z-index:30;box-shadow:0 8px 28px #00000080;padding:6px}.user-menu .um-head{font-size:.8rem;color:var(--text-dim);padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}.user-menu button{display:block;width:100%;text-align:left;padding:9px 10px;border:none;background:none;color:var(--text);border-radius:8px;font-size:.9rem}.user-menu button:hover{background:var(--bg-hover)}.back-btn{margin-top:10px}.avatar-circle{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;text-transform:uppercase}.layout{display:flex;padding-top:var(--topbar-h)}.sidebar{position:fixed;top:var(--topbar-h);bottom:0;width:var(--sidebar-w);padding:12px 8px;overflow-y:auto;border-right:1px solid var(--border)}.sidebar a{display:flex;align-items:center;gap:16px;padding:10px 12px;border-radius:10px;font-size:.95rem}.sidebar a:hover{background:var(--bg-hover)}.sidebar a.active{background:var(--bg-elevated);font-weight:600}.sidebar .section-label{padding:8px 12px;color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.content{flex:1;margin-left:var(--sidebar-w);padding:24px;min-width:0}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px 16px}.video-card{display:flex;flex-direction:column}.thumb-wrap{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius);overflow:hidden;background:var(--bg-elevated)}.thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block}.thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--text-dim);font-size:2rem}.thumb-duration{position:absolute;right:6px;bottom:6px;background:#000000d9;color:#fff;font-size:.75rem;font-weight:600;padding:1px 5px;border-radius:4px}.thumb-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:#ffffff40}.thumb-progress>span{display:block;height:100%;background:var(--accent)}.thumb-watched{position:absolute;left:6px;top:6px;background:#000000d9;color:#fff;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:4px}.thumb-menu{position:absolute;right:6px;top:6px}.thumb-menu-btn{width:30px;height:30px;border:none;border-radius:50%;background:#0009;color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .12s ease}.thumb-wrap:hover .thumb-menu-btn,.thumb-menu-btn:focus-visible{opacity:1}.thumb-menu-btn:hover{background:#000000d9}.thumb-menu-list{position:absolute;right:0;top:34px;min-width:190px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;overflow:hidden;z-index:15;box-shadow:0 8px 28px #00000080;padding:6px}.thumb-menu-list button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:none;background:none;color:var(--text);border-radius:8px;font-size:.88rem}.thumb-menu-list button:hover{background:var(--bg-hover)}.thumb-menu-list svg{color:var(--text-dim);flex:0 0 auto}.card-meta{display:flex;gap:12px;padding:12px 2px 0}.card-meta .title{font-size:.95rem;font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta .sub{color:var(--text-dim);font-size:.85rem;margin-top:4px}.card-badge{display:inline-block;font-size:.7rem;background:var(--bg-hover);color:var(--text-dim);padding:1px 6px;border-radius:4px;margin-left:6px}.row-title{font-size:1.25rem;font-weight:600;margin:8px 0 16px}.section+.section{margin-top:36px}.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;max-width:1600px;margin:0 auto}.player-shell{width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius);overflow:hidden;position:relative}.player-shell video{width:100%;height:100%;background:#000}.player-overlay{position:absolute;right:12px;bottom:56px;display:flex;gap:8px;transition:opacity .2s ease}.player-overlay.hidden{opacity:0;pointer-events:none}.watch-title{font-size:1.3rem;font-weight:600;margin:16px 0 8px}.watch-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.pill-btn{display:inline-flex;align-items:center;gap:6px;background:var(--bg-elevated);color:var(--text);border:none;border-radius:18px;padding:8px 14px;font-size:.9rem;font-weight:500}.pill-btn:hover{background:var(--bg-hover)}.pill-btn.active{background:var(--text);color:var(--bg)}.channel-line{display:flex;align-items:center;gap:12px;margin:12px 0}.desc-box{background:var(--bg-elevated);border-radius:var(--radius);padding:12px 16px;font-size:.9rem;white-space:pre-wrap;line-height:1.5}.desc-box.collapsed{max-height:120px;overflow:hidden;position:relative}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag{font-size:.8rem;color:#3ea6ff}.related-col .related-item{display:flex;gap:8px;margin-bottom:8px;border-radius:8px;padding:4px}.related-col .related-item:hover{background:var(--bg-hover)}.related-col .related-thumb{position:relative;flex:0 0 168px;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:var(--bg-elevated)}.related-col .related-thumb img{width:100%;height:100%;object-fit:cover}.related-col .related-meta .title{font-size:.9rem;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.related-col .related-meta .sub{font-size:.8rem;color:var(--text-dim);margin-top:4px}.transcript-panel{background:var(--bg-elevated);border-radius:var(--radius);padding:12px;margin-top:16px;max-height:420px;display:flex;flex-direction:column}.transcript-panel .search-box{width:100%;height:36px;border-radius:8px;border:1px solid var(--border);background:#121212;color:var(--text);padding:0 12px;margin-bottom:8px}.transcript-cues{overflow-y:auto}.transcript-cue{display:flex;gap:10px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:.88rem;line-height:1.4}.transcript-cue:hover{background:var(--bg-hover)}.transcript-cue.active{background:#263238}.transcript-cue .ts{color:#3ea6ff;flex:0 0 auto;font-variant-numeric:tabular-nums}.quality-menu{position:relative}.quality-menu .menu{position:absolute;right:0;bottom:calc(100% + 8px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;overflow:hidden;min-width:140px;z-index:5}.quality-menu .menu button{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;color:var(--text);font-size:.9rem}.quality-menu .menu button:hover{background:var(--bg-hover)}.quality-menu .menu button.active{color:var(--accent);font-weight:600}.channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.channel-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px;border-radius:var(--radius)}.channel-card:hover{background:var(--bg-elevated)}.channel-avatar{width:88px;height:88px;border-radius:50%;background:var(--bg-hover);display:grid;place-items:center;font-size:2rem;font-weight:700;overflow:hidden;margin-bottom:10px}.channel-avatar img{width:100%;height:100%;object-fit:cover}.channel-header{display:flex;align-items:center;gap:20px;margin-bottom:24px}.channel-header .channel-avatar{width:120px;height:120px;margin:0}.topic-group{font-size:1.05rem;margin-bottom:10px}.topic-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.topic-row{display:flex;align-items:center;gap:12px;padding:14px 16px;color:var(--text);border-bottom:1px solid var(--border)}.topic-row:last-child{border-bottom:none}.topic-row:hover{background:var(--bg-hover)}.topic-row>svg:first-child{color:var(--text-dim);flex:0 0 auto}.topic-name{flex:1 1 auto;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-count{font-size:.85rem;flex:0 0 auto}.topic-chev{color:var(--text-dim);flex:0 0 auto}.center-card{max-width:400px;margin:80px auto;background:var(--bg-elevated);border-radius:var(--radius);padding:32px}.center-card h1{margin-top:0;font-size:1.4rem}.field{margin-bottom:16px}.field label{display:block;margin-bottom:6px;font-size:.85rem;color:var(--text-dim)}.field input,.field select{width:100%;height:42px;border-radius:8px;border:1px solid var(--border);background:#121212;color:var(--text);padding:0 12px;font-size:.95rem}.btn-primary{width:100%;height:44px;border:none;border-radius:22px;background:var(--accent);color:#fff;font-weight:600;font-size:.95rem}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:default}.error-text{color:var(--accent);font-size:.85rem;margin:8px 0}.banner{background:#332701;border:1px solid #665201;color:#ffe08a;padding:12px 16px;border-radius:8px;margin-bottom:20px}.admin-page{max-width:960px}.admin-header{margin-bottom:20px}.admin-header .row-title{margin-bottom:2px}.admin-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px}.admin-section h2{margin:0 0 4px;font-size:1.05rem}.section-help{color:var(--text-dim);font-size:.85rem;line-height:1.5;margin:0 0 16px}.section-help code,.path{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em;background:#121212;border:1px solid var(--border);border-radius:5px;padding:1px 5px;color:var(--text)}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-weight:600}table.data td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tr:last-child td{border-bottom:none}.col-actions{text-align:right;white-space:nowrap}.col-actions .pill-btn+.pill-btn{margin-left:6px}.empty-cell{text-align:center;padding:28px 10px}.stat-row{display:flex;flex-wrap:wrap;gap:40px}.stat{display:flex;flex-direction:column;gap:4px;min-width:180px}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.stat-value{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:8px}.meter{margin-top:4px;height:6px;width:160px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.meter>span{display:block;height:100%;background:var(--accent);transition:width .4s ease}.tag-badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);background:var(--bg-hover)}.tag-badge.accent{color:#ffb1b1;border-color:#5a2020;background:#2a1414}.tag-badge.good{color:#8ce6a5;border-color:#1f5233;background:#12251a}.toggle{font-size:.8rem;font-weight:600;padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-hover)}.toggle.on{color:#8ce6a5;border-color:#1f5233;background:#12251a}.toggle.off{color:var(--text-dim)}.pill-btn.sm{padding:5px 12px;font-size:.82rem;border-radius:999px}.pill-btn.danger:hover{background:#3a1414;color:#ff9b9b}.inline-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.inline-form .field{margin-bottom:0}.inline-form .field.grow{flex:1 1 160px}.checkbox-field{display:flex;align-items:center;gap:6px;font-size:.9rem;padding-bottom:10px}.btn-primary.compact{width:auto;height:42px;padding:0 20px;border-radius:21px}.section-footer{display:flex;align-items:center;gap:14px;margin-top:18px}.switch-row{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;cursor:pointer}.switch-row input{margin-top:3px;flex:0 0 auto}.result-msg{font-size:.88rem}.add-root{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.picker-label{display:block;font-size:.85rem;color:var(--text-dim);margin-bottom:8px}.add-root-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:14px}.add-root-row .field{margin-bottom:0}.add-root-row .field.grow{flex:1 1 160px}.selected-path{display:inline-flex;align-items:center;height:42px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-picker{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#121212}.fp-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elevated);font-size:.85rem}.fp-crumb-wrap{display:inline-flex;align-items:center;gap:2px}.fp-crumb{background:none;border:none;color:#3ea6ff;padding:2px 4px;border-radius:5px;font-size:.85rem}.fp-crumb:hover{background:var(--bg-hover)}.fp-crumb-wrap:last-child .fp-crumb{color:var(--text);font-weight:600}.fp-sep{color:var(--text-dim);flex:0 0 auto}.fp-list{max-height:260px;overflow-y:auto;padding:6px}.fp-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:none;border-radius:8px;background:none;color:var(--text);font-size:.9rem}.fp-row:hover{background:var(--bg-hover)}.fp-row svg{color:var(--text-dim);flex:0 0 auto}.fp-row.up{color:var(--text-dim)}.fp-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-chev{opacity:0}.fp-row:hover .fp-chev{opacity:1}.fp-empty{padding:20px 12px;text-align:center;font-size:.88rem}.muted{color:var(--text-dim)}.empty-state{color:var(--text-dim);padding:40px;text-align:center}.spinner{padding:40px;text-align:center;color:var(--text-dim)}@media (max-width: 1000px){.watch-layout{grid-template-columns:1fr}}@media (max-width: 768px){:root{--sidebar-w: 0px}.sidebar{display:none}.content{margin-left:0;padding:16px}.topbar .brand span.name{display:none}.video-grid{grid-template-columns:1fr;gap:20px}}
