:root{--blue-900: #0b1f3a;--blue-700: #1f4d8c;--blue-500: #2f7dd6;--blue-200: #cfe3ff;--white: #ffffff;--neutral-50: #f6f8fb;--neutral-200: #e3e8f0;--neutral-500: #7a8798;--neutral-900: #0f172a;--accent: #0ea5e9;--success: #059669;--success-light: #ecfdf5;--warning: #f59e0b;--warning-light: #fef3c7;--danger: #dc2626;--danger-dark: #b91c1c;--danger-light: #fee2e2;--success-dark: #047857;--success-darker: #065f46;--warning-text: #92400e;--warning-text-dark: #78350f;--warning-light-alt: #fde68a;--gradient-hero: linear-gradient(135deg, var(--blue-500), var(--blue-700), var(--blue-900));--gradient-button: linear-gradient(135deg, var(--blue-500) 0%, var(--blue-700) 100%);--gradient-button-active: linear-gradient(135deg, var(--blue-700) 0%, var(--blue-900) 100%);--shadow-blue: rgba(31, 77, 140, .3);--shadow-blue-hover: rgba(31, 77, 140, .4);--shadow-accent: rgba(14, 165, 233, .3);--shadow-accent-strong: rgba(14, 165, 233, .4);--shadow-accent-soft: rgba(14, 165, 233, .25);--focus-ring-accent: rgba(14, 165, 233, .2);--shadow-accent-15: rgba(14, 165, 233, .15);--success-bg-soft: #f0fdf4;--success-border-soft: #bbf7d0;--info-bg: #e0e7ff;--info-border: #c7d2fe;--info-text: #3730a3;--fill-muted: rgba(0, 0, 0, .06);--shadow-success: rgba(5, 150, 105, .3);--shadow-success-hover: rgba(5, 150, 105, .4);--shadow-success-glow: rgba(5, 150, 105, .5);--shadow-warning: rgba(245, 158, 11, .3);--shadow-warning-strong: rgba(245, 158, 11, .5);--shadow-danger: rgba(220, 53, 69, .3);--shadow-soft: rgba(0, 0, 0, .1);--shadow-soft-06: rgba(0, 0, 0, .06);--shadow-soft-08: rgba(0, 0, 0, .08);--shadow-medium: rgba(0, 0, 0, .15);--shadow-strong: rgba(0, 0, 0, .2);--shadow-12: rgba(0, 0, 0, .12);--shadow-modal: rgba(0, 0, 0, .25);--shadow-modal-strong: rgba(0, 0, 0, .3);--shadow-border: rgba(0, 0, 0, .1);--overlay-dark: rgba(0, 0, 0, .5);--overlay-mid: rgba(0, 0, 0, .7);--overlay-darker: rgba(0, 0, 0, .9);--overlay-light: rgba(0, 0, 0, .3);--overlay-modal: rgba(0, 0, 0, .4);--surface-glass: rgba(255, 255, 255, .8);--surface-glass-alt: rgba(255, 255, 255, .9);--surface-glass-subtle: rgba(255, 255, 255, .1);--border-on-dark-20: rgba(255, 255, 255, .2);--text-on-dark: rgba(255, 255, 255, .9);--border-on-dark: rgba(255, 255, 255, .1);--border-on-dark-strong: rgba(255, 255, 255, .3);--border-on-dark-stronger: rgba(255, 255, 255, .6);--text-muted: rgba(0, 0, 0, .7);--border-muted: rgba(0, 0, 0, .06);--success-bg: rgba(5, 150, 105, .95);--highlight-white: rgba(255, 255, 255, .3);--text-shadow-dark: 0 2px 4px rgba(0, 0, 0, .5);--border-light: rgba(15, 23, 42, .12);--link-hover-bg: rgba(31, 77, 140, .1);--visited-hover-bg: rgba(15, 23, 42, .06)}.countdown-timer{display:inline-flex;align-items:center;justify-content:center;gap:.35em;padding:.5em 1em;border-radius:10px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:700;transition:all .3s ease;width:100%;max-width:280px;margin-left:auto;margin-right:auto}.countdown-timer .timer-icon{font-size:1.4em;line-height:1;flex-shrink:0}.countdown-timer .timer-value{font-size:clamp(1.5rem,5vw,2.25rem);letter-spacing:.08em;line-height:1.1}.countdown-timer.compact{padding:.35em .6em;gap:.25em;max-width:none;width:auto}.countdown-timer.compact .timer-icon{font-size:1.1em}.countdown-timer.compact .timer-value{font-size:clamp(1rem,3vw,1.35rem)}.countdown-timer.timer-normal{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724;border:1px solid #28a745}.countdown-timer.timer-warning{background:linear-gradient(135deg,#ffe5d0,#ffd4b8);color:#c45a00;border:1px solid #fd7e14}.countdown-timer.timer-expired{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:2px solid #a71d2a;box-shadow:0 2px 8px #dc354566}.countdown-timer.timer-expired .timer-value{text-decoration:none}@media(prefers-color-scheme:dark){.countdown-timer.timer-normal{background:linear-gradient(135deg,#1e4620,#2d5a30);color:#90ee90;border-color:#4caf50}.countdown-timer.timer-warning{background:linear-gradient(135deg,#5c3a00,#6e4600);color:#ffb366;border-color:#fd7e14}.countdown-timer.timer-expired{background:linear-gradient(135deg,#8b0000,#a50000);color:#fff}}@media(max-width:480px){.countdown-timer .timer-value{font-size:clamp(1.35rem,8vw,2rem)}}.lesson-file-display .countdown-timer{margin-top:.75rem}.task-timer-container{display:flex;justify-content:center;align-items:center;padding:.5rem 0;width:100%}.task-timer-container .countdown-timer{max-width:260px}.image-viewer-overlay{position:fixed;inset:0;background-color:var(--overlay-dark);z-index:10001;display:flex;align-items:stretch;justify-content:stretch;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) 0 env(safe-area-inset-left,0);box-sizing:border-box}.image-viewer-container{width:100%;height:100%;min-width:0;min-height:0;background:var(--white);display:flex;flex-direction:column;overflow:hidden}.image-controls{display:flex;justify-content:space-between;align-items:center;min-height:3rem;padding:12px 20px;padding-right:3.5rem;background:var(--neutral-50);color:var(--neutral-900);border-bottom:1px solid var(--neutral-200);box-shadow:0 2px 8px var(--shadow-soft);flex-shrink:0;position:relative}.image-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.image-zoom{display:flex;align-items:center;gap:8px;flex-shrink:0}.image-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:1;min-width:0}.image-viewer-overlay .image-viewer-close-btn{position:absolute;right:20px;top:50%;transform:translateY(-50%)}.image-viewer-overlay .viewer-icon-btn{background:none;border:none;outline:none;box-shadow:none;padding:0;width:2rem;height:2rem;font-size:1.5rem;font-weight:400;color:var(--neutral-900);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease}.image-viewer-overlay .viewer-icon-btn:hover:not(:disabled){opacity:.7}.image-viewer-overlay .viewer-icon-btn:active:not(:disabled){opacity:.5}.image-viewer-overlay .viewer-icon-btn:disabled{opacity:.4;cursor:not-allowed}.image-viewer-overlay .viewer-icon-btn:focus{outline:none;box-shadow:none}.image-indicator{font-size:14px;font-weight:600;line-height:2rem;color:var(--neutral-900);display:flex;align-items:center}.image-content{flex:1;overflow:hidden;background:var(--neutral-50);position:relative;display:flex;align-items:center;justify-content:center;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.image-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative}.image-display{max-width:100%;max-height:100%;object-fit:contain;border:1px solid var(--neutral-200);box-shadow:0 4px 20px var(--shadow-soft);background:var(--white);display:block;image-rendering:-webkit-optimize-contrast;image-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;will-change:transform;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;pointer-events:auto}@media(max-width:768px){.image-controls{padding:10px 15px;padding-right:3rem;flex-wrap:wrap;gap:10px}.image-viewer-overlay .image-viewer-close-btn{right:15px}.image-info,.image-zoom,.image-actions{gap:6px}.image-viewer-overlay .viewer-icon-btn{width:1.75rem;height:1.75rem;font-size:1.3rem}.zoom-info{font-size:13px;min-width:45px}.image-content{padding:10px}.image-display{border:none}}@media(max-width:480px){.image-controls{padding:8px 12px;padding-right:2.75rem}.image-viewer-overlay .image-viewer-close-btn{right:12px}.image-viewer-overlay .viewer-icon-btn{width:1.75rem;height:1.75rem;font-size:1.3rem}.zoom-info{font-size:12px}.image-content{padding:5px}}@media(max-width:1024px)and (orientation:landscape){.image-display{image-rendering:auto;transform:translateZ(0)}}@media(max-width:1024px)and (orientation:portrait){.image-controls{padding:12px 16px;padding-right:3rem}.image-viewer-overlay .image-viewer-close-btn{right:16px}.image-display{image-rendering:auto;transform:translateZ(0);border:none}.image-content{padding:10px}}@media(prefers-contrast:high){.image-viewer-overlay{background-color:#00000080}.image-display{border-width:2px;border-color:#000}}@media(prefers-reduced-motion:reduce){.image-display,.image-viewer-overlay .viewer-icon-btn{transition:none}}.pdf-viewer-overlay{position:fixed;inset:0;background-color:var(--overlay-dark);z-index:10001;display:flex;align-items:stretch;justify-content:stretch;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) 0 env(safe-area-inset-left,0);box-sizing:border-box}.pdf-viewer-container{width:100%;height:100%;min-width:0;min-height:0;background:var(--white);display:flex;flex-direction:column;overflow:hidden}.pdf-controls{display:flex;justify-content:space-between;align-items:center;min-height:3rem;padding:12px 20px;padding-right:3.5rem;background:var(--neutral-50);color:var(--neutral-900);border-bottom:1px solid var(--neutral-200);box-shadow:0 2px 8px var(--shadow-soft);flex-shrink:0;position:relative}.pdf-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.pdf-zoom{display:flex;align-items:center;gap:8px;flex-shrink:0}.pdf-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:1;min-width:0}.pdf-viewer-overlay .pdf-viewer-close-btn{position:absolute;right:20px;top:50%;transform:translateY(-50%)}.pdf-viewer-overlay .viewer-icon-btn{background:none;border:none;outline:none;box-shadow:none;padding:0;width:2rem;height:2rem;font-size:1.5rem;font-weight:400;color:var(--neutral-900);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease}.pdf-viewer-overlay .viewer-icon-btn:hover:not(:disabled){opacity:.7}.pdf-viewer-overlay .viewer-icon-btn:active:not(:disabled){opacity:.5}.pdf-viewer-overlay .viewer-icon-btn:disabled{opacity:.4;cursor:not-allowed}.pdf-viewer-overlay .viewer-icon-btn:focus{outline:none;box-shadow:none}.page-indicator{font-size:14px;font-weight:600;line-height:2rem;color:var(--neutral-900);display:flex;align-items:center}.zoom-info{font-size:14px;font-weight:600;line-height:2rem;min-width:60px;text-align:center;color:var(--neutral-900);display:flex;align-items:center;justify-content:center}.pdf-content{flex:1;overflow:auto;background:var(--neutral-50);position:relative;padding:20px;touch-action:pan-x pan-y}.pdf-pages-container{display:flex;flex-direction:column;align-items:center;min-height:100%;width:-webkit-max-content;width:max-content;min-width:100%}.pdf-page-wrapper{display:flex;flex-direction:column;align-items:center;scroll-margin-top:20px;overflow:visible}.pdf-page{border:1px solid var(--neutral-200);box-shadow:0 4px 20px var(--shadow-soft);background:var(--white);display:block;max-width:none;image-rendering:-webkit-optimize-contrast;image-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.pdf-loading,.pdf-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:var(--neutral-500);font-size:16px;height:100%}.pdf-loading>div{text-align:center}.loading-progress{display:flex;flex-direction:column;align-items:center;gap:8px;width:300px;max-width:80%}.progress-bar-container{width:100%;height:8px;background:var(--neutral-200);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--blue-500),var(--blue-700));border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;color:var(--blue-500);font-weight:600;margin:0}.loading-spinner{width:40px;height:40px;border:4px solid var(--neutral-200);border-top:4px solid var(--blue-500);border-radius:50%;animation:spin 1s linear infinite}.loading-hint{font-size:14px;color:var(--neutral-500);text-align:center;line-height:1.4;max-width:300px;margin-top:10px}.loading-spinner-small{width:24px;height:24px;border:3px solid var(--neutral-200);border-top:3px solid var(--blue-500);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center}.pdf-page-placeholder{-webkit-user-select:none;user-select:none}.retry-btn{background:var(--blue-500);color:var(--white);border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s ease}.retry-btn:hover{background:var(--blue-700);transform:translateY(-1px)}.pdf-error-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center}.pdf-fallback-download-btn{background:var(--neutral-600)}.pdf-fallback-download-btn:hover{background:var(--neutral-700)}@media(max-width:768px){.pdf-controls{padding:10px 15px;padding-right:3rem;flex-wrap:wrap;gap:10px}.pdf-viewer-overlay .pdf-viewer-close-btn{right:15px}.pdf-info,.pdf-zoom,.pdf-actions{gap:6px}.pdf-viewer-overlay .viewer-icon-btn{width:1.75rem;height:1.75rem;font-size:1.3rem}.zoom-info{font-size:13px;min-width:45px}.pdf-content{padding:10px}.pdf-page{border:none}}@media(max-width:480px){.pdf-controls{padding:8px 12px;padding-right:2.75rem}.pdf-viewer-overlay .pdf-viewer-close-btn{right:12px}.pdf-viewer-overlay .viewer-icon-btn{width:1.75rem;height:1.75rem;font-size:1.3rem}.zoom-info{font-size:12px}.pdf-content{padding:5px}}@media(max-width:1024px)and (orientation:landscape){.pdf-page{image-rendering:auto;transform:translateZ(0)}}@media(max-width:1024px)and (orientation:portrait){.pdf-controls{padding:12px 16px;padding-right:3rem}.pdf-viewer-overlay .pdf-viewer-close-btn{right:16px}.pdf-page{image-rendering:auto;transform:translateZ(0);border:none}.pdf-content{padding:10px}}@media(prefers-contrast:high){.pdf-viewer-overlay{background-color:#00000080}.pdf-page{border-width:2px;border-color:#000}}@media(prefers-reduced-motion:reduce){.pdf-page,.pdf-viewer-overlay .viewer-icon-btn{transition:none}.loading-spinner{animation:none;border-top-color:transparent}}.rich-text-renderer{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#333;word-wrap:break-word}.rich-text-renderer h1{font-size:2em;font-weight:600;margin:24px 0 16px;color:#2c3e50;border-bottom:2px solid #eee;padding-bottom:8px}.rich-text-renderer h2{font-size:1.5em;font-weight:600;margin:20px 0 12px;color:#34495e}.rich-text-renderer h3{font-size:1.25em;font-weight:600;margin:16px 0 8px;color:#34495e}.rich-text-renderer h4{font-size:1.1em;font-weight:600;margin:12px 0 6px;color:#34495e}.rich-text-renderer h5{font-size:1em;font-weight:600;margin:10px 0 4px;color:#34495e}.rich-text-renderer h6{font-size:.9em;font-weight:600;margin:8px 0 4px;color:#34495e}.rich-text-renderer p{margin:0 0 12px;line-height:1.7}.rich-text-renderer p:last-child{margin-bottom:0}.rich-text-renderer ul,.rich-text-renderer ol{margin:12px 0;padding-left:24px;line-height:1.6}.rich-text-renderer ul{list-style-type:disc}.rich-text-renderer ol{list-style-type:decimal}.rich-text-renderer li{margin:6px 0;padding-left:4px;line-height:1.6}.rich-text-renderer ul ul{list-style-type:circle;margin:4px 0}.rich-text-renderer ul ul ul{list-style-type:square}.rich-text-renderer ol ol{list-style-type:lower-alpha}.rich-text-renderer ol ol ol{list-style-type:lower-roman}.rich-text-renderer strong{font-weight:600;color:#2c3e50}.rich-text-renderer em{font-style:italic;color:#34495e}.rich-text-renderer u{text-decoration:underline;-webkit-text-decoration-color:#3498db;text-decoration-color:#3498db}.rich-text-renderer br{display:block;margin:4px 0}.rich-text-renderer a{color:#3498db;text-decoration:underline;-webkit-text-decoration-color:#3498db;text-decoration-color:#3498db;text-decoration-thickness:1px;text-underline-offset:2px;transition:all .2s ease;cursor:pointer;word-break:break-all}.rich-text-renderer a:hover{color:#2980b9;-webkit-text-decoration-color:#2980b9;text-decoration-color:#2980b9;text-decoration-thickness:2px;background-color:#3498db1a;padding:2px 4px;border-radius:3px}.rich-text-renderer a:visited{color:#8e44ad;-webkit-text-decoration-color:#8e44ad;text-decoration-color:#8e44ad}.rich-text-renderer a:visited:hover{color:#7d3c98;-webkit-text-decoration-color:#7d3c98;text-decoration-color:#7d3c98;background-color:#8e44ad1a}.timeline-rich-text a{pointer-events:auto;z-index:10;position:relative;display:inline-block;margin:2px 0}.rich-text-renderer a[href*="youtube.com"],.rich-text-renderer a[href*="youtu.be"],.rich-text-renderer a[href*="vimeo.com"]{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;text-decoration:none;padding:8px 12px;border-radius:6px;font-weight:500;display:inline-block;margin:4px 0;box-shadow:0 2px 4px #0000001a}.rich-text-renderer a[href*="youtube.com"]:hover,.rich-text-renderer a[href*="youtu.be"]:hover,.rich-text-renderer a[href*="vimeo.com"]:hover{background:linear-gradient(135deg,#ff5252,#d84315);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.rich-text-renderer a[href*="youtube.com"]:before{content:"🎥 ";margin-right:4px}.rich-text-renderer a[href*="youtu.be"]:before{content:"🎥 ";margin-right:4px}.rich-text-renderer a[href*="classqr.de"]{background:linear-gradient(135deg,var(--blue-500),var(--accent));color:#fff;text-decoration:none;padding:8px 12px;border-radius:6px;font-weight:500;display:inline-block;margin:4px 0;box-shadow:0 2px 4px #0000001a}.rich-text-renderer a[href*="classqr.de"]:hover{background:var(--gradient-button);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.rich-text-renderer a[href*="classqr.de"]:before{content:"🔗 ";margin-right:4px}.rich-text-renderer a[href*="classqr.de"]:visited,.rich-text-renderer a[href*="classqr.de"]:visited:hover{color:#fff}@media(max-width:768px){.rich-text-renderer{font-size:16px}.rich-text-renderer ul,.rich-text-renderer ol{padding-left:20px}.rich-text-renderer h1{font-size:1.75em}.rich-text-renderer h2{font-size:1.4em}.rich-text-renderer h3{font-size:1.2em}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}html{margin:0;padding:0;height:100%;min-height:100vh;min-height:100svh;overflow:hidden;background-color:var(--white);color-scheme:only light}@media(display-mode:standalone),(display-mode:fullscreen){html{height:100vh;min-height:100vh}}body{margin:0;padding:0;position:fixed;inset:0;width:100%;height:100%;overflow:hidden;background-color:var(--white);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;color-scheme:only light}@media(display-mode:standalone),(display-mode:fullscreen){body{height:100vh;min-height:100vh}}#root{width:100%;height:100%;overflow:hidden;box-sizing:border-box;background-color:var(--white);padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);display:flex;flex-direction:column;position:relative;color-scheme:only light}#root:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background-color:var(--white);z-index:9998;pointer-events:none}body.page-homepage #root:before{background:var(--gradient-hero)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input[type=text],input[type=password],input[type=email],input[type=search],input[type=number],input[type=url],textarea,select{background-color:var(--white);color:var(--neutral-900);border:1px solid var(--neutral-200);font-family:inherit;font-size:inherit;color-scheme:only light}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=search]:focus,input[type=number]:focus,input[type=url]:focus,textarea:focus,select:focus{outline:1px solid var(--neutral-500);outline-offset:0;border-color:var(--neutral-500)}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}::selection{background-color:#2f7dd659;color:var(--neutral-900)}input[type=text]::selection,input[type=password]::selection,input[type=email]::selection,input[type=search]::selection,input[type=number]::selection,input[type=url]::selection,textarea::selection,select::selection,[contenteditable=true]::selection{background-color:#2f7dd659;color:var(--neutral-900)}input[type=text]::-moz-selection,input[type=password]::-moz-selection,input[type=email]::-moz-selection,input[type=search]::-moz-selection,input[type=number]::-moz-selection,input[type=url]::-moz-selection,textarea::-moz-selection,select::-moz-selection,[contenteditable=true]::-moz-selection{background-color:#2f7dd659;color:var(--neutral-900)}.cookie-consent-backdrop{position:fixed;inset:0;z-index:10010;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;padding:.75rem;background:#02061733}.cookie-consent-banner{width:min(980px,100%);pointer-events:auto;background:#fff;border:1px solid #d0dae8;box-shadow:0 16px 44px #0818363d;border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.9rem}.cookie-consent-banner h3{font-size:1rem;color:#0f2646}.cookie-consent-banner p{margin:0;color:#27476c;line-height:1.45;font-size:.94rem}.cookie-consent-links a{color:#0f4f8f;text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:.5rem}.cookie-btn{border:1px solid #aac2de;border-radius:10px;font-weight:600;font-size:.9rem;padding:.6rem .75rem;cursor:pointer;background:#f8fbff;color:#123152}.cookie-btn:disabled{opacity:.55;cursor:not-allowed}.cookie-btn-primary{background:#0f4f8f;border-color:#0f4f8f;color:#fff}.cookie-btn-secondary{background:#f8fbff}.cookie-category-list{display:flex;flex-direction:column;gap:.6rem}.cookie-category{display:flex;justify-content:space-between;align-items:center;gap:.9rem;border:1px solid #d5e3f2;border-radius:10px;padding:.65rem .75rem;background:#fcfdff}.cookie-category-required{background:#f4f8fd}.cookie-category-text{display:flex;flex-direction:column;gap:.15rem;color:#102746}.cookie-category-text small{color:#405f82;font-size:.8rem}.cookie-category input[type=checkbox]{width:18px;height:18px;accent-color:#0f4f8f}@media(max-width:720px){.cookie-consent-backdrop{padding:.45rem}.cookie-consent-banner{border-radius:12px;padding:.8rem;gap:.75rem}.cookie-consent-actions{display:grid;grid-template-columns:1fr}}.cookie-settings-button{position:fixed;left:calc(env(safe-area-inset-left,0px) + 12px);bottom:calc(env(safe-area-inset-bottom,0px) + 12px);z-index:10009;border:1px solid #b5cde8;border-radius:999px;background:#fff;color:#123152;padding:.45rem .7rem;font-size:.76rem;font-weight:600;cursor:pointer;box-shadow:0 8px 22px #10264629}.cookie-settings-button:hover{background:#f5f9ff}@media(max-width:768px){.cookie-settings-button{font-size:.72rem;padding:.4rem .65rem}}.error-boundary{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#1e3a5f,#2d5aa0);color:#fff}.error-boundary__content{text-align:center;max-width:480px;padding:2.5rem;background:#ffffff14;border-radius:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);box-shadow:0 8px 32px #0003}.error-boundary__icon{font-size:4rem;margin-bottom:1rem;opacity:.9}.error-boundary__title{font-size:1.75rem;font-weight:600;margin:0 0 1rem;text-shadow:0 1px 2px rgba(0,0,0,.2)}.error-boundary__message{font-size:1rem;line-height:1.6;margin:0 0 1.5rem;opacity:.9}.error-boundary__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.error-boundary__btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;border:2px solid transparent}.error-boundary__btn--primary{background:#fff3;color:#fff;border-color:#ffffff4d}.error-boundary__btn--primary:hover{background:#ffffff4d;border-color:#ffffff80;color:#fff;transform:translateY(-1px)}.error-boundary__btn--secondary{background:#fff;color:#2d5aa0;border-color:#fff}.error-boundary__btn--secondary:hover{background:#fffffff2;transform:translateY(-1px);box-shadow:0 4px 12px #0003}@media(max-width:480px){.error-boundary__content{padding:1.5rem}.error-boundary__title{font-size:1.5rem}.error-boundary__actions{flex-direction:column}.error-boundary__btn{width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--white);color:var(--neutral-900)}body.app-loading{background:linear-gradient(180deg,var(--white) 0%,var(--neutral-50) 100%)!important}body.app-loading #root{background:transparent!important}html:has(body.app-loading){background:linear-gradient(180deg,var(--white) 0%,var(--neutral-50) 100%)!important}.App{min-height:0;flex:1;height:100%;width:100%;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;box-sizing:border-box;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.access-notice{height:100%;display:flex;align-items:center;justify-content:center;background:var(--gradient-hero);color:#fff}.notice-content{text-align:center;padding:2rem;background:var(--surface-glass-subtle);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-on-dark-20);box-shadow:0 8px 32px var(--shadow-soft);max-width:500px;margin:1rem}.notice-content h1{font-size:2.5rem;margin-bottom:1.5rem;font-weight:600;text-shadow:var(--text-shadow-dark)}.notice-message p{font-size:1.2rem;margin:.8rem 0;line-height:1.6;opacity:.9}.notice-message p:first-child{font-weight:500}@media(max-width:768px){.notice-content{margin:1rem;padding:1.5rem}.notice-content h1{font-size:2rem}.notice-message p{font-size:1.1rem}}.class-route-loading{min-height:100vh;max-width:1200px;margin:0 auto;padding:20px 10px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--white) 0%,var(--neutral-50) 100%);color:var(--neutral-900)}@media(min-width:769px)and (max-width:1024px){.class-route-loading{padding:20px 15px}}@media(max-width:768px){.class-route-loading{padding:15px 5px}}.class-route-loading .timeline-loading p{color:var(--neutral-500)}@keyframes page-loading-spin{to{transform:rotate(360deg)}}@keyframes page-loading-fade-in{0%{opacity:0}to{opacity:1}}.page-loading-fallback{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:9998;background:linear-gradient(180deg,var(--white) 0%,var(--neutral-50) 100%);display:flex;align-items:center;justify-content:center;animation:page-loading-fade-in .15s ease-out;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);box-sizing:border-box}@supports (height: 100svh){.page-loading-fallback{height:100svh}}@media(display-mode:standalone),(display-mode:fullscreen){.page-loading-fallback{height:100vh}}.page-loading-inner{display:flex;flex-direction:column;align-items:center;gap:1rem}.page-loading-spinner{position:relative;width:60px;height:60px}.page-loading-ring{position:absolute;width:100%;height:100%;border:3px solid transparent;border-top-color:var(--accent);border-radius:50%;animation:page-loading-spin 1.2s linear infinite}.page-loading-ring-2{width:42px;height:42px;top:9px;left:9px;border-top-color:var(--shadow-accent-strong);animation-direction:reverse;animation-delay:.15s}@media(prefers-reduced-motion:reduce){.page-loading-ring,.page-loading-fallback{animation:none}}.timeline-container{padding:20px 10px;max-width:1200px;margin:0 auto}.timeline{position:relative;width:100%}.attention-notice{background:linear-gradient(135deg,var(--warning-light) 0%,var(--warning-light-alt) 100%);border:2px solid var(--warning);border-left:6px solid var(--warning);border-radius:.75rem;padding:1rem 1.5rem;margin:0 1rem 2rem;display:flex;align-items:flex-start;gap:.75rem;box-shadow:0 4px 12px var(--shadow-warning);animation:attention-slide-in .5s ease-out;position:relative}.attention-icon{font-size:1.5rem;flex-shrink:0}.attention-text{flex:1;font-size:1rem;line-height:1.5;color:var(--warning-text);font-weight:500}.attention-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:1.25rem;color:var(--warning-text);cursor:pointer;padding:.25rem;border-radius:.25rem;line-height:1;transition:all .2s ease}.attention-close:hover{background:var(--warning-light);color:var(--warning-text-dark)}@keyframes attention-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.attention-notice{margin:0 .5rem 1.5rem;padding:.75rem 2rem .75rem 1rem}.attention-icon{font-size:1.25rem}.attention-text{font-size:.9rem}.attention-close{top:.5rem;right:.5rem;font-size:1.1rem}}.App .timeline-header,.App .admin-header-new{min-height:56px;display:flex;align-items:center}.App .timeline-header .header-content,.App .admin-header-new .header-content-new{width:100%;max-width:1200px;margin:0 auto;padding:.4rem 2rem .65rem;box-sizing:border-box}.App .timeline-header .class-badge,.App .admin-header-new .class-badge{display:flex;align-items:center;gap:.65rem;padding:.4rem 1rem .5rem;border-radius:10px}.App .timeline-header .badge-logo,.App .admin-header-new .badge-logo{width:32px;height:32px;flex-shrink:0;border-radius:6px;filter:drop-shadow(0 2px 4px var(--shadow-soft))}.App .timeline-header .class-details,.App .admin-header-new .class-details{display:flex;flex-direction:column;gap:.15rem}.App .timeline-header .class-title,.App .admin-header-new .class-title{font-size:1rem;font-weight:700;color:var(--white);margin:0;line-height:1.2}.App .timeline-header .teacher-names,.App .admin-header-new .teacher-names{font-size:.85rem;color:var(--text-on-dark);font-weight:500;margin:0;line-height:1.2}.lesson-container{position:relative;margin:30px 0;width:100%}.theme-section{position:relative;margin:50px 0}.theme-container{position:relative;width:100%;z-index:10}.theme-bubble{background:var(--gradient-hero);color:#fff;border-radius:20px;padding:25px 20px;margin:0 5%;box-shadow:0 8px 25px var(--shadow-blue);text-align:center;position:relative;cursor:pointer;transition:all .3s ease;z-index:10}.theme-bubble:hover{transform:translateY(-2px);box-shadow:0 12px 30px var(--shadow-blue-hover)}.theme-title{font-size:22px;font-weight:700;margin-bottom:8px;line-height:1.2}.theme-description{font-size:16px;font-weight:400;opacity:.9;line-height:1.3;margin-bottom:10px}.theme-toggle-icon{font-size:18px;font-weight:700;transition:transform .3s ease}.timeline-dot.theme-dot{background:var(--blue-900);width:20px;height:20px;border:4px solid white;z-index:5}.lessons-container{position:relative;z-index:1;animation:slideDown .3s ease}.timeline-arrow{position:relative;text-align:center;margin-top:30px;z-index:1}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.lesson-date{font-size:14px;font-weight:600;color:var(--blue-700);margin-bottom:8px}.lesson-topic{font-size:16px;font-weight:500;color:var(--neutral-900);line-height:1.3}.lesson-details{margin-top:20px;animation:fadeIn .3s ease}.lesson-header{margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--neutral-200)}.lesson-header h4{font-size:24px;font-weight:700;color:var(--neutral-900);margin-bottom:12px}.lesson-description{font-size:14px;line-height:1.5;color:var(--neutral-500);margin:0}.content-sections{display:flex;flex-direction:column;gap:20px}.content-section{background:var(--neutral-50);border-radius:12px;padding:16px;border-left:4px solid var(--blue-700)}.section-title{font-size:16px;font-weight:600;color:var(--neutral-900);margin:0 0 12px;display:flex;align-items:center;gap:8px}.content-grid{display:flex;flex-direction:column;gap:12px}.content-item{background:var(--white);border-radius:8px;padding:12px;box-shadow:0 2px 8px var(--shadow-soft-08);border:1px solid var(--neutral-200);transition:all .2s ease}.content-item:hover{box-shadow:0 4px 12px var(--shadow-12);transform:translateY(-1px)}.content-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.content-icon{font-size:18px}.content-title{font-weight:500;color:var(--neutral-900);flex:1}.content-type{background:var(--blue-700);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase}.due-date{background:var(--danger);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;margin-left:auto;margin-right:8px}.content-text{font-size:14px;line-height:1.5;color:var(--neutral-500);margin-top:8px}.content-file{margin-top:8px}.file-link{display:inline-flex;align-items:center;gap:4px;background:var(--blue-700);color:#fff;text-decoration:none;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;transition:background .2s ease}.file-link:hover{background:var(--blue-500);text-decoration:none;color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.app-header h1{font-size:24px}.timeline-container{padding:15px 5px}.lesson-date{font-size:13px}.lesson-topic{font-size:15px}.lesson-header h4{font-size:20px}.lesson-description{font-size:13px}.section-title{font-size:14px}.content-section{padding:12px}.content-item{padding:10px}.content-text{font-size:13px}.theme-bubble{margin:0 2%;padding:20px 15px}.theme-title{font-size:18px}.theme-description{font-size:14px}.theme-toggle-icon{font-size:16px}.timeline-arrow{margin-top:20px}}@media(min-width:769px)and (max-width:1024px){.timeline-container{padding:20px 15px}}
