*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f5f5;--surface:#fff;--primary:#1976d2;--border:#d0d0d0}html,body{-webkit-user-select:none;user-select:none;touch-action:none;background-color:#0f172a;width:100vw;height:100dvh;margin:0;padding:0;overflow:hidden}#app{box-sizing:border-box;flex-direction:row;width:100vw;height:100dvh;display:flex;overflow:hidden}.app-layout{flex-direction:row;flex:1;width:100%;min-width:0;height:100%;min-height:0;display:flex}.toolbar{width:auto;min-width:56px;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom));padding-left:max(4px, env(safe-area-inset-left));z-index:10;scrollbar-width:none;background:#fff;border-right:1px solid #cbd5e1;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;gap:12px;padding-right:4px;display:flex;overflow-y:auto}.toolbar::-webkit-scrollbar{display:none}.toolbar-group{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.toolbar-group.navigation,.toolbar-group.recording{gap:4px}.toolbar-group.actions{gap:6px}#pageIndicator{color:#334155;text-align:center;white-space:nowrap;padding:2px 0;font-size:11px;font-weight:700}#recordingTimer{font-variant-numeric:tabular-nums;color:#334155;text-align:center;white-space:nowrap;padding:2px 0;font-size:11px;font-weight:700}.viewer-area{background-color:#0f172a;flex:1;min-width:0;height:100%;min-height:0;display:flex}.canvas-wrapper{flex:1;justify-content:center;align-items:center;width:100%;height:100%;margin:0;padding:0;display:flex;position:relative;overflow:hidden}#slideContainer{margin:0;padding:0;line-height:0;display:inline-block;position:relative;box-shadow:0 0 20px #0006}#pdfCanvas{background:#fff;margin:0;padding:0;display:block}#highlighterCanvas{pointer-events:none;mix-blend-mode:multiply;width:100%;height:100%;position:absolute;top:0;left:0}#inkCanvas{pointer-events:auto;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}#stylusToolbar{width:auto;min-width:52px;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom));padding-left:4px;padding-right:max(4px, env(safe-area-inset-right));z-index:10;background:#fff;border-left:1px solid #cbd5e1;flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar{display:none!important}button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:18px;transition:all .15s;display:flex;box-shadow:0 1px 2px #0000000d}button:hover{background:#f8fafc;border-color:#94a3b8}button:active{transform:scale(.94)}button.active{color:#fff;background:#2563eb;border-color:#1d4ed8;box-shadow:0 0 0 2px #2563eb59}button.recording{color:#fff;background:#ef4444;border-color:#dc2626;animation:1.5s infinite pulse}button.paused{color:#fff;background:#f59e0b;border-color:#d97706;box-shadow:0 0 0 2px #f59e0b59}#recordingTimer.paused{color:#f59e0b;animation:1s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.05);box-shadow:0 0 0 6px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}button:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.app-toast{color:#fff;-webkit-backdrop-filter:blur(10px);z-index:9999;opacity:0;pointer-events:none;text-align:center;background:#0f172af2;border:1px solid #475569;border-radius:12px;max-width:90vw;padding:12px 18px;font-size:13px;line-height:1.4;transition:all .25s cubic-bezier(.16,1,.3,1);position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(30px);box-shadow:0 8px 24px #0006}.app-toast.visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.rotate-notice{color:#f8fafc;-webkit-backdrop-filter:blur(8px);z-index:1000;white-space:nowrap;background:#1e293bf2;border:1px solid #3b82f6;border-radius:20px;align-items:center;gap:8px;padding:8px 14px;font-size:12px;font-weight:600;display:none;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}.rotate-notice .dismiss-btn{color:#fff;cursor:pointer;background:#475569;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;min-width:20px;height:20px;padding:0;font-size:14px;line-height:1;display:flex}@media (width<=600px) and (orientation:portrait){.rotate-notice:not(.dismissed){display:flex}}.sync-badge{color:#94a3b8;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#1e293b;border:1px solid #334155;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;display:flex}.sync-badge.syncing{color:#38bdf8;border-color:#0284c7;animation:1.2s infinite blink}.sync-badge.pending{color:#fbbf24;border-color:#d97706}.sync-badge.processing{color:#38bdf8;background:#0ea5e926;border-color:#0284c7;animation:1.8s ease-in-out infinite sync-pulse}@keyframes sync-pulse{0%{opacity:.65;transform:scale(.97)}50%{opacity:1;transform:scale(1)}to{opacity:.65;transform:scale(.97)}}.sync-badge.synced{color:#4ade80;border-color:#16a34a}.play-lecture-btn{color:#fff;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .2s;animation:.4s ease-out play-bounce;display:inline-flex;box-shadow:0 4px 12px #10b98159}@keyframes play-bounce{0%{opacity:0;transform:scale(.85)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.play-lecture-btn:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-1px);box-shadow:0 6px 16px #10b98180}.play-lecture-btn:active{transform:translateY(0)}.video-modal-card{background:#090d16;border:1px solid #334155;border-radius:12px;width:94%;max-width:900px;padding:8px;position:relative;box-shadow:0 25px 50px -12px #000000b3}.video-modal-close-btn{color:#f1f5f9;cursor:pointer;z-index:25;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ad9;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:22px;line-height:1;transition:all .2s;display:flex;position:absolute;top:14px;right:14px;box-shadow:0 2px 8px #00000080}.video-modal-close-btn:hover{color:#fff;background:#ef4444;border-color:#ef4444;transform:scale(1.08)}.video-modal-card .video-container{aspect-ratio:16/9;background:#000;border-radius:8px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.video-modal-card .video-container video{object-fit:contain;outline:none;width:100%;height:100%}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:10000;opacity:0;pointer-events:none;background:#0f172ad9;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .2s;display:flex;position:fixed;top:0;left:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-card{color:#f8fafc;background:#0f172a;border:1px solid #334155;border-radius:16px;width:90%;max-width:460px;padding:24px;font-family:inherit;box-shadow:0 20px 40px #0009}.modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-title{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.modal-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:22px;line-height:1;transition:background .15s,color .15s;display:flex}.modal-close-btn:hover{color:#fff;background:#1e293b}.form-group{margin-bottom:14px}.form-group label{color:#94a3b8;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-input{color:#fff;box-sizing:border-box;background:#1e293b;border:1px solid #475569;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.form-hint{color:#64748b;margin-top:4px;font-size:11px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.btn-primary{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #1d4ed8;border-radius:8px;width:auto;height:auto;padding:10px 18px;font-size:13px;font-weight:600}.btn-primary:hover{background:#1d4ed8}.btn-secondary{color:#e2e8f0;cursor:pointer;background:#334155;border:1px solid #475569;border-radius:8px;width:auto;height:auto;padding:10px 16px;font-size:13px;font-weight:600}.btn-secondary:hover{background:#475569}.progress-bar-track{background:#1e293b;border:1px solid #334155;border-radius:5px;width:100%;height:10px;margin:16px 0 10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#3b82f6,#06b6d4);border-radius:5px;width:0%;height:100%;transition:width .15s}.progress-bar-fill.processing{background:linear-gradient(90deg,#0284c7,#38bdf8,#818cf8) 0 0/200% 100%;animation:1.8s ease-in-out infinite progress-pulse}@keyframes progress-pulse{0%{opacity:.75;background-position:0%}50%{opacity:1;background-position:100%}to{opacity:.75;background-position:0%}}.progress-stats{color:#94a3b8;justify-content:space-between;font-size:12px;display:flex}.upload-status-text{color:#cbd5e1;margin-top:12px;font-size:13px;line-height:1.4}.camera-bubble{aspect-ratio:1;z-index:60;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#0f172a;border:2px solid #ffffffd9;border-radius:50%;width:auto;min-width:80px;height:22%;min-height:80px;transition:opacity .2s,transform .1s;position:absolute;overflow:hidden;box-shadow:0 4px 20px #00000059}.camera-bubble:active{cursor:grabbing}.camera-bubble.dragging{cursor:grabbing;transform:scale(1.03);box-shadow:0 8px 28px #00000073}.camera-bubble.hidden{display:none!important}.camera-bubble video{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block;transform:scaleX(-1)}@media (width<=640px){.camera-bubble{min-width:60px;min-height:60px}}#pdfCanvas{display:block}#inkCanvas{pointer-events:auto;touch-action:none;pointer-events:auto;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;position:absolute}.canvas-wrapper{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:auto}
