@charset "UTF-8";.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.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;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.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{list-style-type:none;padding-left:1.5em;position:relative}.ql-editor li>.ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:"•"}.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{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar 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{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor .ql-code-block-container{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.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{right:5px;top:5px}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.auth{min-height:100dvh;background:var(--surface)}@media(min-width:1024px){.auth{display:grid;grid-template-columns:minmax(0,1fr) clamp(420px,34%,560px)}}.auth__brand{display:none}@media(min-width:1024px){.auth__brand{display:flex;flex-direction:column;padding:var(--space-10) var(--space-12);background:var(--brand);color:var(--on-brand);overflow:hidden}}.auth__brand-head{display:flex;align-items:center;gap:var(--space-3);flex:none}.auth__brand-logo{height:34px;width:auto;filter:brightness(0) invert(1)}.auth__brand-name{font-size:var(--text-3xl);font-weight:var(--fw-bold);letter-spacing:-.5px;color:#fff}.auth__brand-art{position:relative;flex:1;display:flex;align-items:center;justify-content:center}.auth__brand-art svg{position:relative;z-index:1;width:min(340px,60%);height:auto}.auth__brand-tag{flex:none;text-align:center;font-size:var(--text-3xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:#fff}.auth__ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.1)}.auth__ring--1{width:300px;height:300px;background:#ffffff08}.auth__ring--2{width:460px;height:460px}.auth__ring--3{width:640px;height:640px}.auth__pane{position:relative;min-height:100dvh;display:flex;flex-direction:column;background:var(--surface)}@media(min-width:1024px){.auth__pane{align-items:center;justify-content:center;padding:var(--space-12)}}.auth__content{position:relative;flex:1;width:100%;display:flex;flex-direction:column}@media(min-width:1024px){.auth__content{flex:none;max-width:400px}}.onboarding-loading{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--surface)}.auth__back,.auth__logout{position:absolute;top:calc(var(--space-3) + env(safe-area-inset-top));z-index:2;display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);cursor:pointer}.auth__back:hover,.auth__logout:hover{background:var(--surface-subtle)}@media(min-width:1024px){.auth__back,.auth__logout{top:var(--space-6)}}.auth__logout{right:var(--space-3)}@media(min-width:1024px){.auth__logout{right:var(--space-6)}}.auth__back{left:var(--space-3)}@media(min-width:1024px){.auth__back{left:var(--space-6)}}.auth .form{flex:1;display:flex;flex-direction:column}.auth .form__banner{display:block}@media(min-width:1024px){.auth .form__banner{display:none}}.auth .form__head,.auth .form__fields{padding-left:var(--space-5);padding-right:var(--space-5)}.auth .form__head{padding-top:var(--space-6)}.auth .form__actions{margin-top:auto;padding:var(--space-8) var(--space-5) var(--space-5)}@media(min-width:1024px){.auth .form{flex:none}.auth .form__head,.auth .form__fields{padding-left:0;padding-right:0}.auth .form__head{padding-top:0}.auth .form__actions{margin-top:var(--space-8);padding:0}}:root{--brand: #164ca2;--brand-hover: #0f3c85;--brand-active: #0b2e66;--brand-subtle: #c8dcff;--brand-tint: #e4ebf6;--on-brand: #ffffff;--bg: #f2f2f7;--surface: #ffffff;--surface-subtle: #f5f6fa;--surface-hover: #e8eaf0;--overlay: rgba(0, 22, 52, .7);--text-primary: #001634;--text-secondary: #424b5a;--text-muted: #697281;--text-disabled: #9aa3b2;--icon-muted: #7d99bc;--on-brand-text: #ffffff;--border: #e5e7eb;--border-strong: #cbd2dc;--danger: #dc2626;--danger-hover: #b91c1c;--danger-subtle: #fee2e2;--danger-border: #fca5a5;--success: #1daa61;--success-subtle: #e4f6ec;--warning: #f9ae2e;--warning-subtle: #fff4e6;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--radius-input: var(--radius-md);--font: "Inter", system-ui, -apple-system, sans-serif;--text-caption: 12px;--text-sm: 13px;--text-body: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 22px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.3;--lh-normal: 1.5;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .12);--shadow-card: 0 4px 16px rgba(0, 0, 0, .12);--shadow-topnav: 0 1px 3px rgba(0, 0, 0, .08);--shadow-nav: 0 -2px 28px rgba(0, 0, 0, .05);--shadow-sheet: 0 -3px 38px rgba(0, 0, 0, .1);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .16);--ring: 0 0 0 3px rgba(22, 76, 162, .35);--ring-danger: 0 0 0 3px rgba(220, 38, 38, .3);--topbar-h: calc(56px + env(safe-area-inset-top)) ;--visible-h: calc(var(--viewport-h, 100dvh) + var(--viewport-offset-top, 0px));--bottomnav-h: calc(64px + env(safe-area-inset-bottom)) ;--z-dropdown: 20;--z-nav: 50;--z-takeover: 60;--z-modal: 100}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:var(--text-body);line-height:var(--lh-normal)}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-hover)}button{font-family:inherit;cursor:pointer}p{margin:0}.skeleton,.p-skeleton{position:relative;overflow:hidden;background:var(--surface-hover)}.skeleton:after,.p-skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:shimmer 1.4s infinite}.p-skeleton{border-radius:var(--radius-md)}.p-skeleton.p-skeleton-circle{border-radius:var(--radius-full)}.spinner{width:24px;height:24px;border:2.5px solid var(--border);border-top-color:var(--brand);border-radius:var(--radius-full);animation:spin .7s linear infinite}.u-caption{font-size:var(--text-caption);color:var(--text-muted)}.u-muted{color:var(--text-muted)}.u-eyebrow{font-size:var(--text-caption);font-weight:var(--fw-bold);letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes shimmer{to{transform:translate(100%)}}.app{min-height:100dvh;background:var(--bg)}.app--tabbar{padding-bottom:calc(var(--bottomnav-h) + var(--space-4))}@media(min-width:768px){.app--tabbar{padding-bottom:0}}.app__titlebar{display:none}@media(min-width:768px){.app__titlebar{display:block;background:var(--bg)}}.app__titlebar-inner{display:flex;align-items:center;gap:var(--space-3);padding:0 0 var(--space-4)}.app__back{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);box-shadow:var(--shadow-sm);cursor:pointer}.app__back:hover{background:var(--surface-subtle)}.app__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.app__title--action{display:inline-flex;align-items:center;gap:var(--space-1);padding:0;border:none;background:none;font-family:var(--font);cursor:pointer}.app__title--action svg{color:var(--icon-muted);transition:transform .15s}.app__title--action:hover svg{transform:translate(2px);color:var(--brand)}.app__body{max-width:100%;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column}@media(max-width:767px){.app__body{min-height:calc(100dvh - var(--topbar-h))}}@media(max-width:767px){.app--tabbar .app__body{min-height:calc(100dvh - var(--topbar-h) - var(--bottomnav-h) - var(--space-4))}}@media(min-width:768px){.app__body{max-width:640px;padding:var(--space-6) var(--space-5)}}.app__body--rails{max-width:100%;padding:0;display:grid;grid-template-columns:1fr;gap:0;align-items:start}@media(min-width:768px){.app__body--rails{max-width:1128px;padding:var(--space-6) var(--space-5);display:grid;align-items:start;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-6)}}@media(min-width:1024px){.app__body--rails{grid-template-columns:250px minmax(0,1fr) 300px}}.app__body--wide{max-width:100%;padding:0}@media(min-width:768px){.app__body--wide{max-width:1128px;padding:var(--space-6) var(--space-5)}}.app__body--centered{padding:0}@media(min-width:768px){.app__body--centered{padding:var(--space-6) var(--space-5)}}@media(min-width:768px){.app__body--rails-side{max-width:1128px;padding:var(--space-6) var(--space-5);display:grid;align-items:start;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-6)}}@media(min-width:1024px){.app__body--rails-side{grid-template-columns:250px minmax(0,1fr) 300px}}.app__body--fullscreen{max-width:100%;padding:0}.app__rail{display:none;flex-direction:column;gap:var(--space-4);position:sticky;top:calc(60px + var(--space-6))}@media(min-width:1024px){.app__rail--left{display:flex}}@media(min-width:768px){.app__rail--right{display:flex}}.app__main{min-width:0;flex:1;display:flex;flex-direction:column}.app-error{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center;background:var(--bg)}.app-error__icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--surface);color:var(--danger);box-shadow:var(--shadow-sm)}.app-error__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.app-error__desc{margin:0;max-width:380px;color:var(--text-muted);font-size:var(--text-body)}.app-error__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-top:var(--space-2)}.app-menu{position:absolute;min-width:190px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);padding:var(--space-2);z-index:var(--z-dropdown);display:flex;flex-direction:column;animation:scaleIn .12s ease}.app-menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:none;background:none;border-radius:var(--radius-md);font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-medium);color:var(--text-primary);text-align:left;cursor:pointer}.app-menu__item svg{color:var(--icon-muted)}.app-menu__item:hover{background:var(--surface-subtle)}.app-menu__item--danger{color:var(--danger)}.app-menu__item--danger svg{color:var(--danger)}.app-confirm-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .15s ease}.app-confirm-dialog{background:var(--surface);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-6);max-width:360px;width:calc(100% - 32px);text-align:center;box-shadow:var(--shadow-modal);animation:scaleIn .15s ease}.app-confirm-dialog__icon{color:var(--danger);margin-bottom:var(--space-4)}.app-confirm-dialog h3{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.app-confirm-dialog p{color:var(--text-muted);margin:0 0 var(--space-6);font-size:var(--text-body)}.app-confirm-dialog__actions{display:flex;gap:var(--space-3);justify-content:center}.app-confirm-btn{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-semibold);cursor:pointer;border:none;transition:opacity .15s}.app-confirm-btn:hover{opacity:.9}.app-confirm-btn--cancel{background:var(--surface-subtle);color:var(--text-primary);border:1px solid var(--border)}.app-confirm-btn--confirm{background:var(--danger);color:#fff}.app-topnav{position:sticky;top:0;z-index:var(--z-nav);background:var(--surface);box-shadow:var(--shadow-topnav);border-bottom:1px solid var(--border);display:none}@media(min-width:768px){.app-topnav{display:block}}.app-topnav__inner{max-width:1128px;margin:0 auto;height:60px;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5)}@media(min-width:1024px){.app-topnav__inner{gap:var(--space-5)}}.app-topnav__logo{font-weight:var(--fw-bold);font-size:var(--text-3xl);color:var(--brand);letter-spacing:-.5px;flex:none;text-decoration:none}.app-topnav__search{flex:0 1 320px;min-width:148px}.app-topnav__spacer{flex:1 1 0;min-width:0}.app-topnav__links{display:flex;align-items:center;gap:var(--space-1);flex:none}.app-topnav__link{text-decoration:none;display:block}.app-topnav__link-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 var(--space-2)}@media(min-width:1024px){.app-topnav__link-inner{padding:0 var(--space-3)}}.app-topnav__link-inner{height:60px;position:relative;color:var(--text-muted);transition:color .15s}.app-topnav__link-inner:hover{color:var(--text-secondary)}.app-topnav__link-inner.is-active{color:var(--brand)}.app-topnav__link-inner.is-active .app-topnav__link-underline{background:var(--brand)}.app-topnav__link-inner.is-active .app-topnav__link-label{font-weight:var(--fw-semibold)}.app-topnav__link-icon{position:relative;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.app-topnav__link-icon svg{width:22px;height:22px}.app-topnav__link-badge{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--danger);color:#fff;font-size:10px;font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;border:1.5px solid var(--surface)}.app-topnav__link-label{font-size:var(--text-caption);font-weight:var(--fw-medium)}.app-topnav__link-underline{position:absolute;bottom:0;left:var(--space-2);right:var(--space-2);height:2px;border-radius:var(--radius-full) var(--radius-full) 0 0;background:transparent}.app-topnav__user{position:relative;flex:none;margin-left:var(--space-2)}.app-topnav__avatar-btn{border:none;background:none;padding:0;cursor:pointer;border-radius:var(--radius-full)}.app-topnav__menu{top:calc(100% + var(--space-2));right:0}.app-topbar{position:sticky;top:0;z-index:var(--z-nav);height:var(--topbar-h);padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-left:var(--space-3);padding-right:var(--space-3);background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.app-topbar{display:none}}.app-topbar__left{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding-left:var(--space-1);flex:1}.app-topbar__title{position:absolute;left:50%;top:env(safe-area-inset-top);bottom:0;transform:translate(-50%);display:flex;align-items:center;max-width:60%;font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.app-topbar__title--action{display:inline-flex;align-items:center;gap:2px;padding:0;border:none;background:none;font-family:var(--font);pointer-events:auto;cursor:pointer}.app-topbar__title--action span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar__title--action svg{flex:none;color:var(--icon-muted)}.app-topbar__title--action:active{opacity:.6}.app-topbar__logo{font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--brand);letter-spacing:-.5px;text-decoration:none}.app-topbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-1);flex:1}.app-topbar__search-row{position:sticky;top:var(--topbar-h);z-index:calc(var(--z-nav) - 1);padding:var(--space-2) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);transition:transform .22s ease}@media(min-width:768px){.app-topbar__search-row{display:none}}.app-topbar__search-row.is-hidden{transform:translateY(-100%)}@media(prefers-reduced-motion:reduce){.app-topbar__search-row{transition:none}}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-nav);height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;background:var(--surface);box-shadow:var(--shadow-nav)}@media(min-width:768px){.bottomnav{display:none}}.bottomnav__item{flex:1;text-decoration:none;display:flex;align-items:stretch;padding:0;border:none;background:none;font-family:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.bottomnav__item:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.bottomnav__item-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);transition:color .15s}.bottomnav__item-inner.is-active{color:var(--brand)}.bottomnav__pill{position:relative;display:flex;align-items:center;justify-content:center;height:26px}.bottomnav__pill svg{width:24px;height:24px}.bottomnav__badge{position:absolute;top:-4px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--danger);color:#fff;font-size:10px;font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;border:1.5px solid var(--surface)}.bottomnav__label{font-size:var(--text-caption);font-weight:var(--fw-medium)}.bottomnav__pill--pending{width:24px}.bottomnav__pill-skeleton{width:24px;height:24px;border-radius:var(--radius-md)}.bottomnav__label-skeleton{width:38px;height:calc(var(--text-caption) * 1.2);border-radius:var(--radius-sm)}.suggestions{display:flex;flex-direction:column;gap:var(--space-3)}.suggestion{display:flex;align-items:center;gap:var(--space-3)}.suggestion--skeleton{pointer-events:none}.suggestion__avatar{width:40px;height:40px;flex:none;border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;padding:0}.suggestion__avatar img{width:100%;height:100%;object-fit:cover}.suggestion__body{flex:1;min-width:0;display:flex;flex-direction:column;cursor:pointer}.suggestion__name{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion__meta{font-size:var(--text-caption);color:var(--text-muted)}.suggestion__follow{flex:none;border:1px solid var(--brand);background:transparent;color:var(--brand);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-semibold);padding:var(--space-1) var(--space-4);border-radius:var(--radius-full);cursor:pointer;transition:background .15s,color .15s}.suggestion__follow:hover{background:var(--brand);color:#fff}.suggestion__sk-line{display:block;height:10px;border-radius:var(--radius-sm);margin-bottom:6px}.suggestion__sk-line--short{width:55%;margin-bottom:0}.event-list{display:flex;flex-direction:column;gap:var(--space-3)}.event-item{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.event-item__date{width:44px;flex:none;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-1) 0}.event-item__mon{font-size:10px;font-weight:var(--fw-bold);letter-spacing:.5px}.event-item__day{font-size:var(--text-lg);font-weight:var(--fw-bold);line-height:1}.event-item__body{flex:1;min-width:0;display:flex;flex-direction:column}.event-item__title{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-item__meta{font-size:var(--text-caption);color:var(--text-muted)}.rail-footer{margin:0;padding:0 var(--space-2);font-size:var(--text-caption);color:var(--text-muted);line-height:var(--lh-normal)}.rail-footer__brand{color:var(--brand);font-weight:var(--fw-semibold)}.rail-footer__link{padding:0;border:none;background:none;font:inherit;color:inherit;cursor:pointer}.rail-footer__link:hover{color:var(--text-secondary);text-decoration:underline}.rail-footer__link:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.push-toast{position:relative;width:calc(100vw - var(--space-8));max-width:420px;display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);margin-top:env(safe-area-inset-top);touch-action:pan-x;-webkit-user-select:none;user-select:none;overflow:hidden;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .2s ease}.push-toast--in{transform:translateY(0);opacity:1}.push-toast--out{transform:translateY(-140%);opacity:0}@media(prefers-reduced-motion:reduce){.push-toast{transition:opacity .12s linear}.push-toast--out{transform:none}}.push-toast__main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);cursor:pointer;background:none;border:none;text-align:left}.push-toast__main:focus-visible{box-shadow:var(--ring);outline:none}.push-toast__icon{position:relative;flex-shrink:0;width:40px;height:40px}.push-toast__icon-img{width:100%;height:100%;border-radius:var(--radius-lg);object-fit:cover;display:block}.push-toast__icon-img--brand{background:var(--brand-tint);padding:6px;object-fit:contain}.push-toast__badge{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:var(--radius-full);background:var(--brand);color:var(--on-brand);border:2px solid var(--surface);display:flex;align-items:center;justify-content:center}.push-toast__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.push-toast__title{margin:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.push-toast__body{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--lh-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.push-toast__chevron{flex-shrink:0;color:var(--icon-muted);display:flex;align-items:center}.push-toast__close{flex-shrink:0;width:32px;align-self:flex-start;margin:var(--space-2) var(--space-2) 0 0;display:flex;align-items:center;justify-content:center;height:32px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-muted);cursor:pointer}.push-toast__close:hover{background:var(--surface-hover)}.push-toast__close:focus-visible{box-shadow:var(--ring);outline:none}@media(max-width:767px){.push-toast__close{display:none}}.push-toast__grabber{position:absolute;left:50%;bottom:4px;transform:translate(-50%);width:32px;height:3px;border-radius:var(--radius-full);background:var(--border-strong);opacity:.7}@media(min-width:768px){.push-toast__grabber{display:none}}.insights{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-8)}@media(min-width:768px){.insights{padding:0 0 var(--space-8)}}.insights--reloading{opacity:.6;transition:opacity .15s}.insights__windows{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.insights__windows::-webkit-scrollbar{display:none}.insights__window{flex:none;padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.insights__window:hover{background:var(--surface-subtle)}.insights__window:focus-visible{box-shadow:var(--ring);outline:none}.insights__window--on{border-color:var(--brand);background:var(--brand-tint);color:var(--brand);font-weight:var(--fw-semibold)}.insights__tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}@media(min-width:768px){.insights__tiles{grid-template-columns:repeat(3,1fr)}}.insights__tile{display:flex;flex-direction:column;gap:2px;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-topnav)}.insights__tile--accent{background:var(--brand-tint)}.insights__tile--accent .insights__tile-value{color:var(--brand)}.insights__tile-value{font-size:var(--text-3xl);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-tight)}.insights__tile-label{font-size:var(--text-sm);color:var(--text-secondary)}.insights__tile-hint{font-size:var(--text-caption);color:var(--text-muted)}.insights__card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-topnav)}.insights__card-title{margin:0;font-size:var(--text-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.insights__rows{display:flex;flex-direction:column;gap:var(--space-3)}.insights__row{display:grid;grid-template-columns:24px 72px 1fr auto;align-items:center;gap:var(--space-2)}.insights__row-icon{color:var(--icon-muted);display:flex}.insights__row-label{font-size:var(--text-sm);color:var(--text-secondary)}.insights__row-bar{height:8px;border-radius:var(--radius-full);background:var(--surface-subtle);overflow:hidden}.insights__row-fill{display:block;height:100%;border-radius:var(--radius-full);background:var(--brand);transition:width .3s ease}.insights__row-value{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums}.insights__posts{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.insights__post{display:flex;align-items:center;gap:var(--space-3)}.insights__post-rank{flex:none;width:20px;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--text-muted);text-align:center}.insights__post-thumb{flex:none;width:44px;height:44px;border-radius:var(--radius-md);object-fit:cover;background:var(--surface-subtle)}.insights__post-thumb--empty{display:flex;align-items:center;justify-content:center;color:var(--icon-muted)}.insights__post-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.insights__post-text{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insights__post-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-caption);color:var(--text-muted)}.insights__post-stat{display:inline-flex;align-items:center;gap:3px}.insights__post-total{flex:none;font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.insights__empty,.insights__note{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:var(--lh-normal)}.insights__note{font-size:var(--text-caption);padding:0 var(--space-1)}.insights__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-4);color:var(--text-muted);text-align:center}.insights__state-icon{color:var(--icon-muted)}.insights__retry{padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--brand);cursor:pointer}.insights__retry:hover{background:var(--brand-tint)}.icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--icon-muted);cursor:pointer;transition:background .15s}.icon-btn svg{width:22px;height:22px}.icon-btn:hover:not(:disabled){background:var(--surface-hover)}.icon-btn:active:not(:disabled){background:var(--brand-tint);color:var(--brand)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn--filled{background:var(--brand);color:#fff}.icon-btn--filled:hover:not(:disabled){background:var(--brand-hover)}.icon-btn--sm{width:40px;height:40px}.icon-btn--sm svg{width:20px;height:20px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--danger);color:#fff;font-size:var(--text-caption);font-weight:var(--fw-bold)}.badge--brand{background:var(--brand)}.badge--dot{width:10px;height:10px;min-width:0;padding:0}.avatar{position:relative;width:40px;height:40px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--fw-semibold);font-size:var(--text-body);background:var(--brand);overflow:hidden;flex:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar--sm{width:32px;height:32px;font-size:var(--text-sm)}.avatar--lg{width:48px;height:48px;font-size:var(--text-lg)}.toggle{position:relative;width:44px;height:24px;flex:none;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:transparent;padding:0;cursor:pointer;transition:background .2s,border-color .2s}.toggle__knob{position:absolute;top:2px;left:3px;width:16px;height:16px;border-radius:var(--radius-full);background:var(--border-strong);transition:left .2s,right .2s,background .2s}.toggle.is-on{background:var(--brand);border-color:var(--brand)}.toggle.is-on .toggle__knob{left:auto;right:3px;background:#fff}.app-image{display:block;width:100%;height:100%}.app-image>img{display:block;width:100%;height:100%}.app-image__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.app-image__fallback .app-image__logo{width:auto;height:auto;max-width:62%;max-height:42%;object-fit:contain;filter:grayscale(1);opacity:.4}.rail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.rail-card__title{margin:0 0 var(--space-3);font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary)}.rail-card__empty{margin:0;font-size:var(--text-body);color:var(--text-muted)}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.profile-card__banner{height:72px;background:var(--brand) center/cover no-repeat}.profile-card__avatar{display:block;margin:-36px auto 0;width:72px;height:72px;border:3px solid var(--surface);border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);cursor:pointer;overflow:hidden;padding:0}.profile-card__avatar img{width:100%;height:100%;object-fit:cover}.profile-card__avatar svg{width:34px;height:34px}.profile-card__info{text-align:center;padding:var(--space-3) var(--space-4) var(--space-4)}.profile-card__name{border:none;background:none;padding:0;font-family:var(--font);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary);cursor:pointer}.profile-card__name:hover{text-decoration:underline}.profile-card__sub{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.profile-card__stats{border-top:1px solid var(--border)}.profile-card__stat{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4)}.profile-card__stat:not(:last-child){border-bottom:1px solid var(--border)}.profile-card__stat--link{width:100%;border:none;background:none;font:inherit;text-align:left;cursor:pointer}.profile-card__stat--link:hover{background:var(--surface-subtle)}.profile-card__stat--link:focus-visible{outline:none;box-shadow:var(--ring)}.profile-card__stat-label{font-size:var(--text-body);color:var(--text-secondary)}.profile-card__stat-value{font-size:var(--text-body);font-weight:var(--fw-bold);color:var(--brand)}.school-list{display:flex;flex-direction:column;gap:2px}.school-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:none;background:none;border-radius:var(--radius-md);cursor:pointer;text-align:left}.school-row:hover{background:var(--surface-subtle)}.school-row__logo{width:36px;height:36px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center;overflow:hidden}.school-row__logo img{width:100%;height:100%;object-fit:cover}.school-row__body{display:flex;flex-direction:column;min-width:0}.school-row__name{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.school-row__meta{font-size:var(--text-caption);color:var(--text-muted)}.search-bar{position:relative;width:100%}.search-bar__input-wrap{display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);transition:border-color .15s}.search-bar__input-wrap.focused{border-color:var(--brand)}.search-bar__icon{flex:none;display:flex;color:var(--icon-muted)}.search-bar__icon svg{width:18px;height:18px}.search-bar__input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.search-bar__input::placeholder{color:var(--text-muted)}.search-bar__clear{flex:none;display:flex;border:none;background:none;color:var(--icon-muted);cursor:pointer;padding:2px}.search-bar__clear:hover{color:var(--text-secondary)}.search-bar__clear svg{width:18px;height:18px}.search-bar__dropdown{position:absolute;top:calc(100% + var(--space-2));left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);padding:var(--space-3);z-index:var(--z-dropdown);animation:scaleIn .12s ease}@media(min-width:768px){.search-bar__dropdown{min-width:440px}}.search-bar__categories{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.search-bar__cat{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.search-bar__cat:hover:not(.active){background:var(--surface-subtle)}.search-bar__cat.active{background:var(--brand);color:#fff;border-color:var(--brand)}.search-bar__results{max-height:60dvh;overflow-y:auto;margin:0 calc(-1 * var(--space-1));padding:0 var(--space-1)}.search-bar__group+.search-bar__group{margin-top:var(--space-3)}.search-bar__group-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.search-bar__see-all{border:none;background:none;padding:0;font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--brand);text-transform:none;letter-spacing:0;cursor:pointer}.search-bar__see-all:hover{text-decoration:underline}.search-bar__more{display:block;width:100%;margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer}.search-bar__more:hover:not(:disabled){background:var(--surface-subtle)}.search-bar__more:disabled{opacity:.6;cursor:default}.search-bar__state{display:flex;align-items:center;gap:var(--space-2);margin:0;padding:var(--space-4) var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.search-bar__state svg{flex:none;color:var(--icon-muted)}.search-bar__state strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.search-bar__state--error{color:var(--danger)}.search-bar__state--error svg{color:var(--danger)}.search-bar__hint{margin:0;padding:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);line-height:var(--lh-normal)}.search-bar__skeletons{display:flex;flex-direction:column}.search-card{display:flex;flex-direction:column;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--card-accent, var(--brand));border-radius:var(--radius-lg);background:var(--surface);font-family:var(--font);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.search-card+.search-card{margin-top:var(--space-2)}.search-card:hover{border-color:var(--card-accent, var(--brand));box-shadow:var(--shadow-topnav)}.search-card:active{background:var(--surface-subtle)}.search-card:focus-visible{outline:none;box-shadow:var(--ring)}.search-card--notice{--card-accent: #5b4bb7;--card-tint: #eae7fb}.search-card--class{--card-accent: #1daa61;--card-tint: #e4f6ec}.search-card--org{--card-accent: #164ca2;--card-tint: var(--brand-tint)}.search-card__row{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0}.search-card__thumb{flex:none;width:46px;height:46px;border-radius:var(--radius-md);background:var(--surface-subtle);overflow:hidden}.search-card__thumb--round{border-radius:var(--radius-full)}.search-card__thumb--icon,.search-card__thumb--initials{display:flex;align-items:center;justify-content:center;background:var(--card-tint, var(--brand-tint));color:var(--card-accent, var(--brand))}.search-card__thumb--initials{font-size:var(--text-body);font-weight:var(--fw-bold);text-transform:uppercase}.search-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.search-card__title-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.search-card__title{flex:1;min-width:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.search-card__badge{flex:none;max-width:45%;padding:2px 8px;border-radius:var(--radius-full);background:var(--card-tint, var(--surface-hover));font-size:11px;font-weight:var(--fw-semibold);color:var(--card-accent, var(--text-secondary));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-card__meta{font-size:var(--text-caption);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-card__snippet{margin:2px 0 0;font-size:var(--text-caption);color:var(--text-secondary);line-height:var(--lh-normal);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.search-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-left:calc(46px + var(--space-3))}.search-card--skeleton{cursor:default;pointer-events:none;border-left-color:var(--border)}.search-card__sk-line{height:10px;border-radius:var(--radius-full);width:70%}.search-card__sk-line--short{width:40%}.search-action{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px var(--space-3);border-radius:var(--radius-full);border:1px solid transparent;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.search-action svg{flex:none}.search-action:disabled{opacity:.6;cursor:default}.search-action--primary{background:var(--card-accent, var(--brand));color:var(--on-brand)}.search-action--primary:hover:not(:disabled){filter:brightness(.92)}.search-action--ghost{background:var(--surface);border-color:var(--border);color:var(--text-secondary)}.search-action--ghost:hover:not(:disabled){background:var(--surface-subtle)}.composer{background:var(--surface);padding:var(--space-4);border-bottom:1px solid var(--border)}@media(min-width:768px){.composer{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}}.composer__top{display:flex;align-items:center;gap:var(--space-3)}.composer__avatar{width:44px;height:44px;flex:none;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;overflow:hidden}.composer__avatar img{width:100%;height:100%;object-fit:cover}.composer__avatar svg{width:24px;height:24px}.composer__input{flex:1;min-width:0;height:44px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-md);color:var(--text-muted);text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.composer__input:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.composer__divider{height:1px;background:var(--border);margin:var(--space-3) 0}.composer__actions{display:flex;align-items:center;gap:var(--space-2)}.composer__action{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:none;border-radius:var(--radius-md);font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background .15s}.composer__action svg{color:var(--icon-muted);flex:none}.composer__action:hover{background:var(--surface-subtle)}.notice-board{padding:var(--space-4) 0 var(--space-4) var(--space-4)}@media(min-width:768px){.notice-board{padding:var(--space-3) 0 var(--space-4)}}.notice-board__heading{margin:0 0 var(--space-3);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}@media(min-width:768px){.notice-board__heading{padding-left:var(--space-4)}}.notice-board__row{display:flex;gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-2);-webkit-overflow-scrolling:touch;scrollbar-width:none}.notice-board__row::-webkit-scrollbar{display:none}.notice{--notice-bg: var(--surface);--notice-border: var(--border);flex:none;width:287px;height:116px;display:flex;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--notice-bg);border:1px solid var(--notice-border);text-align:left;font-family:var(--font);cursor:pointer;transition:transform .15s}.notice:hover{transform:translateY(-1px)}.notice--tint-0{--notice-bg: #effff6;--notice-border: #d6f2e2}.notice--tint-1{--notice-bg: #e4ebf6;--notice-border: #dce9ff}.notice--tint-2{--notice-bg: #fff4e6;--notice-border: #ffe5c2}.notice--tint-3{--notice-bg: #fef0ff;--notice-border: #f5d9ff}.notice__thumb{position:relative;width:90px;height:100%;flex:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#d8dee8,#b9c3d6);color:#6a748a;display:flex;align-items:center;justify-content:center;overflow:hidden}.notice__thumb img,.notice__thumb video{width:100%;height:100%;object-fit:cover}.notice__thumb svg{width:24px;height:24px}.notice__thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}.notice__thumb-play svg{width:14px;height:14px}.notice__body{flex:1;min-width:0;display:flex;flex-direction:column}.notice__title{margin:0 0 auto;font-size:var(--text-body);line-height:var(--lh-tight);color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notice__org{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-1);min-width:0}.notice__org-logo{width:22px;height:22px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:var(--fw-bold);overflow:hidden}.notice__org-logo img{width:100%;height:100%;object-fit:cover}.notice__org-name{font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notice__date{font-size:var(--text-caption);color:var(--text-muted)}.notice--skeleton{pointer-events:none;cursor:default}.notice--skeleton:hover{transform:none}.notice__skeleton-thumb{width:90px;height:100%;flex:none;border-radius:var(--radius-md)}.notice__skeleton-lines{display:flex;flex-direction:column;gap:6px;margin-bottom:auto}.notice__skeleton-line{height:10px;width:100%;border-radius:var(--radius-sm)}.notice__skeleton-line--short{width:65%}.notice__skeleton-org{height:16px;width:60%;border-radius:var(--radius-sm);margin-bottom:6px}.notice__skeleton-date{height:10px;width:40%;border-radius:var(--radius-sm)}.feed{display:flex;flex-direction:column}@media(min-width:768px){.feed{gap:var(--space-4)}}.feed__end{margin:0;padding:var(--space-6) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.feed-card{background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.feed-card{border:1px solid var(--border);border-radius:var(--radius-lg)}}.feed-card__head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3)}.feed-card__avatar{width:44px;height:44px;flex:none;border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;padding:0}.feed-card__avatar img{width:100%;height:100%;object-fit:cover}.feed-card__identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.feed-card__name{border:none;background:none;padding:0;text-align:left;font-family:var(--font);font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-card__name:hover{text-decoration:underline}.feed-card__time{font-size:var(--text-caption);color:var(--text-muted)}.feed-card__body{padding:0 var(--space-4) var(--space-3);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.feed-card__body p{margin:0 0 var(--space-2)}.feed-card__body p:last-child{margin-bottom:0}.feed-card__body a{color:var(--brand)}.feed-card__body:not(.is-expanded){position:relative;max-height:13.5em;overflow:hidden}.feed-card__body.is-clamped:not(.is-expanded):after{content:"";position:absolute;left:0;right:0;bottom:0;height:3em;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--surface) 85%);pointer-events:none}.feed-card__more{display:block;margin:0 var(--space-4) var(--space-3);padding:0;border:none;background:none;font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--brand);cursor:pointer}.feed-card__more:hover{text-decoration:underline}.feed-card__color{min-height:220px;margin:0 var(--space-4) var(--space-3);padding:var(--space-5);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--post-color, var(--brand))}.feed-card__color-text{width:100%;text-align:center;font-size:var(--text-2xl);font-weight:var(--fw-semibold);line-height:var(--lh-normal);color:#fff;overflow-wrap:anywhere}.feed-card__color-text p{margin:0}.feed-card__color-text p+p{margin-top:var(--space-2)}.feed-card__color-text a{color:#fff;text-decoration:underline}.feed-card__media{position:relative;padding:0 var(--space-4) var(--space-3)}.feed-card__media-frame{position:relative}.feed-card__carousel{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);scrollbar-width:none}.feed-card__carousel::-webkit-scrollbar{display:none}.feed-card__slide{position:relative;flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;aspect-ratio:var(--media-ratio, 4/3);border:none;padding:0;background:none;cursor:pointer}.feed-card__slide img,.feed-card__slide video{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}.feed-card__slide:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.feed-card__media-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:#0000008c;color:#fff;pointer-events:none}.feed-card__media-count{position:absolute;top:var(--space-2);right:var(--space-2);padding:2px var(--space-2);border-radius:var(--radius-full);background:#0009;color:#fff;font-size:var(--text-caption);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;pointer-events:none}.feed-card__media-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;display:none;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:#00000080;color:#fff;cursor:pointer;transition:background .15s,opacity .15s}.feed-card__media-nav:hover{background:#000000b3}.feed-card__media-nav:disabled{opacity:0;pointer-events:none}.feed-card__media-nav--prev{left:var(--space-2)}.feed-card__media-nav--prev svg{transform:rotate(180deg)}.feed-card__media-nav--next{right:var(--space-2)}@media(hover:hover)and (pointer:fine){.feed-card__media-nav{display:flex}}.feed-card__media-dots{display:flex;justify-content:center;gap:5px;padding-top:var(--space-2)}.feed-card__media-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--border-strong);transition:background .15s,transform .15s}.feed-card__media-dot.is-active{background:var(--brand);transform:scale(1.15)}.feed-card__docs{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-4) var(--space-3)}.feed-card__doc{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-body);color:var(--text-primary);text-decoration:none}.feed-card__doc:hover{background:var(--surface-subtle)}.feed-card__doc svg{flex:none;color:var(--icon-muted)}.feed-card__doc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-card__actions{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-2) var(--space-4) var(--space-3)}.feed-card__action{display:inline-flex;align-items:center;gap:6px;border:none;background:none;padding:0;font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--icon-muted);cursor:pointer;transition:color .15s}.feed-card__action svg{width:20px;height:20px}.feed-card__action:hover,.feed-card__action.is-active{color:var(--brand)}.feed-card__save{margin-left:auto}.feed-card--skeleton{pointer-events:none}.feed-card__skeleton-avatar{width:44px;height:44px;flex:none;border-radius:var(--radius-full)}.feed-card__skeleton-name{width:140px;height:12px;border-radius:var(--radius-sm)}.feed-card__skeleton-time{width:80px;height:10px;border-radius:var(--radius-sm)}.feed-card__skeleton-line{display:block;height:12px;border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.feed-card__skeleton-line--short{width:70%}.feed-card__skeleton-media{display:block;width:100%;height:220px;border-radius:var(--radius-md)}.feed-card__skeleton-action{width:56px;height:20px;border-radius:var(--radius-sm)}.share-post{display:flex;flex-direction:column;gap:var(--space-4);min-height:0}.share-post__external{display:flex;gap:var(--space-3)}.share-post__ext{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-primary);cursor:pointer;transition:background .15s}.share-post__ext:hover{background:var(--surface-subtle)}.share-post__ext-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand)}.share-post__label{margin:0;font-size:var(--text-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.share-post__search{display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--icon-muted)}.share-post__search:focus-within{border-color:var(--brand)}.share-post__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.share-post__search input::placeholder{color:var(--text-muted)}.share-post__list{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.share-post__state{padding:var(--space-6) var(--space-2);text-align:center;font-size:var(--text-body);color:var(--text-muted)}.share-post__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-1);border:none;background:none;text-align:left;cursor:pointer}.share-post__row:hover{background:var(--surface-subtle)}.share-post__avatar{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:#fff;font-size:var(--text-caption);font-weight:var(--fw-bold);overflow:hidden}.share-post__avatar img{width:100%;height:100%;object-fit:cover}.share-post__name{flex:1;min-width:0;font-size:var(--text-md);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-post__check{width:22px;height:22px;flex:none;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:var(--radius-full);color:transparent}.share-post__check.is-on{border-color:var(--brand);background:var(--brand);color:#fff}.post-detail{padding:var(--space-4) 0}.post-detail--state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center;color:var(--text-muted)}.post-detail--state p{margin:0;font-size:var(--text-body)}.post-detail__title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.overlay-menu{position:relative;flex:none}.overlay-menu__trigger{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.overlay-menu__trigger:hover{background:var(--surface-subtle);color:var(--text-secondary)}.overlay-menu__panel{top:calc(100% + var(--space-1))}.overlay-menu__panel--right{right:0}.overlay-menu__panel--left{left:0}.dialog-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay);display:flex;justify-content:center;animation:fadeIn .15s ease}.dialog-overlay--sheet{align-items:flex-end}.dialog-overlay--modal{align-items:center;padding:var(--space-6)}.dialog{display:flex;flex-direction:column;width:100%;min-height:0;background:var(--surface)}.dialog--sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;height:var(--sheet-height, auto);max-height:92dvh;box-shadow:var(--shadow-sheet);animation:sheetUp .25s ease;padding-bottom:env(safe-area-inset-bottom)}.dialog--modal{max-width:var(--dialog-width, 500px);max-height:85dvh;border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);animation:scaleIn .15s ease}.dialog--headless .dialog__body{padding-top:var(--space-4)}.dialog--headless.dialog--modal .dialog__body{padding-top:var(--space-5)}.dialog__handle-wrap{flex:none;display:flex;justify-content:center;padding:var(--space-2) 0 var(--space-1);touch-action:none;cursor:grab}.dialog__handle{width:40px;height:4px;border-radius:var(--radius-full);background:var(--border-strong)}.dialog__header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.dialog__title{margin:0;min-width:0;font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialog__close{width:36px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:var(--surface-subtle);border-radius:var(--radius-full);color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.dialog__close:hover{background:var(--surface-hover);color:var(--text-secondary)}.dialog__body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-5)}.dialog__prompt{margin:0;font-size:var(--text-md);line-height:var(--lh-normal);color:var(--text-secondary)}.dialog__footer{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border)}.ambassador__field{margin:var(--space-4) 0 var(--space-3)}.ambassador__label{display:block;margin-bottom:var(--space-2);font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-secondary)}.ambassador__email{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);height:48px;border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface-subtle);color:var(--icon-muted)}.ambassador__email input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary);caret-color:transparent;cursor:default}.ambassador__note{margin:var(--space-2) 0 0;font-size:var(--text-caption);color:var(--text-muted)}.ambassador__fallback{margin:var(--space-4) 0 0;font-size:var(--text-caption);color:var(--text-muted)}.ambassador__fallback a{color:var(--brand);font-weight:var(--fw-semibold);overflow-wrap:anywhere}.create-post{display:flex;flex-direction:column;gap:var(--space-4)}.create-post__types{display:flex;gap:var(--space-2)}.create-post__type{padding:var(--space-2) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.create-post__type:hover:not(.is-active){background:var(--surface-subtle)}.create-post__type.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.create-post__author{display:flex;align-items:center;gap:var(--space-3)}.create-post__avatar{width:44px;height:44px;flex:none;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;overflow:hidden}.create-post__avatar img{width:100%;height:100%;object-fit:cover}.create-post__avatar svg{width:24px;height:24px}.create-post__author-name{margin:0;font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.create-post__college{display:flex;align-items:center;gap:var(--space-3)}.create-post__college label{flex:none;font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.create-post__editor{border-radius:var(--radius-lg);transition:background .15s}.create-post__editor.has-bg{background:var(--post-bg);padding:var(--space-5);min-height:170px;display:flex;align-items:center;justify-content:center}.create-post__textarea{width:100%;min-height:120px;border:none;background:none;resize:none;outline:none;font-family:var(--font);font-size:var(--text-lg);line-height:var(--lh-normal);color:var(--text-primary)}.create-post__textarea::placeholder{color:var(--text-muted)}.create-post__editor.has-bg .create-post__textarea{min-height:0;text-align:center;font-size:var(--text-2xl);font-weight:var(--fw-semibold);color:#fff}.create-post__editor.has-bg .create-post__textarea::placeholder{color:#ffffffbf}.create-post__colors{display:flex;flex-wrap:wrap;gap:var(--space-3)}.create-post__swatch{width:36px;height:36px;flex:none;border:2px solid transparent;border-radius:var(--radius-full);background:var(--swatch, var(--surface));box-shadow:inset 0 0 0 1px #00000014;cursor:pointer;transition:border-color .15s}.create-post__swatch.is-selected{border-color:var(--brand)}.create-post__swatch--none{background:var(--surface);color:var(--icon-muted);display:flex;align-items:center;justify-content:center}.create-post__attachments{display:flex;flex-wrap:wrap;gap:var(--space-3)}.create-post__attachment{position:relative;width:96px;height:96px;flex:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);overflow:hidden;display:flex;align-items:center;justify-content:center}.create-post__attachment img{width:100%;height:100%;object-fit:cover}.create-post__attachment-file{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-2);width:100%;color:var(--text-muted);font-size:var(--text-caption);text-align:center}.create-post__attachment-file span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.create-post__attachment-error{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:3px 4px;background:var(--danger);color:#fff;font-size:11px;font-weight:var(--fw-semibold);line-height:1.2}.create-post__attachment-error svg{flex:none}.create-post__attachment:has(.create-post__attachment-error){border-color:var(--danger)}.create-post__upload-error{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0}.create-post__upload-error svg{flex:none}.create-post__attachment-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border:none;border-radius:var(--radius-full);background:#0009;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.create-post__footer{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.create-post__tools{display:flex;align-items:center;gap:var(--space-1)}.create-post__tool{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-md);color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.create-post__tool:hover{background:var(--surface-subtle)}.create-post__tool.is-active{background:var(--brand-tint);color:var(--brand)}.create-post__file-input{display:none}.create-post__submit{border-radius:var(--radius-full)}.create-post__suspended{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center}.create-post__suspended h3{margin:0;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-primary)}.create-post__suspended p{margin:0;max-width:360px;font-size:var(--text-body);line-height:1.6;color:var(--text-secondary)}.create-post__suspended p strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.create-post__suspended-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);background:var(--danger-subtle);color:var(--danger)}.create-post__suspended-reason{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-subtle);color:var(--text-secondary);font-style:italic}.notice-editor{display:flex;flex-direction:column;gap:var(--space-4)}.notice-editor__body .ql-toolbar.ql-snow{border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--surface-subtle);padding:var(--space-2)}.notice-editor__body .ql-container.ql-snow{border:1px solid var(--border);border-radius:0 0 var(--radius-md) var(--radius-md);font-family:var(--font)}.notice-editor__body .ql-editor{min-height:160px;padding:var(--space-4);font-size:var(--text-md);line-height:var(--lh-normal);color:var(--text-primary)}.notice-editor__body .ql-editor.ql-blank:before{left:var(--space-4);right:var(--space-4);color:var(--text-muted);font-style:normal}.notice-editor__body .ql-snow .ql-stroke{stroke:var(--text-secondary)}.notice-editor__body .ql-snow .ql-fill{fill:var(--text-secondary)}.notice-editor__body .ql-snow.ql-toolbar button:hover .ql-stroke,.notice-editor__body .ql-snow .ql-toolbar button:hover .ql-stroke,.notice-editor__body .ql-snow.ql-toolbar button.ql-active .ql-stroke,.notice-editor__body .ql-snow .ql-toolbar button.ql-active .ql-stroke{stroke:var(--brand)}.notice-editor__body .ql-snow.ql-toolbar button.ql-active .ql-fill,.notice-editor__body .ql-snow .ql-toolbar button.ql-active .ql-fill{fill:var(--brand)}.notice-editor__body .ql-snow.ql-toolbar button:hover,.notice-editor__body .ql-snow .ql-toolbar button.ql-active{color:var(--brand)}.rich-text-field{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);transition:border-color .15s,box-shadow .15s}.rich-text-field:focus-within{border-color:var(--brand);box-shadow:var(--ring)}.field.is-error .rich-text-field{border-color:var(--danger-border)}.rich-text-field__previews{order:2;display:flex;gap:var(--space-3);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:var(--space-3);border-top:1px solid var(--border);scrollbar-width:thin}.rich-text-field__previews::-webkit-scrollbar{height:4px}.rich-text-field__previews::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.rich-text-field__previews>*{scroll-snap-align:start}.rich-text-field__editor{display:contents}.rich-text-field .ql-container.ql-snow{order:1;border:none;border-radius:0;font-family:var(--font)}.rich-text-field .ql-toolbar.ql-snow{order:3;border:none;border-top:1px solid var(--border);border-radius:0;background:var(--surface-subtle);padding:var(--space-2) var(--space-3)}.rich-text-field:has(.rich-text-field__previews) .ql-toolbar.ql-snow{border-top:none}.rich-text-field .ql-editor{min-height:200px;padding:var(--space-4);font-size:var(--text-md);line-height:var(--lh-normal);color:var(--text-primary)}.rich-text-field .ql-editor.ql-blank:before{left:var(--space-4);right:var(--space-4);color:var(--text-muted);font-style:normal}.rich-text-field .ql-snow .ql-stroke{stroke:var(--text-secondary)}.rich-text-field .ql-snow .ql-fill{fill:var(--text-secondary)}.rich-text-field .ql-snow.ql-toolbar button:hover .ql-stroke,.rich-text-field .ql-snow .ql-toolbar button.ql-active .ql-stroke{stroke:var(--brand)}.rich-text-field .ql-snow.ql-toolbar button.ql-active .ql-fill{fill:var(--brand)}.rich-text-field .ql-snow.ql-toolbar button:hover,.rich-text-field .ql-snow .ql-toolbar button.ql-active{color:var(--brand)}.rich-text-field .ql-toolbar.ql-snow .ql-formats{margin-right:0}.rich-text-field__tool{display:inline-flex;align-items:center;justify-content:center;width:28px;height:24px;border:none;background:none;padding:0;color:var(--text-secondary);cursor:pointer;transition:color .15s}.rich-text-field__tool:hover{color:var(--brand)}.notes-page{display:flex;flex-direction:column;gap:var(--space-4)}.notes-page__head{display:none;justify-content:flex-end}@media(min-width:768px){.notes-page__head{display:flex}}.notes-page__toolbar{display:flex;align-items:center;gap:var(--space-2)}.notes-page__search{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);color:var(--icon-muted)}.notes-page__search:focus-within{border-color:var(--brand)}.notes-page__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.notes-page__search input::placeholder{color:var(--text-muted)}.notes-page__filters{display:flex;flex-wrap:wrap;gap:var(--space-2)}.notes-page__class{display:block}.notes-page__class .field__control{width:100%}.notes-page__filter{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.notes-page__filter:hover:not(.is-active){background:var(--surface-subtle)}.notes-page__filter.is-active{background:var(--brand-tint);color:var(--brand);border-color:var(--brand-subtle)}.notes-page__groups{display:flex;flex-direction:column;gap:var(--space-5)}.notes-page__group{display:flex;flex-direction:column;gap:var(--space-3)}.notes-page__group-label{margin:0;font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.notes-page__list{display:flex;flex-direction:column;gap:var(--space-3)}.notes-page__loading-more{align-self:center;margin:0;padding:var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.notes-page__sentinel{height:1px;margin-top:calc(var(--space-8) * -1);padding-top:var(--space-8);pointer-events:none}.notes-page__empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-muted)}.notes-page__empty svg{margin-bottom:var(--space-3)}.note-card{position:relative;display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);border:1px solid var(--border);border-left:4px solid var(--note-color, var(--brand));border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.note-card:hover{background:var(--surface-subtle)}.note-card:focus-visible{box-shadow:var(--ring);outline:none}.note-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.note-card__title{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card__subtitle{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card__class{align-self:flex-start;max-width:100%;margin:2px 0;padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb,var(--note-color, var(--brand)) 14%,transparent);color:var(--note-color, var(--brand));font-size:var(--text-caption);font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-card__dates{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-top:2px;font-size:var(--text-caption);color:var(--text-muted)}.note-card__date--edited{color:var(--note-color, var(--brand));font-weight:var(--fw-semibold)}.note-card__delete{flex:none}.note-card--skeleton{cursor:default;border-left-color:var(--border)}.note-card__sk-title{display:block;height:16px;width:55%;border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.note-card__sk-line{display:block;height:12px;width:85%;border-radius:var(--radius-sm)}.note-view{flex:1;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--surface)}@media(min-width:768px){.note-view{padding:0;background:none}}.note-view__head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.note-view__title{margin:0;font-size:var(--text-xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary);overflow-wrap:anywhere}.note-view__class{max-width:100%;padding:1px var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb,var(--note-color, var(--brand)) 14%,transparent);color:var(--note-color, var(--brand));font-size:var(--text-caption);font-weight:var(--fw-semibold)}.note-view__stamps{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin:0;font-size:var(--text-caption);color:var(--text-muted)}.note-view__stamp{display:inline-flex;align-items:center;gap:var(--space-1)}.note-view__body{font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.note-view__body p{margin:0 0 var(--space-3)}.note-view__body p:last-child{margin-bottom:0}.note-view__body ul,.note-view__body ol{margin:0 0 var(--space-3);padding-left:var(--space-5)}.note-view__body a{color:var(--brand)}.note-view__media{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--space-2);margin-top:var(--space-4)}.note-view__thumb{position:relative;aspect-ratio:1;border:none;padding:0;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-subtle);cursor:pointer}.note-view__thumb img,.note-view__thumb video{width:100%;height:100%;object-fit:cover;display:block}.note-view__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}.note-view__empty{margin:0;font-size:var(--text-body);color:var(--text-muted);font-style:italic}.note-view__actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:auto;padding-top:var(--space-4)}@media(min-width:768px){.note-view__actions{flex-direction:row;justify-content:flex-end}.note-view__actions button{width:auto;min-width:160px}}.note-view__state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted)}.note-view__state p{margin:0;font-size:var(--text-body)}.note-view__sk-title{display:block;height:26px;width:65%;border-radius:var(--radius-sm)}.note-view__sk-line{display:block;height:13px;width:40%;border-radius:var(--radius-sm)}.note-view__sk-body{display:block;height:180px;border-radius:var(--radius-md)}.note-editor{flex:1;display:flex;flex-direction:column;gap:var(--space-5)}.note-editor__stamps{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin:0;font-size:var(--text-caption);color:var(--text-muted)}.note-editor__stamp{display:inline-flex;align-items:center;gap:var(--space-1)}.note-editor{padding:var(--space-4);background:var(--surface)}@media(min-width:768px){.note-editor{padding:0;background:none}}.note-editor .note-sk__field{display:block;height:52px;border-radius:var(--radius-input)}.note-editor .note-sk__editor{display:flex;flex-direction:column;gap:var(--space-3);min-height:200px;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface)}.note-editor .note-sk__line{display:block;height:12px;border-radius:var(--radius-sm)}.note-editor .note-sk__line--short{width:62%}.note-editor .note-sk__button{display:block;height:48px;border-radius:var(--radius-md)}.note-editor__actions{display:flex;flex-direction:column;gap:var(--space-3)}.note-editor__file-input{display:none}.note-editor__attachment{position:relative;width:76px;height:76px;flex:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);overflow:hidden;display:flex;align-items:center;justify-content:center}.note-editor__attachment-open{width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer;display:block;transition:transform .12s}.note-editor__attachment-open:active{transform:scale(.96)}.note-editor__attachment-open img,.note-editor__attachment-open video{width:100%;height:100%;object-fit:cover;display:block}.note-editor__attachment-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-full);background:#0000008c;color:#fff;pointer-events:none}.note-editor__attachment-file{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-1);width:100%;color:var(--text-muted);font-size:10px;text-align:center}.note-editor__attachment-file span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-editor__attachment-error{font-size:10px;color:var(--danger)}.note-editor__attachment-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:var(--radius-full);background:#0009;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.segmented{display:inline-flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.segmented--block{display:flex;width:100%}.segmented--block .segmented__item{flex:1}.segmented__item{border:none;border-radius:var(--radius-md);padding:8px 18px;font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-semibold);background:transparent;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}.segmented__item:hover:not(.is-active){color:var(--text-secondary)}.segmented__item.is-active{background:var(--surface-subtle);color:var(--brand)}.inbox{display:flex;flex-direction:column}.inbox__title{display:none}.inbox__tabs{padding:var(--space-4) var(--space-4) var(--space-3);background:var(--bg)}@media(min-width:768px){.inbox__tabs{padding:0 0 var(--space-4)}}.inbox__content{display:flex;flex-direction:column}.inbox-list{display:flex;flex-direction:column;background:var(--surface);overflow:hidden}@media(min-width:768px){.inbox-list{border:1px solid var(--border);border-radius:var(--radius-lg)}}.inbox-notice{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background .15s}.inbox-notice:not(:last-child){border-bottom:1px solid var(--border)}.inbox-notice:hover{background:var(--surface-subtle)}.inbox-notice--skeleton{pointer-events:none}.inbox-notice__thumb{width:64px;height:64px;flex:none;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-hover);display:flex;align-items:center;justify-content:center}.inbox-notice__thumb img{width:100%;height:100%;object-fit:cover;display:block}.inbox-notice__thumb-placeholder{color:var(--icon-muted);display:flex}.inbox-notice__body{flex:1;min-width:0}.inbox-notice__title{margin:0 0 4px;font-size:var(--text-md);font-weight:var(--fw-semibold);line-height:var(--lh-tight);color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inbox-notice__meta{margin:0;font-size:var(--text-body);color:var(--text-muted)}.inbox-notif{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);cursor:pointer;transition:background .15s}.inbox-notif:not(:last-child){border-bottom:1px solid var(--border)}.inbox-notif:hover{background:var(--surface-subtle)}.inbox-notif.is-unread{background:var(--brand-tint)}.inbox-notif--skeleton{pointer-events:none}.inbox-notif__icon{width:44px;height:44px;flex:none;border-radius:var(--radius-lg);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center}.inbox-notif__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.inbox-notif__text{margin:0;font-size:var(--text-md);line-height:var(--lh-tight);color:var(--text-primary)}.inbox-notif__foot{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2)}.inbox-notif__time{margin-right:auto;font-size:var(--text-caption);color:var(--text-muted)}.inbox-notif__btn{flex:none;height:34px;padding:0 var(--space-5);border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-semibold);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;transition:background .15s,opacity .15s}.inbox-notif__btn:hover{background:var(--brand-hover)}.inbox-notif__btn:disabled{opacity:.6;cursor:default}.inbox-notif__btn--quiet{background:none;border:1px solid var(--border);color:var(--text-secondary)}.inbox-notif__btn--quiet:hover{background:var(--surface-subtle)}.inbox-notif__spinner{width:13px;height:13px;flex:none;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:spin .6s linear infinite}.inbox-notif__status{flex:none;display:inline-flex;align-items:center;gap:4px;padding:6px var(--space-3);border-radius:var(--radius-full);background:var(--success-subtle);color:var(--success);font-size:var(--text-caption);font-weight:var(--fw-semibold)}.inbox-skeleton-line{display:block;height:12px;border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.inbox-skeleton-line--short{width:55%;margin-bottom:0}.inbox-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-12) var(--space-4);background:var(--surface)}@media(min-width:768px){.inbox-empty{border:1px solid var(--border);border-radius:var(--radius-lg)}}.inbox-empty__img{width:180px;margin-bottom:var(--space-5)}.inbox-empty__title{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.inbox-empty__sub{margin:0;max-width:280px;font-size:var(--text-body);color:var(--text-muted);line-height:var(--lh-normal)}.inbox-notif__sub{margin:2px 0 0;font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.comment-dialog__count{margin-left:var(--space-2);color:var(--text-muted);font-weight:var(--fw-semibold)}.comment-dialog .dialog__footer{justify-content:stretch;padding:var(--space-3) var(--space-4)}.comment-dialog.dialog--sheet{padding-bottom:0}.comment-dialog.dialog--sheet .dialog__footer{padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom))}.comment-list{display:flex;flex-direction:column;gap:var(--space-4)}.comment-list__empty{text-align:center;color:var(--text-muted);padding:var(--space-10) 0;font-size:var(--text-body)}.comment-list__more{align-self:flex-start}.comment{display:flex;gap:var(--space-3)}.comment--skeleton{pointer-events:none}.comment__avatar{width:40px;height:40px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center;overflow:hidden}.comment__avatar img{width:100%;height:100%;object-fit:cover}.comment__main{flex:1;min-width:0}.comment__bubble{background:var(--surface-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.comment__name{display:block;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--text-primary)}.comment__text{margin:2px 0 0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.comment__foot{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-1) var(--space-4) 0}.comment__time{font-size:var(--text-caption);color:var(--text-muted)}.comment__action{border:none;background:none;padding:0;font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-muted);cursor:pointer}.comment__action:hover{color:var(--text-secondary)}.comment__action--danger{color:var(--danger)}.comment__action--danger:hover{color:var(--danger-hover)}.comment__skeleton-avatar{width:40px;height:40px;flex:none;border-radius:var(--radius-full)}.comment__skeleton-line{display:block;height:10px;border-radius:var(--radius-sm);margin-bottom:6px}.comment__skeleton-line--name{width:30%}.comment__skeleton-bubble{display:block;height:44px;border-radius:var(--radius-lg)}.comment-composer{flex:1;display:flex;align-items:center;gap:var(--space-3)}.comment-composer__avatar{width:40px;height:40px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center;overflow:hidden}.comment-composer__avatar img{width:100%;height:100%;object-fit:cover}.comment-composer__input{flex:1;min-width:0;height:44px;border:none;border-radius:var(--radius-full);background:var(--surface-subtle);padding:0 var(--space-4);font-family:var(--font);font-size:var(--text-body);color:var(--text-primary);outline:none}.comment-composer__input::placeholder{color:var(--text-muted)}.comment-composer__send{width:44px;height:44px;flex:none;border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,opacity .15s}.comment-composer__send:hover:not(:disabled){background:var(--brand-hover)}.comment-composer__send:disabled{opacity:.5;cursor:not-allowed}.comment--pending{opacity:.6;transition:opacity .2s ease}.comment-list__error{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--danger-tint, rgba(220, 38, 38, .08));color:var(--danger);font-size:var(--text-sm)}.notice-detail{display:flex;flex-direction:column;flex:1}.notice-detail__head{margin-bottom:var(--space-4)}.notice-detail__title{margin:0 0 var(--space-2);font-size:var(--text-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.notice-detail__byline{display:flex;align-items:center;gap:var(--space-3)}.notice-detail__avatar{width:40px;height:40px;flex:none;border-radius:var(--radius-full);overflow:hidden;background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center;padding:0}.notice-detail__avatar img{width:100%;height:100%;object-fit:cover}.notice-detail__byline-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notice-detail__author{border:none;background:none;padding:0;text-align:left;font-family:var(--font);font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notice-detail__author:hover{text-decoration:underline}.notice-detail__meta{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.notice-detail__meta strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.notice-detail__delete{width:36px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-full);background:none;color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.notice-detail__delete:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.notice-detail__confirm-text{margin:0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary)}.notice-detail__hero{border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(135deg,#d8dee8,#b9c3d6)}.notice-detail__hero img{width:100%;display:block}@media(max-width:767px){.notice-detail__hero{margin:0 calc(-1 * var(--space-4));border-radius:0}}.notice-detail__hero--video video{width:100%;max-height:480px;display:block;background:#000}.notice-detail__body{margin-top:var(--space-4);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.notice-detail__body p{margin:0 0 var(--space-4)}.notice-detail__body p:last-child{margin-bottom:0}.notice-detail__body ul,.notice-detail__body ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}.notice-detail__body a{color:var(--brand)}.notice-detail__body img{max-width:100%;border-radius:var(--radius-md)}@media(max-width:767px){.notice-detail__body{flex:1;margin:0 calc(-1 * var(--space-4)) calc(-1 * var(--space-4));padding:var(--space-5) var(--space-4);background:var(--surface)}}.notice-detail--empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);text-align:center;color:var(--text-muted)}.notice-detail__sk-title{display:block;height:22px;border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.notice-detail__sk-title--short{width:60%}.notice-detail__sk-meta{display:block;height:14px;width:45%;border-radius:var(--radius-sm);margin-top:var(--space-3)}.notice-detail__sk-hero{display:block;width:100%;height:260px;border-radius:var(--radius-lg)}@media(max-width:767px){.notice-detail__sk-hero{margin:0 calc(-1 * var(--space-4));width:auto;border-radius:0}}.notice-detail__sk-line{display:block;height:12px;border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.notice-detail__sk-line--short{width:65%}.pane-head{flex:none;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.pane-head__back{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-full);background:none;color:var(--text-secondary);cursor:pointer}.pane-head__back:hover{background:var(--surface-subtle)}.pane-head__title{display:inline-flex;align-items:center;gap:var(--space-1);min-width:0;padding:0;border:none;background:none;font-family:var(--font);font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary);text-align:left}.pane-head__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-head__title svg{flex:none;color:var(--icon-muted);transition:transform .15s}.pane-head__title--link{cursor:pointer}.pane-head__title--link:hover svg{transform:translate(2px);color:var(--brand)}.pane-head__actions{flex:none;margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.chats-page{display:flex;flex-direction:column;flex:1;min-height:0}@media(min-width:768px){.chats-page{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:var(--space-5);align-items:start}}@media(min-width:1024px){.chats-page{grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:var(--space-6)}}.chats{display:flex;flex-direction:column;flex:1;background:var(--surface)}@media(min-width:768px){.chats{flex:none;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;height:calc(var(--visible-h) - 108px)}}.chats__header{display:none;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4) var(--space-3)}@media(min-width:768px){.chats__header{display:flex}}.chats__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.chats__toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4)}@media(min-width:768px){.chats__toolbar{padding:0 var(--space-4) var(--space-3)}}.chats__search{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);color:var(--icon-muted)}.chats__search:focus-within{border-color:var(--brand)}.chats__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.chats__search input::placeholder{color:var(--text-muted)}.chats__filter{position:relative;flex:none}.chats__tool{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chats__tool:hover{background:var(--surface-subtle)}.chats__tool.is-active{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.chats__term-menu{top:calc(100% + var(--space-1));right:0;min-width:160px}.chats__term-empty{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.chats__list{display:flex;flex-direction:column}@media(min-width:768px){.chats__list{flex:1;min-height:0;overflow-y:auto}}.chats__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);color:var(--text-muted)}.chats__state p{margin:0;font-size:var(--text-body)}.chat-ai{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:none;cursor:pointer;text-align:left;color:#fff;background:linear-gradient(135deg,#1a3a7a,#10346f 55%,#0d2b5e)}.chat-ai.is-active{box-shadow:inset 3px 0 #7aa2e8}.chat-ai__icon{width:48px;height:48px;flex:none;border-radius:var(--radius-full);background:linear-gradient(135deg,#7aa2e8,#a99bf0);color:#fff;display:flex;align-items:center;justify-content:center}.chat-ai__body{flex:1;min-width:0}.chat-ai__title-row{display:flex;align-items:center;gap:var(--space-2)}.chat-ai__name{font-size:var(--text-md);font-weight:var(--fw-bold)}.chat-ai__badge{font-size:9px;font-weight:var(--fw-bold);letter-spacing:.4px;padding:2px 6px;border-radius:var(--radius-full);background:#fff3;color:#fff}.chat-ai__sub{display:block;margin-top:2px;font-size:var(--text-sm);color:#fffc}.chat-ai__dot{width:10px;height:10px;flex:none;border-radius:var(--radius-full);background:var(--success)}.chat-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:none;border-top:1px solid var(--border);background:none;cursor:pointer;text-align:left;transition:background .15s}.chat-row:hover{background:var(--surface-subtle)}.chat-row.is-active{background:var(--brand-tint)}.chat-row__avatar{width:48px;height:48px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;overflow:hidden}.chat-row__avatar img{width:100%;height:100%;object-fit:cover}.chat-row__body{flex:1;min-width:0}.chat-row__name{margin:0;font-size:var(--text-md);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row__name strong{font-weight:var(--fw-bold)}.chat-row__section{color:var(--text-muted);font-weight:var(--fw-regular)}.chat-row__preview{margin:2px 0 0;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row__status{color:var(--text-muted)}.chat-row__status--new{color:var(--brand);font-weight:var(--fw-semibold)}.chat-row__time{color:var(--text-muted)}.chat-row__badge{flex:none;min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-caption);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center}.chats-empty{display:none}@media(min-width:768px){.chats-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);height:calc(var(--visible-h) - 108px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;padding:var(--space-8)}}.chats-empty__icon{color:var(--icon-muted)}.chats-empty__title{margin:0;font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.chats-empty__sub{margin:0;font-size:var(--text-body);color:var(--text-muted)}.leave-room{display:flex;flex-direction:column;gap:var(--space-4)}.leave-room__state{display:flex;justify-content:center;padding:var(--space-6)}.leave-room__lead{margin:0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary)}.leave-room__label{margin:0;font-size:var(--text-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.leave-room__choices{display:flex;flex-direction:column;gap:var(--space-2)}.leave-room__choice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:left;font-family:var(--font);cursor:pointer;transition:border-color .15s,background .15s}.leave-room__choice:hover{background:var(--surface-subtle)}.leave-room__choice.is-picked{border-color:var(--brand);background:var(--brand-tint)}.leave-room__choice--danger .leave-room__choice-icon{color:var(--danger)}.leave-room__choice--danger.is-picked{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.leave-room__choice--danger.is-picked .leave-room__radio.is-on{border-color:var(--danger);background:var(--danger)}.leave-room__choice-icon{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--brand)}.leave-room__choice-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.leave-room__choice-title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.leave-room__choice-text{font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted)}.leave-room__radio{flex:none;align-self:center;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:var(--radius-full);color:transparent}.leave-room__radio.is-on{border-color:var(--brand);background:var(--brand);color:#fff}.leave-room__foot{margin:0;font-size:var(--text-caption);color:var(--text-muted)}.swipe-row{position:relative;overflow:hidden}.swipe-row__action{position:absolute;top:0;right:0;bottom:0;z-index:2;width:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:none;background:var(--danger);color:#fff;font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-semibold);cursor:pointer;transition:transform .18s ease;will-change:transform}.swipe-row__action.is-dragging{transition:none}.swipe-row__content{position:relative;z-index:1;background:var(--surface);touch-action:pan-y}.chat-thread{position:relative;flex:1;min-height:0;max-height:calc(var(--visible-h) - var(--topbar-h));display:flex;flex-direction:column;background:var(--bg);overflow:hidden}@media(min-width:768px){.chat-thread{height:calc(var(--visible-h) - 172px);max-height:none;min-height:420px;border:1px solid var(--border);border-radius:var(--radius-lg)}}.chat-thread--embedded{height:calc(var(--visible-h) - 108px)}.chat-thread__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-3) var(--space-4)}.chat-thread__body.is-selecting{-webkit-user-select:none;user-select:none}@media(hover:none)and (pointer:coarse){.chat-thread__body{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}}.chat-thread__sentinel{flex:none;height:1px}.chat-thread__loading{display:flex;justify-content:center;padding:var(--space-3) 0}.chat-thread__empty{margin:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center}.chat-thread__empty p{margin:0;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.chat-thread__empty span{font-size:var(--text-sm);color:var(--text-muted)}.chat-thread__empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-full);background:var(--surface);color:var(--icon-muted);box-shadow:var(--shadow-topnav)}.chat-thread__jump{position:absolute;left:50%;bottom:92px;transform:translate(-50%);z-index:4;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-full);background:var(--brand);color:var(--on-brand);font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-semibold);box-shadow:var(--shadow-card);cursor:pointer;animation:scaleIn .15s ease}.chat-thread__jump svg{transform:rotate(90deg)}.chat-typing{flex:none;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-2) 40px;animation:fadeIn .15s ease}.chat-typing__bubble{display:inline-flex;align-items:center;padding:10px 14px;border-radius:18px 18px 18px 6px;background:var(--surface);box-shadow:0 1px 1.5px #0016341a}.chat-typing__dots{display:inline-flex;gap:4px;color:var(--text-muted)}.chat-typing__dots i{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;animation:pulse 1.2s infinite}.chat-typing__dots i:nth-child(2){animation-delay:.2s}.chat-typing__dots i:nth-child(3){animation-delay:.4s}.chat-typing__label{font-size:var(--text-caption);color:var(--text-muted)}.chat-skeleton{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) 0}.chat-skeleton__row{display:flex;align-items:flex-end;gap:var(--space-2)}.chat-skeleton__row--mine{justify-content:flex-end}.chat-skeleton__avatar{flex:none;align-self:flex-start}.chat-selectbar{flex:none;z-index:5;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);background:var(--brand-tint);border-bottom:1px solid var(--brand-subtle)}.chat-selectbar__count{flex:1;min-width:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary)}.chat-selectbar__actions{flex:none;display:flex;align-items:center;gap:2px}.chat-selectbar__icon{width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.chat-selectbar__icon:hover:not(:disabled){background:#fff9}.chat-selectbar__icon:disabled{opacity:.4;cursor:not-allowed}.chat-selectbar__icon--danger{color:var(--danger)}.chat-day{display:flex;flex-direction:column;gap:2px}.chat-daysep,.chat-system{display:flex;justify-content:center;padding:var(--space-1) 0 var(--space-2)}.chat-daysep{position:sticky;top:0;z-index:2;pointer-events:none}.chat-daysep__pill{padding:4px var(--space-3);border-radius:var(--radius-full);background:#0016348c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.01em}.chat-system__pill{padding:4px var(--space-3);border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);font-size:var(--text-caption);color:var(--text-muted);text-transform:capitalize;text-align:center}.chat-msg{display:flex;align-items:flex-end;gap:var(--space-2);padding:1px 0}.chat-msg--other{justify-content:flex-start}.chat-msg--mine{justify-content:flex-end}.chat-msg--last{margin-bottom:var(--space-3)}.chat-msg__avatar{width:32px;flex:none;align-self:flex-start}.chat-msg__stack{display:flex;flex-direction:column;min-width:0;max-width:min(76%,520px)}.chat-msg--mine .chat-msg__stack{align-items:flex-end}.chat-msg__check{width:22px;height:22px;flex:none;align-self:center;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface);color:#fff;transition:background .15s,border-color .15s}.chat-msg__check.is-on{background:var(--brand);border-color:var(--brand)}.chat-msg.is-selected{background:var(--brand-tint);border-radius:var(--radius-md)}.chat-msg.is-clone{padding:0}.chat-msg.is-clone .chat-msg__stack{max-width:100%;width:100%}.chat-avatar{display:flex;align-items:center;justify-content:center;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:11px;font-weight:var(--fw-semibold);overflow:hidden}.chat-avatar img{width:100%;height:100%;object-fit:cover}.chat-bubble{position:relative;display:flex;flex-direction:column;min-width:0;max-width:100%;padding:7px var(--space-3) 7px;border-radius:18px;font-size:var(--text-body);line-height:1.42;cursor:default;-webkit-tap-highlight-color:transparent}.chat-bubble--other{background:var(--surface);color:var(--text-primary);box-shadow:0 1px 1.5px #0016341a}.chat-bubble--mine{background:var(--brand-subtle);color:var(--text-primary)}.chat-bubble--other.chat-bubble--head{border-top-left-radius:6px}.chat-bubble--mine.chat-bubble--head{border-top-right-radius:6px}.chat-bubble--media{padding:3px}.chat-bubble--card{padding:var(--space-3);min-width:230px}.chat-bubble--deleted{background:var(--surface-subtle);box-shadow:none;color:var(--text-muted)}.chat-bubble.is-failed{opacity:.7}.chat-bubble__sender{margin-bottom:1px;font-size:var(--text-caption);font-weight:var(--fw-bold);color:var(--brand);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-bubble__forwarded{display:inline-flex;align-items:center;gap:4px;margin-bottom:2px;font-size:11px;font-style:italic;opacity:.7}.chat-bubble--media .chat-bubble__sender,.chat-bubble--media .chat-bubble__forwarded{padding:3px var(--space-2) 0}.chat-bubble--mine .chat-quote,.chat-bubble--mine .chat-file{background:var(--surface)}.chat-bubble--mine .chat-ticks{color:var(--brand)}.chat-bubble--mine .chat-meta__time,.chat-bubble--mine .chat-meta__edited{color:var(--text-secondary)}.chat-text{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.chat-text:after{content:"";display:block;clear:both}.chat-text__mention{font-weight:var(--fw-semibold);color:var(--brand)}.chat-text--caption{padding:3px var(--space-2) 2px}.chat-text--file-caption{padding:var(--space-2) 0 0}.chat-text--deleted{display:inline-flex;align-items:center;gap:6px;font-style:italic}.chat-text--deleted svg{flex:none;opacity:.7}.chat-text--deleted:after{display:none}.chat-text--deleted .chat-meta{float:none;margin:0 0 0 var(--space-2)}.chat-meta{float:right;display:inline-flex;align-items:center;gap:4px;margin:3px 0 0 var(--space-3);line-height:1;white-space:nowrap}.chat-meta__time{font-size:11px;color:var(--text-muted)}.chat-meta__edited{font-size:11px;font-style:italic;color:var(--text-muted)}.chat-meta--media{position:absolute;right:8px;bottom:8px;float:none;margin:0;padding:2px 7px;border-radius:var(--radius-full);background:#00000080}.chat-meta--media .chat-meta__time,.chat-meta--media .chat-meta__edited,.chat-meta--media .chat-ticks{color:#fff}.chat-ticks{flex:none;color:var(--text-muted)}.chat-ticks--failed{color:var(--danger)}.chat-quote{display:flex;flex-direction:column;gap:1px;margin-bottom:4px;padding:4px var(--space-2);border-left:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--brand-tint)}.chat-quote--tappable{cursor:pointer;transition:background .15s}.chat-quote--tappable:hover{background:var(--brand-subtle)}.chat-quote--tappable:active{opacity:.8}.chat-quote--tappable:focus-visible{outline:none;box-shadow:var(--ring)}.chat-quote__name{font-size:var(--text-caption);font-weight:var(--fw-bold);color:var(--brand)}.chat-quote__text{font-size:var(--text-caption);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-msg.is-jump-target .chat-bubble{animation:jumpFlash 1.6s ease}@keyframes jumpFlash{0%,60%{box-shadow:0 0 0 3px var(--brand-subtle)}to{box-shadow:0 0 0 3px #0000}}.chat-bubble--media .chat-quote{margin:3px}.chat-reactions{z-index:1;display:flex;flex-wrap:wrap;gap:4px;margin-top:-11px;padding-left:var(--space-3)}.chat-reactions__chip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow-topnav);font-family:var(--font);font-size:12px;line-height:1.4;color:var(--text-secondary);cursor:pointer}.chat-reactions__chip.is-mine{border-color:var(--brand-subtle);background:var(--brand-tint)}.chat-reactions__emoji{font-size:13px}.chat-reactions__count{font-weight:var(--fw-semibold)}.chat-msg--mine .chat-reactions{padding-left:0;padding-right:var(--space-3)}.chat-media{position:relative;display:flex;border-radius:15px;overflow:hidden;cursor:pointer}.chat-media img{display:block;width:100%;max-width:260px;height:auto;max-height:340px;object-fit:cover}.chat-media__placeholder{display:flex;align-items:center;justify-content:center;width:220px;height:150px;background:var(--surface-subtle);color:var(--icon-muted)}.chat-media__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-full);background:#00000080;color:#fff;pointer-events:none}.chat-media__duration{position:absolute;left:8px;top:8px;padding:2px 7px;border-radius:var(--radius-full);background:#00000080;color:#fff;font-size:11px;font-weight:var(--fw-medium)}.chat-file{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:none;border-radius:var(--radius-md);background:var(--surface-subtle);color:var(--text-primary);font-family:var(--font);text-align:left;text-decoration:none;cursor:pointer;transition:background .15s}.chat-file:hover:not(:disabled){background:var(--surface-hover)}.chat-file:disabled{cursor:default}.chat-file__go{flex:none;margin-left:auto;color:var(--icon-muted)}.chat-file__icon{width:36px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand)}.chat-file__body{display:flex;flex-direction:column;min-width:0}.chat-file__name{font-size:var(--text-sm);font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-file__size{font-size:11px;color:var(--text-muted)}.chat-voice{display:flex;flex-direction:column;gap:4px;min-width:220px}.chat-voice__row{display:flex;align-items:center;gap:var(--space-2)}.chat-voice__play{width:36px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;cursor:pointer}.chat-voice__play:disabled{opacity:.5;cursor:default}.chat-voice__wave{flex:1;min-width:0;display:flex;align-items:center;gap:2px;height:22px;overflow:hidden}.chat-voice__bar{width:2.5px;flex:none;border-radius:var(--radius-full);background:var(--border-strong);transition:background .1s}.chat-voice__bar.is-played{background:var(--brand)}.chat-voice__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.chat-voice__elapsed{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.chat-voice__speed{flex:none;padding:2px 7px;border:none;border-radius:var(--radius-full);background:var(--surface-subtle);font-family:var(--font);font-size:11px;font-weight:var(--fw-semibold);color:var(--text-secondary);cursor:pointer}.chat-voice .chat-meta{float:none;margin:0}.chat-bubble--mine .chat-voice .chat-voice__speed{background:var(--surface)}.chat-bubble--mine .chat-voice .chat-voice__elapsed{color:var(--text-secondary)}.chat-bubble--mine .chat-voice .chat-voice__bar{background:#164ca247}.chat-card{display:flex;flex-direction:column;gap:var(--space-2)}.chat-card__head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.chat-card__kind{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;opacity:.75}.chat-card__tag{padding:1px 7px;border-radius:var(--radius-full);background:var(--surface-subtle);font-size:11px;color:var(--text-muted)}.chat-card__question{margin:0;font-size:var(--text-md);font-weight:var(--fw-semibold)}.chat-card__go{margin-left:auto;flex:none;color:var(--icon-muted);transition:transform .15s}.chat-card--tappable{cursor:pointer}.chat-card--tappable:hover .chat-card__go{transform:translate(2px);color:var(--brand)}.chat-card--tappable:focus-visible{box-shadow:var(--ring);outline:none}.chat-card__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--text-caption);color:var(--text-muted)}.chat-card__foot .chat-meta{float:none;margin:0}.chat-poll__options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.chat-poll__option{position:relative;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:border-color .15s}.chat-poll__option:hover:not(.is-closed){border-color:var(--brand-subtle)}.chat-poll__option.is-voted{border-color:var(--brand)}.chat-poll__option.is-closed{cursor:default}.chat-poll__fill{position:absolute;inset:0 auto 0 0;width:var(--pct, 0%);background:var(--brand-tint);transition:width .3s ease}.chat-poll__label{position:relative;flex:1;min-width:0;font-size:var(--text-sm)}.chat-poll__result{position:relative;display:inline-flex;align-items:center;gap:4px;font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--brand)}.chat-bubble--mine.chat-bubble--card{background:var(--surface);color:var(--text-primary);box-shadow:0 1px 1.5px #0016341a}.chat-bubble--mine.chat-bubble--card .chat-bubble__sender,.chat-bubble--mine.chat-bubble--card .chat-meta__time,.chat-bubble--mine.chat-bubble--card .chat-meta__edited,.chat-bubble--mine.chat-bubble--card .chat-ticks{color:var(--text-muted)}.chat-dock{flex:none;z-index:5;background:var(--surface);border-top:1px solid var(--border)}.mention-picker{display:flex;flex-direction:column;max-height:232px;overflow-y:auto;overscroll-behavior:contain;border-bottom:1px solid var(--border)}.mention-picker__state{display:flex;justify-content:center;padding:var(--space-4)}.mention-picker__row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-4);border:none;background:none;text-align:left;cursor:pointer}.mention-picker__row:hover,.mention-picker__row.is-active{background:var(--surface-subtle)}.mention-picker__avatar{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-caption);font-weight:var(--fw-bold);overflow:hidden}.mention-picker__avatar img{width:100%;height:100%;object-fit:cover}.mention-picker__avatar.is-everyone{background:var(--brand-tint);color:var(--brand)}.mention-picker__body{display:flex;flex-direction:column;min-width:0}.mention-picker__name{font-size:var(--text-md);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mention-picker__sub{font-size:var(--text-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-staged{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-3) var(--space-4) 0}.chat-staged__item{position:relative;width:66px;height:66px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle);overflow:hidden}.chat-staged__item.is-error{border-color:var(--danger-border)}.chat-staged__item img{width:100%;height:100%;object-fit:cover}.chat-staged__play,.chat-staged__error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex}.chat-staged__play{padding:4px;border-radius:var(--radius-full);background:#00000080;color:#fff}.chat-staged__error{color:var(--danger)}.chat-staged__file{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;padding:var(--space-1);color:var(--text-muted);font-size:10px;text-align:center}.chat-staged__file span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-staged__remove{position:absolute;top:3px;right:3px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:#0009;color:#fff;cursor:pointer}.chat-context{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) var(--space-4) 0;padding:var(--space-2) var(--space-3);border-left:3px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface-subtle)}.chat-context__icon{flex:none;color:var(--brand)}.chat-context__body{flex:1;min-width:0;display:flex;flex-direction:column}.chat-context__title{font-size:var(--text-caption);font-weight:var(--fw-bold);color:var(--brand)}.chat-context__text{font-size:var(--text-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-context__close{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);color:var(--icon-muted);cursor:pointer}.chat-context__close:hover{background:var(--surface-hover)}.chat-composer{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-3);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom))}.chat-composer__tool{width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.chat-composer__tool:hover{background:var(--surface-subtle);color:var(--text-secondary)}.chat-composer__field{flex:1;min-width:0;display:flex;align-items:center;padding:9px var(--space-4);border:1px solid var(--border);border-radius:21px;background:var(--surface-subtle);transition:border-color .15s,background .15s}.chat-composer__field:focus-within{border-color:var(--brand-subtle);background:var(--surface)}.chat-composer__field textarea{flex:1;min-width:0;max-height:120px;border:none;background:none;outline:none;resize:none;overflow-y:auto;font-family:var(--font);font-size:var(--text-body);line-height:1.45;color:var(--text-primary)}.chat-composer__field textarea::placeholder{color:var(--text-muted)}.chat-composer__send{width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;cursor:pointer;transition:background .15s,opacity .15s}.chat-composer__send:hover:not(:disabled){background:var(--brand-hover)}.chat-composer__send:disabled{opacity:.45;cursor:not-allowed}.chat-composer__rec{flex:1;display:flex;align-items:center;gap:var(--space-2);height:42px;padding:0 var(--space-4);border-radius:21px;background:var(--danger-subtle)}.chat-composer__rec-dot{width:9px;height:9px;flex:none;border-radius:var(--radius-full);background:var(--danger);animation:pulse 1s infinite}.chat-composer__rec-time{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--danger);font-variant-numeric:tabular-nums}.chat-composer__rec-time.is-ending{animation:recEnding 1s ease-in-out infinite}@keyframes recEnding{0%,to{opacity:1}50%{opacity:.45}}.chat-composer__rec-hint{font-size:var(--text-caption);color:var(--danger);opacity:.8}.msg-actions{position:fixed;inset:0;z-index:var(--z-modal);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.msg-actions__scrim{position:absolute;inset:0;background:#0016346b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .14s ease}.msg-actions__stack{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:calc(100vw - 24px);animation:scaleIn .16s ease;transform-origin:top left;pointer-events:none}.msg-actions__stack.is-armed{pointer-events:auto}.msg-actions__stack--mine{align-items:flex-end;transform-origin:top right}.msg-actions__reactions{display:flex;align-items:center;gap:2px;max-width:100%;padding:5px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow-card)}.msg-actions__reactions.is-expanded{flex-wrap:wrap;justify-content:center;max-width:300px;border-radius:var(--radius-xl)}.msg-actions__emoji{width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);font-size:23px;line-height:1;cursor:pointer;transition:transform .1s,background .15s}.msg-actions__emoji:hover{background:var(--surface-subtle);transform:scale(1.12)}.msg-actions__emoji:active{transform:scale(.94)}.msg-actions__emoji.is-active{background:var(--brand-tint)}.msg-actions__emoji--more{font-size:0;color:var(--icon-muted);background:var(--surface-subtle)}.msg-actions__clone{max-width:100%;overflow-y:auto;overscroll-behavior:contain}.msg-actions__menu{display:flex;flex-direction:column;width:232px;max-width:100%;padding:var(--space-1) 0;border-radius:14px;background:var(--surface);box-shadow:var(--shadow-modal);overflow:hidden}.msg-actions__menu.is-capped{overflow-y:auto;overscroll-behavior:contain}.msg-actions__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:11px var(--space-4);border:none;background:none;font-family:var(--font);font-size:var(--text-md);color:var(--text-primary);text-align:left;cursor:pointer;transition:background .12s}.msg-actions__item:hover,.msg-actions__item:active{background:var(--surface-subtle)}.msg-actions__item svg{flex:none;color:var(--text-secondary)}.msg-actions__item--danger{color:var(--danger)}.msg-actions__item--danger svg{color:var(--danger)}.msg-actions__label{flex:1;min-width:0}.msg-info{display:flex;flex-direction:column;gap:var(--space-5)}.msg-info__preview{display:flex;max-height:260px;overflow:hidden}.msg-info__preview .chat-msg{width:100%}.msg-info__preview .chat-msg__stack{max-width:100%}.msg-info__facts{margin:0;display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.msg-info__facts>div{display:flex;gap:var(--space-3)}.msg-info__facts dt{flex:none;width:84px;font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-muted)}.msg-info__facts dd{margin:0;flex:1;min-width:0;font-size:var(--text-sm);color:var(--text-primary)}.msg-info__section{display:flex;flex-direction:column;gap:var(--space-3)}.msg-info__heading{margin:0;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.msg-info__heading span{padding:0 6px;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--text-secondary)}.msg-info__tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.msg-info__tab{padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.msg-info__tab.is-active{background:var(--brand-tint);border-color:var(--brand-subtle);color:var(--brand)}.msg-info__list{display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--surface-subtle);overflow:hidden}.msg-info__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.msg-info__row+.msg-info__row{border-top:1px solid var(--border)}.msg-info__name{flex:1;min-width:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-info__time{flex:none;font-size:var(--text-caption);color:var(--text-muted);font-variant-numeric:tabular-nums}.msg-info__emoji{flex:none;font-size:18px}.msg-info__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) 0;font-size:var(--text-sm);color:var(--text-muted)}.forward-sheet{display:flex;flex-direction:column;gap:var(--space-3)}.forward-sheet__search{display:flex;align-items:center;gap:var(--space-2);height:42px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface-subtle);color:var(--icon-muted)}.forward-sheet__search:focus-within{border-color:var(--brand-subtle);background:var(--surface)}.forward-sheet__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.forward-sheet__search input::placeholder{color:var(--text-muted)}.forward-sheet__list{display:flex;flex-direction:column}.forward-sheet__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:none;border-radius:var(--radius-md);background:none;text-align:left;cursor:pointer}.forward-sheet__row:hover{background:var(--surface-subtle)}.forward-sheet__row.is-picked{background:var(--brand-tint)}.forward-sheet__avatar{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);overflow:hidden;color:#fff;font-size:var(--text-caption);font-weight:var(--fw-bold)}.forward-sheet__avatar img{width:100%;height:100%;object-fit:cover}.forward-sheet__name{flex:1;min-width:0;font-size:var(--text-body);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forward-sheet__check{width:22px;height:22px;flex:none;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-full);color:#fff}.forward-sheet__check.is-on{background:var(--brand);border-color:var(--brand)}.forward-sheet__state{padding:var(--space-6) 0;text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.delete-sheet{display:flex;flex-direction:column;gap:var(--space-1)}.delete-sheet__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:none;background:none;border-radius:var(--radius-md);font-family:var(--font);color:var(--text-primary);text-align:left;cursor:pointer}.delete-sheet__item:hover{background:var(--surface-subtle)}.delete-sheet__item svg{flex:none;color:var(--icon-muted)}.delete-sheet__item span{display:flex;flex-direction:column;gap:2px}.delete-sheet__item strong{font-size:var(--text-md);font-weight:var(--fw-semibold)}.delete-sheet__item small{font-size:var(--text-caption);color:var(--text-muted)}.delete-sheet__item--danger{color:var(--danger)}.delete-sheet__item--danger svg{color:var(--danger)}.chat-form{display:flex;flex-direction:column;gap:var(--space-5)}.chat-form__group{display:flex;flex-direction:column;gap:var(--space-2)}.chat-form__label{font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-muted)}.chat-form__req{color:var(--danger);margin-left:2px}.chat-form__hint{font-size:var(--text-caption);color:var(--text-muted)}.chat-form__options{display:flex;flex-direction:column;gap:var(--space-2)}.chat-form__option{display:flex;align-items:center;gap:var(--space-2)}.chat-form__option .field{flex:1;min-width:0}.chat-form__remove{width:36px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:var(--surface-subtle);border-radius:var(--radius-full);color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.chat-form__remove:hover{background:var(--danger-subtle);color:var(--danger)}.chat-form__add{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:none;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--brand);cursor:pointer;transition:background .15s,border-color .15s}.chat-form__add:hover{background:var(--brand-tint);border-color:var(--brand-subtle)}.chat-form__error{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-caption);color:var(--danger)}.chat-form__error--form{margin:0;padding:var(--space-3);border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-subtle);font-size:var(--text-sm)}.chat-form__error--form svg{flex:none}.groups-panel{display:flex;flex-direction:column;gap:var(--space-4)}.groups-panel__avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-bold)}.groups-panel__avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.groups-panel__sk-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2)}.groups-panel__sk-avatar{flex:none;width:44px;height:44px;border-radius:var(--radius-lg)}.groups-panel__sk-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.groups-panel__sk-line{display:block;height:10px;border-radius:var(--radius-sm)}.groups-panel__sk-line--short{width:72%}.groups-panel__sk-line--meta{width:34%;height:8px}.groups-panel__list{display:flex;flex-direction:column;gap:var(--space-1)}.groups-panel__row{display:flex;align-items:center;gap:var(--space-1);border-radius:var(--radius-lg);transition:background .15s}.groups-panel__row:hover{background:var(--surface-subtle)}.groups-panel__open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:none;background:none;text-align:left;cursor:pointer}.groups-panel__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.groups-panel__line{display:flex;align-items:center;gap:var(--space-2);min-width:0}.groups-panel__name{flex:1;min-width:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.groups-panel__time{flex:none;font-size:11px;color:var(--text-muted)}.groups-panel__preview{flex:1;min-width:0;font-size:var(--text-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.groups-panel__badge{flex:none;min-width:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:10px;font-weight:var(--fw-bold);line-height:18px;text-align:center}.groups-panel__meta{font-size:11px;color:var(--text-disabled)}.groups-panel__menu{align-self:center}.groups-panel__invite{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.groups-panel__invite-head{display:flex;align-items:center;gap:var(--space-3)}.groups-panel__invite-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.groups-panel__invite-desc{margin:0;font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-secondary)}.groups-panel__invite-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.groups-panel__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center}.groups-panel__empty p{margin:0;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.groups-panel__empty span{font-size:var(--text-sm);color:var(--text-muted)}.groups-panel__empty-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--icon-muted)}.segmented__count{display:inline-block;min-width:17px;margin-left:4px;padding:0 4px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);font-size:10px;font-weight:var(--fw-bold);line-height:17px;text-align:center}.member-picker{display:flex;flex-direction:column;gap:var(--space-3)}.member-picker__intro{margin:0;font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-secondary)}.member-picker__intro strong{color:var(--text-primary)}.member-picker__chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.member-picker__chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:3px var(--space-2) 3px 3px;border-radius:var(--radius-full);background:var(--brand-tint);font-size:var(--text-caption);color:var(--text-primary)}.member-picker__chip button{display:flex;padding:0;border:none;background:none;color:var(--text-muted);cursor:pointer}.member-picker__chip button:hover{color:var(--danger)}.member-picker__chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-picker__search{display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface-subtle);color:var(--icon-muted)}.member-picker__search:focus-within{border-color:var(--brand-subtle);background:var(--surface)}.member-picker__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.member-picker__search input::placeholder{color:var(--text-muted)}.member-picker__list{display:flex;flex-direction:column}.member-picker__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:none;border-radius:var(--radius-md);background:none;text-align:left;cursor:pointer}.member-picker__row:hover{background:var(--surface-subtle)}.member-picker__row.is-selected{background:var(--brand-tint)}.member-picker__identity{flex:1;min-width:0;display:flex;flex-direction:column}.member-picker__name{font-size:var(--text-body);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-picker__handle{font-size:var(--text-caption);color:var(--text-muted)}.member-picker__check{width:22px;height:22px;flex:none;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-full);color:#fff}.member-picker__check.is-on{background:var(--brand);border-color:var(--brand)}.member-picker__state{padding:var(--space-6) 0;text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.attach-sheet{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5) var(--space-2);padding:var(--space-2) 0}.attach-sheet__file{display:none}.attach-sheet__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:0;border:none;background:none;cursor:pointer}.attach-sheet__item:hover .attach-sheet__tile{background:var(--brand-tint);box-shadow:0 6px 16px #164ca229}.attach-sheet__item:active .attach-sheet__tile{transform:scale(.94)}.attach-sheet__tile{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:20px;background:linear-gradient(160deg,#ffffff 0%,var(--surface-subtle) 100%);color:var(--brand);box-shadow:0 4px 12px #0016341a,inset 0 1px #fff;transition:background .15s,box-shadow .15s,transform .1s}.attach-sheet__label{font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-secondary)}@media(min-width:768px){.chat-thread__body{padding:var(--space-4) var(--space-6) var(--space-6)}.chat-composer{padding-left:var(--space-5);padding-right:var(--space-5)}.chat-msg__stack{max-width:min(68%,560px)}}.share-notes__search{display:flex;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface-subtle);color:var(--icon-muted)}.share-notes__search:focus-within{border-color:var(--brand-subtle);background:var(--surface)}.share-notes__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.share-notes__search input::placeholder{color:var(--text-muted)}.share-notes__search button{display:flex;border:none;background:none;padding:0;color:var(--icon-muted);cursor:pointer}.share-notes__hint{margin:0 0 var(--space-2);font-size:var(--text-caption);color:var(--text-muted)}.share-notes__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.share-notes__row{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-1);border:none;border-bottom:1px solid var(--border);background:none;font-family:var(--font);text-align:left;cursor:pointer;transition:background .15s}.share-notes__row:hover:not(:disabled){background:var(--surface-subtle)}.share-notes__row:disabled{opacity:.45;cursor:not-allowed}.share-notes__row.is-selected{background:var(--brand-tint)}.share-notes__check{flex:none;width:20px;height:20px;margin-top:2px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:#fff}.is-selected .share-notes__check{border-color:var(--brand);background:var(--brand)}.share-notes__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.share-notes__title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-notes__preview{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--lh-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.share-notes__meta{font-size:var(--text-caption);color:var(--text-muted)}.share-notes__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center;color:var(--text-muted)}.share-notes__state p{margin:0;font-size:var(--text-body)}.chat-post__body{display:flex;align-items:center;gap:var(--space-3);min-width:0}.chat-post__thumb{width:46px;height:46px;flex:none;border-radius:var(--radius-sm);background:var(--surface-subtle);overflow:hidden}.chat-post__thumb img{width:100%;height:100%;object-fit:cover;display:block}.chat-post__text{display:flex;flex-direction:column;min-width:0}.chat-post__author{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.chat-post__preview{font-size:var(--text-caption);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-8)}@media(min-width:768px){.group-info{padding:0 0 var(--space-8)}}.group-info__hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4) var(--space-6)}.group-info__avatar{position:relative;width:92px;height:92px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:#fff;font-size:var(--text-3xl);font-weight:var(--fw-bold)}.group-info__avatar img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full)}.group-info__name{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary);text-align:center}.group-info__count{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.group-info__section{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-topnav)}.group-info__section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.group-info__section-title{margin:0;font-size:var(--text-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.group-info__badge{padding:1px 8px;border-radius:var(--radius-full);background:var(--brand-tint);font-size:var(--text-caption);font-weight:var(--fw-bold);color:var(--brand)}.group-info__days{display:flex;flex-wrap:wrap;gap:var(--space-2)}.group-info__day{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--brand-tint);font-size:var(--text-caption);font-weight:var(--fw-bold);color:var(--brand)}.group-info__time{margin:0;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.group-info__time svg{color:var(--icon-muted)}.group-info__meeting-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--brand);text-decoration:none}.group-info__meeting-link svg{color:var(--brand)}.group-info__meeting-link:hover{text-decoration:underline}.group-info__about{margin:0;font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-secondary)}.group-info__instructor{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-1)}.group-info__grading{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.group-info__grade{display:grid;grid-template-columns:minmax(0,1fr) 96px 44px;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.group-info__grade-name{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info__grade-bar{height:6px;border-radius:var(--radius-full);background:var(--surface-subtle);overflow:hidden}.group-info__grade-fill{display:block;height:100%;border-radius:var(--radius-full);background:var(--brand)}.group-info__grade-weight{text-align:right;font-weight:var(--fw-semibold);color:var(--text-secondary);font-variant-numeric:tabular-nums}.group-info__see-all{display:inline-flex;align-items:center;gap:var(--space-2);padding:0;border:none;background:none;font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--brand);cursor:pointer}.group-info__see-all:hover{text-decoration:underline}.group-info__media{display:flex;gap:var(--space-2);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1);scrollbar-width:thin}.group-info__media::-webkit-scrollbar{height:4px}.group-info__media::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.group-info__media-cell{position:relative;width:84px;height:84px;flex:none;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-md);background:var(--surface-subtle);color:var(--icon-muted);overflow:hidden;cursor:pointer;transition:transform .12s}.group-info__media-cell:active{transform:scale(.96)}.group-info__media-cell img{width:100%;height:100%;object-fit:cover}.group-info__media-more{background:var(--brand-tint);color:var(--brand);font-family:var(--font);font-size:var(--text-md);font-weight:var(--fw-bold)}.group-info__media-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-full);background:#00000080;color:#fff}.group-info__tallies{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}@media(min-width:768px){.group-info__tallies{grid-template-columns:repeat(4,1fr)}}.group-info__tally{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-3);border:none;border-radius:var(--radius-md);background:var(--surface-subtle);font-family:var(--font);cursor:pointer;transition:background .15s,transform .1s}.group-info__tally:hover:not(:disabled){background:var(--brand-tint)}.group-info__tally:active:not(:disabled){transform:scale(.97)}.group-info__tally:disabled{cursor:default;opacity:.5}.group-info__tally-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin-bottom:var(--space-1);border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand)}.group-info__tally-value{font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.group-info__tally-label{font-size:var(--text-caption);color:var(--text-muted)}.group-info__search{display:flex;align-items:center;gap:var(--space-2);height:42px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface-subtle);color:var(--icon-muted)}.group-info__search:focus-within{border-color:var(--brand-subtle);background:var(--surface)}.group-info__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.group-info__search input::placeholder{color:var(--text-muted)}.group-info__members{display:flex;flex-direction:column}.group-info__member{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.group-info__member-avatar{width:42px;height:42px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);font-size:var(--text-caption);font-weight:var(--fw-bold);overflow:hidden}.group-info__member-avatar img{width:100%;height:100%;object-fit:cover}.group-info__member-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.group-info__member-name{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info__member-bio{font-size:var(--text-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info__mail{color:var(--brand);text-decoration:none}.group-info__mail:hover{text-decoration:underline}.group-info__muted{margin:0;padding:var(--space-3) 0;font-size:var(--text-sm);color:var(--text-muted)}.group-info__sk-line{margin-bottom:var(--space-2)}.group-info__state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-4);text-align:center}.group-info__state p{margin:0;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.group-info__state-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:var(--radius-full);background:var(--danger-subtle);color:var(--danger)}.group-info__retry{padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--brand);cursor:pointer}.group-info__retry:hover{background:var(--brand-tint)}.group-info__notif{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.group-info__notif-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);background:var(--surface);border:none;border-bottom:1px solid var(--border);font-family:var(--font);text-align:left;cursor:pointer;transition:background .15s}.group-info__notif-row:last-child{border-bottom:none}.group-info__notif-row:hover:not(:disabled){background:var(--surface-subtle)}.group-info__notif-row:focus-visible{box-shadow:var(--ring);outline:none}.group-info__notif-row:disabled{cursor:default}.group-info__notif-row--on{background:var(--brand-tint)}.group-info__notif-row--on .group-info__notif-icon{color:var(--brand);background:var(--surface)}.group-info__notif-row--on .group-info__notif-label{color:var(--brand);font-weight:var(--fw-semibold)}.group-info__notif-icon{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--icon-muted)}.group-info__notif-glyph{font-size:var(--text-lg);font-weight:var(--fw-bold);line-height:1}.group-info__notif-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.group-info__notif-label{font-size:var(--text-body);color:var(--text-primary)}.group-info__notif-hint{font-size:var(--text-caption);color:var(--text-muted);line-height:var(--lh-normal)}.group-info__notif-mark{flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--brand)}.group-info__notif-spinner{width:14px;height:14px;border:2px solid var(--brand-subtle);border-top-color:var(--brand);border-radius:var(--radius-full);animation:spin .6s linear infinite}.media-gallery{display:flex;flex-direction:column;gap:var(--space-4)}.media-gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}@media(min-width:768px){.media-gallery__grid{grid-template-columns:repeat(4,1fr)}}.media-gallery__cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-md);background:var(--surface-subtle);color:var(--icon-muted);overflow:hidden;cursor:pointer;transition:transform .12s}.media-gallery__cell:active{transform:scale(.97)}.media-gallery__cell img{width:100%;height:100%;object-fit:cover}.media-gallery__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-full);background:#00000080;color:#fff}.media-gallery__more{display:flex;justify-content:center}.media-gallery__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) 0;font-size:var(--text-sm);color:var(--text-muted)}.lightbox{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:#000000f0;animation:fadeIn .15s ease}.lightbox__bar{position:absolute;top:0;left:0;right:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-4) var(--space-3)}.lightbox__counter{padding:3px var(--space-3);border-radius:var(--radius-full);background:#ffffff26;color:#fff;font-size:var(--text-caption);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.lightbox__close{margin-left:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:#ffffff26;color:#fff;cursor:pointer}.lightbox__close:hover{background:#ffffff40}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:#ffffff26;color:#fff;cursor:pointer}.lightbox__nav:hover{background:#ffffff47}.lightbox__nav--prev{left:var(--space-3)}.lightbox__nav--prev svg{transform:rotate(180deg)}.lightbox__nav--next{right:var(--space-3)}@media(hover:none){.lightbox__nav{display:none}}.lightbox__stage{display:flex;align-items:center;justify-content:center;flex:1;width:100%;height:100%;padding:var(--space-4)}.lightbox__stage img,.lightbox__stage video{max-width:100%;max-height:86dvh;border-radius:var(--radius-md)}.lightbox__stage.is-zoomed{padding:0}.zoomable{width:100%;height:100%;display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden}.zoomable__img{max-width:100%;max-height:86dvh;border-radius:var(--radius-md);will-change:transform;-webkit-user-drag:none}.zoomable.is-zoomed{cursor:grab}.zoomable.is-zoomed:active{cursor:grabbing}.zoomable.is-zoomed .zoomable__img{border-radius:0}.engagement-list{display:flex;flex-direction:column;gap:var(--space-4)}.engagement-list__rows{display:flex;flex-direction:column;gap:var(--space-1)}.engagement-list__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.engagement-list__row:hover{border-color:var(--brand-subtle);background:var(--brand-tint)}.engagement-list__row:hover .engagement-list__go{transform:translate(2px);color:var(--brand)}.engagement-list__icon{width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand)}.engagement-list__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.engagement-list__question{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.engagement-list__meta{font-size:var(--text-caption);color:var(--text-muted)}.engagement-list__go{flex:none;color:var(--icon-muted);transition:transform .15s,color .15s}.engagement-list__more{display:flex;justify-content:center}.engagement-list__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) 0;font-size:var(--text-sm);color:var(--text-muted)}.docs-list{display:flex;flex-direction:column;gap:var(--space-4)}.docs-list__rows{display:flex;flex-direction:column;gap:var(--space-1)}.docs-list__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s}.docs-list__row:hover{border-color:var(--brand-subtle);background:var(--brand-tint)}.docs-list__row:hover .docs-list__go{color:var(--brand)}.docs-list__ext{width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand);font-size:10px;font-weight:var(--fw-bold);letter-spacing:.02em}.docs-list__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.docs-list__name{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docs-list__meta{font-size:var(--text-caption);color:var(--text-muted)}.docs-list__go{flex:none;color:var(--icon-muted);transition:color .15s}.docs-list__more{display:flex;justify-content:center}.docs-list__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) 0;font-size:var(--text-sm);color:var(--text-muted)}.syllabus{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.syllabus__row{display:flex;align-items:center;gap:var(--space-2)}.syllabus__row--skeleton{padding:var(--space-2) 0}.syllabus__open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:none;background:none;border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background .15s}.syllabus__open:hover{background:var(--surface-subtle)}.syllabus__icon{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand)}.syllabus__body{display:flex;flex-direction:column;gap:2px;min-width:0}.syllabus__name{font-size:var(--text-md);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.syllabus__meta{font-size:var(--text-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.syllabus__remove{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);color:var(--icon-muted);cursor:pointer}.syllabus__remove:hover{background:var(--surface-subtle);color:var(--danger)}.syllabus__sk-line{height:11px;width:160px;border-radius:var(--radius-sm)}.syllabus__sk-line--short{width:96px}.syllabus__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:100%;padding:var(--space-6) var(--space-4);border:1px dashed var(--border);border-radius:var(--radius-md);background:none;font-family:var(--font);font-size:var(--text-caption);color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s}.syllabus__empty:hover{border-color:var(--brand);background:var(--surface-subtle)}.syllabus__empty:disabled{opacity:.6;cursor:default}.syllabus__empty-title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.sheet-sk__rows{display:flex;flex-direction:column;gap:var(--space-1)}.sheet-sk__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.sheet-sk__tile{width:38px;height:38px;flex:none;border-radius:var(--radius-md)}.sheet-sk__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.sheet-sk__line{display:block;height:11px;border-radius:var(--radius-sm)}.sheet-sk__line--short{width:55%}.sheet-sk__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}@media(min-width:768px){.sheet-sk__grid{grid-template-columns:repeat(4,1fr)}}.sheet-sk__cell{display:block;aspect-ratio:1;border-radius:var(--radius-md)}.group-info__hero{position:relative}.group-info__avatar-edit{position:absolute;right:4px;bottom:4px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;border:2px solid var(--surface);border-radius:var(--radius-full);background:var(--brand);color:#fff;cursor:pointer}.group-info__avatar-edit:disabled{opacity:.6;cursor:default}.group-info__photo-error{margin:var(--space-2) 0 0;font-size:var(--text-caption);color:var(--danger, #e74c3c)}.group-info__section-action{border:none;background:none;padding:0;font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--brand);cursor:pointer}.group-info__section-action:hover{text-decoration:underline}.group-info__about-edit{display:flex;flex-direction:column;gap:var(--space-2)}.group-info__about-input{width:100%;resize:vertical;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);font:inherit;font-size:var(--text-sm);line-height:var(--lh-normal)}.group-info__about-input:focus{outline:none;border-color:var(--brand)}.group-info__about-actions{display:flex;align-items:center;gap:var(--space-2)}.group-info__about-count{margin-right:auto;font-size:var(--text-caption);color:var(--text-muted)}.group-info__about-cancel,.group-info__about-save{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer}.group-info__about-cancel:disabled,.group-info__about-save:disabled{opacity:.6;cursor:default}.group-info__about-cancel{border:1px solid var(--border);background:transparent;color:var(--text-secondary)}.group-info__about-save{border:none;background:var(--brand);color:#fff}.join-group__search{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);color:var(--icon-muted)}.join-group__search:focus-within{border-color:var(--brand)}.join-group__search>svg{flex:none}.join-group__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.join-group__search input::placeholder{color:var(--text-muted)}.join-group__search button{display:flex;align-items:center;justify-content:center;flex:none;padding:0;border:none;background:none;color:var(--icon-muted);cursor:pointer}.join-group__search button:hover{color:var(--text-secondary)}.join-group__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-4);color:var(--text-disabled);text-align:center}.join-group__state p{margin:0;font-size:var(--text-body);color:var(--text-muted)}.class-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.class-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.class-row__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.class-row__title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow-wrap:anywhere}.class-row__code{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--brand)}.class-row__meta{font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted)}.class-row__action{flex:none;min-width:72px;justify-content:center;border-radius:var(--radius-full)}.join-group__filterbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0 var(--space-3)}.join-group__filter-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s}.join-group__filter-toggle:hover{border-color:var(--brand-subtle)}.join-group__filter-toggle.is-open{border-color:var(--brand);color:var(--brand)}.join-group__filter-toggle.is-open .join-group__filter-caret{transform:rotate(90deg)}.join-group__filter-caret{transition:transform .15s}.join-group__filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-caption);font-weight:var(--fw-bold)}.join-group__filter-clear{font-size:var(--text-sm)}.join-group__filters{display:grid;grid-template-columns:1fr;gap:var(--space-4) var(--space-3);padding:var(--space-2) 0 var(--space-4);margin-bottom:var(--space-2);border-bottom:1px solid var(--border)}@media(min-width:768px){.join-group__filters{grid-template-columns:1fr 1fr}}.join-group__hint{margin:calc(-1 * var(--space-1)) 0 var(--space-2);padding:0 var(--space-1);font-size:var(--text-caption);color:var(--text-muted)}.request-class{display:flex;flex-direction:column;gap:var(--space-4)}.request-class__intro{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.request-class__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.request-class__done{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4) 0;text-align:center}.request-class__done-title{margin:0;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.request-class__done-body{margin:0;font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-secondary)}.ai-chat{flex:1;min-height:0}@media(max-width:767px){.ai-chat{max-height:calc(var(--visible-h) - var(--topbar-h))}}.ai-chat{display:flex;flex-direction:column;padding:var(--space-4)}@media(max-width:767px){.ai-chat{padding-bottom:0}}@media(min-width:768px){.ai-chat{padding:0}}.ai-chat--embedded{height:calc(var(--visible-h) - 108px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.ai-chat--embedded .ai-chat__messages{overflow-y:auto;overscroll-behavior-y:contain;padding:var(--space-3) var(--space-4)}.ai-chat--embedded .ai-chat__composer{padding:var(--space-3) var(--space-4) var(--space-4)}.ai-chat__messages{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2) 0}@media(max-width:767px){.ai-chat__messages{overflow-y:auto}}.ai-chat__loading{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-8) 0}.ai-chat__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-muted);font-size:var(--text-body)}.ai-chat__empty-icon{width:56px;height:56px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center}.ai-chat__composer{flex:none;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface);border-top:1px solid var(--border)}@media(max-width:767px){.ai-chat__composer{margin:0 calc(-1 * var(--space-4));padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom))}}@media(min-width:768px){.ai-chat__composer{position:sticky;bottom:0;z-index:2;padding-left:0;padding-right:0}}.ai-chat__input-wrap{flex:1;min-width:0;display:flex;align-items:center;height:48px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface)}.ai-chat__input-wrap:focus-within{border-color:var(--brand)}.ai-chat__input-wrap input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font);font-size:var(--text-body);color:var(--text-primary)}.ai-chat__input-wrap input::placeholder{color:var(--text-muted)}.ai-chat__input-wrap input:disabled{opacity:.6}.ai-chat__send{flex:none;width:44px;height:44px;border:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,opacity .15s}.ai-chat__send:hover:not(:disabled){background:var(--brand-hover)}.ai-chat__send:disabled{opacity:.4;cursor:not-allowed}.ai-chat-skeleton{display:flex;flex-direction:column;gap:var(--space-4)}.ai-chat-skeleton__row{display:flex;align-items:flex-start;gap:var(--space-2)}.ai-chat-skeleton__row--mine{flex-direction:row-reverse}.ai-chat-skeleton__avatar{flex:none}.ai-message{display:flex;align-items:flex-start;gap:var(--space-2)}.ai-message--user{flex-direction:row-reverse}.ai-message--user .ai-message__content{align-items:flex-end}.ai-message--user .ai-message__bubble{background:var(--brand);color:#fff;border-bottom-right-radius:var(--radius-sm)}.ai-message--assistant .ai-message__bubble{background:var(--surface-subtle);color:var(--text-primary);border-bottom-left-radius:var(--radius-sm)}.ai-message__avatar{flex:none;width:32px;height:32px;border-radius:var(--radius-full);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center}.ai-message__content{display:flex;flex-direction:column;gap:var(--space-2);max-width:82%;min-width:0}.ai-message__bubble{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-body);line-height:var(--lh-normal);overflow-wrap:anywhere}.ai-message__bubble p{margin:0}.ai-message__error{margin:var(--space-1) 0 0;font-size:var(--text-caption);color:var(--danger)}.ai-message__typing{display:inline-flex;gap:4px}.ai-message__typing span{width:6px;height:6px;border-radius:var(--radius-full);background:var(--text-muted);animation:pulse 1s infinite}.ai-message__typing span:nth-child(2){animation-delay:.15s}.ai-message__typing span:nth-child(3){animation-delay:.3s}.ai-cards{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.ai-choice{display:block;width:100%;padding:0;border:none;background:none;text-align:left;border-radius:var(--radius-lg);cursor:pointer;transition:transform .12s,box-shadow .15s}.ai-choice>*{pointer-events:none}.ai-choice:hover .ai-card{border-color:var(--brand);background:var(--brand-tint)}.ai-choice:active{transform:scale(.99)}.ai-choice:focus-visible{outline:none;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--brand)}.ai-card{display:flex;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--ai-card-accent, var(--brand));border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-topnav);transition:border-color .15s,box-shadow .15s}.ai-card:hover{box-shadow:var(--shadow-sm)}.ai-card.is-clickable{cursor:pointer}.ai-card.is-clickable:hover{border-color:var(--ai-card-accent, var(--brand))}.ai-card.is-clickable:active{background:var(--surface-subtle)}.ai-card.is-clickable:focus-visible{outline:none;box-shadow:var(--ring)}.ai-card--event{--ai-card-tint: #e4ebf6;--ai-card-accent: #164ca2}.ai-card--class{--ai-card-tint: #e4f6ec;--ai-card-accent: #1daa61}.ai-card--note{--ai-card-tint: #fff4e6;--ai-card-accent: #b7791f}.ai-card--college{--ai-card-tint: #f3e8f7;--ai-card-accent: #702459}.ai-card--poll{--ai-card-tint: #e6f0fb;--ai-card-accent: #1d6fa5}.ai-card--ask{--ai-card-tint: #fdeaea;--ai-card-accent: #b3403f}.ai-card--notice{--ai-card-tint: #eae7fb;--ai-card-accent: #5b4bb7}.ai-card--notice .ai-card__title-row{flex-direction:column;align-items:flex-start;gap:var(--space-1);flex-wrap:nowrap}.ai-card--notice .ai-card__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}@media(min-width:768px){.ai-card--notice .ai-card__title{-webkit-line-clamp:1}}.ai-card--notification{--ai-card-tint: #e4f6ec;--ai-card-accent: #157f4a}.ai-card__icon{flex:none;width:38px;height:38px;border-radius:var(--radius-md);background:var(--ai-card-tint, var(--brand-tint));color:var(--ai-card-accent, var(--brand));display:flex;align-items:center;justify-content:center}.ai-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.ai-card__title-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.ai-card__title{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight)}.ai-card__badge{font-size:11px;font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--surface-subtle);padding:2px 8px;border-radius:var(--radius-full);text-transform:capitalize;white-space:nowrap}.ai-card__meta{font-size:var(--text-caption);color:var(--text-muted);overflow-wrap:anywhere}.ai-card__desc{margin:3px 0 0;font-size:var(--text-caption);color:var(--text-secondary);line-height:var(--lh-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ai-card__action{margin-top:var(--space-2)}.ai-card__go{display:flex;align-items:center;flex:none;align-self:center;color:var(--icon-muted)}.ai-sessions{display:flex;flex-direction:column}.ai-sessions__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) 0;text-align:center}.ai-sessions__empty p{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.ai-sessions__empty-icon{width:48px;height:48px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center}.ai-session-row--skeleton{cursor:default}.ai-session-row--skeleton:hover{background:none}.ai-session-row{display:flex;align-items:center;gap:var(--space-3);margin-inline:calc(-1 * var(--space-5));padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.ai-session-row:last-child{border-bottom:none}.ai-session-row:hover{background:var(--surface-subtle)}.ai-session-row.is-current{background:var(--brand-tint)}.ai-session-row.is-current .ai-session-row__title{color:var(--brand)}.ai-session-row__icon{flex:none;width:36px;height:36px;border-radius:var(--radius-full);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center}.ai-session-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ai-session-row__title{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-session-row__meta{font-size:var(--text-caption);color:var(--text-muted)}.ai-session-row__delete{flex:none}.ai-session-row__delete:hover{background:var(--danger-subtle);color:var(--danger)}.flashcards{--ai-card-tint: #fff4e6;--ai-card-accent: #b7791f;width:100%;padding:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--ai-card-accent);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-topnav)}.flashcards__head{display:flex;align-items:center;gap:var(--space-3)}.flashcards__icon{flex:none;width:38px;height:38px;border-radius:var(--radius-md);background:var(--ai-card-tint);color:var(--ai-card-accent);display:flex;align-items:center;justify-content:center}.flashcards__head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.flashcards__title{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flashcards__badge{align-self:flex-start;font-size:11px;font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--surface-subtle);padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}.flashcards__count{flex:none;font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-muted);font-variant-numeric:tabular-nums}.flashcards__card{display:flex;flex-direction:column;justify-content:center;gap:var(--space-2);width:100%;min-height:132px;margin-top:var(--space-3);padding:var(--space-4) var(--space-3);border:1px dashed var(--border-strong, var(--border));border-radius:var(--radius-md);background:var(--surface-subtle);text-align:center;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.flashcards__card:hover{border-color:var(--ai-card-accent)}.flashcards__card:active{transform:scale(.995)}.flashcards__card:focus-visible{outline:none;box-shadow:var(--ring)}.flashcards__card.is-revealed{border-style:solid;border-color:var(--ai-card-accent);background:var(--ai-card-tint)}.flashcards__face-label{font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--ai-card-accent)}.flashcards__face-text{font-size:var(--text-body);color:var(--text-primary);line-height:var(--lh-normal);overflow-wrap:anywhere;white-space:pre-wrap}.flashcards__hint{font-size:var(--text-caption);color:var(--text-muted)}.flashcards__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-2)}.flashcards__dots{flex:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;min-width:0}.flashcards__dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--border);transition:background .15s,transform .15s}.flashcards__dot.is-seen{background:color-mix(in srgb,var(--ai-card-accent) 70%,transparent)}.flashcards__dot.is-current{background:var(--ai-card-accent);transform:scale(1.5)}.flashcards__note{margin:var(--space-2) 0 0;font-size:var(--text-caption);color:var(--text-muted);text-align:center}.calendar-page{display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:768px){.calendar-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:start}}.calendar-page__head{display:none;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}@media(min-width:768px){.calendar-page__head{display:flex}}.calendar-page__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.cal-nav{display:flex;align-items:center;gap:var(--space-1)}.cal-nav__btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);color:var(--brand);cursor:pointer}.cal-nav__btn:hover{background:var(--surface-subtle)}.cal-nav__btn--prev svg{transform:rotate(180deg)}.month-grid{background:var(--surface);padding:var(--space-4)}@media(min-width:768px){.month-grid{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}}.month-grid__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.month-grid__title{font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.month-grid__weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:var(--space-2)}.month-grid__weekdays span{text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.month-grid__days{display:grid;grid-template-columns:repeat(7,1fr)}.month-picker{display:flex;align-items:center;gap:var(--space-3)}.month-picker__field{position:relative;display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer}.month-picker__field:focus-within{box-shadow:var(--ring);outline:none}.month-picker__value{font-size:inherit;font-weight:inherit;color:inherit;white-space:nowrap}.month-picker__caret{flex:none;color:currentColor;transform:rotate(90deg)}.month-picker__select{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:none;background:none;font-family:var(--font);cursor:pointer;appearance:none;-webkit-appearance:none}.day-cell{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:none;background:none;padding:0;cursor:pointer}.day-cell__num{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--text-body);color:var(--text-primary);transition:background .15s}.day-cell:hover:not(.is-selected) .day-cell__num{background:var(--surface-subtle)}.day-cell.is-today .day-cell__num{background:var(--surface-hover)}.day-cell.is-selected .day-cell__num{background:var(--brand);color:#fff;font-weight:var(--fw-semibold)}.day-cell.is-overflow .day-cell__num{color:var(--text-disabled)}.day-cell__dots{display:flex;gap:3px;height:6px}.day-cell__dot{width:6px;height:6px;border-radius:var(--radius-full)}.day-list{background:var(--surface)}@media(min-width:768px){.day-list{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}}.day-list__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);background:var(--bg);border-bottom:1px solid var(--border)}@media(min-width:768px){.day-list__head{background:var(--surface)}}.day-list__date{font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.day-list__events{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4)}.day-list__empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8) var(--space-4)}.day-list__empty img{width:160px;margin-bottom:var(--space-4)}.day-list__empty-title{margin:0 0 var(--space-1);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.day-list__empty-sub{margin:0;max-width:280px;font-size:var(--text-body);color:var(--text-muted);line-height:var(--lh-normal)}.event-card{display:flex;align-items:stretch;gap:var(--space-3);width:100%;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}.event-card:hover{border-color:var(--brand-subtle);background:var(--surface-subtle)}.event-card.is-selected{border-color:var(--brand);background:var(--brand-tint);box-shadow:0 0 0 1px var(--brand)}.event-card__time{width:84px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);background:var(--event-color, var(--brand));color:#fff;white-space:nowrap}.event-card__start{font-size:var(--text-sm);font-weight:var(--fw-bold);line-height:1.3}.event-card__end{font-size:var(--text-caption);opacity:.85;line-height:1.3}.event-card__body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:var(--space-1) var(--space-2)}.event-card__title{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-card__subtitle{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-detail{display:flex;flex-direction:column;gap:var(--space-5)}.event-detail__head{display:flex;align-items:center;gap:var(--space-3)}.event-detail__dot{width:12px;height:12px;flex:none;border-radius:var(--radius-full);background:var(--event-color, var(--brand))}.event-detail__title{flex:1;min-width:0;margin:0;font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-detail__rows{display:flex;flex-direction:column;gap:var(--space-3)}.event-detail__row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-body);color:var(--text-secondary)}.event-detail__row--link{color:var(--brand);font-weight:var(--fw-semibold);text-decoration:none}.event-detail__row--link .event-detail__icon{color:var(--brand)}.event-detail__row--link:hover{text-decoration:underline}.event-detail__icon{flex:none;color:var(--icon-muted)}.event-detail__section{padding-top:var(--space-4);border-top:1px solid var(--border)}.event-detail__label{margin:0 0 var(--space-1);font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-muted)}.event-detail__desc{margin:0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);white-space:pre-line;overflow-wrap:anywhere}.event-detail__notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-subtle);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-muted)}.event-detail__notice svg{flex:none;margin-top:2px}.event-form__label{font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-muted)}.event-form__reminder{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-md);color:var(--text-primary)}.event-form__colors{display:flex;flex-direction:column;gap:var(--space-2)}.event-form__swatches{display:flex;flex-wrap:wrap;gap:var(--space-3)}.event-form__swatch{width:32px;height:32px;flex:none;border-radius:var(--radius-full);border:2px solid transparent;background:var(--swatch);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:border-color .15s,transform .1s}.event-form__swatch.is-selected{border-color:var(--surface);box-shadow:0 0 0 2px var(--swatch)}.event-form__swatch:active{transform:scale(.94)}.event-form__swatch.is-static{cursor:default}.event-form__swatch.is-static:active{transform:none}.event-form__class-color{display:flex;align-items:center;gap:var(--space-3)}.event-form__hint{font-size:var(--text-caption);color:var(--text-muted);min-width:0;overflow-wrap:anywhere}.calendar-page__ai-note{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-3) 0 0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-subtle);font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted)}.calendar-page__ai-note svg{flex:none;margin-top:1px;color:var(--brand)}.profile{display:flex;flex-direction:column}@media(min-width:768px){.profile{gap:var(--space-4)}}.profile-section{background:var(--surface);padding:var(--space-5) var(--space-4);border-bottom:8px solid var(--bg)}@media(min-width:768px){.profile-section{border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6)}}.profile-section__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.profile-section__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.profile-section__title--sm{font-size:var(--text-lg)}.profile-icon-btn{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border:none;background:var(--surface-subtle);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer}.profile-icon-btn:hover{background:var(--surface-hover)}.profile-identity{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.profile-identity--btn{width:100%;border:none;background:none;padding:0;text-align:left;cursor:pointer;border-radius:var(--radius-md)}.profile-identity--btn:hover .profile-identity__name{text-decoration:underline}.profile-identity__avatar{width:72px;height:72px;flex:none;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:var(--text-xl);font-weight:var(--fw-bold)}.profile-identity__avatar img{width:100%;height:100%;object-fit:cover}.profile-identity__info{flex:1;min-width:0}.profile-identity__name{margin:0;font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.profile-identity__email,.profile-identity__org{display:flex;align-items:center;gap:var(--space-1);margin:var(--space-1) 0 0;font-size:var(--text-body);color:var(--text-muted)}.profile-identity__email svg,.profile-identity__org svg{color:var(--brand);flex:none}.profile-bio{margin:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary)}.profile-bio.is-placeholder{color:var(--text-muted)}.profile-empty{margin:0;font-size:var(--text-body);color:var(--text-muted)}.school-cards{display:flex;flex-direction:column;gap:var(--space-3)}.school-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.school-card:hover{border-color:var(--brand-subtle);background:var(--surface-subtle)}.school-card__logo{width:44px;height:44px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center;overflow:hidden}.school-card__logo img{width:100%;height:100%;object-fit:cover}.school-card__body{display:flex;flex-direction:column;min-width:0}.school-card__name{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary)}.school-card__meta{font-size:var(--text-body);color:var(--text-muted)}.profile-menu{background:var(--surface)}@media(min-width:768px){.profile-menu{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}}.profile-menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);border:none;background:none;cursor:pointer;text-align:left;transition:background .15s}.profile-menu__item:not(:last-child){border-bottom:1px solid var(--border)}.profile-menu__item:hover{background:var(--surface-subtle)}.profile-menu__icon{color:var(--text-primary);flex:none}.profile-menu__label{flex:1;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.profile-menu__chevron{color:var(--icon-muted);flex:none}.profile-academic{display:flex;align-items:center;gap:var(--space-1);margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.profile-academic svg{flex:none;color:var(--brand)}.profile-academic span{min-width:0}.edit-form{display:flex;flex-direction:column;gap:var(--space-3)}@media(min-width:768px){.edit-form{gap:var(--space-6)}}.edit-form__college{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-left:none;border-right:none}@media(min-width:768px){.edit-form__college{border:1px solid var(--border);border-radius:var(--radius-lg)}}.edit-form__college-logo{width:48px;height:48px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--fw-semibold);overflow:hidden}.edit-form__college-logo img{width:100%;height:100%;object-fit:cover}.edit-form__college-info{display:flex;flex-direction:column;min-width:0}.edit-form__college-name{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary)}.edit-form__college-meta{font-size:var(--text-sm);color:var(--text-muted)}.edit-form__photo{display:flex;flex-direction:column;align-items:stretch;padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-left:none;border-right:none}@media(min-width:768px){.edit-form__photo{border:1px solid var(--border);border-radius:var(--radius-lg)}}.edit-form__photo .avatar-field{align-self:center}.edit-form__file{display:none}.edit-form__section{padding:var(--space-5) var(--space-4) var(--space-4);background:var(--surface);border:1px solid var(--border);border-left:none;border-right:none}@media(min-width:768px){.edit-form__section{border:1px solid var(--border);border-radius:var(--radius-lg)}}.edit-form__heading{margin:0 0 var(--space-5);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.edit-form__section-actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-5)}.edit-form__actions{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-1) var(--space-4) var(--space-4)}@media(min-width:768px){.edit-form__actions{padding:0}}.edit-form__saved{display:flex;align-items:center;justify-content:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--success)}@media(max-width:767px){.edit-form .form__error{margin-left:var(--space-4);margin-right:var(--space-4)}}.info-list{display:flex;flex-direction:column;gap:var(--space-2)}.info-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-subtle);border-radius:var(--radius-md)}.info-row__icon{display:flex;align-items:center;justify-content:center;flex:none;color:var(--icon-muted)}.info-row__text{display:flex;flex-direction:column;gap:2px;min-width:0}.info-row__label{font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-muted)}.info-row__value{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow-wrap:anywhere}.settings-page{min-height:100%;background:var(--bg)}.settings-list{display:flex;flex-direction:column;background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.settings-list{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}}.settings-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4);background:none;border:none;border-bottom:1px solid var(--border);font-family:var(--font);text-align:left;cursor:pointer;transition:background .15s}.settings-row:last-child{border-bottom:none}.settings-row:hover{background:var(--surface-subtle)}.settings-row:active{background:var(--surface-hover)}.settings-row__icon{display:flex;align-items:center;justify-content:center;flex:none;color:var(--text-primary)}.settings-row__label{flex:1;min-width:0;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.settings-row__hint{flex:none;font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--brand)}.settings-row__chevron{display:flex;align-items:center;flex:none;color:var(--icon-muted)}.settings-row--danger .settings-row__icon,.settings-row--danger .settings-row__label{color:var(--danger)}.settings-about{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-5) var(--space-4) var(--space-6);text-align:center}.settings-about__name{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-secondary)}.settings-about__beta{padding:1px 8px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);font-size:var(--text-caption);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase}.settings-about__version{margin:0;font-size:var(--text-caption);color:var(--text-muted);font-family:var(--font-mono, ui-monospace, monospace)}.settings-about__note{margin:var(--space-2) auto 0;max-width:44ch;font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted)}.question-page{display:flex;flex-direction:column;gap:var(--space-3);min-height:100%;background:var(--bg)}.question-page__loading{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-4)}@media(min-width:768px){.question-page__loading{padding:0}}.question-page__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-disabled)}.question-page__empty p{margin:0;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-secondary)}.question-page__empty span{font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-muted)}.question-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.question-list{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}}.question-row-wrap{position:relative;border-bottom:1px solid var(--border)}.question-row-wrap .question-row{border-bottom:none}.question-list>.question-row-wrap:last-child{border-bottom:none}.question-row-wrap--deletable .question-row__q{padding-right:var(--space-8)}.question-row__delete{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:none;color:var(--icon-muted);cursor:pointer;transition:background .15s,color .15s}.question-row__delete:hover{background:var(--danger-subtle);color:var(--danger)}.question-row{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);width:100%;padding:var(--space-4);background:none;border:none;border-bottom:1px solid var(--border);font-family:var(--font);text-align:left;cursor:pointer;transition:background .15s}.question-row:hover{background:var(--surface-subtle)}.question-row--skeleton{cursor:default}.question-row--skeleton:hover{background:none}.question-list>li:last-child .question-row{border-bottom:none}.question-row__q{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;font-size:var(--text-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.question-row__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%}.question-row__subject{flex:1}.question-row__subject{min-width:0;font-size:var(--text-body);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.question-row__time{flex:none;font-size:var(--text-body);color:var(--text-muted);white-space:nowrap}.question-row__count{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--brand)}.question-row__status{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:var(--text-md);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap}.question-row__status.is-active{color:var(--danger)}.question-row__dot{width:8px;height:8px;flex:none;border-radius:var(--radius-full);background:currentColor}.question-page__filterbar{display:none}@media(min-width:768px){.question-page__filterbar{display:flex;align-items:center;gap:var(--space-2)}}.question-page__filterbar .question-page__filter-btn{display:none}@media(min-width:768px){.question-page__filterbar .question-page__filter-btn{display:inline-flex}}.class-filter{display:flex;flex-direction:column}.class-filter__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-2);border:none;border-radius:var(--radius-md);background:none;font-family:var(--font);text-align:left;cursor:pointer;color:var(--text-primary)}.class-filter__row+.class-filter__row{border-top:1px solid var(--border);border-radius:0}.class-filter__row:hover{background:var(--surface-subtle)}.class-filter__row.is-active{color:var(--brand);font-weight:var(--fw-semibold)}.class-filter__name{flex:1;min-width:0;font-size:var(--text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-filter__state{display:flex;justify-content:center;padding:var(--space-6) 0;font-size:var(--text-sm);color:var(--text-muted)}.detail-page{display:flex;flex-direction:column;min-height:100%;background:var(--bg)}@media(min-width:768px){.detail-page{gap:var(--space-4)}}.detail-card{padding:var(--space-4);background:var(--surface-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}@media(min-width:768px){.detail-card{border:1px solid var(--border);border-radius:var(--radius-lg)}}.detail-card__q{margin:0 0 var(--space-3);font-size:var(--text-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary);overflow-wrap:anywhere}.detail-card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.detail-card__context{min-width:0;font-size:var(--text-body);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-card__count{flex:none;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--brand);white-space:nowrap}.poll-results{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.poll-results__note{margin:0;font-size:var(--text-sm);color:var(--text-muted);text-align:center}.poll-bar{display:flex;align-items:center;gap:var(--space-3)}.poll-bar__track{position:relative;display:flex;align-items:center;flex:1;min-width:0;height:44px;overflow:hidden;background:var(--bg);border-radius:var(--radius-full)}.poll-bar__fill{position:absolute;top:0;left:0;bottom:0;background:var(--brand-subtle);border-radius:var(--radius-full);transition:width .3s ease}.poll-bar__label{position:relative;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);font-size:var(--text-body);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-bar__label svg{flex:none;color:var(--brand)}.poll-bar__pct{flex:none;width:44px;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-primary);text-align:right}.poll-vote{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.poll-vote__hint{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.poll-choice{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-3) var(--space-4);background:var(--bg);border:1px solid transparent;border-radius:var(--radius-full);font-family:var(--font);text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.poll-choice:hover{background:var(--surface-hover)}.poll-choice.is-selected{background:var(--brand-tint);border-color:var(--brand)}.poll-choice__mark{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;color:var(--on-brand);border:1.5px solid var(--border-strong);border-radius:var(--radius-full);transition:background .15s,border-color .15s}.poll-choice__mark.is-box{border-radius:var(--radius-sm)}.is-selected .poll-choice__mark{background:var(--brand);border-color:var(--brand)}.poll-choice__text{min-width:0;font-size:var(--text-body);font-weight:var(--fw-medium);color:var(--text-primary);overflow-wrap:anywhere}.detail-section{display:flex;flex-direction:column}.detail-section__title{margin:0;padding:var(--space-4) var(--space-4) var(--space-3);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}@media(min-width:768px){.detail-section__title{padding:0 0 var(--space-3)}}.detail-section__empty{margin:0;padding:var(--space-8) var(--space-4);font-size:var(--text-body);color:var(--text-muted);text-align:center}.vote-panel{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}@media(min-width:768px){.vote-panel{border:1px solid var(--border);border-radius:var(--radius-lg)}}.vote-panel{overflow:hidden}.vote-tabs{display:flex;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none}.vote-tabs::-webkit-scrollbar{display:none}.vote-tab{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:92px;padding:var(--space-3);background:var(--surface);border:none;border-right:1px solid var(--border);font-family:var(--font);cursor:pointer;transition:background .15s}.vote-tab:last-child{border-right:none}.vote-tab.is-active{background:var(--brand-tint)}.vote-tab__count{font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.is-active .vote-tab__count{color:var(--brand)}.vote-tab__label{max-width:100%;font-size:var(--text-caption);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-active .vote-tab__label{color:var(--brand)}.voter-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.voter-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.voter-row:last-child{border-bottom:none}.voter-row__text{display:flex;flex-direction:column;min-width:0;flex:1}.voter-row__name{font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voter-row__choice{font-size:var(--text-body);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.answer-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}@media(min-width:768px){.answer-list{border:1px solid var(--border);border-radius:var(--radius-lg)}}.answer-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border)}.answer-row:last-child{border-bottom:none}.answer-row__body{flex:1;min-width:0}.answer-row__head{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1)}.answer-row__name{font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.answer-row__time{font-size:var(--text-caption);color:var(--text-muted);white-space:nowrap}.answer-row__text{margin:0;font-size:var(--text-md);line-height:var(--lh-normal);color:var(--text-secondary);overflow-wrap:anywhere}.answer-row__menu{flex:none}.answer-composer{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}@media(min-width:768px){.answer-composer{border:1px solid var(--border);border-radius:var(--radius-lg)}}.answer-composer__label{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.answer-composer__input{width:100%;padding:var(--space-3);font-family:var(--font);font-size:var(--text-body);color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);resize:vertical}.answer-composer__input::placeholder{color:var(--text-disabled)}.answer-composer__input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.answer-composer__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.answer-composer__count{font-size:var(--text-caption);color:var(--text-disabled)}.person-avatar{display:flex;align-items:center;justify-content:center;flex:none;overflow:hidden;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--on-brand);background:var(--brand);border-radius:var(--radius-full)}.person-avatar img{width:100%;height:100%;object-fit:cover}.detail-origin{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);background:transparent;color:var(--brand);font-size:var(--text-sm);font-weight:var(--fw-medium);cursor:pointer}.detail-origin:hover{background:var(--brand-tint)}.saved-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-disabled)}.saved-empty p{margin:0;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-secondary)}.saved-empty span{font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-muted)}.content-page{min-height:100%;padding:var(--space-5) var(--space-4);background:var(--surface)}@media(min-width:768px){.content-page{padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg)}}.content-page__loading{display:flex;flex-direction:column;gap:var(--space-3)}.content-page__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-disabled)}.content-page__empty p{margin:0;font-size:var(--text-body);color:var(--text-muted)}.content-page__body{font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-secondary);overflow-wrap:anywhere}.content-page__body h1,.content-page__body h2,.content-page__body h3{margin:0 0 var(--space-3);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary)}.content-page__body h1{font-size:var(--text-2xl)}.content-page__body h2{font-size:var(--text-xl)}.content-page__body h3{font-size:var(--text-lg)}.content-page__body p{margin:0 0 var(--space-4)}.content-page__body p:last-child{margin-bottom:0}.content-page__body ul,.content-page__body ol{margin:0 0 var(--space-4);padding-left:var(--space-6)}.content-page__body li{margin-bottom:var(--space-2)}.content-page__body a{color:var(--brand);font-weight:var(--fw-medium)}.content-page__body strong{font-weight:var(--fw-bold);color:var(--text-primary)}.pref-page{display:flex;flex-direction:column;min-height:100%;background:var(--bg)}@media(min-width:768px){.pref-page{gap:var(--space-4)}}.pref-page__heading{margin:0;padding:var(--space-4) var(--space-4) var(--space-3);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary)}@media(min-width:768px){.pref-page__heading{padding:0 0 var(--space-1)}}.pref-group{display:flex;flex-direction:column;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}@media(min-width:768px){.pref-group{border:1px solid var(--border);border-radius:var(--radius-lg)}}.pref-group+.pref-group{margin-top:var(--space-3)}.pref-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border-bottom:1px solid var(--border)}.pref-row:last-child{border-bottom:none}.pref-row__body{flex:1;min-width:0}.pref-row__label{margin:0;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-primary)}.pref-row__desc{margin:2px 0 0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-muted)}.toggle-switch{position:relative;flex:none;width:44px;height:24px;padding:0;background:transparent;border:1px solid var(--brand-subtle);border-radius:var(--radius-full);cursor:pointer;transition:background .15s,border-color .15s}.toggle-switch:disabled{opacity:.6;cursor:default}.toggle-switch__knob{position:absolute;top:2px;left:3px;width:16px;height:16px;border-radius:var(--radius-full);background:var(--brand-subtle);transition:left .15s,right .15s,background .15s}.toggle-switch.is-on{background:var(--brand);border-color:var(--brand)}.toggle-switch.is-on .toggle-switch__knob{left:auto;right:3px;background:var(--on-brand)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:48px;padding:0 var(--space-6);border:none;border-radius:var(--radius-lg);font-family:var(--font);font-size:var(--text-lg);font-weight:var(--fw-semibold);background:var(--brand);color:var(--on-brand);cursor:pointer;transition:background .15s}.btn:hover:not(:disabled){background:var(--brand-hover)}.btn:active:not(:disabled){background:var(--brand-active)}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--sm{height:32px;padding:0 var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-md)}.btn--md{height:40px;padding:0 var(--space-5);font-size:var(--text-body)}.btn--lg{height:48px;padding:0 var(--space-6);font-size:var(--text-lg)}.btn--block{width:100%}.btn--secondary{background:var(--surface-subtle);color:var(--brand);border:1px solid var(--border)}.btn--secondary:hover:not(:disabled){background:var(--surface-hover)}.btn--ghost{background:transparent;color:var(--brand)}.btn--ghost:hover:not(:disabled){background:var(--brand-tint)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn--danger:focus-visible{box-shadow:var(--ring-danger);outline:none}.btn.is-loading{cursor:progress}.btn__spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);opacity:.85;animation:spin .7s linear infinite}.btn__icon{display:inline-flex;align-items:center;justify-content:center}.btn__icon svg{width:18px;height:18px}.field{position:relative;display:block;min-width:0}.field__label{position:absolute;top:-8px;left:12px;background:var(--surface);padding:0 6px;font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-muted);pointer-events:none;transition:color .15s}.field__req{color:var(--danger);margin-left:2px}.field__control{width:100%;height:52px;border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);padding:0 var(--space-4);font-family:var(--font);font-size:var(--text-md);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.field__control::placeholder{color:var(--text-muted)}.field__control:focus{border:1.5px solid var(--brand);box-shadow:var(--ring);outline:none}.field__control:focus~.field__label{color:var(--brand)}.field__control--area{height:auto;min-height:120px;padding:var(--space-3) var(--space-4);resize:vertical;line-height:var(--lh-normal)}.field__control[type=date],.field__control[type=time],.field__control[type=datetime-local],.field__control[type=month],.field__control[type=week]{appearance:none;-webkit-appearance:none;min-width:0;max-width:100%;text-align:left}.field__control[type=date]::-webkit-date-and-time-value,.field__control[type=time]::-webkit-date-and-time-value,.field__control[type=datetime-local]::-webkit-date-and-time-value,.field__control[type=month]::-webkit-date-and-time-value,.field__control[type=week]::-webkit-date-and-time-value{text-align:left;margin:0;min-width:0}.field__control[type=date]::-webkit-datetime-edit,.field__control[type=time]::-webkit-datetime-edit,.field__control[type=datetime-local]::-webkit-datetime-edit,.field__control[type=month]::-webkit-datetime-edit,.field__control[type=week]::-webkit-datetime-edit{padding:0;min-width:0;overflow:hidden}.field__control[type=date]::-webkit-datetime-edit-fields-wrapper,.field__control[type=time]::-webkit-datetime-edit-fields-wrapper,.field__control[type=datetime-local]::-webkit-datetime-edit-fields-wrapper,.field__control[type=month]::-webkit-datetime-edit-fields-wrapper,.field__control[type=week]::-webkit-datetime-edit-fields-wrapper{min-width:0}.field__control[type=date]::-webkit-calendar-picker-indicator,.field__control[type=time]::-webkit-calendar-picker-indicator,.field__control[type=datetime-local]::-webkit-calendar-picker-indicator,.field__control[type=month]::-webkit-calendar-picker-indicator,.field__control[type=week]::-webkit-calendar-picker-indicator{flex:0 0 auto;opacity:.6;cursor:pointer}.field__control--select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:var(--space-8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237d99bc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center}.field:has(.field__toggle) .field__control{padding-right:var(--space-10)}.field__toggle{position:absolute;top:0;right:var(--space-2);height:52px;display:flex;align-items:center;justify-content:center;border:none;background:none;padding:0 var(--space-2);color:var(--icon-muted);cursor:pointer}.field__toggle:hover{color:var(--text-secondary)}.field.is-error .field__control{border-color:var(--danger-border);box-shadow:var(--ring-danger)}.field.is-error .field__label{color:var(--danger)}.field.is-disabled{opacity:.5;pointer-events:none}.field__foot{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.field__error{color:var(--danger);font-size:var(--text-caption)}.field__hint{color:var(--text-muted);font-size:var(--text-caption)}.field__count{color:var(--text-muted);font-size:var(--text-caption);margin-left:auto}.phone-field{display:flex;align-items:stretch;height:52px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color .15s,box-shadow .15s}.phone-field:focus-within{border:1.5px solid var(--brand);box-shadow:var(--ring)}.phone-field__dial{flex:none;height:100%;border:none;border-right:1px solid var(--border);border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--surface-subtle);padding:0 var(--space-3);font-family:var(--font);font-size:var(--text-md);color:var(--text-primary);cursor:pointer;outline:none}.phone-field__number.field__control{flex:1;min-width:0;height:100%;border:none;border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:none}.phone-field__number.field__control:focus{border:none;box-shadow:none}.field--phone.is-error .phone-field{border-color:var(--danger)}.field--phone .phone-field:focus-within~.field__label{color:var(--brand)}.form{display:flex;flex-direction:column}.form__banner{display:none;width:100%;height:auto}.form__head{margin-bottom:var(--space-6)}.form__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}.form__desc{margin:var(--space-1) 0 0;font-size:var(--text-body);color:var(--text-muted)}.form__fields,.form__row{display:flex;flex-direction:column;gap:var(--space-5)}@media(min-width:768px){.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}}.form__row>*{min-width:0}.form__field-link{display:flex;justify-content:flex-end;margin-top:calc(var(--space-3) * -1)}.form__actions{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-8)}.form__error{margin:var(--space-2) 0 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--danger-subtle);border:1px solid var(--danger-border);font-size:var(--text-sm);color:var(--danger);text-align:left}.form__footer{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.form__footer a{color:var(--brand);font-weight:var(--fw-semibold);font-size:var(--text-body)}.form__footer p{margin:0;font-size:var(--text-body);color:var(--text-muted)}.form__footer p a{margin-left:var(--space-1)}.link{display:inline;border:none;background:none;padding:0;font-family:var(--font);font-size:inherit;font-weight:var(--fw-semibold);color:var(--brand);text-decoration:none;cursor:pointer;transition:color .15s}.link:hover{color:var(--brand-hover);text-decoration:underline}.link:focus-visible{outline:none;text-decoration:underline}.link:disabled{color:var(--text-disabled);cursor:default;text-decoration:none}.link--muted{color:var(--text-muted);font-weight:var(--fw-medium)}.link--muted:hover{color:var(--text-secondary)}.link--danger{color:var(--danger)}.link--danger:hover{color:var(--danger-hover)}.avatar-field{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.avatar-field__trigger{position:relative;width:96px;height:96px;border:none;background:none;padding:0;border-radius:var(--radius-full);cursor:pointer}.avatar-field__preview{width:96px;height:96px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:box-shadow .15s}.avatar-field__preview img{width:100%;height:100%;object-fit:cover}.avatar-field__preview svg{width:44px;height:44px}.avatar-field__trigger:hover .avatar-field__preview,.avatar-field__trigger:focus-visible .avatar-field__preview{box-shadow:var(--ring)}.avatar-field__badge{position:absolute;right:0;bottom:0;width:30px;height:30px;border-radius:var(--radius-full);background:var(--brand);color:#fff;border:2px solid var(--surface);display:flex;align-items:center;justify-content:center}.avatar-field__badge svg{width:16px;height:16px}.avatar-field__label{font-size:var(--text-sm)}.avatar-picker{display:flex;flex-direction:column}.avatar-picker__empty{margin:var(--space-3) 0 0;font-size:var(--text-caption);color:var(--text-muted);text-align:center}.avatar-picker__head{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5)}.avatar-picker__close{position:absolute;top:0;right:0;width:32px;height:32px;border:none;background:var(--surface-subtle);border-radius:var(--radius-full);color:var(--icon-muted);display:flex;align-items:center;justify-content:center;cursor:pointer}.avatar-picker__close:hover{background:var(--surface-hover);color:var(--text-secondary)}.avatar-picker__close svg{width:18px;height:18px}.avatar-picker__preview{width:88px;height:88px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);overflow:hidden;display:flex;align-items:center;justify-content:center}.avatar-picker__preview img{width:100%;height:100%;object-fit:cover}.avatar-picker__preview svg{width:40px;height:40px}.avatar-picker__hint{font-size:var(--text-sm);color:var(--text-muted)}.avatar-picker__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.avatar-picker__upload{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-subtle);color:var(--text-muted);font-family:var(--font);font-size:var(--text-caption);font-weight:var(--fw-medium);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.avatar-picker__upload:hover{background:var(--surface-hover);color:var(--brand);border-color:var(--brand)}.avatar-picker__upload svg{width:22px;height:22px}.avatar-picker__item{position:relative;aspect-ratio:1;border:2px solid transparent;border-radius:var(--radius-lg);background:var(--surface-subtle);overflow:hidden;padding:0;cursor:pointer;transition:border-color .15s}.avatar-picker__item img{width:100%;height:100%;object-fit:cover;display:block}.avatar-picker__item:hover{border-color:var(--brand-subtle)}.avatar-picker__item.is-selected{border-color:var(--brand)}.avatar-picker__hidden-input{display:none}.avatar-picker__error{margin:var(--space-3) 0 0;font-size:var(--text-caption);color:var(--danger);text-align:center}.avatar-field__hint{margin:0;max-width:32ch;text-align:center;font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted)}.avatar-field__hint.is-error{color:var(--danger)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.choice-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4);text-align:left;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.choice-card:hover{border-color:var(--brand-subtle);background:var(--surface-subtle)}.choice-card.is-selected{border-color:var(--brand);background:var(--brand-tint)}.choice-card__icon{display:flex;align-items:center;justify-content:center;color:var(--brand);margin-bottom:var(--space-1)}.choice-card__icon svg{width:24px;height:24px}.choice-card__title{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary)}.choice-card__desc{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--lh-normal)}.option-list{display:flex;flex-direction:column;gap:var(--space-2)}.option-list__loading{display:flex;justify-content:center;padding:var(--space-6) 0}.option-list__empty{margin:0;padding:var(--space-6) 0;text-align:center;color:var(--text-muted);font-size:var(--text-body)}.option-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);text-align:left;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.option-card:hover{border-color:var(--brand-subtle);background:var(--surface-subtle)}.option-card.is-selected{border-color:var(--brand);background:var(--brand-tint)}.option-card__logo{width:44px;height:44px;flex:none;border-radius:var(--radius-md);background:var(--surface-subtle);color:var(--icon-muted);display:flex;align-items:center;justify-content:center;overflow:hidden}.option-card__logo img{width:100%;height:100%;object-fit:cover}.option-card__logo svg{width:22px;height:22px}.option-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.option-card__name{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.option-card__meta{font-size:var(--text-sm);color:var(--text-muted)}.social-heading{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--text-primary)}.social-list{display:flex;flex-direction:column;gap:var(--space-3)}.social-input{display:flex;align-items:center;gap:var(--space-3)}.social-input__icon{width:44px;height:44px;flex:none;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--brand);color:var(--on-brand)}.social-input__icon svg{width:22px;height:22px}.social-input__input{flex:1;min-width:0;height:44px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:0 var(--space-4);font-family:var(--font);font-size:var(--text-body);color:var(--text-primary);transition:border-color .15s}.social-input__input::placeholder{color:var(--text-muted)}.social-input__input:focus{border-color:var(--brand);outline:none}.social-input__clear{flex:none;border:none;background:none;color:var(--icon-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px}.social-input__clear:hover{color:var(--text-secondary)}.otp-inputs{display:flex;gap:var(--space-2);justify-content:space-between}.otp-input{flex:1;min-width:0;height:56px;padding:0;text-align:center;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font);font-size:var(--text-2xl);font-weight:var(--fw-semibold);color:var(--text-primary);transition:border-color .15s}.otp-input:focus{border-color:var(--brand);outline:none}.otp-resend{display:flex;justify-content:center;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted)}.note{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--brand-tint);border:1px solid var(--brand-subtle)}.note__icon{flex:none;display:flex;color:var(--brand)}.note__icon svg{width:20px;height:20px}.note__body{min-width:0}.note__label{margin:0 0 2px;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--brand)}.note__text{margin:0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere}.note--warning{background:var(--warning-subtle);border-color:#ffe5c2}.note--warning .note__icon,.note--warning .note__label{color:var(--warning)}.note--danger{background:var(--danger-subtle);border-color:var(--danger-border)}.note--danger .note__icon,.note--danger .note__label{color:var(--danger)}.room-notes{display:flex;flex-direction:column}.room-notes__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;background:var(--surface)}@media(min-width:768px){.room-notes__list{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}}.room-notes__row{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-4);border:none;border-bottom:1px solid var(--border);background:none;font-family:var(--font);text-align:left;cursor:pointer;transition:background .15s}.room-notes__row:hover{background:var(--surface-subtle)}.room-notes__row--skeleton{pointer-events:none}li:last-child .room-notes__row{border-bottom:none}.room-notes__icon{flex:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand)}.room-notes__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.room-notes__title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-notes__preview{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--lh-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.room-notes__meta{font-size:var(--text-caption);color:var(--text-muted)}.room-notes__go{flex:none;align-self:center;color:var(--icon-muted)}.room-notes__sk-line{display:block;height:11px;border-radius:var(--radius-sm)}.room-notes__sk-line--short{width:55%}.room-notes__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-6);text-align:center;color:var(--text-muted)}.room-notes__state p{margin:0;font-size:var(--text-body)}.room-notes__state-title{font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-secondary)}.room-note-view__byline{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font-size:var(--text-caption);color:var(--text-muted)}.room-note-view__avatar{width:24px;height:24px;flex:none;border-radius:var(--radius-full);background:var(--brand);color:#fff;font-size:10px;font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;overflow:hidden}.room-note-view__avatar img{width:100%;height:100%;object-fit:cover}.room-note-view__body{font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.room-note-view__body p{margin:0 0 var(--space-3)}.room-note-view__body p:last-child{margin-bottom:0}.room-note-view__body ul,.room-note-view__body ol{margin:0 0 var(--space-3);padding-left:var(--space-5)}.room-note-view__body a{color:var(--brand)}.room-note-view__media{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--space-2);margin-top:var(--space-4)}.room-note-view__thumb{position:relative;aspect-ratio:1;border:none;padding:0;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-subtle);cursor:pointer}.room-note-view__thumb img,.room-note-view__thumb video{width:100%;height:100%;object-fit:cover;display:block}.room-note-view__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}.room-note-view__state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:140px;text-align:center;color:var(--text-muted)}.room-note-view__state p{margin:0;font-size:var(--text-body)}.room-note-view__empty{margin:0;font-size:var(--text-body);font-style:italic;color:var(--text-muted)}.room-note-view__remove{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:none;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--danger);cursor:pointer}.room-note-view__remove:hover{background:var(--danger-subtle)}.report-dialog__intro{margin:0 0 var(--space-4);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-secondary)}.report-dialog__intro strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.report-dialog__reasons{display:flex;flex-direction:column;gap:var(--space-2)}.report-dialog__note{position:relative;margin-top:var(--space-5)}.report-dialog__note textarea{width:100%;padding:var(--space-3);padding-bottom:var(--space-6);font:inherit;font-size:var(--text-body);color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);resize:vertical}.report-dialog__note textarea::placeholder{color:var(--text-disabled)}.report-dialog__note textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.report-dialog__note-label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.report-dialog__required{color:var(--danger)}.report-dialog__counter{position:absolute;right:var(--space-3);bottom:var(--space-2);font-size:var(--text-caption);color:var(--text-disabled);pointer-events:none}.report-dialog__error{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-4) 0 0;padding:var(--space-3);font-size:var(--text-sm);color:var(--danger);background:var(--danger-subtle);border:1px solid var(--danger-border);border-radius:var(--radius-md)}.report-reason{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s,background .15s}.report-reason:hover{background:var(--surface-subtle)}.report-reason.is-selected{border-color:var(--brand);background:var(--brand-tint)}.report-reason__radio{flex:none;display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:2px;color:var(--on-brand);border:1.5px solid var(--border-strong);border-radius:var(--radius-full);transition:background .15s,border-color .15s}.is-selected .report-reason__radio{background:var(--brand);border-color:var(--brand)}.report-reason__text{display:flex;flex-direction:column;gap:2px;min-width:0}.report-reason__label{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary)}.report-reason__desc{font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-muted)}.block-dialog__identity{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5)}.block-dialog__avatar{display:flex;align-items:center;justify-content:center;width:56px;height:56px;overflow:hidden;font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--on-brand);background:var(--brand);border-radius:var(--radius-full)}.block-dialog__avatar img{width:100%;height:100%;object-fit:cover}.block-dialog__name{margin:0;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-primary);text-align:center}.block-dialog__points{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.block-dialog__points li{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-secondary)}.block-dialog__points li svg{flex:none;margin-top:2px;color:var(--icon-muted)}.block-dialog__hint{margin:var(--space-5) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.block-dialog__error{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-4) 0 0;padding:var(--space-3);font-size:var(--text-sm);color:var(--danger);background:var(--danger-subtle);border:1px solid var(--danger-border);border-radius:var(--radius-md)}.blocked-page{padding:var(--space-4)}.blocked-page__intro{margin:0 0 var(--space-5);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-muted)}.blocked-page__list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.blocked-page__state{padding:var(--space-8) var(--space-4);font-size:var(--text-body);color:var(--text-muted);text-align:center}.blocked-page__state--empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--text-disabled)}.blocked-page__state--empty p{margin:0}.blocked-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.blocked-row__avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;overflow:hidden;font-size:var(--text-body);font-weight:var(--fw-bold);color:var(--on-brand);background:var(--brand);border-radius:var(--radius-full)}.blocked-row__avatar img{width:100%;height:100%;object-fit:cover}.blocked-row__identity{display:flex;flex-direction:column;min-width:0;flex:1}.blocked-row__name{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blocked-row__handle{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-profile{display:flex;flex-direction:column;min-height:100%;background:var(--bg)}@media(min-width:768px){.org-profile{gap:var(--space-4)}}.org-profile__intro{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.org-profile__intro{border:1px solid var(--border);border-radius:var(--radius-lg)}}.org-profile__head{display:flex;align-items:center;gap:var(--space-4)}.org-profile__avatar{display:flex;align-items:center;justify-content:center;width:72px;height:72px;flex:none;overflow:hidden;font-size:var(--text-xl);font-weight:var(--fw-bold);letter-spacing:.5px;color:var(--on-brand);background:var(--brand);border-radius:var(--radius-full)}.org-profile__avatar img{width:100%;height:100%;object-fit:cover}.org-profile__identity{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}.org-profile__name{margin:0;font-size:var(--text-3xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--text-primary);overflow-wrap:anywhere}.org-profile__location{display:flex;align-items:center;gap:var(--space-1);margin:0;font-size:var(--text-md);color:var(--text-muted)}.org-profile__location svg{flex:none;color:var(--icon-muted)}.org-profile__menu{flex:none;align-self:flex-start}.org-profile__stats{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);font-size:var(--text-body);color:var(--text-muted)}.org-profile__stats strong{font-weight:var(--fw-bold);color:var(--text-primary)}.org-profile__college{display:inline-flex;align-items:center;gap:var(--space-1)}.org-profile__college svg{flex:none;color:var(--icon-muted)}.org-profile__website{display:inline-flex;align-items:center;gap:var(--space-2);align-self:flex-start;max-width:100%;font-size:var(--text-lg);font-weight:var(--fw-medium);color:var(--brand);text-decoration:underline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-profile__website svg{flex:none}.org-profile__website:hover{color:var(--brand-hover)}.org-profile__socials{display:flex;flex-wrap:wrap;gap:var(--space-3)}.org-profile__social{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;color:var(--on-brand);background:var(--brand);border-radius:var(--radius-full);transition:background .15s}.org-profile__social:hover{background:var(--brand-hover)}.org-profile__about{padding:var(--space-4);background:var(--surface-subtle);border-radius:var(--radius-lg)}.org-profile__about-title{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.org-profile__about-text{margin:0;font-size:var(--text-md);line-height:var(--lh-normal);color:var(--text-secondary);white-space:pre-line}.org-profile__actions{display:flex;gap:var(--space-3)}.org-profile__action{flex:1;justify-content:center;border-radius:var(--radius-full)}.org-profile__posts{display:flex;flex-direction:column;flex:1;background:var(--surface)}@media(min-width:768px){.org-profile__posts{gap:var(--space-4);padding:var(--space-4) 0 0;background:transparent}}.org-profile__empty{margin:0;padding:var(--space-10) var(--space-4);font-size:var(--text-body);color:var(--text-muted);text-align:center}.org-profile__empty p{margin:0}.org-profile__empty-img{display:block;width:180px;max-width:55%;height:auto;margin:0 auto var(--space-4);opacity:.85}.profile-tabs{display:flex;gap:var(--space-6);padding:0 var(--space-4);overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none}.profile-tabs::-webkit-scrollbar{display:none}@media(min-width:768px){.profile-tabs{border:1px solid var(--border);border-radius:var(--radius-lg)}}.profile-tabs__tab{position:relative;flex:none;padding:var(--space-4) 0;font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-muted);background:none;border:none;cursor:pointer;white-space:nowrap;transition:color .15s}.profile-tabs__tab:hover{color:var(--text-secondary)}.profile-tabs__tab.is-active{color:var(--brand)}.profile-tabs__tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:var(--radius-full);background:var(--brand)}.my-classes{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) var(--space-4) var(--space-8)}.my-classes__header{display:none}@media(min-width:768px){.my-classes__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}}.my-classes__title{margin:0;font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.my-classes__search{display:flex;align-items:center;gap:var(--space-2);height:52px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);color:var(--icon-muted);transition:border-color .15s}.my-classes__search:focus-within{border:1.5px solid var(--brand)}.my-classes__search input{flex:1;min-width:0;border:none;background:none;font-family:var(--font);font-size:var(--text-md);color:var(--text-primary);outline:none}.my-classes__search input::placeholder{color:var(--text-muted)}.my-classes__search button{display:flex;border:none;background:none;padding:0;color:var(--icon-muted);cursor:pointer}.my-classes__list{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.my-classes__state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-4);text-align:center;color:var(--text-muted)}.my-classes__state p{margin:0;font-size:var(--text-body)}.my-classes__state-title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.my-class{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-left:4px solid var(--class-color, var(--brand));border-radius:var(--radius-lg);background:var(--surface)}.my-class__body{display:flex;flex-direction:column;gap:2px;min-width:0}.my-class__title{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow-wrap:anywhere}.my-class__code{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--brand)}.my-class__meta{font-size:var(--text-caption);line-height:var(--lh-normal);color:var(--text-muted);overflow-wrap:anywhere}.my-class__actions{display:flex;gap:var(--space-2)}.my-class__action{flex:1 1 0;min-width:0;justify-content:center;border-radius:var(--radius-full)}.pa{display:flex;flex-direction:column;min-height:100%;background:var(--bg)}@media(min-width:768px){.pa{gap:var(--space-4);padding-bottom:var(--space-8);background:none}}.pa__card{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.pa__card{border:1px solid var(--border);border-radius:var(--radius-lg)}}.pa__card--loading{align-items:center;padding:var(--space-10)}.pa__status-head{display:flex;align-items:flex-start;gap:var(--space-3)}.pa__badge{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:var(--radius-full);background:var(--danger-subtle);color:var(--danger)}.pa__badge--ok{background:var(--success-subtle);color:var(--success)}.pa__title{margin:0;font-size:var(--text-2xl);font-weight:var(--fw-bold);line-height:1.25;color:var(--text-primary)}.pa__sub{margin:2px 0 0;font-size:var(--text-body);color:var(--text-muted)}.pa__countdown{margin-left:auto;flex:none;padding:4px 10px;border-radius:var(--radius-full);background:var(--danger-subtle);color:var(--danger-hover);font-size:var(--text-caption);font-weight:var(--fw-semibold);white-space:nowrap}.pa__lead{margin:0;font-size:var(--text-md);line-height:1.6;color:var(--text-secondary)}.pa__lead strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.pa__label{display:flex;align-items:center;gap:6px;font-size:var(--text-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.pa__label--ok{color:var(--success)}.pa__quote{margin:0;padding-left:var(--space-4);border-left:3px solid var(--border);font-size:var(--text-md);line-height:1.6;color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere}.pa__reason .pa__quote{border-left-color:var(--danger-border)}.pa__sent .pa__quote{border-left-color:var(--success)}.pa__note{margin:0;font-size:var(--text-body);line-height:1.55;color:var(--text-muted)}.pa__heading{margin:0 0 var(--space-1);font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--text-primary)}.pa__thread{display:flex;flex-direction:column;gap:var(--space-4);margin:0;padding:0;list-style:none}.pa__thread li{display:flex;flex-direction:column;gap:var(--space-1)}.pa__thread-when{font-size:var(--text-caption);color:var(--text-muted)}.pa__unaffected ul{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.pa__unaffected li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-body);color:var(--text-secondary)}.pa__unaffected li svg,.pa__unaffected li i{color:var(--success);flex:none}.pa__clear{align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-10) var(--space-4)}@media(min-width:768px){.pa__clear{padding:var(--space-12) var(--space-6)}}.install-banner{position:fixed;top:0;left:0;right:0;z-index:var(--z-takeover);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-card);animation:installBannerIn .28s ease}.install-banner.is-leaving{animation:installBannerOut .2s ease forwards}@media(min-width:768px){.install-banner{top:var(--space-4);left:auto;right:var(--space-5);width:400px;border:1px solid var(--border);border-radius:var(--radius-lg);padding-top:var(--space-3)}}.install-banner__icon{width:44px;height:44px;flex:none;border-radius:var(--radius-md);object-fit:cover}.install-banner__body{flex:1;min-width:0}.install-banner__title{margin:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight)}.install-banner__text{margin:2px 0 0;font-size:var(--text-caption);color:var(--text-muted);line-height:var(--lh-tight)}.install-banner__actions{display:flex;align-items:center;gap:var(--space-1);flex:none}.install-banner__cta{padding:7px var(--space-4);border:none;border-radius:var(--radius-full);background:var(--brand);color:var(--on-brand);font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:background .15s}.install-banner__cta:hover{background:var(--brand-hover)}.install-banner__cta:active{background:var(--brand-active)}.install-banner__dismiss{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-full);background:none;color:var(--text-muted);cursor:pointer}.install-banner__dismiss:hover{background:var(--surface-hover)}@keyframes installBannerIn{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes installBannerOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}.install-guide__lead{margin:0 0 var(--space-4);font-size:var(--text-body);color:var(--text-secondary);line-height:var(--lh-normal)}.install-guide__cta{display:flex;flex-direction:column;gap:var(--space-2)}.install-guide__note{margin:0;font-size:var(--text-caption);color:var(--text-muted);line-height:var(--lh-normal)}.install-guide__divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0 var(--space-3);font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.install-guide__divider:before,.install-guide__divider:after{content:"";flex:1;height:1px;background:var(--border)}.install-guide__steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.install-guide__step{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-subtle);border-radius:var(--radius-lg)}.install-guide__num{display:flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;border-radius:var(--radius-full);background:var(--brand);color:var(--on-brand);font-size:var(--text-caption);font-weight:var(--fw-bold)}.install-guide__text{flex:1;min-width:0;font-size:var(--text-body);color:var(--text-primary);line-height:var(--lh-normal)}.install-guide__text strong{font-weight:var(--fw-semibold)}.install-guide__glyph{display:flex;align-items:center;flex:none;color:var(--icon-muted)}.doc-viewer{display:flex;flex-direction:column;gap:var(--space-3);height:calc(100dvh - var(--topbar-h));padding:var(--space-3) var(--space-3) var(--space-4)}@media(min-width:768px){.doc-viewer{height:calc(100dvh - 172px);padding:0 0 var(--space-4)}}.doc-viewer__bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.doc-viewer__file{display:flex;align-items:center;gap:var(--space-3);min-width:0}.doc-viewer__ext{flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand);font-size:10px;font-weight:var(--fw-bold)}.doc-viewer__file-text{display:flex;flex-direction:column;min-width:0}.doc-viewer__name{font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-viewer__size{font-size:var(--text-caption);color:var(--text-muted)}.doc-viewer__stage{position:relative;flex:1;min-height:0;display:flex;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-subtle);overflow:hidden}.doc-viewer__image{margin:auto;max-width:100%;max-height:100%;object-fit:contain}.doc-viewer__state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center}.doc-viewer__state p{margin:0;font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.doc-viewer__state span{font-size:var(--text-sm);color:var(--text-muted);max-width:42ch}.doc-viewer__state-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-full);background:var(--surface);color:var(--icon-muted);box-shadow:var(--shadow-topnav)}.doc-viewer__note{flex:none;display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-caption);color:var(--text-muted)}.doc-viewer__note svg{flex:none}.office-doc{flex:1;min-width:0;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--surface)}.office-doc--loading{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);overflow:hidden}.office-doc__sk-line{display:block;height:12px;border-radius:var(--radius-sm)}.office-doc__sk-line--short{width:62%}.office-doc--word{padding:var(--space-6) var(--space-5);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.office-doc--word>*{max-width:72ch;margin-inline:auto}.office-doc--word h1{font-size:var(--text-2xl);margin:0 0 var(--space-4)}.office-doc--word h2{font-size:var(--text-xl);margin:var(--space-5) auto var(--space-3)}.office-doc--word h3{font-size:var(--text-lg);margin:var(--space-4) auto var(--space-2)}.office-doc--word p{margin:0 auto var(--space-3)}.office-doc--word ul,.office-doc--word ol{margin:0 auto var(--space-3);padding-left:var(--space-5)}.office-doc--word li{margin-bottom:var(--space-1)}.office-doc--word a{color:var(--brand)}.office-doc--word strong{font-weight:var(--fw-semibold)}.office-doc--word img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.office-doc--word table{width:100%;border-collapse:collapse;margin:0 auto var(--space-4);font-size:var(--text-sm)}.office-doc--word th,.office-doc--word td{border:1px solid var(--border);padding:var(--space-2);text-align:left}.office-doc--sheet{padding:var(--space-4)}.office-doc__sheet{margin-bottom:var(--space-6)}.office-doc__sheet:last-child{margin-bottom:0}.office-doc__sheet-name{margin:0 0 var(--space-2);font-size:var(--text-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.office-doc__table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.office-doc__table{border-collapse:collapse;font-size:var(--text-sm);white-space:nowrap}.office-doc__table th,.office-doc__table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:left;color:var(--text-primary)}.office-doc__table th:last-child,.office-doc__table td:last-child{border-right:none}.office-doc__table tr:last-child td{border-bottom:none}.office-doc__table th{position:sticky;top:0;background:var(--surface-subtle);font-weight:var(--fw-semibold);color:var(--text-secondary)}.office-doc--text{padding:var(--space-5);margin:0;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere}.pdf-doc{flex:1;min-width:0;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--surface-subtle);padding:var(--space-3) 0;touch-action:pan-x pan-y}.pdf-doc.is-zoomed{cursor:grab}.pdf-doc.is-zoomed:active{cursor:grabbing}.pdf-doc__sizer{margin:0 auto;flex:none}.pdf-doc__pages{display:flex;flex-direction:column;align-items:center;transform-origin:0 0}.pdf-doc__page{display:block;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-card)}.pdf-doc__loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.pdf-doc__sk-page{display:block;width:min(100%,640px);aspect-ratio:8.5/11;border-radius:var(--radius-sm)}.pdf-doc__zoom-bar{position:absolute;left:50%;bottom:var(--space-4);transform:translate(-50%);z-index:1;display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow-modal)}.pdf-doc__zoom-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-primary);cursor:pointer}.pdf-doc__zoom-btn:disabled{color:var(--icon-muted);cursor:default}.pdf-doc__zoom-btn:not(:disabled):hover{background:var(--surface-hover)}.pdf-doc__zoom-pct{min-width:52px;padding:0 var(--space-2);border:none;background:transparent;font-size:var(--text-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);cursor:pointer;text-align:center}.pdf-doc__zoom-pct:hover{color:var(--text-primary)}.feedback{display:flex;flex-direction:column;min-height:100%;background:var(--bg)}@media(min-width:768px){.feedback{gap:var(--space-4);padding-bottom:var(--space-8);background:none}}.feedback__card{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border-bottom:1px solid var(--border)}@media(min-width:768px){.feedback__card{border:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:var(--radius-lg)}}.feedback__lead{margin:0;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-secondary)}.feedback__heading{margin:0;font-size:var(--text-caption);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.feedback__rating{display:flex;flex-direction:column;gap:var(--space-2)}.feedback__rating-label{font-size:var(--text-sm);color:var(--text-secondary)}.feedback__stars{display:flex;align-items:center;gap:var(--space-1)}.feedback__star{display:flex;padding:2px;border:none;background:none;color:var(--border-strong);cursor:pointer;transition:color .15s,transform .1s}.feedback__star:hover{transform:scale(1.08)}.feedback__star:active{transform:scale(.94)}.feedback__star.is-on{color:var(--warning)}.feedback__rating-clear{margin-left:var(--space-2);border:none;background:none;padding:0;font-family:var(--font);font-size:var(--text-caption);color:var(--text-muted);cursor:pointer}.feedback__rating-clear:hover{text-decoration:underline}.feedback__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.feedback__item{display:flex;flex-direction:column;gap:4px;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.feedback__item:last-child{border-bottom:none;padding-bottom:0}.feedback__item:first-child{padding-top:0}.feedback__item-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.feedback__item-subject{flex:1;min-width:0;font-size:var(--text-body);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedback__item-message{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--lh-normal);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.feedback__item-meta{font-size:var(--text-caption);color:var(--text-muted)}.feedback__status{flex:none;padding:1px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:var(--fw-semibold);background:var(--surface-hover);color:var(--text-secondary)}.feedback__status--new{background:var(--brand-tint);color:var(--brand)}.feedback__status--in_review{background:var(--warning-subtle);color:#8a5a00}.feedback__status--resolved{background:var(--success-subtle);color:var(--success)}.feedback__state{margin:0;padding:var(--space-5) 0;text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.terms-agreement{display:flex;flex-direction:column;gap:var(--space-1)}.terms-agreement__row{display:flex;align-items:flex-start;gap:var(--space-3)}.terms-agreement__box{accent-color:var(--brand);width:18px;height:18px;flex:none;margin:1px 0 0;cursor:pointer}.terms-agreement__label{font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-secondary);cursor:pointer}.terms-agreement__link{vertical-align:baseline}.terms-agreement.is-error .terms-agreement__box{outline:1px solid var(--danger);outline-offset:1px}.legal-dialog__variants{display:flex;gap:var(--space-1);padding:var(--space-1);margin-bottom:var(--space-4);border-radius:var(--radius-full);background:var(--surface-subtle)}.legal-dialog__variant{flex:1;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-full);background:none;font-family:var(--font);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.legal-dialog__variant.is-active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.legal-dialog__body{max-height:min(60dvh,520px);overflow-y:auto;font-size:var(--text-body);line-height:var(--lh-normal);color:var(--text-primary);overflow-wrap:anywhere}.legal-dialog__body h1{font-size:var(--text-xl);margin:0 0 var(--space-3)}.legal-dialog__body h2{font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-2)}.legal-dialog__body p{margin:0 0 var(--space-3)}.legal-dialog__body p:last-child{margin-bottom:0}.legal-dialog__body ul,.legal-dialog__body ol{margin:0 0 var(--space-3);padding-left:var(--space-5)}.legal-dialog__body li{margin-bottom:var(--space-1)}.legal-dialog__body a{color:var(--brand)}.legal-dialog__loading{display:flex;flex-direction:column;gap:var(--space-3)}.legal-dialog__sk-line{display:block;height:12px;border-radius:var(--radius-sm)}.legal-dialog__sk-line--short{width:65%}.legal-dialog__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) 0;color:var(--text-muted);text-align:center}.legal-dialog__empty p{margin:0}.reach{display:flex;flex-direction:column;gap:var(--space-5)}.reach__head{display:flex;align-items:center;gap:var(--space-3)}.reach__avatar{flex:none;width:46px;height:46px;border-radius:var(--radius-full);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center}.reach__head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.reach__name{font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-tight)}.reach__class{font-size:var(--text-caption);color:var(--text-muted)}.reach__rows{display:flex;flex-direction:column;gap:var(--space-4)}.reach__row{display:flex;align-items:flex-start;gap:var(--space-3)}.reach__row-icon{flex:none;color:var(--icon-muted);margin-top:2px}.reach__row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.reach__row-label{font-size:var(--text-caption);font-weight:var(--fw-medium);color:var(--text-muted)}.reach__row-value{font-size:var(--text-body);color:var(--text-primary);overflow-wrap:anywhere;white-space:pre-wrap}.reach__mail{color:var(--brand);text-decoration:none}.reach__mail:hover{text-decoration:underline}.reach__join{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:2px;padding:var(--space-2) var(--space-3);border:1px solid var(--brand);border-radius:var(--radius-md);color:var(--brand);font-size:var(--text-body);font-weight:var(--fw-semibold);text-decoration:none}.reach__join:hover{background:var(--brand-tint)}.reach__join:focus-visible{outline:none;box-shadow:var(--ring)}.reach__muted{color:var(--text-muted)}.reach__note{display:block;margin-top:2px;font-size:var(--text-caption);color:var(--text-muted)}.reach__loading{display:flex;flex-direction:column;gap:var(--space-3)}.reach__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.reach__empty p{margin:0;font-size:var(--text-body)}.field__control:focus,.field__control:focus-visible,.field__control.p-focus,input:focus,input:focus-visible,input.p-focus,textarea:focus,textarea:focus-visible,textarea.p-focus,select:focus,select:focus-visible,select.p-focus,.p-inputtext:focus,.p-inputtext:focus-visible,.p-inputtext.p-focus,.p-inputtextarea:focus,.p-inputtextarea:focus-visible,.p-inputtextarea.p-focus,.p-password input:focus,.p-password input:focus-visible,.p-password input.p-focus,.p-dropdown:focus,.p-dropdown:focus-visible,.p-dropdown.p-focus,.p-multiselect:focus,.p-multiselect:focus-visible,.p-multiselect.p-focus,.p-calendar input:focus,.p-calendar input:focus-visible,.p-calendar input.p-focus{box-shadow:none!important;outline:none!important}#root{min-height:100dvh}
