*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #4A90A4;--primary-dark: #3a7a8a;--secondary-color: #6B7280;--instructor-color: #3B82F6;--student-color: #10B981;--background-color: #F9FAFB;--surface-color: #FFFFFF;--border-color: #E5E7EB;--text-primary: #111827;--text-secondary: #6B7280;--highlight-color: #FEF3C7;--error-color: #EF4444;--success-color: #10B981}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--background-color);color:var(--text-primary);line-height:1.6;min-width:320px;min-height:100vh}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5;padding:20px}.login-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:0 4px 20px #0000001a}.login-header{text-align:center;margin-bottom:32px}.login-logo{width:120px;height:auto;margin-bottom:16px}.login-header h1{margin:0 0 8px;font-size:1.5rem;color:#1e293b;font-weight:600}.login-header p{margin:0;color:#64748b;font-size:.9rem}.gosapo-branding{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px}.gosapo-branding span:first-child{font-size:11px;color:#9ca3af}.gosapo-text{font-size:14px;font-weight:600;color:#f97316}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.9rem;font-weight:500;color:#374151}.form-group input{width:100%;padding:12px 16px;border:2px solid #E5E7EB;border-radius:10px;font-size:1rem;color:#1f2937;transition:all .2s;box-sizing:border-box}.form-group input::placeholder{color:#9ca3af}.form-group input:hover{border-color:#a5b4fc}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.form-group input:disabled{background:#f9fafb;cursor:not-allowed}.error-message{padding:12px 16px;background:#fef2f2;border:1px solid #FECACA;border-radius:10px;color:#dc2626;font-size:.9rem;text-align:center}.login-button{width:100%;padding:14px;margin-top:8px;background:#1e293b;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.login-button:hover{background:#334155}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button:disabled:hover{background:#1e293b}.login-help{margin-top:24px;text-align:center}.manual-link{display:inline-flex;align-items:center;gap:6px;color:#3b82f6;text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s}.manual-link:hover{color:#2563eb;text-decoration:underline}.login-footer{margin-top:16px;padding-top:20px;border-top:1px solid #E5E7EB;text-align:center}.login-footer p{margin:0;font-size:.8rem;color:#9ca3af}@media(max-width:480px){.login-page{padding:16px}.login-card{padding:24px 20px;border-radius:10px}.login-logo{width:100px}.login-header{margin-bottom:24px}.login-header h1{font-size:1.25rem}.login-header p{font-size:.85rem}.login-form{gap:16px}.form-group label{font-size:.85rem}.form-group input{padding:10px 14px;font-size:16px}.login-button{padding:12px;font-size:.95rem}.login-footer{margin-top:20px;padding-top:16px}.login-footer p{font-size:.75rem}}.login-hint{margin:0 0 16px;padding:8px 12px;border-radius:8px;background:#eff6ff;color:#1e3a8a;font-size:.85rem;line-height:1.5;word-break:break-all}.header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 2px 8px #00000026}.header-student{background:linear-gradient(135deg,#059669,#10b981)}.header-instructor{background:linear-gradient(135deg,#1e3a8a,#1d4ed8)}.header-admin{background:linear-gradient(135deg,#5b21b6,#7c3aed)}.header-left{display:flex;align-items:center;gap:16px}.header-title{margin:0;font-size:1.25rem;font-weight:600}.header-right{display:flex;align-items:center;gap:12px}.role-badge{padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.user-name{font-weight:500;color:#fff}.btn-logout{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:6px 12px;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-logout:hover{background:#ffffff4d}.tabs{display:flex;gap:4px;padding:12px 20px;background-color:#fff;border-bottom:1px solid #E5E7EB}.tab{position:relative;padding:10px 20px;border:none;background-color:transparent;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s ease;display:flex;align-items:center;gap:4px}.tab:hover{background-color:#f9fafb;color:#111827}.tab.active{background-color:#4a90a4;color:#fff}.tab-icon,.tab-label{font-size:14px}.tab-badge{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.tab-instruction{background:#fef3c7;border:1px solid #F59E0B}.tab-instruction:hover{background:#fde68a}.tab-instruction.active{background:#f59e0b;color:#fff}.tab-note{background:#e0e7ff;border:1px solid #6366F1}.tab-note:hover{background:#c7d2fe}.tab-note.active{background:#6366f1;color:#fff}@media(max-width:768px){.tabs{overflow-x:auto;white-space:nowrap;padding:10px 12px;gap:6px;-webkit-overflow-scrolling:touch}.tab{padding:8px 12px;font-size:13px}.tab-icon{font-size:12px}.tab-label{font-size:13px}}@media(max-width:480px){.tabs{padding:8px 10px;gap:4px}.tab{padding:6px 10px;font-size:12px;border-radius:4px}.tab-icon{font-size:11px}.tab-label{font-size:12px}.tab-badge{top:-4px;right:-4px;font-size:.6rem;padding:1px 4px;min-width:14px}}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0003;max-height:90vh;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-small{width:100%;max-width:400px}.modal-medium{width:100%;max-width:600px}.modal-large{width:100%;max-width:800px}.modal-xlarge{width:100%;max-width:1400px;min-height:600px}.modal-fullscreen{width:calc(100vw - 40px);height:calc(100vh - 40px);max-width:none;max-height:none;border-radius:8px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #E5E7EB}.modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.modal-close:hover{background:#f3f4f6;color:#4b5563}.modal-header-actions{display:flex;align-items:center;gap:8px}.modal-expand-btn{background:none;border:none;font-size:1.1rem;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.modal-expand-btn:hover{background:#f3f4f6;color:#4b5563}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #E5E7EB}.audio-player{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:8px 0;max-width:100%}.audio-player-error{background:#fef2f2;border-color:#fecaca}.audio-player .error-icon{font-size:1rem}.audio-player .error-text{font-size:.875rem;color:#dc2626}.audio-player .play-button{width:36px;height:36px;border-radius:50%;background:#6366f1;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .2s,transform .1s;flex-shrink:0}.audio-player .play-button:hover:not(:disabled){background:#4f46e5;transform:scale(1.05)}.audio-player .play-button:disabled{opacity:.6;cursor:not-allowed}.audio-player .play-button.playing{background:#6366f1}.audio-player .play-icon,.audio-player .pause-icon{font-size:.875rem}.audio-player .loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.audio-player .audio-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.audio-player .file-name{font-size:.875rem;font-weight:500;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-player .progress-container{display:flex;align-items:center;gap:8px}.audio-player .progress-bar{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:#e2e8f0;border-radius:2px;cursor:pointer}.audio-player .progress-bar::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#6366f1;border-radius:50%;cursor:pointer;transition:transform .1s}.audio-player .progress-bar::-webkit-slider-thumb:hover{transform:scale(1.2)}.audio-player .progress-bar::-moz-range-thumb{width:12px;height:12px;background:#6366f1;border:none;border-radius:50%;cursor:pointer}.audio-player .progress-bar::-webkit-slider-runnable-track{background:linear-gradient(to right,#6366f1 0%,#6366f1 var(--progress, 0%),#e2e8f0 var(--progress, 0%),#e2e8f0 100%);border-radius:2px}.audio-player .time-display{font-size:.75rem;color:#64748b;font-variant-numeric:tabular-nums;white-space:nowrap}.audio-player.compact{padding:4px 8px;gap:8px}.audio-player.compact .play-button{width:28px;height:28px}.audio-player.compact .file-name{font-size:.8125rem}.audio-player.compact .time-display{font-size:.6875rem}.markdown-body{background-color:#fff;padding:32px;border-radius:8px;box-shadow:0 1px 3px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:#111827;max-width:100%;margin:0}.markdown-body h1{font-size:28px;font-weight:700;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #E5E7EB}.markdown-body h2{font-size:22px;font-weight:600;margin-top:32px;margin-bottom:12px;color:#3a7a8a}.markdown-body h3{font-size:18px;font-weight:600;margin-top:24px;margin-bottom:8px}.markdown-body p{margin-bottom:16px}.markdown-body ul,.markdown-body ol{margin-bottom:16px;padding-left:24px}.markdown-body li{margin-bottom:8px}.markdown-body blockquote{border:1px solid #E5E7EB;border-left:4px solid #4A90A4;border-radius:8px;padding:16px 20px;margin:12px 0;background:#fafbfc;color:inherit}.markdown-body code{background-color:#f9fafb;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:14px}.markdown-body pre{background-color:#f8fafc;color:#334155;padding:16px 20px;border-radius:8px;border:1px solid #E2E8F0;border-left:4px solid #6366F1;overflow-x:auto;margin:16px 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.7;white-space:pre-wrap;word-wrap:break-word}.markdown-body pre code{background-color:transparent;padding:0;color:inherit;font-family:inherit;font-size:inherit}.markdown-body table{width:100%;border-collapse:collapse;margin:16px 0}.markdown-body th,.markdown-body td{border:1px solid #E5E7EB;padding:12px;text-align:left}.markdown-body th{background-color:#f9fafb;font-weight:600}.markdown-body img{max-width:100%;height:auto;border-radius:8px;margin:16px 0}.markdown-body a{color:#4a90a4;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body hr{border:none;border-top:1px solid #E5E7EB;margin:2em 0}.markdown-body .highlighted{background-color:#fef3c7;cursor:pointer;position:relative}.markdown-body .highlighted:hover{background-color:#fde68a}.markdown-body .highlighted.instructor{border-bottom:2px solid #3B82F6}.markdown-body .highlighted.student{border-bottom:2px solid #10B981}.inline-comment-highlight{background:linear-gradient(180deg,transparent 60%,#FEF08A 60%);padding:2px 4px;margin:0 -2px;border-radius:3px;cursor:pointer;position:relative;transition:all .2s ease;text-decoration-style:wavy;text-decoration-thickness:2px}.inline-comment-highlight:hover{background:linear-gradient(180deg,transparent 40%,#FDE047 40%);box-shadow:0 2px 8px #fbbf2466}.inline-comment-highlight.instructor{text-decoration:underline;text-decoration-color:#3b82f6;text-underline-offset:3px;border-left:3px solid #3B82F6;padding-left:6px}.inline-comment-highlight.student{text-decoration:underline;text-decoration-color:#10b981;text-underline-offset:3px;border-left:3px solid #10B981;padding-left:6px}.comment-indicator{display:inline-flex;align-items:center;justify-content:center;font-size:11px;margin-left:4px;padding:2px 6px;background-color:#3b82f6;color:#fff;border-radius:10px;cursor:pointer;opacity:.9;transition:all .2s ease;vertical-align:middle}.inline-comment-highlight.student .comment-indicator{background-color:#10b981}.comment-indicator:hover{opacity:1;transform:scale(1.1)}@media(max-width:768px){.markdown-body{padding:16px;border-radius:0;box-shadow:none}.markdown-body h1{font-size:22px}.markdown-body h2{font-size:18px;margin-top:24px}.markdown-body h3{font-size:16px;margin-top:20px}}@media(max-width:480px){.markdown-body{padding:12px}.markdown-body h1{font-size:20px}.markdown-body h2{font-size:17px}.markdown-body h3{font-size:15px}}.markdown-body .audio-loading{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:#f1f5f9;border-radius:6px;color:#64748b;font-size:.875rem}.markdown-body .audio-loading .loading-spinner{width:14px;height:14px;border:2px solid #cbd5e1;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}.markdown-body .audio-not-found{display:inline-block;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem}.markdown-body .image-loading{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;background:#f1f5f9;border-radius:8px;color:#64748b;font-size:.875rem}.markdown-body .image-loading .loading-spinner{width:16px;height:16px;border:2px solid #cbd5e1;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}.markdown-body .image-not-found{display:inline-block;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem}.markdown-body .markdown-image{max-width:100%;height:auto;border-radius:8px;margin:16px 0;display:block;box-shadow:0 2px 8px #0000001a}.markdown-body .markdown-image:hover{box-shadow:0 4px 12px #00000026}.markdown-body details.collapsible-section{margin:16px 0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.markdown-body details.collapsible-section>summary{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f9fafb;font-size:18px;font-weight:600;color:#3a7a8a;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.markdown-body details.collapsible-section>summary::-webkit-details-marker{display:none}.markdown-body details.collapsible-section>summary:before{content:"▶";font-size:12px;transition:transform .2s ease;color:#9ca3af}.markdown-body details.collapsible-section[open]>summary:before{transform:rotate(90deg)}.markdown-body details.collapsible-section>summary:hover{background:#f3f4f6}.markdown-body details.collapsible-section>*:not(summary){padding:0 16px}.markdown-body details.collapsible-section>p:last-child,.markdown-body details.collapsible-section>table:last-child,.markdown-body details.collapsible-section>ul:last-child,.markdown-body details.collapsible-section>ol:last-child{margin-bottom:16px}.markdown-body .task-checkbox{width:18px;height:18px;margin-right:8px;accent-color:#4A90A4;cursor:pointer;vertical-align:middle}.markdown-body .task-list-item{list-style:none;padding:4px 0}.markdown-body .contains-task-list{padding-left:12px}.markdown-body .memo-input{display:block;width:100%;min-height:80px;padding:10px 12px;margin:8px 0;border:1px solid #D1D5DB;border-radius:6px;background-color:#fafafa;font-family:inherit;font-size:14px;line-height:1.6;color:#111827;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.markdown-body .memo-input:focus{outline:none;border-color:#4a90a4;box-shadow:0 0 0 3px #4a90a426;background-color:#fff}.markdown-body .memo-input::placeholder{color:#9ca3af}.markdown-body .teacher-only-block{position:relative;background:#e8f4f8;border-left:4px solid #4A90A4;border-radius:4px;padding:.75em 1em;margin:1em 0}.markdown-body .teacher-only-block:before{content:"講師向け";display:inline-block;background:#4a90a4;color:#fff;font-size:.72em;font-weight:600;line-height:1;padding:.3em .6em;border-radius:3px;margin-bottom:.5em}.markdown-body .teacher-only-block>*:first-child{margin-top:0}.markdown-body .teacher-only-block>*:last-child{margin-bottom:0}.markdown-body .teacher-only-inline{background:#e8f4f8;border-bottom:2px solid #4A90A4;border-radius:2px;padding:.1em .3em}.html-document-print-only{display:none}@media print{.html-document-screen-only{display:none!important}.html-document-print-only{display:block!important}}.markdown-editor{border:1px solid #D1D5DB;border-radius:8px;overflow:hidden}.markdown-editor-header{display:flex;align-items:center;background:#f9fafb;border-bottom:1px solid #D1D5DB}.markdown-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;background:#f3f4f6;border-bottom:1px solid #E5E7EB}.toolbar-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;border-radius:4px;color:#6b7280;cursor:pointer;transition:all .15s}.toolbar-btn:hover{background:#e5e7eb;color:#374151}.toolbar-btn:active{background:#d1d5db}.toolbar-divider{width:1px;height:20px;background:#d1d5db;margin:0 4px}.toolbar-btn-dropdown{display:flex;align-items:center;gap:2px;width:auto;padding:0 6px}.toolbar-dropdown{position:relative}.toolbar-menu{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid #E5E7EB;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:140px;z-index:100;overflow:hidden}.toolbar-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:transparent;font-size:.875rem;color:#374151;cursor:pointer;text-align:left;transition:background .15s}.toolbar-menu-item:hover{background:#f3f4f6}.heading-preview{display:flex;align-items:center;justify-content:center;width:28px;height:24px;background:#e5e7eb;border-radius:4px;font-weight:700;color:#374151}.heading-preview.h1{font-size:1rem}.heading-preview.h2{font-size:.875rem}.heading-preview.h3{font-size:.75rem}.heading-label{color:#6b7280}.toolbar-menu.color-menu{padding:8px;min-width:auto}.color-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.color-swatch{width:24px;height:24px;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:all .15s}.color-swatch:hover{transform:scale(1.15);border-color:#374151}.markdown-editor-tabs{display:flex;align-items:center;border-bottom:1px solid #D1D5DB;background:#f9fafb}.tab-actions{margin-left:auto;padding-right:8px}.attach-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid #D1D5DB;border-radius:4px;background:#fff;font-size:.8rem;color:#6b7280;cursor:pointer;transition:all .2s}.attach-btn:hover{border-color:#6366f1;color:#6366f1}.markdown-editor-tabs .tab-btn{padding:8px 16px;border:none;background:transparent;font-size:.875rem;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}.markdown-editor-tabs .tab-btn:hover{color:#374151}.markdown-editor-tabs .tab-btn.active{color:#6366f1;border-bottom-color:#6366f1;background:#fff}.markdown-editor-content{min-height:150px}.markdown-textarea{width:100%;padding:12px;border:none;font-size:.95rem;font-family:inherit;resize:vertical;min-height:150px;line-height:1.5}.markdown-textarea:focus{outline:none}.markdown-preview{padding:12px;min-height:150px;background:#fff}.markdown-preview .markdown-body{padding:0}.preview-empty{color:#9ca3af;font-style:italic}.attachments-section{padding:8px 12px;border-top:1px solid #E5E7EB;background:#fafafa}.attachments-section.pending{background:#fef3c7}.attachments-label{font-size:.75rem;color:#6b7280;font-weight:500;margin-bottom:6px}.attachments-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#fff;border-radius:4px;font-size:.8rem}.attachment-item.pending{background:#fff7ed}.attachment-link{display:flex;align-items:center;gap:6px;color:#374151;text-decoration:none;flex:1;min-width:0}.attachment-link:hover{color:#6366f1}.attachment-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-size{font-size:.7rem;color:#9ca3af;flex-shrink:0}.attachment-thumb{width:20px;height:20px;object-fit:cover;border-radius:2px}.attachment-remove{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:#9ca3af;cursor:pointer;border-radius:2px;transition:all .2s}.attachment-remove:hover{background:#fee2e2;color:#dc2626}.markdown-help{padding:8px 12px;background:#f9fafb;border-top:1px solid #E5E7EB;font-size:.75rem;color:#9ca3af}.markdown-textarea.media-drag-over{outline:2px dashed #2563EB;outline-offset:-4px;background:#eff6ff}.media-picker-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1100}.media-picker{background:#fff;border-radius:8px;width:min(420px,90vw);max-height:60vh;display:flex;flex-direction:column;box-shadow:0 10px 30px #0003}.media-picker-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #E5E7EB;font-weight:600;font-size:.9rem}.media-picker-close{border:none;background:transparent;font-size:1.1rem;color:#6b7280;cursor:pointer}.media-picker-body{overflow-y:auto;padding:8px}.media-picker-item{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:6px;font-size:.85rem;cursor:pointer}.media-picker-item:hover{background:#eff6ff}.media-picker-empty{padding:16px;text-align:center;color:#9ca3af;font-size:.85rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-small{padding:6px 12px;font-size:.8rem}.btn-medium{padding:10px 16px;font-size:.9rem}.btn-large{padding:12px 24px;font-size:1rem}.btn-primary{background:#10b981;color:#fff}.btn-primary:hover:not(:disabled){background:#059669}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-success{background:#22c55e;color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-ghost{background:transparent;color:#4b5563;border:1px solid #D1D5DB}.btn-ghost:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.toast-container{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:3000;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:8px;padding:12px 24px;border-radius:8px;box-shadow:0 4px 12px #0003;color:#fff;cursor:pointer;animation:slideUp .3s ease;min-width:200px}.toast-success{background-color:#10b981}.toast-error{background-color:#ef4444}.toast-info{background-color:#3b82f6}.toast-icon{font-weight:700;font-size:16px}.toast-message{font-size:14px}.toast-progress{background:linear-gradient(135deg,#4338ca,#6366f1);min-width:280px;flex-direction:column;padding:12px 16px;cursor:default}.toast-progress-content{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:8px}.toast-progress-message{font-size:14px;font-weight:500}.toast-progress-count{font-size:14px;font-weight:600;background:#fff3;padding:2px 8px;border-radius:12px}.toast-progress-bar-container{width:100%;height:6px;background:#fff3;border-radius:3px;overflow:hidden}.toast-progress-bar{height:100%;background:#fff;border-radius:3px;transition:width .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.connection-status{display:flex;align-items:center;gap:16px}.status-indicator{display:flex;align-items:center;gap:6px;font-size:13px;color:#6b7280}.status-dot{width:8px;height:8px;border-radius:50%}.status-indicator.online .status-dot{background-color:#10b981}.status-indicator.offline .status-dot{background-color:#ef4444}.status-text{font-size:13px;color:#6b7280}.active-users{display:flex;align-items:center;gap:4px;font-size:13px;color:#6b7280}.user-icon{font-size:13px}.user-count{font-size:13px;color:#6b7280}.resizable-panel{display:flex;width:100%;height:100%;overflow:hidden}.resizable-left{overflow:auto;min-width:300px;height:100%}.resizable-right{overflow:hidden;flex-shrink:0;height:100%;display:flex}.resizable-right.collapsed{width:auto}.resizable-right>*{width:100%;height:100%}.resizable-handle{width:8px;background:transparent;cursor:col-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .2s}.resizable-handle:hover,.resizable-handle.active{background:var(--color-border, #e5e7eb)}.handle-line{width:2px;height:32px;background:var(--color-text-tertiary, #9ca3af);border-radius:1px;transition:background-color .2s,height .2s}.resizable-handle:hover .handle-line,.resizable-handle.active .handle-line{background:var(--color-primary, #3b82f6);height:48px}@media(max-width:768px){.resizable-panel{flex-direction:column}.resizable-left{min-width:100%;width:100%}.resizable-handle,.resizable-right{display:none}}.language-selector{padding:4px 8px;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#ffffff1a;color:#fff;font-size:12px;cursor:pointer;outline:none}.language-selector:hover{border-color:#ffffff80}.language-selector:focus{border-color:#ffffffb3}.language-selector option{background:#1f2937;color:#fff}.shortcuts-help{padding:8px 0}.shortcuts-list{display:flex;flex-direction:column;gap:12px}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #F3F4F6}.shortcut-item:last-child{border-bottom:none}.shortcut-keys{display:flex;align-items:center;gap:4px}.shortcut-keys kbd{display:inline-block;padding:4px 8px;background:#f3f4f6;border:1px solid #E5E7EB;border-radius:4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,monospace;font-size:12px;font-weight:500;color:#374151;min-width:24px;text-align:center;box-shadow:0 1px 2px #0000000d}.key-separator{margin:0 2px;color:#9ca3af;font-size:12px}.shortcut-description{color:#6b7280;font-size:14px}.shortcuts-footer{margin-top:16px;padding-top:16px;border-top:1px solid #E5E7EB}.shortcuts-footer p{margin:0;color:#9ca3af;font-size:13px;text-align:center}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}.pdf-viewer-container{display:flex;flex-direction:column;border:1px solid #E5E7EB;border-radius:8px;overflow:hidden;background:#f9fafb}.pdf-viewer-container.pdf-paged{display:flex;flex-direction:column}.pdf-viewer-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border-bottom:1px solid #E5E7EB}.pdf-icon{font-size:1.2rem}.pdf-title{flex:1;font-weight:500;color:#374151;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-open-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background .2s;white-space:nowrap}.pdf-open-btn:hover{background:#7c3aed}.pdf-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#f3f4f6;border-bottom:1px solid #E5E7EB;gap:16px;flex-wrap:wrap}.pdf-nav-controls{display:flex;align-items:center;gap:8px}.pdf-nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #D1D5DB;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;color:#374151;transition:all .15s}.pdf-nav-btn:hover:not(:disabled){background:#f3f4f6;border-color:#8b5cf6;color:#8b5cf6}.pdf-nav-btn:disabled{opacity:.4;cursor:not-allowed}.pdf-page-info{display:flex;align-items:center;gap:4px;font-size:.9rem;color:#374151}.pdf-page-input{width:48px;padding:6px 8px;border:1px solid #D1D5DB;border-radius:4px;text-align:center;font-size:.9rem;color:#374151}.pdf-page-input:focus{outline:none;border-color:#8b5cf6}.pdf-page-total{color:#6b7280}.pdf-zoom-controls{display:flex;align-items:center;gap:4px}.pdf-zoom-btn{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border:1px solid #D1D5DB;background:#fff;border-radius:6px;cursor:pointer;font-size:1rem;color:#374151;transition:all .15s}.pdf-zoom-btn:hover{background:#f3f4f6;border-color:#8b5cf6;color:#8b5cf6}.pdf-zoom-reset{font-size:.85rem;min-width:56px}.pdf-toolbar-hint{font-size:.8rem;color:#9ca3af}.pdf-content-wrapper{flex:1;overflow:auto;background:#f3f4f6;display:flex;justify-content:center;padding:16px;min-height:500px}.pdf-document{display:flex;flex-direction:column;align-items:center}.pdf-page{box-shadow:0 4px 16px #0003;background:#fff}.pdf-page canvas{display:block;max-width:100%;height:auto!important}.pdf-page-dots{display:flex;justify-content:center;gap:6px;padding:12px;background:#fff;border-top:1px solid #E5E7EB;flex-wrap:wrap;max-height:60px;overflow-y:auto}.pdf-page-dot{width:10px;height:10px;border-radius:50%;border:none;background:#d1d5db;cursor:pointer;padding:0;transition:all .15s}.pdf-page-dot:hover{background:#9ca3af;transform:scale(1.2)}.pdf-page-dot.active{background:#8b5cf6;transform:scale(1.3)}.pdf-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f9fafbe6;z-index:10}.pdf-loading-spinner{width:40px;height:40px;border:3px solid #E5E7EB;border-top-color:#8b5cf6;border-radius:50%;animation:pdf-spin 1s linear infinite;margin-bottom:12px}@keyframes pdf-spin{to{transform:rotate(360deg)}}.pdf-loading p{color:#6b7280;font-size:.9rem}.pdf-viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:#fef2f2;border:1px solid #FECACA;border-radius:8px;text-align:center}.pdf-error-icon{font-size:3rem;margin-bottom:12px;opacity:.5}.pdf-viewer-error p{color:#dc2626;margin-bottom:16px}.pdf-viewer-error .pdf-open-btn{background:#dc2626}.pdf-viewer-error .pdf-open-btn:hover{background:#b91c1c}@media(max-width:600px){.pdf-toolbar{padding:8px 12px;gap:8px}.pdf-nav-btn,.pdf-zoom-btn{width:32px;height:32px;min-width:32px}.pdf-page-input{width:40px;padding:4px 6px}.pdf-zoom-reset{min-width:48px}.pdf-content-wrapper{padding:8px;min-height:400px}}.pdf-viewer-wrapper{flex:1;position:relative;background:#374151;min-height:400px}.pdf-iframe{width:100%;height:100%;border:none}.help-chat-fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background-color:#4a90a4;color:#fff;border:none;box-shadow:0 4px 12px #4a90a466;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:40;transition:all .2s ease}.help-chat-fab:hover{background-color:#3d7a8c;box-shadow:0 6px 16px #4a90a480;transform:translateY(-1px)}.help-chat-fab.hidden{transform:scale(0);pointer-events:none}.help-chat-fab svg{width:24px;height:24px}.help-chat-overlay{position:fixed;inset:0;background:#0000004d;z-index:40}.help-chat-window{position:fixed;bottom:24px;right:24px;width:420px;height:calc(100vh - 140px);max-height:700px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000026;z-index:50;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.help-chat-window.expanded{inset:24px;width:auto;height:auto;max-height:none}.help-chat-header{padding:14px 16px;background-color:#4a90a4;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.help-chat-header-title h3{font-size:14px;font-weight:600;margin:0}.help-chat-header-title p{font-size:12px;color:#ffffffb3;margin:3px 0 0}.help-chat-header-actions{display:flex;align-items:center;gap:4px}.help-chat-header-btn{padding:4px;background:transparent;border:none;color:#fff;cursor:pointer;border-radius:6px;transition:background .15s;display:flex;align-items:center;justify-content:center}.help-chat-header-btn:hover{background:#fff3}.help-chat-header-btn svg{width:18px;height:18px}.help-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.help-chat-suggested{margin-top:8px}.help-chat-suggested-label{font-size:12px;color:#9ca3af;margin-bottom:10px}.help-chat-suggested-btn{display:block;width:100%;text-align:left;font-size:13px;background:#f9fafb;color:#4b5563;border:1px solid #f3f4f6;padding:10px 14px;border-radius:10px;cursor:pointer;transition:all .15s;margin-bottom:6px}.help-chat-suggested-btn:hover{background:#e8f4f8;color:#4a90a4;border-color:#d1e7ed}.help-chat-msg{display:flex}.help-chat-msg.user{justify-content:flex-end}.help-chat-msg.assistant{justify-content:flex-start}.help-chat-bubble{max-width:85%;border-radius:16px;padding:10px 16px;font-size:14px;line-height:1.6}.help-chat-msg.user .help-chat-bubble{background-color:#4a90a4;color:#fff;border-bottom-right-radius:6px}.help-chat-msg.assistant .help-chat-bubble{background-color:#f3f4f6;color:#1f2937;border-bottom-left-radius:6px}.help-chat-bubble .help-chat-markdown h2,.help-chat-bubble .help-chat-markdown h3{font-size:14px;font-weight:600;margin:12px 0 6px}.help-chat-bubble .help-chat-markdown h2:first-child,.help-chat-bubble .help-chat-markdown h3:first-child{margin-top:0}.help-chat-bubble .help-chat-markdown p{margin:6px 0}.help-chat-bubble .help-chat-markdown p:first-child{margin-top:0}.help-chat-bubble .help-chat-markdown p:last-child{margin-bottom:0}.help-chat-bubble .help-chat-markdown ol,.help-chat-bubble .help-chat-markdown ul{margin:6px 0;padding-left:20px}.help-chat-bubble .help-chat-markdown li{margin:3px 0}.help-chat-bubble .help-chat-markdown code{background:#0000000f;padding:1px 5px;border-radius:4px;font-size:13px}.help-chat-bubble .help-chat-markdown strong{font-weight:600}.help-chat-loading{display:flex;justify-content:flex-start}.help-chat-loading-bubble{background:#f3f4f6;border-radius:16px 16px 16px 6px;padding:10px 16px;font-size:14px;color:#9ca3af;display:inline-flex;gap:4px}.help-chat-loading-dot{animation:helpChatBounce 1.4s infinite ease-in-out;font-size:18px;line-height:1}.help-chat-loading-dot:nth-child(1){animation-delay:0ms}.help-chat-loading-dot:nth-child(2){animation-delay:.15s}.help-chat-loading-dot:nth-child(3){animation-delay:.3s}@keyframes helpChatBounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.help-chat-input-area{border-top:1px solid #e5e7eb;padding:12px;flex-shrink:0}.help-chat-input-row{display:flex;gap:8px}.help-chat-input{flex:1;font-size:14px;border:1px solid #d1d5db;border-radius:24px;padding:8px 16px;outline:none;transition:border-color .15s,box-shadow .15s}.help-chat-input:focus{border-color:#4a90a4;box-shadow:0 0 0 2px #4a90a433}.help-chat-input:disabled{background:#f9fafb}.help-chat-send-btn{width:40px;height:40px;border-radius:50%;background-color:#4a90a4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .15s}.help-chat-send-btn:hover:not(:disabled){background-color:#3d7a8c}.help-chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.help-chat-send-btn svg{width:16px;height:16px}.help-chat-user-text{white-space:pre-wrap}.help-chat-slack-badge{margin-top:8px;padding:6px 10px;background:#e8f5e9;color:#2e7d32;font-size:12px;border-radius:8px;display:flex;align-items:center;gap:4px}.help-chat-slack-badge:before{content:"✅"}.help-chat-feedback-btn{background:#fff8e1;border-color:#fff3c4}.help-chat-feedback-btn:hover{background:#fff3c4;color:#92400e;border-color:#fde68a}@media(max-width:480px){.help-chat-window{left:12px;right:12px;bottom:12px;width:auto;height:calc(100vh - 80px);max-height:none}}.comment-sidebar{width:100%;height:100%;background-color:#fff;border-left:1px solid #E5E7EB;display:flex;flex-direction:column;overflow:hidden}.comment-sidebar.collapsed{width:48px;align-items:center;padding-top:16px}.collapse-toggle-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:background-color .2s}.collapse-toggle-btn:hover{background-color:#f3f4f6}.collapse-icon{font-size:20px}.comment-badge{background-color:#4a90a4;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #E5E7EB}.sidebar-header h2{margin:0;font-size:16px;font-weight:600}.sidebar-header-actions{display:flex;align-items:center;gap:8px}.toggle-view-btn{padding:6px 12px;border:1px solid #E5E7EB;background-color:transparent;border-radius:4px;font-size:12px;cursor:pointer;color:#6b7280}.toggle-view-btn:hover{background-color:#f9fafb}.collapse-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #E5E7EB;background-color:transparent;border-radius:4px;font-size:14px;cursor:pointer;color:#6b7280}.collapse-btn:hover{background-color:#f9fafb;color:#111827}.comment-list{flex:1;overflow-y:auto;padding:16px}.empty-comments{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:#6b7280}.empty-comments .empty-icon{font-size:48px;margin-bottom:12px}.empty-comments p{margin:4px 0}.empty-comments .empty-hint{font-size:12px;opacity:.7}.comment-item{background-color:#f9fafb;border-radius:8px;padding:12px;margin-bottom:12px;cursor:pointer;transition:all .2s ease;border-left:3px solid transparent}.comment-item:hover{box-shadow:0 2px 4px #0000001a}.comment-item.instructor{border-left-color:#3b82f6}.comment-item.student{border-left-color:#10b981}.comment-item.admin{border-left-color:#8b5cf6}.comment-item.new{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.comment-author{font-weight:600;font-size:13px}.comment-author.instructor{color:#3b82f6}.comment-author.student{color:#10b981}.comment-author.admin{color:#8b5cf6}.comment-time{font-size:11px;color:#6b7280}.comment-selected-text{font-size:12px;color:#6b7280;background-color:#fef3c7;padding:4px 8px;border-radius:4px;margin-bottom:8px;font-style:italic}.comment-content{font-size:14px;color:#111827}.comment-status{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:11px;color:#6b7280}.comment-status.resolved{color:#10b981}.reply-count{font-size:11px;color:#4a90a4;margin-top:8px}.comment-replies-inline{margin-top:10px;padding-top:10px;border-top:1px dashed #E5E7EB}.reply-inline{padding:8px 10px;margin-top:6px;background-color:#fff;border-radius:6px;border-left:2px solid transparent}.reply-inline.instructor{border-left-color:#3b82f6}.reply-inline.student{border-left-color:#10b981}.reply-inline.admin{border-left-color:#8b5cf6}.reply-inline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.reply-author{font-size:11px;font-weight:600}.reply-author.instructor{color:#3b82f6}.reply-author.student{color:#10b981}.reply-author.admin{color:#8b5cf6}.reply-time{font-size:10px;color:#9ca3af}.reply-inline-content{font-size:13px;color:#374151;line-height:1.4}.comment-list.compact{padding:8px}.comment-item-compact{display:flex;align-items:center;gap:8px;padding:8px 10px;background-color:#f9fafb;border-radius:6px;margin-bottom:4px;cursor:pointer;transition:background-color .2s;border-left:3px solid transparent}.comment-item-compact:hover{background-color:#f3f4f6}.comment-item-compact.instructor{border-left-color:#3b82f6}.comment-item-compact.student{border-left-color:#10b981}.comment-item-compact.admin{border-left-color:#8b5cf6}.comment-author-compact{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff}.comment-author-compact.instructor{background-color:#3b82f6}.comment-author-compact.student{background-color:#10b981}.comment-author-compact.admin{background-color:#8b5cf6}.comment-content-compact{flex:1;font-size:13px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comment-time-compact{flex-shrink:0;font-size:10px;color:#9ca3af}.reply-badge{flex-shrink:0;background-color:#4a90a4;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:16px;text-align:center}.comment-detail{padding:8px 0}.comment-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.comment-detail-selected-text{padding:12px;background-color:#f3f4f6;border-radius:6px;font-style:italic;color:#6b7280;margin-bottom:16px}.comment-detail-content{font-size:15px;line-height:1.6;color:#374151;margin-bottom:20px}.replies-section{border-top:1px solid #E5E7EB;padding-top:16px;margin-bottom:16px}.replies-section h4{margin:0 0 12px;font-size:14px;color:#6b7280}.reply-item{padding:12px;background-color:#f9fafb;border-radius:6px;margin-bottom:8px;border-left:3px solid transparent}.reply-item.student{border-left-color:#10b981}.reply-item.instructor{border-left-color:#3b82f6}.reply-item.admin{border-left-color:#8b5cf6}.reply-header{display:flex;justify-content:space-between;margin-bottom:6px}.reply-content{font-size:14px;color:#374151}.reply-form{margin-top:16px}.reply-form textarea{width:100%;padding:10px;border:1px solid #E5E7EB;border-radius:6px;font-family:inherit;font-size:14px;resize:vertical;margin-bottom:8px}.reply-form textarea:focus{outline:none;border-color:#4a90a4}.btn-submit-reply{background-color:#4a90a4;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;float:right}.btn-submit-reply:disabled{opacity:.5;cursor:not-allowed}.btn-submit-reply:hover:not(:disabled){background-color:#3a7a8a}@media(max-width:768px){.comment-sidebar{position:fixed;bottom:0;left:0;right:0;width:100%;height:auto;max-height:50vh;border-left:none;border-top:1px solid #E5E7EB;box-shadow:0 -4px 12px #0000001a;z-index:100;transform:translateY(calc(100% - 48px));transition:transform .3s ease}.comment-sidebar:hover,.comment-sidebar:focus-within{transform:translateY(0)}.comment-sidebar.collapsed{display:none}.sidebar-header{padding:12px 16px;cursor:pointer}.sidebar-header h2{font-size:14px}.comment-list{padding:12px;max-height:calc(50vh - 48px);overflow-y:auto}}.comment-popup{position:fixed;background-color:#fff;border:1px solid #E5E7EB;border-radius:12px;box-shadow:0 8px 32px #0003;z-index:1000;width:320px;max-width:90vw;animation:popupFadeIn .2s ease}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.popup-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #E5E7EB}.popup-title{font-weight:600;font-size:14px;color:#111827}.popup-close{background:none;border:none;font-size:20px;color:#6b7280;cursor:pointer;padding:0;line-height:1}.popup-close:hover{color:#111827}.popup-selected-text{padding:12px 16px;background:linear-gradient(180deg,transparent 60%,#FEF08A 60%);margin:12px 16px;border-radius:6px;font-size:13px;color:#6b7280;font-style:italic;max-height:60px;overflow:hidden;border-left:3px solid #4A90A4}.popup-input{width:calc(100% - 32px);margin:0 16px;min-height:80px;padding:12px;border:1px solid #E5E7EB;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical}.popup-input:focus{outline:none;border-color:#4a90a4;box-shadow:0 0 0 3px #4a90a41a}.popup-input::placeholder{color:#9ca3af}.popup-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px}.popup-actions-right{display:flex;gap:8px}.popup-bookmark{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px 12px;border:1px solid #E5E7EB;background-color:transparent;border-radius:6px;cursor:pointer;color:#6b7280;font-size:13px;transition:all .2s}.popup-bookmark:hover{background-color:#fef3c7;border-color:#f59e0b;color:#f59e0b}.popup-cancel{padding:8px 16px;border:1px solid #E5E7EB;background-color:transparent;border-radius:6px;font-size:13px;cursor:pointer;color:#6b7280}.popup-cancel:hover{background-color:#f9fafb}.popup-submit{padding:8px 20px;border:none;background-color:#4a90a4;color:#fff;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}.popup-submit:hover:not(:disabled){background-color:#3a7a8a}.popup-submit:disabled{opacity:.5;cursor:not-allowed}.audio-player{background-color:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;width:100%;margin:24px 0 0}.audio-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.audio-icon{font-size:20px}.audio-title{font-weight:600;color:#111827}.audio-player audio{width:100%;margin-bottom:12px}.audio-controls{display:flex;align-items:center;gap:8px;font-size:14px;color:#6b7280}.audio-controls select{padding:4px 8px;border:1px solid #E5E7EB;border-radius:4px;font-size:13px}.audio-play-btn{background:none;border:none;font-size:24px;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.audio-play-btn:hover{transform:scale(1.1)}.audio-progress-container{flex:1;display:flex;align-items:center;gap:8px}.audio-time{font-size:12px;color:#6b7280;min-width:40px;text-align:center}.audio-progress{flex:1;height:6px;cursor:pointer;-webkit-appearance:none;appearance:none;background:#e5e7eb;border-radius:3px;outline:none}.audio-progress::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:#4a90a4;border-radius:50%;cursor:pointer}.audio-progress::-moz-range-thumb{width:14px;height:14px;background:#4a90a4;border-radius:50%;cursor:pointer;border:none}.audio-speed{display:flex;align-items:center;gap:4px}.audio-speed label{font-size:12px;color:#6b7280}.audio-speed select{padding:4px 8px;border:1px solid #E5E7EB;border-radius:4px;font-size:12px;background-color:#fff;cursor:pointer}.audio-error{display:flex;align-items:center;gap:8px;color:#6b7280}.audio-error-text{font-size:14px}@media(max-width:640px){.audio-controls{flex-wrap:wrap}.audio-progress-container{order:2;width:100%}.audio-speed{order:1}}.audio-recorder{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin:16px 0}.recorder-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.recorder-icon{color:#4a90a4}.recorder-title{font-weight:600;color:#111827}.recorder-idle{text-align:center;padding:20px 0}.recorder-instruction{color:#6b7280;margin-bottom:16px;font-size:14px}.btn-start-record{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background-color:#ef4444;color:#fff;border:none;border-radius:24px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.btn-start-record:hover{background-color:#dc2626;transform:scale(1.02)}.btn-start-record svg{color:#fff}.recorder-active{padding:16px 0}.recording-indicator{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px}.pulse-dot{width:12px;height:12px;background-color:#9ca3af;border-radius:50%;transition:background-color .2s}.pulse-dot.active{background-color:#ef4444;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.recording-status{font-weight:500;color:#374151}.recording-timer{text-align:center;margin-bottom:12px;font-family:SF Mono,Monaco,monospace}.timer-current{font-size:32px;font-weight:600;color:#111827}.timer-separator{margin:0 8px;color:#9ca3af}.timer-max{font-size:16px;color:#6b7280}.recording-progress{height:4px;background-color:#e5e7eb;border-radius:2px;margin-bottom:20px;overflow:hidden}.progress-bar{height:100%;background-color:#4a90a4;border-radius:2px;transition:width .3s ease}.recording-controls{display:flex;justify-content:center;gap:12px}.btn-pause,.btn-resume,.btn-stop{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-pause{background-color:#fef3c7;color:#92400e}.btn-pause:hover{background-color:#fde68a}.btn-resume{background-color:#d1fae5;color:#065f46}.btn-resume:hover{background-color:#a7f3d0}.btn-stop{background-color:#4a90a4;color:#fff}.btn-stop:hover{background-color:#3d7a8c}.recorder-preview{padding:16px 0}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.preview-label{font-weight:500;color:#374151}.preview-duration{font-size:14px;color:#6b7280;font-family:SF Mono,Monaco,monospace}.preview-audio{width:100%;margin-bottom:16px}.preview-actions{display:flex;justify-content:center;gap:12px}.btn-rerecord,.btn-submit{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-rerecord{background-color:#f3f4f6;color:#374151}.btn-rerecord:hover{background-color:#e5e7eb}.btn-submit{background-color:#4a90a4;color:#fff}.btn-submit:hover{background-color:#3d7a8c}.btn-cancel{display:block;width:100%;margin-top:12px;padding:8px;background:none;border:none;color:#6b7280;font-size:13px;cursor:pointer}.btn-cancel:hover{color:#374151;text-decoration:underline}.audio-recorder.error{background-color:#fef2f2;border-color:#fecaca}.recorder-error{text-align:center;padding:20px}.error-icon{display:inline-block;color:#dc2626;margin-bottom:12px}.recorder-error p{color:#dc2626;margin-bottom:16px}.btn-retry{padding:8px 16px;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer}.btn-retry:hover{background-color:#b91c1c}@media(max-width:480px){.recording-controls,.preview-actions{flex-direction:column}.btn-pause,.btn-resume,.btn-stop,.btn-rerecord,.btn-submit{width:100%;justify-content:center}}.recording-submission{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin:16px 0;position:relative}.recording-submission.loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:#6b7280}.submission-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.submission-title{display:flex;align-items:center;gap:8px;font-weight:600;color:#111827}.submission-title svg{color:#4a90a4}.status-badge{font-size:12px;font-weight:500;padding:4px 10px;border-radius:12px}.no-recording{text-align:center;padding:20px 0}.no-recording-text{color:#6b7280;margin-bottom:16px;font-size:14px}.btn-start-submission{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background-color:#4a90a4;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s}.btn-start-submission:hover:not(:disabled){background-color:#3d7a8c}.btn-start-submission:disabled{opacity:.6;cursor:not-allowed}.existing-recording{padding:8px 0}.recording-info{margin-bottom:16px}.recording-meta{display:flex;gap:16px;margin-bottom:12px;font-size:13px;color:#6b7280}.recording-audio{width:100%}.instructor-feedback{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:16px;margin-bottom:16px}.instructor-feedback h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#0369a1}.instructor-feedback p{margin:0;font-size:14px;color:#374151;line-height:1.5}.btn-resubmit{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background-color:#f3f4f6;color:#374151;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-resubmit:hover:not(:disabled){background-color:#e5e7eb}.btn-resubmit:disabled{opacity:.5;cursor:not-allowed}.submitting-overlay{position:absolute;inset:0;background-color:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:8px;color:#6b7280;font-weight:500}.recording-review{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin:16px 0}.recording-review.loading,.recording-review.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;color:#6b7280}.recording-review.empty svg{opacity:.5}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.review-header h3{display:flex;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;color:#111827}.review-header h3 svg{color:#4a90a4}.recording-count{font-size:13px;color:#6b7280;background:#f3f4f6;padding:4px 10px;border-radius:12px}.recording-list{display:flex;flex-direction:column;gap:12px}.recording-item{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:box-shadow .2s}.recording-item:hover{box-shadow:0 2px 8px #00000014}.recording-item.expanded{box-shadow:0 4px 12px #0000001a}.recording-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;background:#f9fafb;transition:background .2s}.recording-summary:hover{background:#f3f4f6}.recording-info{display:flex;align-items:center;gap:12px}.status-badge{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;text-transform:uppercase}.status-pending{background-color:#f3f4f6;color:#6b7280}.status-submitted{background-color:#dbeafe;color:#1d4ed8}.status-reviewed{background-color:#fef3c7;color:#92400e}.status-approved{background-color:#d1fae5;color:#065f46}.recording-meta{font-size:13px;color:#6b7280}.expand-icon{transition:transform .2s;color:#9ca3af}.expand-icon.expanded{transform:rotate(180deg)}.recording-details{padding:16px;border-top:1px solid #e5e7eb;background:#fff}.recording-audio{width:100%;margin-bottom:16px}.existing-feedback{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px;margin-bottom:16px}.existing-feedback h4{margin:0 0 8px;font-size:13px;font-weight:600;color:#0369a1}.existing-feedback p{margin:0;font-size:14px;color:#374151;line-height:1.5}.feedback-form{border-top:1px solid #f3f4f6;padding-top:16px}.feedback-form textarea{width:100%;padding:12px;border:1px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;margin-bottom:12px}.feedback-form textarea:focus{outline:none;border-color:#4a90a4}.feedback-actions{display:flex;justify-content:flex-end;gap:8px}.btn-review,.btn-approve{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-review{background:#f3f4f6;color:#374151}.btn-review:hover:not(:disabled){background:#e5e7eb}.btn-approve{background:#10b981;color:#fff}.btn-approve:hover:not(:disabled){background:#059669}.btn-review:disabled,.btn-approve:disabled{opacity:.5;cursor:not-allowed}.loading-spinner{width:24px;height:24px;border:3px solid #e5e7eb;border-top-color:#4a90a4;border-radius:50%;animation:spin .8s linear infinite}.share-modal-content{display:flex;flex-direction:column;gap:20px}.share-material-info{display:flex;align-items:center;gap:8px;padding:12px;background:#f3f4f6;border-radius:8px;font-weight:500;color:#374151}.share-material-info svg{color:#4a90a4}.share-create-section h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#111827}.share-options{display:flex;gap:12px;align-items:center}.expiry-select{flex:1;padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;color:#374151;background:#fff}.expiry-select:focus{outline:none;border-color:#4a90a4}.share-links-section h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#111827}.share-loading,.share-empty{padding:24px;text-align:center;color:#6b7280;font-size:14px}.share-links-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto}.share-link-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.share-link-info{flex:1;min-width:0}.share-link-url{font-size:12px;font-family:monospace;color:#374151;word-break:break-all;margin-bottom:6px}.share-link-meta{display:flex;gap:12px;font-size:11px;color:#6b7280}.share-link-expiry,.share-link-views{display:inline-flex;align-items:center}.share-link-actions{display:flex;gap:4px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:#e5e7eb;color:#374151;cursor:pointer;transition:all .2s}.btn-icon:hover{background:#d1d5db}.btn-icon.btn-danger{background:#fee2e2;color:#dc2626}.btn-icon.btn-danger:hover{background:#fecaca}.share-link-label-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.share-link-legacy-note{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:#f3f4f6;color:#6b7280;font-size:11px;font-weight:500;line-height:1.4}.share-link-item--legacy-batch{background:#fafafa;border-color:#e5e7eb}.share-link-created{display:inline-flex;align-items:center}.share-invalid-combo-notice{margin-top:8px;padding:6px 10px;border-radius:6px;background:#fef3c7;color:#92400e;font-size:13px}.search-modal{display:flex;flex-direction:column;height:60vh;max-height:500px}.search-input-wrapper{position:relative;display:flex;align-items:center;padding:0 0 16px;border-bottom:1px solid #E5E7EB}.search-input-wrapper .search-icon{position:absolute;left:12px;color:#9ca3af}.search-input{width:100%;padding:12px 40px 12px 44px;border:1px solid #E5E7EB;border-radius:8px;font-size:16px;outline:none;transition:border-color .2s}.search-input:focus{border-color:#4a90a4}.search-clear{position:absolute;right:12px;background:none;border:none;font-size:20px;color:#9ca3af;cursor:pointer;padding:4px 8px}.search-clear:hover{color:#374151}.search-results{flex:1;overflow-y:auto;padding:8px 0}.search-empty{padding:40px 20px;text-align:center;color:#6b7280}.search-result-item{padding:12px 16px;margin:4px 0;border-radius:8px;cursor:pointer;transition:background-color .15s}.search-result-item:hover,.search-result-item.selected{background-color:#f3f4f6}.result-header{display:flex;gap:8px;margin-bottom:4px}.result-lesson{font-size:12px;font-weight:600;color:#4a90a4}.result-category{font-size:12px;color:#6b7280;padding:1px 6px;background-color:#e5e7eb;border-radius:4px}.result-title{font-weight:500;color:#111827;margin-bottom:4px}.result-context{font-size:13px;color:#6b7280;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-highlight{background-color:#fef08a;color:#92400e;padding:0 2px;border-radius:2px}.search-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 0 0;border-top:1px solid #E5E7EB;margin-top:8px}.search-hint{font-size:12px;color:#9ca3af}.search-count{font-size:12px;color:#6b7280}.bookmark-sidebar{padding:16px;height:100%;overflow-y:auto}.bookmark-sidebar.empty{display:flex;align-items:center;justify-content:center}.empty-bookmarks{text-align:center;color:#6b7280}.empty-bookmarks .empty-icon{color:#d1d5db;margin-bottom:12px}.empty-bookmarks p{margin:4px 0}.empty-bookmarks .empty-hint{font-size:12px;opacity:.7}.bookmark-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#374151;margin-bottom:16px}.bookmark-list{display:flex;flex-direction:column;gap:8px}.bookmark-item{display:flex;gap:8px;padding:10px;background-color:#f9fafb;border-radius:8px;cursor:pointer;transition:all .2s;position:relative}.bookmark-item:hover{background-color:#f3f4f6}.bookmark-color-bar{width:4px;border-radius:2px;flex-shrink:0}.bookmark-content{flex:1;min-width:0}.bookmark-text{font-size:13px;color:#374151;line-height:1.4;font-style:italic;margin-bottom:4px}.bookmark-note{font-size:12px;color:#6b7280;margin-bottom:4px}.bookmark-meta{display:flex;justify-content:space-between;align-items:center}.bookmark-date{font-size:11px;color:#9ca3af}.bookmark-delete{position:absolute;top:8px;right:8px;background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:4px;opacity:0;transition:all .2s}.bookmark-item:hover .bookmark-delete{opacity:1}.bookmark-delete:hover{color:#ef4444;background-color:#fee2e2}.bookmark-delete.confirm{opacity:1;color:#ef4444;background-color:#fee2e2}.bookmark-groups{display:flex;flex-direction:column;gap:12px}.bookmark-group{border:1px solid #E5E7EB;border-radius:8px;overflow:hidden}.bookmark-group-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background-color:#f9fafb;cursor:pointer;transition:background-color .2s}.bookmark-group-header:hover{background-color:#f3f4f6}.bookmark-group-toggle{display:flex;align-items:center;color:#6b7280}.bookmark-group-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.bookmark-group-title{font-size:13px;font-weight:600;color:#374151}.bookmark-group-subtitle{font-size:11px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmark-group-count{font-size:11px;font-weight:500;color:#6b7280;background-color:#e5e7eb;padding:2px 8px;border-radius:10px}.bookmark-group-items{padding:8px;display:flex;flex-direction:column;gap:6px;border-top:1px solid #E5E7EB}.print-view-overlay{position:fixed;inset:0;background-color:#f3f4f6;z-index:2000;overflow-y:auto}.print-view-container{max-width:800px;margin:0 auto;padding:24px}.print-view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.print-view-header h2{margin:0;font-size:1.25rem;color:#374151}.print-view-actions{display:flex;gap:12px}.btn-print{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#4a90a4;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-print:hover{background-color:#3a7a8a}.btn-close{padding:10px 20px;background-color:#fff;color:#374151;border:1px solid #D1D5DB;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-close:hover{background-color:#f9fafb;border-color:#9ca3af}.print-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:48px;min-height:100vh}.print-header{margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid #E5E7EB}.print-title{margin:0 0 12px;font-size:1.75rem;color:#111827;font-weight:700}.print-meta{display:flex;gap:16px;flex-wrap:wrap}.print-meta span{font-size:.875rem;color:#6b7280;background:#f3f4f6;padding:4px 12px;border-radius:4px}.print-student{background:#dbeafe!important;color:#1d4ed8!important}.print-body{min-height:400px}.print-body .markdown-body{padding:0;background:transparent}.print-footer{margin-top:48px;padding-top:24px;border-top:1px solid #E5E7EB;display:flex;justify-content:space-between;font-size:.75rem;color:#9ca3af}@media print{.no-print,.print-view-header{display:none!important}.print-view-overlay{position:static;background:none;overflow:visible}.print-view-container{max-width:100%;padding:0}.print-content{box-shadow:none;border-radius:0;padding:20mm}@page{size:A4;margin:15mm}.print-body{font-size:12pt;line-height:1.6}.print-body .markdown-body h1{font-size:18pt;page-break-after:avoid}.print-body .markdown-body h2{font-size:16pt;page-break-after:avoid}.print-body .markdown-body h3{font-size:14pt;page-break-after:avoid}.print-body .markdown-body p,.print-body .markdown-body li{orphans:3;widows:3}.print-body .markdown-body pre,.print-body .markdown-body code{background:#f3f4f6!important;border:1px solid #E5E7EB}.print-body .markdown-body table{page-break-inside:avoid}.print-body .markdown-body img{max-width:100%;page-break-inside:avoid}.print-footer{margin-top:32px}.audio-player,.recording-section,.comment-highlight{display:none!important}}body.print-mode>*:not(.print-view-overlay){display:none!important}.student-page{display:flex;flex-direction:column;height:100vh;width:100%}.student-page .header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#fff;color:#111827;border-bottom:1px solid #E5E7EB;box-shadow:0 1px 3px #0000001a}.student-page .header-left{display:flex;align-items:center;gap:16px}.student-page .student-name{font-size:18px;font-weight:600;color:#111827;margin:0}.student-page .lesson-selector{display:flex;align-items:center}.student-page .lesson-select{padding:8px 32px 8px 12px;border:1px solid #E5E7EB;background-color:#fff;border-radius:6px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23374151' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;min-width:140px}.student-page .lesson-select:hover{border-color:#4a90a4}.student-page .lesson-select:focus{outline:none;border-color:#4a90a4;box-shadow:0 0 0 2px #4a90a433}.student-page .header-right{display:flex;align-items:center;gap:16px}.student-page .share-btn,.student-page .search-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #E5E7EB;background-color:#fff;border-radius:6px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.student-page .share-btn:hover,.student-page .search-btn:hover{border-color:#4a90a4;color:#4a90a4}.student-page .print-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #E5E7EB;background-color:#fff;border-radius:6px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.student-page .print-btn:hover{border-color:#6b7280;color:#111827;background-color:#f9fafb}.student-page .main-content{display:flex;flex:1;overflow:hidden}.student-page .content-area{flex:1;min-width:0;overflow-y:auto;padding:32px 48px;background-color:#f9fafb;max-width:none;margin:0}.empty-state{text-align:center;padding:40px 20px;color:#6b7280}.empty-icon{font-size:48px;display:block;margin-bottom:16px}.empty-state-text{font-size:14px}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:#6b7280}.loading-spinner{width:32px;height:32px;border:3px solid #E5E7EB;border-top-color:#4a90a4;border-radius:50%;animation:spin 1s linear infinite}.guide-content{background-color:#f0fdf4}.guide-area{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f}.guide-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #22C55E}.guide-header h2{margin:0;color:#166534;font-size:1.25rem}.guide-placeholder{color:#374151}.guide-section{margin-bottom:24px}.guide-section:last-child{margin-bottom:0}.guide-section h3{color:#166534;font-size:1.1rem;margin:0 0 12px}.guide-section p{margin:0 0 8px;line-height:1.6}.guide-section ol,.guide-section ul{margin:0;padding-left:24px}.guide-section li{margin-bottom:8px;line-height:1.6}.guide-section li:last-child{margin-bottom:0}.student-page .bookmark-toggle-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #E5E7EB;background-color:#fff;border-radius:6px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.student-page .bookmark-toggle-btn:hover{border-color:#f59e0b;color:#f59e0b}.student-page .bookmark-toggle-btn.active{background-color:#fef3c7;border-color:#f59e0b;color:#d97706}.student-page .bookmark-count{background-color:#f59e0b;color:#fff;font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;min-width:16px;text-align:center}.student-page .logout-btn{padding:6px 12px;border:1px solid #E5E7EB;background-color:#fff;border-radius:6px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.student-page .logout-btn:hover{border-color:#ef4444;color:#ef4444;background-color:#fef2f2}.student-page .comment-toggle-btn{display:none;align-items:center;gap:6px;padding:6px 12px;border:1px solid #E5E7EB;background-color:#fff;border-radius:6px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.student-page .comment-toggle-btn:hover{border-color:#4a90a4;color:#4a90a4}.student-page .comment-toggle-btn.active{background-color:#ebf5ff;border-color:#4a90a4;color:#4a90a4}.student-page .comment-count{background-color:#4a90a4;color:#fff;font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;min-width:16px;text-align:center}.mobile-comment-overlay{position:fixed;inset:0;background-color:#0000004d;z-index:1000;display:flex;justify-content:flex-end}.mobile-comment-panel{width:100%;max-width:400px;height:100%;background-color:#fff;box-shadow:-4px 0 12px #00000026;display:flex;flex-direction:column;animation:slideInRight .2s ease-out}.mobile-comment-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #E5E7EB;background-color:#f9fafb}.mobile-comment-header h3{margin:0;font-size:16px;font-weight:600;color:#374151;display:flex;align-items:center;gap:8px}.mobile-comment-close{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;line-height:1}.mobile-comment-close:hover{color:#111827}.mobile-comment-panel .comment-sidebar{border-left:none;flex:1;overflow-y:auto}.bookmark-panel-overlay{position:fixed;inset:0;background-color:#0000004d;z-index:1000;display:flex;justify-content:flex-end}.bookmark-panel{width:360px;max-width:90vw;height:100%;background-color:#fff;box-shadow:-4px 0 12px #00000026;display:flex;flex-direction:column;animation:slideInRight .2s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.bookmark-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #E5E7EB}.bookmark-panel-header h3{margin:0;font-size:16px;font-weight:600;color:#374151}.bookmark-panel-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;line-height:1}.bookmark-panel-close:hover{color:#111827}@media(max-width:768px){.student-page{height:auto;min-height:100vh}.main-content{flex-direction:column}.student-page .header{flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px}.student-page .header-left{display:flex;flex-direction:row;align-items:center;gap:8px;flex:1;min-width:0}.student-page .student-name{font-size:14px;flex-shrink:0}.student-page .lesson-selector{display:flex}.student-page .lesson-select{padding:6px 28px 6px 10px;font-size:13px;min-width:120px}.student-page .header-right{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;flex-shrink:0}.student-page .search-btn,.student-page .bookmark-toggle-btn,.student-page .print-btn,.student-page .share-btn{display:none}.student-page .comment-toggle-btn{display:flex;padding:6px 10px;font-size:11px}.student-page .logout-btn{padding:6px 10px;font-size:11px;flex-shrink:0}.student-page .header-right .connection-status,.student-page .header-right .language-selector{display:none}.student-page .content-area{padding:0;width:100%;box-sizing:border-box}.bookmark-panel{width:100%;max-width:100%}}@media(max-width:480px){.student-page .header{padding:8px 10px}.student-page .student-name{font-size:13px}.student-page .logout-btn{padding:5px 8px;font-size:10px}}.instructor-page{display:flex;flex-direction:column;height:100vh;width:100%;background:#f9fafb}.instructor-page .header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);border-bottom:1px solid #1D4ED8;box-shadow:0 1px 3px #0000001a}.instructor-page .header-left,.instructor-page .header-right{display:flex;align-items:center;gap:16px}.instructor-page .logout-btn{padding:6px 12px;border:1px solid rgba(255,255,255,.3);background-color:#ffffff1a;border-radius:6px;font-size:13px;font-weight:500;color:#fff;cursor:pointer;transition:all .2s}.instructor-page .logout-btn:hover{background-color:#fff3;border-color:#ffffff80}.instructor-page .header-right .status-text,.instructor-page .header-right .active-users,.instructor-page .header-right .user-count{color:#ffffffe6}.role-badge{background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.student-select{padding:8px 12px;border:1px solid rgba(255,255,255,.3);border-radius:6px;font-size:16px;font-weight:600;background:#ffffff1a;color:#fff;cursor:pointer}.student-select:focus{outline:none;border-color:#ffffff80}.student-select option{background:#1e3a8a;color:#fff}.lesson-select{padding:8px 12px;border:1px solid rgba(255,255,255,.3);border-radius:6px;font-size:14px;background:#ffffff1a;color:#fff;cursor:pointer}.lesson-select:focus{outline:none;border-color:#ffffff80}.lesson-select option{background:#1e3a8a;color:#fff}.instructor-page .main-content,.content-with-sidebar{display:flex;flex:1;overflow:hidden}.content-with-sidebar .content-area{flex:1;min-width:0;overflow-y:auto;padding:24px;background-color:#f9fafb}.instructor-page>.main-content>.content-area{flex:1;min-width:0;overflow-y:auto;padding:24px;background-color:#f9fafb}.instructions-area{background:#fffbeb;border-radius:12px;padding:24px}.instructions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #D97706}.instructions-header h2{margin:0;color:#92400e;font-size:1.25rem}.instruction-filters select{padding:8px 12px;border:1px solid #D97706;border-radius:6px;background:#fff;font-size:.9rem;color:#92400e;cursor:pointer}.instruction-filters select:focus{outline:none;border-color:#f59e0b}.instructions-area h2{margin:0 0 20px;color:#92400e;font-size:1.25rem}.instruction-card{background:#fff;border-radius:12px;padding:16px 20px;box-shadow:0 2px 8px #00000014;border-left:4px solid #D97706;transition:transform .2s,box-shadow .2s}.instruction-card:hover{transform:translate(4px);box-shadow:0 4px 12px #0000001f}.instruction-card.clickable{cursor:pointer}.instruction-card.unread{background:#fef3c7;border-left-color:#f59e0b}.instruction-card.priority-high{border-left-color:#ef4444}.instruction-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.instruction-title{font-weight:600;font-size:1rem;color:#1f2937;margin:0}.instruction-meta{display:flex;gap:8px;align-items:center}.priority-badge{font-size:.7rem;padding:2px 8px;border-radius:4px;background:#e5e7eb;color:#6b7280;font-weight:500}.priority-badge.priority-high{background:#fee2e2;color:#dc2626}.priority-badge.priority-normal{background:#e5e7eb;color:#6b7280}.priority-badge.priority-low{background:#dbeafe;color:#1d4ed8}.target-badge{font-size:.7rem;padding:2px 8px;border-radius:4px;background:#dbeafe;color:#1d4ed8;font-weight:500}.instruction-content{color:#4b5563;font-size:.9rem;line-height:1.6;margin-bottom:12px}.instruction-content-preview{max-height:80px;overflow:hidden;position:relative}.instruction-content-preview:after{content:"";position:absolute;bottom:0;left:0;right:0;height:30px;background:linear-gradient(transparent,#fff)}.instruction-card.unread .instruction-content-preview:after{background:linear-gradient(transparent,#fef3c7)}.instruction-content .markdown-body{padding:0;background:transparent}.instruction-content .markdown-body blockquote{margin:0;padding:0;border:none;background:transparent;color:inherit}.instruction-content .markdown-body p{margin:0 0 .5em}.instruction-content .markdown-body p:last-child{margin-bottom:0}.instruction-footer{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#9ca3af}.btn-mark-read{background:#10b981;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:.8rem;cursor:pointer;transition:background .2s}.btn-mark-read:hover{background:#059669}.notes-area{background:#eef2ff;border-radius:12px;padding:24px}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #6366F1}.notes-header h2{margin:0;color:#3730a3;font-size:1.25rem}.btn-add-note{background:#6366f1;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.9rem;cursor:pointer;transition:background .2s}.btn-add-note:hover{background:#4f46e5}.note-list{display:flex;flex-direction:column;gap:12px}.note-card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 6px #0000000f;border-left:3px solid #6366F1}.note-card.clickable{cursor:pointer;transition:all .2s}.note-card.clickable:hover{transform:translate(4px);box-shadow:0 4px 12px #6366f126}.note-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.note-date{font-size:.75rem;color:#9ca3af}.note-actions{display:flex;gap:4px}.note-actions .btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;color:#9ca3af;transition:all .2s}.note-actions .btn-icon:hover{background:#e0e7ff;border-color:#6366f1;color:#4338ca}.note-actions .btn-icon.btn-danger:hover{background:#fee2e2;border-color:#ef4444;color:#dc2626}.note-content{color:#374151;font-size:.9rem;line-height:1.5}.note-content-preview{max-height:80px;overflow:hidden;position:relative}.note-content-preview:after{content:"";position:absolute;bottom:0;left:0;right:0;height:30px;background:linear-gradient(transparent,#fff)}.note-content .markdown-body{padding:0;background:transparent}.note-content .markdown-body p{margin:0 0 .5em}.note-content .markdown-body p:last-child{margin-bottom:0}.note-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #E5E7EB}.note-attachment-link{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#f3f4f6;border-radius:4px;font-size:.75rem;color:#4b5563;text-decoration:none;transition:all .2s}.note-attachment-link:hover{background:#e0e7ff;color:#4338ca}.note-textarea{width:100%;padding:12px;border:1px solid #D1D5DB;border-radius:8px;font-size:.95rem;resize:vertical;font-family:inherit}.note-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.dashboard-area{background:#fff;border-radius:12px;padding:24px}.dashboard-area h2{margin:0 0 24px;color:#1f2937;font-size:1.5rem}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.dashboard-stats .stat-card{display:flex;align-items:center;gap:16px;background:#f9fafb;border-radius:12px;padding:20px;border:1px solid #E5E7EB;transition:all .2s}.dashboard-stats .stat-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a}.dashboard-stats .stat-card.warning{background:#fef3c7;border-color:#f59e0b}.dashboard-stats .stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#e5e7eb;border-radius:12px;color:#6b7280}.dashboard-stats .stat-card.warning .stat-icon{background:#fde68a;color:#d97706}.dashboard-stats .stat-info{flex:1}.dashboard-stats .stat-value{font-size:1.75rem;font-weight:700;color:#1f2937;line-height:1}.dashboard-stats .stat-label{font-size:.875rem;color:#6b7280;margin-top:4px}.dashboard-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.dashboard-section{background:#f9fafb;border-radius:12px;padding:20px;border:1px solid #E5E7EB}.dashboard-section h3{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:1rem;color:#374151;padding-bottom:12px;border-bottom:1px solid #E5E7EB}.dashboard-section .empty-message{text-align:center;color:#9ca3af;font-size:.9rem;padding:24px}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.activity-item{background:#fff;border-radius:8px;padding:12px;border-left:3px solid #3B82F6}.activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.activity-author{font-weight:600;font-size:.875rem;color:#1f2937}.activity-time{font-size:.75rem;color:#9ca3af}.activity-content{font-size:.875rem;color:#4b5563;line-height:1.4;margin-bottom:8px}.activity-meta{font-size:.8rem;color:#6b7280;margin-bottom:4px}.activity-material{font-size:.75rem;color:#3b82f6;background:#eff6ff;padding:2px 8px;border-radius:4px;display:inline-block}.empty-state{text-align:center;padding:60px 20px;color:#9ca3af}.empty-icon{font-size:3rem;display:block;margin-bottom:16px}.loading{text-align:center;padding:60px 20px;color:#6b7280;font-size:1rem}.note-detail-content,.instruction-detail-content{display:flex;flex-direction:column;gap:16px}.note-detail-meta,.instruction-detail-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid #E5E7EB}.note-detail-body,.instruction-detail-body{line-height:1.7;font-size:1rem}.note-detail-body .markdown-body,.instruction-detail-body .markdown-body{padding:0;background:transparent}.instruction-detail-meta .instruction-date{display:flex;align-items:center;gap:4px}@media(max-width:768px){.instructor-page .header{flex-direction:column;gap:12px;padding:12px 16px}.instructor-page .header-left{flex-wrap:wrap;gap:8px}.instructor-page .main-content{padding:16px}.instructions-header,.notes-header{flex-direction:column;gap:12px;align-items:flex-start}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.assignment-modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.modal-header{padding:20px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.modal-header-content{flex:1;min-width:0}.modal-header h2{margin:0;font-size:18px;font-weight:600;color:#111827}.modal-header .material-title{margin:4px 0 0;font-size:14px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-header .close-btn{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:none;border-radius:6px;font-size:20px;color:#6b7280;cursor:pointer;transition:all .2s}.modal-header .close-btn:hover{background:#e5e7eb;color:#111827}.modal-tabs{display:flex;border-bottom:1px solid #e5e7eb}.tab-btn{flex:1;padding:12px;border:none;background:none;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.tab-btn:hover{color:#111827;background-color:#f9fafb}.tab-btn.active{color:#2563eb;border-bottom-color:#2563eb}.modal-search{padding:12px 20px;border-bottom:1px solid #e5e7eb}.modal-search input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.modal-search input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.modal-content{flex:1;overflow-y:auto;padding:0}.bulk-actions{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid #e5e7eb;background-color:#f9fafb;align-items:center}.bulk-actions button{padding:6px 12px;font-size:12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#374151;cursor:pointer;transition:all .2s}.bulk-actions button:hover:not(:disabled){background-color:#f3f4f6}.bulk-actions button:disabled{opacity:.5;cursor:not-allowed}.bulk-actions .results-count{margin-left:auto;font-size:12px;color:#6b7280}.user-list{padding:8px 0}.user-item{display:flex;align-items:flex-start;padding:12px 20px;cursor:pointer;transition:background-color .2s;border-bottom:1px solid #f3f4f6}.user-item:last-child{border-bottom:none}.user-item:hover{background-color:#f9fafb}.user-item.assigned{background-color:#eff6ff}.user-item.assigned:hover{background-color:#dbeafe}.user-item input[type=checkbox]{width:18px;height:18px;margin-right:12px;margin-top:2px;cursor:pointer;flex-shrink:0}.user-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.user-name-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.user-name{font-size:14px;font-weight:500;color:#111827}.user-email{font-size:12px;color:#6b7280}.user-org-info{font-size:11px;color:#9ca3af;margin-top:2px}.loading,.no-results{padding:40px 20px;text-align:center;color:#6b7280}.error-message{margin:12px 20px;padding:12px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px}.modal-footer{padding:16px 20px;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;background-color:#f9fafb}.assignment-summary{font-size:13px;color:#6b7280}.done-btn{padding:10px 24px;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.done-btn:hover:not(:disabled){background-color:#1d4ed8}.done-btn:disabled{opacity:.5;cursor:not-allowed}.progress-bar{margin:12px 20px;padding:12px;background-color:#eff6ff;border-radius:6px}.progress-text{font-size:13px;color:#1d4ed8;margin-bottom:8px;text-align:center}.progress-track{height:6px;background-color:#dbeafe;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background-color:#2563eb;border-radius:3px;transition:width .3s ease}@media(max-width:768px){.assignment-modal{width:100%;height:100%;max-width:none;max-height:none;border-radius:0}.modal-content{flex:1}.user-name-row{flex-direction:column;gap:2px}}.grouped-material-list{display:flex;flex-direction:column;gap:.75rem}.gml-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;background:#f9fafb;border-radius:8px}.gml-group-mode{display:flex;align-items:center;gap:.5rem}.gml-group-mode label{font-size:.85rem;color:#4b5563;white-space:nowrap}.gml-group-mode select{padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;background:#fff}.gml-expand-controls{display:flex;gap:.5rem}.gml-expand-controls button{padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.75rem;background:#fff;color:#4b5563;cursor:pointer;transition:all .15s}.gml-expand-controls button:hover{background:#f3f4f6}.gml-count{display:flex;align-items:center;gap:1rem;margin-left:auto;font-size:.85rem;color:#6b7280}.gml-select-all{display:flex;align-items:center;gap:.375rem;cursor:pointer}.gml-select-all input{cursor:pointer}.gml-groups{display:flex;flex-direction:column;gap:.5rem}.gml-group{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.gml-group-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f9fafb;cursor:pointer;transition:background .15s}.gml-group-header:hover{background:#f3f4f6}.gml-toggle{font-size:.75rem;color:#6b7280;width:1rem;text-align:center}.gml-group-checkbox{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:#8B5CF6}.gml-group-icon{font-size:1rem}.gml-group-name{font-weight:500;color:#1f2937}.gml-group-subinfo{font-size:.8rem;color:#6b7280;padding:.125rem .5rem;background:#e5e7eb;border-radius:4px}.gml-group-count{margin-left:auto;font-size:.8rem;color:#6b7280;background:#e5e7eb;padding:.125rem .5rem;border-radius:4px}.gml-share-class-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;margin-left:.5rem;border:1px solid #8B5CF6;border-radius:4px;background:#f5f3ff;color:#7c3aed;font-size:.75rem;cursor:pointer;transition:all .15s}.gml-share-class-btn:hover{background:#8b5cf6;color:#fff}.gml-import-library-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;margin-left:.5rem;border:1px solid #2563eb;border-radius:4px;background:#eff6ff;color:#2563eb;font-size:.75rem;cursor:pointer;transition:all .15s}.gml-import-library-btn:hover{background:#2563eb;color:#fff}.gml-chapter{border-top:1px solid #e5e7eb}.gml-chapter-header{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:#f9fafb;cursor:pointer;font-size:.85rem;transition:background .15s}.gml-chapter-header:hover{background:#f3f4f6}.gml-chapter-uncategorized{background:#fafafa}.gml-chapter-toggle{font-size:10px;color:#9ca3af}.gml-chapter-icon{font-size:.85rem}.gml-chapter-title{font-weight:600;color:#374151}.gml-chapter-count{margin-left:auto;font-size:.75rem;color:#9ca3af}.gml-chapter-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s}.gml-chapter-header:hover .gml-chapter-actions{opacity:1}.gml-chapter-actions button{background:none;border:none;cursor:pointer;padding:2px;color:#6b7280;border-radius:4px}.gml-chapter-actions button:hover{background:#e5e7eb;color:#1f2937}.gml-chapter-actions button.danger:hover{background:#fee2e2;color:#dc2626}.gml-chapter-edit-input{flex:1;padding:2px 6px;border:1px solid #2563eb;border-radius:4px;font-size:.85rem;font-weight:600}.gml-chapter-content{padding-left:1rem}.gml-chapter-empty{padding:.5rem 1rem;color:#9ca3af;font-size:.8rem;font-style:italic}.gml-add-chapter{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-top:1px solid #e5e7eb}.gml-add-chapter-input{flex:1;padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.8rem}.gml-add-chapter-btn{padding:.375rem .75rem;border:1px solid #2563eb;border-radius:4px;background:#eff6ff;color:#2563eb;font-size:.8rem;cursor:pointer;white-space:nowrap}.gml-add-chapter-btn:hover:not(:disabled){background:#2563eb;color:#fff}.gml-add-chapter-btn:disabled{opacity:.5;cursor:not-allowed}.gml-bulk-move-btn{padding:2px 8px;border:1px solid #10b981;border-radius:4px;background:#ecfdf5;color:#059669;font-size:.7rem;cursor:pointer;white-space:nowrap;transition:all .15s}.gml-bulk-move-btn:hover{background:#10b981;color:#fff}.gml-group-content{border-top:1px solid #e5e7eb}.gml-material-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem .5rem 2.5rem;border-bottom:1px solid #f3f4f6;transition:background .15s}.gml-material-item:last-child{border-bottom:none}.gml-material-item:hover{background:#f9fafb}.gml-material-item.selected{background:#eef2ff}.gml-material-item.clickable{cursor:pointer}.gml-checkbox{flex-shrink:0;cursor:pointer}.gml-assignment-info{display:flex;gap:.375rem;min-width:180px;flex-shrink:0}.gml-badge-wrapper{position:relative}.gml-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap}.gml-badge.student{background:#dbeafe;color:#1e40af}.gml-badge.coach{background:#d1fae5;color:#065f46}.gml-badge.unassigned{background:#f3f4f6;color:#6b7280}.gml-icon{font-size:.7rem}.gml-more{font-size:.65rem;opacity:.8}.gml-category{padding:.125rem .375rem;border-radius:4px;font-size:.7rem;background:#e5e7eb;color:#374151;flex-shrink:0}.gml-lesson{font-size:.75rem;color:#6b7280;flex-shrink:0;min-width:2rem}.gml-title{flex:1;font-size:.85rem;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.375rem}.gml-multi-class-badge{font-size:.75rem;opacity:.7;flex-shrink:0;cursor:help}.gml-tag{padding:.125rem .375rem;border-radius:4px;font-size:.65rem;flex-shrink:0}.gml-tag.audio{background:#fef3c7;color:#92400e}.gml-tag.pdf{background:#fee2e2;color:#991b1b}.gml-actions{display:flex;gap:.25rem;flex-shrink:0}.gml-actions button{padding:.25rem .375rem;border:none;background:transparent;cursor:pointer;border-radius:4px;font-size:.85rem;transition:background .15s}.gml-actions button:hover{background:#e5e7eb}.gml-actions button.danger:hover{background:#fef2f2}.gml-empty{padding:3rem;text-align:center;color:#9ca3af}@media(max-width:768px){.gml-controls{flex-direction:column;align-items:stretch}.gml-count{margin-left:0;justify-content:space-between}.gml-material-item{flex-wrap:wrap;padding:.75rem 1rem}.gml-assignment-info{min-width:auto;flex-basis:100%;order:1;margin-top:.5rem}.gml-title{flex-basis:50%}.gml-actions{margin-left:auto}}.gml-chapter-drag-handle{cursor:grab;color:#9ca3af;padding:0 4px;-webkit-user-select:none;user-select:none;touch-action:none;font-size:14px}.gml-chapter-drag-handle:active{cursor:grabbing}.gml-chapter-drag-handle:hover{color:#4b5563}.gml-chapter-collapsed-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:#fef3c7;color:#92400e;white-space:nowrap}.gml-bulk-collapse{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:#6b7280}.gml-bulk-collapse button{padding:3px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:12px}.gml-bulk-collapse button:hover{background:#f3f4f6}.gml-chapter-visibility-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:#dbeafe;color:#1e40af;white-space:nowrap}.gml-material-drag-handle{cursor:grab;color:#cbd5e1;padding:0 2px;-webkit-user-select:none;user-select:none;touch-action:none;font-size:13px;flex-shrink:0}.gml-material-drag-handle:active{cursor:grabbing}.gml-material-item:hover .gml-material-drag-handle{color:#64748b}.gml-droppable{outline:1px dashed #cbd5e1;outline-offset:-1px}.gml-drop-over{outline:2px dashed #2563eb;outline-offset:-2px;background:#eff6ff}.gml-material-item.saving{background:#fffbeb}.gml-saving-spinner{flex-shrink:0;width:11px;height:11px;border:2px solid #fcd34d;border-top-color:transparent;border-radius:50%;animation:gml-spin .7s linear infinite}@keyframes gml-spin{to{transform:rotate(360deg)}}.him-dropzone{border:2px dashed #d1d5db;border-radius:10px;padding:48px 24px;text-align:center;color:#6b7280;cursor:pointer;transition:all .15s}.him-dropzone:hover,.him-dropzone-over{border-color:#2563eb;background:#eff6ff}.him-dropzone-icon{font-size:2rem;margin-bottom:8px}.him-dropzone-sub{font-size:.8rem;color:#9ca3af;margin-top:4px}.him-body{display:flex;flex-direction:column;gap:10px}.him-fileinfo{display:flex;align-items:center;gap:12px}.him-filename{font-weight:600}.him-clear{border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:.8rem;text-decoration:underline}.him-analysis{padding:8px 12px;border-radius:6px;font-size:.85rem}.him-analysis-html-document{background:#d1fae5;color:#065f46}.him-analysis-html-fragment{background:#fef3c7;color:#92400e}.him-analysis-markdown{background:#e0e7ff;color:#3730a3}.him-register-as{display:flex;gap:20px;font-size:.9rem}.him-register-as label{display:flex;align-items:center;gap:6px;cursor:pointer}.him-note{font-size:.8rem;color:#6b7280;background:#f9fafb;border-radius:6px;padding:6px 10px}.him-warn{font-size:.8rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:8px 12px}.him-warn ul{margin:6px 0 0;padding-left:18px}.him-preview-label{font-weight:600;font-size:.85rem;color:#374151}.him-preview{width:100%;height:380px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.him-preview-text{max-height:380px;overflow:auto;border:1px solid #e5e7eb;border-radius:8px;padding:12px;font-size:.8rem;background:#f9fafb;white-space:pre-wrap}.lim-grid{display:grid;grid-template-columns:280px minmax(320px,1fr) minmax(360px,1.1fr);gap:16px;height:calc(100vh - 220px);min-height:420px}@media(max-width:1100px){.lim-grid{grid-template-columns:1fr;height:auto}}.lim-col{display:flex;flex-direction:column;gap:8px;min-height:0;border:1px solid #e5e7eb;border-radius:8px;padding:12px;background:#fff}.lim-col h4{margin:0 0 4px;font-size:.95rem;color:#374151}.lim-input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;box-sizing:border-box}.lim-narrow{width:9em;flex:none}.lim-row{display:flex;gap:6px}.lim-label{font-size:.85rem;color:#4b5563}.lim-muted{color:#6b7280;font-size:.85rem}.lim-small{font-size:.78rem}.lim-right{margin-left:auto}.lim-link{background:none;border:none;padding:0;color:#4f46e5;cursor:pointer;font-size:.85rem;text-align:left}.lim-link:disabled{color:#9ca3af;cursor:default}.lim-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:0}.lim-list li button{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 8px;border:none;border-bottom:1px solid #f3f4f6;background:none;text-align:left;cursor:pointer;font-size:.9rem}.lim-list li button:hover{background:#eef2ff}.lim-lib-title{font-weight:600}.lim-desc{flex-basis:100%;color:#6b7280;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lim-tag{display:inline-block;padding:1px 6px;border-radius:10px;background:#f3f4f6;color:#4b5563;font-size:.72rem;white-space:nowrap}.lim-tag-master{background:#fef3c7;color:#92400e}.lim-tag-done{background:#d1fae5;color:#065f46}.lim-target-picked{padding:8px;background:#eef2ff;border-radius:6px}.lim-target-name{font-weight:600;margin-bottom:4px;word-break:break-word}.lim-chapter{display:flex;flex-direction:column;gap:6px;margin-top:8px}.lim-library{overflow-y:auto}.lim-lib-heading{font-weight:700;margin:4px 0}.lim-chapter-block{border-top:1px solid #f3f4f6;padding-top:6px}.lim-chapter-head{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.9rem}.lim-lessons{list-style:none;margin:4px 0 8px;padding:0}.lim-lessons li{display:flex;align-items:center;gap:6px;padding:4px;border-radius:4px}.lim-lessons li.is-preview{background:#eef2ff}.lim-lesson-title{background:none;border:none;padding:0;text-align:left;cursor:pointer;color:#1f2937;font-size:.88rem;flex:1}.lim-lesson-title:hover{text-decoration:underline}.lim-side{gap:10px}.lim-preview{flex:1 1 50%;min-height:0;overflow:auto;border:1px solid #f3f4f6;border-radius:6px;padding:8px}.lim-preview-title{font-weight:600;margin-bottom:6px}.lim-preview-body iframe{width:100%;min-height:360px;border:none}.lim-picked{flex:1 1 50%;min-height:0;overflow:auto}.lim-picked-head{display:flex;align-items:center;font-weight:600;font-size:.9rem;margin-bottom:4px}.lim-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.85rem}.lim-table th,.lim-table td{border-bottom:1px solid #f3f4f6;padding:4px;text-align:left;vertical-align:top}.lim-table th{color:#6b7280;font-weight:500;white-space:nowrap}.lim-picked-title{word-break:break-word}.lim-num{width:3.6em;padding:3px 4px;border:1px solid #d1d5db;border-radius:4px}.lim-x{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1rem}.lim-x:hover{color:#dc2626}.lim-warn{background:#fef3c7;color:#92400e;padding:4px 8px;border-radius:4px;font-size:.82rem;margin-bottom:4px}.lim-error{background:#fee2e2;color:#991b1b;padding:6px 8px;border-radius:4px;font-size:.82rem;margin-bottom:4px}.lim-footer{display:flex;align-items:center;gap:8px;width:100%}.lim-footer-summary{flex:1;font-size:.88rem;color:#374151}.lim-modes{display:flex;gap:4px;border-bottom:1px solid #e5e7eb}.lim-modes button{background:none;border:none;border-bottom:2px solid transparent;padding:6px 10px;cursor:pointer;font-size:.85rem;color:#6b7280}.lim-modes button.active{border-bottom-color:#4f46e5;color:#4f46e5;font-weight:600}.lim-scroll{overflow-y:auto;flex:1;min-height:0}.lim-lib-heading{display:flex;align-items:center;gap:8px}.lim-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}.lim-chip{border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;border-radius:12px;padding:2px 10px;font-size:.78rem;cursor:pointer;white-space:nowrap}.lim-chip:hover{background:#e0e7ff}.lim-chip:disabled{opacity:.5;cursor:default}.lim-lib-row{display:flex;align-items:stretch;border-bottom:1px solid #f3f4f6}.lim-lib-row>button:first-child{flex:1;border-bottom:none}.lim-whole{flex:none;align-self:center;margin:0 4px;border:1px solid #c7d2fe;background:#fff;color:#4f46e5;border-radius:6px;padding:3px 8px;font-size:.75rem;cursor:pointer;white-space:nowrap}.lim-list li button.lim-whole{width:auto;display:inline-block;padding:3px 8px;border:1px solid #c7d2fe}.lim-whole:hover{background:#eef2ff}.lim-where{display:block;color:#9ca3af;font-size:.74rem}.lesson-structure-editor{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:8px;overflow:hidden}.editor-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0;background:#f8f9fa;position:relative}.editor-header h2{margin:0;font-size:18px;font-weight:600}.editor-header .lesson-title{margin:0 0 0 16px;color:#666;font-size:14px}.editor-header .close-button{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:4px 8px}.editor-header .close-button:hover{color:#333}.editor-tabs{display:flex;border-bottom:1px solid #e0e0e0;background:#fff}.editor-tabs .tab-button{padding:12px 20px;border:none;background:none;cursor:pointer;font-size:14px;color:#666;border-bottom:2px solid transparent;transition:all .2s}.editor-tabs .tab-button:hover{color:#333;background:#f5f5f5}.editor-tabs .tab-button.active{color:#1976d2;border-bottom-color:#1976d2}.editor-content{flex:1;overflow-y:auto;padding:20px}.tab-content{min-height:200px}.tab-actions{margin-bottom:16px}.context-add-buttons{display:flex;gap:8px;flex-wrap:wrap}.empty-message{text-align:center;color:#999;padding:40px;font-size:14px}.loading,.error{text-align:center;padding:40px}.error{color:#d32f2f}.items-list{display:flex;flex-direction:column;gap:16px}.item-card{border:1px solid #e0e0e0;border-radius:8px;padding:16px;background:#fafafa}.item-fields{display:flex;flex-direction:column;gap:12px}.field-row{display:flex;flex-direction:column;gap:4px}.field-row label{font-size:12px;color:#666;font-weight:500}.field-row input,.field-row textarea{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.field-row input:focus,.field-row textarea:focus{outline:none;border-color:#1976d2}.field-row textarea{resize:vertical}.dialogue-content,.context-content{font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.5}.item-actions{margin-top:12px;display:flex;justify-content:flex-end}.delete-button{padding:6px 12px;background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;color:#c62828;cursor:pointer;font-size:13px}.delete-button:hover{background:#ffcdd2}.delete-button.small{padding:4px 8px;font-size:16px;line-height:1}.expressions-list{gap:0}.expression-header{display:grid;grid-template-columns:1fr 1fr 1fr 40px;gap:8px;padding:8px 12px;background:#e8e8e8;border-radius:4px 4px 0 0;font-size:12px;font-weight:600;color:#666}.expression-row{display:grid;grid-template-columns:1fr 1fr 1fr 40px;gap:8px;padding:8px 12px;border:1px solid #e0e0e0;border-top:none;background:#fff}.expression-row:last-child{border-radius:0 0 4px 4px}.expression-row input{padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:13px}.expression-row input:focus{outline:none;border-color:#1976d2}.context-type-badge{display:inline-block;padding:4px 10px;background:#e3f2fd;color:#1565c0;border-radius:12px;font-size:12px;font-weight:500;margin-bottom:12px}.saving-indicator{position:fixed;bottom:20px;right:20px;background:#333;color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;box-shadow:0 4px 12px #0000004d}.admin-page{min-height:100vh;background:#f9fafb}.header-manual-link{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#8b5cf61a;color:#8b5cf6;text-decoration:none;border-radius:6px;font-size:.85rem;font-weight:500;transition:all .2s;margin-right:12px}.header-manual-link:hover{background:#8b5cf633;color:#7c3aed}.header-manual-link svg{width:16px;height:16px}.admin-nav{display:flex;gap:4px;padding:12px 20px;background:#fff;border-bottom:1px solid #E5E7EB;overflow-x:auto}.nav-item{padding:10px 20px;border:none;background:transparent;font-size:.9rem;font-weight:500;color:#6b7280;cursor:pointer;border-radius:8px;transition:all .2s;white-space:nowrap}.nav-item:hover{background:#f3f4f6;color:#1f2937}.nav-item.active{background:#8b5cf6;color:#fff}.admin-content{max-width:1200px;margin:0 auto;padding:24px}.manual-embed{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.manual-embed-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #E5E7EB}.manual-embed-header h2{margin:0;color:#1f2937}.manual-full-link{color:#2563eb;text-decoration:none;font-size:.875rem;font-weight:500}.manual-full-link:hover{color:#1d4ed8;text-decoration:underline}.manual-embed-content{padding:24px}.manual-section-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}@media(max-width:768px){.manual-section-grid{grid-template-columns:1fr}}.manual-section-card{background:#f9fafb;border:1px solid #E5E7EB;border-radius:8px;padding:20px;cursor:pointer;transition:all .2s}.manual-section-card:hover{background:#eff6ff;border-color:#93c5fd;box-shadow:0 4px 12px #00000014}.manual-section-card h3{margin:0 0 8px;font-size:1rem;font-weight:600;color:#1f2937}.manual-section-card p{margin:0;font-size:.875rem;color:#6b7280}.manual-stats{margin-top:24px}.manual-stats h3{margin:0 0 16px;font-size:1rem;font-weight:600;color:#1f2937}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;text-align:center;border:1px solid #E5E7EB}.stat-value{font-size:2.5rem;font-weight:700;color:#8b5cf6;margin-bottom:8px}.stat-label{font-size:.9rem;color:#6b7280}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.section-header h2{margin:0;color:#1f2937}.header-actions{display:flex;gap:12px}.instruction-list{display:flex;flex-direction:column;gap:16px}.instruction-item{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.instruction-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.instruction-item-header h3{margin:0;font-size:1.1rem;color:#1f2937}.instruction-badges{display:flex;gap:8px}.badge{font-size:.7rem;padding:2px 8px;border-radius:4px;font-weight:500}.badge-danger{background:#fee2e2;color:#dc2626}.badge-info{background:#dbeafe;color:#1d4ed8}.badge-category{background:#e0e7ff;color:#4338ca}.instruction-preview{color:#6b7280;font-size:.9rem;margin-bottom:12px}.instruction-item-actions{display:flex;gap:8px;justify-content:flex-end}.instruction-list.compact{gap:4px}.instruction-result-header{display:flex;justify-content:space-between;align-items:center}.instruction-item-compact{display:flex;align-items:center;gap:12px;background:#fff;border-radius:8px;padding:10px 16px;box-shadow:0 1px 3px #0000000f;transition:all .15s ease}.instruction-item-compact:hover{background:#f9fafb;box-shadow:0 2px 6px #0000001a}.instruction-item-compact.selected{background:#ede9fe;border:1px solid #8B5CF6}.instruction-item-compact.expired{opacity:.6}.instruction-item-compact.clickable{cursor:pointer}.instruction-checkbox{flex-shrink:0;width:18px;height:18px;cursor:pointer;accent-color:#8B5CF6}.instruction-badges-compact{display:flex;gap:4px;flex-shrink:0;min-width:80px}.instruction-title-compact{font-size:.9rem;font-weight:500;color:#1f2937;flex-shrink:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instruction-preview-compact{flex:1;font-size:.8rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.instruction-item-actions-compact{display:flex;gap:4px;flex-shrink:0}.btn-action{background:transparent;border:1px solid #D1D5DB;padding:6px 12px;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-action:hover{background:#f3f4f6;border-color:#9ca3af}.btn-action.btn-danger:hover{background:#fee2e2;border-color:#ef4444;color:#dc2626}.btn-action.btn-share{color:#4a90a4}.btn-action.btn-share:hover{background:#e0f2fe;border-color:#4a90a4}.btn-action.btn-assign{color:#059669}.btn-action.btn-assign:hover{background:#d1fae5;border-color:#059669}.material-list{display:flex;flex-direction:column;gap:16px}.material-list.compact{gap:4px}.material-item{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.material-item-compact{display:flex;align-items:center;gap:12px;background:#fff;border-radius:8px;padding:10px 16px;box-shadow:0 1px 3px #0000000f;transition:all .15s ease}.material-item-compact:hover{background:#f9fafb;box-shadow:0 2px 6px #0000001a}.material-item-compact.selected{background:#ede9fe;border:1px solid #8B5CF6}.material-checkbox{flex-shrink:0;width:18px;height:18px;cursor:pointer;accent-color:#8B5CF6}.badge.compact{font-size:.65rem;padding:2px 6px}.material-lesson{flex-shrink:0;font-size:.8rem;font-weight:600;color:#6b7280;width:30px}.material-title-compact{flex:1;font-size:.9rem;font-weight:500;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.material-assignment-display{margin-bottom:16px;padding:12px;background:#f9fafb;border-radius:8px}.material-assignment-display label{display:block;font-weight:500;color:#374151;margin-bottom:8px;font-size:.9rem}.assignment-info-row{display:flex;flex-wrap:wrap;gap:8px}.no-assignment{color:#9ca3af;font-size:.85rem;font-style:italic}.bulk-action-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#ede9fe;border-radius:8px;margin-bottom:16px;flex-wrap:wrap}.bulk-selection-count{font-weight:600;color:#7c3aed;font-size:.9rem}.bulk-actions-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bulk-action-dropdown{display:flex;align-items:center;gap:6px}.bulk-action-dropdown label{font-size:.8rem;color:#6b7280;white-space:nowrap}.bulk-action-dropdown select{padding:4px 8px;border:1px solid #D1D5DB;border-radius:4px;font-size:.8rem;background:#fff}.bulk-action-dropdown .lesson-input{width:60px;padding:4px 8px;border:1px solid #D1D5DB;border-radius:4px;font-size:.8rem}.material-assignment-info{display:flex;gap:6px;flex-shrink:0;align-items:center;min-width:180px}.assignment-badge-wrapper{position:relative}.assignment-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500;white-space:nowrap;cursor:default;max-width:150px;overflow:hidden;text-overflow:ellipsis}.assignment-badge.student{background:#dbeafe;color:#1d4ed8}.assignment-badge.coach{background:#d1fae5;color:#059669}.assignment-badge.unassigned{background:#f3f4f6;color:#9ca3af;font-style:italic}.assignment-icon{font-size:.7rem;flex-shrink:0}.assignment-more{flex-shrink:0;margin-left:2px;padding:1px 4px;background:#0000001a;border-radius:8px;font-size:.65rem;font-weight:600}.assignment-popup{display:none;position:absolute;top:100%;left:0;z-index:100;min-width:200px;max-width:300px;margin-top:4px;padding:8px 0;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;border:1px solid #E5E7EB}.assignment-badge-wrapper:hover .assignment-popup{display:block}.assignment-popup-title{padding:4px 12px 8px;font-size:.75rem;font-weight:600;color:#6b7280;border-bottom:1px solid #E5E7EB}.assignment-popup-list{list-style:none;margin:0;padding:4px 0;max-height:200px;overflow-y:auto}.assignment-popup-list li{padding:6px 12px;font-size:.8rem;color:#1f2937}.assignment-popup-list li:hover{background:#f3f4f6}.material-item-actions-compact{display:flex;gap:4px;flex-shrink:0}.btn-action-compact{background:transparent;border:none;padding:4px 6px;font-size:.9rem;cursor:pointer;opacity:.7;transition:opacity .15s ease;border-radius:4px}.btn-action-compact:hover{opacity:1;background:#0000000d}.btn-action-compact.btn-danger:hover{background:#fee2e2}.material-result-header{display:flex;justify-content:space-between;align-items:center}.select-all-label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#6b7280;cursor:pointer}.select-all-label input{accent-color:#8B5CF6}.material-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.material-item-header h3{margin:0;font-size:1.1rem;color:#1f2937}.material-meta{display:flex;gap:16px;color:#6b7280;font-size:.85rem;margin-bottom:12px}.material-item-actions{display:flex;gap:8px;justify-content:flex-end}.users-list h2{margin:0 0 24px;color:#1f2937}.users-table{width:100%;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;border-collapse:collapse}.users-table th,.users-table td{padding:16px 20px;text-align:left;border-bottom:1px solid #E5E7EB}.users-table th{background:#f9fafb;font-weight:600;color:#4b5563;font-size:.85rem}.users-table td{font-size:.9rem;color:#1f2937}.users-table tr:last-child td{border-bottom:none}.form-group{margin-bottom:16px}.form-group label{display:block;font-weight:500;color:#374151;margin-bottom:6px;font-size:.9rem}.form-group label .label-hint{font-weight:400;color:#9ca3af;font-size:.8rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #D1D5DB;border-radius:8px;font-size:.95rem;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.form-hint{display:block;font-size:.8rem;color:#6b7280;margin-top:4px}.form-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.btn-ai-edit{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:.75rem;cursor:pointer;transition:all .2s}.filter-bar{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.search-input{flex:1;min-width:200px;padding:10px 14px;border:1px solid #D1D5DB;border-radius:8px;font-size:.95rem}.search-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:.85rem;color:#6b7280;white-space:nowrap}.filter-group select{padding:8px 12px;border:1px solid #D1D5DB;border-radius:6px;font-size:.9rem;background:#fff}.filter-group select:focus{outline:none;border-color:#8b5cf6}.result-count{font-size:.85rem;color:#6b7280;margin-bottom:16px}.badge-expiry{background:#fef3c7;color:#d97706}.badge-expired{background:#fee2e2;color:#dc2626}.badge-audio{background:#dbeafe;color:#1d4ed8}.material-badges{display:flex;gap:8px}.count-badge{display:inline-block;background:#e0e7ff;color:#4338ca;padding:2px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.upload-area{border:2px dashed #D1D5DB;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;background:#fafafa}.upload-area:hover{border-color:#8b5cf6;background:#f5f3ff}.upload-area.drag-over{border-color:#8b5cf6;background:#ede9fe}.upload-icon{font-size:3rem;margin-bottom:12px}.upload-area p{margin:4px 0;color:#4b5563}.upload-hint{font-size:.85rem;color:#9ca3af!important}.upload-format{font-size:.8rem;color:#6b7280!important;margin-top:12px!important}.parsed-files{margin-top:20px}.parsed-files h4{margin:0 0 12px;color:#374151}.parsed-file{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f0fdf4;border-radius:8px;margin-bottom:8px}.parsed-file.error{background:#fef2f2}.file-name{font-weight:500;color:#1f2937}.file-info{color:#059669;font-size:.85rem}.file-error{color:#dc2626;font-size:.85rem}.btn-remove{margin-left:auto;background:transparent;border:none;font-size:1.25rem;color:#9ca3af;cursor:pointer;padding:0 8px}.btn-remove:hover{color:#ef4444}.quick-edit-container{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:500px}.quick-edit-editor,.quick-edit-preview{display:flex;flex-direction:column}.quick-edit-editor h4,.quick-edit-preview h4{margin:0 0 12px;color:#374151;font-size:.9rem}.quick-edit-editor textarea{flex:1;width:100%;padding:16px;border:1px solid #D1D5DB;border-radius:8px;font-family:SFMono-Regular,Consolas,monospace;font-size:.9rem;resize:none}.quick-edit-editor textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.preview-content{flex:1;padding:16px;border:1px solid #E5E7EB;border-radius:8px;background:#fff;overflow-y:auto}@media(max-width:768px){.admin-nav{padding:8px 12px}.nav-item{padding:8px 12px;font-size:.85rem}.admin-content{padding:16px}.section-header{flex-direction:column;gap:12px;align-items:flex-start}.form-row{grid-template-columns:1fr}.quick-edit-container{grid-template-columns:1fr;height:auto}.quick-edit-editor,.quick-edit-preview{height:300px}}.uploading-indicator{display:inline-block;margin-top:8px;font-size:.85rem;color:#8b5cf6;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.library-management{background:#f9fafb}.library-list.compact{display:flex;flex-direction:column;gap:4px}.library-item-compact{display:flex;align-items:center;gap:12px;background:#fff;border-radius:8px;padding:10px 16px;box-shadow:0 1px 3px #0000000f;transition:all .15s ease}.library-item-compact:hover{background:#f9fafb;box-shadow:0 2px 6px #0000001a}.library-type-icon{font-size:1.2rem;flex-shrink:0}.library-title-compact{flex:1;font-size:.95rem;font-weight:500;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.library-title-compact:hover{color:#8b5cf6}.library-description-compact{flex:1;font-size:.8rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:300px}.library-item-actions-compact{display:flex;gap:4px;flex-shrink:0}.badge-locked{background:#f3f4f6;color:#6b7280}.badge-master{background:#fef3c7;color:#d97706}.badge-pdf{background:#fce7f3;color:#be185d}.detail-title-row{display:flex;align-items:center;gap:12px}.detail-title-row h2{margin:0;font-size:1.3rem;color:#1f2937}.back-btn{background:transparent;border:1px solid #D1D5DB;padding:8px 16px;border-radius:6px;font-size:.9rem;cursor:pointer;color:#6b7280;transition:all .2s}.back-btn:hover{background:#f3f4f6;border-color:#9ca3af;color:#1f2937}.tree-view{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.tree-actions{display:flex;gap:12px;margin-bottom:20px}.chapter-list{display:flex;flex-direction:column;gap:8px}.chapter-item{border:1px solid #E5E7EB;border-radius:8px;overflow:hidden}.chapter-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f9fafb;cursor:pointer;transition:background .15s}.chapter-header:hover{background:#f3f4f6}.expand-icon{font-size:.8rem;color:#6b7280;width:16px;flex-shrink:0}.chapter-number{font-weight:600;color:#8b5cf6;font-size:.85rem;flex-shrink:0}.chapter-title{flex:1;font-weight:500;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-count{font-size:.8rem;color:#6b7280;flex-shrink:0}.chapter-actions{display:flex;gap:4px;flex-shrink:0;margin-left:auto}.btn-ai-create-chapter{padding:4px 10px;font-size:.75rem;font-weight:600;background:linear-gradient(135deg,#8b5cf6,#a78bfa);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .15s;box-shadow:0 1px 3px #8b5cf64d}.btn-ai-create-chapter:hover{background:linear-gradient(135deg,#7c3aed,#8b5cf6);box-shadow:0 2px 6px #8b5cf666;transform:translateY(-1px)}.lesson-list{padding:12px 16px 12px 44px;background:#fff;display:flex;flex-direction:column;gap:4px}.lesson-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fafafa;border-radius:6px;transition:background .15s}.lesson-item:hover{background:#f3f4f6}.lesson-item.clickable{cursor:pointer}.lesson-item.clickable:hover{background:#e5e7eb}.lesson-number{font-size:.8rem;color:#6b7280;width:24px;flex-shrink:0}.lesson-title{flex:1;font-size:.9rem;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-actions{display:flex;gap:4px;flex-shrink:0;opacity:1!important}.add-lesson-btn{background:transparent;border:1px dashed #D1D5DB;padding:8px 12px;border-radius:6px;font-size:.85rem;color:#6b7280;cursor:pointer;width:100%;text-align:left;transition:all .2s;margin-top:8px}.add-lesson-btn:hover{border-color:#8b5cf6;color:#8b5cf6;background:#f5f3ff}.empty-message{text-align:center;padding:40px 20px;color:#6b7280;font-size:.95rem}.error-message{text-align:center;padding:40px 20px;color:#dc2626;font-size:.95rem}.loading{text-align:center;padding:40px 20px;color:#6b7280;font-size:.95rem}.form-group.checkbox-group{display:flex;flex-direction:column;gap:8px}.form-group.checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.form-group.checkbox-group input[type=checkbox]{width:auto;accent-color:#8B5CF6}.pdf-preview-section{margin-top:16px;padding-top:16px;border-top:1px solid #E5E7EB}.pdf-preview-section label{display:block;margin-bottom:12px;font-weight:500;color:#374151}.import-description{margin:0 0 16px;color:#6b7280}.import-description strong{color:#1f2937}.import-step-library .library-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.library-item-import{padding:16px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:8px;cursor:pointer;transition:all .2s}.library-item-import:hover{background:#f3f4f6;border-color:#8b5cf6}.library-item-header{display:flex;gap:8px;align-items:center;margin-bottom:8px}.library-type-badge{padding:2px 8px;background:#e5e7eb;border-radius:4px;font-size:.75rem}.master-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px;background:#fef3c7;color:#92400e;border-radius:4px;font-size:.75rem;font-weight:500;min-width:20px;height:20px}.master-badge svg{display:block}.library-item-title{font-weight:600;color:#1f2937;font-size:1rem}.library-item-desc{color:#6b7280;font-size:.875rem;margin-top:4px}.chapters-list-import{display:flex;flex-direction:column;gap:16px;max-height:400px;overflow-y:auto}.chapter-item-import{border:1px solid #E5E7EB;border-radius:8px}.chapter-header-import{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f3f4f6;border-bottom:1px solid #E5E7EB;cursor:pointer}.chapter-header-import:hover{background:#e5e7eb}.chapter-toggle-import{font-size:10px;color:#9ca3af;flex-shrink:0}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.chapter-title-import{font-weight:600;color:#1f2937}.chapter-title-import.has-selection{color:#8b5cf6}.chapter-count{color:#6b7280;font-size:.875rem;font-weight:400}.lessons-list-import{padding:8px 16px;display:flex;flex-direction:column;gap:4px}.lesson-item-import{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer}.lesson-item-import:hover{background:#f9fafb}.lesson-title-import{flex:1;color:#374151}.lesson-tag{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px;background:#dbeafe;color:#1d4ed8;border-radius:4px;font-size:.7rem;font-weight:500;min-width:24px;height:24px}.lesson-tag svg{display:block}.import-step-settings .form-row{margin-bottom:16px}.import-step-settings .form-row label{display:flex;flex-direction:column;gap:4px;font-weight:500;color:#374151}.import-step-settings .form-row input,.import-step-settings .form-row select{padding:8px 12px;border:1px solid #D1D5DB;border-radius:6px;font-size:.9rem}.import-preview{margin-top:16px;padding:16px;background:#f9fafb;border-radius:8px}.import-preview h4{margin:0 0 8px;font-size:.9rem;color:#374151}.import-preview ul{margin:0;padding-left:20px;color:#6b7280;font-size:.875rem;max-height:200px;overflow-y:auto}.import-preview li{padding:2px 0}.import-preview h5{margin:12px 0 4px;font-size:.85rem;color:#374151}.import-summary{font-size:1rem;font-weight:600;color:#8b5cf6;margin:4px 0 8px}.form-section{margin-bottom:16px}.form-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.form-section-header label{font-weight:500;color:#374151}.btn-select-all{padding:4px 12px;background:#f3f4f6;border:1px solid #D1D5DB;border-radius:4px;font-size:.8rem;color:#374151;cursor:pointer;transition:all .2s}.btn-select-all:hover{background:#e5e7eb}.students-checkbox-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-height:200px;overflow-y:auto;padding:12px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:8px}.student-checkbox-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#fff;border-radius:4px;cursor:pointer;transition:background .2s}.student-checkbox-item:hover{background:#f3f4f6}.student-checkbox-item input{accent-color:#8B5CF6}.student-checkbox-item span{font-size:.875rem;color:#374151}.selected-count{margin-top:8px;font-size:.875rem;color:#8b5cf6;font-weight:500}.import-lessons-container{display:grid;grid-template-columns:1fr 1fr;gap:20px;min-height:400px;max-height:500px}@media(max-width:900px){.import-lessons-container{grid-template-columns:1fr;max-height:none}}.import-lessons-container .chapters-list-import{max-height:460px;overflow-y:auto}.import-preview-panel{display:flex;flex-direction:column;background:#f9fafb;border:1px solid #E5E7EB;border-radius:8px;overflow:hidden;height:100%;min-height:400px}.preview-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f3f4f6;border-bottom:1px solid #E5E7EB}.preview-header h4{margin:0;font-size:.9rem;color:#374151}.btn-close-preview{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:#6b7280;font-size:1.2rem;cursor:pointer;border-radius:4px;transition:all .15s}.btn-close-preview:hover{background:#e5e7eb;color:#374151}.preview-header p{margin:4px 0 0;font-size:.8rem;color:#6b7280}.preview-content{flex:1;overflow-y:auto;padding:16px;background:#fff}.preview-pdf{height:350px}.preview-pdf .pdf-viewer-container{height:100%}.preview-pdf .pdf-viewer-wrapper{height:calc(100% - 50px)!important}.preview-markdown{font-size:.9rem;line-height:1.6}.preview-audio{margin-top:12px;padding:12px;background:#f9fafb;border-radius:6px}.preview-audio label{display:block;font-size:.8rem;color:#6b7280;margin-bottom:8px}.preview-audio audio{width:100%}.preview-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:#9ca3af;font-size:.9rem;text-align:center;padding:20px}.lesson-item-import.previewing{background:#ede9fe;border-left:3px solid #8B5CF6;padding-left:5px}.lesson-checkbox-wrapper{display:flex;align-items:center}.lesson-info-wrapper{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .15s}.lesson-info-wrapper:hover{background:#8b5cf61a}.lesson-tags{display:flex;gap:4px}.import-class-section{border:1px solid #E5E7EB;border-radius:8px;padding:16px;background:#fafafa;margin-bottom:16px}.import-class-section .section-label{display:block;font-weight:600;color:#374151;margin-bottom:12px}.import-class-section .section-label .hint{font-weight:400;font-size:.85rem;color:#6b7280;margin-left:8px}.import-class-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;max-height:200px;overflow-y:auto;padding:12px;background:#fff;border:1px solid #E5E7EB;border-radius:8px}.import-class-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:6px;cursor:pointer;transition:all .2s}.import-class-item:hover{background:#f3f4f6;border-color:#d1d5db}.import-class-item.selected{background:#ede9fe;border-color:#8b5cf6}.import-class-item input[type=checkbox]{accent-color:#8B5CF6;flex-shrink:0}.import-class-item .class-info{flex:1;display:flex;flex-direction:column;gap:2px}.import-class-item .class-name{font-weight:500;color:#1f2937;font-size:.875rem}.import-class-item .class-org{font-size:.75rem;color:#6b7280}.import-class-list .no-results{padding:24px;text-align:center;color:#6b7280;grid-column:1 / -1}.class-students-preview{margin-top:12px;padding:12px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:8px}.class-students-group{margin-bottom:12px}.class-students-group:last-child{margin-bottom:0}.class-students-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.875rem;color:#374151}.class-students-header .student-count{color:#6b7280;font-weight:400}.class-students-list{display:flex;flex-wrap:wrap;gap:6px}.student-badge{display:inline-block;padding:4px 10px;background:#fff;border:1px solid #D1D5DB;border-radius:12px;font-size:.8rem;color:#374151}.student-badge.more{background:#f3f4f6;color:#6b7280;font-style:italic}.no-students{padding:8px;color:#9ca3af;font-size:.85rem;font-style:italic}.loading-hint{margin-top:8px;padding:8px;color:#6b7280;font-size:.85rem;font-style:italic}.import-student-section{border:1px solid #E5E7EB;border-radius:8px;padding:16px;background:#fafafa}.import-student-section .section-label .hint{font-weight:400;font-size:.85rem;color:#6b7280;margin-left:8px}.import-student-section .section-label{display:block;font-weight:600;color:#374151;margin-bottom:12px}.import-student-section .required{color:#dc2626}.import-student-search{margin-bottom:12px}.import-student-search input{width:100%;padding:10px 14px;border:1px solid #D1D5DB;border-radius:8px;font-size:.95rem}.import-student-search input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.import-student-actions{display:flex;align-items:center;gap:12px;margin-bottom:12px}.import-student-actions .results-count{font-size:.85rem;color:#6b7280}.import-student-list{max-height:250px;overflow-y:auto;background:#fff;border:1px solid #E5E7EB;border-radius:8px}.import-student-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid #F3F4F6;transition:background .15s}.import-student-item:last-child{border-bottom:none}.import-student-item:hover{background:#f9fafb}.import-student-item.selected{background:#ede9fe}.import-student-item input[type=checkbox]{margin-top:2px;accent-color:#8B5CF6;flex-shrink:0}.import-student-item .student-info{flex:1;min-width:0}.import-student-item .student-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.import-student-item .student-name{font-weight:500;color:#1f2937}.import-student-item .student-email{font-size:.85rem;color:#6b7280}.import-student-item .student-org-info{font-size:.8rem;color:#9ca3af;margin-top:2px}.import-student-list .no-results{padding:24px;text-align:center;color:#6b7280}.import-step-basket{display:flex;flex-direction:column;gap:1rem}.basket-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.basket-header .import-description{margin:0;flex:1}.basket-actions{flex-shrink:0}.basket-empty{background:#f9fafb;border:2px dashed #D1D5DB;border-radius:8px;padding:40px 20px;text-align:center;color:#6b7280}.basket-empty p{margin:0 0 8px}.basket-list{border:1px solid #E5E7EB;border-radius:8px;overflow:hidden}.basket-list-header{display:grid;grid-template-columns:60px 1fr 150px 100px 40px;gap:8px;padding:10px 12px;background:#f3f4f6;font-size:.85rem;font-weight:600;color:#374151}.basket-item{display:grid;grid-template-columns:60px 1fr 150px 100px 40px;gap:8px;padding:12px;border-top:1px solid #E5E7EB;align-items:center}.basket-item:hover{background:#f9fafb}.basket-item .col-lesson{display:flex;align-items:center}.basket-item .lesson-number-input{width:50px;padding:4px 6px;border:1px solid #D1D5DB;border-radius:4px;font-size:.9rem;text-align:center}.basket-item .col-title{overflow:hidden}.basket-item .item-title{font-weight:500;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.basket-item .item-chapter{font-size:.8rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.basket-item .col-library{font-size:.85rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.basket-item .category-select{width:100%;padding:4px 6px;border:1px solid #D1D5DB;border-radius:4px;font-size:.85rem;background:#fff}.btn-remove-basket{width:28px;height:28px;border:none;background:transparent;color:#9ca3af;font-size:1.2rem;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-remove-basket:hover{background:#fee2e2;color:#dc2626}.basket-summary{background:#f0f9ff;border:1px solid #BAE6FD;border-radius:8px;padding:12px 16px}.basket-summary p{margin:0;color:#0369a1;font-size:.95rem}.basket-summary strong{color:#0284c7}.embedded-audio-panel{background:#f8fafc;border:1px solid #E2E8F0;border-radius:8px;padding:12px}.embedded-audio-panel>label{display:block;margin-bottom:12px;font-weight:600;color:#475569;font-size:.9rem}.embedded-audio-list{display:flex;flex-direction:column;gap:8px}.embedded-audio-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fff;border:1px solid #E2E8F0;border-radius:6px}.embedded-audio-item .audio-index{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#8b5cf6;color:#fff;border-radius:50%;font-size:.75rem;font-weight:600;flex-shrink:0}.embedded-audio-item .audio-preview{height:32px;flex-shrink:0}.embedded-audio-item .audio-filename{flex:1;font-size:.85rem;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-replace-dropdown{position:relative;flex-shrink:0}.btn-replace-audio{padding:4px 10px;font-size:.75rem;color:#6b7280;background:#f3f4f6;border:1px solid #D1D5DB;border-radius:4px;cursor:pointer;transition:all .15s}.btn-replace-audio:hover{background:#e5e7eb;color:#374151}.btn-replace-audio.active{background:#e5e7eb;border-color:#8b5cf6}.audio-replace-menu{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #E2E8F0;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:200px;overflow:hidden}.audio-replace-menu.show{display:block}.audio-replace-option{display:block;width:100%;padding:10px 14px;font-size:.85rem;color:#374151;background:none;border:none;text-align:left;cursor:pointer;transition:background .15s}.audio-replace-option:hover{background:#f3f4f6}.audio-replace-option:disabled{color:#9ca3af;cursor:not-allowed}.audio-picker-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.audio-picker-modal{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.audio-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #E2E8F0}.audio-picker-header h3{margin:0;font-size:1.1rem;color:#1f2937}.audio-picker-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#6b7280;background:none;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.audio-picker-close:hover{background:#f3f4f6;color:#1f2937}.audio-picker-content{padding:16px;overflow-y:auto;flex:1}.audio-picker-empty{text-align:center;color:#6b7280;padding:32px}.audio-picker-list{display:flex;flex-direction:column;gap:8px}.audio-picker-item{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f9fafb;border:1px solid #E2E8F0;border-radius:8px;cursor:pointer;transition:all .15s}.audio-picker-item:hover{background:#ede9fe;border-color:#8b5cf6}.audio-picker-item.current{background:#f3f4f6;border-color:#d1d5db;cursor:default;opacity:.7}.audio-picker-item-info{width:100%}.audio-picker-filename{display:block;font-size:.9rem;font-weight:500;color:#1f2937;word-break:break-all}.audio-picker-location{display:block;font-size:.75rem;color:#6b7280;margin-top:2px;word-break:break-all}.audio-picker-preview{height:32px;width:100%}.audio-picker-current-badge{padding:2px 8px;font-size:.7rem;color:#6b7280;background:#e5e7eb;border-radius:4px;flex-shrink:0}.audio-picker-search{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid #E2E8F0;background:#f9fafb}.audio-picker-search-input{flex:1;padding:8px 12px;border:1px solid #D1D5DB;border-radius:6px;font-size:.9rem}.audio-picker-search-input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf61a}.audio-picker-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#4b5563;cursor:pointer;white-space:nowrap}.audio-picker-toggle input{accent-color:#8B5CF6}.audio-picker-footer{padding:12px 16px;border-top:1px solid #E2E8F0;background:#f9fafb}.audio-picker-count{font-size:.8rem;color:#6b7280}.audio-picker-location strong{color:#8b5cf6}.custom-groups-compact{position:relative;display:inline-block;margin-bottom:12px}.custom-groups-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#f0fdf4;border:1px solid #BBF7D0;border-radius:8px;font-size:.8rem;color:#15803d;font-weight:600;cursor:pointer;transition:all .15s}.custom-groups-toggle:hover{background:#dcfce7;border-color:#86efac}.toggle-arrow{font-size:.65rem;color:#6b7280}.custom-groups-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:#fff;border:1px solid #E2E8F0;border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:50;padding:4px}.custom-groups-empty{padding:8px 12px;font-size:.8rem;color:#9ca3af}.custom-group-row{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:6px;transition:background .1s}.custom-group-row:hover{background:#f3f4f6}.custom-group-row-name{flex:1;font-size:.85rem;color:#1f2937}.custom-group-row-btn{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;font-size:.85rem;padding:2px 4px;color:#9ca3af;border-radius:4px;transition:all .1s}.custom-group-row-btn:hover{color:#2563eb;background:#eff6ff}.custom-group-row-btn.delete:hover{color:#dc2626;background:#fef2f2}.custom-group-row-add{display:block;width:100%;text-align:left;border:none;background:transparent;cursor:pointer;padding:8px 10px;font-size:.8rem;color:#15803d;font-weight:500;border-top:1px solid #F3F4F6;margin-top:2px;border-radius:0 0 6px 6px;transition:background .1s}.custom-group-row-add:hover{background:#f0fdf4}.import-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.import-section h4{margin:0 0 .5rem;font-size:.95rem;color:#374151}.import-chapter-select,.import-chapter-input{width:100%;padding:.5rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem}.import-chapter-input{margin-top:.5rem}.import-hint{margin:.5rem 0 0;font-size:.82rem;color:#6b7280;line-height:1.5}.chapter-bulk-add-btn{margin-left:auto;padding:.2rem .6rem;border:1px solid #2563eb;border-radius:4px;background:#fff;color:#2563eb;font-size:.8rem;cursor:pointer;white-space:nowrap}.chapter-bulk-add-btn:hover{background:#eff6ff}.shared-page{min-height:100vh;display:flex;flex-direction:column;background:#f9fafb}.shared-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#6b7280}.shared-loading .loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#4a90a4;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shared-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.shared-error .error-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fee2e2;color:#dc2626;border-radius:50%;font-size:24px;font-weight:700}.shared-error h2{margin:0;font-size:20px;color:#111827}.shared-error p{margin:0;color:#6b7280;max-width:400px}.shared-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #e5e7eb}.shared-badge{font-size:13px;font-weight:600;color:#4a90a4;background:#e0f2fe;padding:6px 12px;border-radius:16px}.shared-meta{display:flex;gap:8px}.lesson-badge,.category-badge{font-size:12px;font-weight:500;padding:4px 10px;border-radius:12px}.lesson-badge{background:#f3f4f6;color:#374151}.category-badge{background:#dbeafe;color:#1d4ed8}.check-progress{font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;background:#d1fae5;color:#059669}.shared-body{flex:1;display:flex;overflow:hidden}.shared-sidebar{width:var(--sidebar-width, 280px);min-width:var(--sidebar-width, 280px);background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:width .3s ease,min-width .3s ease}.shared-sidebar.collapsed{width:40px;min-width:40px}.shared-sidebar.resizing{transition:none;-webkit-user-select:none;user-select:none}.sidebar-resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;z-index:11;touch-action:none}.sidebar-resizer:hover,.sidebar-resizer:focus-visible,.shared-sidebar.resizing .sidebar-resizer{background:#3b82f659;outline:none}.sidebar-toggle{position:absolute;top:12px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;font-size:10px;color:#6b7280;transition:background .15s,color .15s;z-index:10}.sidebar-toggle:hover{background:#e5e7eb;color:#374151}.shared-sidebar.collapsed .sidebar-toggle{position:static;margin:8px auto}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:16px 40px 16px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.sidebar-header h3{margin:0;font-size:14px;font-weight:600;color:#374151}.material-count{font-size:12px;color:#6b7280;background:#e5e7eb;padding:2px 8px;border-radius:10px}.shared-sidebar .material-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.shared-sidebar .material-item{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .15s,opacity .15s}.shared-sidebar .material-item.checked{opacity:.6}.shared-sidebar .material-item.checked .material-title{text-decoration:line-through;color:#9ca3af}.material-check{width:16px;height:16px;min-width:16px;accent-color:#4a90a4;cursor:pointer}.shared-sidebar .material-item:hover{background:#f9fafb}.shared-sidebar .material-item.active{background:#e0f2fe;border-left:3px solid #4a90a4}.shared-sidebar .material-lesson{font-size:11px;font-weight:600;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap}.shared-sidebar .material-item.active .material-lesson{background:#4a90a4;color:#fff}.shared-sidebar .material-title{font-size:13px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-sidebar .chapter-group{list-style:none;margin-bottom:.25rem}.shared-sidebar .chapter-group-header{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#4b5563;padding:8px 12px;background:#f3f4f6;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background .15s}.shared-sidebar .chapter-group-header:hover{background:#e5e7eb}.shared-sidebar .chapter-toggle{font-size:10px;color:#9ca3af}.shared-sidebar .chapter-count{margin-left:auto;font-size:11px;font-weight:400;color:#9ca3af}.shared-sidebar .chapter-lessons{list-style:none;margin:0;padding:0}.shared-content{flex:1;padding:24px;overflow-y:auto;box-sizing:border-box}.shared-page:not(.with-sidebar) .shared-content{max-width:1200px;margin:0 auto;width:100%}.content-wrapper{background:#fff;border-radius:12px;padding:32px;box-shadow:0 1px 3px #0000001a}.shared-footer{padding:16px 24px;text-align:center;background:#f3f4f6;border-top:1px solid #e5e7eb}.shared-footer p{margin:0;font-size:13px;color:#6b7280}.memo-panel{width:0;min-width:0;overflow:hidden;background:#fff;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;transition:width .25s ease,min-width .25s ease}.memo-panel.open{width:320px;min-width:320px}.memo-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.memo-panel-header h3{margin:0;font-size:14px;font-weight:600;color:#374151}.memo-panel-close{background:none;border:none;font-size:20px;color:#9ca3af;cursor:pointer;line-height:1;padding:0 4px}.memo-panel-close:hover{color:#374151}.memo-panel-textarea{flex:1;padding:16px;border:none;font-size:14px;line-height:1.7;resize:none;font-family:inherit;color:#374151;background:#fff;outline:none}.memo-panel-textarea::placeholder{color:#9ca3af}.memo-panel-hint{margin:0;padding:12px 16px;font-size:11px;color:#9ca3af;border-top:1px solid #f3f4f6;background:#f9fafb}.memo-fab{position:fixed;bottom:24px;right:24px;width:48px;height:48px;border-radius:50%;background:#4a90a4;color:#fff;border:none;font-size:20px;cursor:pointer;box-shadow:0 2px 8px #0003;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;z-index:100}.memo-fab:hover{background:#3d7a8c;transform:scale(1.05)}.memo-fab.has-memo{box-shadow:0 2px 8px #4a90a466}.memo-fab.has-memo:after{content:"";position:absolute;top:6px;right:6px;width:10px;height:10px;background:#f59e0b;border-radius:50%;border:2px solid white}@media(max-width:768px){.shared-header{flex-direction:column;gap:12px;align-items:flex-start}.shared-body{flex-direction:column}.sidebar-resizer{display:none}.shared-sidebar{width:100%;min-width:unset;max-height:200px;border-right:none;border-bottom:1px solid #e5e7eb}.shared-content{padding:16px}.content-wrapper{padding:20px}.print-btn{display:none}.memo-panel.open{position:fixed;top:0;right:0;bottom:0;width:85vw;min-width:unset;z-index:200;box-shadow:-4px 0 16px #00000026}}.print-btn{font-size:12px;font-weight:500;padding:4px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;transition:background .15s,border-color .15s}.print-btn:hover{background:#f3f4f6;border-color:#9ca3af}.print-btn-all{border-color:#4a90a4;color:#4a90a4}.print-btn-all:hover{background:#e0f2fe}.print-all-container{position:absolute;left:-9999px;top:0;width:210mm}.print-page-break{page-break-after:always;break-after:page}.print-chapter-title{font-size:13px;font-weight:600;color:#6b7280;margin-bottom:4px}@media print{.shared-header,.shared-sidebar,.shared-footer,.memo-panel,.memo-fab,.print-btn,.audio-section,.pdf-section{display:none!important}.shared-page{min-height:auto;background:#fff}.shared-body{display:block;overflow:visible}.shared-content{padding:0;overflow:visible}.content-wrapper{box-shadow:none;padding:0;border-radius:0}.print-all-container{position:static;left:auto;width:auto}.print-all-container .material-title-main{font-size:18px;margin-top:0}.print-all-container .print-chapter-title{font-size:14px;color:#374151;border-bottom:1px solid #e5e7eb;padding-bottom:4px;margin-bottom:8px}.shared-page:has(.print-all-container) .shared-content{display:none!important}img{max-width:100%!important}.task-checkbox{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.account-bar+.shared-page{min-height:calc(100vh - 42px)}.shared-header-lead{display:flex;align-items:center;gap:12px;min-width:0}.shared-back{font-size:13px;color:#4b5563;text-decoration:none;white-space:nowrap}.shared-back:hover{text-decoration:underline}.memo-panel-label{padding:10px 16px 0;font-size:12px;font-weight:600;color:#4b5563}.memo-panel-extra{max-height:50%;overflow-y:auto;border-top:1px solid #e5e7eb;padding:4px 16px 72px}.memo-others{padding:12px 0}.memo-others+.memo-others{border-top:1px solid #f3f4f6}.memo-others__title{font-size:12px;font-weight:600;color:#4b5563;margin-bottom:8px}.memo-others__item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;margin-bottom:8px}.memo-others__who{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:600;color:#374151}.memo-others__done{font-weight:500;font-size:11px;padding:1px 8px;border-radius:10px;background:#e5e7eb;color:#4b5563;white-space:nowrap}.memo-others__done.is-done{background:#d1fae5;color:#065f46}.memo-others__text{margin:6px 0 0;font-size:13px;line-height:1.6;color:#374151;white-space:pre-wrap;word-break:break-word}.memo-others__empty{margin:4px 0 0;font-size:12px;color:#9ca3af}.import-flow-hint{display:flex;align-items:center;gap:6px;margin-top:12px;padding:10px 12px;background:#f0fff4;border:1px solid #c6f6d5;border-radius:8px;flex-wrap:wrap}.import-flow-step{display:flex;align-items:center;gap:6px;font-size:.85rem;color:#2d3748}.import-flow-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#38a169;color:#fff;font-size:.75rem;font-weight:600;flex-shrink:0}.import-flow-arrow{color:#a0aec0;font-size:.9rem}.import-preview-step{display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:400px}.import-preview-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e2e8f0;margin-bottom:12px;flex-shrink:0}.import-file-info{display:flex;align-items:center;gap:12px}.import-file-name{font-weight:600;color:#1a202c}.import-stats{font-size:.85rem;color:#718096;background:#f7fafc;padding:2px 8px;border-radius:4px}.import-preview-content{flex:1;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.import-markdown-preview{max-width:800px}.import-diff{font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:.85rem}.diff-view{line-height:1.5}.diff-line{padding:1px 8px;white-space:pre-wrap;word-break:break-all}.diff-prefix{display:inline-block;width:16px;font-weight:700;-webkit-user-select:none;user-select:none}.diff-same{color:#4a5568}.diff-removed{background:#fed7d7;color:#9b2c2c}.diff-added{background:#c6f6d5;color:#276749}.diff-ellipsis{color:#a0aec0;text-align:center;padding:2px 8px;font-style:italic}.btn-toggle{padding:4px 12px;border:1px solid #cbd5e0;border-radius:6px;background:#fff;color:#4a5568;cursor:pointer;font-size:.85rem;transition:all .15s}.btn-toggle:hover{border-color:#4299e1;color:#2b6cb0}.btn-toggle.active{background:#ebf8ff;border-color:#4299e1;color:#2b6cb0}.import-split-step{display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:400px}.import-split-controls{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e2e8f0;margin-bottom:12px;flex-shrink:0;flex-wrap:wrap;gap:8px}.split-level-selector{display:flex;align-items:center;gap:8px}.split-level-selector label{font-size:.85rem;color:#718096;font-weight:500}.btn-split-level{padding:4px 10px;border:1px solid #cbd5e0;border-radius:6px;background:#fff;color:#4a5568;cursor:pointer;font-size:.8rem;font-family:monospace;transition:all .15s}.btn-split-level:hover{border-color:#4299e1}.btn-split-level.active{background:#4299e1;border-color:#4299e1;color:#fff}.split-select-all{display:flex;align-items:center;gap:8px}.split-count{font-size:.85rem;color:#718096}.import-split-layout{display:flex;gap:16px;flex:1;overflow:hidden}.import-section-list{width:360px;min-width:300px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}.import-section-item{padding:10px 12px;border-bottom:1px solid #edf2f7;transition:background .1s}.import-section-item:last-child{border-bottom:none}.import-section-item:hover{background:#f7fafc}.import-section-item.selected{background:#ebf8ff}.import-section-item.previewing{border-left:3px solid #4299e1}.import-section-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.import-section-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.import-section-title{font-size:.9rem;font-weight:500;color:#2d3748;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-section-meta{display:flex;align-items:center;justify-content:space-between;margin-top:4px;padding-left:24px}.import-section-size{font-size:.8rem;color:#a0aec0}.btn-section-preview{padding:2px 8px;border:1px solid #e2e8f0;border-radius:4px;background:#fff;color:#718096;cursor:pointer;font-size:.75rem;transition:all .15s}.btn-section-preview:hover{border-color:#4299e1;color:#4299e1}.import-section-preview{flex:1;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.import-section-preview-title{font-size:1.1rem;font-weight:600;color:#1a202c;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.import-section-preview-content{max-width:800px}.import-section-preview-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#a0aec0;font-size:.9rem}.material-library-page{min-height:100vh;background:#f5f5f5}.library-content,.library-detail-content{max-width:1200px;margin:0 auto;padding:1.5rem}.filter-bar{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-size:.85rem;color:#666}.filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.result-count{font-size:.85rem;color:#666;margin-bottom:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{margin:0;font-size:1.5rem}.library-grid{display:flex;flex-direction:column;gap:0}.library-card{background:#fff;padding:10px 16px;border-bottom:1px solid #edf2f7;display:flex;align-items:center;gap:12px;transition:background .1s}.library-card:hover{background:#f7fafc}.library-card-header{display:flex;align-items:center;gap:6px;flex-shrink:0;min-width:100px}.library-type-icon{font-size:1rem;display:inline-flex;align-items:center}.library-type-label{font-size:.7rem;background:#edf2f7;padding:1px 6px;border-radius:3px;color:#718096;white-space:nowrap}.lock-badge{font-size:.75rem;color:#a0aec0;display:inline-flex;align-items:center}.library-card-body{flex:1;min-width:0;display:flex;align-items:center;gap:12px}.library-title{margin:0;font-size:.95rem;cursor:pointer;color:#2b6cb0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.library-title:hover{text-decoration:underline;color:#1a56a0}.library-description{margin:0;font-size:.8rem;color:#a0aec0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}.library-source{font-size:.7rem;color:#a0aec0;white-space:nowrap}.library-card-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}.detail-header{margin-bottom:1.5rem}.back-to-admin{margin-bottom:.5rem}.back-btn{background:none;border:none;color:#1976d2;cursor:pointer;font-size:.9rem;padding:.5rem 0;margin-bottom:.5rem}.back-btn:hover{text-decoration:underline}.detail-title-row{display:flex;align-items:center;gap:.75rem}.detail-title-row h2{margin:0}.tree-view{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.tree-actions{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.expand-collapse-buttons{display:flex;gap:.5rem;margin-left:auto}.btn-expand-collapse{padding:.25rem .75rem;font-size:.8rem;color:#6b7280;background:#f3f4f6;border:1px solid #D1D5DB;border-radius:4px;cursor:pointer;transition:all .15s}.btn-expand-collapse:hover{background:#e5e7eb;color:#374151}.empty-message{color:#666;font-style:italic;padding:2rem;text-align:center}.chapter-list{display:flex;flex-direction:column;gap:.5rem}.chapter-item{border:1px solid #e0e0e0;border-radius:6px;overflow:hidden}.chapter-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f8f9fa;cursor:pointer;transition:background .2s}.chapter-header:hover{background:#e9ecef}.expand-icon{font-size:.7rem;color:#666;width:1rem}.chapter-number{font-weight:600;color:#1976d2;min-width:3rem}.chapter-title{flex:1;font-weight:500}.lesson-count{font-size:.8rem;color:#888}.chapter-actions{display:flex;gap:.25rem;margin-left:auto}.lib-lesson-list{padding:.5rem 1rem 1rem 2.5rem;border-top:1px solid #e0e0e0}.lib-lesson-item{border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem;overflow:hidden;transition:box-shadow .2s}.lib-lesson-item:hover{box-shadow:0 1px 3px #0000001a}.lesson-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#fafafa;cursor:pointer;transition:background .2s}.lesson-header:hover{background:#f0f0f0}.lib-lesson-number{color:#888;font-size:.85rem;min-width:2rem}.lib-lesson-title{flex:1;font-weight:500}.lib-lesson-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.lesson-header:hover .lib-lesson-actions{opacity:1}.lesson-content{display:block;width:100%;padding:1rem;background:#fff;border-top:1px solid #e0e0e0}.lib-lesson-item{display:flex;flex-direction:column}.markdown-body.library-inline{box-shadow:none;border-radius:0;padding:8px 0;max-width:none;width:100%;margin:0}.lesson-content-empty{color:#999;font-style:italic;padding:1rem;text-align:center}.lesson-preview-panel{margin-top:.5rem;border:2px solid #2563eb;border-radius:8px;background:#fff;overflow:hidden}.lesson-preview-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#eff6ff;border-bottom:1px solid #bfdbfe}.lesson-preview-header h3{margin:0;font-size:1rem;color:#1e40af}.lesson-preview-close{background:none;border:none;font-size:1.2rem;color:#6b7280;cursor:pointer;padding:.25rem}.lesson-preview-close:hover{color:#1f2937}.lesson-preview-content{padding:1.5rem;max-height:70vh;overflow-y:auto}.lib-lesson-item-active{border-color:#2563eb;background:#eff6ff}.lib-lesson-item-active .lesson-header{background:#dbeafe}.lesson-audio,.lesson-pdf{margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0}.pdf-link{display:inline-flex;align-items:center;gap:.5rem;color:#1976d2;text-decoration:none;padding:.5rem 1rem;border:1px solid #1976d2;border-radius:4px;transition:all .2s}.pdf-link:hover{background:#e3f2fd;text-decoration:none}.add-lesson-btn{margin-top:.5rem;background:none;border:1px dashed #ccc;color:#666;padding:.5rem;border-radius:4px;cursor:pointer;width:100%;font-size:.85rem;transition:all .2s}.add-lesson-btn:hover{border-color:#1976d2;color:#1976d2;background:#e3f2fd}.badge{font-size:.7rem;padding:.15rem .4rem;border-radius:3px;font-weight:500}.badge-audio{background:#e8f5e9;color:#2e7d32}.badge-pdf{background:#ffebee;color:#c62828}.badge-category-feedback{background:#fff3e0;color:#e65100}.badge-category-expression{background:#e3f2fd;color:#1565c0}.badge-category-homework{background:#fce4ec;color:#c2185b}.badge-category-guide{background:#f3e5f5;color:#7b1fa2}.btn-action-compact{background:none;border:1px solid #ddd;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-action-compact:hover{background:#f5f5f5;border-color:#bbb}.btn-action-compact.btn-danger:hover{background:#ffebee;border-color:#ef5350}.btn-action-compact:disabled{opacity:.3;cursor:not-allowed}.loading,.error-message{text-align:center;padding:2rem;color:#666}.error-message{color:#d32f2f}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-weight:500;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.form-group textarea{resize:vertical}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-group label{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto}.modal-expand-btn{background:none;border:1px solid #ddd;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:1rem;line-height:1}.modal-expand-btn:hover{background:#f5f5f5}.upload-area{border:2px dashed #ccc;border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:all .2s;background:#fafafa;margin-bottom:1rem}.upload-area:hover{border-color:#1976d2;background:#f0f7ff}.upload-area.drag-over{border-color:#1976d2;background:#e3f2fd}.upload-icon{font-size:2.5rem;margin-bottom:.5rem}.upload-hint{font-size:.85rem;color:#888}.upload-format{font-size:.75rem;color:#aaa;margin-top:.5rem}.parsed-files{margin-top:1rem}.parsed-files h4{margin-bottom:.5rem;font-size:.9rem}.parsed-file{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f5f5f5;border-radius:4px;margin-bottom:.25rem}.parsed-file.error{background:#ffebee}.file-name{font-weight:500;flex:1}.file-info{font-size:.85rem;color:#666}.file-error{font-size:.85rem;color:#d32f2f}.btn-remove{background:none;border:none;font-size:1rem;cursor:pointer;color:#999;padding:.25rem;line-height:1}.btn-remove:hover{color:#d32f2f}.bulk-upload-info{background:#f5f5f5;border-radius:6px;padding:1rem;margin-bottom:1rem}.bulk-upload-info p{margin:0 0 .5rem}.bulk-upload-info p:last-child{margin-bottom:0}.bulk-upload-info code{background:#e0e0e0;padding:.15rem .4rem;border-radius:3px;font-size:.85rem}.bulk-upload-hint{font-size:.85rem;color:#666}.form-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.form-label-row label{margin-bottom:0}.btn-ai-edit{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-ai-edit:hover{transform:translateY(-1px);box-shadow:0 2px 8px #667eea66}.btn-ai-edit:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:768px){.library-content,.library-detail-content{padding:1rem}.filter-bar{flex-direction:column}.search-input{min-width:auto}.form-row{flex-direction:column}.chapter-actions,.lib-lesson-actions{opacity:1}.library-card{flex-wrap:wrap}.library-card-body{flex-basis:100%;order:1}}.manual-page{min-height:100vh;background:#f9fafb}.manual-header{background:linear-gradient(to right,#2563eb,#4f46e5);color:#fff;box-shadow:0 4px 6px -1px #0000001a}.manual-header-inner{max-width:1280px;margin:0 auto;padding:24px 16px}.manual-header-content{display:flex;align-items:center;justify-content:space-between}.manual-header h1{font-size:1.875rem;font-weight:700;margin:0}.manual-header-subtitle{color:#bfdbfe;margin-top:4px}.manual-header-btn{background:#fff;color:#2563eb;padding:8px 24px;border-radius:8px;font-weight:600;border:none;cursor:pointer;box-shadow:0 4px 6px -1px #0000001a;transition:background .2s;text-decoration:none}.manual-header-btn:hover{background:#eff6ff}.manual-container{max-width:1280px;margin:0 auto;padding:32px 16px}.manual-layout{display:flex;gap:32px}.manual-sidebar{width:256px;flex-shrink:0}.manual-sidebar-inner{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:16px;position:sticky;top:32px}.manual-sidebar h2{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px}.manual-nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.manual-nav-btn{width:100%;text-align:left;padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:12px;border:none;background:transparent;cursor:pointer;font-size:.95rem;color:#4b5563;transition:all .2s}.manual-nav-btn:hover{background:#f3f4f6}.manual-nav-btn.active{background:#eff6ff;color:#1d4ed8;font-weight:500}.manual-nav-btn .icon{font-size:1.25rem}.manual-quick-links{margin-top:32px;padding-top:24px;border-top:1px solid #E5E7EB}.manual-quick-links h3{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px}.manual-quick-links a{display:block;color:#2563eb;font-size:.875rem;text-decoration:none;margin-bottom:8px}.manual-quick-links a:hover{color:#1d4ed8}.manual-main{flex:1;min-width:0}.manual-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:32px}.manual-section{display:flex;flex-direction:column;gap:32px}.manual-section h2{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0 0 16px}.manual-section p{color:#4b5563;line-height:1.7;margin:0}.feature-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media(max-width:768px){.feature-cards-grid{grid-template-columns:1fr}}.feature-card{display:block;background:#fff;border:1px solid #E5E7EB;border-radius:12px;padding:24px;text-decoration:none;transition:all .2s}.feature-card:hover{box-shadow:0 10px 15px -3px #0000001a;border-color:#93c5fd}.feature-card .icon{font-size:2.5rem;margin-bottom:16px}.feature-card h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 8px}.feature-card p{color:#4b5563;font-size:.875rem;margin:0}.info-box{background:#eff6ff;border-radius:8px;padding:24px}.info-box h3{font-size:1.125rem;font-weight:600;color:#1e40af;margin:0 0 12px}.info-box-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(max-width:768px){.info-box-grid{grid-template-columns:1fr}}.info-box-item{display:flex;align-items:center;gap:8px;color:#1d4ed8}.info-box-item .check{color:#10b981}.steps-box{background:#f9fafb;border-radius:8px;padding:24px}.steps-box h3{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 16px}.steps-list{display:flex;flex-direction:column;gap:16px}.step-item{display:flex;gap:16px}.step-number{flex-shrink:0;width:32px;height:32px;background:#2563eb;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.step-content h4{font-weight:500;color:#1f2937;margin:0}.step-content p{color:#4b5563;font-size:.875rem;margin:4px 0 0}.step-content a{color:#2563eb}.warning-box{background:#fffbeb;border-left:4px solid #F59E0B;padding:16px;border-radius:0 8px 8px 0;display:flex;gap:12px}.warning-box .icon{color:#f59e0b}.warning-box h4{font-weight:500;color:#92400e;margin:0}.warning-box p{color:#b45309;font-size:.875rem;margin:4px 0 0}.admin-tab-section{border:1px solid #E5E7EB;border-radius:8px;overflow:hidden}.admin-tab-header{background:linear-gradient(to right,#eff6ff,#eef2ff);padding:16px 24px;border-bottom:1px solid #E5E7EB;display:flex;align-items:center;gap:12px}.admin-tab-number{flex-shrink:0;width:32px;height:32px;background:#2563eb;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem}.admin-tab-title h4{font-weight:600;color:#1f2937;margin:0}.admin-tab-title p{color:#4b5563;font-size:.875rem;margin:0}.admin-tab-content{padding:16px 24px}.admin-tab-content h5{font-weight:500;color:#1f2937;margin:0 0 8px}.admin-tab-content ol,.admin-tab-content ul{color:#4b5563;padding-left:24px;margin:0 0 16px}.admin-tab-content li{margin-bottom:4px}.admin-tab-content code{background:#f3f4f6;padding:2px 8px;border-radius:4px;font-size:.875rem}.admin-tab-content a{color:#2563eb;text-decoration:none;font-weight:500;font-size:.875rem}.admin-tab-content a:hover{color:#1d4ed8}.purple-info-box{background:#f5f3ff;border-radius:8px;padding:16px;margin-top:16px}.purple-info-box p{color:#6d28d9;font-size:.875rem;margin:0}.purple-info-box strong{font-weight:600}.feature-box{background:#f9fafb;border-radius:8px;padding:24px}.feature-box h4{font-weight:600;color:#1f2937;margin:0 0 12px}.feature-box ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.feature-box li{display:flex;align-items:flex-start;gap:8px;color:#4b5563;font-size:.875rem}.feature-box .check{color:#10b981;margin-top:2px}.feature-boxes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}@media(max-width:768px){.feature-boxes-grid{grid-template-columns:1fr}}.blue-info-box{background:#eff6ff;border-radius:8px;padding:24px}.blue-info-box h4{font-weight:600;color:#1e40af;margin:0 0 12px}.blue-info-box p{color:#1d4ed8;font-size:.875rem;margin:0}.section-link{display:inline-flex;align-items:center;color:#2563eb;font-weight:500;text-decoration:none;margin-bottom:8px}.section-link:hover{color:#1d4ed8}.shortcuts-table-wrapper{background:#f9fafb;border-radius:8px;overflow:hidden}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table thead{background:#f3f4f6}.shortcuts-table th{padding:12px 24px;text-align:left;font-size:.875rem;font-weight:600;color:#374151}.shortcuts-table tbody tr{border-top:1px solid #E5E7EB}.shortcuts-table tbody tr:hover{background:#f9fafb}.shortcuts-table td{padding:16px 24px}.kbd{display:inline-block;padding:4px 8px;background:#fff;border:1px solid #D1D5DB;border-radius:4px;box-shadow:0 1px 2px #0000000d;font-size:.875rem;font-family:monospace}.kbd-separator{margin:0 4px;color:#9ca3af}.faq-list{display:flex;flex-direction:column;gap:16px}.faq-item{border:1px solid #E5E7EB;border-radius:8px;overflow:hidden}.faq-question{background:#f9fafb;padding:16px 24px}.faq-question h4{font-weight:600;color:#1f2937;margin:0;display:flex;align-items:center;gap:8px}.faq-question .q-mark{color:#2563eb}.faq-answer{padding:16px 24px}.faq-answer p{color:#4b5563;margin:0;display:flex;align-items:flex-start;gap:8px}.faq-answer .a-mark{color:#10b981;font-weight:600}.faq-contact{background:#f3f4f6;border-radius:8px;padding:24px;text-align:center}.faq-contact p{color:#4b5563;margin:0}.manual-footer{background:#1f2937;color:#9ca3af;margin-top:64px}.manual-footer-inner{max-width:1280px;margin:0 auto;padding:32px 16px;text-align:center}.manual-footer p{margin:0}@media(max-width:1024px){.manual-layout{flex-direction:column}.manual-sidebar{width:100%}.manual-sidebar-inner{position:static}}.share-links-page{min-height:100vh;background:#f9fafb}.slp-container{max-width:1200px;margin:0 auto;padding:24px 16px}.slp-header{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}.slp-header h1{font-size:1.4rem;margin:0}.slp-summary{color:#6b7280;font-size:.9rem}.slp-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.slp-search{flex:1;min-width:220px;padding:8px 12px;border:1px solid #D1D5DB;border-radius:6px;font-size:.9rem}.slp-toolbar select{padding:8px;border:1px solid #D1D5DB;border-radius:6px}.slp-bulk{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:.85rem;color:#6b7280}.slp-table-wrap{overflow-x:auto;background:#fff;border:1px solid #E5E7EB;border-radius:8px}.slp-table{width:100%;border-collapse:collapse;font-size:.85rem}.slp-table th,.slp-table td{padding:8px 10px;border-bottom:1px solid #F3F4F6;text-align:left;white-space:nowrap}.slp-table th{background:#f9fafb;font-weight:600;color:#374151;position:sticky;top:0}.slp-name{max-width:340px;overflow:hidden;text-overflow:ellipsis}.slp-num{text-align:right}.slp-inactive{opacity:.55}.slp-kind{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem}.slp-kind-follow{background:#d1fae5;color:#065f46}.slp-kind-batch{background:#dbeafe;color:#1e40af}.slp-kind-material{background:#fef3c7;color:#92400e}.slp-kind-orphan{background:#fee2e2;color:#991b1b}.slp-kind-chapter{background:#ede9fe;color:#5b21b6}.slp-audience-teacher{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;background:#dbeafe;color:#1e40af;white-space:nowrap}.slp-status-active{color:#059669;font-weight:600}.slp-status-inactive{color:#9ca3af}.slp-actions{display:flex;gap:6px}.slp-actions button{padding:4px 8px;border:1px solid #D1D5DB;background:#fff;border-radius:4px;cursor:pointer;font-size:.78rem}.slp-actions button:hover{background:#f3f4f6}.slp-actions button.slp-danger{color:#dc2626;border-color:#fca5a5}.slp-actions button.slp-danger:hover{background:#fef2f2}.slp-empty{padding:32px;text-align:center;color:#9ca3af}.slp-error{color:#dc2626}.slp-derived{display:block;font-size:11px;font-weight:400;color:#9ca3af;margin-top:2px}.my-groups{max-width:880px;margin:0 auto;padding:2rem 1rem 3rem}.my-groups__header h1{margin:0 0 .25rem;font-size:1.5rem;color:#1e3a8a}.my-groups__hint,.my-groups__loading,.my-groups__empty-sub{color:#6b7280;font-size:.92rem}.my-groups__error{color:#991b1b;background:#fef2f2;border-left:4px solid #dc2626;padding:.7em 1em}.my-groups__empty{border:1px dashed #d1d5db;border-radius:8px;padding:1.5rem;margin-top:1.5rem;background:#f9fafb}.my-groups__list{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.75rem}.my-groups__card{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border:1px solid #e0e0e0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:box-shadow .15s,border-color .15s}.my-groups__card:hover{border-color:#2563eb;box-shadow:0 2px 8px #2563eb1f}.my-groups__name{font-weight:600;color:#111827}.my-groups__badge{margin-left:.5rem;padding:.1rem .45rem;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:.72rem;font-weight:600;white-space:nowrap}.my-groups__count{color:#6b7280;font-size:.85rem;white-space:nowrap}.my-group__header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;background:#fff;position:sticky;top:0;z-index:5}.my-group__back{border:1px solid #d1d5db;border-radius:6px;background:#fff;padding:.3rem .7rem;cursor:pointer;font-size:.85rem;white-space:nowrap}.my-group__title{margin:0;font-size:1.05rem;color:#1e3a8a}.my-group__body{display:flex;align-items:flex-start;gap:1.5rem;padding:1rem}.my-group__nav{flex:0 0 260px;max-height:calc(100vh - 120px);overflow-y:auto;border-right:1px solid #e5e7eb;padding-right:1rem}.my-group__chapter-title{margin:1rem 0 .4rem;font-size:.8rem;font-weight:700;color:#6b7280}.my-group__nav ul{list-style:none;margin:0;padding:0}.my-group__item{width:100%;display:flex;gap:.5rem;align-items:baseline;padding:.45rem .6rem;border:none;border-radius:6px;background:transparent;cursor:pointer;text-align:left;font-size:.9rem}.my-group__item:hover{background:#f3f4f6}.my-group__item.is-active{background:#eff6ff;color:#1d4ed8;font-weight:600}.my-group__item-no{color:#9ca3af;font-size:.78rem;white-space:nowrap}.my-group__content{flex:1;min-width:0}.my-group__content h2{margin-top:0;color:#1e3a8a}.my-group__pdf{margin-top:1.5rem}@media(max-width:760px){.my-group__body{flex-direction:column}.my-group__nav{flex:none;width:100%;max-height:240px;border-right:none;border-bottom:1px solid #e5e7eb;padding-right:0;padding-bottom:.5rem}}.my-groups__library{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;margin-top:1.25rem;padding:.9rem 1.25rem;border:1px solid #c7d2fe;border-radius:10px;background:#eef2ff;cursor:pointer;text-align:left}.my-groups__library:hover{border-color:#4f46e5}.my-groups__library-title{font-weight:700;color:#3730a3}.my-groups__library-sub{font-size:.85rem;color:#4b5563}.teacher-site{max-width:1200px;margin:0 auto;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#222}.teacher-site__header{position:relative;border-bottom:1px solid #e5e5e5;padding-bottom:16px;margin-bottom:20px}.teacher-site__logo{position:absolute;top:0;right:0;height:42px;width:auto;box-sizing:border-box;padding:7px 12px;border-radius:6px;background:#1a3a5c}.teacher-site__header h1{font-size:1.6rem;margin:0 0 8px;color:#1a3a5c}.teacher-site__hint{color:#666;margin:4px 0 0;font-size:.95rem}.teacher-site__back{display:inline-block;margin-bottom:8px;color:#1a73e8;text-decoration:none;font-size:.9rem}.teacher-site__back:hover{text-decoration:underline}.teacher-site__level{display:inline-block;background:#1a3a5c;color:#fff;padding:2px 10px;border-radius:12px;font-size:.8rem;margin-right:8px}.teacher-site__filters{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.teacher-site__search{width:100%;max-width:520px;padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:1rem;box-sizing:border-box}.teacher-site__chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.teacher-site__chips-label{font-size:.85rem;color:#666;margin-right:4px}.teacher-site__chip{border:1px solid #ccc;background:#fff;padding:4px 12px;border-radius:16px;font-size:.85rem;cursor:pointer;transition:all .15s}.teacher-site__chip:hover{background:#f0f4ff;border-color:#1a73e8}.teacher-site__chip.is-active{background:#1a3a5c;color:#fff;border-color:#1a3a5c}.teacher-site__chip--starter{border-color:#d97706;color:#d97706;font-weight:600}.teacher-site__chip--starter:hover{background:#fff7ed;border-color:#d97706;color:#d97706}.teacher-site__chip--starter.is-active{background:#d97706;color:#fff;border-color:#d97706}.teacher-site__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.teacher-site__empty{color:#888;text-align:center;padding:40px 0}.teacher-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;text-decoration:none;color:inherit;transition:all .15s}.teacher-card__format-badge{position:absolute;top:10px;right:10px;background:#d93025;color:#fff;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.5px}.teacher-card:hover{border-color:#1a73e8;box-shadow:0 2px 8px #1a73e81f;transform:translateY(-1px)}.teacher-card__title{font-size:1.05rem;font-weight:600;color:#1a3a5c}.teacher-card__level{display:inline-block;background:#eef3fa;color:#1a3a5c;padding:2px 8px;border-radius:10px;font-size:.75rem;align-self:flex-start}.teacher-card__desc{font-size:.9rem;color:#555;margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.teacher-card__tags{display:flex;flex-wrap:wrap;gap:4px}.teacher-card__tag{background:#f5f5f5;color:#555;padding:1px 8px;border-radius:8px;font-size:.75rem}.teacher-library{display:grid;grid-template-columns:260px 1fr;gap:20px;min-height:60vh}.teacher-library__toc{border-right:1px solid #e5e5e5;padding-right:12px;overflow-y:auto;max-height:calc(100vh - 220px)}.teacher-library__chapter{margin-bottom:18px}.teacher-library__chapter-title{font-weight:600;color:#1a3a5c;font-size:.95rem;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #f0f0f0}.teacher-library__list{list-style:none;padding:0;margin:0}.teacher-library__item{width:100%;text-align:left;background:none;border:none;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:.9rem;color:#333}.teacher-library__item:hover{background:#f0f4ff}.teacher-library__item.is-active{background:#1a3a5c;color:#fff}.teacher-library__main{min-width:0}.teacher-library__main-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.teacher-library__main-header h2{margin:0;font-size:1.25rem;color:#1a3a5c}.teacher-library__share{background:#1a73e8;color:#fff;border:none;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:.85rem}.teacher-library__share:hover{background:#1664c8}.teacher-site__toast{position:fixed;bottom:24px;right:24px;background:#1a3a5c;color:#fff;padding:10px 16px;border-radius:6px;box-shadow:0 2px 8px #0003;z-index:1000;font-size:.9rem}@media(max-width:768px){.teacher-library{grid-template-columns:1fr}.teacher-library__toc{border-right:none;border-bottom:1px solid #e5e5e5;padding-right:0;padding-bottom:12px;max-height:250px}}.teacher-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}.shared-page .teacher-site__back{display:inline-block;color:#1a73e8;text-decoration:none;font-size:.85rem}.shared-page .teacher-site__back:hover{text-decoration:underline}@media print{.teacher-toolbar,.memo-fab,.memo-panel,.sidebar-toggle{display:none!important}}.shared-page.teacher-mode{min-height:auto}.shared-page.teacher-mode .shared-body{overflow:visible;align-items:flex-start}.shared-page.teacher-mode .shared-content{overflow:visible}.shared-page.teacher-mode .shared-sidebar{position:sticky;top:0;align-self:flex-start;max-height:100vh;overflow-y:auto}.shared-page.teacher-mode .shared-sidebar.collapsed{max-height:none}.account-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:6px 16px;background:#f8fafc;border-bottom:1px solid #e5e7eb;font-size:.85rem;color:#374151}.account-bar__role{padding:1px 8px;border-radius:10px;background:#e0e7ff;color:#1e3a8a;font-weight:600;white-space:nowrap}.account-bar__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50vw}.account-bar__logout{padding:3px 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#374151;cursor:pointer;white-space:nowrap}.account-bar__logout:hover{background:#f1f5f9}@media print{.account-bar{display:none}}.account-bar__nav{display:flex;gap:4px;margin-right:auto}.account-bar__link{padding:3px 10px;border-radius:6px;color:#374151;text-decoration:none;white-space:nowrap}.account-bar__link:hover{background:#f1f5f9}.account-bar__link.active{background:#1a3a5c;color:#fff;font-weight:600}.account-bar__back{padding:3px 10px;border:1px solid #1a3a5c;border-radius:6px;background:#fff;color:#1a3a5c;font-weight:600;cursor:pointer;white-space:nowrap}.account-bar__back:hover{background:#eef2f7}@media(max-width:480px){.account-bar{flex-wrap:wrap}}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9fafb;color:#1f2937;line-height:1.5}#root{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
