:root{--bg:#f5f6f8;--surface:#fff;--text:#18202a;--muted:#667085;--line:#e5e7eb;--brand:#2f6fed;--brand-dark:#2258c7;--danger:#c9362b;--success:#137a4a;--warning:#9a6700;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,input{font:inherit}a{color:inherit}.shell{width:min(1180px,100% - 32px);margin:0 auto;padding:34px 0 60px}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px;display:flex}.topbar h1,.page-title{letter-spacing:-.02em;margin:0;font-size:28px}.topbar-actions,.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button,button.button{background:var(--brand);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;min-height:40px;padding:9px 15px;font-weight:650;text-decoration:none;transition:all .16s;display:inline-flex}.button:hover{background:var(--brand-dark)}.button:disabled{cursor:not-allowed;opacity:.58}.button.secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.button.secondary:hover{background:#f7f8fa}.button.danger{color:var(--danger);background:#fff;border-color:#f0c8c4}.button.small{border-radius:7px;min-height:34px;padding:6px 10px;font-size:13px}.card{border:1px solid var(--line);background:var(--surface);border-radius:14px;box-shadow:0 6px 24px #0f172a0a}.empty-state{text-align:center;padding:76px 28px}.empty-state h2{margin:0 0 8px;font-size:20px}.empty-state p,.subtle{color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1000px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:15px 14px;font-size:14px}th{color:#475467;letter-spacing:.03em;white-space:nowrap;background:#fafafa;font-size:12px;font-weight:700}tbody tr:last-child td{border-bottom:0}.title-cell{min-width:170px}.title-cell strong,.title-cell span{display:block}.title-cell span{color:var(--muted);margin-top:4px;font-size:12px}.share-path{max-width:190px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:block;overflow:hidden}.status{color:#475467;white-space:nowrap;background:#f2f4f7;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.status.complete{color:var(--success);background:#e9f8ef}.status.partial{color:var(--warning);background:#fff7df}.form-card{width:min(640px,100%);padding:28px}.form-stack{gap:20px;display:grid}.field{gap:8px;display:grid}.field label{font-size:14px;font-weight:700}.field input{width:100%;min-height:46px;color:var(--text);background:#fff;border:1px solid #cfd4dc;border-radius:9px;outline:none;padding:10px 12px}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2f6fed1f}.field-hint{color:var(--muted);margin:0;font-size:12px}.message{color:#234ea1;background:#eef4ff;border-radius:9px;margin:0;padding:12px 14px;font-size:14px}.message.error{color:#a62922;background:#fff0ef}.upload-status{color:#234ea1;background:#eef4ff;border-radius:10px;gap:9px;padding:14px;display:grid}.upload-status-row{justify-content:space-between;gap:14px;font-size:14px;display:flex}.upload-status-row span{font-variant-numeric:tabular-nums;flex:none;font-weight:750}.upload-status p{color:#486aa9;margin:0;font-size:12px}.upload-progress{background:#d7e4fb;border-radius:999px;height:10px;overflow:hidden}.upload-progress span{border-radius:inherit;background:var(--brand);height:100%;transition:width .18s;display:block}.result-box{background:#f1fbf5;border:1px solid #b7e3c9;border-radius:10px;gap:12px;padding:18px;display:grid}.result-box strong{color:var(--success)}.result-link{overflow-wrap:anywhere;background:#fff;border:1px solid #d4e9dc;border-radius:7px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(420px,100%);padding:32px}.login-card h1{margin:0 0 8px}.login-card>p{color:var(--muted);margin:0 0 24px}.watch-page{background:#f4f5f7;min-height:100vh;padding:30px 16px 60px}.watch-card{border:1px solid var(--line);background:#fff;border-radius:16px;width:min(760px,100%);margin:0 auto;overflow:hidden;box-shadow:0 10px 36px #0f172a14}.watch-heading{padding:22px 22px 18px}.watch-heading .student{color:var(--brand);margin:0 0 6px;font-size:14px;font-weight:750}.watch-heading h1{margin:0;font-size:clamp(21px,5vw,28px);line-height:1.3}.video-frame{background:#000}.video-frame video{background:#000;width:100%;max-height:72vh;display:block}.player-message{color:#d1d5db;background:#111827;justify-content:space-between;align-items:center;gap:12px;min-height:46px;padding:10px 16px;font-size:13px;display:flex}.player-message.error{color:#fee2e2;background:#3b1717}.player-message .button{min-height:32px;padding:5px 10px;font-size:12px}.watch-note{color:var(--muted);margin:0;padding:15px 22px 20px;font-size:13px}@media (max-width:700px){.shell{width:min(100% - 22px,1180px);padding-top:22px}.topbar{flex-direction:column;align-items:flex-start}.topbar h1,.page-title{font-size:24px}.form-card{padding:20px}.watch-page{background:#fff;padding:0}.watch-card{min-height:100vh;box-shadow:none;border:0;border-radius:0}}
