html,body,#root{min-height:100%;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,PingFang SC,Noto Sans CJK SC,Microsoft YaHei,sans-serif}body{background:#f5f7fb}.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}:root{--bg-obsidian:#0a0a0b;--panel-bg:#0e151e8a;--panel-border:#00f2ff47;--text-main:#d8f5ff;--text-sub:#8aa6b8;--cyber-blue:#00f2ff;--electric-cyan:#57e7ff;--neon-violet:#b04dff;--line:#00f2ff29;--danger:#ff5f8f}*{box-sizing:border-box}html,body,#root{min-height:100%;color:var(--text-main);background:radial-gradient(circle at 20% 0,#0d1520 0%,#090a0f 48%,#060607 100%);margin:0;font-family:Orbitron,Space Mono,IBM Plex Sans,SF Mono,monospace,sans-serif}button,select,input,textarea{font:inherit}.page{z-index:1;max-width:1700px;min-height:100vh;margin:0 auto;padding:18px;position:relative}.page:before{content:"";pointer-events:none;opacity:.24;z-index:-2;background-image:linear-gradient(#00f2ff0d .5px,#0000 .5px),linear-gradient(90deg,#00f2ff0d .5px,#0000 .5px);background-size:32px 32px;position:fixed;inset:0}.page:after{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle at 80% 20%,#57e7ff14,#0000 42%);position:fixed;inset:0}.bg-glow{filter:blur(120px);pointer-events:none;z-index:0;border-radius:50%;width:460px;height:460px;position:fixed}.bg-glow-a{background:#00f2ff2e;top:-120px;left:-140px}.bg-glow-b{background:#b04dff24;top:200px;right:-120px}.card-shell,.board{z-index:1;position:relative}.card-shell{border:.5px solid var(--panel-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(155deg,#0f1924c2,#070b12b8);border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 1px #00f2ff0f,0 14px 30px #0000006b,0 0 28px #00f2ff14}.card-shell:after{content:"";pointer-events:none;opacity:.6;background:linear-gradient(120deg,#0000 0%,#00f2ff0a 45%,#0000 100%);position:absolute;inset:0}.header{flex-direction:column;gap:12px;margin-bottom:12px;padding:16px;display:flex}.header-row{justify-content:space-between;gap:16px;display:flex}.header-main{flex:1;min-width:0}.header h1{letter-spacing:.08em;text-transform:uppercase;color:#e9fcff;text-shadow:0 0 18px #00f2ff47;margin:0;font-size:24px}.header p{color:var(--text-sub);letter-spacing:.04em;margin:6px 0 0;font-size:12px}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.header-user{background:#08101c8f;border:.5px solid #57e7ff57;border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:0 12px;display:inline-flex;box-shadow:inset 0 0 0 1px #00f2ff0f}.header-user span{color:#8cb0c0;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.header-user strong{color:#d2f9ff;font-size:13px}button.header-logout{color:#c7f2ff;background:#09131e8f;border-color:#57e7ff57;border-radius:999px;min-height:36px;padding:0 14px}button.header-logout:hover{background:#0a1622b3;border-color:#57e7ff8f;box-shadow:0 0 12px #57e7ff33}.manual-entry{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;display:flex}.manual-entry h2{letter-spacing:.06em;margin:0;font-size:15px}.manual-entry p{color:var(--text-sub);margin:6px 0 0;font-size:12px}.hud-topline{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;padding:10px;display:grid}.header-topline{margin-top:0;margin-bottom:0;padding:0}.header-topline .hud-node{background:#050d166b;gap:2px;padding:7px 10px}.header-topline .hud-node small{opacity:.8}.hud-node{background:#050d169e;border:.5px solid #00f2ff33;border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.hud-node span{color:#7c98aa;letter-spacing:.12em;text-transform:uppercase;font-size:10px}.hud-node strong{color:#d5fbff;font-size:14px}.hud-node strong.violet{color:#ddb4ff;text-shadow:0 0 12px #b04dff8c}.hud-node small{color:#62869a;letter-spacing:.08em;font-size:10px}.hud-visuals{grid-template-columns:1.2fr 1.8fr 1.2fr;gap:10px;margin-bottom:12px;padding:10px;display:grid}.hud-title{letter-spacing:.14em;color:#9ac5db;text-transform:uppercase;margin-bottom:8px;font-size:11px}.waveform-panel,.map-core,.globe-panel{background:#060c148f;border:.5px solid #00f2ff29;border-radius:10px;min-height:190px;padding:10px;position:relative;overflow:hidden}.waveform-track{border-bottom:.5px solid #00f2ff3d;align-items:flex-end;gap:3px;height:118px;padding-bottom:8px;display:flex}.customer-manage-panel{cursor:pointer;flex-direction:column;display:flex}.customer-manage-panel:focus-visible{outline-offset:2px;outline:1px solid #57e7ffb8}.panel-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-link-btn{color:#c7f2ff;background:#09131e8f;border:.5px solid #57e7ff57;border-radius:999px;min-height:28px;padding:0 10px;font-size:11px}.panel-link-btn:hover{background:#0a1622b3;border-color:#57e7ff8f;box-shadow:0 0 12px #57e7ff33}.wave-cell{cursor:pointer;background:0 0;border:0;align-items:flex-end;width:4px;height:100%;padding:0;display:flex}.dual-waveform-track{flex:1;justify-content:space-between;gap:2px;height:auto;min-height:110px;margin-top:16px}.dual-waveform-track .wave-cell{width:auto;min-width:0;cursor:inherit;flex:1 1 0;justify-content:center;gap:2px}.wave-bar{transform-origin:bottom;width:4px;animation:2.8s ease-in-out infinite wave-breathe;animation-delay:var(--wave-delay,0s);background:linear-gradient(#00f2fff2,#00f2ff26);border-radius:3px 3px 0 0;flex:none;transition:height .25s,box-shadow .2s;display:block;box-shadow:0 0 10px #00f2ff59}.wave-bar-followed{background:linear-gradient(#4ade80f5,#4ade8029);box-shadow:0 0 10px #4ade8052}.wave-cell.active .wave-bar,.wave-cell:hover .wave-bar{box-shadow:0 0 12px #6fefffcc}.dual-waveform-track .wave-cell:hover .wave-bar-followed{box-shadow:0 0 12px #86efacb8}.waveform-panel small,.map-core small{color:#688ba1;letter-spacing:.08em;margin-top:8px;font-size:10px;display:block}.customer-manage-panel small{margin-top:6px}.map-core{background:radial-gradient(circle,#00f2ff1a,#0000 56%),#060c148f}.map-grid{background-image:linear-gradient(#00f2ff24 .5px,#0000 .5px),linear-gradient(90deg,#00f2ff24 .5px,#0000 .5px);background-size:22px 22px;border:.5px solid #00f2ff33;border-radius:8px;position:absolute;inset:36px 14px 34px}.map-sweep{border:1px solid #00f2ff59;border-radius:50%;width:180px;height:180px;position:absolute;top:40px;left:50%;transform:translate(-50%)}.map-sweep:after{content:"";transform-origin:bottom;background:linear-gradient(#00f2ffe6,#0000);width:2px;height:88px;animation:5.5s linear infinite rotate-sweep;position:absolute;top:2px;left:50%}.map-blips{pointer-events:none;position:absolute;inset:36px 14px 34px}.map-blips .blip{width:8px;height:8px;left:var(--blip-left,50%);top:var(--blip-top,50%);background:var(--electric-cyan);animation:1.8s ease-in-out infinite pulse;animation-delay:var(--blip-delay,0s);border-radius:50%;position:absolute;box-shadow:0 0 12px #57e7ffcc}.map-blips .blip.overdue{background:#ff546a;box-shadow:0 0 12px #ff546ae0}.globe-panel{flex-direction:column;gap:10px;display:flex}.wire-globe{background:radial-gradient(circle,#00f2ff17,#03080e14 62%,#0000 70%),radial-gradient(circle,#00f2ff08,#0000 72%);border-radius:50%;width:112px;height:112px;margin:0 auto;position:relative;box-shadow:inset 0 0 26px #00f2ff1f,0 0 22px #00f2ff33}.wire-globe .orbit{border:1px solid #57e7ff57;border-radius:50%;position:absolute;inset:18px;box-shadow:0 0 10px #00f2ff29}.wire-globe .orbit-a{animation:7.2s linear infinite orbit-ring-a;transform:rotate(18deg)}.wire-globe .orbit-b{animation:6.1s linear infinite reverse orbit-ring-b;transform:rotate(-26deg)scaleY(.72)}.wire-globe .orbit-c{animation:5.4s linear infinite orbit-ring-c;transform:rotate(68deg)scaleX(.72)}.wire-globe .nucleus{background:radial-gradient(circle at 35% 35%,#d8fbff,#57e7ff 62%,#57e7ff38 100%);border-radius:50%;width:14px;height:14px;animation:1.9s ease-in-out infinite nucleus-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 14px #57e7ffe6,0 0 24px #00f2ff80}.wire-globe .electron{background:#aef6ff;border-radius:50%;width:7px;height:7px;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #aef6ffe6,0 0 14px #00f2ff73}.wire-globe .electron-a{animation:2.7s linear infinite electron-orbit-a}.wire-globe .electron-b{opacity:.86;animation:3.4s linear infinite electron-orbit-b}.ring-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.status-ring{--pct:35;--ring-color:var(--cyber-blue);background:#050a109e;border:.5px solid #00f2ff38;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:88px;display:flex;position:relative;overflow:hidden}.status-ring:before{content:"";background:conic-gradient(var(--ring-color) calc(var(--pct) * 1%), #0000 0%);opacity:.9;border-radius:50%;position:absolute;inset:8px}.status-ring:after{content:"";background:#060c14f2;border:.5px solid #00f2ff1f;border-radius:50%;position:absolute;inset:16px}.status-ring span,.status-ring strong{z-index:1;position:relative}.status-ring span{color:#8ab8cc;letter-spacing:.06em;font-size:10px}.status-ring strong{color:#e0feff;font-size:14px}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:10px;display:flex}.filter-bar-extended{align-items:center}.filter-block{flex-wrap:wrap;gap:8px;display:flex}.filter-actions-right{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.filter-create-btn{color:#d7fbff;letter-spacing:.06em;background:#07101bc7;border:.5px solid #00f2ff73;border-radius:999px;margin-left:auto;padding:7px 14px;box-shadow:inset 0 0 0 1px #00f2ff14}.filter-create-btn:hover{background:#091522e0;border-color:#57e7ffb8;box-shadow:0 0 14px #00f2ff33}.chip{color:#aed2e3;letter-spacing:.06em;background:#060e1694;border:.5px solid #00f2ff40;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:12px;display:inline-flex}.chip span{text-align:center;color:#e2fdff;background:#00f2ff29;border-radius:12px;min-width:20px;padding:1px 6px;font-size:11px}.chip.active{color:azure;border-color:#57e7ffbf;box-shadow:0 0 16px #00f2ff33}.ai-ops{margin-top:12px;margin-bottom:12px;padding:12px}.ai-ops-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.ai-ops-head h2{letter-spacing:.08em;margin:0;font-size:14px}.ai-ops-head span{color:#7ea6ba;font-size:11px}.ai-ops-list{flex-direction:column;gap:8px;display:flex}.ai-ops-scroll{max-height:300px;padding-right:4px;overflow-y:auto}.ai-ops-loading{text-align:center;color:#7ea0b3;padding:4px 0 2px;font-size:11px}.ai-op-item{background:#060d158c;border:.5px solid #00f2ff29;border-radius:10px;justify-content:space-between;gap:10px;padding:9px;display:flex}.ai-op-main strong{color:#d2f9ff;font-size:12px;display:block}.ai-op-main span,.ai-op-meta{color:#7ea0b3;font-size:11px}.ai-op-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.op-status{background:#07101899;border:.5px solid #00f2ff59;border-radius:99px;padding:2px 8px}.op-executed{color:#b8f8ff}.op-pending_confirm,.op-rejected{color:#e1b8ff;border-color:#b04dff8c}.board{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.archive-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.archive-section{margin-top:0;padding:12px}.archive-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.archive-head h2{letter-spacing:.08em;margin:0;font-size:14px}.archive-head span{color:#89acbe;font-size:11px}.archive-list{flex-direction:column;gap:8px;display:flex}.archive-scroll{max-height:300px;padding-right:4px;overflow-y:auto}.archive-loading{text-align:center;color:#7ea0b3;padding:4px 0 2px;font-size:11px}.archive-item{background:#060d158c;border:.5px solid #00f2ff2e;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:9px;display:flex}.archive-item[role=button]{cursor:pointer}.archive-item[role=button]:focus-visible{outline-offset:3px;outline:2px solid #5affc4b8}.archive-item strong{color:#d8fbff;font-size:13px}.archive-item p{color:#7f9eb0;margin:4px 0 0;font-size:11px}.column{background:#070e16a3;border:.5px solid #00f2ff38;border-radius:12px;flex-direction:column;min-height:540px;transition:box-shadow .2s;display:flex;overflow:hidden}.column.drop-target{background:linear-gradient(#00f2ff1f,#070e16a3);box-shadow:inset 0 0 0 1px #00f2ff80,0 0 0 1px #00f2ff14}.card[draggable=true]{cursor:grab}.card[draggable=true]:active{cursor:grabbing}.column-head{background:linear-gradient(90deg,#00f2ff1a,#00f2ff00);border-bottom:.5px solid #00f2ff24;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.column-head h2{letter-spacing:.08em;margin:0;font-size:14px}.column-head span{text-align:center;background:#00f2ff2e;border-radius:10px;min-width:22px;padding:2px 7px;font-size:11px}.column.status-doing{background:#061220ad;border-color:#00a8ff57}.column.status-doing .column-head{background:linear-gradient(90deg,#00a8ff38,#00a8ff00);border-bottom-color:#00a8ff33}.column.status-doing .column-head span{color:#bfe9ff;background:#00a8ff3d}.column.status-done{background:#071610a8;border-color:#50ff8c52}.column.status-done .column-head{background:linear-gradient(90deg,#50ff8c2e,#50ff8c00);border-bottom-color:#50ff8c33}.column.status-done .column-head span{color:#d5ffe6;background:#50ff8c3d}.cards{flex-direction:column;gap:8px;padding:9px;display:flex}.card{background:#080e17b3;border:.5px solid #00f2ff2e;border-radius:10px;padding:10px;transition:all .2s}.card:hover{border-color:#57e7ff8c;box-shadow:0 0 18px #00f2ff24}.card.card-dragging{opacity:.66;transform:scale(.98)}.card-overdue{border-color:#b04dffa6;box-shadow:0 0 20px #b04dff33}.card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-top h3{color:#dcfbff;margin:0;font-size:13px}.priority{color:#b2d8ea;border:.5px solid #00f2ff33;border-radius:10px;padding:2px 6px;font-size:10px}.priority.p0{color:#ffb8d2;border-color:#ff5f8f8c}.priority.p1{color:#b9ebff}.priority.p2{color:#9ce8ff}.priority.p3{color:#90aac2}.desc{color:#89a5b8;white-space:pre-wrap;margin:8px 0;font-size:12px}.assignment-card-tag{color:#ffd89b;background:#ffcf5f14;border:.5px solid #ffcf5f52;border-radius:999px;margin:0 0 6px;padding:3px 8px;font-size:10px;display:inline-flex}.meta{color:#7995a8;flex-direction:column;gap:3px;font-size:11px;display:flex}.overdue{color:#e2b5ff}.actions{gap:8px;margin-top:10px;display:flex}.card-actions{flex-wrap:wrap;align-items:center}.card[role=button]{cursor:pointer}.card[role=button]:focus-visible{outline-offset:3px;outline:2px solid #5affc4b8}.drag-tip{color:#68879b;letter-spacing:.06em;font-size:10px}button,select,input,textarea{color:var(--text-main);background:#08101ad1;border:.5px solid #00f2ff4d;border-radius:9px;padding:7px 10px}input,textarea,select{width:100%}button{cursor:pointer;transition:all .18s}button:hover{box-shadow:0 0 16px #00f2ff2e}button.primary{color:#03131b;background:linear-gradient(135deg,#00f2ff,#57e7ff);border-color:#00f2ffb8;box-shadow:0 0 18px #00f2ff42}button.danger{color:#f6c6ff;background:#260e34b8;border-color:#b04dff8c}.empty{color:#6f8fa4;text-align:center;padding:18px 0;font-size:12px}.login-page{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080e18c2;border:.5px solid #00f2ff59;border-radius:14px;flex-direction:column;gap:10px;width:min(430px,100%);padding:18px;display:flex;box-shadow:0 0 26px #00f2ff2e}.login-card h1{letter-spacing:.08em;margin:0;font-size:22px}.login-card p{color:#83a5bb;margin:0;font-size:12px}.login-card label{color:#8fb3c7;flex-direction:column;gap:6px;font-size:12px;display:flex}.login-error,.manual-error{font-size:12px;color:#e8bdff!important}.modal-mask{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:99;background:#04080cc7;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.modal{background:#070e18f2;border:.5px solid #00f2ff57;border-radius:14px;flex-direction:column;width:min(760px,100%);max-height:min(88vh,920px);padding:0;display:flex;overflow:hidden;box-shadow:0 0 34px #00f2ff3d}.modal-head{background:linear-gradient(#08111dfa,#070e18eb);border-bottom:.5px solid #00f2ff1f;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 12px;display:flex}.modal-head.compact{padding-bottom:10px}.modal h3{letter-spacing:.06em;margin:0;font-size:16px}.modal-subtitle{color:#7fa4b8;margin-top:6px;font-size:11px;display:block}.modal-body-scroll{flex:1;min-height:0;padding:14px 16px 0;overflow-y:auto}.manual-form-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.manual-form-grid label{color:#8fb0c3;flex-direction:column;gap:6px;font-size:12px;display:flex}.manual-form-grid .full{grid-column:1/-1}.assignment-editor{border-top:.5px solid #00f2ff24;margin-top:16px;padding-top:14px}.assignment-editor-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.assignment-editor-head-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assignment-editor-head strong{color:#e7fcff;letter-spacing:.04em;font-size:14px;display:block}.assignment-count-badge{color:#89acc0;background:#00f2ff14;border:.5px solid #00f2ff33;border-radius:999px;padding:4px 9px;font-size:11px}.assignment-add-btn{color:#dffaff;background:#00f2ff14;border-color:#00f2ff3d;box-shadow:0 0 12px #00f2ff1f}.assignment-summary-row{color:#89acc0;flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:11px;display:flex}.assignment-summary-row span,.assignment-mode-badge{background:#00f2ff14;border:.5px solid #00f2ff33;border-radius:999px;padding:4px 9px}.assignment-feedback{color:#b8ffe6!important;background:#5affc41a!important;border-color:#5affc459!important}.assignment-mode-badge.multi{color:#ffd89b;background:#ffcf5f1a;border-color:#ffcf5f59}.assignment-editor-list{flex-direction:column;gap:12px;padding-bottom:8px;display:flex}.assignment-editor-card{background:linear-gradient(#0a1522e6,#08111dd1);border:.5px solid #00f2ff29;border-radius:14px;padding:14px;box-shadow:inset 0 1px #ffffff08}.assignment-editor-card-head,.assignment-editor-card-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.assignment-editor-card-head{margin-bottom:12px}.assignment-editor-card-title{align-items:center;gap:10px;display:flex}.assignment-index{color:#04131b;background:linear-gradient(135deg,#7af7ff,#00f2ff);border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:0 0 12px #00f2ff38}.assignment-editor-card-head strong{color:#f0feff;font-size:13px}.assignment-remove-btn{min-width:66px}.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.assignment-grid label{color:#8fb0c3;flex-direction:column;gap:6px;font-size:12px;display:flex}.assignment-content-panel{color:#8fb0c3;flex-direction:column;gap:6px;display:flex}.assignment-field-label{color:#b8d8e8;letter-spacing:.02em;font-size:11px;font-weight:600}.assignment-grid input,.assignment-grid select{background:#ffffff0a;border-color:#00f2ff1f}.ghost-danger{color:#ffc7d8;background:#ff5f8f14;border-color:#ff5f8f61}.assignment-preview-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.assignment-preview-item,.assignment-preview-more{color:#84a4b7;background:#ffffff08;border-radius:8px;align-items:flex-start;gap:10px;padding:6px 8px;font-size:11px;display:flex}.assignment-preview-index{color:#04131b;background:#7af7ffe6;border-radius:999px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:inline-flex}.assignment-preview-content{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;line-height:1.6;overflow:hidden}.card-multi{border-color:#ffcf5f47}.modal-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;display:flex}.modal-actions-sticky{z-index:1;background:linear-gradient(#070e18eb,#070e18);border-top:.5px solid #00f2ff1f;margin-top:0;padding:12px 16px 16px;position:sticky;bottom:0}.modal-add-requirement-btn{min-width:118px;box-shadow:inset 0 0 0 1px #00f2ff0d}.modal-assignee-picker{width:min(420px,100%);max-height:min(72vh,640px)}.assignee-picker-list{flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex;overflow-y:auto}.assignee-picker-item{text-align:left;color:#dffaff;background:#09121ed1;border:.5px solid #00f2ff2e;border-radius:12px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.assignee-picker-item strong{font-size:13px}.assignee-picker-item span{color:#8fb0c3;font-size:11px}.assignee-picker-item.active{background:#0a1826eb;border-color:#57e7ffbf;box-shadow:0 0 16px #00f2ff29}.modal-save-btn,.modal-quick-status-btn{letter-spacing:.04em;border-radius:999px;min-width:118px;font-weight:700}button.modal-cancel-btn{color:#d6f9ff;background:#08121ed1;border-color:#57e7ff4d;border-radius:999px;min-width:88px;box-shadow:inset 0 0 0 1px #00f2ff0d}button.modal-close-btn{color:#d6f9ff;background:#08121ed1;border-color:#57e7ff4d;border-radius:999px;width:34px;min-width:34px;height:34px;padding:0;box-shadow:inset 0 0 0 1px #00f2ff0d}button.modal-close-btn:hover{background:#0a1622f5;border-color:#57e7ff8f;box-shadow:0 0 12px #57e7ff33}button.modal-save-btn{color:#03131b;background:linear-gradient(135deg,#00d6ff,#5ef0ff);border-color:#00d6ffb8;box-shadow:0 0 20px #00d6ff38,inset 0 0 0 1px #ffffff0a}button.modal-quick-status-btn{box-shadow:0 0 20px #5affc433,inset 0 0 0 1px #ffffff0a}button.modal-quick-status-start{color:#05211b;background:linear-gradient(135deg,#28e6c0,#76ffd2);border-color:#5affc4b8}button.modal-quick-status-done{color:#04130f;background:linear-gradient(135deg,#4dffc3,#8dffd9);border-color:#5affc4d1;box-shadow:0 0 22px #4dffc347,inset 0 0 0 1px #ffffff0d}@keyframes orbit-ring-a{0%{transform:rotate(18deg)}to{transform:rotate(378deg)}}@keyframes orbit-ring-b{0%{transform:rotate(-26deg)scaleY(.72)}to{transform:rotate(334deg)scaleY(.72)}}@keyframes orbit-ring-c{0%{transform:rotate(68deg)scaleX(.72)}to{transform:rotate(428deg)scaleX(.72)}}@keyframes electron-orbit-a{0%{transform:translate(-50%,-50%)rotate(0)translate(34px)}to{transform:translate(-50%,-50%)rotate(360deg)translate(34px)}}@keyframes electron-orbit-b{0%{transform:translate(-50%,-50%)rotate(180deg)translate(27px)}to{transform:translate(-50%,-50%)rotate(-180deg)translate(27px)}}@keyframes nucleus-pulse{0%,to{transform:translate(-50%,-50%)scale(.92)}50%{transform:translate(-50%,-50%)scale(1.06)}}@keyframes rotate-sweep{0%{transform:translate(-50%)rotate(0)}to{transform:translate(-50%)rotate(360deg)}}@keyframes pulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes wave-breathe{0%,to{opacity:.72;filter:brightness(.92);transform:scaleY(.9)}50%{opacity:1;filter:brightness(1.08);transform:scaleY(1.08)}}@media (width<=1240px){.hud-visuals{grid-template-columns:1fr}.ring-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1024px){.header-row{flex-direction:column}.header-actions{justify-content:flex-start}.header-topline{grid-template-columns:repeat(2,minmax(0,1fr))}.board,.archive-grid{grid-template-columns:1fr}.column{min-height:0}.column.is-filtered-out{display:none}.manual-entry{flex-direction:column;align-items:stretch}.manual-form-grid,.assignment-grid{grid-template-columns:1fr}.modal{max-height:calc(100vh - 20px)}.assignment-editor-head,.assignment-editor-card-head,.assignment-editor-card-actions,.modal-actions-sticky{flex-direction:column;align-items:stretch}}@media (width<=640px){.page{padding:12px}.header h1{font-size:18px}.header-topline{grid-template-columns:1fr}.chip{flex:calc(50% - 8px);justify-content:center}.filter-create-btn{flex:calc(50% - 8px);justify-content:center;margin-left:0}}.header-nav-btn{color:#c7f2ff;background:#09131e8f;border:.5px solid #57e7ff57;border-radius:999px;min-height:36px;padding:0 14px}.header-nav-btn:hover{background:#0a1622b3;border-color:#57e7ff8f;box-shadow:0 0 12px #57e7ff33}.customer-toolbar{grid-template-columns:1.8fr 1fr 1fr auto;align-items:center;gap:10px;margin-bottom:12px;padding:12px;display:grid}.customer-search{width:100%}.customer-list-wrap{padding:14px}.customer-list-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.customer-list-head h2{margin:0;font-size:16px}.customer-list-head span{color:var(--text-sub);font-size:12px}.customer-list{flex-direction:column;gap:10px;display:flex}.customer-item{background:#080e188f;border:.5px solid #00f2ff33;border-radius:12px;grid-template-columns:1fr auto;gap:12px;padding:12px;display:grid}.customer-main h3{margin:0}.customer-main p{color:#b8d8e8;margin:4px 0 0;font-size:12px}.customer-title-row{align-items:center;gap:8px;display:flex}.customer-status{color:#bff6ff;border:.5px solid #57e7ff57;border-radius:999px;padding:2px 8px;font-size:11px}.customer-status.status-new{border-color:#57e7ff57}.customer-status.status-following{color:#9df5ff;border-color:#00f2ff99}.customer-status.status-won{color:#a7f3d0;border-color:#4ade8080}.customer-status.status-lost{color:#f9a8d4;border-color:#f472b680}.customer-side{flex-direction:column;align-items:flex-end;gap:10px;min-width:160px;display:flex}.customer-side span{color:var(--text-sub);font-size:11px}@media (width<=980px){.customer-toolbar,.customer-item{grid-template-columns:1fr}.customer-side{align-items:flex-start;min-width:0}}.modal-mask-nested{z-index:120;background:#03070ca8}.modal-task-detail{width:min(720px,100%)}.task-detail-body{padding-bottom:10px}.task-detail-meta-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.task-detail-meta-grid div{background:#ffffff09;border:.5px solid #00f2ff29;border-radius:12px;min-width:0;padding:10px}.task-detail-meta-grid span{color:#7fa4b8;margin-bottom:6px;font-size:11px;display:block}.task-detail-meta-grid strong{color:#e8fcff;white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.detail-requirement-list{gap:10px}.detail-requirement-item{background:#ffffff09;border:.5px solid #00f2ff24;border-radius:12px;padding:12px}.detail-requirement-head{color:#93b8cb;align-items:center;gap:8px;margin-bottom:10px;font-size:11px;display:flex}.detail-requirement-head strong{color:#e8fcff;font-size:12px}.task-detail-actions{flex-wrap:wrap}.rich-text-editor{background:#ffffff09;border:.5px solid #00f2ff24;border-radius:12px;overflow:hidden}.rich-text-editor.disabled{opacity:.72}.rich-text-toolbar{background:#00f2ff0b;border-bottom:.5px solid #00f2ff1f;flex-wrap:wrap;gap:6px;padding:8px;display:flex}.rich-text-toolbar button{border-radius:999px;min-height:26px;padding:4px 9px;font-size:11px}.rich-text-input{color:#e8fcff;outline:none;min-height:118px;padding:10px 12px;line-height:1.7;overflow-y:auto}.rich-text-input:empty:before{content:attr(data-placeholder);color:#5e7f91}.rich-text-input ul,.rich-text-input ol,.rich-text-preview ul,.rich-text-preview ol{margin:6px 0 6px 20px;padding:0}.rich-text-input p,.rich-text-input div,.rich-text-preview p,.rich-text-preview div{margin:4px 0}.rich-text-preview{color:#d6f9ff;overflow-wrap:anywhere;font-size:12px;line-height:1.7}.muted{color:#6f91a3}.assignment-participants{flex-direction:column;gap:8px;display:flex}.assignment-participants-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.participant-add-btn{border-radius:999px;min-height:28px;padding:4px 10px}.participant-chip-list{flex-wrap:wrap;gap:8px;display:flex}.participant-chip{color:#dffaff;background:#00f2ff14;border:.5px solid #00f2ff38;border-radius:999px;align-items:center;gap:6px;padding:5px 8px 5px 10px;font-size:11px;display:inline-flex}.participant-chip button{color:#ffc7d8;background:#ff5f8f14;border-color:#ff5f8f47;border-radius:999px;width:18px;height:18px;min-height:18px;padding:0;line-height:1}.participant-empty{color:#6f91a3;margin:0;font-size:11px}.modal-participant-picker{width:min(430px,100%);max-height:min(72vh,640px)}.participant-picker-list{flex-direction:column;gap:10px;padding:12px 16px;display:flex;overflow-y:auto}.participant-picker-item{text-align:left;color:#dffaff;background:#09121ed1;border:.5px solid #00f2ff2e;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.participant-picker-item span{color:#8fb0c3;font-size:11px}.participant-picker-item.active{background:#0a201eeb;border-color:#5affc4b3;box-shadow:0 0 16px #5affc424}.modal-actions-compact{padding:0 16px 16px}@media (width<=760px){.task-detail-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.card-inline-meta{color:#7f9caf;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:7px;font-size:10px;line-height:1.3;display:flex}.card-inline-meta span{white-space:nowrap;text-overflow:ellipsis;background:#ffffff06;border:.5px solid #00f2ff1f;border-radius:999px;max-width:100%;padding:2px 6px;overflow:hidden}.card-inline-meta span.overdue{background:#b04dff1a;border-color:#b04dff57}.modal-danger-btn{letter-spacing:.04em;color:#ffe6ef;background:linear-gradient(135deg,#ff5f8f47,#b04dff3d);border-color:#ff5f8f94;border-radius:999px;min-width:96px;font-weight:700;box-shadow:0 0 18px #ff5f8f29,inset 0 0 0 1px #ffffff0a}.detail-requirement-required{color:#d6f9ff}.detail-requirement-required p{color:#8fb0c3;margin:8px 0 0;font-size:12px}.tiptap-editor .rich-text-input{padding:0}.tiptap-editor .ProseMirror{color:#e8fcff;outline:none;min-height:126px;padding:10px 12px;line-height:1.7}.tiptap-editor .ProseMirror p.is-editor-empty:first-child:before{content:"填写这条需求的具体内容，支持加粗、列表等格式";color:#5e7f91;float:left;pointer-events:none;height:0}.rich-text-toolbar button.active{color:#03131b;background:linear-gradient(135deg,#5affc4,#8dffd9);border-color:#5affc4bf}.assignment-grid .assignment-participants{background:#ffffff06;border:.5px solid #00f2ff1f;border-radius:12px;align-self:start;min-width:0;padding:8px}.assignment-grid .assignment-participants .participant-chip-list{max-height:72px;overflow-y:auto}.assignment-grid-editor{grid-template-columns:1fr;gap:12px}.assignment-content-panel{grid-column:1/-1}.assignment-footer-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.assignment-participants-inline{background:#ffffff06;border:.5px solid #00f2ff1f;border-radius:12px;padding:8px 10px}.assignment-participants-inline .assignment-field-label{flex:none;min-width:40px;padding-top:2px}.assignment-participants-inline-content{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.assignment-participants-inline-content .participant-chip-list{flex:1;min-width:0;max-height:none;overflow:visible}.assignment-participants-inline-content .participant-empty{flex:1}.assignment-footer-row .participant-add-btn{flex:none}.quill-editor{background:#ffffff09;border:.5px solid #00f2ff24;border-radius:12px;overflow:hidden}.quill-editor .ql-toolbar.ql-snow{color:#dffaff;background:#00f2ff0b;border:0;border-bottom:.5px solid #00f2ff1f}.quill-editor .ql-container.ql-snow{border:0;font-family:inherit}.quill-editor .ql-editor{color:#e8fcff;min-height:180px;max-height:48vh;padding:12px 14px;font-size:13px;line-height:1.7;overflow-y:auto}.quill-editor .ql-editor.ql-blank:before{color:#5e7f91;font-style:normal;left:14px;right:14px}.quill-editor .ql-toolbar button:hover,.quill-editor .ql-toolbar button.ql-active,.quill-editor .ql-toolbar .ql-picker-label.ql-active,.quill-editor .ql-toolbar .ql-picker-item.ql-selected{color:#03131b;filter:none}.quill-editor .ql-toolbar button:hover .ql-stroke,.quill-editor .ql-toolbar button.ql-active .ql-stroke,.quill-editor .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.quill-editor .ql-toolbar .ql-picker-item.ql-selected .ql-stroke{stroke:#03131b}.quill-editor .ql-toolbar button:hover .ql-fill,.quill-editor .ql-toolbar button.ql-active .ql-fill,.quill-editor .ql-toolbar .ql-picker-label.ql-active .ql-fill,.quill-editor .ql-toolbar .ql-picker-item.ql-selected .ql-fill{fill:#03131b}@media (width<=760px){.assignment-footer-row{flex-direction:column;align-items:stretch}.assignment-participants-inline-content{width:100%}.assignment-footer-row .participant-add-btn{align-self:flex-end}}.login-security-hint{text-align:center;color:#688da2!important;font-size:11px!important}
