:root{--bg:#0a0a0a;--tx:#fff;--tx2:rgba(255,255,255,.6);--tx3:rgba(255,255,255,.32);--bd:rgba(255,255,255,.09);--bd2:rgba(255,255,255,.16);--ac:#fff;--c-sa:#ff1744;--c-ad:#fff;--c-md:#ffea00;--c-vp:#ff9100;--c-vf:#00e676;--sh:0 2px 14px rgba(0,0,0,.6);--sh2:0 10px 40px rgba(0,0,0,.85);--r:10px;--r2:16px;--dockw:64px;--panelw:270px;--hh:54px;--tr:all .18s cubic-bezier(.4,0,.2,1)}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;outline:none}
html,body{height:100%;overflow:hidden;scrollbar-width:none}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--tx);letter-spacing:.2px}
::-webkit-scrollbar{width:0;height:0}
::selection{background:rgba(255,255,255,.2)}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.hidden{display:none!important}

@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes popIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slideRight{from{transform:translateX(30px);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes slideL{from{transform:translateX(-12px);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes tpDot{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}
@keyframes toastIn{from{transform:translateX(120%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,230,118,.5)}70%{box-shadow:0 0 0 7px rgba(0,230,118,0)}100%{box-shadow:0 0 0 0 rgba(0,230,118,0)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:var(--r);font-size:12px;font-weight:600;transition:var(--tr);white-space:nowrap}
.btn-p{background:#fff;color:#0a0a0a}.btn-p:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(255,255,255,.25)}
.btn-g{background:rgba(255,255,255,.06);color:#fff;border:1px solid var(--bd)}.btn-g:hover{background:rgba(255,255,255,.12)}
.btn-d{background:rgba(255,23,68,.16);color:#ff1744;border:1px solid rgba(255,23,68,.3)}.btn-d:hover{background:#ff1744;color:#fff}
.btn-w{background:rgba(255,145,0,.16);color:#ff9100;border:1px solid rgba(255,145,0,.3)}.btn-w:hover{background:#ff9100;color:#fff}
.btn-s{background:rgba(0,230,118,.16);color:#00e676;border:1px solid rgba(0,230,118,.3)}.btn-s:hover{background:#00e676;color:#fff}
.btn-full{width:100%}.btn-sm{padding:5px 10px;font-size:11px;border-radius:8px}
.ib{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;color:var(--tx2);font-size:14px;transition:var(--tr)}
.ib:hover{background:rgba(255,255,255,.08);color:#fff;transform:scale(1.08)}
.ib.on{background:#fff;color:#0a0a0a}

.badge{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:800;padding:2px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
.b-sa{background:rgba(255,23,68,.18);color:#ff1744}
.b-ad{background:rgba(255,255,255,.12);color:#fff}
.b-md{background:rgba(255,234,0,.15);color:#ffea00}
.b-vp{background:rgba(255,145,0,.16);color:#ff9100}
.b-vf{background:rgba(0,230,118,.15);color:#00e676}
.nbadge{background:#ff1744;color:#fff;font-size:8px;font-weight:700;min-width:15px;height:15px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px}

.fg{margin-bottom:12px}.fg label{display:block;font-size:11px;font-weight:600;margin-bottom:4px;color:var(--tx2)}
.fg input,.fg select,.fg textarea{width:100%;padding:9px 12px;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r);color:#fff;font-size:13px;font-family:inherit;transition:var(--tr)}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:#fff}

.app{position:fixed;inset:0;display:flex}
.dock{width:var(--dockw);background:#0a0a0a;border-right:1px solid var(--bd);display:flex;flex-direction:column;align-items:center;padding:10px 8px calc(10px + env(safe-area-inset-bottom,0px));gap:4px;z-index:120;flex-shrink:0;transition:width .22s,padding .22s}
.dock-logo{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:10px;transition:var(--tr)}
.dock-logo:hover{background:rgba(255,255,255,.14);transform:scale(1.05)}
.dk{position:relative;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--tx2);transition:var(--tr)}
.dk:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateY(-1px)}
.dk.on{background:#fff;color:#0a0a0a;box-shadow:0 4px 16px rgba(255,255,255,.2)}
.dk .nbadge{position:absolute;top:3px;right:3px}
.dk-x{width:36px;height:36px}
.dock-sp{flex:1}
.dock-f{padding-top:6px;border-top:1px solid var(--bd);width:100%;display:flex;flex-direction:column;align-items:center;gap:2px}

.panels{width:var(--panelw);background:#0a0a0a;border-right:1px solid var(--bd);display:flex;flex-direction:column;flex-shrink:0;z-index:100;animation:slideL .2s;transition:width .22s}
.panels.gone{display:none}
.pn{display:none;flex-direction:column;height:100%}
.pn.on{display:flex;animation:slideL .2s}
.pn-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--bd);flex-shrink:0}
.pn-h h3{font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn-h h3 i{font-size:15px}
.pn-c{flex:1;overflow-y:auto;padding:7px}
.pn-f{padding:9px 10px;border-top:1px solid var(--bd);flex-shrink:0}

.s-in{display:flex;align-items:center;gap:6px;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r);padding:7px 10px;transition:var(--tr)}
.s-in:focus-within{border-color:#fff}
.s-in i{color:var(--tx3);font-size:12px}
.s-in input{flex:1;background:none;border:none;color:#fff;font-size:12px}.s-in input::placeholder{color:var(--tx3)}
.gf{display:flex;gap:4px;padding:7px 10px 0}
.gf-b{padding:4px 9px;font-size:10px;font-weight:600;border:1px solid var(--bd);border-radius:999px;color:var(--tx2);transition:var(--tr);display:flex;align-items:center;gap:4px}
.gf-b:hover,.gf-b.on{background:#fff;color:#0a0a0a;border-color:#fff;transform:scale(1.04)}

.rm{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--r);cursor:pointer;color:var(--tx2);font-size:12px;transition:var(--tr);border:1px solid transparent}
.rm:hover{background:rgba(255,255,255,.05);color:#fff;transform:translateX(3px)}
.rm.on{background:rgba(255,255,255,.1);color:#fff;border-color:var(--bd);font-weight:600}
.rm-icon{width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;transition:var(--tr)}
.rm:hover .rm-icon{background:rgba(255,255,255,.16);transform:scale(1.08)}
.rm.on .rm-icon{background:#fff;color:#0a0a0a}
.rm-n{flex:1;min-width:0}
.rm-t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rm-s{font-size:10px;color:var(--tx3)}
.rm-a{font-size:9px;color:#00e676;margin-left:auto;flex-shrink:0}

.ui{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:var(--r);cursor:pointer;transition:var(--tr)}
.ui:hover{background:rgba(255,255,255,.05);transform:translateX(2px)}
.ui-av{position:relative;flex-shrink:0}
.ui-av img,.ui-av .avatar-sm{width:32px;height:32px;border-radius:50%;object-fit:cover;transition:var(--tr)}
.ui:hover .ui-av img{transform:scale(1.08)}
.avatar-sm{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:rgba(255,255,255,.08);color:#fff}
.ui-nfo{flex:1;min-width:0}
.ui-nm{font-size:12px;font-weight:600;display:flex;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ui-st{font-size:10px;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dot{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;background:#00e676;border:2px solid #0a0a0a;animation:pulse 2s infinite}
.dot-sm{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);flex-shrink:0}
.dot-sm.on{background:#00e676}

.main{flex:1;display:flex;flex-direction:column;min-width:0;background:#0a0a0a}
.mob{display:none}
.mob-btn{display:flex}
.mob-menu{width:36px;height:36px;border-radius:9px;color:var(--tx2);font-size:14px;display:flex;align-items:center;justify-content:center;transition:var(--tr);flex-shrink:0;background:none;border:none;cursor:pointer;padding:0}
.mob-menu:hover{background:rgba(255,255,255,.08);color:#fff}
body.nav-min .dock{padding:0!important}
body.nav-min .panels{width:0!important;overflow:hidden;border-right:none}
body.nav-min .dock{width:0!important;overflow:hidden}
.ch{display:flex;align-items:center;gap:8px;height:var(--hh);padding:0 12px;border-bottom:1px solid var(--bd);flex-shrink:0}
.ch-i{flex:1;min-width:0}
.ch-i h2{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-i h2 i{font-size:14px}
.ch-i p{font-size:10px;color:var(--tx3)}
.ch-a{display:flex;align-items:center;gap:2px;flex-shrink:0}
.msgw{flex:1;position:relative;overflow:hidden;min-height:0}
.msgs{height:100%;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.msg{display:flex;gap:8px;padding:7px 9px;border-radius:var(--r);transition:var(--tr);position:relative;animation:fadeIn .18s}
.msg:hover{background:rgba(255,255,255,.03)}
.msg.own{flex-direction:row-reverse}
.msg-ic{display:flex;flex-direction:column;gap:1px;align-items:center;margin-top:2px}
.msg-av{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;cursor:pointer;transition:var(--tr);border:1px solid var(--bd)}
.msg-av:hover{transform:scale(1.1);border-color:#fff}
.msg-av-i{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:rgba(255,255,255,.08);color:#fff;flex-shrink:0;cursor:pointer;transition:var(--tr)}
.msg-av-i:hover{transform:scale(1.1)}
.msg-b{flex:1;min-width:0;max-width:70%}
.msg-b.own{display:flex;flex-direction:column;align-items:flex-end}
.msg-h{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:2px}
.msg.un{font-size:11px;font-weight:700;cursor:pointer;transition:var(--tr)}
.msg.un:hover{text-decoration:underline}
.msg-t{font-size:9px;color:var(--tx3)}
.msg-tx{font-size:13.5px;line-height:1.5;color:#fff;word-wrap:break-word;white-space:pre-wrap}
.msg.own .msg-tx{color:#fff}
.msg-img{margin-top:5px;max-width:240px}
.msg-img img{width:100%;max-height:220px;border-radius:var(--r);cursor:pointer;transition:var(--tr);border:1px solid var(--bd)}
.msg-img img:hover{transform:scale(1.03)}
.msg-sys{justify-content:center}.sys-t{font-size:11px;color:var(--tx3);font-style:italic;background:rgba(255,255,255,.04);padding:4px 12px;border-radius:999px}
.msg-act{position:absolute;top:4px;right:4px;display:flex;gap:3px;background:rgba(10,10,10,.92);border:1px solid var(--bd);border-radius:8px;padding:3px;opacity:0;pointer-events:none;transition:var(--tr)}
.msg:hover .msg-act{opacity:1;pointer-events:auto}
.msg-act button{width:26px;height:26px;border-radius:6px;font-size:11px;color:var(--tx2);transition:var(--tr);display:flex;align-items:center;justify-content:center}
.msg-act button:hover{background:#ff1744;color:#fff;transform:scale(1.1)}

.ci{padding:8px 12px 10px;border-top:1px solid var(--bd);position:relative;flex-shrink:0}
.typ{font-size:10px;color:var(--tx3);padding:0 4px 3px;min-height:14px;display:flex;align-items:center;gap:4px}
.typ .tpd{display:flex;gap:2px}
.typ .tpd span{width:3px;height:3px;border-radius:50%;background:var(--tx2);animation:tpDot 1.2s infinite}
.typ .tpd span:nth-child(2){animation-delay:.15s}.typ .tpd span:nth-child(3){animation-delay:.3s}
.ci-f{display:flex;align-items:flex-end;gap:4px;background:#0a0a0a;border:1px solid var(--bd2);border-radius:14px;padding:5px 6px;transition:var(--tr)}
.ci-f:focus-within{border-color:#fff}
.ci-w{flex:1;min-width:0;display:flex;align-items:flex-end}
.ci-w textarea{width:100%;background:none;border:none;color:#fff;font-size:13px;resize:none;padding:5px 4px;max-height:90px;line-height:1.4;font-family:inherit;min-height:20px}
.ci-w textarea::placeholder{color:var(--tx3)}
.ci-sb{width:32px;height:32px;border-radius:50%;background:#fff;color:#0a0a0a;display:flex;align-items:center;justify-content:center;transition:var(--tr);flex-shrink:0;font-size:13px}
.ci-sb:hover{transform:scale(1.1);box-shadow:0 0 14px rgba(255,255,255,.3)}
.ci-sb:active{transform:scale(.95)}

.ep{position:absolute;bottom:calc(100% + 6px);left:8px;right:8px;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r2);box-shadow:var(--sh2);padding:6px;max-height:250px;display:flex;flex-direction:column;z-index:60;animation:slideUp .2s}
.ep-cat{display:flex;gap:2px;padding:2px;border-bottom:1px solid var(--bd);margin-bottom:5px;overflow-x:auto}
.ep-cat button{width:32px;height:30px;border-radius:8px;font-size:14px;color:var(--tx3);transition:var(--tr);flex-shrink:0}
.ep-cat button:hover,.ep-cat button.on{background:rgba(255,255,255,.1);color:#fff;transform:scale(1.1)}
.ep-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:2px;overflow-y:auto;flex:1}
.ep-g span{font-size:18px;text-align:center;padding:3px;cursor:pointer;border-radius:6px;transition:var(--tr);line-height:1}
.ep-g span:hover{background:rgba(255,255,255,.1);transform:scale(1.3)}

.members{width:200px;background:#0a0a0a;border-left:1px solid var(--bd);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;animation:fadeIn .2s}
.members.gone{display:none}
.mh3{display:flex;align-items:center;justify-content:space-between;padding:10px;border-bottom:1px solid var(--bd);flex-shrink:0}
.mh3 h3{font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px}
.mh3 h3 i{font-size:12px}
.ml{flex:1;overflow-y:auto;padding:6px}
.st{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--tx3);padding:8px 6px 3px}

.pm{position:fixed;top:0;right:0;width:340px;height:100vh;background:#0a0a0a;border-left:1px solid var(--bd2);display:flex;flex-direction:column;z-index:210;box-shadow:var(--sh2);animation:slideRight .25s}
@supports(height:100dvh){.pm{height:100dvh}}
.pm .pm-in{padding-bottom:calc(0px + env(safe-area-inset-bottom,0px))}
.pm-h{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--bd);flex-shrink:0}
.pm-ui{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.pm-av{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid var(--bd)}
.pm-un{font-weight:700;font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-st{font-size:9px;color:var(--tx3)}
.pm-msg{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:6px}
.pm-m{display:flex;gap:6px;max-width:82%;animation:fadeIn .18s}
.pm-ms{align-self:flex-end;flex-direction:row-reverse}
.pm-ic{flex-shrink:0}
.pm-ic img,.pm-ic .avatar-sm{width:26px;height:26px;border-radius:50%;object-fit:cover}
.pm-b{min-width:0}
.pm-mb{padding:7px 11px;border-radius:14px;font-size:12.5px;line-height:1.45;word-wrap:break-word}
.pm-mr .pm-mb{background:rgba(255,255,255,.09);color:#fff;border-bottom-left-radius:4px}
.pm-ms .pm-mb{background:#fff;color:#0a0a0a;border-bottom-right-radius:4px}
.pm-mt{font-size:8px;color:var(--tx3);margin-top:2px}
.pm-msg img{max-width:180px;border-radius:8px;cursor:pointer}
.pm-in{border-top:1px solid var(--bd);position:relative;flex-shrink:0}
.pm-if{display:flex;gap:5px;padding:7px 9px;align-items:flex-end}
.pm-if textarea{background:#0a0a0a;border:1px solid var(--bd2);border-radius:12px;color:#fff;padding:7px 10px;font-size:12.5px;resize:none;min-height:32px;max-height:64px;width:100%;font-family:inherit;transition:var(--tr)}
.pm-if textarea:focus{border-color:#fff}.pm-if textarea::placeholder{color:var(--tx3)}

.pp{position:fixed;inset:0;z-index:600;display:none;align-items:center;justify-content:center;padding:16px}.pp.on{display:flex}
.pp-bk{position:absolute;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(4px)}
.pp-c{position:relative;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r2);padding:24px;width:100%;max-width:330px;text-align:center;box-shadow:var(--sh2);z-index:1;animation:popIn .22s}
.pp-avw{margin:0 auto 12px;cursor:pointer;position:relative;display:inline-block}
.pp-avw img{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid #fff;transition:var(--tr)}
.pp-avw img:hover{transform:scale(1.05)}
.pp-avw .pp-z{position:absolute;bottom:4px;right:4px;width:26px;height:26px;border-radius:50%;background:#0a0a0a;border:1px solid var(--bd2);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.pp-avw .pp-z:hover{background:#fff;color:#0a0a0a}
.pp-nm{font-size:16px;font-weight:700;margin-bottom:6px}
.pp-bg{display:flex;gap:3px;justify-content:center;margin-bottom:8px;flex-wrap:wrap}
.pp-bg .badge{font-size:8px}
.pp-d{text-align:left;padding:8px 0;border-top:1px solid var(--bd);margin-top:6px}
.dr{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:11.5px;border-bottom:1px solid var(--bd);transition:var(--tr)}
.dr:last-child{border-bottom:none}.dr:hover{padding-left:3px}
.dl{color:var(--tx3);flex-shrink:0}.dv{color:#fff;font-weight:500;text-align:right;word-break:break-word}
.pp-a{display:flex;gap:5px;margin-top:12px;flex-wrap:wrap}.pp-a .btn{flex:1;font-size:10px;padding:7px 6px}

.ups{position:fixed;z-index:700;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r2);padding:14px;width:240px;box-shadow:var(--sh2);animation:popIn .15s}
.ups-h{display:flex;align-items:center;gap:9px;padding-bottom:9px;border-bottom:1px solid var(--bd);margin-bottom:7px}
.ups-av{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid #fff;flex-shrink:0;transition:var(--tr)}
.ups-av:hover{transform:scale(1.08)}
.ups-nm{font-size:14px;font-weight:700}
.ups-bg{display:flex;gap:3px;flex-wrap:wrap;margin-top:2px}
.ups-bg .badge{font-size:8px}
.ups-i{padding:4px 0}
.ups-r{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:11px;color:var(--tx2);word-break:break-word}.ups-r i{width:13px;text-align:center;color:var(--tx3)}
.ups-a{display:flex;gap:4px;margin-top:7px;padding-top:7px;border-top:1px solid var(--bd)}
.ups-a .btn{flex:1;font-size:9px;padding:5px 4px}
.ups-m{display:flex;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid var(--bd);flex-wrap:wrap}
.ups-mb{flex:1;padding:5px 6px;font-size:9px;font-weight:600;border-radius:8px;transition:var(--tr);background:rgba(255,255,255,.06);color:#fff;display:flex;align-items:center;justify-content:center;gap:3px}
.ups-mb:hover{background:rgba(255,255,255,.14);transform:translateY(-1px)}
.ups-mb.d{background:rgba(255,23,68,.14);color:#ff1744;border:1px solid rgba(255,23,68,.25)}
.ups-mb.d:hover{background:#ff1744;color:#fff}

.modal{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;padding:16px}.modal.on{display:flex}
.modal-bk{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(3px)}
.modal-c{position:relative;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r2);padding:20px;width:100%;max-width:400px;max-height:82vh;overflow-y:auto;box-shadow:var(--sh2);animation:popIn .22s}
.modal-x{position:absolute;top:9px;right:9px;width:30px;height:30px;border-radius:9px;color:var(--tx3);font-size:14px;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.modal-x:hover{background:rgba(255,255,255,.1);color:#fff;transform:rotate(90deg)}
.modal-c h3{font-size:15px;font-weight:700}
.modal-hd{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.modal-hd i{font-size:16px}
.modal-hd h3{margin:0}

.av-dz{width:110px;height:110px;border-radius:50%;border:2px dashed var(--bd2);display:flex;align-items:center;justify-content:center;flex-direction:column;margin:0 auto 14px;cursor:pointer;transition:var(--tr);position:relative;overflow:hidden;background:rgba(255,255,255,.03)}
.av-dz:hover,.av-dz.dragover{border-color:#fff;background:rgba(255,255,255,.06);transform:scale(1.04)}
.av-dz img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}
.av-dz .d-i{font-size:24px;color:var(--tx3);z-index:1;pointer-events:none}
.av-dz .d-t{font-size:9px;color:var(--tx3);margin-top:3px;z-index:1;pointer-events:none}
.av-a{display:flex;gap:6px;justify-content:center;margin-top:10px}.av-a .btn{flex:1;max-width:140px}
.av-c{text-align:center}

.rp{background:#0a0a0a;border-top:1px solid var(--bd);padding:5px 10px;display:flex;align-items:center;gap:6px;flex-shrink:0;animation:slideUp .25s}
.rp-i{flex:1;min-width:0;display:flex;align-items:center;gap:6px;cursor:pointer}
.rp-t{font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-a{font-size:9px;color:var(--tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-c{display:flex;align-items:center;gap:3px;flex-shrink:0}
.rp-c .ib{width:30px;height:30px;font-size:13px}
.rp-v{display:flex;align-items:center;gap:4px}
.rp-v input[type="range"]{width:44px;height:2px;-webkit-appearance:none;background:rgba(255,255,255,.2);border-radius:2px;cursor:pointer}
.rp-v input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:#fff;cursor:pointer}
.rp-v input[type="range"]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#fff;cursor:pointer;border:none}

.rsp{position:fixed;top:64px;right:14px;z-index:300;background:#0a0a0a;border:1px solid var(--bd2);border-radius:var(--r2);box-shadow:var(--sh2);width:280px;padding:10px;animation:popIn .18s}
.rsp-h{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--bd);margin-bottom:6px}
.rsp-h i{font-size:15px}
.rs-l{display:flex;flex-direction:column;gap:2px}
.rs-i{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r);cursor:pointer;transition:var(--tr)}
.rs-i:hover{background:rgba(255,255,255,.06);transform:translateX(3px)}
.rs-i i{width:15px;text-align:center;color:var(--tx2);font-size:13px}
.rs-i.on{background:rgba(255,255,255,.1)}
.rs-i.on i{color:#fff}
.rs-i .rs-n{flex:1;min-width:0}
.rs-i .rs-n div:first-child{font-size:12px;font-weight:600}
.rs-i .rs-n div:last-child{font-size:10px;color:var(--tx3)}

.tc{position:fixed;bottom:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:6px;pointer-events:none}
.toast{padding:10px 16px;border-radius:var(--r);font-size:12px;font-weight:600;box-shadow:var(--sh2);display:flex;align-items:center;gap:8px;max-width:320px;animation:toastIn .3s;pointer-events:auto}
.toast-s{background:#00e676;color:#0a0a0a}.toast-e{background:#ff1744;color:#fff}.toast-i{background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(8px)}.toast-w{background:#ff9100;color:#0a0a0a}

.es{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:26px 14px;color:var(--tx3);text-align:center}.es i{font-size:34px;margin-bottom:10px;opacity:.35}.es p{font-size:12px}
.es-s{display:flex;flex-direction:column;align-items:center;padding:16px;color:var(--tx3);font-size:11px;text-align:center}.es-s i{font-size:20px;margin-bottom:6px;opacity:.35}

.scb{position:absolute;bottom:58px;right:16px;width:34px;height:34px;border-radius:50%;background:#0a0a0a;border:1px solid var(--bd2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh);z-index:5;transition:var(--tr)}
.scb:hover{background:#fff;color:#0a0a0a;transform:scale(1.1)}

.call-m{text-align:center;max-width:290px}
.call-st{font-size:12px;color:var(--tx2);margin-bottom:12px}
.call-av{width:74px;height:74px;border-radius:50%;object-fit:cover;margin:0 auto 9px;border:3px solid #fff;display:block}
.call-un{font-size:16px;font-weight:700;margin-bottom:3px}
.call-ti{font-size:22px;font-weight:700;color:var(--tx2);margin-bottom:18px}
.call-acts{display:flex;justify-content:center;gap:10px;align-items:flex-end}
.call-t{display:flex;flex-direction:column;align-items:center;gap:3px}.call-t label{font-size:8px;color:var(--tx3)}
.call-b{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;transition:var(--tr)}
.call-bs{background:rgba(255,255,255,.09);color:#fff}.call-bs.on{background:#00e676;color:#0a0a0a}
.call-bd{background:#ff1744;color:#fff}.call-bd:hover{transform:scale(1.08)}
.call-video{width:118px;height:auto;aspect-ratio:16/9;background:rgba(255,255,255,.06);border-radius:10px;margin:0 auto 13px;overflow:hidden;display:none}
.call-video video{width:100%;height:100%;object-fit:cover}

.img-zoom{position:fixed;inset:0;z-index:800;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.94);animation:popIn .2s;cursor:zoom-out}
.img-zoom img{max-width:90vw;max-height:90vh;border-radius:var(--r);transition:transform .25s;user-select:none;object-fit:contain}
.img-zoom-controls{position:absolute;bottom:22px;display:flex;gap:10px}
.img-zoom-controls button{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid var(--bd);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;transition:var(--tr)}
.img-zoom-controls button:hover{background:#fff;color:#0a0a0a;transform:scale(1.08)}

.notif-i{display:flex;align-items:flex-start;gap:9px;padding:9px 8px;border-bottom:1px solid var(--bd);transition:var(--tr);animation:fadeIn .18s}
.notif-i:last-child{border-bottom:none}
.notif-i:hover{background:rgba(255,255,255,.04)}
.notif-i .n-ic{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.notif-i .n-tx{flex:1;min-width:0;font-size:12px;line-height:1.4}
.notif-i .n-t{font-size:9px;color:var(--tx3)}

@media(max-width:1024px){
  .dock{width:56px;padding:8px 6px}
  .dock-logo{width:38px;height:38px;font-size:15px}
  .dk{width:38px;height:38px;font-size:14px}
  .panels{width:230px}
  .members{width:170px}
  .pm{width:100vw}
}
@media(max-width:768px){
  .dock{width:52px}
  .panels{position:fixed;left:52px;top:0;bottom:0;z-index:130;box-shadow:var(--sh2);transform:translateX(-110%);transition:transform .25s,width .22s}
  .panels.mob-open{transform:translateX(0)}
  body.nav-min .dock{width:52px;padding:10px 8px calc(10px + env(safe-area-inset-bottom,0px))!important}
  body.nav-min .panels{width:var(--panelw);position:fixed;left:52px;top:0;bottom:0;z-index:130;box-shadow:var(--sh2);transform:translateX(-110%);transition:transform .25s,width .22s}
  .ch-a{gap:1px}
  .msg-b{max-width:82%}
  .msg-img{max-width:170px}
  .msgw{margin-top:0}
  .pm{width:100vw}
  .members{position:fixed;right:0;top:0;bottom:0;width:min(260px,80vw);z-index:205;border-left:1px solid var(--bd2);box-shadow:var(--sh2);transition:transform .22s cubic-bezier(.4,0,.2,1)}
  .members.gone{display:block;transform:translateX(102%)}
  .members:not(.gone){transform:translateX(0)}
  .rsp{top:auto;bottom:74px;left:10px;right:10px;width:auto}
  .dock-logo{display:none}
}
@media(max-width:480px){
  .ch-i h2{font-size:14px}
  .msg{padding:5px 6px}
  .msgs{padding:8px 9px}
  .msg-tx{font-size:13px}
  .msg-av,.msg-av-i{width:28px;height:28px}
  .ci{padding:6px 8px 8px}
  .pm-msg{padding:9px}
  .call-b{width:42px;height:42px;font-size:15px}
  .rsp{left:6px;right:6px;bottom:76px}
}
@media(max-height:520px){.ep{max-height:150px}.ci{padding:5px 10px 7px}}

@media print{.dock,.panels,.ci,.ch-a,.members,.mob,.rp{display:none!important}}