/*!
 * Quill Editor v2.0.2
 * https://quilljs.com
 * Copyright (c) 2017-2024, Slab
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{height:1px;left:-100000px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{word-wrap:break-word;box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;height:100%;line-height:1.42;outline:none;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre{margin:0;padding:0}@supports (counter-set:none){.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor p{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor p{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor li,.ql-editor ol{padding-left:1.5em}.ql-editor li{list-style-type:none;position:relative}.ql-editor li>.ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:"\2022"}.ql-editor li[data-list=checked]>.ql-ui:before{content:"\2611"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:"\2610"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0,decimal) ". "}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1,lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2,lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3,decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4,lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5,lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6,decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7,lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8,lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:"";display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:none}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor .ql-code-block-container,.ql-snow .ql-editor code{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor .ql-code-block-container{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;padding:2px 4px;width:24px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{margin-top:-9px;position:absolute;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-code-block-container{position:relative}.ql-code-block-container .ql-ui{right:5px;top:5px}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:0 2px 8px rgba(0,0,0,.2)}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;display:none;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.video-call-page{background:#1a1a1a;color:#fff;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;height:100vh;overflow:hidden;width:100vw}.video-call-page-header{align-items:center;background:rgba(0,0,0,.8);border-bottom:1px solid hsla(0,0%,100%,.1);display:flex;justify-content:space-between;padding:16px 24px;z-index:100}.video-call-page-header .header-left{align-items:center;display:flex;gap:16px}.video-call-page-header h1{font-size:20px;font-weight:600;margin:0}.video-call-page-header .current-user{align-items:center;color:hsla(0,0%,100%,.7);display:flex;font-size:14px;gap:8px}.video-call-page-header .user-role-badge{background:rgba(25,118,210,.3);border-radius:4px;color:#64b5f6;font-size:12px;padding:2px 8px}.video-call-page-header .call-info{align-items:center;display:flex;gap:16px}.video-call-page-header .peer-info{display:flex;flex-direction:column}.video-call-page-header .peer-name{font-size:18px;font-weight:600}.video-call-page-header .call-duration,.video-call-page-header .call-status{color:hsla(0,0%,100%,.7);font-size:14px}.video-call-page-header .header-right{align-items:center;display:flex;gap:16px}.btn-leave{background:#c62828;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:background .2s,transform .1s}.btn-leave:hover{background:#b71c1c;transform:scale(1.02)}.btn-leave:active{transform:scale(.98)}.btn-close-window{align-items:center;background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:36px;justify-content:center;transition:background .2s;width:36px}.btn-close-window:hover{background:hsla(0,0%,100%,.3)}.video-call-page-content{align-items:center;display:flex;flex:1 1;justify-content:center;position:relative}.video-call-page-body{display:flex;flex:1 1;overflow:hidden}.contacts-panel{background:#242424;border-right:1px solid hsla(0,0%,100%,.1);display:flex;flex-direction:column;min-width:280px;overflow:hidden;width:320px}.contacts-panel-header{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.1);display:flex;justify-content:space-between;padding:16px 20px}.contacts-panel-header h2{font-size:16px;font-weight:600;margin:0}.contacts-count{background:rgba(25,118,210,.3);border-radius:12px;color:#64b5f6;font-size:12px;font-weight:600;padding:2px 10px}.video-panel{align-items:center;background:#1a1a1a;display:flex;flex:1 1;justify-content:center;position:relative}.video-idle{color:hsla(0,0%,100%,.6);text-align:center}.video-idle .idle-icon{font-size:64px;margin-bottom:16px}.video-idle h3{color:#fff;font-size:24px;margin:0 0 8px}.video-idle p{font-size:14px;margin:0}.video-idle .online-count{color:#4caf50;font-weight:500;margin-top:24px}.call-message{align-items:center;display:flex;flex-direction:column;gap:16px;padding:40px;text-align:center}.call-message h3{font-size:28px;margin:0}.call-message p{color:hsla(0,0%,100%,.7);font-size:16px;margin:0}.caller-avatar{align-items:center;background:linear-gradient(135deg,#1976d2,#0d47a1);border-radius:50%;display:flex;font-size:40px;font-weight:600;height:120px;justify-content:center;width:120px}.caller-avatar.pulse{animation:avatarPulse 2s ease-in-out infinite}@keyframes avatarPulse{0%,to{box-shadow:0 0 0 0 rgba(25,118,210,.4);transform:scale(1)}50%{box-shadow:0 0 0 25px rgba(25,118,210,0);transform:scale(1.05)}}.message-icon{font-size:64px}.call-actions{display:flex;gap:32px;margin-top:24px}.btn-accept,.btn-reject{border-radius:16px;font-weight:500;padding:16px 28px}.btn-icon{align-items:center;background:hsla(0,0%,100%,.2);border-radius:50%;display:flex;font-size:24px;height:48px;justify-content:center;width:48px}.btn-cancel{background:#c62828;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;margin-top:24px;padding:14px 36px;transition:background .2s}.btn-cancel:hover{background:#b71c1c}.btn-primary{background:#1976d2;border:none;border-radius:8px;cursor:pointer;font-size:16px;margin-top:16px;padding:14px 36px;transition:background .2s}.btn-primary:hover{background:#1565c0}.remote-video-wrapper{align-items:center;background:#000;display:flex;height:100%;justify-content:center;width:100%}.remote-video-wrapper.video-off .remote-video{display:none}.video-off-placeholder{align-items:center;color:hsla(0,0%,100%,.7);display:none;flex-direction:column;gap:16px}.remote-video-wrapper.video-off .video-off-placeholder{display:flex}.avatar-large{align-items:center;background:linear-gradient(135deg,#1976d2,#0d47a1);border-radius:50%;color:#fff;display:flex;font-size:40px;font-weight:600;height:120px;justify-content:center;width:120px}.peer-muted{background:rgba(0,0,0,.7);border-radius:8px;font-size:14px;padding:8px 16px;position:absolute;right:24px;top:80px}.local-video-wrapper{background:#333;border:2px solid hsla(0,0%,100%,.2);border-radius:12px;bottom:100px;box-shadow:0 4px 20px rgba(0,0,0,.4);height:165px;overflow:hidden;position:absolute;right:24px;width:220px}.local-video-wrapper.video-off .local-video{display:none}.local-video-off{align-items:center;background:#2a2a2a;color:hsla(0,0%,100%,.6);display:none;font-size:14px;height:100%;justify-content:center;width:100%}.local-video-wrapper.video-off .local-video-off{display:flex}.video-call-page-controls{background:rgba(0,0,0,.7);border-radius:50px;bottom:24px;display:flex;gap:16px;left:50%;padding:16px 28px;position:absolute;transform:translateX(-50%);z-index:100}.control-button{align-items:center;background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:56px;justify-content:center;transition:background .2s,transform .2s;width:56px}.control-button:hover{background:hsla(0,0%,100%,.3);transform:scale(1.1)}.control-button.off{background:#c62828}.control-button.end-call{background:#c62828;transform:rotate(135deg)}.control-button.end-call:hover{background:#b71c1c}.call-message.error p{color:#ef5350}@media (max-width:600px){.local-video-wrapper{bottom:120px;height:105px;right:16px;width:140px}.video-call-page-controls{gap:12px;padding:12px 20px}.control-button{font-size:20px;height:48px;width:48px}.caller-avatar{font-size:32px;height:100px;width:100px}.call-message h3{font-size:22px}}.contacts-panel .error-banner{font-size:13px;margin:12px;padding:10px 14px}.contacts-panel .loading-contacts,.contacts-panel .no-contacts{color:hsla(0,0%,100%,.5);padding:32px 16px;text-align:center}.contacts-panel .no-contacts .hint{font-size:12px;margin-top:8px;opacity:.7}.contacts-panel .contacts-list{flex:1 1;overflow-y:auto;padding:8px}.contacts-panel .contact-item{border-radius:8px;gap:12px;margin-bottom:4px;padding:12px}.contacts-panel .contact-avatar{font-size:14px;height:40px;width:40px}.contacts-panel .online-indicator{border-width:2px;height:10px;width:10px}.contacts-panel .contact-info{gap:2px}.contacts-panel .contact-name{font-size:14px}.contacts-panel .contact-role{font-size:10px;padding:1px 6px}.contacts-panel .contact-actions{gap:4px}.contacts-panel .btn-call-action{font-size:14px;height:36px;width:36px}.contacts-view{height:100%;max-width:600px;overflow-y:auto;padding:24px;width:100%}.contacts-header{margin-bottom:24px;text-align:center}.contacts-header h2{font-size:24px;font-weight:600;margin:0 0 8px}.contacts-header p{color:hsla(0,0%,100%,.6);font-size:14px;margin:0}.error-banner{background:rgba(198,40,40,.2);border:1px solid #c62828;border-radius:8px;color:#ef5350;margin-bottom:16px;padding:12px 16px;text-align:center}.loading-contacts,.no-contacts{color:hsla(0,0%,100%,.6);padding:48px 24px;text-align:center}.contacts-list{display:flex;flex-direction:column;gap:8px}.contact-item{align-items:center;background:hsla(0,0%,100%,.05);border-radius:12px;display:flex;gap:16px;padding:16px;transition:background .2s}.contact-item:hover{background:hsla(0,0%,100%,.1)}.contact-item.offline{opacity:.6}.contact-avatar{align-items:center;background:linear-gradient(135deg,#1976d2,#0d47a1);border-radius:50%;display:flex;flex-shrink:0;font-size:18px;font-weight:600;height:50px;justify-content:center;position:relative;width:50px}.online-indicator{background:#666;border:2px solid #1a1a1a;border-radius:50%;bottom:2px;height:12px;position:absolute;right:2px;width:12px}.online-indicator.online{background:#4caf50}.contact-info{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.contact-name{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-role{background:rgba(25,118,210,.2);border-radius:4px;color:#64b5f6;font-size:12px;padding:2px 8px;width:-webkit-fit-content;width:fit-content}.contact-status{color:hsla(0,0%,100%,.5);font-size:12px}.contact-actions{display:flex;flex-shrink:0;gap:8px}.btn-call-action{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:18px;height:44px;justify-content:center;transition:transform .2s,background .2s;width:44px}.btn-call-action.audio{background:rgba(76,175,80,.2);color:#4caf50}.btn-call-action.audio:hover:not(:disabled){background:#4caf50;color:#fff;transform:scale(1.1)}.btn-call-action.video{background:rgba(25,118,210,.2);color:#1976d2}.btn-call-action.video:hover:not(:disabled){background:#1976d2;color:#fff;transform:scale(1.1)}.btn-call-action:disabled{cursor:not-allowed;opacity:.3}.video-call-page:has(.video-streams) .video-call-page-header{background:rgba(0,0,0,.6);border-bottom:none;left:0;position:absolute;right:0;top:0}@media (max-width:768px){.video-call-page-body{flex-direction:column}.contacts-panel{border-bottom:1px solid hsla(0,0%,100%,.1);border-right:none;height:50%;width:100%}.video-panel{height:50%}.video-call-page-header h1{font-size:16px}.btn-leave{font-size:13px;padding:8px 16px}}.control-button.screen-share{background:rgba(156,39,176,.2)}.control-button.screen-share:hover{background:rgba(156,39,176,.4)}.control-button.screen-share.active{animation:pulse-purple 2s infinite;background:#9c27b0}@keyframes pulse-purple{0%,to{box-shadow:0 0 0 0 rgba(156,39,176,.4)}50%{box-shadow:0 0 0 10px rgba(156,39,176,0)}}.remote-video-wrapper.screen-share{border:2px solid #9c27b0}.screen-share-indicator{align-items:center;background:rgba(156,39,176,.9);border-radius:4px;color:#fff;display:flex;font-size:13px;font-weight:600;gap:6px;left:16px;padding:6px 12px;position:absolute;top:16px;z-index:10}.local-video-wrapper.screen-share{border:2px solid #9c27b0}.local-screen-share-badge{background:rgba(156,39,176,.9);border-radius:3px;color:#fff;font-size:12px;left:4px;padding:2px 6px;position:absolute;top:4px}.control-button.record{background:rgba(244,67,54,.2)}.control-button.record:hover{background:rgba(244,67,54,.4)}.control-button.record.active{animation:pulse-red 1.5s infinite;background:#f44336}@keyframes pulse-red{0%,to{box-shadow:0 0 0 0 rgba(244,67,54,.6)}50%{box-shadow:0 0 0 12px rgba(244,67,54,0)}}.recording-indicator{align-items:center;animation:fadeIn .3s ease-out;background:rgba(244,67,54,.95);border-radius:6px;color:#fff;display:flex;font-size:14px;font-weight:700;gap:8px;padding:8px 14px;position:absolute;right:16px;top:16px;z-index:20}.recording-dot{animation:blink 1s infinite;background:#fff;border-radius:50%;height:10px;width:10px}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:.3}}.recording-status{animation:fadeIn .3s ease-out;border-radius:6px;font-size:14px;font-weight:600;padding:10px 16px;position:absolute;right:16px;top:16px;z-index:20}.recording-status.uploading{background:rgba(255,152,0,.95);color:#fff}.recording-status.uploaded{background:rgba(76,175,80,.95);color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}.container{margin:0 auto;max-width:1200px;padding:20px}.auth-container{align-items:center;background:linear-gradient(135deg,#1976d2,#0d47a1);display:flex;justify-content:center;min-height:100vh}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);max-width:400px;padding:40px;width:100%}.auth-card h1{color:#1976d2;margin-bottom:8px;text-align:center}.auth-card h2{color:#666;font-size:1.1rem;font-weight:400;margin-bottom:30px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:6px}.form-group input{border:2px solid #e0e0e0;border-radius:8px;font-size:16px;padding:12px 16px;transition:border-color .2s;width:100%}.form-group input:focus{border-color:#1976d2;outline:none}.btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:background-color .2s,transform .1s;width:100%}.btn:active{transform:scale(.98)}.btn-primary{background-color:#1976d2;color:#fff}.btn-primary:hover{background-color:#1565c0}.btn-primary:disabled{background-color:#90caf9;cursor:not-allowed}.btn-link{background:none;border:none;color:#1976d2;cursor:pointer;display:block;font-size:14px;margin-top:16px;text-align:center;text-decoration:underline}.btn-link:hover{color:#0d47a1}.error-message{background-color:#ffebee;color:#c62828}.error-message,.success-message{border-radius:8px;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}.success-message{background-color:#e8f5e9;color:#2e7d32}.home-container{background-color:#f5f5f5;min-height:100vh}.navbar{background-color:#1976d2;box-shadow:0 2px 8px rgba(0,0,0,.1);justify-content:space-between;padding:16px 24px}.navbar,.navbar-left{align-items:center;display:flex}.navbar-left{gap:12px}.btn-menu{background:hsla(0,0%,100%,.2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1.4rem;line-height:1;padding:8px 12px;transition:background .2s}.btn-menu:hover{background:hsla(0,0%,100%,.3)}.navbar h1{color:#fff;font-size:1.5rem}.navbar-user{align-items:center;display:flex;gap:16px}.navbar-user span{color:#fff}.btn-logout{background-color:hsla(0,0%,100%,.2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.btn-logout:hover{background-color:hsla(0,0%,100%,.3)}.dashboard{padding:40px}.welcome-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);margin:0 auto;max-width:600px;padding:40px;text-align:center}.welcome-card h2{color:#1976d2;margin-bottom:16px}.welcome-card p{color:#666;font-size:1.1rem}.role-badge{background-color:#e3f2fd;border-radius:20px;color:#1976d2;display:inline-block;font-size:14px;margin:4px;padding:4px 12px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-left:auto;margin-right:auto;margin-top:40px;max-width:800px}.stat-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);padding:24px;text-align:center}.stat-card h3{color:#1976d2;font-size:2rem;margin-bottom:8px}.stat-card p{color:#666}.app-wrapper{display:flex;flex-direction:column;min-height:100vh}.version-footer{background:transparent;bottom:0;font-size:12px;left:0;padding:8px 16px;pointer-events:none;position:fixed;right:0;text-align:center;z-index:1000}.auth-container~.version-footer,.version-footer{color:hsla(0,0%,100%,.7)}.home-container~.version-footer{color:rgba(0,0,0,.4)}.welcome-card .role-indicator{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-top:12px;padding:6px 16px;text-transform:uppercase}.admin-welcome .role-indicator{background:#e3f2fd;color:#1565c0}.course-admin-welcome .role-indicator{background:#e0f7fa;color:#00838f}.principal-welcome .role-indicator{background:#f3e5f5;color:#7b1fa2}.parent-welcome .role-indicator{background:#e8f5e9;color:#2e7d32}.student-welcome .role-indicator{background:#fff3e0;color:#ef6c00}.program-welcome .role-indicator{background:#e0f7fa;color:#00838f}.admin-actions,.parent-actions,.principal-actions,.program-actions,.student-actions{margin:40px auto 0;max-width:800px;padding:0 20px}.admin-actions h3,.parent-actions h3,.principal-actions h3,.program-actions h3,.student-actions h3{color:#333;margin-bottom:20px}.action-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.action-btn{background:#fff;border:2px solid #e0e0e0;border-radius:12px;color:#555;font-size:14px;font-weight:500;padding:16px 20px}.action-btn:hover:not(:disabled){background:#f5f9ff;border-color:#1976d2;color:#1976d2}.action-btn:disabled{cursor:not-allowed;opacity:.6}.navbar-roles{display:flex;gap:6px;margin-left:12px}.role-badge-small{background:hsla(0,0%,100%,.2);border-radius:12px;color:#fff;font-size:.75rem;font-weight:500;padding:3px 10px}.program-layout{display:flex;gap:24px;margin:0 auto;max-width:1400px;padding:20px}.program-sidebar{flex-shrink:0;width:400px}.program-main{flex:1 1;min-width:0}.history-list-container{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);overflow:hidden}.history-list-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:16px 20px}.history-list-header h3{color:#333;font-size:1.1rem;margin:0 0 12px}.history-filter{display:flex;gap:8px}.history-filter select{background:#fff;border:1px solid #ddd;border-radius:6px;flex:1 1;font-size:14px;padding:8px 12px}.history-list{max-height:500px;overflow-y:auto}.history-item{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:14px 20px;transition:background-color .15s}.history-item:hover{background-color:#f5f9ff}.history-item.selected{background-color:#e3f2fd;border-left:3px solid #1976d2}.history-item-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:6px}.history-item-title{align-items:center;color:#333;display:flex;font-size:.95rem;font-weight:500;gap:6px}.history-item-title.has-file{color:#1976d2;cursor:pointer}.history-item-title.has-file:hover{color:#1565c0;text-decoration:underline}.file-icon{font-size:.85rem}.history-item-type{border-radius:10px;font-size:.7rem;font-weight:500;padding:3px 8px;text-transform:uppercase}.history-item-type.transcript{background:#e8f5e9;color:#2e7d32}.history-item-type.testresult{background:#fff3e0;color:#ef6c00}.history-item-type.document{background:#e3f2fd;color:#1565c0}.history-item-type.certificate{background:#f3e5f5;color:#7b1fa2}.history-item-type.other{background:#f5f5f5;color:#666}.history-item-meta{color:#666;display:flex;font-size:.8rem;gap:16px}.history-item-student{color:#555;font-weight:500}.history-empty{color:#888}.history-empty,.history-loading{padding:40px 20px;text-align:center}.history-loading{color:#666}.file-drop-zone{background:#fafafa;border:2px dashed #ccc;border-radius:12px;cursor:pointer;margin:16px;padding:24px;text-align:center;transition:all .2s}.file-drop-zone:hover:not(.disabled){background:#f5f9ff;border-color:#1976d2}.file-drop-zone.dragging{background:#e3f2fd;border-color:#1976d2;border-style:solid}.file-drop-zone.disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.drop-zone-content{pointer-events:none}.drop-zone-icon{font-size:2.5rem;margin-bottom:8px}.drop-zone-content p{color:#666;margin:4px 0}.drop-zone-hint{color:#888!important;font-size:.85rem}.drop-zone-formats{color:#aaa!important;font-size:.75rem;margin-top:8px!important}.upload-message{border-radius:8px;font-size:.9rem;margin:12px 16px;padding:10px 16px}.upload-message.success{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.upload-message.error{background:#ffebee;border:1px solid #ef9a9a;color:#c62828}.upload-progress{color:#1976d2;font-size:.9rem;padding:8px;text-align:center}.parent-dashboard{max-width:1400px}.parent-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:280px 1fr;margin-top:24px}.parent-sidebar{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);padding:20px}.parent-sidebar h3{border-bottom:2px solid #e91e63;color:#333;font-size:1.1rem;margin:0 0 16px;padding-bottom:12px}.parent-main{gap:24px}.parent-main,.student-list{display:flex;flex-direction:column}.student-list{gap:8px;max-height:400px;overflow-y:auto}.student-item{background:#f8f9fa;border:2px solid transparent;border-radius:8px;cursor:pointer;padding:12px;transition:all .2s ease}.student-item:hover{background:#fce4ec;border-color:#f48fb1}.student-item.selected{background:#fce4ec;border-color:#e91e63}.student-name{color:#333;font-size:.95rem;font-weight:500}.student-relationship{color:#666;font-size:.8rem;margin-top:4px;text-transform:capitalize}.list-empty,.list-error,.list-loading{color:#666;font-size:.9rem;padding:20px;text-align:center}.list-empty small{color:#999;display:block;margin-top:8px}.child-details-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);padding:24px}.child-details-card h3{border-bottom:2px solid #e91e63;color:#333;margin:0 0 16px;padding-bottom:12px}.child-details-card p{color:#555;margin:8px 0}.sidebar-section{margin-bottom:24px}.sidebar-section:last-child{margin-bottom:0}.sidebar-actions{display:flex;flex-direction:column;gap:8px}.sidebar-action-btn{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;color:#333;cursor:pointer;font-size:.9rem;padding:10px 16px;text-align:left;transition:all .2s ease;width:100%}.sidebar-action-btn:hover:not(:disabled){background:#fce4ec;border-color:#f48fb1;color:#c2185b}.sidebar-action-btn:disabled{cursor:not-allowed;opacity:.6}.sidebar-action-btn.program:hover:not(:disabled){background:#e3f2fd;border-color:#64b5f6;color:#1565c0}.program-sidebar .sidebar-section{border-bottom:1px solid #eee;margin-bottom:20px;padding-bottom:16px}.program-sidebar .sidebar-section h3{border-bottom:2px solid #1976d2;color:#333;font-size:1rem;margin:0 0 12px;padding-bottom:8px}.resizable-splitter{display:flex;height:calc(100vh - 60px);overflow:hidden;width:100%}.resizable-left{display:flex;flex-direction:column;flex-shrink:0;height:100%;overflow:hidden;position:relative}.resizable-left .app-sidebar{height:100%;max-width:none;min-width:0;min-width:auto;overflow-x:hidden;overflow-y:auto;width:100%}.resizable-divider{align-items:center;background:linear-gradient(180deg,#1565c0,#0d47a1);cursor:col-resize;display:flex;flex-shrink:0;justify-content:center;min-width:8px;position:relative;transition:all .15s;width:8px;z-index:100}.resizable-divider.dragging,.resizable-divider:hover{background:#1976d2;width:10px}.divider-handle{background:hsla(0,0%,100%,.4);border-radius:2px;height:60px;transition:all .15s;width:4px}.resizable-divider.dragging .divider-handle,.resizable-divider:hover .divider-handle{background:hsla(0,0%,100%,.8);height:80px}.resizable-right{display:flex;flex:1 1;flex-direction:column;height:100%;min-width:300px;overflow:hidden}.dashboard-layout{display:flex;min-height:calc(100vh - 60px)}.app-sidebar{background:linear-gradient(180deg,#1565c0,#0d47a1);color:#fff;display:flex;flex-direction:column;max-width:300px;min-width:220px;overflow-y:auto;width:20%}.sidebar-header{background:rgba(0,0,0,.1);border-bottom:1px solid hsla(0,0%,100%,.1)}.sidebar-title{font-size:1.2rem;font-weight:600;padding:20px 20px 12px}.sidebar-stats{display:flex;gap:16px;padding:0 20px 16px}.sidebar-stat{align-items:center;background:hsla(0,0%,100%,.1);border-radius:8px;display:flex;flex-direction:column;min-width:70px;padding:8px 16px}.sidebar-stat-value{font-size:1.4rem;font-weight:700;line-height:1}.sidebar-stat-label{font-size:.7rem;letter-spacing:.5px;margin-top:4px;opacity:.8;text-transform:uppercase}.sidebar-nav{flex:1 1;overflow-y:auto;padding:12px 0}.sidebar-footer{background:rgba(0,0,0,.1);border-top:1px solid hsla(0,0%,100%,.1);padding:12px 20px}.sidebar-version{font-size:.75rem;opacity:.6}.sidebar-menu-section{margin-bottom:8px}.sidebar-section-title{color:hsla(0,0%,100%,.6);font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:12px 20px 8px;text-transform:uppercase}.sidebar-item{align-items:center;background:transparent;border:none;color:hsla(0,0%,100%,.85);cursor:pointer;display:flex;font-size:.95rem;padding:12px 20px;text-align:left;transition:all .2s ease;width:100%}.sidebar-item:hover:not(.disabled){background:hsla(0,0%,100%,.1);color:#fff}.sidebar-item.active{background:hsla(0,0%,100%,.2);border-left:3px solid #fff;color:#fff}.sidebar-item.disabled{cursor:not-allowed;opacity:.5}.sidebar-item-icon{font-size:1.1rem;margin-right:12px}.sidebar-item-label{flex:1 1}.dashboard-content{background:#f5f5f5;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.dashboard-empty{align-items:center;color:#666;display:flex;font-size:1rem;height:100%;justify-content:center;padding:40px}.dashboard-empty .empty-state{max-width:400px;text-align:center}.dashboard-empty .empty-icon{font-size:3rem;margin-bottom:16px;opacity:.7}.dashboard-empty .empty-state h3{color:#333;font-size:1.3rem;margin:0 0 12px}.dashboard-empty .empty-state p{color:#666;margin:0 0 16px}.dashboard-empty .empty-options{list-style:none;margin:0;padding:0;text-align:left}.dashboard-empty .empty-options li{border-bottom:1px solid #eee;padding:8px 0}.dashboard-empty .empty-options li:last-child{border-bottom:none}.editor-full{display:flex;flex-direction:column;height:100%}.sidebar-filter{padding:8px 16px}.sidebar-select{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.3);border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:10px 12px;width:100%}.sidebar-select option{background:#1565c0;color:#fff}.sidebar-select:focus{background:hsla(0,0%,100%,.15);border-color:#fff;outline:none}.sidebar-history-list{margin:8px 0;max-height:300px;overflow-y:auto}.sidebar-history-item{border-bottom:1px solid hsla(0,0%,100%,.1);cursor:pointer;padding:10px 16px;transition:background .15s}.sidebar-history-item:hover{background:hsla(0,0%,100%,.1)}.sidebar-history-item.active{background:hsla(0,0%,100%,.2)}.sidebar-history-title{color:#fff;display:block;font-size:.9rem;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-history-title .file-icon{margin-right:6px}.sidebar-history-type{background:hsla(0,0%,100%,.2);border-radius:10px;color:#fff;font-size:.7rem;padding:2px 8px;text-transform:uppercase}.sidebar-history-actions{align-items:center;display:flex;gap:6px}.permissions-btn{background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;opacity:.6;padding:2px 4px;transition:opacity .15s,background .15s}.permissions-btn:hover{background:hsla(0,0%,100%,.15);opacity:1}.sidebar-history-item:hover .permissions-btn{opacity:.8}.permissions-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.3);max-width:380px;overflow:hidden;width:100%}.modal-header{background:#1976d2;color:#fff;padding:16px 20px}.modal-header h3{font-size:1.1rem;margin:0}.modal-close{background:transparent;color:#fff;font-size:1.5rem;opacity:.8}.modal-close:hover{opacity:1}.modal-body{padding:20px}.modal-subtitle{color:#666;font-size:.9rem;margin-bottom:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permissions-grid{display:flex;flex-direction:column;gap:12px}.permissions-header{border-bottom:1px solid #eee;color:#666;font-size:.85rem;font-weight:600;padding-bottom:8px;text-align:center}.permissions-header,.permissions-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:80px 1fr 1fr}.permissions-row{align-items:center}.role-label{color:#333;font-weight:500}.checkbox-wrapper{cursor:pointer;display:flex;justify-content:center}.checkbox-wrapper input{accent-color:#1976d2;cursor:pointer;height:18px;width:18px}.modal-footer{background:#f5f5f5;border-top:1px solid #e0e0e0;display:flex;gap:10px;justify-content:flex-end;padding:16px 20px}.modal-footer .btn-secondary{background:#e0e0e0;border:none;border-radius:6px;color:#333;cursor:pointer;font-weight:500;padding:8px 16px}.modal-footer .btn-secondary:hover{background:#d0d0d0}.modal-footer .btn-primary{background:#1976d2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px}.modal-footer .btn-primary:hover{background:#1565c0}.modal-footer .btn-primary:disabled,.modal-footer .btn-secondary:disabled{cursor:not-allowed;opacity:.6}.sidebar-empty,.sidebar-error,.sidebar-loading{color:hsla(0,0%,100%,.7);font-size:.9rem;padding:16px;text-align:center}.app-sidebar .file-drop-zone{background:hsla(0,0%,100%,.05);border-color:hsla(0,0%,100%,.4);margin:8px 12px;padding:16px}.app-sidebar .file-drop-zone:hover:not(.disabled){background:hsla(0,0%,100%,.1);border-color:#fff}.app-sidebar .file-drop-zone.dragging{background:hsla(0,0%,100%,.15);border-color:#fff}.app-sidebar .drop-zone-content p{color:hsla(0,0%,100%,.9)}.app-sidebar .drop-zone-hint{color:hsla(0,0%,100%,.6)!important}.app-sidebar .upload-message{font-size:.85rem;margin:8px 12px}.app-sidebar .upload-progress{color:#fff;font-size:.85rem;padding:8px;text-align:center}.sidebar-section-subtitle{color:hsla(0,0%,100%,.6);font-size:.75rem;letter-spacing:.5px;padding:8px 16px 4px;text-transform:uppercase}.sidebar-course-add{padding:0 12px 8px}.sidebar-program-courses{margin:4px 0;max-height:250px;overflow-y:auto}.sidebar-program-course-item{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.1);display:flex;gap:8px;padding:8px 12px;transition:background .15s}.sidebar-program-course-item:hover{background:hsla(0,0%,100%,.1)}.course-order-controls{display:flex;flex-direction:column;gap:2px}.order-btn{background:hsla(0,0%,100%,.15);border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:.65rem;padding:2px 4px;transition:background .15s}.order-btn:hover:not(:disabled){background:hsla(0,0%,100%,.3)}.order-btn:disabled{cursor:not-allowed;opacity:.3}.course-info{flex:1 1;min-width:0}.course-info .course-title{color:#fff;display:block;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-status-select{background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.3);border-radius:4px;color:#fff;cursor:pointer;font-size:.7rem;margin-top:4px;padding:2px 6px}.course-status-select option{background:#2c3e50;color:#fff}.remove-course-btn{background:transparent;border:none;border-radius:4px;color:hsla(0,0%,100%,.6);cursor:pointer;font-size:1.2rem;padding:2px 6px;transition:color .15s,background .15s}.remove-course-btn:hover{background:hsla(0,0%,100%,.1);color:#ff6b6b}.sidebar-programs-list{border-top:1px solid hsla(0,0%,100%,.1);margin:4px 0;max-height:200px;overflow-y:auto;padding-top:8px}.sidebar-program-item{align-items:center;background:hsla(0,0%,100%,.05);border-radius:6px;cursor:pointer;display:flex;gap:8px;margin:4px 8px;padding:10px 12px;transition:background .15s,transform .1s}.sidebar-program-item:hover{background:hsla(0,0%,100%,.12)}.sidebar-program-item.active{background:rgba(25,118,210,.3);border-left:3px solid #1976d2}.program-item-active-indicator{align-items:center;color:#4caf50;display:flex;font-size:.75rem;font-weight:700;height:18px;justify-content:center;min-width:18px;width:18px}.program-item-info{flex:1 1;min-width:0}.program-item-name{color:#fff;display:block;font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.program-item-year{color:hsla(0,0%,100%,.6);display:block;font-size:.7rem;margin-top:2px}.program-item-count{background:hsla(0,0%,100%,.1);border-radius:10px;color:hsla(0,0%,100%,.5);font-size:.7rem;padding:2px 8px;white-space:nowrap}.sidebar-new-program-btn{background:linear-gradient(135deg,#1976d2,#1565c0);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;margin-top:8px;padding:10px 12px;transition:all .15s;width:100%}.sidebar-new-program-btn:hover{background:linear-gradient(135deg,#1565c0,#0d47a1);transform:translateY(-1px)}.create-program-content{margin:0 auto;max-width:1200px;padding:24px}.program-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.program-header-left{flex:1 1}.program-header-right{align-items:center;display:flex;gap:16px}.program-header-right .header-message{border-radius:4px;font-size:.875rem;padding:6px 12px}.program-header-right .header-message.success{background:#e8f5e9;color:#2e7d32}.program-header-right .header-message.error{background:#ffebee;color:#c62828}.save-program-btn{font-size:1rem;font-weight:600;padding:10px 24px}.content-tabs-bar{background:#1e2a38;border-bottom:1px solid #2c3e50;display:flex;min-height:40px;overflow-x:auto;padding:0 8px;scrollbar-width:thin}.content-tabs-bar::-webkit-scrollbar{height:4px}.content-tabs-bar::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:2px}.content-tab{align-items:center;background:transparent;border:none;border-bottom:2px solid transparent;color:hsla(0,0%,100%,.7);cursor:pointer;display:flex;font-size:.875rem;gap:8px;padding:8px 12px;transition:all .15s;white-space:nowrap}.content-tab:hover{background:hsla(0,0%,100%,.05);color:#fff}.content-tab.active{background:hsla(0,0%,100%,.1);border-bottom-color:#1976d2;color:#fff}.content-tab-icon{font-size:1rem}.content-tab-title{max-width:150px;overflow:hidden;text-overflow:ellipsis}.content-tab-close{background:transparent;border:none;border-radius:4px;color:hsla(0,0%,100%,.5);cursor:pointer;font-size:1rem;line-height:1;padding:2px 6px;transition:all .15s}.content-tab-close:hover{background:hsla(0,0%,100%,.2);color:#fff}.content-tabs-content{flex:1 1;overflow:hidden;position:relative}.content-tab-panel{display:none;height:100%;overflow:auto}.content-tab-panel.active{display:block}.history-content{padding:24px}.history-content h2{color:#1976d2;margin-bottom:8px}.program-header h2{align-items:center;color:#1976d2;display:flex;gap:12px;margin-bottom:4px}.program-active-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.75rem;font-weight:600;gap:4px;padding:4px 10px}.program-active-badge.active{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.program-active-badge.inactive{background:#fff3e0;border:1px solid #ffcc80;color:#e65100}.set-active-btn{margin-right:8px}.program-subtitle{color:#666;font-size:1rem}.program-placeholder{padding:60px 40px}.program-placeholder,.program-setup-form{background:#f8f9fa;border:2px dashed #ddd;border-radius:12px;text-align:center}.program-setup-form{margin:40px auto;max-width:500px;padding:40px}.program-setup-form h3{color:#333;margin-bottom:8px}.program-setup-form p{color:#666;margin-bottom:24px}.setup-form-fields{display:flex;flex-direction:column;gap:16px;text-align:left}.setup-form-fields .form-group{display:flex;flex-direction:column;gap:6px}.setup-form-fields label{color:#555;font-size:13px;font-weight:500}.setup-form-fields .form-select{background:#fff;border:1px solid #ddd;border-radius:6px;font-size:14px;padding:10px 12px}.saved-programs-section{border-top:1px solid #ddd;margin-top:24px;padding-top:24px;text-align:left}.saved-programs-section h4{color:#555;font-size:14px;margin-bottom:12px}.saved-programs-list{display:flex;flex-direction:column;gap:8px}.saved-program-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:10px 12px;transition:all .15s ease}.saved-program-item:hover{background:#e3f2fd;border-color:#1976d2}.sidebar-info{background:#f5f5f5;border-radius:6px;margin-bottom:12px;padding:12px}.info-row{display:flex;font-size:13px;justify-content:space-between;padding:4px 0}.info-label{color:#666}.info-value{color:#333;font-weight:500}.info-value.active{color:#2e7d32}.sidebar-hint{color:#666;font-size:13px;padding:12px;text-align:center}.placeholder-icon{font-size:3rem;margin-bottom:16px}.program-placeholder h3{color:#333;margin-bottom:8px}.program-placeholder p{color:#666;margin:0 auto;max-width:400px}.program-loading{padding:60px 40px;text-align:center}.loading-spinner{margin:0 auto 16px}.program-form{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08)}.form-section{border-bottom:1px solid #eee;padding:20px 24px}.form-section h3{border-bottom:2px solid #1976d2;color:#333;display:inline-block;font-size:1rem;margin-bottom:16px;padding-bottom:8px}.form-input{border:2px solid #e0e0e0;border-radius:6px;font-size:.95rem;padding:10px 14px;transition:border-color .2s;width:100%}.form-input:focus{border-color:#1976d2;outline:none}.form-textarea{border:2px solid #e0e0e0;border-radius:6px;font-family:inherit;font-size:.95rem;padding:10px 14px;resize:vertical;transition:border-color .2s;width:100%}.form-textarea:focus{border-color:#1976d2;outline:none}.no-courses-message{background:#f8f9fa;border-radius:8px;padding:24px;text-align:center}.no-courses-message p{color:#666;margin-bottom:8px}.no-courses-message .hint{color:#999;font-size:.85rem}.program-courses-table{overflow-x:auto}.program-courses-table table{border-collapse:collapse;width:100%}.program-courses-table td,.program-courses-table th{border-bottom:1px solid #eee;padding:12px;text-align:left}.program-courses-table th{background:#f8f9fa;color:#555;font-size:.85rem;font-weight:600;text-transform:uppercase}.program-courses-table tr:hover{background:#f8f9fa}.status-badge{border-radius:12px;font-size:.75rem;padding:4px 10px;text-transform:uppercase}.status-badge.status-planned{background:#e3f2fd;color:#1976d2}.status-badge.status-in-progress{background:#fff3e0;color:#f57c00}.status-badge.status-completed{background:#e8f5e9;color:#388e3c}.status-badge.status-dropped{background:#ffebee;color:#c62828}.btn-icon{padding:4px 8px;transition:background .15s}.btn-icon:hover{background:#f0f0f0}.form-actions{border-top:1px solid #eee;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.form-actions .btn-primary{padding:10px 24px;width:auto}.form-actions .btn-secondary{background:#f0f0f0;color:#333;padding:10px 24px;width:auto}.form-actions .btn-secondary:hover{background:#e0e0e0}.template-section{padding:20px 24px}.template-section .section-description{color:#666;font-size:.9rem;line-height:1.5;margin-bottom:16px}.template-section .template-selector{min-height:450px}.create-program-content.with-templates{max-width:1400px}.content-section{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);margin-left:auto;margin-right:auto;margin-top:24px;max-width:800px;padding:24px}.content-section h3{border-bottom:2px solid #1976d2;color:#333;margin-bottom:16px;padding-bottom:12px}.user-list-container{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);margin-top:24px;overflow:hidden}.user-list-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #1976d2;display:flex;justify-content:space-between;padding:20px 24px}.user-list-header h3{color:#333;margin:0}.user-list-header-right{align-items:center;display:flex;gap:16px}.btn-add-user{align-items:center;background:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:6px;padding:8px 16px;transition:background .2s}.btn-add-user:hover{background:#43a047}.user-count{background:#e3f2fd;border-radius:20px;color:#1565c0;font-size:.85rem;font-weight:500;padding:4px 12px}.user-list{overflow-x:auto}.user-table{border-collapse:collapse;width:100%}.user-table td,.user-table th{border-bottom:1px solid #eee;padding:14px 20px;text-align:left}.user-table th{background:#f8f9fa;color:#555;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.user-table tr:hover{background:#f5f9ff}.user-table tr.inactive-row{background:#fafafa;opacity:.7}.user-name{color:#1976d2;cursor:pointer;font-weight:500}.user-name:hover{text-decoration:underline}.user-email{color:#666}.status-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:4px 12px;text-transform:capitalize}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.inactive{background:#ffebee;color:#c62828}.btn-edit,.btn-status{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;padding:6px 12px;transition:all .2s}.btn-edit{background:#e3f2fd;color:#1565c0}.btn-edit:hover{background:#bbdefb}.btn-status.activate{background:#e8f5e9;color:#2e7d32}.btn-status.activate:hover{background:#c8e6c9}.btn-status.deactivate{background:#ffebee;color:#c62828}.btn-status.deactivate:hover{background:#ffcdd2}.btn-edit:disabled,.btn-status:disabled{cursor:not-allowed;opacity:.5}.content-error,.content-loading{background:#fff;border-radius:12px;color:#666;margin-top:24px;padding:40px;text-align:center}.content-error{background:#ffebee;color:#c62828}.modal-overlay{align-items:center;background:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #1976d2;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#333;font-size:1.3rem;margin:0}.modal-close{background:none;border:none;color:#999;cursor:pointer;font-size:1.8rem;height:32px;line-height:1;padding:0;width:32px}.modal-close:hover{color:#333}.modal-error,.modal-loading{color:#666;padding:40px;text-align:center}.modal-error{color:#c62828}.user-edit-form{padding:24px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.form-row,.user-edit-form .form-group{margin-bottom:16px}.user-edit-form .form-group label{color:#555;display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.user-edit-form .form-group input{border:2px solid #e0e0e0;border-radius:8px;font-size:15px;padding:10px 14px;transition:border-color .2s;width:100%}.user-edit-form .form-group input:focus{border-color:#1976d2;outline:none}.form-error{background:#ffebee;border-radius:8px;color:#c62828;margin-bottom:16px;padding:12px;text-align:center}.form-info{background:#f5f5f5;margin-top:16px;padding:16px}.form-info p{color:#555;margin:4px 0}.password-note{color:#888!important;font-size:.9rem;margin-top:8px!important}.roles-section{background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;margin-top:20px;padding:16px}.roles-section h4{color:#1565c0;font-size:1rem;margin:0 0 12px}.current-roles{margin-bottom:12px}.no-roles{color:#666;font-style:italic;margin:0}.role-tags{display:flex;flex-wrap:wrap;gap:8px}.role-tag{background:#1976d2;border-radius:20px;display:inline-flex;font-size:.9rem;font-weight:500;gap:6px;padding:6px 12px}.role-remove-btn,.role-tag{align-items:center;color:#fff}.role-remove-btn{background:hsla(0,0%,100%,.3);border:none;border-radius:50%;cursor:pointer;display:flex;font-size:14px;height:18px;justify-content:center;line-height:1;transition:background .2s;width:18px}.role-remove-btn:hover{background:hsla(0,0%,100%,.5)}.role-remove-btn:disabled{cursor:not-allowed;opacity:.5}.add-role-section{align-items:center;display:flex;gap:8px}.role-select{background:#fff;border:2px solid #90caf9;border-radius:8px;flex:1 1;font-size:14px;padding:8px 12px}.role-select:focus{border-color:#1976d2;outline:none}.btn-add-role{background:#4caf50;color:#fff;font-size:14px;padding:8px 16px;width:auto}.btn-add-role:hover{background:#43a047}.btn-add-role:disabled{background:#bdbdbd;cursor:not-allowed}.modal-actions{border-top:1px solid #eee;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.btn-secondary{background:#f5f5f5;border:1px solid #ddd;color:#555}.btn-secondary:hover{background:#eee}.role-list-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden}.role-list-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #1976d2;display:flex;justify-content:space-between;padding:20px 24px}.role-list-header h3{color:#333;font-size:1.2rem;margin:0}.role-list-header .header-actions{align-items:center;display:flex;gap:16px}.role-count{color:#666;font-size:.9rem}.btn-add{background:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background .2s;width:auto}.btn-add:hover{background:#43a047}.role-table{border-collapse:collapse;width:100%}.role-table th{background:#f0f0f0;border-bottom:1px solid #ddd;color:#555;font-weight:600;padding:14px 20px;text-align:left}.role-table td{border-bottom:1px solid #eee;padding:14px 20px}.role-table tr:hover{background:#f8f9fa}.role-table .inactive-row{background:#f5f5f5;opacity:.7}.role-name{color:#1976d2;cursor:pointer;font-weight:500}.role-name:hover{text-decoration:underline}.role-description{color:#666;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-danger{background:#f44336;border:none}.btn-danger:hover{background:#d32f2f}.btn-danger:disabled{background:#bdbdbd;cursor:not-allowed}.no-data{color:#999;font-style:italic;padding:40px!important;text-align:center}.role-edit-modal{max-width:500px}.role-edit-form{padding:24px}.role-edit-form .form-group{margin-bottom:20px}.role-edit-form .form-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.role-edit-form .form-group input,.role-edit-form .form-group textarea{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:15px;padding:12px 14px;transition:border-color .2s;width:100%}.role-edit-form .form-group input:focus,.role-edit-form .form-group textarea:focus{border-color:#1976d2;outline:none}.role-edit-form .form-group textarea{min-height:80px;resize:vertical}.info-note{color:#888!important;font-size:.9rem;margin-top:8px!important}.icon-btn{background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:1.2rem;opacity:.8;padding:6px 8px;transition:background .2s,transform .1s}.icon-btn:hover{background:rgba(0,0,0,.05);opacity:1;transform:scale(1.1)}.icon-btn:disabled{cursor:not-allowed;opacity:.4;transform:none}.icon-btn.icon-edit:hover{background:rgba(25,118,210,.1)}.icon-btn.icon-danger:hover{background:rgba(244,67,54,.1)}.icon-btn.icon-success:hover{background:rgba(76,175,80,.1)}.icon-btn.icon-warning:hover{background:rgba(255,152,0,.1)}.actions-cell{align-items:center;gap:4px}.course-list-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden}.course-list-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #1976d2;display:flex;justify-content:space-between;padding:20px 24px}.course-list-header h3{color:#333;font-size:1.2rem;margin:0}.course-count{color:#666;font-size:.9rem}.course-table{border-collapse:collapse;width:100%}.course-table th{background:#f0f0f0;border-bottom:1px solid #ddd;color:#555;font-weight:600;padding:14px 16px;text-align:left}.course-table td{border-bottom:1px solid #eee;padding:14px 16px}.course-table tr:hover{background:#f8f9fa}.course-table .inactive-row{background:#f5f5f5;opacity:.7}.course-code{color:#1976d2;cursor:pointer;font-weight:600}.course-code:hover{text-decoration:underline}.course-title{font-weight:500}.course-level,.course-subject{color:#666}.course-price{color:#2e7d32;font-weight:500}.course-edit-modal{max-width:600px}.course-edit-form{padding:24px}.course-edit-form .form-group{margin-bottom:16px}.course-edit-form .form-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.course-edit-form .form-group input,.course-edit-form .form-group select,.course-edit-form .form-group textarea{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:15px;padding:10px 14px;transition:border-color .2s;width:100%}.course-edit-form .form-group input:focus,.course-edit-form .form-group select:focus,.course-edit-form .form-group textarea:focus{border-color:#1976d2;outline:none}.course-edit-form .form-group textarea{min-height:70px;resize:vertical}.course-edit-form .form-group select{background:#fff;cursor:pointer}.version-display{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;font-size:15px;gap:10px;height:42px;padding:10px 14px}.version-number{color:#1976d2;font-size:16px;font-weight:600}.version-status{color:#666;font-size:13px}.version-status.active{color:#2e7d32}.version-status.inactive{color:#c62828}.btn-warning{background-color:#ff9800;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:background-color .2s}.btn-warning:hover{background-color:#f57c00}.btn-warning:disabled{background-color:#ffcc80;cursor:not-allowed}.resources-layout{display:flex;gap:0;height:calc(100vh - 100px)}.resources-sidebar{background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;min-width:280px;width:280px}.resources-editor{background:#fafafa;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.history-with-editor{display:flex;gap:0;height:calc(100vh - 100px)}.history-dashboard{background:#f8f9fa;border-right:1px solid #e0e0e0;min-width:300px;overflow-y:auto;padding:20px;width:300px}.history-dashboard .welcome-card{margin-bottom:0}.history-editor{background:#fafafa;flex:1 1;overflow:hidden}.file-browser,.history-editor{display:flex;flex-direction:column}.file-browser{height:100%}.file-browser-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:16px}.file-browser-header h4{color:#333;font-size:14px;margin:0}.file-list{flex:1 1;overflow-y:auto;padding:8px}.file-item{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:background-color .15s;-webkit-user-select:none;user-select:none}.file-item:hover{background-color:#e3f2fd}.file-item.selected{background-color:#bbdefb}.file-item .file-icon{flex-shrink:0;font-size:24px}.file-item .file-info{flex:1 1;min-width:0}.file-item .file-name{color:#333;display:block;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item .file-meta{color:#888;display:block;font-size:11px;margin-top:2px}.file-browser-footer{background:#f8f9fa;border-top:1px solid #e0e0e0;padding:12px 16px;text-align:center}.file-browser-footer small{color:#888;font-size:12px}.empty-files{color:#888;padding:40px 20px;text-align:center}.tabbed-editor{display:flex;flex-direction:column;height:100%}.tabbed-editor-empty{align-items:center;background:#fafafa;display:flex;height:100%;justify-content:center}.empty-message{color:#888}.empty-message .empty-icon{display:block;font-size:64px;margin-bottom:16px;opacity:.5}.empty-message h3{color:#666;margin:0 0 8px}.empty-message p{font-size:14px;margin:0}.editor-tabs{background:#e0e0e0;display:flex;flex-shrink:0;overflow-x:auto;padding:4px 4px 0}.editor-tab{align-items:center;background:#f5f5f5;border:1px solid #ddd;border-bottom:none;border-radius:6px 6px 0 0;color:#666;cursor:pointer;display:flex;font-size:13px;gap:8px;margin-right:2px;max-width:200px;min-width:120px;padding:8px 12px;transition:background-color .15s}.editor-tab:hover{background:#fff}.editor-tab.active{background:#fff;border-color:#ccc;color:#333}.editor-tab .tab-icon{flex-shrink:0;font-size:16px}.editor-tab .tab-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-tab .tab-modified{color:#ff9800;font-size:18px;font-weight:700;margin-left:-4px}.editor-tab .tab-close{background:none;border:none;border-radius:3px;color:#888;cursor:pointer;flex-shrink:0;font-size:16px;line-height:1;padding:2px 4px}.editor-tab .tab-close:hover{background:#e0e0e0;color:#333}.editor-tab .tab-split-indicator{color:#1976d2;font-size:12px;margin-left:4px}.editor-tab.split-active{border-bottom:2px solid #ff9800}.tab-context-menu{animation:contextMenuFadeIn .15s ease;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.15);min-width:180px;padding:4px 0;position:fixed;z-index:1000}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{align-items:center;color:#333;cursor:pointer;display:flex;font-size:14px;gap:10px;padding:8px 16px;transition:background .15s}.context-menu-item:hover{background:#f0f0f0}.context-menu-item .context-icon{color:#666;font-size:12px;text-align:center;width:16px}.context-menu-divider{background:#e0e0e0;height:1px;margin:4px 0}.editor-content-wrapper{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.editor-content-wrapper.split{flex-direction:row}.editor-content-wrapper.split .editor-content{flex:1 1;overflow:hidden}.editor-content-wrapper.split .split-panel{background:#fff;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.editor-splitter-container{display:flex;flex:1 1;height:100%;overflow:hidden}.editor-splitter-left,.editor-splitter-right{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-splitter-divider{background:linear-gradient(180deg,#1976d2,#1565c0);cursor:col-resize;flex-shrink:0;min-width:6px;transition:width .15s,background .15s;width:6px}.editor-splitter-divider.dragging,.editor-splitter-divider:hover{background:#2196f3;width:8px}.split-panel-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#555;display:flex;font-size:13px;font-weight:500;gap:8px;padding:8px 12px}.split-panel-header .tab-icon{font-size:14px}.split-close-btn{background:none;border:none;border-radius:3px;color:#888;cursor:pointer;font-size:16px;margin-left:auto;padding:2px 6px}.split-close-btn:hover{background:#e0e0e0;color:#333}.tab-splitter-container{display:flex;flex:1 1;height:100%;overflow:hidden}.tab-splitter-left,.tab-splitter-right{display:flex;flex-direction:column;height:100%;overflow:hidden}.tab-splitter-left .content-tab-panel,.tab-splitter-right .content-tab-panel{flex:1 1;overflow:auto}.tab-splitter-divider{background:linear-gradient(180deg,#1976d2,#1565c0);cursor:col-resize;flex-shrink:0;min-width:6px;transition:width .15s,background .15s;width:6px}.tab-splitter-divider.dragging,.tab-splitter-divider:hover{background:#2196f3;width:8px}.tab-splitter-right .split-panel-header{align-items:center;background:#f0f4f8;border-bottom:1px solid #e0e0e0;color:#555;display:flex;font-size:13px;font-weight:500;gap:8px;padding:8px 12px}.split-panel-icon{font-size:14px}.split-panel-title{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-content{background:#fff;flex:1 1;overflow:hidden}.editor-content,.editor-loading{display:flex;flex-direction:column}.editor-loading{align-items:center;color:#888;height:100%;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#1976d2;height:40px;margin-bottom:16px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.editor-toolbar-actions{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:8px 16px}.editor-toolbar-actions .file-name{color:#333;font-weight:500}.editor-toolbar-actions .modified-indicator{color:#ff9800;font-style:italic}.editor-toolbar-actions .toolbar-buttons{display:flex;gap:8px}.btn-sm,.editor-error{font-size:13px}.editor-error{background:#ffebee;color:#c62828;padding:8px 16px}.rich-text-editor{display:flex;flex-direction:column;height:100%}.rich-text-editor .quill{display:flex;flex:1 1;flex-direction:column}.rich-text-editor .ql-container{flex:1 1;font-size:15px;overflow-y:auto}.rich-text-editor .ql-editor{min-height:300px}.spreadsheet-editor{display:flex;flex-direction:column;height:100%}.spreadsheet-container{flex:1 1;overflow:auto;padding:16px}.spreadsheet-container .Spreadsheet{width:100%}.spreadsheet-container .Spreadsheet__cell{border:1px solid #e0e0e0;min-width:80px;padding:6px 8px}.spreadsheet-container .Spreadsheet__header{background:#f5f5f5;font-weight:500}.pdf-viewer{display:flex;flex-direction:column;height:100%}.pdf-toolbar{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:8px 16px}.pdf-info .file-name{color:#333;font-weight:500}.pdf-controls{align-items:center;display:flex;gap:16px}.page-controls,.zoom-controls{align-items:center;display:flex;gap:8px}.page-controls button,.zoom-controls button{background:#e0e0e0;border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 10px}.page-controls button:hover,.zoom-controls button:hover{background:#d0d0d0}.page-controls button:disabled{cursor:not-allowed;opacity:.5}.page-indicator{color:#666;font-size:13px;min-width:120px;text-align:center}.pdf-container{background:#e0e0e0;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:20px}.pdf-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px}.image-error .error-message,.pdf-error .error-message{align-items:center;display:flex;flex-direction:column;gap:12px;padding:40px}.error-message .error-icon{font-size:48px}.image-viewer{display:flex;flex-direction:column;height:100%}.image-toolbar{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:8px 16px}.image-toolbar .file-name{color:#333;font-weight:500}.image-controls{display:flex;gap:16px}.rotation-controls{display:flex;gap:8px}.rotation-controls button{background:#e0e0e0;border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 10px}.rotation-controls button:hover{background:#d0d0d0}.image-container{align-items:center;background:#e0e0e0;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:20px}.image-container img{box-shadow:0 4px 20px rgba(0,0,0,.2);max-height:100%;max-width:100%;object-fit:contain}.image-loading{flex-direction:column}.image-loading,.unsupported-file{align-items:center;display:flex;height:100%;justify-content:center}.unsupported-file{color:#888;font-size:16px}.online-users-container{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);display:flex;flex-direction:column;max-height:400px;overflow:hidden}.online-users-header{align-items:center;background:#fafafa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:16px 20px}.online-users-header h3{align-items:center;color:#333;display:flex;font-size:16px;gap:10px;margin:0}.status-dot{border-radius:50%;height:10px;width:10px}.status-dot.online{background:#4caf50;box-shadow:0 0 8px rgba(76,175,80,.5)}.status-dot.offline{background:#9e9e9e}.btn-retry{background:none;border:1px solid #1976d2;border-radius:4px;color:#1976d2;cursor:pointer;font-size:12px;padding:4px 12px}.btn-retry:hover{background:#e3f2fd}.connection-error{background:#ffebee;color:#c62828;font-size:13px;padding:12px 20px}.no-users-online{color:#666;padding:40px 20px;text-align:center}.online-users-list{flex:1 1;overflow-y:auto}.online-user-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:12px;padding:12px 20px;transition:background .2s}.online-user-item:hover{background:#f5f5f5}.online-user-item:last-child{border-bottom:none}.online-user-item .user-avatar{align-items:center;background:linear-gradient(135deg,#1976d2,#0d47a1);border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:40px;justify-content:center;width:40px}.online-user-item .user-info{display:flex;flex:1 1;flex-direction:column}.online-user-item .user-name{color:#333;font-weight:500}.online-user-item .user-role{color:#666;font-size:12px}.user-actions{display:flex;gap:8px}.btn-call{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:16px;height:36px;justify-content:center;transition:transform .2s,box-shadow .2s;width:36px}.btn-call:hover{transform:scale(1.1)}.btn-call.audio{background:#4caf50;color:#fff}.btn-call.audio:hover{box-shadow:0 4px 12px rgba(76,175,80,.4)}.btn-call.video{background:#1976d2;color:#fff}.btn-call.video:hover{box-shadow:0 4px 12px rgba(25,118,210,.4)}.video-call-overlay{align-items:center;background:rgba(0,0,0,.9);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.video-call-container{background:#1a1a1a;display:flex;flex-direction:column;height:100%;width:100%}.video-call-header{align-items:center;background:rgba(0,0,0,.5);display:flex;justify-content:space-between;left:0;padding:16px 24px;position:absolute;right:0;top:0;z-index:10}.peer-info{display:flex;flex-direction:column}.peer-name{color:#fff;font-size:18px;font-weight:600}.call-status{color:hsla(0,0%,100%,.7);font-size:14px}.btn-close-call{background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:18px;height:40px;transition:background .2s;width:40px}.btn-close-call:hover{background:hsla(0,0%,100%,.3)}.video-call-content{align-items:center;display:flex;flex:1 1;justify-content:center;position:relative}.call-ended-prompt,.calling-prompt,.incoming-call-prompt{align-items:center;color:#fff;display:flex;flex-direction:column;gap:16px;text-align:center}.avatar-large,.caller-avatar{align-items:center;background:linear-gradient(135deg,#1976d2,#0d47a1);border-radius:50%;color:#fff;display:flex;font-size:40px;font-weight:600;height:120px;justify-content:center;width:120px}.caller-avatar.pulse{animation:pulse 2s ease-in-out infinite}.call-ended-prompt h3,.calling-prompt h3,.incoming-call-prompt h3{font-size:24px;margin:0}.call-ended-prompt p,.calling-prompt p,.incoming-call-prompt p{color:hsla(0,0%,100%,.7);margin:0}.incoming-call-actions{display:flex;gap:24px;margin-top:24px}.btn-accept,.btn-reject{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;font-size:14px;gap:8px;padding:16px 24px;transition:transform .2s,box-shadow .2s}.btn-accept span,.btn-reject span{align-items:center;border-radius:50%;display:flex;font-size:24px;height:50px;justify-content:center;width:50px}.btn-reject{background:#c62828;color:#fff}.btn-reject:hover{box-shadow:0 4px 20px rgba(198,40,40,.4);transform:scale(1.05)}.btn-reject span{background:hsla(0,0%,100%,.2)}.btn-accept{background:#4caf50;color:#fff}.btn-accept:hover{box-shadow:0 4px 20px rgba(76,175,80,.4);transform:scale(1.05)}.btn-accept span{background:hsla(0,0%,100%,.2)}.btn-cancel-call{background:#c62828;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;margin-top:24px;padding:12px 32px;transition:background .2s}.btn-cancel-call:hover{background:#b71c1c}.video-streams{height:100%;position:relative;width:100%}.remote-video-container{align-items:center;background:#000;display:flex;height:100%;justify-content:center;width:100%}.remote-video{height:100%;object-fit:contain;width:100%}.remote-video-container .video-placeholder,.remote-video-container.video-off .remote-video{display:none}.remote-video-container.video-off .video-placeholder{align-items:center;display:flex;justify-content:center}.peer-muted-indicator{background:rgba(0,0,0,.7);border-radius:8px;color:#fff;font-size:14px;padding:8px 16px;position:absolute;right:24px;top:80px}.local-video-container{background:#333;border-radius:12px;bottom:100px;box-shadow:0 4px 20px rgba(0,0,0,.4);height:150px;overflow:hidden;position:absolute;right:24px;width:200px}.local-video{height:100%;object-fit:cover;transform:scaleX(-1);width:100%}.local-video-container.video-off .local-video{display:none}.video-placeholder-small{align-items:center;color:#fff;display:none;font-size:14px;height:100%;justify-content:center;width:100%}.local-video-container.video-off .video-placeholder-small{display:flex}.video-call-controls{background:rgba(0,0,0,.7);border-radius:50px;bottom:24px;display:flex;gap:16px;left:50%;padding:16px 24px;position:absolute;transform:translateX(-50%);z-index:10}.control-btn{align-items:center;background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:56px;justify-content:center;transition:background .2s,transform .2s;width:56px}.control-btn:hover{background:hsla(0,0%,100%,.3);transform:scale(1.1)}.control-btn.disabled{background:#c62828}.control-btn.end-call{background:#c62828;transform:rotate(135deg)}.control-btn.end-call:hover{background:#b71c1c}.call-error-message{align-items:center;color:#fff;display:flex;flex-direction:column;gap:16px;text-align:center}.call-error-message p{color:#ef5350;font-size:16px}@media (max-width:768px){.local-video-container{bottom:120px;height:90px;right:16px;width:120px}.video-call-controls{gap:12px;padding:12px 16px}.control-btn{font-size:20px;height:48px;width:48px}}.video-section-page{max-width:800px;padding:40px}.video-section-page h3{color:#333;font-size:24px;margin-bottom:8px}.video-section-page .section-description{color:#666;margin-bottom:24px}.video-section{margin-top:24px}.video-section h3{color:#333;font-size:18px;margin-bottom:8px}.video-section .section-description{color:#666;font-size:14px;margin-bottom:16px}.active-call-indicator{align-items:center;background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:background .2s}.active-call-indicator:hover{background:linear-gradient(135deg,#43a047,#2e7d32)}.call-pulse{animation:callPulse 1.5s ease-in-out infinite;background:#fff;border-radius:50%;height:12px;width:12px}@keyframes callPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.btn-focus-call{background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,100%,.4);border-radius:4px;color:#fff;cursor:pointer;font-size:12px;margin-left:auto;padding:4px 12px}.btn-focus-call:hover{background:hsla(0,0%,100%,.3)}.btn-call:disabled{cursor:not-allowed;opacity:.5}.btn-call:disabled:hover{box-shadow:none;transform:none}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.section-header h3{margin:0}.quick-actions{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.05);margin-bottom:24px;padding:20px}.quick-actions h3{margin-bottom:16px}.recent-assignments{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.05);padding:20px}.recent-assignments h3{color:#333;margin-bottom:16px}.assignments-section,.user-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.05);padding:20px}.user-section h3{color:#333;margin-bottom:8px}.section-description{color:#666;font-size:.9rem;margin-bottom:20px}.actions-cell{display:flex;gap:8px}.btn-small{font-size:.85rem;padding:6px 12px;width:auto}.btn-secondary{background-color:#757575;color:#fff}.btn-secondary:hover{background-color:#616161}.btn-danger{background-color:#d32f2f;color:#fff}.btn-danger:hover{background-color:#c62828}.empty-message{color:#666;font-style:italic;padding:40px 20px;text-align:center}.stat-card{cursor:pointer;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px)}.routing-form-list{background:#fff;border-radius:12px;padding:20px}.routing-form-list .section-header h3{color:#333;margin-bottom:8px}.routing-form-list .tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:8px;margin-bottom:20px;padding-bottom:0}.routing-form-list .tab{background:transparent;border:none;border-bottom:2px solid transparent;color:#666;cursor:pointer;font-size:.95rem;margin-bottom:-2px;padding:12px 24px;transition:all .2s}.routing-form-list .tab:hover{color:#1976d2}.routing-form-list .tab.active{border-bottom-color:#1976d2;color:#1976d2;font-weight:500}.template-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;overflow:hidden}.template-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:background .2s}.template-header:hover{background:#f0f0f0}.template-info h4{color:#333;margin:0 0 4px}.template-description{color:#666;font-size:.9rem;margin-bottom:8px}.template-meta{align-items:center;display:flex;gap:12px}.step-count{color:#888;font-size:.85rem}.template-actions{align-items:center;display:flex;gap:8px}.expand-icon{color:#888;font-size:.8rem;margin-left:8px}.template-steps{background:#fff;border-top:1px solid #e0e0e0;padding:0 16px 16px}.template-steps h5{color:#666;margin:12px 0 8px}.step-list{margin:0;padding-left:20px}.step-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.step-item:last-child{border-bottom:none}.step-info{display:flex;flex-direction:column}.step-info strong{color:#333}.step-role{color:#888;font-size:.85rem}.step-days{background:#e3f2fd;border-radius:12px;color:#1976d2;font-size:.85rem;padding:2px 8px}.data-table{border-collapse:collapse;margin-top:16px;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e0e0e0;padding:12px;text-align:left}.data-table th{background:#f5f5f5;color:#555;font-weight:600}.data-table tr:hover{background:#f8f9fa}.progress-cell{display:flex;flex-direction:column;gap:4px}.progress-bar{background:#e0e0e0;border-radius:4px;height:8px;overflow:hidden;width:100px}.progress-fill{background:linear-gradient(90deg,#4caf50,#8bc34a);height:100%;transition:width .3s}.progress-text{color:#666;font-size:.8rem}.status-active,.status-completed{background:#e8f5e9;color:#2e7d32}.status-in-progress,.status-progress{background:#fff3e0;color:#ef6c00}.status-draft{background:#e3f2fd;color:#1565c0}.status-pending{background:#f5f5f5;color:#757575}.status-inactive{background:#fafafa;color:#9e9e9e}.modal-large{max-height:90vh;max-width:800px;overflow-y:auto}.form-section{border-bottom:1px solid #e0e0e0;margin-bottom:24px;padding-bottom:16px}.form-section:last-child{border-bottom:none}.form-section h4{color:#333;margin-bottom:16px}.section-header-inline{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.section-hint{color:#666;font-size:.9rem;margin-bottom:16px}.steps-editor{display:flex;flex-direction:column;gap:16px}.step-editor-item{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:flex;gap:16px;padding:16px}.step-number{align-items:center;background:#1976d2;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:700;height:32px;justify-content:center;width:32px}.step-fields{flex:1 1}.step-row{display:flex;gap:12px;margin-bottom:12px}.step-row .form-group{flex:1 1;margin-bottom:0}.form-group-small{max-width:80px}.step-options{margin-top:8px}.checkbox-label{align-items:center;color:#555;display:flex;font-size:.9rem;gap:8px}.step-actions{display:flex;flex-direction:column;gap:4px}.btn-icon{background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:1rem;height:32px;padding:0;transition:background .2s;width:32px}.btn-icon:hover{background:#e0e0e0}.btn-icon:disabled{cursor:not-allowed;opacity:.3}.btn-icon.btn-danger:hover{background:#ffebee}.student-routing-form{background:#fff;border-radius:12px;padding:24px}.form-header{align-items:flex-start;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.form-header-info h3{color:#333;margin:0 0 8px}.student-info{color:#666;margin-bottom:8px}.form-meta{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.date-info{color:#888;font-size:.85rem}.form-notes{background:#fff3e0;border-left:4px solid #ff9800;border-radius:8px;margin-bottom:24px;padding:12px 16px}.steps-timeline h4{color:#333;margin-bottom:16px}.timeline{position:relative}.timeline-step{display:flex;gap:16px;padding-bottom:24px}.timeline-step:last-child{padding-bottom:0}.step-indicator{flex-direction:column;flex-shrink:0}.step-circle,.step-indicator{align-items:center;display:flex}.step-circle{background:#e0e0e0;border-radius:50%;color:#666;font-weight:700;height:32px;justify-content:center;transition:all .3s;width:32px}.step-completed .step-circle{background:#4caf50;color:#fff}.step-in-progress .step-circle{animation:pulse 2s infinite;background:#ff9800;color:#fff}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(255,152,0,.4)}50%{box-shadow:0 0 0 8px rgba(255,152,0,0)}}.step-line{background:#e0e0e0;flex:1 1;margin-top:4px;min-height:20px;width:2px}.step-completed .step-line{background:#4caf50}.step-content{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;flex:1 1;padding:16px}.step-in-progress .step-content{background:#fff8e1;border-color:#ff9800}.step-completed .step-content{background:#f1f8e9;border-color:#4caf50}.step-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.step-header h5{color:#333;margin:0}.step-status-badge{border-radius:12px;font-size:.8rem;font-weight:500;padding:4px 12px}.step-description{color:#666;margin-bottom:12px}.step-details{display:flex;flex-wrap:wrap;font-size:.9rem;gap:16px;margin-bottom:8px}.assigned-role,.due-date{color:#555}.signoff-info{background:#e8f5e9;border-radius:6px;color:#2e7d32;padding:8px 12px}.signoff-info,.step-notes{font-size:.9rem;margin-top:8px}.step-notes{color:#666;font-style:italic}.signoff-action{display:flex;flex-direction:column;gap:8px;margin-top:12px}.signoff-action textarea{border:1px solid #ddd;border-radius:6px;font-size:.9rem;padding:8px 12px;resize:vertical}.completion-banner{align-items:center;background:linear-gradient(135deg,#4caf50,#8bc34a);border-radius:12px;color:#fff;display:flex;gap:16px;margin-top:24px;padding:20px}.completion-banner span:first-child{font-size:2rem}.completion-banner strong{font-size:1.2rem}.completion-banner p{margin:4px 0 0;opacity:.9}.task-list .section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.task-summary{display:flex;gap:12px}.task-count{border-radius:12px;font-size:.9rem;font-weight:500;padding:4px 12px}.task-count.pending{background:#fff3e0;color:#ef6c00}.task-count.overdue{background:#ffebee;color:#c62828}.filter-bar{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:12px}.filter-bar label{color:#666;font-size:.9rem}.filter-bar select{border:1px solid #ddd;border-radius:6px;padding:6px 12px}.task-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.task-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:16px;transition:all .2s}.task-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.task-card.overdue{background:#fff8f8;border-color:#ef5350}.task-card.due-soon{background:#fffbf5;border-color:#ff9800}.task-card.completed{background:#f5f5f5;opacity:.7}.task-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.task-card-header h4{color:#333;margin:0}.task-description{color:#666;font-size:.9rem;margin-bottom:12px}.task-details{display:flex;flex-wrap:wrap;font-size:.85rem;gap:12px;margin-bottom:12px}.assigned-role,.student-name{color:#555}.due-date-info{color:#666;font-size:.9rem;margin-bottom:12px}.due-date-info.overdue{color:#c62828}.due-date-info.due-soon{color:#ef6c00}.overdue-label{background:#c62828;border-radius:4px;color:#fff;font-size:.75rem;font-weight:700;margin-left:8px;padding:2px 8px}.task-actions{display:flex;gap:8px}.quick-actions{margin-top:24px}.quick-actions h3{color:#333;margin-bottom:12px}.action-buttons{display:flex;flex-wrap:wrap;gap:12px}.action-btn{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:.95rem;padding:12px 20px;transition:all .2s}.action-btn:hover{background:#e3f2fd;border-color:#1976d2;color:#1976d2}.info-section{background:#f8f9fa;border-radius:8px;margin-top:24px;padding:16px}.info-section h3{color:#333;margin-bottom:12px}.info-section ul{color:#555;margin:0;padding-left:20px}.info-section li{padding:4px 0}.techservices-welcome{background:linear-gradient(135deg,#00796b,#009688)}.action-bar{margin-bottom:16px}.stat-card.clickable{cursor:pointer}.stat-card.stat-warning{background:#fff8e1;border-color:#ff9800}.stat-card.stat-warning h3{color:#ef6c00}.empty-state{color:#666;padding:40px 20px;text-align:center}.empty-state p{margin-bottom:16px}.form-info{background:#e3f2fd;border-radius:8px;color:#1565c0;margin:16px 0;padding:12px 16px}.form-info p{font-size:.9rem;margin:0}.form-group-inline,.form-group-inline label{align-items:center;display:flex;gap:8px}.form-group-inline label{cursor:pointer}.btn-sm{font-size:.85rem;padding:6px 12px}.btn-view{background:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer}.btn-view:hover{background:#1565c0}
/*# sourceMappingURL=main.ea55523d.css.map*/