@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--bg-base:#fbfbfa;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f4f4f1;--bg-elevated:#f2f3ef;--bg-input:#fff;--bg-secondary:#f4f4f1;--border:#e2e4df;--border-color:#e2e4df;--border-hover:#cbd0c8;--border-strong:#cbd0c8;--primary:#4a6051;--text-primary:#1c231f;--text-secondary:#4a554e;--text-muted:#828e86;--accent-from:#4a6051;--accent-to:#3b4f42;--accent:#d9745b;--accent-glow:#d9745b33;--status-pending-bg:#fef9c3;--status-pending-text:#854d0e;--status-pending-border:#fef08a;--status-processing-bg:#e6ece8;--status-processing-text:#3b4f42;--status-processing-border:#c8d3cc;--status-completed-bg:#e8f5e9;--status-completed-text:#2e7d32;--status-completed-border:#c8e6c9;--status-failed-bg:#ffebee;--status-failed-text:#c62828;--status-failed-border:#ffcdd2;--type-pdf:#c62828;--type-docx:#4a6051;--type-pptx:#d9745b;--type-mp3:#6e8876;--type-mp4:#2e7d32;--type-image:#d97706;--type-txt:#828e86;--sidebar-width:220px;--header-height:60px;--radius:12px;--radius-sm:8px;--radius-lg:16px;--shadow-sm:0 1px 3px 0 #1c231f0d;--shadow-md:0 4px 8px -1px #1c231f14, 0 2px 4px -2px #1c231f0a}.dark{--bg-base:#131b16;--bg-surface:#1a241e;--bg-card:#1e2a23;--bg-card-hover:#26342b;--bg-elevated:#2a3a30;--bg-input:#151e18;--bg-secondary:#26342b;--border:#ffffff1a;--border-color:#ffffff1a;--border-hover:#ffffff2e;--border-strong:#ffffff2e;--primary:#e0856e;--text-primary:#f0f4f1;--text-secondary:#9eada2;--text-muted:#6e7e73;--accent-from:#6e8876;--accent-to:#4a6051;--accent:#e0856e;--accent-glow:#e0856e40;--status-pending-bg:#d9770626;--status-pending-text:#f59e0b;--status-pending-border:#d977064d;--status-processing-bg:#6e88762e;--status-processing-text:#9eada2;--status-processing-border:#6e88764d;--status-completed-bg:#2e7d322e;--status-completed-text:#4ade80;--status-completed-border:#2e7d324d;--status-failed-bg:#c628282e;--status-failed-text:#f87171;--status-failed-border:#c628284d;--type-pdf:#f87171;--type-docx:#81a38c;--type-pptx:#e0856e;--type-mp3:#a8c3b0;--type-mp4:#4ade80;--type-image:#fbbf24;--type-txt:#9eada2;--shadow-sm:0 1px 3px 0 #0006;--shadow-md:0 4px 8px -1px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;transition:background-color .25s,color .25s;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}h1{letter-spacing:-.02em;color:var(--text-primary);font-size:1.75rem;font-weight:700}h2{letter-spacing:-.01em;color:var(--text-primary);font-size:1.25rem;font-weight:600}h3{color:var(--text-primary);font-size:1rem;font-weight:600}p{color:var(--text-secondary)}code,pre{font-family:JetBrains Mono,monospace}.app-layout{min-height:100vh;display:flex}.main-content{min-width:0;margin-left:calc(var(--sidebar-width) + 16px);flex-direction:column;flex:1;display:flex}.page-content{flex:1;max-width:1200px;padding:24px 28px}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border:1px solid var(--border);height:calc(100vh - 32px);box-shadow:var(--shadow-md);z-index:100;border-radius:16px;flex-direction:column;transition:background-color .25s,border-color .25s;display:flex;position:fixed;top:16px;left:16px;overflow:hidden}.sidebar-logo{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:20px 20px 16px;display:flex}.sidebar-logo-icon{background:linear-gradient(135deg, var(--accent-from), var(--accent-to));width:32px;height:32px;box-shadow:0 4px 12px var(--accent-glow);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.sidebar-logo-text{background:linear-gradient(135deg, var(--accent-from), var(--accent-to));-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:800}.sidebar-nav{flex-direction:column;flex:1;gap:3px;padding:12px 10px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg-card-hover);color:var(--text-primary)}.nav-item.active{color:var(--accent);background:#4f46e514;border-color:#4f46e533;font-weight:600}.nav-item.active .nav-icon{color:var(--accent)}.nav-icon{opacity:.85;flex-shrink:0;width:18px;height:18px;transition:color .15s}.sidebar-footer{border-top:1px solid var(--border);flex-shrink:0;padding:12px 14px}.topbar{height:var(--header-height);border:1px solid var(--border);background:var(--bg-surface);box-shadow:var(--shadow-sm);z-index:50;border-radius:14px;justify-content:space-between;align-items:center;margin:16px 20px 0;padding:0 24px;transition:background-color .25s,border-color .25s;display:flex;position:sticky;top:16px}.topbar-title{color:var(--text-secondary);font-size:.875rem}.topbar-title strong{color:var(--text-primary);font-weight:600}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;transition:border-color .2s,background-color .25s}.card:hover{border-color:var(--border-strong)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;transition:all .2s;position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--accent-from), var(--accent-to));opacity:0;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.stat-card:hover:before{opacity:1}.stat-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.72rem;font-weight:600}.stat-value{color:var(--text-primary);letter-spacing:-.03em;font-size:2rem;font-weight:700;line-height:1}.stat-icon{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:16px;right:16px}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-from), var(--accent-to));color:#fff;box-shadow:0 3px 10px var(--accent-glow)}.btn-primary:hover{box-shadow:0 5px 16px var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-icon{justify-content:center;width:32px;height:32px;padding:6px}.btn-danger{background:var(--status-failed-bg);color:var(--status-failed-text);border-color:var(--status-failed-border)}.btn-sm{padding:5px 10px;font-size:.8rem}.badge{letter-spacing:.02em;white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.badge-pending{background:var(--status-pending-bg);color:var(--status-pending-text);border-color:var(--status-pending-border)}.badge-classifying,.badge-extracting,.badge-cleaning,.badge-summarizing,.badge-generating_quiz,.badge-generating_flashcard,.badge-processing{background:var(--status-processing-bg);color:var(--status-processing-text);border-color:var(--status-processing-border)}.badge-completed{background:var(--status-completed-bg);color:var(--status-completed-text);border-color:var(--status-completed-border)}.badge-failed{background:var(--status-failed-bg);color:var(--status-failed-text);border-color:var(--status-failed-border)}.file-type-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:4px;align-items:center;padding:2px 7px;font-size:.7rem;font-weight:700;display:inline-flex}.ftype-pdf{color:var(--type-pdf);background:#ef44441f}.ftype-docx,.ftype-doc{color:var(--type-docx);background:#3b82f61f}.ftype-pptx{color:var(--type-pptx);background:#f973161f}.ftype-mp3,.ftype-wav,.ftype-m4a{color:var(--type-mp3);background:#8b5cf61f}.ftype-mp4{color:var(--type-mp4);background:#10b9811f}.ftype-jpg,.ftype-jpeg,.ftype-png{color:var(--type-image);background:#ec48991f}.ftype-txt{color:var(--type-txt);background:#64748b1f}.ftype-multi{color:var(--accent);background:#6366f126}.table-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow-x:auto}.table-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}table{border-collapse:collapse;width:100%}thead th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 16px;font-size:.72rem;font-weight:600}tbody tr{border-bottom:1px solid var(--border);transition:background-color .12s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--bg-card-hover)}tbody td{color:var(--text-primary);vertical-align:middle;padding:12px 16px;font-size:.875rem}.td-filename{align-items:center;gap:10px;max-width:260px;display:flex}.td-filename-text{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.td-actions{align-items:center;gap:6px;display:flex}.upload-zone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-card);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:50px 32px;transition:all .2s;display:flex}.upload-zone:hover,.upload-zone.dragging{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);background:#6366f10a}.upload-zone-icon{background:#6366f11f;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:2px;display:flex}.upload-zone-title{color:var(--text-primary);font-size:1.05rem;font-weight:600}.upload-zone-subtitle{color:var(--text-muted);max-width:420px;font-size:.82rem;line-height:1.5}@keyframes recordPulse{0%{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.08);box-shadow:0 0 0 16px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}@keyframes rippleRing{0%{opacity:.8;transform:scale(.85)}to{opacity:0;transform:scale(2.4)}}@keyframes recBlink{0%,to{opacity:1}50%{opacity:.25}}.rec-pulse-badge{animation:1.6s ease-in-out infinite recordPulse}.rec-blink-dot{animation:1.2s ease-in-out infinite recBlink}.ripple-ring-1{pointer-events:none;border:2px solid #ef444499;border-radius:50%;animation:2s cubic-bezier(.1,.8,.3,1) infinite rippleRing;position:absolute;inset:-6px}.ripple-ring-2{pointer-events:none;border:2px solid #ef444499;border-radius:50%;animation:2s cubic-bezier(.1,.8,.3,1) .7s infinite rippleRing;position:absolute;inset:-6px}.progress-steps{align-items:center;gap:0;padding:4px 0;display:flex;overflow-x:auto}.step{flex-shrink:0;align-items:center;gap:0;display:flex}.step-dot{border:2px solid var(--border-strong);background:var(--bg-elevated);width:28px;height:28px;color:var(--text-muted);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;transition:all .3s;display:flex}.step-dot.completed{background:var(--status-completed-bg);border-color:var(--status-completed-text);color:var(--status-completed-text)}.step-dot.active{background:var(--status-processing-bg);border-color:var(--status-processing-text);color:var(--status-processing-text);box-shadow:0 0 0 3px var(--accent-glow)}.step-dot.failed{background:var(--status-failed-bg);border-color:var(--status-failed-text);color:var(--status-failed-text)}.step-connector{background:var(--border-strong);flex-shrink:0;width:40px;height:2px}.step-connector.completed{background:var(--status-completed-text)}.tab-list{background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border);gap:2px;width:fit-content;padding:4px;display:flex}.tab-trigger{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:.8rem;font-weight:500;transition:all .15s}.tab-trigger.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tab-trigger:hover:not(.active){color:var(--text-primary)}.summary-content{color:var(--text-secondary);white-space:pre-wrap;font-size:.9rem;line-height:1.75}.summary-content h1,.summary-content h2,.summary-content h3{color:var(--text-primary);margin:16px 0 8px}.summary-content strong{color:var(--text-primary)}.summary-content code{background:var(--bg-elevated);color:var(--accent);border-radius:4px;padding:2px 6px;font-size:.85em}.quiz-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:18px}.quiz-question{color:var(--text-primary);margin-bottom:12px;font-size:.9rem;font-weight:600}.quiz-option{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);background:var(--bg-surface);align-items:flex-start;gap:10px;margin-bottom:6px;padding:9px 12px;font-size:.85rem;transition:all .15s;display:flex}.quiz-option:hover{background:var(--bg-card-hover);border-color:var(--border-strong);color:var(--text-primary)}.quiz-option.selected{border-color:var(--accent);color:var(--text-primary);background:#6366f114}.quiz-option.correct{background:var(--status-completed-bg);border-color:var(--status-completed-text);color:var(--status-completed-text)}.quiz-option.incorrect{background:var(--status-failed-bg);border-color:var(--status-failed-text);color:var(--status-failed-text)}.flashcard-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.flashcard{perspective:1000px;cursor:pointer;height:220px;min-height:220px}.flashcard-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{border-radius:var(--radius);text-align:center;backface-visibility:hidden;box-shadow:var(--shadow-sm);scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;word-break:break-word;flex-direction:column;justify-content:center;align-items:center;padding:18px 16px;display:flex;position:absolute;inset:0;overflow-y:auto}.flashcard-front::-webkit-scrollbar{width:4px}.flashcard-back::-webkit-scrollbar{width:4px}.flashcard-scrollable::-webkit-scrollbar{width:4px}.flashcard-front::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.flashcard-back::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.flashcard-scrollable::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.flashcard-front{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-size:.9rem;font-weight:600;line-height:1.5}.flashcard-back{border:1px solid var(--accent);color:var(--text-primary);background:#6366f114;font-size:.85rem;line-height:1.6;transform:rotateY(180deg)}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:600}input,select,textarea{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:.875rem;transition:border-color .15s,background-color .25s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}textarea{resize:vertical;min-height:120px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6}.checkbox-row{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;font-size:.875rem;display:flex}.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.7s linear infinite spin}.spinner-lg{border-width:3px;width:36px;height:36px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.25s forwards fadeIn}.section-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.w-full{width:100%}.modal-backdrop{animation:.2s ease-out forwards fadeInModalBackdrop;-webkit-backdrop-filter:blur(4px)!important;z-index:99999!important;background:#0f172abf!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;padding:16px!important;display:flex!important;position:fixed!important;inset:0!important}@keyframes fadeInModalBackdrop{0%{opacity:0}to{opacity:1}}.modal-content{animation:.25s cubic-bezier(.16,1,.3,1) forwards popUpModal;background:var(--bg-card)!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius-lg,12px)!important;width:100%!important;max-height:90vh!important;margin:auto!important;padding:24px!important;position:relative!important;overflow-y:auto!important;box-shadow:0 25px 50px -12px #00000073,0 10px 15px -3px #0000004d!important}@keyframes popUpModal{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-title{color:var(--text-primary)!important;border-bottom:1px solid var(--border)!important;margin-bottom:18px!important;padding-bottom:12px!important;font-size:1.15rem!important;font-weight:700!important}.modal-actions{border-top:1px solid var(--border)!important;justify-content:flex-end!important;align-items:center!important;gap:12px!important;margin-top:24px!important;padding-top:16px!important;display:flex!important}@media print{@page{margin:15mm 20mm;size:portrait}.sidebar,.topbar,.mobile-header,.page-header,.tab-list,.tab-trigger,.presentation-header,.presentation-controls,.presentation-toc,.modal-backdrop,.btn,button,nav,header,footer,.empty-state,.toast-container,.no-print,.job-metadata-card,.status-badge{height:0!important;margin:0!important;padding:0!important;display:none!important;overflow:hidden!important}.card:not(.printable-pdf-document):not(:has(.printable-pdf-document)){height:0!important;margin:0!important;padding:0!important;display:none!important;overflow:hidden!important}html,body{color:#000!important;background:#fff!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}.app-layout,.main-content,.page-content,.presentation-modal-overlay,.presentation-modal-overlay>div{box-shadow:none!important;background:0 0!important;border:none!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}.printable-pdf-document{color:#0f172a!important;width:100%!important;max-width:100%!important;height:auto!important;box-shadow:none!important;visibility:visible!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;font-family:Calibri,Arial,sans-serif!important;font-size:11pt!important;line-height:1.45!important;display:block!important;position:static!important;overflow:visible!important}.printable-pdf-document *{background-color:#0000;visibility:visible!important;color:#0f172a!important}.printable-pdf-document .document-print-header{color:#475569!important;border-bottom:1pt solid #475569!important;justify-content:space-between!important;align-items:center!important;margin-bottom:14pt!important;padding-bottom:8pt!important;font-size:9.5pt!important;display:flex!important}.printable-pdf-document h1.doc-title{page-break-after:avoid;color:#0f172a!important;text-align:left!important;margin:0 0 14pt!important;font-size:15pt!important;font-weight:700!important;line-height:1.3!important}.printable-pdf-document table{page-break-inside:auto;border-collapse:collapse!important;border:1pt solid #000!important;width:100%!important;margin:10pt auto!important}.printable-pdf-document tr{page-break-inside:avoid;page-break-after:auto}.printable-pdf-document thead{display:table-header-group}.printable-pdf-document th,.printable-pdf-document td{page-break-inside:avoid;vertical-align:top!important;border:1pt solid #000!important;padding:6pt 8pt!important}.printable-pdf-document th{color:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;text-align:left!important;background-color:#4f81bd!important;font-weight:700!important}.printable-pdf-document h2{page-break-after:avoid;color:#1e293b!important;margin-top:14pt!important;margin-bottom:6pt!important;font-size:13pt!important;font-weight:700!important}.printable-pdf-document h3{page-break-after:avoid;color:#334155!important;margin-top:10pt!important;margin-bottom:4pt!important;font-size:11.5pt!important;font-weight:600!important}.printable-pdf-document p{text-align:justify!important;margin:0 0 8pt!important;font-size:11pt!important;line-height:1.5!important}.printable-pdf-document ul,.printable-pdf-document ol{margin:4pt 0 8pt 20pt!important;padding:0!important}.printable-pdf-document li{margin-bottom:3pt!important;font-size:11pt!important}.print-only-header{display:flex!important}}.print-only-header{display:none}.presentation-modal-overlay{z-index:99999;color:#f8fafc;box-sizing:border-box;background:radial-gradient(circle at top,#2a3a30,#131b16 70%,#0b100d);flex-direction:column;width:100vw;max-width:100vw;animation:.3s cubic-bezier(.16,1,.3,1) presentationFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes presentationFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.presentation-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;box-sizing:border-box;background:#1a241eeb;border-bottom:1px solid #ffffff1a;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;padding:12px 24px;display:flex}.presentation-brand{align-items:center;gap:12px;min-width:0;max-width:42%;display:flex}.presentation-badge{background:linear-gradient(135deg, var(--accent-from), var(--accent));color:#fff;white-space:nowrap;flex-shrink:0;padding:5px 12px;font-size:.8rem;font-weight:700}.presentation-title-container{min-width:0;overflow:hidden}.presentation-title{color:#f8fafc;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden}.presentation-creator{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;display:block;overflow:hidden}.presentation-tabs{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;flex-shrink:0;gap:6px;padding:4px;display:flex}.presentation-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.presentation-close-btn{color:#ef4444;cursor:pointer;background:#ef444433;border:1px solid #ef444466;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.presentation-close-btn:hover{background:#ef444459;transform:scale(1.05)}.presentation-canvas-wrapper{box-sizing:border-box;flex:1;justify-content:center;align-items:flex-start;width:100%;min-width:0;padding:40px 24px;display:flex;overflow:hidden auto}.printable-pdf-document,.printable-pdf-document *{box-sizing:border-box;word-break:break-word;overflow-wrap:anywhere}.flashcard-3d-stage{perspective:1200px;justify-content:center;align-items:center;width:100%;display:flex}.flashcard-3d-card{width:100%;max-width:660px;height:400px;transform-style:preserve-3d;cursor:pointer;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.flashcard-3d-card.flipped{transform:rotateY(180deg)}.flashcard-3d-face{backface-visibility:hidden;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1e2a23bf;border-radius:24px;flex-direction:column;justify-content:space-between;padding:40px;display:flex;position:absolute;inset:0;box-shadow:0 25px 50px -12px #0009,0 0 0 1px #ffffff1f}.flashcard-3d-face.back{background:#2a3a30d9;border:1px solid #d9745b59;transform:rotateY(180deg);box-shadow:0 25px 50px -12px #d9745b4d,0 0 0 1px #d9745b33}.quiz-option-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e2a2399;border:1px solid #ffffff1f;transition:all .2s cubic-bezier(.16,1,.3,1)}.quiz-option-card:hover{background:#2a3a308c;border-color:#d9745b99;transform:translateY(-2px)}@keyframes shakeError{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.animate-shake{animation:.4s ease-in-out shakeError}.mobile-header,.sidebar-backdrop{display:none}@media (max-width:1024px){.mobile-header{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:150;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-menu-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:background-color .2s;display:flex}.mobile-menu-btn:hover{background:var(--bg-elevated)}.mobile-logo-title{background:linear-gradient(135deg, var(--accent-from), var(--accent-to));-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:800}.sidebar{width:260px;height:100vh;position:fixed;top:0;border:none!important;border-right:1px solid var(--border)!important;z-index:250!important;border-radius:0!important;margin:0!important;transition:left .3s cubic-bezier(.16,1,.3,1)!important;left:-100%!important;box-shadow:10px 0 30px #0006!important}.sidebar.open{left:0!important}.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0009;display:block;position:fixed;inset:0}.main-content{padding-top:56px;margin-left:0!important}.page-content{width:100%!important;max-width:100%!important;padding:16px!important}.topbar{min-height:56px;flex-direction:column!important;align-items:stretch!important;gap:12px!important;height:auto!important;margin:10px 0 16px!important;padding:12px 16px!important;position:relative!important;top:0!important}.topbar>div,.topbar>button,.topbar>a{width:100%!important}.topbar-actions{flex-wrap:wrap;gap:8px;width:100%;display:flex}.topbar-actions>*{flex:1;min-width:120px}.modal-content.card{margin:0 auto;width:95%!important;max-width:95%!important;padding:16px!important}.grid-2{grid-template-columns:1fr!important}.presentation-header{box-sizing:border-box!important;grid-template-columns:1fr auto!important;grid-template-areas:"brand actions""tabs tabs"!important;align-items:center!important;gap:8px 10px!important;width:100%!important;height:auto!important;padding:10px 14px!important;display:grid!important}.presentation-brand{grid-area:brand!important;align-items:center!important;gap:8px!important;min-width:0!important;max-width:100%!important;display:flex!important;overflow:hidden!important}.presentation-badge{flex-shrink:0!important;padding:3px 8px!important;font-size:.7rem!important}.presentation-title-container{flex:1!important;min-width:0!important;overflow:hidden!important}.presentation-title{white-space:nowrap!important;text-overflow:ellipsis!important;max-width:100%!important;margin:0!important;font-size:.85rem!important;overflow:hidden!important}.presentation-creator{white-space:nowrap!important;text-overflow:ellipsis!important;max-width:100%!important;font-size:.68rem!important;overflow:hidden!important}.presentation-actions{flex-shrink:0!important;grid-area:actions!important;justify-content:flex-end!important;align-items:center!important;gap:8px!important;display:flex!important}.presentation-close-btn{flex-shrink:0!important;width:32px!important;height:32px!important}.presentation-teacher-btn{padding:4px 8px!important;font-size:.72rem!important}.presentation-tabs{white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;box-sizing:border-box!important;grid-area:tabs!important;justify-content:center!important;gap:4px!important;width:100%!important;padding:3px!important;display:flex!important;overflow-x:auto!important}.presentation-tabs button{white-space:nowrap!important;flex-shrink:0!important;padding:4px 10px!important;font-size:.78rem!important}.presentation-controls{box-sizing:border-box!important;flex-wrap:wrap!important;justify-content:center!important;gap:8px!important;width:100%!important;padding:8px 12px!important}.presentation-controls button,.presentation-controls div{font-size:.78rem!important}.presentation-toc{display:none!important}.presentation-stage-wrapper{flex-direction:column!important;flex:1!important;width:100%!important;max-width:100vw!important;display:flex!important;overflow:hidden!important}.presentation-canvas-wrapper{box-sizing:border-box!important;-webkit-overflow-scrolling:touch!important;flex:1!important;width:100%!important;max-width:100%!important;padding:16px 12px!important;display:block!important;overflow:hidden auto!important}.printable-pdf-document{box-sizing:border-box!important;overflow-wrap:anywhere!important;word-break:break-word!important;border-radius:10px!important;width:100%!important;max-width:100%!important;margin:0 auto!important;padding:20px 14px!important;overflow-x:hidden!important;box-shadow:0 4px 20px #0006!important}.printable-pdf-document *{box-sizing:border-box!important;overflow-wrap:anywhere!important;word-break:break-word!important;max-width:100%!important}.printable-pdf-document h1{overflow-wrap:anywhere!important;word-break:break-word!important;margin-bottom:8px!important;font-size:1.25rem!important;line-height:1.35!important}.printable-pdf-document h2{overflow-wrap:anywhere!important;word-break:break-word!important;font-size:1.05rem!important;line-height:1.35!important}.printable-pdf-document h3{overflow-wrap:anywhere!important;word-break:break-word!important;font-size:.95rem!important;line-height:1.35!important}}@media (max-width:600px){.flashcard-3d-card{height:300px!important}.flashcard-3d-face{border-radius:16px!important;padding:20px!important}}@media (max-width:768px){html,body{overflow-x:hidden}.section-header{flex-direction:column;gap:16px;align-items:stretch!important}.section-header select,.section-header input,.section-header button,.section-header a{width:100%!important}.flex.items-center.gap-2{flex-direction:column;align-items:stretch!important;width:100%!important}.tab-list{-webkit-overflow-scrolling:touch;margin-bottom:8px;white-space:nowrap!important;flex-wrap:nowrap!important;width:100%!important;max-width:100%!important;display:flex!important;overflow-x:auto!important}.tab-trigger{white-space:nowrap!important;flex-shrink:0!important}.flex.items-center.gap-3.flex-wrap{flex-direction:column!important;align-items:stretch!important;gap:12px!important;width:100%!important}.flex.items-center.gap-3.flex-wrap>*{width:100%!important}}.desktop-header{display:none!important}.sidebar .notification-dropdown{top:20px;left:calc(var(--sidebar-width) + 28px);z-index:99999;position:fixed;right:auto}@media (max-width:1024px){.sidebar .notification-dropdown{position:absolute;top:calc(100% + 8px);left:auto;right:0}}.notification-bell-container{display:inline-flex;position:relative}.notification-bell-btn{border:1px solid var(--border);background:var(--bg-surface);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.notification-bell-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-hover)}.notification-badge{color:#fff;border:2px solid var(--bg-surface);background:#ef4444;border-radius:9999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-4px}.notification-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:1000;border-radius:14px;width:360px;max-width:90vw;animation:.18s ease-out fadeInDown;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 10px 25px -5px #0000001f,0 8px 10px -6px #00000014}.dark .notification-dropdown{background:var(--bg-card);border-color:var(--border-strong);box-shadow:0 14px 35px #0000008c}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notification-dropdown-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notification-count-tag{background:var(--accent-glow,#d9745b26);color:var(--accent);border-radius:12px;padding:2px 7px;font-size:.7rem;font-weight:600}.notification-mark-all-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 6px;font-size:.75rem;font-weight:500;transition:color .15s;display:flex}.notification-mark-all-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.notification-dropdown-list{max-height:380px;overflow-y:auto}.notification-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:32px 16px;font-size:.85rem;display:flex}.notification-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 16px;transition:background .15s;display:flex;position:relative}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--bg-card-hover)}.notification-item.unread{background:#d9745b0f}.notification-item.unread:hover{background:#d9745b1f}.notification-icon-wrapper{flex-shrink:0;margin-top:2px}.notif-icon-success{color:#10b981}.notif-icon-error{color:#ef4444}.notif-icon-info{color:#3b82f6}.notification-item-content{flex:1;min-width:0}.notification-item-title{color:var(--text-primary);margin-bottom:2px;font-size:.825rem;font-weight:600;line-height:1.35}.notification-item-message{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:.775rem;line-height:1.35;display:-webkit-box;overflow:hidden}.notification-item-time{color:var(--text-muted);font-size:.7rem}.notification-unread-dot{background:var(--accent);border-radius:9999px;flex-shrink:0;width:7px;height:7px;margin-top:6px}.table-row-hover:hover{background:var(--bg-card-hover)!important}.rich-text-editor-container{border:1px solid var(--border);background:var(--bg-surface);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.rich-editor-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;display:flex}.rich-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.rich-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.rich-btn.is-active{background:var(--primary,#6366f1);color:#fff}.rich-btn:disabled{opacity:.35;cursor:not-allowed}.rich-divider{background:var(--border);width:1px;height:20px;margin:0 4px}.rich-editor-content{cursor:text;min-height:220px;padding:16px 20px}.rich-editor-content .tiptap,.rich-editor-content .ProseMirror{min-height:200px;color:var(--text-primary);outline:none;font-size:.925rem;line-height:1.7}.rich-editor-content .ProseMirror p{color:var(--text-primary);margin-bottom:.75rem}.rich-editor-content .ProseMirror h1{color:var(--text-primary);margin-top:1rem;margin-bottom:.5rem;font-size:1.4rem;font-weight:700}.rich-editor-content .ProseMirror h2{color:var(--text-primary);margin-top:.85rem;margin-bottom:.4rem;font-size:1.2rem;font-weight:600}.rich-editor-content .ProseMirror h3{color:var(--text-primary);margin-top:.75rem;margin-bottom:.35rem;font-size:1.05rem;font-weight:600}.rich-editor-content .ProseMirror ul,.rich-editor-content .ProseMirror ol{margin-bottom:.75rem;padding-left:1.5rem}.rich-editor-content .ProseMirror li{margin-bottom:.25rem}.rich-editor-content .ProseMirror blockquote{border-left:3px solid var(--primary,#6366f1);color:var(--text-secondary);margin:.75rem 0;padding-left:12px;font-style:italic}.rich-editor-content .ProseMirror code{background:var(--bg-secondary);color:var(--primary,#6366f1);border-radius:4px;padding:2px 6px;font-size:.85em}.rich-table-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;display:flex}.rich-table-toolbar-group{align-items:center;gap:4px;display:inline-flex}.rich-table-toolbar-label{color:var(--text-muted);align-items:center;margin-right:4px;font-weight:600;display:inline-flex}.rich-table-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:.75rem;font-weight:500;transition:all .15s}.rich-table-btn:hover{background:var(--bg-hover);border-color:var(--primary,#6366f1);color:var(--primary,#6366f1)}.rich-table-btn-danger{color:#ef4444}.rich-table-btn-danger:hover{color:#ef4444;background:#ef44441f;border-color:#ef4444}.rich-editor-content .tiptap table{border-collapse:collapse;table-layout:fixed;border:1px solid var(--border);border-radius:8px;width:100%;margin:16px 0;overflow:hidden}.rich-editor-content .tiptap th,.rich-editor-content .tiptap td{border:1px solid var(--border);vertical-align:top;box-sizing:border-box;min-width:80px;padding:8px 12px;font-size:.88rem;line-height:1.5;position:relative}.rich-editor-content .tiptap th{text-align:left;background-color:var(--bg-secondary);color:var(--text-primary);font-weight:700}.rich-editor-content .tiptap td p,.rich-editor-content .tiptap th p{margin:0}.rich-editor-content .tiptap .selectedCell:after{z-index:2;content:"";pointer-events:none;background:#6366f11f;position:absolute;inset:0}.rich-editor-content .tiptap .column-resize-handle{background-color:var(--primary,#6366f1);pointer-events:none;width:4px;position:absolute;top:0;bottom:-2px;right:-2px}.activity-filter-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm);box-sizing:border-box;border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:100%;margin-bottom:24px;padding:18px 20px;display:flex}.activity-filter-grid{grid-template-columns:minmax(260px,1fr) 200px 220px;gap:12px;width:100%;display:grid}.activity-filter-grid.non-super{grid-template-columns:minmax(260px,1fr) 220px}@media (max-width:900px){.activity-filter-grid,.activity-filter-grid.non-super{grid-template-columns:1fr 1fr}.activity-filter-grid>form,.activity-filter-grid.non-super>form{grid-column:1/-1}}@media (max-width:640px){.activity-filter-card{gap:12px;padding:14px 12px}.activity-filter-grid,.activity-filter-grid.non-super{grid-template-columns:1fr;gap:10px}.activity-filter-grid>*,.activity-filter-grid.non-super>*{grid-column:1/-1;width:100%!important}.activity-date-range{flex-direction:column;align-items:flex-start!important;gap:6px!important;width:100%!important}.activity-date-inputs{box-sizing:border-box;justify-content:space-between!important;gap:6px!important;width:100%!important;padding:6px 8px!important;display:flex!important}.activity-date-inputs input[type=date]{max-width:125px!important;font-size:.78rem!important}}
