:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1a2740;background:#f6f8fc;font-synthesis:none;font-size:15px}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}a{color:#3259c5;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:0}button:disabled{opacity:.48;cursor:not-allowed}
.topbar{height:70px;background:#fff;border-bottom:1px solid #e7ebf3;display:flex;align-items:center;gap:28px;padding:0 max(24px,calc((100vw - 1160px)/2));position:sticky;top:0;z-index:20}
.logo{display:flex;align-items:center;gap:10px;color:#1b2843;font-size:19px;font-weight:700;white-space:nowrap}.logo:hover{text-decoration:none}.logo-mark{background:#415ed9;color:white;width:33px;height:33px;border-radius:10px;display:grid;place-items:center;font-size:14px}
nav{display:flex;gap:5px;margin-right:auto}.nav-link{border-radius:9px;padding:10px 15px;color:#66758c;font-weight:600}.nav-link.active,.nav-link:hover{background:#eef2ff;color:#3454c1;text-decoration:none}.account{font-size:13px;color:#718096;display:flex;align-items:center;gap:12px}
main{max-width:1160px;padding:36px 24px 80px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.eyebrow{color:#4460ca;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.13em;margin:0 0 7px}.page-head h1,h1{font-size:30px;letter-spacing:-.04em;margin:0;font-weight:750}.subtitle{color:#718096;line-height:1.55;margin:9px 0 0}
.card{background:#fff;border:1px solid #e7ebf2;border-radius:16px;padding:22px;box-shadow:0 4px 24px rgba(28,45,87,.035)}.card h2{font-size:17px;margin:0 0 17px;letter-spacing:-.02em}.stack{display:flex;flex-direction:column;gap:16px}.hstack{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:20px}.grid2.equal{grid-template-columns:1fr 1fr}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1}.field>span,label{font-size:13px;font-weight:650;color:#596881}.input,select{border:1px solid #d9e0ed;background:#fff;border-radius:9px;outline:0;padding:11px 12px;width:100%;min-width:0;color:#20304b}.input:focus,select:focus{border-color:#4b64d4;box-shadow:0 0 0 3px #415ed91c}input[type=range]{accent-color:#4b64d4;cursor:pointer;width:100%}
.btn{border-radius:9px;padding:11px 17px;background:#425fd0;color:white;font-weight:700;white-space:nowrap;min-height:42px}.btn:hover{background:#324cb4}.btn.secondary{background:#eef2ff;color:#3551b7}.btn.secondary:hover{background:#e0e7ff}.btn.ghost{background:#f2f4f8;color:#51617c}.btn.ghost:hover{background:#e8edf5}.btn.danger{background:#fff0f0;color:#b43d46}.btn.sm{padding:8px 12px;min-height:35px;font-size:13px}.link-btn{background:transparent;color:#4964c8;padding:3px;font-weight:650}.section-title{font-weight:740;font-size:17px;margin:0}.muted{color:#7c899e}.small{font-size:12px}.tag{font-size:11px;font-weight:800;letter-spacing:.02em;background:#edf2ff;color:#3959bf;border-radius:20px;padding:5px 9px}.tag.warn{background:#fff1da;color:#9f6b0f}.tag.good{background:#e9f8f0;color:#167a4c}.divider{height:1px;background:#edf0f5;margin:17px 0}.notice{padding:12px 14px;border-radius:9px;background:#f2f5ff;color:#52618c;font-size:13px;line-height:1.5}.notice.error{background:#fff0ef;color:#ab3d41}.notice.success{background:#edfbf3;color:#287547}
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:16px}.video-card{padding:0;overflow:hidden}.video-card>a{display:block;color:inherit;text-decoration:none}.video-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#eef0f4}.video-card .info{padding:15px}.video-card h3{font-size:15px;margin:0 0 7px;overflow-wrap:anywhere}.video-card:hover{border-color:#a9b6ed}.video-frame{aspect-ratio:16/9;background:#111827;overflow:hidden;border-radius:12px;position:relative}.video-frame iframe{width:100%;height:100%}.video-frame>div{width:100%;height:100%}.clip-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #e8edf4;border-radius:10px;padding:11px 12px;margin:9px 0}.clip-meta{min-width:0;font-size:13px;color:#667489}.clip-meta strong{display:block;color:#263451;font-size:14px;margin-bottom:4px}.clip-actions{display:flex;gap:6px;flex-wrap:wrap}.ranges{display:flex;flex-direction:column;gap:7px}.range-item{display:flex;align-items:center;justify-content:space-between;padding:10px;border:1px solid #ecf0f7;border-radius:8px;font-size:13px;gap:8px}.range-item button{color:#af4e55;background:transparent}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.timer{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.015em;color:#354d9e}.empty{color:#8894a5;text-align:center;padding:32px 12px}.lesson-card{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:9px 0;padding:17px;border-radius:12px;border:1px solid #e7edf6}.lesson-card h3{margin:0 0 7px;font-size:15px}.member{padding:10px 2px;border-bottom:1px solid #f0f2f5;display:flex;align-items:center;justify-content:space-between;font-size:14px}.member:last-child{border-bottom:0}.dot{display:inline-block;width:8px;height:8px;background:#b6c1d0;border-radius:50%;margin-right:8px}.dot.online{background:#32b879}.statusline{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.player-controls{display:flex;gap:12px;margin:14px 0;flex-wrap:wrap}.player-controls>.btn{flex:1;min-width:100px}.auth-card{max-width:440px;margin:65px auto}.auth-card h1{font-size:26px;margin:0 0 7px}.auth-card .stack{margin-top:22px}.guest-title{max-width:500px;margin:18px auto 25px;text-align:center}.guest-title h1{margin-bottom:9px}.guest-container{max-width:900px;margin:auto}.toast{position:fixed;bottom:24px;right:24px;border-radius:10px;background:#263550;color:white;padding:13px 19px;max-width:370px;z-index:50;display:none;box-shadow:0 7px 40px #20304b55}.toast.show{display:block}.loading{color:#8490a2;text-align:center;padding:75px 0}
@media(max-width:800px){.topbar{padding:0 16px;gap:13px;height:62px}main{padding:24px 14px 80px}.grid2,.grid2.equal{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:25px}.card{padding:17px}.account .email{display:none}.video-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}nav{gap:0}.nav-link{padding:9px 8px;font-size:13px}.logo{font-size:16px}.logo-mark{width:28px;height:28px}}
@media(max-width:380px){.logo>span:last-child{display:none}.btn{padding:10px 12px}.clip-row{align-items:flex-start;flex-direction:column}.clip-actions{width:100%}}
/* v0.3: native YouTube controls are hidden via supported iframe parameters; do not overlay the embed. */
nav>a{padding:10px 12px;color:#53678a;font-weight:600;font-size:13px;white-space:nowrap}
nav>a:hover{color:#425fd0}
.device-qr{width:260px;max-width:100%;height:auto;align-self:center;background:white;border:1px solid #e5ebf5;border-radius:12px;padding:12px}
.transcript{white-space:pre-wrap;word-break:break-word;background:#f6f8fb;border-radius:9px;max-height:420px;overflow:auto;font:12px/1.65 ui-monospace,monospace;padding:15px}
details{margin-top:12px}summary{cursor:pointer;color:#3b55ad;font-size:13px;font-weight:650}
@media(max-width:800px){.topbar{flex-wrap:wrap;height:auto;min-height:62px;padding:10px 14px}nav{order:3;width:100%;overflow-x:auto}.account{margin-left:auto}}

/* v0.4: intercept pointer/touch events before they reach the embedded player. */
.video-frame .video-blocker{position:absolute;inset:0;width:100%;height:100%;z-index:4;background:transparent;pointer-events:auto;touch-action:manipulation;cursor:default}
.video-frame iframe{pointer-events:none}
.live-transcript{border:1px solid #e5ebf5;border-radius:10px;padding:11px 14px;margin:12px 0 14px;background:#f8faff}
.live-transcript strong{font-size:13px;color:#52618c}
.transcript-line{min-height:32px;margin-top:9px;line-height:1.5;font-size:15px;font-weight:550;color:#253959}
.transcript-line[hidden]{display:none}
.invite-entry{padding:15px 0;border-bottom:1px solid #e8edf4}
.invite-entry:last-child{border-bottom:none}
button[role="tab"][aria-selected="true"]{background:#425fd0;color:white}
