[hidden]{display:none!important}
:root{--bg:#080c12;--panel:#101720;--panel2:#151e29;--line:#233040;--text:#eef5ff;--muted:#8190a3;--green:#38db8d;--green2:#20b96f;--danger:#ff6f8a;--shadow:0 24px 70px rgba(0,0,0,.38)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}body{min-height:100vh;overflow-x:hidden}.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 600px at 10% -10%,rgba(45,218,137,.12),transparent 55%),radial-gradient(750px 540px at 100% 5%,rgba(78,119,255,.10),transparent 55%),linear-gradient(180deg,#090d13,#0b1119 55%,#090e14)}
button,input,textarea{font:inherit}.shell{max-width:1280px;margin:auto;padding:18px 18px calc(24px + env(safe-area-inset-bottom))}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px}.logo,.avatar,.bigLogo,.placeholderAvatar,.emptyLogo{display:grid;place-items:center;background:linear-gradient(145deg,#46e697,#24bd73);color:#07130d;box-shadow:0 10px 28px rgba(35,203,120,.25)}.logo{width:40px;height:40px;border-radius:13px;font-size:23px}.brandText strong{display:block;font-size:19px;letter-spacing:-.02em}.brandText span{display:block;margin-top:2px;font-size:9px;color:#738296;letter-spacing:.16em}.topActions{display:flex;gap:8px;align-items:center}.version,.net{border:1px solid var(--line);background:#101720cc;border-radius:999px;padding:7px 10px;font-size:10px;color:#7f8fa3}.net{display:flex;align-items:center;gap:6px}.net i{width:6px;height:6px;border-radius:99px;background:#5d6978}.net.on{color:#74e8ab;border-color:#285f46}.net.on i{background:var(--green);box-shadow:0 0 10px var(--green)}
.glass{background:linear-gradient(180deg,rgba(18,26,36,.94),rgba(12,18,26,.94));border:1px solid rgba(54,72,94,.62);box-shadow:var(--shadow);backdrop-filter:blur(18px)}.authWrap{min-height:calc(100vh - 105px);display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:60px;max-width:1080px;margin:auto;padding:40px}.authVisual{padding:20px}.bigLogo{width:78px;height:78px;border-radius:25px;font-size:45px;margin-bottom:28px}.eyebrow{font-size:11px;color:#65dda0;letter-spacing:.16em;font-weight:800}.authVisual h1{font-size:clamp(54px,7vw,86px);letter-spacing:-.06em;line-height:.92;margin:14px 0 22px}.authVisual p{max-width:560px;color:#94a3b6;font-size:17px;line-height:1.65}.featurePills{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.featurePills span{padding:8px 11px;border-radius:999px;background:#121c26;border:1px solid #223244;color:#aebccc;font-size:11px}.authCard{border-radius:26px;padding:28px}.authTitle h2{font-size:24px;margin:0 0 5px}.authTitle p{margin:0 0 25px;color:var(--muted);font-size:13px}.authCard label{display:block;margin:15px 0}.authCard label span,.sectionLabel{display:block;color:#91a0b3;font-size:11px;font-weight:700;margin:0 0 7px}.authCard input,.searchRow input,.composer textarea{width:100%;border:1px solid #283646;background:#0a1017;color:var(--text);border-radius:14px;padding:13px 14px;outline:none}.authCard input:focus,.searchRow input:focus,.composer textarea:focus{border-color:#36c981;box-shadow:0 0 0 3px rgba(54,201,129,.10)}.authButtons{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}button{border:0;cursor:pointer}.primary,.secondary{border-radius:13px;padding:13px;font-weight:800}.primary{background:linear-gradient(135deg,#41de90,#24b970);color:#06120c}.secondary{background:#202b38;color:#dce6f3;border:1px solid #2c3b4d}.secureLine{display:flex;gap:9px;margin-top:18px;padding:11px;border-radius:12px;background:#0c1513;border:1px solid #1c4032;color:#81bca0;font-size:11px;line-height:1.4}.secureIcon{color:#46e797;font-weight:900}.formMessage{min-height:18px;margin-top:10px;color:#ff91a4;font-size:12px}.formMessage.ok{color:#68e3a1}
.messenger{height:calc(100vh - 94px);min-height:610px;display:grid;grid-template-columns:330px minmax(0,1fr);gap:12px}.left,.chat{border-radius:23px;overflow:hidden}.left{display:flex;flex-direction:column;min-height:0}.profile{display:flex;align-items:center;gap:11px;padding:16px;border-bottom:1px solid #202c39}.avatar{width:42px;height:42px;border-radius:14px;font-size:23px}.profileText{min-width:0;flex:1}.profileText b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profileText span{display:block;margin-top:3px;color:#7f8fa2;font-size:11px}.profileText code{color:#a7b5c6}.ghostBtn{width:34px;height:34px;border-radius:10px;background:#1b2531;color:#9aa9ba}.searchBox{padding:14px;border-bottom:1px solid #202c39}.searchRow{display:grid;grid-template-columns:1fr 42px;gap:7px}.searchRow input{padding:11px 12px}.squareBtn{border-radius:12px;background:#35d789;color:#06120c;font-size:21px;font-weight:900}.sideSection{padding:12px 12px 6px}.friendsSection{min-height:0;flex:1;overflow:hidden;display:flex;flex-direction:column}.sectionHead{display:flex;align-items:center;justify-content:space-between;padding:3px 3px 9px;color:#a7b5c5;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.badge{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:var(--green);color:#07130d;font-size:10px}.contactList{display:flex;flex-direction:column;gap:5px}.friendsSection .contactList{overflow:auto;padding-right:2px}.friend,.request,.found{display:flex;align-items:center;gap:9px;padding:9px;border-radius:13px;border:1px solid transparent;background:#0d141c}.friend{cursor:pointer;transition:.18s}.friend:hover{background:#131e29;border-color:#2c3e50}.friendActive{background:#14261f!important;border-color:#275c44!important}.miniAvatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#192a23;color:#62dfa0;font-weight:900}.friendInfo{min-width:0;flex:1}.friendInfo b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friendInfo small{display:block;margin-top:3px;color:#77869a;font-size:10px}.presence{display:inline-block;width:7px;height:7px;border-radius:99px;background:#566271;margin-right:3px}.presence.on{background:var(--green);box-shadow:0 0 8px rgba(56,219,141,.7)}.requestActions{display:flex;gap:5px}.requestActions button,.searchActions button{border-radius:9px;padding:7px 9px;font-size:10px;font-weight:800}.accept,.searchActions button{background:#2bc47b;color:#06110b}.decline{background:#2b1d24;color:#f2a8b8}.muted{padding:9px;color:#68788c;font-size:11px;line-height:1.45}.sideFooter{display:flex;gap:7px;padding:12px;border-top:1px solid #202c39}.sideFooter span{font-size:9px;border:1px solid #243343;border-radius:999px;padding:5px 7px;color:#7c8b9c}
.chat{display:grid;grid-template-rows:72px minmax(0,1fr) auto;min-width:0}.chatHeader{display:flex;align-items:center;gap:11px;padding:12px 16px;border-bottom:1px solid #202c39;background:rgba(15,22,30,.85)}.placeholderAvatar{width:42px;height:42px;border-radius:14px;font-size:22px}.chatHeader>div:nth-child(2){min-width:0;flex:1}.chatHeader b{display:block;font-size:14px}.chatHeader span{display:block;color:#7f8ea1;font-size:10px;margin-top:3px}.headerSecurity{font-size:10px;color:#65dca0;border:1px solid #285b45;border-radius:999px;padding:6px 9px}.messages{overflow:auto;padding:22px;background:radial-gradient(circle at 50% 0,rgba(42,74,59,.07),transparent 35%),linear-gradient(180deg,#0b1118,#0b1016);display:flex;flex-direction:column;gap:8px}.emptyState{margin:auto;text-align:center;max-width:360px;color:#728195}.emptyLogo{width:58px;height:58px;border-radius:19px;font-size:31px;margin:0 auto 14px;opacity:.65}.emptyState h3{color:#aebaca;margin:0 0 7px}.emptyState p{font-size:12px;line-height:1.55;margin:0}.msg{max-width:min(72%,650px);align-self:flex-start;background:#18222e;border:1px solid #263545;border-radius:17px 17px 17px 5px;padding:10px 12px;line-height:1.42;font-size:14px;box-shadow:0 5px 16px rgba(0,0,0,.12);word-break:break-word}.msg.self{align-self:flex-end;background:linear-gradient(145deg,#173a2b,#183328);border-color:#25543f;border-radius:17px 17px 5px 17px}.msg small{display:block;margin-top:5px;color:#718095;font-size:9px}.msg img{display:block;max-width:min(100%,440px);border-radius:12px}.decrypting{font-size:11px;color:#8190a4}.composerWrap{padding:8px 12px 12px;border-top:1px solid #202c39;background:#101720}.uploadStatus{text-align:center;color:#65768a;font-size:9px;min-height:15px;margin-bottom:5px}.composer{display:grid;grid-template-columns:42px minmax(0,1fr) 44px;gap:8px;align-items:end}.composer textarea{resize:none;min-height:44px;max-height:120px;padding:11px 13px}.attachBtn,.sendBtn{height:44px;border-radius:13px;display:grid;place-items:center}.attachBtn{background:#1c2733;color:#a9b7c8;font-size:24px;cursor:pointer}.sendBtn{background:linear-gradient(135deg,#42df91,#25b970);color:#06120c;font-size:18px;font-weight:900}.disabled,.sendBtn:disabled{opacity:.36;pointer-events:none}.toast{position:fixed;right:20px;bottom:20px;max-width:360px;padding:12px 14px;border-radius:13px;background:#172330;border:1px solid #32475c;box-shadow:0 18px 50px rgba(0,0,0,.5);color:#dce7f4;font-size:12px;transform:translateY(90px);opacity:0;transition:.22s;z-index:30}.toast.show{transform:none;opacity:1}
@media(max-width:880px){.authWrap{grid-template-columns:1fr;gap:15px;max-width:580px;padding:18px}.authVisual{padding:15px 8px 0}.bigLogo{width:60px;height:60px;border-radius:19px;font-size:34px}.authVisual h1{font-size:50px}.authVisual p{font-size:14px}.messenger{grid-template-columns:290px minmax(0,1fr)}}
@media(max-width:700px){.shell{padding:9px;height:100vh}.topbar{height:52px}.version{display:none}.messenger{height:calc(100vh - 65px);min-height:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.left{max-height:42vh;border-radius:18px}.profile{padding:10px}.sideSection{padding:8px 10px 3px}.friendsSection{max-height:150px}.chat{min-height:54vh;border-radius:18px}.headerSecurity{display:none}.messages{padding:14px}.msg{max-width:86%}.authWrap{min-height:calc(100vh - 70px);padding:10px}.authVisual{display:none}.authCard{padding:22px;border-radius:22px}}
/* v0.5 usability additions */
[hidden]{display:none!important}.signalBars{display:flex;align-items:flex-end;gap:2px;width:16px;height:12px}.signalBars i{display:block;width:3px;border-radius:2px;background:#536171!important;box-shadow:none!important}.signalBars i:nth-child(1){height:4px}.signalBars i:nth-child(2){height:8px}.signalBars i:nth-child(3){height:12px}.signalBars.good i{background:#39dc8d!important}.signalBars.ok i:nth-child(-n+2){background:#e0bd53!important}.signalBars.poor i:first-child{background:#ef8f59!important}.net.good{color:#74e8ab;border-color:#285f46}.net.ok{color:#ecd16f;border-color:#65562e}.net.poor{color:#f4a274;border-color:#6e4430}.net.off{color:#8b98a8}.friend.hasUnread{background:linear-gradient(90deg,rgba(42,204,128,.13),#0d141c);border-color:#27563f;box-shadow:inset 3px 0 0 #35d789}.friend.hasUnread .friendInfo b{color:#eafff3}.unreadBadge{min-width:23px;height:23px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:#35d789;color:#06120c;font-size:10px;font-weight:900;box-shadow:0 0 18px rgba(53,215,137,.25)}
.composer{grid-template-columns:42px 38px minmax(0,1fr) 44px}.emojiWrap{position:relative}.emojiBtn{width:38px;height:44px;border-radius:13px;background:#1c2733;color:#a9b7c8;font-size:21px}.emojiBtn:disabled{opacity:.36}.emojiPanel{display:none;position:absolute;left:0;bottom:52px;width:230px;padding:8px;border-radius:15px;background:#131d27;border:1px solid #304154;box-shadow:0 18px 45px rgba(0,0,0,.45);grid-template-columns:repeat(6,1fr);gap:4px;z-index:12}.emojiPanel.open{display:grid}.emojiItem{height:32px;border-radius:8px;background:transparent;font-size:19px}.emojiItem:hover{background:#22303d}.composer textarea{overflow-y:auto;line-height:1.35}
@media(max-width:700px){.composer{grid-template-columns:40px 36px minmax(0,1fr) 42px}.emojiPanel{left:-44px;width:220px}}
/* v0.6 account, menu and recovery UI */
.linkBtn{display:block;margin:12px auto 0;background:transparent;color:#7edca9;font-size:12px;text-decoration:underline;text-underline-offset:3px}.profileText code{font-family:inherit}.chatMenuWrap{position:relative;margin-left:2px}.chatMenu{display:none;position:absolute;right:0;top:42px;width:190px;padding:6px;background:#131d27;border:1px solid #304154;border-radius:13px;box-shadow:0 18px 45px rgba(0,0,0,.45);z-index:20}.chatMenu.open{display:block}.chatMenu button{width:100%;text-align:left;padding:10px 11px;border-radius:9px;background:transparent;color:#d9e4ef;font-size:12px}.chatMenu button:hover{background:#202d39}.chatMenu .dangerText{color:#ff9fb0}.modalBackdrop{position:fixed;inset:0;background:rgba(3,7,11,.72);backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px;z-index:100}.modalCard{width:min(470px,100%);border-radius:22px;padding:22px}.modalHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.modalHead h3{margin:0}.modalCard p{color:#8fa0b3;font-size:12px;line-height:1.55}.modalCard label{display:block;margin:14px 0}.modalCard label span{display:block;color:#91a0b3;font-size:11px;font-weight:700;margin-bottom:7px}.modalCard input{width:100%;border:1px solid #283646;background:#0a1017;color:#eef4fb;border-radius:13px;padding:12px 13px;outline:none}.wideBtn{width:100%;margin-top:4px}.modalActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.recoveryCode{margin-top:14px;padding:14px;border:1px dashed #3a7257;border-radius:13px;background:#0b1612;color:#8ff0b7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.5;word-break:break-all;user-select:all}.friend .friendActions{display:none}.friend:hover .friendActions{display:block}.dangerBtn{width:26px;height:26px;border-radius:8px;background:#2a1c23;color:#ff9fb0}.noticeBox{padding:10px 12px;border-radius:12px;background:#171f28;color:#96a8ba;font-size:11px;line-height:1.5}


/* v0.6.2 mobile-first messenger polish */
.mobileBack{display:none;width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#18232f;color:#d9e5f2;font-size:28px;line-height:1;align-items:center;justify-content:center}
@media(max-width:700px){
  html,body{height:100%;overflow:hidden}
  body{min-height:100dvh}
  .ambient{opacity:.8}
  .shell{height:100dvh;max-width:none;padding:0;display:grid;grid-template-rows:58px minmax(0,1fr)}
  .topbar{height:58px;padding:8px 12px;border-bottom:1px solid #18232e;background:rgba(8,12,18,.94);backdrop-filter:blur(16px)}
  .logo{width:36px;height:36px;border-radius:12px;font-size:20px}.brand{gap:9px}.brandText strong{font-size:17px}.brandText span{font-size:8px}
  .net{padding:7px 9px;max-width:172px;white-space:nowrap;overflow:hidden}.net #netText{overflow:hidden;text-overflow:ellipsis}
  .messenger{height:auto;min-height:0;display:block;overflow:hidden}
  .left,.chat{height:100%;max-height:none;min-height:0;border-radius:0;border-left:0;border-right:0;border-bottom:0;box-shadow:none}
  .left{display:flex}
  .chat{display:none;grid-template-rows:62px minmax(0,1fr) auto}
  body.mobile-chat-open .left{display:none}
  body.mobile-chat-open .chat{display:grid}
  .profile{padding:12px 14px}.avatar{width:40px;height:40px;border-radius:13px}.ghostBtn{width:38px;height:38px}
  .searchBox{padding:12px 14px}.searchRow{grid-template-columns:minmax(0,1fr) 48px}.searchRow input{min-height:48px;font-size:16px}.squareBtn{min-height:48px}
  .sideSection{padding:12px 14px 6px}.friendsSection{max-height:none;min-height:0;flex:1}.friendsSection .contactList{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .friend,.request,.found{min-height:58px;padding:10px 11px;border-radius:15px}.miniAvatar{width:40px;height:40px;border-radius:13px}.friendInfo b{font-size:14px}.friendInfo small{font-size:11px}
  .friend .friendActions{display:block;opacity:.72}
  .sideFooter{display:none}
  .mobileBack{display:flex}
  .chatHeader{height:62px;padding:9px 10px;gap:8px}.chatHeader .presence{flex:0 0 7px}.chatHeader b{font-size:15px}.chatHeader span,.chatHeader small{font-size:10px}.headerSecurity{display:none}.chatMenuWrap{margin-left:auto}
  .messages{padding:12px 10px 16px;gap:6px}.msg{max-width:88%;font-size:15px;padding:9px 11px;border-radius:18px 18px 18px 6px}.msg.self{border-radius:18px 18px 6px 18px}.msg small{font-size:9px}
  .emptyState{max-width:290px;padding:24px 16px}.emptyLogo{width:54px;height:54px}.emptyState h3{font-size:18px}.emptyState p{font-size:12px}
  .composerWrap{padding:7px 8px calc(8px + env(safe-area-inset-bottom));background:#0f161f}.uploadStatus{display:none}
  .composer{grid-template-columns:42px 38px minmax(0,1fr) 44px;gap:6px}.composer textarea{min-height:44px;max-height:104px;font-size:16px;padding:10px 12px;border-radius:14px}.attachBtn,.emojiBtn,.sendBtn{height:44px}.emojiPanel{position:fixed;left:8px!important;right:8px;bottom:calc(62px + env(safe-area-inset-bottom));width:auto;grid-template-columns:repeat(8,1fr);max-height:190px;overflow:auto}
  .toast{left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));max-width:none;text-align:center}
  .modalBackdrop{padding:10px}.modalCard{max-height:92dvh;overflow:auto;border-radius:20px;padding:18px}.authWrap{height:100%;min-height:0;padding:12px;overflow:auto}.authCard{padding:20px}.authCard input{font-size:16px;min-height:48px}.authButtons{grid-template-columns:1fr;gap:8px}
}
@media(max-width:390px){.brandText span{display:none}.net{max-width:150px}.composer{grid-template-columns:40px 36px minmax(0,1fr) 42px}.emojiPanel{grid-template-columns:repeat(7,1fr)}}
