/*!
 * Quill Editor v2.0.3
 * https://quilljs.com
 * Copyright (c) 2017-2024, Slab
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */
.ql-container{box-sizing:border-box;height:100%;margin:0;font-family:Helvetica,Arial,sans-serif;font-size:13px;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;position:absolute;top:50%;left:-100000px;overflow-y:hidden}.ql-clipboard p{margin:0;padding:0}.ql-editor{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;tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word;outline:none;height:100%;padding:12px 15px;line-height:1.42;overflow-y:auto}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{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 p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{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 ol{padding-left:1.5em}.ql-editor li{padding-left:1.5em;list-style-type:none;position:relative}.ql-editor li>.ql-ui:before{text-align:right;white-space:nowrap;width:1.2em;margin-left:-1.5em;margin-right:.3em;display:inline-block}.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:"•"}.ql-editor li[data-list=checked]>.ql-ui:before{content:"☑"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:"☐"}@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{text-align:left;margin-left:.3em;margin-right:-1.5em}.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{max-width:100%;display:block}.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{text-align:inherit;direction:rtl}.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:#0009;content:attr(data-placeholder);pointer-events:none;font-style:italic;position:absolute;left:15px;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{cursor:pointer;float:left;background:0 0;border:none;width:28px;height:24px;padding:3px 5px;display:inline-block}.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 button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .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-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.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,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.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{vertical-align:middle;display:inline-block}.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:2px}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2px}.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-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1px}.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-top:5px;margin-bottom:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-top:5px;margin-bottom:5px;padding:5px 10px}.ql-snow .ql-editor code{padding:2px 4px;font-size:85%}.ql-snow .ql-editor .ql-code-block-container{color:#f8f8f2;background-color:#23241f;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;float:left;vertical-align:middle;height:24px;font-size:14px;font-weight:500;display:inline-block;position:relative}.ql-snow .ql-picker-label{cursor:pointer;width:100%;height:100%;padding-left:8px;padding-right:2px;display:inline-block;position:relative}.ql-snow .ql-picker-label:before{line-height:22px;display:inline-block}.ql-snow .ql-picker-options{white-space:nowrap;background-color:#fff;min-width:100%;padding:4px 8px;display:none;position:absolute}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;padding-top:5px;padding-bottom:5px;display:block}.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{z-index:1;margin-top:-1px;display:block;top:100%}.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{width:24px;height:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{width:152px;padding:3px 5px}.ql-snow .ql-color-picker .ql-picker-item{float:left;border:1px solid #0000;width:16px;height:16px;margin:2px;padding:0}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{width:18px;margin-top:-9px;position:absolute;top:50%;right:0}.ql-snow .ql-picker.ql-header .ql-picker-label[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-size .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-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[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-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[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-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[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-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[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{top:5px;right:5px}.ql-toolbar.ql-snow{box-sizing:border-box;border:1px solid #ccc;padding:8px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.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{color:#444;white-space:nowrap;background-color:#fff;border:1px solid #ccc;padding:5px 12px;box-shadow:0 0 5px #ddd}.ql-snow .ql-tooltip:before{content:"Visit URL:";margin-right:8px;line-height:26px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;width:170px;height:26px;margin:0;padding:3px 5px;font-size:13px;display:none}.ql-snow .ql-tooltip a.ql-preview{text-overflow:ellipsis;vertical-align:top;max-width:200px;display:inline-block;overflow-x:hidden}.ql-snow .ql-tooltip a.ql-action:after{content:"Edit";border-right:1px solid #ccc;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{content:"Save";border-right:0;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}.login-page{background:radial-gradient(at 15% 20%,#0960a024,#0000 50%),radial-gradient(at 85% 80%,#0ea5e91a,#0000 50%),linear-gradient(168deg,#f0f6fc 0%,#e8f0f8 40%,#f3f8fe 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-page__orb{filter:blur(80px);pointer-events:none;opacity:.5;border-radius:50%;position:absolute}.login-page__orb--1{background:radial-gradient(circle,#0960a038,#0000 70%);width:420px;height:420px;animation:18s ease-in-out infinite login-float;top:-120px;left:-80px}.login-page__orb--2{background:radial-gradient(circle,#0ea5e92e,#0000 70%);width:380px;height:380px;animation:22s ease-in-out infinite reverse login-float;bottom:-80px;right:-100px}.login-page__orb--3{background:radial-gradient(circle,#2160bd1a,#0000 70%);width:260px;height:260px;animation:14s ease-in-out 2s infinite login-float;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes login-float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-24px)scale(1.06)}}.login-page__container{z-index:1;border-radius:28px;grid-template-columns:1fr 1fr;width:min(1200px,100%);min-height:640px;animation:.6s ease-out login-fadeUp;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 6px #0f172a08,0 24px 64px #0f172a1a,0 0 0 1px #dde6f099}@keyframes login-fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-page__brand{color:#fff;background:linear-gradient(160deg,#0a2e5c 0%,#0c4a8a 45%,#1565c0 100%);flex-direction:column;justify-content:center;padding:48px 40px;display:flex;position:relative;overflow:hidden}.login-page__brand:before{content:"";pointer-events:none;background:repeating-linear-gradient(-45deg,#0000,#0000 40px,#ffffff05 40px 42px);position:absolute;inset:0}.login-page__brand-inner{z-index:1;flex-direction:column;gap:28px;display:flex;position:relative}.login-page__brand-top{text-align:center}.login-page__logo{object-fit:contain;filter:drop-shadow(0 4px 16px #00000040);width:100px;height:100px;margin-bottom:14px;animation:3s ease-in-out infinite login-logoPulse}@keyframes login-logoPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.login-page__brand-title{letter-spacing:.12em;text-shadow:0 2px 8px #0003;font-size:32px;font-weight:900;line-height:1}.login-page__brand-subtitle{opacity:.75;letter-spacing:.03em;margin-top:6px;font-size:14px;font-weight:500}.login-page__brand-divider{background:linear-gradient(90deg,#ffffff1a,#ffffff80,#ffffff1a);border-radius:2px;width:60px;height:3px;margin:0 auto}.login-page__features{flex-direction:column;gap:12px;display:flex}.login-page__feature{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff14;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:14px;padding:12px 16px;transition:background .25s,border-color .25s,transform .25s;display:flex}.login-page__feature:hover{background:#ffffff24;border-color:#ffffff2e;transform:translate(4px)}.login-page__feature-icon{background:#ffffff1f;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:22px;display:grid}.login-page__feature-title{font-size:13px;font-weight:700;line-height:1.2}.login-page__feature-desc{opacity:.65;margin-top:1px;font-size:11px}.login-page__qr-section{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:14px;align-items:center;gap:14px;padding:14px 16px;display:flex}.login-page__qr{object-fit:cover;background:#fff;border-radius:8px;width:64px;height:64px;padding:3px}.login-page__qr-label{font-size:13px;font-weight:700}.login-page__qr-hint{opacity:.6;margin-top:2px;font-size:11px}.login-page__form-panel{background:#fff;justify-content:center;align-items:center;padding:48px 40px;display:flex}.login-page__form-wrapper{flex-direction:column;gap:28px;width:min(420px,100%);display:flex}.login-page__mobile-logo{justify-content:center;display:none}.login-page__mobile-logo-img{object-fit:contain;width:64px;height:64px}.login-page__form-header{flex-direction:column;gap:6px;display:flex}.login-page__form-title{letter-spacing:-.02em;color:#0f172a!important;margin:0!important;font-size:28px!important;font-weight:800!important}.login-page__form-desc{color:#64748b!important;font-size:14px!important}.login-page__form .ant-form-item-label>label{color:#334155;font-size:13px;font-weight:650}.login-page__input{background:#f8fafc!important;border-color:#e2e8f0!important;border-radius:12px!important;height:48px!important;font-size:14px!important;transition:all .25s!important}.login-page__input:hover{background:#fff!important;border-color:#93c5fd!important}.login-page__input:focus,.login-page__input.ant-input-affix-wrapper-focused{background:#fff!important;border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f61f!important}.login-page__form .ant-input-password.login-page__input{padding-right:12px}.login-page__input-icon{color:#94a3b8;margin-right:4px;font-size:16px}.login-page__error{border-radius:12px!important;margin-bottom:4px!important}.login-page__submit-btn{letter-spacing:.01em;background:linear-gradient(135deg,#0960a0 0%,#1d4ed8 50%,#2563eb 100%)!important;border:none!important;border-radius:14px!important;height:50px!important;font-size:16px!important;font-weight:750!important;transition:transform .2s,box-shadow .2s!important;box-shadow:0 4px 14px #0960a04d,0 1px 3px #0960a01f!important}.login-page__submit-btn:hover{transform:translateY(-1px)!important;box-shadow:0 8px 24px #0960a059,0 2px 6px #0960a026!important}.login-page__submit-btn:active{transform:translateY(0)!important}.login-page__secure-badge{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:12px;font-weight:600;display:flex}.login-page__secure-badge .anticon{font-size:14px}.login-page__footer{text-align:center;color:#94a3b8;font-size:12px}.login-page__footer-dot{margin:0 6px}@media (width<=991px){.login-page{align-items:flex-start;padding:12px}.login-page__container{grid-template-columns:1fr;min-height:auto;margin-top:20px}.login-page__brand{display:none}.login-page__mobile-logo{display:flex}.login-page__form-panel{border-radius:28px;padding:32px 24px}.login-page__form-title{text-align:center;font-size:24px!important}.login-page__form-desc{text-align:center}.login-page__form-header{align-items:center}}@media (width<=480px){.login-page__form-panel{padding:24px 18px}.login-page__form-wrapper{gap:20px}}@media (prefers-reduced-motion:reduce){.login-page__orb,.login-page__logo,.login-page__container{animation:none!important}.login-page__feature,.login-page__submit-btn{transition:none!important}}:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand-primary:#0960a0;--brand-panel:#f5f8fc;--brand-line:#dde6f0;--brand-text:#1f2937;--brand-muted:#6b7280;--shadow-soft:0 18px 40px #0f172a14;background:radial-gradient(circle at 0 0,#2160bd14,#0000 34%),linear-gradient(#f7fafc 0%,#eef3f8 100%)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;color:var(--brand-text);margin:0;font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,system-ui,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.admin-shell{background:0 0;min-height:100vh}.admin-header{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid #dde6f0e6;justify-content:space-between;align-items:center;gap:16px;height:84px;padding:16px 22px;display:flex;position:sticky;top:0;box-shadow:0 12px 32px #0f172a0f}.admin-header-left{align-items:center;gap:12px;min-width:0;display:flex}.menu-toggle-button{display:none}.brand-button{cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:inline-flex}.brand-logo{object-fit:contain;width:72px;height:40px}.brand-copy{flex-direction:column;align-items:flex-start;line-height:1.1;display:flex}.brand-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-muted);font-size:12px}.brand-copy strong{color:var(--brand-primary);font-size:20px}.header-search{max-width:480px;margin-inline:auto}.admin-header-actions{align-items:center;display:flex}.quick-access-strip{background:#f5f8fcf2;border:1px solid #dde6f0cc;border-radius:16px;gap:6px;padding:6px;display:flex}.quick-access-button{color:var(--brand-muted)}.quick-access-button:hover,.quick-access-button:focus{color:var(--brand-primary)!important}.icon-button{background:#fff;border-color:#dde6f0e6}.header-avatar{background:linear-gradient(135deg,#2160bd,#0ea5e9)}.admin-body-layout{background:0 0;align-items:stretch}.admin-sider{padding:18px 14px 18px 18px;background:0 0!important}.sider-surface{height:calc(100vh - 120px);box-shadow:var(--shadow-soft);background:#f7fafce0;border:1px solid #dde6f0f2;border-radius:28px;flex-direction:column;gap:16px;padding:16px;display:flex;position:sticky;top:102px;overflow:hidden}.sider-heading{flex-direction:column;gap:4px;display:flex}.sider-heading span{font-size:14px;font-weight:700}.admin-side-menu{background:0 0;flex:1;overflow:auto;border-inline-end:0!important}.admin-side-menu .ant-menu-item,.admin-side-menu .ant-menu-submenu-title{width:100%!important;margin-inline:0!important}.admin-side-menu .ant-menu-item-selected{box-shadow:0 14px 30px #0f172a14}.admin-side-menu .ant-menu-item-selected:after,.admin-side-menu .ant-menu-submenu-selected:after{display:none}.sider-footer{border-top:1px dashed var(--brand-line);padding-top:6px}.admin-content{background:0 0;padding:20px 20px 24px 4px}.page-frame{flex-direction:column;gap:16px;display:flex}.page-frame-top{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.frame-title{margin:8px 0 0!important}.frame-badge{color:var(--brand-primary);background:#ffffffd9;border:1px solid #dde6f0e6;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-weight:600;display:inline-flex}.page-stack{flex-direction:column;gap:16px;display:flex}.hero-panel{box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#2160bd1f,#0ea5e90f),#ffffffeb;border:1px solid #dde6f0f2;border-radius:26px;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px;display:flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-primary);margin-bottom:10px;font-size:12px;font-weight:700;display:inline-flex}.hero-title{margin-top:0!important;margin-bottom:8px!important}.hero-description{max-width:760px;color:var(--brand-muted);margin-bottom:0!important}.hero-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.metric-card{height:100%;box-shadow:var(--shadow-soft);border:1px solid #dde6f0f2}.metric-card .ant-card-body{flex-direction:column;gap:10px;display:flex}.metric-card.tone-primary{background:linear-gradient(#2160bd14,#fff)}.metric-card.tone-success{background:linear-gradient(#0f9f7614,#fff)}.metric-card.tone-warning{background:linear-gradient(#e5a3261f,#fff)}.metric-card.tone-danger{background:linear-gradient(#dd4f4f1a,#fff)}.metric-card.tone-neutral{background:linear-gradient(#6b728014,#fff)}.metric-label{color:var(--brand-muted);font-size:13px;font-weight:600}.metric-value{font-size:30px;line-height:1}.metric-hint{color:var(--brand-primary);font-size:13px;font-weight:600}.surface-card{box-shadow:var(--shadow-soft);border:1px solid #dde6f0f2}.table-toolbar-shell{justify-content:flex-end;margin-bottom:16px;display:flex}.table-action-bar{justify-content:flex-end;width:100%}.chart-card .ant-card-body{flex-direction:column;gap:18px;display:flex}.chart-card-large .ant-card-body{min-height:430px}.chart-canvas-wrap{min-height:240px;position:relative}.line-chart-wrap{min-height:330px;position:relative}.legend-list,.stacked-list,.timeline-list{flex-direction:column;gap:12px;display:flex}.legend-row,.insight-row,.timeline-row{gap:12px;display:flex}.legend-row{background:var(--brand-panel);border-radius:14px;justify-content:space-between;align-items:center;padding:10px 12px}.legend-left{align-items:center;gap:10px;display:inline-flex}.legend-dot{border-radius:999px;width:12px;height:12px}.toolbar-grid{grid-template-columns:2fr 1.4fr 1.2fr auto;gap:12px;margin-bottom:18px;display:grid}.toolbar-grid.two-columns{grid-template-columns:2fr 1fr}.attendance-workspace-card .ant-card-body{padding:18px 20px 16px}.attendance-section-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.attendance-section-title{margin:0 0 4px!important}.attendance-section-description{max-width:760px;margin-bottom:0!important}.attendance-section-actions{flex:none}.attendance-metric-strip{background:#f8fbfe;border:1px solid #dde6f0f2;border-radius:14px;grid-template-columns:repeat(6,minmax(118px,1fr));gap:8px;padding:8px;display:grid}.attendance-metric{background:#fff;border-radius:10px;align-items:center;gap:10px;min-width:0;min-height:58px;padding:8px 10px;display:flex}.attendance-metric__dot{border-radius:999px;flex:none;width:8px;height:32px}.attendance-metric__content{min-width:0}.attendance-metric__label{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.2;display:block;overflow:hidden}.attendance-metric__value{margin-top:2px;font-size:22px;font-weight:800;line-height:1}.attendance-metric__progress{width:72px;margin:6px 0 0}.attendance-toolbar-wrap,.attendance-table-wrap{margin-top:14px}.attendance-toolbar{background:#fff;border:1px solid #dde6f0f2;border-radius:14px;grid-template-columns:minmax(260px,1.3fr) minmax(200px,.9fr) minmax(180px,.9fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.attendance-toolbar__slot{gap:3px;min-width:0;display:grid}.attendance-toolbar__date{padding-left:2px;font-size:12px;line-height:1.2}.attendance-toolbar__slot .ant-select,.attendance-toolbar__search,.attendance-toolbar__status{width:100%}.attendance-toolbar__actions{justify-content:flex-end;justify-self:end}.attendance-table .ant-table{border:1px solid #dde6f0f2;border-radius:14px}.attendance-table .ant-table-container{border-start-start-radius:14px;border-start-end-radius:14px}.attendance-table .ant-table-thead>tr>th{letter-spacing:.02em;font-size:12px;color:#334155!important;background:#f8fafc!important}.attendance-table .ant-table-tbody>tr>td{padding-top:10px!important;padding-bottom:10px!important}.attendance-table .ant-table-tbody>tr:hover>td{background:#f8fbfe!important}.attendance-table__student{min-width:0}.attendance-table__student-name{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-weight:750;line-height:1.25;overflow:hidden}.attendance-table__student-meta{text-overflow:ellipsis;white-space:nowrap;max-width:230px;font-size:12px;display:block;overflow:hidden}.attendance-table__student-tag{margin-top:5px}.attendance-table__status{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.attendance-table__lock,.attendance-table__staff .ant-typography{font-size:12px}.attendance-table__staff>div{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-weight:650;line-height:1.25;overflow:hidden}.attendance-table__date{color:#334155;font-variant-numeric:tabular-nums}.attendance-table__note{color:#334155;max-width:240px;margin-bottom:0!important}.admin-class-workspace{color:#172033;flex-direction:column;gap:18px;font-size:14px;display:flex}.admin-class-section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.admin-class-section-kicker{color:#2160bd;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.admin-class-section-subtitle{color:#64748b;font-size:13px}.admin-class-action-bar{justify-content:flex-end}.admin-class-action-button,.admin-class-primary-button{min-height:40px;font-weight:650;box-shadow:0 8px 18px #0f172a0a;border-radius:12px!important}.admin-class-action-button{color:#243044;background:#fff;border-color:#dbe5f0}.admin-class-action-button:hover{color:#0960a0!important;border-color:#8bb7e0!important}.admin-class-primary-button{background:linear-gradient(135deg,#0960a0,#1d4ed8)!important;border:0!important}.admin-class-primary-button[disabled],.admin-class-primary-button.ant-btn-disabled{box-shadow:none;background:#f5f5f5!important;border:1px solid #d9d9d9!important}.admin-class-stat-strip,.admin-class-metric-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.admin-class-stat-card{flex:150px;min-width:150px;box-shadow:0 10px 24px #0f172a0b;background:linear-gradient(180deg, #ffffffb8, #fffffff0), var(--stat-bg,#f8fbfe)!important;border:1px solid #dde6f0d9!important;border-radius:14px!important}.admin-class-stat-card .ant-card-body{min-height:78px;position:relative;padding:14px 16px!important}.admin-class-stat-card .ant-card-body:before{content:"";background:var(--stat-color,#0960a0);border-radius:999px;width:7px;height:32px;position:absolute;top:16px;left:12px}.admin-class-stat-card__label{color:#64748b;padding-left:18px;font-size:12px;font-weight:700}.admin-class-stat-card__value{color:var(--stat-color,#0960a0);padding-left:18px;font-size:28px;font-weight:800;line-height:1.05}.admin-class-metric-card{background:#fff;border:1px solid #dde6f0e6;border-radius:14px;align-items:center;gap:12px;min-height:72px;padding:12px 14px;display:flex;box-shadow:0 10px 24px #0f172a0a}.admin-class-metric-card__icon{width:36px;height:36px;color:var(--metric-tone,#0960a0);background:color-mix(in srgb, var(--metric-tone,#0960a0) 12%, white);border-radius:12px;place-items:center;font-size:18px;display:grid}.admin-class-metric-card__label{color:#64748b;font-size:12px;font-weight:650}.admin-class-metric-card__value{color:#172033;font-size:22px;font-weight:800;line-height:1.1}.admin-class-filter-bar{background:#ffffffe6;border:1px solid #dde6f0f2;border-radius:14px;grid-template-columns:minmax(260px,1fr) 190px 190px;gap:10px;padding:10px;display:grid}.admin-class-filter-search,.admin-class-filter-select{width:100%!important}.admin-class-filter-search .ant-input-affix-wrapper,.admin-class-filter-search{min-height:40px;border-radius:12px!important}.admin-class-filter-select .ant-select-selector{align-items:center;min-height:40px;border-radius:12px!important}.admin-class-table-shell{background:#fff;border:1px solid #dde6f0f2;border-radius:16px;overflow:hidden;box-shadow:0 14px 30px #0f172a0b}.admin-class-table .ant-table-thead>tr>th{font-size:13px;color:#243044!important;background:#f8fafc!important;font-weight:750!important}.admin-class-table .ant-table-tbody>tr>td{border-bottom-color:#edf2f7!important}.admin-class-table .ant-table-tbody>tr:hover>td{background:#f8fbfe!important}.admin-class-gradebook .admin-class-section-header{align-items:stretch}.admin-class-gradebook .admin-class-metric-strip{flex:720px;grid-template-columns:repeat(5,minmax(130px,1fr))}.admin-class-gradebook-actions{align-content:flex-start;max-width:230px}.admin-table .ant-table-wrapper,.admin-table .ant-table{background:0 0}.admin-table .ant-table-thead>tr>th{font-weight:700}.admin-table .ant-table-tbody>tr>td{position:relative}.admin-dashboard-table.ant-table-wrapper{background:linear-gradient(#fffffff5,#f8fafcfa);border:1px solid #cbd5e1e6;border-radius:16px;box-shadow:0 12px 28px #0f172a0e,inset 0 1px #ffffffb8}.admin-dashboard-table .ant-table{background:0 0!important;border-radius:16px!important}.admin-dashboard-table .ant-table-container{border-start-start-radius:16px!important;border-start-end-radius:16px!important}.admin-dashboard-table .ant-table-thead>tr>th,.admin-dashboard-table .ant-table-thead>tr>td{color:#1f2937!important;letter-spacing:.045em!important;text-transform:uppercase!important;background:linear-gradient(#f1f5f9 0%,#e2e8f0 100%)!important;border-top:3px solid #94a3b8!important;border-bottom:1px solid #cbd5e1!important;font-size:11px!important;font-weight:800!important}.admin-dashboard-table .ant-table-thead>tr>th:before,.admin-dashboard-table .ant-table-thead>tr>td:before{background:#64748b80!important}.admin-dashboard-table .ant-table-tbody>tr>td{border-bottom-color:#e2e8f0d1!important;padding-top:13px!important;padding-bottom:13px!important}.admin-dashboard-table .ant-table-tbody>tr:nth-child(2n)>td{background:#f8fafcc7!important}.admin-dashboard-table .ant-table-tbody>tr:nth-child(odd)>td{background:#fffffffa!important}.admin-dashboard-table .ant-table-tbody>tr:hover>td,.admin-dashboard-table .ant-table-tbody>tr.ant-table-row:hover>td{background:#f0fdfa!important}.admin-dashboard-table .ant-btn-sm{background:#ffffffeb;border-color:#cbd5e1;border-radius:999px;font-weight:650}.admin-dashboard-table .ant-btn-sm:not(:disabled):hover{color:#0f766e!important;background:#f0fdfa!important;border-color:#14b8a6!important}.row-action-trigger{opacity:0;pointer-events:none;justify-content:flex-end;transition:opacity .18s,transform .18s;display:flex;transform:translate(8px)}.admin-table .ant-table-row:hover .row-action-trigger,.admin-table .ant-table-row:focus-within .row-action-trigger{opacity:1;pointer-events:auto;transform:translate(0)}.row-action-pill{background:#e3f3fef5;border:1px solid #2160bd1f;border-radius:999px;padding:6px 8px;box-shadow:0 12px 24px #0f172a14}.row-action-pill .ant-btn{background:#fff}.table-primary{font-weight:700}.table-secondary{color:var(--brand-muted);font-size:13px}.side-panel-card{height:100%}.insight-icon{width:36px;height:36px;color:var(--brand-primary);background:#2160bd1a;border-radius:12px;flex:0 0 36px;place-items:center;font-weight:700;display:grid}.insight-value{color:var(--brand-primary);margin:4px 0;font-weight:700}.timeline-row{padding-left:12px;position:relative}.timeline-dot{background:var(--brand-primary);border-radius:999px;width:8px;height:8px;position:absolute;top:6px;left:0}.timeline-time{color:var(--brand-muted);margin-top:4px;font-size:12px;display:inline-block}.category-card .ant-tree{background:0 0}.category-card .ant-tree-node-selected,.category-card .ant-tree-node-content-wrapper:hover{border-radius:10px;background:#2160bd14!important}.inline-tag{justify-content:center;align-items:center;min-height:42px;margin:0;padding:0 14px;display:inline-flex}.banner-preview-card{height:100%;box-shadow:var(--shadow-soft);border:1px solid #dde6f0f2;overflow:hidden}.banner-preview-card .ant-card-body{padding:0}.banner-preview-visual{color:#fff;place-items:center;min-height:148px;font-size:34px;display:grid}.banner-preview-copy{padding:18px}.banner-preview-copy .ant-typography{margin-top:0}@media (width<=1279px){.toolbar-grid{grid-template-columns:1fr 1fr}.attendance-metric-strip{grid-template-columns:repeat(3,minmax(120px,1fr))}.attendance-toolbar{grid-template-columns:1fr 1fr}}@media (width<=991px){.admin-header{flex-wrap:wrap;height:auto}.menu-toggle-button{display:inline-flex}.header-search{order:3;width:100%;max-width:none}.quick-access-strip{display:none}.admin-content{padding:16px}.page-frame-top,.hero-panel{flex-direction:column;align-items:stretch}}@media (width<=767px){.toolbar-grid,.toolbar-grid.two-columns{grid-template-columns:1fr}.attendance-workspace-card .ant-card-body{padding:14px}.attendance-section-head{flex-direction:column;align-items:stretch}.attendance-section-actions{width:100%}.attendance-metric-strip,.attendance-toolbar{grid-template-columns:1fr}.brand-copy strong{font-size:18px}.brand-logo{width:60px}.page-frame-top{align-items:stretch}.admin-table .row-action-trigger{opacity:1;pointer-events:auto;transform:none}}.auth-shell{background:radial-gradient(circle at 0 0,#0ea5e92e,#0000 28%),radial-gradient(circle at 100% 100%,#0960a024,#0000 30%),linear-gradient(#f8fbfe 0%,#edf3f9 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-shell__panel{background:#ffffffeb;border:1px solid #dde6f0f2;border-radius:28px;width:min(1180px,100%);padding:28px;box-shadow:0 24px 48px #0f172a14}.auth-copy{gap:12px;padding:16px 8px;display:grid}.auth-card--compact{max-width:560px;margin-inline:auto}.demo-role-button{justify-content:space-between;align-items:center;gap:12px;height:auto;min-height:56px;padding:12px 16px;display:flex}.role-shell{background:0 0;min-height:100vh}.role-header{z-index:20;background:linear-gradient(135deg,#0a2e5c 0%,#0c4a8a 60%,#1565c0 100%);border-bottom:none;justify-content:space-between;align-items:center;gap:16px;height:auto;min-height:68px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 4px 20px #0a2e5c40,0 1px 3px #0000001a}.role-header__left{align-items:center;gap:14px;display:flex}.role-menu-button{display:none;color:#fff!important}.role-header__brand{align-items:center;gap:12px;display:flex}.role-header__logo{object-fit:contain;background:#ffffff1f;border-radius:10px;width:40px;height:40px;padding:3px}.role-header__brand-text{flex-direction:column;line-height:1.15;display:flex}.role-header__eyebrow{color:#fff;letter-spacing:.06em;font-size:17px;font-weight:800}.role-header__subtitle{color:#fff9;font-size:11px;font-weight:500}.role-header__icon-btn{color:#fff!important;background:#ffffff1f!important;border:1px solid #ffffff26!important}.role-header__icon-btn:hover{background:#ffffff38!important}.role-header__user-chip{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:10px;padding:5px 14px 5px 5px;display:flex}.account-menu-trigger{cursor:pointer;appearance:none;font-family:inherit}.account-menu-trigger:hover,.account-menu-trigger:focus-visible{background:#ffffff2e;border-color:#ffffff47;outline:none}.account-menu-trigger__chevron{color:#ffffffad;font-size:11px}.account-menu-overlay .ant-dropdown-menu{border-radius:12px;box-shadow:0 18px 45px #0f172a2e}.account-menu-panel{background:#fff;border-radius:16px;width:292px;padding:8px;box-shadow:0 18px 45px #0f172a2e}.account-menu-panel__header{background:linear-gradient(135deg,#f8fbff 0%,#eef6ff 100%);border-radius:12px;gap:12px;margin-bottom:6px;padding:12px;display:flex}.account-menu-panel__header>div:last-child{flex-direction:column;gap:4px;min-width:0;display:flex}.account-menu-panel__header strong{color:#0f172a;font-size:14px}.account-menu-panel__header .ant-typography{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:12px;overflow:hidden}.role-header__avatar{background:linear-gradient(135deg,#3b82f6,#06b6d4)!important}.role-header__user-info{flex-direction:column;line-height:1.2;display:flex}.role-header__user-info strong{color:#fff;font-size:13px;font-weight:700}.role-header__user-info span{color:#ffffff8c;font-size:11px}.role-header__logout-btn{font-weight:600;color:#ffffffd9!important;background:#ffffff14!important;border:1px solid #ffffff26!important}.role-header__logout-btn:hover{color:#fca5a5!important;background:#ef444433!important;border-color:#ef444466!important}.account-profile-modal .ant-modal-content{border-radius:18px}.account-profile-modal .ant-modal-body{padding-top:10px}.account-modal__hero{background:linear-gradient(135deg,#f8fbff 0%,#eef6ff 100%);border:1px solid #dbeafe;border-radius:16px;align-items:center;gap:14px;margin-bottom:12px;padding:14px;display:flex}.account-modal__avatar{background:linear-gradient(135deg,#2563eb,#0891b2)!important}.account-modal__tab{width:100%}.account-setting-row{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.account-setting-row>div{flex-direction:column;gap:4px;display:flex}.account-profile-modal--wide{max-width:92vw}.account-profile-modal--wide .ant-modal-content{border-radius:24px!important;padding:22px!important}.account-profile-modal--wide .ant-modal-body{height:min(620px,100vh - 190px);min-height:520px;padding-top:0;overflow:hidden}.account-profile-modal--wide .ant-modal-header{margin-bottom:16px!important}.account-modal__hero{background:radial-gradient(circle at 92% 10%,#3b82f624,#0000 30%),linear-gradient(135deg,#f8fbff 0%,#eef6ff 100%);border:1px solid #bfdbfe;border-radius:18px;align-items:center;gap:18px;min-height:88px;margin-bottom:12px;padding:18px 20px;display:flex}.account-modal__hero h4.ant-typography{margin:0 0 5px}.account-modal__hero-main{min-width:0}.account-modal__avatar-wrap{flex:none;position:relative}.account-modal__avatar{flex:none;font-weight:800;background:linear-gradient(135deg,#2563eb,#0891b2)!important}.account-modal__avatar-upload{bottom:-4px;right:-4px;border:2px solid #fff!important;width:34px!important;height:34px!important;position:absolute!important;box-shadow:0 10px 22px #2563eb47!important}.account-modal__avatar-help{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.account-modal__avatar-help .ant-btn-link{height:auto;padding:0}.account-modal__profile-alert{margin-bottom:12px}.account-modal__workspace{grid-template-columns:260px minmax(0,1fr);gap:16px;height:calc(100% - 100px);min-height:0;display:grid}.account-modal__sidebar{background:linear-gradient(#f8fafc 0%,#fff 100%);border:1px solid #e2e8f0;border-radius:18px;flex-direction:column;gap:8px;min-height:0;padding:10px;display:flex}.account-modal__side-tab{color:#475569;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;align-items:flex-start;gap:12px;width:100%;padding:13px 14px 13px 16px;transition:background .18s,border-color .18s,color .18s,transform .18s;display:flex;position:relative}.account-modal__side-tab:before{content:"";background:0 0;border-radius:0 999px 999px 0;width:4px;position:absolute;top:12px;bottom:12px;left:0}.account-modal__side-tab:hover,.account-modal__side-tab:focus-visible{color:#1e40af;background:#f8fbff;border-color:#dbeafe;outline:none}.account-modal__side-tab--active{color:#1d4ed8;background:#eef6ff;border-color:#bfdbfe;box-shadow:0 12px 26px #2563eb1a}.account-modal__side-tab--active:before{background:#2563eb}.account-modal__side-tab-icon{color:#64748b;background:#fff;border-radius:12px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid;box-shadow:inset 0 0 0 1px #e2e8f0}.account-modal__side-tab--active .account-modal__side-tab-icon{color:#1d4ed8;background:#dbeafe;box-shadow:inset 0 0 0 1px #bfdbfe}.account-modal__side-tab strong,.account-modal__side-tab small{display:block}.account-modal__side-tab strong{font-size:14px;font-weight:800;line-height:1.25}.account-modal__side-tab small{color:#64748b;margin-top:3px;font-size:12px;line-height:1.35}.account-modal__content{min-width:0;min-height:0;padding:4px 4px 4px 0;overflow:auto}.account-modal__panel{flex-direction:column;gap:16px;display:flex}.account-modal__panel-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.account-modal__panel-header h5.ant-typography{margin:0 0 4px}.account-profile-edit{flex-direction:column;gap:14px;display:flex}.account-profile-edit__form{min-width:0}.account-profile-section,.account-profile-system{background:linear-gradient(#f8fbffe0 0%,#fff 100%);border:1px solid #e2e8f0;border-radius:16px;padding:16px}.account-profile-section__header{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.account-profile-section__header strong{color:#0f172a;font-size:14px;font-weight:850}.account-profile-edit__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.account-profile-edit__wide{grid-column:1/-1}.account-profile-system{background:#f8fafc}.account-profile-system__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.account-profile-system__item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:6px;min-width:0;padding:12px;display:flex}.account-profile-system__item strong{color:#0f172a;overflow-wrap:anywhere;min-width:0;font-weight:750}.account-password-form{max-width:520px}.admin-invoice-theme{--invoice-blue:#2f63e7;--invoice-blue-deep:#1e3fae;--invoice-ink:#172554;--invoice-muted:#64748b;--invoice-line:#93aee657;--invoice-glass:#ffffffc2}.admin-invoice-theme>div{gap:20px!important}.admin-invoice-theme>div>.ant-card:first-child{min-height:154px;background:radial-gradient(circle at 7% 44%,#4c7fff2e 0 58px,#0000 59px),radial-gradient(circle at 82% 26%,#57aeff2e 0 76px,#0000 77px),linear-gradient(105deg,#f6fafffa 0%,#ecf4ffeb 48%,#ffffffd1 100%)!important;border:1px solid #8caaee7a!important;border-radius:26px!important;box-shadow:inset 0 1px #fffffff5,0 16px 44px #2f63e729,0 3px 10px #0f172a0f!important}.admin-invoice-theme>div>.ant-card:first-child:before{content:"";pointer-events:none;background:url(/invoice-hero-icon.svg) 50%/82px 82px no-repeat,linear-gradient(145deg,#ffffffe6,#d5e6ff94);border:1px solid #a6bef794;border-radius:34px;width:106px;height:106px;position:absolute;top:24px;left:30px;box-shadow:inset 0 1px #ffffffe6,0 18px 40px #4876ec33}.admin-invoice-theme>div>.ant-card:first-child:after{content:"";filter:drop-shadow(0 16px 28px #2f63e721);opacity:.88;pointer-events:none;background:linear-gradient(90deg,#2f63e73d 8px,#0000 9px) 54px 60px/20px 42px no-repeat,linear-gradient(90deg,#2f63e72e 8px,#0000 9px) 78px 42px/20px 60px no-repeat,linear-gradient(90deg,#2f63e724 8px,#0000 9px) 102px 25px/20px 78px no-repeat,linear-gradient(145deg,#ffffffc2,#bfdbfe75);border:1px solid #abc7fc75;border-radius:30px;width:245px;height:112px;position:absolute;top:22px;right:178px}.admin-invoice-theme>div>.ant-card:first-child .ant-card-body{min-height:154px;align-items:center!important;padding:24px 28px 24px 166px!important}.admin-invoice-theme>div>.ant-card:first-child .ant-typography{color:var(--invoice-muted)!important}.admin-invoice-theme>div>.ant-card:first-child h3.ant-typography{color:#172554!important;letter-spacing:0!important;font-size:26px!important}.admin-invoice-theme>div>.ant-card:first-child span[style*=text-transform]{color:#2f63e7!important;background:#2f63e71a!important;border-color:#2f63e72e!important}.admin-invoice-primary-action.ant-btn-primary,.admin-invoice-theme .ant-btn-primary{border:0;box-shadow:0 12px 28px #2f63e73d;background:linear-gradient(135deg,#3f72f5,#2951d2)!important}.admin-invoice-soft-button{box-shadow:0 8px 22px #2f63e714;color:#1e3fae!important;background:#ffffffd6!important;border-color:#93aee69e!important}.admin-invoice-panel.ant-card{overflow:hidden;background:linear-gradient(#fffffff0,#ffffffd6),radial-gradient(circle at 0 0,#dbeafebf,#0000 46%)!important;border:1px solid #b4c6ed7a!important;border-radius:22px!important;box-shadow:0 18px 44px #2f63e71a,0 2px 8px #0f172a0a!important}.admin-invoice-panel>.ant-card-head{background:#ffffff8f;min-height:54px;border-bottom:1px solid #b4c6ed6b!important}.admin-invoice-panel>.ant-card-head .ant-card-head-title{color:#172554;font-size:16px;font-weight:800}.admin-invoice-filterbar{background:#f8fbffbd;border:1px solid #cad8f88c;border-radius:16px;margin-bottom:16px;padding:16px}.admin-invoice-filterbar .ant-input-affix-wrapper,.admin-invoice-filterbar .ant-input-search .ant-input,.admin-invoice-filterbar .ant-select-selector,.admin-invoice-filterbar .ant-picker{box-shadow:inset 0 1px #ffffffe0;background:#ffffffe6!important;border-color:#bdcdf1c7!important;border-radius:12px!important}.admin-invoice-theme .ant-table-wrapper{background:#ffffffe6;border:1px solid #bfcff394;border-radius:18px;overflow:hidden}.admin-invoice-theme .ant-table{background:0 0}.admin-invoice-theme .ant-table-thead>tr>th{letter-spacing:.01em;font-size:12px;font-weight:800;color:#fff!important;background:linear-gradient(#4a74ed 0%,#315de2 100%)!important;border-bottom:0!important}.admin-invoice-theme .ant-table-thead>tr>th:before{background:#ffffff52!important}.admin-invoice-theme .ant-table-tbody>tr>td{color:#1e293b;border-bottom:1px solid #e2e8f0d6!important}.admin-invoice-theme .ant-table-tbody>tr:nth-child(2n)>td{background:#f8fbffd1}.admin-invoice-theme .ant-table-tbody>tr:hover>td{background:#ecf4fffa!important}.admin-invoice-theme .ant-pagination .ant-pagination-item-active{background:#315de2;border-color:#315de2}.admin-invoice-theme .ant-pagination .ant-pagination-item-active a{color:#fff}.admin-invoice-form-panel .ant-steps{background:#f8fbffcc;border:1px solid #cad8f894;border-radius:16px;padding:14px 16px}.admin-invoice-theme .ant-tag{border-radius:999px;font-weight:700}@media (width<=768px){.account-profile-modal{max-width:calc(100vw - 24px)}.account-menu-panel{width:min(292px,100vw - 24px)}.account-modal__hero,.account-setting-row{align-items:flex-start}.account-modal__hero{flex-wrap:wrap}.account-setting-row{flex-direction:column}.account-profile-modal--wide{max-width:calc(100vw - 20px)}.account-profile-modal--wide .ant-modal-body{height:calc(100vh - 150px)}.account-modal__workspace{grid-template-columns:1fr;height:calc(100% - 104px)}.account-modal__sidebar{max-height:232px;overflow:auto}.account-profile-edit__grid,.account-profile-system__grid{grid-template-columns:1fr}.admin-invoice-theme>div>.ant-card:first-child:before,.admin-invoice-theme>div>.ant-card:first-child:after{display:none}.admin-invoice-theme>div>.ant-card:first-child .ant-card-body{padding:20px!important}}.role-layout{background:0 0}.role-sider{padding:16px 8px 16px 16px;background:0 0!important}.role-sider-surface{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border:1px solid #dde6f0f2;border-radius:22px;flex-direction:column;gap:10px;height:calc(100vh - 100px);padding:16px 14px;display:flex;position:sticky;top:84px;box-shadow:0 8px 32px #0f172a0f,0 1px 2px #0f172a0a}.role-brand{border-bottom:1px solid #dde6f0cc;padding:6px 4px 10px}.role-brand__logo-row{align-items:center;gap:12px;display:flex}.role-brand__logo{object-fit:contain;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:12px;width:42px;height:42px;padding:4px;box-shadow:0 2px 8px #0960a01f}.role-brand__text{flex-direction:column;gap:2px;display:flex}.role-brand__name{color:#0c4a8a;letter-spacing:.04em;font-size:16px;font-weight:800;line-height:1}.role-brand__role-tag{color:#0c4a8a;text-transform:uppercase;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:999px;margin-top:2px;padding:2px 10px;font-size:10px;font-weight:700;display:inline-block}.role-side-menu{background:0 0;flex:1;overflow:auto;border-inline-end:0!important}.role-side-menu .ant-menu-item{font-weight:550;border-radius:10px!important;width:100%!important;margin-inline:0!important}.role-side-menu .ant-menu-item:hover{background:#0960a00f!important}.role-side-menu .ant-menu-item-selected{font-weight:700;box-shadow:0 2px 8px #0960a014;background:linear-gradient(135deg,#0960a01a,#0ea5e90f)!important}.role-side-menu .ant-menu-submenu-title{font-weight:600;border-radius:10px!important}.role-content{background:0 0;padding:20px 20px 24px 4px}.role-page-shell{flex-direction:column;gap:16px;display:flex}.role-user-chip{background:#fffc;border:1px solid #dde6f0f2;border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;display:flex}.role-user-chip strong,.role-user-chip span{line-height:1.2;display:block}.role-user-chip span{color:var(--brand-muted);font-size:12px}.cd-page-header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.cd-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-primary);margin:10px 0 8px;font-size:12px;font-weight:700;display:inline-flex}.cd-title{margin:0!important}.cd-description{color:var(--brand-muted);max-width:860px;margin:8px 0 0!important}.cd-surface-card{border:1px solid #dde6f0f2;box-shadow:0 16px 36px #0f172a0f}.cd-stat-card .ant-card-body{gap:10px;display:grid}.data-filter-bar{background:linear-gradient(#f8fbfef5,#fffffff5);border:1px solid #dde6f0f2;border-radius:18px;padding:14px 16px}.data-filter-bar__actions{justify-content:flex-end;width:100%;display:flex}.workspace-shell{grid-template-columns:300px minmax(0,1fr);gap:16px;display:grid}.workspace-sidebar{flex-direction:column;gap:16px;display:flex}.workspace-sidebar .ant-menu{background:0 0;border-inline-end:0!important}.workspace-content{min-width:0}.section-toolbar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.section-toolbar__copy{gap:4px;display:grid}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-card{background:#f9fbfd;border:1px solid #dde6f0f2;border-radius:16px;padding:14px 16px}.detail-card strong,.detail-card span{display:block}.detail-card span{color:var(--brand-muted);margin-top:6px;font-size:13px}.teacher-drawer-stack{flex-direction:column;gap:16px;display:flex}.quick-attendance-row{border-bottom:1px dashed #dde6f0f2;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.smooth-scroll{overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-color:#64748b6b transparent;scrollbar-width:thin}.smooth-scroll::-webkit-scrollbar{width:8px;height:8px}.smooth-scroll::-webkit-scrollbar-track{background:0 0}.smooth-scroll::-webkit-scrollbar-thumb{background:#64748b5c padding-box content-box;border:2px solid #0000;border-radius:999px}.smooth-scroll::-webkit-scrollbar-thumb:hover{background:#4755698f padding-box content-box}.admin-overview-workspace{flex-direction:column;gap:16px;display:flex}.admin-overview-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.admin-overview-schedule-card{border:1px solid #dde6f0eb;border-radius:14px;box-shadow:0 10px 26px #0f172a0d}.admin-overview-schedule-card .ant-card-head{min-height:64px;padding:0 18px}.admin-overview-schedule-scroll,.admin-class-timeline__scroll{max-height:420px;padding:14px 4px 0 0;overflow-y:auto}.admin-overview-schedule-scroll .ant-table-wrapper{min-width:0}.admin-overview-kpi-card{border:1px solid #dde6f0eb;border-radius:14px;box-shadow:0 8px 22px #0f172a0d}.admin-overview-kpi-card .ant-card-body{padding:14px 16px}.admin-overview-kpi-card__body{justify-content:space-between;align-items:flex-start;gap:12px;min-height:76px;display:flex}.admin-overview-kpi-card__label{letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700;display:block}.admin-overview-kpi-card__value{margin-top:5px;font-size:21px;font-weight:800;line-height:1.12}.admin-overview-kpi-card__hint{margin-top:4px;font-size:12px;display:block}.admin-overview-kpi-card__icon{color:#1d4ed8;background:#ffffffb8;border-radius:12px;justify-content:center;align-items:center;min-width:34px;height:34px;padding-inline:8px;display:inline-flex}.admin-overview-timeline-card{border:1px solid #dde6f0eb;border-radius:14px;box-shadow:0 10px 26px #0f172a0d}.admin-overview-timeline-card .ant-card-head{min-height:64px;padding:0 18px}.admin-overview-timeline-card .ant-card-body{padding:18px 20px 8px}.admin-class-timeline{padding-top:2px}.admin-class-timeline .ant-timeline-item{padding-bottom:18px}.admin-class-timeline .ant-timeline-item-tail{border-inline-start-color:#2563eb29;height:calc(100% - 32px);inset-block-start:32px;inset-inline-start:14px}.admin-class-timeline .ant-timeline-item-head-custom{background:0 0;width:28px;height:28px;margin:0;padding:0;inset-block-start:0;inset-inline-start:0;transform:none}.admin-class-timeline .ant-timeline-item-content{min-height:64px;margin-inline-start:46px;inset-block-start:0}.admin-class-timeline .ant-timeline-item-last{padding-bottom:2px}.admin-class-timeline__icon{color:#2563eb;background:#eff6ff;border:1px solid #93c5fdb8;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;line-height:1;display:inline-flex;box-shadow:0 0 0 4px #fff,0 8px 18px #2563eb1f}.admin-class-timeline__icon .anticon{font-size:14px}.admin-class-timeline__item{gap:6px;padding-bottom:4px;display:grid}.admin-class-timeline__main{justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-class-timeline__tag{border-radius:999px;margin-inline-end:0}.admin-class-timeline__time{white-space:nowrap;font-size:12px}.admin-class-timeline__detail{color:#475569;background:#f8fafcdb;border:1px solid #e2e8f0db;border-radius:10px;gap:3px;padding:8px 10px;font-size:12px;display:grid}.admin-class-timeline__more{justify-content:center;padding:6px 0 0;display:flex}.admin-class-timeline__loading{color:#64748b;text-align:center;padding:8px 0 2px;font-size:12px}.class-timeline-card__title{gap:2px;display:grid}.class-timeline-card--compact{border-radius:16px}.class-timeline-card--compact .ant-card-head{min-height:58px;padding:0 14px}.class-timeline-card--compact .ant-card-head-wrapper{flex-direction:column;align-items:stretch;gap:10px;width:100%;padding:14px 0 12px}.class-timeline-card--compact .ant-card-head-title{white-space:normal;min-width:0;padding:0;overflow:visible}.class-timeline-card--compact .ant-card-body{padding:12px 14px 8px}.class-timeline-card--compact .ant-card-extra{width:100%;max-width:100%;margin-inline-start:0;padding:0}.class-timeline-card--compact .ant-radio-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;max-width:100%;display:grid;overflow:visible}.class-timeline-card--compact .ant-radio-button-wrapper{text-align:center;border:1px solid #dbe4f0;border-radius:8px;height:30px;padding-inline:8px;font-size:13px;line-height:28px}.class-timeline-card--compact .ant-radio-button-wrapper:before{display:none}.class-timeline-card--compact .ant-radio-button-wrapper-checked{box-shadow:none;border-color:#1677ff}.class-timeline-card__scroll--compact{max-height:360px;padding:10px 2px 0 14px}.class-timeline-card__item--compact .admin-class-timeline__main{flex-direction:column;align-items:flex-start;gap:5px}.class-timeline-card__item--compact .admin-class-timeline__time{display:block}.class-timeline-card__item--compact .admin-class-timeline__detail{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.teacher-reports-page{width:100%}.teacher-reports-card{overflow:hidden}.teacher-reports-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.teacher-reports-eyebrow{color:#0b63a8;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800}.teacher-reports-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.teacher-report-metric{background:linear-gradient(#f8fbff 0%,#fff 100%);border:1px solid #dbeafe;border-radius:12px;min-height:78px;padding:14px}.teacher-report-metric span{color:#64748b;font-size:12px;font-weight:600;display:block}.teacher-report-metric strong{color:#0f172a;margin-top:8px;font-size:24px;line-height:1;display:block}.teacher-reports-filters{grid-template-columns:minmax(240px,1fr) 220px;gap:12px;margin-bottom:16px;display:grid}.teacher-reports-table .ant-table-thead>tr>th:before{display:none}.teacher-report-preview{gap:16px;display:grid}.teacher-report-preview__header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.teacher-report-preview__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.teacher-report-preview__grid>div,.teacher-report-preview__summary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px}.teacher-report-preview__grid span{color:#64748b;font-size:12px;display:block}.teacher-report-preview__grid strong{color:#0f172a;margin-top:4px;display:block}.teacher-report-preview__summary{color:#334155;line-height:1.65}@media (width<=991px){.teacher-feed-layout{flex-direction:column!important}.teacher-feed-main,.teacher-feed-sidebar{max-width:100%;width:100%!important}.teacher-feed-sidebar{order:2}.teacher-reports-header{flex-direction:column}.teacher-reports-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-reports-filters,.teacher-report-preview__grid{grid-template-columns:1fr}}.center-page{place-items:center;min-height:60vh;display:grid}@media (width<=991px){.auth-shell__panel{padding:20px}.role-header{flex-wrap:wrap}.role-menu-button{display:inline-flex}.role-content{padding:16px}.cd-page-header{flex-direction:column;align-items:stretch}.workspace-shell,.admin-overview-split{grid-template-columns:1fr}.admin-overview-timeline-card .ant-card-head{align-items:flex-start;padding-block:12px}.admin-overview-timeline-card .ant-card-extra{width:100%;margin-inline-start:0;padding-top:10px}.admin-overview-timeline-card .ant-radio-group{width:100%;display:flex;overflow-x:auto}.admin-class-timeline__main{flex-direction:column;align-items:flex-start}}.ant-table-wrapper{border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0f172a0a,0 6px 20px #0f172a0d}.ant-table{font-size:13.5px;overflow:hidden;border-radius:16px!important}.ant-table-thead>tr>th,.ant-table-thead>tr>td{white-space:nowrap;color:#fff!important;letter-spacing:.04em!important;text-transform:uppercase!important;background:linear-gradient(#0c4a8a 0%,#0d5299 100%)!important;border-bottom:none!important;padding:13px 16px!important;font-size:12px!important;font-weight:700!important}.ant-table-thead>tr>th:first-child,.ant-table-thead>tr>th:last-child{border-radius:0!important}.ant-table-thead .ant-table-column-sorter,.ant-table-thead .ant-table-column-sorter-up,.ant-table-thead .ant-table-column-sorter-down{color:#ffffff8c!important}.ant-table-thead .ant-table-column-sorter-up.active,.ant-table-thead .ant-table-column-sorter-down.active{color:#7dd3fc!important}.ant-table-thead .ant-table-filter-trigger{color:#fff9!important}.ant-table-thead .ant-table-filter-trigger.active{color:#7dd3fc!important}.ant-table-tbody>tr>td{color:#1e293b;vertical-align:middle;font-size:13.5px;transition:background .15s;border-bottom:1px solid #e2e8f0b3!important;padding:11px 16px!important}.ant-table-tbody>tr:nth-child(2n)>td{background:#f8fafce6}.ant-table-tbody>tr:nth-child(odd)>td{background:#fff}.ant-table-tbody>tr:hover>td,.ant-table-tbody>tr.ant-table-row:hover>td{background:#0960a00d!important}.ant-table-tbody>tr.ant-table-row-selected>td{background:#0960a014!important}.ant-table-tbody>tr:last-child>td{border-bottom:none!important}.ant-table-selection-column{padding-inline:14px!important}.ant-table-pagination{background:#fff;border-top:1px solid #e2e8f0cc;margin:0!important;padding:12px 16px!important}.ant-table-pagination .ant-pagination-item-active{background:#0c4a8a!important;border-color:#0c4a8a!important}.ant-table-pagination .ant-pagination-item-active a{color:#fff!important}.ant-table-empty .ant-table-placeholder{background:#fafbfc}.ant-table-summary>tr>td{font-weight:700;background:#f1f5f9!important;border-top:2px solid #0960a026!important}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:inherit!important}.ant-table-expanded-row>td{background:#f8fafc!important;border-bottom:1px solid #e2e8f0b3!important}.row-action-pill{background:#fffffff5;border:1px solid #dde6f0e6;border-radius:999px;align-items:center;gap:4px;padding:3px 6px;display:flex;box-shadow:0 2px 8px #0f172a14}.ant-table-body::-webkit-scrollbar{width:6px;height:6px}.ant-table-body::-webkit-scrollbar-track{background:#f1f5f9}.ant-table-body::-webkit-scrollbar-thumb{background:#0960a040;border-radius:3px}.ant-table-body::-webkit-scrollbar-thumb:hover{background:#0960a073}.teacher-reports-table .ant-table-thead>tr>th{color:#fff!important;background:linear-gradient(#0b63b6 0%,#0c6fc7 100%)!important;font-weight:700!important}.ant-btn{border-radius:8px;font-weight:550;transition:all .2s cubic-bezier(.4,0,.2,1)}.ant-btn-primary{background:linear-gradient(135deg,#0a58ca 0%,#0d6efd 100%);border:none;box-shadow:0 4px 12px #0d6efd33,0 1px 2px #0d6efd1a}.ant-btn-primary:not(:disabled):hover{background:linear-gradient(135deg,#094eb3 0%,#0b5ed7 100%);transform:translateY(-1px);box-shadow:0 6px 16px #0d6efd47,0 2px 4px #0d6efd26}.ant-btn-default{color:#334155;border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a0a}.ant-btn-default:not(:disabled):hover{color:#0f172a;background:#f8fafc;border-color:#94a3b8}.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-picker,.ant-select-selector{transition:all .2s;border-color:#cbd5e1!important;border-radius:10px!important;box-shadow:0 1px 2px #0f172a05!important}.ant-input:hover,.ant-input-affix-wrapper:hover,.ant-input-number:hover,.ant-picker:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#94a3b8!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper-focused,.ant-input-number-focused,.ant-picker-focused,.ant-select-focused .ant-select-selector{border-color:#0d6efd!important;box-shadow:0 0 0 3px #0d6efd26!important}.ant-tabs-nav:before{border-bottom:1px solid #e2e8f0cc!important}.ant-tabs-tab{font-size:14px;transition:color .2s;color:#64748b!important;margin-right:24px!important;padding:12px 0!important}.ant-tabs-tab:hover{color:#334155!important}.ant-tabs-tab-active .ant-tabs-tab-btn{color:#0d6efd!important;font-weight:700!important}.ant-tabs-ink-bar{border-radius:3px 3px 0 0;background:#0d6efd!important;height:3px!important}.ant-modal-content{border:1px solid #e2e8f0cc;border-radius:20px!important;padding:24px!important;box-shadow:0 20px 48px #0f172a26,0 8px 16px #0f172a14!important}.ant-modal-header{border-bottom:1px solid #e2e8f0cc!important;margin-bottom:20px!important;padding-bottom:16px!important}.ant-modal-title{letter-spacing:-.01em;color:#0f172a!important;font-size:18px!important;font-weight:800!important}.ant-modal-footer{border-top:1px solid #e2e8f0cc!important;margin-top:24px!important;padding-top:16px!important}.ant-drawer-content-wrapper{box-shadow:-10px 0 30px #0f172a1a!important}.ant-drawer-content{border-radius:24px 0 0 24px!important}.ant-drawer-header{border-bottom:1px solid #e2e8f0cc!important;padding:20px 24px!important}.ant-drawer-title{color:#0f172a!important;font-size:18px!important;font-weight:800!important}
