*{box-sizing:border-box}html{--bg-page: #08090d;--bg-elev: #11131a;--bg-elev-2: #181b24;--text: #e8eaed;--text-muted: #9aa0a6;--border: rgba(255, 255, 255, .075);--border-strong: rgba(255, 255, 255, .11);--glow: rgba(138, 180, 248, .12);--glow-2: rgba(92, 107, 192, .25);--accent: #8ab4f8;--shadow-lg: 0 20px 50px rgba(0, 0, 0, .55);--shadow-card: 0 0 0 1px var(--glow), 0 12px 32px rgba(0, 0, 0, .35);--input-bg: #0a0b10;--link: #8ab4f8;color-scheme:dark}html[data-theme=light]{--bg-page: #ebedf2;--bg-elev: #ffffff;--bg-elev-2: #f4f5f9;--text: #1a1b1e;--text-muted: #5f6368;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .1);--glow: rgba(21, 101, 192, .1);--glow-2: rgba(21, 101, 192, .2);--accent: #1565c0;--shadow-lg: 0 12px 40px rgba(0, 0, 0, .1);--shadow-card: 0 0 0 1px var(--glow), 0 4px 24px rgba(0, 0, 0, .08);--input-bg: #f8f9fb;--link: #1565c0;color-scheme:light}html,body{margin:0;min-height:100%;min-height:100dvh;font-family:system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg-page);color:var(--text);transition:background .25s ease,color .2s ease}.btn-theme{min-width:4.2rem;text-align:center}#root{min-height:100%;min-height:100dvh;display:flex;flex-direction:column;width:100%}.layout{box-sizing:border-box;flex:1;min-height:0;width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:stretch;padding:1.5rem}.header{width:100%;max-width:32rem;margin-left:auto;margin-right:auto;display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:1.5rem;padding-bottom:.65rem;border-bottom:1px solid var(--border);box-shadow:0 1px 0 var(--glow)}.logo{font-weight:700;font-size:1.1rem;color:var(--accent);letter-spacing:.02em;text-shadow:0 0 20px var(--glow-2)}.sub{font-size:.8rem;color:var(--text-muted)}.main{width:100%;max-width:32rem;margin-left:auto;margin-right:auto}.card{background:var(--bg-elev-2);border:1px solid var(--border-strong);border-radius:14px;padding:1.5rem 1.25rem;line-height:1.5;box-shadow:var(--shadow-card);transition:border-color .2s ease,box-shadow .2s ease}h1{font-size:1.2rem;margin:0 0 1rem}p{margin:.75rem 0;color:var(--text-muted);opacity:.95}.hint{font-size:.9rem;color:var(--text-muted)}.link{color:var(--link);text-decoration:none;word-break:break-all}.link:hover{text-decoration:underline;filter:brightness(1.1)}.err{color:#f28b82}.mono{font-size:.85rem;word-break:break-all;color:var(--text-muted);background:var(--input-bg);padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border)}.banner-warn{width:100%;max-width:32rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:.75rem 1rem;border-radius:8px;background:#3c2f00;border:1px solid #8a6d0e;color:#fef7e0;font-size:.9rem;line-height:1.45}.banner-warn code{background:var(--input-bg);padding:.1rem .35rem;border-radius:4px;font-size:.85em}.banner-warn a{color:var(--link)}.form-row{display:flex;flex-direction:column;gap:.25rem;margin:.75rem 0}.form-row label{font-size:.85rem;color:var(--text-muted)}.form-row input{background:var(--input-bg);border:1px solid var(--border-strong);color:var(--text);padding:.5rem .6rem;border-radius:10px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}.btn{display:inline-block;background:var(--accent);color:var(--bg-page);border:none;font-weight:600;padding:.5rem 1rem;border-radius:10px;cursor:pointer;font-size:.95rem;box-shadow:0 0 0 1px var(--glow);transition:filter .2s,transform .12s}.btn:hover{filter:brightness(1.05)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:#ffffff0a;color:var(--link);border:1px solid var(--border);box-shadow:none}html[data-theme=light] .btn-ghost{background:#00000008}.btn-ghost:hover{background:#ffffff14;filter:none}html[data-theme=light] .btn-ghost:hover{background:#0000000d}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.ok{color:#81c995;margin:.5rem 0 0}.nav-links{font-size:.85rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:flex-end}.nick{color:var(--text-muted)}.chat-page{display:flex;flex-direction:column;max-width:36rem;margin:0 auto}.msg-list{max-height:min(55vh,24rem);overflow-y:auto;border:1px solid var(--border-strong);border-radius:10px;padding:.6rem .75rem;background:var(--input-bg);text-align:left}.msg-row{margin-bottom:.9rem}.msg-row:last-child{margin-bottom:.25rem}.msg-meta{font-size:.78rem;color:var(--text-muted);margin-bottom:.2rem}.msg-nick{color:var(--accent);font-weight:600}.msg-time{font-size:.75rem;color:var(--text-muted);margin-left:.35rem}.msg-text{font-size:.95rem;line-height:1.4;color:var(--text);white-space:pre-wrap;word-break:break-word}.chat-form{margin-top:.5rem}.chat-form .form-row input{width:100%}.layout--messenger{padding:.5rem .75rem;align-items:stretch;max-width:100%;width:100%}.layout--messenger .header{max-width:100%;width:100%;margin-bottom:.5rem}.layout--messenger .banner-warn{max-width:100%}.main--messenger{max-width:100%;width:100%;flex:1 1 auto;min-height:max(12rem,min(50vh,32rem));min-height:max(12rem,min(50dvh,32rem));display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.messenger-splash{box-sizing:border-box;flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:40vh;padding:2rem 1.25rem;text-align:center;font-size:1rem;line-height:1.5;color:#e8eaed}.messenger-splash p{margin:0;color:#bdc1c6}.messenger-tg{display:flex;flex:1 1 auto;min-height:max(400px,min(78vh,720px));min-height:max(400px,min(78dvh,720px));max-height:min(90vh,800px);max-height:min(90dvh,800px);width:100%;max-width:56rem;margin:0 auto;border:1px solid var(--border-strong);border-radius:16px;overflow:hidden;background:var(--bg-elev-2);box-shadow:var(--shadow-lg),0 0 0 1px var(--glow);align-self:center}.messenger-tg--one{min-height:max(400px,min(82vh,640px));min-height:max(400px,min(82dvh,640px))}.messenger-sidebar{width:min(100%,16rem);min-width:10rem;display:flex;flex-direction:column;border-right:1px solid var(--border-strong);background:var(--bg-elev)}.messenger-tg--one .messenger-sidebar{width:100%;min-width:0;border-right:none;border-bottom:1px solid var(--border-strong);max-height:100%}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:.65rem .6rem .5rem;border-bottom:1px solid var(--border-strong);gap:.5rem}.sidebar-top h2{font-size:1rem;font-weight:600;margin:0;color:#e8eaed}.sidebar-notif{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;gap:.2rem}.thread-notif{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:.25rem .45rem;padding:.25rem .65rem .35rem;border-bottom:1px solid var(--border-strong);background:var(--bg-elev);flex-shrink:0}.thread-notif .btn-notif{font-size:.68rem;padding:.15rem .4rem}.sidebar-notif-ok{font-size:1.05rem;line-height:1;-webkit-user-select:none;user-select:none}.sidebar-notif-muted{opacity:.75}.btn-notif{font-size:.72rem;padding:.2rem .45rem;border-radius:6px;border:1px solid #3d5afe;background:#1a1f2e;color:#8ab4f8;cursor:pointer;white-space:nowrap;max-width:100%}.btn-notif:hover,.btn-notif:focus-visible{background:#252a3d;outline:none}.sidebar-notif-denied{font-size:.7rem;color:#7c7f86;-webkit-user-select:none;user-select:none}.sidebar-pwa-hint{margin:0;padding:.35rem .6rem .45rem;font-size:.7rem;line-height:1.3;color:#7c7f86;border-bottom:1px solid var(--border-strong);background:var(--bg-elev)}.convo-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:0}.convo{display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem;text-decoration:none;color:#e8eaed;border-bottom:1px solid #242833;transition:background .12s}.convo:hover,.convo:focus-visible{background:#1e2129;outline:none}.convo--on{background:#252a36;border-left:3px solid #8ab4f8;padding-left:calc(.6rem - 3px)}.convo--unread{background:#1a2330;border-left:3px solid #5dade2;padding-left:calc(.6rem - 3px)}.convo-avatar-wrap{position:relative;flex-shrink:0}.convo-unread-dot{position:absolute;z-index:1;top:-.1rem;right:-.1rem;width:.5rem;height:.5rem;border-radius:50%;background:#5dade2;box-shadow:0 0 0 2px var(--bg-page)}.convo--unread .convo-title{font-weight:700;color:#f0f2f4}.convo--unread .convo-sub{color:#b8d4f0;font-weight:500}.convo--unread.convo--on{border-left-color:#8ab4f8;background:#1e2838}.convo .avatar,.row-btn .avatar,.thread .avatar{--avatar-h: 250;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;background:linear-gradient(135deg,hsl(var(--avatar-h),64%,48%),hsl(calc(var(--avatar-h) + 32),56%,42%));color:#fff;font-weight:700;font-size:.9rem;flex-shrink:0;text-shadow:0 1px 1px rgba(0,0,0,.25)}.thread .avatar.avatar--bubble{width:1.65rem;height:1.65rem;font-size:.72rem}.bubble-from{display:flex;align-items:center;gap:.45rem;margin-bottom:.2rem;min-width:0}.bubble-from .bubble-author{margin-bottom:0;min-width:0;flex:1}.convo-mid{flex:1;min-width:0}.convo-title{font-size:.92rem;font-weight:600;color:#e8eaed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convo-sub{font-size:.78rem;color:#9aa0a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convo-t{font-size:.72rem;color:#7c7f86;flex-shrink:0}.new-dm{padding:.4rem .5rem;border-bottom:1px solid var(--border-strong);max-height:12rem;overflow-y:auto}.row-btn{display:flex;align-items:center;gap:.4rem;width:100%;text-align:left;background:var(--bg-elev-2);border:1px solid var(--border-strong);color:#e8eaed;padding:.4rem .5rem;border-radius:8px;margin-bottom:.35rem;cursor:pointer;font-size:.9rem}.row-btn:hover{background:#22252d}.thread{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--bg-page)}.messenger-tg--one .thread,.messenger-tg--one .messenger-sidebar{flex:1;min-height:0}.thread--empty{display:flex;align-items:center;justify-content:center;min-height:12rem;padding:1.5rem;color:#9aa0a6;font-size:.95rem;flex:1;min-width:0}.thread-head{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-bottom:1px solid var(--border-strong);background:var(--bg-elev-2);flex-shrink:0}.thread-title{flex:1;font-weight:600;font-size:.95rem;color:#e8eaed}.bubble-scroller{flex:1;min-height:0;overflow-y:auto;padding:.6rem .65rem .4rem;display:flex;flex-direction:column;gap:.4rem}.empty-thread{text-align:center;color:#7c7f86;font-size:.9rem;margin:1.5rem 0}.bubble{max-width:85%;padding:.45rem .6rem .35rem;border-radius:12px;align-self:flex-start;line-height:1.4;word-break:break-word}.bubble--other{background:#1e222b;border:1px solid #2d333f;align-self:flex-start;border-bottom-left-radius:4px}.bubble--me{background:#1e3a5f;border:1px solid #2d4a6f;align-self:flex-end;border-bottom-right-radius:4px;margin-left:15%}.bubble-author{font-size:.78rem;color:#8ab4f8;font-weight:600;margin-bottom:.2rem}.bubble-text{color:#e8eaed;font-size:.92rem;white-space:pre-wrap}.bubble-footer{display:flex;align-items:center;gap:.4rem;margin-top:.2rem}.bubble-footer:has(.bubble-del){justify-content:space-between;width:100%}.bubble-footer:not(:has(.bubble-del)){justify-content:flex-end}.bubble-when{display:block;font-size:.68rem;color:#7c7f86;text-align:right;margin:0 0 0 auto}.bubble-footer:has(.bubble-del) .bubble-when{margin-left:0}.bubble-del{flex-shrink:0;font-size:.64rem;line-height:1.1;padding:.1rem .4rem;border:none;border-radius:4px;background:#0003;color:#c5c8ce;cursor:pointer;font:inherit}.bubble--me .bubble-del{background:#00000038;color:#9db7db}.bubble-del:hover,.bubble-del:focus-visible{background:#c5393940;color:#f28b82;outline:none}.bubble-img-btn{display:block;padding:0;margin:0 0 .25rem;border:none;background:transparent;border-radius:8px;cursor:pointer;max-width:100%;line-height:0}.bubble-img-btn:hover .bubble-img,.bubble-img-btn:focus-visible .bubble-img{filter:brightness(1.05);outline:2px solid #3d5afe;outline-offset:2px}.bubble-img{max-width:100%;max-height:240px;border-radius:8px;display:block;object-fit:contain;pointer-events:none}.img-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#000000e6;padding:1rem;box-sizing:border-box;cursor:zoom-out}.img-lightbox-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;cursor:default;box-shadow:0 8px 32px #00000080}.img-lightbox-close{position:fixed;top:.75rem;right:.75rem;width:2.5rem;height:2.5rem;border:none;border-radius:50%;background:#ffffff1f;color:#e8eaed;font-size:1.5rem;line-height:1;cursor:pointer;z-index:2001;display:flex;align-items:center;justify-content:center;transition:background .12s}.img-lightbox-close:hover,.img-lightbox-close:focus-visible{background:#fff3;outline:none}.rec-timer{flex-shrink:0;font-size:.85rem;font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,monospace;color:#7cb342;min-width:5.5ch;letter-spacing:.02em}.bubble-audio{max-width:100%;height:32px;display:block;margin:.2rem 0 .15rem}.composer{display:flex;align-items:center;gap:.4rem;padding:.45rem .5rem;border-top:1px solid var(--border-strong);background:var(--bg-elev-2);flex-shrink:0}.composer-input{flex:1;min-width:0;background:var(--input-bg);border:1px solid var(--border-strong);color:#e8eaed;padding:.5rem .65rem;border-radius:20px;font-size:.95rem;outline:none}.composer-input:focus{border-color:#3d5afe}.icon-btn{flex-shrink:0;width:2.4rem;height:2.4rem;border:none;border-radius:50%;background:#2d333f;color:#e8eaed;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}.icon-btn:hover{background:#3a4150}.icon-btn--on{background:#c5221f;color:#fff}.composer .rec-timer{animation:rec-blink 1s step-end infinite}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:.65}}.send-fab{width:2.5rem;height:2.5rem;border:none;border-radius:50%;background:#3d5afe;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.send-fab:disabled{opacity:.4;cursor:not-allowed}.send-fab:not(:disabled):hover{background:#536dfe}.hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.err--small{font-size:.8rem;margin:.2rem .5rem 0;padding:0}
