
:root{--org:#ff6b1a;--orgd:#cc4d00;--red:#c41e3a;--blk:#000;--drk:#0d0a08;--crd:#1a120b;--brd:#2a1f15;--txt:#f5e6d3;--mut:#8a7560;--blu:#1d9bf0;--gld:#ffd700;--grn:#4caf50}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI',sans-serif;-webkit-tap-highlight-color:transparent}
body{background:var(--blk);color:var(--txt);min-height:100vh;max-width:480px;margin:0 auto;overflow-x:hidden;background-image:radial-gradient(circle at 20% 10%,rgba(255,107,26,.08) 0%,transparent 40%),radial-gradient(circle at 80% 80%,rgba(196,30,58,.06) 0%,transparent 40%)}
.hidden{display:none!important}
.freeze-banner{background:linear-gradient(135deg,#c41e3a,#8b0000);padding:12px;text-align:center;font-size:13px;color:#fff;position:sticky;top:0;z-index:30}
.freeze-banner i{color:#ffcc00;margin-right:6px}
.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.login-box{background:linear-gradient(145deg,#0d0a08,#1a120b);border:1px solid var(--brd);border-radius:16px;padding:32px 24px;width:100%;max-width:380px;box-shadow:0 0 40px rgba(255,107,26,.15);position:relative}
.login-box::before{content:"\f1b3";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:var(--blk);color:var(--org);padding:0 12px;font-size:26px}
.login-box h1{color:var(--org);text-align:center;letter-spacing:6px;font-size:18px;margin-bottom:6px;font-weight:900;text-shadow:0 0 10px rgba(255,107,26,.5)}
.login-box .subtitle{text-align:center;color:var(--red);font-size:10px;letter-spacing:3px;margin-bottom:20px;text-transform:uppercase}
.login-box h2{text-align:center;color:var(--mut);font-size:12px;margin-bottom:20px;letter-spacing:2px;text-transform:uppercase;font-weight:normal}
.input-field{width:100%;background:var(--blk);border:1px solid var(--brd);border-radius:10px;padding:14px 14px 14px 40px;color:var(--txt);outline:none;font-size:14px;margin-bottom:12px}
.input-field:focus{border-color:var(--org);box-shadow:0 0 0 3px rgba(255,107,26,.15)}
.input-wrapper{position:relative}
.input-wrapper i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--mut);font-size:14px}
.btn-primary{width:100%;background:linear-gradient(135deg,var(--org),var(--red));color:var(--blk);border:none;padding:14px;border-radius:10px;font-weight:bold;font-size:14px;letter-spacing:2px;cursor:pointer;text-transform:uppercase}
.btn-primary:disabled{opacity:.5}
.switch-text{text-align:center;color:var(--mut);font-size:13px;margin-top:16px;cursor:pointer}
.header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--brd);background:var(--blk);position:sticky;top:0;z-index:20}
.header .btn-icon{background:var(--crd);border:1px solid var(--org);color:var(--org);width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px}
.header h1{color:var(--org);font-size:13px;letter-spacing:3px;font-weight:900}
.header-actions{display:flex;gap:6px}
.page-title{padding:16px 16px 8px;display:flex;align-items:center;gap:12px}
.page-title .icon-box{background:rgba(255,107,26,.15);padding:10px;border-radius:10px;color:var(--org);font-size:18px;border:1px solid rgba(255,107,26,.3)}
.page-title h2{font-size:16px;font-weight:bold;letter-spacing:2px}
.page-title p{color:var(--mut);font-size:11px;font-style:italic}
.search-bar{padding:8px 16px 12px}
.search-bar .input-wrapper{position:relative}
.search-bar input{width:100%;background:var(--crd);border:1px solid var(--brd);border-radius:12px;padding:14px 16px 14px 40px;color:var(--txt);outline:none;font-size:14px}
.search-bar i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--mut)}
.section-title{padding:10px 16px 4px;font-size:11px;letter-spacing:2px;color:var(--mut);text-transform:uppercase;font-weight:600}
.chat-list{padding:0 16px 100px}
.chat-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--crd);border-radius:12px;margin-bottom:8px;cursor:pointer;border:1px solid transparent;position:relative}
.chat-item.pinned{border-color:var(--red);background:linear-gradient(135deg,#1a120b,#2a1508)}
.pin-icon{position:absolute;top:8px;right:8px;color:var(--red);font-size:11px}
.avatar{width:48px;height:48px;background:linear-gradient(135deg,#1a120b,#2a1f15);border:2px solid var(--org);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--org);font-weight:bold;font-size:18px;flex-shrink:0;overflow:hidden;position:relative}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.channel{border-color:var(--blu);color:var(--blu)}
.avatar.group-pinned{border-color:var(--red);color:var(--red)}
.chat-info{flex:1;overflow:hidden}
.chat-info h3{font-size:15px;margin-bottom:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chat-info p{color:var(--mut);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-meta{text-align:right}
.chat-meta .time{color:var(--mut);font-size:11px}
.badge-verified{color:var(--blu);font-size:13px}
.badge-admin{color:var(--gld);font-size:13px}
.badge-frozen{background:var(--red);color:#fff;font-size:9px;padding:2px 6px;border-radius:4px}
.badge-creator{background:linear-gradient(135deg,var(--org),var(--red));color:var(--blk);font-size:9px;padding:2px 6px;border-radius:4px;font-weight:700}
.fab{position:fixed;bottom:90px;right:20px;background:linear-gradient(135deg,var(--org),var(--red));color:var(--blk);width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;border:none;cursor:pointer;box-shadow:0 4px 20px rgba(255,107,26,.5);z-index:10}
.fab-sw{position:fixed;bottom:160px;right:20px;background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;border:none;cursor:pointer;box-shadow:0 4px 20px rgba(76,175,80,.5);z-index:10}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:var(--drk);border-top:1px solid var(--brd);display:flex;justify-content:space-around;padding:10px 0;z-index:15}
.nav-item{display:flex;flex-direction:column;align-items:center;color:var(--mut);font-size:10px;cursor:pointer;gap:4px;flex:1}
.nav-item.active{color:var(--org)}
.nav-item i{font-size:18px}
.room-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--brd);background:var(--blk);position:sticky;top:0;z-index:5}
.room-header .back{color:var(--org);font-size:20px;cursor:pointer;padding:4px}
.room-header .btn-icon{background:var(--crd);border:1px solid var(--org);color:var(--org);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}
.room-info{flex:1;overflow:hidden}
.room-info h3{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
.room-status{font-size:11px;color:var(--mut);display:flex;align-items:center;gap:4px}
.room-status .dot{width:8px;height:8px;border-radius:50%;background:var(--grn)}
.room-status .dot.offline{background:var(--mut)}
.messages{padding:16px;padding-bottom:150px;overflow-y:auto;height:calc(100vh - 200px)}
.message{max-width:75%;padding:10px 14px;border-radius:14px;margin-bottom:10px;font-size:14px;word-wrap:break-word;position:relative}
.message.me{background:linear-gradient(135deg,var(--org),var(--orgd));color:var(--blk);margin-left:auto;border-bottom-right-radius:4px;font-weight:500}
.message.other{background:var(--crd);color:var(--txt);border-bottom-left-radius:4px;border-left:2px solid var(--red)}
.message .sender{font-size:10px;font-weight:bold;color:var(--org);margin-bottom:4px;display:flex;align-items:center;gap:4px}
.message.me .sender{color:var(--blk);opacity:.7}
.message .msg-text{display:block;word-break:break-word}
.message .meta{font-size:10px;opacity:.6;display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:4px}
.message .meta .check.cw{color:var(--blu)!important}
.message .reply-preview{background:rgba(0,0,0,.3);border-left:3px solid var(--org);padding:6px 10px;margin-bottom:6px;border-radius:4px;font-size:11px;opacity:.8}
.message img.msg-img{max-width:100%;border-radius:8px;cursor:pointer;display:block;margin:-4px -4px 4px -4px}
.msg-actions{position:absolute;top:-8px;right:-8px;display:none;gap:4px}
.message:hover .msg-actions{display:flex}
.msg-actions button{background:var(--drk);border:1px solid var(--org);color:var(--org);width:26px;height:26px;border-radius:50%;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mention{color:var(--blu);font-weight:bold;cursor:pointer}
.voice-msg{display:flex;align-items:center;gap:10px;padding:6px 0;min-width:200px}
.voice-msg i.voice-icon{font-size:20px}
.voice-msg audio{flex:1;height:32px;filter:invert(1) hue-rotate(180deg)}
.input-area{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:var(--drk);border-top:1px solid var(--brd);padding:10px 16px;display:flex;gap:8px;align-items:center;z-index:10}
.input-area input{flex:1;background:var(--blk);border:1px solid var(--brd);border-radius:20px;padding:12px 16px;color:var(--txt);outline:none;font-size:14px}
.input-area input:focus{border-color:var(--org)}
.input-area button{background:linear-gradient(135deg,var(--org),var(--red));color:var(--blk);border:none;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.attach-btn{background:var(--crd)!important;border:1px solid var(--org)!important;color:var(--org)!important}
.channel-notice{background:var(--crd);border-top:1px solid var(--brd);padding:14px 16px;text-align:center;font-size:12px;color:var(--mut);position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:9}
.channel-notice i{color:var(--blu);margin-right:6px}
.reply-bar{background:var(--crd);border-top:1px solid var(--brd);padding:8px 16px;display:flex;align-items:center;gap:10px;font-size:12px;position:fixed;bottom:64px;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:9}
.reply-bar .reply-text{flex:1;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reply-bar .close-reply{color:var(--red);cursor:pointer}
.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}
.modal-box{background:var(--drk);border:1px solid var(--org);border-radius:16px;padding:24px;max-width:380px;width:100%;max-height:90vh;overflow-y:auto}
.modal-box h3{color:var(--org);margin-bottom:16px;font-size:16px;letter-spacing:2px}
.modal-box h3 i{margin-right:8px}
.modal-box input,.modal-box textarea,.modal-box select{width:100%;background:var(--blk);border:1px solid var(--brd);border-radius:10px;padding:12px;color:var(--txt);outline:none;margin-bottom:12px;font-family:inherit;font-size:14px}
.modal-box input:focus,.modal-box textarea:focus{border-color:var(--org)}
.modal-box label{display:block;font-size:12px;color:var(--mut);margin-bottom:6px}
.modal-box .btn-row{display:flex;gap:8px;margin-top:8px}
.modal-box .btn{flex:1;padding:12px;border-radius:10px;font-weight:bold;cursor:pointer;border:none;font-size:13px}
.modal-box .btn-cancel{background:var(--crd);color:var(--txt)}
.modal-box .btn-confirm{background:linear-gradient(135deg,var(--org),var(--red));color:var(--blk)}
.modal-box .btn-danger{background:var(--red);color:#fff}
.action-menu{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:var(--drk);border-top:2px solid var(--org);border-radius:16px 16px 0 0;padding:20px;z-index:100;max-height:80vh;overflow-y:auto}
.action-menu h3{color:var(--org);margin-bottom:16px;font-size:14px;letter-spacing:2px;display:flex;align-items:center;gap:8px}
.action-btn{display:flex;align-items:center;gap:12px;padding:14px;background:var(--crd);border-radius:10px;margin-bottom:8px;cursor:pointer;color:var(--txt);font-size:14px;border:1px solid transparent}
.action-btn.danger{background:rgba(196,30,58,.2);color:#ff8888}
.action-btn.warning{background:rgba(255,204,0,.15);color:#ffcc00}
.action-btn i{width:20px;text-align:center}
.invite-box{background:var(--blk);border:1px dashed var(--org);border-radius:10px;padding:14px;margin:12px 0;text-align:center}
.invite-box .code{font-family:monospace;font-size:22px;color:var(--org);font-weight:bold;letter-spacing:4px;margin:8px 0}
.invite-box .link{font-size:10px;color:var(--mut);word-break:break-all;margin-top:6px}
.member-item{display:flex;align-items:center;gap:10px;padding:10px;background:var(--blk);border-radius:8px;margin-bottom:6px}
.member-item .name{flex:1;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.profile-page{padding:20px 16px}
.profile-header{text-align:center;padding:20px 0;border-bottom:1px solid var(--brd);margin-bottom:20px}
.profile-avatar{width:110px;height:110px;background:linear-gradient(135deg,#1a120b,#2a1f15);border:3px solid var(--org);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--org);font-weight:bold;font-size:40px;margin:0 auto 16px;overflow:hidden;cursor:pointer;position:relative}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-avatar .edit-badge{position:absolute;bottom:0;right:0;background:var(--org);color:var(--blk);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;border:3px solid var(--drk)}
.profile-name{font-size:22px;color:var(--org);font-weight:bold;margin-bottom:4px;display:flex;align-items:center;justify-content:center;gap:8px}
.profile-username{color:var(--mut);font-size:13px;margin-bottom:8px}
.profile-bio{color:var(--txt);font-size:13px;margin-bottom:8px;padding:0 20px}
.profile-status{font-size:12px;display:inline-block;padding:4px 12px;border-radius:12px}
.profile-status.active{background:rgba(76,175,80,.15);color:var(--grn)}
.profile-status.frozen{background:rgba(196,30,58,.2);color:#ff8888}
.profile-actions{display:flex;flex-direction:column;gap:8px;padding:0 16px;margin-top:20px}
.profile-action-btn{display:flex;align-items:center;gap:12px;padding:16px;background:var(--crd);border-radius:12px;cursor:pointer;color:var(--txt);font-size:14px;border:1px solid var(--brd)}
.profile-action-btn i{width:24px;text-align:center;font-size:18px;color:var(--org)}
.profile-action-btn.danger i{color:var(--red)}
.info-row{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--brd);font-size:13px}
.info-row .label{color:var(--mut);display:flex;align-items:center;gap:8px}
.info-row .label i{width:16px;text-align:center;color:var(--org)}
.loading{text-align:center;padding:40px;color:var(--mut);font-size:14px}
.loading i{display:block;font-size:24px;margin-bottom:10px;color:var(--org)}
.empty{text-align:center;padding:60px 20px;color:var(--mut)}
.empty i{font-size:48px;color:var(--brd);margin-bottom:16px;display:block}
.empty p{font-size:13px}
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:var(--crd);border:1px solid var(--org);color:var(--txt);padding:12px 20px;border-radius:10px;z-index:300;font-size:13px;max-width:90%;text-align:center}
.toast.success{border-color:var(--grn)}
.toast.error{border-color:var(--red)}
/* SW VIEWER */
.sw-viewer{position:relative;width:100%;max-width:420px;height:85vh;background:#000;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.sw-progress{position:absolute;top:8px;left:8px;right:8px;height:3px;background:rgba(255,255,255,.3);border-radius:3px;z-index:20;overflow:hidden}
.sw-progress-fill{height:100%;background:#fff;width:0%;transition:width .1s linear}
.sw-header{position:absolute;top:20px;left:12px;right:12px;z-index:10;display:flex;align-items:center;gap:10px}
.sw-body{flex:1;display:flex;align-items:center;justify-content:center;position:relative}
.sw-body img,.sw-body video{max-width:100%;max-height:100%;object-fit:contain}
.sw-body .sw-text{color:#fff;font-size:20px;text-align:center;padding:30px;word-break:break-word;line-height:1.5}
.sw-footer{position:absolute;bottom:0;left:0;right:0;padding:14px;background:linear-gradient(0deg,rgba(0,0,0,.9) 0%,transparent 100%);z-index:10;display:flex;gap:8px;align-items:center}
.sw-footer input{flex:1;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:10px 16px;color:#fff;outline:none;font-size:13px}
.sw-footer input::placeholder{color:rgba(255,255,255,.6)}
.sw-footer button{background:rgba(255,255,255,.15);border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sw-nav-left,.sw-nav-right{position:absolute;top:0;bottom:0;width:30%;cursor:pointer;z-index:5}
.sw-nav-left{left:0}
.sw-nav-right{right:0}
.sw-viewers{position:absolute;bottom:70px;left:0;right:0;padding:0 20px;text-align:center;color:#fff;font-size:12px;z-index:10;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.sw-viewers i{margin-right:4px}
/* SW list */
.sw-row{display:flex;gap:12px;overflow-x:auto;padding:8px 16px 12px}
.sw-item{text-align:center;cursor:pointer;flex-shrink:0}
.sw-item .avatar{width:60px;height:60px;border:3px solid var(--grn);margin:0 auto 6px}
.sw-item.my-sw .avatar{border-color:var(--org)}
.sw-item .name{font-size:10px;color:var(--txt);max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* VC/VN */
.call-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:9999;display:flex;flex-direction:column}
.call-overlay iframe{flex:1;width:100%;border:none}
.call-header{background:var(--drk);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--brd)}
.call-header h3{color:var(--org);font-size:14px;display:flex;align-items:center;gap:8px}
.call-header button{background:var(--red);color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px}
.recording-bar{background:var(--red);color:#fff;padding:8px 16px;text-align:center;font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px;position:fixed;bottom:64px;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:11}
.recording-bar .dot-rec{width:10px;height:10px;background:#fff;border-radius:50%;animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-thumb{background:var(--org);border-radius:4px}
