.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@font-face{font-family:CWEmoji;src:url(../fonts/emoji.ttf)format("truetype");font-display:swap;unicode-range:U+203C,U+2049,U+20E3,U+2122,U+2139,U+2190-21FF,U+23??,U+2460-24FF,U+25A0-27BF,U+2900-297F,U+2B??,U+3030,U+303D,U+3297,U+3299,U+FE0?,U+1F000-1FAFF}:root{--bg:#0a0a0f;--bg-elev:#14141f;--bg-elev2:#1c1c2e;--bg-elev3:#242438;--border:#2a2a3e;--border-light:#3a3a52;--text:#e4e4ef;--text-dim:#8888a0;--text-dimmer:#555570;--accent:#6c5ce7;--accent-dim:#4a3bb5;--accent-light:#6c5ce71f;--green:#00d68f;--green-dim:#00d68f1f;--red:#ff5c7a;--blue:#34b7f1;--orange:#ff7a28;--font:"Manrope", system-ui, -apple-system, sans-serif, "CWEmoji";--mono:"JetBrains Mono", monospace, "CWEmoji";--radius:12px;--radius-lg:20px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--header-h:56px;--input-h:56px;--sidebar-w:380px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}#root{height:var(--app-h,100%);zoom:var(--text-scale,1)}html{-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-size:15px;overflow:hidden}body.allow-select{-webkit-user-select:text;user-select:text}button{font-family:var(--font);cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:10px;min-height:44px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .15s}button:hover:not(:disabled){background:var(--accent-dim)}button:active:not(:disabled){transform:scale(.96)}button:disabled{opacity:.35;cursor:not-allowed}input,textarea{font-family:var(--font);background:var(--bg-elev2);color:var(--text);border:1px solid var(--border);border-radius:10px;outline:none;width:100%;min-height:44px;padding:12px 14px;font-size:15px;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-dimmer)}.app{flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}@media (width>=769px) and (pointer:fine){.app.desktop-layout{flex-direction:row}.app.desktop-layout .chatlist-pane{width:var(--sidebar-w);border-right:1px solid var(--border);flex-shrink:0;height:100%}.app.desktop-layout .chat-pane{flex:1;height:100%}.app.desktop-layout .back-btn{display:none}.app.desktop-layout .chat-placeholder{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:16px;display:flex}}@media (width<=768px),(pointer:coarse){.app.desktop-layout .chatlist-pane,.app.desktop-layout .chat-pane{width:100%;height:100%}}.app.boot{background:var(--bg);justify-content:center;align-items:center}.boot-logo{text-align:center}.boot-logo h1{margin-top:14px;font-size:28px;font-weight:800}.boot-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:24px auto 0;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.setup-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;margin:auto;padding:32px 24px;box-shadow:0 20px 60px #00000080}.logo{text-align:center;margin-bottom:28px}.logo svg{margin:0 auto 8px;display:block}.logo h1{letter-spacing:-.5px;font-size:26px;font-weight:800}.logo .tagline{color:var(--text-dim);margin-top:4px;font-size:13px}.section{margin-bottom:20px}.section label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px;font-size:12px;font-weight:700;display:block}.section button{width:100%;margin-top:10px}.hint{color:var(--text-dim);margin-top:8px;font-size:12px;line-height:1.5}.peer-id,.fingerprint{font-family:var(--mono);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;word-break:break-all;padding:12px 14px;line-height:1.5;transition:border-color .15s;position:relative}.peer-id:hover,.fingerprint:hover{border-color:var(--accent)}.peer-id{color:var(--accent);font-size:14px;font-weight:600}.fingerprint{color:var(--green);font-size:12px}.copied{background:var(--green);color:#04231a;font-size:10px;font-family:var(--font);border-radius:20px;padding:3px 10px;font-weight:700;position:absolute;top:8px;right:10px}.status{color:var(--text-dim);justify-content:center;align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.dot{background:var(--text-dim);border-radius:50%;width:10px;height:10px;box-shadow:0 0 #00d68f80}.dot.connected{background:var(--green);animation:2s infinite pulse}.dot.peer-connected{background:var(--green)}.dot.disconnected,.dot.peer-disconnected{background:var(--red)}@keyframes pulse{0%{box-shadow:0 0 #00d68f80}70%{box-shadow:0 0 0 8px #00d68f00}to{box-shadow:0 0 #00d68f00}}.error{color:var(--red);border-radius:var(--radius);background:#ff5c7a1a;border:1px solid #ff5c7a40;margin-bottom:16px;padding:12px 14px;font-size:13px}.chatlist-view{background:var(--bg);flex-direction:column;justify-content:flex-start;align-items:stretch;height:100%;padding:0;overflow:hidden}.chatlist-header{padding:0 16px;padding-top:var(--safe-top);height:calc(var(--header-h) + var(--safe-top));background:var(--bg-elev);border-bottom:1px solid var(--border);min-height:var(--header-h);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.chatlist-title{align-items:center;gap:10px;display:flex}.chatlist-title h1{letter-spacing:-.5px;font-size:22px;font-weight:800}.chatlist-actions{gap:4px;display:flex}.header-btn{width:42px;height:42px;color:var(--text-dim);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;min-height:42px;padding:0;font-size:18px;transition:all .12s;display:flex}.header-btn:hover:not(:disabled){background:var(--bg-elev2);color:var(--text)}.fake-vault-banner{color:#fa0;text-align:center;background:#ffa5001a;border-bottom:1px solid #ffa50033;flex-shrink:0;padding:8px 16px;font-size:12px;font-weight:600}.install-box{flex-shrink:0;padding:12px 16px}.install-btn{background:var(--green);color:#04140f;width:100%;min-height:40px;margin:0;font-weight:700}.install-btn:hover:not(:disabled){filter:brightness(1.1);background:var(--green)}.install-note{color:var(--text-dim);text-align:center;margin-top:6px;font-size:11px;line-height:1.4}.pending-requests{flex-shrink:0;padding:8px 16px}.request-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;margin-bottom:6px;padding:10px 14px;font-size:13px;display:flex}.request-info{flex:1;min-width:0}.request-who{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.request-intro{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.request-intro.muted{color:var(--text-dim);font-style:italic}.request-id{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.request-actions{flex-shrink:0;gap:6px;display:flex}.request-row button{width:auto;min-height:36px;margin:0;padding:7px 14px;font-size:12px}.chat-list{flex:1;overflow:hidden auto}.chat-item{cursor:pointer;align-items:center;gap:14px;padding:12px 16px;transition:background .1s;display:flex;position:relative}.chat-item:hover{background:var(--bg-elev)}.chat-item:active{background:var(--bg-elev2)}.chat-item.active{background:var(--accent-light)}.chat-avatar{background:linear-gradient(135deg, var(--accent), var(--green));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;font-weight:700;display:flex;position:relative;overflow:hidden}.chat-avatar.small{width:40px;height:40px;font-size:17px}.avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-online-wrap{flex-shrink:0;display:inline-flex;position:relative}.online-dot{background:var(--green,#2ecc71);border:2px solid var(--bg);pointer-events:none;border-radius:50%;width:12px;height:12px;position:absolute;bottom:0;right:0}.avatar-placeholder{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.chat-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.chat-row-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:16px;font-weight:600;display:flex;overflow:hidden}.chat-badge{flex-shrink:0;font-size:14px}.chat-time{color:var(--text-dim);flex-shrink:0;font-size:12px}.chat-row-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-preview{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.unread-badge{background:var(--green);color:#04140f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:flex}.verified-check{color:var(--green);font-size:13px;font-weight:800}.chatlist-empty{text-align:center;color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:32px 20px;display:flex}.chatlist-empty p{font-size:16px}.chatlist-empty-actions{flex-direction:column;gap:10px;width:100%;max-width:280px;display:flex}.primary-btn{background:var(--accent);color:#fff;border-radius:var(--radius);width:100%;min-height:48px;padding:14px 20px;font-size:15px;font-weight:700}.secondary-btn{background:var(--bg-elev2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:48px;padding:14px 20px;font-size:14px}.secondary-btn:hover:not(:disabled){background:var(--bg-elev3)}.fab{bottom:calc(20px + var(--safe-bottom));background:var(--accent);color:#fff;z-index:10;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;min-height:56px;padding:0;font-size:24px;display:flex;position:fixed;right:20px;box-shadow:0 4px 20px #6c5ce766}.fab:hover:not(:disabled){background:var(--accent-dim)}.fab:active:not(:disabled){transform:scale(.9)}@media (width>=769px) and (pointer:fine){.fab{position:absolute}}.chat-view{background:var(--bg);flex-direction:column;height:100%;overflow:hidden}.chat-header{padding:0 12px;padding-top:var(--safe-top);height:calc(var(--header-h) + var(--safe-top));background:var(--bg-elev);border-bottom:1px solid var(--border);min-height:var(--header-h);flex-shrink:0;align-items:center;gap:10px;display:flex}.call-actions{gap:2px;margin-left:auto;display:flex}.call-overlay{z-index:50;color:#fff;background:#0a0a0f;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:0}.call-info{text-align:center}.call-name{font-size:22px;font-weight:600}.call-status{opacity:.7;margin-top:4px}.call-video-wrap{aspect-ratio:3/4;background:#111;border-radius:14px;justify-content:center;align-items:center;width:100%;max-width:420px;display:flex;position:relative;overflow:hidden}.call-remote{object-fit:cover;width:100%;height:100%}.call-local{object-fit:cover;background:#000;border:1px solid #333;border-radius:10px;width:110px;height:150px;position:absolute;bottom:10px;right:10px}.call-controls{align-items:center;gap:14px;display:flex}.call-accept,.call-decline,.call-hangup{color:#fff;cursor:pointer;border:none;border-radius:30px;padding:14px 22px;font-size:16px;font-weight:600}.call-accept{background:#1ec27a}.call-decline,.call-hangup{background:#e04848}.call-avatar-big{color:#fff;background:linear-gradient(135deg,#2a2a40,#1a1a2e);border:2px solid #3a3a55;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;font-size:52px;font-weight:600;display:flex}.call-toggle{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #3a3a55;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;display:flex}.call-toggle:hover{background:#ffffff2e}.back-btn{color:var(--text);background:0 0;border-radius:50%;justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:8px;font-size:22px;display:flex}.back-btn:hover:not(:disabled){background:var(--bg-elev2)}.loc-card{cursor:pointer;border:1px solid var(--border);border-radius:12px;width:220px;max-width:100%;overflow:hidden}.loc-thumb{pointer-events:none;border:none;width:100%;height:130px;display:block}.loc-label{background:var(--bg-elev);padding:8px 10px;font-size:13px}.map-overlay{z-index:200;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.map-header{height:var(--header-h);background:var(--bg-elev);border-bottom:1px solid var(--border);z-index:2;flex-shrink:0;align-items:center;gap:10px;padding:0 12px;display:flex;position:relative}.map-overlay .back-btn{background:var(--bg-elev2);min-width:44px;min-height:44px;font-size:26px;display:flex}.app.desktop-layout .map-overlay .back-btn{display:flex}.map-close-x{background:var(--bg-elev2);min-width:44px;min-height:44px;color:var(--text);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.map-close-x:hover{background:var(--bg-elev)}.map-title{font-weight:600}.map-sub{color:var(--text-dim);font-size:12px;font-weight:400}.map-frame{border:none;flex:1;width:100%}.map-actions{background:var(--bg-elev);border-top:1px solid var(--border);text-align:center;padding:12px}.lm-map{background:#0a0f14;flex:1;width:100%;min-height:0}.leaflet-container{font:inherit;background:#0a0f14}.lm-marker{background:0 0;border:none}.lm-pin{width:46px;height:56px;position:relative}.lm-av{border:3px solid var(--accent,#2ee6a6);background:var(--bg-elev,#1b2530);box-sizing:border-box;border-radius:50%;width:40px;height:40px;position:absolute;top:0;left:3px;overflow:hidden;box-shadow:0 2px 6px #00000080}.lm-pin.mine .lm-av{border-color:#3a8dff}.lm-av img{object-fit:cover;width:100%;height:100%;display:block}.lm-av span{justify-content:center;align-items:center;width:100%;height:100%;font-size:15px;font-weight:700;display:flex}.lm-pin:after{content:"";background:var(--accent,#2ee6a6);border-radius:0 0 3px;width:13px;height:13px;position:absolute;top:38px;left:50%;transform:translate(-50%)rotate(45deg);box-shadow:2px 2px 4px #0006}.lm-pin.mine:after{background:#3a8dff}.leaflet-control-zoom a{background:var(--bg-elev,#1b2530);color:var(--text,#e8eef2);border-color:var(--border,#2a3746)}.map-open{color:var(--accent);font-weight:600;text-decoration:none}.guard-modal{text-align:center}.guard-icon{margin-bottom:6px;font-size:44px}.guard-text{margin-bottom:10px;font-size:14px;line-height:1.5}.guard-note{color:var(--text-dim);margin-bottom:14px;font-size:12px;line-height:1.5}.guard-override{color:#fff;background:#b03535}.guard-override:hover{filter:brightness(1.1)}.chat-header-info{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.chat-header-name{align-items:center;gap:5px;font-size:16px;font-weight:700;display:flex}.chat-header-status{color:var(--text-dim);font-size:12px}.peer-info{flex:1;min-width:0}.peer-name{font-size:16px;font-weight:700}.peer-fp{font-family:var(--mono);color:var(--green);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.verify-bar{background:var(--accent-light);border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 16px}.verify-label{color:var(--text-dim);text-align:center;margin-bottom:10px;font-size:13px}.key-changed-warn{border:1px solid var(--red);color:var(--red);border-radius:var(--radius);text-align:center;background:#ff5c7a1f;margin-bottom:10px;padding:10px 14px;font-size:13px;font-weight:600}.sas-row{border-radius:var(--radius);background:var(--bg);border:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:12px;padding:14px;display:flex}.sas-emoji{font-size:34px;line-height:1}.sas-scramble{flex-wrap:wrap;justify-content:center;gap:10px;display:inline-flex}.sas-scramble .scrambling{filter:blur(.4px)brightness(1.15);text-shadow:0 0 10px var(--accent,#2ee6a6);opacity:.9;animation:.32s steps(2,end) infinite sasFlicker}@keyframes sasFlicker{0%{opacity:.45;transform:translateY(-1px)}to{opacity:1;transform:translateY(1px)}}.sas-reveal{animation:.4s cubic-bezier(.2,.9,.25,1.2) both sasReveal}@keyframes sasReveal{0%{opacity:0;filter:blur(3px);transform:scale(.4)rotate(-8deg)}to{opacity:1;filter:blur();transform:scale(1)rotate(0)}}.resync-overlay{z-index:300;background:var(--bg,#0a0e14);justify-content:center;align-items:center;animation:.2s both resyncFade;display:flex;position:fixed;inset:0}@keyframes resyncFade{0%{opacity:0}to{opacity:1}}.resync-card{text-align:center;background:var(--bg-elev,#12161d);border:1px solid var(--border,#253041);border-radius:18px;max-width:320px;margin:24px;padding:26px 22px;box-shadow:0 12px 40px #00000080}.resync-lock{margin-bottom:10px;font-size:40px;animation:1.4s ease-in-out infinite resyncPulse}@keyframes resyncPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.resync-cipher{color:var(--accent,#2ee6a6);letter-spacing:2px;text-shadow:0 0 8px #2ee6a673;word-break:break-all;margin-bottom:14px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:15px}.resync-title{color:var(--text,#eaf0f6);margin-bottom:8px;font-size:17px;font-weight:700}.resync-sub{color:var(--text-dim,#9fb0c3);font-size:13px;line-height:1.5}.resync-dots{justify-content:center;gap:6px;margin-top:16px;display:flex}.resync-dots span{background:var(--accent,#2ee6a6);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite resyncDot}.resync-dots span:nth-child(2){animation-delay:.16s}.resync-dots span:nth-child(3){animation-delay:.32s}@keyframes resyncDot{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}.verify-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.verify-share{background:var(--bg-elev2);color:var(--text);border:1px solid var(--border);min-height:44px;padding:12px 18px;font-size:14px;font-weight:600}.verify-share:hover:not(:disabled){background:var(--bg-elev)}.verify-ok{background:var(--green);color:#04120c;min-height:44px;padding:12px 20px;font-size:15px;font-weight:700}.verify-ok:hover:not(:disabled){filter:brightness(1.1);background:var(--green)}.verify-fp{text-align:center;font-family:var(--mono);color:var(--text-dim);margin-top:10px;font-size:11px}.ttl-bar{border-bottom:1px solid var(--border);background:var(--bg-elev);flex-shrink:0;gap:4px;padding:8px 12px;display:flex;position:relative}.ttl-indicator{background:var(--bg-elev2);width:auto;color:var(--text-dim);border:1px solid var(--border);cursor:pointer;border-radius:20px;flex-shrink:0;min-height:32px;padding:6px 14px;font-size:12px}.ttl-indicator:hover:not(:disabled){color:var(--text)}.ttl-indicator.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ttl-menu-overlay{z-index:60;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.ttl-menu{background:var(--bg-elev);border:1px solid var(--border);border-top-left-radius:16px;border-top-right-radius:16px;width:100%;max-width:480px;padding:8px 0 16px;box-shadow:0 -8px 24px #0000004d}.ttl-menu-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;padding:12px 20px 8px;font-size:13px;font-weight:600}.ttl-menu-item{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 20px;font-size:15px;display:flex}.ttl-menu-item:hover{background:var(--bg-elev2)}.ttl-menu-item.active{color:var(--accent);font-weight:600}.ttl-check{color:var(--accent);font-weight:700}.messages{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:6px;padding:16px 12px;display:flex;overflow:hidden auto}.empty-chat{text-align:center;color:var(--text-dim);flex:1;justify-content:center;align-items:center;padding:20px;font-size:14px;display:flex}.message{flex-direction:column;max-width:80%;display:flex}.message.me{align-self:flex-end;align-items:flex-end}.message.peer{align-self:flex-start;align-items:flex-start}.message.deleted,.message.burned{max-width:60%}.bubble{word-break:break-word;border-radius:18px;padding:10px 14px;font-size:15px;line-height:1.45;position:relative}.message.me .bubble{background:var(--bubble-me,var(--accent));color:var(--bubble-me-text,#fff);border-bottom-right-radius:4px}.message.peer .bubble{background:var(--bubble-peer,var(--bg-elev2));color:var(--bubble-peer-text,var(--text));border:1px solid var(--border);border-bottom-left-radius:4px}.chat-view .messages{background:var(--chat-wallpaper,transparent);background-position:50%;background-size:cover}.reply-quote{border-left:3px solid var(--accent);background:#ffffff0d;border-radius:6px;flex-direction:column;gap:1px;max-width:100%;margin-bottom:3px;padding:4px 8px;font-size:13px;display:flex}.reply-who{color:var(--accent);font-size:12px;font-weight:600}.reply-text{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reply-bar{background:var(--bg-elev);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;display:flex}.reply-bar-content{border-left:3px solid var(--accent);flex-direction:column;flex:1;min-width:0;padding-left:8px;display:flex}.reply-cancel{width:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:16px}.reactions{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.reaction-chip{background:var(--bg-elev2);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:1px 7px;font-size:13px;line-height:1.5}.reaction-chip.pop{animation:.6s cubic-bezier(.2,1.4,.5,1) both reactionPop}@keyframes reactionPop{0%{opacity:0;transform:scale(0)}55%{opacity:1;transform:scale(1.45)}75%{transform:scale(.9)}to{transform:scale(1)}}.reaction-row{justify-content:center;gap:6px;margin:4px 0 8px;display:flex}.reaction-emoji{cursor:pointer;background:0 0;border:none;padding:4px;font-size:24px}.reaction-emoji:hover{transform:scale(1.2)}.time{color:var(--text-dim);align-items:center;gap:4px;margin-top:4px;padding:0 6px;font-size:11px;display:flex}.msg-status{letter-spacing:-1px;font-size:12px}.msg-status.status-sending{opacity:.5}.msg-status.status-read{color:var(--blue)}.msg-status.status-failed{color:var(--red)}.burn-reveal{border:1px dashed var(--orange);color:var(--orange);border-radius:var(--radius);cursor:pointer;text-align:center;background:#ff78281a;width:100%;min-height:44px;padding:10px 14px;font-size:14px}.burn-tag{color:var(--orange)}.icon-btn.burn-on{background:var(--orange);color:#fff;border-radius:50%}.deleted-text{color:var(--text-dim);font-size:13px;font-style:italic}.attachment{min-width:200px}.att-img{border-radius:12px;max-width:280px;max-height:360px;display:block}.att-video{border-radius:12px;max-width:300px;display:block}.att-audio{width:260px;display:block}.att-media-wrap{display:inline-block;position:relative}.att-uploading{pointer-events:none;background:#00000047;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.att-uploading-pct{color:#fff;background:#0009;border-radius:20px;padding:4px 10px;font-size:13px;font-weight:600}.voice-msg{align-items:center;gap:10px;width:240px;display:flex}.voice-play{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:16px;display:flex}.message.me .voice-play{background:#ffffff40}.voice-wave{cursor:pointer;flex:1;align-items:center;gap:2px;height:34px;display:flex}.voice-bar{background:var(--text-dimmer);border-radius:2px;flex:1;min-width:2px;transition:background .1s}.voice-bar.played{background:var(--accent)}.message.me .voice-bar{background:#ffffff59}.message.me .voice-bar.played{background:#fff}.voice-time{color:var(--text-dim);text-align:right;flex-shrink:0;min-width:32px;font-size:12px}.message.me .voice-time{color:#fffc}.att-file{align-items:center;gap:12px;display:flex}.att-icon{flex-shrink:0;font-size:28px;line-height:1}.att-meta{flex:1;min-width:0}.att-name{word-break:break-all;font-size:14px;font-weight:600}.att-size{opacity:.7;margin-top:2px;font-size:12px}.att-dl{color:inherit;background:#ffffff1f;border-radius:8px;margin-left:auto;padding:6px 10px;font-size:20px;text-decoration:none}.progress{background:#ffffff1f;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.progress .bar{background:var(--green);border-radius:2px;height:100%;transition:width .2s}.input-bar{padding:8px 12px;padding-bottom:calc(8px + var(--safe-bottom));border-top:1px solid var(--border);background:var(--bg-elev);flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.input-bar input[type=text]{border-radius:22px;flex:1;min-height:44px;padding:12px 18px;font-size:15px}.msg-textarea{resize:none;border-radius:22px;flex:1;width:auto;min-width:0;min-height:44px;max-height:76px;padding:11px 18px;line-height:1.35;overflow-y:auto}.input-bar button{flex-shrink:0}.rec-bar{align-items:center;gap:12px}.rec-dot{background:#e04747;border-radius:50%;flex-shrink:0;width:12px;height:12px}.rec-dot.live{animation:1s ease-in-out infinite recPulse}@keyframes recPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}.rec-time{font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:1px;font-size:16px;font-weight:700}.rec-preview{flex:1;min-width:0}.rec-trash{color:#e04747!important}.rec-wave{flex:1;align-items:center;gap:2px;min-width:0;height:34px;display:flex;overflow:hidden}.rec-wave span{background:var(--accent,#2ee6a6);border-radius:2px;flex:1 1 0;min-width:2px;max-width:5px;transition:height 50ms linear}.ve-pos{letter-spacing:.5px;white-space:nowrap;font-size:13px}.ve-pos .ve-dur{opacity:.5;font-weight:500}.ve-wave{touch-action:none;cursor:pointer;flex:1;align-items:center;gap:2px;min-width:0;height:40px;display:flex;position:relative;overflow:hidden}.ve-wave span:not(.ve-cursor){background:color-mix(in srgb, var(--accent,#2ee6a6) 35%, transparent);pointer-events:none;border-radius:2px;flex:1 1 0;min-width:2px}.ve-wave span.played{background:var(--accent,#2ee6a6)}.ve-cursor{pointer-events:none;background:#fff;width:2px;margin:0;transition:left 40ms linear;position:absolute;top:0;bottom:0;box-shadow:0 0 4px #00000080}.ve-recmore{color:#e04747!important}.ve-prompt{background:var(--panel,#1b2530);border:1px solid var(--border,#2a3746);border-radius:14px;margin:0 8px 8px;padding:12px;animation:.22s vePromptIn;box-shadow:0 6px 20px #00000059}@keyframes vePromptIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ve-prompt-title{color:var(--text);margin-bottom:10px;font-size:14px;font-weight:600}.ve-prompt-btns{flex-wrap:wrap;gap:8px;display:flex}.ve-prompt-btns button{background:var(--accent,#2ee6a6);color:#06231a;cursor:pointer;border:none;border-radius:10px;flex:auto;min-height:40px;padding:0 12px;font-size:14px;font-weight:700}.ve-prompt-btns button.ghost{color:var(--text-dim,#90a0b0);border:1px solid var(--border,#2a3746);background:0 0;flex:none}.noforward-note{color:var(--text-dim,#90a0b0);opacity:.75;align-items:center;gap:6px;padding:10px 12px;font-size:13px;display:flex}.voice-cite{color:var(--text-dim,#90a0b0);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:4px 6px;display:inline-flex}.voice-cite:hover{color:var(--accent,#2ee6a6)}.reply-quote.audio-quote{cursor:pointer}.audio-quote-label{color:var(--accent,#2ee6a6);align-items:center;gap:5px;font-weight:600;display:inline-flex}.tut-modal{text-align:center;max-width:340px}.tut-icon{background:color-mix(in srgb, var(--accent,#2ee6a6) 15%, transparent);width:72px;height:72px;color:var(--accent,#2ee6a6);border-radius:50%;justify-content:center;align-items:center;margin:4px auto 14px;display:flex}.tut-text{color:var(--text-dim,#90a0b0);margin:8px 0 16px;font-size:14px;line-height:1.5}.tut-dots{justify-content:center;gap:6px;margin-bottom:14px;display:flex}.tut-dots span{background:var(--border,#2a3746);border-radius:50%;width:7px;height:7px;transition:all .2s}.tut-dots span.on{background:var(--accent,#2ee6a6);border-radius:4px;width:18px}.tut-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.tut-actions button:last-child{background:var(--accent);color:#04121a;border:none;border-radius:10px;padding:10px 22px;font-weight:700}.status-editor{z-index:260;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.status-editor-canvas{flex:1;justify-content:center;align-items:center;min-height:0;padding:8px;display:flex;overflow:hidden}.status-editor-frame{touch-action:none;max-width:100%;max-height:100%;display:flex;position:relative}.status-editor-img{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.status-ov{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;white-space:nowrap;position:absolute;transform:translate(-50%,-50%)}.status-ov.sticker{font-size:44px;line-height:1}.status-ov.text{color:#fff;text-shadow:0 2px 5px #000c;text-align:center;white-space:normal;max-width:90vw;padding:2px 8px;font-size:22px;font-weight:800}.status-editor-tools{background:var(--bg-elev,#1b2530);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:10px;display:flex}.status-sticker-row{gap:2px;display:flex;overflow-x:auto}.status-sticker-row button{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 6px;font-size:26px}.status-text-row{align-items:center;gap:8px;display:flex}.status-text-row input{flex:1;min-width:0}.status-editor-actions{justify-content:space-between;align-items:center;display:flex}.status-editor-actions .primary-btn{align-items:center;gap:6px;display:inline-flex}.msg-system{background:color-mix(in srgb, var(--accent,#2ee6a6) 12%, var(--bg-elev,#1b2530));border:1px solid color-mix(in srgb, var(--accent,#2ee6a6) 30%, transparent);max-width:84%;color:var(--text,#e8eef2);text-align:center;border-radius:14px;align-self:center;align-items:center;gap:7px;margin:8px auto;padding:7px 14px;font-size:12.5px;line-height:1.4;display:flex}.msg-system>span{flex:1}.input-bar>button:last-child{background:var(--accent);color:#fff;border-radius:50%;min-width:44px;min-height:44px;padding:0;font-size:15px;font-weight:700}.icon-btn{color:var(--text-dim);background:0 0;border-radius:50%;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;font-size:20px;line-height:1;display:flex}.icon-btn:hover:not(:disabled){background:var(--bg-elev2);color:var(--text)}.icon-btn:active:not(:disabled){transform:scale(.9)}.icon-btn.recording{background:var(--red);color:#fff;animation:1.2s infinite pulse-red}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.55}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.vault-section{flex-direction:column;gap:8px;display:flex}.vault-on{background:var(--green-dim);border:1px solid var(--green);color:var(--green);border-radius:var(--radius);text-align:center;padding:10px 14px;font-size:13px;font-weight:600}.link-muted{color:var(--text-dim);border:1px solid var(--border);background:0 0;min-height:44px;padding:10px 14px;font-size:14px}.link-muted:hover:not(:disabled){background:var(--bg-elev2);color:var(--text)}.link-danger{color:var(--red);background:0 0;min-height:40px;padding:10px;font-size:13px}.link-danger:hover:not(:disabled){background:#ff5c7a14}.link-btn{color:var(--accent);border:1px solid var(--border);text-align:center;background:0 0;width:100%;min-height:44px;padding:12px;font-size:14px}.link-btn:hover:not(:disabled){background:var(--bg-elev2)}.sec-bar{border-bottom:1px solid var(--border);background:var(--bg-elev);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:8px 16px;display:flex}.sec-badge{letter-spacing:.3px;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700}.sec-badge.fs{background:var(--green-dim);color:var(--green);border:1px solid var(--green)}.sec-badge.pgp{background:var(--bg-elev2);color:var(--text-dim);border:1px solid var(--border)}.sec-badge.verified{background:var(--green-dim);color:var(--green);border:1px solid var(--green)}.eph{color:var(--text-dim);align-items:center;gap:6px;font-size:13px;display:flex}.eph select{background:var(--bg-elev2);width:auto;color:var(--text);border:1px solid var(--border);font-size:12px;font-family:var(--font);cursor:pointer;border-radius:8px;padding:5px 10px}.eph-tag{color:var(--green)}.sec-bar .eph{margin-left:auto}.verify-panel{border-radius:var(--radius);background:var(--accent-light);border:1px solid var(--accent);margin:12px 16px 0;padding:14px 16px}.verify-panel.alarm{border-color:var(--red);background:#ff5c7a1a}.verify-title{margin-bottom:6px;font-size:14px;font-weight:800}.verify-panel.alarm .verify-title{color:var(--red)}.verify-text{color:var(--text-dim);margin-bottom:12px;font-size:13px;line-height:1.5}.overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;justify-content:center;align-items:flex-end;animation:.2s overlay-in;display:flex;position:fixed;inset:0}.overlay-backdrop{position:absolute;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@media (width>=769px) and (pointer:fine){.overlay{align-items:center}}.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1;width:100%;max-width:480px;max-height:85vh;padding:24px 20px;animation:.25s cubic-bezier(.4,0,.2,1) modal-up;position:relative;overflow-y:auto}@keyframes modal-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width>=769px) and (pointer:fine){.modal{border-radius:var(--radius-lg);animation:.2s modal-fade}@keyframes modal-fade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}}.modal h3{margin-bottom:16px;font-size:20px;font-weight:800}.name-with-picker{align-items:stretch;gap:8px;display:flex}.name-with-picker input{flex:1}.picker-btn{background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-shrink:0;width:48px;margin:0;font-size:20px}.picker-btn:hover{background:var(--bg-elev)}.modal-actions{gap:10px;margin-top:12px;display:flex}.modal-actions button{flex:1;margin:0}.modal-sub{color:var(--text-dim);margin:-8px 0 16px;font-size:13px;line-height:1.5}.modal-note{color:var(--text-dim);margin:8px 0;font-size:13px;line-height:1.5}.modal-note.tiny{margin-top:10px;font-size:11px}.secchk-overall{text-align:center;border-radius:9px;margin:4px 0 12px;padding:9px 12px;font-weight:600}.secchk-overall.secchk-ok{color:#3fb950;background:#2ea04329}.secchk-overall.secchk-warn{color:#d29922;background:#d2992229}.secchk-overall.secchk-fail{color:#f85149;background:#f8514929}.secchk-list{flex-direction:column;gap:9px;margin-bottom:6px;display:flex}.secchk-row{align-items:center;gap:10px;font-size:14px;display:flex}.secchk-dot{border-radius:50%;flex:none;width:10px;height:10px}.secchk-ok .secchk-dot{background:#3fb950}.secchk-warn .secchk-dot{background:#d29922}.secchk-fail .secchk-dot{background:#f85149}.secchk-info .secchk-dot{background:var(--text-dim)}.secchk-detail{opacity:.6;font-size:12px}.autolock-setting{margin:8px 0}.autolock-setting .setting-label{color:var(--text-dim);margin-bottom:6px;font-size:13px;display:block}.autolock-opts{flex-wrap:wrap;gap:6px;display:flex}.autolock-opt{border:1px solid var(--border,#ffffff1f);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:13px}.autolock-opt.active{background:var(--accent);color:#fff;border-color:var(--accent)}.delete-menu{max-width:320px}.delete-menu button{text-align:left;width:100%;margin:0 0 8px;padding:14px}.setup-card{overflow-y:auto}.fingerprint.mini{margin-top:6px;padding:8px 12px;font-size:11px}.contacts-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.contacts-head label{margin-bottom:0}.contacts-head-actions{gap:6px;display:flex}.add-contact-btn,.save-contact-btn,.scan-contact-btn{background:var(--bg-elev2);width:auto;color:var(--accent);border:1px solid var(--border);min-height:36px;margin:0;padding:8px 14px;font-size:13px}.add-contact-btn:hover,.save-contact-btn:hover,.scan-contact-btn:hover{border-color:var(--accent);background:var(--bg-elev2)}.add-contact-form{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;margin-bottom:14px;padding:12px;display:flex}.add-contact-form button{width:100%;margin:0}.contacts-empty{text-align:center;color:var(--text-dim);padding:18px 8px}.contacts-empty p{margin:2px 0;font-size:13px}.contacts-list{flex-direction:column;gap:6px;display:flex}.contact-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;padding:10px 12px;transition:border-color .15s;display:flex}.contact-row:hover{border-color:var(--accent)}.contact-row:active{background:var(--bg-elev2)}.contact-tap{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.contact-avatar{background:linear-gradient(135deg, var(--accent), var(--green));color:#fff;border-radius:50%;flex:0 0 42px;justify-content:center;align-items:center;width:42px;height:42px;font-size:17px;font-weight:700;display:flex;overflow:hidden}.contact-meta{flex:1;min-width:0}.contact-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex;overflow:hidden}.contact-id{font-family:var(--mono);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.contact-ic{background:var(--bg-elev2);width:32px;height:32px;color:var(--text-dim);border:1px solid var(--border);border-radius:8px;flex:0 0 32px;min-height:32px;margin:0;padding:0;font-size:14px}.contact-ic:hover:not(:disabled){background:var(--bg-elev2);color:var(--text)}.contact-ic.danger:hover:not(:disabled){color:var(--red);border-color:var(--red)}.contact-rename{width:100%}.save-contact-btn{background:var(--bg-elev2);width:auto;color:var(--accent);border:1px solid var(--border);margin:0;padding:6px 12px;font-size:12px}.quick-contacts{margin-top:16px}.quick-contacts label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:10px;font-size:12px;display:block}.quick-contact{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:10px 0;display:flex}.quick-contact:last-child{border-bottom:none}.quick-contact-avatar{background:linear-gradient(135deg, var(--accent), var(--green));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:flex}.quick-contact-name{font-size:15px;font-weight:600}.exchange-row{gap:8px;margin-top:10px;display:flex}.exchange-btn{background:var(--bg-elev2);width:auto;color:var(--accent);border:1px solid var(--border);flex:1;justify-content:center;align-items:center;gap:6px;min-height:44px;margin:0;padding:12px 10px;font-size:14px;display:flex}.exchange-btn:hover:not(:disabled){border-color:var(--accent);background:var(--bg)}.exchange-ic{font-size:16px;line-height:1}.qr-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.qr-modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:340px;padding:24px}.qr-modal h3{color:var(--text);margin:0 0 6px;font-size:18px}.qr-sub{color:var(--text-dim);margin:0 0 16px;font-size:12px}.qr-img{border-radius:var(--radius);background:#fff;width:240px;height:240px;margin:0 auto 16px;padding:12px;display:block}.qr-loading{width:240px;height:240px;color:var(--text-dim);background:var(--bg);border-radius:var(--radius);justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.qr-id{font-family:var(--mono);color:var(--accent);word-break:break-all;margin-bottom:16px;font-size:12px}.qr-actions{flex-direction:column;gap:8px;display:flex}.qr-actions button{width:100%;margin:0}.qr-modal.scanner .scan-frame{aspect-ratio:1;border-radius:var(--radius);border:2px solid var(--accent);background:#000;width:100%;margin-bottom:12px;position:relative;overflow:hidden}.scan-video{object-fit:cover;width:100%;height:100%}.scan-error{color:var(--red);background:var(--bg);border-radius:var(--radius);margin-bottom:12px;padding:20px;font-size:13px}.settings-modal{max-width:520px}.settings-section{border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:16px}.settings-section:last-of-type{border-bottom:none;padding-bottom:0}.sec-collapsible>.sec-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.sec-collapsible>.sec-head>svg:last-child{opacity:.55;flex-shrink:0;margin-left:auto;transition:transform .35s}.sec-collapsible.collapsed>.sec-head>svg:last-child{transform:rotate(-90deg)}.sec-collapsible{max-height:2400px;transition:max-height .45s cubic-bezier(.4,0,.2,1),padding-bottom .45s;overflow:hidden}.sec-collapsible.collapsed{max-height:44px;padding-bottom:0}.sec-collapsible>:not(.sec-head){transition:opacity .3s 50ms}.sec-collapsible.collapsed>:not(.sec-head){opacity:0;transition:opacity .2s}.settings-section>label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:10px;font-size:12px;font-weight:700;display:block}.setting-row{justify-content:space-between;align-items:center;padding:10px 0;font-size:15px;display:flex}.toggle{background:var(--border);cursor:pointer;border-radius:13px;width:46px;height:26px;min-height:26px;padding:0;transition:background .2s;position:relative}.toggle.on{background:var(--green)}.toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle.on .toggle-knob{transform:translate(20px)}.pin-screen{text-align:center}.pin-dots{justify-content:center;gap:12px;margin:20px 0;display:flex}.pin-dot{border:2px solid var(--border);border-radius:50%;width:14px;height:14px;transition:all .15s}.pin-dot.filled{background:var(--accent);border-color:var(--accent)}.pin-keypad{grid-template-columns:repeat(3,1fr);gap:12px;max-width:240px;margin:0 auto;display:grid}.pin-key{background:var(--bg-elev2);width:72px;height:72px;color:var(--text);border:none;border-radius:50%;justify-content:center;align-items:center;min-height:72px;padding:0;font-size:28px;font-weight:700;display:flex}.mesh-stats{gap:12px;margin-bottom:12px;display:flex}.mesh-stat{background:var(--bg-elev2);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex:1;padding:14px}.mesh-num{color:var(--accent);font-size:28px;font-weight:700;font-family:var(--mono);line-height:1}.mesh-lbl{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-top:6px;font-size:11px}.discovered-peers{border-top:1px solid #ffffff0f;margin-top:12px;padding-top:12px}.discovered-peers label{opacity:.5;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.role-badge{background:var(--bg-elev2);color:var(--text-dim);text-transform:uppercase;letter-spacing:.4px;border-radius:10px;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:700}.role-badge.owner{color:var(--accent);background:#6c5ce733}.role-badge.admin{background:var(--green-dim);color:var(--green)}.member-list{max-height:300px;margin-bottom:12px;overflow-y:auto}.member-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 0;font-size:15px;display:flex}.member-row:last-child{border-bottom:none}.member-actions{flex-wrap:wrap;gap:4px;display:flex}.member-actions button{width:auto;min-height:30px;margin:0;padding:5px 10px;font-size:11px}.member-check{cursor:pointer;align-items:center;gap:10px;padding:10px 0;font-size:15px;display:flex}.member-check input{width:20px;height:20px;min-height:20px}.member-select,.member-select-item{flex-direction:column;gap:4px;display:flex}.avatar-picker{flex-direction:column;align-items:center;gap:12px;margin-bottom:16px;display:flex}.avatar-actions{gap:8px;display:flex}.current-avatar{border:2px solid var(--border);border-radius:50%;width:80px;height:80px;overflow:hidden}.current-avatar img{object-fit:cover;width:100%;height:100%}.current-avatar .avatar-placeholder{font-size:32px}body.ss-guard #root,body.ss-guard .app{filter:blur(24px)brightness(.3);transition:filter 50ms}.ss-blur-overlay{z-index:999;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:var(--bg);position:fixed;inset:0}.floating-error{bottom:calc(72px + var(--safe-bottom));z-index:50;text-align:center;margin:0;position:fixed;left:16px;right:16px}.typing-indicator{color:var(--text-dim);padding:0 16px 4px;font-size:12px;font-style:italic}.conn-banner{text-align:center;color:#fa0;background:#ffa5001a;border-bottom:1px solid #ffa50033;flex-shrink:0;padding:8px 16px;font-size:12px}.conn-banner.connected{background:var(--green-dim);color:var(--green);border-color:var(--green)}@media (width<=768px),(pointer:coarse){.app{padding:0}.chatlist-view{max-width:100%}.chat-item{gap:14px;padding:14px 16px}.chat-avatar{width:50px;height:50px;font-size:20px}.chat-name{font-size:16px}.chat-preview{font-size:14px}.chat-view{max-width:100%}.messages{gap:8px;padding:16px 14px}.bubble{border-radius:18px;padding:11px 15px;font-size:15px}.message{max-width:82%}.input-bar{padding:8px 10px;padding-bottom:calc(10px + var(--safe-bottom));gap:4px}.input-bar input[type=text]{padding:12px 20px;font-size:16px}.chatlist-header,.chat-header{padding-top:var(--safe-top)}.setup-card{border-radius:0;max-width:100%;height:100%;max-height:100%}.overlay{align-items:flex-end}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:90vh}.fab{bottom:calc(20px + var(--safe-bottom))}.header-btn{width:44px;height:44px;font-size:20px}}@media (width<=380px){.chat-avatar{width:44px;height:44px;font-size:18px}.chat-item{gap:10px;padding:12px}.chatlist-header,.chat-header{padding:0 12px;padding-top:var(--safe-top)}.messages{padding:12px 8px}.input-bar{padding:6px 8px;padding-bottom:calc(8px + var(--safe-bottom))}.bubble{padding:10px 12px;font-size:14px}}@media (width>=769px) and (pointer:fine){body{-webkit-user-select:text;user-select:text;font-size:14px}.app.desktop-layout{flex-direction:row;height:100%}.chatlist-pane{width:var(--sidebar-w);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100%;display:flex;overflow:hidden}.chat-pane{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.app.desktop-layout .back-btn{display:none}.chat-placeholder{color:var(--text-dim);background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.chat-placeholder svg{opacity:.3}.chat-placeholder h2{font-size:20px;font-weight:700}.chat-placeholder p{text-align:center;max-width:320px;font-size:14px;line-height:1.5}.overlay{align-items:center}.modal{border-radius:var(--radius-lg);max-width:520px;animation:.2s modal-fade}@keyframes modal-fade{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.fab{position:absolute}.chat-item:hover{background:var(--bg-elev)}.chat-item.active{background:var(--accent-light)}.chat-avatar{width:44px;height:44px;font-size:18px}.chat-item{padding:10px 14px}.messages{padding:20px 24px}.message{max-width:65%}.input-bar{padding:12px 20px}.chatlist-header,.chat-header{height:var(--header-h);padding-top:0}.input-bar{padding-bottom:12px}.settings-modal{max-width:560px}.chatlist-search{display:block}}.chatlist-search{display:none}.chatlist-search input{background:var(--bg);border:1px solid var(--border);border-radius:10px;width:calc(100% - 24px);min-height:36px;margin:8px 12px;padding:8px 12px;font-size:13px}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.chat-view{animation:.2s slide-in-right}.chatlist-view{animation:.15s fade-in}.desktop-mini-sidebar,.desktop-main-placeholder{display:none!important}@media (width>=768px){body{background:#06060b}.app{border-left:1px solid var(--border);border-right:1px solid var(--border);max-width:620px;margin:0 auto;box-shadow:0 0 80px #0000008c}.fab{position:absolute}}@media (width>=1100px){.app{max-width:680px}}@media (width>=768px) and (pointer:coarse){body{background:var(--bg)}.app{max-width:100%;box-shadow:none;border-left:none;border-right:none;margin:0}}.profile-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.profile-avatar{background:var(--bg-elev2);cursor:pointer;border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;font-weight:600;display:flex;position:relative}.profile-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.profile-avatar-edit{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex;position:absolute;bottom:-2px;right:-2px}.profile-name-input{flex:1;margin:0}.appearance-modal{max-height:85vh;overflow-y:auto}.appearance-modal label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin:14px 0 6px;font-size:12px;display:block}.preset-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.preset-swatch{aspect-ratio:1;border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:0;position:relative}.preset-x{color:var(--text-dim);font-size:18px}.preset-theme{aspect-ratio:1;border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;padding:0;display:flex;overflow:hidden}.theme-me,.theme-peer{flex:1;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.color-pickers{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.cp{background:var(--bg-elev2);border-radius:8px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:13px;display:flex}.cp input[type=color]{cursor:pointer;background:0 0;border:none;width:36px;height:28px;padding:0}.font-list{flex-wrap:wrap;gap:8px;display:flex}.font-choice{background:var(--bg-elev2);border:1px solid var(--border);cursor:pointer;border-radius:20px;width:auto;padding:8px 14px;font-size:14px}.attach-preview-overlay{z-index:70;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.attach-preview{flex-direction:column;width:100%;max-width:480px;height:100%;display:flex;position:relative}.attach-close{z-index:2;color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:50%;width:40px;height:40px;font-size:18px;position:absolute;top:12px;left:12px}.attach-media{flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.attach-media-el{object-fit:contain;max-width:100%;max-height:100%}.attach-caption-bar{background:var(--bg-elev);align-items:center;gap:8px;padding:12px;display:flex}.attach-caption-input{flex:1;margin:0}.attach-send{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:46px;height:46px;font-size:18px}.att-caption{margin-top:6px;font-size:14px;line-height:1.4}.new-msgs-pill{background:var(--accent);color:#fff;cursor:pointer;z-index:20;border:none;border-radius:20px;width:auto;padding:8px 16px;font-size:13px;font-weight:600;position:absolute;bottom:90px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.report-type-row{gap:8px;margin-bottom:12px;display:flex}.report-type{background:var(--bg-elev2);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex:1;padding:10px;font-size:13px}.report-type.active{background:var(--accent);color:#fff;border-color:var(--accent)}.report-text{resize:vertical;width:100%;margin-bottom:10px;font-family:inherit}.app-version-line{color:var(--text-dim);text-align:center;margin-top:8px;font-size:11px}.text-scale-ctrl{align-items:center;gap:8px;display:flex}.text-scale-ctrl button{background:var(--bg-elev2);border:1px solid var(--border);cursor:pointer;border-radius:8px;width:34px;height:30px;padding:0;font-weight:700}.text-scale-val{text-align:center;min-width:40px;color:var(--text-dim);font-size:13px}.send-btn{justify-content:center;align-items:center;display:flex}.send-btn svg{font-size:20px}.search-bar{background:var(--bg-elev);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;display:flex}.search-bar svg{color:var(--text-dim);font-size:18px}.search-bar input{flex:1;margin:0}.search-bar button{width:34px;color:var(--text-dim);cursor:pointer;background:0 0;border:none}.forward-list{flex-direction:column;gap:4px;max-height:50vh;margin-bottom:12px;display:flex;overflow-y:auto}.forward-item{background:var(--bg-elev2);cursor:pointer;text-align:left;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.forward-item .contact-avatar{width:36px;height:36px}.lang-select{background:var(--bg-elev2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:14px}.update-banner{background:var(--accent);color:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex}.update-banner.mandatory{background:#b3122f}.update-info{flex:1;min-width:200px;font-size:13px}.update-actions{gap:8px;display:flex}.update-btn{color:var(--accent);background:#fff;border-radius:16px;padding:6px 14px;font-size:13px;font-weight:700;text-decoration:none}.update-later{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:16px;padding:6px 12px;font-size:13px}.typing-indicator{color:var(--accent);font-style:italic}.typing-dots i{opacity:.3;font-style:normal;animation:1.4s infinite typingBlink}.typing-dots i:nth-child(2){animation-delay:.2s}.typing-dots i:nth-child(3){animation-delay:.4s}@keyframes typingBlink{0%,60%,to{opacity:.3}30%{opacity:1}}.typing-bubble-row{animation:.2s fadeInUp}.bubble.typing-bubble{align-items:center;padding:12px 15px;display:inline-flex}.typing-dots-cloud{align-items:center;gap:4px;height:8px;display:inline-flex}.typing-dots-cloud i{background:var(--text-dim,#90a0b0);border-radius:50%;width:7px;height:7px;animation:1.3s ease-in-out infinite both typingDotBounce;display:inline-block}.typing-dots-cloud i:nth-child(2){animation-delay:.18s}.typing-dots-cloud i:nth-child(3){animation-delay:.36s}@keyframes typingDotBounce{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg-link{color:#7db3ff;word-break:break-all;text-decoration:underline}.message.me .msg-link{color:#cfe0ff}.msg-code{font-family:var(--mono,monospace);background:#00000040;border-radius:4px;padding:1px 5px;font-size:.9em}.edited-tag{opacity:.6;font-size:11px}.pinned-bar{background:var(--bg-elev);border-bottom:1px solid var(--border);cursor:pointer;flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;display:flex}.pin-icon{flex-shrink:0}.pin-text{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.pin-remove{width:30px;color:var(--text-dim);cursor:pointer;background:0 0;border:none}.edit-bar{background:var(--accent);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;display:flex}.edit-bar button{color:#fff;cursor:pointer;background:0 0;border:none;width:30px}:root[dir=rtl] .message.me{align-self:flex-start}:root[dir=rtl] .message.peer{align-self:flex-end}.home-toolbar{align-items:center;gap:8px;padding:4px 12px 8px;display:flex}.home-search{background:var(--bg-elev2);color:var(--text-dim);border-radius:16px;flex:1;align-items:center;gap:7px;padding:3px 11px;display:flex}.home-search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:1.4}.home-search svg{opacity:.7;flex-shrink:0;width:15px;height:15px}.home-toolbar .header-btn{padding:6px}.home-search-clear{cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:flex}.home-search-clear svg{width:16px;height:16px}.bottom-tabs{background:var(--bg-elev);border-top:1px solid var(--border,#ffffff14);padding:4px 0 max(4px, env(safe-area-inset-bottom));z-index:30;display:flex;position:sticky;bottom:0;left:0;right:0}.tab-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;margin:0;padding:6px 0;display:flex}.tab-btn .tab-ico{filter:grayscale(.4);opacity:.75;font-size:20px;line-height:1}.tab-btn .tab-lbl{font-size:11px;font-weight:600}.tab-btn.active{color:var(--accent)}.tab-btn.active .tab-ico{filter:none;opacity:1}.chatlist-view .chat-list,.contacts-tab,.calls-tab{padding-bottom:8px}.fab{bottom:72px!important}.chat-settings-modal .link-btn,.chat-settings-modal .link-danger{text-align:left;width:100%;padding:12px 4px;display:block}.chat-settings-modal .link-btn{color:var(--text)}.chat-settings-modal .link-btn:hover{color:var(--accent)}.media-grid{grid-template-columns:repeat(3,1fr);gap:4px;max-height:50vh;margin:12px 0;display:grid;overflow-y:auto}.media-thumb{aspect-ratio:1;background:var(--bg-elev2);border-radius:8px;justify-content:center;align-items:center;font-size:22px;display:flex;overflow:hidden}.media-thumb img{object-fit:cover;width:100%;height:100%}.tab-empty{color:var(--text-dim);text-align:center;flex-direction:column;align-items:center;gap:14px;padding:48px 20px;display:flex}.conn-state{font-weight:600}.conn-connecting{color:var(--text-dim)}.conn-relay{color:#e0a83a}.conn-unstable{color:#e8763a}.conn-offline{color:#e05555}:root.light{--bg:#f4f4f8;--bg-elev:#fff;--bg-elev2:#ececf2;--bg-elev3:#e0e0ea;--border:#d8d8e2;--border-light:#c4c4d2;--text:#16161f;--text-dim:#5a5a70;--text-dimmer:#9494a8;--accent:#5a4bd0;--accent-dim:#4a3bb5;--accent-light:#5a4bd024;--green:#00956a;--green-dim:#00956a29;--red:#d83a5a;--blue:#1f8fd0;--orange:#d85f10}:root.light .home-search{background:#e8e8ef}:root.light .bottom-tabs{background:#fff;border-top-color:#e0e0ea}.overlay-top{z-index:200!important}.attach-wrap{align-items:center;display:flex;position:relative}.attach-menu{z-index:40;flex-direction:column;gap:12px;animation:.16s attach-pop;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}@keyframes attach-pop{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.attach-circle{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 4px 14px #00000059}.attach-circle svg{width:22px;height:22px}.attach-circle.file{background:var(--accent);color:#fff}.attach-circle.photo{background:var(--green);color:#04140e}.attach-circle.video{background:var(--blue);color:#051a24}.icon-btn.attach-open{color:var(--accent);transition:transform .15s;transform:rotate(45deg)}.camera-overlay{z-index:250;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera-preview{object-fit:cover;flex:1;width:100%;height:100%}.camera-close{top:max(14px, env(safe-area-inset-top));color:#fff;cursor:pointer;z-index:2;background:#00000080;border:none;border-radius:50%;width:40px;height:40px;font-size:18px;position:absolute;left:14px}.camera-controls{bottom:max(28px, env(safe-area-inset-bottom));justify-content:center;display:flex;position:absolute;left:0;right:0}.camera-shutter{cursor:pointer;background:#fff;border:5px solid #ffffff80;border-radius:50%;width:72px;height:72px}.camera-shutter.video{background:var(--red)}.camera-shutter.video.rec{border-radius:18px;animation:1s infinite rec-pulse}@keyframes rec-pulse{0%,to{transform:scale(1)}50%{transform:scale(.85)}}.contact-card{text-align:center}.contact-card-avatar{background:var(--accent);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;margin:4px auto 12px;font-size:34px;font-weight:700;display:flex;position:relative}.contact-card-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.contact-avatar-edit{background:var(--bg-elev3);border:2px solid var(--bg-elev);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex;position:absolute;bottom:0;right:0}.contact-name-input{text-align:center;border:none;border-bottom:1px solid var(--border);color:var(--text);background:0 0;outline:none;width:80%;margin:0 auto 8px;font-size:18px;font-weight:700}.contact-id{font-family:var(--mono);color:var(--text-dim);word-break:break-all;cursor:pointer;margin-bottom:8px;font-size:12px}.contact-actions{grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0;display:grid}.contact-actions button{background:var(--bg-elev2);border-radius:var(--radius);color:var(--text);cursor:pointer;border:none;flex-direction:column;align-items:center;gap:4px;margin:0;padding:12px 4px;font-size:11px;font-weight:600;display:flex}.contact-actions button svg{width:22px;height:22px;color:var(--accent)}.contact-card label{text-align:left;color:var(--text-dim);margin:12px 0 6px;font-size:12px;font-weight:600;display:block}.links-list{text-align:left;flex-direction:column;gap:6px;display:flex}.links-list a{color:var(--blue);word-break:break-all;font-size:13px}.call-minimize{z-index:5;color:#fff;cursor:pointer;background:#00000059;border:none;border-radius:50%;width:36px;height:36px;font-size:20px;line-height:1;position:absolute;top:12px;left:12px}.call-mini-bar{z-index:210;background:var(--accent,#2b7a4b);color:#fff;cursor:pointer;align-items:center;gap:10px;padding:8px 14px;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #0000004d}.call-mini-text{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.call-mini-return{opacity:.9;font-size:12px}.call-mini-end{color:#fff;cursor:pointer;background:#d33;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.call-pip{z-index:209;cursor:pointer;background:#000;border-radius:14px;width:108px;height:168px;position:fixed;bottom:90px;right:14px;overflow:hidden;box-shadow:0 4px 16px #00000080}.call-pip-main{object-fit:cover;width:100%;height:100%}.call-pip-small{object-fit:cover;border:1.5px solid #ffffffb3;border-radius:7px;width:38px;height:54px;position:absolute;bottom:6px;right:6px}.call-picker .call-picker-list{max-height:46vh;overflow-y:auto}.call-picker-actions{flex-direction:column;align-items:center;padding:8px 0 4px;display:flex}.call-picker-actions .call-avatar-big{width:76px;height:76px;margin:6px 0 10px;font-size:30px}.call-picker-actions .call-name{margin-bottom:18px;font-size:17px;font-weight:600}.call-picker-buttons{gap:14px;margin-bottom:14px;display:flex}.call-start-btn{color:#fff;cursor:pointer;border:none;border-radius:24px;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:600;display:flex}.call-start-btn.audio{background:#2b7a4b}.call-start-btn.video{background:#2b6cb0}.call-start-btn svg{width:18px;height:18px}.attach-trigger{padding:5px 7px}.attach-mini-grid{grid-template-columns:1fr 1fr;gap:1px 3px;display:grid}.attach-mini-grid svg{opacity:.85;width:11px;height:11px}.attach-trigger.attach-open .attach-mini-grid svg{opacity:1}.attach-circle.loc{background:#7a2bb0}.media-thumb video{object-fit:cover;width:100%;height:100%}.video-consent{color:#fff;z-index:6;white-space:nowrap;background:#000000a6;border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex;position:absolute;bottom:110px;left:50%;transform:translate(-50%)}.video-consent button{cursor:pointer;border:none;border-radius:10px;padding:7px 12px;font-size:13px}.call-avatar-wrap{justify-content:center;align-items:center;display:flex;position:relative}.call-avatar-wrap .call-local{object-fit:cover;border:1.5px solid #fff9;border-radius:10px;width:92px;height:130px;position:absolute;bottom:-20px;right:-60px}.map-reciprocity{text-align:center;color:var(--text);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.chain-panel{border-top:1px solid var(--border,#ffffff14);margin-top:12px;padding-top:12px}.chain-row{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;display:flex}.chain-badge{letter-spacing:.5px;color:#fff;background:#7a2bb0;border-radius:8px;padding:2px 7px;font-size:10px}.wallet-row{background:var(--bg-elev2);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;margin-top:10px;padding:8px 10px;display:flex}.wallet-lbl{color:var(--text-dim);font-size:13px}.wallet-addr{color:var(--text);font-family:monospace;font-size:12px}.back-hint-toast{z-index:260;color:#fff;white-space:nowrap;background:#000000d1;border-radius:20px;padding:10px 18px;font-size:13px;animation:.18s backHintIn;position:fixed;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #0006}@keyframes backHintIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.saved-toast{z-index:10000;background:#2ea043eb;align-items:center;gap:7px;display:inline-flex}.group-avatar-edit{flex-direction:column;align-items:center;gap:8px;margin:6px 0 16px;display:flex}.group-avatar{background:var(--accent,#2b7a4b);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;font-size:30px;font-weight:600;display:flex;position:relative}.group-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.group-avatar .contact-avatar-edit{background:var(--accent,#2b7a4b);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex;position:absolute;bottom:0;right:0}.group-avatar-name{color:var(--text);font-size:15px;font-weight:600}.status-tab .status-section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;padding:12px 16px 4px;font-size:12px}.status-ring{background:0 0;border-radius:50%;padding:3px;position:relative}.status-ring.unseen{animation:2.2s ease-in-out infinite statusPulse}.status-ring.unseen:before{content:"";z-index:0;background:conic-gradient(#ff3b30,#ff9500,#fc0,#34c759,#00c7be,#007aff,#5856d6,#af52de,#ff2d55,#ff3b30);border-radius:50%;animation:3.2s linear infinite statusSpin;position:absolute;inset:0}.status-ring.has:before{content:"";z-index:0;background:conic-gradient(#2ee6a6,#00c7be,#007aff,#5856d6,#2ee6a6);border-radius:50%;animation:4s linear infinite statusSpin;position:absolute;inset:0}.status-ring.seen:before{content:"";z-index:0;background:var(--border,#ffffff2e);border-radius:50%;position:absolute;inset:0}.status-ring.add{background:0 0}.status-ring .avatar-placeholder,.status-ring .avatar-img,.status-ring>*{z-index:1;position:relative}.status-ring.unseen .avatar-placeholder,.status-ring.unseen .avatar-img,.status-ring.has .avatar-placeholder,.status-ring.has .avatar-img,.status-ring.seen .avatar-placeholder,.status-ring.seen .avatar-img{border:2px solid var(--bg);box-sizing:border-box}@keyframes statusSpin{to{transform:rotate(360deg)}}@keyframes statusPulse{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}.status-add{box-sizing:border-box;background:var(--accent,#2ee6a6);color:#04121a;border:2px solid var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;font-weight:700;display:flex;position:absolute;bottom:-2px;right:-2px}.status-add-circle{aspect-ratio:1;box-sizing:border-box;width:100%;height:100%;color:var(--accent,#2ee6a6);background:color-mix(in srgb, var(--accent,#2ee6a6) 14%, transparent);border:2px dashed color-mix(in srgb, var(--accent,#2ee6a6) 60%, transparent);border-radius:50%;justify-content:center;align-items:center;display:flex}.status-addmore{box-sizing:border-box;background:var(--bg-elev2);width:32px;min-width:32px;height:32px;color:var(--text);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:18px;display:flex}.status-viewer{z-index:300;perspective:1500px;background:#000;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.status-progress{z-index:3;gap:4px;display:flex;position:absolute;top:8px;left:8px;right:8px}.sp-bar{background:#ffffff4d;border-radius:3px;flex:1;height:3px;position:relative;overflow:hidden}.sp-fill{transform-origin:0;background:#fff;border-radius:3px;width:100%;position:absolute;top:0;bottom:0;left:0}.sp-fill.full{transform:scaleX(1)}.sp-fill.anim{animation:5s linear forwards spFill;transform:scaleX(0)}@keyframes spFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.status-vhead{color:#fff;z-index:3;align-items:center;gap:10px;display:flex;position:absolute;top:20px;left:12px;right:12px}.status-vname{font-size:14px;font-weight:600}.status-vtime{opacity:.8;font-size:12px}.status-close,.status-del{color:#fff;box-sizing:border-box;cursor:pointer;background:#00000059;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;margin-left:auto;font-size:15px;display:flex}.status-del{margin-left:0}.status-stage{width:100%;transform-style:preserve-3d;flex:1;justify-content:center;align-items:center;display:flex}.status-img{object-fit:contain;max-width:100%;max-height:100%}.status-img.flip{transform-origin:top;backface-visibility:hidden;animation:.58s cubic-bezier(.22,.68,.2,1) both pageTurn;box-shadow:0 -20px 60px #0009}@keyframes pageTurn{0%{opacity:0;transform:rotateX(-92deg)translateY(-6%)scale(.98)}60%{opacity:1}to{opacity:1;transform:rotateX(0)translateY(0)scale(1)}}.status-caption{color:#fff;text-align:center;text-shadow:0 1px 4px #000000b3;z-index:3;font-size:15px;position:absolute;bottom:40px;left:16px;right:16px}.status-tap-top{z-index:2;height:22%;position:absolute;top:60px;left:0;right:0}.status-privacy-btn{background:var(--bg-elev2);width:calc(100% - 24px);color:var(--text-dim);text-align:left;cursor:pointer;border:none;border-radius:12px;margin:4px 12px 8px;padding:10px 12px;font-size:13px;display:block}.status-priv-modes{flex-direction:column;gap:4px;margin:8px 0;display:flex}.status-priv-mode{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px;font-size:15px;display:flex}.status-priv-mode:hover{background:var(--bg-elev2)}.status-priv-list{max-height:40vh;margin:6px 0;overflow-y:auto}.status-priv-contact{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:8px 6px;display:flex}.status-priv-contact:hover{background:var(--bg-elev2)}.status-priv-name{flex:1;font-size:14px}.status-priv-check{border:2px solid var(--border);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:flex}.status-priv-check.on{background:var(--accent,#2ee6a6);border-color:var(--accent,#2ee6a6);color:#04121a}.attach-circle.sticker{background:#e67e22}.attach-circle.draw{background:#16a085}.attach-circle.game{background:#8e44ad}.sticker-img{object-fit:contain;width:128px;height:128px}.sticker-bubble{box-shadow:none!important;background:0 0!important;padding:0!important}.sticker-picker{max-width:360px}.sticker-tabs{gap:6px;margin-bottom:10px;display:flex}.sticker-tab{background:var(--bg-elev2);cursor:pointer;border:none;border-radius:10px;flex:1;padding:8px;font-size:20px}.sticker-tab.active{background:var(--accent,#2ee6a6)}.sticker-grid{grid-template-columns:repeat(4,1fr);gap:8px;max-height:46vh;display:grid;overflow-y:auto}.sticker-cell{cursor:pointer;background:0 0;border:none;padding:2px}.sticker-cell img{border-radius:12px;width:100%}.loc-sender-av{object-fit:cover;z-index:2;border:2px solid #fff;border-radius:50%;width:30px;height:30px;position:absolute;top:6px;left:6px}.loc-sender-av.ph{color:#fff;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.loc-card{position:relative}.draw-overlay{z-index:250;touch-action:none;position:fixed;inset:0}.draw-canvas{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.draw-toolbar{z-index:2;background:#000000b3;border-radius:24px;align-items:center;gap:10px;padding:10px 14px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.draw-hint{color:#fff;margin-right:4px;font-size:12px}.draw-color{cursor:pointer;border:2px solid #fff6;border-radius:50%;width:26px;height:26px}.draw-color.active{border-color:#fff;transform:scale(1.15)}.draw-close{color:#fff;cursor:pointer;background:#d33;border:none;border-radius:50%;width:30px;height:30px}.game-overlay{z-index:255;background:#000000b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.game-panel{background:var(--card,#161f2b);border:1px solid var(--border-light,#3a3a52);border-radius:20px;max-width:94vw;max-height:92vh;padding:18px;overflow:auto;box-shadow:0 10px 40px #00000080}.game-head{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:17px;font-weight:700;display:flex}.game-close{background:var(--bg-elev2);width:32px;height:32px;color:var(--text);cursor:pointer;border:none;border-radius:50%;font-size:15px}.game-turn{text-align:center;color:var(--text-dim);margin-bottom:12px;font-size:14px}.game-banner{text-align:center;margin-bottom:12px;font-size:20px;font-weight:800}.game-list{flex-direction:column;gap:8px;display:flex}.game-choice{background:var(--bg-elev2);color:var(--text);cursor:pointer;border:none;border-radius:14px;align-items:center;gap:12px;padding:14px;font-size:16px;display:flex}.game-ico{font-size:24px}.ttt-board{background:var(--bg-elev,#14141f);border-radius:14px;grid-template-columns:repeat(3,84px);gap:6px;padding:6px;display:grid}.ttt-cell{background:var(--bg-elev3,#2a2a3e);width:84px;height:84px;color:var(--text);border:1px solid var(--border-light,#3a3a52);cursor:pointer;border-radius:12px;font-size:42px;transition:background .12s}.ttt-cell:hover:not(:disabled){background:var(--border-light,#3a3a52)}.ttt-cell:disabled{cursor:default;opacity:.85}.c4-board{background:#1a3a6b;border-radius:12px;gap:4px;padding:8px;display:flex}.c4-col{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:0;display:flex}.c4-cell{background:#0d1b33;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex}.c4-cell.pA{background:#ff3b30}.c4-cell.pB{background:#fc0}.ms-board,.bs-grid{gap:3px;display:grid}.ms-cell{background:var(--bg-elev3,#223);cursor:pointer;width:34px;height:34px;color:var(--text);border:none;border-radius:6px;font-size:15px;font-weight:700}.ms-cell.rev{background:var(--bg-elev,#0e1621)}.ms-cell.boom{background:#d33}.hm-panel{text-align:center}.hm-figure{letter-spacing:2px;margin-bottom:12px;font-size:20px}.hm-word{justify-content:center;gap:8px;margin-bottom:8px;display:flex}.hm-slot{border-bottom:3px solid var(--text);text-transform:uppercase;width:28px;height:36px;font-size:26px}.hm-wrong{color:var(--text-dim);margin-bottom:12px;font-size:13px}.hm-letters{grid-template-columns:repeat(9,1fr);gap:4px;max-width:340px;display:grid}.hm-letters button{background:var(--bg-elev2);color:var(--text);text-transform:uppercase;cursor:pointer;border:none;border-radius:8px;padding:8px 0;font-weight:700}.hm-letters button:disabled{opacity:.3;cursor:default}.hm-hostword{letter-spacing:2px;text-transform:uppercase;color:var(--accent,#2ee6a6);margin-top:10px;font-size:20px}.bs-boards{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.bs-label{color:var(--text-dim);text-align:center;margin-bottom:6px;font-size:12px}.bs-cell{cursor:pointer;color:#fff;background:#1a3a6b;border:1px solid #0d1b33;border-radius:4px;width:30px;height:30px;padding:0;font-size:14px}.bs-grid.small .bs-cell{cursor:default;width:24px;height:24px}.bs-cell.ship{background:#556}.bs-cell.hit,.bs-cell.sunk{background:#d33}.bs-cell.miss{background:#0d1b33}.update-block{z-index:400;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060a0feb;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.update-block-card{background:var(--card,#161f2b);text-align:center;border-radius:22px;max-width:360px;padding:28px 24px;box-shadow:0 20px 60px #00000080}.update-block-ico{margin-bottom:8px;font-size:48px}.update-block-card h3{margin-bottom:8px;font-size:20px}.update-block-card p{color:var(--text-dim);margin-bottom:10px;font-size:14px}.update-block-notes{opacity:.85;font-size:13px}.update-block-card .primary-btn{width:100%;margin-top:14px}.gcall-join-banner{background:var(--accent-light,#2ee6a624);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.gcall-join-banner span{align-items:center;gap:8px;display:flex}.gcall-join-btn{background:var(--accent,#2ee6a6);color:#04121c;cursor:pointer;border:none;border-radius:999px;padding:6px 16px;font-size:13px;font-weight:700}.call-overlay.gcall{flex-direction:column;justify-content:space-between;align-items:stretch;gap:12px;padding:16px;display:flex}.gcall-head{color:#fff;padding-top:var(--safe-top,0);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.gcall-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gcall-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-content:center;gap:10px;display:grid;overflow-y:auto}.gcall-tile{aspect-ratio:1;background:#0c1420;border:1px solid #ffffff14;border-radius:16px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.gcall-tile.self{border-color:var(--accent,#2ee6a6)}.gcall-tile video{object-fit:cover;width:100%;height:100%}.gcall-avatar{background:var(--accent,#2ee6a6);color:#04121c;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:30px;font-weight:700;display:flex;overflow:hidden}.gcall-avatar img{object-fit:cover;width:100%;height:100%}.gcall-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#00000080;border-radius:8px;max-width:calc(100% - 16px);padding:2px 8px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:8px;overflow:hidden}.gcall-waiting{text-align:center;color:var(--text-dim);grid-column:1/-1;padding:30px;font-size:14px}.gcall-controls{padding-bottom:var(--safe-bottom,8px);justify-content:center;align-items:center;gap:18px;display:flex}.gcall-controls .call-btn.end{background:#e23b3b}.conn-state.conn-relay_self,.conn-state.conn-relay_peer{white-space:nowrap;animation:9s ease-in-out infinite cw-relay-marquee;display:inline-block}@keyframes cw-relay-marquee{0%{transform:translate(100%)}to{transform:translate(-100%)}}.chat-header-status{overflow:hidden}.conn-state.conn-relay_self,.conn-state.conn-relay_peer{white-space:nowrap;color:#f59e0b;padding-left:6px;animation:12s linear infinite cw-relay-marquee;display:inline-block}.setting-disabled{opacity:.4;pointer-events:none}.privacy-note{color:var(--text-dim);padding:4px 0 8px;font-size:12px;line-height:1.4}.msg-highlight{border-radius:12px;animation:1.5s msg-highlight-pulse}@keyframes msg-highlight-pulse{0%,to{background:0 0}20%,60%{background:#2ee6a640}}
