pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}*{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;background:#1a1a2e;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#app{flex-direction:column;max-width:480px;height:100vh;margin:0 auto;display:flex}.setup{padding:2rem}.setup h1{margin-bottom:1.5rem}.form{flex-direction:column;gap:1rem;display:flex}.form label{flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.form input{color:#e0e0e0;background:#16213e;border:1px solid #333;border-radius:4px;padding:.5rem}.form button{color:#fff;cursor:pointer;background:#0f3460;border:none;border-radius:4px;padding:.75rem}.form button:hover{background:#1a4a8a}.form button:disabled{opacity:.5}.status{color:#aaa;font-size:.875rem}.hint{color:#888;margin-top:.5rem;font-size:.75rem}.fingerprint{word-break:break-all;background:#16213e;border-radius:4px;padding:.5rem;font-size:.8rem;display:block}.contact-list{flex:1;padding:1rem}.header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.status-dot{border-radius:50%;width:10px;height:10px}.status-dot.online{background:#4caf50}.status-dot.offline{background:#f44336}.self-info{background:#16213e;border-radius:4px;margin-bottom:1rem;padding:.75rem}.self-info p{margin-bottom:.5rem;font-size:.875rem}.contact-list ul{list-style:none}.contact-list li{cursor:pointer;border-bottom:1px solid #333;justify-content:space-between;padding:.75rem;display:flex}.contact-list li:hover{background:#16213e}.device-count{color:#888;font-size:.75rem}.empty{color:#666;padding:1rem 0;font-size:.875rem}.chat-view{flex-direction:column;height:100vh;display:flex}.chat-header{background:#16213e;align-items:center;gap:.5rem;padding:.75rem;display:flex}.chat-header button{color:#e0e0e0;cursor:pointer;background:0 0;border:none;font-size:1.25rem}.peer-fp{color:#888;font-size:.8rem}.messages{flex-direction:column;flex:1;gap:.5rem;padding:1rem;display:flex;overflow-y:auto}.message{border-radius:8px;max-width:75%;padding:.5rem .75rem}.message.sent{background:#0f3460;align-self:flex-end}.message.received{background:#1a1a3e;align-self:flex-start}.message .body{font-size:.9375rem}.message .meta{color:#888;margin-top:.25rem;font-size:.7rem}.input-bar{background:#16213e;gap:.5rem;padding:.75rem;display:flex}.input-bar input{color:#e0e0e0;background:#1a1a2e;border:1px solid #333;border-radius:4px;flex:1;padding:.5rem}.input-bar button{color:#fff;cursor:pointer;background:#0f3460;border:none;border-radius:4px;padding:.5rem 1rem}.loading{justify-content:center;align-items:center;height:100vh;display:flex}.connection-status{color:#4caf50;margin-left:auto;font-size:.7rem}.message .body p{margin:.25rem 0}.message .body p:first-child{margin-top:0}.message .body p:last-child{margin-bottom:0}.message .body pre{background:#0d1117;border-radius:4px;margin:.25rem 0;padding:.5rem;overflow-x:auto}.message .body code{font-family:Consolas,Monaco,monospace;font-size:.85em}.message .body :not(pre)>code{background:#0d1117;border-radius:3px;padding:.1rem .3rem}.message .body blockquote{color:#aaa;border-left:3px solid #444;margin:.25rem 0;padding-left:.5rem}.message .body a{color:#6cb6ff}.message .body img{border-radius:4px;max-width:100%}.message .body ul,.message .body ol{margin:.25rem 0;padding-left:1.5rem}.deleted-text{color:#666;font-style:italic}.edited{font-style:italic}.reply-preview{background:#0d1117;border-left:3px solid #0f3460;align-items:center;padding:.5rem .75rem;display:flex}.reply-content{flex:1}.reply-label{color:#6cb6ff;font-size:.75rem;display:block}.reply-text{color:#aaa;font-size:.8rem}.reply-cancel{color:#888;cursor:pointer;background:0 0;border:none;padding:0 .5rem;font-size:1.25rem}.reply-reference{color:#888;border-left:2px solid #444;margin-bottom:.25rem;padding-left:.5rem;font-size:.75rem}.reply-btn{color:#6cb6ff;cursor:pointer;background:0 0;border:none;margin-left:.5rem;font-size:.7rem}.typing-indicator{color:#888;padding:.25rem .75rem;font-size:.8rem;font-style:italic}.message .meta .status-read{color:#6cb6ff}.peer-info{flex-direction:column;gap:.15rem;display:flex}.last-message{color:#888;text-overflow:ellipsis;white-space:nowrap;max-width:250px;font-size:.75rem;overflow:hidden}.peer-meta{flex-direction:column;align-items:flex-end;gap:.15rem;display:flex}.unread-badge{color:#fff;text-align:center;background:#0f3460;border-radius:10px;min-width:1.2rem;padding:.1rem .4rem;font-size:.7rem}.search-btn{color:#888;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:.875rem}.search-view{flex-direction:column;height:100vh;display:flex}.search-header{background:#16213e;gap:.5rem;padding:.75rem;display:flex}.search-header input{color:#e0e0e0;background:#1a1a2e;border:1px solid #333;border-radius:4px;flex:1;padding:.5rem}.search-header button{color:#e0e0e0;cursor:pointer;background:0 0;border:none;font-size:1.25rem}.search-results{flex:1;overflow-y:auto}.search-result{cursor:pointer;border-bottom:1px solid #333;padding:.75rem}.search-result:hover{background:#16213e}.search-result-text{font-size:.875rem}.search-result-meta{color:#888;margin-top:.25rem;font-size:.7rem}.reactions{gap:.25rem;margin-top:.25rem;display:flex}.reaction{background:#16213e;border-radius:8px;padding:.1rem .3rem;font-size:.8rem}.message{position:relative}.message-actions{opacity:0;transition:opacity .15s;position:absolute;top:.25rem;right:.25rem}.message:hover .message-actions{opacity:1}.action-trigger{color:#888;cursor:pointer;background:0 0;border:none;padding:.1rem .3rem;font-size:.8rem}.action-menu{z-index:10;background:#16213e;border:1px solid #333;border-radius:4px;flex-direction:column;min-width:80px;display:flex;position:absolute;top:100%;right:0}.action-menu button{color:#e0e0e0;cursor:pointer;text-align:left;background:0 0;border:none;padding:.4rem .6rem;font-size:.8rem}.action-menu button:hover{background:#0f3460}.login-subtitle{color:#888;margin-bottom:1.5rem}.login-btn{color:#fff;cursor:pointer;background:#0f3460;border:none;border-radius:4px;width:100%;padding:.75rem;font-size:1rem}.login-btn:hover{background:#1a4a8a}.login-divider{text-align:center;color:#666;margin:.5rem 0;font-size:.8rem}.login-manual{color:#888;cursor:pointer;background:0 0;border:1px solid #333;border-radius:4px;width:100%;padding:.5rem;font-size:.875rem}.login-manual:hover{color:#ccc;border-color:#666}
