@font-face{font-family:"CMU Serif";font-style:roman;font-weight:500;src:url(/lecturetex/assets/cmu-serif-500-roman-eT-JDYhI.woff2) format("woff2"),url(/lecturetex/assets/cmu-serif-500-roman-DzIVZ5Ds.ttf) format("truetype")}@font-face{font-family:"CMU Serif";font-style:italic;font-weight:500;src:url(/lecturetex/assets/cmu-serif-500-italic-Ea3rjVFP.woff2) format("woff2"),url(/lecturetex/assets/cmu-serif-500-italic-DmklLiNq.ttf) format("truetype")}@font-face{font-family:"CMU Serif";font-style:roman;font-weight:700;src:url(/lecturetex/assets/cmu-serif-700-roman-CFvVWXrf.woff2) format("woff2"),url(/lecturetex/assets/cmu-serif-700-roman-BjpK3YEj.ttf) format("truetype")}@font-face{font-family:"CMU Serif";font-style:italic;font-weight:700;src:url(/lecturetex/assets/cmu-serif-700-italic-CxA60R0R.woff2) format("woff2"),url(/lecturetex/assets/cmu-serif-700-italic-ysTsm4l3.ttf) format("truetype")}:root{--color-brand: #111111;--color-brand-light: #2a2a2a;--color-brand-dark: #000000;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-hover: #e2e8f0;--border: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--shadow: 0 1px 3px rgba(0,0,0,.08);--shadow-lg: 0 10px 25px rgba(0,0,0,.1)}@media (prefers-color-scheme: dark){:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-hover: #475569;--border: #334155;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #64748b;--shadow: 0 1px 3px rgba(0,0,0,.3);--shadow-lg: 0 10px 25px rgba(0,0,0,.3)}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%;font-family:"CMU Serif",serif;font-weight:500;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-shadow:0 1px 0 rgba(0,0,0,.02)}.web-app{display:flex;flex-direction:column;min-height:100vh}.web-header{position:sticky;top:0;z-index:10;background:var(--bg-primary);border-bottom:1px solid var(--border);padding:0 24px}.web-header-inner{max-width:720px;margin:0 auto;height:52px;display:flex;align-items:center}.web-logo{font-size:16px;font-weight:800;color:var(--text-primary);letter-spacing:-.01em}.web-main{flex:1;padding:32px 24px 64px;max-width:720px;width:100%;margin:0 auto}.home-screen{display:flex;flex-direction:column;gap:20px}.home-header{padding-bottom:8px}.home-title{font-size:28px;font-weight:800;color:var(--text-primary)}.home-subtitle{font-size:15px;color:var(--text-muted);margin-top:4px}.input-tabs{display:flex;gap:8px}.input-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--bg-secondary);cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:600;transition:all .15s}.input-tab:hover{border-color:var(--color-brand-light);color:var(--text-primary)}.input-tab.active{border-color:var(--color-brand);background:var(--color-brand);color:#fff}.tab-hint{font-size:11px;font-weight:400;opacity:.75}.input-area{min-height:100px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:32px;text-align:center;cursor:pointer;transition:all .15s;background:var(--bg-secondary)}.dropzone:hover,.dropzone.dragging{border-color:var(--color-brand)}.dropzone.has-file{border-style:solid;cursor:default}.dropzone-prompt{display:flex;flex-direction:column;align-items:center;gap:6px}.drop-icon{font-size:32px}.drop-title{font-size:15px;font-weight:600;color:var(--text-primary)}.drop-subtitle{font-size:12px;color:var(--text-muted)}.drop-btn{margin-top:8px;padding:6px 16px;border-radius:var(--radius-sm);border:1.5px solid var(--color-brand);background:none;color:var(--color-brand);font-size:13px;font-weight:600;cursor:pointer}.drop-btn:hover{background:var(--color-brand);color:#fff}.file-info{display:flex;align-items:center;gap:10px}.file-icon{font-size:24px}.file-name{flex:1;font-size:14px;font-weight:500;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove{background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:0 4px}.file-remove:hover{color:#222}.link-input-wrap{display:flex;flex-direction:column;gap:6px}.link-field{display:flex;align-items:center;gap:10px;padding:0 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);transition:border-color .15s}.link-field:focus-within{border-color:var(--color-brand)}.link-field.valid{border-color:var(--color-brand)}.link-icon{font-size:16px;flex-shrink:0}.link-input{flex:1;padding:12px 0;background:none;border:none;outline:none;color:var(--text-primary);font-size:14px}.link-input::placeholder{color:var(--text-muted)}.link-clear{background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer}.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 520px){.session-grid{grid-template-columns:1fr}}.session-field{display:flex;flex-direction:column;gap:5px}.session-field label{font-size:12px;font-weight:600;color:var(--text-secondary)}.optional{font-weight:400;color:var(--text-muted)}.session-input{padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .15s}.session-input:focus{border-color:var(--color-brand)}.session-field.required label:after{content:" *";color:var(--color-brand)}.options-row{display:flex;gap:20px}.options-row .selector-group{flex:1}@media (max-width: 600px){.options-row{flex-direction:column}}.selector-group{display:flex;flex-direction:column;gap:8px}.selector-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.subject-grid{display:flex;flex-wrap:wrap;gap:6px}.subject-chip{display:flex;align-items:center;gap:4px;padding:5px 10px;border-radius:0;border:1.5px solid var(--border);background:var(--bg-secondary);cursor:pointer;font-size:12px;font-weight:500;color:var(--text-secondary);transition:all .12s}.subject-chip:hover{border-color:var(--text-primary);color:var(--text-primary)}.subject-chip.active{border-color:var(--text-primary);background:var(--text-primary);color:#fff}.chip-emoji{font-size:13px}.depth-options{display:flex;gap:8px}.depth-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--bg-secondary);cursor:pointer;transition:all .15s}.depth-btn:hover{border-color:var(--color-brand-light)}.depth-btn.active{border-color:var(--color-brand);background:#0000000f}.depth-emoji{font-size:16px}.depth-label{font-size:12px;font-weight:600;color:var(--text-primary)}.depth-desc{font-size:10px;color:var(--text-muted);text-align:center;line-height:1.3}.instructions-toggle{background:none;border:none;color:var(--color-brand);font-size:13px;font-weight:600;cursor:pointer;padding:0}.instructions-box{display:flex;flex-direction:column;gap:6px}.instructions-header{display:flex;align-items:center;justify-content:space-between}.instructions-close{background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer}.instructions-textarea{padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;resize:vertical;outline:none;font-family:inherit;line-height:1.5}.instructions-textarea:focus{border-color:var(--color-brand)}.error-banner{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);color:#dc2626;font-size:13px}@media (prefers-color-scheme: dark){.error-banner{background:#dc26261a;border-color:#dc26264d;color:#f87171}}.submit-btn{width:100%;padding:14px;border-radius:var(--radius-md);border:none;background:var(--color-brand);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s,opacity .15s;letter-spacing:.01em}.submit-btn:hover:not(:disabled){background:var(--color-brand-dark);transform:translateY(-1px)}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.4;cursor:not-allowed}.processing-screen{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px)}.processing-card{width:100%;max-width:460px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);padding:40px 36px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;gap:16px}.processing-icon{font-size:48px;animation:pulse 2s infinite}.processing-icon.error{animation:none}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.85}}.processing-title{font-size:20px;font-weight:700;text-align:center}.processing-status{font-size:13px;color:var(--text-muted);text-align:center;min-height:20px}.processing-timer{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.progress-bar{width:100%;height:6px;background:var(--bg-tertiary);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--color-brand);border-radius:99px;transition:width .6s ease}.steps-list{width:100%;display:flex;flex-direction:column;gap:4px}.step-item{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px}.step-icon{width:18px;text-align:center;font-size:12px}.step-label{flex:1}.step-item.done .step-icon{color:#10b981}.step-item.done .step-label{color:var(--text-muted)}.step-item.active .step-icon{color:var(--color-brand);animation:spin 1.2s linear infinite}.step-item.active .step-label{color:var(--text-primary);font-weight:600}.step-item.pending .step-icon,.step-item.pending .step-label{color:var(--text-muted)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cancel-btn{background:none;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:7px 20px;color:var(--text-secondary);cursor:pointer;font-size:13px;transition:all .15s}.cancel-btn:hover{border-color:#222;color:#222}.result-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 120px);gap:24px;text-align:center}.result-check-wrap{width:72px;height:72px;background:var(--text-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:pop .4s ease}.result-check{font-size:36px;color:#fff}.result-heading{font-size:28px;font-weight:800}.result-meta{font-size:15px;color:var(--text-muted)}.result-course{font-weight:600;color:var(--text-primary)}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.result-stats{display:flex;gap:32px;padding:20px 32px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg)}.stat{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-value{font-size:24px;font-weight:800;color:var(--text-primary)}.stat-label{font-size:12px;color:var(--text-muted);font-weight:500}.result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.btn-primary{padding:11px 24px;border-radius:var(--radius-md);border:none;background:var(--color-brand);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s}.btn-primary:hover{background:var(--color-brand-dark);transform:translateY(-1px)}.btn-primary.large{padding:14px 32px;font-size:15px}.btn-secondary{padding:11px 20px;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.btn-secondary:hover{border-color:var(--text-primary);color:var(--text-primary)}.btn-ghost{padding:11px 20px;border-radius:var(--radius-md);border:none;background:none;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:color .15s}.btn-ghost:hover{color:var(--text-primary)}.btn-new{padding:10px 24px;border-radius:var(--radius-md);border:1.5px solid var(--color-brand);background:none;color:var(--color-brand);font-size:14px;font-weight:700;cursor:pointer;transition:all .15s}.btn-new:hover{background:var(--color-brand);color:#fff}
